3#include "../SinricProRequest.h"
4#include "../EventLimiter.h"
5#include "../SinricProStrings.h"
7#include "../SinricProNamespace.h"
8namespace SINRICPRO_NAMESPACE {
10FSTR(VOLUME, setVolume);
12FSTR(VOLUME, adjustVolume);
13FSTR(VOLUME, volumeDefault);
64 bool handleVolumeController(SinricProRequest &
request);
67 EventLimiter event_limiter;
74: event_limiter(EVENT_LIMIT_STATE) {
75 T*
device =
static_cast<T*
>(
this);
110 if (event_limiter)
return false;
111 T*
device =
static_cast<T*
>(
this);
121 T*
device =
static_cast<T*
>(
this);
132 if (adjustVolumeCallback && request.action == FSTR_VOLUME_adjustVolume) {
133 int volume = request.request_value[FSTR_VOLUME_volume];
134 bool volumeDefault = request.request_value[FSTR_VOLUME_volumeDefault] |
false;
135 success = adjustVolumeCallback(device->deviceId, volume, volumeDefault);
136 request.response_value[FSTR_VOLUME_volume] = volume;
145using VolumeController = SINRICPRO_NAMESPACE::VolumeController<T>;
AirQuality.
Definition AirQualitySensor.h:19
VolumeController.
Definition VolumeController.h:54
void onAdjustVolume(AdjustVolumeCallback cb)
Set callback function for adjustVolume request.
Definition VolumeController.h:97
void onSetVolume(SetVolumeCallback cb)
Set callback function for setVolume request.
Definition VolumeController.h:87
bool sendVolumeEvent(int volume, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
Send setVolume event to SinricPro Server indicating actual volume has changed.
Definition VolumeController.h:109
std::function< bool(const String &, int &)> SetVolumeCallback
Callback definition for onSetVolume function.
Definition VolumeController.h:29
std::function< bool(const String &, int &, bool)> AdjustVolumeCallback
Callback definition for onAdjustVolume function.
Definition VolumeController.h:46