1 #ifndef _VOLUMECONTROLLER_H_
2 #define _VOLUMECONTROLLER_H_
4 #include "SinricProRequest.h"
53 bool handleVolumeController(SinricProRequest &request);
91 T& device =
static_cast<T&
>(*this);
93 DynamicJsonDocument eventMessage = device.prepareEvent(
"setVolume", cause.c_str());
94 JsonObject event_value = eventMessage[
"payload"][
"value"];
95 event_value[
"volume"] = volume;
96 return device.sendEvent(eventMessage);
101 T &device =
static_cast<T &
>(*this);
103 bool success =
false;
105 if (volumeCallback && request.action ==
"setVolume") {
106 int volume = request.request_value[
"volume"];
107 success = volumeCallback(device.deviceId, volume);
108 request.response_value[
"volume"] = volume;
112 if (adjustVolumeCallback && request.action ==
"adjustVolume") {
113 int volume = request.request_value[
"volume"];
114 bool volumeDefault = request.request_value[
"volumeDefault"] |
false;
115 success = adjustVolumeCallback(device.deviceId, volume, volumeDefault);
116 request.response_value[
"volume"] = volume;
VolumeController.
Definition: VolumeController.h:11
bool sendVolumeEvent(int volume, String cause="PHYSICAL_INTERACTION")
Send setVolume event to SinricPro Server indicating actual volume has changed.
Definition: VolumeController.h:90
void onAdjustVolume(AdjustVolumeCallback cb)
Set callback function for adjustVolume request.
Definition: VolumeController.h:78
std::function< bool(const String &, int &)> SetVolumeCallback
Callback definition for onSetVolume function.
Definition: VolumeController.h:28
void onSetVolume(SetVolumeCallback cb)
Set callback function for setVolume request.
Definition: VolumeController.h:68
std::function< bool(const String &, int &, bool)> AdjustVolumeCallback
Callback definition for onAdjustVolume function.
Definition: VolumeController.h:45