supla-device
Loading...
Searching...
No Matches
weekly_schedule_buffer.h
1// SPDX-FileCopyrightText: AC SOFTWARE SP. Z O.O.
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#ifndef SRC_SUPLA_CONTROL_WEEKLY_SCHEDULE_BUFFER_H_
5#define SRC_SUPLA_CONTROL_WEEKLY_SCHEDULE_BUFFER_H_
6
7#include <supla-common/proto.h>
8
9#include "weekly_schedule_common.h"
10
11namespace Supla {
12namespace Control {
13
15 public:
18
19 TChannelConfig_WeeklySchedule *get(bool alt);
20 const TChannelConfig_WeeklySchedule *get(bool alt) const;
21 void set(bool alt, TChannelConfig_WeeklySchedule *schedule);
22
23 void clear(bool alt);
24 void clearAll();
25
26 int calculateIndex(enum DayOfWeek dayOfWeek, int hour, int quarter) const;
27 int getProgramId(const TChannelConfig_WeeklySchedule *schedule, int index)
28 const;
29 bool setWeeklySchedule(TChannelConfig_WeeklySchedule *schedule,
30 int index,
31 int programId) const;
32 bool setWeeklySchedule(TChannelConfig_WeeklySchedule *schedule,
33 enum DayOfWeek dayOfWeek,
34 int hour,
35 int quarter,
36 int programId) const;
37 TWeeklyScheduleProgram getProgramById(
38 const TChannelConfig_WeeklySchedule *schedule, int programId) const;
39 TWeeklyScheduleProgram getProgramAt(
40 const TChannelConfig_WeeklySchedule *schedule, int quarterIndex) const;
41 int getCurrentQuarter() const;
42 bool resolveCurrentProgram(const TChannelConfig_WeeklySchedule *schedule,
44 int *programId) const;
45 bool resolveProgramAt(const TChannelConfig_WeeklySchedule *schedule,
46 int quarterIndex,
48 int *programId) const;
49
50 private:
51 TChannelConfig_WeeklySchedule *weeklySchedule_ = nullptr;
52 TChannelConfig_WeeklySchedule *altWeeklySchedule_ = nullptr;
53};
54
55} // namespace Control
56} // namespace Supla
57
58#endif // SRC_SUPLA_CONTROL_WEEKLY_SCHEDULE_BUFFER_H_
Definition weekly_schedule_buffer.h:14
Definition proto.h:3276
Definition proto.h:3253