diff options
Diffstat (limited to 'quantum/audio/audio.c')
| -rw-r--r-- | quantum/audio/audio.c | 37 | 
1 files changed, 22 insertions, 15 deletions
diff --git a/quantum/audio/audio.c b/quantum/audio/audio.c index 28c8267517..c1a1500493 100644 --- a/quantum/audio/audio.c +++ b/quantum/audio/audio.c @@ -17,6 +17,7 @@  #include "audio.h"  #include "eeconfig.h"  #include "timer.h" +#include "debug.h"  #include "wait.h"  #include "util.h" @@ -62,6 +63,13 @@   * the internal state of the audio system does its calculations with the later - ms   */ +#ifndef AUDIO_DEFAULT_ON +#    define AUDIO_DEFAULT_ON true +#endif +#ifndef AUDIO_DEFAULT_CLICKY_ON +#    define AUDIO_DEFAULT_CLICKY_ON true +#endif +  #ifndef AUDIO_TONE_STACKSIZE  #    define AUDIO_TONE_STACKSIZE 8  #endif @@ -117,32 +125,31 @@ void eeconfig_update_audio_current(void) {      eeconfig_update_audio(audio_config.raw);  } +void eeconfig_update_audio_default(void) { +    audio_config.valid         = true; +    audio_config.enable        = AUDIO_DEFAULT_ON; +    audio_config.clicky_enable = AUDIO_DEFAULT_CLICKY_ON; +    eeconfig_update_audio(audio_config.raw); +} +  void audio_init(void) {      if (audio_initialized) {          return;      } -    // Check EEPROM -#ifdef EEPROM_ENABLE -    if (!eeconfig_is_enabled()) { -        eeconfig_init(); -    }      audio_config.raw = eeconfig_read_audio(); -#else // EEPROM settings -    audio_config.enable        = true; -#    ifdef AUDIO_CLICKY_ON -    audio_config.clicky_enable = true; -#    endif -#endif // EEPROM settings +    if (!audio_config.valid) { +        dprintf("audio_init audio_config.valid = 0. Write default values to EEPROM.\n"); +        eeconfig_update_audio_default(); +    }      for (uint8_t i = 0; i < AUDIO_TONE_STACKSIZE; i++) {          tones[i] = (musical_tone_t){.time_started = 0, .pitch = -1.0f, .duration = 0};      } -    if (!audio_initialized) { -        audio_driver_initialize(); -        audio_initialized = true; -    } +    audio_driver_initialize(); +    audio_initialized = true; +      stop_all_notes();  #ifndef AUDIO_INIT_DELAY      audio_startup();  | 
