Add dark color scheme, backlight timeout, and L/R swap feature

- Invert UI colors: black background with white text, yellow highlights
- Add 30-second backlight timeout with auto-wake on button press
- Add Swap L/R menu option with checkbox to swap audio channels
- Update volume page styling (yellow bar, full-screen container)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Brent Perteet
2025-11-21 09:08:12 -06:00
parent 31e0e3a148
commit 3bce9e772c
4 changed files with 206 additions and 27 deletions

View File

@@ -35,7 +35,7 @@
/* device name */
#define TARGET_DEVICE_NAME "ESP_SPEAKER"
#define LOCAL_DEVICE_NAME "ESP_A2DP_SRC"
#define LOCAL_DEVICE_NAME "SOUNDSHOT"
/* AVRCP used transaction label */
#define APP_RC_CT_TL_GET_CAPS (0)
@@ -798,6 +798,8 @@ void generate_exp(uint8_t *buf, int len, float balance)
//float rate_hz = MIN_RATE_HZ * powf(MAX_RATE_HZ / MIN_RATE_HZ, abs_balance);
float samples_per_click = SAMPLE_RATE / rate_hz;
bool swap_lr = system_getSwapLR();
for (int i = 0; i < samples_needed; i++) {
int16_t left = 0;
int16_t right = 0;
@@ -814,8 +816,13 @@ void generate_exp(uint8_t *buf, int len, float balance)
click_timer -= 1.0f;
samples[i * 2 + 0] = left;
samples[i * 2 + 1] = right;
if (swap_lr) {
samples[i * 2 + 0] = right;
samples[i * 2 + 1] = left;
} else {
samples[i * 2 + 0] = left;
samples[i * 2 + 1] = right;
}
}
}