3 #include "../SinricProRequest.h"
4 #include "../EventLimiter.h"
5 #include "../SinricProStrings.h"
7 #include "../SinricProNamespace.h"
8 namespace SINRICPRO_NAMESPACE {
40 bool sendMuteEvent(
bool mute, String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION);
42 bool handleMuteController(SinricProRequest &request);
45 EventLimiter event_limiter;
51 :event_limiter(EVENT_LIMIT_STATE) {
52 T* device =
static_cast<T*
>(
this);
77 if (event_limiter)
return false;
78 T* device =
static_cast<T*
>(
this);
80 JsonDocument eventMessage = device->prepareEvent(FSTR_MUTE_setMute, cause.c_str());
81 JsonObject event_value = eventMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_value];
82 event_value[FSTR_MUTE_mute] = mute;
83 return device->sendEvent(eventMessage);
88 T* device =
static_cast<T*
>(
this);
92 if (muteCallback && request.action == FSTR_MUTE_setMute) {
93 bool mute = request.request_value[FSTR_MUTE_mute];
94 success = muteCallback(device->deviceId, mute);
95 request.response_value[FSTR_MUTE_mute] = mute;
103 template <
typename T>
104 using MuteController = SINRICPRO_NAMESPACE::MuteController<T>;
MuteController.
Definition: MuteController.h:35
bool sendMuteEvent(bool mute, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
Send setMute event to SinricPro Server indicating actual mute state.
Definition: MuteController.h:76
void onMute(MuteCallback cb)
Set callback function for setMute request.
Definition: MuteController.h:64
std::function< bool(const String &, bool &)> MuteCallback
Callback definition for onMute function.
Definition: MuteController.h:27