Kiosk: apply schedule engine in playback and add System Settings toggle

ScrollerPage now resolves the active Block from ScheduleManager (reusing
the existing stream-switch path), honoring dynamicAudio true/false and
falling back to local selection for gaps, no schedule, or toggle off.
Adds a 'Schedule' On/Off entry (default On) in System Settings persisted
in config.yaml, and config plumbing (proclamation.schedule_enabled). All
on-device schedule times remain 12h AM/PM.
This commit is contained in:
NeilClack
2026-09-29 10:34:45 -05:00
parent 509c925480
commit da0b6ffd5e
15 changed files with 959 additions and 41 deletions
+4
View File
@@ -7,6 +7,7 @@
#include "timezone_page.h"
#include "wifi_setup_page.h"
#include "system_name_page.h"
#include "schedule_toggle_page.h"
#include <SDL3/SDL.h>
#include <SDL3_image/SDL_image.h>
#include <algorithm>
@@ -80,6 +81,9 @@ void SystemSettingsPage::activateSelected(AppState &state)
case radiantwave::settings::SystemSettingId::SystemName:
state.pages.push(state, std::make_unique<SystemNamePage>());
break;
case radiantwave::settings::SystemSettingId::Schedule:
state.pages.push(state, std::make_unique<ScheduleTogglePage>());
break;
case radiantwave::settings::SystemSettingId::WiFiSetup:
state.pages.push(state, std::make_unique<WiFiSetupPage>());
break;