|
|
@ -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(); |
|
|
|