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
@@ -234,6 +234,9 @@ AppConfig parseConfigFromYaml(const std::string& yamlContent) {
if (proc_node.hasChild("schedule_active")) {
config.proclamation.schedule_active = proc_node.getChild("schedule_active").asBool(config.proclamation.schedule_active);
}
if (proc_node.hasChild("schedule_enabled")) {
config.proclamation.schedule_enabled = proc_node.getChild("schedule_enabled").asBool(config.proclamation.schedule_enabled);
}
}
return config;
@@ -260,6 +263,7 @@ std::string serializeConfigToYaml(const AppConfig& config) {
ss << " font_size: " << config.proclamation.font_size << "\n";
ss << " current_id: \"" << config.proclamation.current_id << "\"\n";
ss << " schedule_active: " << (config.proclamation.schedule_active ? "true" : "false") << "\n";
ss << " schedule_enabled: " << (config.proclamation.schedule_enabled ? "true" : "false") << "\n";
return ss.str();
}