58 virtual bool canActivate()
const = 0;
59 virtual bool isActive()
const = 0;
60 virtual bool switchToWeeklySchedule() = 0;
61 virtual void switchToManualMode() = 0;
62 virtual void restoreWeeklyScheduleMode(
bool enabled) = 0;
63 virtual bool processWeeklySchedule() = 0;
64 virtual bool isManualActionAllowed(
bool turnOn)
const {
68 virtual bool isExternallyManaged()
const {
71 virtual void onManualAction() {}
74 WeeklyScheduleClockState getClockState()
const;
75 WeeklyScheduleClockState getClockState(
bool startupDelay)
const;
77 bool startupDelay)
const;
78 bool processCurrentProgram(
bool startupDelay);
79 bool updateCurrentProgramId(
int programId);
80 void resetCurrentProgramId();
84 virtual void onWeeklyScheduleClockState(WeeklyScheduleClockState state) {
87 virtual bool shouldUseAltWeeklySchedule()
const {
90 virtual bool requiresReadyClock()
const {
return false; }
94 uint32_t *elapsedSeconds);
99 bool resolveWeeklyScheduleProgram(
103 virtual bool applyResolvedWeeklyScheduleProgram(
106 bool programChanged);
111 int currentProgramId_ = -1;