3#include "../SinricProRequest.h" 
    4#include "../EventLimiter.h" 
    5#include "../SinricProStrings.h" 
    6#include "../SinricProNamespace.h" 
   11enum class SmartButtonPressType {
 
   17namespace SINRICPRO_NAMESPACE {
 
   19FSTR(BUTTONSTATE, state);               
 
   20FSTR(BUTTONSTATE, singlePress);         
 
   21FSTR(BUTTONSTATE, doublePress);         
 
   22FSTR(BUTTONSTATE, longPress);           
 
   23FSTR(BUTTONSTATE, setSmartButtonState); 
 
   26using SmartButtonPressCallback = std::function<bool(
const String&, SmartButtonPressType)>;
 
   46    void onButtonPress(SmartButtonPressCallback 
cb);
 
   54    bool handleSmartButtonStateController(SinricProRequest &
request);
 
   57    SmartButtonPressCallback buttonPressCallback;
 
   64    SmartButtonPressType getSmartButtonPressType(
const String& 
stateStr);
 
 
   69    T* 
device = 
static_cast<T*
>(
this);
 
   70    device->registerRequestHandler(
 
   73                 std::placeholders::_1)
 
 
   79    buttonPressCallback = 
cb;
 
 
   85        return SmartButtonPressType::SINGLE_PRESS;
 
   86    } 
else if (stateStr == FSTR_BUTTONSTATE_doublePress) {
 
   87        return SmartButtonPressType::DOUBLE_PRESS;
 
   89        return SmartButtonPressType::LONG_PRESS;
 
  100    T* 
device = 
static_cast<T*
>(
this);
 
 
  117using SmartButtonStateController = SINRICPRO_NAMESPACE::SmartButtonStateController<T>;
 
AirQuality.
Definition AirQualitySensor.h:19