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.
32 lines
808 B
C++
32 lines
808 B
C++
#pragma once
|
|
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
namespace radiantwave::settings {
|
|
|
|
// Identifies a page reachable from the System Settings menu.
|
|
enum class SystemSettingId {
|
|
EmailAddress,
|
|
LicenseKey,
|
|
SystemName,
|
|
Schedule,
|
|
WiFiSetup,
|
|
Timezone,
|
|
DateFormat,
|
|
};
|
|
|
|
// One row in the System Settings menu. `label` is what the user sees;
|
|
// `id` selects the page the row opens.
|
|
struct SystemSettingEntry {
|
|
std::string label;
|
|
SystemSettingId id;
|
|
};
|
|
|
|
// The ordered System Settings entries. Adding a future setting (System Name in
|
|
// Phase 2, Schedule toggle in Phase 3) is a single entry here plus its page
|
|
// wiring — no new menu plumbing. Kept free of SDL so it is unit-testable.
|
|
std::vector<SystemSettingEntry> systemSettingEntries();
|
|
|
|
} // namespace radiantwave::settings
|