3#include "../SinricProRequest.h" 
    4#include "../EventLimiter.h" 
    5#include "../SinricProStrings.h" 
    7#include "../SinricProNamespace.h" 
    8namespace SINRICPRO_NAMESPACE {
 
   10FSTR(CHANNEL, changeChannel);     
 
   11FSTR(CHANNEL, channel);           
 
   14FSTR(CHANNEL, skipChannels);      
 
   15FSTR(CHANNEL, channelCount);      
 
   80    bool handleChannelController(SinricProRequest &
request);
 
   83    EventLimiter event_limiter;
 
   91: event_limiter(EVENT_LIMIT_STATE) {
 
   92  T* 
device = 
static_cast<T*
>(
this);
 
  105  changeChannelCallback = 
cb;
 
 
  117  changeChannelNumberCallback = 
cb;
 
 
  129  skipChannelsCallback = 
cb;
 
 
  143  if (event_limiter) 
return false;
 
  144  T* 
device = 
static_cast<T*
>(
this);
 
 
 
  154  T* 
device = 
static_cast<T*
>(
this);
 
  166    if (changeChannelNumberCallback && request.request_value[FSTR_CHANNEL_channel][FSTR_CHANNEL_number].is<String>()) {
 
  167      String channelName(
"");
 
  168      int channelNumber = request.request_value[FSTR_CHANNEL_channel][FSTR_CHANNEL_number];
 
  169      success = changeChannelNumberCallback(device->deviceId, channelNumber, channelName);
 
  170      request.response_value[FSTR_CHANNEL_channel][FSTR_CHANNEL_name] = channelName;
 
  175  if (skipChannelsCallback && request.action == FSTR_CHANNEL_skipChannels) {
 
  177    int channelCount                                                = request.request_value[FSTR_CHANNEL_channelCount] | 0;
 
  178    success                                                         = skipChannelsCallback(device->deviceId, channelCount, channelName);
 
  179    request.response_value[FSTR_CHANNEL_channel][FSTR_CHANNEL_name] = channelName;
 
  189using ChannelController = SINRICPRO_NAMESPACE::ChannelController<T>;
 
 
 
 
 
AirQuality.
Definition AirQualitySensor.h:19
 
ChannelController.
Definition ChannelController.h:70
 
void onChangeChannel(ChangeChannelCallback cb)
Set callback function for changeChannel request.
Definition ChannelController.h:104
 
void onSkipChannels(SkipChannelsCallback cb)
Set callback function for skipChannels request.
Definition ChannelController.h:128
 
void onChangeChannelNumber(ChangeChannelNumberCallback cb)
Set callback function for changeChannel request.
Definition ChannelController.h:116
 
bool sendChangeChannelEvent(String channelName, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
Send changeChannel event to SinricPro Server to report selected channel.
Definition ChannelController.h:142
 
std::function< bool(const String &, int, String &)> SkipChannelsCallback
Callback definition for onSkipChannels function.
Definition ChannelController.h:63
 
std::function< bool(const String &, String &)> ChangeChannelCallback
Callback definition for onChangeChannel function.
Definition ChannelController.h:31
 
std::function< bool(const String &, int, String &)> ChangeChannelNumberCallback
Callback definition for onChangeChannelNumber function.
Definition ChannelController.h:47