3 #include "../SinricProRequest.h"
4 #include "../EventLimiter.h"
5 #include "../SinricProStrings.h"
7 #include "../SinricProNamespace.h"
8 namespace SINRICPRO_NAMESPACE {
10 FSTR(MEDIA, mediaControl);
43 bool handleMediaController(SinricProRequest &request);
46 EventLimiter event_limiter;
52 : event_limiter(EVENT_LIMIT_STATE) {
53 T* device =
static_cast<T*
>(
this);
66 mediaControlCallback = cb;
80 if (event_limiter)
return false;
81 T* device =
static_cast<T*
>(
this);
83 JsonDocument eventMessage = device->prepareEvent(FSTR_MEDIA_mediaControl, cause.c_str());
84 JsonObject event_value = eventMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_value];
85 event_value[FSTR_MEDIA_control] = mediaControl;
86 return device->sendEvent(eventMessage);
91 T* device =
static_cast<T*
>(
this);
95 if (mediaControlCallback && request.action == FSTR_MEDIA_mediaControl) {
96 String mediaControl = request.request_value[FSTR_MEDIA_control];
97 success = mediaControlCallback(device->deviceId, mediaControl);
98 request.response_value[FSTR_MEDIA_control] = mediaControl;
107 template <
typename T>
108 using MediaController = SINRICPRO_NAMESPACE::MediaController<T>;
std::function< bool(const String &, String &)> MediaControlCallback
Callback definition for onMediaControl function.
Definition: MediaController.h:27