supla-device
Loading...
Searching...
No Matches
group_button_control_rgbw.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_GROUP_BUTTON_CONTROL_RGBW_H_
5#define SRC_SUPLA_CONTROL_GROUP_BUTTON_CONTROL_RGBW_H_
6
7#include <supla/action_handler.h>
8#include <supla/element.h>
9#include <supla/control/lighting_pwm_base.h>
10
11#define SUPLA_MAX_GROUP_CONTROL_ELEMENTS 10
12
13namespace Supla::Control {
14
15class Button;
16class LightingPwmBase;
17
19 public:
20 explicit GroupButtonControlRgbw(Button *button = nullptr);
21 void attach(Button *button);
22 void addToGroup(LightingPwmBase *rgbwElement);
23
24 void onLoadConfig(SuplaDeviceClass *sdc) override;
25 void onInit() override;
26 void handleAction(int event, int action) override;
27
28 void setButtonControlType(int rgbwChannelNumber,
29 LightingPwmBase::ButtonControlType type);
30
31 private:
32 void handleTurnOn();
33 void handleTurnOff();
34 void handleToggle();
35 void handleIterate();
36
37 Button *attachedButton = nullptr;
38 LightingPwmBase *rgbw[SUPLA_MAX_GROUP_CONTROL_ELEMENTS] = {};
39 LightingPwmBase::ButtonControlType
40 controlType[SUPLA_MAX_GROUP_CONTROL_ELEMENTS] =
41 {};
42 int rgbwCount = 0;
43};
44
45} // namespace Supla::Control
46
47#endif // SRC_SUPLA_CONTROL_GROUP_BUTTON_CONTROL_RGBW_H_
Definition SuplaDevice.h:167
Definition action_handler.h:8
Definition button.h:21
Definition group_button_control_rgbw.h:18
void onLoadConfig(SuplaDeviceClass *sdc) override
First method called on element in SuplaDevice.begin().
Definition group_button_control_rgbw.cpp:214
void onInit() override
Third method called on element in SuplaDevice.begin()
Definition group_button_control_rgbw.cpp:250
Definition lighting_pwm_base.h:48
Base class for all elements of SuplaDevice.
Definition element.h:27