Add functions so you can configure programatically
This commit is contained in:
		
				
					committed by
					
						
						skullydazed
					
				
			
			
				
	
			
			
			
						parent
						
							e72e4b6920
						
					
				
				
					commit
					cfb1b353ee
				
			@@ -40,7 +40,8 @@ typedef union {
 | 
				
			|||||||
    uint8_t raw;
 | 
					    uint8_t raw;
 | 
				
			||||||
    struct {
 | 
					    struct {
 | 
				
			||||||
        bool    enable :1;
 | 
					        bool    enable :1;
 | 
				
			||||||
        uint8_t level  :7;
 | 
					        bool    clicky_enable :1;
 | 
				
			||||||
 | 
					        uint8_t level  :6;
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
} audio_config_t;
 | 
					} audio_config_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -38,29 +38,53 @@ void clicky_play(void) {
 | 
				
			|||||||
  PLAY_SONG(clicky_song);
 | 
					  PLAY_SONG(clicky_song);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void clicky_freq_up(void) {
 | 
				
			||||||
 | 
					  float new_freq = clicky_freq * AUDIO_CLICKY_FREQ_FACTOR;
 | 
				
			||||||
 | 
					  if (new_freq < AUDIO_CLICKY_FREQ_MAX) {
 | 
				
			||||||
 | 
					    clicky_freq = new_freq;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void clicky_freq_down(void) {
 | 
				
			||||||
 | 
					  float new_freq = clicky_freq / AUDIO_CLICKY_FREQ_FACTOR;
 | 
				
			||||||
 | 
					  if (new_freq > AUDIO_CLICKY_FREQ_MIN) {
 | 
				
			||||||
 | 
					    clicky_freq = new_freq;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void clicky_freq_reset(void) {
 | 
				
			||||||
 | 
					  clicky_freq = AUDIO_CLICKY_FREQ_DEFAULT;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void clicky_freq_toggle(void) {
 | 
				
			||||||
 | 
					  audio_config.clicky_enable ^= 1;
 | 
				
			||||||
 | 
					  eeconfig_update_audio(audio_config.raw);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void clicky_freq_on(void) {
 | 
				
			||||||
 | 
					  audio_config.clicky_enable = 1;
 | 
				
			||||||
 | 
					  eeconfig_update_audio(audio_config.raw);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void clicky_freq_off(void) {
 | 
				
			||||||
 | 
					  audio_config.clicky_enable = 0;
 | 
				
			||||||
 | 
					  eeconfig_update_audio(audio_config.raw);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool is_clicky_on(void) {
 | 
				
			||||||
 | 
					      return (audio_config.clicky_enable != 0);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool process_clicky(uint16_t keycode, keyrecord_t *record) {
 | 
					bool process_clicky(uint16_t keycode, keyrecord_t *record) {
 | 
				
			||||||
    if (keycode == CLICKY_TOGGLE && record->event.pressed) {
 | 
					    if (keycode == CLICKY_TOGGLE && record->event.pressed) { clicky_freq_toggle(); }
 | 
				
			||||||
      audio_config.clicky ^= 1;
 | 
					 | 
				
			||||||
      eeconfig_update_audio(audio_config.raw);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (keycode == CLICKY_RESET && record->event.pressed) { clicky_freq = AUDIO_CLICKY_FREQ_DEFAULT; }
 | 
					    if (keycode == CLICKY_RESET && record->event.pressed) { clicky_freq_reset(); }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (keycode == CLICKY_UP && record->event.pressed) {
 | 
					    if (keycode == CLICKY_UP && record->event.pressed) { clicky_freq_up(); }
 | 
				
			||||||
      float new_freq = clicky_freq * AUDIO_CLICKY_FREQ_FACTOR;
 | 
					    if (keycode == CLICKY_DOWN && record->event.pressed) { clicky_freq_down(); }
 | 
				
			||||||
      if (new_freq < AUDIO_CLICKY_FREQ_MAX) {
 | 
					 | 
				
			||||||
        clicky_freq = new_freq;
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    if (keycode == CLICKY_DOWN && record->event.pressed) {
 | 
					 | 
				
			||||||
      float new_freq = clicky_freq / AUDIO_CLICKY_FREQ_FACTOR;
 | 
					 | 
				
			||||||
      if (new_freq > AUDIO_CLICKY_FREQ_MIN) {
 | 
					 | 
				
			||||||
        clicky_freq = new_freq;
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if ( audio_config.clicky ) {
 | 
					    if ( audio_config.clicky_enable ) {
 | 
				
			||||||
      if (record->event.pressed) {
 | 
					      if (record->event.pressed) {
 | 
				
			||||||
        clicky_play();;
 | 
					        clicky_play();;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,4 +4,13 @@
 | 
				
			|||||||
void clicky_play(void);
 | 
					void clicky_play(void);
 | 
				
			||||||
bool process_clicky(uint16_t keycode, keyrecord_t *record);
 | 
					bool process_clicky(uint16_t keycode, keyrecord_t *record);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void clicky_freq_up(void);
 | 
				
			||||||
 | 
					void clicky_freq_down(void);
 | 
				
			||||||
 | 
					void clicky_freq_reset(void);
 | 
				
			||||||
 | 
					void clicky_freq_toggle(void);
 | 
				
			||||||
 | 
					void clicky_freq_on(void);
 | 
				
			||||||
 | 
					void clicky_freq_off(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool is_clicky_on(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user