Remove redundant audio eeconfig init (#22736)

This commit is contained in:
Joel Challis 2023-12-24 06:52:58 +00:00 committed by GitHub
parent b824faca71
commit b24bd2351a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 42 additions and 17 deletions

View file

@ -17,6 +17,8 @@
"APA102_DI_PIN": {"info_key": "apa102.data_pin"}, "APA102_DI_PIN": {"info_key": "apa102.data_pin"},
// Audio // Audio
"AUDIO_DEFAULT_ON": {"info_key": "audio.default.on", "value_type": "bool"},
"AUDIO_DEFAULT_CLICKY_ON": {"info_key": "audio.default.clicky", "value_type": "bool"},
"AUDIO_VOICES": {"info_key": "audio.voices", "value_type": "bool"}, "AUDIO_VOICES": {"info_key": "audio.voices", "value_type": "bool"},
"SENDSTRING_BELL": {"info_key": "audio.macro_beep", "value_type": "bool"}, "SENDSTRING_BELL": {"info_key": "audio.macro_beep", "value_type": "bool"},

View file

@ -123,6 +123,14 @@
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"default": {
"type": "object",
"additionalProperties": false,
"properties": {
"on": {"type": "boolean"},
"clicky": {"type": "boolean"}
}
},
"macro_beep": {"type": "boolean"}, "macro_beep": {"type": "boolean"},
"pins": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}, "pins": {"$ref": "qmk.definitions.v1#/mcu_pin_array"},
"voices": {"type": "boolean"} "voices": {"type": "boolean"}

View file

@ -111,6 +111,13 @@ Configures the [APA102](apa102_driver.md) driver.
Configures the [Audio](feature_audio.md) feature. Configures the [Audio](feature_audio.md) feature.
* `audio` * `audio`
* `default`
* `on`
* The default audio enabled state.
* Default: `true`
* `clicky`
* The default audio clicky enabled state.
* Default: `true`
* `macro_beep` * `macro_beep`
* Play a short beep for `\a` (ASCII `BEL`) characters in Send String macros. * Play a short beep for `\a` (ASCII `BEL`) characters in Send String macros.
* Default: `false` * Default: `false`

View file

@ -17,6 +17,7 @@
#include "audio.h" #include "audio.h"
#include "eeconfig.h" #include "eeconfig.h"
#include "timer.h" #include "timer.h"
#include "debug.h"
#include "wait.h" #include "wait.h"
#include "util.h" #include "util.h"
@ -62,6 +63,13 @@
* the internal state of the audio system does its calculations with the later - ms * 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 #ifndef AUDIO_TONE_STACKSIZE
# define AUDIO_TONE_STACKSIZE 8 # define AUDIO_TONE_STACKSIZE 8
#endif #endif
@ -117,32 +125,31 @@ void eeconfig_update_audio_current(void) {
eeconfig_update_audio(audio_config.raw); 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) { void audio_init(void) {
if (audio_initialized) { if (audio_initialized) {
return; return;
} }
// Check EEPROM
#ifdef EEPROM_ENABLE
if (!eeconfig_is_enabled()) {
eeconfig_init();
}
audio_config.raw = eeconfig_read_audio(); audio_config.raw = eeconfig_read_audio();
#else // EEPROM settings if (!audio_config.valid) {
audio_config.enable = true; dprintf("audio_init audio_config.valid = 0. Write default values to EEPROM.\n");
# ifdef AUDIO_CLICKY_ON eeconfig_update_audio_default();
audio_config.clicky_enable = true; }
# endif
#endif // EEPROM settings
for (uint8_t i = 0; i < AUDIO_TONE_STACKSIZE; i++) { for (uint8_t i = 0; i < AUDIO_TONE_STACKSIZE; i++) {
tones[i] = (musical_tone_t){.time_started = 0, .pitch = -1.0f, .duration = 0}; tones[i] = (musical_tone_t){.time_started = 0, .pitch = -1.0f, .duration = 0};
} }
if (!audio_initialized) {
audio_driver_initialize(); audio_driver_initialize();
audio_initialized = true; audio_initialized = true;
}
stop_all_notes(); stop_all_notes();
#ifndef AUDIO_INIT_DELAY #ifndef AUDIO_INIT_DELAY
audio_startup(); audio_startup();

View file

@ -33,7 +33,8 @@ typedef union {
struct { struct {
bool enable : 1; bool enable : 1;
bool clicky_enable : 1; bool clicky_enable : 1;
uint8_t level : 6; bool valid : 1;
uint8_t reserved : 5;
}; };
} audio_config_t; } audio_config_t;

View file

@ -54,7 +54,7 @@ void eeconfig_init_quantum(void) {
// Enable oneshot and autocorrect by default: 0b0001 0100 0000 0000 // Enable oneshot and autocorrect by default: 0b0001 0100 0000 0000
eeprom_update_word(EECONFIG_KEYMAP, 0x1400); eeprom_update_word(EECONFIG_KEYMAP, 0x1400);
eeprom_update_byte(EECONFIG_BACKLIGHT, 0); eeprom_update_byte(EECONFIG_BACKLIGHT, 0);
eeprom_update_byte(EECONFIG_AUDIO, 0xFF); // On by default eeprom_update_byte(EECONFIG_AUDIO, 0);
eeprom_update_dword(EECONFIG_RGBLIGHT, 0); eeprom_update_dword(EECONFIG_RGBLIGHT, 0);
eeprom_update_byte(EECONFIG_RGBLIGHT_EXTENDED, 0); eeprom_update_byte(EECONFIG_RGBLIGHT_EXTENDED, 0);
eeprom_update_byte(EECONFIG_UNUSED, 0); eeprom_update_byte(EECONFIG_UNUSED, 0);