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

@@ -23,6 +23,7 @@ void system_init(void)
_systemState.primaryAxis = PRIMARY_AXIS;
_systemState.pairedDeviceCount = 0;
_systemState.isCharging = false;
_systemState.swapLR = false;
_systemEvent = xEventGroupCreate();
@@ -74,6 +75,31 @@ bool system_getChargeStatus(void)
return charging;
}
void system_setSwapLR(bool swap)
{
xSemaphoreTake(_eventManager.mutex, portMAX_DELAY);
_systemState.swapLR = swap;
xSemaphoreGive(_eventManager.mutex);
ESP_LOGI("system", "Swap L/R: %s", swap ? "ON" : "OFF");
}
bool system_getSwapLR(void)
{
bool swap;
xSemaphoreTake(_eventManager.mutex, portMAX_DELAY);
swap = _systemState.swapLR;
xSemaphoreGive(_eventManager.mutex);
return swap;
}
void system_toggleSwapLR(void)
{
xSemaphoreTake(_eventManager.mutex, portMAX_DELAY);
_systemState.swapLR = !_systemState.swapLR;
ESP_LOGI("system", "Swap L/R toggled: %s", _systemState.swapLR ? "ON" : "OFF");
xSemaphoreGive(_eventManager.mutex);
}
void system_setZeroAngle(void)
{
xSemaphoreTake(_eventManager.mutex, portMAX_DELAY);