From 368654d552daf61db94ecc8c403338ff76d11d88 Mon Sep 17 00:00:00 2001 From: sivar2311 Date: Sat, 11 Jun 2022 08:52:33 +0200 Subject: [PATCH] Fixed folder structure and configuration --- Doxyfile | 11 +- doc-examples/documentation.dox | 11 - .../dir_a3d2086e3c3fe22c73a549735325deec.html | 98 - docs/docs/_air_quality_sensor_8h_source.html | 145 -- .../_brightness_controller_8h_source.html | 192 -- docs/docs/_channel_controller_8h_source.html | 219 -- docs/docs/_color_controller_8h_source.html | 186 -- ...olor_temperature_controller_8h_source.html | 213 -- docs/docs/_contact_sensor_8h_source.html | 141 -- docs/docs/_door_controller_8h_source.html | 174 -- docs/docs/_doorbell_8h_source.html | 140 -- .../docs/_equalizer_controller_8h_source.html | 243 -- docs/docs/_event_limiter_8h_source.html | 151 -- docs/docs/_input_controller_8h_source.html | 176 -- docs/docs/_keypad_controller_8h_source.html | 159 -- docs/docs/_lock_controller_8h_source.html | 179 -- docs/docs/_media_controller_8h_source.html | 176 -- docs/docs/_mode_controller_8h_source.html | 214 -- docs/docs/_motion_sensor_8h_source.html | 141 -- docs/docs/_mute_controller_8h_source.html | 172 -- .../_percentage_controller_8h_source.html | 190 -- .../_power_level_controller_8h_source.html | 193 -- docs/docs/_power_sensor_8h_source.html | 174 -- .../_power_state_controller_8h_source.html | 177 -- docs/docs/_push_notification_8h_source.html | 141 -- docs/docs/_range_controller_8h_source.html | 333 --- docs/docs/_setting_controller_8h_source.html | 158 -- docs/docs/_sinric_pro_8h_source.html | 574 ----- ...nric_pro_air_quality_sensor_8h_source.html | 136 -- docs/docs/_sinric_pro_blinds_8h_source.html | 136 -- docs/docs/_sinric_pro_camera_8h_source.html | 133 -- docs/docs/_sinric_pro_config_8h_source.html | 146 -- .../_sinric_pro_contactsensor_8h_source.html | 136 -- docs/docs/_sinric_pro_debug_8h_source.html | 120 - docs/docs/_sinric_pro_device_8h_source.html | 207 -- ...sinric_pro_device_interface_8h_source.html | 117 - .../_sinric_pro_dim_switch_8h_source.html | 137 -- docs/docs/_sinric_pro_doorbell_8h_source.html | 136 -- docs/docs/_sinric_pro_fan_8h_source.html | 137 -- docs/docs/_sinric_pro_fan_u_s_8h_source.html | 137 -- .../_sinric_pro_garage_door_8h_source.html | 133 -- .../docs/_sinric_pro_interface_8h_source.html | 123 - docs/docs/_sinric_pro_light_8h_source.html | 144 -- docs/docs/_sinric_pro_lock_8h_source.html | 133 -- .../docs/_sinric_pro_messageid_8h_source.html | 134 -- .../_sinric_pro_motionsensor_8h_source.html | 137 -- .../docs/_sinric_pro_namespace_8h_source.html | 110 - .../_sinric_pro_power_sensor_8h_source.html | 137 -- docs/docs/_sinric_pro_queue_8h_source.html | 150 -- docs/docs/_sinric_pro_request_8h_source.html | 117 - .../docs/_sinric_pro_signature_8h_source.html | 116 - docs/docs/_sinric_pro_speaker_8h_source.html | 157 -- docs/docs/_sinric_pro_strings_8h_source.html | 132 -- docs/docs/_sinric_pro_switch_8h_source.html | 133 -- docs/docs/_sinric_pro_t_v_8h_source.html | 153 -- ...inric_pro_temperaturesensor_8h_source.html | 137 -- .../_sinric_pro_thermostat_8h_source.html | 141 -- docs/docs/_sinric_pro_u_d_p_8h_source.html | 175 -- docs/docs/_sinric_pro_version_8h_source.html | 110 - .../docs/_sinric_pro_websocket_8h_source.html | 292 --- .../_sinric_pro_window_a_c_8h_source.html | 140 -- docs/docs/_temperature_sensor_8h_source.html | 141 -- .../_thermostat_controller_8h_source.html | 236 -- docs/docs/_toggle_controller_8h_source.html | 178 -- docs/docs/_volume_controller_8h_source.html | 193 -- docs/docs/annotated.html | 149 -- docs/docs/annotated_dup.js | 52 - docs/docs/bc_s.png | Bin 676 -> 0 bytes docs/docs/bdwn.png | Bin 147 -> 0 bytes ..._9__17_1_1_air_quality_sensor-members.html | 101 - ..._r_o__2__9__17_1_1_air_quality_sensor.html | 186 -- ..._p_r_o__2__9__17_1_1_air_quality_sensor.js | 4 - ...1_1_air_quality_sensor__inherit__graph.map | 5 - ...1_1_air_quality_sensor__inherit__graph.md5 | 1 - ...1_1_air_quality_sensor__inherit__graph.png | Bin 3493 -> 0 bytes ..._17_1_1_brightness_controller-members.html | 103 - ...o__2__9__17_1_1_brightness_controller.html | 234 -- ...r_o__2__9__17_1_1_brightness_controller.js | 6 - ..._brightness_controller__inherit__graph.map | 5 - ..._brightness_controller__inherit__graph.md5 | 1 - ..._brightness_controller__inherit__graph.png | Bin 3051 -> 0 bytes ..._9__17_1_1_channel_controller-members.html | 104 - ..._r_o__2__9__17_1_1_channel_controller.html | 265 --- ..._p_r_o__2__9__17_1_1_channel_controller.js | 7 - ...1_1_channel_controller__inherit__graph.map | 5 - ...1_1_channel_controller__inherit__graph.md5 | 1 - ...1_1_channel_controller__inherit__graph.png | Bin 2855 -> 0 bytes ...2__9__17_1_1_color_controller-members.html | 102 - ..._p_r_o__2__9__17_1_1_color_controller.html | 217 -- ..._c_p_r_o__2__9__17_1_1_color_controller.js | 5 - ...7_1_1_color_controller__inherit__graph.map | 5 - ...7_1_1_color_controller__inherit__graph.md5 | 1 - ...7_1_1_color_controller__inherit__graph.png | Bin 2844 -> 0 bytes ..._color_temperature_controller-members.html | 104 - ...__17_1_1_color_temperature_controller.html | 270 --- ..._9__17_1_1_color_temperature_controller.js | 7 - ...temperature_controller__inherit__graph.map | 5 - ...temperature_controller__inherit__graph.md5 | 1 - ...temperature_controller__inherit__graph.png | Bin 3159 -> 0 bytes ...__2__9__17_1_1_contact_sensor-members.html | 101 - ..._c_p_r_o__2__9__17_1_1_contact_sensor.html | 168 -- ..._i_c_p_r_o__2__9__17_1_1_contact_sensor.js | 4 - ..._17_1_1_contact_sensor__inherit__graph.map | 5 - ..._17_1_1_contact_sensor__inherit__graph.md5 | 1 - ..._17_1_1_contact_sensor__inherit__graph.png | Bin 3359 -> 0 bytes ..._2__9__17_1_1_door_controller-members.html | 102 - ...c_p_r_o__2__9__17_1_1_door_controller.html | 204 -- ...i_c_p_r_o__2__9__17_1_1_door_controller.js | 5 - ...17_1_1_door_controller__inherit__graph.map | 5 - ...17_1_1_door_controller__inherit__graph.md5 | 1 - ...17_1_1_door_controller__inherit__graph.png | Bin 3166 -> 0 bytes ..._p_r_o__2__9__17_1_1_doorbell-members.html | 101 - ..._n_r_i_c_p_r_o__2__9__17_1_1_doorbell.html | 161 -- ..._i_n_r_i_c_p_r_o__2__9__17_1_1_doorbell.js | 4 - ..._2__9__17_1_1_doorbell__inherit__graph.map | 5 - ..._2__9__17_1_1_doorbell__inherit__graph.md5 | 1 - ..._2__9__17_1_1_doorbell__inherit__graph.png | Bin 2905 -> 0 bytes ...__17_1_1_equalizer_controller-members.html | 104 - ..._o__2__9__17_1_1_equalizer_controller.html | 273 --- ..._r_o__2__9__17_1_1_equalizer_controller.js | 7 - ...1_equalizer_controller__inherit__graph.map | 5 - ...1_equalizer_controller__inherit__graph.md5 | 1 - ...1_equalizer_controller__inherit__graph.png | Bin 3176 -> 0 bytes ...2__9__17_1_1_input_controller-members.html | 102 - ..._p_r_o__2__9__17_1_1_input_controller.html | 206 -- ..._c_p_r_o__2__9__17_1_1_input_controller.js | 5 - ...7_1_1_input_controller__inherit__graph.map | 7 - ...7_1_1_input_controller__inherit__graph.md5 | 1 - ...7_1_1_input_controller__inherit__graph.png | Bin 5946 -> 0 bytes ...__9__17_1_1_keypad_controller-members.html | 101 - ...p_r_o__2__9__17_1_1_keypad_controller.html | 145 -- ...c_p_r_o__2__9__17_1_1_keypad_controller.js | 4 - ..._2__9__17_1_1_lock_controller-members.html | 102 - ...c_p_r_o__2__9__17_1_1_lock_controller.html | 204 -- ...i_c_p_r_o__2__9__17_1_1_lock_controller.js | 5 - ...17_1_1_lock_controller__inherit__graph.map | 5 - ...17_1_1_lock_controller__inherit__graph.md5 | 1 - ...17_1_1_lock_controller__inherit__graph.png | Bin 2815 -> 0 bytes ...2__9__17_1_1_media_controller-members.html | 102 - ..._p_r_o__2__9__17_1_1_media_controller.html | 206 -- ..._c_p_r_o__2__9__17_1_1_media_controller.js | 5 - ...7_1_1_media_controller__inherit__graph.map | 7 - ...7_1_1_media_controller__inherit__graph.md5 | 1 - ...7_1_1_media_controller__inherit__graph.png | Bin 5545 -> 0 bytes ..._2__9__17_1_1_mode_controller-members.html | 104 - ...c_p_r_o__2__9__17_1_1_mode_controller.html | 302 --- ...i_c_p_r_o__2__9__17_1_1_mode_controller.js | 7 - ...17_1_1_mode_controller__inherit__graph.map | 5 - ...17_1_1_mode_controller__inherit__graph.md5 | 1 - ...17_1_1_mode_controller__inherit__graph.png | Bin 3094 -> 0 bytes ...o__2__9__17_1_1_motion_sensor-members.html | 101 - ...i_c_p_r_o__2__9__17_1_1_motion_sensor.html | 173 -- ...r_i_c_p_r_o__2__9__17_1_1_motion_sensor.js | 4 - ...__17_1_1_motion_sensor__inherit__graph.map | 5 - ...__17_1_1_motion_sensor__inherit__graph.md5 | 1 - ...__17_1_1_motion_sensor__inherit__graph.png | Bin 3205 -> 0 bytes ..._2__9__17_1_1_mute_controller-members.html | 102 - ...c_p_r_o__2__9__17_1_1_mute_controller.html | 206 -- ...i_c_p_r_o__2__9__17_1_1_mute_controller.js | 5 - ...17_1_1_mute_controller__inherit__graph.map | 7 - ...17_1_1_mute_controller__inherit__graph.md5 | 1 - ...17_1_1_mute_controller__inherit__graph.png | Bin 5996 -> 0 bytes ..._17_1_1_percentage_controller-members.html | 103 - ...o__2__9__17_1_1_percentage_controller.html | 224 -- ...r_o__2__9__17_1_1_percentage_controller.js | 6 - ...17_1_1_power_level_controller-members.html | 103 - ...__2__9__17_1_1_power_level_controller.html | 234 -- ..._o__2__9__17_1_1_power_level_controller.js | 6 - ...power_level_controller__inherit__graph.map | 7 - ...power_level_controller__inherit__graph.md5 | 1 - ...power_level_controller__inherit__graph.png | Bin 4936 -> 0 bytes ..._o__2__9__17_1_1_power_sensor-members.html | 101 - ..._i_c_p_r_o__2__9__17_1_1_power_sensor.html | 208 -- ..._r_i_c_p_r_o__2__9__17_1_1_power_sensor.js | 4 - ...9__17_1_1_power_sensor__inherit__graph.map | 5 - ...9__17_1_1_power_sensor__inherit__graph.md5 | 1 - ...9__17_1_1_power_sensor__inherit__graph.png | Bin 3091 -> 0 bytes ...17_1_1_power_state_controller-members.html | 102 - ...__2__9__17_1_1_power_state_controller.html | 236 -- ..._o__2__9__17_1_1_power_state_controller.js | 5 - ...power_state_controller__inherit__graph.map | 37 - ...power_state_controller__inherit__graph.md5 | 1 - ...power_state_controller__inherit__graph.png | Bin 80229 -> 0 bytes ...__9__17_1_1_push_notification-members.html | 101 - ...p_r_o__2__9__17_1_1_push_notification.html | 197 -- ...c_p_r_o__2__9__17_1_1_push_notification.js | 4 - ..._1_1_push_notification__inherit__graph.map | 41 - ..._1_1_push_notification__inherit__graph.md5 | 1 - ..._1_1_push_notification__inherit__graph.png | Bin 82078 -> 0 bytes ...2__9__17_1_1_range_controller-members.html | 105 - ..._p_r_o__2__9__17_1_1_range_controller.html | 332 --- ..._c_p_r_o__2__9__17_1_1_range_controller.js | 8 - ...7_1_1_range_controller__inherit__graph.map | 9 - ...7_1_1_range_controller__inherit__graph.md5 | 1 - ...7_1_1_range_controller__inherit__graph.png | Bin 8889 -> 0 bytes ...sinric_pro_air_quality_sensor-members.html | 104 - ..._17_1_1_sinric_pro_air_quality_sensor.html | 337 --- ...9__17_1_1_sinric_pro_air_quality_sensor.js | 7 - ...pro_air_quality_sensor__inherit__graph.map | 10 - ...pro_air_quality_sensor__inherit__graph.md5 | 1 - ...pro_air_quality_sensor__inherit__graph.png | Bin 12928 -> 0 bytes ...__9__17_1_1_sinric_pro_blinds-members.html | 108 - ...p_r_o__2__9__17_1_1_sinric_pro_blinds.html | 516 ----- ...c_p_r_o__2__9__17_1_1_sinric_pro_blinds.js | 11 - ..._1_1_sinric_pro_blinds__inherit__graph.map | 10 - ..._1_1_sinric_pro_blinds__inherit__graph.md5 | 1 - ..._1_1_sinric_pro_blinds__inherit__graph.png | Bin 11279 -> 0 bytes ...__9__17_1_1_sinric_pro_camera-members.html | 103 - ...p_r_o__2__9__17_1_1_sinric_pro_camera.html | 265 --- ...c_p_r_o__2__9__17_1_1_sinric_pro_camera.js | 6 - ..._1_1_sinric_pro_camera__inherit__graph.map | 8 - ..._1_1_sinric_pro_camera__inherit__graph.md5 | 1 - ..._1_1_sinric_pro_camera__inherit__graph.png | Bin 7990 -> 0 bytes ...2__9__17_1_1_sinric_pro_class-members.html | 107 - ..._p_r_o__2__9__17_1_1_sinric_pro_class.html | 371 --- ..._c_p_r_o__2__9__17_1_1_sinric_pro_class.js | 10 - ..._1_1_sinric_pro_contactsensor-members.html | 104 - ...2__9__17_1_1_sinric_pro_contactsensor.html | 319 --- ...__2__9__17_1_1_sinric_pro_contactsensor.js | 7 - ...nric_pro_contactsensor__inherit__graph.map | 10 - ...nric_pro_contactsensor__inherit__graph.md5 | 1 - ...nric_pro_contactsensor__inherit__graph.png | Bin 12225 -> 0 bytes ...__9__17_1_1_sinric_pro_device-members.html | 99 - ...p_r_o__2__9__17_1_1_sinric_pro_device.html | 134 -- ..._1_1_sinric_pro_device__inherit__graph.map | 22 - ..._1_1_sinric_pro_device__inherit__graph.md5 | 1 - ..._1_1_sinric_pro_device__inherit__graph.png | Bin 66361 -> 0 bytes ..._17_1_1_sinric_pro_dim_switch-members.html | 106 - ...o__2__9__17_1_1_sinric_pro_dim_switch.html | 399 ---- ...r_o__2__9__17_1_1_sinric_pro_dim_switch.js | 9 - ..._sinric_pro_dim_switch__inherit__graph.map | 10 - ..._sinric_pro_dim_switch__inherit__graph.md5 | 1 - ..._sinric_pro_dim_switch__inherit__graph.png | Bin 11759 -> 0 bytes ...9__17_1_1_sinric_pro_doorbell-members.html | 104 - ...r_o__2__9__17_1_1_sinric_pro_doorbell.html | 312 --- ...p_r_o__2__9__17_1_1_sinric_pro_doorbell.js | 7 - ..._1_sinric_pro_doorbell__inherit__graph.map | 10 - ..._1_sinric_pro_doorbell__inherit__graph.md5 | 1 - ..._1_sinric_pro_doorbell__inherit__graph.png | Bin 11395 -> 0 bytes ...__2__9__17_1_1_sinric_pro_fan-members.html | 106 - ..._c_p_r_o__2__9__17_1_1_sinric_pro_fan.html | 399 ---- ..._i_c_p_r_o__2__9__17_1_1_sinric_pro_fan.js | 9 - ..._17_1_1_sinric_pro_fan__inherit__graph.map | 10 - ..._17_1_1_sinric_pro_fan__inherit__graph.md5 | 1 - ..._17_1_1_sinric_pro_fan__inherit__graph.png | Bin 10922 -> 0 bytes ..._9__17_1_1_sinric_pro_fan_u_s-members.html | 108 - ..._r_o__2__9__17_1_1_sinric_pro_fan_u_s.html | 511 ----- ..._p_r_o__2__9__17_1_1_sinric_pro_fan_u_s.js | 11 - ...1_1_sinric_pro_fan_u_s__inherit__graph.map | 10 - ...1_1_sinric_pro_fan_u_s__inherit__graph.md5 | 1 - ...1_1_sinric_pro_fan_u_s__inherit__graph.png | Bin 11342 -> 0 bytes ...17_1_1_sinric_pro_garage_door-members.html | 103 - ...__2__9__17_1_1_sinric_pro_garage_door.html | 268 --- ..._o__2__9__17_1_1_sinric_pro_garage_door.js | 6 - ...sinric_pro_garage_door__inherit__graph.map | 8 - ...sinric_pro_garage_door__inherit__graph.md5 | 1 - ...sinric_pro_garage_door__inherit__graph.png | Bin 8042 -> 0 bytes ...2__9__17_1_1_sinric_pro_light-members.html | 112 - ..._p_r_o__2__9__17_1_1_sinric_pro_light.html | 698 ------ ..._c_p_r_o__2__9__17_1_1_sinric_pro_light.js | 15 - ...7_1_1_sinric_pro_light__inherit__graph.map | 14 - ...7_1_1_sinric_pro_light__inherit__graph.md5 | 1 - ...7_1_1_sinric_pro_light__inherit__graph.png | Bin 21825 -> 0 bytes ..._2__9__17_1_1_sinric_pro_lock-members.html | 103 - ...c_p_r_o__2__9__17_1_1_sinric_pro_lock.html | 269 --- ...i_c_p_r_o__2__9__17_1_1_sinric_pro_lock.js | 6 - ...17_1_1_sinric_pro_lock__inherit__graph.map | 8 - ...17_1_1_sinric_pro_lock__inherit__graph.md5 | 1 - ...17_1_1_sinric_pro_lock__inherit__graph.png | Bin 6392 -> 0 bytes ...7_1_1_sinric_pro_motionsensor-members.html | 104 - ..._2__9__17_1_1_sinric_pro_motionsensor.html | 324 --- ...o__2__9__17_1_1_sinric_pro_motionsensor.js | 7 - ...inric_pro_motionsensor__inherit__graph.map | 10 - ...inric_pro_motionsensor__inherit__graph.md5 | 1 - ...inric_pro_motionsensor__inherit__graph.png | Bin 12532 -> 0 bytes ...7_1_1_sinric_pro_power_sensor-members.html | 104 - ..._2__9__17_1_1_sinric_pro_power_sensor.html | 359 --- ...o__2__9__17_1_1_sinric_pro_power_sensor.js | 7 - ...inric_pro_power_sensor__inherit__graph.map | 10 - ...inric_pro_power_sensor__inherit__graph.md5 | 1 - ...inric_pro_power_sensor__inherit__graph.png | Bin 12071 -> 0 bytes ..._9__17_1_1_sinric_pro_speaker-members.html | 120 - ..._r_o__2__9__17_1_1_sinric_pro_speaker.html | 1107 --------- ..._p_r_o__2__9__17_1_1_sinric_pro_speaker.js | 23 - ...1_1_sinric_pro_speaker__inherit__graph.map | 20 - ...1_1_sinric_pro_speaker__inherit__graph.md5 | 1 - ...1_1_sinric_pro_speaker__inherit__graph.png | Bin 37882 -> 0 bytes ...__9__17_1_1_sinric_pro_switch-members.html | 103 - ...p_r_o__2__9__17_1_1_sinric_pro_switch.html | 265 --- ...c_p_r_o__2__9__17_1_1_sinric_pro_switch.js | 6 - ..._1_1_sinric_pro_switch__inherit__graph.map | 8 - ..._1_1_sinric_pro_switch__inherit__graph.md5 | 1 - ..._1_1_sinric_pro_switch__inherit__graph.png | Bin 7834 -> 0 bytes ...__2__9__17_1_1_sinric_pro_t_v-members.html | 116 - ..._c_p_r_o__2__9__17_1_1_sinric_pro_t_v.html | 885 -------- ..._i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v.js | 19 - ..._17_1_1_sinric_pro_t_v__inherit__graph.map | 18 - ..._17_1_1_sinric_pro_t_v__inherit__graph.md5 | 1 - ..._17_1_1_sinric_pro_t_v__inherit__graph.png | Bin 30078 -> 0 bytes ..._sinric_pro_temperaturesensor-members.html | 104 - ...__17_1_1_sinric_pro_temperaturesensor.html | 330 --- ..._9__17_1_1_sinric_pro_temperaturesensor.js | 7 - ..._pro_temperaturesensor__inherit__graph.map | 10 - ..._pro_temperaturesensor__inherit__graph.md5 | 1 - ..._pro_temperaturesensor__inherit__graph.png | Bin 13009 -> 0 bytes ..._17_1_1_sinric_pro_thermostat-members.html | 109 - ...o__2__9__17_1_1_sinric_pro_thermostat.html | 567 ----- ...r_o__2__9__17_1_1_sinric_pro_thermostat.js | 12 - ..._sinric_pro_thermostat__inherit__graph.map | 12 - ..._sinric_pro_thermostat__inherit__graph.md5 | 1 - ..._sinric_pro_thermostat__inherit__graph.png | Bin 15906 -> 0 bytes ..._17_1_1_sinric_pro_window_a_c-members.html | 113 - ...o__2__9__17_1_1_sinric_pro_window_a_c.html | 749 ------- ...r_o__2__9__17_1_1_sinric_pro_window_a_c.js | 16 - ..._sinric_pro_window_a_c__inherit__graph.map | 12 - ..._sinric_pro_window_a_c__inherit__graph.md5 | 1 - ..._sinric_pro_window_a_c__inherit__graph.png | Bin 15140 -> 0 bytes ..._9__17_1_1_temperature_sensor-members.html | 101 - ..._r_o__2__9__17_1_1_temperature_sensor.html | 181 -- ..._p_r_o__2__9__17_1_1_temperature_sensor.js | 4 - ...1_1_temperature_sensor__inherit__graph.map | 7 - ...1_1_temperature_sensor__inherit__graph.md5 | 1 - ...1_1_temperature_sensor__inherit__graph.png | Bin 6489 -> 0 bytes ..._17_1_1_thermostat_controller-members.html | 105 - ...o__2__9__17_1_1_thermostat_controller.html | 315 --- ...r_o__2__9__17_1_1_thermostat_controller.js | 8 - ..._thermostat_controller__inherit__graph.map | 7 - ..._thermostat_controller__inherit__graph.md5 | 1 - ..._thermostat_controller__inherit__graph.png | Bin 6073 -> 0 bytes ...__9__17_1_1_toggle_controller-members.html | 102 - ...p_r_o__2__9__17_1_1_toggle_controller.html | 212 -- ...c_p_r_o__2__9__17_1_1_toggle_controller.js | 5 - ...__9__17_1_1_volume_controller-members.html | 103 - ...p_r_o__2__9__17_1_1_volume_controller.html | 236 -- ...c_p_r_o__2__9__17_1_1_volume_controller.js | 6 - ..._1_1_volume_controller__inherit__graph.map | 7 - ..._1_1_volume_controller__inherit__graph.md5 | 1 - ..._1_1_volume_controller__inherit__graph.png | Bin 5252 -> 0 bytes docs/docs/classes.html | 142 -- docs/docs/closed.png | Bin 132 -> 0 bytes .../dir_7df6307e8ce44a8864ff8c0ace2ba173.html | 102 - .../dir_9396324f83557d33beb10fc6add6bec2.html | 102 - .../dir_a3d2086e3c3fe22c73a549735325deec.html | 105 - .../dir_aa16df8496461ec3bcf35908592889b5.html | 98 - docs/docs/doc.png | Bin 746 -> 0 bytes docs/docs/doxygen.css | 1793 --------------- docs/docs/doxygen.svg | 26 - docs/docs/dynsections.js | 121 - docs/docs/folderclosed.png | Bin 616 -> 0 bytes docs/docs/folderopen.png | Bin 597 -> 0 bytes docs/docs/functions.html | 312 --- docs/docs/functions_func.html | 312 --- docs/docs/graph_legend.html | 157 -- docs/docs/graph_legend.md5 | 1 - docs/docs/graph_legend.png | Bin 13384 -> 0 bytes docs/docs/hierarchy.html | 282 --- docs/docs/hierarchy.js | 249 --- docs/docs/index.html | 226 -- docs/docs/inherit_graph_0.map | 88 - docs/docs/inherit_graph_0.md5 | 1 - docs/docs/inherit_graph_0.png | Bin 289631 -> 0 bytes docs/docs/inherit_graph_1.map | 3 - docs/docs/inherit_graph_1.md5 | 1 - docs/docs/inherit_graph_1.png | Bin 602 -> 0 bytes docs/docs/inherit_graph_10.map | 3 - docs/docs/inherit_graph_10.md5 | 1 - docs/docs/inherit_graph_10.png | Bin 534 -> 0 bytes docs/docs/inherit_graph_11.map | 3 - docs/docs/inherit_graph_11.md5 | 1 - docs/docs/inherit_graph_11.png | Bin 600 -> 0 bytes docs/docs/inherit_graph_12.map | 3 - docs/docs/inherit_graph_12.md5 | 1 - docs/docs/inherit_graph_12.png | Bin 535 -> 0 bytes docs/docs/inherit_graph_13.map | 3 - docs/docs/inherit_graph_13.md5 | 1 - docs/docs/inherit_graph_13.png | Bin 553 -> 0 bytes docs/docs/inherit_graph_14.map | 3 - docs/docs/inherit_graph_14.md5 | 1 - docs/docs/inherit_graph_14.png | Bin 548 -> 0 bytes docs/docs/inherit_graph_15.map | 3 - docs/docs/inherit_graph_15.md5 | 1 - docs/docs/inherit_graph_15.png | Bin 501 -> 0 bytes docs/docs/inherit_graph_16.map | 3 - docs/docs/inherit_graph_16.md5 | 1 - docs/docs/inherit_graph_16.png | Bin 515 -> 0 bytes docs/docs/inherit_graph_17.map | 3 - docs/docs/inherit_graph_17.md5 | 1 - docs/docs/inherit_graph_17.png | Bin 611 -> 0 bytes docs/docs/inherit_graph_18.map | 3 - docs/docs/inherit_graph_18.md5 | 1 - docs/docs/inherit_graph_18.png | Bin 574 -> 0 bytes docs/docs/inherit_graph_19.map | 3 - docs/docs/inherit_graph_19.md5 | 1 - docs/docs/inherit_graph_19.png | Bin 528 -> 0 bytes docs/docs/inherit_graph_2.map | 3 - docs/docs/inherit_graph_2.md5 | 1 - docs/docs/inherit_graph_2.png | Bin 610 -> 0 bytes docs/docs/inherit_graph_20.map | 3 - docs/docs/inherit_graph_20.md5 | 1 - docs/docs/inherit_graph_20.png | Bin 624 -> 0 bytes docs/docs/inherit_graph_21.map | 3 - docs/docs/inherit_graph_21.md5 | 1 - docs/docs/inherit_graph_21.png | Bin 558 -> 0 bytes docs/docs/inherit_graph_22.map | 3 - docs/docs/inherit_graph_22.md5 | 1 - docs/docs/inherit_graph_22.png | Bin 551 -> 0 bytes docs/docs/inherit_graph_23.map | 3 - docs/docs/inherit_graph_23.md5 | 1 - docs/docs/inherit_graph_23.png | Bin 493 -> 0 bytes docs/docs/inherit_graph_24.map | 3 - docs/docs/inherit_graph_24.md5 | 1 - docs/docs/inherit_graph_24.png | Bin 583 -> 0 bytes docs/docs/inherit_graph_25.map | 3 - docs/docs/inherit_graph_25.md5 | 1 - docs/docs/inherit_graph_25.png | Bin 586 -> 0 bytes docs/docs/inherit_graph_26.map | 3 - docs/docs/inherit_graph_26.md5 | 1 - docs/docs/inherit_graph_26.png | Bin 563 -> 0 bytes docs/docs/inherit_graph_27.map | 3 - docs/docs/inherit_graph_27.md5 | 1 - docs/docs/inherit_graph_27.png | Bin 562 -> 0 bytes docs/docs/inherit_graph_3.map | 3 - docs/docs/inherit_graph_3.md5 | 1 - docs/docs/inherit_graph_3.png | Bin 558 -> 0 bytes docs/docs/inherit_graph_4.map | 3 - docs/docs/inherit_graph_4.md5 | 1 - docs/docs/inherit_graph_4.png | Bin 523 -> 0 bytes docs/docs/inherit_graph_5.map | 3 - docs/docs/inherit_graph_5.md5 | 1 - docs/docs/inherit_graph_5.png | Bin 661 -> 0 bytes docs/docs/inherit_graph_6.map | 3 - docs/docs/inherit_graph_6.md5 | 1 - docs/docs/inherit_graph_6.png | Bin 551 -> 0 bytes docs/docs/inherit_graph_7.map | 3 - docs/docs/inherit_graph_7.md5 | 1 - docs/docs/inherit_graph_7.png | Bin 454 -> 0 bytes docs/docs/inherit_graph_8.map | 3 - docs/docs/inherit_graph_8.md5 | 1 - docs/docs/inherit_graph_8.png | Bin 528 -> 0 bytes docs/docs/inherit_graph_9.map | 3 - docs/docs/inherit_graph_9.md5 | 1 - docs/docs/inherit_graph_9.png | Bin 606 -> 0 bytes docs/docs/inherits.html | 326 --- docs/docs/jquery.js | 35 - docs/docs/menu.js | 51 - docs/docs/menudata.js | 45 - ...namespace_s_i_n_r_i_c_p_r_o__2__9__17.html | 1989 ----------------- docs/docs/namespacemembers.html | 256 --- docs/docs/namespacemembers_type.html | 256 --- docs/docs/nav_f.png | Bin 153 -> 0 bytes docs/docs/nav_g.png | Bin 95 -> 0 bytes docs/docs/nav_h.png | Bin 98 -> 0 bytes docs/docs/navtree.css | 146 -- docs/docs/navtree.js | 546 ----- docs/docs/navtreedata.js | 73 - docs/docs/navtreeindex0.js | 253 --- docs/docs/navtreeindex1.js | 30 - docs/docs/open.png | Bin 123 -> 0 bytes docs/docs/resize.js | 140 -- docs/docs/search/all_0.html | 37 - docs/docs/search/all_0.js | 12 - docs/docs/search/all_1.html | 37 - docs/docs/search/all_1.js | 7 - docs/docs/search/all_10.html | 37 - docs/docs/search/all_10.js | 6 - docs/docs/search/all_2.html | 37 - docs/docs/search/all_2.js | 16 - docs/docs/search/all_3.html | 37 - docs/docs/search/all_3.js | 10 - docs/docs/search/all_4.html | 37 - docs/docs/search/all_4.js | 5 - docs/docs/search/all_5.html | 37 - docs/docs/search/all_5.js | 9 - docs/docs/search/all_6.html | 37 - docs/docs/search/all_6.js | 4 - docs/docs/search/all_7.html | 37 - docs/docs/search/all_7.js | 7 - docs/docs/search/all_8.html | 37 - docs/docs/search/all_8.js | 5 - docs/docs/search/all_9.html | 37 - docs/docs/search/all_9.js | 6 - docs/docs/search/all_a.html | 37 - docs/docs/search/all_a.js | 16 - docs/docs/search/all_b.html | 37 - docs/docs/search/all_b.js | 38 - docs/docs/search/all_c.html | 37 - docs/docs/search/all_c.js | 48 - docs/docs/search/all_d.html | 37 - docs/docs/search/all_d.js | 9 - docs/docs/search/all_e.html | 37 - docs/docs/search/all_e.js | 59 - docs/docs/search/all_f.html | 37 - docs/docs/search/all_f.js | 11 - docs/docs/search/classes_0.html | 37 - docs/docs/search/classes_0.js | 5 - docs/docs/search/classes_1.html | 37 - docs/docs/search/classes_1.js | 5 - docs/docs/search/classes_2.html | 37 - docs/docs/search/classes_2.js | 11 - docs/docs/search/classes_3.html | 37 - docs/docs/search/classes_3.js | 7 - docs/docs/search/classes_4.html | 37 - docs/docs/search/classes_4.js | 5 - docs/docs/search/classes_5.html | 37 - docs/docs/search/classes_5.js | 6 - docs/docs/search/classes_6.html | 37 - docs/docs/search/classes_6.js | 4 - docs/docs/search/classes_7.html | 37 - docs/docs/search/classes_7.js | 5 - docs/docs/search/classes_8.html | 37 - docs/docs/search/classes_8.js | 13 - docs/docs/search/classes_9.html | 37 - docs/docs/search/classes_9.js | 47 - docs/docs/search/classes_a.html | 37 - docs/docs/search/classes_a.js | 7 - docs/docs/search/classes_b.html | 37 - docs/docs/search/classes_b.js | 24 - docs/docs/search/classes_c.html | 37 - docs/docs/search/classes_c.js | 10 - docs/docs/search/classes_d.html | 37 - docs/docs/search/classes_d.js | 6 - docs/docs/search/close.svg | 31 - docs/docs/search/functions_0.html | 37 - docs/docs/search/functions_0.js | 4 - docs/docs/search/functions_1.html | 37 - docs/docs/search/functions_1.js | 4 - docs/docs/search/functions_2.html | 37 - docs/docs/search/functions_2.js | 4 - docs/docs/search/functions_3.html | 37 - docs/docs/search/functions_3.js | 38 - docs/docs/search/functions_4.html | 37 - docs/docs/search/functions_4.js | 4 - docs/docs/search/functions_5.html | 37 - docs/docs/search/functions_5.js | 29 - docs/docs/search/mag_sel.svg | 74 - docs/docs/search/namespaces_0.html | 37 - docs/docs/search/namespaces_0.js | 4 - docs/docs/search/nomatches.html | 13 - docs/docs/search/pages_0.html | 37 - docs/docs/search/pages_0.js | 4 - docs/docs/search/search.css | 257 --- docs/docs/search/search.js | 816 ------- docs/docs/search/search_l.png | Bin 567 -> 0 bytes docs/docs/search/search_m.png | Bin 158 -> 0 bytes docs/docs/search/search_r.png | Bin 553 -> 0 bytes docs/docs/search/searchdata.js | 30 - docs/docs/search/typedefs_0.html | 37 - docs/docs/search/typedefs_0.js | 10 - docs/docs/search/typedefs_1.html | 37 - docs/docs/search/typedefs_1.js | 4 - docs/docs/search/typedefs_2.html | 37 - docs/docs/search/typedefs_2.js | 8 - docs/docs/search/typedefs_3.html | 37 - docs/docs/search/typedefs_3.js | 6 - docs/docs/search/typedefs_4.html | 37 - docs/docs/search/typedefs_4.js | 8 - docs/docs/search/typedefs_5.html | 37 - docs/docs/search/typedefs_5.js | 4 - docs/docs/search/typedefs_6.html | 37 - docs/docs/search/typedefs_6.js | 4 - docs/docs/search/typedefs_7.html | 37 - docs/docs/search/typedefs_7.js | 4 - docs/docs/search/typedefs_8.html | 37 - docs/docs/search/typedefs_8.js | 6 - docs/docs/search/typedefs_9.html | 37 - docs/docs/search/typedefs_9.js | 4 - docs/docs/search/typedefs_a.html | 37 - docs/docs/search/typedefs_a.js | 4 - docs/docs/search/typedefs_b.html | 37 - docs/docs/search/typedefs_b.js | 10 - docs/docs/search/typedefs_c.html | 37 - docs/docs/search/typedefs_c.js | 4 - docs/docs/splitbar.png | Bin 314 -> 0 bytes docs/docs/sync_off.png | Bin 853 -> 0 bytes docs/docs/sync_on.png | Bin 845 -> 0 bytes docs/docs/tab_a.png | Bin 142 -> 0 bytes docs/docs/tab_b.png | Bin 169 -> 0 bytes docs/docs/tab_h.png | Bin 177 -> 0 bytes docs/docs/tab_s.png | Bin 184 -> 0 bytes docs/docs/tabs.css | 1 - docs/index.html | 2 +- documentation.dox | 6 - 582 files changed, 6 insertions(+), 43717 deletions(-) delete mode 100644 doc-examples/documentation.dox delete mode 100644 docs/dir_a3d2086e3c3fe22c73a549735325deec.html delete mode 100644 docs/docs/_air_quality_sensor_8h_source.html delete mode 100644 docs/docs/_brightness_controller_8h_source.html delete mode 100644 docs/docs/_channel_controller_8h_source.html delete mode 100644 docs/docs/_color_controller_8h_source.html delete mode 100644 docs/docs/_color_temperature_controller_8h_source.html delete mode 100644 docs/docs/_contact_sensor_8h_source.html delete mode 100644 docs/docs/_door_controller_8h_source.html delete mode 100644 docs/docs/_doorbell_8h_source.html delete mode 100644 docs/docs/_equalizer_controller_8h_source.html delete mode 100644 docs/docs/_event_limiter_8h_source.html delete mode 100644 docs/docs/_input_controller_8h_source.html delete mode 100644 docs/docs/_keypad_controller_8h_source.html delete mode 100644 docs/docs/_lock_controller_8h_source.html delete mode 100644 docs/docs/_media_controller_8h_source.html delete mode 100644 docs/docs/_mode_controller_8h_source.html delete mode 100644 docs/docs/_motion_sensor_8h_source.html delete mode 100644 docs/docs/_mute_controller_8h_source.html delete mode 100644 docs/docs/_percentage_controller_8h_source.html delete mode 100644 docs/docs/_power_level_controller_8h_source.html delete mode 100644 docs/docs/_power_sensor_8h_source.html delete mode 100644 docs/docs/_power_state_controller_8h_source.html delete mode 100644 docs/docs/_push_notification_8h_source.html delete mode 100644 docs/docs/_range_controller_8h_source.html delete mode 100644 docs/docs/_setting_controller_8h_source.html delete mode 100644 docs/docs/_sinric_pro_8h_source.html delete mode 100644 docs/docs/_sinric_pro_air_quality_sensor_8h_source.html delete mode 100644 docs/docs/_sinric_pro_blinds_8h_source.html delete mode 100644 docs/docs/_sinric_pro_camera_8h_source.html delete mode 100644 docs/docs/_sinric_pro_config_8h_source.html delete mode 100644 docs/docs/_sinric_pro_contactsensor_8h_source.html delete mode 100644 docs/docs/_sinric_pro_debug_8h_source.html delete mode 100644 docs/docs/_sinric_pro_device_8h_source.html delete mode 100644 docs/docs/_sinric_pro_device_interface_8h_source.html delete mode 100644 docs/docs/_sinric_pro_dim_switch_8h_source.html delete mode 100644 docs/docs/_sinric_pro_doorbell_8h_source.html delete mode 100644 docs/docs/_sinric_pro_fan_8h_source.html delete mode 100644 docs/docs/_sinric_pro_fan_u_s_8h_source.html delete mode 100644 docs/docs/_sinric_pro_garage_door_8h_source.html delete mode 100644 docs/docs/_sinric_pro_interface_8h_source.html delete mode 100644 docs/docs/_sinric_pro_light_8h_source.html delete mode 100644 docs/docs/_sinric_pro_lock_8h_source.html delete mode 100644 docs/docs/_sinric_pro_messageid_8h_source.html delete mode 100644 docs/docs/_sinric_pro_motionsensor_8h_source.html delete mode 100644 docs/docs/_sinric_pro_namespace_8h_source.html delete mode 100644 docs/docs/_sinric_pro_power_sensor_8h_source.html delete mode 100644 docs/docs/_sinric_pro_queue_8h_source.html delete mode 100644 docs/docs/_sinric_pro_request_8h_source.html delete mode 100644 docs/docs/_sinric_pro_signature_8h_source.html delete mode 100644 docs/docs/_sinric_pro_speaker_8h_source.html delete mode 100644 docs/docs/_sinric_pro_strings_8h_source.html delete mode 100644 docs/docs/_sinric_pro_switch_8h_source.html delete mode 100644 docs/docs/_sinric_pro_t_v_8h_source.html delete mode 100644 docs/docs/_sinric_pro_temperaturesensor_8h_source.html delete mode 100644 docs/docs/_sinric_pro_thermostat_8h_source.html delete mode 100644 docs/docs/_sinric_pro_u_d_p_8h_source.html delete mode 100644 docs/docs/_sinric_pro_version_8h_source.html delete mode 100644 docs/docs/_sinric_pro_websocket_8h_source.html delete mode 100644 docs/docs/_sinric_pro_window_a_c_8h_source.html delete mode 100644 docs/docs/_temperature_sensor_8h_source.html delete mode 100644 docs/docs/_thermostat_controller_8h_source.html delete mode 100644 docs/docs/_toggle_controller_8h_source.html delete mode 100644 docs/docs/_volume_controller_8h_source.html delete mode 100644 docs/docs/annotated.html delete mode 100644 docs/docs/annotated_dup.js delete mode 100644 docs/docs/bc_s.png delete mode 100644 docs/docs/bdwn.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_air_quality_sensor-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_air_quality_sensor.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_air_quality_sensor.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_air_quality_sensor__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_air_quality_sensor__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_air_quality_sensor__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_controller-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_controller.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_controller.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_controller__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_controller__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_controller__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_contact_sensor-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_contact_sensor.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_contact_sensor.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_contact_sensor__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_contact_sensor__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_contact_sensor__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_door_controller-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_door_controller.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_door_controller.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_door_controller__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_door_controller__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_door_controller__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_doorbell-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_doorbell.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_doorbell.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_doorbell__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_doorbell__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_doorbell__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_input_controller-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_input_controller.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_input_controller.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_input_controller__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_input_controller__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_input_controller__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_keypad_controller-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_keypad_controller.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_keypad_controller.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_lock_controller-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_lock_controller.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_lock_controller.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_lock_controller__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_lock_controller__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_lock_controller__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_motion_sensor-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_motion_sensor.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_motion_sensor.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_motion_sensor__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_motion_sensor__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_motion_sensor__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_percentage_controller-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_percentage_controller.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_percentage_controller.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_sensor-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_sensor.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_sensor.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_sensor__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_sensor__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_sensor__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_air_quality_sensor-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_air_quality_sensor.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_air_quality_sensor.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_air_quality_sensor__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_air_quality_sensor__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_air_quality_sensor__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_camera-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_camera.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_camera.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_camera__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_camera__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_camera__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_class-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_class.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_class.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_contactsensor-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_contactsensor.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_contactsensor.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_contactsensor__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_contactsensor__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_contactsensor__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_device-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_device.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_device__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_device__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_device__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_dim_switch-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_dim_switch.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_dim_switch.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_dim_switch__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_dim_switch__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_dim_switch__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_doorbell-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_doorbell.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_doorbell.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_doorbell__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_doorbell__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_doorbell__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_garage_door-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_garage_door.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_garage_door.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_garage_door__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_garage_door__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_garage_door__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_lock-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_lock.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_lock.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_lock__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_lock__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_lock__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_motionsensor-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_motionsensor.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_motionsensor.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_motionsensor__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_motionsensor__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_motionsensor__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_power_sensor-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_power_sensor.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_power_sensor.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_power_sensor__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_power_sensor__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_power_sensor__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_switch-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_switch.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_switch.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_switch__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_switch__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_switch__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_temperaturesensor-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_temperaturesensor.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_temperaturesensor.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_temperaturesensor__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_temperaturesensor__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_temperaturesensor__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_temperature_sensor-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_temperature_sensor.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_temperature_sensor.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_temperature_sensor__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_temperature_sensor__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_temperature_sensor__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller__inherit__graph.png delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_toggle_controller-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_toggle_controller.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_toggle_controller.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller-members.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller.html delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller.js delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller__inherit__graph.map delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller__inherit__graph.md5 delete mode 100644 docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller__inherit__graph.png delete mode 100644 docs/docs/classes.html delete mode 100644 docs/docs/closed.png delete mode 100644 docs/docs/dir_7df6307e8ce44a8864ff8c0ace2ba173.html delete mode 100644 docs/docs/dir_9396324f83557d33beb10fc6add6bec2.html delete mode 100644 docs/docs/dir_a3d2086e3c3fe22c73a549735325deec.html delete mode 100644 docs/docs/dir_aa16df8496461ec3bcf35908592889b5.html delete mode 100644 docs/docs/doc.png delete mode 100644 docs/docs/doxygen.css delete mode 100644 docs/docs/doxygen.svg delete mode 100644 docs/docs/dynsections.js delete mode 100644 docs/docs/folderclosed.png delete mode 100644 docs/docs/folderopen.png delete mode 100644 docs/docs/functions.html delete mode 100644 docs/docs/functions_func.html delete mode 100644 docs/docs/graph_legend.html delete mode 100644 docs/docs/graph_legend.md5 delete mode 100644 docs/docs/graph_legend.png delete mode 100644 docs/docs/hierarchy.html delete mode 100644 docs/docs/hierarchy.js delete mode 100644 docs/docs/index.html delete mode 100644 docs/docs/inherit_graph_0.map delete mode 100644 docs/docs/inherit_graph_0.md5 delete mode 100644 docs/docs/inherit_graph_0.png delete mode 100644 docs/docs/inherit_graph_1.map delete mode 100644 docs/docs/inherit_graph_1.md5 delete mode 100644 docs/docs/inherit_graph_1.png delete mode 100644 docs/docs/inherit_graph_10.map delete mode 100644 docs/docs/inherit_graph_10.md5 delete mode 100644 docs/docs/inherit_graph_10.png delete mode 100644 docs/docs/inherit_graph_11.map delete mode 100644 docs/docs/inherit_graph_11.md5 delete mode 100644 docs/docs/inherit_graph_11.png delete mode 100644 docs/docs/inherit_graph_12.map delete mode 100644 docs/docs/inherit_graph_12.md5 delete mode 100644 docs/docs/inherit_graph_12.png delete mode 100644 docs/docs/inherit_graph_13.map delete mode 100644 docs/docs/inherit_graph_13.md5 delete mode 100644 docs/docs/inherit_graph_13.png delete mode 100644 docs/docs/inherit_graph_14.map delete mode 100644 docs/docs/inherit_graph_14.md5 delete mode 100644 docs/docs/inherit_graph_14.png delete mode 100644 docs/docs/inherit_graph_15.map delete mode 100644 docs/docs/inherit_graph_15.md5 delete mode 100644 docs/docs/inherit_graph_15.png delete mode 100644 docs/docs/inherit_graph_16.map delete mode 100644 docs/docs/inherit_graph_16.md5 delete mode 100644 docs/docs/inherit_graph_16.png delete mode 100644 docs/docs/inherit_graph_17.map delete mode 100644 docs/docs/inherit_graph_17.md5 delete mode 100644 docs/docs/inherit_graph_17.png delete mode 100644 docs/docs/inherit_graph_18.map delete mode 100644 docs/docs/inherit_graph_18.md5 delete mode 100644 docs/docs/inherit_graph_18.png delete mode 100644 docs/docs/inherit_graph_19.map delete mode 100644 docs/docs/inherit_graph_19.md5 delete mode 100644 docs/docs/inherit_graph_19.png delete mode 100644 docs/docs/inherit_graph_2.map delete mode 100644 docs/docs/inherit_graph_2.md5 delete mode 100644 docs/docs/inherit_graph_2.png delete mode 100644 docs/docs/inherit_graph_20.map delete mode 100644 docs/docs/inherit_graph_20.md5 delete mode 100644 docs/docs/inherit_graph_20.png delete mode 100644 docs/docs/inherit_graph_21.map delete mode 100644 docs/docs/inherit_graph_21.md5 delete mode 100644 docs/docs/inherit_graph_21.png delete mode 100644 docs/docs/inherit_graph_22.map delete mode 100644 docs/docs/inherit_graph_22.md5 delete mode 100644 docs/docs/inherit_graph_22.png delete mode 100644 docs/docs/inherit_graph_23.map delete mode 100644 docs/docs/inherit_graph_23.md5 delete mode 100644 docs/docs/inherit_graph_23.png delete mode 100644 docs/docs/inherit_graph_24.map delete mode 100644 docs/docs/inherit_graph_24.md5 delete mode 100644 docs/docs/inherit_graph_24.png delete mode 100644 docs/docs/inherit_graph_25.map delete mode 100644 docs/docs/inherit_graph_25.md5 delete mode 100644 docs/docs/inherit_graph_25.png delete mode 100644 docs/docs/inherit_graph_26.map delete mode 100644 docs/docs/inherit_graph_26.md5 delete mode 100644 docs/docs/inherit_graph_26.png delete mode 100644 docs/docs/inherit_graph_27.map delete mode 100644 docs/docs/inherit_graph_27.md5 delete mode 100644 docs/docs/inherit_graph_27.png delete mode 100644 docs/docs/inherit_graph_3.map delete mode 100644 docs/docs/inherit_graph_3.md5 delete mode 100644 docs/docs/inherit_graph_3.png delete mode 100644 docs/docs/inherit_graph_4.map delete mode 100644 docs/docs/inherit_graph_4.md5 delete mode 100644 docs/docs/inherit_graph_4.png delete mode 100644 docs/docs/inherit_graph_5.map delete mode 100644 docs/docs/inherit_graph_5.md5 delete mode 100644 docs/docs/inherit_graph_5.png delete mode 100644 docs/docs/inherit_graph_6.map delete mode 100644 docs/docs/inherit_graph_6.md5 delete mode 100644 docs/docs/inherit_graph_6.png delete mode 100644 docs/docs/inherit_graph_7.map delete mode 100644 docs/docs/inherit_graph_7.md5 delete mode 100644 docs/docs/inherit_graph_7.png delete mode 100644 docs/docs/inherit_graph_8.map delete mode 100644 docs/docs/inherit_graph_8.md5 delete mode 100644 docs/docs/inherit_graph_8.png delete mode 100644 docs/docs/inherit_graph_9.map delete mode 100644 docs/docs/inherit_graph_9.md5 delete mode 100644 docs/docs/inherit_graph_9.png delete mode 100644 docs/docs/inherits.html delete mode 100644 docs/docs/jquery.js delete mode 100644 docs/docs/menu.js delete mode 100644 docs/docs/menudata.js delete mode 100644 docs/docs/namespace_s_i_n_r_i_c_p_r_o__2__9__17.html delete mode 100644 docs/docs/namespacemembers.html delete mode 100644 docs/docs/namespacemembers_type.html delete mode 100644 docs/docs/nav_f.png delete mode 100644 docs/docs/nav_g.png delete mode 100644 docs/docs/nav_h.png delete mode 100644 docs/docs/navtree.css delete mode 100644 docs/docs/navtree.js delete mode 100644 docs/docs/navtreedata.js delete mode 100644 docs/docs/navtreeindex0.js delete mode 100644 docs/docs/navtreeindex1.js delete mode 100644 docs/docs/open.png delete mode 100644 docs/docs/resize.js delete mode 100644 docs/docs/search/all_0.html delete mode 100644 docs/docs/search/all_0.js delete mode 100644 docs/docs/search/all_1.html delete mode 100644 docs/docs/search/all_1.js delete mode 100644 docs/docs/search/all_10.html delete mode 100644 docs/docs/search/all_10.js delete mode 100644 docs/docs/search/all_2.html delete mode 100644 docs/docs/search/all_2.js delete mode 100644 docs/docs/search/all_3.html delete mode 100644 docs/docs/search/all_3.js delete mode 100644 docs/docs/search/all_4.html delete mode 100644 docs/docs/search/all_4.js delete mode 100644 docs/docs/search/all_5.html delete mode 100644 docs/docs/search/all_5.js delete mode 100644 docs/docs/search/all_6.html delete mode 100644 docs/docs/search/all_6.js delete mode 100644 docs/docs/search/all_7.html delete mode 100644 docs/docs/search/all_7.js delete mode 100644 docs/docs/search/all_8.html delete mode 100644 docs/docs/search/all_8.js delete mode 100644 docs/docs/search/all_9.html delete mode 100644 docs/docs/search/all_9.js delete mode 100644 docs/docs/search/all_a.html delete mode 100644 docs/docs/search/all_a.js delete mode 100644 docs/docs/search/all_b.html delete mode 100644 docs/docs/search/all_b.js delete mode 100644 docs/docs/search/all_c.html delete mode 100644 docs/docs/search/all_c.js delete mode 100644 docs/docs/search/all_d.html delete mode 100644 docs/docs/search/all_d.js delete mode 100644 docs/docs/search/all_e.html delete mode 100644 docs/docs/search/all_e.js delete mode 100644 docs/docs/search/all_f.html delete mode 100644 docs/docs/search/all_f.js delete mode 100644 docs/docs/search/classes_0.html delete mode 100644 docs/docs/search/classes_0.js delete mode 100644 docs/docs/search/classes_1.html delete mode 100644 docs/docs/search/classes_1.js delete mode 100644 docs/docs/search/classes_2.html delete mode 100644 docs/docs/search/classes_2.js delete mode 100644 docs/docs/search/classes_3.html delete mode 100644 docs/docs/search/classes_3.js delete mode 100644 docs/docs/search/classes_4.html delete mode 100644 docs/docs/search/classes_4.js delete mode 100644 docs/docs/search/classes_5.html delete mode 100644 docs/docs/search/classes_5.js delete mode 100644 docs/docs/search/classes_6.html delete mode 100644 docs/docs/search/classes_6.js delete mode 100644 docs/docs/search/classes_7.html delete mode 100644 docs/docs/search/classes_7.js delete mode 100644 docs/docs/search/classes_8.html delete mode 100644 docs/docs/search/classes_8.js delete mode 100644 docs/docs/search/classes_9.html delete mode 100644 docs/docs/search/classes_9.js delete mode 100644 docs/docs/search/classes_a.html delete mode 100644 docs/docs/search/classes_a.js delete mode 100644 docs/docs/search/classes_b.html delete mode 100644 docs/docs/search/classes_b.js delete mode 100644 docs/docs/search/classes_c.html delete mode 100644 docs/docs/search/classes_c.js delete mode 100644 docs/docs/search/classes_d.html delete mode 100644 docs/docs/search/classes_d.js delete mode 100644 docs/docs/search/close.svg delete mode 100644 docs/docs/search/functions_0.html delete mode 100644 docs/docs/search/functions_0.js delete mode 100644 docs/docs/search/functions_1.html delete mode 100644 docs/docs/search/functions_1.js delete mode 100644 docs/docs/search/functions_2.html delete mode 100644 docs/docs/search/functions_2.js delete mode 100644 docs/docs/search/functions_3.html delete mode 100644 docs/docs/search/functions_3.js delete mode 100644 docs/docs/search/functions_4.html delete mode 100644 docs/docs/search/functions_4.js delete mode 100644 docs/docs/search/functions_5.html delete mode 100644 docs/docs/search/functions_5.js delete mode 100644 docs/docs/search/mag_sel.svg delete mode 100644 docs/docs/search/namespaces_0.html delete mode 100644 docs/docs/search/namespaces_0.js delete mode 100644 docs/docs/search/nomatches.html delete mode 100644 docs/docs/search/pages_0.html delete mode 100644 docs/docs/search/pages_0.js delete mode 100644 docs/docs/search/search.css delete mode 100644 docs/docs/search/search.js delete mode 100644 docs/docs/search/search_l.png delete mode 100644 docs/docs/search/search_m.png delete mode 100644 docs/docs/search/search_r.png delete mode 100644 docs/docs/search/searchdata.js delete mode 100644 docs/docs/search/typedefs_0.html delete mode 100644 docs/docs/search/typedefs_0.js delete mode 100644 docs/docs/search/typedefs_1.html delete mode 100644 docs/docs/search/typedefs_1.js delete mode 100644 docs/docs/search/typedefs_2.html delete mode 100644 docs/docs/search/typedefs_2.js delete mode 100644 docs/docs/search/typedefs_3.html delete mode 100644 docs/docs/search/typedefs_3.js delete mode 100644 docs/docs/search/typedefs_4.html delete mode 100644 docs/docs/search/typedefs_4.js delete mode 100644 docs/docs/search/typedefs_5.html delete mode 100644 docs/docs/search/typedefs_5.js delete mode 100644 docs/docs/search/typedefs_6.html delete mode 100644 docs/docs/search/typedefs_6.js delete mode 100644 docs/docs/search/typedefs_7.html delete mode 100644 docs/docs/search/typedefs_7.js delete mode 100644 docs/docs/search/typedefs_8.html delete mode 100644 docs/docs/search/typedefs_8.js delete mode 100644 docs/docs/search/typedefs_9.html delete mode 100644 docs/docs/search/typedefs_9.js delete mode 100644 docs/docs/search/typedefs_a.html delete mode 100644 docs/docs/search/typedefs_a.js delete mode 100644 docs/docs/search/typedefs_b.html delete mode 100644 docs/docs/search/typedefs_b.js delete mode 100644 docs/docs/search/typedefs_c.html delete mode 100644 docs/docs/search/typedefs_c.js delete mode 100644 docs/docs/splitbar.png delete mode 100644 docs/docs/sync_off.png delete mode 100644 docs/docs/sync_on.png delete mode 100644 docs/docs/tab_a.png delete mode 100644 docs/docs/tab_b.png delete mode 100644 docs/docs/tab_h.png delete mode 100644 docs/docs/tab_s.png delete mode 100644 docs/docs/tabs.css diff --git a/Doxyfile b/Doxyfile index ffd847b..82da17d 100644 --- a/Doxyfile +++ b/Doxyfile @@ -58,7 +58,7 @@ PROJECT_LOGO = # entered, it will be relative to the location where doxygen was started. If # left blank the current directory will be used. -OUTPUT_DIRECTORY = . +OUTPUT_DIRECTORY = # If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- # directories (in 2 levels) under the output directory of each output format and @@ -186,7 +186,7 @@ STRIP_FROM_INC_PATH = # support long names like on DOS, Mac, or CD-ROM. # The default value is: NO. -SHORT_NAMES = YES +SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the # first line (until the first dot) of a Javadoc-style comment as the brief @@ -864,8 +864,7 @@ WARN_LOGFILE = # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING # Note: If this tag is empty the current directory is searched. -INPUT = ../esp8266-esp32-sdk \ - ..\esp8266-esp32-sdk\src \ +INPUT = ..\esp8266-esp32-sdk\src \ ..\esp8266-esp32-sdk\README.md \ ..\esp8266-esp32-sdk\src\Capabilities \ documentation.dox @@ -989,7 +988,7 @@ EXCLUDE_SYMBOLS = # that contain example code fragments that are included (see the \include # command). -EXAMPLE_PATH = doc-examples/ +EXAMPLE_PATH = doc-examples # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and @@ -2544,7 +2543,7 @@ DIRECTORY_GRAPH = YES # The default value is: png. # This tag requires that the tag HAVE_DOT is set to YES. -DOT_IMAGE_FORMAT = svg +DOT_IMAGE_FORMAT = png # If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to # enable generation of interactive SVG images that allow zooming and panning. diff --git a/doc-examples/documentation.dox b/doc-examples/documentation.dox deleted file mode 100644 index 0d3cc57..0000000 --- a/doc-examples/documentation.dox +++ /dev/null @@ -1,11 +0,0 @@ -/** - * @defgroup SinricPro SinricPro - * @brief Main instance of SinricProClass - * - * @defgroup Devices Devices - * @brief Available devices - * - * @defgroup Capabilities Capabilities - * @brief Capabilities - * - **/ diff --git a/docs/dir_a3d2086e3c3fe22c73a549735325deec.html b/docs/dir_a3d2086e3c3fe22c73a549735325deec.html deleted file mode 100644 index 1f72c8c..0000000 --- a/docs/dir_a3d2086e3c3fe22c73a549735325deec.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - -SinricPro Library: doc-examples Directory Reference - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
doc-examples Directory Reference
-
-
-
-
- - - - diff --git a/docs/docs/_air_quality_sensor_8h_source.html b/docs/docs/_air_quality_sensor_8h_source.html deleted file mode 100644 index 5597a91..0000000 --- a/docs/docs/_air_quality_sensor_8h_source.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -SinricPro Library: src/Capabilities/AirQualitySensor.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
AirQualitySensor.h
-
-
-
1 #pragma once
-
2 
-
3 #include "../EventLimiter.h"
-
4 #include "../SinricProStrings.h"
-
5 
-
6 #include "../SinricProNamespace.h"
-
7 namespace SINRICPRO_NAMESPACE {
-
8 
-
9 FSTR(AIRQUALITY, airQuality); // "airQuality"
-
10 FSTR(AIRQUALITY, pm1); // "pm1"
-
11 FSTR(AIRQUALITY, pm2_5); // "pm2_5"
-
12 FSTR(AIRQUALITY, pm10); // "pm10"
-
13 
-
18 template <typename T>
- -
20  public:
- -
22  bool sendAirQualityEvent(int pm1 = 0, int pm2_5 = 0, int pm10 = 0, String cause = FSTR_SINRICPRO_PERIODIC_POLL);
-
23  private:
-
24  EventLimiter event_limiter;
-
25 };
-
26 
-
27 template <typename T>
- -
29 : event_limiter (EVENT_LIMIT_SENSOR_VALUE) {}
-
30 
-
42 template <typename T>
-
43 bool AirQualitySensor<T>::sendAirQualityEvent(int pm1, int pm2_5, int pm10, String cause) {
-
44  if (event_limiter) return false;
-
45  T* device = static_cast<T*>(this);
-
46 
-
47  DynamicJsonDocument eventMessage = device->prepareEvent(FSTR_AIRQUALITY_airQuality, cause.c_str());
-
48  JsonObject event_value = eventMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_value];
-
49 
-
50  event_value[FSTR_AIRQUALITY_pm1] = pm1;
-
51  event_value[FSTR_AIRQUALITY_pm2_5] = pm2_5;
-
52  event_value[FSTR_AIRQUALITY_pm10] = pm10;
-
53 
-
54  return device->sendEvent(eventMessage);
-
55 }
-
56 
-
57 } // SINRICPRO_NAMESPACE
-
58 
-
59 template <typename T>
-
60 using AirQualitySensor = SINRICPRO_NAMESPACE::AirQualitySensor<T>;
-
AirQuality.
Definition: AirQualitySensor.h:19
-
bool sendAirQualityEvent(int pm1=0, int pm2_5=0, int pm10=0, String cause=FSTR_SINRICPRO_PERIODIC_POLL)
Sending air quality to SinricPro server.
Definition: AirQualitySensor.h:43
-
-
- - - - diff --git a/docs/docs/_brightness_controller_8h_source.html b/docs/docs/_brightness_controller_8h_source.html deleted file mode 100644 index 8122fa8..0000000 --- a/docs/docs/_brightness_controller_8h_source.html +++ /dev/null @@ -1,192 +0,0 @@ - - - - - - - -SinricPro Library: src/Capabilities/BrightnessController.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
BrightnessController.h
-
-
-
1 #pragma once
-
2 
-
3 #include "../SinricProRequest.h"
-
4 #include "../EventLimiter.h"
-
5 #include "../SinricProStrings.h"
-
6 
-
7 #include "../SinricProNamespace.h"
-
8 namespace SINRICPRO_NAMESPACE {
-
9 
-
10 FSTR(BRIGHTNESS, setBrightness); // "setBrightness"
-
11 FSTR(BRIGHTNESS, brightness); // "brightness"
-
12 FSTR(BRIGHTNESS, adjustBrightness); // "adjustBrightness"
-
13 FSTR(BRIGHTNESS, brightnessDelta); // "brightnessDelta"
-
14 
-
28 using BrightnessCallback = std::function<bool(const String &, int &)>;
-
29 
-
43 using AdjustBrightnessCallback = std::function<bool(const String &, int &)>;
-
44 
-
49 template <typename T>
- -
51  public:
- -
53 
- - -
56 
-
57  bool sendBrightnessEvent(int brightness, String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION);
-
58  protected:
-
59  bool handleBrightnessController(SinricProRequest &request);
-
60 
-
61  private:
-
62  EventLimiter event_limiter;
-
63  BrightnessCallback brightnessCallback;
-
64  AdjustBrightnessCallback adjustBrightnessCallback;
-
65 };
-
66 
-
67 template <typename T>
- -
69 : event_limiter (EVENT_LIMIT_STATE) {
-
70  T* device = static_cast<T*>(this);
-
71  device->registerRequestHandler(std::bind(&BrightnessController<T>::handleBrightnessController, this, std::placeholders::_1));
-
72 }
-
73 
-
81 template <typename T>
- -
83  brightnessCallback = cb;
-
84 }
-
85 
-
93 template <typename T>
- -
95  adjustBrightnessCallback = cb;
-
96 }
-
97 
-
107 template <typename T>
-
108 bool BrightnessController<T>::sendBrightnessEvent(int brightness, String cause) {
-
109  if (event_limiter) return false;
-
110  T* device = static_cast<T*>(this);
-
111 
-
112  DynamicJsonDocument eventMessage = device->prepareEvent(FSTR_BRIGHTNESS_setBrightness, cause.c_str());
-
113  JsonObject event_value = eventMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_value];
-
114  event_value[FSTR_BRIGHTNESS_brightness] = brightness;
-
115  return device->sendEvent(eventMessage);
-
116 }
-
117 
-
118 template <typename T>
-
119 bool BrightnessController<T>::handleBrightnessController(SinricProRequest &request) {
-
120  T* device = static_cast<T*>(this);
-
121  bool success = false;
-
122 
-
123  if (brightnessCallback && request.action == FSTR_BRIGHTNESS_setBrightness) {
-
124  int brightness = request.request_value[FSTR_BRIGHTNESS_brightness];
-
125  success = brightnessCallback(device->deviceId, brightness);
-
126  request.response_value[FSTR_BRIGHTNESS_brightness] = brightness;
-
127  }
-
128 
-
129  if (adjustBrightnessCallback && request.action == FSTR_BRIGHTNESS_adjustBrightness) {
-
130  int brightnessDelta = request.request_value[FSTR_BRIGHTNESS_brightnessDelta];
-
131  success = adjustBrightnessCallback(device->deviceId, brightnessDelta);
-
132  request.response_value[FSTR_BRIGHTNESS_brightness] = brightnessDelta;
-
133  }
-
134 
-
135  return success;
-
136 }
-
137 
-
138 } // SINRICPRO_NAMESPACE
-
139 
-
140 template <typename T>
-
141 using BrightnessController = SINRICPRO_NAMESPACE::BrightnessController<T>;
-
BrightnessController.
Definition: BrightnessController.h:50
-
void onAdjustBrightness(AdjustBrightnessCallback cb)
Set callback function for adjustBrightness request.
Definition: BrightnessController.h:94
-
bool sendBrightnessEvent(int brightness, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
Send setBrightness event to SinricPro Server indicating actual brightness.
Definition: BrightnessController.h:108
-
void onBrightness(BrightnessCallback cb)
Set callback function for setBrightness request.
Definition: BrightnessController.h:82
-
std::function< bool(const String &, int &)> AdjustBrightnessCallback
Callback definition for onAdjustBrightness function.
Definition: BrightnessController.h:43
-
std::function< bool(const String &, int &)> BrightnessCallback
Callback definition for onBrightness function.
Definition: BrightnessController.h:28
-
-
- - - - diff --git a/docs/docs/_channel_controller_8h_source.html b/docs/docs/_channel_controller_8h_source.html deleted file mode 100644 index cc4c8e6..0000000 --- a/docs/docs/_channel_controller_8h_source.html +++ /dev/null @@ -1,219 +0,0 @@ - - - - - - - -SinricPro Library: src/Capabilities/ChannelController.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
ChannelController.h
-
-
-
1 #pragma once
-
2 
-
3 #include "../SinricProRequest.h"
-
4 #include "../EventLimiter.h"
-
5 #include "../SinricProStrings.h"
-
6 
-
7 #include "../SinricProNamespace.h"
-
8 namespace SINRICPRO_NAMESPACE {
-
9 
-
10 FSTR(CHANNEL, changeChannel); // "changeChannel"
-
11 FSTR(CHANNEL, channel); // "channel"
-
12 FSTR(CHANNEL, name); // "name"
-
13 FSTR(CHANNEL, number); // "number"
-
14 FSTR(CHANNEL, skipChannels); // "skipChannels"
-
15 FSTR(CHANNEL, channelCount); // "channelCount"
-
16 
-
31 using ChangeChannelCallback = std::function<bool(const String &, String &)>;
-
32 
-
47 using ChangeChannelNumberCallback = std::function<bool(const String &, int, String &)>;
-
48 
-
63 using SkipChannelsCallback = std::function<bool(const String &, int, String &)>;
-
64 
-
69 template <typename T>
- -
71  public:
- -
73 
- - - -
77 
-
78  bool sendChangeChannelEvent(String channelName, String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION);
-
79  protected:
-
80  bool handleChannelController(SinricProRequest &request);
-
81 
-
82  private:
-
83  EventLimiter event_limiter;
-
84  ChangeChannelCallback changeChannelCallback;
-
85  ChangeChannelNumberCallback changeChannelNumberCallback;
-
86  SkipChannelsCallback skipChannelsCallback;
-
87 };
-
88 
-
89 template <typename T>
- -
91 : event_limiter(EVENT_LIMIT_STATE) {
-
92  T* device = static_cast<T*>(this);
-
93  device->registerRequestHandler(std::bind(&ChannelController<T>::handleChannelController, this, std::placeholders::_1));
-
94 }
-
95 
-
103 template <typename T>
- -
105  changeChannelCallback = cb;
-
106 }
-
107 
-
115 template <typename T>
- -
117  changeChannelNumberCallback = cb;
-
118 }
-
119 
-
127 template <typename T>
- -
129  skipChannelsCallback = cb;
-
130 }
-
131 
-
141 template <typename T>
-
142 bool ChannelController<T>::sendChangeChannelEvent(String channelName, String cause) {
-
143  if (event_limiter) return false;
-
144  T* device = static_cast<T*>(this);
-
145 
-
146  DynamicJsonDocument eventMessage = device->prepareEvent(FSTR_CHANNEL_changeChannel, cause.c_str());
-
147  JsonObject event_value = eventMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_value];
-
148  event_value[FSTR_CHANNEL_channel][FSTR_CHANNEL_name] = channelName;
-
149  return device->sendEvent(eventMessage);
-
150 }
-
151 
-
152 template <typename T>
-
153 bool ChannelController<T>::handleChannelController(SinricProRequest &request) {
-
154  T* device = static_cast<T*>(this);
-
155 
-
156  bool success = false;
-
157 
-
158  if (request.action == FSTR_CHANNEL_changeChannel) {
-
159 
-
160  if (changeChannelCallback && request.request_value[FSTR_CHANNEL_channel].containsKey(FSTR_CHANNEL_name)) {
-
161  String channelName = request.request_value[FSTR_CHANNEL_channel][FSTR_CHANNEL_name] | "";
-
162  success = changeChannelCallback(device->deviceId, channelName);
-
163  request.response_value[FSTR_CHANNEL_channel][FSTR_CHANNEL_name] = channelName;
-
164  }
-
165 
-
166  if (changeChannelNumberCallback && request.request_value[FSTR_CHANNEL_channel].containsKey(FSTR_CHANNEL_number)) {
-
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;
-
171  }
-
172  return success;
-
173  }
-
174 
-
175  if (skipChannelsCallback && request.action == FSTR_CHANNEL_skipChannels) {
-
176  String channelName;
-
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;
-
180  return success;
-
181  }
-
182 
-
183  return success;
-
184 }
-
185 
-
186 } // SINRICPRO_NAMESPACE
-
187 
-
188 template <typename T>
-
189 using ChannelController = SINRICPRO_NAMESPACE::ChannelController<T>;
-
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
-
-
- - - - diff --git a/docs/docs/_color_controller_8h_source.html b/docs/docs/_color_controller_8h_source.html deleted file mode 100644 index 34ac2ec..0000000 --- a/docs/docs/_color_controller_8h_source.html +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - -SinricPro Library: src/Capabilities/ColorController.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
ColorController.h
-
-
-
1 #pragma once
-
2 
-
3 #include "../SinricProRequest.h"
-
4 #include "../EventLimiter.h"
-
5 #include "../SinricProStrings.h"
-
6 
-
7 #include "../SinricProNamespace.h"
-
8 namespace SINRICPRO_NAMESPACE {
-
9 
-
10 FSTR(COLOR, setColor); // "setColor"
-
11 FSTR(COLOR, color); // "color"
-
12 FSTR(COLOR, r); // "r"
-
13 FSTR(COLOR, g); // "g"
-
14 FSTR(COLOR, b); // "b"
-
15 
-
33 using ColorCallback = std::function<bool(const String &, byte &, byte &, byte &)>;
-
34 
-
39 template <typename T>
- -
41  public:
- -
43 
- -
45  bool sendColorEvent(byte r, byte g, byte b, String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION);
-
46 
-
47  protected:
-
48  bool handleColorController(SinricProRequest &request);
-
49 
-
50  private:
-
51  EventLimiter event_limiter;
-
52  ColorCallback colorCallback;
-
53 };
-
54 
-
55 template <typename T>
- -
57 : event_limiter(EVENT_LIMIT_STATE) {
-
58  T* device = static_cast<T*>(this);
-
59  device->registerRequestHandler(std::bind(&ColorController<T>::handleColorController, this, std::placeholders::_1));
-
60 }
-
61 
-
62 
-
70 template <typename T>
- -
72  colorCallback = cb;
-
73 }
-
74 
-
86 template <typename T>
-
87 bool ColorController<T>::sendColorEvent(byte r, byte g, byte b, String cause) {
-
88  if (event_limiter) return false;
-
89  T* device = static_cast<T*>(this);
-
90 
-
91  DynamicJsonDocument eventMessage = device->prepareEvent(FSTR_COLOR_setColor, cause.c_str());
-
92  JsonObject event_color = eventMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_value].createNestedObject(FSTR_COLOR_color);
-
93  event_color[FSTR_COLOR_r] = r;
-
94  event_color[FSTR_COLOR_g] = g;
-
95  event_color[FSTR_COLOR_b] = b;
-
96  return device->sendEvent(eventMessage);
-
97 }
-
98 
-
99 template <typename T>
-
100 bool ColorController<T>::handleColorController(SinricProRequest &request) {
-
101  T* device = static_cast<T*>(this);
-
102 
-
103  bool success = false;
-
104 
-
105  if (colorCallback && request.action == FSTR_COLOR_setColor) {
-
106  unsigned char r, g, b;
-
107  r = request.request_value[FSTR_COLOR_color][FSTR_COLOR_r];
-
108  g = request.request_value[FSTR_COLOR_color][FSTR_COLOR_g];
-
109  b = request.request_value[FSTR_COLOR_color][FSTR_COLOR_b];
-
110  success = colorCallback(device->deviceId, r, g, b);
-
111  request.response_value.createNestedObject(FSTR_COLOR_color);
-
112  request.response_value[FSTR_COLOR_color][FSTR_COLOR_r] = r;
-
113  request.response_value[FSTR_COLOR_color][FSTR_COLOR_g] = g;
-
114  request.response_value[FSTR_COLOR_color][FSTR_COLOR_b] = b;
-
115  }
-
116 
-
117  return success;
-
118 }
-
119 
-
120 } // SINRICPRO_NAMESPACE
-
121 
-
122 template <typename T>
-
123 using ColorController = SINRICPRO_NAMESPACE::ColorController<T>;
-
ColorController.
Definition: ColorController.h:40
-
void onColor(ColorCallback cb)
Set callback function for setColor request.
Definition: ColorController.h:71
-
bool sendColorEvent(byte r, byte g, byte b, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
Send setColor event to SinricPro Server indicating actual color.
Definition: ColorController.h:87
-
std::function< bool(const String &, byte &, byte &, byte &)> ColorCallback
Callback definition for onColor function.
Definition: ColorController.h:33
-
-
- - - - diff --git a/docs/docs/_color_temperature_controller_8h_source.html b/docs/docs/_color_temperature_controller_8h_source.html deleted file mode 100644 index efcb9ee..0000000 --- a/docs/docs/_color_temperature_controller_8h_source.html +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - - -SinricPro Library: src/Capabilities/ColorTemperatureController.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
ColorTemperatureController.h
-
-
-
1 #pragma once
-
2 
-
3 #include "../SinricProRequest.h"
-
4 #include "../EventLimiter.h"
-
5 #include "../SinricProStrings.h"
-
6 
-
7 #include "../SinricProNamespace.h"
-
8 namespace SINRICPRO_NAMESPACE {
-
9 
-
10 FSTR(COLORTEMPERATURE, colorTemperature); // "colorTemperature"
-
11 FSTR(COLORTEMPERATURE, setColorTemperature); // "setColorTemperature"
-
12 FSTR(COLORTEMPERATURE, increaseColorTemperature); // "increaseColorTemperature"
-
13 FSTR(COLORTEMPERATURE, decreaseColorTemperature); // "decreaseColorTemperature"
-
14 
-
28 using ColorTemperatureCallback = std::function<bool(const String &, int &)>;
-
29 
-
43 using IncreaseColorTemperatureCallback = std::function<bool(const String &, int &)>;
-
44 
-
58 using DecreaseColorTemperatureCallback = std::function<bool(const String &, int &)>;
-
59 
-
60 
-
65 template <typename T>
- -
67  public:
- -
69 
- - - -
73 
-
74  bool sendColorTemperatureEvent(int colorTemperature, String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION);
-
75 
-
76  protected:
-
77  bool handleColorTemperatureController(SinricProRequest &request);
-
78 
-
79  private:
-
80  EventLimiter event_limiter;
-
81 // SinricProDeviceInterface *device;
-
82  ColorTemperatureCallback colorTemperatureCallback;
-
83  IncreaseColorTemperatureCallback increaseColorTemperatureCallback;
-
84  DecreaseColorTemperatureCallback decreaseColorTemperatureCallback;
-
85 };
-
86 
-
87 template <typename T>
- -
89 : event_limiter(EVENT_LIMIT_STATE) {
-
90  T* device = static_cast<T*>(this);
-
91  device->registerRequestHandler(std::bind(&ColorTemperatureController<T>::handleColorTemperatureController, this, std::placeholders::_1));
-
92 }
-
93 
-
101 template <typename T>
- -
103  colorTemperatureCallback = cb;
-
104 }
-
105 
-
113 template <typename T>
- -
115  increaseColorTemperatureCallback = cb;
-
116 }
-
117 
-
125 template <typename T>
- -
127  decreaseColorTemperatureCallback = cb;
-
128 }
-
129 
-
139 template <typename T>
-
140 bool ColorTemperatureController<T>::sendColorTemperatureEvent(int colorTemperature, String cause) {
-
141  if (event_limiter) return false;
-
142  T* device = static_cast<T*>(this);
-
143 
-
144  DynamicJsonDocument eventMessage = device->prepareEvent(FSTR_COLORTEMPERATURE_setColorTemperature, cause.c_str());
-
145  JsonObject event_value = eventMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_value];
-
146  event_value[FSTR_COLORTEMPERATURE_colorTemperature] = colorTemperature;
-
147  return device->sendEvent(eventMessage);
-
148 }
-
149 
-
150 template <typename T>
- -
152  T* device = static_cast<T*>(this);
-
153 
-
154  bool success = false;
-
155 
-
156  if (colorTemperatureCallback && request.action == FSTR_COLORTEMPERATURE_setColorTemperature) {
-
157  int colorTemperature = request.request_value[FSTR_COLORTEMPERATURE_colorTemperature];
-
158  success = colorTemperatureCallback(device->deviceId, colorTemperature);
-
159  request.response_value[FSTR_COLORTEMPERATURE_colorTemperature] = colorTemperature;
-
160  }
-
161 
-
162  if (increaseColorTemperatureCallback && request.action == FSTR_COLORTEMPERATURE_increaseColorTemperature) {
-
163  int colorTemperature = 1;
-
164  success = increaseColorTemperatureCallback(device->deviceId, colorTemperature);
-
165  request.response_value[FSTR_COLORTEMPERATURE_colorTemperature] = colorTemperature;
-
166  }
-
167 
-
168  if (decreaseColorTemperatureCallback && request.action == FSTR_COLORTEMPERATURE_decreaseColorTemperature) {
-
169  int colorTemperature = -1;
-
170  success = decreaseColorTemperatureCallback(device->deviceId, colorTemperature);
-
171  request.response_value[FSTR_COLORTEMPERATURE_colorTemperature] = colorTemperature;
-
172  }
-
173 
-
174  return success;
-
175 }
-
176 
-
177 } // SINRICPRO_NAMESPACE
-
178 
-
179 template <typename T>
-
180 using ColorTemperatureController = SINRICPRO_NAMESPACE::ColorTemperatureController<T>;
-
ColorTemperatureController.
Definition: ColorTemperatureController.h:66
-
bool sendColorTemperatureEvent(int colorTemperature, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
Send setColorTemperature event to SinricPro Server indicating actual color temperature.
Definition: ColorTemperatureController.h:140
-
void onDecreaseColorTemperature(DecreaseColorTemperatureCallback cb)
Set callback function for decreaseColorTemperature request.
Definition: ColorTemperatureController.h:126
-
void onIncreaseColorTemperature(IncreaseColorTemperatureCallback cb)
Set callback function for increaseColorTemperature request.
Definition: ColorTemperatureController.h:114
-
void onColorTemperature(ColorTemperatureCallback cb)
Set callback function for setColorTemperature request.
Definition: ColorTemperatureController.h:102
-
std::function< bool(const String &, int &)> ColorTemperatureCallback
Callback definition for onColorTemperature function.
Definition: ColorTemperatureController.h:28
-
std::function< bool(const String &, int &)> DecreaseColorTemperatureCallback
Callback definition for onDecreaseColorTemperature function.
Definition: ColorTemperatureController.h:58
-
std::function< bool(const String &, int &)> IncreaseColorTemperatureCallback
Callback definition for onIncreaseColorTemperature function.
Definition: ColorTemperatureController.h:43
-
-
- - - - diff --git a/docs/docs/_contact_sensor_8h_source.html b/docs/docs/_contact_sensor_8h_source.html deleted file mode 100644 index 0deaf90..0000000 --- a/docs/docs/_contact_sensor_8h_source.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - -SinricPro Library: src/Capabilities/ContactSensor.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
ContactSensor.h
-
-
-
1 #pragma once
-
2 
-
3 #include "../EventLimiter.h"
-
4 #include "../SinricProStrings.h"
-
5 
-
6 #include "../SinricProNamespace.h"
-
7 namespace SINRICPRO_NAMESPACE {
-
8 
-
9 FSTR(CONTACT, setContactState); // "setContactState"
-
10 FSTR(CONTACT, state); // "state"
-
11 FSTR(CONTACT, closed); // "closed"
-
12 FSTR(CONTACT, open); // "open"
-
13 
-
18 template <typename T>
- -
20  public:
-
21  ContactSensor();
-
22  bool sendContactEvent(bool detected, String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION);
-
23  private:
-
24  EventLimiter event_limiter;
-
25 };
-
26 
-
27 template <typename T>
- -
29 : event_limiter(EVENT_LIMIT_SENSOR_STATE) {}
-
30 
-
39 template <typename T>
-
40 bool ContactSensor<T>::sendContactEvent(bool detected, String cause) {
-
41  if (event_limiter) return false;
-
42  T* device = static_cast<T*>(this);
-
43 
-
44  DynamicJsonDocument eventMessage = device->prepareEvent(FSTR_CONTACT_setContactState, cause.c_str());
-
45  JsonObject event_value = eventMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_value];
-
46  event_value[FSTR_CONTACT_state] = detected ? FSTR_CONTACT_closed : FSTR_CONTACT_open;
-
47  return device->sendEvent(eventMessage);
-
48 }
-
49 
-
50 } // SINRICPRO_NAMESPACE
-
51 
-
52 template <typename T>
-
53 using ContactSensor = SINRICPRO_NAMESPACE::ContactSensor<T>;
-
ContactSensor.
Definition: ContactSensor.h:19
-
bool sendContactEvent(bool detected, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
Send setContactState event to SinricPro Server indicating actual power state.
Definition: ContactSensor.h:40
-
-
- - - - diff --git a/docs/docs/_door_controller_8h_source.html b/docs/docs/_door_controller_8h_source.html deleted file mode 100644 index 8b1cc36..0000000 --- a/docs/docs/_door_controller_8h_source.html +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - - -SinricPro Library: src/Capabilities/DoorController.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
DoorController.h
-
-
-
1 #pragma once
-
2 
-
3 #include "../SinricProRequest.h"
-
4 #include "../EventLimiter.h"
-
5 #include "../SinricProStrings.h"
-
6 
-
7 #include "../SinricProNamespace.h"
-
8 namespace SINRICPRO_NAMESPACE {
-
9 
-
10 FSTR(DOOR, setMode); // "setMode"
-
11 FSTR(DOOR, mode); // "mode"
-
12 FSTR(DOOR, Close); // "Close"
-
13 FSTR(DOOR, Open); // "Open"
-
14 
-
15 
-
29 using DoorCallback = std::function<bool(const String &, bool &)>;
-
30 
-
35 template <typename T>
- -
37  public:
- -
39 
- -
41  bool sendDoorStateEvent(bool state, String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION);
-
42 
-
43  protected:
-
44  bool handleDoorController(SinricProRequest &request);
-
45 
-
46  private:
-
47  EventLimiter event_limiter;
-
48  DoorCallback doorCallback;
-
49 };
-
50 
-
51 template <typename T>
- -
53 : event_limiter(EVENT_LIMIT_STATE) {
-
54  T* device = static_cast<T*>(this);
-
55  device->registerRequestHandler(std::bind(&DoorController<T>::handleDoorController, this, std::placeholders::_1));
-
56 }
-
57 
-
65 template <typename T>
-
66 void DoorController<T>::onDoorState(DoorCallback cb) { doorCallback = cb; }
-
67 
-
77 template <typename T>
-
78 bool DoorController<T>::sendDoorStateEvent(bool state, String cause) {
-
79  if (event_limiter) return false;
-
80  T* device = static_cast<T*>(this);
-
81 
-
82  DynamicJsonDocument eventMessage = device->prepareEvent(FSTR_DOOR_setMode, cause.c_str());
-
83  JsonObject event_value = eventMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_value];
-
84  state ? event_value[FSTR_DOOR_mode] = FSTR_DOOR_Close : event_value[FSTR_DOOR_mode] = FSTR_DOOR_Open;
-
85  return device->sendEvent(eventMessage);
-
86 }
-
87 
-
88 template <typename T>
-
89 bool DoorController<T>::handleDoorController(SinricProRequest &request) {
-
90  T* device = static_cast<T*>(this);
-
91 
-
92  bool success = false;
-
93  if (request.action == FSTR_DOOR_setMode && doorCallback) {
-
94  String mode = request.request_value[FSTR_DOOR_mode] | "";
-
95  bool state = mode == FSTR_DOOR_Close;
-
96  success = doorCallback(device->deviceId, state);
-
97  request.response_value[FSTR_DOOR_mode] = state ? FSTR_DOOR_Close : FSTR_DOOR_Open;
-
98  }
-
99  return success;
-
100 }
-
101 
-
102 } // SINRICPRO_NAMESPACE
-
103 
-
104 template <typename T>
-
105 using DoorController = SINRICPRO_NAMESPACE::DoorController<T>;
-
DoorController - only used for GarageDoor device and cannot used as capability for a custom device!
Definition: DoorController.h:36
-
bool sendDoorStateEvent(bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
Send DoorState event to update actual door state on SinricPro Server.
Definition: DoorController.h:78
-
void onDoorState(DoorCallback cb)
Set callback function for onDoorState request.
Definition: DoorController.h:66
-
std::function< bool(const String &, bool &)> DoorCallback
Callback definition for onDoorState function.
Definition: DoorController.h:29
-
-
- - - - diff --git a/docs/docs/_doorbell_8h_source.html b/docs/docs/_doorbell_8h_source.html deleted file mode 100644 index 7e76be0..0000000 --- a/docs/docs/_doorbell_8h_source.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - - - - -SinricPro Library: src/Capabilities/Doorbell.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
Doorbell.h
-
-
-
1 #pragma once
-
2 
-
3 #include "../EventLimiter.h"
-
4 #include "../SinricProStrings.h"
-
5 
-
6 #include "../SinricProNamespace.h"
-
7 namespace SINRICPRO_NAMESPACE {
-
8 
-
9 FSTR(DOORBELL, DoorbellPress); // "DoorbellPress"
-
10 FSTR(DOORBELL, state); // "state"
-
11 FSTR(DOORBELL, pressed); // "pressed"
-
12 
-
17 template <typename T>
-
18 class Doorbell {
-
19  public:
-
20  Doorbell();
-
21  bool sendDoorbellEvent(String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION);
-
22  private:
-
23  EventLimiter event_limiter;
-
24 };
-
25 
-
26 template <typename T>
- -
28 : event_limiter(EVENT_LIMIT_SENSOR_STATE) {}
-
29 
-
38 template <typename T>
-
39 bool Doorbell<T>::sendDoorbellEvent(String cause) {
-
40  if (event_limiter) return false;
-
41  T* device = static_cast<T*>(this);
-
42 
-
43  DynamicJsonDocument eventMessage = device->prepareEvent(FSTR_DOORBELL_DoorbellPress, cause.c_str());
-
44  JsonObject event_value = eventMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_value];
-
45  event_value[FSTR_DOORBELL_state] = FSTR_DOORBELL_pressed;
-
46  return device->sendEvent(eventMessage);
-
47 }
-
48 
-
49 } // SINRICPRO_NAMESPACE
-
50 
-
51 template <typename T>
-
52 using Doorbell = SINRICPRO_NAMESPACE::Doorbell<T>;
-
Dorbell.
Definition: Doorbell.h:18
-
bool sendDoorbellEvent(String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
Send Doorbell event to SinricPro Server indicating someone pressed the doorbell button.
Definition: Doorbell.h:39
-
-
- - - - diff --git a/docs/docs/_equalizer_controller_8h_source.html b/docs/docs/_equalizer_controller_8h_source.html deleted file mode 100644 index b192d99..0000000 --- a/docs/docs/_equalizer_controller_8h_source.html +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - - -SinricPro Library: src/Capabilities/EqualizerController.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
EqualizerController.h
-
-
-
1 #pragma once
-
2 
-
3 #include "../SinricProRequest.h"
-
4 #include "../EventLimiter.h"
-
5 #include "../SinricProStrings.h"
-
6 
-
7 #include "../SinricProNamespace.h"
-
8 namespace SINRICPRO_NAMESPACE {
-
9 
-
10 FSTR(EQUALIZER, setBands); // "setBands"
-
11 FSTR(EQUALIZER, bands); // "bands"
-
12 FSTR(EQUALIZER, name); // "name"
-
13 FSTR(EQUALIZER, value); // "value"
-
14 FSTR(EQUALIZER, level); // "level"
-
15 FSTR(EQUALIZER, adjustBands); // "adjustBands"
-
16 FSTR(EQUALIZER, levelDelta); // "levelDelta"
-
17 FSTR(EQUALIZER, levelDirection); // "levelDirection"
-
18 FSTR(EQUALIZER, DOWN); // "DOWN"
-
19 FSTR(EQUALIZER, resetBands); // "resetBands"
-
20 
-
37 using SetBandsCallback = std::function<bool(const String &, const String &, int &)>;
-
38 
-
55 using AdjustBandsCallback = std::function<bool(const String &, const String &, int &)>;
-
56 
-
72 using ResetBandsCallback = std::function<bool(const String &, const String &, int &)>;
-
73 
-
78 template <typename T>
- -
80 public:
- -
82 
- - - -
86 
-
87  bool sendBandsEvent(String bands, int level, String cause = "PHYSICAL_INTERACTION");
-
88 
-
89 protected:
-
90  bool handleEqualizerController(SinricProRequest &request);
-
91 
-
92 private:
-
93  EventLimiter event_limiter;
-
94  SetBandsCallback setBandsCallback;
-
95  AdjustBandsCallback adjustBandsCallback;
-
96  ResetBandsCallback resetBandsCallback;
-
97 };
-
98 
-
99 template <typename T>
- -
101 : event_limiter(EVENT_LIMIT_STATE) {
-
102  T* device = static_cast<T*>(this);
-
103  device->registerRequestHandler(std::bind(&EqualizerController<T>::handleEqualizerController, this, std::placeholders::_1));
-
104 }
-
105 
-
113 template <typename T>
-
114 void EqualizerController<T>::onSetBands(SetBandsCallback cb) { setBandsCallback = cb; }
-
115 
-
123 template <typename T>
-
124 void EqualizerController<T>::onAdjustBands(AdjustBandsCallback cb) { adjustBandsCallback = cb; }
-
125 
-
133 template <typename T>
-
134 void EqualizerController<T>::onResetBands(ResetBandsCallback cb) { resetBandsCallback = cb; }
-
135 
-
146 template <typename T>
-
147 bool EqualizerController<T>::sendBandsEvent(String bands, int level, String cause) {
-
148  if (event_limiter) return false;
-
149  T* device = static_cast<T*>(this);
-
150 
-
151  DynamicJsonDocument eventMessage = device->prepareEvent(FSTR_EQUALIZER_setBands, cause.c_str());
-
152  JsonObject event_value = eventMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_value];
-
153  JsonArray event_value_bands = event_value.createNestedArray(FSTR_EQUALIZER_bands);
-
154  JsonObject event_bands = event_value_bands.createNestedObject();
-
155  event_bands[FSTR_EQUALIZER_name] = bands;
-
156  event_bands[FSTR_EQUALIZER_value] = level;
-
157  return device->sendEvent(eventMessage);
-
158 }
-
159 
-
160 template <typename T>
-
161 bool EqualizerController<T>::handleEqualizerController(SinricProRequest &request) {
-
162  T* device = static_cast<T*>(this);
-
163  bool success = false;
-
164 
-
165  if (setBandsCallback && request.action == FSTR_EQUALIZER_setBands) {
-
166  JsonArray bands_array = request.request_value[FSTR_EQUALIZER_bands];
-
167  JsonArray response_value_bands = request.response_value.createNestedArray(FSTR_EQUALIZER_bands);
-
168 
-
169  for (size_t i = 0; i < bands_array.size(); i++) {
-
170  int level = bands_array[i][FSTR_EQUALIZER_level] | 0;
-
171  String bandsName = bands_array[i][FSTR_EQUALIZER_name] | "";
-
172  success = setBandsCallback(device->deviceId, bandsName, level);
-
173  JsonObject response_value_bands_i = response_value_bands.createNestedObject();
-
174  response_value_bands_i[FSTR_EQUALIZER_name] = bandsName;
-
175  response_value_bands_i[FSTR_EQUALIZER_level] = level;
-
176  }
-
177  return success;
-
178  }
-
179 
-
180  if (adjustBandsCallback && request.action == FSTR_EQUALIZER_adjustBands) {
-
181  JsonArray bands_array = request.request_value[FSTR_EQUALIZER_bands];
-
182  JsonArray response_value_bands = request.response_value.createNestedArray(FSTR_EQUALIZER_bands);
-
183 
-
184  for (size_t i = 0; i < bands_array.size(); i++) {
-
185  int levelDelta = bands_array[i][FSTR_EQUALIZER_levelDelta] | 1;
-
186  String direction = bands_array[i][FSTR_EQUALIZER_levelDirection];
-
187  if (direction == FSTR_EQUALIZER_DOWN)
-
188  levelDelta *= -1;
-
189  String bandsName = bands_array[i][FSTR_EQUALIZER_name] | "";
-
190  success = adjustBandsCallback(device->deviceId, bandsName, levelDelta);
-
191  JsonObject response_value_bands_i = response_value_bands.createNestedObject();
-
192  response_value_bands_i[FSTR_EQUALIZER_name] = bandsName;
-
193  response_value_bands_i[FSTR_EQUALIZER_level] = levelDelta;
-
194  }
-
195  return success;
-
196  }
-
197 
-
198  if (resetBandsCallback && request.action == FSTR_EQUALIZER_resetBands) {
-
199  JsonArray bands_array = request.request_value[FSTR_EQUALIZER_bands];
-
200  JsonArray response_value_bands = request.response_value.createNestedArray(FSTR_EQUALIZER_bands);
-
201 
-
202  for (size_t i = 0; i < bands_array.size(); i++) {
-
203  int level = 0;
-
204  String bandsName = bands_array[i][FSTR_EQUALIZER_name] | "";
-
205  success = adjustBandsCallback(device->deviceId, bandsName, level);
-
206  JsonObject response_value_bands_i = response_value_bands.createNestedObject();
-
207  response_value_bands_i[FSTR_EQUALIZER_name] = bandsName;
-
208  response_value_bands_i[FSTR_EQUALIZER_level] = level;
-
209  }
-
210  return success;
-
211  }
-
212 
-
213  return success;
-
214 }
-
215 
-
216 } // SINRICPRO_NAMESPACE
-
217 
-
218 template <typename T>
-
219 using EqualizerController = SINRICPRO_NAMESPACE::EqualizerController<T>;
-
EqualizerController.
Definition: EqualizerController.h:79
-
void onAdjustBands(AdjustBandsCallback cb)
Set callback function for adjustBands request.
Definition: EqualizerController.h:124
-
void onSetBands(SetBandsCallback cb)
Set callback function for setBands request.
Definition: EqualizerController.h:114
-
bool sendBandsEvent(String bands, int level, String cause="PHYSICAL_INTERACTION")
Send setBands event to SinricPro Server indicating bands level has changed.
Definition: EqualizerController.h:147
-
void onResetBands(ResetBandsCallback cb)
Set callback function for resetBands request.
Definition: EqualizerController.h:134
-
std::function< bool(const String &, const String &, int &)> AdjustBandsCallback
Callback definition for onAdjustBands function.
Definition: EqualizerController.h:55
-
std::function< bool(const String &, const String &, int &)> ResetBandsCallback
Callback definition for onResetBands function.
Definition: EqualizerController.h:72
-
std::function< bool(const String &, const String &, int &)> SetBandsCallback
Callback definition for onSetBands function.
Definition: EqualizerController.h:37
-
-
- - - - diff --git a/docs/docs/_event_limiter_8h_source.html b/docs/docs/_event_limiter_8h_source.html deleted file mode 100644 index 458a170..0000000 --- a/docs/docs/_event_limiter_8h_source.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - - - - -SinricPro Library: src/EventLimiter.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
EventLimiter.h
-
-
-
1 #pragma once
-
2 
-
3 #include "SinricProConfig.h"
-
4 #include "SinricProNamespace.h"
-
5 
-
6 namespace SINRICPRO_NAMESPACE {
-
7 
-
8 class EventLimiter {
-
9  public:
-
10  EventLimiter(unsigned long minimum_distance = 1000);
-
11  operator bool();
-
12  private:
-
13  unsigned long minimum_distance;
-
14  unsigned long next_event;
-
15  unsigned long extra_distance;
-
16  unsigned long fail_counter;
-
17 };
-
18 
-
19 EventLimiter::EventLimiter(unsigned long minimum_distance)
-
20 : minimum_distance(minimum_distance)
-
21 , next_event(0)
-
22 , extra_distance(0)
-
23 , fail_counter(0) {}
-
24 
-
25 EventLimiter::operator bool() {
-
26  unsigned long current_millis = millis();
-
27  unsigned long fail_threshold = (minimum_distance / 4);
-
28 
-
29  if ( current_millis >= next_event ) {
-
30 
-
31  if ( fail_counter > fail_threshold ) {
-
32 
-
33  extra_distance += minimum_distance;
-
34  fail_counter = 0;
-
35 
-
36  } else {
-
37 
-
38  extra_distance = 0;
-
39 
-
40  }
-
41 
-
42  next_event = current_millis + minimum_distance + extra_distance;
-
43  return false;
-
44 
-
45  }
-
46 
-
47  fail_counter++;
-
48  if (fail_counter == fail_threshold) Serial.printf("WARNING: YOUR CODE SENDS EXCESSIVE EVENTS! EVENTS ARE NOW LIMITED BY AN ADDITIONAL DELAY OF %lu SECONDS. PLEASE CHECK YOUR CODE!\r\n", extra_distance / 1000);
-
49 
-
50  return true;
-
51 }
-
52 
-
53 } // SINRICPRO_NAMESPACE
-
-
- - - - diff --git a/docs/docs/_input_controller_8h_source.html b/docs/docs/_input_controller_8h_source.html deleted file mode 100644 index 5efc0db..0000000 --- a/docs/docs/_input_controller_8h_source.html +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - - -SinricPro Library: src/Capabilities/InputController.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
InputController.h
-
-
-
1 #pragma once
-
2 
-
3 #include "../SinricProRequest.h"
-
4 #include "../EventLimiter.h"
-
5 #include "../SinricProStrings.h"
-
6 
-
7 #include "../SinricProNamespace.h"
-
8 namespace SINRICPRO_NAMESPACE {
-
9 
-
10 FSTR(INPUT, selectInput); // "selectInput"
-
11 FSTR(INPUT, input); // "input"
-
12 
-
27 using SelectInputCallback = std::function<bool(const String &, String &)>;
-
28 
-
29 
-
34 template <typename T>
- -
36  public:
- -
38 
- -
40  bool sendSelectInputEvent(String intput, String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION);
-
41 
-
42  protected:
-
43  bool handleInputController(SinricProRequest &request);
-
44 
-
45  private:
-
46  EventLimiter event_limiter;
-
47  SelectInputCallback selectInputCallback;
-
48 };
-
49 
-
50 template <typename T>
- -
52 : event_limiter(EVENT_LIMIT_STATE) {
-
53  T* device = static_cast<T*>(this);
-
54  device->registerRequestHandler(std::bind(&InputController<T>::handleInputController, this, std::placeholders::_1));
-
55 }
-
56 
-
64 template <typename T>
- -
66  selectInputCallback = cb;
-
67 }
-
68 
-
78 template <typename T>
-
79 bool InputController<T>::sendSelectInputEvent(String input, String cause) {
-
80  if (event_limiter) return false;
-
81  T* device = static_cast<T*>(this);
-
82 
-
83  DynamicJsonDocument eventMessage = device->prepareEvent(FSTR_INPUT_selectInput, cause.c_str());
-
84  JsonObject event_value = eventMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_value];
-
85  event_value[FSTR_INPUT_input] = input;
-
86  return device->sendEvent(eventMessage);
-
87 }
-
88 
-
89 template <typename T>
-
90 bool InputController<T>::handleInputController(SinricProRequest &request) {
-
91  T* device = static_cast<T*>(this);
-
92 
-
93  bool success = false;
-
94 
-
95  if (selectInputCallback && request.action == FSTR_INPUT_selectInput) {
-
96  String input = request.request_value[FSTR_INPUT_input];
-
97  success = selectInputCallback(device->deviceId, input);
-
98  request.response_value[FSTR_INPUT_input] = input;
-
99  return success;
-
100  }
-
101 
-
102  return success;
-
103 }
-
104 
-
105 } // SINRICPRO_NAMESPACE
-
106 
-
107 template <typename T>
-
108 using InputController = SINRICPRO_NAMESPACE::InputController<T>;
-
InputController.
Definition: InputController.h:35
-
void onSelectInput(SelectInputCallback cb)
Set callback function for selectInput request.
Definition: InputController.h:65
-
bool sendSelectInputEvent(String intput, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
Send selectInput event to SinricPro Server to report selected input.
Definition: InputController.h:79
-
std::function< bool(const String &, String &)> SelectInputCallback
Callback definition for onSelectInput function.
Definition: InputController.h:27
-
-
- - - - diff --git a/docs/docs/_keypad_controller_8h_source.html b/docs/docs/_keypad_controller_8h_source.html deleted file mode 100644 index f1da7b5..0000000 --- a/docs/docs/_keypad_controller_8h_source.html +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - - -SinricPro Library: src/Capabilities/KeypadController.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
KeypadController.h
-
-
-
1 #pragma once
-
2 
-
3 #include "../SinricProRequest.h"
-
4 #include "../SinricProStrings.h"
-
5 
-
6 #include "../SinricProNamespace.h"
-
7 namespace SINRICPRO_NAMESPACE {
-
8 
-
9 FSTR(KEYPAD, sendKeystroke); // "sendKeystroke"
-
10 FSTR(KEYPAD, keystroke); // "keystroke"
-
11 
-
26 using KeystrokeCallback = std::function<bool(const String &, String &)>;
-
27 
-
28 
-
33 template <typename T>
- -
35  public:
- -
37 
-
38  void onKeystroke(KeystrokeCallback cb);
-
39 
-
40  protected:
-
41  bool handleKeypadController(SinricProRequest &request);
-
42 
-
43  private:
-
44  KeystrokeCallback keystrokeCallback;
-
45 };
-
46 
-
47 template <typename T>
- -
49  T* device = static_cast<T*>(this);
-
50  device->registerRequestHandler(std::bind(&KeypadController<T>::handleKeypadController, this, std::placeholders::_1));
-
51 }
-
52 
-
60 template <typename T>
-
61 void KeypadController<T>::onKeystroke(KeystrokeCallback cb) { keystrokeCallback = cb; }
-
62 
-
63 
-
64 template <typename T>
-
65 bool KeypadController<T>::handleKeypadController(SinricProRequest &request) {
-
66  T* device = static_cast<T*>(this);
-
67 
-
68  bool success = false;
-
69  if (request.action != FSTR_KEYPAD_sendKeystroke) return false;
-
70 
-
71  if (keystrokeCallback) {
-
72  String keystroke = request.request_value[FSTR_KEYPAD_keystroke] | "";
-
73  success = keystrokeCallback(device->deviceId, keystroke);
-
74  request.response_value[FSTR_KEYPAD_keystroke] = keystroke;
-
75  return success;
-
76  }
-
77 
-
78  return success;
-
79 }
-
80 
-
81 } // SINRICPRO_NAMESPACE
-
82 
-
83 template <typename T>
-
84 using KeypadController = SINRICPRO_NAMESPACE::KeypadController<T>;
-
KeypadController.
Definition: KeypadController.h:34
-
std::function< bool(const String &, String &)> KeystrokeCallback
Callback definition for onKeystroke function.
Definition: KeypadController.h:26
-
-
- - - - diff --git a/docs/docs/_lock_controller_8h_source.html b/docs/docs/_lock_controller_8h_source.html deleted file mode 100644 index 8f9fb89..0000000 --- a/docs/docs/_lock_controller_8h_source.html +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - -SinricPro Library: src/Capabilities/LockController.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
LockController.h
-
-
-
1 #pragma once
-
2 
-
3 #include "../SinricProRequest.h"
-
4 #include "../EventLimiter.h"
-
5 #include "../SinricProStrings.h"
-
6 
-
7 #include "../SinricProNamespace.h"
-
8 namespace SINRICPRO_NAMESPACE {
-
9 
-
10 FSTR(LOCK, setLockState); // "setLockState"
-
11 FSTR(LOCK, state); // "state"
-
12 FSTR(LOCK, LOCKED); // "LOCKED"
-
13 FSTR(LOCK, UNLOCKED); // "UNLOCKED"
-
14 FSTR(LOCK, lock); // "lock"
-
15 FSTR(LOCK, JAMMED); // "JAMMED"
-
16 
-
36 using LockStateCallback = std::function<bool(const String &, bool &)>; // void onLockState(const DeviceId &deviceId, bool& lockState);
-
37 
-
38 
-
43 template <typename T>
- -
45  public:
- -
47 
- -
49  bool sendLockStateEvent(bool state, String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION);
-
50 
-
51  protected:
-
52  bool handleLockController(SinricProRequest &request);
-
53 
-
54  private:
-
55  EventLimiter event_limiter;
-
56  LockStateCallback lockStateCallback;
-
57 };
-
58 
-
59 template <typename T>
- -
61 : event_limiter(EVENT_LIMIT_STATE) {
-
62  T* device = static_cast<T*>(this);
-
63  device->registerRequestHandler(std::bind(&LockController<T>::handleLockController, this, std::placeholders::_1));
-
64 }
-
65 
-
73 template <typename T>
- -
75  lockStateCallback = cb;
-
76 }
-
77 
-
87 template <typename T>
-
88 bool LockController<T>::sendLockStateEvent(bool state, String cause) {
-
89  if (event_limiter) return false;
-
90  T* device = static_cast<T*>(this);
-
91 
-
92  DynamicJsonDocument eventMessage = device->prepareEvent(FSTR_LOCK_setLockState, cause.c_str());
-
93  JsonObject event_value = eventMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_value];
-
94  state ? event_value[FSTR_LOCK_state] = FSTR_LOCK_LOCKED : event_value[FSTR_LOCK_state] = FSTR_LOCK_UNLOCKED;
-
95  return device->sendEvent(eventMessage);
-
96 }
-
97 
-
98 template <typename T>
-
99 bool LockController<T>::handleLockController(SinricProRequest &request) {
-
100  T* device = static_cast<T*>(this);
-
101 
-
102  bool success = false;
-
103 
-
104  if (request.action == FSTR_LOCK_setLockState && lockStateCallback) {
-
105  bool lockState = request.request_value[FSTR_LOCK_state] == FSTR_LOCK_lock ? true : false;
-
106  success = lockStateCallback(device->deviceId, lockState);
-
107  request.response_value[FSTR_LOCK_state] = success ? lockState ? FSTR_LOCK_LOCKED : FSTR_LOCK_UNLOCKED : FSTR_LOCK_JAMMED;
-
108  return success;
-
109  }
-
110  return success;
-
111 }
-
112 
-
113 } // SINRICPRO_NAMESPACE
-
114 
-
115 template <typename T>
-
116 using LockController = SINRICPRO_NAMESPACE::LockController<T>;
-
LockController.
Definition: LockController.h:44
-
bool sendLockStateEvent(bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
Send lockState event to SinricPro Server indicating actual lock state.
Definition: LockController.h:88
-
void onLockState(LockStateCallback cb)
Set callback function for setLockState request.
Definition: LockController.h:74
-
std::function< bool(const String &, bool &)> LockStateCallback
Callback definition for onLockState function.
Definition: LockController.h:36
-
-
- - - - diff --git a/docs/docs/_media_controller_8h_source.html b/docs/docs/_media_controller_8h_source.html deleted file mode 100644 index 7fb4fcd..0000000 --- a/docs/docs/_media_controller_8h_source.html +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - - -SinricPro Library: src/Capabilities/MediaController.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
MediaController.h
-
-
-
1 #pragma once
-
2 
-
3 #include "../SinricProRequest.h"
-
4 #include "../EventLimiter.h"
-
5 #include "../SinricProStrings.h"
-
6 
-
7 #include "../SinricProNamespace.h"
-
8 namespace SINRICPRO_NAMESPACE {
-
9 
-
10 FSTR(MEDIA, mediaControl); // "mediaControl"
-
11 FSTR(MEDIA, control); // "control"
-
12 
-
27 using MediaControlCallback = std::function<bool(const String &, String &)>;
-
28 
-
29 
-
34 template <typename T>
- -
36  public:
- -
38 
- -
40  bool sendMediaControlEvent(String mediaControl, String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION);
-
41 
-
42  protected:
-
43  bool handleMediaController(SinricProRequest &request);
-
44 
-
45  private:
-
46  EventLimiter event_limiter;
-
47  MediaControlCallback mediaControlCallback;
-
48 };
-
49 
-
50 template <typename T>
- -
52 : event_limiter(EVENT_LIMIT_STATE) {
-
53  T* device = static_cast<T*>(this);
-
54  device->registerRequestHandler(std::bind(&MediaController<T>::handleMediaController, this, std::placeholders::_1));
-
55 }
-
56 
-
64 template <typename T>
- -
66  mediaControlCallback = cb;
-
67 }
-
68 
-
78 template <typename T>
-
79 bool MediaController<T>::sendMediaControlEvent(String mediaControl, String cause) {
-
80  if (event_limiter) return false;
-
81  T* device = static_cast<T*>(this);
-
82 
-
83  DynamicJsonDocument 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);
-
87 }
-
88 
-
89 template <typename T>
-
90 bool MediaController<T>::handleMediaController(SinricProRequest &request) {
-
91  T* device = static_cast<T*>(this);
-
92 
-
93  bool success = false;
-
94 
-
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;
-
99  return success;
-
100  }
-
101 
-
102  return success;
-
103 }
-
104 
-
105 } // SINRICPRO_NAMESPACE
-
106 
-
107 template <typename T>
-
108 using MediaController = SINRICPRO_NAMESPACE::MediaController<T>;
-
MediaController.
Definition: MediaController.h:35
-
bool sendMediaControlEvent(String mediaControl, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
Send mediaControl event to SinricPro Server indicating devices media control state.
Definition: MediaController.h:79
-
void onMediaControl(MediaControlCallback cb)
Set callback function for mediaControl request.
Definition: MediaController.h:65
-
std::function< bool(const String &, String &)> MediaControlCallback
Callback definition for onMediaControl function.
Definition: MediaController.h:27
-
-
- - - - diff --git a/docs/docs/_mode_controller_8h_source.html b/docs/docs/_mode_controller_8h_source.html deleted file mode 100644 index c835915..0000000 --- a/docs/docs/_mode_controller_8h_source.html +++ /dev/null @@ -1,214 +0,0 @@ - - - - - - - -SinricPro Library: src/Capabilities/ModeController.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
ModeController.h
-
-
-
1 #pragma once
-
2 
-
3 #include "../SinricProRequest.h"
-
4 #include "../EventLimiter.h"
-
5 #include "../SinricProStrings.h"
-
6 
-
7 #include "../SinricProNamespace.h"
-
8 
-
9 namespace SINRICPRO_NAMESPACE {
-
10 
-
11 FSTR(MODE, setMode); // "setMode"
-
12 FSTR(MODE, mode); // "mode"
-
13 
-
28 using ModeCallback = std::function<bool(const String &, String &)>;
-
29 
-
45 using GenericModeCallback = std::function<bool(const String &, const String &, String &)>;
-
46 
-
47 
-
52 template <typename T>
- -
54  public:
- -
56 
- -
58  void onSetMode(const String& instance, GenericModeCallback cb);
-
59 
-
60  bool sendModeEvent(String mode, String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION);
-
61  bool sendModeEvent(String instance, String mode, String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION);
-
62 
-
63  protected:
-
64 
-
65  bool handleModeController(SinricProRequest &request);
-
66 
-
67  private:
-
68  EventLimiter event_limiter;
-
69  std::map<String, EventLimiter> event_limiter_generic;
-
70  ModeCallback setModeCallback;
-
71  std::map<String, GenericModeCallback> genericModeCallback;
-
72 };
-
73 
-
74 template <typename T>
- -
76 : event_limiter(EVENT_LIMIT_STATE) {
-
77  T* device = static_cast<T*>(this);
-
78  device->registerRequestHandler(std::bind(&ModeController<T>::handleModeController, this, std::placeholders::_1));
-
79 }
-
80 
-
88 template <typename T>
-
89 void ModeController<T>::onSetMode(ModeCallback cb) { setModeCallback = cb; }
-
90 
-
99 template <typename T>
-
100 void ModeController<T>::onSetMode(const String& instance, GenericModeCallback cb) {
-
101  genericModeCallback[instance] = cb;
-
102 }
-
103 
-
113 template <typename T>
-
114 bool ModeController<T>::sendModeEvent(String mode, String cause) {
-
115  if (event_limiter) return false;
-
116  T* device = static_cast<T*>(this);
-
117 
-
118  DynamicJsonDocument eventMessage = device->prepareEvent(FSTR_MODE_setMode, cause.c_str());
-
119  JsonObject event_value = eventMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_value];
-
120  event_value[FSTR_MODE_mode] = mode;
-
121  return device->sendEvent(eventMessage);
-
122 }
-
123 
-
134 template <typename T>
-
135 bool ModeController<T>::sendModeEvent(String instance, String mode, String cause) {
-
136  if (event_limiter_generic.find(instance) == event_limiter_generic.end()) event_limiter_generic[instance] = EventLimiter(EVENT_LIMIT_STATE);
-
137  if (event_limiter_generic[instance]) return false;
-
138 
-
139  T* device = static_cast<T*>(this);
-
140 
-
141  DynamicJsonDocument eventMessage = device->prepareEvent(FSTR_MODE_setMode, cause.c_str());
-
142  eventMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_instanceId] = instance;
-
143  JsonObject event_value = eventMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_value];
-
144  event_value[FSTR_MODE_mode] = mode;
-
145  return device->sendEvent(eventMessage);
-
146 }
-
147 
-
148 template <typename T>
-
149 bool ModeController<T>::handleModeController(SinricProRequest &request) {
-
150  T* device = static_cast<T*>(this);
-
151 
-
152  bool success = false;
-
153  if (request.action != FSTR_MODE_setMode) return false;
-
154  String mode = request.request_value[FSTR_MODE_mode] | "";
-
155 
-
156  if (request.instance != "") {
-
157  if (genericModeCallback.find(request.instance) != genericModeCallback.end()) {
-
158  success = genericModeCallback[request.instance](device->deviceId, request.instance, mode);
-
159  request.response_value[FSTR_MODE_mode] = mode;
-
160  return success;
-
161  } else return false;
-
162  } else {
-
163  if (setModeCallback) {
-
164  success = setModeCallback(device->deviceId, mode);
-
165  request.response_value[FSTR_MODE_mode] = mode;
-
166  return success;
-
167  }
-
168  }
-
169 
-
170  return success;
-
171 }
-
172 
-
173 } // SINRICPRO_NAMESPACE
-
174 
-
175 template <typename T>
-
176 using ModeController = SINRICPRO_NAMESPACE::ModeController<T>;
-
ModeController.
Definition: ModeController.h:53
-
bool sendModeEvent(String mode, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
Send setMode event to SinricPro Server indicating the mode has changed.
Definition: ModeController.h:114
-
void onSetMode(const String &instance, GenericModeCallback cb)
Set callback function for setMode request on a specific instance.
Definition: ModeController.h:100
-
bool sendModeEvent(String instance, String mode, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
Send setMode event to SinricPro Server indicating the mode on a specific instance has changed.
Definition: ModeController.h:135
-
void onSetMode(ModeCallback cb)
Set callback function for setMode request.
Definition: ModeController.h:89
-
std::function< bool(const String &, String &)> ModeCallback
Callback definition for onSetMode function.
Definition: ModeController.h:28
-
std::function< bool(const String &, const String &, String &)> GenericModeCallback
Callback definition for onSetMode function for a specific instance.
Definition: ModeController.h:45
-
-
- - - - diff --git a/docs/docs/_motion_sensor_8h_source.html b/docs/docs/_motion_sensor_8h_source.html deleted file mode 100644 index a16639a..0000000 --- a/docs/docs/_motion_sensor_8h_source.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - -SinricPro Library: src/Capabilities/MotionSensor.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
MotionSensor.h
-
-
-
1 #pragma once
-
2 
-
3 #include "../EventLimiter.h"
-
4 #include "../SinricProStrings.h"
-
5 
-
6 #include "../SinricProNamespace.h"
-
7 namespace SINRICPRO_NAMESPACE {
-
8 
-
9 FSTR(MOTION, motion); // "motion"
-
10 FSTR(MOTION, state); // "state"
-
11 FSTR(MOTION, detected); // "detected"
-
12 FSTR(MOTION, notDetected); // "notDetected"
-
13 
-
18 template <typename T>
-
19 class MotionSensor {
-
20  public:
-
21  MotionSensor();
-
22  bool sendMotionEvent(bool detected, String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION);
-
23  private:
-
24  EventLimiter event_limiter;
-
25 };
-
26 
-
27 template <typename T>
- -
29 : event_limiter(EVENT_LIMIT_SENSOR_STATE) {}
-
30 
-
40 template <typename T>
-
41 bool MotionSensor<T>::sendMotionEvent(bool detected, String cause) {
-
42  if (event_limiter) return false;
-
43  T* device = static_cast<T*>(this);
-
44 
-
45  DynamicJsonDocument eventMessage = device->prepareEvent(FSTR_MOTION_motion, cause.c_str());
-
46  JsonObject event_value = eventMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_value];
-
47  event_value[FSTR_MOTION_state] = detected ? FSTR_MOTION_detected : FSTR_MOTION_notDetected;
-
48  return device->sendEvent(eventMessage);
-
49 }
-
50 
-
51 } // SINRICPRO_NAMESPACE
-
52 
-
53 template <typename T>
-
54 using MotionSensor = SINRICPRO_NAMESPACE::MotionSensor<T>;
-
MotionSensor.
Definition: MotionSensor.h:19
-
bool sendMotionEvent(bool detected, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
Sending motion detection state to SinricPro server.
Definition: MotionSensor.h:41
-
-
- - - - diff --git a/docs/docs/_mute_controller_8h_source.html b/docs/docs/_mute_controller_8h_source.html deleted file mode 100644 index 3703aa1..0000000 --- a/docs/docs/_mute_controller_8h_source.html +++ /dev/null @@ -1,172 +0,0 @@ - - - - - - - -SinricPro Library: src/Capabilities/MuteController.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
MuteController.h
-
-
-
1 #pragma once
-
2 
-
3 #include "../SinricProRequest.h"
-
4 #include "../EventLimiter.h"
-
5 #include "../SinricProStrings.h"
-
6 
-
7 #include "../SinricProNamespace.h"
-
8 namespace SINRICPRO_NAMESPACE {
-
9 
-
10 FSTR(MUTE, mute); // "mute"
-
11 FSTR(MUTE, setMute); // "setMute"
-
12 
-
27 using MuteCallback = std::function<bool(const String &, bool &)>;
-
28 
-
29 
-
34 template <typename T>
- -
36  public:
- -
38 
-
39  void onMute(MuteCallback cb);
-
40  bool sendMuteEvent(bool mute, String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION);
-
41  protected:
-
42  bool handleMuteController(SinricProRequest &request);
-
43 
-
44  private:
-
45  EventLimiter event_limiter;
-
46  MuteCallback muteCallback;
-
47 };
-
48 
-
49 template <typename T>
- -
51 :event_limiter(EVENT_LIMIT_STATE) {
-
52  T* device = static_cast<T*>(this);
-
53  device->registerRequestHandler(std::bind(&MuteController<T>::handleMuteController, this, std::placeholders::_1));
-
54 }
-
55 
-
63 template <typename T>
-
64 void MuteController<T>::onMute(MuteCallback cb) { muteCallback = cb; }
-
65 
-
75 template <typename T>
-
76 bool MuteController<T>::sendMuteEvent(bool mute, String cause) {
-
77  if (event_limiter) return false;
-
78  T* device = static_cast<T*>(this);
-
79 
-
80  DynamicJsonDocument 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);
-
84 }
-
85 
-
86 template <typename T>
-
87 bool MuteController<T>::handleMuteController(SinricProRequest &request) {
-
88  T* device = static_cast<T*>(this);
-
89 
-
90  bool success = false;
-
91 
-
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;
-
96  return success;
-
97  }
-
98  return success;
-
99 }
-
100 
-
101 } // SINRICPRO_NAMESPACE
-
102 
-
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
-
-
- - - - diff --git a/docs/docs/_percentage_controller_8h_source.html b/docs/docs/_percentage_controller_8h_source.html deleted file mode 100644 index a8f2089..0000000 --- a/docs/docs/_percentage_controller_8h_source.html +++ /dev/null @@ -1,190 +0,0 @@ - - - - - - - -SinricPro Library: src/Capabilities/PercentageController.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
PercentageController.h
-
-
-
1 #pragma once
-
2 
-
3 #include "../SinricProRequest.h"
-
4 #include "../EventLimiter.h"
-
5 #include "../SinricProStrings.h"
-
6 
-
7 #include "../SinricProNamespace.h"
-
8 namespace SINRICPRO_NAMESPACE {
-
9 
-
10 FSTR(PERCENTAGE, setPercentage); // "setPercentage"
-
11 FSTR(PERCENTAGE, percentage); // "percentage"
-
12 FSTR(PERCENTAGE, adjustPercentage); // "adjustPercentage"
-
13 
-
29 using SetPercentageCallback = std::function<bool(const String &, int &)>;
-
44 using AdjustPercentageCallback = std::function<bool(const String &, int &)>;
-
45 
-
46 
-
51 template <typename T>
- -
53  public:
- -
55 
-
56  void onSetPercentage(SetPercentageCallback cb);
-
57  void onAdjustPercentage(AdjustPercentageCallback cb);
-
58 
-
59  bool sendSetPercentageEvent(int percentage, String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION);
-
60 
-
61  protected:
-
62  bool handlePercentageController(SinricProRequest &request);
-
63 
-
64  private:
-
65  EventLimiter event_limiter;
-
66  SetPercentageCallback percentageCallback;
-
67  AdjustPercentageCallback adjustPercentageCallback;
-
68 };
-
69 
-
70 template <typename T>
- -
72 : event_limiter(EVENT_LIMIT_STATE) {
-
73  T* device = static_cast<T*>(this);
-
74  device->registerRequestHandler(std::bind(&PercentageController<T>::handlePercentageController, this, std::placeholders::_1));
-
75 }
-
76 
-
84 template <typename T>
- -
86 
-
94 template <typename T>
-
95 void PercentageController<T>::onAdjustPercentage(AdjustPercentageCallback cb) { adjustPercentageCallback = cb; }
-
96 
-
106 template <typename T>
-
107 bool PercentageController<T>::sendSetPercentageEvent(int percentage, String cause) {
-
108  if (event_limiter) return false;
-
109  T* device = static_cast<T*>(this);
-
110 
-
111  DynamicJsonDocument eventMessage = device->prepareEvent(FSTR_PERCENTAGE_setPercentage, cause.c_str());
-
112  JsonObject event_value = eventMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_value];
-
113  event_value[FSTR_PERCENTAGE_percentage] = percentage;
-
114  return device->sendEvent(eventMessage);
-
115 }
-
116 
-
117 template <typename T>
-
118 bool PercentageController<T>::handlePercentageController(SinricProRequest &request) {
-
119  T* device = static_cast<T*>(this);
-
120 
-
121  bool success = false;
-
122 
-
123  if (percentageCallback && request.action == FSTR_PERCENTAGE_setPercentage) {
-
124  int percentage = request.request_value[FSTR_PERCENTAGE_percentage];
-
125  success = percentageCallback(device->deviceId, percentage);
-
126  request.response_value[FSTR_PERCENTAGE_percentage] = percentage;
-
127  return success;
-
128  }
-
129 
-
130  if (adjustPercentageCallback && request.action == FSTR_PERCENTAGE_adjustPercentage) {
-
131  int percentage = request.request_value[FSTR_PERCENTAGE_percentage];
-
132  success = adjustPercentageCallback(device->deviceId, percentage);
-
133  request.response_value[FSTR_PERCENTAGE_percentage] = percentage;
-
134  return success;
-
135  }
-
136  return success;
-
137 }
-
138 
-
139 } // SINRICPRO_NAMESPACE
-
140 
-
141 template <typename T>
-
142 using PercentageController = SINRICPRO_NAMESPACE::PercentageController<T>;
-
PercentageController.
Definition: PercentageController.h:52
-
void onAdjustPercentage(AdjustPercentageCallback cb)
Set callback function for adjustPercentage request.
Definition: PercentageController.h:95
-
bool sendSetPercentageEvent(int percentage, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
Send setPercentage event to SinricPro Server indicating actual percentage has changed.
Definition: PercentageController.h:107
-
void onSetPercentage(SetPercentageCallback cb)
Set callback function for setPercentage request.
Definition: PercentageController.h:85
-
std::function< bool(const String &, int &)> AdjustPercentageCallback
Callback definition for onAdjustPercentage function.
Definition: PercentageController.h:44
-
std::function< bool(const String &, int &)> SetPercentageCallback
Callback definition for onSetPercentage function.
Definition: PercentageController.h:29
-
-
- - - - diff --git a/docs/docs/_power_level_controller_8h_source.html b/docs/docs/_power_level_controller_8h_source.html deleted file mode 100644 index 90478cb..0000000 --- a/docs/docs/_power_level_controller_8h_source.html +++ /dev/null @@ -1,193 +0,0 @@ - - - - - - - -SinricPro Library: src/Capabilities/PowerLevelController.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
PowerLevelController.h
-
-
-
1 #pragma once
-
2 
-
3 #include "../SinricProRequest.h"
-
4 #include "../EventLimiter.h"
-
5 #include "../SinricProStrings.h"
-
6 
-
7 #include "../SinricProNamespace.h"
-
8 namespace SINRICPRO_NAMESPACE {
-
9 
-
10 FSTR(POWERLEVEL, setPowerLevel); // "setPowerLevel"
-
11 FSTR(POWERLEVEL, powerLevel); // "powerLevel"
-
12 FSTR(POWERLEVEL, adjustPowerLevel); // "adjustPowerLevel"
-
13 FSTR(POWERLEVEL, powerLevelDelta); // "powerLevelDelta"
-
14 
-
30 using SetPowerLevelCallback = std::function<bool(const String &, int &)>;
-
45 using AdjustPowerLevelCallback = std::function<bool(const String &, int &)>;
-
46 
-
47 
-
52 template <typename T>
- -
54  public:
- -
56 
- - -
59  bool sendPowerLevelEvent(int powerLevel, String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION);
-
60 
-
61  protected:
-
62  bool handlePowerLevelController(SinricProRequest &request);
-
63 
-
64  private:
-
65  EventLimiter event_limiter;
-
66  SetPowerLevelCallback setPowerLevelCallback;
-
67  AdjustPowerLevelCallback adjustPowerLevelCallback;
-
68 };
-
69 
-
70 template <typename T>
- -
72 : event_limiter(EVENT_LIMIT_STATE) {
-
73  T* device = static_cast<T*>(this);
-
74  device->registerRequestHandler(std::bind(&PowerLevelController<T>::handlePowerLevelController, this, std::placeholders::_1));
-
75 }
-
76 
-
83 template <typename T>
- -
85  setPowerLevelCallback = cb;
-
86 }
-
87 
-
94 template <typename T>
- -
96 {
-
97  adjustPowerLevelCallback = cb;
-
98 }
-
99 
-
109 template <typename T>
-
110 bool PowerLevelController<T>::sendPowerLevelEvent(int powerLevel, String cause) {
-
111  if (event_limiter) return false;
-
112  T* device = static_cast<T*>(this);
-
113 
-
114  DynamicJsonDocument eventMessage = device->prepareEvent(FSTR_POWERLEVEL_setPowerLevel, cause.c_str());
-
115  JsonObject event_value = eventMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_value];
-
116  event_value[FSTR_POWERLEVEL_powerLevel] = powerLevel;
-
117  return device->sendEvent(eventMessage);
-
118 }
-
119 
-
120 template <typename T>
-
121 bool PowerLevelController<T>::handlePowerLevelController(SinricProRequest &request) {
-
122  T* device = static_cast<T*>(this);
-
123 
-
124  bool success = false;
-
125 
-
126  if (setPowerLevelCallback && request.action == FSTR_POWERLEVEL_setPowerLevel) {
-
127  int powerLevel = request.request_value[FSTR_POWERLEVEL_powerLevel];
-
128  success = setPowerLevelCallback(device->deviceId, powerLevel);
-
129  request.response_value[FSTR_POWERLEVEL_powerLevel] = powerLevel;
-
130  }
-
131 
-
132  if (adjustPowerLevelCallback && request.action == FSTR_POWERLEVEL_adjustPowerLevel) {
-
133  int powerLevelDelta = request.request_value[FSTR_POWERLEVEL_powerLevelDelta];
-
134  success = adjustPowerLevelCallback(device->deviceId, powerLevelDelta);
-
135  request.response_value[FSTR_POWERLEVEL_powerLevel] = powerLevelDelta;
-
136  }
-
137  return success;
-
138 }
-
139 
-
140 } // SINRICPRO_NAMESPACE
-
141 
-
142 template <typename T>
-
143 using PowerLevelController = SINRICPRO_NAMESPACE::PowerLevelController<T>;
-
PowerLevelController.
Definition: PowerLevelController.h:53
-
void onPowerLevel(SetPowerLevelCallback cb)
Set callback function for setPowerLevel request.
Definition: PowerLevelController.h:84
-
void onAdjustPowerLevel(AdjustPowerLevelCallback cb)
Set callback function for adjustPowerLevel request.
Definition: PowerLevelController.h:95
-
bool sendPowerLevelEvent(int powerLevel, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
Send setPowerLevel event to SinricPro Server indicating actual power level.
Definition: PowerLevelController.h:110
-
std::function< bool(const String &, int &)> AdjustPowerLevelCallback
Definition for onAdjustPowerLevel callback.
Definition: PowerLevelController.h:45
-
std::function< bool(const String &, int &)> SetPowerLevelCallback
Definition for setPowerLevel callback.
Definition: PowerLevelController.h:30
-
-
- - - - diff --git a/docs/docs/_power_sensor_8h_source.html b/docs/docs/_power_sensor_8h_source.html deleted file mode 100644 index 9156ee9..0000000 --- a/docs/docs/_power_sensor_8h_source.html +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - - -SinricPro Library: src/Capabilities/PowerSensor.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
PowerSensor.h
-
-
-
1 #pragma once
-
2 
-
3 #include "../EventLimiter.h"
-
4 #include "../SinricProStrings.h"
-
5 
-
6 #include "../SinricProNamespace.h"
-
7 namespace SINRICPRO_NAMESPACE {
-
8 
-
9 FSTR(POWERSENSOR, powerUsage); // "powerUsage"
-
10 FSTR(POWERSENSOR, startTime); // "startTime"
-
11 FSTR(POWERSENSOR, voltage); // "voltage"
-
12 FSTR(POWERSENSOR, current); // "current"
-
13 FSTR(POWERSENSOR, power); // "power"
-
14 FSTR(POWERSENSOR, apparentPower); // "apparentPower"
-
15 FSTR(POWERSENSOR, reactivePower); // "reactivePower"
-
16 FSTR(POWERSENSOR, factor); // "factor"
-
17 FSTR(POWERSENSOR, wattHours); // "wattHours"
-
18 
-
23 template <typename T>
-
24 class PowerSensor {
-
25 public:
-
26  PowerSensor();
-
27  bool sendPowerSensorEvent(float voltage, float current, float power = -1.0f, float apparentPower = -1.0f, float reactivePower = -1.0f, float factor = -1.0f, String cause = FSTR_SINRICPRO_PERIODIC_POLL);
-
28 
-
29 private:
-
30  EventLimiter event_limiter;
-
31  unsigned long startTime = 0;
-
32  unsigned long lastPower = 0;
-
33  float getWattHours(unsigned long currentTimestamp);
-
34 };
-
35 
-
36 template <typename T>
- -
38 : event_limiter(EVENT_LIMIT_SENSOR_VALUE) {}
-
39 
-
53 template <typename T>
-
54 bool PowerSensor<T>::sendPowerSensorEvent(float voltage, float current, float power, float apparentPower, float reactivePower, float factor, String cause) {
-
55  if (event_limiter) return false;
-
56  T* device = static_cast<T*>(this);
-
57 
-
58  DynamicJsonDocument eventMessage = device->prepareEvent(FSTR_POWERSENSOR_powerUsage, cause.c_str());
-
59  JsonObject event_value = eventMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_value];
-
60  if (power == -1)
-
61  power = voltage * current;
-
62  if (apparentPower != -1)
-
63  factor = power / apparentPower;
-
64 
-
65  unsigned long currentTimestamp = device->getTimestamp();
-
66 
-
67  event_value[FSTR_POWERSENSOR_startTime] = startTime;
-
68  event_value[FSTR_POWERSENSOR_voltage] = voltage;
-
69  event_value[FSTR_POWERSENSOR_current] = current;
-
70  event_value[FSTR_POWERSENSOR_power] = power;
-
71  event_value[FSTR_POWERSENSOR_apparentPower] = apparentPower;
-
72  event_value[FSTR_POWERSENSOR_reactivePower] = reactivePower;
-
73  event_value[FSTR_POWERSENSOR_factor] = factor;
-
74  event_value[FSTR_POWERSENSOR_wattHours] = getWattHours(currentTimestamp);
-
75 
-
76  startTime = currentTimestamp;
-
77  lastPower = power;
-
78  return device->sendEvent(eventMessage);
-
79 }
-
80 
-
81 template <typename T>
-
82 float PowerSensor<T>::getWattHours(unsigned long currentTimestamp) {
-
83  if (startTime)
-
84  return (currentTimestamp - startTime) * lastPower / 3600.0f;
-
85  return 0;
-
86 }
-
87 
-
88 } // SINRICPRO_NAMESPACE
-
89 
-
90 template <typename T>
-
91 using PowerSensor = SINRICPRO_NAMESPACE::PowerSensor<T>;
-
PowerSensor.
Definition: PowerSensor.h:24
-
bool sendPowerSensorEvent(float voltage, float current, float power=-1.0f, float apparentPower=-1.0f, float reactivePower=-1.0f, float factor=-1.0f, String cause=FSTR_SINRICPRO_PERIODIC_POLL)
Send PowerSensor event to SinricPro Server.
Definition: PowerSensor.h:54
-
-
- - - - diff --git a/docs/docs/_power_state_controller_8h_source.html b/docs/docs/_power_state_controller_8h_source.html deleted file mode 100644 index 021eaeb..0000000 --- a/docs/docs/_power_state_controller_8h_source.html +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - - -SinricPro Library: src/Capabilities/PowerStateController.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
PowerStateController.h
-
-
-
1 #pragma once
-
2 
-
3 #include "../SinricProRequest.h"
-
4 #include "../EventLimiter.h"
-
5 #include "../SinricProStrings.h"
-
6 
-
7 #include "../SinricProNamespace.h"
-
8 namespace SINRICPRO_NAMESPACE {
-
9 
-
10 FSTR(POWERSTATE, state); // "state"
-
11 FSTR(POWERSTATE, On); // "On"
-
12 FSTR(POWERSTATE, Off); // "Off"
-
13 FSTR(POWERSTATE, setPowerState); // "setPowerState"
-
14 
-
28 using PowerStateCallback = std::function<bool(const String &, bool &)>;
-
29 
-
30 
-
35 template <typename T>
- -
37  public:
- -
39 
- -
41  bool sendPowerStateEvent(bool state, String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION);
-
42 
-
43  protected:
-
44  bool handlePowerStateController(SinricProRequest &request);
-
45 
-
46  private:
-
47  EventLimiter event_limiter;
-
48  PowerStateCallback powerStateCallback;
-
49 };
-
50 
-
51 template <typename T>
- -
53 : event_limiter(EVENT_LIMIT_STATE) {
-
54  T* device = static_cast<T*>(this);
-
55  device->registerRequestHandler(std::bind(&PowerStateController<T>::handlePowerStateController, this, std::placeholders::_1));
-
56 }
-
57 
-
65 template <typename T>
- -
67  powerStateCallback = cb;
-
68 }
-
69 
-
79 template <typename T>
-
80 bool PowerStateController<T>::sendPowerStateEvent(bool state, String cause) {
-
81  if (event_limiter) return false;
-
82  T* device = static_cast<T*>(this);
-
83 
-
84  DynamicJsonDocument eventMessage = device->prepareEvent(FSTR_POWERSTATE_setPowerState, cause.c_str());
-
85  JsonObject event_value = eventMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_value];
-
86  event_value[FSTR_POWERSTATE_state] = state ? FSTR_POWERSTATE_On : FSTR_POWERSTATE_Off;
-
87  return device->sendEvent(eventMessage);
-
88 }
-
89 
-
90 template <typename T>
-
91 bool PowerStateController<T>::handlePowerStateController(SinricProRequest &request) {
-
92  T* device = static_cast<T*>(this);
-
93 
-
94  bool success = false;
-
95 
-
96  if (request.action == FSTR_POWERSTATE_setPowerState && powerStateCallback) {
-
97  bool powerState = request.request_value[FSTR_POWERSTATE_state] == FSTR_POWERSTATE_On ? true : false;
-
98  success = powerStateCallback(device->deviceId, powerState);
-
99  request.response_value[FSTR_POWERSTATE_state] = powerState ? FSTR_POWERSTATE_On : FSTR_POWERSTATE_Off;
-
100  return success;
-
101  }
-
102  return success;
-
103 }
-
104 
-
105 } // SINRICPRO_NAMESPACE
-
106 
-
107 template <typename T>
-
108 using PowerStateController = SINRICPRO_NAMESPACE::PowerStateController<T>;
-
PowerStateController.
Definition: PowerStateController.h:36
-
void onPowerState(PowerStateCallback cb)
Set callback function for powerState request.
Definition: PowerStateController.h:66
-
bool sendPowerStateEvent(bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
Send setPowerState event to SinricPro Server indicating actual power state.
Definition: PowerStateController.h:80
-
std::function< bool(const String &, bool &)> PowerStateCallback
Callback definition for onPowerState function.
Definition: PowerStateController.h:28
-
-
- - - - diff --git a/docs/docs/_push_notification_8h_source.html b/docs/docs/_push_notification_8h_source.html deleted file mode 100644 index 42dd19b..0000000 --- a/docs/docs/_push_notification_8h_source.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - -SinricPro Library: src/Capabilities/PushNotification.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
PushNotification.h
-
-
-
1 #pragma once
-
2 
-
3 #include "../EventLimiter.h"
-
4 #include "../SinricProStrings.h"
-
5 
-
6 #include "../SinricProNamespace.h"
-
7 namespace SINRICPRO_NAMESPACE {
-
8 
-
9 FSTR(PUSHNOTIFICATION, pushNotification); // "pushNotification"
-
10 FSTR(PUSHNOTIFICATION, alert); // "alert"
-
11 
-
16 template <typename T>
- -
18  public:
- -
20  bool sendPushNotification(String notification);
-
21  private:
-
22  EventLimiter event_limiter;
-
23 };
-
24 
-
25 template <typename T>
- -
27 : event_limiter (EVENT_LIMIT_SENSOR_VALUE) {}
-
28 
-
37 template <typename T>
-
38 bool PushNotification<T>::sendPushNotification(String notification) {
-
39  if (event_limiter) return false;
-
40  T* device = static_cast<T*>(this);
-
41 
-
42  DynamicJsonDocument eventMessage = device->prepareEvent(FSTR_PUSHNOTIFICATION_pushNotification, FSTR_SINRICPRO_ALERT);
-
43  JsonObject event_value = eventMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_value];
-
44 
-
45  event_value[FSTR_PUSHNOTIFICATION_alert] = notification;
-
46 
-
47  return device->sendEvent(eventMessage);
-
48 }
-
49 
-
50 } // SINRICPRO_NAMESPACE
-
51 
-
52 template <typename T>
-
53 using PushNotification = SINRICPRO_NAMESPACE::PushNotification<T>;
-
PushNotification.
Definition: PushNotification.h:17
-
bool sendPushNotification(String notification)
Sending push notifications to SinricPro App.
Definition: PushNotification.h:38
-
-
- - - - diff --git a/docs/docs/_range_controller_8h_source.html b/docs/docs/_range_controller_8h_source.html deleted file mode 100644 index 4d0248a..0000000 --- a/docs/docs/_range_controller_8h_source.html +++ /dev/null @@ -1,333 +0,0 @@ - - - - - - - -SinricPro Library: src/Capabilities/RangeController.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
RangeController.h
-
-
-
1 #pragma once
-
2 
-
3 #include "../SinricProRequest.h"
-
4 #include "../EventLimiter.h"
-
5 #include "../SinricProStrings.h"
-
6 
-
7 #include "../SinricProNamespace.h"
-
8 namespace SINRICPRO_NAMESPACE {
-
9 
-
10 FSTR(RANGE, setRangeValue); // "setRangeValue"
-
11 FSTR(RANGE, rangeValue); // "rangeValue"
-
12 FSTR(RANGE, adjustRangeValue); // "adjustRangeValue"
-
13 FSTR(RANGE, rangeValueDelta); // "rangeValueDelta"
-
14 
-
30 using GenericRangeValueCallback_int = bool (*)(const String &, const String &, int &);
-
31 using GenericRangeValueCallback_float = bool (*)(const String &, const String &, float &);
-
32 
-
33 struct GenericRangeValueCallback {
-
34  GenericRangeValueCallback() : type(type_unknown) {}
-
35  GenericRangeValueCallback(GenericRangeValueCallback_int cb) : type(type_int), cb_int(cb) {}
-
36  GenericRangeValueCallback(GenericRangeValueCallback_float cb) : type(type_float), cb_float(cb) {}
-
37  enum {
-
38  type_unknown,
-
39  type_int,
-
40  type_float
-
41  } type;
-
42  union {
- -
44  GenericRangeValueCallback_float cb_float;
-
45  };
-
46 };
-
47 
-
48 using SetRangeValueCallback = bool (*)(const String &, int &);
-
49 
- -
66  using GenericSetRangeValueCallback_float = GenericRangeValueCallback_float;
-
67 
-
82 using AdjustRangeValueCallback = bool (*)(const String &, int &);
-
83 
- -
100 using GenericAdjustRangeValueCallback_float = GenericRangeValueCallback_float;
-
101 
-
102 
-
103 
-
108 template <typename T>
- -
110  public:
-
111 
-
112  RangeController();
-
113 
-
114  void onRangeValue(SetRangeValueCallback cb);
-
115  void onRangeValue(const String& instance, GenericSetRangeValueCallback_int cb);
-
116  void onRangeValue(const String& instance, GenericSetRangeValueCallback_float cb);
-
117 
- -
119  void onAdjustRangeValue(const String& instance, GenericAdjustRangeValueCallback_int cb);
-
120  void onAdjustRangeValue(const String& instance, GenericAdjustRangeValueCallback_float cb);
-
121 
-
122  bool sendRangeValueEvent(int rangeValue, String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION);
-
123  bool sendRangeValueEvent(const String& instance, int rangeValue, String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION);
-
124  bool sendRangeValueEvent(const String& instance, float rangeValue, String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION);
-
125 
-
126  protected:
-
127  bool handleRangeController(SinricProRequest &request);
-
128 
-
129  private:
-
130  EventLimiter event_limiter;
-
131  std::map<String, EventLimiter> event_limiter_generic;
-
132  SetRangeValueCallback setRangeValueCallback;
-
133  std::map<String, GenericRangeValueCallback> genericSetRangeValueCallback;
-
134  AdjustRangeValueCallback adjustRangeValueCallback;
-
135  std::map<String, GenericRangeValueCallback> genericAdjustRangeValueCallback;
-
136 };
-
137 
-
138 template <typename T>
- -
140 : event_limiter(EVENT_LIMIT_STATE) {
-
141  T* device = static_cast<T*>(this);
-
142  device->registerRequestHandler(std::bind(&RangeController<T>::handleRangeController, this, std::placeholders::_1));
-
143 }
-
144 
-
151 template <typename T>
-
152 void RangeController<T>::onRangeValue(SetRangeValueCallback cb) {
-
153  setRangeValueCallback = cb;
-
154 }
-
155 
-
163 template <typename T>
- -
165  genericSetRangeValueCallback[instance] = GenericRangeValueCallback(cb);
-
166 }
-
167 
-
168 template <typename T>
-
169 void RangeController<T>::onRangeValue(const String& instance, GenericSetRangeValueCallback_float cb) {
-
170  genericSetRangeValueCallback[instance] = GenericRangeValueCallback(cb);
-
171 }
-
172 
-
179 template <typename T>
- -
181  adjustRangeValueCallback = cb;
-
182 }
-
183 
-
184 template <typename T>
- -
186  genericAdjustRangeValueCallback[instance] = GenericRangeValueCallback(cb);
-
187 }
-
188 
-
189 template <typename T>
-
190 void RangeController<T>::onAdjustRangeValue(const String &instance, GenericAdjustRangeValueCallback_float cb) {
-
191  genericAdjustRangeValueCallback[instance] = GenericRangeValueCallback(cb);
-
192 }
-
193 
-
203 template <typename T>
-
204 bool RangeController<T>::sendRangeValueEvent(int rangeValue, String cause) {
-
205  if (event_limiter) return false;
-
206  T* device = static_cast<T*>(this);
-
207 
-
208  DynamicJsonDocument eventMessage = device->prepareEvent(FSTR_RANGE_setRangeValue, cause.c_str());
-
209  JsonObject event_value = eventMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_value];
-
210  event_value[FSTR_RANGE_rangeValue] = rangeValue;
-
211  return device->sendEvent(eventMessage);
-
212 }
-
213 
-
224 template <typename T>
-
225 bool RangeController<T>::sendRangeValueEvent(const String& instance, int rangeValue, String cause){
-
226  if (event_limiter_generic.find(instance) == event_limiter_generic.end()) event_limiter_generic[instance] = EventLimiter(EVENT_LIMIT_STATE);
-
227  if (event_limiter_generic[instance]) return false;
-
228  T* device = static_cast<T*>(this);
-
229 
-
230  DynamicJsonDocument eventMessage = device->prepareEvent(FSTR_RANGE_setRangeValue, cause.c_str());
-
231  eventMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_instanceId] = instance;
-
232 
-
233  JsonObject event_value = eventMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_value];
-
234  event_value[FSTR_RANGE_rangeValue] = rangeValue;
-
235  return device->sendEvent(eventMessage);
-
236 }
-
237 
-
238 template <typename T>
-
239 bool RangeController<T>::sendRangeValueEvent(const String& instance, float rangeValue, String cause) {
-
240  if (event_limiter_generic.find(instance) == event_limiter_generic.end()) event_limiter_generic[instance] = EventLimiter(EVENT_LIMIT_STATE);
-
241  if (event_limiter_generic[instance]) return false;
-
242  T* device = static_cast<T*>(this);
-
243 
-
244  DynamicJsonDocument eventMessage = device->prepareEvent(FSTR_RANGE_setRangeValue, cause.c_str());
-
245  eventMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_instanceId] = instance;
-
246 
-
247  JsonObject event_value = eventMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_value];
-
248  event_value[FSTR_RANGE_rangeValue] = rangeValue;
-
249  return device->sendEvent(eventMessage);
-
250 }
-
251 
-
252 template <typename T>
-
253 bool RangeController<T>::handleRangeController(SinricProRequest &request) {
-
254  T* device = static_cast<T*>(this);
-
255 
-
256  bool success = false;
-
257 
-
258  if (request.action == FSTR_RANGE_setRangeValue) {
-
259 
-
260  if (request.instance == "") {
-
261 
-
262  int rangeValue = request.request_value[FSTR_RANGE_rangeValue];
-
263  if (setRangeValueCallback) success = setRangeValueCallback(device->deviceId, rangeValue);
-
264  request.response_value[FSTR_RANGE_rangeValue] = rangeValue;
-
265  return success;
-
266 
-
267  } else {
-
268 
-
269  if (genericSetRangeValueCallback.find(request.instance) == genericSetRangeValueCallback.end()) return false;
-
270 
-
271  auto& cb = genericSetRangeValueCallback[request.instance];
-
272 
-
273  if (cb.type == GenericRangeValueCallback::type_float) {
-
274  float value = request.request_value[FSTR_RANGE_rangeValue];
-
275  success = cb.cb_float(device->deviceId, request.instance, value);
-
276  request.response_value[FSTR_RANGE_rangeValue] = value;
-
277  return success;
-
278  }
-
279 
-
280  if (cb.type == GenericRangeValueCallback::type_int) {
-
281  int value = request.request_value[FSTR_RANGE_rangeValue];
-
282  success = cb.cb_int(device->deviceId, request.instance, value);
-
283  request.response_value[FSTR_RANGE_rangeValue] = value;
-
284  return success;
-
285  }
-
286  }
-
287  }
-
288 
-
289  if (request.action == FSTR_RANGE_adjustRangeValue) {
-
290 
-
291  if (request.instance == "") {
-
292 
-
293  int rangeValue = request.request_value[FSTR_RANGE_rangeValueDelta];
-
294  if (adjustRangeValueCallback) success = adjustRangeValueCallback(device->deviceId, rangeValue);
-
295  request.response_value[FSTR_RANGE_rangeValue] = rangeValue;
-
296  return success;
-
297 
-
298  } else {
-
299 
-
300  if (genericAdjustRangeValueCallback.find(request.instance) == genericAdjustRangeValueCallback.end()) return false;
-
301 
-
302  auto& cb = genericAdjustRangeValueCallback[request.instance];
-
303 
-
304  if (cb.type == GenericRangeValueCallback::type_float) {
-
305  float value = request.request_value[FSTR_RANGE_rangeValueDelta];
-
306  success = cb.cb_float(device->deviceId, request.instance, value);
-
307  request.response_value[FSTR_RANGE_rangeValue] = value;
-
308  return success;
-
309  }
-
310 
-
311  if (cb.type == GenericRangeValueCallback::type_int) {
-
312  int value = request.request_value[FSTR_RANGE_rangeValueDelta];
-
313  success = cb.cb_int(device->deviceId, request.instance, value);
-
314  request.response_value[FSTR_RANGE_rangeValue] = value;
-
315  return success;
-
316  }
-
317  }
-
318  }
-
319 
-
320  return false;
-
321 }
-
322 
-
323 } // SINRICPRO_NAMESPACE
-
324 
-
325 template <typename T>
-
326 using RangeController = SINRICPRO_NAMESPACE::RangeController<T>;
-
RangeControllerFloatInt.
Definition: RangeController.h:109
-
bool sendRangeValueEvent(int rangeValue, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
Send rangeValue event to report curent rangeValue to SinricPro server.
Definition: RangeController.h:204
-
void onRangeValue(const String &instance, GenericSetRangeValueCallback_int cb)
Set callback function for setRangeValue request on a specific instance (custom device)
Definition: RangeController.h:164
-
void onRangeValue(SetRangeValueCallback cb)
Set callback function for setRangeValue request.
Definition: RangeController.h:152
-
bool sendRangeValueEvent(const String &instance, int rangeValue, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
Send rangeValue event to report curent rangeValue to SinricPro server for a specific instance (custom...
Definition: RangeController.h:225
-
void onAdjustRangeValue(AdjustRangeValueCallback cb)
Set callback function for adjustRangeValue request.
Definition: RangeController.h:180
-
bool(*)(const String &, const String &, int &) GenericRangeValueCallback_int
Callback definition for onRangeValue function.
Definition: RangeController.h:30
-
GenericRangeValueCallback_int GenericSetRangeValueCallback_int
Callback definition for onRangeValue function on a specific instance.
Definition: RangeController.h:65
-
bool(*)(const String &, int &) AdjustRangeValueCallback
Callback definition for onAdjustRangeValue function.
Definition: RangeController.h:82
-
GenericRangeValueCallback_int GenericAdjustRangeValueCallback_int
Callback definition for onAdjustRangeValue function on a specific instance for custom devices.
Definition: RangeController.h:99
-
-
- - - - diff --git a/docs/docs/_setting_controller_8h_source.html b/docs/docs/_setting_controller_8h_source.html deleted file mode 100644 index c4b1b0a..0000000 --- a/docs/docs/_setting_controller_8h_source.html +++ /dev/null @@ -1,158 +0,0 @@ - - - - - - - -SinricPro Library: src/Capabilities/SettingController.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SettingController.h
-
-
-
1 #pragma once
-
2 
-
3 #include "../SinricProRequest.h"
-
4 #include "../SinricProStrings.h"
-
5 
-
6 #include "../SinricProNamespace.h"
-
7 namespace SINRICPRO_NAMESPACE {
-
8 
-
9 using SetSettingCallback = std::function<bool(const String&, const String&, String&)>;
-
10 
-
11 FSTR(SETTING, setSetting); // "setSetting"
-
12 FSTR(SETTING, id); // "id"
-
13 FSTR(SETTING, value); // "value"
-
14 
-
15 template <typename T>
-
16 class SettingController {
-
17  public:
-
18  SettingController();
-
19  void onSetSetting(SetSettingCallback cb);
-
20 
-
21  protected:
-
22  bool handleSettingController(SinricProRequest &request);
-
23 
-
24  private:
-
25  SetSettingCallback setSettingCallback;
-
26 };
-
27 
-
28 template <typename T>
-
29 SettingController<T>::SettingController() {
-
30  T* device = static_cast<T*>(this);
-
31  device->registerRequestHandler(std::bind(&SettingController<T>::handleSettingController, this, std::placeholders::_1));
-
32 }
-
33 
-
34 template <typename T>
-
35 void SettingController<T>::onSetSetting(SetSettingCallback cb) {
-
36  setSettingCallback = cb;
-
37 }
-
38 
-
39 template <typename T>
-
40 bool SettingController<T>::handleSettingController(SinricProRequest &request) {
-
41  T* device = static_cast<T*>(this);
-
42 
-
43  bool success = false;
-
44 
-
45  if (setSettingCallback && request.action == FSTR_SETTING_setSetting) {
-
46  String settingId = request.request_value[FSTR_SETTING_id] | "";
-
47  String settingValue = request.request_value[FSTR_SETTING_value] | "";
-
48  success = setSettingCallback(device->deviceId, settingId, settingValue);
-
49  request.response_value[FSTR_SETTING_id] = settingId;
-
50  request.response_value[FSTR_SETTING_value] = settingValue;
-
51  return success;
-
52  }
-
53 
-
54  return success;
-
55 }
-
56 
-
57 } // SINRICPRO_NAMESPACE
-
58 
-
59 template <typename T>
-
60 using SettingController = SINRICPRO_NAMESPACE::SettingController<T>;
-
-
- - - - diff --git a/docs/docs/_sinric_pro_8h_source.html b/docs/docs/_sinric_pro_8h_source.html deleted file mode 100644 index f6ec484..0000000 --- a/docs/docs/_sinric_pro_8h_source.html +++ /dev/null @@ -1,574 +0,0 @@ - - - - - - - -SinricPro Library: src/SinricPro.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricPro.h
-
-
-
1 /*
-
2  * Copyright (c) 2019 Sinric. All rights reserved.
-
3  * Licensed under Creative Commons Attribution-Share Alike (CC BY-SA)
-
4  *
-
5  * This file is part of the Sinric Pro (https://github.com/sinricpro/)
-
6  */
-
7 
-
8 #pragma once
-
9 
-
10 #include "SinricProInterface.h"
-
11 #include "SinricProDeviceInterface.h"
-
12 #include "SinricProWebsocket.h"
-
13 #include "SinricProUDP.h"
-
14 #include "SinricProSignature.h"
-
15 #include "SinricProMessageid.h"
-
16 #include "SinricProQueue.h"
-
17 #include "SinricProStrings.h"
-
18 
-
19 #include "SinricProNamespace.h"
-
20 namespace SINRICPRO_NAMESPACE {
-
21 
-
29 using ConnectedCallbackHandler = std::function<void(void)>;
-
30 
-
38 using DisconnectedCallbackHandler = std::function<void(void)>;
-
39 
-
45 class SinricProClass : public SinricProInterface {
-
46  friend class SinricProDevice;
-
47 
-
48  public:
-
49  void begin(String appKey, String appSecret, String serverURL = SINRICPRO_SERVER_URL);
-
50  void handle();
-
51  void stop();
-
52  bool isConnected();
-
53  void onConnected(ConnectedCallbackHandler cb);
-
54  void onDisconnected(DisconnectedCallbackHandler cb);
-
55  void onPong(std::function<void(uint32_t)> cb);
-
56  void restoreDeviceStates(bool flag);
-
57  void setResponseMessage(String &&message);
-
58  unsigned long getTimestamp() override;
-
59 
-
60  struct proxy {
-
61  proxy(SinricProClass* ptr, String deviceId) : ptr(ptr), deviceId(deviceId) {}
-
62  SinricProClass* ptr;
-
63  String deviceId;
-
64  template <typename DeviceType>
-
65  operator DeviceType&() { return as<DeviceType>(); }
-
66  template <typename DeviceType>
-
67  DeviceType& as() { return ptr->getDeviceInstance<DeviceType>(deviceId); }
-
68  };
-
69 
-
70  proxy operator[](const String deviceId);
-
71  protected:
-
72  template <typename DeviceType>
-
73  DeviceType& add(String deviceId);
-
74 
-
75  void add(SinricProDeviceInterface &newDevice);
-
76  void add(SinricProDeviceInterface *newDevice);
-
77 
-
78  DynamicJsonDocument prepareResponse(JsonDocument &requestMessage);
-
79  DynamicJsonDocument prepareEvent(String deviceId, const char *action, const char *cause) override;
-
80  void sendMessage(JsonDocument &jsonMessage) override;
-
81 
-
82  private:
-
83  void handleReceiveQueue();
-
84  void handleSendQueue();
-
85 
-
86  void handleRequest(DynamicJsonDocument& requestMessage, interface_t Interface);
-
87  void handleResponse(DynamicJsonDocument& responseMessage);
-
88 
-
89  DynamicJsonDocument prepareRequest(String deviceId, const char* action);
-
90 
-
91  void connect();
-
92  void disconnect();
-
93  void reconnect();
-
94 
-
95  void onConnect();
-
96  void onDisconnect();
-
97 
-
98  void extractTimestamp(JsonDocument &message);
-
99 
-
100  SinricProDeviceInterface* getDevice(String deviceId);
-
101 
-
102  template <typename DeviceType>
-
103  DeviceType& getDeviceInstance(String deviceId);
-
104 
-
105  std::vector<SinricProDeviceInterface*> devices;
-
106 
-
107  String appKey;
-
108  String appSecret;
-
109  String serverURL;
-
110 
-
111  WebsocketListener _websocketListener;
-
112  UdpListener _udpListener;
-
113  SinricProQueue_t receiveQueue;
-
114  SinricProQueue_t sendQueue;
-
115 
-
116  unsigned long baseTimestamp = 0;
-
117 
-
118  bool _begin = false;
-
119  String responseMessageStr = "";
-
120 };
-
121 
-
122 SinricProDeviceInterface* SinricProClass::getDevice(String deviceId) {
-
123  for (auto& device : devices) {
-
124  if (deviceId == device->getDeviceId()) return device;
-
125  }
-
126  return nullptr;
-
127 }
-
128 
-
129 template <typename DeviceType>
-
130 DeviceType& SinricProClass::getDeviceInstance(String deviceId) {
-
131  DeviceType* tmp_device = (DeviceType*) getDevice(deviceId);
-
132  if (tmp_device) return *tmp_device;
-
133 
-
134  DEBUG_SINRIC("[SinricPro]: Device \"%s\" does not exist. Creating new device\r\n", deviceId.c_str());
-
135  DeviceType& tmp_deviceInstance = add<DeviceType>(deviceId);
-
136 
-
137  if (isConnected()) {
-
138  DEBUG_SINRIC("[SinricPro]: Reconnecting to server.\r\n");
-
139  reconnect();
-
140  }
-
141 
-
142  return tmp_deviceInstance;
-
143 }
-
144 
-
161 void SinricProClass::begin(String appKey, String appSecret, String serverURL) {
-
162  bool success = true;
-
163  if (!appKey.length()) {
-
164  DEBUG_SINRIC("[SinricPro:begin()]: App-Key \"%s\" is invalid!! Please check your app-key!! SinricPro will not work!\r\n", appKey.c_str());
-
165  success = false;
-
166  }
-
167  if (!appSecret.length()) {
-
168  DEBUG_SINRIC("[SinricPro:begin()]: App-Secret \"%s\" is invalid!! Please check your app-secret!! SinricPro will not work!\r\n", appSecret.c_str());
-
169  success = false;
-
170  }
-
171 
-
172  if(!success) {
-
173  _begin = false;
-
174  return;
-
175  }
-
176 
-
177  this->appKey = appKey;
-
178  this->appSecret = appSecret;
-
179  this->serverURL = serverURL;
-
180  _begin = true;
-
181  _udpListener.begin(&receiveQueue);
-
182 }
-
183 
-
184 template <typename DeviceType>
-
185 DeviceType& SinricProClass::add(String deviceId) {
-
186 
-
187  DeviceType* newDevice = new DeviceType(deviceId);
-
188  DEBUG_SINRIC("[SinricPro:add()]: Adding device with id \"%s\".\r\n", deviceId.c_str());
-
189  newDevice->begin(this);
-
190 
-
191  devices.push_back(newDevice);
-
192  return *newDevice;
-
193 }
-
194 
-
195 __attribute__ ((deprecated("Please use DeviceType& myDevice = SinricPro.add<DeviceType>(String);")))
-
196 void SinricProClass::add(SinricProDeviceInterface* newDevice) {
-
197  newDevice->begin(this);
-
198  devices.push_back(newDevice);
-
199 }
-
200 
-
201 __attribute__ ((deprecated("Please use DeviceType& myDevice = SinricPro.add<DeviceType>(String);")))
-
202 void SinricProClass::add(SinricProDeviceInterface& newDevice) {
-
203  newDevice.begin(this);
-
204  devices.push_back(&newDevice);
-
205 }
-
206 
-
222 void SinricProClass::handle() {
-
223  static bool begin_error = false;
-
224  if (!_begin) {
-
225  if (!begin_error) { // print this only once!
-
226  DEBUG_SINRIC("[SinricPro:handle()]: ERROR! SinricPro.begin() failed or was not called prior to event handler\r\n");
-
227  DEBUG_SINRIC("[SinricPro:handle()]: -Reasons include an invalid app-key, invalid app-secret or no valid deviceIds)\r\n");
-
228  DEBUG_SINRIC("[SinricPro:handle()]: -SinricPro is disabled! Check earlier log messages for details.\r\n");
-
229  begin_error = true;
-
230  }
-
231  return;
-
232  }
-
233 
-
234  if (WiFi.isConnected()) {
-
235 
-
236  if (!isConnected()) connect();
-
237  _websocketListener.handle();
-
238  _udpListener.handle();
-
239 
-
240  }
-
241 
-
242  handleReceiveQueue();
-
243  handleSendQueue();
-
244 }
-
245 
-
246 DynamicJsonDocument SinricProClass::prepareRequest(String deviceId, const char* action) {
-
247  DynamicJsonDocument requestMessage(1024);
-
248  JsonObject header = requestMessage.createNestedObject(FSTR_SINRICPRO_header);
-
249  header[FSTR_SINRICPRO_payloadVersion] = 2;
-
250  header[FSTR_SINRICPRO_signatureVersion] = 1;
-
251 
-
252  JsonObject payload = requestMessage.createNestedObject(FSTR_SINRICPRO_payload);
-
253  payload[FSTR_SINRICPRO_action] = action;
-
254  payload[FSTR_SINRICPRO_createdAt] = 0;
-
255  payload[FSTR_SINRICPRO_deviceId] = deviceId;
-
256  payload[FSTR_SINRICPRO_replyToken] = MessageID().getID();
-
257  payload[FSTR_SINRICPRO_type] = FSTR_SINRICPRO_request;
-
258  payload.createNestedObject(FSTR_SINRICPRO_value);
-
259  return requestMessage;
-
260 }
-
261 
-
262 void SinricProClass::handleResponse(DynamicJsonDocument& responseMessage) {
-
263  (void) responseMessage;
-
264  DEBUG_SINRIC("[SinricPro.handleResponse()]:\r\n");
-
265 
-
266  #ifndef NODEBUG_SINRIC
-
267  serializeJsonPretty(responseMessage, DEBUG_ESP_PORT);
-
268  Serial.println();
-
269  #endif
-
270 }
-
271 
-
272 void SinricProClass::handleRequest(DynamicJsonDocument& requestMessage, interface_t Interface) {
-
273  DEBUG_SINRIC("[SinricPro.handleRequest()]: handling request\r\n");
-
274  #ifndef NODEBUG_SINRIC
-
275  serializeJsonPretty(requestMessage, DEBUG_ESP_PORT);
-
276  #endif
-
277 
-
278  DynamicJsonDocument responseMessage = prepareResponse(requestMessage);
-
279 
-
280  // handle devices
-
281  bool success = false;
-
282  const char* deviceId = requestMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_deviceId];
-
283  String action = requestMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_action] | "";
-
284  String instance = requestMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_instanceId] | "";
-
285  JsonObject request_value = requestMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_value];
-
286  JsonObject response_value = responseMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_value];
-
287 
-
288  for (auto& device : devices) {
-
289  if (device->getDeviceId() == deviceId && success == false) {
-
290  SinricProRequest request {
-
291  action,
-
292  instance,
-
293  request_value,
-
294  response_value
-
295  };
-
296  success = device->handleRequest(request);
-
297  responseMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_success] = success;
-
298  if (!success) {
-
299  if (responseMessageStr.length() > 0){
-
300  responseMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_message] = responseMessageStr;
-
301  responseMessageStr = "";
-
302  } else {
-
303  responseMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_message] = "Device did not handle \""+ action + "\"";
-
304  }
-
305  }
-
306  }
-
307  }
-
308 
-
309  String responseString;
-
310  serializeJson(responseMessage, responseString);
-
311  sendQueue.push(new SinricProMessage(Interface, responseString.c_str()));
-
312 }
-
313 
-
314 void SinricProClass::handleReceiveQueue() {
-
315  if (receiveQueue.size() == 0) return;
-
316 
-
317  DEBUG_SINRIC("[SinricPro.handleReceiveQueue()]: %i message(s) in receiveQueue\r\n", receiveQueue.size());
-
318  while (receiveQueue.size() > 0) {
-
319  SinricProMessage* rawMessage = receiveQueue.front();
-
320  receiveQueue.pop();
-
321  DynamicJsonDocument jsonMessage(1024);
-
322  deserializeJson(jsonMessage, rawMessage->getMessage());
-
323 
-
324  bool sigMatch = false;
-
325 
-
326  if (strncmp(rawMessage->getMessage(), "{\"timestamp\":", 13) == 0 && strlen(rawMessage->getMessage()) <= 26) {
-
327  sigMatch=true; // timestamp message has no signature...ignore sigMatch for this!
-
328  } else {
-
329  String signature = jsonMessage[FSTR_SINRICPRO_signature][FSTR_SINRICPRO_HMAC] | "";
-
330  String payload = extractPayload(rawMessage->getMessage());
-
331  String calculatedSignature = calculateSignature(appSecret.c_str(), payload);
-
332  sigMatch = (calculatedSignature == signature);
-
333  }
-
334 
-
335  String messageType = jsonMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_type];
-
336 
-
337  if (sigMatch) { // signature is valid process message
-
338  DEBUG_SINRIC("[SinricPro.handleReceiveQueue()]: Signature is valid. Processing message...\r\n");
-
339  extractTimestamp(jsonMessage);
-
340  if (messageType == FSTR_SINRICPRO_response) handleResponse(jsonMessage);
-
341  if (messageType == FSTR_SINRICPRO_request) handleRequest(jsonMessage, rawMessage->getInterface());
-
342  } else {
-
343  DEBUG_SINRIC("[SinricPro.handleReceiveQueue()]: Signature is invalid! Sending messsage to [dev/null] ;)\r\n");
-
344  }
-
345  delete rawMessage;
-
346  }
-
347 }
-
348 
-
349 void SinricProClass::handleSendQueue() {
-
350  if (!isConnected()) return;
-
351  if (!baseTimestamp) return;
-
352  while (sendQueue.size() > 0) {
-
353  DEBUG_SINRIC("[SinricPro:handleSendQueue()]: %i message(s) in sendQueue\r\n", sendQueue.size());
-
354  DEBUG_SINRIC("[SinricPro:handleSendQueue()]: Sending message...\r\n");
-
355 
-
356  SinricProMessage* rawMessage = sendQueue.front(); sendQueue.pop();
-
357 
-
358  DynamicJsonDocument jsonMessage(1024);
-
359  deserializeJson(jsonMessage, rawMessage->getMessage());
-
360  jsonMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_createdAt] = getTimestamp();
-
361  signMessage(appSecret, jsonMessage);
-
362 
-
363  String messageStr;
-
364 
-
365  serializeJson(jsonMessage, messageStr);
-
366  #ifndef NODEBUG_SINRIC
-
367  serializeJsonPretty(jsonMessage, DEBUG_ESP_PORT);
-
368  Serial.println();
-
369  #endif
-
370 
-
371  switch (rawMessage->getInterface()) {
-
372  case IF_WEBSOCKET: DEBUG_SINRIC("[SinricPro:handleSendQueue]: Sending to websocket\r\n"); _websocketListener.sendMessage(messageStr); break;
-
373  case IF_UDP: DEBUG_SINRIC("[SinricPro:handleSendQueue]: Sending to UDP\r\n");_udpListener.sendMessage(messageStr); break;
-
374  default: break;
-
375  }
-
376  delete rawMessage;
-
377  DEBUG_SINRIC("[SinricPro:handleSendQueue()]: message sent.\r\n");
-
378  }
-
379 }
-
380 
-
381 void SinricProClass::connect() {
-
382  String deviceList;
-
383  int i = 0;
-
384  for (auto& device : devices) {
-
385  String deviceId = device->getDeviceId();
-
386  if (i>0) deviceList += ';';
-
387  deviceList += device->getDeviceId();
-
388  i++;
-
389  }
-
390 
-
391  _websocketListener.begin(serverURL, appKey, deviceList, &receiveQueue);
-
392 }
-
393 
-
394 
-
395 void SinricProClass::stop() {
-
396  _begin = false;
-
397  DEBUG_SINRIC("[SinricPro:stop()\r\n");
-
398  _websocketListener.stop();
-
399 }
-
400 
-
401 bool SinricProClass::isConnected() {
-
402  return _websocketListener.isConnected();
-
403 };
-
404 
-
414 void SinricProClass::onConnected(ConnectedCallbackHandler cb) {
-
415  _websocketListener.onConnected(cb);
-
416 }
-
417 
-
427 void SinricProClass::onDisconnected(DisconnectedCallbackHandler cb) {
-
428  _websocketListener.onDisconnected(cb);
-
429 }
-
430 
-
431 void SinricProClass::onPong(std::function<void(uint32_t)> cb) {
-
432  _websocketListener.onPong(cb);
-
433 }
-
434 
-
435 
-
436 void SinricProClass::reconnect() {
-
437  DEBUG_SINRIC("SinricPro:reconnect(): disconnecting\r\n");
-
438  stop();
-
439  DEBUG_SINRIC("SinricPro:reconnect(): connecting\r\n");
-
440  connect();
-
441 }
-
442 
-
443 void SinricProClass::onConnect() {
-
444  DEBUG_SINRIC("[SinricPro]: Connected to \"%s\"!]\r\n", serverURL.c_str());
-
445 }
-
446 
-
447 void SinricProClass::onDisconnect() {
-
448  DEBUG_SINRIC("[SinricPro]: Disconnect\r\n");
-
449 }
-
450 
-
451 
-
452 void SinricProClass::extractTimestamp(JsonDocument &message) {
-
453  unsigned long tempTimestamp = 0;
-
454  // extract timestamp from timestamp message right after websocket connection is established
-
455  tempTimestamp = message["timestamp"] | 0;
-
456  if (tempTimestamp) {
-
457  baseTimestamp = tempTimestamp - (millis() / 1000);
-
458  DEBUG_SINRIC("[SinricPro:extractTimestamp(): Got Timestamp %lu\r\n", tempTimestamp);
-
459  return;
-
460  }
-
461 
-
462  // extract timestamp from request message
-
463  tempTimestamp = message[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_createdAt] | 0;
-
464  if (tempTimestamp) {
-
465  DEBUG_SINRIC("[SinricPro:extractTimestamp(): Got Timestamp %lu\r\n", tempTimestamp);
-
466  baseTimestamp = tempTimestamp - (millis() / 1000);
-
467  return;
-
468  }
-
469 }
-
470 
-
471 
-
472 void SinricProClass::sendMessage(JsonDocument& jsonMessage) {
-
473  if (!isConnected()) {
-
474  DEBUG_SINRIC("[SinricPro:sendMessage()]: device is offline, message has been dropped\r\n");
-
475  return;
-
476  }
-
477  DEBUG_SINRIC("[SinricPro:sendMessage()]: pushing message into sendQueue\r\n");
-
478  String messageString;
-
479  serializeJson(jsonMessage, messageString);
-
480  sendQueue.push(new SinricProMessage(IF_WEBSOCKET, messageString.c_str()));
-
481 }
-
482 
-
492 void SinricProClass::restoreDeviceStates(bool flag) {
-
493  _websocketListener.setRestoreDeviceStates(flag);
-
494 }
-
495 
-
512 SinricProClass::proxy SinricProClass::operator[](const String deviceId) {
-
513  return proxy(this, deviceId);
-
514 }
-
515 
-
516 void SinricProClass::setResponseMessage(String &&message) {
-
517  responseMessageStr = message;
-
518 }
-
519 
-
525 unsigned long SinricProClass::getTimestamp() {
-
526  return baseTimestamp + (millis()/1000);
-
527 }
-
528 
-
529 DynamicJsonDocument SinricProClass::prepareResponse(JsonDocument& requestMessage) {
-
530  DynamicJsonDocument responseMessage(1024);
-
531  JsonObject header = responseMessage.createNestedObject(FSTR_SINRICPRO_header);
-
532  header[FSTR_SINRICPRO_payloadVersion] = 2;
-
533  header[FSTR_SINRICPRO_signatureVersion] = 1;
-
534 
-
535  JsonObject payload = responseMessage.createNestedObject(FSTR_SINRICPRO_payload);
-
536  payload[FSTR_SINRICPRO_action] = requestMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_action];
-
537  payload[FSTR_SINRICPRO_clientId] = requestMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_clientId];
-
538  payload[FSTR_SINRICPRO_createdAt] = 0;
-
539  payload[FSTR_SINRICPRO_deviceId] = requestMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_deviceId];
-
540  if (requestMessage[FSTR_SINRICPRO_payload].containsKey(FSTR_SINRICPRO_instanceId)) payload[FSTR_SINRICPRO_instanceId] = requestMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_instanceId];
-
541  payload[FSTR_SINRICPRO_message] = FSTR_SINRICPRO_OK;
-
542  payload[FSTR_SINRICPRO_replyToken] = requestMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_replyToken];
-
543  payload[FSTR_SINRICPRO_success] = false;
-
544  payload[FSTR_SINRICPRO_type] = FSTR_SINRICPRO_response;
-
545  payload.createNestedObject(FSTR_SINRICPRO_value);
-
546  return responseMessage;
-
547 }
-
548 
-
549 
-
550 DynamicJsonDocument SinricProClass::prepareEvent(String deviceId, const char* action, const char* cause) {
-
551  DynamicJsonDocument eventMessage(1024);
-
552  JsonObject header = eventMessage.createNestedObject(FSTR_SINRICPRO_header);
-
553  header[FSTR_SINRICPRO_payloadVersion] = 2;
-
554  header[FSTR_SINRICPRO_signatureVersion] = 1;
-
555 
-
556  JsonObject payload = eventMessage.createNestedObject(FSTR_SINRICPRO_payload);
-
557  payload[FSTR_SINRICPRO_action] = action;
-
558  payload[FSTR_SINRICPRO_cause].createNestedObject(FSTR_SINRICPRO_type);
-
559  payload[FSTR_SINRICPRO_cause][FSTR_SINRICPRO_type] = cause;
-
560  payload[FSTR_SINRICPRO_createdAt] = 0;
-
561  payload[FSTR_SINRICPRO_deviceId] = deviceId;
-
562  payload[FSTR_SINRICPRO_replyToken] = MessageID().getID();
-
563  payload[FSTR_SINRICPRO_type] = FSTR_SINRICPRO_event;
-
564  payload.createNestedObject(FSTR_SINRICPRO_value);
-
565  return eventMessage;
-
566 }
-
567 
-
568 } // SINRICPRO_NAMESPACE
-
569 
-
570 SINRICPRO_NAMESPACE::SinricProClass SinricPro;
-
The main class of this library, handling communication between SinricPro Server and your devices.
Definition: SinricPro.h:45
-
Base class for all device types.
Definition: SinricProDevice.h:24
-
std::function< void(void)> DisconnectedCallbackHandler
Callback definition for onDisconnected function.
Definition: SinricPro.h:38
-
std::function< void(void)> ConnectedCallbackHandler
Callback definition for onConnected function.
Definition: SinricPro.h:29
-
-
- - - - diff --git a/docs/docs/_sinric_pro_air_quality_sensor_8h_source.html b/docs/docs/_sinric_pro_air_quality_sensor_8h_source.html deleted file mode 100644 index cababed..0000000 --- a/docs/docs/_sinric_pro_air_quality_sensor_8h_source.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - -SinricPro Library: src/SinricProAirQualitySensor.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProAirQualitySensor.h
-
-
-
1 /*
-
2  * Copyright (c) 2019 Sinric. All rights reserved.
-
3  * Licensed under Creative Commons Attribution-Share Alike (CC BY-SA)
-
4  *
-
5  * This file is part of the Sinric Pro (https://github.com/sinricpro/)
-
6  */
-
7 #pragma once
-
8 
-
9 #include "SinricProDevice.h"
-
10 #include "Capabilities/SettingController.h"
-
11 #include "Capabilities/PushNotification.h"
-
12 #include "Capabilities/PowerStateController.h"
-
13 #include "Capabilities/AirQualitySensor.h"
-
14 
-
15 #include "SinricProNamespace.h"
-
16 namespace SINRICPRO_NAMESPACE {
-
17 
- -
24  public SettingController<SinricProAirQualitySensor>,
-
25  public PushNotification<SinricProAirQualitySensor>,
-
26  public PowerStateController<SinricProAirQualitySensor>,
-
27  public AirQualitySensor<SinricProAirQualitySensor> {
-
28  friend class SettingController<SinricProAirQualitySensor>;
-
29  friend class PushNotification<AirQualitySensor>;
- - -
32 public:
-
33  SinricProAirQualitySensor(const String &deviceId) : SinricProDevice(deviceId, "AIR_QUALITY_SENSOR"){};
-
34 };
-
35 
-
36 } // SINRICPRO_NAMESPACE
-
37 
-
38 using SinricProAirQualitySensor = SINRICPRO_NAMESPACE::SinricProAirQualitySensor;
-
AirQuality.
Definition: AirQualitySensor.h:19
-
PowerStateController.
Definition: PowerStateController.h:36
-
PushNotification.
Definition: PushNotification.h:17
-
Device to report air quality events.
Definition: SinricProAirQualitySensor.h:27
-
Base class for all device types.
Definition: SinricProDevice.h:24
-
-
- - - - diff --git a/docs/docs/_sinric_pro_blinds_8h_source.html b/docs/docs/_sinric_pro_blinds_8h_source.html deleted file mode 100644 index b5d11ae..0000000 --- a/docs/docs/_sinric_pro_blinds_8h_source.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - -SinricPro Library: src/SinricProBlinds.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProBlinds.h
-
-
-
1 /*
-
2  * Copyright (c) 2019 Sinric. All rights reserved.
-
3  * Licensed under Creative Commons Attribution-Share Alike (CC BY-SA)
-
4  *
-
5  * This file is part of the Sinric Pro (https://github.com/sinricpro/)
-
6  */
-
7 #pragma once
-
8 
-
9 #include "SinricProDevice.h"
-
10 #include "Capabilities/SettingController.h"
-
11 #include "Capabilities/PushNotification.h"
-
12 #include "Capabilities/RangeController.h"
-
13 #include "Capabilities/PowerStateController.h"
-
14 
-
15 #include "SinricProNamespace.h"
-
16 namespace SINRICPRO_NAMESPACE {
-
17 
- -
29  public SettingController<SinricProBlinds>,
-
30  public PushNotification<SinricProBlinds>,
-
31  public PowerStateController<SinricProBlinds>,
-
32  public RangeController<SinricProBlinds> {
-
33  friend class SettingController<SinricProBlinds>;
-
34  friend class PushNotification<SinricProBlinds>;
- -
36  friend class RangeController<SinricProBlinds>;
-
37  public:
-
38  SinricProBlinds(const String &deviceId) : SinricProDevice(deviceId, "BLIND"){}
-
39 };
-
40 
-
41 } // SINRICPRO_NAMESPACE
-
42 
-
43 using SinricProBlinds = SINRICPRO_NAMESPACE::SinricProBlinds;
-
PowerStateController.
Definition: PowerStateController.h:36
-
PushNotification.
Definition: PushNotification.h:17
-
RangeControllerFloatInt.
Definition: RangeController.h:109
-
Device to control interior blinds.
Definition: SinricProBlinds.h:32
-
Base class for all device types.
Definition: SinricProDevice.h:24
-
-
- - - - diff --git a/docs/docs/_sinric_pro_camera_8h_source.html b/docs/docs/_sinric_pro_camera_8h_source.html deleted file mode 100644 index 88297ea..0000000 --- a/docs/docs/_sinric_pro_camera_8h_source.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - -SinricPro Library: src/SinricProCamera.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProCamera.h
-
-
-
1 
-
2 /*
-
3  * Copyright (c) 2019 Sinric. All rights reserved.
-
4  * Licensed under Creative Commons Attribution-Share Alike (CC BY-SA)
-
5  *
-
6  * This file is part of the Sinric Pro (https://github.com/sinricpro/)
-
7  */
-
8 #pragma once
-
9 
-
10 #include "SinricProDevice.h"
-
11 #include "Capabilities/SettingController.h"
-
12 #include "Capabilities/PushNotification.h"
-
13 #include "Capabilities/PowerStateController.h"
-
14 
-
15 #include "SinricProNamespace.h"
-
16 namespace SINRICPRO_NAMESPACE {
-
17 
- -
24  public SettingController<SinricProCamera>,
-
25  public PushNotification<SinricProCamera>,
-
26  public PowerStateController<SinricProCamera> {
-
27  friend class SettingController<SinricProCamera>;
-
28  friend class PushNotification<SinricProCamera>;
- -
30  public:
-
31  SinricProCamera(const String &deviceId) : SinricProDevice(deviceId, "CAMERA") {}
-
32 };
-
33 
-
34 } // SINRICPRO_NAMESPACE
-
35 
-
36 using SinricProCamera = SINRICPRO_NAMESPACE::SinricProCamera;
-
PowerStateController.
Definition: PowerStateController.h:36
-
PushNotification.
Definition: PushNotification.h:17
-
Camera suporting basic on / off command.
Definition: SinricProCamera.h:26
-
Base class for all device types.
Definition: SinricProDevice.h:24
-
-
- - - - diff --git a/docs/docs/_sinric_pro_config_8h_source.html b/docs/docs/_sinric_pro_config_8h_source.html deleted file mode 100644 index 3f0ed26..0000000 --- a/docs/docs/_sinric_pro_config_8h_source.html +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - - -SinricPro Library: src/SinricProConfig.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProConfig.h
-
-
-
1 /*
-
2  * Copyright (c) 2019 Sinric. All rights reserved.
-
3  * Licensed under Creative Commons Attribution-Share Alike (CC BY-SA)
-
4  *
-
5  * This file is part of the Sinric Pro (https://github.com/sinricpro/)
-
6  */
-
7 
-
8 #pragma once
-
9 /*
-
10  * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
11  * !! !!
-
12  * !! WARNING: DON'T TOUCH ! !!
-
13  * !! ====================== !!
-
14  * !! PLEASE DO NOT MODIFY ANY OF THESE SETTINGS HERE !!
-
15  * !! THIS IS FOR INTERNAL CONFIGURATION ONLY !!
-
16  * !! SINRIC PRO MIGHT NOT WORK IF YOU MODIFY THIS !!
-
17  * !! !!
-
18  * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
19  */
-
20 
-
21 #pragma once
-
22 
-
23 // Server Configuration
-
24 #ifndef SINRICPRO_NOSSL
-
25 #define WEBSOCKET_SSL
-
26 #endif
-
27 
-
28 #define SINRICPRO_SERVER_URL "ws.sinric.pro"
-
29 #define SINRICPRO_SERVER_PORT 80
-
30 #define SINRICPRO_SERVER_SSL_PORT 443
-
31 
-
32 // UDP Configuration
-
33 #define UDP_MULTICAST_IP IPAddress(224,9,9,9)
-
34 #define UDP_MULTICAST_PORT 3333
-
35 
-
36 // WebSocket Configuration
-
37 #ifdef DEBUG_WIFI_ISSUE
-
38  #define WEBSOCKET_PING_INTERVAL 10000
-
39 #else
-
40  #define WEBSOCKET_PING_INTERVAL 300000
-
41 #endif
-
42 #define WEBSOCKET_PING_TIMEOUT 10000
-
43 #define WEBSOCKET_RETRY_COUNT 2
-
44 
-
45 // EventLimiter Configuration
-
46 #define EVENT_LIMIT_STATE 1000
-
47 #define EVENT_LIMIT_SENSOR_STATE EVENT_LIMIT_STATE
-
48 #define EVENT_LIMIT_SENSOR_VALUE 60000
-
-
- - - - diff --git a/docs/docs/_sinric_pro_contactsensor_8h_source.html b/docs/docs/_sinric_pro_contactsensor_8h_source.html deleted file mode 100644 index e9689c0..0000000 --- a/docs/docs/_sinric_pro_contactsensor_8h_source.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - -SinricPro Library: src/SinricProContactsensor.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProContactsensor.h
-
-
-
1 /*
-
2  * Copyright (c) 2019 Sinric. All rights reserved.
-
3  * Licensed under Creative Commons Attribution-Share Alike (CC BY-SA)
-
4  *
-
5  * This file is part of the Sinric Pro (https://github.com/sinricpro/)
-
6  */
-
7 #pragma once
-
8 
-
9 #include "SinricProDevice.h"
-
10 #include "Capabilities/SettingController.h"
-
11 #include "Capabilities/PushNotification.h"
-
12 #include "Capabilities/PowerStateController.h"
-
13 #include "Capabilities/ContactSensor.h"
-
14 
-
15 #include "SinricProNamespace.h"
-
16 namespace SINRICPRO_NAMESPACE {
-
17 
- -
24  public SettingController<SinricProContactsensor>,
-
25  public PushNotification<SinricProContactsensor>,
-
26  public PowerStateController<SinricProContactsensor>,
-
27  public ContactSensor<SinricProContactsensor> {
-
28  friend class SettingController<SinricProContactsensor>;
- - - -
32  public:
-
33  SinricProContactsensor(const String &deviceId) : SinricProDevice(deviceId, "CONTACT_SENSOR") {}
-
34 };
-
35 
-
36 } // SINRICPRO_NAMESPACE
-
37 
-
38 using SinricProContactsensor = SINRICPRO_NAMESPACE::SinricProContactsensor;
-
ContactSensor.
Definition: ContactSensor.h:19
-
PowerStateController.
Definition: PowerStateController.h:36
-
PushNotification.
Definition: PushNotification.h:17
-
Device to report contact sensor events.
Definition: SinricProContactsensor.h:27
-
Base class for all device types.
Definition: SinricProDevice.h:24
-
-
- - - - diff --git a/docs/docs/_sinric_pro_debug_8h_source.html b/docs/docs/_sinric_pro_debug_8h_source.html deleted file mode 100644 index cc99c77..0000000 --- a/docs/docs/_sinric_pro_debug_8h_source.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - -SinricPro Library: src/SinricProDebug.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProDebug.h
-
-
-
1 /*
-
2  * Copyright (c) 2019 Sinric. All rights reserved.
-
3  * Licensed under Creative Commons Attribution-Share Alike (CC BY-SA)
-
4  *
-
5  * This file is part of the Sinric Pro (https://github.com/sinricpro/)
-
6  */
-
7 
-
8 #pragma once
-
9 
-
10 #ifndef NODEBUG_SINRIC
-
11 #ifdef DEBUG_ESP_PORT
-
12 #define DEBUG_SINRIC(...) DEBUG_ESP_PORT.printf( __VA_ARGS__ )
-
13 #else
-
14 //#define DEBUG_WEBSOCKETS(...) os_printf( __VA_ARGS__ )
-
15 #endif
-
16 #endif
-
17 
-
18 
-
19 #ifndef DEBUG_SINRIC
-
20 #define DEBUG_SINRIC(...)
-
21 #define NODEBUG_SINRIC
-
22 #endif
-
-
- - - - diff --git a/docs/docs/_sinric_pro_device_8h_source.html b/docs/docs/_sinric_pro_device_8h_source.html deleted file mode 100644 index 1bb4b04..0000000 --- a/docs/docs/_sinric_pro_device_8h_source.html +++ /dev/null @@ -1,207 +0,0 @@ - - - - - - - -SinricPro Library: src/SinricProDevice.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProDevice.h
-
-
-
1 /*
-
2  * Copyright (c) 2019 Sinric. All rights reserved.
-
3  * Licensed under Creative Commons Attribution-Share Alike (CC BY-SA)
-
4  *
-
5  * This file is part of the Sinric Pro (https://github.com/sinricpro/)
-
6  */
-
7 
-
8 #pragma once
-
9 
-
10 #include "SinricProRequest.h"
-
11 #include "SinricProDeviceInterface.h"
-
12 #include <map>
-
13 
-
14 #include "SinricProNamespace.h"
-
15 namespace SINRICPRO_NAMESPACE {
-
16 
-
24 class SinricProDevice : public SinricProDeviceInterface {
-
25  friend class SinricProClass;
-
26 public:
-
27  SinricProDevice(const String &deviceId, const String &productType = "");
-
28  bool operator==(const String& other);
-
29 
-
30  virtual String getDeviceId();
-
31 protected:
-
32  virtual ~SinricProDevice();
-
33 
-
34  void registerRequestHandler(const SinricProRequestHandler &requestHandler);
-
35  unsigned long getTimestamp();
-
36  virtual bool sendEvent(JsonDocument &event);
-
37  virtual DynamicJsonDocument prepareEvent(const char *action, const char *cause);
-
38 
-
39  virtual String getProductType();
-
40  virtual void begin(SinricProInterface *eventSender);
-
41  bool handleRequest(SinricProRequest &request);
-
42 
-
43  String deviceId;
-
44  std::vector<SinricProRequestHandler> requestHandlers;
-
45 
-
46 private:
-
47  SinricProInterface *eventSender;
-
48  String productType;
-
49 };
-
50 
-
51 SinricProDevice::SinricProDevice(const String &deviceId, const String &productType) :
-
52  deviceId(deviceId),
-
53  eventSender(nullptr),
-
54  productType(productType) {
-
55 }
-
56 
-
57 SinricProDevice::~SinricProDevice() {}
-
58 
-
59 void SinricProDevice::begin(SinricProInterface* eventSender) {
-
60  this->eventSender = eventSender;
-
61 }
-
62 
-
63 String SinricProDevice::getDeviceId() {
-
64  return deviceId;
-
65 }
-
66 
-
67 bool SinricProDevice::operator==(const String &other) {
-
68  return other == deviceId;
-
69 }
-
70 
-
71 DynamicJsonDocument SinricProDevice::prepareEvent(const char* action, const char* cause) {
-
72  if (eventSender) return eventSender->prepareEvent(deviceId, action, cause);
-
73  DEBUG_SINRIC("[SinricProDevice:prepareEvent()]: Device \"%s\" isn't configured correctly! The \'%s\' event will be ignored.\r\n", deviceId.c_str(), action);
-
74  return DynamicJsonDocument(1024);
-
75 }
-
76 
-
77 
-
78 bool SinricProDevice::sendEvent(JsonDocument& event) {
-
79  if (!SinricPro.isConnected()) {
-
80  DEBUG_SINRIC("[SinricProDevice::sendEvent]: The event could not be sent. No connection to the SinricPro server.\r\n");
-
81  return false;
-
82  }
-
83 
-
84  if (eventSender) {
-
85  eventSender->sendMessage(event);
-
86  return true;
-
87  }
-
88 
-
89  return false;
-
90 }
-
91 
-
92 void SinricProDevice::registerRequestHandler(const SinricProRequestHandler &requestHandler) {
-
93  requestHandlers.push_back(requestHandler);
-
94 }
-
95 
-
96 unsigned long SinricProDevice::getTimestamp() {
-
97  if (eventSender) return eventSender->getTimestamp();
-
98  return 0;
-
99 }
-
100 
-
101 String SinricProDevice::getProductType() {
-
102  return String("sinric.device.type.")+productType;
-
103 }
-
104 
-
105 bool SinricProDevice::handleRequest(SinricProRequest &request) {
-
106  for (auto& requestHandler : requestHandlers) {
-
107  if (requestHandler(request)) return true;
-
108  }
-
109  return false;
-
110 }
-
111 
-
112 } // SINRICPRO_NAMESPACE
-
113 
-
114 using SinricProDevice = SINRICPRO_NAMESPACE::SinricProDevice;
-
The main class of this library, handling communication between SinricPro Server and your devices.
Definition: SinricPro.h:45
-
Base class for all device types.
Definition: SinricProDevice.h:24
-
-
- - - - diff --git a/docs/docs/_sinric_pro_device_interface_8h_source.html b/docs/docs/_sinric_pro_device_interface_8h_source.html deleted file mode 100644 index 5da387a..0000000 --- a/docs/docs/_sinric_pro_device_interface_8h_source.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - -SinricPro Library: src/SinricProDeviceInterface.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProDeviceInterface.h
-
-
-
1 #pragma once
-
2 
-
3 #include "SinricProInterface.h"
-
4 #include "SinricProRequest.h"
-
5 
-
6 #include "SinricProNamespace.h"
-
7 namespace SINRICPRO_NAMESPACE {
-
8 
-
9 class SinricProDeviceInterface {
-
10  friend class SinricProClass;
-
11  protected:
-
12  virtual bool handleRequest(SinricProRequest &request) = 0;
-
13  virtual String getDeviceId() = 0;
-
14  virtual String getProductType() = 0;
-
15  virtual void begin(SinricProInterface* eventSender) = 0;
-
16  virtual unsigned long getTimestamp();
-
17 };
-
18 
-
19 } // SINRICPRO_NAMESPACE
-
-
- - - - diff --git a/docs/docs/_sinric_pro_dim_switch_8h_source.html b/docs/docs/_sinric_pro_dim_switch_8h_source.html deleted file mode 100644 index e231432..0000000 --- a/docs/docs/_sinric_pro_dim_switch_8h_source.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - -SinricPro Library: src/SinricProDimSwitch.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProDimSwitch.h
-
-
-
1 /*
-
2  * Copyright (c) 2019 Sinric. All rights reserved.
-
3  * Licensed under Creative Commons Attribution-Share Alike (CC BY-SA)
-
4  *
-
5  * This file is part of the Sinric Pro (https://github.com/sinricpro/)
-
6  */
-
7 
-
8 #pragma once
-
9 
-
10 #include "SinricProDevice.h"
-
11 #include "Capabilities/SettingController.h"
-
12 #include "Capabilities/PushNotification.h"
-
13 #include "Capabilities/PowerStateController.h"
-
14 #include "Capabilities/PowerLevelController.h"
-
15 
-
16 #include "SinricProNamespace.h"
-
17 namespace SINRICPRO_NAMESPACE {
-
18 
- -
25  public SettingController<SinricProDimSwitch>,
-
26  public PushNotification<SinricProDimSwitch>,
-
27  public PowerStateController<SinricProDimSwitch>,
-
28  public PowerLevelController<SinricProDimSwitch> {
-
29  friend class SettingController<SinricProDimSwitch>;
- - - -
33  public:
-
34  SinricProDimSwitch(const String &deviceId) : SinricProDevice(deviceId, "DIMMABLE_SWITCH"){};
-
35 };
-
36 
-
37 } // SINRICPRO_NAMESPACE
-
38 
-
39 using SinricProDimSwitch = SINRICPRO_NAMESPACE::SinricProDimSwitch;
-
PowerLevelController.
Definition: PowerLevelController.h:53
-
PowerStateController.
Definition: PowerStateController.h:36
-
PushNotification.
Definition: PushNotification.h:17
-
Base class for all device types.
Definition: SinricProDevice.h:24
-
Device which supports on / off and dimming commands.
Definition: SinricProDimSwitch.h:28
-
-
- - - - diff --git a/docs/docs/_sinric_pro_doorbell_8h_source.html b/docs/docs/_sinric_pro_doorbell_8h_source.html deleted file mode 100644 index a80c8c0..0000000 --- a/docs/docs/_sinric_pro_doorbell_8h_source.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - -SinricPro Library: src/SinricProDoorbell.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProDoorbell.h
-
-
-
1 /*
-
2  * Copyright (c) 2019 Sinric. All rights reserved.
-
3  * Licensed under Creative Commons Attribution-Share Alike (CC BY-SA)
-
4  *
-
5  * This file is part of the Sinric Pro (https://github.com/sinricpro/)
-
6  */
-
7 #pragma once
-
8 
-
9 #include "SinricProDevice.h"
-
10 #include "Capabilities/SettingController.h"
-
11 #include "Capabilities/PushNotification.h"
-
12 #include "Capabilities/PowerStateController.h"
-
13 #include "Capabilities/Doorbell.h"
-
14 
-
15 #include "SinricProNamespace.h"
-
16 namespace SINRICPRO_NAMESPACE {
-
17 
- -
24  public SettingController<SinricProDoorbell>,
-
25  public PushNotification<SinricProDoorbell>,
-
26  public PowerStateController<SinricProDoorbell>,
-
27  public Doorbell<SinricProDoorbell> {
-
28  friend class SettingController<SinricProDoorbell>;
-
29  friend class PushNotification<SinricProDoorbell>;
- -
31  friend class Doorbell<SinricProDoorbell>;
-
32  public:
-
33  SinricProDoorbell(const String &deviceId) : SinricProDevice(deviceId, "CONTACT_SENSOR") {}
-
34 };
-
35 
-
36 } // Namespace
-
37 
-
38 using SinricProDoorbell = SINRICPRO_NAMESPACE::SinricProDoorbell;
-
Dorbell.
Definition: Doorbell.h:18
-
PowerStateController.
Definition: PowerStateController.h:36
-
PushNotification.
Definition: PushNotification.h:17
-
Base class for all device types.
Definition: SinricProDevice.h:24
-
Device to report doorbell events.
Definition: SinricProDoorbell.h:27
-
-
- - - - diff --git a/docs/docs/_sinric_pro_fan_8h_source.html b/docs/docs/_sinric_pro_fan_8h_source.html deleted file mode 100644 index f1b2f4c..0000000 --- a/docs/docs/_sinric_pro_fan_8h_source.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - -SinricPro Library: src/SinricProFan.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProFan.h
-
-
-
1 /*
-
2  * Copyright (c) 2019 Sinric. All rights reserved.
-
3  * Licensed under Creative Commons Attribution-Share Alike (CC BY-SA)
-
4  *
-
5  * This file is part of the Sinric Pro (https://github.com/sinricpro/)
-
6  */
-
7 
-
8 #pragma once
-
9 
-
10 #include "SinricProDevice.h"
-
11 #include "Capabilities/SettingController.h"
-
12 #include "Capabilities/PushNotification.h"
-
13 #include "Capabilities/PowerStateController.h"
-
14 #include "Capabilities/PowerLevelController.h"
-
15 
-
16 #include "SinricProNamespace.h"
-
17 namespace SINRICPRO_NAMESPACE {
-
18 
- -
25  public SettingController<SinricProFan>,
-
26  public PushNotification<SinricProFan>,
-
27  public PowerStateController<SinricProFan>,
-
28  public PowerLevelController<SinricProFan> {
-
29  friend class SettingController<SinricProFan>;
-
30  friend class PushNotification<SinricProFan>;
-
31  friend class PowerStateController<SinricProFan>;
-
32  friend class PowerLevelController<SinricProFan>;
-
33  public:
-
34  SinricProFan(const String &deviceId) : SinricProDevice(deviceId, "FAN_NON-US") {}
-
35 };
-
36 
-
37 } // Namespace
-
38 
-
39 using SinricProFan = SINRICPRO_NAMESPACE::SinricProFan;
-
PowerLevelController.
Definition: PowerLevelController.h:53
-
PowerStateController.
Definition: PowerStateController.h:36
-
PushNotification.
Definition: PushNotification.h:17
-
Base class for all device types.
Definition: SinricProDevice.h:24
-
Device to turn on / off a fan and change it's speed by using powerlevel.
Definition: SinricProFan.h:28
-
-
- - - - diff --git a/docs/docs/_sinric_pro_fan_u_s_8h_source.html b/docs/docs/_sinric_pro_fan_u_s_8h_source.html deleted file mode 100644 index 9030dbb..0000000 --- a/docs/docs/_sinric_pro_fan_u_s_8h_source.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - -SinricPro Library: src/SinricProFanUS.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProFanUS.h
-
-
-
1 /*
-
2  * Copyright (c) 2019 Sinric. All rights reserved.
-
3  * Licensed under Creative Commons Attribution-Share Alike (CC BY-SA)
-
4  *
-
5  * This file is part of the Sinric Pro (https://github.com/sinricpro/)
-
6  */
-
7 
-
8 #pragma once
-
9 
-
10 #include "SinricProDevice.h"
-
11 #include "Capabilities/SettingController.h"
-
12 #include "Capabilities/PushNotification.h"
-
13 #include "Capabilities/PowerStateController.h"
-
14 #include "Capabilities/RangeController.h"
-
15 
-
16 #include "SinricProNamespace.h"
-
17 namespace SINRICPRO_NAMESPACE {
-
18 
- -
25  public SettingController<SinricProFanUS>,
-
26  public PushNotification<SinricProFanUS>,
-
27  public PowerStateController<SinricProFanUS>,
-
28  public RangeController<SinricProFanUS> {
-
29  friend class SettingController<SinricProFanUS>;
-
30  friend class PushNotification<SinricProFanUS>;
- -
32  friend class RangeController<SinricProFanUS>;
-
33  public:
-
34  SinricProFanUS(const String &deviceId) : SinricProDevice(deviceId, "FAN") {}
-
35 };
-
36 
-
37 } // Namespace
-
38 
-
39 using SinricProFanUS = SINRICPRO_NAMESPACE::SinricProFanUS;
-
PowerStateController.
Definition: PowerStateController.h:36
-
PushNotification.
Definition: PushNotification.h:17
-
RangeControllerFloatInt.
Definition: RangeController.h:109
-
Base class for all device types.
Definition: SinricProDevice.h:24
-
Device to control a fan with on / off commands and its speed by a range value.
Definition: SinricProFanUS.h:28
-
-
- - - - diff --git a/docs/docs/_sinric_pro_garage_door_8h_source.html b/docs/docs/_sinric_pro_garage_door_8h_source.html deleted file mode 100644 index fb7c901..0000000 --- a/docs/docs/_sinric_pro_garage_door_8h_source.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - -SinricPro Library: src/SinricProGarageDoor.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProGarageDoor.h
-
-
-
1 /*
-
2  * Copyright (c) 2019 Sinric. All rights reserved.
-
3  * Licensed under Creative Commons Attribution-Share Alike (CC BY-SA)
-
4  *
-
5  * This file is part of the Sinric Pro (https://github.com/sinricpro/)
-
6  */
-
7 
-
8 #pragma once
-
9 
-
10 #include "SinricProDevice.h"
-
11 #include "Capabilities/SettingController.h"
-
12 #include "Capabilities/PushNotification.h"
-
13 #include "Capabilities/DoorController.h"
-
14 
-
15 #include "SinricProNamespace.h"
-
16 namespace SINRICPRO_NAMESPACE {
-
17 
- -
27  public SettingController<SinricProGarageDoor>,
-
28  public PushNotification<SinricProGarageDoor>,
-
29  public DoorController<SinricProGarageDoor> {
-
30  friend class SettingController<SinricProGarageDoor>;
- -
32  friend class DoorController<SinricProGarageDoor>;
-
33  public:
-
34  SinricProGarageDoor(const String &deviceId) : SinricProDevice(deviceId, "GARAGE_DOOR") {}
-
35 };
-
36 
-
37 } // Namespace
-
38 
-
39 using SinricProGarageDoor = SINRICPRO_NAMESPACE::SinricProGarageDoor;
-
DoorController - only used for GarageDoor device and cannot used as capability for a custom device!
Definition: DoorController.h:36
-
PushNotification.
Definition: PushNotification.h:17
-
Base class for all device types.
Definition: SinricProDevice.h:24
-
Device to control a garage door.
Definition: SinricProGarageDoor.h:29
-
-
- - - - diff --git a/docs/docs/_sinric_pro_interface_8h_source.html b/docs/docs/_sinric_pro_interface_8h_source.html deleted file mode 100644 index 7740f25..0000000 --- a/docs/docs/_sinric_pro_interface_8h_source.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - -SinricPro Library: src/SinricProInterface.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProInterface.h
-
-
-
1 /*
-
2  * Copyright (c) 2019 Sinric. All rights reserved.
-
3  * Licensed under Creative Commons Attribution-Share Alike (CC BY-SA)
-
4  *
-
5  * This file is part of the Sinric Pro (https://github.com/sinricpro/)
-
6  */
-
7 
-
8 #pragma once
-
9 
-
10 #include "ArduinoJson.h"
-
11 #include "SinricProQueue.h"
-
12 
-
13 #include "SinricProNamespace.h"
-
14 namespace SINRICPRO_NAMESPACE {
-
15 
-
16 class SinricProInterface {
-
17  friend class SinricProDevice;
-
18  protected:
-
19  virtual void sendMessage(JsonDocument& jsonEvent);
-
20  virtual DynamicJsonDocument prepareEvent(String deviceId, const char* action, const char* cause);
-
21  virtual unsigned long getTimestamp();
-
22  virtual bool isConnected();
-
23 };
-
24 
-
25 } // SINRICPRO_NAMESPACE
-
-
- - - - diff --git a/docs/docs/_sinric_pro_light_8h_source.html b/docs/docs/_sinric_pro_light_8h_source.html deleted file mode 100644 index 5d4010d..0000000 --- a/docs/docs/_sinric_pro_light_8h_source.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - -SinricPro Library: src/SinricProLight.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProLight.h
-
-
-
1 /*
-
2  * Copyright (c) 2019 Sinric. All rights reserved.
-
3  * Licensed under Creative Commons Attribution-Share Alike (CC BY-SA)
-
4  *
-
5  * This file is part of the Sinric Pro (https://github.com/sinricpro/)
-
6  */
-
7 #pragma once
-
8 
-
9 #include "SinricProDevice.h"
-
10 #include "Capabilities/SettingController.h"
-
11 #include "Capabilities/PushNotification.h"
-
12 #include "Capabilities/PowerStateController.h"
-
13 #include "Capabilities/BrightnessController.h"
-
14 #include "Capabilities/ColorController.h"
-
15 #include "Capabilities/ColorTemperatureController.h"
-
16 
-
17 #include "SinricProNamespace.h"
-
18 namespace SINRICPRO_NAMESPACE {
-
19 
- -
32  public SettingController<SinricProLight>,
-
33  public PushNotification<SinricProLight>,
-
34  public PowerStateController<SinricProLight>,
-
35  public BrightnessController<SinricProLight>,
-
36  public ColorController<SinricProLight>,
-
37  public ColorTemperatureController<SinricProLight> {
-
38  friend class SettingController<SinricProLight>;
-
39  friend class PushNotification<SinricProLight>;
- - -
42  friend class ColorController<SinricProLight>;
- -
44  public:
-
45  SinricProLight(const String &deviceId) : SinricProDevice(deviceId, "LIGHT") {}
-
46 };
-
47 
-
48 } // SINRICPRO_NAMESPACE
-
49 
-
50 using SinricProLight = SINRICPRO_NAMESPACE::SinricProLight;
-
BrightnessController.
Definition: BrightnessController.h:50
-
ColorController.
Definition: ColorController.h:40
-
ColorTemperatureController.
Definition: ColorTemperatureController.h:66
-
PowerStateController.
Definition: PowerStateController.h:36
-
PushNotification.
Definition: PushNotification.h:17
-
Base class for all device types.
Definition: SinricProDevice.h:24
-
Device to control a light.
Definition: SinricProLight.h:37
-
-
- - - - diff --git a/docs/docs/_sinric_pro_lock_8h_source.html b/docs/docs/_sinric_pro_lock_8h_source.html deleted file mode 100644 index cd8d61c..0000000 --- a/docs/docs/_sinric_pro_lock_8h_source.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - -SinricPro Library: src/SinricProLock.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProLock.h
-
-
-
1 /*
-
2  * Copyright (c) 2019 Sinric. All rights reserved.
-
3  * Licensed under Creative Commons Attribution-Share Alike (CC BY-SA)
-
4  *
-
5  * This file is part of the Sinric Pro (https://github.com/sinricpro/)
-
6  */
-
7 
-
8 #pragma once
-
9 
-
10 #include "SinricProDevice.h"
-
11 #include "Capabilities/SettingController.h"
-
12 #include "Capabilities/PushNotification.h"
-
13 #include "Capabilities/LockController.h"
-
14 
-
15 #include "SinricProNamespace.h"
-
16 namespace SINRICPRO_NAMESPACE {
-
17 
- -
28  public SettingController<SinricProLock>,
-
29  public PushNotification<SinricProLock>,
-
30  public LockController<SinricProLock> {
-
31  friend class SettingController<SinricProLock>;
-
32  friend class PushNotification<SinricProLock>;
-
33  friend class LockController<SinricProLock>;
-
34  public:
-
35  SinricProLock(const String &deviceId) : SinricProDevice(deviceId, "SMARTLOCK") {}
-
36 };
-
37 
-
38 } // SINRICPRO_NAMESPACE#
-
39 
-
40 using SinricProLock = SINRICPRO_NAMESPACE::SinricProLock;
-
LockController.
Definition: LockController.h:44
-
PushNotification.
Definition: PushNotification.h:17
-
Base class for all device types.
Definition: SinricProDevice.h:24
-
Device to control a smart lock.
Definition: SinricProLock.h:30
-
-
- - - - diff --git a/docs/docs/_sinric_pro_messageid_8h_source.html b/docs/docs/_sinric_pro_messageid_8h_source.html deleted file mode 100644 index 9677d89..0000000 --- a/docs/docs/_sinric_pro_messageid_8h_source.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - -SinricPro Library: src/SinricProMessageid.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProMessageid.h
-
-
-
1 /*
-
2  * Copyright (c) 2019 Sinric. All rights reserved.
-
3  * Licensed under Creative Commons Attribution-Share Alike (CC BY-SA)
-
4  *
-
5  * This file is part of the Sinric Pro (https://github.com/sinricpro/)
-
6  */
-
7 
-
8 #pragma once
-
9 
-
10 #include "SinricProNamespace.h"
-
11 namespace SINRICPRO_NAMESPACE {
-
12 
-
13 class MessageID {
-
14 public:
-
15  MessageID();
-
16  const String& getID() { return _id; }
-
17 private:
-
18  String _id;
-
19 };
-
20 
-
21 MessageID::MessageID() {
-
22  _id = "";
-
23  for (byte i=0; i<16; i++) {
-
24  byte rnd = random(255);
-
25  if (i==4) _id += "-";
-
26  if (i==6) { _id += "-"; rnd = 0x40 | (0x0F & rnd); } // 0100xxxx to set version 4
-
27  if (i==8) { _id += "-"; rnd = 0x80 | (0x3F & rnd); } // 10xxxxxx to set reserved bits
-
28  if (i==10) _id += "-";
-
29  byte high_nibble = rnd >> 4;
-
30  byte low_nibble = rnd & 0x0f;
-
31  _id += "0123456789abcdef"[high_nibble];
-
32  _id += "0123456789abcdef"[low_nibble];
-
33  }
-
34 }
-
35 
-
36 } // SINRICPRO_NAMESPACE
-
-
- - - - diff --git a/docs/docs/_sinric_pro_motionsensor_8h_source.html b/docs/docs/_sinric_pro_motionsensor_8h_source.html deleted file mode 100644 index c332224..0000000 --- a/docs/docs/_sinric_pro_motionsensor_8h_source.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - -SinricPro Library: src/SinricProMotionsensor.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProMotionsensor.h
-
-
-
1 /*
-
2  * Copyright (c) 2019 Sinric. All rights reserved.
-
3  * Licensed under Creative Commons Attribution-Share Alike (CC BY-SA)
-
4  *
-
5  * This file is part of the Sinric Pro (https://github.com/sinricpro/)
-
6  */
-
7 
-
8 #pragma once
-
9 
-
10 #include "SinricProDevice.h"
-
11 #include "Capabilities/SettingController.h"
-
12 #include "Capabilities/PushNotification.h"
-
13 #include "Capabilities/PowerStateController.h"
-
14 #include "Capabilities/MotionSensor.h"
-
15 
-
16 #include "SinricProNamespace.h"
-
17 namespace SINRICPRO_NAMESPACE {
-
18 
- -
25  public SettingController<SinricProMotionsensor>,
-
26  public PushNotification<SinricProMotionsensor>,
-
27  public PowerStateController<SinricProMotionsensor>,
-
28  public MotionSensor<SinricProMotionsensor> {
-
29  friend class SettingController<SinricProMotionsensor>;
- - -
32  friend class MotionSensor<SinricProMotionsensor>;
-
33  public:
-
34  SinricProMotionsensor(const String &deviceId) : SinricProDevice(deviceId, "MOTION_SENSOR") {}
-
35 };
-
36 
-
37 } // SINRICPRO_NAMESPACE
-
38 
-
39 using SinricProMotionsensor = SINRICPRO_NAMESPACE::SinricProMotionsensor;
-
MotionSensor.
Definition: MotionSensor.h:19
-
PowerStateController.
Definition: PowerStateController.h:36
-
PushNotification.
Definition: PushNotification.h:17
-
Base class for all device types.
Definition: SinricProDevice.h:24
-
Device to report motion detection events.
Definition: SinricProMotionsensor.h:28
-
-
- - - - diff --git a/docs/docs/_sinric_pro_namespace_8h_source.html b/docs/docs/_sinric_pro_namespace_8h_source.html deleted file mode 100644 index dee7115..0000000 --- a/docs/docs/_sinric_pro_namespace_8h_source.html +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - - -SinricPro Library: src/SinricProNamespace.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProNamespace.h
-
-
-
1 #pragma once
-
2 
-
3 #include "SinricProVersion.h"
-
4 
-
5 #define DO_CONCATE(A, B, C, D) A ## _ ## B ## _ ## C ## _ ## D
-
6 #define CONCATE(A, B, C, D) DO_CONCATE(A, B, C, D)
-
7 
-
8 #define SINRICPRO_NAMESPACE CONCATE(SINRICPRO, SINRICPRO_VERSION_MAJOR, SINRICPRO_VERSION_MINOR, SINRICPRO_VERSION_REVISION)
-
9 #define NAMESPACE_STR STR(SINRICPRO_NAMESPACE)
-
10 
-
11 
-
16 namespace SINRICPRO_NAMESPACE {}
-
-
- - - - diff --git a/docs/docs/_sinric_pro_power_sensor_8h_source.html b/docs/docs/_sinric_pro_power_sensor_8h_source.html deleted file mode 100644 index f45b361..0000000 --- a/docs/docs/_sinric_pro_power_sensor_8h_source.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - -SinricPro Library: src/SinricProPowerSensor.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProPowerSensor.h
-
-
-
1 /*
-
2  * Copyright (c) 2019 Sinric. All rights reserved.
-
3  * Licensed under Creative Commons Attribution-Share Alike (CC BY-SA)
-
4  *
-
5  * This file is part of the Sinric Pro (https://github.com/sinricpro/)
-
6  */
-
7 
-
8 #pragma once
-
9 
-
10 #include "SinricProDevice.h"
-
11 #include "Capabilities/SettingController.h"
-
12 #include "Capabilities/PushNotification.h"
-
13 #include "Capabilities/PowerSensor.h"
-
14 #include "Capabilities/PowerStateController.h"
-
15 
-
16 #include "SinricProNamespace.h"
-
17 namespace SINRICPRO_NAMESPACE {
-
18 
- -
25  public SettingController<SinricProPowerSensor>,
-
26  public PushNotification<SinricProPowerSensor>,
-
27  public PowerSensor<SinricProPowerSensor>,
-
28  public PowerStateController<SinricProPowerSensor> {
-
29  friend class SettingController<SinricProPowerSensor>;
- -
31  friend class PowerSensor<SinricProPowerSensor>;
- -
33  public:
-
34  SinricProPowerSensor(const String &deviceId) : SinricProDevice(deviceId, "POWER_SENSOR") {}
-
35 };
-
36 
-
37 } // SINRICPRO_NAMESPACE
-
38 
-
39 using SinricProPowerSensor = SINRICPRO_NAMESPACE::SinricProPowerSensor;
-
PowerSensor.
Definition: PowerSensor.h:24
-
PowerStateController.
Definition: PowerStateController.h:36
-
PushNotification.
Definition: PushNotification.h:17
-
Base class for all device types.
Definition: SinricProDevice.h:24
-
Device to report power usage.
Definition: SinricProPowerSensor.h:28
-
-
- - - - diff --git a/docs/docs/_sinric_pro_queue_8h_source.html b/docs/docs/_sinric_pro_queue_8h_source.html deleted file mode 100644 index 932ff5d..0000000 --- a/docs/docs/_sinric_pro_queue_8h_source.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - -SinricPro Library: src/SinricProQueue.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProQueue.h
-
-
-
1 /*
-
2  * Copyright (c) 2021 Sinric. All rights reserved.
-
3  * Licensed under Creative Commons Attribution-Share Alike (CC BY-SA)
-
4  *
-
5  * This file is part of the Sinric Pro (https://github.com/sinricpro/)
-
6  */
-
7 
-
8 #pragma once
-
9 
-
10 #include <queue>
-
11 
-
12 #include "SinricProNamespace.h"
-
13 namespace SINRICPRO_NAMESPACE {
-
14 
-
15 typedef enum {
-
16  IF_UNKNOWN = 0,
-
17  IF_WEBSOCKET = 1,
-
18  IF_UDP = 2
-
19 } interface_t;
-
20 
-
21 class SinricProMessage {
-
22 public:
-
23  SinricProMessage(interface_t interface, const char* message);
-
24  ~SinricProMessage();
-
25  const char* getMessage() const;
-
26  interface_t getInterface() const;
-
27 private:
-
28  interface_t _interface;
-
29  char* _message;
-
30 };
-
31 
-
32 SinricProMessage::SinricProMessage(interface_t interface, const char* message) :
-
33  _interface(interface) {
-
34  _message = strdup(message);
-
35 };
-
36 
-
37 SinricProMessage::~SinricProMessage() {
-
38  if (_message) free(_message);
-
39 };
-
40 
-
41 const char* SinricProMessage::getMessage() const {
-
42  return _message;
-
43 };
-
44 
-
45 interface_t SinricProMessage::getInterface() const {
-
46  return _interface;
-
47 };
-
48 
-
49 
-
50 typedef std::queue<SinricProMessage*> SinricProQueue_t;
-
51 
-
52 } // SINRICPRO_NAMESPACE
-
-
- - - - diff --git a/docs/docs/_sinric_pro_request_8h_source.html b/docs/docs/_sinric_pro_request_8h_source.html deleted file mode 100644 index ac0bfcc..0000000 --- a/docs/docs/_sinric_pro_request_8h_source.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - -SinricPro Library: src/SinricProRequest.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProRequest.h
-
-
-
1 #pragma once
-
2 
-
3 #include <WString.h>
-
4 #include <ArduinoJson.h>
-
5 #include <functional>
-
6 
-
7 #include "SinricProNamespace.h"
-
8 namespace SINRICPRO_NAMESPACE {
-
9 
-
10 struct SinricProRequest {
-
11  const String &action;
-
12  const String &instance;
-
13  JsonObject &request_value;
-
14  JsonObject &response_value;
-
15 };
-
16 
-
17 using SinricProRequestHandler = std::function<bool(SinricProRequest&)>;
-
18 
-
19 } // SINRICPRO_NAMESPACE
-
-
- - - - diff --git a/docs/docs/_sinric_pro_signature_8h_source.html b/docs/docs/_sinric_pro_signature_8h_source.html deleted file mode 100644 index d6fe80d..0000000 --- a/docs/docs/_sinric_pro_signature_8h_source.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - -SinricPro Library: src/SinricProSignature.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProSignature.h
-
-
-
1 /*
-
2  * Copyright (c) 2019 Sinric. All rights reserved.
-
3  * Licensed under Creative Commons Attribution-Share Alike (CC BY-SA)
-
4  *
-
5  * This file is part of the Sinric Pro (https://github.com/sinricpro/)
-
6  */
-
7 
-
8 #pragma once
-
9 
-
10 #include "SinricProNamespace.h"
-
11 namespace SINRICPRO_NAMESPACE {
-
12 
-
13 String HMACbase64(const String &message, const String &key);
-
14 String extractPayload(const char *message);
-
15 String calculateSignature(const char* key, String payload);
-
16 String signMessage(String key, JsonDocument &jsonMessage);
-
17 
-
18 } // SINRICPRO_NAMESPACE
-
-
- - - - diff --git a/docs/docs/_sinric_pro_speaker_8h_source.html b/docs/docs/_sinric_pro_speaker_8h_source.html deleted file mode 100644 index cec7390..0000000 --- a/docs/docs/_sinric_pro_speaker_8h_source.html +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - - -SinricPro Library: src/SinricProSpeaker.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProSpeaker.h
-
-
-
1 /*
-
2  * Copyright (c) 2019 Sinric. All rights reserved.
-
3  * Licensed under Creative Commons Attribution-Share Alike (CC BY-SA)
-
4  *
-
5  * This file is part of the Sinric Pro (https://github.com/sinricpro/)
-
6  */
-
7 
-
8 #pragma once
-
9 
-
10 #include "SinricProDevice.h"
-
11 #include "Capabilities/SettingController.h"
-
12 #include "Capabilities/PushNotification.h"
-
13 #include "Capabilities/PowerStateController.h"
-
14 #include "Capabilities/MuteController.h"
-
15 #include "Capabilities/VolumeController.h"
-
16 #include "Capabilities/MediaController.h"
-
17 #include "Capabilities/InputController.h"
-
18 #include "Capabilities/EqualizerController.h"
-
19 #include "Capabilities/ModeController.h"
-
20 
-
21 #include "SinricProNamespace.h"
-
22 namespace SINRICPRO_NAMESPACE {
-
23 
- -
45  public SettingController<SinricProSpeaker>,
-
46  public PushNotification<SinricProSpeaker>,
-
47  public PowerStateController<SinricProSpeaker>,
-
48  public MuteController<SinricProSpeaker>,
-
49  public VolumeController<SinricProSpeaker>,
-
50  public MediaController<SinricProSpeaker>,
-
51  public InputController<SinricProSpeaker>,
-
52  public EqualizerController<SinricProSpeaker>,
-
53  public ModeController<SinricProSpeaker> {
-
54  friend class SettingController<SinricProSpeaker>;
-
55  friend class PushNotification<SinricProSpeaker>;
- -
57  friend class MuteController<SinricProSpeaker>;
-
58  friend class VolumeController<SinricProSpeaker>;
-
59  friend class MediaController<SinricProSpeaker>;
-
60  friend class InputController<SinricProSpeaker>;
- -
62  friend class ModeController<SinricProSpeaker>;
-
63 public:
-
64  SinricProSpeaker(const String &deviceId) : SinricProDevice(deviceId, "SPEAKER") {}
-
65 };
-
66 
-
67 } // SINRICPRO_NAMESPACE
-
68 
-
69 using SinricProSpeaker = SINRICPRO_NAMESPACE::SinricProSpeaker;
-
EqualizerController.
Definition: EqualizerController.h:79
-
InputController.
Definition: InputController.h:35
-
MediaController.
Definition: MediaController.h:35
-
ModeController.
Definition: ModeController.h:53
-
MuteController.
Definition: MuteController.h:35
-
PowerStateController.
Definition: PowerStateController.h:36
-
PushNotification.
Definition: PushNotification.h:17
-
Base class for all device types.
Definition: SinricProDevice.h:24
-
Device to control a smart speaker.
Definition: SinricProSpeaker.h:53
-
VolumeController.
Definition: VolumeController.h:54
-
-
- - - - diff --git a/docs/docs/_sinric_pro_strings_8h_source.html b/docs/docs/_sinric_pro_strings_8h_source.html deleted file mode 100644 index 87df721..0000000 --- a/docs/docs/_sinric_pro_strings_8h_source.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - -SinricPro Library: src/SinricProStrings.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProStrings.h
-
-
-
1 #pragma once
-
2 
-
3 #include "SinricProNamespace.h"
-
4 namespace SINRICPRO_NAMESPACE {
-
5 
-
14 #define FSTR(x, y) const char* FSTR_ ##x ##_ ##y PROGMEM = #y
-
15 
-
16 FSTR(SINRICPRO, instanceId); // "instanceId"
-
17 FSTR(SINRICPRO, message); // "message"
-
18 FSTR(SINRICPRO, success); // "success"
-
19 FSTR(SINRICPRO, response); // "response"
-
20 FSTR(SINRICPRO, header); // "header"
-
21 FSTR(SINRICPRO, payloadVersion); // "payloadVersion"
-
22 FSTR(SINRICPRO, signatureVersion); // "signatureVersion"
-
23 FSTR(SINRICPRO, payload); // "payload"
-
24 FSTR(SINRICPRO, action); // "action"
-
25 FSTR(SINRICPRO, cause); // "cause"
-
26 FSTR(SINRICPRO, type); // "type"
-
27 FSTR(SINRICPRO, createdAt); // "createdAt"
-
28 FSTR(SINRICPRO, deviceId); // "deviceId"
-
29 FSTR(SINRICPRO, replyToken); // "replyToken"
-
30 FSTR(SINRICPRO, event); // "event"
-
31 FSTR(SINRICPRO, value); // "value"
-
32 FSTR(SINRICPRO, clientId); // "clientId"
-
33 FSTR(SINRICPRO, request); // "request"
-
34 FSTR(SINRICPRO, signature); // "signature"
-
35 FSTR(SINRICPRO, HMAC); // "HMAC"
-
36 FSTR(SINRICPRO, timestamp); // "timestamp"
-
37 FSTR(SINRICPRO, PERIODIC_POLL); // "PERIODIC_POLL"
-
38 FSTR(SINRICPRO, PHYSICAL_INTERACTION); // "PHYSICAL_INTERACTION"
-
39 FSTR(SINRICPRO, ALERT); // "ALERT"
-
40 FSTR(SINRICPRO, OK); // "OK"
-
41 
-
42 } // SINRICPRO_NAMESPACE
-
-
- - - - diff --git a/docs/docs/_sinric_pro_switch_8h_source.html b/docs/docs/_sinric_pro_switch_8h_source.html deleted file mode 100644 index 2a1fe25..0000000 --- a/docs/docs/_sinric_pro_switch_8h_source.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - -SinricPro Library: src/SinricProSwitch.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProSwitch.h
-
-
-
1 /*
-
2  * Copyright (c) 2019 Sinric. All rights reserved.
-
3  * Licensed under Creative Commons Attribution-Share Alike (CC BY-SA)
-
4  *
-
5  * This file is part of the Sinric Pro (https://github.com/sinricpro/)
-
6  */
-
7 
-
8 #pragma once
-
9 
-
10 #include "SinricProDevice.h"
-
11 #include "Capabilities/SettingController.h"
-
12 #include "Capabilities/PushNotification.h"
-
13 #include "Capabilities/PowerStateController.h"
-
14 
-
15 #include "SinricProNamespace.h"
-
16 namespace SINRICPRO_NAMESPACE {
-
17 
- -
24  public SettingController<SinricProSwitch>,
-
25  public PushNotification<SinricProSwitch>,
-
26  public PowerStateController<SinricProSwitch> {
-
27  friend class SettingController<SinricProSwitch>;
-
28  friend class PushNotification<SinricProSwitch>;
- -
30  public:
-
31  SinricProSwitch(const String &deviceId) : SinricProDevice(deviceId, "SWITCH") {};
-
32 };
-
33 
-
34 } // SINRICPRO_NAMESPACE
-
35 
-
36 using SinricProSwitch = SINRICPRO_NAMESPACE::SinricProSwitch;
-
PowerStateController.
Definition: PowerStateController.h:36
-
PushNotification.
Definition: PushNotification.h:17
-
Base class for all device types.
Definition: SinricProDevice.h:24
-
Device suporting basic on / off command.
Definition: SinricProSwitch.h:26
-
-
- - - - diff --git a/docs/docs/_sinric_pro_t_v_8h_source.html b/docs/docs/_sinric_pro_t_v_8h_source.html deleted file mode 100644 index 34f36b5..0000000 --- a/docs/docs/_sinric_pro_t_v_8h_source.html +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - -SinricPro Library: src/SinricProTV.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProTV.h
-
-
-
1 /*
-
2  * Copyright (c) 2019 Sinric. All rights reserved.
-
3  * Licensed under Creative Commons Attribution-Share Alike (CC BY-SA)
-
4  *
-
5  * This file is part of the Sinric Pro (https://github.com/sinricpro/)
-
6  */
-
7 
-
8 #pragma once
-
9 
-
10 #include "SinricProDevice.h"
-
11 #include "Capabilities/SettingController.h"
-
12 #include "Capabilities/PushNotification.h"
-
13 #include "Capabilities/PowerStateController.h"
-
14 #include "Capabilities/VolumeController.h"
-
15 #include "Capabilities/MuteController.h"
-
16 #include "Capabilities/MediaController.h"
-
17 #include "Capabilities/InputController.h"
-
18 #include "Capabilities/ChannelController.h"
-
19 
-
20 #include "SinricProNamespace.h"
-
21 namespace SINRICPRO_NAMESPACE {
-
22 
- -
40  public SettingController<SinricProTV>,
-
41  public PushNotification<SinricProTV>,
-
42  public PowerStateController<SinricProTV>,
-
43  public VolumeController<SinricProTV>,
-
44  public MuteController<SinricProTV>,
-
45  public MediaController<SinricProTV>,
-
46  public InputController<SinricProTV>,
-
47  public ChannelController<SinricProTV> {
-
48  friend class SettingController<SinricProTV>;
-
49  friend class PushNotification<SinricProTV>;
-
50  friend class PowerStateController<SinricProTV>;
-
51  friend class VolumeController<SinricProTV>;
-
52  friend class MuteController<SinricProTV>;
-
53  friend class MediaController<SinricProTV>;
-
54  friend class InputController<SinricProTV>;
-
55  friend class ChannelController<SinricProTV>;
-
56  public:
-
57  SinricProTV(const String &deviceId) : SinricProDevice(deviceId, "TV") {}
-
58 };
-
59 
-
60 } // SINRICPRO_NAMESPACE
-
61 
-
62 using SinricProTV = SINRICPRO_NAMESPACE::SinricProTV;
-
ChannelController.
Definition: ChannelController.h:70
-
InputController.
Definition: InputController.h:35
-
MediaController.
Definition: MediaController.h:35
-
MuteController.
Definition: MuteController.h:35
-
PowerStateController.
Definition: PowerStateController.h:36
-
PushNotification.
Definition: PushNotification.h:17
-
Base class for all device types.
Definition: SinricProDevice.h:24
-
Device to control a TV.
Definition: SinricProTV.h:47
-
VolumeController.
Definition: VolumeController.h:54
-
-
- - - - diff --git a/docs/docs/_sinric_pro_temperaturesensor_8h_source.html b/docs/docs/_sinric_pro_temperaturesensor_8h_source.html deleted file mode 100644 index c4711d0..0000000 --- a/docs/docs/_sinric_pro_temperaturesensor_8h_source.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - -SinricPro Library: src/SinricProTemperaturesensor.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProTemperaturesensor.h
-
-
-
1 /*
-
2  * Copyright (c) 2019 Sinric. All rights reserved.
-
3  * Licensed under Creative Commons Attribution-Share Alike (CC BY-SA)
-
4  *
-
5  * This file is part of the Sinric Pro (https://github.com/sinricpro/)
-
6  */
-
7 
-
8 #pragma once
-
9 
-
10 #include "SinricProDevice.h"
-
11 #include "Capabilities/SettingController.h"
-
12 #include "Capabilities/PushNotification.h"
-
13 #include "Capabilities/PowerStateController.h"
-
14 #include "Capabilities/TemperatureSensor.h"
-
15 
-
16 #include "SinricProNamespace.h"
-
17 namespace SINRICPRO_NAMESPACE {
-
18 
- -
25  public SettingController<SinricProTemperaturesensor>,
-
26  public PushNotification<SinricProTemperaturesensor>,
-
27  public PowerStateController<SinricProTemperaturesensor>,
-
28  public TemperatureSensor<SinricProTemperaturesensor> {
-
29  friend class SettingController<SinricProTemperaturesensor>;
- - - -
33  public:
-
34  SinricProTemperaturesensor(const String &deviceId) : SinricProDevice(deviceId, "TEMPERATURESENSOR") {}
-
35 };
-
36 
-
37 } // SINRICPRO_NAMESPACE
-
38 
-
39 using SinricProTemperaturesensor = SINRICPRO_NAMESPACE::SinricProTemperaturesensor;
-
PowerStateController.
Definition: PowerStateController.h:36
-
PushNotification.
Definition: PushNotification.h:17
-
Base class for all device types.
Definition: SinricProDevice.h:24
-
Device to report actual temperature and humidity.
Definition: SinricProTemperaturesensor.h:28
-
TemperatureSensor.
Definition: TemperatureSensor.h:18
-
-
- - - - diff --git a/docs/docs/_sinric_pro_thermostat_8h_source.html b/docs/docs/_sinric_pro_thermostat_8h_source.html deleted file mode 100644 index 33cdf7f..0000000 --- a/docs/docs/_sinric_pro_thermostat_8h_source.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - -SinricPro Library: src/SinricProThermostat.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProThermostat.h
-
-
-
1 /*
-
2  * Copyright (c) 2019 Sinric. All rights reserved.
-
3  * Licensed under Creative Commons Attribution-Share Alike (CC BY-SA)
-
4  *
-
5  * This file is part of the Sinric Pro (https://github.com/sinricpro/)
-
6  */
-
7 
-
8 #pragma once
-
9 
-
10 #include "SinricProDevice.h"
-
11 #include "Capabilities/SettingController.h"
-
12 #include "Capabilities/PushNotification.h"
-
13 #include "Capabilities/PowerStateController.h"
-
14 #include "Capabilities/ThermostatController.h"
-
15 #include "Capabilities/TemperatureSensor.h"
-
16 
-
17 #include "SinricProNamespace.h"
-
18 namespace SINRICPRO_NAMESPACE {
-
19 
- -
32  public SettingController<SinricProThermostat>,
-
33  public PushNotification<SinricProThermostat>,
-
34  public PowerStateController<SinricProThermostat>,
-
35  public ThermostatController<SinricProThermostat>,
-
36  public TemperatureSensor<SinricProThermostat> {
-
37  friend class SettingController<SinricProThermostat>;
- - - - -
42  public:
-
43  SinricProThermostat(const String &deviceId) : SinricProDevice(deviceId, "THERMOSTAT") {}
-
44 };
-
45 
-
46 } // SINRICPRO_NAMESPACE
-
47 
-
48 using SinricProThermostat = SINRICPRO_NAMESPACE::SinricProThermostat;
-
PowerStateController.
Definition: PowerStateController.h:36
-
PushNotification.
Definition: PushNotification.h:17
-
Base class for all device types.
Definition: SinricProDevice.h:24
-
Device to control Thermostat.
Definition: SinricProThermostat.h:36
-
TemperatureSensor.
Definition: TemperatureSensor.h:18
-
ThermostatController.
Definition: ThermostatController.h:70
-
-
- - - - diff --git a/docs/docs/_sinric_pro_u_d_p_8h_source.html b/docs/docs/_sinric_pro_u_d_p_8h_source.html deleted file mode 100644 index 8ccb143..0000000 --- a/docs/docs/_sinric_pro_u_d_p_8h_source.html +++ /dev/null @@ -1,175 +0,0 @@ - - - - - - - -SinricPro Library: src/SinricProUDP.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProUDP.h
-
-
-
1 /*
-
2  * Copyright (c) 2019 Sinric. All rights reserved.
-
3  * Licensed under Creative Commons Attribution-Share Alike (CC BY-SA)
-
4  *
-
5  * This file is part of the Sinric Pro (https://github.com/sinricpro/)
-
6  */
-
7 
-
8 #pragma once
-
9 
-
10 #if defined ESP8266
-
11  #include <ESP8266WiFi.h>
-
12 #endif
-
13 #if defined ESP32
-
14  #include <WiFi.h>
-
15 #endif
-
16 
-
17 #include <WiFiUdp.h>
-
18 #include "SinricProQueue.h"
-
19 
-
20 #include "SinricProNamespace.h"
-
21 namespace SINRICPRO_NAMESPACE {
-
22 
-
23 class UdpListener {
-
24  public:
-
25  void begin(SinricProQueue_t* receiveQueue);
-
26  void handle();
-
27  void sendMessage(String &message);
-
28  void stop();
-
29 
-
30  private:
-
31  WiFiUDP _udp;
-
32  SinricProQueue_t* receiveQueue;
-
33 };
-
34 
-
35 void UdpListener::begin(SinricProQueue_t* receiveQueue) {
-
36  this->receiveQueue = receiveQueue;
-
37  #if defined ESP8266
-
38  _udp.beginMulticast(WiFi.localIP(), UDP_MULTICAST_IP, UDP_MULTICAST_PORT);
-
39  #endif
-
40  #if defined ESP32
-
41  _udp.beginMulticast(UDP_MULTICAST_IP, UDP_MULTICAST_PORT);
-
42  #endif
-
43 }
-
44 
-
45 void UdpListener::handle() {
-
46  int len = _udp.parsePacket();
-
47  if (!len) return;
-
48 
-
49  if (len) {
-
50  char* buf = (char*) malloc(len+1);
-
51  memset(buf, 0, len+1);
-
52  _udp.read(buf, len);
-
53  SinricProMessage* request = new SinricProMessage(IF_UDP, buf);
-
54  DEBUG_SINRIC("[SinricPro:UDP]: receiving request\r\n%s\r\n", buf);
-
55  free(buf);
-
56  receiveQueue->push(request);
-
57  }
-
58 }
-
59 
-
60 void UdpListener::sendMessage(String &message) {
-
61  _udp.beginPacket(_udp.remoteIP(), _udp.remotePort());
-
62  _udp.print(message);
-
63  _udp.endPacket();
-
64  // restart UDP??
-
65  #if defined ESP8266
-
66  _udp.beginMulticast(WiFi.localIP(), UDP_MULTICAST_IP, UDP_MULTICAST_PORT);
-
67  #endif
-
68  #if defined ESP32
-
69  _udp.beginMulticast(UDP_MULTICAST_IP, UDP_MULTICAST_PORT);
-
70  #endif
-
71 }
-
72 
-
73 void UdpListener::stop() {
-
74  _udp.stop();
-
75 }
-
76 
-
77 } // SINRICPRO_NAMESPACE
-
-
- - - - diff --git a/docs/docs/_sinric_pro_version_8h_source.html b/docs/docs/_sinric_pro_version_8h_source.html deleted file mode 100644 index ccd0d2d..0000000 --- a/docs/docs/_sinric_pro_version_8h_source.html +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - - -SinricPro Library: src/SinricProVersion.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProVersion.h
-
-
-
1 #pragma once
-
2 
-
3 #define STR_HELPER(x) #x
-
4 #define STR(x) STR_HELPER(x)
-
5 
-
6 // Version Configuration
-
7 #define SINRICPRO_VERSION_MAJOR 2
-
8 #define SINRICPRO_VERSION_MINOR 9
-
9 #define SINRICPRO_VERSION_REVISION 17
-
10 #define SINRICPRO_VERSION STR(SINRICPRO_VERSION_MAJOR) "." STR(SINRICPRO_VERSION_MINOR) "." STR(SINRICPRO_VERSION_REVISION)
-
11 #define SINRICPRO_VERSION_STR "SinricPro (v" SINRICPRO_VERSION ")"
-
12 #define SINRICPRO_VERISON_INT SINRICPRO_VERSION_MAJOR * 1000000 + SINRICPRO_VERSION_MINOR * 1000 + SINRICPRO_VERSION_REVISION
-
-
- - - - diff --git a/docs/docs/_sinric_pro_websocket_8h_source.html b/docs/docs/_sinric_pro_websocket_8h_source.html deleted file mode 100644 index fe03e7a..0000000 --- a/docs/docs/_sinric_pro_websocket_8h_source.html +++ /dev/null @@ -1,292 +0,0 @@ - - - - - - - -SinricPro Library: src/SinricProWebsocket.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProWebsocket.h
-
-
-
1 /*
-
2  * Copyright (c) 2019 Sinric. All rights reserved.
-
3  * Licensed under Creative Commons Attribution-Share Alike (CC BY-SA)
-
4  *
-
5  * This file is part of the Sinric Pro (https://github.com/sinricpro/)
-
6  */
-
7 
-
8 #pragma once
-
9 
-
10 #if defined ESP8266
-
11 #include <ESP8266WiFi.h>
-
12 #endif
-
13 #if defined ESP32
-
14 #include <WiFi.h>
-
15 #endif
-
16 
-
17 #include <ArduinoJson.h>
-
18 #include <WebSocketsClient.h>
-
19 
-
20 #include "SinricProConfig.h"
-
21 #include "SinricProDebug.h"
-
22 #include "SinricProInterface.h"
-
23 #include "SinricProNamespace.h"
-
24 #include "SinricProQueue.h"
-
25 namespace SINRICPRO_NAMESPACE {
-
26 
-
27 #if !defined(WEBSOCKETS_VERSION_INT) || (WEBSOCKETS_VERSION_INT < 2003005)
-
28 #error "Wrong WebSockets Version! Minimum Version is 2.3.5!!!"
-
29 #endif
-
30 
-
31 using wsConnectedCallback = std::function<void(void)>;
-
32 using wsDisconnectedCallback = std::function<void(void)>;
-
33 using wsPongCallback = std::function<void(uint32_t)>;
-
34 
-
35 class WebsocketListener : protected WebSocketsClient {
-
36  public:
-
37  WebsocketListener();
-
38  ~WebsocketListener();
-
39 
-
40  void begin(String server, String appKey, String deviceIds, SinricProQueue_t* receiveQueue);
-
41  void handle();
-
42  void stop();
-
43  void setRestoreDeviceStates(bool flag);
-
44 
-
45  void sendMessage(String& message);
-
46 
-
47  void onConnected(wsConnectedCallback callback);
-
48  void onDisconnected(wsDisconnectedCallback callback);
-
49  void onPong(wsPongCallback callback);
-
50 
-
51  using WebSocketsClient::disconnect;
-
52  using WebSocketsClient::isConnected;
-
53 
-
54  protected:
-
55  bool _begin;
-
56  bool restoreDeviceStates;
-
57 
-
58  wsConnectedCallback _wsConnectedCb;
-
59  wsDisconnectedCallback _wsDisconnectedCb;
-
60  wsPongCallback _wsPongCb;
-
61 
-
62  virtual void runCbEvent(WStype_t type, uint8_t* payload, size_t length) override;
-
63 
-
64  void setExtraHeaders();
-
65  SinricProQueue_t* receiveQueue;
-
66  String deviceIds;
-
67  String appKey;
-
68 };
-
69 
-
70 WebsocketListener::WebsocketListener()
-
71  : _begin(false)
-
72  , restoreDeviceStates(false)
-
73  , _wsConnectedCb(nullptr)
-
74  , _wsDisconnectedCb(nullptr)
-
75  , _wsPongCb(nullptr) {}
-
76 
-
77 WebsocketListener::~WebsocketListener() {
-
78  stop();
-
79 }
-
80 
-
81 void WebsocketListener::setExtraHeaders() {
-
82 #ifdef ESP8266
-
83  const char* platform = "ESP8266";
-
84 #endif
-
85 #ifdef ESP32
-
86  const char* platform = "ESP32";
-
87 #endif
-
88 
-
89  String headers = "appkey:" + appKey;
-
90  headers += "\r\ndeviceids:" + deviceIds;
-
91  headers += "\r\nrestoredevicestates:" + String(restoreDeviceStates ? "true" : "false");
-
92  headers += "\r\nip:" + WiFi.localIP().toString();
-
93  headers += "\r\nmac:" + WiFi.macAddress();
-
94  headers += "\r\nplatform:" + String(platform);
-
95  headers += "\r\nSDKVersion:" + String(SINRICPRO_VERSION);
-
96 
-
97 #ifdef FIRMWARE_VERSION
-
98  headers += "\r\nfirmwareVersion:" + String(FIRMWARE_VERSION);
-
99 #endif
-
100 
-
101  DEBUG_SINRIC("[SinricPro:Websocket]: headers: \r\n%s\r\n", headers.c_str());
-
102  WebSocketsClient::setExtraHeaders(headers.c_str());
-
103 }
-
104 
-
105 void WebsocketListener::begin(String server, String appKey, String deviceIds, SinricProQueue_t* receiveQueue) {
-
106  if (_begin) return;
-
107  _begin = true;
-
108 
-
109  this->receiveQueue = receiveQueue;
-
110  this->appKey = appKey;
-
111  this->deviceIds = deviceIds;
-
112 
-
113 #ifdef WEBSOCKET_SSL
-
114  DEBUG_SINRIC("[SinricPro:Websocket]: Connecting to WebSocket Server using SSL (%s)\r\n", server.c_str());
-
115 #else
-
116  DEBUG_SINRIC("[SinricPro:Websocket]: Connecting to WebSocket Server (%s)\r\n", server.c_str());
-
117 #endif
-
118 
-
119  if (isConnected()) stop();
-
120  setExtraHeaders();
-
121  enableHeartbeat(WEBSOCKET_PING_INTERVAL, WEBSOCKET_PING_TIMEOUT, WEBSOCKET_RETRY_COUNT);
-
122 #ifdef WEBSOCKET_SSL
-
123  WebSocketsClient::beginSSL(server.c_str(), SINRICPRO_SERVER_SSL_PORT, "/");
-
124 #else
-
125  WebSocketsClient::begin(server.c_str(), SINRICPRO_SERVER_PORT, "/"); // server address, port and URL
-
126 #endif
-
127 }
-
128 
-
129 void WebsocketListener::handle() {
-
130  loop();
-
131 }
-
132 
-
133 void WebsocketListener::stop() {
-
134  disconnect();
-
135  _begin = false;
-
136 }
-
137 
-
138 void WebsocketListener::setRestoreDeviceStates(bool flag) {
-
139  this->restoreDeviceStates = flag;
-
140 };
-
141 
-
142 void WebsocketListener::sendMessage(String& message) {
-
143  sendTXT(message);
-
144 }
-
145 
-
146 void WebsocketListener::onConnected(wsConnectedCallback callback) {
-
147  _wsConnectedCb = callback;
-
148 }
-
149 
-
150 void WebsocketListener::onDisconnected(wsDisconnectedCallback callback) {
-
151  _wsDisconnectedCb = callback;
-
152 }
-
153 
-
154 void WebsocketListener::onPong(wsPongCallback callback) {
-
155  _wsPongCb = callback;
-
156 }
-
157 
-
158 void WebsocketListener::runCbEvent(WStype_t type, uint8_t* payload, size_t length) {
-
159  (void)length;
-
160 
-
161  switch (type) {
-
162  case WStype_DISCONNECTED: {
-
163  DEBUG_SINRIC("[SinricPro:Websocket]: disconnected\r\n");
-
164  if (_wsDisconnectedCb) _wsDisconnectedCb();
-
165  }
-
166  break;
-
167 
-
168  case WStype_CONNECTED:
-
169  DEBUG_SINRIC("[SinricPro:Websocket]: connected\r\n");
-
170  if (_wsConnectedCb) _wsConnectedCb();
-
171  if (restoreDeviceStates) {
-
172  restoreDeviceStates = false;
-
173  setExtraHeaders();
-
174  }
-
175  break;
-
176 
-
177  case WStype_TEXT: {
-
178  SinricProMessage* request = new SinricProMessage(IF_WEBSOCKET, (char*)payload);
-
179  DEBUG_SINRIC("[SinricPro:Websocket]: receiving data\r\n");
-
180  receiveQueue->push(request);
-
181  break;
-
182  }
-
183 
-
184  case WStype_PONG: {
-
185  if (_wsPongCb) _wsPongCb(millis() - _client.lastPing);
-
186  break;
-
187  }
-
188 
-
189  default:
-
190  break;
-
191  }
-
192 }
-
193 
-
194 } // namespace SINRICPRO_NAMESPACE
-
-
- - - - diff --git a/docs/docs/_sinric_pro_window_a_c_8h_source.html b/docs/docs/_sinric_pro_window_a_c_8h_source.html deleted file mode 100644 index 060c467..0000000 --- a/docs/docs/_sinric_pro_window_a_c_8h_source.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - - - - -SinricPro Library: src/SinricProWindowAC.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProWindowAC.h
-
-
-
1 /*
-
2  * Copyright (c) 2019 Sinric. All rights reserved.
-
3  * Licensed under Creative Commons Attribution-Share Alike (CC BY-SA)
-
4  *
-
5  * This file is part of the Sinric Pro (https://github.com/sinricpro/)
-
6  */
-
7 #pragma once
-
8 
-
9 #include "SinricProDevice.h"
-
10 #include "Capabilities/SettingController.h"
-
11 #include "Capabilities/PushNotification.h"
-
12 #include "Capabilities/PowerStateController.h"
-
13 #include "Capabilities/RangeController.h"
-
14 #include "Capabilities/ThermostatController.h"
-
15 
-
16 #include "SinricProNamespace.h"
-
17 namespace SINRICPRO_NAMESPACE {
-
18 
- -
33  public SettingController<SinricProWindowAC>,
-
34  public PushNotification<SinricProWindowAC>,
-
35  public PowerStateController<SinricProWindowAC>,
-
36  public RangeController<SinricProWindowAC>,
-
37  public ThermostatController<SinricProWindowAC> {
-
38  friend class SettingController<SinricProWindowAC>;
-
39  friend class PushNotification<SinricProWindowAC>;
- -
41  friend class RangeController<SinricProWindowAC>;
- -
43  public:
-
44  SinricProWindowAC(const String &deviceId) : SinricProDevice(deviceId, "AC_UNIT") {}
-
45 };
-
46 
-
47 } // SINRICPRO_NAMESPACE
-
48 
-
49 using SinricProWindowAC = SINRICPRO_NAMESPACE::SinricProWindowAC;
-
PowerStateController.
Definition: PowerStateController.h:36
-
PushNotification.
Definition: PushNotification.h:17
-
RangeControllerFloatInt.
Definition: RangeController.h:109
-
Base class for all device types.
Definition: SinricProDevice.h:24
-
Device to control Window Air Conditioner.
Definition: SinricProWindowAC.h:37
-
ThermostatController.
Definition: ThermostatController.h:70
-
-
- - - - diff --git a/docs/docs/_temperature_sensor_8h_source.html b/docs/docs/_temperature_sensor_8h_source.html deleted file mode 100644 index ee2c462..0000000 --- a/docs/docs/_temperature_sensor_8h_source.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - -SinricPro Library: src/Capabilities/TemperatureSensor.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
TemperatureSensor.h
-
-
-
1 #pragma once
-
2 
-
3 #include "../EventLimiter.h"
-
4 #include "../SinricProStrings.h"
-
5 
-
6 #include "../SinricProNamespace.h"
-
7 namespace SINRICPRO_NAMESPACE {
-
8 
-
9 FSTR(TEMPERATURE, currentTemperature); // "currentTemperature"
-
10 FSTR(TEMPERATURE, humidity); // "humidity"
-
11 FSTR(TEMPERATURE, temperature); // "temperature"
-
12 
-
17 template <typename T>
- -
19  public:
- -
21  bool sendTemperatureEvent(float temperature, float humidity = -1, String cause = FSTR_SINRICPRO_PERIODIC_POLL);
-
22  private:
-
23  EventLimiter event_limiter;
-
24 };
-
25 
-
26 template <typename T>
- -
28 : event_limiter(EVENT_LIMIT_SENSOR_VALUE) {}
-
29 
-
40 template <typename T>
-
41 bool TemperatureSensor<T>::sendTemperatureEvent(float temperature, float humidity, String cause) {
-
42  if (event_limiter) return false;
-
43  T* device = static_cast<T*>(this);
-
44 
-
45  DynamicJsonDocument eventMessage = device->prepareEvent(FSTR_TEMPERATURE_currentTemperature, cause.c_str());
-
46  JsonObject event_value = eventMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_value];
-
47  event_value[FSTR_TEMPERATURE_humidity] = roundf(humidity * 100) / 100.0;
-
48  event_value[FSTR_TEMPERATURE_temperature] = roundf(temperature * 10) / 10.0;
-
49  return device->sendEvent(eventMessage);
-
50 }
-
51 
-
52 } // SINRICPRO_NAMESPACE
-
53 
-
54 template <typename T>
-
55 using TemperatureSensor = SINRICPRO_NAMESPACE::TemperatureSensor<T>;
-
TemperatureSensor.
Definition: TemperatureSensor.h:18
-
bool sendTemperatureEvent(float temperature, float humidity=-1, String cause=FSTR_SINRICPRO_PERIODIC_POLL)
Send currentTemperature event to report actual temperature (measured by a sensor)
Definition: TemperatureSensor.h:41
-
-
- - - - diff --git a/docs/docs/_thermostat_controller_8h_source.html b/docs/docs/_thermostat_controller_8h_source.html deleted file mode 100644 index b45f2d8..0000000 --- a/docs/docs/_thermostat_controller_8h_source.html +++ /dev/null @@ -1,236 +0,0 @@ - - - - - - - -SinricPro Library: src/Capabilities/ThermostatController.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
ThermostatController.h
-
-
-
1 #pragma once
-
2 
-
3 #include "../SinricProRequest.h"
-
4 #include "../EventLimiter.h"
-
5 #include "../SinricProStrings.h"
-
6 
-
7 #include "../SinricProNamespace.h"
-
8 namespace SINRICPRO_NAMESPACE {
-
9 
-
10 FSTR(THERMOSTAT, setThermostatMode); // "setThermostatMode"
-
11 FSTR(THERMOSTAT, thermostatMode); // "thermostatMode"
-
12 FSTR(THERMOSTAT, targetTemperature); // "targetTemperature"
-
13 FSTR(THERMOSTAT, temperature); // "temperature"
-
14 FSTR(THERMOSTAT, adjustTargetTemperature); // "adjustTargetTemperature"
-
15 
-
30 using ThermostatModeCallback = std::function<bool(const String &, String &)>;
-
31 
-
46 using SetTargetTemperatureCallback = std::function<bool(const String &, float &)>;
-
47 
-
62 using AdjustTargetTemperatureCallback = std::function<bool(const String &, float &)>;
-
63 
-
64 
-
69 template <typename T>
- -
71  public:
- -
73 
- - - -
77 
-
78  bool sendThermostatModeEvent(String thermostatMode, String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION);
-
79  bool sendTargetTemperatureEvent(float temperature, String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION);
-
80 
-
81  protected:
-
82  bool handleThermostatController(SinricProRequest &request);
-
83 
-
84  private:
-
85  EventLimiter event_limiter_thermostatMode;
-
86  EventLimiter event_limiter_targetTemperature;
-
87  ThermostatModeCallback thermostatModeCallback;
-
88  SetTargetTemperatureCallback targetTemperatureCallback;
-
89  AdjustTargetTemperatureCallback adjustTargetTemperatureCallback;
-
90 };
-
91 
-
92 template <typename T>
- -
94 : event_limiter_thermostatMode(EVENT_LIMIT_STATE)
-
95 , event_limiter_targetTemperature(EVENT_LIMIT_STATE) {
-
96  T* device = static_cast<T*>(this);
-
97  device->registerRequestHandler(std::bind(&ThermostatController<T>::handleThermostatController, this, std::placeholders::_1));
-
98 }
-
99 
-
107 template <typename T>
- -
109  thermostatModeCallback = cb;
-
110 }
-
111 
-
119 template <typename T>
- -
121  targetTemperatureCallback = cb;
-
122 }
-
123 
-
131 template <typename T>
- -
133  adjustTargetTemperatureCallback = cb;
-
134 }
-
135 
-
145 template <typename T>
-
146 bool ThermostatController<T>::sendThermostatModeEvent(String thermostatMode, String cause) {
-
147  if (event_limiter_thermostatMode) return false;
-
148  T* device = static_cast<T*>(this);
-
149 
-
150  DynamicJsonDocument eventMessage = device->prepareEvent(FSTR_THERMOSTAT_setThermostatMode, cause.c_str());
-
151  JsonObject event_value = eventMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_value];
-
152  event_value[FSTR_THERMOSTAT_thermostatMode] = thermostatMode;
-
153  return device->sendEvent(eventMessage);
-
154 }
-
155 
-
165 template <typename T>
-
166 bool ThermostatController<T>::sendTargetTemperatureEvent(float temperature, String cause) {
-
167  if (event_limiter_targetTemperature) return false;
-
168  T* device = static_cast<T*>(this);
-
169 
-
170  DynamicJsonDocument eventMessage = device->prepareEvent(FSTR_THERMOSTAT_targetTemperature, cause.c_str());
-
171  JsonObject event_value = eventMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_value];
-
172  event_value[FSTR_THERMOSTAT_temperature] = roundf(temperature * 10) / 10.0;
-
173  return device->sendEvent(eventMessage);
-
174 }
-
175 
-
176 template <typename T>
-
177 bool ThermostatController<T>::handleThermostatController(SinricProRequest &request) {
-
178  T* device = static_cast<T*>(this);
-
179 
-
180  bool success = false;
-
181 
-
182  if (request.action == FSTR_THERMOSTAT_targetTemperature && targetTemperatureCallback) {
-
183  float temperature;
-
184  if (request.request_value.containsKey(FSTR_THERMOSTAT_temperature)) {
-
185  temperature = request.request_value[FSTR_THERMOSTAT_temperature];
-
186  } else {
-
187  temperature = 1;
-
188  }
-
189  success = targetTemperatureCallback(device->deviceId, temperature);
-
190  request.response_value[FSTR_THERMOSTAT_temperature] = temperature;
-
191  return success;
-
192  }
-
193 
-
194  if (request.action == FSTR_THERMOSTAT_adjustTargetTemperature && adjustTargetTemperatureCallback) {
-
195  float temperatureDelta = request.request_value[FSTR_THERMOSTAT_temperature];
-
196  success = adjustTargetTemperatureCallback(device->deviceId, temperatureDelta);
-
197  request.response_value[FSTR_THERMOSTAT_temperature] = temperatureDelta;
-
198  return success;
-
199  }
-
200 
-
201  if (request.action == FSTR_THERMOSTAT_setThermostatMode && thermostatModeCallback) {
-
202  String thermostatMode = request.request_value[FSTR_THERMOSTAT_thermostatMode] | "";
-
203  success = thermostatModeCallback(device->deviceId, thermostatMode);
-
204  request.response_value[FSTR_THERMOSTAT_thermostatMode] = thermostatMode;
-
205  return success;
-
206  }
-
207 
-
208  return success;
-
209 }
-
210 
-
211 } // SINRICPRO_NAMESPACE
-
212 
-
213 template <typename T>
-
214 using ThermostatController = SINRICPRO_NAMESPACE::ThermostatController<T>;
-
ThermostatController.
Definition: ThermostatController.h:70
-
void onTargetTemperature(SetTargetTemperatureCallback cb)
Set callback function for targetTemperature request.
Definition: ThermostatController.h:120
-
void onThermostatMode(ThermostatModeCallback cb)
Set callback function for setThermostatMode request.
Definition: ThermostatController.h:108
-
bool sendTargetTemperatureEvent(float temperature, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
Send targetTemperature event to report target temperature change.
Definition: ThermostatController.h:166
-
void onAdjustTargetTemperature(AdjustTargetTemperatureCallback cb)
Set callback function for adjustTargetTemperature request.
Definition: ThermostatController.h:132
-
bool sendThermostatModeEvent(String thermostatMode, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
Send thermostatMode event to report a the new mode the device has been set to.
Definition: ThermostatController.h:146
-
std::function< bool(const String &, float &)> SetTargetTemperatureCallback
Callback definition for onTargetTemperature function.
Definition: ThermostatController.h:46
-
std::function< bool(const String &, String &)> ThermostatModeCallback
Callback definition for onThermostatMode function.
Definition: ThermostatController.h:30
-
std::function< bool(const String &, float &)> AdjustTargetTemperatureCallback
Callback definition for onAdjustTargetTemperature function.
Definition: ThermostatController.h:62
-
-
- - - - diff --git a/docs/docs/_toggle_controller_8h_source.html b/docs/docs/_toggle_controller_8h_source.html deleted file mode 100644 index fe9ea28..0000000 --- a/docs/docs/_toggle_controller_8h_source.html +++ /dev/null @@ -1,178 +0,0 @@ - - - - - - - -SinricPro Library: src/Capabilities/ToggleController.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
ToggleController.h
-
-
-
1 #pragma once
-
2 
-
3 #include "../SinricProRequest.h"
-
4 #include "../EventLimiter.h"
-
5 #include "../SinricProStrings.h"
-
6 
-
7 #include "../SinricProNamespace.h"
-
8 namespace SINRICPRO_NAMESPACE {
-
9 
-
10 FSTR(TOGGLE, setToggleState); // "setToggleState"
-
11 FSTR(TOGGLE, state); // "state"
-
12 FSTR(TOGGLE, On); // "On"
-
13 FSTR(TOGGLE, Off); // "Off"
-
14 
-
29 using GenericToggleStateCallback = std::function<bool(const String &, const String&, bool &)>;
-
30 
-
31 
-
36 template <typename T>
- -
38  public:
- -
40 
-
41  void onToggleState(const String& instance, GenericToggleStateCallback cb);
-
42  bool sendToggleStateEvent(const String &instance, bool state, String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION);
-
43 
-
44  protected:
-
45  bool handleToggleController(SinricProRequest &request);
-
46 
-
47  private:
-
48  std::map<String, EventLimiter> event_limiter;
-
49  std::map<String, GenericToggleStateCallback> genericToggleStateCallback;
-
50 };
-
51 
-
52 template <typename T>
- -
54  T* device = static_cast<T*>(this);
-
55  device->registerRequestHandler(std::bind(&ToggleController<T>::handleToggleController, this, std::placeholders::_1));
-
56 }
-
57 
-
66 template <typename T>
- -
68  genericToggleStateCallback[instance] = cb;
-
69 }
-
70 
-
81 template <typename T>
-
82 bool ToggleController<T>::sendToggleStateEvent(const String &instance, bool state, String cause) {
-
83  if (event_limiter.find(instance) == event_limiter.end()) event_limiter[instance] = EventLimiter(EVENT_LIMIT_STATE);
-
84  if (event_limiter[instance]) return false;
-
85 
-
86  T* device = static_cast<T*>(this);
-
87 
-
88  DynamicJsonDocument eventMessage = device->prepareEvent(FSTR_TOGGLE_setToggleState, cause.c_str());
-
89  eventMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_instanceId] = instance;
-
90  JsonObject event_value = eventMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_value];
-
91  event_value[FSTR_TOGGLE_state] = state ? FSTR_TOGGLE_On : FSTR_TOGGLE_Off;
-
92  return device->sendEvent(eventMessage);
-
93 }
-
94 
-
95 template <typename T>
-
96 bool ToggleController<T>::handleToggleController(SinricProRequest &request) {
-
97  T* device = static_cast<T*>(this);
-
98 
-
99  bool success = false;
-
100 
-
101  if (request.action == FSTR_TOGGLE_setToggleState) {
-
102  bool powerState = request.request_value[FSTR_TOGGLE_state] == FSTR_TOGGLE_On ? true : false;
-
103  if (genericToggleStateCallback.find(request.instance) != genericToggleStateCallback.end())
-
104  success = genericToggleStateCallback[request.instance](device->deviceId, request.instance, powerState);
-
105  request.response_value[FSTR_TOGGLE_state] = powerState ? FSTR_TOGGLE_On : FSTR_TOGGLE_Off;
-
106  return success;
-
107  }
-
108  return success;
-
109 }
-
110 
-
111 } // SINRICPRO_NAMESPACE
-
112 
-
113 template <typename T>
-
114 using ToggleController = SINRICPRO_NAMESPACE::ToggleController<T>;
-
ToggleController.
Definition: ToggleController.h:37
-
std::function< bool(const String &, const String &, bool &)> GenericToggleStateCallback
Callback definition for onToggleState function.
Definition: ToggleController.h:29
-
-
- - - - diff --git a/docs/docs/_volume_controller_8h_source.html b/docs/docs/_volume_controller_8h_source.html deleted file mode 100644 index 6f261d4..0000000 --- a/docs/docs/_volume_controller_8h_source.html +++ /dev/null @@ -1,193 +0,0 @@ - - - - - - - -SinricPro Library: src/Capabilities/VolumeController.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
VolumeController.h
-
-
-
1 #pragma once
-
2 
-
3 #include "../SinricProRequest.h"
-
4 #include "../EventLimiter.h"
-
5 #include "../SinricProStrings.h"
-
6 
-
7 #include "../SinricProNamespace.h"
-
8 namespace SINRICPRO_NAMESPACE {
-
9 
-
10 FSTR(VOLUME, setVolume); // "setVolume"
-
11 FSTR(VOLUME, volume); // "volume"
-
12 FSTR(VOLUME, adjustVolume); // "adjustVolume"
-
13 FSTR(VOLUME, volumeDefault); // "volumeDefault"
-
14 
-
29 using SetVolumeCallback = std::function<bool(const String &, int &)>;
-
30 
-
46 using AdjustVolumeCallback = std::function<bool(const String &, int &, bool)>;
-
47 
-
48 
-
53 template <typename T>
- -
55  public:
- -
57 
- - -
60 
-
61  bool sendVolumeEvent(int volume, String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION);
-
62 
-
63  protected:
-
64  bool handleVolumeController(SinricProRequest &request);
-
65 
-
66  private:
-
67  EventLimiter event_limiter;
-
68  SetVolumeCallback volumeCallback;
-
69  AdjustVolumeCallback adjustVolumeCallback;
-
70 };
-
71 
-
72 template <typename T>
- -
74 : event_limiter(EVENT_LIMIT_STATE) {
-
75  T* device = static_cast<T*>(this);
-
76  device->registerRequestHandler(std::bind(&VolumeController<T>::handleVolumeController, this, std::placeholders::_1));
-
77 }
-
78 
-
86 template <typename T>
-
87 void VolumeController<T>::onSetVolume(SetVolumeCallback cb) { volumeCallback = cb; }
-
88 
-
96 template <typename T>
-
97 void VolumeController<T>::onAdjustVolume(AdjustVolumeCallback cb) { adjustVolumeCallback = cb; }
-
98 
-
108 template <typename T>
-
109 bool VolumeController<T>::sendVolumeEvent(int volume, String cause) {
-
110  if (event_limiter) return false;
-
111  T* device = static_cast<T*>(this);
-
112 
-
113  DynamicJsonDocument eventMessage = device->prepareEvent(FSTR_VOLUME_setVolume, cause.c_str());
-
114  JsonObject event_value = eventMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_value];
-
115  event_value[FSTR_VOLUME_volume] = volume;
-
116  return device->sendEvent(eventMessage);
-
117 }
-
118 
-
119 template <typename T>
-
120 bool VolumeController<T>::handleVolumeController(SinricProRequest &request) {
-
121  T* device = static_cast<T*>(this);
-
122 
-
123  bool success = false;
-
124 
-
125  if (volumeCallback && request.action == FSTR_VOLUME_setVolume) {
-
126  int volume = request.request_value[FSTR_VOLUME_volume];
-
127  success = volumeCallback(device->deviceId, volume);
-
128  request.response_value[FSTR_VOLUME_volume] = volume;
-
129  return success;
-
130  }
-
131 
-
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;
-
137  return success;
-
138  }
-
139  return success;
-
140 }
-
141 
-
142 } // SINRICPRO_NAMESPACE
-
143 
-
144 template <typename T>
-
145 using VolumeController = SINRICPRO_NAMESPACE::VolumeController<T>;
-
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
-
-
- - - - diff --git a/docs/docs/annotated.html b/docs/docs/annotated.html deleted file mode 100644 index bef676b..0000000 --- a/docs/docs/annotated.html +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - -SinricPro Library: Class List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
Class List
-
-
-
Here are the classes, structs, unions and interfaces with brief descriptions:
-
[detail level 12]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 NSINRICPRO_2_9_17SinricPro namespace
 CSinricProClassThe main class of this library, handling communication between SinricPro Server and your devices
 CSinricProAirQualitySensorDevice to report air quality events
 CSinricProBlindsDevice to control interior blinds
 CSinricProCameraCamera suporting basic on / off command
 CSinricProContactsensorDevice to report contact sensor events
 CSinricProDeviceBase class for all device types
 CSinricProDimSwitchDevice which supports on / off and dimming commands
 CSinricProDoorbellDevice to report doorbell events
 CSinricProFanDevice to turn on / off a fan and change it's speed by using powerlevel
 CSinricProFanUSDevice to control a fan with on / off commands and its speed by a range value
 CSinricProGarageDoorDevice to control a garage door
 CSinricProLightDevice to control a light
 CSinricProLockDevice to control a smart lock
 CSinricProMotionsensorDevice to report motion detection events
 CSinricProPowerSensorDevice to report power usage
 CSinricProSpeakerDevice to control a smart speaker
 CSinricProSwitchDevice suporting basic on / off command
 CSinricProTemperaturesensorDevice to report actual temperature and humidity
 CSinricProThermostatDevice to control Thermostat
 CSinricProTVDevice to control a TV
 CSinricProWindowACDevice to control Window Air Conditioner
 CAirQualitySensorAirQuality
 CBrightnessControllerBrightnessController
 CChannelControllerChannelController
 CColorControllerColorController
 CColorTemperatureControllerColorTemperatureController
 CContactSensorContactSensor
 CDoorbellDorbell
 CDoorControllerDoorController - only used for GarageDoor device and cannot used as capability for a custom device!
 CEqualizerControllerEqualizerController
 CInputControllerInputController
 CKeypadControllerKeypadController
 CLockControllerLockController
 CMediaControllerMediaController
 CModeControllerModeController
 CMotionSensorMotionSensor
 CMuteControllerMuteController
 CPercentageControllerPercentageController
 CPowerLevelControllerPowerLevelController
 CPowerSensorPowerSensor
 CPowerStateControllerPowerStateController
 CPushNotificationPushNotification
 CRangeControllerRangeControllerFloatInt
 CTemperatureSensorTemperatureSensor
 CThermostatControllerThermostatController
 CToggleControllerToggleController
 CVolumeControllerVolumeController
-
-
-
- - - - diff --git a/docs/docs/annotated_dup.js b/docs/docs/annotated_dup.js deleted file mode 100644 index 8c3af3c..0000000 --- a/docs/docs/annotated_dup.js +++ /dev/null @@ -1,52 +0,0 @@ -var annotated_dup = -[ - [ "SINRICPRO_2_9_17", "namespace_s_i_n_r_i_c_p_r_o__2__9__17.html", [ - [ "SinricProClass", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_class.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_class" ], - [ "SinricProAirQualitySensor", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_air_quality_sensor.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_air_quality_sensor" ], - [ "SinricProBlinds", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds" ], - [ "SinricProCamera", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_camera.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_camera" ], - [ "SinricProContactsensor", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_contactsensor.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_contactsensor" ], - [ "SinricProDevice", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_device.html", null ], - [ "SinricProDimSwitch", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_dim_switch.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_dim_switch" ], - [ "SinricProDoorbell", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_doorbell.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_doorbell" ], - [ "SinricProFan", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan" ], - [ "SinricProFanUS", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s" ], - [ "SinricProGarageDoor", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_garage_door.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_garage_door" ], - [ "SinricProLight", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light" ], - [ "SinricProLock", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_lock.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_lock" ], - [ "SinricProMotionsensor", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_motionsensor.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_motionsensor" ], - [ "SinricProPowerSensor", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_power_sensor.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_power_sensor" ], - [ "SinricProSpeaker", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker" ], - [ "SinricProSwitch", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_switch.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_switch" ], - [ "SinricProTemperaturesensor", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_temperaturesensor.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_temperaturesensor" ], - [ "SinricProThermostat", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat" ], - [ "SinricProTV", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v" ], - [ "SinricProWindowAC", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c" ], - [ "AirQualitySensor", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_air_quality_sensor.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_air_quality_sensor" ], - [ "BrightnessController", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller" ], - [ "ChannelController", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller" ], - [ "ColorController", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_controller.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_controller" ], - [ "ColorTemperatureController", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller" ], - [ "ContactSensor", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_contact_sensor.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_contact_sensor" ], - [ "Doorbell", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_doorbell.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_doorbell" ], - [ "DoorController", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_door_controller.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_door_controller" ], - [ "EqualizerController", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller" ], - [ "InputController", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_input_controller.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_input_controller" ], - [ "KeypadController", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_keypad_controller.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_keypad_controller" ], - [ "LockController", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_lock_controller.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_lock_controller" ], - [ "MediaController", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller" ], - [ "ModeController", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller" ], - [ "MotionSensor", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_motion_sensor.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_motion_sensor" ], - [ "MuteController", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller" ], - [ "PercentageController", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_percentage_controller.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_percentage_controller" ], - [ "PowerLevelController", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller" ], - [ "PowerSensor", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_sensor.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_sensor" ], - [ "PowerStateController", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller" ], - [ "PushNotification", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification" ], - [ "RangeController", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller" ], - [ "TemperatureSensor", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_temperature_sensor.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_temperature_sensor" ], - [ "ThermostatController", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller" ], - [ "ToggleController", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_toggle_controller.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_toggle_controller" ], - [ "VolumeController", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller.html", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller" ] - ] ] -]; \ No newline at end of file diff --git a/docs/docs/bc_s.png b/docs/docs/bc_s.png deleted file mode 100644 index 224b29aa9847d5a4b3902efd602b7ddf7d33e6c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 676 zcmV;V0$crwP)y__>=_9%My z{n931IS})GlGUF8K#6VIbs%684A^L3@%PlP2>_sk`UWPq@f;rU*V%rPy_ekbhXT&s z(GN{DxFv}*vZp`F>S!r||M`I*nOwwKX+BC~3P5N3-)Y{65c;ywYiAh-1*hZcToLHK ztpl1xomJ+Yb}K(cfbJr2=GNOnT!UFA7Vy~fBz8?J>XHsbZoDad^8PxfSa0GDgENZS zuLCEqzb*xWX2CG*b&5IiO#NzrW*;`VC9455M`o1NBh+(k8~`XCEEoC1Ybwf;vr4K3 zg|EB<07?SOqHp9DhLpS&bzgo70I+ghB_#)K7H%AMU3v}xuyQq9&Bm~++VYhF09a+U zl7>n7Jjm$K#b*FONz~fj;I->Bf;ule1prFN9FovcDGBkpg>)O*-}eLnC{6oZHZ$o% zXKW$;0_{8hxHQ>l;_*HATI(`7t#^{$(zLe}h*mqwOc*nRY9=?Sx4OOeVIfI|0V(V2 zBrW#G7Ss9wvzr@>H*`r>zE z+e8bOBgqIgldUJlG(YUDviMB`9+DH8n-s9SXRLyJHO1!=wY^79WYZMTa(wiZ!zP66 zA~!21vmF3H2{ngD;+`6j#~6j;$*f*G_2ZD1E;9(yaw7d-QnSCpK(cR1zU3qU0000< KMNUMnLSTYoA~SLT diff --git a/docs/docs/bdwn.png b/docs/docs/bdwn.png deleted file mode 100644 index 940a0b950443a0bb1b216ac03c45b8a16c955452..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)H!3HEvS)PKZC{Gv1kP61Pb5HX&C2wk~_T - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
AirQualitySensor< T > Member List
-
-
- -

This is the complete list of members for AirQualitySensor< T >, including all inherited members.

- - -
sendAirQualityEvent(int pm1=0, int pm2_5=0, int pm10=0, String cause=FSTR_SINRICPRO_PERIODIC_POLL)AirQualitySensor< T >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_air_quality_sensor.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_air_quality_sensor.html deleted file mode 100644 index d7196c6..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_air_quality_sensor.html +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - -SinricPro Library: AirQualitySensor< T > - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
AirQualitySensor< T >
-
-
- -

AirQuality. - More...

-
-Inheritance diagram for AirQualitySensor< T >:
-
-
Inheritance graph
- - - - - -
[legend]
- - - - - -

-Public Member Functions

bool sendAirQualityEvent (int pm1=0, int pm2_5=0, int pm10=0, String cause=FSTR_SINRICPRO_PERIODIC_POLL)
 Sending air quality to SinricPro server. More...
 
-

Detailed Description

-

template<typename T>
-class SINRICPRO_2_9_17::AirQualitySensor< T >

- -

AirQuality.

-

Member Function Documentation

- -

◆ sendAirQualityEvent()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
bool sendAirQualityEvent (int pm1 = 0,
int pm2_5 = 0,
int pm10 = 0,
String cause = FSTR_SINRICPRO_PERIODIC_POLL 
)
-
- -

Sending air quality to SinricPro server.

-
Parameters
- - - - - -
pm1int 1.0 μm particle pollutant in μg/m3
pm2_5int 2.5 μm particle pollutant in μg/m3
pm10int 10 μm particle pollutant in μg/m3
cause(optional) String reason why event is sent (default = "PERIODIC_POLL")
-
-
-
Returns
the success of sending the event
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_air_quality_sensor.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_air_quality_sensor.js deleted file mode 100644 index 18801b6..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_air_quality_sensor.js +++ /dev/null @@ -1,4 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_air_quality_sensor = -[ - [ "sendAirQualityEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_air_quality_sensor.html#a733195bdc5b15c858e4e890847b3a0d5", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_air_quality_sensor__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_air_quality_sensor__inherit__graph.map deleted file mode 100644 index 8eabc15..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_air_quality_sensor__inherit__graph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_air_quality_sensor__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_air_quality_sensor__inherit__graph.md5 deleted file mode 100644 index 37dcd90..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_air_quality_sensor__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -24d4ddd2c1b31a066e180719de118459 \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_air_quality_sensor__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_air_quality_sensor__inherit__graph.png deleted file mode 100644 index 8ac12b5fee78676a3e07d20cf2bea87684327f1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3493 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 B7A*h( diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller-members.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller-members.html deleted file mode 100644 index c04c1b7..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller-members.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
BrightnessController< T > Member List
-
-
- -

This is the complete list of members for BrightnessController< T >, including all inherited members.

- - - - -
onAdjustBrightness(AdjustBrightnessCallback cb)BrightnessController< T >
onBrightness(BrightnessCallback cb)BrightnessController< T >
sendBrightnessEvent(int brightness, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)BrightnessController< T >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller.html deleted file mode 100644 index a9f2ca9..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller.html +++ /dev/null @@ -1,234 +0,0 @@ - - - - - - - -SinricPro Library: BrightnessController< T > - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
BrightnessController< T >
-
-
- -

BrightnessController. - More...

-
-Inheritance diagram for BrightnessController< T >:
-
-
Inheritance graph
- - - - - -
[legend]
- - - - - - - - - - - -

-Public Member Functions

void onBrightness (BrightnessCallback cb)
 Set callback function for setBrightness request. More...
 
void onAdjustBrightness (AdjustBrightnessCallback cb)
 Set callback function for adjustBrightness request. More...
 
bool sendBrightnessEvent (int brightness, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setBrightness event to SinricPro Server indicating actual brightness. More...
 
-

Detailed Description

-

template<typename T>
-class SINRICPRO_2_9_17::BrightnessController< T >

- -

BrightnessController.

-

Member Function Documentation

- -

◆ onAdjustBrightness()

- -
-
- - - - - - - - -
void onAdjustBrightness (AdjustBrightnessCallback cb)
-
- -

Set callback function for adjustBrightness request.

-
Parameters
- - -
cbFunction pointer to a AdjustBrightnessCallback function
-
-
-
Returns
void
-
See also
AdjustBrightnessCallback
- -
-
- -

◆ onBrightness()

- -
-
- - - - - - - - -
void onBrightness (BrightnessCallback cb)
-
- -

Set callback function for setBrightness request.

-
Parameters
- - -
cbFunction pointer to a BrightnessCallback function
-
-
-
Returns
void
-
See also
BrightnessCallback
- -
-
- -

◆ sendBrightnessEvent()

- -
-
- - - - - - - - - - - - - - - - - - -
bool sendBrightnessEvent (int brightness,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
- -

Send setBrightness event to SinricPro Server indicating actual brightness.

-
Parameters
- - - -
brightnessInteger value with actual brightness the device is set to
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller.js deleted file mode 100644 index 934cb22..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller.js +++ /dev/null @@ -1,6 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller = -[ - [ "onAdjustBrightness", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller.html#a0633e5fa2981189f4a093bab00a8c7f1", null ], - [ "onBrightness", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller.html#abbaab3067b1fcdcc5928451b818a4420", null ], - [ "sendBrightnessEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller.html#a2a96c414210f61de3ce53a4ca8c963b3", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller__inherit__graph.map deleted file mode 100644 index 0c76a10..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller__inherit__graph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller__inherit__graph.md5 deleted file mode 100644 index 9cd11cf..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -1d3eb350fc1bb1cef6cab313c980c14d \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller__inherit__graph.png deleted file mode 100644 index 08e17c72f9e8c43b280e93238896315df9f94dcb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3051 zcmcImc{r3^AD#$hdu?UQ5`{9B8rd02w(Nv5A!Op6F}9GUK?}xE_AG2(%+t7IjRoYF54> zaxoNW<)UsB6j-Pgnx!y_Td5eOM6DFN`K zdUsGJ2Mh*_CvMb0J4vX92&LX#vf*T)|vp5Y_8jJrt)yNvE36NP72cXGMma8djaW!;raHSjGLz39Y>Qj zzQA&?-~6tKs{J_Kd(J1}2Pvbnk0@ zbDth8c2OefQ_kBA2W(jj^sF<_XM%_)kZoSF6XRv8#F6}}zDcuSY&Q8iQPgtgLlJN5 zNbea@FMT}wQxGt@UD#(;xm!LMwQrm{%W6OE=aO5h{ts3g=tpA{o%0|OQ=;|^wFaSzRpPmHijC(I$ zWPMH7uG%zTC^Q}7(s1(OV4DBL)Nx#JH-Mp+cN(C~pEcTuAkl&KUNS&x+(RZB=`65S>UPse>h`)WWLVCi}8&%-5{m#31Jk=4N6S?*q5cJ}>ku^`WctP6c3itwsZ zG1+P8opKb$@L6FP`)nKbEm%;LXhbz{=+gtxZ$q4NHscD;Lvo=sJQ z>m6V(Z(k`^ZV1i272v%A7lGiV>6d^xT?53`^RVx*RCQbEcDu1_ITjPS`8}*7HB_c= z=$0*_K6gu*cR?ce=TaP-LQ$qn_lrZ`Lt&=j9bujpD4+o9-Kb^PI@=GCL%Q7R{tP~gRn2dXwO3zy9U*pB7Pa|vw z^7xW5_c`KHG&8b>98)u~%nsoD7^+1}pyAZ9NC{Rh??l6M0{Tkf_X>(`I~{PvWGr7c z>o@00TR_7Lf)*5NaTALowOZJhmt+$SslwMOd%^w(Ta3VdQQS{%u zUp)AR+}iBuPO!GNeocPV9C)ZirQRhOadi@j7U|{?E;`lr^LUJ;RdRYdj@+XDq32)U zk6u)AZAcCO9(9c>t14(vc`9)W?-nVmrXc6@0WIXk_xO`jxEO)(Fpmesrf?H~j^hm& zLE;Cl80?3N#yXVEL|u!JF+u60nHJ0KZw-$^2vSiwokce__p_ay$*@8Flj7A>$dTsZ?Jm9#@@iHK zkvQ#lO!4N7)>q=6ae8oa8u0c+N9;e)q=N5XazhDm{psv5uN>(cu`e1H!qa)aj*vz_`|BQL0#BW{7n?Q(WL5& zZsDgqU3Kn^#gEY51V>@BLF=q}&OsL!t?Q5!+4Ol4kc7oPcbX8GOTLMsD%@$R80DD) z!ks$r-b!_35--chowpV(73-9{8`vZFL){;1D?9j~vbbM`x;ROHxMT~=`D! zFZSGHM!6K}=QU9*ktWzv#FQxC8rmazI;=NAv-d^u3N1VU~4xLFMlkI>(5yZQ1 ziwaYahwH5f4ET_V)UZQO!L|cs${94*4tA^SCIWCl>nuyKjMCEQ<#vsn&+cZkr>Xc3 z;#7{Dnv8uzNz!&ihi`3B$y;yXzJavLB&f@B=U2Ck@Rk?qJJWUwZsS$t7%L5^mKHz1 z&}4n>wMy`LS9$)$?mO6(Sm+O2Qqn55OMA0wm}CQiv>ViGWP%vqyFdJ{UtTSKda~AQ zb*zengHZlhLJtiqtWE~8Ny6mYt*kDs0GXH2mR4b*3&FMs--q8jCvB%tHx5jFG32jX zR#xS$M+*Vl>MPy{&8x9V#5>T{ciY>$+hF5yB20cVi2D_m=W`jhIrngVy=~eqyDwaQ z_3KtoM&m&%cO5QhGvw`IP*ZVv!&?81p6hl~e%V13r3Z{E+PZeuwC~bGp zw$X#65Y0P`r*Sua-o2{GPtTri!;;D5+}!hz>XhsEC;|%CeU|%kjq)8yOkO2whyV|d zzQpB=m(|qZq^A&J@V|aE?a`_c+wqyuAgn;8j5@6qz?Z zs_y$Ofj5cN>9X$5$L7sDRm|=RZf%$OJGp1&pr=HuZZ7(m8Wn0H#V diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller-members.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller-members.html deleted file mode 100644 index f89ca05..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller-members.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
ChannelController< T > Member List
-
-
- -

This is the complete list of members for ChannelController< T >, including all inherited members.

- - - - - -
onChangeChannel(ChangeChannelCallback cb)ChannelController< T >
onChangeChannelNumber(ChangeChannelNumberCallback cb)ChannelController< T >
onSkipChannels(SkipChannelsCallback cb)ChannelController< T >
sendChangeChannelEvent(String channelName, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)ChannelController< T >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller.html deleted file mode 100644 index c12115c..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller.html +++ /dev/null @@ -1,265 +0,0 @@ - - - - - - - -SinricPro Library: ChannelController< T > - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
ChannelController< T >
-
-
- -

ChannelController. - More...

-
-Inheritance diagram for ChannelController< T >:
-
-
Inheritance graph
- - - - - -
[legend]
- - - - - - - - - - - - - - -

-Public Member Functions

void onChangeChannel (ChangeChannelCallback cb)
 Set callback function for changeChannel request. More...
 
void onChangeChannelNumber (ChangeChannelNumberCallback cb)
 Set callback function for changeChannel request. More...
 
void onSkipChannels (SkipChannelsCallback cb)
 Set callback function for skipChannels request. More...
 
bool sendChangeChannelEvent (String channelName, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send changeChannel event to SinricPro Server to report selected channel. More...
 
-

Detailed Description

-

template<typename T>
-class SINRICPRO_2_9_17::ChannelController< T >

- -

ChannelController.

-

Member Function Documentation

- -

◆ onChangeChannel()

- -
-
- - - - - - - - -
void onChangeChannel (ChangeChannelCallback cb)
-
- -

Set callback function for changeChannel request.

-
Parameters
- - -
cbFunction pointer to a ChangeChannelCallback function
-
-
-
Returns
void
-
See also
ChangeChannelCallback
- -
-
- -

◆ onChangeChannelNumber()

- -
-
- - - - - - - - -
void onChangeChannelNumber (ChangeChannelNumberCallback cb)
-
- -

Set callback function for changeChannel request.

-
Parameters
- - -
cbFunction pointer to a ChangeChannelNumberCallback function
-
-
-
Returns
void
-
See also
ChangeChannelNumberCallback
- -
-
- -

◆ onSkipChannels()

- -
-
- - - - - - - - -
void onSkipChannels (SkipChannelsCallback cb)
-
- -

Set callback function for skipChannels request.

-
Parameters
- - -
cbFunction pointer to a SkipChannelsCallback function
-
-
-
Returns
void
-
See also
SkipChannelsCallback
- -
-
- -

◆ sendChangeChannelEvent()

- -
-
- - - - - - - - - - - - - - - - - - -
bool sendChangeChannelEvent (String channelName,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
- -

Send changeChannel event to SinricPro Server to report selected channel.

-
Parameters
- - - -
channelNameString with actual channel
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller.js deleted file mode 100644 index 58b3714..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller.js +++ /dev/null @@ -1,7 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller = -[ - [ "onChangeChannel", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller.html#a92f3b83744b5bb82d32628eef39c1eb9", null ], - [ "onChangeChannelNumber", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller.html#afd8aee20590bfadec181c6ee515125ec", null ], - [ "onSkipChannels", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller.html#ab1123d03d471fad4896eb2960ed41855", null ], - [ "sendChangeChannelEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller.html#aff5839c3020c3006af1a2a8c37cc858e", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller__inherit__graph.map deleted file mode 100644 index 4b72872..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller__inherit__graph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller__inherit__graph.md5 deleted file mode 100644 index 17df8b3..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -5ae6c9e82ad1c97ebec068662528dc51 \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller__inherit__graph.png deleted file mode 100644 index d5b3822aebe0d46b18200e30605387b2fe14cad2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2855 zcmb7`c{Cf?9>e{1jViqHU5}LeFbFF@38hJoY)6|OW zSsS3{H~B!(24gjw08KnC9%T@h)%Bs$!ofX>KxuY<))^FG0$S^-_TN!Q!7*rDQ352NmFu^(<;SB?%*aRF6jYKXpPqy+B=X86Z9Z4KfuvuXP62xb4ckd)hb=ia=k zeKd#RonU|Ft&vh~sAdph__J&Z zzBbOm(#om^%i0+oJp5(5^ycR%#qC7PU7J9F6@n4uI&;@oadZrW_aO_R-wfSL7cp=uo6IWyL{I;d_d=kD;)lX@`fL7$0l@+HFy-~J9~9? zWtFTlNh>XhRbJP*-`@(>b7i#2%X>ttAK3QeYaQA#Nuc)rhJRBY0TJb=xtUBP$HP2{ z1;O~vt{$h^SgDz8zk1apZi}V)i2_rbv8w8^_}0(JKt>x=Oo?n=o)KYwtpPoO<9wOx zYbNR6`mDZ6npd)_X*d>t-Vx;}iC}C}RsBX1Q;k=bXUI$L(w=dqP=&ulkR}H{1AJ7z zo|(Qn6Y;w&1Qz&Oc!Fx&%wDDKSLfPI%_Eq|$0Je!i6yT;wQ}#E({PF}OX%5=#BHi! z5?Lr!yeC`s1tMrawje-jX`1Z)DXQhMR4|1KNt-d)I%!1S7kWPE>E4g~`ARGas;fKq zX7}w?Tikd?Dco?mgSO%$$^%%4V;jKlhl(aHYaA{UOI^rJ*P3_Gt9UY*$;3lO)?;@-^#_r|IkW zM#DbB2F|?&2SyErmOIw}xO}Q{FOCHRdk&WJtK!-Yi)dFgWwZfvo@#HnWe3x;_nz0Er#luFH)g6FZA#wxm~s~UJoteWg!qoe8xpE41OPiE>-pIdmD!$h zp2IPX;kZsr(Jil~CRD}Gxu4l8Bj727=Cc~~nGMU*Vm|iy{9|t8xqA->l80ga`)jaI zB<1N~LfqTnMcC9C4dg9_9ptBI!J5OP@+X_;Z}Ri26H35q+#ThwN&Uw~bS3vrtMNF| zb4H9SUu4yF@@CV+SkoiDoh2?1`#CfLk*!%9|uYgCre>n$Gb(*)O1zTmz=nNrXAeGh4}qMWi@STRD8xFw#*TZc z1z-6@A+6jA^IK#Jye62q$C~72i)I`-^AG?(G+Dlf1Ow!rjdFUMFuZzNe%Iw-QPb}) z(6?+nLF?Myj$=z_6m-l3DZg9|KB{XRyvk9(62`%(kB}uiWcAg@)-_LS`>njoar(*N z-t|Bg@ejeMkIuVoCp(|}?DE!!Qhy1WGM?|@Ljtv|5HmrpzPJhRJD3FxVPkI(8>+76JpQ@rA?FDZJO+WSVCD9X69!$x!G1$=Tiy84M9SbfU&Qpvln>9& zWQR3wcQyQ)xyMuI83AQish|dv;MI9z{kF(hlnzF#U0L&+IR6VE{z2hyB$DKxIz8R$W3oA_e$_-C<<@0nWob#JQWprqwo4JN0uN{BoSvVO>OS>r$wc~1 zHARW?xtAq3b278Di4At3qs9T2f!`b6tNYJ4NkBFEka+)g-$*IGOlZ65)z$a&`$k1C;H9$NS?=#orK)Jnc?chUNm`81Ke$DZz^} zp@w?Nni$NAPN)aR&N~FWNe|jD?w!wcIlviyH>J#&6!u>FwYx7v;z@}@OAG$;EpzGG zaW1B;_h-p$(2=r~960x4wGT - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
ColorController< T > Member List
-
-
- -

This is the complete list of members for ColorController< T >, including all inherited members.

- - - -
onColor(ColorCallback cb)ColorController< T >
sendColorEvent(byte r, byte g, byte b, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)ColorController< T >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_controller.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_controller.html deleted file mode 100644 index 6f2b656..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_controller.html +++ /dev/null @@ -1,217 +0,0 @@ - - - - - - - -SinricPro Library: ColorController< T > - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
ColorController< T >
-
-
- -

ColorController. - More...

-
-Inheritance diagram for ColorController< T >:
-
-
Inheritance graph
- - - - - -
[legend]
- - - - - - - - -

-Public Member Functions

void onColor (ColorCallback cb)
 Set callback function for setColor request. More...
 
bool sendColorEvent (byte r, byte g, byte b, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setColor event to SinricPro Server indicating actual color. More...
 
-

Detailed Description

-

template<typename T>
-class SINRICPRO_2_9_17::ColorController< T >

- -

ColorController.

-

Member Function Documentation

- -

◆ onColor()

- -
-
- - - - - - - - -
void onColor (ColorCallback cb)
-
- -

Set callback function for setColor request.

-
Parameters
- - -
cbFunction pointer to a ColorCallback function
-
-
-
Returns
void
-
See also
ColorCallback
- -
-
- -

◆ sendColorEvent()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
bool sendColorEvent (byte r,
byte g,
byte b,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
- -

Send setColor event to SinricPro Server indicating actual color.

-
Parameters
- - - - - -
rByte value for red
gByte value for green
bByte value for blue
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_controller.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_controller.js deleted file mode 100644 index 8f7e2ae..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_controller.js +++ /dev/null @@ -1,5 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_controller = -[ - [ "onColor", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_controller.html#a059ff103149869b7c49cdb8911875b7b", null ], - [ "sendColorEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_controller.html#a3599a6d00eb0f9127a7c1188885c5bc0", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_controller__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_controller__inherit__graph.map deleted file mode 100644 index 5f3c253..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_controller__inherit__graph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_controller__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_controller__inherit__graph.md5 deleted file mode 100644 index 3b2fe69..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_controller__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -3851f16c2b5e901f1c01d9fd49fdf6b2 \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_controller__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_controller__inherit__graph.png deleted file mode 100644 index f3783d6f83559557d27bda9d7564757fca30ad93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2844 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 a2DXAeu0K0Bw|iK3nRGM_5JdIgLjD3{6K2i; diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller-members.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller-members.html deleted file mode 100644 index c6adbc9..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller-members.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
ColorTemperatureController< T > Member List
-
-
- -

This is the complete list of members for ColorTemperatureController< T >, including all inherited members.

- - - - - -
onColorTemperature(ColorTemperatureCallback cb)ColorTemperatureController< T >
onDecreaseColorTemperature(DecreaseColorTemperatureCallback cb)ColorTemperatureController< T >
onIncreaseColorTemperature(IncreaseColorTemperatureCallback cb)ColorTemperatureController< T >
sendColorTemperatureEvent(int colorTemperature, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)ColorTemperatureController< T >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller.html deleted file mode 100644 index f7daee7..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller.html +++ /dev/null @@ -1,270 +0,0 @@ - - - - - - - -SinricPro Library: ColorTemperatureController< T > - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
ColorTemperatureController< T >
-
-
- -

ColorTemperatureController. - More...

-
-Inheritance diagram for ColorTemperatureController< T >:
-
-
Inheritance graph
- - - - - -
[legend]
- - - - - - - - - - - - - - -

-Public Member Functions

void onColorTemperature (ColorTemperatureCallback cb)
 Set callback function for setColorTemperature request. More...
 
void onIncreaseColorTemperature (IncreaseColorTemperatureCallback cb)
 Set callback function for increaseColorTemperature request. More...
 
void onDecreaseColorTemperature (DecreaseColorTemperatureCallback cb)
 Set callback function for decreaseColorTemperature request. More...
 
bool sendColorTemperatureEvent (int colorTemperature, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setColorTemperature event to SinricPro Server indicating actual color temperature. More...
 
-

Detailed Description

-

template<typename T>
-class SINRICPRO_2_9_17::ColorTemperatureController< T >

- -

ColorTemperatureController.

-

Member Function Documentation

- -

◆ onColorTemperature()

- -
-
- - - - - - - - -
void onColorTemperature (ColorTemperatureCallback cb)
-
- -

Set callback function for setColorTemperature request.

-
Parameters
- - -
cbFunction pointer to a ColorTemperatureCallback function
-
-
-
Returns
void
-
See also
ColorTemperatureCallback
- -
-
- -

◆ onDecreaseColorTemperature()

- -
-
- - - - - - - - -
void onDecreaseColorTemperature (DecreaseColorTemperatureCallback cb)
-
- -

Set callback function for decreaseColorTemperature request.

-
Parameters
- - -
cbFunction pointer to a DecreaseColorTemperatureCallback function
-
-
-
Returns
void
-
See also
DecreaseColorTemperatureCallback
- -
-
- -

◆ onIncreaseColorTemperature()

- -
-
- - - - - - - - -
void onIncreaseColorTemperature (IncreaseColorTemperatureCallback cb)
-
- -

Set callback function for increaseColorTemperature request.

-
Parameters
- - -
cbFunction pointer to a IncreaseColorTemperatureCallback function
-
-
-
Returns
void
-
See also
IncreaseColorTemperatureCallback
- -
-
- -

◆ sendColorTemperatureEvent()

- -
-
- - - - - - - - - - - - - - - - - - -
bool sendColorTemperatureEvent (int colorTemperature,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
- -

Send setColorTemperature event to SinricPro Server indicating actual color temperature.

-
Parameters
- - - -
colorTemperatureInteger with new color temperature the device is set to
- 2200 = warm white
- 2700 = soft white
- 4000 = white
- 5500 = daylight white
- 7000 = cool white
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller.js deleted file mode 100644 index f174d51..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller.js +++ /dev/null @@ -1,7 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller = -[ - [ "onColorTemperature", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller.html#a8535c44fd2517ed09ebe6a203cc25b67", null ], - [ "onDecreaseColorTemperature", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller.html#a7468976e7fffeee14cc869b7236cbb50", null ], - [ "onIncreaseColorTemperature", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller.html#a7ea9fd9861a5668a41d06267bfbec82a", null ], - [ "sendColorTemperatureEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller.html#a0f90d7f5a5b365116f97beca7630ccc9", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller__inherit__graph.map deleted file mode 100644 index d907845..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller__inherit__graph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller__inherit__graph.md5 deleted file mode 100644 index a554eae..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -98c4d77341d1cf65766fb4a7428965af \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller__inherit__graph.png deleted file mode 100644 index 5679839d7b85014619c47d1a25b64b5a71070d9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3159 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 - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
ContactSensor< T > Member List
-
-
- -

This is the complete list of members for ContactSensor< T >, including all inherited members.

- - -
sendContactEvent(bool detected, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)ContactSensor< T >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_contact_sensor.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_contact_sensor.html deleted file mode 100644 index 8a47374..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_contact_sensor.html +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - -SinricPro Library: ContactSensor< T > - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
ContactSensor< T >
-
-
- -

ContactSensor. - More...

-
-Inheritance diagram for ContactSensor< T >:
-
-
Inheritance graph
- - - - - -
[legend]
- - - - - -

-Public Member Functions

bool sendContactEvent (bool detected, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setContactState event to SinricPro Server indicating actual power state. More...
 
-

Detailed Description

-

template<typename T>
-class SINRICPRO_2_9_17::ContactSensor< T >

- -

ContactSensor.

-

Member Function Documentation

- -

◆ sendContactEvent()

- -
-
- - - - - - - - - - - - - - - - - - -
bool sendContactEvent (bool detected,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
- -

Send setContactState event to SinricPro Server indicating actual power state.

-
Parameters
- - - -
detected[in] booltrue = contact is closed
- [in] false = contact is open
cause[in] String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
true event has been sent successfully
-
-false event has not been sent, maybe you sent to much events in a short distance of time
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_contact_sensor.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_contact_sensor.js deleted file mode 100644 index d248ca3..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_contact_sensor.js +++ /dev/null @@ -1,4 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_contact_sensor = -[ - [ "sendContactEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_contact_sensor.html#a452a4cfa3177d8d8d31c5919e9ccbb19", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_contact_sensor__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_contact_sensor__inherit__graph.map deleted file mode 100644 index 234e78d..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_contact_sensor__inherit__graph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_contact_sensor__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_contact_sensor__inherit__graph.md5 deleted file mode 100644 index 4482bbf..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_contact_sensor__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -f857b47dcf1f2fec091198b27fb24a73 \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_contact_sensor__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_contact_sensor__inherit__graph.png deleted file mode 100644 index 1e2b7cf63de56028c5b9db9ebbe83c86f39af33c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3359 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 diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_door_controller-members.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_door_controller-members.html deleted file mode 100644 index 8b8c366..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_door_controller-members.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
DoorController< T > Member List
-
-
- -

This is the complete list of members for DoorController< T >, including all inherited members.

- - - -
onDoorState(DoorCallback cb)DoorController< T >
sendDoorStateEvent(bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)DoorController< T >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_door_controller.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_door_controller.html deleted file mode 100644 index 65081b1..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_door_controller.html +++ /dev/null @@ -1,204 +0,0 @@ - - - - - - - -SinricPro Library: DoorController< T > - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
DoorController< T >
-
-
- -

DoorController - only used for GarageDoor device and cannot used as capability for a custom device! - More...

-
-Inheritance diagram for DoorController< T >:
-
-
Inheritance graph
- - - - - -
[legend]
- - - - - - - - -

-Public Member Functions

void onDoorState (DoorCallback cb)
 Set callback function for onDoorState request. More...
 
bool sendDoorStateEvent (bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send DoorState event to update actual door state on SinricPro Server. More...
 
-

Detailed Description

-

template<typename T>
-class SINRICPRO_2_9_17::DoorController< T >

- -

DoorController - only used for GarageDoor device and cannot used as capability for a custom device!

-

Member Function Documentation

- -

◆ onDoorState()

- -
-
- - - - - - - - -
void onDoorState (DoorCallback cb)
-
- -

Set callback function for onDoorState request.

-
Parameters
- - -
cbFunction pointer to a onDoorState function
-
-
-
Returns
void
-
See also
DoorStateCallback
- -
-
- -

◆ sendDoorStateEvent()

- -
-
- - - - - - - - - - - - - - - - - - -
bool sendDoorStateEvent (bool state,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
- -

Send DoorState event to update actual door state on SinricPro Server.

-
Parameters
- - - -
statebool true = close
- false = open
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_door_controller.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_door_controller.js deleted file mode 100644 index 8d478a8..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_door_controller.js +++ /dev/null @@ -1,5 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_door_controller = -[ - [ "onDoorState", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_door_controller.html#a6b536531ab89b39f1a48cb107e22185e", null ], - [ "sendDoorStateEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_door_controller.html#a375cda2b0bc05e1a66e3bc29d059d9a7", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_door_controller__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_door_controller__inherit__graph.map deleted file mode 100644 index 6ad0002..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_door_controller__inherit__graph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_door_controller__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_door_controller__inherit__graph.md5 deleted file mode 100644 index 0c887a3..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_door_controller__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -69186c6519947a642fe8730767595d83 \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_door_controller__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_door_controller__inherit__graph.png deleted file mode 100644 index 6331299029c077da67868ff5d3563496b0ab10e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3166 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 diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_doorbell-members.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_doorbell-members.html deleted file mode 100644 index f126c44..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_doorbell-members.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
Doorbell< T > Member List
-
-
- -

This is the complete list of members for Doorbell< T >, including all inherited members.

- - -
sendDoorbellEvent(String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)Doorbell< T >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_doorbell.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_doorbell.html deleted file mode 100644 index 48e70ad..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_doorbell.html +++ /dev/null @@ -1,161 +0,0 @@ - - - - - - - -SinricPro Library: Doorbell< T > - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- - -
- -

Dorbell. - More...

-
-Inheritance diagram for Doorbell< T >:
-
-
Inheritance graph
- - - - - -
[legend]
- - - - - -

-Public Member Functions

bool sendDoorbellEvent (String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send Doorbell event to SinricPro Server indicating someone pressed the doorbell button. More...
 
-

Detailed Description

-

template<typename T>
-class SINRICPRO_2_9_17::Doorbell< T >

- -

Dorbell.

-

Member Function Documentation

- -

◆ sendDoorbellEvent()

- -
-
- - - - - - - - -
bool sendDoorbellEvent (String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION)
-
- -

Send Doorbell event to SinricPro Server indicating someone pressed the doorbell button.

-
Parameters
- - -
causeString (optional) Reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the event
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_doorbell.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_doorbell.js deleted file mode 100644 index 3dc89af..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_doorbell.js +++ /dev/null @@ -1,4 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_doorbell = -[ - [ "sendDoorbellEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_doorbell.html#a168f5a4ddcbf381fd548bf10ee05b272", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_doorbell__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_doorbell__inherit__graph.map deleted file mode 100644 index 2955eb1..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_doorbell__inherit__graph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_doorbell__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_doorbell__inherit__graph.md5 deleted file mode 100644 index 81b23bc..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_doorbell__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -915a5eb8cacb32eabe8e4f007c4a4e6f \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_doorbell__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_doorbell__inherit__graph.png deleted file mode 100644 index 3957050fa0ec5e35d68085f4203ecacd021a550b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2905 zcmcImc{mhW8=r1B6xq7AJK>VJnS?|&wuov7bz{mf$YhzOAz3oU5;1me)-twACd3%V zh_U2~u^Zdaj6sBEtXU%KH{I^~J>S3IbDneF=e+MZ&pFTez32D-qOVw9Jb2*80{{Tv zAmozCFFZTP>+J%3yfN(c4|zPp=WKq_1hD(H<<=6C0RTZ^h>4N4f94#!+w-uSEbUYG zt7~2lRDZg8M%1eS(0V0$Z@RU;YEM0&>3TxynJJjU(ZYaEv4YbZd-u~QFU=y1V^Z?1 zy_)^j%iBLARbR z)zVnN2vBolzNrLoPCs1oE{^_PmniJblOU3ydmjlwBU31nRH3}Xdj3};MdTCU7YIJ8 zWE2Vo4%#3~N=iDXe+K~qfh6;fd6p5-B%a6TL(8KfmviHo$D#?yJ#GSOV?s~&Wh#&# zXl3D}3THTkoDpw!!8L+1r9>G`NCy()6_c3`mzz5xp-gI@&Ow|DXO1)exlxu_z3i~74gAeON^s6`Ooqv@Je zKSRC-#h-fO^a6$N2VaqYnpHZRFfx^3Sd8fNQfZ){Fh*TsPqZKp-sB+B3S``={Y^@d zrQrk0u8H0^r1^9>zO2kuIRieDJpZhzRZ;DpR$XDWjCX2Obboa-l5h!MPAfge>8;e1 z1N&UU|m(vEZ5W?ti?5_RsrSX21E(o^-OF zwk#PM9`3jEtd*d~k+v3r=|6<|aOOpv(@&;#c3O0HchgQh_XbNbIabF0VvF8JCRfv zdX?t@5igl_3-WQe?cW?RyCc8W`CmLxkgX$>*I5r)Gl;$})uBL!2Cnc=8pyV0uBaQB zB*4QNF-7X;+=bd;dU{FSsnvT4(X!Nu zmqra&KKfRk_6weO9Kw!zZu@|J8;%=HB6@UVbqzy;^*m%tqpZFFMtCXxFC6w|z7K-M z1~1`lJdMn zl4a%GLgXn~aL1AEJNg!WZ)@z1w8Z8dENQieGHB!3HJ}4cI(=#XjFM^ zcB5SX$^e4?Y=WfPI9Ik=Q9GiF9zavMW#~KQc^8@HyKo#G<}(vGKVab(SL0CeDn7q5 zl}&8>@F*40d&76&$!kS&LLRou%W;4pBMu6^V~3~ptnjYwc19ajUf9QIMzB7ZK92sG zU@YM3WAsZ)@1eISN4m4P)$E?_jwF1fQ`tp+hdS5+~Er(!!KZ zh^ddV>%F7lv{#NiN7<*+G5_~6S3`GEF*2^79HWH2F8|{X@5@9^KF47A=aMs8c-UTL zaV9e;k32viwgXU`0S}?zs%Owe#i}zg+gq4H<}|Wg#QD1X(6c!+$59{Z%<Q(`b5RN4klU8Hg)Gq<}*Pk%U(|1s@!MZCbYan(2<#ObOyy5O$2p2rZV-Dp&fc_Q#GV zA{7+Bvwkufg^M2!#1fV|W41R#6d=_>o5V+;P*X@tro(Ub`=X0RMFQrld?Q3xeiJn8 zs|ymsIcsis8l|nRkokoV)5pi1#VqVr?I}0 zvH`{{J&clQP&7uhaJkh1wQSo>2lXBvjNb#XMeJP4t;)E*41rdfpo@*LF3a$*O7C-ilcJdF>eV`*z-P5NH9Z@lk4IWI=>n z(;+IOD}cV0t{zenE45o(rY;)`>b;{H?oZxp{v`wc2bh0r zg#SbEofP%K)dYD%Icj(THF&!^@7?g{rlzK$qmR?WMU7__+ms;UypVYkO$nlK$F$_u zM%+Sz_Ayo5eMzER&)|`%O$cBCbi^yl8hv|o}yMyXdO@BEplnm zvDKq|>g+J-&$FQNmo1K)5P=t`1DMY$jhQ12_{;wBeGY#3rG)dbX+%4e-JH`&uoMir z(v`v%!w*9#*{ZtUBSFo)^0i$^flre_)!7 - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
EqualizerController< T > Member List
-
-
- -

This is the complete list of members for EqualizerController< T >, including all inherited members.

- - - - - -
onAdjustBands(AdjustBandsCallback cb)EqualizerController< T >
onResetBands(ResetBandsCallback cb)EqualizerController< T >
onSetBands(SetBandsCallback cb)EqualizerController< T >
sendBandsEvent(String bands, int level, String cause="PHYSICAL_INTERACTION")EqualizerController< T >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller.html deleted file mode 100644 index 432a9d6..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller.html +++ /dev/null @@ -1,273 +0,0 @@ - - - - - - - -SinricPro Library: EqualizerController< T > - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
EqualizerController< T >
-
-
- -

EqualizerController. - More...

-
-Inheritance diagram for EqualizerController< T >:
-
-
Inheritance graph
- - - - - -
[legend]
- - - - - - - - - - - - - - -

-Public Member Functions

void onSetBands (SetBandsCallback cb)
 Set callback function for setBands request. More...
 
void onAdjustBands (AdjustBandsCallback cb)
 Set callback function for adjustBands request. More...
 
void onResetBands (ResetBandsCallback cb)
 Set callback function for resetBands request. More...
 
bool sendBandsEvent (String bands, int level, String cause="PHYSICAL_INTERACTION")
 Send setBands event to SinricPro Server indicating bands level has changed. More...
 
-

Detailed Description

-

template<typename T>
-class SINRICPRO_2_9_17::EqualizerController< T >

- -

EqualizerController.

-

Member Function Documentation

- -

◆ onAdjustBands()

- -
-
- - - - - - - - -
void onAdjustBands (AdjustBandsCallback cb)
-
- -

Set callback function for adjustBands request.

-
Parameters
- - -
cbFunction pointer to a AdjustBandsCallback function
-
-
-
Returns
void
-
See also
AdjustBandsCallback
- -
-
- -

◆ onResetBands()

- -
-
- - - - - - - - -
void onResetBands (ResetBandsCallback cb)
-
- -

Set callback function for resetBands request.

-
Parameters
- - -
cbFunction pointer to a ResetBandsCallback function
-
-
-
Returns
void
-
See also
ResetBandsCallback
- -
-
- -

◆ onSetBands()

- -
-
- - - - - - - - -
void onSetBands (SetBandsCallback cb)
-
- -

Set callback function for setBands request.

-
Parameters
- - -
cbFunction pointer to a SetBandsCallback function
-
-
-
Returns
void
-
See also
SetBandsCallback
- -
-
- -

◆ sendBandsEvent()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
bool sendBandsEvent (String bands,
int level,
String cause = "PHYSICAL_INTERACTION" 
)
-
- -

Send setBands event to SinricPro Server indicating bands level has changed.

-
Parameters
- - - - -
bandsString which bands has changed
- BASS, MIDRANGE, TREBBLE
levelInteger with changed bands level
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller.js deleted file mode 100644 index 0c05b78..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller.js +++ /dev/null @@ -1,7 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller = -[ - [ "onAdjustBands", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller.html#a41a5c1506545c44c2408054a8675c7a8", null ], - [ "onResetBands", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller.html#aa6c3aabc2b442d82ac5456ccaac3f60d", null ], - [ "onSetBands", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller.html#a4aaa7a29394560be7537a86b0304d199", null ], - [ "sendBandsEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller.html#a4ad5674e36d96a73147388251b794c82", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller__inherit__graph.map deleted file mode 100644 index de3171c..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller__inherit__graph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller__inherit__graph.md5 deleted file mode 100644 index 2b96485..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -14bfd4c38ee11b73e6c2c21fbd9634ed \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller__inherit__graph.png deleted file mode 100644 index abb1f4a9105a326f1317e16ea855eff03de0ea94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3176 zcmcgvi8~bB9%hhTBt_YUKGGP*lC?55mTK&SFjPcjCliAR6(u`m?1^GzD`T0_hifNB z*0GyxVJu_DHr?sF_x3G+z3$!&a_%*4baW(2up8Jx9>?)MgjinWEWY?-B)@|T@c zYh_k2E18wGw0w8Y%6L6m-ctO-N-W1llLQkjufZye)Y^wEHszEq=?hvloPWeV|HK#z z;WHBAEHHgCM>CIprOp|xUb1>qTzz!>btW1;fu7i%=%E&zt$U3=?4i2iHSn1el>7WK zQp`>9pkV-$DH8(lqA5K>hAcbX9=v(|Ey32t#z&TIuw!s=kVwq(5GvuJ`Q5#H7m3`Z zZOmZ?BOZSyi5EyQO{| zOaAQ|->tjc0;DWo1%@X&GYkdT16`_gzInA`+I#8d}9dl>ReDQERd+v%DWW@*PgKPmu4 z&wFS=mL1cxC_k0kWP&PAO4`=h@<^q)hYYz`mRIoWBB(Ep$k zj6@NSUE)78^)FS5q%yi@#e-`j`Fcts{MZ%@euP#jxjFOHr2FVi*Pd#*&i2z>FWagT z+muX?B-0-Q16eOQ>2;sk3f{bO{EUbNO@B0P=E230i93i(+4cw#h=gr9f*xOybghOg z%ZSbEY4`57(7Ur9%$!3zhwSkk?2mzQ1-9?HgtntQ-CoVfdn#b- zR5)+J!{yrNB4kSC*K@ft%15MQE=rU6=Y4+(%ipfwaw?pY_$Lp30q|cr<5=@&5&b(= z{;_2ZKmVkEy(yr6g8SroOQlw!a=}0?G&&9wXxZFf0DW6jWdFV$=GHVjo9~e+w0XF& zxDx9SR~)~zterb0&ULW6&!{w8r=DGUu~Zw4@^G24{hZYwDm&&V}= zy$G)N-vK9Qx77%}oGB^rV+#v~F>!UMl7`EIIV2EI5_QZ;q^%itqgXj%uCT(PVY$yZ zRAi#XMYFpdE=H>Faw9|P=>Jl0RL;xmMzJCNP%iwaJB{?}kjZ?(&FtE$q!nFKd64j= zj`g%2h_RxBMD&RHBGq1prp-4-7UxLM~V6|&? zHKE+0UM$ABKp;yuq_sx$OPdD*gQ36a7naG7igK)PoU!9uoT~w*rvum5sZY-GEJYoq z2OjQ;4L@s=IiQffeT&ub`hHB;Zb$9)^Qyb$b*Zek7}LwksjgK5_=$0C8@n;`!FN^( z9g2%^jG|&Xb%!r0`jhum<3mcCqLJj&w>aX+NS*%z&UD1{MR}RCRWAUB!hTeL*&?&E zvjew2FCn^}We6||-6qk)yzj5RV=Syq9+nbzp@&Hk5ec}^^+x6*+ z*Ul4Q5;}+5aC<|R1oB~+wDiNBQAD=RE@9YlKifkpHz5HjN@i#Hpufn$Ph0eV8&>RS z520_|b$0%2T>J_fuyndl|3`-ftR%*@GD-F5CN%^ZS=AaifLY-5HJ_f<06l7W$uhDC$5FOOKMQuauFi&B9L8_GO$;=_Fc1!W!Jcd*JBPPl|E5H<-HDa`l=$Z>h> z`(aJssw9b78EEPCwbY?|p{P>FpgbdViVI3+Wyi%QLQmEwma%p)Xj?1G{b-+}smRq% zC=5AOjUHIc3Tc*F8`k|;>^$ACA?4j8%gJ*0So%tKZHsX=U@ohn+|jYY$`)}xrJyxh zuIpTmFLupH5nhC?CdxwzqE5~h9bZ$8`0Mu$odY&Cg=PP6y#vP!hqeBJZbc})a>8qz zmt$Zts6IJ48DnJ`?Skm-?H%Lg0AGW_>eEbxO4sw5CL?$M^bSAi{ezvm{@CVMEx%e4m - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
InputController< T > Member List
-
-
- -

This is the complete list of members for InputController< T >, including all inherited members.

- - - -
onSelectInput(SelectInputCallback cb)InputController< T >
sendSelectInputEvent(String intput, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)InputController< T >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_input_controller.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_input_controller.html deleted file mode 100644 index d965518..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_input_controller.html +++ /dev/null @@ -1,206 +0,0 @@ - - - - - - - -SinricPro Library: InputController< T > - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
InputController< T >
-
-
- -

InputController. - More...

-
-Inheritance diagram for InputController< T >:
-
-
Inheritance graph
- - - - - - - -
[legend]
- - - - - - - - -

-Public Member Functions

void onSelectInput (SelectInputCallback cb)
 Set callback function for selectInput request. More...
 
bool sendSelectInputEvent (String intput, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send selectInput event to SinricPro Server to report selected input. More...
 
-

Detailed Description

-

template<typename T>
-class SINRICPRO_2_9_17::InputController< T >

- -

InputController.

-

Member Function Documentation

- -

◆ onSelectInput()

- -
-
- - - - - - - - -
void onSelectInput (SelectInputCallback cb)
-
- -

Set callback function for selectInput request.

-
Parameters
- - -
cbFunction pointer to a SelectInputCallback function
-
-
-
Returns
void
-
See also
SelectInputCallback
- -
-
- -

◆ sendSelectInputEvent()

- -
-
- - - - - - - - - - - - - - - - - - -
bool sendSelectInputEvent (String input,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
- -

Send selectInput event to SinricPro Server to report selected input.

-
Parameters
- - - -
inputString with actual media control
- AUX 1..AUX 7, BLURAY, CABLE, CD, COAX 1,COAX 2, COMPOSITE 1, DVD, GAME, HD RADIO, HDMI 1.. HDMI 10, HDMI ARC, INPUT 1..INPUT 10, IPOD, LINE 1..LINE 7, MEDIA PLAYER, OPTICAL 1, OPTICAL 2, PHONO, PLAYSTATION, PLAYSTATION 3, PLAYSTATION 4, SATELLITE, SMARTCAST, TUNER, TV, USB DAC, VIDEO 1..VIDEO 3, XBOX
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_input_controller.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_input_controller.js deleted file mode 100644 index 34f540f..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_input_controller.js +++ /dev/null @@ -1,5 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_input_controller = -[ - [ "onSelectInput", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_input_controller.html#a18f8f71ecf0d7292a63d9486f94e5180", null ], - [ "sendSelectInputEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_input_controller.html#a973241ac912a18b142d236dda7f80e97", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_input_controller__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_input_controller__inherit__graph.map deleted file mode 100644 index 974d79c..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_input_controller__inherit__graph.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_input_controller__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_input_controller__inherit__graph.md5 deleted file mode 100644 index a8a6220..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_input_controller__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -9451755f1dbee2bf379dfb66669d2ac6 \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_input_controller__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_input_controller__inherit__graph.png deleted file mode 100644 index bd8365a1ccda8fefa22b4067614e5be0eb7d03eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5946 zcmd5=i91{0n-4`>Mb%zg)m}?cQA=u9B({oBwAR)Vgi=B+(W<3d(uk!>QA_M<4XrI* zsG_>0_6Yq_CDvL)B22!&nP+CcGxG<`bD!sP&pG#;d(Qow`@Zk_ys6i0Ex0*FIRO9w zH`vk)3IMQVGs_bvIGDKDT9?bbad=xtHiuSk#MEavVlHqM&cX zZrzkMQI?mF)$61^YmcJc$(znsyoGkm?9J5jU)-6$7dh<`EeBBvi^!^&6*PG9>4UvH z#c;ti8@Cp0?R{THQCJ!)_d6qn_sj`QkR;{`Knxp%L@pfqD_Hw>#6(A<$b`Z*YE6Lh zb4o=BHT2;9S$h;g#z#XwzkOw_9GQ7i$`j%FAEd)l7v*8JwXD%oZtW@-O-7Os(V|% zCwPus82QyJOT#d&c0afSaS(9JTi>(+1Yy;ih*5ghQ1s5{#~Pl z_mt*PpnE;Vy)!@)-}4tt}EMc93M5KobgBjZ_p�%Aq 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 WUEggetj|n_1He~p&0d*!Cj1-PBA4g@ diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_keypad_controller-members.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_keypad_controller-members.html deleted file mode 100644 index 305fdfb..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_keypad_controller-members.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
KeypadController< T > Member List
-
-
- -

This is the complete list of members for KeypadController< T >, including all inherited members.

- - -
onKeystroke(KeystrokeCallback cb)KeypadController< T >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_keypad_controller.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_keypad_controller.html deleted file mode 100644 index 6ce4a63..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_keypad_controller.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -SinricPro Library: KeypadController< T > - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
KeypadController< T >
-
-
- -

KeypadController. - More...

- - - - - -

-Public Member Functions

void onKeystroke (KeystrokeCallback cb)
 Set callback function for sendKeystroke request. More...
 
-

Detailed Description

-

template<typename T>
-class SINRICPRO_2_9_17::KeypadController< T >

- -

KeypadController.

-

Member Function Documentation

- -

◆ onKeystroke()

- -
-
- - - - - - - - -
void onKeystroke (KeystrokeCallback cb)
-
- -

Set callback function for sendKeystroke request.

-
Parameters
- - -
cbFunction pointer to a KeystrokeCallback function
-
-
-
Returns
void
-
See also
KeystrokeCallback
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_keypad_controller.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_keypad_controller.js deleted file mode 100644 index 20997c3..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_keypad_controller.js +++ /dev/null @@ -1,4 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_keypad_controller = -[ - [ "onKeystroke", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_keypad_controller.html#ab24b4858dcc69145a367e964c2ae7961", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_lock_controller-members.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_lock_controller-members.html deleted file mode 100644 index 71cd9fb..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_lock_controller-members.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
LockController< T > Member List
-
-
- -

This is the complete list of members for LockController< T >, including all inherited members.

- - - -
onLockState(LockStateCallback cb)LockController< T >
sendLockStateEvent(bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)LockController< T >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_lock_controller.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_lock_controller.html deleted file mode 100644 index 332a100..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_lock_controller.html +++ /dev/null @@ -1,204 +0,0 @@ - - - - - - - -SinricPro Library: LockController< T > - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
LockController< T >
-
-
- -

LockController. - More...

-
-Inheritance diagram for LockController< T >:
-
-
Inheritance graph
- - - - - -
[legend]
- - - - - - - - -

-Public Member Functions

void onLockState (LockStateCallback cb)
 Set callback function for setLockState request. More...
 
bool sendLockStateEvent (bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send lockState event to SinricPro Server indicating actual lock state. More...
 
-

Detailed Description

-

template<typename T>
-class SINRICPRO_2_9_17::LockController< T >

- -

LockController.

-

Member Function Documentation

- -

◆ onLockState()

- -
-
- - - - - - - - -
void onLockState (LockStateCallback cb)
-
- -

Set callback function for setLockState request.

-
Parameters
- - -
cbFunction pointer to a LockStateCallback function
-
-
-
Returns
void
-
See also
LockStateCallback
- -
-
- -

◆ sendLockStateEvent()

- -
-
- - - - - - - - - - - - - - - - - - -
bool sendLockStateEvent (bool state,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
- -

Send lockState event to SinricPro Server indicating actual lock state.

-
Parameters
- - - -
statetrue = device is locked
- false = device is unlocked
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_lock_controller.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_lock_controller.js deleted file mode 100644 index 38f2895..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_lock_controller.js +++ /dev/null @@ -1,5 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_lock_controller = -[ - [ "onLockState", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_lock_controller.html#aee42cc397234a454fd353ca6bc12a859", null ], - [ "sendLockStateEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_lock_controller.html#a8fb3fec204da21e69d05f89a9ecb4739", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_lock_controller__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_lock_controller__inherit__graph.map deleted file mode 100644 index f9987a7..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_lock_controller__inherit__graph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_lock_controller__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_lock_controller__inherit__graph.md5 deleted file mode 100644 index 1df4bc4..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_lock_controller__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -c42564b32798b1585a1f6317008dc039 \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_lock_controller__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_lock_controller__inherit__graph.png deleted file mode 100644 index 4507a2bf6050224cb5bd2539d3791f2c6628e7d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2815 zcma);2{aUH8^@)ty+oF{M8=wI$vT7Em`Ik8B_yPbNSMYp%qWApC6aYA%w?K15w0am z+3G4wGh?5OEoKZ8S+fn(eCmGPd;7lgo%5adyzg_)`=0kb?|Gj8^Lw6O9UZLq3dsub z@bK)lIR$avv80_jB*43~ieLa$JBII~tu=&)`*r-*Se(JbBUEhzIpGqG{WRJdIy@-P zzo?)UEdLjY&%WLW*@oApjQt|OInnn_%cx-T3kKFw4=$7K zQt1tBfz9|WR`NRWLT$tpWh$?QOK2v!*Vu72+3ItgRFK-%D(c zQ6}Bv(vEAzfCYHfhca2bzDkPFmR%;h_qEG}=zzF4K}-|1nKumv1%qUPqt2@P6kzlk0Z z`II{_;95dv5SCp7xsnDqH8$$GyyRhl8yV zP;VLq{Qg{im13~Svi&I(hZY(mA;TSMt+uVxX>eqj%;U<=9Bw_ zuH(eEsybd0FmIzk!e(uS)1&d?1Yxw-Pb(6&Fc_fc)uid^ki%!K@6687I*%acEr8*Z zd*+2J?He!DPJhuad21iW2ji2wum9l&b{9WG#Q2;0e|C}w>3S#ReLi2@7*0>lj!fAa zs=%v3> zJf`K9iim2;TnKI+J5>LKuPuc%j?cNw6`ffOU2kgK1U}ryGT<=JOk@I3^6lkv^OU#DYQLpdJh(?s%( z45~u-*wqLXPZ8}&4ucFNr3F}k(%)*&$2d82&J z4iF%d0Y_JTu>;gqJ1~ysE6Cr85q~?|uXC$k`pidLu@!w+jH+G3K~SUXf@#dMX(HXj zF#LLHV#nE3?d`$J=Lc#-szI!W9p0h}S=wi`L`?bs6Of|~;AQZYV8N|ppYOAu-@X!t-@DOj`C06eV6SHHHOrOI8aBqzy11;Gnud!&JGLS{;2hDsQDHPL!otC zmOle2+Auobc30Xy>mnKt`4kyTf50+*X9AybeCF0SUM3J|n8yYl)U-eq6wpE&1n^8I z6C$X*Ku;Kl*q2)2ot(RJao^+km1Hqvl;2-cggZGX%*oE~FWPSm;|DV|q#8p57duF` z3n9_t!Eu8bnOgLK8I1Vc!qt2Rc(E+;UhYLEs3jRt?*jAV#jR%MV6enF z9>6U`oBt&+EhWt{auPW10&>~V%p3J04lLuuynq5v+G9X>$)b-|#u+x@fy_g-m6Pvi zI!DX!{ZhvwBx)Uw$Dh2Q>tWkl^DHt3Cgol|Ib!J7`*f_bI^9mIFg5b zv~!&K<`67jY9#qD4z-f7k}vn@4!ZB3V+4>}4BI^p8GpEZxd)jl@`$RHp%b9$vr#k6 zn>D4X4n-`SKg~I*w#RQ|B!f;?0W{CZSs#Fdx|I7kCB_8=Fqz@Ja31{XSZiIqHF9HR zK|-hIP>yjdNRv(`e1LHzfg}<(D{5Mtfet_LCjjy zakbWH{5*<9Sio6ugZpZ}g3-*@Hn?CKx!5{-ZM})*c^-}ZGy^wpL~#oC7dbDH^Irrt z$Waxc!0a6E1)`l;&)V8=1D^WcsloTF9^}QbW-`7_vnwlyZ2x{X#rw(5@ckVT&&Z=ET@Njl^*=NLXYts7s zXmjMJGU9^~G`5FEV>6kryI%!GATIv|&8I0st1FKk3*5Jg;1CF!!^67)D)rFb>w^oT zZf<2se5Asy_2#R!+%}&F8LDQ`g=Q{=U$p6gxyv)RF{HF*@u7@@stE#@#p+!2AviBJ z&#&`OQ+&AW*(R2(_Xp zP}^4d7^@yZs?+{OCnc}N4-1o$GeY}B7f8$P;v^k6J%)JU!WIfCYkCGJF-VfOvcYSq zd0>Hfer3w<$!UDIUMA|fvjfw!&&E3Gyz^UQrYQ02vc5R_s3VWhy8vp^<5cx8U5X*c z_3TEEW#7w9oaluvY`@zaRZJ8h?;QyUC3pIVQ5{Y_Et-=z!k4cq`C}(NPCgF7PuWoI z<`ElDR;rH2UbkAhDKHOiOX?jIU%NJQcr`?lV%upxQ9)8p&1(_;v$gxN_W4sOp3kz0 zWpACn<&mEENz@xy--_!p<)d4&J~ diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller-members.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller-members.html deleted file mode 100644 index 7db287d..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller-members.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
MediaController< T > Member List
-
-
- -

This is the complete list of members for MediaController< T >, including all inherited members.

- - - -
onMediaControl(MediaControlCallback cb)MediaController< T >
sendMediaControlEvent(String mediaControl, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)MediaController< T >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller.html deleted file mode 100644 index ad6dd48..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller.html +++ /dev/null @@ -1,206 +0,0 @@ - - - - - - - -SinricPro Library: MediaController< T > - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
MediaController< T >
-
-
- -

MediaController. - More...

-
-Inheritance diagram for MediaController< T >:
-
-
Inheritance graph
- - - - - - - -
[legend]
- - - - - - - - -

-Public Member Functions

void onMediaControl (MediaControlCallback cb)
 Set callback function for mediaControl request. More...
 
bool sendMediaControlEvent (String mediaControl, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send mediaControl event to SinricPro Server indicating devices media control state. More...
 
-

Detailed Description

-

template<typename T>
-class SINRICPRO_2_9_17::MediaController< T >

- -

MediaController.

-

Member Function Documentation

- -

◆ onMediaControl()

- -
-
- - - - - - - - -
void onMediaControl (MediaControlCallback cb)
-
- -

Set callback function for mediaControl request.

-
Parameters
- - -
cbFunction pointer to a MediaControlCallback function
-
-
-
Returns
void
-
See also
MediaControlCallback
- -
-
- -

◆ sendMediaControlEvent()

- -
-
- - - - - - - - - - - - - - - - - - -
bool sendMediaControlEvent (String mediaControl,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
- -

Send mediaControl event to SinricPro Server indicating devices media control state.

-
Parameters
- - - -
mediaControlString with actual media control
- FastForward, Next, Pause, Play, Previous, Rewind, StartOver, Stop
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller.js deleted file mode 100644 index 47ee29f..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller.js +++ /dev/null @@ -1,5 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller = -[ - [ "onMediaControl", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller.html#afc2620621377fff928737b5a8a537020", null ], - [ "sendMediaControlEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller.html#a7af593cbf79d38f6b90efb5afee45077", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller__inherit__graph.map deleted file mode 100644 index 46c183f..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller__inherit__graph.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller__inherit__graph.md5 deleted file mode 100644 index 187bc12..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -d66f57966a65523a98010f0da1690ab7 \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller__inherit__graph.png deleted file mode 100644 index af7c74a7bd513933e36bb6f6155a2dfbbc5409b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5545 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 i9qj)<<>LbY diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller-members.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller-members.html deleted file mode 100644 index 6cb18d4..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller-members.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
ModeController< T > Member List
-
-
- -

This is the complete list of members for ModeController< T >, including all inherited members.

- - - - - -
onSetMode(ModeCallback cb)ModeController< T >
onSetMode(const String &instance, GenericModeCallback cb)ModeController< T >
sendModeEvent(String mode, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)ModeController< T >
sendModeEvent(String instance, String mode, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)ModeController< T >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller.html deleted file mode 100644 index 9f72629..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller.html +++ /dev/null @@ -1,302 +0,0 @@ - - - - - - - -SinricPro Library: ModeController< T > - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
ModeController< T >
-
-
- -

ModeController. - More...

-
-Inheritance diagram for ModeController< T >:
-
-
Inheritance graph
- - - - - -
[legend]
- - - - - - - - - - - - - - -

-Public Member Functions

void onSetMode (ModeCallback cb)
 Set callback function for setMode request. More...
 
void onSetMode (const String &instance, GenericModeCallback cb)
 Set callback function for setMode request on a specific instance. More...
 
bool sendModeEvent (String mode, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setMode event to SinricPro Server indicating the mode has changed. More...
 
bool sendModeEvent (String instance, String mode, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setMode event to SinricPro Server indicating the mode on a specific instance has changed. More...
 
-

Detailed Description

-

template<typename T>
-class SINRICPRO_2_9_17::ModeController< T >

- -

ModeController.

-

Member Function Documentation

- -

◆ onSetMode() [1/2]

- -
-
- - - - - - - - - - - - - - - - - - -
void onSetMode (const String & instance,
GenericModeCallback cb 
)
-
- -

Set callback function for setMode request on a specific instance.

-
Parameters
- - - -
instanceString with instance name
cbFunction pointer to a ModeCallback function
-
-
-
Returns
void
-
See also
ModeCallback
- -
-
- -

◆ onSetMode() [2/2]

- -
-
- - - - - - - - -
void onSetMode (ModeCallback cb)
-
- -

Set callback function for setMode request.

-
Parameters
- - -
cbFunction pointer to a ModeCallback function
-
-
-
Returns
void
-
See also
ModeCallback
- -
-
- -

◆ sendModeEvent() [1/2]

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
bool sendModeEvent (String instance,
String mode,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
- -

Send setMode event to SinricPro Server indicating the mode on a specific instance has changed.

-
Parameters
- - - - -
instanceString instance name
modeString with actual mode device is set to
- MOVIE, MUSIC, NIGHT, SPORT, TV
cause(optional) String reason why event is sent (default = FSTR_SINRICPRO_PHYSICAL_INTERACTION)
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendModeEvent() [2/2]

- -
-
- - - - - - - - - - - - - - - - - - -
bool sendModeEvent (String mode,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
- -

Send setMode event to SinricPro Server indicating the mode has changed.

-
Parameters
- - - -
modeString with actual mode device is set to
- MOVIE, MUSIC, NIGHT, SPORT, TV
cause(optional) String reason why event is sent (default = FSTR_SINRICPRO_PHYSICAL_INTERACTION)
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller.js deleted file mode 100644 index ecb14a6..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller.js +++ /dev/null @@ -1,7 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller = -[ - [ "onSetMode", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller.html#a6b15ba168b3a673b98da43ac5e4ef76c", null ], - [ "onSetMode", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller.html#ada087c948c3ab923bdb7818daa6b2b79", null ], - [ "sendModeEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller.html#a7c84d5c26f2ded88e4941313015f7f4c", null ], - [ "sendModeEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller.html#a41f8465e89d147c08ab8cbc6839d34da", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller__inherit__graph.map deleted file mode 100644 index e1109eb..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller__inherit__graph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller__inherit__graph.md5 deleted file mode 100644 index cb99e92..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -d715eea5bc66c2ceab85231472252f8d \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller__inherit__graph.png deleted file mode 100644 index 398a2bd85a3805236777d6af24b4d43232c2c69c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3094 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 - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
MotionSensor< T > Member List
-
-
- -

This is the complete list of members for MotionSensor< T >, including all inherited members.

- - -
sendMotionEvent(bool detected, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)MotionSensor< T >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_motion_sensor.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_motion_sensor.html deleted file mode 100644 index 667fecc..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_motion_sensor.html +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - - -SinricPro Library: MotionSensor< T > - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
MotionSensor< T >
-
-
- -

MotionSensor. - More...

-
-Inheritance diagram for MotionSensor< T >:
-
-
Inheritance graph
- - - - - -
[legend]
- - - - - -

-Public Member Functions

bool sendMotionEvent (bool detected, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Sending motion detection state to SinricPro server. More...
 
-

Detailed Description

-

template<typename T>
-class SINRICPRO_2_9_17::MotionSensor< T >

- -

MotionSensor.

-

Member Function Documentation

- -

◆ sendMotionEvent()

- -
-
- - - - - - - - - - - - - - - - - - -
bool sendMotionEvent (bool detected,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
- -

Sending motion detection state to SinricPro server.

-
Parameters
- - - -
detectedbool true if motion has been detected
- 'false' if no motion has been detected
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the event
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_motion_sensor.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_motion_sensor.js deleted file mode 100644 index 748af27..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_motion_sensor.js +++ /dev/null @@ -1,4 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_motion_sensor = -[ - [ "sendMotionEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_motion_sensor.html#a9be024aa2bb70f0146a02dd1b79d3faa", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_motion_sensor__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_motion_sensor__inherit__graph.map deleted file mode 100644 index 8769797..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_motion_sensor__inherit__graph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_motion_sensor__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_motion_sensor__inherit__graph.md5 deleted file mode 100644 index d62dc1f..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_motion_sensor__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -32ac1aa145bf01628456a19abde00ccb \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_motion_sensor__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_motion_sensor__inherit__graph.png deleted file mode 100644 index dc2746198feb4d88babd4525627d66fe3ceb3363..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3205 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 L(!rwI%rox4o?r~F diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller-members.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller-members.html deleted file mode 100644 index b245ff9..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller-members.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
MuteController< T > Member List
-
-
- -

This is the complete list of members for MuteController< T >, including all inherited members.

- - - -
onMute(MuteCallback cb)MuteController< T >
sendMuteEvent(bool mute, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)MuteController< T >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller.html deleted file mode 100644 index 47e684a..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller.html +++ /dev/null @@ -1,206 +0,0 @@ - - - - - - - -SinricPro Library: MuteController< T > - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
MuteController< T >
-
-
- -

MuteController. - More...

-
-Inheritance diagram for MuteController< T >:
-
-
Inheritance graph
- - - - - - - -
[legend]
- - - - - - - - -

-Public Member Functions

void onMute (MuteCallback cb)
 Set callback function for setMute request. More...
 
bool sendMuteEvent (bool mute, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setMute event to SinricPro Server indicating actual mute state. More...
 
-

Detailed Description

-

template<typename T>
-class SINRICPRO_2_9_17::MuteController< T >

- -

MuteController.

-

Member Function Documentation

- -

◆ onMute()

- -
-
- - - - - - - - -
void onMute (MuteCallback cb)
-
- -

Set callback function for setMute request.

-
Parameters
- - -
cbFunction pointer to a MuteCallback function
-
-
-
Returns
void
-
See also
MuteCallback
- -
-
- -

◆ sendMuteEvent()

- -
-
- - - - - - - - - - - - - - - - - - -
bool sendMuteEvent (bool mute,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
- -

Send setMute event to SinricPro Server indicating actual mute state.

-
Parameters
- - - -
mutetrue = device is muted on
- false = device is unmuted
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller.js deleted file mode 100644 index d90753a..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller.js +++ /dev/null @@ -1,5 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller = -[ - [ "onMute", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller.html#ab5fc79cc8903c3ccc1c106abf61d7cfd", null ], - [ "sendMuteEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller.html#a4717d892b64a14052712152924bd5b29", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller__inherit__graph.map deleted file mode 100644 index 8ee89e1..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller__inherit__graph.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller__inherit__graph.md5 deleted file mode 100644 index c3c7d29..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -6c6f8ac144604497830876893f2c829a \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller__inherit__graph.png deleted file mode 100644 index 4a1fb6c46279cb4434b7843e26661910ce5b5214..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5996 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 - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
PercentageController< T > Member List
-
-
- -

This is the complete list of members for PercentageController< T >, including all inherited members.

- - - - -
onAdjustPercentage(AdjustPercentageCallback cb)PercentageController< T >
onSetPercentage(SetPercentageCallback cb)PercentageController< T >
sendSetPercentageEvent(int percentage, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)PercentageController< T >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_percentage_controller.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_percentage_controller.html deleted file mode 100644 index a5f7724..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_percentage_controller.html +++ /dev/null @@ -1,224 +0,0 @@ - - - - - - - -SinricPro Library: PercentageController< T > - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
PercentageController< T >
-
-
- -

PercentageController. - More...

- - - - - - - - - - - -

-Public Member Functions

void onSetPercentage (SetPercentageCallback cb)
 Set callback function for setPercentage request. More...
 
void onAdjustPercentage (AdjustPercentageCallback cb)
 Set callback function for adjustPercentage request. More...
 
bool sendSetPercentageEvent (int percentage, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setPercentage event to SinricPro Server indicating actual percentage has changed. More...
 
-

Detailed Description

-

template<typename T>
-class SINRICPRO_2_9_17::PercentageController< T >

- -

PercentageController.

-

Member Function Documentation

- -

◆ onAdjustPercentage()

- -
-
- - - - - - - - -
void onAdjustPercentage (AdjustPercentageCallback cb)
-
- -

Set callback function for adjustPercentage request.

-
Parameters
- - -
cbFunction pointer to a AdjustPercentageCallback function
-
-
-
Returns
void
-
See also
AdjustPercentageCallback
- -
-
- -

◆ onSetPercentage()

- -
-
- - - - - - - - -
void onSetPercentage (SetPercentageCallback cb)
-
- -

Set callback function for setPercentage request.

-
Parameters
- - -
cbFunction pointer to a SetPercentageCallback function
-
-
-
Returns
void
-
See also
SetPercentageCallback
- -
-
- -

◆ sendSetPercentageEvent()

- -
-
- - - - - - - - - - - - - - - - - - -
bool sendSetPercentageEvent (int percentage,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
- -

Send setPercentage event to SinricPro Server indicating actual percentage has changed.

-
Parameters
- - - -
percentageInteger reporting the percentage that the device have been set to
cause(optional) Reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the event
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_percentage_controller.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_percentage_controller.js deleted file mode 100644 index d807fe0..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_percentage_controller.js +++ /dev/null @@ -1,6 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_percentage_controller = -[ - [ "onAdjustPercentage", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_percentage_controller.html#a77ac70c4880e38dae4f640dceaeb2816", null ], - [ "onSetPercentage", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_percentage_controller.html#aeef432df118679c689ccd8a48d47dc3d", null ], - [ "sendSetPercentageEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_percentage_controller.html#adf688c12e451e52b05670f150bdabcc8", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller-members.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller-members.html deleted file mode 100644 index 4508867..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller-members.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
PowerLevelController< T > Member List
-
-
- -

This is the complete list of members for PowerLevelController< T >, including all inherited members.

- - - - -
onAdjustPowerLevel(AdjustPowerLevelCallback cb)PowerLevelController< T >
onPowerLevel(SetPowerLevelCallback cb)PowerLevelController< T >
sendPowerLevelEvent(int powerLevel, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)PowerLevelController< T >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller.html deleted file mode 100644 index 30b7089..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller.html +++ /dev/null @@ -1,234 +0,0 @@ - - - - - - - -SinricPro Library: PowerLevelController< T > - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
PowerLevelController< T >
-
-
- -

PowerLevelController. - More...

-
-Inheritance diagram for PowerLevelController< T >:
-
-
Inheritance graph
- - - - - - - -
[legend]
- - - - - - - - - - - -

-Public Member Functions

void onPowerLevel (SetPowerLevelCallback cb)
 Set callback function for setPowerLevel request. More...
 
void onAdjustPowerLevel (AdjustPowerLevelCallback cb)
 Set callback function for adjustPowerLevel request. More...
 
bool sendPowerLevelEvent (int powerLevel, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setPowerLevel event to SinricPro Server indicating actual power level. More...
 
-

Detailed Description

-

template<typename T>
-class SINRICPRO_2_9_17::PowerLevelController< T >

- -

PowerLevelController.

-

Member Function Documentation

- -

◆ onAdjustPowerLevel()

- -
-
- - - - - - - - -
void onAdjustPowerLevel (AdjustPowerLevelCallback cb)
-
- -

Set callback function for adjustPowerLevel request.

-
Parameters
- - -
cbFunction pointer to a AdjustPowerLevelCallback function
-
-
-
See also
AdjustPowerLevelCallback
- -
-
- -

◆ onPowerLevel()

- -
-
- - - - - - - - -
void onPowerLevel (SetPowerLevelCallback cb)
-
- -

Set callback function for setPowerLevel request.

-
Parameters
- - -
cbFunction pointer to a SetPowerLevelCallback function
-
-
-
See also
SetPowerLevelCallback
- -
-
- -

◆ sendPowerLevelEvent()

- -
-
- - - - - - - - - - - - - - - - - - -
bool sendPowerLevelEvent (int powerLevel,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
- -

Send setPowerLevel event to SinricPro Server indicating actual power level.

-
Parameters
- - - -
powerLevelinteger 0..100 report the powerlevel that the device have been set to
cause(optional) Reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the event
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller.js deleted file mode 100644 index 5e394f8..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller.js +++ /dev/null @@ -1,6 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller = -[ - [ "onAdjustPowerLevel", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller.html#a13b10bdb1844babe4de320fff9172d96", null ], - [ "onPowerLevel", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller.html#a0685d34694badb4442fed6b69b69b366", null ], - [ "sendPowerLevelEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller.html#a2f1f88c7b4d9503bfcfe5557c5e55ed4", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller__inherit__graph.map deleted file mode 100644 index 4240f31..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller__inherit__graph.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller__inherit__graph.md5 deleted file mode 100644 index 664884b..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -c233ed108e129704740e67893ec3abde \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller__inherit__graph.png deleted file mode 100644 index 61f7314856ec8802fcb17dfe18253e6c9976c04f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4936 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 dFYvl#`FVCL(V*452;Uk5Xg<iM{TG%4nfm|$ diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_sensor-members.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_sensor-members.html deleted file mode 100644 index 1f442e5..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_sensor-members.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
PowerSensor< T > Member List
-
-
- -

This is the complete list of members for PowerSensor< T >, including all inherited members.

- - -
sendPowerSensorEvent(float voltage, float current, float power=-1.0f, float apparentPower=-1.0f, float reactivePower=-1.0f, float factor=-1.0f, String cause=FSTR_SINRICPRO_PERIODIC_POLL)PowerSensor< T >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_sensor.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_sensor.html deleted file mode 100644 index 1e3a3a5..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_sensor.html +++ /dev/null @@ -1,208 +0,0 @@ - - - - - - - -SinricPro Library: PowerSensor< T > - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
PowerSensor< T >
-
-
- -

PowerSensor. - More...

-
-Inheritance diagram for PowerSensor< T >:
-
-
Inheritance graph
- - - - - -
[legend]
- - - - - -

-Public Member Functions

bool sendPowerSensorEvent (float voltage, float current, float power=-1.0f, float apparentPower=-1.0f, float reactivePower=-1.0f, float factor=-1.0f, String cause=FSTR_SINRICPRO_PERIODIC_POLL)
 Send PowerSensor event to SinricPro Server. More...
 
-

Detailed Description

-

template<typename T>
-class SINRICPRO_2_9_17::PowerSensor< T >

- -

PowerSensor.

-

Member Function Documentation

- -

◆ sendPowerSensorEvent()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
bool sendPowerSensorEvent (float voltage,
float current,
float power = -1.0f,
float apparentPower = -1.0f,
float reactivePower = -1.0f,
float factor = -1.0f,
String cause = FSTR_SINRICPRO_PERIODIC_POLL 
)
-
- -

Send PowerSensor event to SinricPro Server.

-
Parameters
- - - - - - - - -
voltagefloat voltage
currentfloat current
powerfloat (optional) if not provided, it is calculated automaticly (power = voltage * current)
apparentPowerfloat (optional) if not provided it is set to -1
reactivePowerfloat (optional) if not provided it is set to -1
factorfloat (optional) if not provided it is set to -1
- if apparentPower is provided, factor is calculated automaticly (factor = power / apparentPower)
causeString (optional) Reason why event is sent (default = "PERIODIC_POLL")
-
-
-
Returns
the success of sending the event
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_sensor.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_sensor.js deleted file mode 100644 index 2d40b16..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_sensor.js +++ /dev/null @@ -1,4 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_sensor = -[ - [ "sendPowerSensorEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_sensor.html#aec04692842ae1953973503f6be6d9afc", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_sensor__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_sensor__inherit__graph.map deleted file mode 100644 index 4e7d9cf..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_sensor__inherit__graph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_sensor__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_sensor__inherit__graph.md5 deleted file mode 100644 index f1a2e7a..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_sensor__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -28fda791566a60fb78ea6806a36d8689 \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_sensor__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_sensor__inherit__graph.png deleted file mode 100644 index 97c27e8c00ccd273eaf0cc76bb1eec08fd0e28f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3091 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 m#dM==diR{2{0v0A9W4zJL$bSLKJ}yWA diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller-members.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller-members.html deleted file mode 100644 index 5121c2c..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller-members.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
PowerStateController< T > Member List
-
-
- -

This is the complete list of members for PowerStateController< T >, including all inherited members.

- - - -
onPowerState(PowerStateCallback cb)PowerStateController< T >
sendPowerStateEvent(bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)PowerStateController< T >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html deleted file mode 100644 index e3a5529..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html +++ /dev/null @@ -1,236 +0,0 @@ - - - - - - - -SinricPro Library: PowerStateController< T > - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
PowerStateController< T >
-
-
- -

PowerStateController. - More...

-
-Inheritance diagram for PowerStateController< T >:
-
-
Inheritance graph
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[legend]
- - - - - - - - -

-Public Member Functions

void onPowerState (PowerStateCallback cb)
 Set callback function for powerState request. More...
 
bool sendPowerStateEvent (bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setPowerState event to SinricPro Server indicating actual power state. More...
 
-

Detailed Description

-

template<typename T>
-class SINRICPRO_2_9_17::PowerStateController< T >

- -

PowerStateController.

-

Member Function Documentation

- -

◆ onPowerState()

- -
-
- - - - - - - - -
void onPowerState (PowerStateCallback cb)
-
- -

Set callback function for powerState request.

-
Parameters
- - -
cbFunction pointer to a PowerStateCallback function
-
-
-
Returns
void
-
See also
PowerStateCallback
- -
-
- -

◆ sendPowerStateEvent()

- -
-
- - - - - - - - - - - - - - - - - - -
bool sendPowerStateEvent (bool state,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
- -

Send setPowerState event to SinricPro Server indicating actual power state.

-
Parameters
- - - -
statetrue = device turned on
- false = device turned off
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.js deleted file mode 100644 index 150c583..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.js +++ /dev/null @@ -1,5 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller = -[ - [ "onPowerState", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html#a32f3257da431a1035f23a265ff0cc4cf", null ], - [ "sendPowerStateEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html#acfd5f3a30933ace93751bd823630cded", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller__inherit__graph.map deleted file mode 100644 index 249d8a8..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller__inherit__graph.map +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller__inherit__graph.md5 deleted file mode 100644 index e59f4c8..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -5f9bdb31653014b83e2e1c3e651aa881 \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller__inherit__graph.png deleted file mode 100644 index b9261d885570b73798e43a551c6ed3e4e1815e12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 80229 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°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≥wNXL@yHYRPtRduu0&C7}LVT7`^nO%miG% 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%0DBL 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 diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification-members.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification-members.html deleted file mode 100644 index a39b783..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification-members.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
PushNotification< T > Member List
-
-
- -

This is the complete list of members for PushNotification< T >, including all inherited members.

- - -
sendPushNotification(String notification)PushNotification< T >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html deleted file mode 100644 index be4fe6a..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html +++ /dev/null @@ -1,197 +0,0 @@ - - - - - - - -SinricPro Library: PushNotification< T > - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
PushNotification< T >
-
-
- -

PushNotification. - More...

-
-Inheritance diagram for PushNotification< T >:
-
-
Inheritance graph
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[legend]
- - - - - -

-Public Member Functions

bool sendPushNotification (String notification)
 Sending push notifications to SinricPro App. More...
 
-

Detailed Description

-

template<typename T>
-class SINRICPRO_2_9_17::PushNotification< T >

- -

PushNotification.

-

Member Function Documentation

- -

◆ sendPushNotification()

- -
-
- - - - - - - - -
bool sendPushNotification (String notification)
-
- -

Sending push notifications to SinricPro App.

-
Parameters
- - -
notificationString with the notification
-
-
-
Returns
the success of sending the event
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.js deleted file mode 100644 index 83bd104..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.js +++ /dev/null @@ -1,4 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification = -[ - [ "sendPushNotification", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html#a04266791a4b23e9614b8773edb5f67b6", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification__inherit__graph.map deleted file mode 100644 index c5f8303..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification__inherit__graph.map +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification__inherit__graph.md5 deleted file mode 100644 index da15abc..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -d5a4700769dfa94c7127e808b5dfa94e \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification__inherit__graph.png deleted file mode 100644 index e73c5fcb9da205c006ab7732c760a71b69411ca6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 82078 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

7b* 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 z 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 - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -

-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
RangeController< T > Member List
-
-
- -

This is the complete list of members for RangeController< T >, including all inherited members.

- - - - - - -
onAdjustRangeValue(AdjustRangeValueCallback cb)RangeController< T >
onRangeValue(SetRangeValueCallback cb)RangeController< T >
onRangeValue(const String &instance, GenericSetRangeValueCallback_int cb)RangeController< T >
sendRangeValueEvent(int rangeValue, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)RangeController< T >
sendRangeValueEvent(const String &instance, int rangeValue, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)RangeController< T >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller.html deleted file mode 100644 index d506a41..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller.html +++ /dev/null @@ -1,332 +0,0 @@ - - - - - - - -SinricPro Library: RangeController< T > - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
RangeController< T >
-
-
- -

RangeControllerFloatInt. - More...

-
-Inheritance diagram for RangeController< T >:
-
-
Inheritance graph
- - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - -

-Public Member Functions

void onRangeValue (SetRangeValueCallback cb)
 Set callback function for setRangeValue request. More...
 
void onRangeValue (const String &instance, GenericSetRangeValueCallback_int cb)
 Set callback function for setRangeValue request on a specific instance (custom device) More...
 
void onAdjustRangeValue (AdjustRangeValueCallback cb)
 Set callback function for adjustRangeValue request. More...
 
bool sendRangeValueEvent (int rangeValue, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send rangeValue event to report curent rangeValue to SinricPro server. More...
 
bool sendRangeValueEvent (const String &instance, int rangeValue, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send rangeValue event to report curent rangeValue to SinricPro server for a specific instance (custom device) More...
 
-

Detailed Description

-

template<typename T>
-class SINRICPRO_2_9_17::RangeController< T >

- -

RangeControllerFloatInt.

-

Member Function Documentation

- -

◆ onAdjustRangeValue()

- -
-
- - - - - - - - -
void onAdjustRangeValue (AdjustRangeValueCallback cb)
-
- -

Set callback function for adjustRangeValue request.

-
Parameters
- - -
cbFunction pointer to a AdjustRangeValueCallback function
-
-
-
See also
AdjustRangeValueCallback
- -
-
- -

◆ onRangeValue() [1/2]

- -
-
- - - - - - - - - - - - - - - - - - -
void onRangeValue (const String & instance,
GenericSetRangeValueCallback_int cb 
)
-
- -

Set callback function for setRangeValue request on a specific instance (custom device)

-
Parameters
- - - -
instanceString instance name (custom device)
cbFunction pointer to a GenericSetRangeValueCallback function
-
-
-
See also
GenericSetRangeValueCallback
- -
-
- -

◆ onRangeValue() [2/2]

- -
-
- - - - - - - - -
void onRangeValue (SetRangeValueCallback cb)
-
- -

Set callback function for setRangeValue request.

-
Parameters
- - -
cbFunction pointer to a SetRangeValueCallback function
-
-
-
See also
SetRangeValueCallback
- -
-
- -

◆ sendRangeValueEvent() [1/2]

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
bool sendRangeValueEvent (const String & instance,
int rangeValue,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
- -

Send rangeValue event to report curent rangeValue to SinricPro server for a specific instance (custom device)

-
Parameters
- - - - -
instanceString instance name
rangeValueValue between 0..3
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendRangeValueEvent() [2/2]

- -
-
- - - - - - - - - - - - - - - - - - -
bool sendRangeValueEvent (int rangeValue,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
- -

Send rangeValue event to report curent rangeValue to SinricPro server.

-
Parameters
- - - -
rangeValueValue between 0..3
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller.js deleted file mode 100644 index a598644..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller.js +++ /dev/null @@ -1,8 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller = -[ - [ "onAdjustRangeValue", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller.html#ae85696d55112ae7343f9807faee6e064", null ], - [ "onRangeValue", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller.html#a6d6d8070b49c8b5272460836a1120b33", null ], - [ "onRangeValue", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller.html#a94adbcdf6ce61cb6552a5f9915e705ae", null ], - [ "sendRangeValueEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller.html#aaf84aa417e2246843a27e819898e64b5", null ], - [ "sendRangeValueEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller.html#a1d726751c416fe6dd408e5dd19f6b53b", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller__inherit__graph.map deleted file mode 100644 index 8561b4d..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller__inherit__graph.map +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller__inherit__graph.md5 deleted file mode 100644 index 6008a60..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -12a9803ff4fa3ceba60e1b5c18870792 \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller__inherit__graph.png deleted file mode 100644 index 0d723d3d0b7233762d0c9a93cbccdaf0ff210378..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8889 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 - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProAirQualitySensor Member List
-
-
- -

This is the complete list of members for SinricProAirQualitySensor, including all inherited members.

- - - - - -
onPowerState(PowerStateCallback cb)PowerStateController< SinricProAirQualitySensor >
sendAirQualityEvent(int pm1=0, int pm2_5=0, int pm10=0, String cause=FSTR_SINRICPRO_PERIODIC_POLL)AirQualitySensor< SinricProAirQualitySensor >
sendPowerStateEvent(bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)PowerStateController< SinricProAirQualitySensor >
sendPushNotification(String notification)PushNotification< SinricProAirQualitySensor >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_air_quality_sensor.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_air_quality_sensor.html deleted file mode 100644 index bbc65a2..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_air_quality_sensor.html +++ /dev/null @@ -1,337 +0,0 @@ - - - - - - - -SinricPro Library: SinricProAirQualitySensor - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
SinricProAirQualitySensor
-
-
- -

Device to report air quality events. - More...

-
-Inheritance diagram for SinricProAirQualitySensor:
-
-
Inheritance graph
- - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - -

-Public Member Functions

bool sendPushNotification (String notification)
 Sending push notifications to SinricPro App. More...
 
void onPowerState (PowerStateCallback cb)
 Set callback function for powerState request. More...
 
bool sendPowerStateEvent (bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setPowerState event to SinricPro Server indicating actual power state. More...
 
bool sendAirQualityEvent (int pm1=0, int pm2_5=0, int pm10=0, String cause=FSTR_SINRICPRO_PERIODIC_POLL)
 Sending air quality to SinricPro server. More...
 
-

Detailed Description

-

Device to report air quality events.

-

Member Function Documentation

- -

◆ onPowerState()

- -
-
- - - - - -
- - - - - - - - -
void onPowerState (PowerStateCallback cb)
-
-inherited
-
- -

Set callback function for powerState request.

-
Parameters
- - -
cbFunction pointer to a PowerStateCallback function
-
-
-
Returns
void
-
See also
PowerStateCallback
- -
-
- -

◆ sendAirQualityEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
bool sendAirQualityEvent (int pm1 = 0,
int pm2_5 = 0,
int pm10 = 0,
String cause = FSTR_SINRICPRO_PERIODIC_POLL 
)
-
-inherited
-
- -

Sending air quality to SinricPro server.

-
Parameters
- - - - - -
pm1int 1.0 μm particle pollutant in μg/m3
pm2_5int 2.5 μm particle pollutant in μg/m3
pm10int 10 μm particle pollutant in μg/m3
cause(optional) String reason why event is sent (default = "PERIODIC_POLL")
-
-
-
Returns
the success of sending the event
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendPowerStateEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendPowerStateEvent (bool state,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send setPowerState event to SinricPro Server indicating actual power state.

-
Parameters
- - - -
statetrue = device turned on
- false = device turned off
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendPushNotification()

- -
-
- - - - - -
- - - - - - - - -
bool sendPushNotification (String notification)
-
-inherited
-
- -

Sending push notifications to SinricPro App.

-
Parameters
- - -
notificationString with the notification
-
-
-
Returns
the success of sending the event
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_air_quality_sensor.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_air_quality_sensor.js deleted file mode 100644 index 403f17d..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_air_quality_sensor.js +++ /dev/null @@ -1,7 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_air_quality_sensor = -[ - [ "onPowerState", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_air_quality_sensor.html#a32f3257da431a1035f23a265ff0cc4cf", null ], - [ "sendAirQualityEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_air_quality_sensor.html#a733195bdc5b15c858e4e890847b3a0d5", null ], - [ "sendPowerStateEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_air_quality_sensor.html#acfd5f3a30933ace93751bd823630cded", null ], - [ "sendPushNotification", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_air_quality_sensor.html#a04266791a4b23e9614b8773edb5f67b6", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_air_quality_sensor__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_air_quality_sensor__inherit__graph.map deleted file mode 100644 index 8c77022..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_air_quality_sensor__inherit__graph.map +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_air_quality_sensor__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_air_quality_sensor__inherit__graph.md5 deleted file mode 100644 index 7b1db56..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_air_quality_sensor__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -1f8bd60d3d0ad21e716749b4204f0e19 \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_air_quality_sensor__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_air_quality_sensor__inherit__graph.png deleted file mode 100644 index 3683d3295f4568c201469f8d8f98f0225e20630c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12928 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 S@OKq4T>h=fn-VGG!2b*8`4F)H diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds-members.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds-members.html deleted file mode 100644 index 1b8d084..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds-members.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProBlinds Member List
-
-
- -

This is the complete list of members for SinricProBlinds, including all inherited members.

- - - - - - - - - -
onAdjustRangeValue(AdjustRangeValueCallback cb)RangeController< SinricProBlinds >
onPowerState(PowerStateCallback cb)PowerStateController< SinricProBlinds >
onRangeValue(SetRangeValueCallback cb)RangeController< SinricProBlinds >
onRangeValue(const String &instance, GenericSetRangeValueCallback_int cb)RangeController< SinricProBlinds >
sendPowerStateEvent(bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)PowerStateController< SinricProBlinds >
sendPushNotification(String notification)PushNotification< SinricProBlinds >
sendRangeValueEvent(int rangeValue, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)RangeController< SinricProBlinds >
sendRangeValueEvent(const String &instance, int rangeValue, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)RangeController< SinricProBlinds >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds.html deleted file mode 100644 index b6bda6a..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds.html +++ /dev/null @@ -1,516 +0,0 @@ - - - - - - - -SinricPro Library: SinricProBlinds - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
SinricProBlinds
-
-
- -

Device to control interior blinds. - More...

-
-Inheritance diagram for SinricProBlinds:
-
-
Inheritance graph
- - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

bool sendPushNotification (String notification)
 Sending push notifications to SinricPro App. More...
 
void onPowerState (PowerStateCallback cb)
 Set callback function for powerState request. More...
 
bool sendPowerStateEvent (bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setPowerState event to SinricPro Server indicating actual power state. More...
 
void onRangeValue (SetRangeValueCallback cb)
 Set callback function for setRangeValue request. More...
 
void onRangeValue (const String &instance, GenericSetRangeValueCallback_int cb)
 Set callback function for setRangeValue request on a specific instance (custom device) More...
 
void onAdjustRangeValue (AdjustRangeValueCallback cb)
 Set callback function for adjustRangeValue request. More...
 
bool sendRangeValueEvent (int rangeValue, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send rangeValue event to report curent rangeValue to SinricPro server. More...
 
bool sendRangeValueEvent (const String &instance, int rangeValue, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send rangeValue event to report curent rangeValue to SinricPro server for a specific instance (custom device) More...
 
-

Detailed Description

-

Device to control interior blinds.

-

Supporting

    -
  • On / Off
  • -
  • Position (0..100)
  • -
  • open / close
  • -
-

Member Function Documentation

- -

◆ onAdjustRangeValue()

- -
-
- - - - - -
- - - - - - - - -
void onAdjustRangeValue (AdjustRangeValueCallback cb)
-
-inherited
-
- -

Set callback function for adjustRangeValue request.

-
Parameters
- - -
cbFunction pointer to a AdjustRangeValueCallback function
-
-
-
See also
AdjustRangeValueCallback
- -
-
- -

◆ onPowerState()

- -
-
- - - - - -
- - - - - - - - -
void onPowerState (PowerStateCallback cb)
-
-inherited
-
- -

Set callback function for powerState request.

-
Parameters
- - -
cbFunction pointer to a PowerStateCallback function
-
-
-
Returns
void
-
See also
PowerStateCallback
- -
-
- -

◆ onRangeValue() [1/2]

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void onRangeValue (const String & instance,
GenericSetRangeValueCallback_int cb 
)
-
-inherited
-
- -

Set callback function for setRangeValue request on a specific instance (custom device)

-
Parameters
- - - -
instanceString instance name (custom device)
cbFunction pointer to a GenericSetRangeValueCallback function
-
-
-
See also
GenericSetRangeValueCallback
- -
-
- -

◆ onRangeValue() [2/2]

- -
-
- - - - - -
- - - - - - - - -
void onRangeValue (SetRangeValueCallback cb)
-
-inherited
-
- -

Set callback function for setRangeValue request.

-
Parameters
- - -
cbFunction pointer to a SetRangeValueCallback function
-
-
-
See also
SetRangeValueCallback
- -
-
- -

◆ sendPowerStateEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendPowerStateEvent (bool state,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send setPowerState event to SinricPro Server indicating actual power state.

-
Parameters
- - - -
statetrue = device turned on
- false = device turned off
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendPushNotification()

- -
-
- - - - - -
- - - - - - - - -
bool sendPushNotification (String notification)
-
-inherited
-
- -

Sending push notifications to SinricPro App.

-
Parameters
- - -
notificationString with the notification
-
-
-
Returns
the success of sending the event
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendRangeValueEvent() [1/2]

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
bool sendRangeValueEvent (const String & instance,
int rangeValue,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send rangeValue event to report curent rangeValue to SinricPro server for a specific instance (custom device)

-
Parameters
- - - - -
instanceString instance name
rangeValueValue between 0..3
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendRangeValueEvent() [2/2]

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendRangeValueEvent (int rangeValue,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send rangeValue event to report curent rangeValue to SinricPro server.

-
Parameters
- - - -
rangeValueValue between 0..3
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds.js deleted file mode 100644 index 914d8b8..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds.js +++ /dev/null @@ -1,11 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds = -[ - [ "onAdjustRangeValue", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds.html#ae85696d55112ae7343f9807faee6e064", null ], - [ "onPowerState", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds.html#a32f3257da431a1035f23a265ff0cc4cf", null ], - [ "onRangeValue", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds.html#a6d6d8070b49c8b5272460836a1120b33", null ], - [ "onRangeValue", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds.html#a94adbcdf6ce61cb6552a5f9915e705ae", null ], - [ "sendPowerStateEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds.html#acfd5f3a30933ace93751bd823630cded", null ], - [ "sendPushNotification", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds.html#a04266791a4b23e9614b8773edb5f67b6", null ], - [ "sendRangeValueEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds.html#aaf84aa417e2246843a27e819898e64b5", null ], - [ "sendRangeValueEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds.html#a1d726751c416fe6dd408e5dd19f6b53b", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds__inherit__graph.map deleted file mode 100644 index 06b50ff..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds__inherit__graph.map +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds__inherit__graph.md5 deleted file mode 100644 index 5f33464..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -e947be21c47a1d3b38d6ca7862801539 \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds__inherit__graph.png deleted file mode 100644 index d9fa2865e4cfcd0b2bcf35a58d107a299bed8f32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11279 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 a>>DzTUq=KMHzm86&!{Owlu8v}1^h4N44@bQ diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_camera-members.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_camera-members.html deleted file mode 100644 index 988ddef..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_camera-members.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProCamera Member List
-
-
- -

This is the complete list of members for SinricProCamera, including all inherited members.

- - - - -
onPowerState(PowerStateCallback cb)PowerStateController< SinricProCamera >
sendPowerStateEvent(bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)PowerStateController< SinricProCamera >
sendPushNotification(String notification)PushNotification< SinricProCamera >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_camera.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_camera.html deleted file mode 100644 index 669a0d1..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_camera.html +++ /dev/null @@ -1,265 +0,0 @@ - - - - - - - -SinricPro Library: SinricProCamera - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
SinricProCamera
-
-
- -

Camera suporting basic on / off command. - More...

-
-Inheritance diagram for SinricProCamera:
-
-
Inheritance graph
- - - - - - - - -
[legend]
- - - - - - - - - - - -

-Public Member Functions

bool sendPushNotification (String notification)
 Sending push notifications to SinricPro App. More...
 
void onPowerState (PowerStateCallback cb)
 Set callback function for powerState request. More...
 
bool sendPowerStateEvent (bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setPowerState event to SinricPro Server indicating actual power state. More...
 
-

Detailed Description

-

Camera suporting basic on / off command.

-

Member Function Documentation

- -

◆ onPowerState()

- -
-
- - - - - -
- - - - - - - - -
void onPowerState (PowerStateCallback cb)
-
-inherited
-
- -

Set callback function for powerState request.

-
Parameters
- - -
cbFunction pointer to a PowerStateCallback function
-
-
-
Returns
void
-
See also
PowerStateCallback
- -
-
- -

◆ sendPowerStateEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendPowerStateEvent (bool state,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send setPowerState event to SinricPro Server indicating actual power state.

-
Parameters
- - - -
statetrue = device turned on
- false = device turned off
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendPushNotification()

- -
-
- - - - - -
- - - - - - - - -
bool sendPushNotification (String notification)
-
-inherited
-
- -

Sending push notifications to SinricPro App.

-
Parameters
- - -
notificationString with the notification
-
-
-
Returns
the success of sending the event
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_camera.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_camera.js deleted file mode 100644 index b86ad26..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_camera.js +++ /dev/null @@ -1,6 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_camera = -[ - [ "onPowerState", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_camera.html#a32f3257da431a1035f23a265ff0cc4cf", null ], - [ "sendPowerStateEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_camera.html#acfd5f3a30933ace93751bd823630cded", null ], - [ "sendPushNotification", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_camera.html#a04266791a4b23e9614b8773edb5f67b6", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_camera__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_camera__inherit__graph.map deleted file mode 100644 index 15b469c..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_camera__inherit__graph.map +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_camera__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_camera__inherit__graph.md5 deleted file mode 100644 index 0a24077..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_camera__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -4c920623f54e169bdb01204952790115 \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_camera__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_camera__inherit__graph.png deleted file mode 100644 index 8fd72e879db343053846c2084fcec50c64a0efb4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7990 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 Y14Yl%>o4BJ4f>{f_l>kG?>&9}UlR1cBme*a diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_class-members.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_class-members.html deleted file mode 100644 index fbb3547..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_class-members.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProClass Member List
-
-
- -

This is the complete list of members for SinricProClass, including all inherited members.

- - - - - - - - -
begin(String appKey, String appSecret, String serverURL="ws.sinric.pro")SinricProClass
getTimestamp() overrideSinricProClass
handle()SinricProClass
onConnected(ConnectedCallbackHandler cb)SinricProClass
onDisconnected(DisconnectedCallbackHandler cb)SinricProClass
operator[](const String deviceId)SinricProClass
restoreDeviceStates(bool flag)SinricProClass
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_class.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_class.html deleted file mode 100644 index ea63ba5..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_class.html +++ /dev/null @@ -1,371 +0,0 @@ - - - - - - - -SinricPro Library: SinricProClass - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
SinricProClass
-
-
- -

The main class of this library, handling communication between SinricPro Server and your devices. - More...

- -

Inherits SinricProInterface.

- - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

void begin (String appKey, String appSecret, String serverURL="ws.sinric.pro")
 Initializing SinricProClass to be able to connect to SinricPro Server. More...
 
void handle ()
 Handles communication between device and SinricPro Server. More...
 
void onConnected (ConnectedCallbackHandler cb)
 Set callback function for websocket connected event. More...
 
void onDisconnected (DisconnectedCallbackHandler cb)
 Set callback function for websocket disconnected event. More...
 
void restoreDeviceStates (bool flag)
 Enable / disable restore device states function. More...
 
unsigned long getTimestamp () override
 Get the current timestamp. More...
 
proxy operator[] (const String deviceId)
 operator[] is used tor create a new device instance or get an existing device instance More...
 
-

Detailed Description

-

The main class of this library, handling communication between SinricPro Server and your devices.

-

Member Function Documentation

- -

◆ begin()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
void begin (String appKey,
String appSecret,
String serverURL = "ws.sinric.pro" 
)
-
- -

Initializing SinricProClass to be able to connect to SinricPro Server.

-
Parameters
- - - - -
appKeyString containing APP_KEY (see credentials from https://sinric.pro )
appSecretString containing APP_SECRET (see credentials from https:://sinric.pro)
serverURLString containing SinricPro Server URL (default="ws.sinric.pro")
-
-
-

-Example-Code

-
#define APP_KEY "YOUR-APP-KEY" // Should look like "de0bxxxx-1x3x-4x3x-ax2x-5dabxxxxxxxx"
-
#define APP_SECRET "YOUR-APP-SECRET" // Should look like "5f36xxxx-x3x7-4x3x-xexe-e86724a9xxxx-4c4axxxx-3x3x-x5xe-x9x3-333d65xxxxxx"
-
-
void setup() {
-
SinricPro.begin(APP_KEY, APP_SECRET);
-
}
-
-
-
- -

◆ getTimestamp()

- -
-
- - - - - -
- - - - - - - -
unsigned long getTimestamp ()
-
-override
-
- -

Get the current timestamp.

-
Returns
unsigned long current timestamp (unix epoch time)
- -
-
- -

◆ handle()

- -
-
- - - - - - - -
void handle ()
-
- -

Handles communication between device and SinricPro Server.

-

This is the absolute main function which handles communication between your device and SinricPro Server.
-It is responsible for connect, disconnect to SinricPro Server, handling requests, responses and events.
-This function has to be called as often as possible. So it must be called in your main loop() function!
- For proper function, begin() must be called with valid values for 'APP_KEY' and 'APP_SECRET'
-

-

-Example-Code

-
void loop() {
-
SinricPro.handle();
-
}
-
-
-
- -

◆ onConnected()

- -
-
- - - - - - - - -
void onConnected (ConnectedCallbackHandler cb)
-
- -

Set callback function for websocket connected event.

-
Parameters
- - -
cbFunction pointer to a ConnectedCallbackHandler function
-
-
-
Returns
void
-
See also
ConnectedCallbackHandler
-

-Example-Code

-
SinricPro.onConnected([](){ Serial.printf("Connected to SinricPro\r\n"); });
-
-
-
- -

◆ onDisconnected()

- -
-
- - - - - - - - -
void onDisconnected (DisconnectedCallbackHandler cb)
-
- -

Set callback function for websocket disconnected event.

-
Parameters
- - -
cbFunction pointer to a DisconnectedCallbackHandler function
-
-
-
Returns
void
-
See also
DisconnectedCallbackHandler
-

-Example-Code

-
SinricPro.onDisconnected([](){ Serial.printf("Disconnected from SinricPro\r\n"); });
-
-
-
- -

◆ operator[]()

- -
-
- - - - - - - - -
SinricProClass::proxy operator[] (const String deviceId)
-
- -

operator[] is used tor create a new device instance or get an existing device instance

-

If the device is unknown to SinricProClass it will create a new device instance

Parameters
- - -
deviceIda String containing deviceId for device that have to been created or retreived
-
-
-
Returns
returns a proxy object representing the reference to a device derrivered from SinricProDevice
-

-Syntax

-

<DeviceType> &reference = SinricPro[<DEVICE_ID>];

-

-[] Example-Code

-
#define SWITCH_ID "YOUR-DEVICE-ID" // Should look like "5dc1564130xxxxxxxxxxxxxx"
-
..
-
SinricProSwitch &mySwitch = SinricPro[SWITCH_ID];
-
..
-
-
-
- -

◆ restoreDeviceStates()

- -
-
- - - - - - - - -
void restoreDeviceStates (bool flag)
-
- -

Enable / disable restore device states function.

-

If this flag is enabled (true), SinricProServer will send last known device states to your device directly after connection to SinricPro server has been established.
- For every state the corresponding callback (like onPowerState) will be called
-This is useful after a power failure / reboot of your device.

-
Parameters
- - -
flagtrue = enabled
- false= disabled
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_class.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_class.js deleted file mode 100644 index 50dc323..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_class.js +++ /dev/null @@ -1,10 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_class = -[ - [ "begin", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_class.html#a1b5b66fb0c539b9b5f5f58a135056c75", null ], - [ "getTimestamp", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_class.html#afb2be26eef972203404140612fa31326", null ], - [ "handle", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_class.html#a37c2d0658e498b1bf878f8a3d9a7c5b4", null ], - [ "onConnected", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_class.html#ac33a355adfc413d4ff36974d735115bd", null ], - [ "onDisconnected", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_class.html#a654bb017ca55b448d55bb36e0346f38a", null ], - [ "operator[]", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_class.html#a84a491d393b5c7c1433a2a9e62a58766", null ], - [ "restoreDeviceStates", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_class.html#a27a9bb7f1e8bde0f39398649493b6f93", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_contactsensor-members.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_contactsensor-members.html deleted file mode 100644 index b2ce60e..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_contactsensor-members.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProContactsensor Member List
-
-
- -

This is the complete list of members for SinricProContactsensor, including all inherited members.

- - - - - -
onPowerState(PowerStateCallback cb)PowerStateController< SinricProContactsensor >
sendContactEvent(bool detected, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)ContactSensor< SinricProContactsensor >
sendPowerStateEvent(bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)PowerStateController< SinricProContactsensor >
sendPushNotification(String notification)PushNotification< SinricProContactsensor >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_contactsensor.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_contactsensor.html deleted file mode 100644 index f59c916..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_contactsensor.html +++ /dev/null @@ -1,319 +0,0 @@ - - - - - - - -SinricPro Library: SinricProContactsensor - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
SinricProContactsensor
-
-
- -

Device to report contact sensor events. - More...

-
-Inheritance diagram for SinricProContactsensor:
-
-
Inheritance graph
- - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - -

-Public Member Functions

bool sendPushNotification (String notification)
 Sending push notifications to SinricPro App. More...
 
void onPowerState (PowerStateCallback cb)
 Set callback function for powerState request. More...
 
bool sendPowerStateEvent (bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setPowerState event to SinricPro Server indicating actual power state. More...
 
bool sendContactEvent (bool detected, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setContactState event to SinricPro Server indicating actual power state. More...
 
-

Detailed Description

-

Device to report contact sensor events.

-

Member Function Documentation

- -

◆ onPowerState()

- -
-
- - - - - -
- - - - - - - - -
void onPowerState (PowerStateCallback cb)
-
-inherited
-
- -

Set callback function for powerState request.

-
Parameters
- - -
cbFunction pointer to a PowerStateCallback function
-
-
-
Returns
void
-
See also
PowerStateCallback
- -
-
- -

◆ sendContactEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendContactEvent (bool detected,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send setContactState event to SinricPro Server indicating actual power state.

-
Parameters
- - - -
detected[in] booltrue = contact is closed
- [in] false = contact is open
cause[in] String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
true event has been sent successfully
-
-false event has not been sent, maybe you sent to much events in a short distance of time
- -
-
- -

◆ sendPowerStateEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendPowerStateEvent (bool state,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send setPowerState event to SinricPro Server indicating actual power state.

-
Parameters
- - - -
statetrue = device turned on
- false = device turned off
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendPushNotification()

- -
-
- - - - - -
- - - - - - - - -
bool sendPushNotification (String notification)
-
-inherited
-
- -

Sending push notifications to SinricPro App.

-
Parameters
- - -
notificationString with the notification
-
-
-
Returns
the success of sending the event
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_contactsensor.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_contactsensor.js deleted file mode 100644 index be4eed4..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_contactsensor.js +++ /dev/null @@ -1,7 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_contactsensor = -[ - [ "onPowerState", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_contactsensor.html#a32f3257da431a1035f23a265ff0cc4cf", null ], - [ "sendContactEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_contactsensor.html#a452a4cfa3177d8d8d31c5919e9ccbb19", null ], - [ "sendPowerStateEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_contactsensor.html#acfd5f3a30933ace93751bd823630cded", null ], - [ "sendPushNotification", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_contactsensor.html#a04266791a4b23e9614b8773edb5f67b6", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_contactsensor__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_contactsensor__inherit__graph.map deleted file mode 100644 index 8b4b158..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_contactsensor__inherit__graph.map +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_contactsensor__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_contactsensor__inherit__graph.md5 deleted file mode 100644 index ef68cc4..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_contactsensor__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -7fac135bacf6cf9791037b72e2e07af1 \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_contactsensor__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_contactsensor__inherit__graph.png deleted file mode 100644 index 6a3ee1ce786bd1ec12f7da7ceb303e714d6f1cdc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12225 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

=cds*0?lp2T5>pQV0Wz~? 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 z zyyp1$7>JouDj=P}6LhTlpTw>q!)rGOhlBn!aOD~1E-4T^=;@Wf_$E{V4mWwruO1OH zp5;Co77)1x+eupZ*Wi84qB4YkrESD9yb_}HJ=lzdAZBVw$EB%s-o1;iEzwR06Xl)9KqIY4)Vy`FqW;mOtja{ zT1p3qKbZQbN;(%~0kwlvRM9H@hw9)I&%@S8xJ6m<^tM}P3PE$CJ?d>{^Nj=B!J;kX z8JJG~7<2 zZidcreVG`7U16a|TTq>LvVaK*zuuCM;Zj|OR|hPk{EA$7L=|1u`9^ySeb@`n()%-x zFB-;xx^9&HU7w#1SzgfoCr0>?s*k|Jr6WtTMfQ7~=7)%V%gJ?=(FqX$R_(r-o`A|G*k~$NebwGSc&;f=y>?ZvGS`1#@FKb z`$iQjKq_eNB8-9rIfyhBm(&hhzbfTDPV-o1vEf!td(zI)73BV%AwvW6^=C1gAEO*} zz$u$I+_>sy+H0!NNS-MvxjyLX>%4U4d7*n6t`*=@?noJ8bVp!P%qILJpS(@{oT z`MpMpR;eA`XtP(s~4D{h0hH2ZQ748xqxquF^CH{L*S>D&Fp1 z`;7ui+*Qn;=R3b90OgZjd8~b2rf)(P-TChBbcGk{{{(RnJ;BpWy8ap^@ZA{yz)BkY z6!dL5)N)!RLHLgd6G`#;mn|(koXiptl;%+i=D9FbABHRX^E_rSP;R63`{F}3J-KA3 z@3i-Q@pu^u*^?fPiZbCe@k_&x-BytPv94%-(7JFm6?O283%n*`<5h(W)D8@qbg#!p= znCeNfA#BGK{{k<*zPI8#hq?Y4LL)Axj2>j?ht5JOMlt%q%bMIjPCXg+R`(f!hP-TAAT9fz4L*Tw&DNiloAgxti^wn0h!?b% zC3QnaN0%NA^eNG!1N!^slmA~8qvbjS)Qkmmn*(izK$|%~IVI%?(VYc2nsyAecXk4A vHVBA`JBxRkg`F-%fJuQs^q>B}xdI8>7-}JizwS*ze_2jOQMyFZ!0&$n2h$Mx diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_device-members.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_device-members.html deleted file mode 100644 index ce78962..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_device-members.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -

-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProDevice Member List
-
-
- -

This is the complete list of members for SinricProDevice, including all inherited members.

-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_device.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_device.html deleted file mode 100644 index 051f132..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_device.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - -SinricPro Library: SinricProDevice - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
SinricProDevice
-
-
- -

Base class for all device types. - More...

-
-Inheritance diagram for SinricProDevice:
-
-
Inheritance graph
- - - - - - - - - - - - - - - - - - - - - - -
[legend]
-

Detailed Description

-

Base class for all device types.

-

Supporting base functions which needed by all device types to work with SinricProClass
-Implements basic on/off functions like onPowerState and sendPowerStateEvent

-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_device__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_device__inherit__graph.map deleted file mode 100644 index 47386dd..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_device__inherit__graph.map +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_device__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_device__inherit__graph.md5 deleted file mode 100644 index 6d17e96..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_device__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -e0f85c79c90b4b5beb18a9f6908e6913 \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_device__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_device__inherit__graph.png deleted file mode 100644 index aaffe89033ed438b7631def95994e05e23a27d6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66361 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 z 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 Wx7l0r5v>FU{Aj4^A}W-v!v6~s`8&P< diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_dim_switch-members.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_dim_switch-members.html deleted file mode 100644 index a742fee..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_dim_switch-members.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -

-
- -
-
-
- -
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_dim_switch.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_dim_switch.html deleted file mode 100644 index ae4bfa0..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_dim_switch.html +++ /dev/null @@ -1,399 +0,0 @@ - - - - - - - -SinricPro Library: SinricProDimSwitch - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
SinricProDimSwitch
-
-
- -

Device which supports on / off and dimming commands. - More...

-
-Inheritance diagram for SinricProDimSwitch:
-
-
Inheritance graph
- - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

bool sendPushNotification (String notification)
 Sending push notifications to SinricPro App. More...
 
void onPowerState (PowerStateCallback cb)
 Set callback function for powerState request. More...
 
bool sendPowerStateEvent (bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setPowerState event to SinricPro Server indicating actual power state. More...
 
void onPowerLevel (SetPowerLevelCallback cb)
 Set callback function for setPowerLevel request. More...
 
void onAdjustPowerLevel (AdjustPowerLevelCallback cb)
 Set callback function for adjustPowerLevel request. More...
 
bool sendPowerLevelEvent (int powerLevel, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setPowerLevel event to SinricPro Server indicating actual power level. More...
 
-

Detailed Description

-

Device which supports on / off and dimming commands.

-

Member Function Documentation

- -

◆ onAdjustPowerLevel()

- -
-
- - - - - -
- - - - - - - - -
void onAdjustPowerLevel (AdjustPowerLevelCallback cb)
-
-inherited
-
- -

Set callback function for adjustPowerLevel request.

-
Parameters
- - -
cbFunction pointer to a AdjustPowerLevelCallback function
-
-
-
See also
AdjustPowerLevelCallback
- -
-
- -

◆ onPowerLevel()

- -
-
- - - - - -
- - - - - - - - -
void onPowerLevel (SetPowerLevelCallback cb)
-
-inherited
-
- -

Set callback function for setPowerLevel request.

-
Parameters
- - -
cbFunction pointer to a SetPowerLevelCallback function
-
-
-
See also
SetPowerLevelCallback
- -
-
- -

◆ onPowerState()

- -
-
- - - - - -
- - - - - - - - -
void onPowerState (PowerStateCallback cb)
-
-inherited
-
- -

Set callback function for powerState request.

-
Parameters
- - -
cbFunction pointer to a PowerStateCallback function
-
-
-
Returns
void
-
See also
PowerStateCallback
- -
-
- -

◆ sendPowerLevelEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendPowerLevelEvent (int powerLevel,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send setPowerLevel event to SinricPro Server indicating actual power level.

-
Parameters
- - - -
powerLevelinteger 0..100 report the powerlevel that the device have been set to
cause(optional) Reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the event
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendPowerStateEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendPowerStateEvent (bool state,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send setPowerState event to SinricPro Server indicating actual power state.

-
Parameters
- - - -
statetrue = device turned on
- false = device turned off
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendPushNotification()

- -
-
- - - - - -
- - - - - - - - -
bool sendPushNotification (String notification)
-
-inherited
-
- -

Sending push notifications to SinricPro App.

-
Parameters
- - -
notificationString with the notification
-
-
-
Returns
the success of sending the event
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_dim_switch.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_dim_switch.js deleted file mode 100644 index 602e76d..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_dim_switch.js +++ /dev/null @@ -1,9 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_dim_switch = -[ - [ "onAdjustPowerLevel", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_dim_switch.html#a13b10bdb1844babe4de320fff9172d96", null ], - [ "onPowerLevel", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_dim_switch.html#a0685d34694badb4442fed6b69b69b366", null ], - [ "onPowerState", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_dim_switch.html#a32f3257da431a1035f23a265ff0cc4cf", null ], - [ "sendPowerLevelEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_dim_switch.html#a2f1f88c7b4d9503bfcfe5557c5e55ed4", null ], - [ "sendPowerStateEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_dim_switch.html#acfd5f3a30933ace93751bd823630cded", null ], - [ "sendPushNotification", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_dim_switch.html#a04266791a4b23e9614b8773edb5f67b6", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_dim_switch__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_dim_switch__inherit__graph.map deleted file mode 100644 index 3aec87a..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_dim_switch__inherit__graph.map +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_dim_switch__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_dim_switch__inherit__graph.md5 deleted file mode 100644 index 5ee963a..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_dim_switch__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -1de2b5a7e70718696fee7d294492c8c6 \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_dim_switch__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_dim_switch__inherit__graph.png deleted file mode 100644 index c7f57a255f1043e3ef4410846b4dac0559324781..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11759 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 - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProDoorbell Member List
-
-
- -

This is the complete list of members for SinricProDoorbell, including all inherited members.

- - - - - -
onPowerState(PowerStateCallback cb)PowerStateController< SinricProDoorbell >
sendDoorbellEvent(String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)Doorbell< SinricProDoorbell >
sendPowerStateEvent(bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)PowerStateController< SinricProDoorbell >
sendPushNotification(String notification)PushNotification< SinricProDoorbell >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_doorbell.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_doorbell.html deleted file mode 100644 index c38cdf0..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_doorbell.html +++ /dev/null @@ -1,312 +0,0 @@ - - - - - - - -SinricPro Library: SinricProDoorbell - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
SinricProDoorbell
-
-
- -

Device to report doorbell events. - More...

-
-Inheritance diagram for SinricProDoorbell:
-
-
Inheritance graph
- - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - -

-Public Member Functions

bool sendPushNotification (String notification)
 Sending push notifications to SinricPro App. More...
 
void onPowerState (PowerStateCallback cb)
 Set callback function for powerState request. More...
 
bool sendPowerStateEvent (bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setPowerState event to SinricPro Server indicating actual power state. More...
 
bool sendDoorbellEvent (String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send Doorbell event to SinricPro Server indicating someone pressed the doorbell button. More...
 
-

Detailed Description

-

Device to report doorbell events.

-

Member Function Documentation

- -

◆ onPowerState()

- -
-
- - - - - -
- - - - - - - - -
void onPowerState (PowerStateCallback cb)
-
-inherited
-
- -

Set callback function for powerState request.

-
Parameters
- - -
cbFunction pointer to a PowerStateCallback function
-
-
-
Returns
void
-
See also
PowerStateCallback
- -
-
- -

◆ sendDoorbellEvent()

- -
-
- - - - - -
- - - - - - - - -
bool sendDoorbellEvent (String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION)
-
-inherited
-
- -

Send Doorbell event to SinricPro Server indicating someone pressed the doorbell button.

-
Parameters
- - -
causeString (optional) Reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the event
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendPowerStateEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendPowerStateEvent (bool state,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send setPowerState event to SinricPro Server indicating actual power state.

-
Parameters
- - - -
statetrue = device turned on
- false = device turned off
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendPushNotification()

- -
-
- - - - - -
- - - - - - - - -
bool sendPushNotification (String notification)
-
-inherited
-
- -

Sending push notifications to SinricPro App.

-
Parameters
- - -
notificationString with the notification
-
-
-
Returns
the success of sending the event
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_doorbell.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_doorbell.js deleted file mode 100644 index 41198bb..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_doorbell.js +++ /dev/null @@ -1,7 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_doorbell = -[ - [ "onPowerState", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_doorbell.html#a32f3257da431a1035f23a265ff0cc4cf", null ], - [ "sendDoorbellEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_doorbell.html#a168f5a4ddcbf381fd548bf10ee05b272", null ], - [ "sendPowerStateEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_doorbell.html#acfd5f3a30933ace93751bd823630cded", null ], - [ "sendPushNotification", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_doorbell.html#a04266791a4b23e9614b8773edb5f67b6", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_doorbell__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_doorbell__inherit__graph.map deleted file mode 100644 index 3cc4f35..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_doorbell__inherit__graph.map +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_doorbell__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_doorbell__inherit__graph.md5 deleted file mode 100644 index 023eb82..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_doorbell__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -4bdbee59afef819b54a389de4bd4af49 \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_doorbell__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_doorbell__inherit__graph.png deleted file mode 100644 index b3e30970e4b6ab0de81ef1fd9c4f20a58d748771..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11395 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 - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProFan Member List
-
-
- -

This is the complete list of members for SinricProFan, including all inherited members.

- - - - - - - -
onAdjustPowerLevel(AdjustPowerLevelCallback cb)PowerLevelController< SinricProFan >
onPowerLevel(SetPowerLevelCallback cb)PowerLevelController< SinricProFan >
onPowerState(PowerStateCallback cb)PowerStateController< SinricProFan >
sendPowerLevelEvent(int powerLevel, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)PowerLevelController< SinricProFan >
sendPowerStateEvent(bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)PowerStateController< SinricProFan >
sendPushNotification(String notification)PushNotification< SinricProFan >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan.html deleted file mode 100644 index f5dfbd5..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan.html +++ /dev/null @@ -1,399 +0,0 @@ - - - - - - - -SinricPro Library: SinricProFan - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- - -
- -

Device to turn on / off a fan and change it's speed by using powerlevel. - More...

-
-Inheritance diagram for SinricProFan:
-
-
Inheritance graph
- - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

bool sendPushNotification (String notification)
 Sending push notifications to SinricPro App. More...
 
void onPowerState (PowerStateCallback cb)
 Set callback function for powerState request. More...
 
bool sendPowerStateEvent (bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setPowerState event to SinricPro Server indicating actual power state. More...
 
void onPowerLevel (SetPowerLevelCallback cb)
 Set callback function for setPowerLevel request. More...
 
void onAdjustPowerLevel (AdjustPowerLevelCallback cb)
 Set callback function for adjustPowerLevel request. More...
 
bool sendPowerLevelEvent (int powerLevel, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setPowerLevel event to SinricPro Server indicating actual power level. More...
 
-

Detailed Description

-

Device to turn on / off a fan and change it's speed by using powerlevel.

-

Member Function Documentation

- -

◆ onAdjustPowerLevel()

- -
-
- - - - - -
- - - - - - - - -
void onAdjustPowerLevel (AdjustPowerLevelCallback cb)
-
-inherited
-
- -

Set callback function for adjustPowerLevel request.

-
Parameters
- - -
cbFunction pointer to a AdjustPowerLevelCallback function
-
-
-
See also
AdjustPowerLevelCallback
- -
-
- -

◆ onPowerLevel()

- -
-
- - - - - -
- - - - - - - - -
void onPowerLevel (SetPowerLevelCallback cb)
-
-inherited
-
- -

Set callback function for setPowerLevel request.

-
Parameters
- - -
cbFunction pointer to a SetPowerLevelCallback function
-
-
-
See also
SetPowerLevelCallback
- -
-
- -

◆ onPowerState()

- -
-
- - - - - -
- - - - - - - - -
void onPowerState (PowerStateCallback cb)
-
-inherited
-
- -

Set callback function for powerState request.

-
Parameters
- - -
cbFunction pointer to a PowerStateCallback function
-
-
-
Returns
void
-
See also
PowerStateCallback
- -
-
- -

◆ sendPowerLevelEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendPowerLevelEvent (int powerLevel,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send setPowerLevel event to SinricPro Server indicating actual power level.

-
Parameters
- - - -
powerLevelinteger 0..100 report the powerlevel that the device have been set to
cause(optional) Reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the event
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendPowerStateEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendPowerStateEvent (bool state,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send setPowerState event to SinricPro Server indicating actual power state.

-
Parameters
- - - -
statetrue = device turned on
- false = device turned off
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendPushNotification()

- -
-
- - - - - -
- - - - - - - - -
bool sendPushNotification (String notification)
-
-inherited
-
- -

Sending push notifications to SinricPro App.

-
Parameters
- - -
notificationString with the notification
-
-
-
Returns
the success of sending the event
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan.js deleted file mode 100644 index 2eb60d4..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan.js +++ /dev/null @@ -1,9 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan = -[ - [ "onAdjustPowerLevel", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan.html#a13b10bdb1844babe4de320fff9172d96", null ], - [ "onPowerLevel", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan.html#a0685d34694badb4442fed6b69b69b366", null ], - [ "onPowerState", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan.html#a32f3257da431a1035f23a265ff0cc4cf", null ], - [ "sendPowerLevelEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan.html#a2f1f88c7b4d9503bfcfe5557c5e55ed4", null ], - [ "sendPowerStateEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan.html#acfd5f3a30933ace93751bd823630cded", null ], - [ "sendPushNotification", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan.html#a04266791a4b23e9614b8773edb5f67b6", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan__inherit__graph.map deleted file mode 100644 index 1eefa03..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan__inherit__graph.map +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan__inherit__graph.md5 deleted file mode 100644 index 7f25d16..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -d42adbbf37a4956997964a5e99b24598 \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan__inherit__graph.png deleted file mode 100644 index 239647ebb71349a33f62c28402ccbc125f28618c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10922 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 diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s-members.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s-members.html deleted file mode 100644 index 81b76b2..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s-members.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProFanUS Member List
-
-
- -

This is the complete list of members for SinricProFanUS, including all inherited members.

- - - - - - - - - -
onAdjustRangeValue(AdjustRangeValueCallback cb)RangeController< SinricProFanUS >
onPowerState(PowerStateCallback cb)PowerStateController< SinricProFanUS >
onRangeValue(SetRangeValueCallback cb)RangeController< SinricProFanUS >
onRangeValue(const String &instance, GenericSetRangeValueCallback_int cb)RangeController< SinricProFanUS >
sendPowerStateEvent(bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)PowerStateController< SinricProFanUS >
sendPushNotification(String notification)PushNotification< SinricProFanUS >
sendRangeValueEvent(int rangeValue, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)RangeController< SinricProFanUS >
sendRangeValueEvent(const String &instance, int rangeValue, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)RangeController< SinricProFanUS >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s.html deleted file mode 100644 index 5bd8383..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s.html +++ /dev/null @@ -1,511 +0,0 @@ - - - - - - - -SinricPro Library: SinricProFanUS - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
SinricProFanUS
-
-
- -

Device to control a fan with on / off commands and its speed by a range value. - More...

-
-Inheritance diagram for SinricProFanUS:
-
-
Inheritance graph
- - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

bool sendPushNotification (String notification)
 Sending push notifications to SinricPro App. More...
 
void onPowerState (PowerStateCallback cb)
 Set callback function for powerState request. More...
 
bool sendPowerStateEvent (bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setPowerState event to SinricPro Server indicating actual power state. More...
 
void onRangeValue (SetRangeValueCallback cb)
 Set callback function for setRangeValue request. More...
 
void onRangeValue (const String &instance, GenericSetRangeValueCallback_int cb)
 Set callback function for setRangeValue request on a specific instance (custom device) More...
 
void onAdjustRangeValue (AdjustRangeValueCallback cb)
 Set callback function for adjustRangeValue request. More...
 
bool sendRangeValueEvent (int rangeValue, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send rangeValue event to report curent rangeValue to SinricPro server. More...
 
bool sendRangeValueEvent (const String &instance, int rangeValue, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send rangeValue event to report curent rangeValue to SinricPro server for a specific instance (custom device) More...
 
-

Detailed Description

-

Device to control a fan with on / off commands and its speed by a range value.

-

Member Function Documentation

- -

◆ onAdjustRangeValue()

- -
-
- - - - - -
- - - - - - - - -
void onAdjustRangeValue (AdjustRangeValueCallback cb)
-
-inherited
-
- -

Set callback function for adjustRangeValue request.

-
Parameters
- - -
cbFunction pointer to a AdjustRangeValueCallback function
-
-
-
See also
AdjustRangeValueCallback
- -
-
- -

◆ onPowerState()

- -
-
- - - - - -
- - - - - - - - -
void onPowerState (PowerStateCallback cb)
-
-inherited
-
- -

Set callback function for powerState request.

-
Parameters
- - -
cbFunction pointer to a PowerStateCallback function
-
-
-
Returns
void
-
See also
PowerStateCallback
- -
-
- -

◆ onRangeValue() [1/2]

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void onRangeValue (const String & instance,
GenericSetRangeValueCallback_int cb 
)
-
-inherited
-
- -

Set callback function for setRangeValue request on a specific instance (custom device)

-
Parameters
- - - -
instanceString instance name (custom device)
cbFunction pointer to a GenericSetRangeValueCallback function
-
-
-
See also
GenericSetRangeValueCallback
- -
-
- -

◆ onRangeValue() [2/2]

- -
-
- - - - - -
- - - - - - - - -
void onRangeValue (SetRangeValueCallback cb)
-
-inherited
-
- -

Set callback function for setRangeValue request.

-
Parameters
- - -
cbFunction pointer to a SetRangeValueCallback function
-
-
-
See also
SetRangeValueCallback
- -
-
- -

◆ sendPowerStateEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendPowerStateEvent (bool state,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send setPowerState event to SinricPro Server indicating actual power state.

-
Parameters
- - - -
statetrue = device turned on
- false = device turned off
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendPushNotification()

- -
-
- - - - - -
- - - - - - - - -
bool sendPushNotification (String notification)
-
-inherited
-
- -

Sending push notifications to SinricPro App.

-
Parameters
- - -
notificationString with the notification
-
-
-
Returns
the success of sending the event
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendRangeValueEvent() [1/2]

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
bool sendRangeValueEvent (const String & instance,
int rangeValue,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send rangeValue event to report curent rangeValue to SinricPro server for a specific instance (custom device)

-
Parameters
- - - - -
instanceString instance name
rangeValueValue between 0..3
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendRangeValueEvent() [2/2]

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendRangeValueEvent (int rangeValue,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send rangeValue event to report curent rangeValue to SinricPro server.

-
Parameters
- - - -
rangeValueValue between 0..3
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s.js deleted file mode 100644 index caa608c..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s.js +++ /dev/null @@ -1,11 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s = -[ - [ "onAdjustRangeValue", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s.html#ae85696d55112ae7343f9807faee6e064", null ], - [ "onPowerState", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s.html#a32f3257da431a1035f23a265ff0cc4cf", null ], - [ "onRangeValue", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s.html#a6d6d8070b49c8b5272460836a1120b33", null ], - [ "onRangeValue", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s.html#a94adbcdf6ce61cb6552a5f9915e705ae", null ], - [ "sendPowerStateEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s.html#acfd5f3a30933ace93751bd823630cded", null ], - [ "sendPushNotification", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s.html#a04266791a4b23e9614b8773edb5f67b6", null ], - [ "sendRangeValueEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s.html#aaf84aa417e2246843a27e819898e64b5", null ], - [ "sendRangeValueEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s.html#a1d726751c416fe6dd408e5dd19f6b53b", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s__inherit__graph.map deleted file mode 100644 index cc83c27..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s__inherit__graph.map +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s__inherit__graph.md5 deleted file mode 100644 index 7fe551f..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -08f05dc128eaa60ffdf2b912d3d42a3d \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s__inherit__graph.png deleted file mode 100644 index 88feae1e56217da081141d8be0630adfd3c46f56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11342 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 Pfk1N7N>XJKM&JGqu#Myh diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_garage_door-members.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_garage_door-members.html deleted file mode 100644 index fbbaa99..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_garage_door-members.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProGarageDoor Member List
-
-
- -

This is the complete list of members for SinricProGarageDoor, including all inherited members.

- - - - -
onDoorState(DoorCallback cb)DoorController< SinricProGarageDoor >
sendDoorStateEvent(bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)DoorController< SinricProGarageDoor >
sendPushNotification(String notification)PushNotification< SinricProGarageDoor >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_garage_door.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_garage_door.html deleted file mode 100644 index d861276..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_garage_door.html +++ /dev/null @@ -1,268 +0,0 @@ - - - - - - - -SinricPro Library: SinricProGarageDoor - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
SinricProGarageDoor
-
-
- -

Device to control a garage door. - More...

-
-Inheritance diagram for SinricProGarageDoor:
-
-
Inheritance graph
- - - - - - - - -
[legend]
- - - - - - - - - - - -

-Public Member Functions

bool sendPushNotification (String notification)
 Sending push notifications to SinricPro App. More...
 
void onDoorState (DoorCallback cb)
 Set callback function for onDoorState request. More...
 
bool sendDoorStateEvent (bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send DoorState event to update actual door state on SinricPro Server. More...
 
-

Detailed Description

-

Device to control a garage door.

-

Supporting

    -
  • open / close
  • -
-

Member Function Documentation

- -

◆ onDoorState()

- -
-
- - - - - -
- - - - - - - - -
void onDoorState (DoorCallback cb)
-
-inherited
-
- -

Set callback function for onDoorState request.

-
Parameters
- - -
cbFunction pointer to a onDoorState function
-
-
-
Returns
void
-
See also
DoorStateCallback
- -
-
- -

◆ sendDoorStateEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendDoorStateEvent (bool state,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send DoorState event to update actual door state on SinricPro Server.

-
Parameters
- - - -
statebool true = close
- false = open
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendPushNotification()

- -
-
- - - - - -
- - - - - - - - -
bool sendPushNotification (String notification)
-
-inherited
-
- -

Sending push notifications to SinricPro App.

-
Parameters
- - -
notificationString with the notification
-
-
-
Returns
the success of sending the event
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_garage_door.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_garage_door.js deleted file mode 100644 index f6adc7a..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_garage_door.js +++ /dev/null @@ -1,6 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_garage_door = -[ - [ "onDoorState", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_garage_door.html#a6b536531ab89b39f1a48cb107e22185e", null ], - [ "sendDoorStateEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_garage_door.html#a375cda2b0bc05e1a66e3bc29d059d9a7", null ], - [ "sendPushNotification", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_garage_door.html#a04266791a4b23e9614b8773edb5f67b6", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_garage_door__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_garage_door__inherit__graph.map deleted file mode 100644 index 9afa774..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_garage_door__inherit__graph.map +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_garage_door__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_garage_door__inherit__graph.md5 deleted file mode 100644 index 7283a25..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_garage_door__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -16bbe3e784bfd6986b8971d6273952a6 \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_garage_door__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_garage_door__inherit__graph.png deleted file mode 100644 index ffe5301c2d8e7474e8a4dd901d26f3255ebe9548..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8042 zcma)h2UJsAx9&c2L`4A=kPb>O0!r^7AiZ}%$f5U6KtP&El_E_#NbjIj=_*a6Ljn?d zC!uNR34y!A|KInId&hfYyuk=-XJ_rT=A3KJwZ8A$(b}3y#6&bi000oHC@bg!z_n5E zy8I>~_#Y-aHUl<tp~YQ?;2Ia# zJ-)jsQAP~|%S;@%;sobQ+vK;re(DM7xuhC43MomIZVs#GkHGX7CH+zQd3tswvwN9; zCJ6Eow;PBozTOoo`*@S^y3V(UM8tm;yq7(;F@HOjHEiNki!}+@-!J95K2V>#c~+a+ zF@3T5V$|P|DQnpFI%wd>_fyued*B7o`(}+AY(7Q*kEWa-1>XE-QfI9Kd-U}NF)^|K z>2hQt2?0j{%P63|Vp#LCoLa!v{`=coI+54Xgk2Ei(3^lJvmapy|L-w*((>YBR@9TF z`$nW8r~ixyfMfkbHt>IIMDAPzMiP}-M$TRcXGv8`o&>P(BFgPx!9jO4u}78FbHW`> ze|-oFrQu$vQ zgqDpti#UYCphI9~YtRmR$mv5rLLj@_K4pe$*~`?nF()VM{JXMTc`T zKLgHx3snVmlfxQ_N}Pb=Fz}xH2hUu?yRe|N?LU93-otxo`DkZ+MlP6TZ4~PxegmOF z9dc@g@A#meb?%%&3hHH5kamnd8L+=-n0-}+!gS;T1<%oU08yp{m9>=l`E3MmhL0#6JLwUq;iagFArD$NG8!)LnNIwq*DP zj@^4jL6u#r1imP93PoF+1O_@Bos`1BZ@f1 zpPqz*1&WW4S?j9iNC4Kj{%8H8zn6`iU}cJ|$;>P^tTtW@MM*}x~n$Mr>*4t^_5*7tY(m^|A|K{yH zy(V=s7l=6dJhXx zR@O~mtXc|~@(204wEN?8ZgR>2XIDes$rewYs0})*xY%8s;!dP$|2(Grym#sKmZ@8Z zuJ1fFXRrN0TqDPy+G{q{y&(zAzq`!z^lgX9d6Lyu{TRU~@1-ku3f}Q*+ieEJY298| zH8t^8n>Ncs0-@@weL1x)UbO~RRvmj^tYRD;6&1*(w9(4Be*sZhxw)(UTlq3&)h_+W zJZl33gZ!?uEH~t)48(J)Ny0a%7`ols;IYcI(@^IUyQu#i|lq zJOWelVNGrjMuW%nxP1ayHGymhy2LV8mLvTqcN6HuYNjEV#-OdRsi|Uu8~)Jo=agIV z5+!AyKbw1PnpfWDU9y$`N`Md7iu1`{SnK7*Wp#p#^hbJ$i^vfPxAbcN40S`s*Ppb& zF&cba(wdxS3a$C`v)ppaN=p2PbInR=UCW3?{XeeZ%kr)-0f9rcIj*zw5@-6dd3@6A zeCQ>zsfk|PXXh=OCSB!B{kC9$&s98Uqs6rQ@L}K(L3%5inL)BuikjUPOD(#&ptCMU z4kOv(JjPEnlG)7Ypy{%7iQw?sdnEK2MOxw4WzcP(vJM>c(eZH}bt;3&x5C!U$om9L zU^IZ131lqZN^n-x*018-*%OD;-&`7bLB%w*+l}taf@VQy;X0AG6vFYlT>AFjo=yN( z6Y9M);Zz$~RNKWsmzpcnWv-!dl=*a(#=w9gs6kYl32$hK6j%|5$Fq5kt9@qpv0Y|c zg*>erZAY@J`uhBb^JENG`x9cs)gLN@8zb;Frz3#0ve4>DqIuVaJiSbiE)=>7|7Bb& z=7pk4Rph*~cH!uRbSuYKda^IBt-*HKXLlh`o6`JMuI+H<>y5r{HQw@QarLj<_yt<( z%GUv7$=lexug{e_bu_Idnxm`*KSUaFW~_Z)<`BnE`p`Hqu(ZMNfT7xKw%EvgrUZvg za2!fM5cJxx#v2H_MI+>B4YRoBgI}-^_uct`(?bH2)&_@3cCg|qYP(*>#p&VAbeLr0 zNc=~i=CcA=oj`%tN>8~!0x_i7HL??fO7Dx4fPfhkfccAOx}wDP6*!_iK1i~!cjnGg zr>eInK#yQEEv7S7-h(`3aF~8AxcH#ou&Z8@^kSYbYr8J~WYCh5(rp>I>{88p^poQg z3al3Rb;>7PaoYGb4>=vQuEQ*a1>ytV=+xF=GsplI%GU90?Nqi{nA$QN9+x1lo+6D8 zk@jm6#tTKa&KB%pT%?5e&aYb<*`kK^cGC{WJL2f8z)+{}J4u_|L53S%MsH4Vm-=y<( zi;0Oz0m*e6$AKi)Bz^t?uNr->Lf^&t|ISx@PFX56mS}b9#>E}AV)tmhXKV@!NyvH& zQ)Su!Kz5*_N*#swezzIIqk{TR`tk*z)qUUzFehV=ho7GvIXYHM$5Kz1Ra7vol-;w# zC&x!;*i`(u)QR9$ZUBup+FI4E3s)}eO81gzzr0k~aqWlWaJJYBaN10n;EKKkMhfVU zDC!ayK(;5nDYPsV-9XHKyeIYARs$JF>x)_&NI{|cD)BqX2CO{aB8iJT8FbeEsS5#U zW)i;KqseY46=ShC4o4*N9Ci`B9j7a8nCW0#aO>~y2ZByhYXTw+=AJ4Vut&_-VkHUq z&37N3RD%d$ZKK+2zNuKCuNwA-c3qt80bBM`z){Z&J?CrW!kXES`5V`UGQv)uFjSPSfYtXK2~5XUG8b0DB?H za;&G?kD+6ctl_>3o9D@r53TxkI5) zhxMPS5jG_Q0wOhED@9{PNzM472g|m?T*8OJg-u?Au}OFM(u(5{-jliG%C$NflNX)| zk&9`oyN6Ef7cXtQx^*oMCEU>xe>|OI5e%3Nc)-9gw$A|)j%e@?radwx+Wep^;=4Cj zCNG=lnJr1sJ2Y^^bT2Y>UOZenW%s47uYl!x38Zb80<+-y;(|`A)}u9UKofHIG)-+{ zdHsaNTA>RrLI&n@F`)9nzeuUM&u-^QnQWWEJf?*A1bqF=vfBG zQtg12bEmSRfvopAZ zt{FcuoMY?tP$?NEU;R;^W;`DomDzaj=;`f)MuV!&2fziBpQ4JVr&wpU%#W%K4gVQo z$jbz`r)xIl5aZL;nnlSd0R)rxW*Jp{A6ULMZ zzLX?`+^m=bWv%y5GvbII_{+=~a18M3i;&z>qJxlG{Bc?=OfRs4E|BWAjN^VtK_{8a|_&NxYIMvwS% zal(1)v-lq4BZ`P$3H-!|s`I020l6PY8q{PYb7ZkaW0G<*n+b^BekW`=LIA;6=|aRR zXE=-C5s3Mw5_`689`CTTKp3L`tQ8-xfu6UIw-mU#HM%GRU(XefiOc$@qnbrhjzgn$`8rDcHLoaC}hRGws*Q4vv-4F@v zG5xq(aGTD-22L(6E@4}w%VGLkSVvM(XlM!-7Z+3f6S^yEAcJ4R68g0d>(hhPR>B(H zF*;eU2mu;oV?AFuW)RnshjnR&Nc;)7_b$<{u%*v-k(M>euyEAY<)xlHwbEmZlI2PrTkd8)3S&Gs zaqBoL=i(+)E$07e3uW^VuD9wBsy1m9DpKB^Z9V$LvT4*CtC&%p#EY->nHIm1!E?Jp zAEL%I(>?31bDG_wpQGiBp$kv8ifX2HD!&W`k{qC+7sLF|Jm5+v2mYtW&E99%J9HP3 zdBm(EKF*kg4V!74e(PD<#yX^(rQ;;8Tno2SMf%qH@}dyY5fB?sN1Z?4CX<*l_B8~@ z>CJ8AYUs2r@$LH7Gp1!1ljxZ;+c9w0a3+cYca3)SHV&W9=}nI)zB%3%Hs*m+l0!-j z*Z#n4cTbL%S~vAgCo9<*oZm~I<#-ohcgF3who$z6X20x}hCy6)@-RA62_f(bx}YZ7 z<^z8!ZVU3TL0;Nwr&_5heXjg2+-x4cwhTbf$eOHT!%uC)Khuuj~6Ko@3qeiW1QXK4qv535QiC_tMXTWuqBFt6USTp%rV`KoI699d!I}xPco!l zV7!pCS;YeNN21c{uViA_Z z<68)^!F1CbU9Ns|;xNv@bRbx@9u6`hrP>d}KCSDXXtfD2Z!jYOS#J1#5kEtJNY@y4sKXP&V?s<_(4iN5Y_vFL4`rFh}bvP2aRAY z$xPqoYp+b@ZZ0d`q*b{kg;vfkb$J}O{=-HrdV9;`QEkU@CPTo^)4~%wC+7{xLUn`K z_iViM=i*QW)J0*#rkID{-6%#0HLq5e+OZR#K_at1UNoh%={tuMYf{|LT975&-jf~`B>r^I`*`zQ@eGeKMVrM*=%lzH4o&>#D#?;yz0sA zvp0AoqF=;Z>c_tvu$B|B)0`N}NCq+BQ?iZ2=rTMEzovnxGJNEjwAHE+vznxy#aWVQ z_cdNuJ>3frfti-A{j~VhLi>a`Sse&t^d5hxAOKQG>dVP|TyyISwUc(6_O$(|2C5)~ zq1SFQGJ{C3pNQwPLyD}ai=KT=9lXhBFxJxjzEx05nvJ4LX6OoDORyQyWU^~=t0lm^JM8I2dC9(aKa1aRKk z+Z)dmVzh@>R3qwa5+aBzC#qf~ADynMf&7nH{PG;+08w}Gfd|rmwH$C)n@(R*3y?N} zt15S}sRi#i85uY8)qwv(%i6_@V&HWK8a zmj6;;wEK>CXG?F9u_@3imi?Q@8dNS!qu{2{CD~d$q&_>?ZhZA8u64Jml1}RE{yKBw z`U4vvikxvQDr{q8BMIWN4FYpv*ST_o$|gq;bAueYyvDWt0bi%iB5rRuQ}QgSOkUx< z5ieteB*CYBRY4l|*{~W>VFa14A!FA>PMOx~>*;ko;Azz{G8f}T-PL({#n~Lh{14wE z5UmaVM_5O<#d2@)LQ~g_vfg)Y6Dz$U$Rst#0+M^Z@9?ymT&6Pe!{e8t8dm-2vHPc2 zx*~b$T;vDmg?6RxNK)yBHHpQR#K;d1IjXCgz%`3e+>=*Z@Y@uKW02CtF91HK5_{?4=H)fyOyn1e!7Szli{%TN?Co+jRnzPR`cWc=c|u_RL1>}+jo>mN*87nYmB z<|J6AC)#XHTn(n~h{T^xdU?$ixDluSTQ-`EJvIT}maf4!;5 zW9;66*LLWcmI(3U=I{Q^JjN+RqZ$6GSU4z4h6I3@>k*0I{6Cf1k`4HgE(6Wyksn_A zBkkv*(@-##H}hFJpm+y9zNC{rk7IbXM2*|A8;&<@r1HP==L$Ux@+E*VP2mQ2OF)}s z;gwbMUfcc&3MrOv1i{IkEXquK2GmD>IA6NaT=ChX!nF&Ba=&)N@@i&PV^H4fI#K{x(!-_nov`!Y;M-t-IaiY5)-I6)O2=!17}~A;e{1E7uf=TS85}Z z9eM(8IkLC>_d7<9Rv9lf@swGgE70(Tjg79%`LZ{?=vbx5!l`l6l|0mmCBz4`FJ4L} z=6$H;SK=_xh$Ls>%F$qbXScu= zz0N?X?TF8J4o@wqMxA#LaP=f~TT*sG^{HS*5mHfTXBvYHSFW#{WhqU;GF>sj74~~M zS-p9{R-m+bc;npJ{Z`x2wl7BpU5WECOzbE#D+`W5pn}I_6Y-k(P07=xFh_g)DDgYw zEufg{@2|<3Jiw9jK{JPj4l3=(U+pbk3Aze~F^~9;b&9Hu=Cm4j7JYlhZ_`CgUhCmR zqFp0)Em_KgG5nJUJ96qKR#K`idK+wW$1GN+4qEvIU|s{=sL&1VY2nbN}If&vw2kX zT+?$=&2=%s6+3K1v`Gl;%`o`w?d?tdOyv%Xz5d)0JTp)`JF((-rX!?#&|T-s4F6^v zSc?9m@OO{;L~kC5u6OyIqbh#|H5dE40!wkL#VF%W!m|&LU)+b@ydEy5OL4;%D{+`l zyJ>aLFxEqcB>Zn^b}Zs?#B`i#aVrFP)17UX(xAY!jOl)QIpKV98HpI#AKh9!e>E3N zL*0lh={UEtn2G>-aq!+|(CqHC=6OrR{qMRo-)^sn5_=r9J`GqT$7D<{zRL<+oddq| zFeJT652FWe6VaX7B2Q4aw9ISGy zA9t#)btuL5wfq%g#4^eu<|@sR9rUG@ryen4|Mtfgx`p=4g|tzxtYglT9ZQim&Rg2` z&QpW`e8H~tz%Oh~DEje{7Xh%ToU7yMnJmJWX5FoMMSl6~{{>^C>UF97c

3kZfAu z^wHSb%m`%g*)eq_Svxe^=2iboRA}R42>uaqn5+ifvIA zIC}H7E(>@28q>Y(=8tP5)d%&pUlKCcf6fON?pr;AzC;{k!#a&oIF7NJ@2}=tD6G|O zvCgS?PKBdjZ*eSF#-v6Jp_Hz#9cS%i6 zh^c0LF{{OK_3*?Z(CCX#vo(49m2#>_U@CO{NVfZ6RCn1yK6LBpB`Gi(NVlCN?UpKi zR_(oVoAZT~DEhI=%qi>0?;8Eu-vIEQ54|???jdi^b9l1>)`FGIHu%mjkMSR?6Y&t` zw#&4`;Zof?6d&`De6)b-gS6%s!n#gGHgfnqZ=twX&kMm^0lM@hbn8HWdE6GT~^}W!z6nx z7xUMVxvv8vY~emmNEh~EHy}uW^^1ZmCN@pXA zye>(Kko}rf3#(%84__+P0#Qn4UCI=#H&}RM9w`F7oWG&DWYIk@Ad0?JS*fO})SL|+ zli<6oZkMhg_(1LcjYS!CMY!7kraXg51{cTIAL`p~R-B9Ndyrq1JAI}s>Y4cK|#RReg17@g6`<`j%7h~rx2WfYp z6On0DIX!MH%?!-rvPjM|TEcq*6wF23CWKv@^fp{Kw0nkJ>AXF!j}1`#{K8V8SzE!s zNW;OyG8(0Mv{l9oEQQXH6BX`PfB6@Zx4;l;XW~zj&brL39UHJbHB>Z8X z$6i&!`hRMTrM~5$_^%W;MX-MpHS3t|;G0YrH{bt|sln9^{KHD%S?b<1K#)^);Z`~~ zTCASqOnInV0K}xNuKD#6z3U$@c)UB?tVPDA4xTaqYlHz8(31%MhMXvV))UG!JvT=O zzM@r)O+%6acgbf5ywud*fx7gY*y}(@{re{bQM8757zH?Ay`%VlG^*Ausnmen`dT7f zR{vjz91WC8cCG>a_8D+<2E9I5Nb(m)SyPiR>TZa!B_25epGs53KtKV6Xy8Hef11>! iFR2f}8ywD)mp6z?1xCx?e(nRm11iro6>8-EdGlY`4I69# diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light-members.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light-members.html deleted file mode 100644 index 17c2de7..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light-members.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -

-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProLight Member List
-
-
- -

This is the complete list of members for SinricProLight, including all inherited members.

- - - - - - - - - - - - - -
onAdjustBrightness(AdjustBrightnessCallback cb)BrightnessController< SinricProLight >
onBrightness(BrightnessCallback cb)BrightnessController< SinricProLight >
onColor(ColorCallback cb)ColorController< SinricProLight >
onColorTemperature(ColorTemperatureCallback cb)ColorTemperatureController< SinricProLight >
onDecreaseColorTemperature(DecreaseColorTemperatureCallback cb)ColorTemperatureController< SinricProLight >
onIncreaseColorTemperature(IncreaseColorTemperatureCallback cb)ColorTemperatureController< SinricProLight >
onPowerState(PowerStateCallback cb)PowerStateController< SinricProLight >
sendBrightnessEvent(int brightness, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)BrightnessController< SinricProLight >
sendColorEvent(byte r, byte g, byte b, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)ColorController< SinricProLight >
sendColorTemperatureEvent(int colorTemperature, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)ColorTemperatureController< SinricProLight >
sendPowerStateEvent(bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)PowerStateController< SinricProLight >
sendPushNotification(String notification)PushNotification< SinricProLight >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light.html deleted file mode 100644 index fa33a40..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light.html +++ /dev/null @@ -1,698 +0,0 @@ - - - - - - - -SinricPro Library: SinricProLight - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
SinricProLight
-
-
- -

Device to control a light. - More...

-
-Inheritance diagram for SinricProLight:
-
-
Inheritance graph
- - - - - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

bool sendPushNotification (String notification)
 Sending push notifications to SinricPro App. More...
 
void onPowerState (PowerStateCallback cb)
 Set callback function for powerState request. More...
 
bool sendPowerStateEvent (bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setPowerState event to SinricPro Server indicating actual power state. More...
 
void onBrightness (BrightnessCallback cb)
 Set callback function for setBrightness request. More...
 
void onAdjustBrightness (AdjustBrightnessCallback cb)
 Set callback function for adjustBrightness request. More...
 
bool sendBrightnessEvent (int brightness, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setBrightness event to SinricPro Server indicating actual brightness. More...
 
void onColor (ColorCallback cb)
 Set callback function for setColor request. More...
 
bool sendColorEvent (byte r, byte g, byte b, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setColor event to SinricPro Server indicating actual color. More...
 
void onColorTemperature (ColorTemperatureCallback cb)
 Set callback function for setColorTemperature request. More...
 
void onIncreaseColorTemperature (IncreaseColorTemperatureCallback cb)
 Set callback function for increaseColorTemperature request. More...
 
void onDecreaseColorTemperature (DecreaseColorTemperatureCallback cb)
 Set callback function for decreaseColorTemperature request. More...
 
bool sendColorTemperatureEvent (int colorTemperature, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setColorTemperature event to SinricPro Server indicating actual color temperature. More...
 
-

Detailed Description

-

Device to control a light.

-

Supporting

    -
  • On / Off
  • -
  • Brightness (0..100)
  • -
  • Color (RGB)
  • -
  • Color temperature
  • -
-

Member Function Documentation

- -

◆ onAdjustBrightness()

- -
-
- - - - - -
- - - - - - - - -
void onAdjustBrightness (AdjustBrightnessCallback cb)
-
-inherited
-
- -

Set callback function for adjustBrightness request.

-
Parameters
- - -
cbFunction pointer to a AdjustBrightnessCallback function
-
-
-
Returns
void
-
See also
AdjustBrightnessCallback
- -
-
- -

◆ onBrightness()

- -
-
- - - - - -
- - - - - - - - -
void onBrightness (BrightnessCallback cb)
-
-inherited
-
- -

Set callback function for setBrightness request.

-
Parameters
- - -
cbFunction pointer to a BrightnessCallback function
-
-
-
Returns
void
-
See also
BrightnessCallback
- -
-
- -

◆ onColor()

- -
-
- - - - - -
- - - - - - - - -
void onColor (ColorCallback cb)
-
-inherited
-
- -

Set callback function for setColor request.

-
Parameters
- - -
cbFunction pointer to a ColorCallback function
-
-
-
Returns
void
-
See also
ColorCallback
- -
-
- -

◆ onColorTemperature()

- -
-
- - - - - -
- - - - - - - - -
void onColorTemperature (ColorTemperatureCallback cb)
-
-inherited
-
- -

Set callback function for setColorTemperature request.

-
Parameters
- - -
cbFunction pointer to a ColorTemperatureCallback function
-
-
-
Returns
void
-
See also
ColorTemperatureCallback
- -
-
- -

◆ onDecreaseColorTemperature()

- -
-
- - - - - -
- - - - - - - - -
void onDecreaseColorTemperature (DecreaseColorTemperatureCallback cb)
-
-inherited
-
- -

Set callback function for decreaseColorTemperature request.

-
Parameters
- - -
cbFunction pointer to a DecreaseColorTemperatureCallback function
-
-
-
Returns
void
-
See also
DecreaseColorTemperatureCallback
- -
-
- -

◆ onIncreaseColorTemperature()

- -
-
- - - - - -
- - - - - - - - -
void onIncreaseColorTemperature (IncreaseColorTemperatureCallback cb)
-
-inherited
-
- -

Set callback function for increaseColorTemperature request.

-
Parameters
- - -
cbFunction pointer to a IncreaseColorTemperatureCallback function
-
-
-
Returns
void
-
See also
IncreaseColorTemperatureCallback
- -
-
- -

◆ onPowerState()

- -
-
- - - - - -
- - - - - - - - -
void onPowerState (PowerStateCallback cb)
-
-inherited
-
- -

Set callback function for powerState request.

-
Parameters
- - -
cbFunction pointer to a PowerStateCallback function
-
-
-
Returns
void
-
See also
PowerStateCallback
- -
-
- -

◆ sendBrightnessEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendBrightnessEvent (int brightness,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send setBrightness event to SinricPro Server indicating actual brightness.

-
Parameters
- - - -
brightnessInteger value with actual brightness the device is set to
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendColorEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
bool sendColorEvent (byte r,
byte g,
byte b,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send setColor event to SinricPro Server indicating actual color.

-
Parameters
- - - - - -
rByte value for red
gByte value for green
bByte value for blue
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendColorTemperatureEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendColorTemperatureEvent (int colorTemperature,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send setColorTemperature event to SinricPro Server indicating actual color temperature.

-
Parameters
- - - -
colorTemperatureInteger with new color temperature the device is set to
- 2200 = warm white
- 2700 = soft white
- 4000 = white
- 5500 = daylight white
- 7000 = cool white
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendPowerStateEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendPowerStateEvent (bool state,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send setPowerState event to SinricPro Server indicating actual power state.

-
Parameters
- - - -
statetrue = device turned on
- false = device turned off
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendPushNotification()

- -
-
- - - - - -
- - - - - - - - -
bool sendPushNotification (String notification)
-
-inherited
-
- -

Sending push notifications to SinricPro App.

-
Parameters
- - -
notificationString with the notification
-
-
-
Returns
the success of sending the event
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light.js deleted file mode 100644 index afc5c4d..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light.js +++ /dev/null @@ -1,15 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light = -[ - [ "onAdjustBrightness", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light.html#a0633e5fa2981189f4a093bab00a8c7f1", null ], - [ "onBrightness", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light.html#abbaab3067b1fcdcc5928451b818a4420", null ], - [ "onColor", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light.html#a059ff103149869b7c49cdb8911875b7b", null ], - [ "onColorTemperature", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light.html#a8535c44fd2517ed09ebe6a203cc25b67", null ], - [ "onDecreaseColorTemperature", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light.html#a7468976e7fffeee14cc869b7236cbb50", null ], - [ "onIncreaseColorTemperature", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light.html#a7ea9fd9861a5668a41d06267bfbec82a", null ], - [ "onPowerState", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light.html#a32f3257da431a1035f23a265ff0cc4cf", null ], - [ "sendBrightnessEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light.html#a2a96c414210f61de3ce53a4ca8c963b3", null ], - [ "sendColorEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light.html#a3599a6d00eb0f9127a7c1188885c5bc0", null ], - [ "sendColorTemperatureEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light.html#a0f90d7f5a5b365116f97beca7630ccc9", null ], - [ "sendPowerStateEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light.html#acfd5f3a30933ace93751bd823630cded", null ], - [ "sendPushNotification", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light.html#a04266791a4b23e9614b8773edb5f67b6", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light__inherit__graph.map deleted file mode 100644 index 06d7687..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light__inherit__graph.map +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light__inherit__graph.md5 deleted file mode 100644 index e967298..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -67230006b1b44f2995a069c5c50c8291 \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light__inherit__graph.png deleted file mode 100644 index bda76d58deb3b7a19babc8add3d8c67f480b4f20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21825 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 - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProLock Member List
-
-
- -

This is the complete list of members for SinricProLock, including all inherited members.

- - - - -
onLockState(LockStateCallback cb)LockController< SinricProLock >
sendLockStateEvent(bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)LockController< SinricProLock >
sendPushNotification(String notification)PushNotification< SinricProLock >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_lock.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_lock.html deleted file mode 100644 index eb867d3..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_lock.html +++ /dev/null @@ -1,269 +0,0 @@ - - - - - - - -SinricPro Library: SinricProLock - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- - -
- -

Device to control a smart lock. - More...

-
-Inheritance diagram for SinricProLock:
-
-
Inheritance graph
- - - - - - - - -
[legend]
- - - - - - - - - - - -

-Public Member Functions

bool sendPushNotification (String notification)
 Sending push notifications to SinricPro App. More...
 
void onLockState (LockStateCallback cb)
 Set callback function for setLockState request. More...
 
bool sendLockStateEvent (bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send lockState event to SinricPro Server indicating actual lock state. More...
 
-

Detailed Description

-

Device to control a smart lock.

-

Supporting

    -
  • on / off
  • -
  • lock / unlock
  • -
-

Member Function Documentation

- -

◆ onLockState()

- -
-
- - - - - -
- - - - - - - - -
void onLockState (LockStateCallback cb)
-
-inherited
-
- -

Set callback function for setLockState request.

-
Parameters
- - -
cbFunction pointer to a LockStateCallback function
-
-
-
Returns
void
-
See also
LockStateCallback
- -
-
- -

◆ sendLockStateEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendLockStateEvent (bool state,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send lockState event to SinricPro Server indicating actual lock state.

-
Parameters
- - - -
statetrue = device is locked
- false = device is unlocked
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendPushNotification()

- -
-
- - - - - -
- - - - - - - - -
bool sendPushNotification (String notification)
-
-inherited
-
- -

Sending push notifications to SinricPro App.

-
Parameters
- - -
notificationString with the notification
-
-
-
Returns
the success of sending the event
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_lock.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_lock.js deleted file mode 100644 index 7deae79..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_lock.js +++ /dev/null @@ -1,6 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_lock = -[ - [ "onLockState", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_lock.html#aee42cc397234a454fd353ca6bc12a859", null ], - [ "sendLockStateEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_lock.html#a8fb3fec204da21e69d05f89a9ecb4739", null ], - [ "sendPushNotification", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_lock.html#a04266791a4b23e9614b8773edb5f67b6", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_lock__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_lock__inherit__graph.map deleted file mode 100644 index ed74aa3..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_lock__inherit__graph.map +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_lock__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_lock__inherit__graph.md5 deleted file mode 100644 index bebb812..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_lock__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -ee925f34e309e3f8b9e6212d1f7c0e4c \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_lock__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_lock__inherit__graph.png deleted file mode 100644 index 58f1a2e008a41f5ae6644822e6678095cb06265e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6392 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 - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProMotionsensor Member List
-
-
- -

This is the complete list of members for SinricProMotionsensor, including all inherited members.

- - - - - -
onPowerState(PowerStateCallback cb)PowerStateController< SinricProMotionsensor >
sendMotionEvent(bool detected, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)MotionSensor< SinricProMotionsensor >
sendPowerStateEvent(bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)PowerStateController< SinricProMotionsensor >
sendPushNotification(String notification)PushNotification< SinricProMotionsensor >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_motionsensor.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_motionsensor.html deleted file mode 100644 index 1655bec..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_motionsensor.html +++ /dev/null @@ -1,324 +0,0 @@ - - - - - - - -SinricPro Library: SinricProMotionsensor - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
SinricProMotionsensor
-
-
- -

Device to report motion detection events. - More...

-
-Inheritance diagram for SinricProMotionsensor:
-
-
Inheritance graph
- - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - -

-Public Member Functions

bool sendPushNotification (String notification)
 Sending push notifications to SinricPro App. More...
 
void onPowerState (PowerStateCallback cb)
 Set callback function for powerState request. More...
 
bool sendPowerStateEvent (bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setPowerState event to SinricPro Server indicating actual power state. More...
 
bool sendMotionEvent (bool detected, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Sending motion detection state to SinricPro server. More...
 
-

Detailed Description

-

Device to report motion detection events.

-

Member Function Documentation

- -

◆ onPowerState()

- -
-
- - - - - -
- - - - - - - - -
void onPowerState (PowerStateCallback cb)
-
-inherited
-
- -

Set callback function for powerState request.

-
Parameters
- - -
cbFunction pointer to a PowerStateCallback function
-
-
-
Returns
void
-
See also
PowerStateCallback
- -
-
- -

◆ sendMotionEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendMotionEvent (bool detected,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Sending motion detection state to SinricPro server.

-
Parameters
- - - -
detectedbool true if motion has been detected
- 'false' if no motion has been detected
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the event
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendPowerStateEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendPowerStateEvent (bool state,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send setPowerState event to SinricPro Server indicating actual power state.

-
Parameters
- - - -
statetrue = device turned on
- false = device turned off
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendPushNotification()

- -
-
- - - - - -
- - - - - - - - -
bool sendPushNotification (String notification)
-
-inherited
-
- -

Sending push notifications to SinricPro App.

-
Parameters
- - -
notificationString with the notification
-
-
-
Returns
the success of sending the event
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_motionsensor.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_motionsensor.js deleted file mode 100644 index ae214ef..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_motionsensor.js +++ /dev/null @@ -1,7 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_motionsensor = -[ - [ "onPowerState", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_motionsensor.html#a32f3257da431a1035f23a265ff0cc4cf", null ], - [ "sendMotionEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_motionsensor.html#a9be024aa2bb70f0146a02dd1b79d3faa", null ], - [ "sendPowerStateEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_motionsensor.html#acfd5f3a30933ace93751bd823630cded", null ], - [ "sendPushNotification", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_motionsensor.html#a04266791a4b23e9614b8773edb5f67b6", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_motionsensor__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_motionsensor__inherit__graph.map deleted file mode 100644 index db0dec9..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_motionsensor__inherit__graph.map +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_motionsensor__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_motionsensor__inherit__graph.md5 deleted file mode 100644 index df5f74a..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_motionsensor__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -9e233792d2fb4be0768033d28d6cbe03 \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_motionsensor__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_motionsensor__inherit__graph.png deleted file mode 100644 index 9b5099fcdc960feae4bf33f383438f153c7875ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12532 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 - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProPowerSensor Member List
-
-
- -

This is the complete list of members for SinricProPowerSensor, including all inherited members.

- - - - - -
onPowerState(PowerStateCallback cb)PowerStateController< SinricProPowerSensor >
sendPowerSensorEvent(float voltage, float current, float power=-1.0f, float apparentPower=-1.0f, float reactivePower=-1.0f, float factor=-1.0f, String cause=FSTR_SINRICPRO_PERIODIC_POLL)PowerSensor< SinricProPowerSensor >
sendPowerStateEvent(bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)PowerStateController< SinricProPowerSensor >
sendPushNotification(String notification)PushNotification< SinricProPowerSensor >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_power_sensor.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_power_sensor.html deleted file mode 100644 index 6d14c67..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_power_sensor.html +++ /dev/null @@ -1,359 +0,0 @@ - - - - - - - -SinricPro Library: SinricProPowerSensor - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
SinricProPowerSensor
-
-
- -

Device to report power usage. - More...

-
-Inheritance diagram for SinricProPowerSensor:
-
-
Inheritance graph
- - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - -

-Public Member Functions

bool sendPushNotification (String notification)
 Sending push notifications to SinricPro App. More...
 
bool sendPowerSensorEvent (float voltage, float current, float power=-1.0f, float apparentPower=-1.0f, float reactivePower=-1.0f, float factor=-1.0f, String cause=FSTR_SINRICPRO_PERIODIC_POLL)
 Send PowerSensor event to SinricPro Server. More...
 
void onPowerState (PowerStateCallback cb)
 Set callback function for powerState request. More...
 
bool sendPowerStateEvent (bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setPowerState event to SinricPro Server indicating actual power state. More...
 
-

Detailed Description

-

Device to report power usage.

-

Member Function Documentation

- -

◆ onPowerState()

- -
-
- - - - - -
- - - - - - - - -
void onPowerState (PowerStateCallback cb)
-
-inherited
-
- -

Set callback function for powerState request.

-
Parameters
- - -
cbFunction pointer to a PowerStateCallback function
-
-
-
Returns
void
-
See also
PowerStateCallback
- -
-
- -

◆ sendPowerSensorEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
bool sendPowerSensorEvent (float voltage,
float current,
float power = -1.0f,
float apparentPower = -1.0f,
float reactivePower = -1.0f,
float factor = -1.0f,
String cause = FSTR_SINRICPRO_PERIODIC_POLL 
)
-
-inherited
-
- -

Send PowerSensor event to SinricPro Server.

-
Parameters
- - - - - - - - -
voltagefloat voltage
currentfloat current
powerfloat (optional) if not provided, it is calculated automaticly (power = voltage * current)
apparentPowerfloat (optional) if not provided it is set to -1
reactivePowerfloat (optional) if not provided it is set to -1
factorfloat (optional) if not provided it is set to -1
- if apparentPower is provided, factor is calculated automaticly (factor = power / apparentPower)
causeString (optional) Reason why event is sent (default = "PERIODIC_POLL")
-
-
-
Returns
the success of sending the event
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendPowerStateEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendPowerStateEvent (bool state,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send setPowerState event to SinricPro Server indicating actual power state.

-
Parameters
- - - -
statetrue = device turned on
- false = device turned off
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendPushNotification()

- -
-
- - - - - -
- - - - - - - - -
bool sendPushNotification (String notification)
-
-inherited
-
- -

Sending push notifications to SinricPro App.

-
Parameters
- - -
notificationString with the notification
-
-
-
Returns
the success of sending the event
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_power_sensor.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_power_sensor.js deleted file mode 100644 index 18a4e03..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_power_sensor.js +++ /dev/null @@ -1,7 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_power_sensor = -[ - [ "onPowerState", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_power_sensor.html#a32f3257da431a1035f23a265ff0cc4cf", null ], - [ "sendPowerSensorEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_power_sensor.html#aec04692842ae1953973503f6be6d9afc", null ], - [ "sendPowerStateEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_power_sensor.html#acfd5f3a30933ace93751bd823630cded", null ], - [ "sendPushNotification", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_power_sensor.html#a04266791a4b23e9614b8773edb5f67b6", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_power_sensor__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_power_sensor__inherit__graph.map deleted file mode 100644 index 4c5d94c..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_power_sensor__inherit__graph.map +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_power_sensor__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_power_sensor__inherit__graph.md5 deleted file mode 100644 index 09753a9..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_power_sensor__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -787241b3ed649cffc22031669c06baca \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_power_sensor__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_power_sensor__inherit__graph.png deleted file mode 100644 index 9a9d82ec83ff1e7672c06177ee052f8deb0f819d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12071 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 diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker-members.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker-members.html deleted file mode 100644 index a41671b..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker-members.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProSpeaker Member List
-
-
- -

This is the complete list of members for SinricProSpeaker, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - -
onAdjustBands(AdjustBandsCallback cb)EqualizerController< SinricProSpeaker >
onAdjustVolume(AdjustVolumeCallback cb)VolumeController< SinricProSpeaker >
onMediaControl(MediaControlCallback cb)MediaController< SinricProSpeaker >
onMute(MuteCallback cb)MuteController< SinricProSpeaker >
onPowerState(PowerStateCallback cb)PowerStateController< SinricProSpeaker >
onResetBands(ResetBandsCallback cb)EqualizerController< SinricProSpeaker >
onSelectInput(SelectInputCallback cb)InputController< SinricProSpeaker >
onSetBands(SetBandsCallback cb)EqualizerController< SinricProSpeaker >
onSetMode(ModeCallback cb)ModeController< SinricProSpeaker >
onSetMode(const String &instance, GenericModeCallback cb)ModeController< SinricProSpeaker >
onSetVolume(SetVolumeCallback cb)VolumeController< SinricProSpeaker >
sendBandsEvent(String bands, int level, String cause="PHYSICAL_INTERACTION")EqualizerController< SinricProSpeaker >
sendMediaControlEvent(String mediaControl, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)MediaController< SinricProSpeaker >
sendModeEvent(String mode, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)ModeController< SinricProSpeaker >
sendModeEvent(String instance, String mode, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)ModeController< SinricProSpeaker >
sendMuteEvent(bool mute, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)MuteController< SinricProSpeaker >
sendPowerStateEvent(bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)PowerStateController< SinricProSpeaker >
sendPushNotification(String notification)PushNotification< SinricProSpeaker >
sendSelectInputEvent(String intput, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)InputController< SinricProSpeaker >
sendVolumeEvent(int volume, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)VolumeController< SinricProSpeaker >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.html deleted file mode 100644 index 084e11d..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.html +++ /dev/null @@ -1,1107 +0,0 @@ - - - - - - - -SinricPro Library: SinricProSpeaker - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
SinricProSpeaker
-
-
- -

Device to control a smart speaker. - More...

-
-Inheritance diagram for SinricProSpeaker:
-
-
Inheritance graph
- - - - - - - - - - - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

bool sendPushNotification (String notification)
 Sending push notifications to SinricPro App. More...
 
void onPowerState (PowerStateCallback cb)
 Set callback function for powerState request. More...
 
bool sendPowerStateEvent (bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setPowerState event to SinricPro Server indicating actual power state. More...
 
void onMute (MuteCallback cb)
 Set callback function for setMute request. More...
 
bool sendMuteEvent (bool mute, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setMute event to SinricPro Server indicating actual mute state. More...
 
void onSetVolume (SetVolumeCallback cb)
 Set callback function for setVolume request. More...
 
void onAdjustVolume (AdjustVolumeCallback cb)
 Set callback function for adjustVolume request. More...
 
bool sendVolumeEvent (int volume, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setVolume event to SinricPro Server indicating actual volume has changed. More...
 
void onMediaControl (MediaControlCallback cb)
 Set callback function for mediaControl request. More...
 
bool sendMediaControlEvent (String mediaControl, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send mediaControl event to SinricPro Server indicating devices media control state. More...
 
void onSelectInput (SelectInputCallback cb)
 Set callback function for selectInput request. More...
 
bool sendSelectInputEvent (String intput, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send selectInput event to SinricPro Server to report selected input. More...
 
void onSetBands (SetBandsCallback cb)
 Set callback function for setBands request. More...
 
void onAdjustBands (AdjustBandsCallback cb)
 Set callback function for adjustBands request. More...
 
void onResetBands (ResetBandsCallback cb)
 Set callback function for resetBands request. More...
 
bool sendBandsEvent (String bands, int level, String cause="PHYSICAL_INTERACTION")
 Send setBands event to SinricPro Server indicating bands level has changed. More...
 
void onSetMode (ModeCallback cb)
 Set callback function for setMode request. More...
 
void onSetMode (const String &instance, GenericModeCallback cb)
 Set callback function for setMode request on a specific instance. More...
 
bool sendModeEvent (String mode, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setMode event to SinricPro Server indicating the mode has changed. More...
 
bool sendModeEvent (String instance, String mode, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setMode event to SinricPro Server indicating the mode on a specific instance has changed. More...
 
-

Detailed Description

-

Device to control a smart speaker.

-

Supporting:

    -
  • setVolume / adjustVolume
  • -
  • set / adjust / reset bands (BASS, MIDRANGE, TREBBLE)
  • -
  • mute / unmute
  • -
  • media controls:
      -
    • FastForward
    • -
    • Next
    • -
    • Pause
    • -
    • Play
    • -
    • Previous
    • -
    • Rewind
    • -
    • StartOver
    • -
    • Stop
    • -
    -
  • -
  • set mode (TV, MOVIE, ...)
  • -
-

Member Function Documentation

- -

◆ onAdjustBands()

- -
-
- - - - - -
- - - - - - - - -
void onAdjustBands (AdjustBandsCallback cb)
-
-inherited
-
- -

Set callback function for adjustBands request.

-
Parameters
- - -
cbFunction pointer to a AdjustBandsCallback function
-
-
-
Returns
void
-
See also
AdjustBandsCallback
- -
-
- -

◆ onAdjustVolume()

- -
-
- - - - - -
- - - - - - - - -
void onAdjustVolume (AdjustVolumeCallback cb)
-
-inherited
-
- -

Set callback function for adjustVolume request.

-
Parameters
- - -
cbFunction pointer to a AdjustVolumeCallback function
-
-
-
Returns
void
-
See also
AdjustVolumeCallback
- -
-
- -

◆ onMediaControl()

- -
-
- - - - - -
- - - - - - - - -
void onMediaControl (MediaControlCallback cb)
-
-inherited
-
- -

Set callback function for mediaControl request.

-
Parameters
- - -
cbFunction pointer to a MediaControlCallback function
-
-
-
Returns
void
-
See also
MediaControlCallback
- -
-
- -

◆ onMute()

- -
-
- - - - - -
- - - - - - - - -
void onMute (MuteCallback cb)
-
-inherited
-
- -

Set callback function for setMute request.

-
Parameters
- - -
cbFunction pointer to a MuteCallback function
-
-
-
Returns
void
-
See also
MuteCallback
- -
-
- -

◆ onPowerState()

- -
-
- - - - - -
- - - - - - - - -
void onPowerState (PowerStateCallback cb)
-
-inherited
-
- -

Set callback function for powerState request.

-
Parameters
- - -
cbFunction pointer to a PowerStateCallback function
-
-
-
Returns
void
-
See also
PowerStateCallback
- -
-
- -

◆ onResetBands()

- -
-
- - - - - -
- - - - - - - - -
void onResetBands (ResetBandsCallback cb)
-
-inherited
-
- -

Set callback function for resetBands request.

-
Parameters
- - -
cbFunction pointer to a ResetBandsCallback function
-
-
-
Returns
void
-
See also
ResetBandsCallback
- -
-
- -

◆ onSelectInput()

- -
-
- - - - - -
- - - - - - - - -
void onSelectInput (SelectInputCallback cb)
-
-inherited
-
- -

Set callback function for selectInput request.

-
Parameters
- - -
cbFunction pointer to a SelectInputCallback function
-
-
-
Returns
void
-
See also
SelectInputCallback
- -
-
- -

◆ onSetBands()

- -
-
- - - - - -
- - - - - - - - -
void onSetBands (SetBandsCallback cb)
-
-inherited
-
- -

Set callback function for setBands request.

-
Parameters
- - -
cbFunction pointer to a SetBandsCallback function
-
-
-
Returns
void
-
See also
SetBandsCallback
- -
-
- -

◆ onSetMode() [1/2]

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void onSetMode (const String & instance,
GenericModeCallback cb 
)
-
-inherited
-
- -

Set callback function for setMode request on a specific instance.

-
Parameters
- - - -
instanceString with instance name
cbFunction pointer to a ModeCallback function
-
-
-
Returns
void
-
See also
ModeCallback
- -
-
- -

◆ onSetMode() [2/2]

- -
-
- - - - - -
- - - - - - - - -
void onSetMode (ModeCallback cb)
-
-inherited
-
- -

Set callback function for setMode request.

-
Parameters
- - -
cbFunction pointer to a ModeCallback function
-
-
-
Returns
void
-
See also
ModeCallback
- -
-
- -

◆ onSetVolume()

- -
-
- - - - - -
- - - - - - - - -
void onSetVolume (SetVolumeCallback cb)
-
-inherited
-
- -

Set callback function for setVolume request.

-
Parameters
- - -
cbFunction pointer to a SetVolumeCallback function
-
-
-
Returns
void
-
See also
SetVolumeCallback
- -
-
- -

◆ sendBandsEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
bool sendBandsEvent (String bands,
int level,
String cause = "PHYSICAL_INTERACTION" 
)
-
-inherited
-
- -

Send setBands event to SinricPro Server indicating bands level has changed.

-
Parameters
- - - - -
bandsString which bands has changed
- BASS, MIDRANGE, TREBBLE
levelInteger with changed bands level
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendMediaControlEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendMediaControlEvent (String mediaControl,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send mediaControl event to SinricPro Server indicating devices media control state.

-
Parameters
- - - -
mediaControlString with actual media control
- FastForward, Next, Pause, Play, Previous, Rewind, StartOver, Stop
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendModeEvent() [1/2]

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
bool sendModeEvent (String instance,
String mode,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send setMode event to SinricPro Server indicating the mode on a specific instance has changed.

-
Parameters
- - - - -
instanceString instance name
modeString with actual mode device is set to
- MOVIE, MUSIC, NIGHT, SPORT, TV
cause(optional) String reason why event is sent (default = FSTR_SINRICPRO_PHYSICAL_INTERACTION)
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendModeEvent() [2/2]

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendModeEvent (String mode,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send setMode event to SinricPro Server indicating the mode has changed.

-
Parameters
- - - -
modeString with actual mode device is set to
- MOVIE, MUSIC, NIGHT, SPORT, TV
cause(optional) String reason why event is sent (default = FSTR_SINRICPRO_PHYSICAL_INTERACTION)
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendMuteEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendMuteEvent (bool mute,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send setMute event to SinricPro Server indicating actual mute state.

-
Parameters
- - - -
mutetrue = device is muted on
- false = device is unmuted
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendPowerStateEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendPowerStateEvent (bool state,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send setPowerState event to SinricPro Server indicating actual power state.

-
Parameters
- - - -
statetrue = device turned on
- false = device turned off
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendPushNotification()

- -
-
- - - - - -
- - - - - - - - -
bool sendPushNotification (String notification)
-
-inherited
-
- -

Sending push notifications to SinricPro App.

-
Parameters
- - -
notificationString with the notification
-
-
-
Returns
the success of sending the event
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendSelectInputEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendSelectInputEvent (String input,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send selectInput event to SinricPro Server to report selected input.

-
Parameters
- - - -
inputString with actual media control
- AUX 1..AUX 7, BLURAY, CABLE, CD, COAX 1,COAX 2, COMPOSITE 1, DVD, GAME, HD RADIO, HDMI 1.. HDMI 10, HDMI ARC, INPUT 1..INPUT 10, IPOD, LINE 1..LINE 7, MEDIA PLAYER, OPTICAL 1, OPTICAL 2, PHONO, PLAYSTATION, PLAYSTATION 3, PLAYSTATION 4, SATELLITE, SMARTCAST, TUNER, TV, USB DAC, VIDEO 1..VIDEO 3, XBOX
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendVolumeEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendVolumeEvent (int volume,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send setVolume event to SinricPro Server indicating actual volume has changed.

-
Parameters
- - - -
volumeInteger reporting the volume that the device have been set to
cause(optional) Reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the event
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.js deleted file mode 100644 index 42e43a0..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.js +++ /dev/null @@ -1,23 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker = -[ - [ "onAdjustBands", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.html#a41a5c1506545c44c2408054a8675c7a8", null ], - [ "onAdjustVolume", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.html#a2c868c87f96e3924c8b309e1bcfb507e", null ], - [ "onMediaControl", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.html#afc2620621377fff928737b5a8a537020", null ], - [ "onMute", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.html#ab5fc79cc8903c3ccc1c106abf61d7cfd", null ], - [ "onPowerState", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.html#a32f3257da431a1035f23a265ff0cc4cf", null ], - [ "onResetBands", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.html#aa6c3aabc2b442d82ac5456ccaac3f60d", null ], - [ "onSelectInput", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.html#a18f8f71ecf0d7292a63d9486f94e5180", null ], - [ "onSetBands", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.html#a4aaa7a29394560be7537a86b0304d199", null ], - [ "onSetMode", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.html#a6b15ba168b3a673b98da43ac5e4ef76c", null ], - [ "onSetMode", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.html#ada087c948c3ab923bdb7818daa6b2b79", null ], - [ "onSetVolume", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.html#a5db8c85f222debbece54c794015f9402", null ], - [ "sendBandsEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.html#a4ad5674e36d96a73147388251b794c82", null ], - [ "sendMediaControlEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.html#a7af593cbf79d38f6b90efb5afee45077", null ], - [ "sendModeEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.html#a7c84d5c26f2ded88e4941313015f7f4c", null ], - [ "sendModeEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.html#a41f8465e89d147c08ab8cbc6839d34da", null ], - [ "sendMuteEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.html#a4717d892b64a14052712152924bd5b29", null ], - [ "sendPowerStateEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.html#acfd5f3a30933ace93751bd823630cded", null ], - [ "sendPushNotification", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.html#a04266791a4b23e9614b8773edb5f67b6", null ], - [ "sendSelectInputEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.html#a973241ac912a18b142d236dda7f80e97", null ], - [ "sendVolumeEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.html#aa2d3dbea5b07e4c5f39d3d20aa2167a4", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker__inherit__graph.map deleted file mode 100644 index 1b7cbe0..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker__inherit__graph.map +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker__inherit__graph.md5 deleted file mode 100644 index 20bbd13..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -d180169eefa145f7242c898afb35494a \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker__inherit__graph.png deleted file mode 100644 index 12886f20c368a9cbc2662ac7f937b243277f5b23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37882 zcmZ^L1yof*_b&(vN{4ibl+xWLsdRUjbax3T-QB1(NQrbxhk$fky1P5yT>QSb{%^ha zaJg8(z2}^n*|TT=V&4#XSqYRE1TSDw=7Vp~45cJQ zVIH9WzBc8@!N8EgycZQ#c1z!#b9KU2A$)dd#_<%9(&-%|IdKR!C0SDv4D36hdhDm7 zJUDcS-xsNc;W1#hIw{bFq9e(4(Bm<&U!wb;5+Kr>v-$SXe>QGk*n|lV z?jbtgp9|aE{FvQNhJs8gKxANGARZ*VS}_#>UIz22qeGNVuX%QpsYk3oiBZDP@cXa< zx;xuBxY#h(^73*xs-HF)qW|zKbay`JFaPHq0-m!#e~v-jnZ`jJinZJ0;m~GF9q~0$C?2N$bhXdIHBhG;3({8FJTh`z$IlL|1vBH($k+XzEma zpD|;ixYO%iK1dv5+J*28;=30AirmovI)SMeJI|ff8uoK0(GgKg$XH0QjLFFr2ajgvpd`8;>WACTw4DU{QW>jj))G(QaX#eD58mgH z)sK9YGj2J37EKwVIjGQ!IfPVF3<|(1S4tNVSE04lDP~okjoF07o`*;Z5*Z3VuHpYR z!(7i&z?w?!&YV&IH1#I&JlFQmS{On^K9!J{Cwl^S7sGBzb$O!|&F^WdPKUGF6N8Tv z_GxjEEW4eGh4^uqbiaF?VIm^aeV&?93Xb5XY)B_VM11i=wApLA!l)Z^c(H+EdTj0W z6deP@J>*XcoZU*-#mCuNCV1g!{-~eh7M*hqXv1HH-N9NtM%t>gW(`B&=H_6zI{f8T zuUxF2&y`rl>(|G~kAsj4j)-9Afgcf49z&v0c}rUFn)Su=f`pusQpZUrOiZZG;i*D} zp#i73q_M7abV%^#a|Hzj@gO0BLWOJ!4l6vrf`T%;qh

oE&a#Idph7OV#OtVT_a{ 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 diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_switch-members.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_switch-members.html deleted file mode 100644 index 5dbf265..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_switch-members.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -

-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProSwitch Member List
-
-
- -

This is the complete list of members for SinricProSwitch, including all inherited members.

- - - - -
onPowerState(PowerStateCallback cb)PowerStateController< SinricProSwitch >
sendPowerStateEvent(bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)PowerStateController< SinricProSwitch >
sendPushNotification(String notification)PushNotification< SinricProSwitch >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_switch.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_switch.html deleted file mode 100644 index 5a67b77..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_switch.html +++ /dev/null @@ -1,265 +0,0 @@ - - - - - - - -SinricPro Library: SinricProSwitch - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
SinricProSwitch
-
-
- -

Device suporting basic on / off command. - More...

-
-Inheritance diagram for SinricProSwitch:
-
-
Inheritance graph
- - - - - - - - -
[legend]
- - - - - - - - - - - -

-Public Member Functions

bool sendPushNotification (String notification)
 Sending push notifications to SinricPro App. More...
 
void onPowerState (PowerStateCallback cb)
 Set callback function for powerState request. More...
 
bool sendPowerStateEvent (bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setPowerState event to SinricPro Server indicating actual power state. More...
 
-

Detailed Description

-

Device suporting basic on / off command.

-

Member Function Documentation

- -

◆ onPowerState()

- -
-
- - - - - -
- - - - - - - - -
void onPowerState (PowerStateCallback cb)
-
-inherited
-
- -

Set callback function for powerState request.

-
Parameters
- - -
cbFunction pointer to a PowerStateCallback function
-
-
-
Returns
void
-
See also
PowerStateCallback
- -
-
- -

◆ sendPowerStateEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendPowerStateEvent (bool state,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send setPowerState event to SinricPro Server indicating actual power state.

-
Parameters
- - - -
statetrue = device turned on
- false = device turned off
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendPushNotification()

- -
-
- - - - - -
- - - - - - - - -
bool sendPushNotification (String notification)
-
-inherited
-
- -

Sending push notifications to SinricPro App.

-
Parameters
- - -
notificationString with the notification
-
-
-
Returns
the success of sending the event
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_switch.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_switch.js deleted file mode 100644 index f4d2355..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_switch.js +++ /dev/null @@ -1,6 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_switch = -[ - [ "onPowerState", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_switch.html#a32f3257da431a1035f23a265ff0cc4cf", null ], - [ "sendPowerStateEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_switch.html#acfd5f3a30933ace93751bd823630cded", null ], - [ "sendPushNotification", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_switch.html#a04266791a4b23e9614b8773edb5f67b6", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_switch__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_switch__inherit__graph.map deleted file mode 100644 index 055347a..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_switch__inherit__graph.map +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_switch__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_switch__inherit__graph.md5 deleted file mode 100644 index f2186d6..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_switch__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -616e861362f1a9be5c2c852fab55541c \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_switch__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_switch__inherit__graph.png deleted file mode 100644 index ad61b8e073a855d08a7dc4b4481ab5a5f1efaa66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7834 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 - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProTV Member List
-
-
- -

This is the complete list of members for SinricProTV, including all inherited members.

- - - - - - - - - - - - - - - - - -
onAdjustVolume(AdjustVolumeCallback cb)VolumeController< SinricProTV >
onChangeChannel(ChangeChannelCallback cb)ChannelController< SinricProTV >
onChangeChannelNumber(ChangeChannelNumberCallback cb)ChannelController< SinricProTV >
onMediaControl(MediaControlCallback cb)MediaController< SinricProTV >
onMute(MuteCallback cb)MuteController< SinricProTV >
onPowerState(PowerStateCallback cb)PowerStateController< SinricProTV >
onSelectInput(SelectInputCallback cb)InputController< SinricProTV >
onSetVolume(SetVolumeCallback cb)VolumeController< SinricProTV >
onSkipChannels(SkipChannelsCallback cb)ChannelController< SinricProTV >
sendChangeChannelEvent(String channelName, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)ChannelController< SinricProTV >
sendMediaControlEvent(String mediaControl, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)MediaController< SinricProTV >
sendMuteEvent(bool mute, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)MuteController< SinricProTV >
sendPowerStateEvent(bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)PowerStateController< SinricProTV >
sendPushNotification(String notification)PushNotification< SinricProTV >
sendSelectInputEvent(String intput, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)InputController< SinricProTV >
sendVolumeEvent(int volume, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)VolumeController< SinricProTV >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v.html deleted file mode 100644 index 69e69dd..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v.html +++ /dev/null @@ -1,885 +0,0 @@ - - - - - - - -SinricPro Library: SinricProTV - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- - -
- -

Device to control a TV. - More...

-
-Inheritance diagram for SinricProTV:
-
-
Inheritance graph
- - - - - - - - - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

bool sendPushNotification (String notification)
 Sending push notifications to SinricPro App. More...
 
void onPowerState (PowerStateCallback cb)
 Set callback function for powerState request. More...
 
bool sendPowerStateEvent (bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setPowerState event to SinricPro Server indicating actual power state. More...
 
void onSetVolume (SetVolumeCallback cb)
 Set callback function for setVolume request. More...
 
void onAdjustVolume (AdjustVolumeCallback cb)
 Set callback function for adjustVolume request. More...
 
bool sendVolumeEvent (int volume, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setVolume event to SinricPro Server indicating actual volume has changed. More...
 
void onMute (MuteCallback cb)
 Set callback function for setMute request. More...
 
bool sendMuteEvent (bool mute, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setMute event to SinricPro Server indicating actual mute state. More...
 
void onMediaControl (MediaControlCallback cb)
 Set callback function for mediaControl request. More...
 
bool sendMediaControlEvent (String mediaControl, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send mediaControl event to SinricPro Server indicating devices media control state. More...
 
void onSelectInput (SelectInputCallback cb)
 Set callback function for selectInput request. More...
 
bool sendSelectInputEvent (String intput, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send selectInput event to SinricPro Server to report selected input. More...
 
void onChangeChannel (ChangeChannelCallback cb)
 Set callback function for changeChannel request. More...
 
void onChangeChannelNumber (ChangeChannelNumberCallback cb)
 Set callback function for changeChannel request. More...
 
void onSkipChannels (SkipChannelsCallback cb)
 Set callback function for skipChannels request. More...
 
bool sendChangeChannelEvent (String channelName, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send changeChannel event to SinricPro Server to report selected channel. More...
 
-

Detailed Description

-

Device to control a TV.

-

Supporting:

    -
  • setVolume / adjustVolume
  • -
  • mute / unmute
  • -
  • media controls:
      -
    • FastForward, Next, Pause, Play, Previous, Rewind, StartOver, Stop
    • -
    -
  • -
  • select input
      -
    • AUX 1..AUX 7, BLURAY, CABLE, CD, COAX 1,COAX 2, COMPOSITE 1, DVD, GAME, HD RADIO, HDMI 1.. HDMI 10, HDMI ARC, INPUT 1..INPUT 10, IPOD, LINE 1..LINE 7, MEDIA PLAYER, OPTICAL 1, OPTICAL 2, PHONO, PLAYSTATION, PLAYSTATION 3, PLAYSTATION 4, SATELLITE, SMARTCAST, TUNER, TV, USB DAC, VIDEO 1..VIDEO 3, XBOX
    • -
    -
  • -
  • Change channel by number
  • -
  • Change channel by name
  • -
  • Skip channels
  • -
-

Member Function Documentation

- -

◆ onAdjustVolume()

- -
-
- - - - - -
- - - - - - - - -
void onAdjustVolume (AdjustVolumeCallback cb)
-
-inherited
-
- -

Set callback function for adjustVolume request.

-
Parameters
- - -
cbFunction pointer to a AdjustVolumeCallback function
-
-
-
Returns
void
-
See also
AdjustVolumeCallback
- -
-
- -

◆ onChangeChannel()

- -
-
- - - - - -
- - - - - - - - -
void onChangeChannel (ChangeChannelCallback cb)
-
-inherited
-
- -

Set callback function for changeChannel request.

-
Parameters
- - -
cbFunction pointer to a ChangeChannelCallback function
-
-
-
Returns
void
-
See also
ChangeChannelCallback
- -
-
- -

◆ onChangeChannelNumber()

- -
-
- - - - - -
- - - - - - - - -
void onChangeChannelNumber (ChangeChannelNumberCallback cb)
-
-inherited
-
- -

Set callback function for changeChannel request.

-
Parameters
- - -
cbFunction pointer to a ChangeChannelNumberCallback function
-
-
-
Returns
void
-
See also
ChangeChannelNumberCallback
- -
-
- -

◆ onMediaControl()

- -
-
- - - - - -
- - - - - - - - -
void onMediaControl (MediaControlCallback cb)
-
-inherited
-
- -

Set callback function for mediaControl request.

-
Parameters
- - -
cbFunction pointer to a MediaControlCallback function
-
-
-
Returns
void
-
See also
MediaControlCallback
- -
-
- -

◆ onMute()

- -
-
- - - - - -
- - - - - - - - -
void onMute (MuteCallback cb)
-
-inherited
-
- -

Set callback function for setMute request.

-
Parameters
- - -
cbFunction pointer to a MuteCallback function
-
-
-
Returns
void
-
See also
MuteCallback
- -
-
- -

◆ onPowerState()

- -
-
- - - - - -
- - - - - - - - -
void onPowerState (PowerStateCallback cb)
-
-inherited
-
- -

Set callback function for powerState request.

-
Parameters
- - -
cbFunction pointer to a PowerStateCallback function
-
-
-
Returns
void
-
See also
PowerStateCallback
- -
-
- -

◆ onSelectInput()

- -
-
- - - - - -
- - - - - - - - -
void onSelectInput (SelectInputCallback cb)
-
-inherited
-
- -

Set callback function for selectInput request.

-
Parameters
- - -
cbFunction pointer to a SelectInputCallback function
-
-
-
Returns
void
-
See also
SelectInputCallback
- -
-
- -

◆ onSetVolume()

- -
-
- - - - - -
- - - - - - - - -
void onSetVolume (SetVolumeCallback cb)
-
-inherited
-
- -

Set callback function for setVolume request.

-
Parameters
- - -
cbFunction pointer to a SetVolumeCallback function
-
-
-
Returns
void
-
See also
SetVolumeCallback
- -
-
- -

◆ onSkipChannels()

- -
-
- - - - - -
- - - - - - - - -
void onSkipChannels (SkipChannelsCallback cb)
-
-inherited
-
- -

Set callback function for skipChannels request.

-
Parameters
- - -
cbFunction pointer to a SkipChannelsCallback function
-
-
-
Returns
void
-
See also
SkipChannelsCallback
- -
-
- -

◆ sendChangeChannelEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendChangeChannelEvent (String channelName,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send changeChannel event to SinricPro Server to report selected channel.

-
Parameters
- - - -
channelNameString with actual channel
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendMediaControlEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendMediaControlEvent (String mediaControl,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send mediaControl event to SinricPro Server indicating devices media control state.

-
Parameters
- - - -
mediaControlString with actual media control
- FastForward, Next, Pause, Play, Previous, Rewind, StartOver, Stop
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendMuteEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendMuteEvent (bool mute,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send setMute event to SinricPro Server indicating actual mute state.

-
Parameters
- - - -
mutetrue = device is muted on
- false = device is unmuted
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendPowerStateEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendPowerStateEvent (bool state,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send setPowerState event to SinricPro Server indicating actual power state.

-
Parameters
- - - -
statetrue = device turned on
- false = device turned off
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendPushNotification()

- -
-
- - - - - -
- - - - - - - - -
bool sendPushNotification (String notification)
-
-inherited
-
- -

Sending push notifications to SinricPro App.

-
Parameters
- - -
notificationString with the notification
-
-
-
Returns
the success of sending the event
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendSelectInputEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendSelectInputEvent (String input,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send selectInput event to SinricPro Server to report selected input.

-
Parameters
- - - -
inputString with actual media control
- AUX 1..AUX 7, BLURAY, CABLE, CD, COAX 1,COAX 2, COMPOSITE 1, DVD, GAME, HD RADIO, HDMI 1.. HDMI 10, HDMI ARC, INPUT 1..INPUT 10, IPOD, LINE 1..LINE 7, MEDIA PLAYER, OPTICAL 1, OPTICAL 2, PHONO, PLAYSTATION, PLAYSTATION 3, PLAYSTATION 4, SATELLITE, SMARTCAST, TUNER, TV, USB DAC, VIDEO 1..VIDEO 3, XBOX
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendVolumeEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendVolumeEvent (int volume,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send setVolume event to SinricPro Server indicating actual volume has changed.

-
Parameters
- - - -
volumeInteger reporting the volume that the device have been set to
cause(optional) Reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the event
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v.js deleted file mode 100644 index f46caab..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v.js +++ /dev/null @@ -1,19 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v = -[ - [ "onAdjustVolume", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v.html#a2c868c87f96e3924c8b309e1bcfb507e", null ], - [ "onChangeChannel", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v.html#a92f3b83744b5bb82d32628eef39c1eb9", null ], - [ "onChangeChannelNumber", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v.html#afd8aee20590bfadec181c6ee515125ec", null ], - [ "onMediaControl", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v.html#afc2620621377fff928737b5a8a537020", null ], - [ "onMute", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v.html#ab5fc79cc8903c3ccc1c106abf61d7cfd", null ], - [ "onPowerState", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v.html#a32f3257da431a1035f23a265ff0cc4cf", null ], - [ "onSelectInput", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v.html#a18f8f71ecf0d7292a63d9486f94e5180", null ], - [ "onSetVolume", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v.html#a5db8c85f222debbece54c794015f9402", null ], - [ "onSkipChannels", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v.html#ab1123d03d471fad4896eb2960ed41855", null ], - [ "sendChangeChannelEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v.html#aff5839c3020c3006af1a2a8c37cc858e", null ], - [ "sendMediaControlEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v.html#a7af593cbf79d38f6b90efb5afee45077", null ], - [ "sendMuteEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v.html#a4717d892b64a14052712152924bd5b29", null ], - [ "sendPowerStateEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v.html#acfd5f3a30933ace93751bd823630cded", null ], - [ "sendPushNotification", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v.html#a04266791a4b23e9614b8773edb5f67b6", null ], - [ "sendSelectInputEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v.html#a973241ac912a18b142d236dda7f80e97", null ], - [ "sendVolumeEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v.html#aa2d3dbea5b07e4c5f39d3d20aa2167a4", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v__inherit__graph.map deleted file mode 100644 index 8702b06..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v__inherit__graph.map +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v__inherit__graph.md5 deleted file mode 100644 index e10271d..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -49c0b118b156eba0e5798ead1158d52f \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v__inherit__graph.png deleted file mode 100644 index 54e7b2c38caad8e863b3cf8af4b31560680bd370..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30078 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î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 l0SpZNV+A78w0#d>X - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProTemperaturesensor Member List
-
-
- -

This is the complete list of members for SinricProTemperaturesensor, including all inherited members.

- - - - - -
onPowerState(PowerStateCallback cb)PowerStateController< SinricProTemperaturesensor >
sendPowerStateEvent(bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)PowerStateController< SinricProTemperaturesensor >
sendPushNotification(String notification)PushNotification< SinricProTemperaturesensor >
sendTemperatureEvent(float temperature, float humidity=-1, String cause=FSTR_SINRICPRO_PERIODIC_POLL)TemperatureSensor< SinricProTemperaturesensor >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_temperaturesensor.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_temperaturesensor.html deleted file mode 100644 index 652e10e..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_temperaturesensor.html +++ /dev/null @@ -1,330 +0,0 @@ - - - - - - - -SinricPro Library: SinricProTemperaturesensor - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
SinricProTemperaturesensor
-
-
- -

Device to report actual temperature and humidity. - More...

-
-Inheritance diagram for SinricProTemperaturesensor:
-
-
Inheritance graph
- - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - -

-Public Member Functions

bool sendPushNotification (String notification)
 Sending push notifications to SinricPro App. More...
 
void onPowerState (PowerStateCallback cb)
 Set callback function for powerState request. More...
 
bool sendPowerStateEvent (bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setPowerState event to SinricPro Server indicating actual power state. More...
 
bool sendTemperatureEvent (float temperature, float humidity=-1, String cause=FSTR_SINRICPRO_PERIODIC_POLL)
 Send currentTemperature event to report actual temperature (measured by a sensor) More...
 
-

Detailed Description

-

Device to report actual temperature and humidity.

-

Member Function Documentation

- -

◆ onPowerState()

- -
-
- - - - - -
- - - - - - - - -
void onPowerState (PowerStateCallback cb)
-
-inherited
-
- -

Set callback function for powerState request.

-
Parameters
- - -
cbFunction pointer to a PowerStateCallback function
-
-
-
Returns
void
-
See also
PowerStateCallback
- -
-
- -

◆ sendPowerStateEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendPowerStateEvent (bool state,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send setPowerState event to SinricPro Server indicating actual power state.

-
Parameters
- - - -
statetrue = device turned on
- false = device turned off
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendPushNotification()

- -
-
- - - - - -
- - - - - - - - -
bool sendPushNotification (String notification)
-
-inherited
-
- -

Sending push notifications to SinricPro App.

-
Parameters
- - -
notificationString with the notification
-
-
-
Returns
the success of sending the event
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendTemperatureEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
bool sendTemperatureEvent (float temperature,
float humidity = -1,
String cause = FSTR_SINRICPRO_PERIODIC_POLL 
)
-
-inherited
-
- -

Send currentTemperature event to report actual temperature (measured by a sensor)

-
Parameters
- - - - -
temperaturefloat actual temperature measured by a sensor
humidityfloat (optional) actual humidity measured by a sensor (default=-1.0f means not supported)
cause(optional) String reason why event is sent (default = "PERIODIC_POLL")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_temperaturesensor.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_temperaturesensor.js deleted file mode 100644 index 50341f3..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_temperaturesensor.js +++ /dev/null @@ -1,7 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_temperaturesensor = -[ - [ "onPowerState", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_temperaturesensor.html#a32f3257da431a1035f23a265ff0cc4cf", null ], - [ "sendPowerStateEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_temperaturesensor.html#acfd5f3a30933ace93751bd823630cded", null ], - [ "sendPushNotification", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_temperaturesensor.html#a04266791a4b23e9614b8773edb5f67b6", null ], - [ "sendTemperatureEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_temperaturesensor.html#a75956fe7aff6e595a9b57519316ff789", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_temperaturesensor__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_temperaturesensor__inherit__graph.map deleted file mode 100644 index 67b8bc1..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_temperaturesensor__inherit__graph.map +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_temperaturesensor__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_temperaturesensor__inherit__graph.md5 deleted file mode 100644 index ac3a830..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_temperaturesensor__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -c378d3c4d4faa513152e157b2e781c96 \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_temperaturesensor__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_temperaturesensor__inherit__graph.png deleted file mode 100644 index 210663952dd09ffa5891f3bbdb318e03ef667bf3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13009 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 diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat-members.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat-members.html deleted file mode 100644 index 41620c8..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat-members.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProThermostat Member List
-
-
- -

This is the complete list of members for SinricProThermostat, including all inherited members.

- - - - - - - - - - -
onAdjustTargetTemperature(AdjustTargetTemperatureCallback cb)ThermostatController< SinricProThermostat >
onPowerState(PowerStateCallback cb)PowerStateController< SinricProThermostat >
onTargetTemperature(SetTargetTemperatureCallback cb)ThermostatController< SinricProThermostat >
onThermostatMode(ThermostatModeCallback cb)ThermostatController< SinricProThermostat >
sendPowerStateEvent(bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)PowerStateController< SinricProThermostat >
sendPushNotification(String notification)PushNotification< SinricProThermostat >
sendTargetTemperatureEvent(float temperature, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)ThermostatController< SinricProThermostat >
sendTemperatureEvent(float temperature, float humidity=-1, String cause=FSTR_SINRICPRO_PERIODIC_POLL)TemperatureSensor< SinricProThermostat >
sendThermostatModeEvent(String thermostatMode, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)ThermostatController< SinricProThermostat >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat.html deleted file mode 100644 index ded88d7..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat.html +++ /dev/null @@ -1,567 +0,0 @@ - - - - - - - -SinricPro Library: SinricProThermostat - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
SinricProThermostat
-
-
- -

Device to control Thermostat. - More...

-
-Inheritance diagram for SinricProThermostat:
-
-
Inheritance graph
- - - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

bool sendPushNotification (String notification)
 Sending push notifications to SinricPro App. More...
 
void onPowerState (PowerStateCallback cb)
 Set callback function for powerState request. More...
 
bool sendPowerStateEvent (bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setPowerState event to SinricPro Server indicating actual power state. More...
 
void onThermostatMode (ThermostatModeCallback cb)
 Set callback function for setThermostatMode request. More...
 
void onTargetTemperature (SetTargetTemperatureCallback cb)
 Set callback function for targetTemperature request. More...
 
void onAdjustTargetTemperature (AdjustTargetTemperatureCallback cb)
 Set callback function for adjustTargetTemperature request. More...
 
bool sendThermostatModeEvent (String thermostatMode, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send thermostatMode event to report a the new mode the device has been set to. More...
 
bool sendTargetTemperatureEvent (float temperature, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send targetTemperature event to report target temperature change. More...
 
bool sendTemperatureEvent (float temperature, float humidity=-1, String cause=FSTR_SINRICPRO_PERIODIC_POLL)
 Send currentTemperature event to report actual temperature (measured by a sensor) More...
 
-

Detailed Description

-

Device to control Thermostat.

-

Support

    -
  • Set / adjust target temperature
  • -
  • Report target temperature
  • -
  • Report actual temperature
  • -
  • Set thermostat mode AUTO, COOL, HEAT
  • -
-

Member Function Documentation

- -

◆ onAdjustTargetTemperature()

- -
-
- - - - - -
- - - - - - - - -
void onAdjustTargetTemperature (AdjustTargetTemperatureCallback cb)
-
-inherited
-
- -

Set callback function for adjustTargetTemperature request.

-
Parameters
- - -
cbFunction pointer to a AdjustTargetTemperatureCallback function
-
-
-
Returns
void
-
See also
AdjustTargetTemperatureCallback
- -
-
- -

◆ onPowerState()

- -
-
- - - - - -
- - - - - - - - -
void onPowerState (PowerStateCallback cb)
-
-inherited
-
- -

Set callback function for powerState request.

-
Parameters
- - -
cbFunction pointer to a PowerStateCallback function
-
-
-
Returns
void
-
See also
PowerStateCallback
- -
-
- -

◆ onTargetTemperature()

- -
-
- - - - - -
- - - - - - - - -
void onTargetTemperature (SetTargetTemperatureCallback cb)
-
-inherited
-
- -

Set callback function for targetTemperature request.

-
Parameters
- - -
cbFunction pointer to a SetTargetTemperatureCallback function
-
-
-
Returns
void
-
See also
SetTargetTemperatureCallback
- -
-
- -

◆ onThermostatMode()

- -
-
- - - - - -
- - - - - - - - -
void onThermostatMode (ThermostatModeCallback cb)
-
-inherited
-
- -

Set callback function for setThermostatMode request.

-
Parameters
- - -
cbFunction pointer to a ThermostatModeCallback function
-
-
-
Returns
void
-
See also
ThermostatModeCallback
- -
-
- -

◆ sendPowerStateEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendPowerStateEvent (bool state,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send setPowerState event to SinricPro Server indicating actual power state.

-
Parameters
- - - -
statetrue = device turned on
- false = device turned off
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendPushNotification()

- -
-
- - - - - -
- - - - - - - - -
bool sendPushNotification (String notification)
-
-inherited
-
- -

Sending push notifications to SinricPro App.

-
Parameters
- - -
notificationString with the notification
-
-
-
Returns
the success of sending the event
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendTargetTemperatureEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendTargetTemperatureEvent (float temperature,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send targetTemperature event to report target temperature change.

-
Parameters
- - - -
temperatureFloat with actual target temperature the device is set to
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendTemperatureEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
bool sendTemperatureEvent (float temperature,
float humidity = -1,
String cause = FSTR_SINRICPRO_PERIODIC_POLL 
)
-
-inherited
-
- -

Send currentTemperature event to report actual temperature (measured by a sensor)

-
Parameters
- - - - -
temperaturefloat actual temperature measured by a sensor
humidityfloat (optional) actual humidity measured by a sensor (default=-1.0f means not supported)
cause(optional) String reason why event is sent (default = "PERIODIC_POLL")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendThermostatModeEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendThermostatModeEvent (String thermostatMode,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send thermostatMode event to report a the new mode the device has been set to.

-
Parameters
- - - -
thermostatModeString with actual mode (AUTO, COOL, HEAT) the device is set to
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat.js deleted file mode 100644 index f4af1c1..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat.js +++ /dev/null @@ -1,12 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat = -[ - [ "onAdjustTargetTemperature", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat.html#ac51f6fecfdf4c7bc8e0712e2da47bbf4", null ], - [ "onPowerState", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat.html#a32f3257da431a1035f23a265ff0cc4cf", null ], - [ "onTargetTemperature", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat.html#a1c73725f1f3fbb1c5b72208aae5c2bf2", null ], - [ "onThermostatMode", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat.html#a2ef31536973b20815dd6c80a28e19c9f", null ], - [ "sendPowerStateEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat.html#acfd5f3a30933ace93751bd823630cded", null ], - [ "sendPushNotification", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat.html#a04266791a4b23e9614b8773edb5f67b6", null ], - [ "sendTargetTemperatureEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat.html#ab8b7fdd977a0a38413f2279b50274890", null ], - [ "sendTemperatureEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat.html#a75956fe7aff6e595a9b57519316ff789", null ], - [ "sendThermostatModeEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat.html#ae7273cd094f64a93494ae99501fc83e8", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat__inherit__graph.map deleted file mode 100644 index 95202cf..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat__inherit__graph.map +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat__inherit__graph.md5 deleted file mode 100644 index a17643e..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -e8fbf893d90d4d724b0fc50c5b6754bc \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat__inherit__graph.png deleted file mode 100644 index 440d3d0b5b7a6851228f6948e34c0e1cc25f9e35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15906 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 diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c-members.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c-members.html deleted file mode 100644 index 98b6569..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c-members.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricProWindowAC Member List
-
-
- -

This is the complete list of members for SinricProWindowAC, including all inherited members.

- - - - - - - - - - - - - - -
onAdjustRangeValue(AdjustRangeValueCallback cb)RangeController< SinricProWindowAC >
onAdjustTargetTemperature(AdjustTargetTemperatureCallback cb)ThermostatController< SinricProWindowAC >
onPowerState(PowerStateCallback cb)PowerStateController< SinricProWindowAC >
onRangeValue(SetRangeValueCallback cb)RangeController< SinricProWindowAC >
onRangeValue(const String &instance, GenericSetRangeValueCallback_int cb)RangeController< SinricProWindowAC >
onTargetTemperature(SetTargetTemperatureCallback cb)ThermostatController< SinricProWindowAC >
onThermostatMode(ThermostatModeCallback cb)ThermostatController< SinricProWindowAC >
sendPowerStateEvent(bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)PowerStateController< SinricProWindowAC >
sendPushNotification(String notification)PushNotification< SinricProWindowAC >
sendRangeValueEvent(int rangeValue, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)RangeController< SinricProWindowAC >
sendRangeValueEvent(const String &instance, int rangeValue, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)RangeController< SinricProWindowAC >
sendTargetTemperatureEvent(float temperature, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)ThermostatController< SinricProWindowAC >
sendThermostatModeEvent(String thermostatMode, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)ThermostatController< SinricProWindowAC >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c.html deleted file mode 100644 index f9d7986..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c.html +++ /dev/null @@ -1,749 +0,0 @@ - - - - - - - -SinricPro Library: SinricProWindowAC - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
SinricProWindowAC
-
-
- -

Device to control Window Air Conditioner. - More...

-
-Inheritance diagram for SinricProWindowAC:
-
-
Inheritance graph
- - - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

bool sendPushNotification (String notification)
 Sending push notifications to SinricPro App. More...
 
void onPowerState (PowerStateCallback cb)
 Set callback function for powerState request. More...
 
bool sendPowerStateEvent (bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setPowerState event to SinricPro Server indicating actual power state. More...
 
void onRangeValue (SetRangeValueCallback cb)
 Set callback function for setRangeValue request. More...
 
void onRangeValue (const String &instance, GenericSetRangeValueCallback_int cb)
 Set callback function for setRangeValue request on a specific instance (custom device) More...
 
void onAdjustRangeValue (AdjustRangeValueCallback cb)
 Set callback function for adjustRangeValue request. More...
 
bool sendRangeValueEvent (int rangeValue, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send rangeValue event to report curent rangeValue to SinricPro server. More...
 
bool sendRangeValueEvent (const String &instance, int rangeValue, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send rangeValue event to report curent rangeValue to SinricPro server for a specific instance (custom device) More...
 
void onThermostatMode (ThermostatModeCallback cb)
 Set callback function for setThermostatMode request. More...
 
void onTargetTemperature (SetTargetTemperatureCallback cb)
 Set callback function for targetTemperature request. More...
 
void onAdjustTargetTemperature (AdjustTargetTemperatureCallback cb)
 Set callback function for adjustTargetTemperature request. More...
 
bool sendThermostatModeEvent (String thermostatMode, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send thermostatMode event to report a the new mode the device has been set to. More...
 
bool sendTargetTemperatureEvent (float temperature, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send targetTemperature event to report target temperature change. More...
 
-

Detailed Description

-

Device to control Window Air Conditioner.

-

Support

    -
  • Set / adjust target temperature
  • -
  • Set mode AUTO, COOL, HEAT
  • -
  • Set range value
  • -
  • Report target temperature
  • -
  • Report actual temperature
  • -
-

Member Function Documentation

- -

◆ onAdjustRangeValue()

- -
-
- - - - - -
- - - - - - - - -
void onAdjustRangeValue (AdjustRangeValueCallback cb)
-
-inherited
-
- -

Set callback function for adjustRangeValue request.

-
Parameters
- - -
cbFunction pointer to a AdjustRangeValueCallback function
-
-
-
See also
AdjustRangeValueCallback
- -
-
- -

◆ onAdjustTargetTemperature()

- -
-
- - - - - -
- - - - - - - - -
void onAdjustTargetTemperature (AdjustTargetTemperatureCallback cb)
-
-inherited
-
- -

Set callback function for adjustTargetTemperature request.

-
Parameters
- - -
cbFunction pointer to a AdjustTargetTemperatureCallback function
-
-
-
Returns
void
-
See also
AdjustTargetTemperatureCallback
- -
-
- -

◆ onPowerState()

- -
-
- - - - - -
- - - - - - - - -
void onPowerState (PowerStateCallback cb)
-
-inherited
-
- -

Set callback function for powerState request.

-
Parameters
- - -
cbFunction pointer to a PowerStateCallback function
-
-
-
Returns
void
-
See also
PowerStateCallback
- -
-
- -

◆ onRangeValue() [1/2]

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void onRangeValue (const String & instance,
GenericSetRangeValueCallback_int cb 
)
-
-inherited
-
- -

Set callback function for setRangeValue request on a specific instance (custom device)

-
Parameters
- - - -
instanceString instance name (custom device)
cbFunction pointer to a GenericSetRangeValueCallback function
-
-
-
See also
GenericSetRangeValueCallback
- -
-
- -

◆ onRangeValue() [2/2]

- -
-
- - - - - -
- - - - - - - - -
void onRangeValue (SetRangeValueCallback cb)
-
-inherited
-
- -

Set callback function for setRangeValue request.

-
Parameters
- - -
cbFunction pointer to a SetRangeValueCallback function
-
-
-
See also
SetRangeValueCallback
- -
-
- -

◆ onTargetTemperature()

- -
-
- - - - - -
- - - - - - - - -
void onTargetTemperature (SetTargetTemperatureCallback cb)
-
-inherited
-
- -

Set callback function for targetTemperature request.

-
Parameters
- - -
cbFunction pointer to a SetTargetTemperatureCallback function
-
-
-
Returns
void
-
See also
SetTargetTemperatureCallback
- -
-
- -

◆ onThermostatMode()

- -
-
- - - - - -
- - - - - - - - -
void onThermostatMode (ThermostatModeCallback cb)
-
-inherited
-
- -

Set callback function for setThermostatMode request.

-
Parameters
- - -
cbFunction pointer to a ThermostatModeCallback function
-
-
-
Returns
void
-
See also
ThermostatModeCallback
- -
-
- -

◆ sendPowerStateEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendPowerStateEvent (bool state,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send setPowerState event to SinricPro Server indicating actual power state.

-
Parameters
- - - -
statetrue = device turned on
- false = device turned off
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendPushNotification()

- -
-
- - - - - -
- - - - - - - - -
bool sendPushNotification (String notification)
-
-inherited
-
- -

Sending push notifications to SinricPro App.

-
Parameters
- - -
notificationString with the notification
-
-
-
Returns
the success of sending the event
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendRangeValueEvent() [1/2]

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
bool sendRangeValueEvent (const String & instance,
int rangeValue,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send rangeValue event to report curent rangeValue to SinricPro server for a specific instance (custom device)

-
Parameters
- - - - -
instanceString instance name
rangeValueValue between 0..3
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendRangeValueEvent() [2/2]

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendRangeValueEvent (int rangeValue,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send rangeValue event to report curent rangeValue to SinricPro server.

-
Parameters
- - - -
rangeValueValue between 0..3
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendTargetTemperatureEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendTargetTemperatureEvent (float temperature,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send targetTemperature event to report target temperature change.

-
Parameters
- - - -
temperatureFloat with actual target temperature the device is set to
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendThermostatModeEvent()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool sendThermostatModeEvent (String thermostatMode,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
-inherited
-
- -

Send thermostatMode event to report a the new mode the device has been set to.

-
Parameters
- - - -
thermostatModeString with actual mode (AUTO, COOL, HEAT) the device is set to
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c.js deleted file mode 100644 index 2c9b595..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c.js +++ /dev/null @@ -1,16 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c = -[ - [ "onAdjustRangeValue", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c.html#ae85696d55112ae7343f9807faee6e064", null ], - [ "onAdjustTargetTemperature", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c.html#ac51f6fecfdf4c7bc8e0712e2da47bbf4", null ], - [ "onPowerState", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c.html#a32f3257da431a1035f23a265ff0cc4cf", null ], - [ "onRangeValue", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c.html#a6d6d8070b49c8b5272460836a1120b33", null ], - [ "onRangeValue", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c.html#a94adbcdf6ce61cb6552a5f9915e705ae", null ], - [ "onTargetTemperature", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c.html#a1c73725f1f3fbb1c5b72208aae5c2bf2", null ], - [ "onThermostatMode", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c.html#a2ef31536973b20815dd6c80a28e19c9f", null ], - [ "sendPowerStateEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c.html#acfd5f3a30933ace93751bd823630cded", null ], - [ "sendPushNotification", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c.html#a04266791a4b23e9614b8773edb5f67b6", null ], - [ "sendRangeValueEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c.html#aaf84aa417e2246843a27e819898e64b5", null ], - [ "sendRangeValueEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c.html#a1d726751c416fe6dd408e5dd19f6b53b", null ], - [ "sendTargetTemperatureEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c.html#ab8b7fdd977a0a38413f2279b50274890", null ], - [ "sendThermostatModeEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c.html#ae7273cd094f64a93494ae99501fc83e8", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c__inherit__graph.map deleted file mode 100644 index f54d2d7..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c__inherit__graph.map +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c__inherit__graph.md5 deleted file mode 100644 index 77391fb..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -8b0dc40f3af4d2502e7171e875260fdf \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c__inherit__graph.png deleted file mode 100644 index ea7304c67769b2a40d1cf55732dc263fc0274825..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15140 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 diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_temperature_sensor-members.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_temperature_sensor-members.html deleted file mode 100644 index 1eb29c8..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_temperature_sensor-members.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
TemperatureSensor< T > Member List
-
-
- -

This is the complete list of members for TemperatureSensor< T >, including all inherited members.

- - -
sendTemperatureEvent(float temperature, float humidity=-1, String cause=FSTR_SINRICPRO_PERIODIC_POLL)TemperatureSensor< T >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_temperature_sensor.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_temperature_sensor.html deleted file mode 100644 index 6ab3d7e..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_temperature_sensor.html +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - - -SinricPro Library: TemperatureSensor< T > - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
TemperatureSensor< T >
-
-
- -

TemperatureSensor. - More...

-
-Inheritance diagram for TemperatureSensor< T >:
-
-
Inheritance graph
- - - - - - - -
[legend]
- - - - - -

-Public Member Functions

bool sendTemperatureEvent (float temperature, float humidity=-1, String cause=FSTR_SINRICPRO_PERIODIC_POLL)
 Send currentTemperature event to report actual temperature (measured by a sensor) More...
 
-

Detailed Description

-

template<typename T>
-class SINRICPRO_2_9_17::TemperatureSensor< T >

- -

TemperatureSensor.

-

Member Function Documentation

- -

◆ sendTemperatureEvent()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
bool sendTemperatureEvent (float temperature,
float humidity = -1,
String cause = FSTR_SINRICPRO_PERIODIC_POLL 
)
-
- -

Send currentTemperature event to report actual temperature (measured by a sensor)

-
Parameters
- - - - -
temperaturefloat actual temperature measured by a sensor
humidityfloat (optional) actual humidity measured by a sensor (default=-1.0f means not supported)
cause(optional) String reason why event is sent (default = "PERIODIC_POLL")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_temperature_sensor.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_temperature_sensor.js deleted file mode 100644 index fc719ed..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_temperature_sensor.js +++ /dev/null @@ -1,4 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_temperature_sensor = -[ - [ "sendTemperatureEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_temperature_sensor.html#a75956fe7aff6e595a9b57519316ff789", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_temperature_sensor__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_temperature_sensor__inherit__graph.map deleted file mode 100644 index fcaf0c5..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_temperature_sensor__inherit__graph.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_temperature_sensor__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_temperature_sensor__inherit__graph.md5 deleted file mode 100644 index 6fe781c..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_temperature_sensor__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -032ffc75dcbcacf0a5d749f5fef93159 \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_temperature_sensor__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_temperature_sensor__inherit__graph.png deleted file mode 100644 index 07ff2fc9856a0ae26bb9d9dc3987cce10352e0e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6489 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 V58e$i0soaC$w?_e$|Q{Z{tId)n)?6% diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller-members.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller-members.html deleted file mode 100644 index effa8a5..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller-members.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
ThermostatController< T > Member List
-
-
- -

This is the complete list of members for ThermostatController< T >, including all inherited members.

- - - - - - -
onAdjustTargetTemperature(AdjustTargetTemperatureCallback cb)ThermostatController< T >
onTargetTemperature(SetTargetTemperatureCallback cb)ThermostatController< T >
onThermostatMode(ThermostatModeCallback cb)ThermostatController< T >
sendTargetTemperatureEvent(float temperature, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)ThermostatController< T >
sendThermostatModeEvent(String thermostatMode, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)ThermostatController< T >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller.html deleted file mode 100644 index a6a52a8..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller.html +++ /dev/null @@ -1,315 +0,0 @@ - - - - - - - -SinricPro Library: ThermostatController< T > - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
ThermostatController< T >
-
-
- -

ThermostatController. - More...

-
-Inheritance diagram for ThermostatController< T >:
-
-
Inheritance graph
- - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - -

-Public Member Functions

void onThermostatMode (ThermostatModeCallback cb)
 Set callback function for setThermostatMode request. More...
 
void onTargetTemperature (SetTargetTemperatureCallback cb)
 Set callback function for targetTemperature request. More...
 
void onAdjustTargetTemperature (AdjustTargetTemperatureCallback cb)
 Set callback function for adjustTargetTemperature request. More...
 
bool sendThermostatModeEvent (String thermostatMode, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send thermostatMode event to report a the new mode the device has been set to. More...
 
bool sendTargetTemperatureEvent (float temperature, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send targetTemperature event to report target temperature change. More...
 
-

Detailed Description

-

template<typename T>
-class SINRICPRO_2_9_17::ThermostatController< T >

- -

ThermostatController.

-

Member Function Documentation

- -

◆ onAdjustTargetTemperature()

- -
-
- - - - - - - - -
void onAdjustTargetTemperature (AdjustTargetTemperatureCallback cb)
-
- -

Set callback function for adjustTargetTemperature request.

-
Parameters
- - -
cbFunction pointer to a AdjustTargetTemperatureCallback function
-
-
-
Returns
void
-
See also
AdjustTargetTemperatureCallback
- -
-
- -

◆ onTargetTemperature()

- -
-
- - - - - - - - -
void onTargetTemperature (SetTargetTemperatureCallback cb)
-
- -

Set callback function for targetTemperature request.

-
Parameters
- - -
cbFunction pointer to a SetTargetTemperatureCallback function
-
-
-
Returns
void
-
See also
SetTargetTemperatureCallback
- -
-
- -

◆ onThermostatMode()

- -
-
- - - - - - - - -
void onThermostatMode (ThermostatModeCallback cb)
-
- -

Set callback function for setThermostatMode request.

-
Parameters
- - -
cbFunction pointer to a ThermostatModeCallback function
-
-
-
Returns
void
-
See also
ThermostatModeCallback
- -
-
- -

◆ sendTargetTemperatureEvent()

- -
-
- - - - - - - - - - - - - - - - - - -
bool sendTargetTemperatureEvent (float temperature,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
- -

Send targetTemperature event to report target temperature change.

-
Parameters
- - - -
temperatureFloat with actual target temperature the device is set to
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
- -

◆ sendThermostatModeEvent()

- -
-
- - - - - - - - - - - - - - - - - - -
bool sendThermostatModeEvent (String thermostatMode,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
- -

Send thermostatMode event to report a the new mode the device has been set to.

-
Parameters
- - - -
thermostatModeString with actual mode (AUTO, COOL, HEAT) the device is set to
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller.js deleted file mode 100644 index 6592d87..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller.js +++ /dev/null @@ -1,8 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller = -[ - [ "onAdjustTargetTemperature", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller.html#ac51f6fecfdf4c7bc8e0712e2da47bbf4", null ], - [ "onTargetTemperature", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller.html#a1c73725f1f3fbb1c5b72208aae5c2bf2", null ], - [ "onThermostatMode", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller.html#a2ef31536973b20815dd6c80a28e19c9f", null ], - [ "sendTargetTemperatureEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller.html#ab8b7fdd977a0a38413f2279b50274890", null ], - [ "sendThermostatModeEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller.html#ae7273cd094f64a93494ae99501fc83e8", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller__inherit__graph.map deleted file mode 100644 index 7b9566d..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller__inherit__graph.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller__inherit__graph.md5 deleted file mode 100644 index b634e16..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -925703bd5fa3febb4bca7fbdf42359e3 \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller__inherit__graph.png deleted file mode 100644 index 45c772aaf7cff741793b244db8fff5920e738962..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6073 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 AApigX diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_toggle_controller-members.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_toggle_controller-members.html deleted file mode 100644 index 05ee2bf..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_toggle_controller-members.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
ToggleController< T > Member List
-
-
- -

This is the complete list of members for ToggleController< T >, including all inherited members.

- - - -
onToggleState(const String &instance, GenericToggleStateCallback cb)ToggleController< T >
sendToggleStateEvent(const String &instance, bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)ToggleController< T >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_toggle_controller.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_toggle_controller.html deleted file mode 100644 index 4b30c0a..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_toggle_controller.html +++ /dev/null @@ -1,212 +0,0 @@ - - - - - - - -SinricPro Library: ToggleController< T > - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
ToggleController< T >
-
-
- -

ToggleController. - More...

- - - - - - - - -

-Public Member Functions

void onToggleState (const String &instance, GenericToggleStateCallback cb)
 Set callback function for toggleState request. More...
 
bool sendToggleStateEvent (const String &instance, bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setToggleState event to SinricPro Server indicating actual toggle state. More...
 
-

Detailed Description

-

template<typename T>
-class SINRICPRO_2_9_17::ToggleController< T >

- -

ToggleController.

-

Member Function Documentation

- -

◆ onToggleState()

- -
-
- - - - - - - - - - - - - - - - - - -
void onToggleState (const String & instance,
GenericToggleStateCallback cb 
)
-
- -

Set callback function for toggleState request.

-
Parameters
- - - -
instanceString instance name (custom device)
cbFunction pointer to a ToggleStateCallback function
-
-
-
Returns
void
-
See also
ToggleStateCallback
- -
-
- -

◆ sendToggleStateEvent()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
bool sendToggleStateEvent (const String & instance,
bool state,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
- -

Send setToggleState event to SinricPro Server indicating actual toggle state.

-
Parameters
- - - - -
instanceString instance name (custom device)
statetrue = state turned on
- false = tate turned off
cause(optional) String reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the even
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_toggle_controller.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_toggle_controller.js deleted file mode 100644 index 259f2ff..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_toggle_controller.js +++ /dev/null @@ -1,5 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_toggle_controller = -[ - [ "onToggleState", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_toggle_controller.html#a7ccd28a4f20922847d0461649af5572d", null ], - [ "sendToggleStateEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_toggle_controller.html#a7fcc5084fea488e5b5e95f5ad7015a0f", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller-members.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller-members.html deleted file mode 100644 index 0e5aabc..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller-members.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - -SinricPro Library: Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
VolumeController< T > Member List
-
-
- -

This is the complete list of members for VolumeController< T >, including all inherited members.

- - - - -
onAdjustVolume(AdjustVolumeCallback cb)VolumeController< T >
onSetVolume(SetVolumeCallback cb)VolumeController< T >
sendVolumeEvent(int volume, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)VolumeController< T >
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller.html b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller.html deleted file mode 100644 index ff998ac..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller.html +++ /dev/null @@ -1,236 +0,0 @@ - - - - - - - -SinricPro Library: VolumeController< T > - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
VolumeController< T >
-
-
- -

VolumeController. - More...

-
-Inheritance diagram for VolumeController< T >:
-
-
Inheritance graph
- - - - - - - -
[legend]
- - - - - - - - - - - -

-Public Member Functions

void onSetVolume (SetVolumeCallback cb)
 Set callback function for setVolume request. More...
 
void onAdjustVolume (AdjustVolumeCallback cb)
 Set callback function for adjustVolume request. More...
 
bool sendVolumeEvent (int volume, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
 Send setVolume event to SinricPro Server indicating actual volume has changed. More...
 
-

Detailed Description

-

template<typename T>
-class SINRICPRO_2_9_17::VolumeController< T >

- -

VolumeController.

-

Member Function Documentation

- -

◆ onAdjustVolume()

- -
-
- - - - - - - - -
void onAdjustVolume (AdjustVolumeCallback cb)
-
- -

Set callback function for adjustVolume request.

-
Parameters
- - -
cbFunction pointer to a AdjustVolumeCallback function
-
-
-
Returns
void
-
See also
AdjustVolumeCallback
- -
-
- -

◆ onSetVolume()

- -
-
- - - - - - - - -
void onSetVolume (SetVolumeCallback cb)
-
- -

Set callback function for setVolume request.

-
Parameters
- - -
cbFunction pointer to a SetVolumeCallback function
-
-
-
Returns
void
-
See also
SetVolumeCallback
- -
-
- -

◆ sendVolumeEvent()

- -
-
- - - - - - - - - - - - - - - - - - -
bool sendVolumeEvent (int volume,
String cause = FSTR_SINRICPRO_PHYSICAL_INTERACTION 
)
-
- -

Send setVolume event to SinricPro Server indicating actual volume has changed.

-
Parameters
- - - -
volumeInteger reporting the volume that the device have been set to
cause(optional) Reason why event is sent (default = "PHYSICAL_INTERACTION")
-
-
-
Returns
the success of sending the event
-
Return values
- - - -
trueevent has been sent successfully
falseevent has not been sent, maybe you sent to much events in a short distance of time
-
-
- -
-
-
-
- - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller.js b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller.js deleted file mode 100644 index af7fa9e..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller.js +++ /dev/null @@ -1,6 +0,0 @@ -var class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller = -[ - [ "onAdjustVolume", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller.html#a2c868c87f96e3924c8b309e1bcfb507e", null ], - [ "onSetVolume", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller.html#a5db8c85f222debbece54c794015f9402", null ], - [ "sendVolumeEvent", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller.html#aa2d3dbea5b07e4c5f39d3d20aa2167a4", null ] -]; \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller__inherit__graph.map b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller__inherit__graph.map deleted file mode 100644 index f628bbb..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller__inherit__graph.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller__inherit__graph.md5 b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller__inherit__graph.md5 deleted file mode 100644 index 6ce7975..0000000 --- a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -8369635a66356a8d57fb8c4b50cdb231 \ No newline at end of file diff --git a/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller__inherit__graph.png b/docs/docs/class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller__inherit__graph.png deleted file mode 100644 index d95ff62ccc5c17d8815dcfcecdf9b9094345f640..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5252 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�@h6zYLWY#2eF ziO2l4f203&0nyRIcM3CoJMO6-oy+{R><*Ll`7F5>_iQMzoOmo3qUtK6pC>;x4f;?# z(>I@2YR|?ZWa7Y=E6{Hm9YIvjy1~EglUcQzg?rvR2Cu?~fhaZO7b~4JR9|n{7acUA zQiE%!`@1t*GJ+K15#>{?IiO+07z+w#6kfX7Rka_rE46Fn>K*dbq+Wmi;0pzsWpC_? z=rBd)0O#C8yS$Ho05naLI(yb*(mGYt$xz(~!B2NOM_46zhaa`e_APY2+Wh3A&S}O@ z^1JDhpOY&bWzn@SQg?)rNYu)`SaX=ohF-kXCoOJwPoPqsQSdSmQaEyb*1Mw{TKadT zu8u&8Ef-3NG;v-1nnG2N2wok8paLb38#kFVOCnRXgzw!N`cmyie8P1249xcW2-C9so9+6O8Su&@F%q3K{vfYTHvcXJQob&cGvp?_;Ztg!dplnvGD039Z1?Wn zJEW1R`|pzjlAfi>pO(q&c_72Tn6p1~{nEIVo - - - - - - -SinricPro Library: Class Index - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
Class Index
-
-
-
A | B | C | D | E | I | K | L | M | P | R | S | T | V
-
-
-
A
-
AirQualitySensor (SINRICPRO_2_9_17)
-
-
B
-
BrightnessController (SINRICPRO_2_9_17)
-
-
C
-
ChannelController (SINRICPRO_2_9_17)
ColorController (SINRICPRO_2_9_17)
ColorTemperatureController (SINRICPRO_2_9_17)
ContactSensor (SINRICPRO_2_9_17)
-
-
D
-
Doorbell (SINRICPRO_2_9_17)
DoorController (SINRICPRO_2_9_17)
-
-
E
-
EqualizerController (SINRICPRO_2_9_17)
-
-
I
-
InputController (SINRICPRO_2_9_17)
-
-
K
-
KeypadController (SINRICPRO_2_9_17)
-
-
L
-
LockController (SINRICPRO_2_9_17)
-
-
M
-
MediaController (SINRICPRO_2_9_17)
ModeController (SINRICPRO_2_9_17)
MotionSensor (SINRICPRO_2_9_17)
MuteController (SINRICPRO_2_9_17)
-
-
P
-
PercentageController (SINRICPRO_2_9_17)
PowerLevelController (SINRICPRO_2_9_17)
PowerSensor (SINRICPRO_2_9_17)
PowerStateController (SINRICPRO_2_9_17)
PushNotification (SINRICPRO_2_9_17)
-
-
R
-
RangeController (SINRICPRO_2_9_17)
-
-
S
-
SinricProAirQualitySensor (SINRICPRO_2_9_17)
SinricProBlinds (SINRICPRO_2_9_17)
SinricProCamera (SINRICPRO_2_9_17)
SinricProClass (SINRICPRO_2_9_17)
SinricProContactsensor (SINRICPRO_2_9_17)
SinricProDevice (SINRICPRO_2_9_17)
SinricProDimSwitch (SINRICPRO_2_9_17)
SinricProDoorbell (SINRICPRO_2_9_17)
SinricProFan (SINRICPRO_2_9_17)
SinricProFanUS (SINRICPRO_2_9_17)
SinricProGarageDoor (SINRICPRO_2_9_17)
SinricProLight (SINRICPRO_2_9_17)
SinricProLock (SINRICPRO_2_9_17)
SinricProMotionsensor (SINRICPRO_2_9_17)
SinricProPowerSensor (SINRICPRO_2_9_17)
SinricProSpeaker (SINRICPRO_2_9_17)
SinricProSwitch (SINRICPRO_2_9_17)
SinricProTemperaturesensor (SINRICPRO_2_9_17)
SinricProThermostat (SINRICPRO_2_9_17)
SinricProTV (SINRICPRO_2_9_17)
SinricProWindowAC (SINRICPRO_2_9_17)
-
-
T
-
TemperatureSensor (SINRICPRO_2_9_17)
ThermostatController (SINRICPRO_2_9_17)
ToggleController (SINRICPRO_2_9_17)
-
-
V
-
VolumeController (SINRICPRO_2_9_17)
-
-
-
- - - - diff --git a/docs/docs/closed.png b/docs/docs/closed.png deleted file mode 100644 index 98cc2c909da37a6df914fbf67780eebd99c597f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{V-kvUwAr*{o@8{^CZMh(5KoB^r_<4^zF@3)Cp&&t3hdujKf f*?bjBoY!V+E))@{xMcbjXe@)LtDnm{r-UW|*e5JT diff --git a/docs/docs/dir_7df6307e8ce44a8864ff8c0ace2ba173.html b/docs/docs/dir_7df6307e8ce44a8864ff8c0ace2ba173.html deleted file mode 100644 index 0113f5d..0000000 --- a/docs/docs/dir_7df6307e8ce44a8864ff8c0ace2ba173.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - -SinricPro Library: src Directory Reference - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
src Directory Reference
-
-
- - -

-Directories

-
-
- - - - diff --git a/docs/docs/dir_9396324f83557d33beb10fc6add6bec2.html b/docs/docs/dir_9396324f83557d33beb10fc6add6bec2.html deleted file mode 100644 index fbaea42..0000000 --- a/docs/docs/dir_9396324f83557d33beb10fc6add6bec2.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - -SinricPro Library: C:/Users/Boris/.platformio/lib/esp8266-esp32-sdk-documentation Directory Reference - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
esp8266-esp32-sdk-documentation Directory Reference
-
-
- - -

-Directories

-
-
- - - - diff --git a/docs/docs/dir_a3d2086e3c3fe22c73a549735325deec.html b/docs/docs/dir_a3d2086e3c3fe22c73a549735325deec.html deleted file mode 100644 index a398562..0000000 --- a/docs/docs/dir_a3d2086e3c3fe22c73a549735325deec.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - -SinricPro Library: C:/Users/Boris/.platformio/lib/esp8266-esp32-sdk-documentation/doc-examples Directory Reference - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
doc-examples Directory Reference
-
-
- - - - - -

-Files

file  callbacks.cpp
 Example callbacks.
 
-
-
- - - - diff --git a/docs/docs/dir_aa16df8496461ec3bcf35908592889b5.html b/docs/docs/dir_aa16df8496461ec3bcf35908592889b5.html deleted file mode 100644 index e5d05fa..0000000 --- a/docs/docs/dir_aa16df8496461ec3bcf35908592889b5.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - -SinricPro Library: src/Capabilities Directory Reference - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
Capabilities Directory Reference
-
-
-
-
- - - - diff --git a/docs/docs/doc.png b/docs/docs/doc.png deleted file mode 100644 index 17edabff95f7b8da13c9516a04efe05493c29501..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 746 zcmV7=@pnbNXRFEm&G8P!&WHG=d)>K?YZ1bzou)2{$)) zumDct!>4SyxL;zgaG>wy`^Hv*+}0kUfCrz~BCOViSb$_*&;{TGGn2^x9K*!Sf0=lV zpP=7O;GA0*Jm*tTYj$IoXvimpnV4S1Z5f$p*f$Db2iq2zrVGQUz~yq`ahn7ck(|CE z7Gz;%OP~J6)tEZWDzjhL9h2hdfoU2)Nd%T<5Kt;Y0XLt&<@6pQx!nw*5`@bq#?l*?3z{Hlzoc=Pr>oB5(9i6~_&-}A(4{Q$>c>%rV&E|a(r&;?i5cQB=} zYSDU5nXG)NS4HEs0it2AHe2>shCyr7`6@4*6{r@8fXRbTA?=IFVWAQJL&H5H{)DpM#{W(GL+Idzf^)uRV@oB8u$ z8v{MfJbTiiRg4bza<41NAzrl{=3fl_D+$t+^!xlQ8S}{UtY`e z;;&9UhyZqQRN%2pot{*Ei0*4~hSF_3AH2@fKU!$NSflS>{@tZpDT4`M2WRTTVH+D? z)GFlEGGHe?koB}i|1w45!BF}N_q&^HJ&-tyR{(afC6H7|aml|tBBbv}55C5DNP8p3 z)~jLEO4Z&2hZmP^i-e%(@d!(E|KRafiU8Q5u(wU((j8un3OR*Hvj+t diff --git a/docs/docs/doxygen.css b/docs/docs/doxygen.css deleted file mode 100644 index ffbff02..0000000 --- a/docs/docs/doxygen.css +++ /dev/null @@ -1,1793 +0,0 @@ -/* The standard CSS for doxygen 1.9.1 */ - -body, table, div, p, dl { - font: 400 14px/22px Roboto,sans-serif; -} - -p.reference, p.definition { - font: 400 14px/22px Roboto,sans-serif; -} - -/* @group Heading Levels */ - -h1.groupheader { - font-size: 150%; -} - -.title { - font: 400 14px/28px Roboto,sans-serif; - font-size: 150%; - font-weight: bold; - margin: 10px 2px; -} - -h2.groupheader { - border-bottom: 1px solid #879ECB; - color: #354C7B; - font-size: 150%; - font-weight: normal; - margin-top: 1.75em; - padding-top: 8px; - padding-bottom: 4px; - width: 100%; -} - -h3.groupheader { - font-size: 100%; -} - -h1, h2, h3, h4, h5, h6 { - -webkit-transition: text-shadow 0.5s linear; - -moz-transition: text-shadow 0.5s linear; - -ms-transition: text-shadow 0.5s linear; - -o-transition: text-shadow 0.5s linear; - transition: text-shadow 0.5s linear; - margin-right: 15px; -} - -h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { - text-shadow: 0 0 15px cyan; -} - -dt { - font-weight: bold; -} - -ul.multicol { - -moz-column-gap: 1em; - -webkit-column-gap: 1em; - column-gap: 1em; - -moz-column-count: 3; - -webkit-column-count: 3; - column-count: 3; -} - -p.startli, p.startdd { - margin-top: 2px; -} - -th p.starttd, th p.intertd, th p.endtd { - font-size: 100%; - font-weight: 700; -} - -p.starttd { - margin-top: 0px; -} - -p.endli { - margin-bottom: 0px; -} - -p.enddd { - margin-bottom: 4px; -} - -p.endtd { - margin-bottom: 2px; -} - -p.interli { -} - -p.interdd { -} - -p.intertd { -} - -/* @end */ - -caption { - font-weight: bold; -} - -span.legend { - font-size: 70%; - text-align: center; -} - -h3.version { - font-size: 90%; - text-align: center; -} - -div.navtab { - border-right: 1px solid #A3B4D7; - padding-right: 15px; - text-align: right; - line-height: 110%; -} - -div.navtab table { - border-spacing: 0; -} - -td.navtab { - padding-right: 6px; - padding-left: 6px; -} -td.navtabHL { - background-image: url('tab_a.png'); - background-repeat:repeat-x; - padding-right: 6px; - padding-left: 6px; -} - -td.navtabHL a, td.navtabHL a:visited { - color: #fff; - text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); -} - -a.navtab { - font-weight: bold; -} - -div.qindex{ - text-align: center; - width: 100%; - line-height: 140%; - font-size: 130%; - color: #A0A0A0; -} - -dt.alphachar{ - font-size: 180%; - font-weight: bold; -} - -.alphachar a{ - color: black; -} - -.alphachar a:hover, .alphachar a:visited{ - text-decoration: none; -} - -.classindex dl { - padding: 25px; - column-count:1 -} - -.classindex dd { - display:inline-block; - margin-left: 50px; - width: 90%; - line-height: 1.15em; -} - -.classindex dl.odd { - background-color: #F8F9FC; -} - -@media(min-width: 1120px) { - .classindex dl { - column-count:2 - } -} - -@media(min-width: 1320px) { - .classindex dl { - column-count:3 - } -} - - -/* @group Link Styling */ - -a { - color: #3D578C; - font-weight: normal; - text-decoration: none; -} - -.contents a:visited { - color: #4665A2; -} - -a:hover { - text-decoration: underline; -} - -.contents a.qindexHL:visited { - color: #FFFFFF; -} - -a.el { - font-weight: bold; -} - -a.elRef { -} - -a.code, a.code:visited, a.line, a.line:visited { - color: #4665A2; -} - -a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { - color: #4665A2; -} - -/* @end */ - -dl.el { - margin-left: -1cm; -} - -ul { - overflow: hidden; /*Fixed: list item bullets overlap floating elements*/ -} - -#side-nav ul { - overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ -} - -#main-nav ul { - overflow: visible; /* reset ul rule for the navigation bar drop down lists */ -} - -.fragment { - text-align: left; - direction: ltr; - overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ - overflow-y: hidden; -} - -pre.fragment { - border: 1px solid #C4CFE5; - background-color: #FBFCFD; - padding: 4px 6px; - margin: 4px 8px 4px 2px; - overflow: auto; - word-wrap: break-word; - font-size: 9pt; - line-height: 125%; - font-family: monospace, fixed; - font-size: 105%; -} - -div.fragment { - padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ - margin: 4px 8px 4px 2px; - background-color: #FBFCFD; - border: 1px solid #C4CFE5; -} - -div.line { - font-family: monospace, fixed; - font-size: 13px; - min-height: 13px; - line-height: 1.0; - text-wrap: unrestricted; - white-space: -moz-pre-wrap; /* Moz */ - white-space: -pre-wrap; /* Opera 4-6 */ - white-space: -o-pre-wrap; /* Opera 7 */ - white-space: pre-wrap; /* CSS3 */ - word-wrap: break-word; /* IE 5.5+ */ - text-indent: -53px; - padding-left: 53px; - padding-bottom: 0px; - margin: 0px; - -webkit-transition-property: background-color, box-shadow; - -webkit-transition-duration: 0.5s; - -moz-transition-property: background-color, box-shadow; - -moz-transition-duration: 0.5s; - -ms-transition-property: background-color, box-shadow; - -ms-transition-duration: 0.5s; - -o-transition-property: background-color, box-shadow; - -o-transition-duration: 0.5s; - transition-property: background-color, box-shadow; - transition-duration: 0.5s; -} - -div.line:after { - content:"\000A"; - white-space: pre; -} - -div.line.glow { - background-color: cyan; - box-shadow: 0 0 10px cyan; -} - - -span.lineno { - padding-right: 4px; - text-align: right; - border-right: 2px solid #0F0; - background-color: #E8E8E8; - white-space: pre; -} -span.lineno a { - background-color: #D8D8D8; -} - -span.lineno a:hover { - background-color: #C8C8C8; -} - -.lineno { - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -div.ah, span.ah { - background-color: black; - font-weight: bold; - color: #FFFFFF; - margin-bottom: 3px; - margin-top: 3px; - padding: 0.2em; - border: solid thin #333; - border-radius: 0.5em; - -webkit-border-radius: .5em; - -moz-border-radius: .5em; - box-shadow: 2px 2px 3px #999; - -webkit-box-shadow: 2px 2px 3px #999; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); - background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); -} - -div.classindex ul { - list-style: none; - padding-left: 0; -} - -div.classindex span.ai { - display: inline-block; -} - -div.groupHeader { - margin-left: 16px; - margin-top: 12px; - font-weight: bold; -} - -div.groupText { - margin-left: 16px; - font-style: italic; -} - -body { - background-color: white; - color: black; - margin: 0; -} - -div.contents { - margin-top: 10px; - margin-left: 12px; - margin-right: 8px; -} - -td.indexkey { - background-color: #EBEFF6; - font-weight: bold; - border: 1px solid #C4CFE5; - margin: 2px 0px 2px 0; - padding: 2px 10px; - white-space: nowrap; - vertical-align: top; -} - -td.indexvalue { - background-color: #EBEFF6; - border: 1px solid #C4CFE5; - padding: 2px 10px; - margin: 2px 0px; -} - -tr.memlist { - background-color: #EEF1F7; -} - -p.formulaDsp { - text-align: center; -} - -img.formulaDsp { - -} - -img.formulaInl, img.inline { - vertical-align: middle; -} - -div.center { - text-align: center; - margin-top: 0px; - margin-bottom: 0px; - padding: 0px; -} - -div.center img { - border: 0px; -} - -address.footer { - text-align: right; - padding-right: 12px; -} - -img.footer { - border: 0px; - vertical-align: middle; -} - -/* @group Code Colorization */ - -span.keyword { - color: #008000 -} - -span.keywordtype { - color: #604020 -} - -span.keywordflow { - color: #e08000 -} - -span.comment { - color: #800000 -} - -span.preprocessor { - color: #806020 -} - -span.stringliteral { - color: #002080 -} - -span.charliteral { - color: #008080 -} - -span.vhdldigit { - color: #ff00ff -} - -span.vhdlchar { - color: #000000 -} - -span.vhdlkeyword { - color: #700070 -} - -span.vhdllogic { - color: #ff0000 -} - -blockquote { - background-color: #F7F8FB; - border-left: 2px solid #9CAFD4; - margin: 0 24px 0 4px; - padding: 0 12px 0 16px; -} - -blockquote.DocNodeRTL { - border-left: 0; - border-right: 2px solid #9CAFD4; - margin: 0 4px 0 24px; - padding: 0 16px 0 12px; -} - -/* @end */ - -/* -.search { - color: #003399; - font-weight: bold; -} - -form.search { - margin-bottom: 0px; - margin-top: 0px; -} - -input.search { - font-size: 75%; - color: #000080; - font-weight: normal; - background-color: #e8eef2; -} -*/ - -td.tiny { - font-size: 75%; -} - -.dirtab { - padding: 4px; - border-collapse: collapse; - border: 1px solid #A3B4D7; -} - -th.dirtab { - background: #EBEFF6; - font-weight: bold; -} - -hr { - height: 0px; - border: none; - border-top: 1px solid #4A6AAA; -} - -hr.footer { - height: 1px; -} - -/* @group Member Descriptions */ - -table.memberdecls { - border-spacing: 0px; - padding: 0px; -} - -.memberdecls td, .fieldtable tr { - -webkit-transition-property: background-color, box-shadow; - -webkit-transition-duration: 0.5s; - -moz-transition-property: background-color, box-shadow; - -moz-transition-duration: 0.5s; - -ms-transition-property: background-color, box-shadow; - -ms-transition-duration: 0.5s; - -o-transition-property: background-color, box-shadow; - -o-transition-duration: 0.5s; - transition-property: background-color, box-shadow; - transition-duration: 0.5s; -} - -.memberdecls td.glow, .fieldtable tr.glow { - background-color: cyan; - box-shadow: 0 0 15px cyan; -} - -.mdescLeft, .mdescRight, -.memItemLeft, .memItemRight, -.memTemplItemLeft, .memTemplItemRight, .memTemplParams { - background-color: #F9FAFC; - border: none; - margin: 4px; - padding: 1px 0 0 8px; -} - -.mdescLeft, .mdescRight { - padding: 0px 8px 4px 8px; - color: #555; -} - -.memSeparator { - border-bottom: 1px solid #DEE4F0; - line-height: 1px; - margin: 0px; - padding: 0px; -} - -.memItemLeft, .memTemplItemLeft { - white-space: nowrap; -} - -.memItemRight, .memTemplItemRight { - width: 100%; -} - -.memTemplParams { - color: #4665A2; - white-space: nowrap; - font-size: 80%; -} - -/* @end */ - -/* @group Member Details */ - -/* Styles for detailed member documentation */ - -.memtitle { - padding: 8px; - border-top: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - border-top-right-radius: 4px; - border-top-left-radius: 4px; - margin-bottom: -1px; - background-image: url('nav_f.png'); - background-repeat: repeat-x; - background-color: #E2E8F2; - line-height: 1.25; - font-weight: 300; - float:left; -} - -.permalink -{ - font-size: 65%; - display: inline-block; - vertical-align: middle; -} - -.memtemplate { - font-size: 80%; - color: #4665A2; - font-weight: normal; - margin-left: 9px; -} - -.memnav { - background-color: #EBEFF6; - border: 1px solid #A3B4D7; - text-align: center; - margin: 2px; - margin-right: 15px; - padding: 2px; -} - -.mempage { - width: 100%; -} - -.memitem { - padding: 0; - margin-bottom: 10px; - margin-right: 5px; - -webkit-transition: box-shadow 0.5s linear; - -moz-transition: box-shadow 0.5s linear; - -ms-transition: box-shadow 0.5s linear; - -o-transition: box-shadow 0.5s linear; - transition: box-shadow 0.5s linear; - display: table !important; - width: 100%; -} - -.memitem.glow { - box-shadow: 0 0 15px cyan; -} - -.memname { - font-weight: 400; - margin-left: 6px; -} - -.memname td { - vertical-align: bottom; -} - -.memproto, dl.reflist dt { - border-top: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - padding: 6px 0px 6px 0px; - color: #253555; - font-weight: bold; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - background-color: #DFE5F1; - /* opera specific markup */ - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - border-top-right-radius: 4px; - /* firefox specific markup */ - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - -moz-border-radius-topright: 4px; - /* webkit specific markup */ - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - -webkit-border-top-right-radius: 4px; - -} - -.overload { - font-family: "courier new",courier,monospace; - font-size: 65%; -} - -.memdoc, dl.reflist dd { - border-bottom: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - padding: 6px 10px 2px 10px; - background-color: #FBFCFD; - border-top-width: 0; - background-image:url('nav_g.png'); - background-repeat:repeat-x; - background-color: #FFFFFF; - /* opera specific markup */ - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - /* firefox specific markup */ - -moz-border-radius-bottomleft: 4px; - -moz-border-radius-bottomright: 4px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - /* webkit specific markup */ - -webkit-border-bottom-left-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -} - -dl.reflist dt { - padding: 5px; -} - -dl.reflist dd { - margin: 0px 0px 10px 0px; - padding: 5px; -} - -.paramkey { - text-align: right; -} - -.paramtype { - white-space: nowrap; -} - -.paramname { - color: #602020; - white-space: nowrap; -} -.paramname em { - font-style: normal; -} -.paramname code { - line-height: 14px; -} - -.params, .retval, .exception, .tparams { - margin-left: 0px; - padding-left: 0px; -} - -.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { - font-weight: bold; - vertical-align: top; -} - -.params .paramtype, .tparams .paramtype { - font-style: italic; - vertical-align: top; -} - -.params .paramdir, .tparams .paramdir { - font-family: "courier new",courier,monospace; - vertical-align: top; -} - -table.mlabels { - border-spacing: 0px; -} - -td.mlabels-left { - width: 100%; - padding: 0px; -} - -td.mlabels-right { - vertical-align: bottom; - padding: 0px; - white-space: nowrap; -} - -span.mlabels { - margin-left: 8px; -} - -span.mlabel { - background-color: #728DC1; - border-top:1px solid #5373B4; - border-left:1px solid #5373B4; - border-right:1px solid #C4CFE5; - border-bottom:1px solid #C4CFE5; - text-shadow: none; - color: white; - margin-right: 4px; - padding: 2px 3px; - border-radius: 3px; - font-size: 7pt; - white-space: nowrap; - vertical-align: middle; -} - - - -/* @end */ - -/* these are for tree view inside a (index) page */ - -div.directory { - margin: 10px 0px; - border-top: 1px solid #9CAFD4; - border-bottom: 1px solid #9CAFD4; - width: 100%; -} - -.directory table { - border-collapse:collapse; -} - -.directory td { - margin: 0px; - padding: 0px; - vertical-align: top; -} - -.directory td.entry { - white-space: nowrap; - padding-right: 6px; - padding-top: 3px; -} - -.directory td.entry a { - outline:none; -} - -.directory td.entry a img { - border: none; -} - -.directory td.desc { - width: 100%; - padding-left: 6px; - padding-right: 6px; - padding-top: 3px; - border-left: 1px solid rgba(0,0,0,0.05); -} - -.directory tr.even { - padding-left: 6px; - background-color: #F7F8FB; -} - -.directory img { - vertical-align: -30%; -} - -.directory .levels { - white-space: nowrap; - width: 100%; - text-align: right; - font-size: 9pt; -} - -.directory .levels span { - cursor: pointer; - padding-left: 2px; - padding-right: 2px; - color: #3D578C; -} - -.arrow { - color: #9CAFD4; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - cursor: pointer; - font-size: 80%; - display: inline-block; - width: 16px; - height: 22px; -} - -.icon { - font-family: Arial, Helvetica; - font-weight: bold; - font-size: 12px; - height: 14px; - width: 16px; - display: inline-block; - background-color: #728DC1; - color: white; - text-align: center; - border-radius: 4px; - margin-left: 2px; - margin-right: 2px; -} - -.icona { - width: 24px; - height: 22px; - display: inline-block; -} - -.iconfopen { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('folderopen.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -.iconfclosed { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('folderclosed.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -.icondoc { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('doc.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -table.directory { - font: 400 14px Roboto,sans-serif; -} - -/* @end */ - -div.dynheader { - margin-top: 8px; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -address { - font-style: normal; - color: #2A3D61; -} - -table.doxtable caption { - caption-side: top; -} - -table.doxtable { - border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; -} - -table.doxtable td, table.doxtable th { - border: 1px solid #2D4068; - padding: 3px 7px 2px; -} - -table.doxtable th { - background-color: #374F7F; - color: #FFFFFF; - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; -} - -table.fieldtable { - /*width: 100%;*/ - margin-bottom: 10px; - border: 1px solid #A8B8D9; - border-spacing: 0px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - border-radius: 4px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); - box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); -} - -.fieldtable td, .fieldtable th { - padding: 3px 7px 2px; -} - -.fieldtable td.fieldtype, .fieldtable td.fieldname { - white-space: nowrap; - border-right: 1px solid #A8B8D9; - border-bottom: 1px solid #A8B8D9; - vertical-align: top; -} - -.fieldtable td.fieldname { - padding-top: 3px; -} - -.fieldtable td.fielddoc { - border-bottom: 1px solid #A8B8D9; - /*width: 100%;*/ -} - -.fieldtable td.fielddoc p:first-child { - margin-top: 0px; -} - -.fieldtable td.fielddoc p:last-child { - margin-bottom: 2px; -} - -.fieldtable tr:last-child td { - border-bottom: none; -} - -.fieldtable th { - background-image:url('nav_f.png'); - background-repeat:repeat-x; - background-color: #E2E8F2; - font-size: 90%; - color: #253555; - padding-bottom: 4px; - padding-top: 5px; - text-align:left; - font-weight: 400; - -moz-border-radius-topleft: 4px; - -moz-border-radius-topright: 4px; - -webkit-border-top-left-radius: 4px; - -webkit-border-top-right-radius: 4px; - border-top-left-radius: 4px; - border-top-right-radius: 4px; - border-bottom: 1px solid #A8B8D9; -} - - -.tabsearch { - top: 0px; - left: 10px; - height: 36px; - background-image: url('tab_b.png'); - z-index: 101; - overflow: hidden; - font-size: 13px; -} - -.navpath ul -{ - font-size: 11px; - background-image:url('tab_b.png'); - background-repeat:repeat-x; - background-position: 0 -5px; - height:30px; - line-height:30px; - color:#8AA0CC; - border:solid 1px #C2CDE4; - overflow:hidden; - margin:0px; - padding:0px; -} - -.navpath li -{ - list-style-type:none; - float:left; - padding-left:10px; - padding-right:15px; - background-image:url('bc_s.png'); - background-repeat:no-repeat; - background-position:right; - color:#364D7C; -} - -.navpath li.navelem a -{ - height:32px; - display:block; - text-decoration: none; - outline: none; - color: #283A5D; - font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - text-decoration: none; -} - -.navpath li.navelem a:hover -{ - color:#6884BD; -} - -.navpath li.footer -{ - list-style-type:none; - float:right; - padding-left:10px; - padding-right:15px; - background-image:none; - background-repeat:no-repeat; - background-position:right; - color:#364D7C; - font-size: 8pt; -} - - -div.summary -{ - float: right; - font-size: 8pt; - padding-right: 5px; - width: 50%; - text-align: right; -} - -div.summary a -{ - white-space: nowrap; -} - -table.classindex -{ - margin: 10px; - white-space: nowrap; - margin-left: 3%; - margin-right: 3%; - width: 94%; - border: 0; - border-spacing: 0; - padding: 0; -} - -div.ingroups -{ - font-size: 8pt; - width: 50%; - text-align: left; -} - -div.ingroups a -{ - white-space: nowrap; -} - -div.header -{ - background-image:url('nav_h.png'); - background-repeat:repeat-x; - background-color: #F9FAFC; - margin: 0px; - border-bottom: 1px solid #C4CFE5; -} - -div.headertitle -{ - padding: 5px 5px 5px 10px; -} - -.PageDocRTL-title div.headertitle { - text-align: right; - direction: rtl; -} - -dl { - padding: 0 0 0 0; -} - -/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ -dl.section { - margin-left: 0px; - padding-left: 0px; -} - -dl.section.DocNodeRTL { - margin-right: 0px; - padding-right: 0px; -} - -dl.note { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #D0C000; -} - -dl.note.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #D0C000; -} - -dl.warning, dl.attention { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #FF0000; -} - -dl.warning.DocNodeRTL, dl.attention.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #FF0000; -} - -dl.pre, dl.post, dl.invariant { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #00D000; -} - -dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #00D000; -} - -dl.deprecated { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #505050; -} - -dl.deprecated.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #505050; -} - -dl.todo { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #00C0E0; -} - -dl.todo.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #00C0E0; -} - -dl.test { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #3030E0; -} - -dl.test.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #3030E0; -} - -dl.bug { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #C08050; -} - -dl.bug.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #C08050; -} - -dl.section dd { - margin-bottom: 6px; -} - - -#projectlogo -{ - text-align: center; - vertical-align: bottom; - border-collapse: separate; -} - -#projectlogo img -{ - border: 0px none; -} - -#projectalign -{ - vertical-align: middle; -} - -#projectname -{ - font: 300% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 2px 0px; -} - -#projectbrief -{ - font: 120% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 0px; -} - -#projectnumber -{ - font: 50% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 0px; -} - -#titlearea -{ - padding: 0px; - margin: 0px; - width: 100%; - border-bottom: 1px solid #5373B4; -} - -.image -{ - text-align: center; -} - -.dotgraph -{ - text-align: center; -} - -.mscgraph -{ - text-align: center; -} - -.plantumlgraph -{ - text-align: center; -} - -.diagraph -{ - text-align: center; -} - -.caption -{ - font-weight: bold; -} - -div.zoom -{ - border: 1px solid #90A5CE; -} - -dl.citelist { - margin-bottom:50px; -} - -dl.citelist dt { - color:#334975; - float:left; - font-weight:bold; - margin-right:10px; - padding:5px; - text-align:right; - width:52px; -} - -dl.citelist dd { - margin:2px 0 2px 72px; - padding:5px 0; -} - -div.toc { - padding: 14px 25px; - background-color: #F4F6FA; - border: 1px solid #D8DFEE; - border-radius: 7px 7px 7px 7px; - float: right; - height: auto; - margin: 0 8px 10px 10px; - width: 200px; -} - -.PageDocRTL-title div.toc { - float: left !important; - text-align: right; -} - -div.toc li { - background: url("bdwn.png") no-repeat scroll 0 5px transparent; - font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; - margin-top: 5px; - padding-left: 10px; - padding-top: 2px; -} - -.PageDocRTL-title div.toc li { - background-position-x: right !important; - padding-left: 0 !important; - padding-right: 10px; -} - -div.toc h3 { - font: bold 12px/1.2 Arial,FreeSans,sans-serif; - color: #4665A2; - border-bottom: 0 none; - margin: 0; -} - -div.toc ul { - list-style: none outside none; - border: medium none; - padding: 0px; -} - -div.toc li.level1 { - margin-left: 0px; -} - -div.toc li.level2 { - margin-left: 15px; -} - -div.toc li.level3 { - margin-left: 30px; -} - -div.toc li.level4 { - margin-left: 45px; -} - -span.emoji { - /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html - * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; - */ -} - -.PageDocRTL-title div.toc li.level1 { - margin-left: 0 !important; - margin-right: 0; -} - -.PageDocRTL-title div.toc li.level2 { - margin-left: 0 !important; - margin-right: 15px; -} - -.PageDocRTL-title div.toc li.level3 { - margin-left: 0 !important; - margin-right: 30px; -} - -.PageDocRTL-title div.toc li.level4 { - margin-left: 0 !important; - margin-right: 45px; -} - -.inherit_header { - font-weight: bold; - color: gray; - cursor: pointer; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.inherit_header td { - padding: 6px 0px 2px 5px; -} - -.inherit { - display: none; -} - -tr.heading h2 { - margin-top: 12px; - margin-bottom: 4px; -} - -/* tooltip related style info */ - -.ttc { - position: absolute; - display: none; -} - -#powerTip { - cursor: default; - white-space: nowrap; - background-color: white; - border: 1px solid gray; - border-radius: 4px 4px 4px 4px; - box-shadow: 1px 1px 7px gray; - display: none; - font-size: smaller; - max-width: 80%; - opacity: 0.9; - padding: 1ex 1em 1em; - position: absolute; - z-index: 2147483647; -} - -#powerTip div.ttdoc { - color: grey; - font-style: italic; -} - -#powerTip div.ttname a { - font-weight: bold; -} - -#powerTip div.ttname { - font-weight: bold; -} - -#powerTip div.ttdeci { - color: #006318; -} - -#powerTip div { - margin: 0px; - padding: 0px; - font: 12px/16px Roboto,sans-serif; -} - -#powerTip:before, #powerTip:after { - content: ""; - position: absolute; - margin: 0px; -} - -#powerTip.n:after, #powerTip.n:before, -#powerTip.s:after, #powerTip.s:before, -#powerTip.w:after, #powerTip.w:before, -#powerTip.e:after, #powerTip.e:before, -#powerTip.ne:after, #powerTip.ne:before, -#powerTip.se:after, #powerTip.se:before, -#powerTip.nw:after, #powerTip.nw:before, -#powerTip.sw:after, #powerTip.sw:before { - border: solid transparent; - content: " "; - height: 0; - width: 0; - position: absolute; -} - -#powerTip.n:after, #powerTip.s:after, -#powerTip.w:after, #powerTip.e:after, -#powerTip.nw:after, #powerTip.ne:after, -#powerTip.sw:after, #powerTip.se:after { - border-color: rgba(255, 255, 255, 0); -} - -#powerTip.n:before, #powerTip.s:before, -#powerTip.w:before, #powerTip.e:before, -#powerTip.nw:before, #powerTip.ne:before, -#powerTip.sw:before, #powerTip.se:before { - border-color: rgba(128, 128, 128, 0); -} - -#powerTip.n:after, #powerTip.n:before, -#powerTip.ne:after, #powerTip.ne:before, -#powerTip.nw:after, #powerTip.nw:before { - top: 100%; -} - -#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { - border-top-color: #FFFFFF; - border-width: 10px; - margin: 0px -10px; -} -#powerTip.n:before { - border-top-color: #808080; - border-width: 11px; - margin: 0px -11px; -} -#powerTip.n:after, #powerTip.n:before { - left: 50%; -} - -#powerTip.nw:after, #powerTip.nw:before { - right: 14px; -} - -#powerTip.ne:after, #powerTip.ne:before { - left: 14px; -} - -#powerTip.s:after, #powerTip.s:before, -#powerTip.se:after, #powerTip.se:before, -#powerTip.sw:after, #powerTip.sw:before { - bottom: 100%; -} - -#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { - border-bottom-color: #FFFFFF; - border-width: 10px; - margin: 0px -10px; -} - -#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { - border-bottom-color: #808080; - border-width: 11px; - margin: 0px -11px; -} - -#powerTip.s:after, #powerTip.s:before { - left: 50%; -} - -#powerTip.sw:after, #powerTip.sw:before { - right: 14px; -} - -#powerTip.se:after, #powerTip.se:before { - left: 14px; -} - -#powerTip.e:after, #powerTip.e:before { - left: 100%; -} -#powerTip.e:after { - border-left-color: #FFFFFF; - border-width: 10px; - top: 50%; - margin-top: -10px; -} -#powerTip.e:before { - border-left-color: #808080; - border-width: 11px; - top: 50%; - margin-top: -11px; -} - -#powerTip.w:after, #powerTip.w:before { - right: 100%; -} -#powerTip.w:after { - border-right-color: #FFFFFF; - border-width: 10px; - top: 50%; - margin-top: -10px; -} -#powerTip.w:before { - border-right-color: #808080; - border-width: 11px; - top: 50%; - margin-top: -11px; -} - -@media print -{ - #top { display: none; } - #side-nav { display: none; } - #nav-path { display: none; } - body { overflow:visible; } - h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } - .summary { display: none; } - .memitem { page-break-inside: avoid; } - #doc-content - { - margin-left:0 !important; - height:auto !important; - width:auto !important; - overflow:inherit; - display:inline; - } -} - -/* @group Markdown */ - -table.markdownTable { - border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; -} - -table.markdownTable td, table.markdownTable th { - border: 1px solid #2D4068; - padding: 3px 7px 2px; -} - -table.markdownTable tr { -} - -th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { - background-color: #374F7F; - color: #FFFFFF; - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; -} - -th.markdownTableHeadLeft, td.markdownTableBodyLeft { - text-align: left -} - -th.markdownTableHeadRight, td.markdownTableBodyRight { - text-align: right -} - -th.markdownTableHeadCenter, td.markdownTableBodyCenter { - text-align: center -} - -.DocNodeRTL { - text-align: right; - direction: rtl; -} - -.DocNodeLTR { - text-align: left; - direction: ltr; -} - -table.DocNodeRTL { - width: auto; - margin-right: 0; - margin-left: auto; -} - -table.DocNodeLTR { - width: auto; - margin-right: auto; - margin-left: 0; -} - -tt, code, kbd, samp -{ - display: inline-block; - direction:ltr; -} -/* @end */ - -u { - text-decoration: underline; -} - diff --git a/docs/docs/doxygen.svg b/docs/docs/doxygen.svg deleted file mode 100644 index d42dad5..0000000 --- a/docs/docs/doxygen.svg +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/docs/dynsections.js b/docs/docs/dynsections.js deleted file mode 100644 index 3174bd7..0000000 --- a/docs/docs/dynsections.js +++ /dev/null @@ -1,121 +0,0 @@ -/* - @licstart The following is the entire license notice for the JavaScript code in this file. - - The MIT License (MIT) - - Copyright (C) 1997-2020 by Dimitri van Heesch - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software - and associated documentation files (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, publish, distribute, - sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or - substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING - BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - @licend The above is the entire license notice for the JavaScript code in this file - */ -function toggleVisibility(linkObj) -{ - var base = $(linkObj).attr('id'); - var summary = $('#'+base+'-summary'); - var content = $('#'+base+'-content'); - var trigger = $('#'+base+'-trigger'); - var src=$(trigger).attr('src'); - if (content.is(':visible')===true) { - content.hide(); - summary.show(); - $(linkObj).addClass('closed').removeClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); - } else { - content.show(); - summary.hide(); - $(linkObj).removeClass('closed').addClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); - } - return false; -} - -function updateStripes() -{ - $('table.directory tr'). - removeClass('even').filter(':visible:even').addClass('even'); -} - -function toggleLevel(level) -{ - $('table.directory tr').each(function() { - var l = this.id.split('_').length-1; - var i = $('#img'+this.id.substring(3)); - var a = $('#arr'+this.id.substring(3)); - if (la9#ETzayK)T~Jw&MMH>OIr#&;dC}is*2Mqdf&akCc=O@`qC+4i z5Iu3w#1M@KqXCz8TIZd1wli&kkl2HVcAiZ8PUn5z_kG@-y;?yK06=cA0U%H0PH+kU zl6dp}OR(|r8-RG+YLu`zbI}5TlOU6ToR41{9=uz^?dGTNL;wIMf|V3`d1Wj3y!#6` zBLZ?xpKR~^2x}?~zA(_NUu3IaDB$tKma*XUdOZN~c=dLt_h_k!dbxm_*ibDM zlFX`g{k$X}yIe%$N)cn1LNu=q9_CS)*>A zsX_mM4L@`(cSNQKMFc$RtYbx{79#j-J7hk*>*+ZZhM4Hw?I?rsXCi#mRWJ=-0LGV5a-WR0Qgt<|Nqf)C-@80`5gIz45^_20000IqP)X=#(TiCT&PiIIVc55T}TU}EUh*{q$|`3@{d>{Tc9Bo>e= zfmF3!f>fbI9#GoEHh0f`i5)wkLpva0ztf%HpZneK?w-7AK@b4Itw{y|Zd3k!fH?q2 zlhckHd_V2M_X7+)U&_Xcfvtw60l;--DgZmLSw-Y?S>)zIqMyJ1#FwLU*%bl38ok+! zh78H87n`ZTS;uhzAR$M`zZ`bVhq=+%u9^$5jDplgxd44}9;IRqUH1YHH|@6oFe%z( zo4)_>E$F&^P-f(#)>(TrnbE>Pefs9~@iN=|)Rz|V`sGfHNrJ)0gJb8xx+SBmRf@1l zvuzt=vGfI)<-F9!o&3l?>9~0QbUDT(wFdnQPv%xdD)m*g%!20>Bc9iYmGAp<9YAa( z0QgYgTWqf1qN++Gqp z8@AYPTB3E|6s=WLG?xw0tm|U!o=&zd+H0oRYE;Dbx+Na9s^STqX|Gnq%H8s(nGDGJ j8vwW|`Ts`)fSK|Kx=IK@RG@g200000NkvXXu0mjfauFEA diff --git a/docs/docs/functions.html b/docs/docs/functions.html deleted file mode 100644 index b7f3d7e..0000000 --- a/docs/docs/functions.html +++ /dev/null @@ -1,312 +0,0 @@ - - - - - - - -SinricPro Library: Class Members - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- b -

- - -

- g -

- - -

- h -

- - -

- o -

- - -

- r -

- - -

- s -

-
-
- - - - diff --git a/docs/docs/functions_func.html b/docs/docs/functions_func.html deleted file mode 100644 index bc17047..0000000 --- a/docs/docs/functions_func.html +++ /dev/null @@ -1,312 +0,0 @@ - - - - - - - -SinricPro Library: Class Members - Functions - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-  - -

- b -

- - -

- g -

- - -

- h -

- - -

- o -

- - -

- r -

- - -

- s -

-
-
- - - - diff --git a/docs/docs/graph_legend.html b/docs/docs/graph_legend.html deleted file mode 100644 index b9c26a1..0000000 --- a/docs/docs/graph_legend.html +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - - -SinricPro Library: Graph Legend - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
Graph Legend
-
-
-

This page explains how to interpret the graphs that are generated by doxygen.

-

Consider the following example:

/*! Invisible class because of truncation */
-
class Invisible { };
-
-
/*! Truncated class, inheritance relation is hidden */
-
class Truncated : public Invisible { };
-
-
/* Class not documented with doxygen comments */
-
class Undocumented { };
-
-
/*! Class that is inherited using public inheritance */
-
class PublicBase : public Truncated { };
-
-
/*! A template class */
-
template<class T> class Templ { };
-
-
/*! Class that is inherited using protected inheritance */
-
class ProtectedBase { };
-
-
/*! Class that is inherited using private inheritance */
-
class PrivateBase { };
-
-
/*! Class that is used by the Inherited class */
-
class Used { };
-
-
/*! Super class that inherits a number of other classes */
-
class Inherited : public PublicBase,
-
protected ProtectedBase,
-
private PrivateBase,
-
public Undocumented,
-
public Templ<int>
-
{
-
private:
-
Used *m_usedClass;
-
};
-

This will result in the following graph:

-

The boxes in the above graph have the following meaning:

-
    -
  • -A filled gray box represents the struct or class for which the graph is generated.
  • -
  • -A box with a black border denotes a documented struct or class.
  • -
  • -A box with a gray border denotes an undocumented struct or class.
  • -
  • -A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.
  • -
-

The arrows have the following meaning:

-
    -
  • -A dark blue arrow is used to visualize a public inheritance relation between two classes.
  • -
  • -A dark green arrow is used for protected inheritance.
  • -
  • -A dark red arrow is used for private inheritance.
  • -
  • -A purple dashed arrow is used if a class is contained or used by another class. The arrow is labelled with the variable(s) through which the pointed class or struct is accessible.
  • -
  • -A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labelled with the template parameters of the instance.
  • -
-
-
- - - - diff --git a/docs/docs/graph_legend.md5 b/docs/docs/graph_legend.md5 deleted file mode 100644 index 8fcdccd..0000000 --- a/docs/docs/graph_legend.md5 +++ /dev/null @@ -1 +0,0 @@ -f51bf6e9a10430aafef59831b08dcbfe \ No newline at end of file diff --git a/docs/docs/graph_legend.png b/docs/docs/graph_legend.png deleted file mode 100644 index ed2e657209dc1be920610bf0cf4ec23981e4bc82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13384 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 z 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 F{{R?3;r0Lk diff --git a/docs/docs/hierarchy.html b/docs/docs/hierarchy.html deleted file mode 100644 index 0621465..0000000 --- a/docs/docs/hierarchy.html +++ /dev/null @@ -1,282 +0,0 @@ - - - - - - - -SinricPro Library: Class Hierarchy - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
Class Hierarchy
-
-
-
-

Go to the graphical class hierarchy

-This inheritance list is sorted roughly, but not completely, alphabetically:
-
[detail level 12]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 CAirQualitySensor< T >AirQuality
 CAirQualitySensor< SinricProAirQualitySensor >
 CBrightnessController< T >BrightnessController
 CBrightnessController< SinricProLight >
 CChannelController< T >ChannelController
 CChannelController< SinricProTV >
 CColorController< T >ColorController
 CColorController< SinricProLight >
 CColorTemperatureController< T >ColorTemperatureController
 CColorTemperatureController< SinricProLight >
 CContactSensor< T >ContactSensor
 CContactSensor< SinricProContactsensor >
 CDoorbell< T >Dorbell
 CDoorbell< SinricProDoorbell >
 CDoorController< T >DoorController - only used for GarageDoor device and cannot used as capability for a custom device!
 CDoorController< SinricProGarageDoor >
 CEqualizerController< T >EqualizerController
 CEqualizerController< SinricProSpeaker >
 CInputController< T >InputController
 CInputController< SinricProSpeaker >
 CInputController< SinricProTV >
 CKeypadController< T >KeypadController
 CLockController< T >LockController
 CLockController< SinricProLock >
 CMediaController< T >MediaController
 CMediaController< SinricProSpeaker >
 CMediaController< SinricProTV >
 CModeController< T >ModeController
 CModeController< SinricProSpeaker >
 CMotionSensor< T >MotionSensor
 CMotionSensor< SinricProMotionsensor >
 CMuteController< T >MuteController
 CMuteController< SinricProSpeaker >
 CMuteController< SinricProTV >
 CPercentageController< T >PercentageController
 CPowerLevelController< T >PowerLevelController
 CPowerLevelController< SinricProDimSwitch >
 CPowerLevelController< SinricProFan >
 CPowerSensor< T >PowerSensor
 CPowerSensor< SinricProPowerSensor >
 CPowerStateController< T >PowerStateController
 CPowerStateController< SinricProAirQualitySensor >
 CPowerStateController< SinricProBlinds >
 CPowerStateController< SinricProCamera >
 CPowerStateController< SinricProContactsensor >
 CPowerStateController< SinricProDimSwitch >
 CPowerStateController< SinricProDoorbell >
 CPowerStateController< SinricProFan >
 CPowerStateController< SinricProFanUS >
 CPowerStateController< SinricProLight >
 CPowerStateController< SinricProMotionsensor >
 CPowerStateController< SinricProPowerSensor >
 CPowerStateController< SinricProSpeaker >
 CPowerStateController< SinricProSwitch >
 CPowerStateController< SinricProTemperaturesensor >
 CPowerStateController< SinricProThermostat >
 CPowerStateController< SinricProTV >
 CPowerStateController< SinricProWindowAC >
 CPushNotification< T >PushNotification
 CPushNotification< SinricProAirQualitySensor >
 CPushNotification< SinricProBlinds >
 CPushNotification< SinricProCamera >
 CPushNotification< SinricProContactsensor >
 CPushNotification< SinricProDimSwitch >
 CPushNotification< SinricProDoorbell >
 CPushNotification< SinricProFan >
 CPushNotification< SinricProFanUS >
 CPushNotification< SinricProGarageDoor >
 CPushNotification< SinricProLight >
 CPushNotification< SinricProLock >
 CPushNotification< SinricProMotionsensor >
 CPushNotification< SinricProPowerSensor >
 CPushNotification< SinricProSpeaker >
 CPushNotification< SinricProSwitch >
 CPushNotification< SinricProTemperaturesensor >
 CPushNotification< SinricProThermostat >
 CPushNotification< SinricProTV >
 CPushNotification< SinricProWindowAC >
 CRangeController< T >RangeControllerFloatInt
 CRangeController< SinricProBlinds >
 CRangeController< SinricProFanUS >
 CRangeController< SinricProWindowAC >
 CSinricProClassThe main class of this library, handling communication between SinricPro Server and your devices
 CSinricProDeviceBase class for all device types
 CTemperatureSensor< T >TemperatureSensor
 CTemperatureSensor< SinricProTemperaturesensor >
 CTemperatureSensor< SinricProThermostat >
 CThermostatController< T >ThermostatController
 CThermostatController< SinricProThermostat >
 CThermostatController< SinricProWindowAC >
 CToggleController< T >ToggleController
 CVolumeController< T >VolumeController
 CVolumeController< SinricProSpeaker >
 CVolumeController< SinricProTV >
-
-
-
- - - - diff --git a/docs/docs/hierarchy.js b/docs/docs/hierarchy.js deleted file mode 100644 index 5fa6d99..0000000 --- a/docs/docs/hierarchy.js +++ /dev/null @@ -1,249 +0,0 @@ -var hierarchy = -[ - [ "AirQualitySensor< T >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_air_quality_sensor.html", null ], - [ "AirQualitySensor< SinricProAirQualitySensor >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_air_quality_sensor.html", [ - [ "SinricProAirQualitySensor", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_air_quality_sensor.html", null ] - ] ], - [ "BrightnessController< T >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller.html", null ], - [ "BrightnessController< SinricProLight >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller.html", [ - [ "SinricProLight", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light.html", null ] - ] ], - [ "ChannelController< T >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller.html", null ], - [ "ChannelController< SinricProTV >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller.html", [ - [ "SinricProTV", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v.html", null ] - ] ], - [ "ColorController< T >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_controller.html", null ], - [ "ColorController< SinricProLight >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_controller.html", [ - [ "SinricProLight", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light.html", null ] - ] ], - [ "ColorTemperatureController< T >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller.html", null ], - [ "ColorTemperatureController< SinricProLight >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller.html", [ - [ "SinricProLight", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light.html", null ] - ] ], - [ "ContactSensor< T >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_contact_sensor.html", null ], - [ "ContactSensor< SinricProContactsensor >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_contact_sensor.html", [ - [ "SinricProContactsensor", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_contactsensor.html", null ] - ] ], - [ "Doorbell< T >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_doorbell.html", null ], - [ "Doorbell< SinricProDoorbell >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_doorbell.html", [ - [ "SinricProDoorbell", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_doorbell.html", null ] - ] ], - [ "DoorController< T >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_door_controller.html", null ], - [ "DoorController< SinricProGarageDoor >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_door_controller.html", [ - [ "SinricProGarageDoor", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_garage_door.html", null ] - ] ], - [ "EqualizerController< T >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller.html", null ], - [ "EqualizerController< SinricProSpeaker >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller.html", [ - [ "SinricProSpeaker", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.html", null ] - ] ], - [ "InputController< T >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_input_controller.html", null ], - [ "InputController< SinricProSpeaker >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_input_controller.html", [ - [ "SinricProSpeaker", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.html", null ] - ] ], - [ "InputController< SinricProTV >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_input_controller.html", [ - [ "SinricProTV", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v.html", null ] - ] ], - [ "KeypadController< T >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_keypad_controller.html", null ], - [ "LockController< T >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_lock_controller.html", null ], - [ "LockController< SinricProLock >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_lock_controller.html", [ - [ "SinricProLock", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_lock.html", null ] - ] ], - [ "MediaController< T >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller.html", null ], - [ "MediaController< SinricProSpeaker >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller.html", [ - [ "SinricProSpeaker", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.html", null ] - ] ], - [ "MediaController< SinricProTV >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller.html", [ - [ "SinricProTV", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v.html", null ] - ] ], - [ "ModeController< T >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller.html", null ], - [ "ModeController< SinricProSpeaker >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller.html", [ - [ "SinricProSpeaker", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.html", null ] - ] ], - [ "MotionSensor< T >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_motion_sensor.html", null ], - [ "MotionSensor< SinricProMotionsensor >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_motion_sensor.html", [ - [ "SinricProMotionsensor", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_motionsensor.html", null ] - ] ], - [ "MuteController< T >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller.html", null ], - [ "MuteController< SinricProSpeaker >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller.html", [ - [ "SinricProSpeaker", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.html", null ] - ] ], - [ "MuteController< SinricProTV >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller.html", [ - [ "SinricProTV", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v.html", null ] - ] ], - [ "PercentageController< T >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_percentage_controller.html", null ], - [ "PowerLevelController< T >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller.html", null ], - [ "PowerLevelController< SinricProDimSwitch >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller.html", [ - [ "SinricProDimSwitch", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_dim_switch.html", null ] - ] ], - [ "PowerLevelController< SinricProFan >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller.html", [ - [ "SinricProFan", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan.html", null ] - ] ], - [ "PowerSensor< T >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_sensor.html", null ], - [ "PowerSensor< SinricProPowerSensor >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_sensor.html", [ - [ "SinricProPowerSensor", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_power_sensor.html", null ] - ] ], - [ "PowerStateController< T >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html", null ], - [ "PowerStateController< SinricProAirQualitySensor >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html", [ - [ "SinricProAirQualitySensor", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_air_quality_sensor.html", null ] - ] ], - [ "PowerStateController< SinricProBlinds >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html", [ - [ "SinricProBlinds", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds.html", null ] - ] ], - [ "PowerStateController< SinricProCamera >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html", [ - [ "SinricProCamera", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_camera.html", null ] - ] ], - [ "PowerStateController< SinricProContactsensor >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html", [ - [ "SinricProContactsensor", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_contactsensor.html", null ] - ] ], - [ "PowerStateController< SinricProDimSwitch >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html", [ - [ "SinricProDimSwitch", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_dim_switch.html", null ] - ] ], - [ "PowerStateController< SinricProDoorbell >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html", [ - [ "SinricProDoorbell", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_doorbell.html", null ] - ] ], - [ "PowerStateController< SinricProFan >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html", [ - [ "SinricProFan", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan.html", null ] - ] ], - [ "PowerStateController< SinricProFanUS >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html", [ - [ "SinricProFanUS", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s.html", null ] - ] ], - [ "PowerStateController< SinricProLight >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html", [ - [ "SinricProLight", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light.html", null ] - ] ], - [ "PowerStateController< SinricProMotionsensor >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html", [ - [ "SinricProMotionsensor", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_motionsensor.html", null ] - ] ], - [ "PowerStateController< SinricProPowerSensor >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html", [ - [ "SinricProPowerSensor", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_power_sensor.html", null ] - ] ], - [ "PowerStateController< SinricProSpeaker >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html", [ - [ "SinricProSpeaker", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.html", null ] - ] ], - [ "PowerStateController< SinricProSwitch >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html", [ - [ "SinricProSwitch", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_switch.html", null ] - ] ], - [ "PowerStateController< SinricProTemperaturesensor >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html", [ - [ "SinricProTemperaturesensor", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_temperaturesensor.html", null ] - ] ], - [ "PowerStateController< SinricProThermostat >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html", [ - [ "SinricProThermostat", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat.html", null ] - ] ], - [ "PowerStateController< SinricProTV >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html", [ - [ "SinricProTV", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v.html", null ] - ] ], - [ "PowerStateController< SinricProWindowAC >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html", [ - [ "SinricProWindowAC", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c.html", null ] - ] ], - [ "PushNotification< T >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html", null ], - [ "PushNotification< SinricProAirQualitySensor >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html", [ - [ "SinricProAirQualitySensor", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_air_quality_sensor.html", null ] - ] ], - [ "PushNotification< SinricProBlinds >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html", [ - [ "SinricProBlinds", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds.html", null ] - ] ], - [ "PushNotification< SinricProCamera >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html", [ - [ "SinricProCamera", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_camera.html", null ] - ] ], - [ "PushNotification< SinricProContactsensor >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html", [ - [ "SinricProContactsensor", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_contactsensor.html", null ] - ] ], - [ "PushNotification< SinricProDimSwitch >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html", [ - [ "SinricProDimSwitch", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_dim_switch.html", null ] - ] ], - [ "PushNotification< SinricProDoorbell >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html", [ - [ "SinricProDoorbell", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_doorbell.html", null ] - ] ], - [ "PushNotification< SinricProFan >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html", [ - [ "SinricProFan", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan.html", null ] - ] ], - [ "PushNotification< SinricProFanUS >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html", [ - [ "SinricProFanUS", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s.html", null ] - ] ], - [ "PushNotification< SinricProGarageDoor >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html", [ - [ "SinricProGarageDoor", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_garage_door.html", null ] - ] ], - [ "PushNotification< SinricProLight >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html", [ - [ "SinricProLight", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light.html", null ] - ] ], - [ "PushNotification< SinricProLock >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html", [ - [ "SinricProLock", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_lock.html", null ] - ] ], - [ "PushNotification< SinricProMotionsensor >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html", [ - [ "SinricProMotionsensor", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_motionsensor.html", null ] - ] ], - [ "PushNotification< SinricProPowerSensor >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html", [ - [ "SinricProPowerSensor", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_power_sensor.html", null ] - ] ], - [ "PushNotification< SinricProSpeaker >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html", [ - [ "SinricProSpeaker", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.html", null ] - ] ], - [ "PushNotification< SinricProSwitch >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html", [ - [ "SinricProSwitch", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_switch.html", null ] - ] ], - [ "PushNotification< SinricProTemperaturesensor >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html", [ - [ "SinricProTemperaturesensor", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_temperaturesensor.html", null ] - ] ], - [ "PushNotification< SinricProThermostat >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html", [ - [ "SinricProThermostat", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat.html", null ] - ] ], - [ "PushNotification< SinricProTV >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html", [ - [ "SinricProTV", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v.html", null ] - ] ], - [ "PushNotification< SinricProWindowAC >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html", [ - [ "SinricProWindowAC", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c.html", null ] - ] ], - [ "RangeController< T >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller.html", null ], - [ "RangeController< SinricProBlinds >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller.html", [ - [ "SinricProBlinds", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds.html", null ] - ] ], - [ "RangeController< SinricProFanUS >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller.html", [ - [ "SinricProFanUS", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s.html", null ] - ] ], - [ "RangeController< SinricProWindowAC >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller.html", [ - [ "SinricProWindowAC", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c.html", null ] - ] ], - [ "SinricProClass", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_class.html", null ], - [ "SinricProDevice", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_device.html", [ - [ "SinricProAirQualitySensor", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_air_quality_sensor.html", null ], - [ "SinricProBlinds", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds.html", null ], - [ "SinricProCamera", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_camera.html", null ], - [ "SinricProContactsensor", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_contactsensor.html", null ], - [ "SinricProDimSwitch", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_dim_switch.html", null ], - [ "SinricProDoorbell", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_doorbell.html", null ], - [ "SinricProFan", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan.html", null ], - [ "SinricProFanUS", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s.html", null ], - [ "SinricProGarageDoor", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_garage_door.html", null ], - [ "SinricProLight", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light.html", null ], - [ "SinricProLock", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_lock.html", null ], - [ "SinricProMotionsensor", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_motionsensor.html", null ], - [ "SinricProPowerSensor", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_power_sensor.html", null ], - [ "SinricProSpeaker", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.html", null ], - [ "SinricProSwitch", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_switch.html", null ], - [ "SinricProTV", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v.html", null ], - [ "SinricProTemperaturesensor", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_temperaturesensor.html", null ], - [ "SinricProThermostat", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat.html", null ], - [ "SinricProWindowAC", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c.html", null ] - ] ], - [ "TemperatureSensor< T >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_temperature_sensor.html", null ], - [ "TemperatureSensor< SinricProTemperaturesensor >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_temperature_sensor.html", [ - [ "SinricProTemperaturesensor", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_temperaturesensor.html", null ] - ] ], - [ "TemperatureSensor< SinricProThermostat >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_temperature_sensor.html", [ - [ "SinricProThermostat", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat.html", null ] - ] ], - [ "ThermostatController< T >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller.html", null ], - [ "ThermostatController< SinricProThermostat >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller.html", [ - [ "SinricProThermostat", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat.html", null ] - ] ], - [ "ThermostatController< SinricProWindowAC >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller.html", [ - [ "SinricProWindowAC", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c.html", null ] - ] ], - [ "ToggleController< T >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_toggle_controller.html", null ], - [ "VolumeController< T >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller.html", null ], - [ "VolumeController< SinricProSpeaker >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller.html", [ - [ "SinricProSpeaker", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.html", null ] - ] ], - [ "VolumeController< SinricProTV >", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller.html", [ - [ "SinricProTV", "class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v.html", null ] - ] ] -]; \ No newline at end of file diff --git a/docs/docs/index.html b/docs/docs/index.html deleted file mode 100644 index 0447e1e..0000000 --- a/docs/docs/index.html +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - -SinricPro Library: SinricPro (ESP8266 / ESP32 SDK) - - - - - - - - - - - - - -
-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SinricPro (ESP8266 / ESP32 SDK)
-
-
-

arduino-library-badge PlatformIO Registry

-

Platform ESP8266 Platform ESP32

-

Framework

-

GitHub release (latest by date)

-

Build

-

-Note

-
    -
  1. Use the latest ESP Arduino Core!
  2. -
  3. Use the latest WebSocktes library!
  4. -
-

-Installation

-

-VS Code & PlatformIO:

-
    -
  1. Install VS Code
    -
  2. -
  3. Install PlatformIO
    -
  4. -
  5. Install SinricPro library by using Library Manager
    -
  6. -
  7. Use included platformio.ini file from examples to ensure that all dependent libraries will installed automaticly.
  8. -
-

sinricpro library manager

-

-ArduinoIDE

-
    -
  1. Open Library Manager (Tools / Manage Libraries)
    -
  2. -
  3. Search for SinricPro and click Install
    -
  4. -
  5. Repeat step 2 for all dependent libraries!
  6. -
  7. Open example in ArduinoIDE (File / Examples / SinricPro / ...)
    -
  8. -
-

ArduinoIDE Library Manager

-
-

-Dependencies

-

ArduinoJson by Benoit Blanchon (minimum Version 6.12.0)
- WebSockets by Markus Sattler (minimum Version 2.3.5)

-
-

-Full user documentation

-

Please see here for full user documentation

-
-

-Examples

-

See examples on GitHub

-
-

-Usage

-

-Include SinricPro-Library (SinricPro.h) and SinricPro-Device-Libraries (eg. SinricProSwitch.h)

-
{C++}
-
#include <SinricPro.h>
-
#include <SinricProSwitch.h>
-

-Define your credentials from SinricPro-Portal (portal.sinric.pro)

-
{C++}
-
#define APP_KEY "YOUR-APP-KEY" // Should look like "de0bxxxx-1x3x-4x3x-ax2x-5dabxxxxxxxx"
-
#define APP_SECRET "YOUR-APP-SECRET" // Should look like "5f36xxxx-x3x7-4x3x-xexe-e86724a9xxxx-4c4axxxx-3x3x-x5xe-x9x3-333d65xxxxxx"
-
#define SWITCH_ID "YOUR-DEVICE-ID" // Should look like "5dc1564130xxxxxxxxxxxxxx"
-

-Define callback routine(s)

-
{C++}
-
bool onPowerState(const String &deviceId, bool &state) {
-
Serial.printf("device %s turned %s\r\n", deviceId.c_str(), state?"on":"off");
-
return true; // indicate that callback handled correctly
-
}
-

-In setup()

-
{C++}
-
// create and add a switch to SinricPro
-
SinricProSwitch& mySwitch = SinricPro[SWITCH_ID];
-
// set callback function
-
mySwitch.onPowerState(onPowerState);
-
// startup SinricPro
-
SinricPro.begin(APP_KEY, APP_SECRET);
-

-In loop()

-
{C++}
-
SinricPro.handle();
-

-

-How to add a device?

-

Syntax is
-

{C++}
-
DeviceType& myDevice = SinricPro[DEVICE_ID];
-

Example
-

{C++}
-
SinricProSwitch& mySwitch = SinricPro["YOUR-SWITCH-ID-HERE"];
-

Example 2 (alternatively)

{C++}
-
SinricProSwitch& mySwitch = SinricPro.add<SinricProSwitch>("YOUR-SWITCH-ID-HERE");
-

-

-How to retrieve a device for sending an event?

-

Syntax is
-

{C++}
-
DeviceType& myDevice = SinricPro[DEVICE_ID];
-

Example 1

{C++}
-
SinricProDoorbell& myDoorbell = SinricPro["YOUR-DOORBELL-ID-HERE"];
-
myDoorbell.sendDoorbellEvent();
-

Example 2 (alternatively)

{C++}
-
SinricPro["YOUR-DOORBELL-ID-HERE"].as<SinricProDoorbell>().sendDoorbellEvent();
-

-

-Devices

-
    -
  • Switch
  • -
  • Dimmable Switch
  • -
  • Light
  • -
  • TV
  • -
  • Speaker
  • -
  • Thermostat
  • -
  • Fan (US and non US version)
  • -
  • Lock
  • -
  • Doorbell
  • -
  • Temperaturesensor
  • -
  • Motionsensor
  • -
  • Contactsensor
  • -
  • Windows Air Conditioner
  • -
  • Interior Blinds
  • -
  • Garage Door
  • -
-

-* Custom devices

-
-
-
- - - - diff --git a/docs/docs/inherit_graph_0.map b/docs/docs/inherit_graph_0.map deleted file mode 100644 index ced46d0..0000000 --- a/docs/docs/inherit_graph_0.map +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/docs/inherit_graph_0.md5 b/docs/docs/inherit_graph_0.md5 deleted file mode 100644 index f0d43b7..0000000 --- a/docs/docs/inherit_graph_0.md5 +++ /dev/null @@ -1 +0,0 @@ -92faddbb363d28af3e393f99fe4ff90c \ No newline at end of file diff --git a/docs/docs/inherit_graph_0.png b/docs/docs/inherit_graph_0.png deleted file mode 100644 index dffdb21c00468bdf10f248b55e0a1ec452f9735c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 289631 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

%aj6W3={wY~?pwBRY- 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%0Asr*5h$5^N}Qz^=W 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

b1HT&LV7*Wtr^<8^}vO05z6n`Rz7c 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 k>0_flc{nm+$7WAS?tH=@)QZQwi39(X - - diff --git a/docs/docs/inherit_graph_1.md5 b/docs/docs/inherit_graph_1.md5 deleted file mode 100644 index a67f181..0000000 --- a/docs/docs/inherit_graph_1.md5 +++ /dev/null @@ -1 +0,0 @@ -5e0f9c6e02f4985fa69edc664b35f6b8 \ No newline at end of file diff --git a/docs/docs/inherit_graph_1.png b/docs/docs/inherit_graph_1.png deleted file mode 100644 index c60ec67bfe8d4e434afe452ca7e2c740465b8688..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 602 zcmeAS@N?(olHy`uVBq!ia0vp^3xQabg9%736_V2jQfx`y?k)`fL2$v|<&zm0nD{+i z978JRyq$G>ZLS`}H-)*_k*G=~nADlbyeERyDo?ktWIo{oO^I*Sr+honBSmnTijgn5_E7O<$9qAGOk_Pk#wtGKNX%eyMtW|_)0S6f=O{F6(0 zyw=Ejs_8e&oownyH}Gdz2dOEzoZ@GgA}ny|H;de&lLF6n%+6W5>uA7=EgQmqFDcx4 ztk&y~a9ziR1^xNOP7h+|*LiI(yc1Jnv2pbxV{zZ9vgW5-?34_azx=W^an|*_sjTh3 z{VvHd6Qkxxt;)Y~@#}FDA5rGM(5W+j9A+S8fxOE)a~p~#(cw}4CA@$g>@79JxJWvhQ1F3ja}Sbyb; zxj-Fj-?uZm4;~e7J-{_#ZK2jGahbP0l+XkK#0?$M diff --git a/docs/docs/inherit_graph_10.map b/docs/docs/inherit_graph_10.map deleted file mode 100644 index 2c55b19..0000000 --- a/docs/docs/inherit_graph_10.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/docs/inherit_graph_10.md5 b/docs/docs/inherit_graph_10.md5 deleted file mode 100644 index 21e5c1e..0000000 --- a/docs/docs/inherit_graph_10.md5 +++ /dev/null @@ -1 +0,0 @@ -097584a903e1f373de2896689b425a6e \ No newline at end of file diff --git a/docs/docs/inherit_graph_10.png b/docs/docs/inherit_graph_10.png deleted file mode 100644 index c953bdb453ac8dd1d16ba5231ef62d65884b4901..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 534 zcmV+x0_pvUP)z%;JvfNogMD(#LV}_lex~|+nh6eu z(1xHj+7Lo8guG||Y3%{|9w;UPgJL2uC?*2qH#T_h&FAxJ;R_jvd7e+UQ)XJ%)hx?W z#UU~t+qQ}NIAx}tl=291&Y5YNl5MP+2n>pez@V5242p@s5DV}UthJ`aBR*^G|K}ba zF&^VkBPPf3$FztCL`>SGCMLF_Ca=|n@dSCLiS1>8PvG6;{zAd?y$A? zc3{esgHmC7=gs~t+~iah|O0liuVQ+`P2 zx;q|(FZ*|6bn2etIMC-%5mU~=*6aFCi67cNx2SzIHVQ)&;NQUArR7-rX^Lu?%+!h= zb~F-CGNHzVYYMgcZVplWrFL#T3n``~OCfiu$J$VX>X}JO<5xk8#S$NXb*rExfH`44 z>GzE - - diff --git a/docs/docs/inherit_graph_11.md5 b/docs/docs/inherit_graph_11.md5 deleted file mode 100644 index a3c8c1b..0000000 --- a/docs/docs/inherit_graph_11.md5 +++ /dev/null @@ -1 +0,0 @@ -a92b501591d64d4e3d13dde93c02d555 \ No newline at end of file diff --git a/docs/docs/inherit_graph_11.png b/docs/docs/inherit_graph_11.png deleted file mode 100644 index 8fa3143457703b93843ca1fab0abb87e5d79787e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 600 zcmV-e0;m0nP){!w}x@_Z?cugXp?$)warv<2Z)C z?=KNVp2svzs=rp5aVFukI&AdW~}+m%9*-GvxS!Vc?drHKDnlrW0+>fqgTwbL~12eJFhmrHG5)u zZ&z~0ykbo2t&Le`thp2PNbkS8&y&>7b7>GyLwby1X2zu`tz20zj#i$m;vsP)6MGoO z)97w@(_1NA_Gt#ry|yOaUTw%mlX!7J z(OWY1k+^5H9C^KW91RmQmPAVPSdUSPzct>`{?a%#8Z77XEk>(>-%S%3T+4JVSKR#( zd?3tNTjt4c!!k`^pcx4aG$Vn5W+X7EH!yA6Ua5mTgkc!eKGlrcZ(9lRBJ%$k2?+du mMuG#)NMN8D2@EtNf#Dy|){bYi`zSpC0000 - - diff --git a/docs/docs/inherit_graph_12.md5 b/docs/docs/inherit_graph_12.md5 deleted file mode 100644 index 44ed4fb..0000000 --- a/docs/docs/inherit_graph_12.md5 +++ /dev/null @@ -1 +0,0 @@ -e0510917645712db03cd1eedb5e635fe \ No newline at end of file diff --git a/docs/docs/inherit_graph_12.png b/docs/docs/inherit_graph_12.png deleted file mode 100644 index a187b9e5c5de390b9ca504d27e81c2b6c7659922..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 535 zcmeAS@N?(olHy`uVBq!ia0vp^lYv;3gAGW!mEEodQfx`y?k)`fL2$v|*ez8TrAN<>-c%tEfNSeYhUY&kzBMpj`+C*1)SX8ajpS}`>-=SL z#>d+5sbEr1;AIon&pXoLI)Mf_-)We>U~AY5_nP#athM#`t1FJY_#kar(}P!I_MKTeZSiLBP~YZfImiFpkhWGk6*ND)_U8JjS)1Q~ zeC%-j;?;Sas!ML|5=hOiNP2(y(Si$8XE@#4!fqwqz5jc*=Bn%GeH522UfwR;>vGoT z#-hW~Tw7OPjye0{>-)E%9*U}kO8zVV-P^#rVWy^7!5YIq4ndU*=LYEPtUiBhTGGj% zK}p}c^i7{e-=5geq4_*T%l>NS&Z4bfm*vE-+M|p*dl#=w}y0&;PwjE>55S`mnIvKkrfy;KRap)FlB(9kUN(c8Kr4; - - diff --git a/docs/docs/inherit_graph_13.md5 b/docs/docs/inherit_graph_13.md5 deleted file mode 100644 index 9f48105..0000000 --- a/docs/docs/inherit_graph_13.md5 +++ /dev/null @@ -1 +0,0 @@ -219a7ede12bbe81f5d241ee5145dc1a2 \ No newline at end of file diff --git a/docs/docs/inherit_graph_13.png b/docs/docs/inherit_graph_13.png deleted file mode 100644 index 14d0f6519488a40bcd9b94a19c451e2e5cd6cec1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 553 zcmeAS@N?(olHy`uVBq!ia0vp^Gl5u@g9%99GrRK`NUFNxt7tj&`fJuy{s))8?=@}u9K?44hGcZ721Pz*JUvD8Rlmz~)fClf?=CN$R^0X6 z){J%Ol&`__rpJFdZ^!$D&9~8fwNmTP<;5@MvUTfXubW+sWYRyZ^*SjlGk5iNpSx*~ zWI6o{AG5vLo^6%k_AM{iDo$ZS_OaD_a_zZAQ@`CXxOdD$UugN0wt~aC)hV`&VRjEY zE;^*Sw*H-*$9GNlMKyNP zN&P*3w^n|8a_6_*$*RCpUnhuaTwHcdhr4guwRvvqnVauvPP=)}O7h;KdBJI{L0rWp z!8^a~XPUseWePJYYJUE^Xx{U0l?^e|QeW=s>#Nuz)3z|wZb8TM&z|}I{|<9%p#2w1japsr>mdKI;Vst08=dk&Hw-a diff --git a/docs/docs/inherit_graph_14.map b/docs/docs/inherit_graph_14.map deleted file mode 100644 index 1d3e863..0000000 --- a/docs/docs/inherit_graph_14.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/docs/inherit_graph_14.md5 b/docs/docs/inherit_graph_14.md5 deleted file mode 100644 index bea6655..0000000 --- a/docs/docs/inherit_graph_14.md5 +++ /dev/null @@ -1 +0,0 @@ -071e61694046a8801636fe2c9d96109d \ No newline at end of file diff --git a/docs/docs/inherit_graph_14.png b/docs/docs/inherit_graph_14.png deleted file mode 100644 index c1ea66a2224dbbc07af8bdddc6ef982d1452a23f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 548 zcmeAS@N?(olHy`uVBq!ia0vp^(}7r(gAGXf&#h($Qfx`y?k)`fL2$v|<&zm07;k#I zIEGZrc{?YuuSJ2UHF0zKmoPb&z3l84t2gYwA+dzVLw@nI+LJ0??3!PFSI)ZFCeWnl zGXLrG+j0}WI~58_h=?~j0;&C(&EM~x`TU1B{zP-+w5M0fPQ~2bHnTLg-NI$w`F-yf z#re(Do)oO4sCmxP*f;pvv02>*7VO~Q>4H!j7vvv|%J%Blu)n$WS7i48?e9OF`10ca zRf#Qq>K}V6R&<<}u&h|hnLVj*eW{UqhZFaaKh+gSH_hNq;YggZ!F{o*eo4)hBU7zs zF3l0MpQP))a{iNG-~T)2-|Bli|5ntWRbO3SEuK2@k)?B|Pj2LzrCVy2-roAR>iE<@ z9S6^MhOAne^(X72>O1M?m9sBZWcMxHr6adF{Jnlo$=(Y_a<{h6x!~5bGS-Xde2nd$ zm2Fv(wt2wh?*1H$(WS>R<8R2~j%t&$~K&_#4B*e$+J~ gAclnvNc~~-?G8#fcvki|FxnYBUHx3vIVCg!00FoHBLDyZ diff --git a/docs/docs/inherit_graph_15.map b/docs/docs/inherit_graph_15.map deleted file mode 100644 index ea1b75d..0000000 --- a/docs/docs/inherit_graph_15.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/docs/inherit_graph_15.md5 b/docs/docs/inherit_graph_15.md5 deleted file mode 100644 index 403a4dc..0000000 --- a/docs/docs/inherit_graph_15.md5 +++ /dev/null @@ -1 +0,0 @@ -07f6bd13b5ff4dc4acc24079b10a03f7 \ No newline at end of file diff --git a/docs/docs/inherit_graph_15.png b/docs/docs/inherit_graph_15.png deleted file mode 100644 index 8a6ae11969f80036eb20423167211886822b96c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 501 zcmeAS@N?(olHy`uVBq!ia0vp^6M$Hig9%6~DSy`lQfx`y?k)`fL2$v|<&zm07*~0^ zIEG|2zMXMfutkB#H8p+qCZXRO1h@l#Z4lr}w4al>iEZNcv}g15udpypX9;uG zf0?ntL}7*j1nv8hbpLy57{LUvU zkGj`%rs?(YDK1n|E8cCYT~%nry7}5Ajy<>kABg2sc`;dk>yl#+JueA9wthG*u{>|u zbm!w;Q%_He6gqq%QueKKj9qA6W!7%CyGo6>B;Kj~F}d^X@v=v4+Ap=@4VF80AA0-N zp!DYh)lZar3i%qXF}-)DqhycQWr_7#n{1~g&gINMx#Vj9%L}hVcU%h%(XaB( z3E}tVSRVCo=6k-!Jn`kzrn4BBoZ7JZ)ZweW>jP_+z6g(XQ - - diff --git a/docs/docs/inherit_graph_16.md5 b/docs/docs/inherit_graph_16.md5 deleted file mode 100644 index cf0320f..0000000 --- a/docs/docs/inherit_graph_16.md5 +++ /dev/null @@ -1 +0,0 @@ -701ce3c8071a0db532a86abe4c463c4d \ No newline at end of file diff --git a/docs/docs/inherit_graph_16.png b/docs/docs/inherit_graph_16.png deleted file mode 100644 index 800e46ef840579db4fd2ce957f70cd1bd2efc0a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 515 zcmeAS@N?(olHy`uVBq!ia0vp^Q-D~Ng9%7#p9l{IQfx`y?k)`fL2$v|<&zm07P3zigM@{*yM~)?pfO+C@$?6U2Ijd%4YuYdFdzp?k)MWZs(0)USoatj}vB{Tl4HxZT=_j z6}xVKIWNI>oqhKS-+=l_swdu6tgU(pZ&6{iA$PB&^*ufZ66o3mjrN~5#~WfJ`XJOZ*Ti&#n9YP`Pt_C lbw&xEx_XYR1IXc~A34ooW9)~;0>D^h@O1TaS?83{1OR?( - - diff --git a/docs/docs/inherit_graph_17.md5 b/docs/docs/inherit_graph_17.md5 deleted file mode 100644 index e2b88f6..0000000 --- a/docs/docs/inherit_graph_17.md5 +++ /dev/null @@ -1 +0,0 @@ -e56922f3d2b5208ac886588f13d98c72 \ No newline at end of file diff --git a/docs/docs/inherit_graph_17.png b/docs/docs/inherit_graph_17.png deleted file mode 100644 index c41f8c308c2556f0825f3219c1508018f0a16485..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 611 zcmV-p0-XJcP)~_1;=`>z` z)Ro8Mal75BheTTBe!us9FD)B)(e-+*6%T2b!{K0AIIj>CYK5RsD+GmFAt;{NHi|LE zvV8B4N@Fe+QZUB6PZ>WH@#z|8%0;7<&WWaA@?pvzB)#c8S4(_~%=nY|zdgvhxx+Ac z-_fSfMOZ4Y@>(%}NJ}Rob{B+q$&KA-<^fm8N((6+MLbBFF45a1m+30U`!&c{jIsw! zF;&&QtvYOU7rb)@{abfGsaEUaK{84`XiOxtzsP%{cBRycCDQ2e-UYf{__xJ-N@l={ zgUU`JnUi&y*;Z1sr{cSsokgN;u}EE!XVtDN0n|M;b&Ff5GyRu+i9x_xmHC*92yVu| zgOIUKu`AQhXt$cwB0`Zw3yiv}j?6`9Y}jN&ec?vjiTRn})$0bZl!Kh++N zCz_^9(m~*wQoCF - - diff --git a/docs/docs/inherit_graph_18.md5 b/docs/docs/inherit_graph_18.md5 deleted file mode 100644 index 1436d4a..0000000 --- a/docs/docs/inherit_graph_18.md5 +++ /dev/null @@ -1 +0,0 @@ -9e39a868edc1ac325e09c98639b913e8 \ No newline at end of file diff --git a/docs/docs/inherit_graph_18.png b/docs/docs/inherit_graph_18.png deleted file mode 100644 index d6d1c179cadbabf44babe5e3eff33ea2d0cf3f00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 574 zcmeAS@N?(olHy`uVBq!ia0vp^JAhb~g9%91t=z&3q}Y|gW!U_%O^81Fn;!Q zaSW-L^LEz7iOmK)E{|uMxT=0}R1{$X5r=9gd@eA%ksW!%;O6&d`a*7UP6;hlK(hT&)fP8Z3|Y+Ru2t^ZoCrg%hGLmd0K-`S#&{*Cw6QCca0Vm9{6( zT9z95ZT_Cx#f387N1gM!43GV6vE^!95WvCG>ZG6{!c=(SjN3=+xv%RCjE-qomG8Of z!u97tYJ1q36Z1Q+r|$G<`SfYg#kuE<-Xu>u8gKjh%#X=GE?s&YbF(y-|NXgW#qI!Y z{n~{y?B6{6r~Q9#a{hj<^p2iK)qD@8EZIC^jv#aUi3~8V?Q(k&wHNZcb=pwdT!l1DW;m2%;uB0Afe_65C0}7 zMFIBnfo+Kz^6Wb;*_|?PZ>y1c^33MFe$NuFH-WHV25RVtpFVxc=Iu^QOMnT2!PC{x JWt~$(69DGM1bqMi diff --git a/docs/docs/inherit_graph_19.map b/docs/docs/inherit_graph_19.map deleted file mode 100644 index 1d17067..0000000 --- a/docs/docs/inherit_graph_19.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/docs/inherit_graph_19.md5 b/docs/docs/inherit_graph_19.md5 deleted file mode 100644 index 935dc1f..0000000 --- a/docs/docs/inherit_graph_19.md5 +++ /dev/null @@ -1 +0,0 @@ -f8ba803295059b389518470bf6074dfb \ No newline at end of file diff --git a/docs/docs/inherit_graph_19.png b/docs/docs/inherit_graph_19.png deleted file mode 100644 index 967ebb1c4e9452931fa5ec62bd204d5904f9dc9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 528 zcmeAS@N?(olHy`uVBq!ia0vp^y+EwW!2~2f6#p#*Qfx`y?k)`fL2$v|<&zm07>|0o zIEG|2zMXk-Vygm=YwGiOgk6_&z`ZBx9;HNjA8y2 zmbsSuLsi{8KZXqrent@Vnb zR?hykSoyxVw#a0+wkaFl7Z!${_l=wK#cHMfnWeSe+seN^yLOT1t@`!HyNj1k`*UHo zZ_Lq*wV8J~l)mp(e)F^7Sy@W{t=l%+{m!$!$hmwhQ$6?cj)gM{!rQv8bk=Xn=YIR= zwdDPM(z~+$O#I81=`Z`MfMwz{+ech~Y!61V`y5}q=t+g@%s0kgrwG))`p0gNanX|5 zYOkJNq0q+SJ@0Qy&rQF)yXeNRT79|4QQ5ndns2C8?^P1M9{hr@ILlxB#Eg&0mb%J8 zwp%@)x^`aFe6*l!pSaA;`BDb8wvICw&P@67?pXOco&}T9k<5Mn+WXJXGv8SAI%?X| zyN@rd%$ybTv%z`a{q?m!r~OZ4wzrs{!Y~(#K5+l%be*5#I{gPQiWxjz{an^LB{Ts5 DThRRq diff --git a/docs/docs/inherit_graph_2.map b/docs/docs/inherit_graph_2.map deleted file mode 100644 index 0bb7ed5..0000000 --- a/docs/docs/inherit_graph_2.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/docs/inherit_graph_2.md5 b/docs/docs/inherit_graph_2.md5 deleted file mode 100644 index 002bc19..0000000 --- a/docs/docs/inherit_graph_2.md5 +++ /dev/null @@ -1 +0,0 @@ -fa4d23f06c860b84a4260c815f89a2e7 \ No newline at end of file diff --git a/docs/docs/inherit_graph_2.png b/docs/docs/inherit_graph_2.png deleted file mode 100644 index 5dc83b9505964ab2cf200cfb43514338aea4a725..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 610 zcmV-o0-gPdP)sXre-H%yK@f@lbP?xV z5J|qoan6C4JNVnT;`JK{@XIW?-gy6aZ(EDTAG=6Ra`6hq2Bwiy=%%aa?1_!~SMgo- zCD_n$9FzZxO`%g*YF&l>G0BpDeLN1zcs$BqCWokl0n#q<{jr8Qk@+*?iQ?OI8Dg^j zc9$sYOE7V;%X8HyUcao((~^>pN>*`25U(hCzd|IQad9HQQ5$QA+;jD#%J&~YN|4VN zMJra79I|Dj-ysq|r)*cTu{&1!qatz6l(v&LwLGV+VzJ~E$sckq>-

oFS5#EHm4i zk(rY={#W03qT>Py+OLM*Z9 zPg_1p5RB3Jg|_%mzU%!9SquF^5cCH@&>sYm=udCAo4pRw0>dyI4hI=Y_@nDOD?Ow+ wPN$Q+to#CkG!FX@f}lSLg8m=~`hy^T0p54Ftp5a1 - - diff --git a/docs/docs/inherit_graph_20.md5 b/docs/docs/inherit_graph_20.md5 deleted file mode 100644 index e6c252a..0000000 --- a/docs/docs/inherit_graph_20.md5 +++ /dev/null @@ -1 +0,0 @@ -b0535a940f9b972af03a6c03421c80bc \ No newline at end of file diff --git a/docs/docs/inherit_graph_20.png b/docs/docs/inherit_graph_20.png deleted file mode 100644 index f5e0ebf04c565075530c888ecb497c1429baad56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 624 zcmV-$0+0QPP)rR`HPSayp%&9@Z-ag<2sf)CxhNRtSnx+h%dj zMLmnYREpf0`|{&Acs1sndwcO0CS%IZCFWA1l}?0WIP(ZOGQQkMRH04TES8%)NM-yu zUwsBei#v{^x<@xfS%fC@ve%0H!#BgP$SRVBs*sw>+NQRx0Z)wSc_OKPZftGH9*ZVqKXV0pxmNNJW%ieLR-9GL~RLQtp`f - - diff --git a/docs/docs/inherit_graph_21.md5 b/docs/docs/inherit_graph_21.md5 deleted file mode 100644 index 7fef692..0000000 --- a/docs/docs/inherit_graph_21.md5 +++ /dev/null @@ -1 +0,0 @@ -a20990d02cf3f507981abfbe28f4479b \ No newline at end of file diff --git a/docs/docs/inherit_graph_21.png b/docs/docs/inherit_graph_21.png deleted file mode 100644 index 1b71dbde03e568ab902d1243852f87b5915c9ff8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 558 zcmeAS@N?(olHy`uVBq!ia0vp^bAecug9%7pzgsgCNU&G8=+<(7&Im?za zpKW}D?-i}-&D(xE?k9t^-gNJaO@Co}fhM@z-QvZuFhfwrs9hjy{jP~7(Y!N^uFR?X zygRQe(mb!wMgQX0fTc-4xMn#$J+^bjqm&a3Z8KC(K74)cVQS=w{$KV=(j6y1^p>72 z)>@~$)wW*3bwY*XJ+b~c)dQSAPT5LM{&~FYW=~K2wxHODR(D)Be!hDBsCEZ)_2w(b zvoH0$Jk5V&R{a&{oyV4Kcog6i+r7T?e)+=rYsz`sZmTbUclr4Aqgz(a4(pBPz7igM zT3Q?8Dp8M;+WUq-x8$jCYb=vAK9SXXtUS{< zXX;w>#p|u7GpIR)&qqT7|JOgZcsHN@!iO5W-Rn+AbHuK{{u&sj#^;_F*ZtOA{^5Yw hoAq{$>!9c-t0HgC(yH1&`M?Cg;OXk;vd$@?2>=(H56l1n diff --git a/docs/docs/inherit_graph_22.map b/docs/docs/inherit_graph_22.map deleted file mode 100644 index f251eeb..0000000 --- a/docs/docs/inherit_graph_22.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/docs/inherit_graph_22.md5 b/docs/docs/inherit_graph_22.md5 deleted file mode 100644 index 3aca8ba..0000000 --- a/docs/docs/inherit_graph_22.md5 +++ /dev/null @@ -1 +0,0 @@ -dc7b2c026dd29f15c93e77eacdbce937 \ No newline at end of file diff --git a/docs/docs/inherit_graph_22.png b/docs/docs/inherit_graph_22.png deleted file mode 100644 index 8a838aa16461ad76e01defde08effa87a97e5b6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 551 zcmeAS@N?(olHy`uVBq!ia0vp^bAVWtg9%7l$crxrQfx`y?k)`fL2$v|<&zm081Hzx zIEGZrc{}6o#8w5K*3#!@sjA-!xi<$wPtW6wtqRMzSQbIikw6XCg)?^^WZh(T>)5qaSNjb;p3>T9Ro$;NRvfmdRDbrP za$8ol#L^4@qiY<0Yz=#8|=_tUvYv-eN)o-J8d`{R+y*`R06Up_k(Ur&mRZcIDdaCC*D?ZiVDvetQi3z)em zYPaX??>_}Utar2M)ngA2TRlaS`}CGePMuPEAul%mG@2zC;kPPt^;gfU5fgjc7WXhN zuH7|dQ|I#i0sPbE2Cn|)8-C^bCY*1x+vEeK@Jw>mc z|L*n7EPr%|w^R9!(UcqQueH7UR-9Y9@cg+~C%?<&?YSyf)>bDZq4*{@{wY(*?wX1m zM-_%=|F4w1V>6lHXCBC&5!tK1<2P$LJj@G4yk76x_MO?_kwEFZ=illW+^p^|ZjwR{ b+9%=*-O>+mKUiD|jClr6S3j3^P6 - - diff --git a/docs/docs/inherit_graph_23.md5 b/docs/docs/inherit_graph_23.md5 deleted file mode 100644 index a809120..0000000 --- a/docs/docs/inherit_graph_23.md5 +++ /dev/null @@ -1 +0,0 @@ -61b046629e30ee985799df347e8f3e0e \ No newline at end of file diff --git a/docs/docs/inherit_graph_23.png b/docs/docs/inherit_graph_23.png deleted file mode 100644 index bb1e6ea64d6aaa1f22b605bde4c0fa65f3f90c49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 493 zcmeAS@N?(olHy`uVBq!ia0vp^dVT26kC$Fy9>jA5L~c#`D6wL#zmek zjv*Cu-p-C)*P_7F`tt0Xi?KTeO5}B1z8|ce)uO-}?RflIjlXc6*F%SuX-g!MOAaWV zzJFP+q0k}bFa*_nY7%Ig{ro3q`~lW!sg_e@{oZZM&5OMrEyHyE=J&Z*Ul$bZpHjy3 z!*_r=t28~w>+My) zytC7`z2k~KRJ3pL`Fj)Zm!%($?>AT}8J-nxbne83`??FY=3bgL`PQze-C;rM8+D&% zwjb{+Z8!OqwY<nEH`T`H51w&T{@}Kqvpb= zR~vXR5z2DY<8N8f0a%8pjzQ;#=kmI=jd=~5d=TU5rq#)>-e90!m;4jAu R`GN7r;OXk;vd$@?2>=>o<|P0C diff --git a/docs/docs/inherit_graph_24.map b/docs/docs/inherit_graph_24.map deleted file mode 100644 index 71bd024..0000000 --- a/docs/docs/inherit_graph_24.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/docs/inherit_graph_24.md5 b/docs/docs/inherit_graph_24.md5 deleted file mode 100644 index 41e7a95..0000000 --- a/docs/docs/inherit_graph_24.md5 +++ /dev/null @@ -1 +0,0 @@ -fecb9c5ba3d5425724a5126c49c9f8a2 \ No newline at end of file diff --git a/docs/docs/inherit_graph_24.png b/docs/docs/inherit_graph_24.png deleted file mode 100644 index 8a951ecc9e4e12e47ef87f30adf36fdd225b774a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 583 zcmV-N0=WH&P)VdcqO6tf^}V!Gt!W~cYK1*B>H*N>OV&VgtKzMwj9Z&lrOOj zvNZ~uh(Ua^J6j(!;ZhqY=7~>GWl@!S=|0jt+hoVwJ0u5WU9Mo25E?OylAb8FpJ|5L ze=W_f5kALBgk+=XRm2$`<%!}>|AgUIX)Yl@ScZI-^`sU_`$dfPmG2!{_el=kbGC?p z-1wc6d~Iat>r1OW0)~Ql!j?0KSlUbuMZ2&{KCBk?YQtW7N&1mBi(~%YVdxcN_e7{b zZV`&j+@Xf|<+hEPTkx7^r_`gQ!aFp)vjQA=0&p68qLW_}00nshaNr5RfhPb5o&cQ4 z`-$7_R$m8b#q0Gt9*?vo;)(0^T1yY;g7f)I4}1A<8R!Sp6MzFx01i9>IPe7E`~q9C Vmc5!?HvRwr002ovPDHLkV1jCd3^M=# diff --git a/docs/docs/inherit_graph_25.map b/docs/docs/inherit_graph_25.map deleted file mode 100644 index 28ccdfe..0000000 --- a/docs/docs/inherit_graph_25.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/docs/inherit_graph_25.md5 b/docs/docs/inherit_graph_25.md5 deleted file mode 100644 index 9a82654..0000000 --- a/docs/docs/inherit_graph_25.md5 +++ /dev/null @@ -1 +0,0 @@ -a34560f987989a447b41f73ee39cb038 \ No newline at end of file diff --git a/docs/docs/inherit_graph_25.png b/docs/docs/inherit_graph_25.png deleted file mode 100644 index 387fbdcaa976a4e6303fae8e941767c38f34da17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 586 zcmeAS@N?(olHy`uVBq!ia0vp^JAhb~g9%91t=z&3q}Y|gW!U_%O^81F#h*+ zaSW-L^LEzViH8h$S{_T!S|s#qfdE(I7e_@+mG2X*`zQX{Y}S?B_E%2gQQ?%WnRpO}LkvsA0Y1r3%aH${QvA0GUyxtF(n@sbG(cf_rK{`sc-zK|)Yk2>lPw>f`$Q;V{??aPl9UoJVb9ko<sKwm7uK77%6_@v z&hz62fh(&Mg<=A7Mb;;qq>Fs*;Cz^PJBshT!};ouOQZWwya^NJztVhR*@djwV{V1# zI8)!vFL0^<#p%IfE8)hh&f&7rGt-atN_*61wfQoJYuBdboImipY~{TwqZhdrq4yTw z-+oj<@XLaXNnOGdLZ7T($1D~eTdg>8a#~51^ac|yJ*O#u+c&2y!KZ1``)?s ze(muOg2$bgrgdGP;~XOtq@#QGed@l&SyR6q-zUm?Q&~!B$)R7rWyRi3Q4DfiW#TT& z=C;Duub4^t+@&qjt{Mk^2dAWMJbbo&Zd@$uyr9*V%0|MB{(OGzML(9>@0b{sA;RQ{ z5|SodjU9jbiuT|C{aT?}*znZTqL=HNdCo=rKj+cbYRlEQAdrKl*GU1W?<4mWhGly! TZzt>oCJqKqS3j3^P6 - - diff --git a/docs/docs/inherit_graph_26.md5 b/docs/docs/inherit_graph_26.md5 deleted file mode 100644 index 7cdcfb2..0000000 --- a/docs/docs/inherit_graph_26.md5 +++ /dev/null @@ -1 +0,0 @@ -058172ecc59cab4d6d439c5b8c8f0039 \ No newline at end of file diff --git a/docs/docs/inherit_graph_26.png b/docs/docs/inherit_graph_26.png deleted file mode 100644 index 8ad7d10d448d4adad4ea33d132b8694ca598edbf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 563 zcmeAS@N?(olHy`uVBq!ia0vp^bAecug9%7pzgsgCNU zU3xB+%b1q=Blau4<457jue}--l%aM6e+&*t(y|G&hY=lNKMg_Mb6AcudxgO@egFMs4b`>4cGhP19`qc(g!PmPcW&aOZl6t~a&oB0>{JM=l&&)9S z^*3UM(eA%ni*vUe+Icp?rCwos^sT-c{hKwV<<}qTp0LXNS5TeTxodS??$_-_73ZgK zmAWH*Mc7cnqhDk5v00NRzgZO|tM*yD>KM!1V%O~~X(h9Z?`(J*?&eor#@5d^?QhmG zud-6N*krci6Hm=Hv88w&+GL@1_2JsZCZDudE6M)rSKU!K*;^yrF#Y!WXC5U{X_-Z? zO6>l>JU2|9z^!!Y@H&TywLA6|d0wA7XTglTgZbN!iRG*Bt#qoe`5|l_X2YNQx*+N& z>(42B&3|?m2d6&$=iha|{q_H1*0bC9@Hg*u2%iZ-0^gVY{u^h{KjHA}ue;*bFKfN9 y_5JUtpA2TZ))~)cx8Ks_^q>YBH^3M=sn2U2yL0Z - - diff --git a/docs/docs/inherit_graph_27.md5 b/docs/docs/inherit_graph_27.md5 deleted file mode 100644 index 1b08bd6..0000000 --- a/docs/docs/inherit_graph_27.md5 +++ /dev/null @@ -1 +0,0 @@ -90a542863d137792d02ac7d76c8de92d \ No newline at end of file diff --git a/docs/docs/inherit_graph_27.png b/docs/docs/inherit_graph_27.png deleted file mode 100644 index c16e7d1de77895fc65986beba9023d9d8006fc56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 562 zcmeAS@N?(olHy`uVBq!ia0vp^i-A~`gAGXPwMM!EDYhhUcNd2LAh=-f^2rPgjL$t? z978JRyq%NS*P_7Fnz*_AOPHL?UUv42)f@KDkXXXwbn*GGeJMij0$#OK7R}svuR5P& z=lq|~^SC)U1A184x+WfQFcgxgdn|m;(zx%j?6wKwhUY&&yrXEe?se9*)SX8ZKG|){ z75-Y<(bG7kh%+;FmYOk-^QIn4<;KP&6$7Xd3V8`$8?Vi}^ZIT6)1{?V32Xn#DDPQx z|Mx?#`EQQP7q{EbI{G8z(d@OQpWn}lF#RG?&wcjvmhW+M5;>TCCT`L;?_0jubltsw zJ5AEJT&uI&X?5v)fy{Qrt&x}R&x=@a>8qu6k=gZIp;_G}yzkfQe{ zTerI~PV|@m)U992kNqo{^QpNl)^wlgGXHz(KjWH@KkZrhRP-R<+Fho1CjS0%Q4)uwVj(w1yiK^HGn41rnS*kBX0F&RVync@N9;IT31I ufxmLK758rVQ}4#a^nd=u2S}=aFxwqZkMEwaase - - diff --git a/docs/docs/inherit_graph_3.md5 b/docs/docs/inherit_graph_3.md5 deleted file mode 100644 index 9e4a783..0000000 --- a/docs/docs/inherit_graph_3.md5 +++ /dev/null @@ -1 +0,0 @@ -00ac09e4f48effceb0e5d33f4d1a5f11 \ No newline at end of file diff --git a/docs/docs/inherit_graph_3.png b/docs/docs/inherit_graph_3.png deleted file mode 100644 index d39722ec853f8900cef570359340aa43606b4984..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 558 zcmeAS@N?(olHy`uVBq!ia0vp^OMzIGg9%8k`MEC?NUe$C-&yWS1V4AU=k3y^IoB#VeQn)z zp<2OTZ_BpMI{x&?oO`WV^1++tRnNLss@k3|yU&Y9c;+FUzo$0WS36&lc-(0$f5+p- zB%VqA#zzZ2-8ykiSN*Hsq75^1*!H&PC>;G3_^tFN*9m5xF%rc-7HAb(2-rIsLEo-WKXAcK!VP z`@fTQW3KfTt;k<4a{G*_^2M)T9FVvnLpSz&Tw*3-}Qt4P?&U3rmyn6 z`|C2!UD(DPeBo-wy0vWWE|ZvBf3`Vy&d4pYeX1CLe(_bYO4&G<<`g~sL;9TjPw&hRxcj|U*LH!$_S - - diff --git a/docs/docs/inherit_graph_4.md5 b/docs/docs/inherit_graph_4.md5 deleted file mode 100644 index 808d22c..0000000 --- a/docs/docs/inherit_graph_4.md5 +++ /dev/null @@ -1 +0,0 @@ -c50938a4c1c6868367837d6fe13bb0a0 \ No newline at end of file diff --git a/docs/docs/inherit_graph_4.png b/docs/docs/inherit_graph_4.png deleted file mode 100644 index fcf344650b8f9d96c9d9197d7678f9a96a504a58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 523 zcmeAS@N?(olHy`uVBq!ia0vp^Q-N5Og9%6;;j+mEQfx`y?k)`fL2$v|<&zm07!P>5 zIEGZrc{}5FVVi)A$fy9HS&&_%7$#|XFJ;KF9 zb3a4$zWHJdn;Po(G=kC38Rn-q@f`jzMMS_k_ImC8*SG6G=ilB|IWK=YOH$i5!Yoj=tnvC7|?jim6?ZT~zd{69qooKP=iO z@YlFHdc$*9rRi6lA1s>q(J9hiH!{fUz4-T4C$2jNN34oZ{WRb5#UuWF@9kl+@>}`c zubqG8q&=%z`oc7=psfqf8hp)sw%g-;ecYkd_XBg!Xw0!&t#@Td#Jb&*dLNESOw77t zeBEuWmU>9y|BNR*M_z7TYIMOhQn&c~7q0*J+$th3NAB$CUO%J$dhQmvn?7#mUY=Q~ z|4A_5oBp+J8y*P6i_bjv(naO{gwk!xyneS@{P(%*Ze151v%^e%Q|t8~CpbLyyK;hG zX^Q{)C261#Ahb?b$nwK3hnA3uhIckpJoq!&{6jxFn)iQyq0Ia1j7c}X?_H&}`N-q= x>!sx{8Bdz{Cf~EGIly7$`0p|AA1FG@&;8wFh1c?rQoz_{@O1TaS?83{1OVYZ`_upc diff --git a/docs/docs/inherit_graph_5.map b/docs/docs/inherit_graph_5.map deleted file mode 100644 index c90c273..0000000 --- a/docs/docs/inherit_graph_5.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/docs/inherit_graph_5.md5 b/docs/docs/inherit_graph_5.md5 deleted file mode 100644 index 9ff9516..0000000 --- a/docs/docs/inherit_graph_5.md5 +++ /dev/null @@ -1 +0,0 @@ -7d990cd673cd87f9c03229dfc1d8fc57 \ No newline at end of file diff --git a/docs/docs/inherit_graph_5.png b/docs/docs/inherit_graph_5.png deleted file mode 100644 index bf9d303060903ed42cf0654f88ba66d4bcbd1771..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 661 zcmV;G0&4wA-X3J#xk#Hj}N0e#+IWQ=VUvq<5>O+H@4Mcljv9>6D9dERLyJp${}ahvtuq zKRVKl(jGa%4t)#2%Il@>REtrc$4kVUntB&;N6lca!IhFy5x3;rGdoVU3~`ZG(v53s zOC4A-VkFsxQ~btY%7&$`JrS;#q2EhyKw{_8wWWRWZw%ANw5jkGQc2kdRvMY2(UF2? zS||-;ebQfpd>>!(fD9b7R#uX*FEAdTfl6)iBf~LBy1{p;H254EEcW<54lDv)0*idC zF4sL+fJ#1Am*A~|E`dd$OJEV`5?F+Ie|foF+WP^%naAU?-EPAYLYK$mv6VjnJlXH} v;iavAECAp^ehDlBT>^_hm%t*>C9udZTt4=|^gs6O00000NkvXXu0mjfi&!&i diff --git a/docs/docs/inherit_graph_6.map b/docs/docs/inherit_graph_6.map deleted file mode 100644 index d250c2e..0000000 --- a/docs/docs/inherit_graph_6.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/docs/inherit_graph_6.md5 b/docs/docs/inherit_graph_6.md5 deleted file mode 100644 index 55a5115..0000000 --- a/docs/docs/inherit_graph_6.md5 +++ /dev/null @@ -1 +0,0 @@ -6276f12a2d68e1ca206c84dba62ec223 \ No newline at end of file diff --git a/docs/docs/inherit_graph_6.png b/docs/docs/inherit_graph_6.png deleted file mode 100644 index 7ab7c2e3f6d5a6cbddad8aa1617d343efd48355c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 551 zcmeAS@N?(olHy`uVBq!ia0vp^Q-N5Og9%6;;j+mEQfx`y?k)`fL2$v|<&zm081Hzx zIEGZrc{}TU?qLOiqux^uH+6jXcw%eh!PdE%{odhw&2>SA*3oP@Y{1ihT-oN|sr{*u_uhYhIEi6; z<-E09w>+Q3H*48T4ci5MzyHd8eemZpFAVuU`*-Mw#A9joI!9h9zi=Tz&d)VY^DfvY z`vf@O-XvMIR(tkmVUs*QdC$K+CYH}Pt-t->@!RwAn$0uAO( zQ#ttbM*n&rS4@!$IQzD2aew_&dA(Upr>mdKI;Vst0D-R;VgLXD diff --git a/docs/docs/inherit_graph_7.map b/docs/docs/inherit_graph_7.map deleted file mode 100644 index bbe5013..0000000 --- a/docs/docs/inherit_graph_7.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/docs/inherit_graph_7.md5 b/docs/docs/inherit_graph_7.md5 deleted file mode 100644 index c4700d3..0000000 --- a/docs/docs/inherit_graph_7.md5 +++ /dev/null @@ -1 +0,0 @@ -cbacda5af4aefcc61b1fdc5ee24d6e91 \ No newline at end of file diff --git a/docs/docs/inherit_graph_7.png b/docs/docs/inherit_graph_7.png deleted file mode 100644 index 8f951469a37c3f748191d018e670705e4b4cb2fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 454 zcmeAS@N?(olHy`uVBq!ia0vp^`9Q47!3HFK*tTZ@DYhhUcNd2LAh=-f^2rPgjMbhl zjv*Cu-p&r()U3ecy72S27wcj;cJYfX`n@3joQ2bxgr<9y-~WW>_!Mz2@%gH`^a+R3 z<>#6F9@ZlK5?$;(N130!uTVVp;#gtLA@QO^CcZbfuK6@AweYh|d11$&wAk>#{xzS> zyu2p=YZ16(z;o2_UFCrQn*|K4X}U$_cv0r&ITC4ipGil(oThc<&7|!z5l - - diff --git a/docs/docs/inherit_graph_8.md5 b/docs/docs/inherit_graph_8.md5 deleted file mode 100644 index 130e135..0000000 --- a/docs/docs/inherit_graph_8.md5 +++ /dev/null @@ -1 +0,0 @@ -5cba821b2e25837e7cc09e36ed19471f \ No newline at end of file diff --git a/docs/docs/inherit_graph_8.png b/docs/docs/inherit_graph_8.png deleted file mode 100644 index 8e502f4ec8ad57653834c4def2733a69216faf2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 528 zcmeAS@N?(olHy`uVBq!ia0vp^6ME)#8wh^BV8qXCC}7He#`*IDyA_KgSX>--tbFxdRfmUH*Fam? z$)rKVek*Ik@dL(H5LEMp>3Pk(=TSio-RoX2%M3cYzP3!}__o}ms*Li#_Z6S}I_vz_ zi@Vk>{nAj~mS~VwF#jU+JSaLmsrk+!iObzP_eHGQz-rfMbnJ=7D@E@!*-xd5J3p@Z zIc-wvt*Qw-8YIK*`&|A$OtFw|6}T3zBa=MoB_p@Ma)Z-*KHX1$!(YF&rtIv&8^_n} zTXm_UOgB!oRbzYCl-x&UlWJsz=XTpj$42y9T;C~f^!fI_Pmb$azaHU}F?3lH^ZH1! z|H>}DsW&&fFY)=eEq|T#)1}c`s?4ii-mE`dpRzLAth+em`^A+RBCF|F{x}|1tXmKOc?I*8N z1s>0=Pk6ol+EN~#*ZC{=ORm$K$1yKX&a>{Goyv#36XibiprdL3(@$@ja-A_|&hwkw z*2X1&%#k@BROKL0d;j&(Q}N#%SazI$!3aYix%HnLuM=JDVhD_422WQ%mvv4FO#smm B{{sL3 diff --git a/docs/docs/inherit_graph_9.map b/docs/docs/inherit_graph_9.map deleted file mode 100644 index d034be9..0000000 --- a/docs/docs/inherit_graph_9.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/docs/inherit_graph_9.md5 b/docs/docs/inherit_graph_9.md5 deleted file mode 100644 index 0318c62..0000000 --- a/docs/docs/inherit_graph_9.md5 +++ /dev/null @@ -1 +0,0 @@ -7af2076992cb5ce99f4e7887b1303fc7 \ No newline at end of file diff --git a/docs/docs/inherit_graph_9.png b/docs/docs/inherit_graph_9.png deleted file mode 100644 index 06d7d0aaeecbe5d23462abf7ca5da761062c0fcb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 606 zcmV-k0-^nhP)NFbrYOE;YK}@2%nieK?&?Q4h`sfCxGO40Hg9paZ}N=fqi@ zb7`l^?-b5C_Tw9s-nh}=Hx%2*z0b6BrL~mkfY#qx6A^ePW%tJLj+Rjw{~|uKE<_tQ zj-&W&ZHlr8t=46)1LqtE=R*u*joRKgbrRV`mSPW0?@K6)%-AUA%;i+%(JC}SvQ60& z&l0a!Lt$M=CyuJ4W{)&^Pqfjrm(Cj%c;4SgJ?RM`GovzKsxE@zh8Me9>wGYqiq|N3 zH9j>fDt0dVv90=*r_@3nn4r&Q>GHN;?`bYb|EO5KYSp;vrh_y+YAiiV7u@CWugo!( zx6njPYrQWlde+S+imFogH^AA%Q2a*YPcx;V{a}1f40D~g5f>?1PE8cLN}Y=Xr))H1 z!`a1Dr17w5BBhPhsFV^N7m1RVedIsin_0bqph2e;d;eH@@A@ArGZ--kVd4$kLut9U>+j>lto s+4;je*a$cu03zrBFwg-Yf(`)l4FuzL#^N+L8~^|S07*qoM6N<$f>e1Gv;Y7A diff --git a/docs/docs/inherits.html b/docs/docs/inherits.html deleted file mode 100644 index 989174c..0000000 --- a/docs/docs/inherits.html +++ /dev/null @@ -1,326 +0,0 @@ - - - - - - - -SinricPro Library: Class Hierarchy - - - - - - - - - - - - - -

-
- - - - - - -
-
SinricPro Library -
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
Class Hierarchy
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
-
-
- - - - diff --git a/docs/docs/jquery.js b/docs/docs/jquery.js deleted file mode 100644 index 103c32d..0000000 --- a/docs/docs/jquery.js +++ /dev/null @@ -1,35 +0,0 @@ -/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element -},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/** - * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler - * Licensed under MIT - * @author Ariel Flesler - * @version 2.1.2 - */ -;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 - * http://www.smartmenus.org/ - * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/docs/docs/menu.js b/docs/docs/menu.js deleted file mode 100644 index 2fe2214..0000000 --- a/docs/docs/menu.js +++ /dev/null @@ -1,51 +0,0 @@ -/* - @licstart The following is the entire license notice for the JavaScript code in this file. - - The MIT License (MIT) - - Copyright (C) 1997-2020 by Dimitri van Heesch - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software - and associated documentation files (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, publish, distribute, - sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or - substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING - BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - @licend The above is the entire license notice for the JavaScript code in this file - */ -function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { - function makeTree(data,relPath) { - var result=''; - if ('children' in data) { - result+=''; - } - return result; - } - - $('#main-nav').append(makeTree(menudata,relPath)); - $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); - if (searchEnabled) { - if (serverSide) { - $('#main-menu').append('
  • '); - } else { - $('#main-menu').append('
  • '); - } - } - $('#main-menu').smartmenus(); -} -/* @license-end */ diff --git a/docs/docs/menudata.js b/docs/docs/menudata.js deleted file mode 100644 index b46f043..0000000 --- a/docs/docs/menudata.js +++ /dev/null @@ -1,45 +0,0 @@ -/* - @licstart The following is the entire license notice for the JavaScript code in this file. - - The MIT License (MIT) - - Copyright (C) 1997-2020 by Dimitri van Heesch - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software - and associated documentation files (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, publish, distribute, - sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or - substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING - BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - @licend The above is the entire license notice for the JavaScript code in this file -*/ -var menudata={children:[ -{text:"Main Page",url:"index.html"}, -{text:"Classes",url:"annotated.html",children:[ -{text:"Class List",url:"annotated.html"}, -{text:"Class Index",url:"classes.html"}, -{text:"Class Hierarchy",url:"inherits.html"}, -{text:"Class Members",url:"functions.html",children:[ -{text:"All",url:"functions.html",children:[ -{text:"b",url:"functions.html#index_b"}, -{text:"g",url:"functions.html#index_g"}, -{text:"h",url:"functions.html#index_h"}, -{text:"o",url:"functions.html#index_o"}, -{text:"r",url:"functions.html#index_r"}, -{text:"s",url:"functions.html#index_s"}]}, -{text:"Functions",url:"functions_func.html",children:[ -{text:"b",url:"functions_func.html#index_b"}, -{text:"g",url:"functions_func.html#index_g"}, -{text:"h",url:"functions_func.html#index_h"}, -{text:"o",url:"functions_func.html#index_o"}, -{text:"r",url:"functions_func.html#index_r"}, -{text:"s",url:"functions_func.html#index_s"}]}]}]}]} diff --git a/docs/docs/namespace_s_i_n_r_i_c_p_r_o__2__9__17.html b/docs/docs/namespace_s_i_n_r_i_c_p_r_o__2__9__17.html deleted file mode 100644 index 49923eb..0000000 --- a/docs/docs/namespace_s_i_n_r_i_c_p_r_o__2__9__17.html +++ /dev/null @@ -1,1989 +0,0 @@ - - - - - - - -SinricPro Library: SINRICPRO_2_9_17 Namespace Reference - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    SinricPro Library -
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    - -
    -
    SINRICPRO_2_9_17 Namespace Reference
    -
    -
    - -

    SinricPro namespace. -More...

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Classes

    class  SinricProClass
     The main class of this library, handling communication between SinricPro Server and your devices. More...
     
    class  SinricProAirQualitySensor
     Device to report air quality events. More...
     
    class  SinricProBlinds
     Device to control interior blinds. More...
     
    class  SinricProCamera
     Camera suporting basic on / off command. More...
     
    class  SinricProContactsensor
     Device to report contact sensor events. More...
     
    class  SinricProDevice
     Base class for all device types. More...
     
    class  SinricProDimSwitch
     Device which supports on / off and dimming commands. More...
     
    class  SinricProDoorbell
     Device to report doorbell events. More...
     
    class  SinricProFan
     Device to turn on / off a fan and change it's speed by using powerlevel. More...
     
    class  SinricProFanUS
     Device to control a fan with on / off commands and its speed by a range value. More...
     
    class  SinricProGarageDoor
     Device to control a garage door. More...
     
    class  SinricProLight
     Device to control a light. More...
     
    class  SinricProLock
     Device to control a smart lock. More...
     
    class  SinricProMotionsensor
     Device to report motion detection events. More...
     
    class  SinricProPowerSensor
     Device to report power usage. More...
     
    class  SinricProSpeaker
     Device to control a smart speaker. More...
     
    class  SinricProSwitch
     Device suporting basic on / off command. More...
     
    class  SinricProTemperaturesensor
     Device to report actual temperature and humidity. More...
     
    class  SinricProThermostat
     Device to control Thermostat. More...
     
    class  SinricProTV
     Device to control a TV. More...
     
    class  SinricProWindowAC
     Device to control Window Air Conditioner. More...
     
    class  AirQualitySensor
     AirQuality. More...
     
    class  BrightnessController
     BrightnessController. More...
     
    class  ChannelController
     ChannelController. More...
     
    class  ColorController
     ColorController. More...
     
    class  ColorTemperatureController
     ColorTemperatureController. More...
     
    class  ContactSensor
     ContactSensor. More...
     
    class  Doorbell
     Dorbell. More...
     
    class  DoorController
     DoorController - only used for GarageDoor device and cannot used as capability for a custom device! More...
     
    class  EqualizerController
     EqualizerController. More...
     
    class  InputController
     InputController. More...
     
    class  KeypadController
     KeypadController. More...
     
    class  LockController
     LockController. More...
     
    class  MediaController
     MediaController. More...
     
    class  ModeController
     ModeController. More...
     
    class  MotionSensor
     MotionSensor. More...
     
    class  MuteController
     MuteController. More...
     
    class  PercentageController
     PercentageController. More...
     
    class  PowerLevelController
     PowerLevelController. More...
     
    class  PowerSensor
     PowerSensor. More...
     
    class  PowerStateController
     PowerStateController. More...
     
    class  PushNotification
     PushNotification. More...
     
    class  RangeController
     RangeControllerFloatInt. More...
     
    class  TemperatureSensor
     TemperatureSensor. More...
     
    class  ThermostatController
     ThermostatController. More...
     
    class  ToggleController
     ToggleController. More...
     
    class  VolumeController
     VolumeController. More...
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Typedefs

    using ConnectedCallbackHandler = std::function< void(void)>
     Callback definition for onConnected function. More...
     
    using DisconnectedCallbackHandler = std::function< void(void)>
     Callback definition for onDisconnected function. More...
     
    using BrightnessCallback = std::function< bool(const String &, int &)>
     Callback definition for onBrightness function. More...
     
    using AdjustBrightnessCallback = std::function< bool(const String &, int &)>
     Callback definition for onAdjustBrightness function. More...
     
    using ChangeChannelCallback = std::function< bool(const String &, String &)>
     Callback definition for onChangeChannel function. More...
     
    using ChangeChannelNumberCallback = std::function< bool(const String &, int, String &)>
     Callback definition for onChangeChannelNumber function. More...
     
    using SkipChannelsCallback = std::function< bool(const String &, int, String &)>
     Callback definition for onSkipChannels function. More...
     
    using ColorCallback = std::function< bool(const String &, byte &, byte &, byte &)>
     Callback definition for onColor function. More...
     
    using ColorTemperatureCallback = std::function< bool(const String &, int &)>
     Callback definition for onColorTemperature function. More...
     
    using IncreaseColorTemperatureCallback = std::function< bool(const String &, int &)>
     Callback definition for onIncreaseColorTemperature function. More...
     
    using DecreaseColorTemperatureCallback = std::function< bool(const String &, int &)>
     Callback definition for onDecreaseColorTemperature function. More...
     
    using DoorCallback = std::function< bool(const String &, bool &)>
     Callback definition for onDoorState function. More...
     
    using SetBandsCallback = std::function< bool(const String &, const String &, int &)>
     Callback definition for onSetBands function. More...
     
    using AdjustBandsCallback = std::function< bool(const String &, const String &, int &)>
     Callback definition for onAdjustBands function. More...
     
    using ResetBandsCallback = std::function< bool(const String &, const String &, int &)>
     Callback definition for onResetBands function. More...
     
    using SelectInputCallback = std::function< bool(const String &, String &)>
     Callback definition for onSelectInput function. More...
     
    using KeystrokeCallback = std::function< bool(const String &, String &)>
     Callback definition for onKeystroke function. More...
     
    using LockStateCallback = std::function< bool(const String &, bool &)>
     Callback definition for onLockState function. More...
     
    using MediaControlCallback = std::function< bool(const String &, String &)>
     Callback definition for onMediaControl function. More...
     
    using ModeCallback = std::function< bool(const String &, String &)>
     Callback definition for onSetMode function. More...
     
    using GenericModeCallback = std::function< bool(const String &, const String &, String &)>
     Callback definition for onSetMode function for a specific instance. More...
     
    using MuteCallback = std::function< bool(const String &, bool &)>
     Callback definition for onMute function. More...
     
    using SetPercentageCallback = std::function< bool(const String &, int &)>
     Callback definition for onSetPercentage function. More...
     
    using AdjustPercentageCallback = std::function< bool(const String &, int &)>
     Callback definition for onAdjustPercentage function. More...
     
    using SetPowerLevelCallback = std::function< bool(const String &, int &)>
     Definition for setPowerLevel callback. More...
     
    using AdjustPowerLevelCallback = std::function< bool(const String &, int &)>
     Definition for onAdjustPowerLevel callback. More...
     
    using PowerStateCallback = std::function< bool(const String &, bool &)>
     Callback definition for onPowerState function. More...
     
    using GenericRangeValueCallback_int = bool(*)(const String &, const String &, int &)
     Callback definition for onRangeValue function. More...
     
    using GenericSetRangeValueCallback_int = GenericRangeValueCallback_int
     Callback definition for onRangeValue function on a specific instance. More...
     
    using AdjustRangeValueCallback = bool(*)(const String &, int &)
     Callback definition for onAdjustRangeValue function. More...
     
    using GenericAdjustRangeValueCallback_int = GenericRangeValueCallback_int
     Callback definition for onAdjustRangeValue function on a specific instance for custom devices. More...
     
    using ThermostatModeCallback = std::function< bool(const String &, String &)>
     Callback definition for onThermostatMode function. More...
     
    using SetTargetTemperatureCallback = std::function< bool(const String &, float &)>
     Callback definition for onTargetTemperature function. More...
     
    using AdjustTargetTemperatureCallback = std::function< bool(const String &, float &)>
     Callback definition for onAdjustTargetTemperature function. More...
     
    using GenericToggleStateCallback = std::function< bool(const String &, const String &, bool &)>
     Callback definition for onToggleState function. More...
     
    using SetVolumeCallback = std::function< bool(const String &, int &)>
     Callback definition for onSetVolume function. More...
     
    using AdjustVolumeCallback = std::function< bool(const String &, int &, bool)>
     Callback definition for onAdjustVolume function. More...
     
    -

    Detailed Description

    -

    SinricPro namespace.

    -

    Typedef Documentation

    - -

    ◆ AdjustBandsCallback

    - -
    -
    - - - - -
    using AdjustBandsCallback = std::function<bool(const String &, const String &, int &)>
    -
    - -

    Callback definition for onAdjustBands function.

    -

    Gets called when device receive a adjustBands request
    -

    Parameters
    - - - - - - -
    [in]deviceIdString which contains the ID of device
    [in]bandsString with requested bands to change
    - BASS, MIDRANGE, TREBBLE
    [in]levelDeltaInteger with relative level value device should change bands about
    [out]bandsString with changed bands
    - BASS, MIDRANGE, TREBBLE
    [out]levelDeltaInteger value with level bands changed to
    -
    -
    -
    Returns
    the success of the request
    -
    Return values
    - - - -
    truerequest handled properly
    falserequest was not handled properly because of some error
    -
    -
    -

    -Example-Code

    -
    std::map<String, int> equalizerBands;
    -
    -
    bool onAdjustBands(const String &deviceId, String &bands, int &levelDelta) {
    -
    equalizerBands[bands] += levelDelta; // calculate absolute bands level
    -
    Serial.printf("Device %s bands %s changed about %d to %d\r\n", deviceId.c_str(), bands.c_str(), levelDelta, equalizerBands[bands]);
    -
    levelDelta = equalizerBands[bands]; // return absolute bands level
    -
    return true; // request handled properly
    -
    }
    -
    -
    -
    - -

    ◆ AdjustBrightnessCallback

    - -
    -
    - - - - -
    using AdjustBrightnessCallback = std::function<bool(const String &, int &)>
    -
    - -

    Callback definition for onAdjustBrightness function.

    -

    Gets called when device receive a adjustBrightness request
    -

    Parameters
    - - - - -
    [in]deviceIdString which contains the ID of device
    [in]brightnessRelative integer value the device should change the brightness about
    [out]brightnessAbsolute integer value with new brightness the device is set to
    -
    -
    -
    Returns
    the success of the request
    -
    Return values
    - - - -
    truerequest handled properly
    falserequest was not handled properly because of some error
    -
    -
    -

    -Example-Code

    -
    int absoluteBrightness;
    -
    -
    bool onAdjustBrightness(const String &deviceId, int &brightnessDelta) {
    -
    absoluteBrightness += brightnessDelta; // calculate absolute brigthness
    -
    Serial.printf("Device %s brightness changed about %i to %d\r\n", deviceId.c_str(), brightnessDelta, absoluteBrightness);
    -
    brightnessDelta = absoluteBrightness; // return absolute brightness
    -
    return true; // request handled properly
    -
    }
    -
    -
    -
    - -

    ◆ AdjustPercentageCallback

    - -
    -
    - - - - -
    using AdjustPercentageCallback = std::function<bool(const String &, int &)>
    -
    - -

    Callback definition for onAdjustPercentage function.

    -

    Gets called when device receive a adjustPercentage request
    -

    Parameters
    - - - - -
    [in]deviceIdString which contains the ID of device
    [in]percentageDeltaInteger with relative percentage the device should change about (-100..100)
    [out]percentageDeltaInteger with absolute percentage device has been set to
    -
    -
    -
    Returns
    the success of the request
    -
    Return values
    - - - -
    truerequest handled properly
    falserequest was not handled properly because of some error
    -
    -
    -

    -Example-Code

    -
    int absolutePercentage;
    -
    -
    bool onAdjustPercentage(const String &deviceId, int &percentageDelta) {
    -
    absolutePercentage += percentageDelta; // calculate absolute percentage
    -
    Serial.printf("Device %s percentage changed about %i to %d\r\n", deviceId.c_str(), percentageDelta, absolutePercentage);
    -
    percentageDelta = absolutePercentage; // return absolute percentage
    -
    return true; // request handled properly
    -
    }
    -
    -
    -
    - -

    ◆ AdjustPowerLevelCallback

    - -
    -
    - - - - -
    using AdjustPowerLevelCallback = std::function<bool(const String &, int &)>
    -
    - -

    Definition for onAdjustPowerLevel callback.

    -

    Gets called when device receive a adjustPowerLevel reuqest
    -

    Parameters
    - - - - -
    [in]deviceIdString which contains the ID of device
    [in]powerLevelinteger -100..100 delta value which power level have to be changed
    [out]powerLevelinteger 0..100 report the absolute powerlevel that the device have been set to
    -
    -
    -
    Returns
    the success of the request
    -
    Return values
    - - - -
    truerequest handled properly
    falserequest can`t be handled properly because of some error
    -
    -
    -

    -Example-Code

    -
    int absolutePowerLevel;
    -
    -
    bool onAdjustPowerLevel(const String &deviceId, int &powerDelta) {
    -
    absolutePowerLevel += powerDelta; // calculate absolute power level
    -
    Serial.printf("Device %s brightness changed about %i to %d\r\n", deviceId.c_str(), powerDelta, absolutePowerLevel);
    -
    powerDelta = absolutePowerLevel; // return absolute power level
    -
    return true; // request handled properly
    -
    }
    -
    -
    -
    - -

    ◆ AdjustRangeValueCallback

    - -
    -
    - - - - -
    using AdjustRangeValueCallback = bool (*)(const String &, int &)
    -
    - -

    Callback definition for onAdjustRangeValue function.

    -

    Gets called when device receive a adjustRangeValue reuqest
    -

    Parameters
    - - - - -
    [in]deviceIdString which contains the ID of device
    [in]rangeValuedelta value for range value have to change
    [out]rangeValuereturning the absolute range value
    -
    -
    -
    Returns
    the success of the request
    -
    Return values
    - - - -
    truerequest handled properly
    falserequest was not handled properly because of some error
    -
    -
    -

    -Example-Code

    -
    int globalRangeValue;
    -
    -
    bool onAdjustRangeValue(const String &deviceId, int &rangeValueDelta) {
    -
    globalRangeValue += rangeValue; // calculate absolute rangeValue
    -
    Serial.printf("Device %s range value has been changed about %i to %d\r\n", deviceId.c_str(), rangeValueDelta, globalRangeValue);
    -
    rangeValueDelta = globalRangeValue; // return absolute rangeValue
    -
    return true; // request handled properly
    -
    }
    -
    -
    -
    - -

    ◆ AdjustTargetTemperatureCallback

    - -
    -
    - - - - -
    using AdjustTargetTemperatureCallback = std::function<bool(const String &, float &)>
    -
    - -

    Callback definition for onAdjustTargetTemperature function.

    -

    Gets called when device receive a adjustTargetTemperature reuqest
    -

    Parameters
    - - - - -
    [in]deviceIdString which contains the ID of device
    [in]temperatureFloat relative temperature device should change about
    [out]temperatureFloat absolute temperature device is set to
    -
    -
    -
    Returns
    the success of the request
    -
    Return values
    - - - -
    truerequest handled properly
    falserequest was not handled properly because of some error
    -
    -
    -

    -Example-Code

    -
    float globalTargetTemp;
    -
    -
    bool onAdjustTargetTemperature(const String &deviceId, float &tempDelta) {
    -
    globalTargetTemp += tempDelta; // change global target temperature about tempDelta
    -
    Serial.printf("Device %s target temperature changed about %f to %f\r\n", deviceId.c_str(), tempDelta, globalTargetTemp);
    -
    tempDelta = globalTargetTemp; // return absolute target temperature
    -
    return true; // request handled properly
    -
    }
    -
    -
    -
    - -

    ◆ AdjustVolumeCallback

    - -
    -
    - - - - -
    using AdjustVolumeCallback = std::function<bool(const String &, int &, bool)>
    -
    - -

    Callback definition for onAdjustVolume function.

    -

    Gets called when device receive a adjustVolume request
    -

    Parameters
    - - - - - -
    [in]deviceIdString which contains the ID of device
    [in]volumeDeltaInteger with relative volume the device should change about (-100..100)
    [out]volumeDeltaInteger with absolute volume device has been set to
    [in]volumeDefaultBool false if the user specified the amount by which to change the volume; otherwise true
    -
    -
    -
    Returns
    the success of the request
    -
    Return values
    - - - -
    truerequest handled properly
    falserequest was not handled properly because of some error
    -
    -
    -

    -Example-Code

    -
    int absoluteVolume;
    -
    -
    bool onAdjustVolume(const String &deviceId, int &volumeDelta, bool volumeDefault) {
    -
    absoluteVolume += volumeDelta; // calculate absolute volume
    -
    Serial.printf("Device %s volume changed about %i to %d (default: %s)\r\n", deviceId.c_str(), volumeDelta, absoluteVolume, volumeDefault);
    -
    volumeDelta = absoluteVolume; // return absolute volume
    -
    return true; // request handled properly
    -
    }
    -
    -
    -
    - -

    ◆ BrightnessCallback

    - -
    -
    - - - - -
    using BrightnessCallback = std::function<bool(const String &, int &)>
    -
    - -

    Callback definition for onBrightness function.

    -

    Gets called when device receive a setBrightness request
    -

    Parameters
    - - - - -
    [in]deviceIdString which contains the ID of device
    [in]brightnessAbsolute integer value the device should set its brightness to
    [out]brightnessAbsolute integer value with new brightness the device is set to
    -
    -
    -
    Returns
    the success of the request
    -
    Return values
    - - - -
    truerequest handled properly
    falserequest was not handled properly because of some error
    -
    -
    -

    -Example-Code

    -
    bool onBrightness(const String &deviceId, int &brightness) {
    -
    Serial.printf("Device %s brightness %d\r\n", deviceId.c_str(), brightness);
    -
    return true; // request handled properly
    -
    }
    -
    -
    -
    - -

    ◆ ChangeChannelCallback

    - -
    -
    - - - - -
    using ChangeChannelCallback = std::function<bool(const String &, String &)>
    -
    - -

    Callback definition for onChangeChannel function.

    -

    Gets called when device receive a changeChannel request by using channel name

    Parameters
    - - - - -
    [in]deviceIdString which contains the ID of device
    [in]channelString with channel name device is requested to switch to
    [out]channelString with channel name device has switchted to
    -
    -
    -
    Returns
    the success of the request
    -
    Return values
    - - - -
    truerequest handled properly
    falserequest was not handled properly because of some error
    -
    -
    -

    -Example-Code

    -
    // channelNames used to convert channelNumber into channelName
    -
    // please put in your TV channel names
    -
    // channel numbers starts counting from 0!
    -
    // so "ZDF" is channel 2
    -
    const char* channelNames[] = {
    -
    "A/V",
    -
    "ard",
    -
    "ZDF",
    -
    "n. d. r.",
    -
    "kabel eins",
    -
    "VOX",
    -
    "Sat.1",
    -
    "ProSieben",
    -
    "rtl",
    -
    "RTL II",
    -
    "SUPER RTL",
    -
    "KiKA"
    -
    };
    -
    -
    int tvChannel; // current channel selected
    -
    -
    #define MAX_CHANNELS sizeof(channelNames) / sizeof(channelNames[0]) // just to determine how many channels are in channelNames array
    -
    -
    // map channelNumbers used to convert channelName into channelNumber
    -
    // This map is initialized in "setupChannelNumbers()" function by using the "channelNames" array
    -
    std::map<String, unsigned int> channelNumbers;
    -
    -
    void setupChannelNumbers() {
    -
    for (unsigned int i=0; i < MAX_CHANNELS; i++) {
    -
    channelNumbers[channelNames[i]] = i;
    -
    }
    -
    }
    -
    -
    bool onChangeChannel(const String &deviceId, String &channel) {
    -
    tvChannel = channelNumbers[channel]; // save new channelNumber in tvChannel variable
    -
    Serial.printf("Change channel to \"%s\" (channel number %d)\r\n", channel.c_str(), tvChannel);
    -
    return true;
    -
    }
    -
    -
    -
    - -

    ◆ ChangeChannelNumberCallback

    - -
    -
    - - - - -
    using ChangeChannelNumberCallback = std::function<bool(const String &, int, String &)>
    -
    - -

    Callback definition for onChangeChannelNumber function.

    -

    Gets called when device receive a changeChannel request by using channel number

    Parameters
    - - - - -
    [in]deviceIdString which contains the ID of device
    [in]channelNumberInteger with channel number device is requested to switch to
    [out]channelNameString with channel name device has switchted to
    -
    -
    -
    Returns
    the success of the request
    -
    Return values
    - - - -
    truerequest handled properly
    falserequest was not handled properly because of some error
    -
    -
    -

    -Example-Code

    -
    // channelNames used to convert channelNumber into channelName
    -
    // please put in your TV channel names
    -
    // channel numbers starts counting from 0!
    -
    // so "ZDF" is channel 2
    -
    const char* channelNames[] = {
    -
    "A/V",
    -
    "ard",
    -
    "ZDF",
    -
    "n. d. r.",
    -
    "kabel eins",
    -
    "VOX",
    -
    "Sat.1",
    -
    "ProSieben",
    -
    "rtl",
    -
    "RTL II",
    -
    "SUPER RTL",
    -
    "KiKA"
    -
    };
    -
    -
    int tvChannel; // current channel selected
    -
    -
    #define MAX_CHANNELS sizeof(channelNames) / sizeof(channelNames[0]) // just to determine how many channels are in channelNames array
    -
    -
    // map channelNumbers used to convert channelName into channelNumber
    -
    // This map is initialized in "setupChannelNumbers()" function by using the "channelNames" array
    -
    std::map<String, unsigned int> channelNumbers;
    -
    -
    void setupChannelNumbers() {
    -
    for (unsigned int i=0; i < MAX_CHANNELS; i++) {
    -
    channelNumbers[channelNames[i]] = i;
    -
    }
    -
    }
    -
    -
    bool onChangeChannelNumber(const String& deviceId, int channelNumber, String& channelName) {
    -
    tvChannel = channelNumber; // update tvChannel to new channel number
    -
    if (tvChannel < 0) tvChannel = 0;
    -
    if (tvChannel > MAX_CHANNELS-1) tvChannel = MAX_CHANNELS-1;
    -
    -
    channelName = channelNames[tvChannel]; // return the channelName
    -
    -
    Serial.printf("Change to channel to %d (channel name \"%s\")\r\n", tvChannel, channelName.c_str());
    -
    return true;
    -
    }
    -
    -
    -
    - -

    ◆ ColorCallback

    - -
    -
    - - - - -
    using ColorCallback = std::function<bool(const String &, byte &, byte &, byte &)>
    -
    - -

    Callback definition for onColor function.

    -

    Gets called when device receive a setColor request
    -

    Parameters
    - - - - - - - - -
    [in]deviceIdString which contains the ID of device
    [in]rByte value for red
    [in]gByte value for green
    [in]bByte value for blue
    [out]rByte value for red
    [out]gByte value for green
    [out]bByte value for blue
    -
    -
    -
    Returns
    the success of the request
    -
    Return values
    - - - -
    truerequest handled properly
    falserequest was not handled properly because of some error
    -
    -
    -

    -Example-Code

    -
    bool onColor(const String &deviceId, byte &r, byte &g, byte &b) {
    -
    Serial.printf("Device %s color is set to red=%d, green=%d, blue=%d\r\n", deviceId.c_str(), r, g, b);
    -
    return true; // request handled properly
    -
    }
    -
    -
    -
    - -

    ◆ ColorTemperatureCallback

    - -
    -
    - - - - -
    using ColorTemperatureCallback = std::function<bool(const String &, int &)>
    -
    - -

    Callback definition for onColorTemperature function.

    -

    Gets called when device receive a setColorTemperature request
    -

    Parameters
    - - - - -
    [in]deviceIdString which contains the ID of device
    [in]colorTemperatureInteger value with color temperature the device should set to
    - 2200 = warm white
    - 2700 = soft white
    - 4000 = white
    - 5500 = daylight white
    - 7000 = cool white
    [out]colorTemperatureInteger value with color temperature the device is set to
    - 2200 = warm white
    - 2700 = soft white
    - 4000 = white
    - 5500 = daylight white
    - 7000 = cool white
    -
    -
    -
    Returns
    the success of the request
    -
    Return values
    - - - -
    truerequest handled properly
    falserequest was not handled properly because of some error
    -
    -
    -

    -Example-Code

    -
    bool onColorTemperature(const String &deviceId, int &colorTemperature) {
    -
    Serial.printf("Device %s colorTemperature is set to %i\r\n", deviceId.c_str(), colorTemperature);
    -
    return true; // request handled properly
    -
    }
    -
    -
    -
    - -

    ◆ ConnectedCallbackHandler

    - -
    -
    - - - - -
    using ConnectedCallbackHandler = std::function<void(void)>
    -
    - -

    Callback definition for onConnected function.

    -

    Gets called when device is connected to SinricPro server

    Parameters
    - - -
    void
    -
    -
    -
    Returns
    void
    - -
    -
    - -

    ◆ DecreaseColorTemperatureCallback

    - -
    -
    - - - - -
    using DecreaseColorTemperatureCallback = std::function<bool(const String &, int &)>
    -
    - -

    Callback definition for onDecreaseColorTemperature function.

    -

    Gets called when device receive a decreaseColorTemperature request
    -

    Parameters
    - - - - -
    [in]deviceIdString which contains the ID of device
    [in]colorTemperatureInteger value -1 = Device should decrease color temperature
    [out]colorTemperatureInteger value return the new color temperarature
    - 2200 = warm white
    - 2700 = soft white
    - 4000 = white
    - 5500 = daylight white
    - 7000 = cool white
    -
    -
    -
    Returns
    the success of the request
    -
    Return values
    - - - -
    truerequest handled properly
    falserequest was not handled properly because of some error
    -
    -
    -

    -Example-Code

    -
    int globalColorTemperature;
    -
    -
    bool onDecreaseColorTemperature(const String &deviceId, int &colorTemperature) {
    -
    globalColorTemperature -= 1000; // decrease globalColorTemperature about 1000;
    -
    Serial.printf("Device %s colorTemperature changed %i\r\n", deviceId.c_str(), colorTemperature);
    -
    colorTemperature = globalColorTemperature; // return new colorTemperature
    -
    return true; // request handled properly
    -
    }
    -
    -
    -
    - -

    ◆ DisconnectedCallbackHandler

    - -
    -
    - - - - -
    using DisconnectedCallbackHandler = std::function<void(void)>
    -
    - -

    Callback definition for onDisconnected function.

    -

    Gets called when device is disconnected from SinricPro server

    Parameters
    - - -
    void
    -
    -
    -
    Returns
    void
    - -
    -
    - -

    ◆ DoorCallback

    - -
    -
    - - - - -
    using DoorCallback = std::function<bool(const String &, bool &)>
    -
    - -

    Callback definition for onDoorState function.

    -

    Gets called when device receive a open or close request
    -

    Parameters
    - - - - -
    [in]deviceIdString which contains the ID of device
    [in]doorStatefalse = open, device is requested to open the garage door
    -true = close, device is requested to close the garage door
    [out]doorStatebool with actual state false = open, true = closed
    -
    -
    -
    Returns
    the success of the request
    -
    Return values
    - - - -
    truerequest handled properly
    falserequest was not handled properly because of some error
    -
    -
    -

    -Example-Code

    -
    bool onDoorState(const String &deviceId, bool &doorState) {
    -
    Serial.printf("Device %s garage door is now %s\r\n", deviceId.c_str(), doorState?"closed":"open");
    -
    return true;
    -
    }
    -
    -
    -
    - -

    ◆ GenericAdjustRangeValueCallback_int

    - -
    -
    - -

    Callback definition for onAdjustRangeValue function on a specific instance for custom devices.

    -

    Gets called when device receive a adjustRangeValue reuqest
    -

    Parameters
    - - - - - -
    [in]deviceIdString which contains the ID of device
    [in]instanceString instance name
    [in]rangeValuedelta value for range value have to change
    [out]rangeValuereturning the absolute range value
    -
    -
    -
    Returns
    the success of the request
    -
    Return values
    - - - -
    truerequest handled properly
    falserequest was not handled properly because of some error
    -
    -
    -

    -Example-Code

    -
    int globalRangeValue;
    -
    -
    bool onAdjustRangeValue(const String &deviceId, const String& instance, int &rangeValueDelta) {
    -
    globalRangeValue += rangeValueDelta; // calculate absolute rangeValue
    -
    Serial.printf("Device %s range value for %s has been changed about %i to %d\r\n", deviceId.c_str(), instance.c_str(), rangeValueDelta, globalRangeValue);
    -
    rangeValueDelta = globalRangeValue; // return absolute rangeValue
    -
    return true; // request handled properly
    -
    }
    -
    -
    -
    - -

    ◆ GenericModeCallback

    - -
    -
    - - - - -
    using GenericModeCallback = std::function<bool(const String &, const String &, String &)>
    -
    - -

    Callback definition for onSetMode function for a specific instance.

    -

    Gets called when device receive a setBands request
    -

    Parameters
    - - - - - -
    [in]deviceIdString which contains the ID of device
    [in]instanceString name of the instance
    [in]modeString device mode should set to
    [out]modeString devices mode is set to
    -
    -
    -
    Returns
    the success of the request
    -
    Return values
    - - - -
    truerequest handled properly
    falserequest was not handled properly because of some error
    -
    -
    -

    -Example-Code

    -
    bool onSetMode(const String &deviceId, const String &instance, String &mode) {
    -
    Serial.printf("Device %s mode %s set to %s\r\n", deviceId.c_str(), instance.c_str(), mode);
    -
    return true; // request handled properly
    -
    }
    -
    -
    -
    - -

    ◆ GenericRangeValueCallback_int

    - -
    -
    - - - - -
    using GenericRangeValueCallback_int = bool (*)(const String &, const String &, int &)
    -
    - -

    Callback definition for onRangeValue function.

    -

    Gets called when device receive a setRangeValue reuqest
    -

    Parameters
    - - - - -
    [in]deviceIdString which contains the ID of device
    [in]rangeValuefor range value device has to be set
    [out]rangeValuereturning the current range value
    -
    -
    -
    Returns
    the success of the request
    -
    Return values
    - - - -
    truerequest handled properly
    falserequest was not handled properly because of some error
    -
    -
    -

    -Example-Code

    -
    bool onRangeValue(const String &deviceId, int &rangeValue) {
    -
    Serial.printf("Device %s range value has been set to %d\r\n", deviceId.c_str(), rangeValue);
    -
    return true; // request handled properly
    -
    }
    -
    -
    -
    - -

    ◆ GenericSetRangeValueCallback_int

    - -
    -
    - -

    Callback definition for onRangeValue function on a specific instance.

    -

    Gets called when device receive a setRangeValue reuqest
    -

    Parameters
    - - - - - -
    [in]deviceIdString which contains the ID of device
    [in]instanceString instance name
    [in]rangeValuefor range value device has to be set
    [out]rangeValuereturning the current range value
    -
    -
    -
    Returns
    the success of the request
    -
    Return values
    - - - -
    truerequest handled properly
    falserequest was not handled properly because of some error
    -
    -
    -

    -Example-Code

    -
    bool onRangeValue(const String &deviceId, const String &instance, int &rangeValue) {
    -
    Serial.printf("Device %s range value for %s has been set to %d\r\n", deviceId.c_str(), instance.c_str(), rangeValue);
    -
    return true; // request handled properly
    -
    }
    -
    -
    -
    - -

    ◆ GenericToggleStateCallback

    - -
    -
    - - - - -
    using GenericToggleStateCallback = std::function<bool(const String &, const String&, bool &)>
    -
    - -

    Callback definition for onToggleState function.

    -

    Gets called when device receive a setPowerState reuqest
    -

    Parameters
    - - - - - -
    [in]deviceIdString which contains the ID of device
    [in]instanceString which instance is requested
    [in]statetrue = device is requested to turn on
    - false = device is requested to turn off
    [out]statetrue = device has been turned on
    - false = device has been turned off
    -
    -
    -
    Returns
    the success of the request
    -
    Return values
    - - - -
    truerequest handled properly
    falserequest was not handled properly because of some error
    -
    -
    -

    -Example-Code

    -
    bool onToggleState(const String &deviceId, const String &instance, bool &state) {
    -
    Serial.printf("Device %s state \"%s\" turned %s\r\n", deviceId.c_str(), instance.c_str(), state ? "on" : "off");
    -
    return true; // request handled properly
    -
    }
    -
    -
    -
    - -

    ◆ IncreaseColorTemperatureCallback

    - -
    -
    - - - - -
    using IncreaseColorTemperatureCallback = std::function<bool(const String &, int &)>
    -
    - -

    Callback definition for onIncreaseColorTemperature function.

    -

    Gets called when device receive a increaseColorTemperature request
    -

    Parameters
    - - - - -
    [in]deviceIdString which contains the ID of device
    [in]colorTemperatureInteger value 1 = Device should increase color temperature
    [out]colorTemperatureInteger value return the new color temperarature
    - 2200 = warm white
    - 2700 = soft white
    - 4000 = white
    - 5500 = daylight white
    - 7000 = cool white
    -
    -
    -
    Returns
    the success of the request
    -
    Return values
    - - - -
    truerequest handled properly
    falserequest was not handled properly because of some error
    -
    -
    -

    -Example-Code

    -
    int globalColorTemperature;
    -
    -
    bool onIncreaseColorTemperature(const String &deviceId, int &colorTemperature) {
    -
    globalColorTemperature += 1000; // increase globalColorTemperature about 1000;
    -
    Serial.printf("Device %s colorTemperature changed to %i\r\n", deviceId.c_str(), colorTemperature);
    -
    colorTemperature = globalColorTemperature; // return new colorTemperature
    -
    return true; // request handled properly
    -
    }
    -
    -
    -
    - -

    ◆ KeystrokeCallback

    - -
    -
    - - - - -
    using KeystrokeCallback = std::function<bool(const String &, String &)>
    -
    - -

    Callback definition for onKeystroke function.

    -

    Gets called when device receive a setBands request
    -

    Parameters
    - - - - -
    [in]deviceIdString which contains the ID of device
    [in]keystrokeString keystroke
    - INFO, MORE, SELECT, UP, DOWN, LEFT, RIGHT, PAGE_UP, PAGE_DOWN, PAGE_LEFT, PAGE_RIGHT
    [out]keystrokeString keystroke
    - INFO, MORE, SELECT, UP, DOWN, LEFT, RIGHT, PAGE_UP, PAGE_DOWN, PAGE_LEFT, PAGE_RIGHT
    -
    -
    -
    Returns
    the success of the request
    -
    Return values
    - - - -
    truerequest handled properly
    falserequest was not handled properly because of some error
    -
    -
    -

    -Example-Code

    -
    bool onKeystroke(const String& deviceId, String &keystroke) {
    -
    Serial.printf("Device %s, key %s pressed\r\n", deviceId.c_str(), keystroke.c_str());
    -
    return true;
    -
    }
    -
    -
    -
    - -

    ◆ LockStateCallback

    - -
    -
    - - - - -
    using LockStateCallback = std::function<bool(const String &, bool &)>
    -
    - -

    Callback definition for onLockState function.

    -

    Gets called when device receive a setLockState request
    -

    Parameters
    - - - - -
    [in]deviceIdString which contains the ID of device
    [in]statetrue = device is requested to lock
    - false = device is requested to unlock
    [out]statetrue = device has been locked
    - false = device has been unlocked
    -
    -
    -
    Returns
    the success of the request
    -
    Return values
    - - - -
    truerequest handled properly
    falserequest was not handled properly because of some error
    -
    -
    -

    -Example-Code

    -
    bool onLockState(const String &deviceId, bool &lockState) {
    -
    Serial.printf("Device is %s\r\n", lockState?"locked":"unlocked");
    -
    return true;
    -
    }
    -
    -
    -
    - -

    ◆ MediaControlCallback

    - -
    -
    - - - - -
    using MediaControlCallback = std::function<bool(const String &, String &)>
    -
    - -

    Callback definition for onMediaControl function.

    -

    Gets called when device receive a mediaControl request
    -

    Parameters
    - - - - -
    [in]deviceIdString which contains the ID of device
    [in]controlString with requested control
    - FastForward, Next, Pause, Play, Previous, Rewind, StartOver, Stop
    [out]controlString with control
    - FastForward, Next, Pause, Play, Previous, Rewind, StartOver, Stop
    -
    -
    -
    Returns
    the success of the request
    -
    Return values
    - - - -
    truerequest handled properly
    falserequest was not handled properly because of some error
    -
    -
    -

    -Example-Code

    -
    bool onMediaControl(const String &deviceId, String &control) {
    -
    Serial.printf("Device %s: %s\r\n", deviceId.c_str(), control.c_str());
    -
    return true; // request handled properly
    -
    }
    -
    -
    -
    - -

    ◆ ModeCallback

    - -
    -
    - - - - -
    using ModeCallback = std::function<bool(const String &, String &)>
    -
    - -

    Callback definition for onSetMode function.

    -

    Gets called when device receive a setBands request
    -

    Parameters
    - - - - -
    [in]deviceIdString which contains the ID of device
    [in]modeString device mode should set to
    - MOVIE, MUSIC, NIGHT, SPORT, TV
    [out]modeString devices mode is set to
    - MOVIE, MUSIC, NIGHT, SPORT, TV
    -
    -
    -
    Returns
    the success of the request
    -
    Return values
    - - - -
    truerequest handled properly
    falserequest was not handled properly because of some error
    -
    -
    -

    -Example-Code

    -
    bool onSetMode(const String &deviceId, String &mode) {
    -
    Serial.printf("Device %s is set to mode %s\r\n", deviceId.c_str(), mode);
    -
    return true; // request handled properly
    -
    }
    -
    -
    -
    - -

    ◆ MuteCallback

    - -
    -
    - - - - -
    using MuteCallback = std::function<bool(const String &, bool &)>
    -
    - -

    Callback definition for onMute function.

    -

    Gets called when device receive a setMute request
    -

    Parameters
    - - - - -
    [in]deviceIdString which contains the ID of device
    [in]mutetrue mute device
    - false unmute device
    [out]mutetrue device is muted
    - false device is unmuted
    -
    -
    -
    Returns
    the success of the request
    -
    Return values
    - - - -
    truerequest handled properly
    falserequest was not handled properly because of some error
    -
    -
    -

    -Example-Code

    -
    bool onMute(const String &deviceId, bool &mute) {
    -
    Serial.printf("Device %s is %s\r\n", deviceId.c_str(), mute?"muted":"unmuted");
    -
    return true; // request handled properly
    -
    }
    -
    -
    -
    - -

    ◆ PowerStateCallback

    - -
    -
    - - - - -
    using PowerStateCallback = std::function<bool(const String &, bool &)>
    -
    - -

    Callback definition for onPowerState function.

    -

    Gets called when device receive a setPowerState reuqest
    -

    Parameters
    - - - - -
    [in]deviceIdString which contains the ID of device
    [in]statetrue = device is requested to turn on
    - false = device is requested to turn off
    [out]statetrue = device has been turned on
    - false = device has been turned off
    -
    -
    -
    Returns
    the success of the request
    -
    Return values
    - - - -
    truerequest handled properly
    falserequest was not handled properly because of some error
    -
    -
    -

    -Example-Code

    -
    bool onPowerState(const String &deviceId, bool &state) {
    -
    Serial.printf("Device %s turned %s\r\n", deviceId.c_str(), state?"on":"off");
    -
    return true; // request handled properly
    -
    }
    -
    -
    -
    - -

    ◆ ResetBandsCallback

    - -
    -
    - - - - -
    using ResetBandsCallback = std::function<bool(const String &, const String &, int &)>
    -
    - -

    Callback definition for onResetBands function.

    -

    Gets called when device receive a onResetBands request
    -

    Parameters
    - - - - - -
    [in]deviceIdString which contains the ID of device
    [in]bandsString with requested bands to reset
    - BASS, MIDRANGE, TREBBLE
    [out]bandsString with changed bands
    - BASS, MIDRANGE, TREBBLE
    [out]levelInteger value with level bands changed to
    -
    -
    -
    Returns
    the success of the request
    -
    Return values
    - - - -
    truerequest handled properly
    falserequest was not handled properly because of some error
    -
    -
    -

    -Example-Code

    -
    std::map<String, int> equalizerBands;
    -
    -
    bool onResetBands(const String &deviceId, String &bands, int &level) {
    -
    equalizerBands[bands] = 0; // reset bands level to 0
    -
    Serial.printf("Device %s bands %s reset to %d\r\n", deviceId.c_str(), bands.c_str(), equalizerBands[bands]);
    -
    return true; // request handled properly
    -
    }
    -
    -
    -
    - -

    ◆ SelectInputCallback

    - -
    -
    - - - - -
    using SelectInputCallback = std::function<bool(const String &, String &)>
    -
    - -

    Callback definition for onSelectInput function.

    -

    Gets called when device receive a selectInput request
    -

    Parameters
    - - - - -
    [in]deviceIdString which contains the ID of device
    [in]inputString with input name device is requested to switch to
    - AUX 1..AUX 7, BLURAY, CABLE, CD, COAX 1,COAX 2, COMPOSITE 1, DVD, GAME, HD RADIO, HDMI 1.. HDMI 10, HDMI ARC, INPUT 1..INPUT 10, IPOD, LINE 1..LINE 7, MEDIA PLAYER, OPTICAL 1, OPTICAL 2, PHONO, PLAYSTATION, PLAYSTATION 3, PLAYSTATION 4, SATELLITE, SMARTCAST, TUNER, TV, USB DAC, VIDEO 1..VIDEO 3, XBOX
    [out]inputString with input name device has switchted to
    - AUX 1..AUX 7, BLURAY, CABLE, CD, COAX 1,COAX 2, COMPOSITE 1, DVD, GAME, HD RADIO, HDMI 1.. HDMI 10, HDMI ARC, INPUT 1..INPUT 10, IPOD, LINE 1..LINE 7, MEDIA PLAYER, OPTICAL 1, OPTICAL 2, PHONO, PLAYSTATION, PLAYSTATION 3, PLAYSTATION 4, SATELLITE, SMARTCAST, TUNER, TV, USB DAC, VIDEO 1..VIDEO 3, XBOX
    -
    -
    -
    Returns
    the success of the request
    -
    Return values
    - - - -
    truerequest handled properly
    falserequest was not handled properly because of some error
    -
    -
    -

    -Example-Code

    -
    bool onSelectInput(const String &deviceId, String &input) {
    -
    Serial.printf("Device %s input changed to %s\r\n", deviceId.c_str(), input.c_str());
    -
    return true;
    -
    }
    -
    -
    -
    - -

    ◆ SetBandsCallback

    - -
    -
    - - - - -
    using SetBandsCallback = std::function<bool(const String &, const String &, int &)>
    -
    - -

    Callback definition for onSetBands function.

    -

    Gets called when device receive a setBands request
    -

    Parameters
    - - - - - - -
    [in]deviceIdString which contains the ID of device
    [in]bandsString with requested bands to change
    - BASS, MIDRANGE, TREBBLE
    [in]levelInteger value with level bands should set to
    [out]bandsString with changed bands
    - BASS, MIDRANGE, TREBBLE
    [out]levelInteger value with level bands changed to
    -
    -
    -
    Returns
    the success of the request
    -
    Return values
    - - - -
    truerequest handled properly
    falserequest was not handled properly because of some error
    -
    -
    -

    -Example-Code

    -
    std::map<String, int> equalizerBands;
    -
    -
    bool onSetBands(const String &deviceId, String &bands, int &level) {
    -
    Serial.printf("Device %s bands %s set to %d\r\n", deviceId.c_str(), bands.c_str(), level);
    -
    equalizerBands[bands] = level;
    -
    return true; // request handled properly
    -
    }
    -
    -
    -
    - -

    ◆ SetPercentageCallback

    - -
    -
    - - - - -
    using SetPercentageCallback = std::function<bool(const String &, int &)>
    -
    - -

    Callback definition for onSetPercentage function.

    -

    Gets called when device receive a setPercentage request
    -

    Parameters
    - - - - -
    [in]deviceIdString which contains the ID of device
    [in]percentageInteger with percentage device should set to
    [out]percentageInteger with percentage device has been set to
    -
    -
    -
    Returns
    the success of the request
    -
    Return values
    - - - -
    truerequest handled properly
    falserequest was not handled properly because of some error
    -
    -
    -

    -Example-Code

    -
    bool onSetPercentage(const String &deviceId, int &percentage) {
    -
    Serial.printf("Device %s percentage %d\r\n", deviceId.c_str(), percentage);
    -
    return true; // request handled properly
    -
    }
    -
    -
    -
    - -

    ◆ SetPowerLevelCallback

    - -
    -
    - - - - -
    using SetPowerLevelCallback = std::function<bool(const String &, int &)>
    -
    - -

    Definition for setPowerLevel callback.

    -

    Gets called when device receive a setPowerLevel reuqest
    -

    Parameters
    - - - - -
    [in]deviceIdString which contains the ID of device
    [in]powerLevelinteger 0..100 new powerlevel the device should be set to
    [out]powerLevelinteger 0..100 report the powerlevel that the device have been set to
    -
    -
    -
    Returns
    the success of the request
    -
    Return values
    - - - -
    truerequest handled properly
    falserequest was not handled properly because of some error
    -
    -
    -

    -Example-Code

    -
    bool onPowerLevel(const String &deviceId, int &powerLevel) {
    -
    Serial.printf("Device %s powerlevel %d\r\n", deviceId.c_str(), powerLevel);
    -
    return true; // request handled properly
    -
    }
    -
    -
    -
    - -

    ◆ SetTargetTemperatureCallback

    - -
    -
    - - - - -
    using SetTargetTemperatureCallback = std::function<bool(const String &, float &)>
    -
    - -

    Callback definition for onTargetTemperature function.

    -

    Gets called when device receive a targetTemperature request
    -

    Parameters
    - - - - -
    [in]deviceIdString which contains the ID of device
    [in]temperatureFloat device is requested to set the target temperature to
    [out]temperatureFloat target temperature temperature device is set to
    -
    -
    -
    Returns
    the success of the request
    -
    Return values
    - - - -
    truerequest handled properly
    falserequest was not handled properly because of some error
    -
    -
    -

    -Example-Code

    -
    bool onTargetTemperature(const String &deviceId, float &targetTemp) {
    -
    Serial.printf("Device %s target temperature set to %f\r\n", deviceId.c_str(), targetTemp);
    -
    return true; // request handled properly
    -
    }
    -
    -
    -
    - -

    ◆ SetVolumeCallback

    - -
    -
    - - - - -
    using SetVolumeCallback = std::function<bool(const String &, int &)>
    -
    - -

    Callback definition for onSetVolume function.

    -

    Gets called when device receive a setVolume request
    -

    Parameters
    - - - - -
    [in]deviceIdString which contains the ID of device
    [in]volumeInteger with volume device should set to
    [out]volumeInteger with volume device has been set to
    -
    -
    -
    Returns
    the success of the request
    -
    Return values
    - - - -
    truerequest handled properly
    falserequest was not handled properly because of some error
    -
    -
    -

    -Example-Code

    -
    bool onSetVolume(const String &deviceId, int &volume) {
    -
    Serial.printf("Device %s volume set to %d\r\n", deviceId.c_str(), volume);
    -
    return true; // request handled properly
    -
    }
    -
    -
    -
    - -

    ◆ SkipChannelsCallback

    - -
    -
    - - - - -
    using SkipChannelsCallback = std::function<bool(const String &, int, String &)>
    -
    - -

    Callback definition for onSkipChannels function.

    -

    Gets called when device receive a changeChannel request by using channel number

    Parameters
    - - - - -
    [in]deviceIdString which contains the ID of device
    [in]channelCountInteger with channels device is requested to skip -n..+n
    [out]channelNameString with channel name device has switchted to
    -
    -
    -
    Returns
    the success of the request
    -
    Return values
    - - - -
    truerequest handled properly
    falserequest was not handled properly because of some error
    -
    -
    -

    -Example-Code

    -
    // channelNames used to convert channelNumber into channelName
    -
    // please put in your TV channel names
    -
    // channel numbers starts counting from 0!
    -
    // so "ZDF" is channel 2
    -
    const char* channelNames[] = {
    -
    "A/V",
    -
    "ard",
    -
    "ZDF",
    -
    "n. d. r.",
    -
    "kabel eins",
    -
    "VOX",
    -
    "Sat.1",
    -
    "ProSieben",
    -
    "rtl",
    -
    "RTL II",
    -
    "SUPER RTL",
    -
    "KiKA"
    -
    };
    -
    -
    int tvChannel; // current channel selected
    -
    -
    #define MAX_CHANNELS sizeof(channelNames) / sizeof(channelNames[0]) // just to determine how many channels are in channelNames array
    -
    -
    // map channelNumbers used to convert channelName into channelNumber
    -
    // This map is initialized in "setupChannelNumbers()" function by using the "channelNames" array
    -
    std::map<String, unsigned int> channelNumbers;
    -
    -
    void setupChannelNumbers() {
    -
    for (unsigned int i=0; i < MAX_CHANNELS; i++) {
    -
    channelNumbers[channelNames[i]] = i;
    -
    }
    -
    }
    -
    -
    bool onSkipChannels(const String &deviceId, const int channelCount, String &channelName) {
    -
    tvChannel += channelCount; // calculate new channel number
    -
    if (tvChannel < 0) tvChannel = 0;
    -
    if (tvChannel > MAX_CHANNELS-1) tvChannel = MAX_CHANNELS-1;
    -
    channelName = String(channelNames[tvChannel]); // return channel name
    -
    -
    Serial.printf("Skip channel: %i (number: %i / name: \"%s\")\r\n", channelCount, tvChannel, channelName.c_str());
    -
    -
    return true;
    -
    }
    -
    -
    -
    - -

    ◆ ThermostatModeCallback

    - -
    -
    - - - - -
    using ThermostatModeCallback = std::function<bool(const String &, String &)>
    -
    - -

    Callback definition for onThermostatMode function.

    -

    Gets called when device receive a setThermostatMode request
    -

    Parameters
    - - - - -
    [in]deviceIdString which contains the ID of device
    [in]modeString with mode device should set to
    [out]modeString device mode is set to
    -
    -
    -
    Returns
    the success of the request
    -
    Return values
    - - - -
    truerequest handled properly
    falserequest was not handled properly because of some error
    -
    -
    -

    -Example-Code

    -
    bool onThermostatMode(const String& deviceId, String& mode) {
    -
    Serial.printf("Deivce %s thermostat mode set to %s\r\n", deviceId.c_str(), mode);
    -
    return true; // request handled properly
    -
    }
    -
    -
    -
    -
    -
    - - - - diff --git a/docs/docs/namespacemembers.html b/docs/docs/namespacemembers.html deleted file mode 100644 index 4e141c7..0000000 --- a/docs/docs/namespacemembers.html +++ /dev/null @@ -1,256 +0,0 @@ - - - - - - - -SinricPro Library: Namespace Members - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    SinricPro Library -
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    - -

    - a -

    - - -

    - b -

    - - -

    - c -

    - - -

    - d -

    - - -

    - g -

    - - -

    - i -

    - - -

    - k -

    - - -

    - l -

    - - -

    - m -

    - - -

    - p -

    - - -

    - r -

    - - -

    - s -

    - - -

    - t -

    -
    -
    - - - - diff --git a/docs/docs/namespacemembers_type.html b/docs/docs/namespacemembers_type.html deleted file mode 100644 index 047259a..0000000 --- a/docs/docs/namespacemembers_type.html +++ /dev/null @@ -1,256 +0,0 @@ - - - - - - - -SinricPro Library: Namespace Members - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    SinricPro Library -
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -  - -

    - a -

    - - -

    - b -

    - - -

    - c -

    - - -

    - d -

    - - -

    - g -

    - - -

    - i -

    - - -

    - k -

    - - -

    - l -

    - - -

    - m -

    - - -

    - p -

    - - -

    - r -

    - - -

    - s -

    - - -

    - t -

    -
    -
    - - - - diff --git a/docs/docs/nav_f.png b/docs/docs/nav_f.png deleted file mode 100644 index 72a58a529ed3a9ed6aa0c51a79cf207e026deee2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQVE_ejv*C{Z|{2ZH7M}7UYxc) zn!W8uqtnIQ>_z8U diff --git a/docs/docs/nav_g.png b/docs/docs/nav_g.png deleted file mode 100644 index 2093a237a94f6c83e19ec6e5fd42f7ddabdafa81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrB!3HFm1ilyoDK$?Q$B+ufw|5PB85lU25BhtE tr?otc=hd~V+ws&_A@j8Fiv!KF$B+ufw|5=67#uj90@pIL wZ=Q8~_Ju`#59=RjDrmm`tMD@M=!-l18IR?&vFVdQ&MBb@0HFXL=0 ? varName.substring(i+1) : varName; - return eval(n.replace(/\-/g,'_')); -} - -function stripPath(uri) -{ - return uri.substring(uri.lastIndexOf('/')+1); -} - -function stripPath2(uri) -{ - var i = uri.lastIndexOf('/'); - var s = uri.substring(i+1); - var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/); - return m ? uri.substring(i-6) : s; -} - -function hashValue() -{ - return $(location).attr('hash').substring(1).replace(/[^\w\-]/g,''); -} - -function hashUrl() -{ - return '#'+hashValue(); -} - -function pathName() -{ - return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;\(\)]/g, ''); -} - -function localStorageSupported() -{ - try { - return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem; - } - catch(e) { - return false; - } -} - -function storeLink(link) -{ - if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) { - window.localStorage.setItem('navpath',link); - } -} - -function deleteLink() -{ - if (localStorageSupported()) { - window.localStorage.setItem('navpath',''); - } -} - -function cachedLink() -{ - if (localStorageSupported()) { - return window.localStorage.getItem('navpath'); - } else { - return ''; - } -} - -function getScript(scriptName,func,show) -{ - var head = document.getElementsByTagName("head")[0]; - var script = document.createElement('script'); - script.id = scriptName; - script.type = 'text/javascript'; - script.onload = func; - script.src = scriptName+'.js'; - head.appendChild(script); -} - -function createIndent(o,domNode,node,level) -{ - var level=-1; - var n = node; - while (n.parentNode) { level++; n=n.parentNode; } - if (node.childrenData) { - var imgNode = document.createElement("span"); - imgNode.className = 'arrow'; - imgNode.style.paddingLeft=(16*level).toString()+'px'; - imgNode.innerHTML=arrowRight; - node.plus_img = imgNode; - node.expandToggle = document.createElement("a"); - node.expandToggle.href = "javascript:void(0)"; - node.expandToggle.onclick = function() { - if (node.expanded) { - $(node.getChildrenUL()).slideUp("fast"); - node.plus_img.innerHTML=arrowRight; - node.expanded = false; - } else { - expandNode(o, node, false, false); - } - } - node.expandToggle.appendChild(imgNode); - domNode.appendChild(node.expandToggle); - } else { - var span = document.createElement("span"); - span.className = 'arrow'; - span.style.width = 16*(level+1)+'px'; - span.innerHTML = ' '; - domNode.appendChild(span); - } -} - -var animationInProgress = false; - -function gotoAnchor(anchor,aname,updateLocation) -{ - var pos, docContent = $('#doc-content'); - var ancParent = $(anchor.parent()); - if (ancParent.hasClass('memItemLeft') || - ancParent.hasClass('memtitle') || - ancParent.hasClass('fieldname') || - ancParent.hasClass('fieldtype') || - ancParent.is(':header')) - { - pos = ancParent.position().top; - } else if (anchor.position()) { - pos = anchor.position().top; - } - if (pos) { - var dist = Math.abs(Math.min( - pos-docContent.offset().top, - docContent[0].scrollHeight- - docContent.height()-docContent.scrollTop())); - animationInProgress=true; - docContent.animate({ - scrollTop: pos + docContent.scrollTop() - docContent.offset().top - },Math.max(50,Math.min(500,dist)),function(){ - if (updateLocation) window.location.href=aname; - animationInProgress=false; - }); - } -} - -function newNode(o, po, text, link, childrenData, lastNode) -{ - var node = new Object(); - node.children = Array(); - node.childrenData = childrenData; - node.depth = po.depth + 1; - node.relpath = po.relpath; - node.isLast = lastNode; - - node.li = document.createElement("li"); - po.getChildrenUL().appendChild(node.li); - node.parentNode = po; - - node.itemDiv = document.createElement("div"); - node.itemDiv.className = "item"; - - node.labelSpan = document.createElement("span"); - node.labelSpan.className = "label"; - - createIndent(o,node.itemDiv,node,0); - node.itemDiv.appendChild(node.labelSpan); - node.li.appendChild(node.itemDiv); - - var a = document.createElement("a"); - node.labelSpan.appendChild(a); - node.label = document.createTextNode(text); - node.expanded = false; - a.appendChild(node.label); - if (link) { - var url; - if (link.substring(0,1)=='^') { - url = link.substring(1); - link = url; - } else { - url = node.relpath+link; - } - a.className = stripPath(link.replace('#',':')); - if (link.indexOf('#')!=-1) { - var aname = '#'+link.split('#')[1]; - var srcPage = stripPath(pathName()); - var targetPage = stripPath(link.split('#')[0]); - a.href = srcPage!=targetPage ? url : "javascript:void(0)"; - a.onclick = function(){ - storeLink(link); - if (!$(a).parent().parent().hasClass('selected')) - { - $('.item').removeClass('selected'); - $('.item').removeAttr('id'); - $(a).parent().parent().addClass('selected'); - $(a).parent().parent().attr('id','selected'); - } - var anchor = $(aname); - gotoAnchor(anchor,aname,true); - }; - } else { - a.href = url; - a.onclick = function() { storeLink(link); } - } - } else { - if (childrenData != null) - { - a.className = "nolink"; - a.href = "javascript:void(0)"; - a.onclick = node.expandToggle.onclick; - } - } - - node.childrenUL = null; - node.getChildrenUL = function() { - if (!node.childrenUL) { - node.childrenUL = document.createElement("ul"); - node.childrenUL.className = "children_ul"; - node.childrenUL.style.display = "none"; - node.li.appendChild(node.childrenUL); - } - return node.childrenUL; - }; - - return node; -} - -function showRoot() -{ - var headerHeight = $("#top").height(); - var footerHeight = $("#nav-path").height(); - var windowHeight = $(window).height() - headerHeight - footerHeight; - (function (){ // retry until we can scroll to the selected item - try { - var navtree=$('#nav-tree'); - navtree.scrollTo('#selected',100,{offset:-windowHeight/2}); - } catch (err) { - setTimeout(arguments.callee, 0); - } - })(); -} - -function expandNode(o, node, imm, showRoot) -{ - if (node.childrenData && !node.expanded) { - if (typeof(node.childrenData)==='string') { - var varName = node.childrenData; - getScript(node.relpath+varName,function(){ - node.childrenData = getData(varName); - expandNode(o, node, imm, showRoot); - }, showRoot); - } else { - if (!node.childrenVisited) { - getNode(o, node); - } - $(node.getChildrenUL()).slideDown("fast"); - node.plus_img.innerHTML = arrowDown; - node.expanded = true; - } - } -} - -function glowEffect(n,duration) -{ - n.addClass('glow').delay(duration).queue(function(next){ - $(this).removeClass('glow');next(); - }); -} - -function highlightAnchor() -{ - var aname = hashUrl(); - var anchor = $(aname); - if (anchor.parent().attr('class')=='memItemLeft'){ - var rows = $('.memberdecls tr[class$="'+hashValue()+'"]'); - glowEffect(rows.children(),300); // member without details - } else if (anchor.parent().attr('class')=='fieldname'){ - glowEffect(anchor.parent().parent(),1000); // enum value - } else if (anchor.parent().attr('class')=='fieldtype'){ - glowEffect(anchor.parent().parent(),1000); // struct field - } else if (anchor.parent().is(":header")) { - glowEffect(anchor.parent(),1000); // section header - } else { - glowEffect(anchor.next(),1000); // normal member - } -} - -function selectAndHighlight(hash,n) -{ - var a; - if (hash) { - var link=stripPath(pathName())+':'+hash.substring(1); - a=$('.item a[class$="'+link+'"]'); - } - if (a && a.length) { - a.parent().parent().addClass('selected'); - a.parent().parent().attr('id','selected'); - highlightAnchor(); - } else if (n) { - $(n.itemDiv).addClass('selected'); - $(n.itemDiv).attr('id','selected'); - } - if ($('#nav-tree-contents .item:first').hasClass('selected')) { - $('#nav-sync').css('top','30px'); - } else { - $('#nav-sync').css('top','5px'); - } - showRoot(); -} - -function showNode(o, node, index, hash) -{ - if (node && node.childrenData) { - if (typeof(node.childrenData)==='string') { - var varName = node.childrenData; - getScript(node.relpath+varName,function(){ - node.childrenData = getData(varName); - showNode(o,node,index,hash); - },true); - } else { - if (!node.childrenVisited) { - getNode(o, node); - } - $(node.getChildrenUL()).css({'display':'block'}); - node.plus_img.innerHTML = arrowDown; - node.expanded = true; - var n = node.children[o.breadcrumbs[index]]; - if (index+11) hash = '#'+parts[1].replace(/[^\w\-]/g,''); - else hash=''; - } - if (hash.match(/^#l\d+$/)) { - var anchor=$('a[name='+hash.substring(1)+']'); - glowEffect(anchor.parent(),1000); // line number - hash=''; // strip line number anchors - } - var url=root+hash; - var i=-1; - while (NAVTREEINDEX[i+1]<=url) i++; - if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index - if (navTreeSubIndices[i]) { - gotoNode(o,i,root,hash,relpath) - } else { - getScript(relpath+'navtreeindex'+i,function(){ - navTreeSubIndices[i] = eval('NAVTREEINDEX'+i); - if (navTreeSubIndices[i]) { - gotoNode(o,i,root,hash,relpath); - } - },true); - } -} - -function showSyncOff(n,relpath) -{ - n.html(''); -} - -function showSyncOn(n,relpath) -{ - n.html(''); -} - -function toggleSyncButton(relpath) -{ - var navSync = $('#nav-sync'); - if (navSync.hasClass('sync')) { - navSync.removeClass('sync'); - showSyncOff(navSync,relpath); - storeLink(stripPath2(pathName())+hashUrl()); - } else { - navSync.addClass('sync'); - showSyncOn(navSync,relpath); - deleteLink(); - } -} - -var loadTriggered = false; -var readyTriggered = false; -var loadObject,loadToRoot,loadUrl,loadRelPath; - -$(window).on('load',function(){ - if (readyTriggered) { // ready first - navTo(loadObject,loadToRoot,loadUrl,loadRelPath); - showRoot(); - } - loadTriggered=true; -}); - -function initNavTree(toroot,relpath) -{ - var o = new Object(); - o.toroot = toroot; - o.node = new Object(); - o.node.li = document.getElementById("nav-tree-contents"); - o.node.childrenData = NAVTREE; - o.node.children = new Array(); - o.node.childrenUL = document.createElement("ul"); - o.node.getChildrenUL = function() { return o.node.childrenUL; }; - o.node.li.appendChild(o.node.childrenUL); - o.node.depth = 0; - o.node.relpath = relpath; - o.node.expanded = false; - o.node.isLast = true; - o.node.plus_img = document.createElement("span"); - o.node.plus_img.className = 'arrow'; - o.node.plus_img.innerHTML = arrowRight; - - if (localStorageSupported()) { - var navSync = $('#nav-sync'); - if (cachedLink()) { - showSyncOff(navSync,relpath); - navSync.removeClass('sync'); - } else { - showSyncOn(navSync,relpath); - } - navSync.click(function(){ toggleSyncButton(relpath); }); - } - - if (loadTriggered) { // load before ready - navTo(o,toroot,hashUrl(),relpath); - showRoot(); - } else { // ready before load - loadObject = o; - loadToRoot = toroot; - loadUrl = hashUrl(); - loadRelPath = relpath; - readyTriggered=true; - } - - $(window).bind('hashchange', function(){ - if (window.location.hash && window.location.hash.length>1){ - var a; - if ($(location).attr('hash')){ - var clslink=stripPath(pathName())+':'+hashValue(); - a=$('.item a[class$="'+clslink.replace(/1|%O$WD@{VPM$7~Ar*{o?;hlAFyLXmaDC0y znK1_#cQqJWPES%4Uujug^TE?jMft$}Eq^WaR~)%f)vSNs&gek&x%A9X9sM=desktop_vp) { - if (!collapsed) { - collapseExpand(); - } - } else if (width>desktop_vp && collapsedWidth0) { - restoreWidth(0); - collapsed=true; - } - else { - var width = readCookie('width'); - if (width>200 && width<$(window).width()) { restoreWidth(width); } else { restoreWidth(200); } - collapsed=false; - } - } - - header = $("#top"); - sidenav = $("#side-nav"); - content = $("#doc-content"); - navtree = $("#nav-tree"); - footer = $("#nav-path"); - $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); - $(sidenav).resizable({ minWidth: 0 }); - $(window).resize(function() { resizeHeight(); }); - var device = navigator.userAgent.toLowerCase(); - var touch_device = device.match(/(iphone|ipod|ipad|android)/); - if (touch_device) { /* wider split bar for touch only devices */ - $(sidenav).css({ paddingRight:'20px' }); - $('.ui-resizable-e').css({ width:'20px' }); - $('#nav-sync').css({ right:'34px' }); - barWidth=20; - } - var width = readCookie('width'); - if (width) { restoreWidth(width); } else { resizeWidth(); } - resizeHeight(); - var url = location.href; - var i=url.indexOf("#"); - if (i>=0) window.location.hash=url.substr(i); - var _preventDefault = function(evt) { evt.preventDefault(); }; - $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); - $(".ui-resizable-handle").dblclick(collapseExpand); - $(window).on('load',resizeHeight); -} -/* @license-end */ diff --git a/docs/docs/search/all_0.html b/docs/docs/search/all_0.html deleted file mode 100644 index 1ec5b2d..0000000 --- a/docs/docs/search/all_0.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/all_0.js b/docs/docs/search/all_0.js deleted file mode 100644 index 3c159a0..0000000 --- a/docs/docs/search/all_0.js +++ /dev/null @@ -1,12 +0,0 @@ -var searchData= -[ - ['adjustbandscallback_0',['AdjustBandsCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a28446c362f1f44e269b50619761c9e9b',1,'SINRICPRO_2_9_17']]], - ['adjustbrightnesscallback_1',['AdjustBrightnessCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a3ff8d93d9483f41bf8504fd3e9cc8f49',1,'SINRICPRO_2_9_17']]], - ['adjustpercentagecallback_2',['AdjustPercentageCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a088a491b8656c376085bc31d558fd05d',1,'SINRICPRO_2_9_17']]], - ['adjustpowerlevelcallback_3',['AdjustPowerLevelCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a3ec3aad26d06f5b943a6906e11afc1f3',1,'SINRICPRO_2_9_17']]], - ['adjustrangevaluecallback_4',['AdjustRangeValueCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a2ba46d8544d48aee620fff9a930c01ff',1,'SINRICPRO_2_9_17']]], - ['adjusttargettemperaturecallback_5',['AdjustTargetTemperatureCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a8d55dffbb520779ef95fc29e49032886',1,'SINRICPRO_2_9_17']]], - ['adjustvolumecallback_6',['AdjustVolumeCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#ac6304129491317f85cee56ca5925dfab',1,'SINRICPRO_2_9_17']]], - ['airqualitysensor_7',['AirQualitySensor',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_air_quality_sensor.html',1,'SINRICPRO_2_9_17']]], - ['airqualitysensor_3c_20sinricproairqualitysensor_20_3e_8',['AirQualitySensor< SinricProAirQualitySensor >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_air_quality_sensor.html',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/search/all_1.html b/docs/docs/search/all_1.html deleted file mode 100644 index 9f80e90..0000000 --- a/docs/docs/search/all_1.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/all_1.js b/docs/docs/search/all_1.js deleted file mode 100644 index f07d733..0000000 --- a/docs/docs/search/all_1.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['begin_9',['begin',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_class.html#a1b5b66fb0c539b9b5f5f58a135056c75',1,'SINRICPRO_2_9_17::SinricProClass']]], - ['brightnesscallback_10',['BrightnessCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#aff9938ddc803e4339a3db9b31503e12d',1,'SINRICPRO_2_9_17']]], - ['brightnesscontroller_11',['BrightnessController',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller.html',1,'SINRICPRO_2_9_17']]], - ['brightnesscontroller_3c_20sinricprolight_20_3e_12',['BrightnessController< SinricProLight >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller.html',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/search/all_10.html b/docs/docs/search/all_10.html deleted file mode 100644 index 3bf1196..0000000 --- a/docs/docs/search/all_10.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/all_10.js b/docs/docs/search/all_10.js deleted file mode 100644 index d872fa5..0000000 --- a/docs/docs/search/all_10.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['volumecontroller_214',['VolumeController',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller.html',1,'SINRICPRO_2_9_17']]], - ['volumecontroller_3c_20sinricprospeaker_20_3e_215',['VolumeController< SinricProSpeaker >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller.html',1,'SINRICPRO_2_9_17']]], - ['volumecontroller_3c_20sinricprotv_20_3e_216',['VolumeController< SinricProTV >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller.html',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/search/all_2.html b/docs/docs/search/all_2.html deleted file mode 100644 index 02cfffc..0000000 --- a/docs/docs/search/all_2.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/all_2.js b/docs/docs/search/all_2.js deleted file mode 100644 index e52532f..0000000 --- a/docs/docs/search/all_2.js +++ /dev/null @@ -1,16 +0,0 @@ -var searchData= -[ - ['changechannelcallback_13',['ChangeChannelCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a8bc108630d532266ae36cda5ec7b4857',1,'SINRICPRO_2_9_17']]], - ['changechannelnumbercallback_14',['ChangeChannelNumberCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#ab21b05b6f4a6be7e89a7173b7fafb552',1,'SINRICPRO_2_9_17']]], - ['channelcontroller_15',['ChannelController',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller.html',1,'SINRICPRO_2_9_17']]], - ['channelcontroller_3c_20sinricprotv_20_3e_16',['ChannelController< SinricProTV >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller.html',1,'SINRICPRO_2_9_17']]], - ['colorcallback_17',['ColorCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#ad8bcf09f6da3f41fffb001868cd3f84e',1,'SINRICPRO_2_9_17']]], - ['colorcontroller_18',['ColorController',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_controller.html',1,'SINRICPRO_2_9_17']]], - ['colorcontroller_3c_20sinricprolight_20_3e_19',['ColorController< SinricProLight >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_controller.html',1,'SINRICPRO_2_9_17']]], - ['colortemperaturecallback_20',['ColorTemperatureCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a9828094e72d45dc55a1023fd677f0cc5',1,'SINRICPRO_2_9_17']]], - ['colortemperaturecontroller_21',['ColorTemperatureController',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller.html',1,'SINRICPRO_2_9_17']]], - ['colortemperaturecontroller_3c_20sinricprolight_20_3e_22',['ColorTemperatureController< SinricProLight >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller.html',1,'SINRICPRO_2_9_17']]], - ['connectedcallbackhandler_23',['ConnectedCallbackHandler',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#af256b98e6806c944c9c386821a45d01e',1,'SINRICPRO_2_9_17']]], - ['contactsensor_24',['ContactSensor',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_contact_sensor.html',1,'SINRICPRO_2_9_17']]], - ['contactsensor_3c_20sinricprocontactsensor_20_3e_25',['ContactSensor< SinricProContactsensor >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_contact_sensor.html',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/search/all_3.html b/docs/docs/search/all_3.html deleted file mode 100644 index 39767b8..0000000 --- a/docs/docs/search/all_3.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/all_3.js b/docs/docs/search/all_3.js deleted file mode 100644 index a84e5d3..0000000 --- a/docs/docs/search/all_3.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['decreasecolortemperaturecallback_26',['DecreaseColorTemperatureCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#ae64ac4d2aa913eeb244091c7a13d2ecc',1,'SINRICPRO_2_9_17']]], - ['disconnectedcallbackhandler_27',['DisconnectedCallbackHandler',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a6cc95068e9f18665e76c37a621ca2ceb',1,'SINRICPRO_2_9_17']]], - ['doorbell_28',['Doorbell',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_doorbell.html',1,'SINRICPRO_2_9_17']]], - ['doorbell_3c_20sinricprodoorbell_20_3e_29',['Doorbell< SinricProDoorbell >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_doorbell.html',1,'SINRICPRO_2_9_17']]], - ['doorcallback_30',['DoorCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#aaa6633dc67bd8f69e2f14cc0dc0a4466',1,'SINRICPRO_2_9_17']]], - ['doorcontroller_31',['DoorController',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_door_controller.html',1,'SINRICPRO_2_9_17']]], - ['doorcontroller_3c_20sinricprogaragedoor_20_3e_32',['DoorController< SinricProGarageDoor >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_door_controller.html',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/search/all_4.html b/docs/docs/search/all_4.html deleted file mode 100644 index fc40463..0000000 --- a/docs/docs/search/all_4.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/all_4.js b/docs/docs/search/all_4.js deleted file mode 100644 index 4062fb4..0000000 --- a/docs/docs/search/all_4.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['equalizercontroller_33',['EqualizerController',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller.html',1,'SINRICPRO_2_9_17']]], - ['equalizercontroller_3c_20sinricprospeaker_20_3e_34',['EqualizerController< SinricProSpeaker >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller.html',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/search/all_5.html b/docs/docs/search/all_5.html deleted file mode 100644 index 9dd9344..0000000 --- a/docs/docs/search/all_5.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/all_5.js b/docs/docs/search/all_5.js deleted file mode 100644 index 242b9ed..0000000 --- a/docs/docs/search/all_5.js +++ /dev/null @@ -1,9 +0,0 @@ -var searchData= -[ - ['genericadjustrangevaluecallback_5fint_35',['GenericAdjustRangeValueCallback_int',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a38dc8a8eb0e769ed32348b7166e39ad3',1,'SINRICPRO_2_9_17']]], - ['genericmodecallback_36',['GenericModeCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#ac29fade927b50eac618999f84b29d02b',1,'SINRICPRO_2_9_17']]], - ['genericrangevaluecallback_5fint_37',['GenericRangeValueCallback_int',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a0acdc221a5d0592fea85aa0c7f236cf0',1,'SINRICPRO_2_9_17']]], - ['genericsetrangevaluecallback_5fint_38',['GenericSetRangeValueCallback_int',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a29997b424c4b141240a08d26406e4a14',1,'SINRICPRO_2_9_17']]], - ['generictogglestatecallback_39',['GenericToggleStateCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a87371479ad42795e9dc9344bd02a6312',1,'SINRICPRO_2_9_17']]], - ['gettimestamp_40',['getTimestamp',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_class.html#afb2be26eef972203404140612fa31326',1,'SINRICPRO_2_9_17::SinricProClass']]] -]; diff --git a/docs/docs/search/all_6.html b/docs/docs/search/all_6.html deleted file mode 100644 index f1e516d..0000000 --- a/docs/docs/search/all_6.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/all_6.js b/docs/docs/search/all_6.js deleted file mode 100644 index 33feb0b..0000000 --- a/docs/docs/search/all_6.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['handle_41',['handle',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_class.html#a37c2d0658e498b1bf878f8a3d9a7c5b4',1,'SINRICPRO_2_9_17::SinricProClass']]] -]; diff --git a/docs/docs/search/all_7.html b/docs/docs/search/all_7.html deleted file mode 100644 index 8ddbf6c..0000000 --- a/docs/docs/search/all_7.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/all_7.js b/docs/docs/search/all_7.js deleted file mode 100644 index e9dd8d0..0000000 --- a/docs/docs/search/all_7.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['increasecolortemperaturecallback_42',['IncreaseColorTemperatureCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#aed3d41935f8162074c2a2cc0168164dd',1,'SINRICPRO_2_9_17']]], - ['inputcontroller_43',['InputController',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_input_controller.html',1,'SINRICPRO_2_9_17']]], - ['inputcontroller_3c_20sinricprospeaker_20_3e_44',['InputController< SinricProSpeaker >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_input_controller.html',1,'SINRICPRO_2_9_17']]], - ['inputcontroller_3c_20sinricprotv_20_3e_45',['InputController< SinricProTV >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_input_controller.html',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/search/all_8.html b/docs/docs/search/all_8.html deleted file mode 100644 index 83c55ae..0000000 --- a/docs/docs/search/all_8.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/all_8.js b/docs/docs/search/all_8.js deleted file mode 100644 index ebbbd58..0000000 --- a/docs/docs/search/all_8.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['keypadcontroller_46',['KeypadController',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_keypad_controller.html',1,'SINRICPRO_2_9_17']]], - ['keystrokecallback_47',['KeystrokeCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a3dd7e26af9b9026ccc6f5328f563a8c3',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/search/all_9.html b/docs/docs/search/all_9.html deleted file mode 100644 index 1e263c1..0000000 --- a/docs/docs/search/all_9.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/all_9.js b/docs/docs/search/all_9.js deleted file mode 100644 index 4c7b803..0000000 --- a/docs/docs/search/all_9.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['lockcontroller_48',['LockController',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_lock_controller.html',1,'SINRICPRO_2_9_17']]], - ['lockcontroller_3c_20sinricprolock_20_3e_49',['LockController< SinricProLock >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_lock_controller.html',1,'SINRICPRO_2_9_17']]], - ['lockstatecallback_50',['LockStateCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a53b5285d1315f98fa2c5dd27c7547ea5',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/search/all_a.html b/docs/docs/search/all_a.html deleted file mode 100644 index 3a6cac1..0000000 --- a/docs/docs/search/all_a.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/all_a.js b/docs/docs/search/all_a.js deleted file mode 100644 index 40ba5e0..0000000 --- a/docs/docs/search/all_a.js +++ /dev/null @@ -1,16 +0,0 @@ -var searchData= -[ - ['mediacontrolcallback_51',['MediaControlCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a9e92d9efafd5313ef1b056030655c526',1,'SINRICPRO_2_9_17']]], - ['mediacontroller_52',['MediaController',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller.html',1,'SINRICPRO_2_9_17']]], - ['mediacontroller_3c_20sinricprospeaker_20_3e_53',['MediaController< SinricProSpeaker >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller.html',1,'SINRICPRO_2_9_17']]], - ['mediacontroller_3c_20sinricprotv_20_3e_54',['MediaController< SinricProTV >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller.html',1,'SINRICPRO_2_9_17']]], - ['modecallback_55',['ModeCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#aa2d0fe1a7983a8ec5e8fb3e69a5af60f',1,'SINRICPRO_2_9_17']]], - ['modecontroller_56',['ModeController',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller.html',1,'SINRICPRO_2_9_17']]], - ['modecontroller_3c_20sinricprospeaker_20_3e_57',['ModeController< SinricProSpeaker >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller.html',1,'SINRICPRO_2_9_17']]], - ['motionsensor_58',['MotionSensor',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_motion_sensor.html',1,'SINRICPRO_2_9_17']]], - ['motionsensor_3c_20sinricpromotionsensor_20_3e_59',['MotionSensor< SinricProMotionsensor >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_motion_sensor.html',1,'SINRICPRO_2_9_17']]], - ['mutecallback_60',['MuteCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a0e4c9c4ee0b526732bc0a868ac4f2c41',1,'SINRICPRO_2_9_17']]], - ['mutecontroller_61',['MuteController',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller.html',1,'SINRICPRO_2_9_17']]], - ['mutecontroller_3c_20sinricprospeaker_20_3e_62',['MuteController< SinricProSpeaker >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller.html',1,'SINRICPRO_2_9_17']]], - ['mutecontroller_3c_20sinricprotv_20_3e_63',['MuteController< SinricProTV >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller.html',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/search/all_b.html b/docs/docs/search/all_b.html deleted file mode 100644 index 130deb4..0000000 --- a/docs/docs/search/all_b.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/all_b.js b/docs/docs/search/all_b.js deleted file mode 100644 index 350d298..0000000 --- a/docs/docs/search/all_b.js +++ /dev/null @@ -1,38 +0,0 @@ -var searchData= -[ - ['onadjustbands_64',['onAdjustBands',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller.html#a41a5c1506545c44c2408054a8675c7a8',1,'SINRICPRO_2_9_17::EqualizerController']]], - ['onadjustbrightness_65',['onAdjustBrightness',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller.html#a0633e5fa2981189f4a093bab00a8c7f1',1,'SINRICPRO_2_9_17::BrightnessController']]], - ['onadjustpercentage_66',['onAdjustPercentage',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_percentage_controller.html#a77ac70c4880e38dae4f640dceaeb2816',1,'SINRICPRO_2_9_17::PercentageController']]], - ['onadjustpowerlevel_67',['onAdjustPowerLevel',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller.html#a13b10bdb1844babe4de320fff9172d96',1,'SINRICPRO_2_9_17::PowerLevelController']]], - ['onadjustrangevalue_68',['onAdjustRangeValue',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller.html#ae85696d55112ae7343f9807faee6e064',1,'SINRICPRO_2_9_17::RangeController']]], - ['onadjusttargettemperature_69',['onAdjustTargetTemperature',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller.html#ac51f6fecfdf4c7bc8e0712e2da47bbf4',1,'SINRICPRO_2_9_17::ThermostatController']]], - ['onadjustvolume_70',['onAdjustVolume',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller.html#a2c868c87f96e3924c8b309e1bcfb507e',1,'SINRICPRO_2_9_17::VolumeController']]], - ['onbrightness_71',['onBrightness',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller.html#abbaab3067b1fcdcc5928451b818a4420',1,'SINRICPRO_2_9_17::BrightnessController']]], - ['onchangechannel_72',['onChangeChannel',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller.html#a92f3b83744b5bb82d32628eef39c1eb9',1,'SINRICPRO_2_9_17::ChannelController']]], - ['onchangechannelnumber_73',['onChangeChannelNumber',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller.html#afd8aee20590bfadec181c6ee515125ec',1,'SINRICPRO_2_9_17::ChannelController']]], - ['oncolor_74',['onColor',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_controller.html#a059ff103149869b7c49cdb8911875b7b',1,'SINRICPRO_2_9_17::ColorController']]], - ['oncolortemperature_75',['onColorTemperature',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller.html#a8535c44fd2517ed09ebe6a203cc25b67',1,'SINRICPRO_2_9_17::ColorTemperatureController']]], - ['onconnected_76',['onConnected',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_class.html#ac33a355adfc413d4ff36974d735115bd',1,'SINRICPRO_2_9_17::SinricProClass']]], - ['ondecreasecolortemperature_77',['onDecreaseColorTemperature',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller.html#a7468976e7fffeee14cc869b7236cbb50',1,'SINRICPRO_2_9_17::ColorTemperatureController']]], - ['ondisconnected_78',['onDisconnected',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_class.html#a654bb017ca55b448d55bb36e0346f38a',1,'SINRICPRO_2_9_17::SinricProClass']]], - ['ondoorstate_79',['onDoorState',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_door_controller.html#a6b536531ab89b39f1a48cb107e22185e',1,'SINRICPRO_2_9_17::DoorController']]], - ['onincreasecolortemperature_80',['onIncreaseColorTemperature',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller.html#a7ea9fd9861a5668a41d06267bfbec82a',1,'SINRICPRO_2_9_17::ColorTemperatureController']]], - ['onkeystroke_81',['onKeystroke',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_keypad_controller.html#ab24b4858dcc69145a367e964c2ae7961',1,'SINRICPRO_2_9_17::KeypadController']]], - ['onlockstate_82',['onLockState',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_lock_controller.html#aee42cc397234a454fd353ca6bc12a859',1,'SINRICPRO_2_9_17::LockController']]], - ['onmediacontrol_83',['onMediaControl',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller.html#afc2620621377fff928737b5a8a537020',1,'SINRICPRO_2_9_17::MediaController']]], - ['onmute_84',['onMute',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller.html#ab5fc79cc8903c3ccc1c106abf61d7cfd',1,'SINRICPRO_2_9_17::MuteController']]], - ['onpowerlevel_85',['onPowerLevel',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller.html#a0685d34694badb4442fed6b69b69b366',1,'SINRICPRO_2_9_17::PowerLevelController']]], - ['onpowerstate_86',['onPowerState',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html#a32f3257da431a1035f23a265ff0cc4cf',1,'SINRICPRO_2_9_17::PowerStateController']]], - ['onrangevalue_87',['onRangeValue',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller.html#a94adbcdf6ce61cb6552a5f9915e705ae',1,'SINRICPRO_2_9_17::RangeController::onRangeValue(SetRangeValueCallback cb)'],['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller.html#a6d6d8070b49c8b5272460836a1120b33',1,'SINRICPRO_2_9_17::RangeController::onRangeValue(const String &instance, GenericSetRangeValueCallback_int cb)']]], - ['onresetbands_88',['onResetBands',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller.html#aa6c3aabc2b442d82ac5456ccaac3f60d',1,'SINRICPRO_2_9_17::EqualizerController']]], - ['onselectinput_89',['onSelectInput',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_input_controller.html#a18f8f71ecf0d7292a63d9486f94e5180',1,'SINRICPRO_2_9_17::InputController']]], - ['onsetbands_90',['onSetBands',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller.html#a4aaa7a29394560be7537a86b0304d199',1,'SINRICPRO_2_9_17::EqualizerController']]], - ['onsetmode_91',['onSetMode',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller.html#ada087c948c3ab923bdb7818daa6b2b79',1,'SINRICPRO_2_9_17::ModeController::onSetMode(ModeCallback cb)'],['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller.html#a6b15ba168b3a673b98da43ac5e4ef76c',1,'SINRICPRO_2_9_17::ModeController::onSetMode(const String &instance, GenericModeCallback cb)']]], - ['onsetpercentage_92',['onSetPercentage',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_percentage_controller.html#aeef432df118679c689ccd8a48d47dc3d',1,'SINRICPRO_2_9_17::PercentageController']]], - ['onsetvolume_93',['onSetVolume',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller.html#a5db8c85f222debbece54c794015f9402',1,'SINRICPRO_2_9_17::VolumeController']]], - ['onskipchannels_94',['onSkipChannels',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller.html#ab1123d03d471fad4896eb2960ed41855',1,'SINRICPRO_2_9_17::ChannelController']]], - ['ontargettemperature_95',['onTargetTemperature',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller.html#a1c73725f1f3fbb1c5b72208aae5c2bf2',1,'SINRICPRO_2_9_17::ThermostatController']]], - ['onthermostatmode_96',['onThermostatMode',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller.html#a2ef31536973b20815dd6c80a28e19c9f',1,'SINRICPRO_2_9_17::ThermostatController']]], - ['ontogglestate_97',['onToggleState',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_toggle_controller.html#a7ccd28a4f20922847d0461649af5572d',1,'SINRICPRO_2_9_17::ToggleController']]], - ['operator_5b_5d_98',['operator[]',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_class.html#a84a491d393b5c7c1433a2a9e62a58766',1,'SINRICPRO_2_9_17::SinricProClass']]] -]; diff --git a/docs/docs/search/all_c.html b/docs/docs/search/all_c.html deleted file mode 100644 index 3dd5af0..0000000 --- a/docs/docs/search/all_c.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/all_c.js b/docs/docs/search/all_c.js deleted file mode 100644 index fc90e8c..0000000 --- a/docs/docs/search/all_c.js +++ /dev/null @@ -1,48 +0,0 @@ -var searchData= -[ - ['percentagecontroller_99',['PercentageController',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_percentage_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerlevelcontroller_100',['PowerLevelController',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerlevelcontroller_3c_20sinricprodimswitch_20_3e_101',['PowerLevelController< SinricProDimSwitch >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerlevelcontroller_3c_20sinricprofan_20_3e_102',['PowerLevelController< SinricProFan >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller.html',1,'SINRICPRO_2_9_17']]], - ['powersensor_103',['PowerSensor',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_sensor.html',1,'SINRICPRO_2_9_17']]], - ['powersensor_3c_20sinricpropowersensor_20_3e_104',['PowerSensor< SinricProPowerSensor >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_sensor.html',1,'SINRICPRO_2_9_17']]], - ['powerstatecallback_105',['PowerStateCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#aad370bc6b280bbdeac98181a31f22df4',1,'SINRICPRO_2_9_17']]], - ['powerstatecontroller_106',['PowerStateController',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerstatecontroller_3c_20sinricproairqualitysensor_20_3e_107',['PowerStateController< SinricProAirQualitySensor >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerstatecontroller_3c_20sinricproblinds_20_3e_108',['PowerStateController< SinricProBlinds >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerstatecontroller_3c_20sinricprocamera_20_3e_109',['PowerStateController< SinricProCamera >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerstatecontroller_3c_20sinricprocontactsensor_20_3e_110',['PowerStateController< SinricProContactsensor >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerstatecontroller_3c_20sinricprodimswitch_20_3e_111',['PowerStateController< SinricProDimSwitch >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerstatecontroller_3c_20sinricprodoorbell_20_3e_112',['PowerStateController< SinricProDoorbell >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerstatecontroller_3c_20sinricprofan_20_3e_113',['PowerStateController< SinricProFan >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerstatecontroller_3c_20sinricprofanus_20_3e_114',['PowerStateController< SinricProFanUS >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerstatecontroller_3c_20sinricprolight_20_3e_115',['PowerStateController< SinricProLight >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerstatecontroller_3c_20sinricpromotionsensor_20_3e_116',['PowerStateController< SinricProMotionsensor >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerstatecontroller_3c_20sinricpropowersensor_20_3e_117',['PowerStateController< SinricProPowerSensor >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerstatecontroller_3c_20sinricprospeaker_20_3e_118',['PowerStateController< SinricProSpeaker >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerstatecontroller_3c_20sinricproswitch_20_3e_119',['PowerStateController< SinricProSwitch >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerstatecontroller_3c_20sinricprotemperaturesensor_20_3e_120',['PowerStateController< SinricProTemperaturesensor >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerstatecontroller_3c_20sinricprothermostat_20_3e_121',['PowerStateController< SinricProThermostat >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerstatecontroller_3c_20sinricprotv_20_3e_122',['PowerStateController< SinricProTV >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerstatecontroller_3c_20sinricprowindowac_20_3e_123',['PowerStateController< SinricProWindowAC >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_124',['PushNotification',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_3c_20sinricproairqualitysensor_20_3e_125',['PushNotification< SinricProAirQualitySensor >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_3c_20sinricproblinds_20_3e_126',['PushNotification< SinricProBlinds >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_3c_20sinricprocamera_20_3e_127',['PushNotification< SinricProCamera >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_3c_20sinricprocontactsensor_20_3e_128',['PushNotification< SinricProContactsensor >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_3c_20sinricprodimswitch_20_3e_129',['PushNotification< SinricProDimSwitch >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_3c_20sinricprodoorbell_20_3e_130',['PushNotification< SinricProDoorbell >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_3c_20sinricprofan_20_3e_131',['PushNotification< SinricProFan >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_3c_20sinricprofanus_20_3e_132',['PushNotification< SinricProFanUS >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_3c_20sinricprogaragedoor_20_3e_133',['PushNotification< SinricProGarageDoor >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_3c_20sinricprolight_20_3e_134',['PushNotification< SinricProLight >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_3c_20sinricprolock_20_3e_135',['PushNotification< SinricProLock >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_3c_20sinricpromotionsensor_20_3e_136',['PushNotification< SinricProMotionsensor >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_3c_20sinricpropowersensor_20_3e_137',['PushNotification< SinricProPowerSensor >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_3c_20sinricprospeaker_20_3e_138',['PushNotification< SinricProSpeaker >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_3c_20sinricproswitch_20_3e_139',['PushNotification< SinricProSwitch >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_3c_20sinricprotemperaturesensor_20_3e_140',['PushNotification< SinricProTemperaturesensor >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_3c_20sinricprothermostat_20_3e_141',['PushNotification< SinricProThermostat >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_3c_20sinricprotv_20_3e_142',['PushNotification< SinricProTV >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_3c_20sinricprowindowac_20_3e_143',['PushNotification< SinricProWindowAC >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/search/all_d.html b/docs/docs/search/all_d.html deleted file mode 100644 index af7f2f0..0000000 --- a/docs/docs/search/all_d.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/all_d.js b/docs/docs/search/all_d.js deleted file mode 100644 index 64fddc4..0000000 --- a/docs/docs/search/all_d.js +++ /dev/null @@ -1,9 +0,0 @@ -var searchData= -[ - ['rangecontroller_144',['RangeController',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller.html',1,'SINRICPRO_2_9_17']]], - ['rangecontroller_3c_20sinricproblinds_20_3e_145',['RangeController< SinricProBlinds >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller.html',1,'SINRICPRO_2_9_17']]], - ['rangecontroller_3c_20sinricprofanus_20_3e_146',['RangeController< SinricProFanUS >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller.html',1,'SINRICPRO_2_9_17']]], - ['rangecontroller_3c_20sinricprowindowac_20_3e_147',['RangeController< SinricProWindowAC >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller.html',1,'SINRICPRO_2_9_17']]], - ['resetbandscallback_148',['ResetBandsCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#aa8c78de42c40ee03966f3c96cdc05bab',1,'SINRICPRO_2_9_17']]], - ['restoredevicestates_149',['restoreDeviceStates',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_class.html#a27a9bb7f1e8bde0f39398649493b6f93',1,'SINRICPRO_2_9_17::SinricProClass']]] -]; diff --git a/docs/docs/search/all_e.html b/docs/docs/search/all_e.html deleted file mode 100644 index e25df42..0000000 --- a/docs/docs/search/all_e.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/all_e.js b/docs/docs/search/all_e.js deleted file mode 100644 index 86380c3..0000000 --- a/docs/docs/search/all_e.js +++ /dev/null @@ -1,59 +0,0 @@ -var searchData= -[ - ['selectinputcallback_150',['SelectInputCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a2f7a91a480cd401f4df2f7ddda4a8f13',1,'SINRICPRO_2_9_17']]], - ['sendairqualityevent_151',['sendAirQualityEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_air_quality_sensor.html#a733195bdc5b15c858e4e890847b3a0d5',1,'SINRICPRO_2_9_17::AirQualitySensor']]], - ['sendbandsevent_152',['sendBandsEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller.html#a4ad5674e36d96a73147388251b794c82',1,'SINRICPRO_2_9_17::EqualizerController']]], - ['sendbrightnessevent_153',['sendBrightnessEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller.html#a2a96c414210f61de3ce53a4ca8c963b3',1,'SINRICPRO_2_9_17::BrightnessController']]], - ['sendchangechannelevent_154',['sendChangeChannelEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller.html#aff5839c3020c3006af1a2a8c37cc858e',1,'SINRICPRO_2_9_17::ChannelController']]], - ['sendcolorevent_155',['sendColorEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_controller.html#a3599a6d00eb0f9127a7c1188885c5bc0',1,'SINRICPRO_2_9_17::ColorController']]], - ['sendcolortemperatureevent_156',['sendColorTemperatureEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller.html#a0f90d7f5a5b365116f97beca7630ccc9',1,'SINRICPRO_2_9_17::ColorTemperatureController']]], - ['sendcontactevent_157',['sendContactEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_contact_sensor.html#a452a4cfa3177d8d8d31c5919e9ccbb19',1,'SINRICPRO_2_9_17::ContactSensor']]], - ['senddoorbellevent_158',['sendDoorbellEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_doorbell.html#a168f5a4ddcbf381fd548bf10ee05b272',1,'SINRICPRO_2_9_17::Doorbell']]], - ['senddoorstateevent_159',['sendDoorStateEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_door_controller.html#a375cda2b0bc05e1a66e3bc29d059d9a7',1,'SINRICPRO_2_9_17::DoorController']]], - ['sendlockstateevent_160',['sendLockStateEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_lock_controller.html#a8fb3fec204da21e69d05f89a9ecb4739',1,'SINRICPRO_2_9_17::LockController']]], - ['sendmediacontrolevent_161',['sendMediaControlEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller.html#a7af593cbf79d38f6b90efb5afee45077',1,'SINRICPRO_2_9_17::MediaController']]], - ['sendmodeevent_162',['sendModeEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller.html#a7c84d5c26f2ded88e4941313015f7f4c',1,'SINRICPRO_2_9_17::ModeController::sendModeEvent(String instance, String mode, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)'],['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller.html#a41f8465e89d147c08ab8cbc6839d34da',1,'SINRICPRO_2_9_17::ModeController::sendModeEvent(String mode, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)']]], - ['sendmotionevent_163',['sendMotionEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_motion_sensor.html#a9be024aa2bb70f0146a02dd1b79d3faa',1,'SINRICPRO_2_9_17::MotionSensor']]], - ['sendmuteevent_164',['sendMuteEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller.html#a4717d892b64a14052712152924bd5b29',1,'SINRICPRO_2_9_17::MuteController']]], - ['sendpowerlevelevent_165',['sendPowerLevelEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller.html#a2f1f88c7b4d9503bfcfe5557c5e55ed4',1,'SINRICPRO_2_9_17::PowerLevelController']]], - ['sendpowersensorevent_166',['sendPowerSensorEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_sensor.html#aec04692842ae1953973503f6be6d9afc',1,'SINRICPRO_2_9_17::PowerSensor']]], - ['sendpowerstateevent_167',['sendPowerStateEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html#acfd5f3a30933ace93751bd823630cded',1,'SINRICPRO_2_9_17::PowerStateController']]], - ['sendpushnotification_168',['sendPushNotification',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html#a04266791a4b23e9614b8773edb5f67b6',1,'SINRICPRO_2_9_17::PushNotification']]], - ['sendrangevalueevent_169',['sendRangeValueEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller.html#aaf84aa417e2246843a27e819898e64b5',1,'SINRICPRO_2_9_17::RangeController::sendRangeValueEvent(const String &instance, int rangeValue, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)'],['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller.html#a1d726751c416fe6dd408e5dd19f6b53b',1,'SINRICPRO_2_9_17::RangeController::sendRangeValueEvent(int rangeValue, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)']]], - ['sendselectinputevent_170',['sendSelectInputEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_input_controller.html#a973241ac912a18b142d236dda7f80e97',1,'SINRICPRO_2_9_17::InputController']]], - ['sendsetpercentageevent_171',['sendSetPercentageEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_percentage_controller.html#adf688c12e451e52b05670f150bdabcc8',1,'SINRICPRO_2_9_17::PercentageController']]], - ['sendtargettemperatureevent_172',['sendTargetTemperatureEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller.html#ab8b7fdd977a0a38413f2279b50274890',1,'SINRICPRO_2_9_17::ThermostatController']]], - ['sendtemperatureevent_173',['sendTemperatureEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_temperature_sensor.html#a75956fe7aff6e595a9b57519316ff789',1,'SINRICPRO_2_9_17::TemperatureSensor']]], - ['sendthermostatmodeevent_174',['sendThermostatModeEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller.html#ae7273cd094f64a93494ae99501fc83e8',1,'SINRICPRO_2_9_17::ThermostatController']]], - ['sendtogglestateevent_175',['sendToggleStateEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_toggle_controller.html#a7fcc5084fea488e5b5e95f5ad7015a0f',1,'SINRICPRO_2_9_17::ToggleController']]], - ['sendvolumeevent_176',['sendVolumeEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller.html#aa2d3dbea5b07e4c5f39d3d20aa2167a4',1,'SINRICPRO_2_9_17::VolumeController']]], - ['setbandscallback_177',['SetBandsCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#aaabec5dea3546d52e744a4b0b90c02f4',1,'SINRICPRO_2_9_17']]], - ['setpercentagecallback_178',['SetPercentageCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a3ab0c4ff332f49884fe6a75cb2a293c2',1,'SINRICPRO_2_9_17']]], - ['setpowerlevelcallback_179',['SetPowerLevelCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a5be6c20c0ba9e9b19bd76d42918451b2',1,'SINRICPRO_2_9_17']]], - ['settargettemperaturecallback_180',['SetTargetTemperatureCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a64ecf52eb927d219b3acabf01ad0d31f',1,'SINRICPRO_2_9_17']]], - ['setvolumecallback_181',['SetVolumeCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a5744ad6a31085c216c2193b0f2d86673',1,'SINRICPRO_2_9_17']]], - ['sinricpro_20_28esp8266_20_2f_20esp32_20sdk_29_182',['SinricPro (ESP8266 / ESP32 SDK)',['../index.html',1,'']]], - ['sinricpro_5f2_5f9_5f17_183',['SINRICPRO_2_9_17',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html',1,'']]], - ['sinricproairqualitysensor_184',['SinricProAirQualitySensor',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_air_quality_sensor.html',1,'SINRICPRO_2_9_17']]], - ['sinricproblinds_185',['SinricProBlinds',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds.html',1,'SINRICPRO_2_9_17']]], - ['sinricprocamera_186',['SinricProCamera',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_camera.html',1,'SINRICPRO_2_9_17']]], - ['sinricproclass_187',['SinricProClass',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_class.html',1,'SINRICPRO_2_9_17']]], - ['sinricprocontactsensor_188',['SinricProContactsensor',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_contactsensor.html',1,'SINRICPRO_2_9_17']]], - ['sinricprodevice_189',['SinricProDevice',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_device.html',1,'SINRICPRO_2_9_17']]], - ['sinricprodimswitch_190',['SinricProDimSwitch',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_dim_switch.html',1,'SINRICPRO_2_9_17']]], - ['sinricprodoorbell_191',['SinricProDoorbell',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_doorbell.html',1,'SINRICPRO_2_9_17']]], - ['sinricprofan_192',['SinricProFan',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan.html',1,'SINRICPRO_2_9_17']]], - ['sinricprofanus_193',['SinricProFanUS',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s.html',1,'SINRICPRO_2_9_17']]], - ['sinricprogaragedoor_194',['SinricProGarageDoor',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_garage_door.html',1,'SINRICPRO_2_9_17']]], - ['sinricprolight_195',['SinricProLight',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light.html',1,'SINRICPRO_2_9_17']]], - ['sinricprolock_196',['SinricProLock',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_lock.html',1,'SINRICPRO_2_9_17']]], - ['sinricpromotionsensor_197',['SinricProMotionsensor',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_motionsensor.html',1,'SINRICPRO_2_9_17']]], - ['sinricpropowersensor_198',['SinricProPowerSensor',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_power_sensor.html',1,'SINRICPRO_2_9_17']]], - ['sinricprospeaker_199',['SinricProSpeaker',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.html',1,'SINRICPRO_2_9_17']]], - ['sinricproswitch_200',['SinricProSwitch',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_switch.html',1,'SINRICPRO_2_9_17']]], - ['sinricprotemperaturesensor_201',['SinricProTemperaturesensor',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_temperaturesensor.html',1,'SINRICPRO_2_9_17']]], - ['sinricprothermostat_202',['SinricProThermostat',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat.html',1,'SINRICPRO_2_9_17']]], - ['sinricprotv_203',['SinricProTV',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v.html',1,'SINRICPRO_2_9_17']]], - ['sinricprowindowac_204',['SinricProWindowAC',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c.html',1,'SINRICPRO_2_9_17']]], - ['skipchannelscallback_205',['SkipChannelsCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a434616b976d1339be63540d16977fa3d',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/search/all_f.html b/docs/docs/search/all_f.html deleted file mode 100644 index b23da6c..0000000 --- a/docs/docs/search/all_f.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/all_f.js b/docs/docs/search/all_f.js deleted file mode 100644 index 9faa042..0000000 --- a/docs/docs/search/all_f.js +++ /dev/null @@ -1,11 +0,0 @@ -var searchData= -[ - ['temperaturesensor_206',['TemperatureSensor',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_temperature_sensor.html',1,'SINRICPRO_2_9_17']]], - ['temperaturesensor_3c_20sinricprotemperaturesensor_20_3e_207',['TemperatureSensor< SinricProTemperaturesensor >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_temperature_sensor.html',1,'SINRICPRO_2_9_17']]], - ['temperaturesensor_3c_20sinricprothermostat_20_3e_208',['TemperatureSensor< SinricProThermostat >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_temperature_sensor.html',1,'SINRICPRO_2_9_17']]], - ['thermostatcontroller_209',['ThermostatController',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller.html',1,'SINRICPRO_2_9_17']]], - ['thermostatcontroller_3c_20sinricprothermostat_20_3e_210',['ThermostatController< SinricProThermostat >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller.html',1,'SINRICPRO_2_9_17']]], - ['thermostatcontroller_3c_20sinricprowindowac_20_3e_211',['ThermostatController< SinricProWindowAC >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller.html',1,'SINRICPRO_2_9_17']]], - ['thermostatmodecallback_212',['ThermostatModeCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a6cb473352a45a2ae76a46a4292c95a8c',1,'SINRICPRO_2_9_17']]], - ['togglecontroller_213',['ToggleController',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_toggle_controller.html',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/search/classes_0.html b/docs/docs/search/classes_0.html deleted file mode 100644 index af8159e..0000000 --- a/docs/docs/search/classes_0.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/classes_0.js b/docs/docs/search/classes_0.js deleted file mode 100644 index 87b6dc9..0000000 --- a/docs/docs/search/classes_0.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['airqualitysensor_217',['AirQualitySensor',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_air_quality_sensor.html',1,'SINRICPRO_2_9_17']]], - ['airqualitysensor_3c_20sinricproairqualitysensor_20_3e_218',['AirQualitySensor< SinricProAirQualitySensor >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_air_quality_sensor.html',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/search/classes_1.html b/docs/docs/search/classes_1.html deleted file mode 100644 index 576e916..0000000 --- a/docs/docs/search/classes_1.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/classes_1.js b/docs/docs/search/classes_1.js deleted file mode 100644 index 0ee1f2c..0000000 --- a/docs/docs/search/classes_1.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['brightnesscontroller_219',['BrightnessController',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller.html',1,'SINRICPRO_2_9_17']]], - ['brightnesscontroller_3c_20sinricprolight_20_3e_220',['BrightnessController< SinricProLight >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller.html',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/search/classes_2.html b/docs/docs/search/classes_2.html deleted file mode 100644 index 956405e..0000000 --- a/docs/docs/search/classes_2.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/classes_2.js b/docs/docs/search/classes_2.js deleted file mode 100644 index afe613c..0000000 --- a/docs/docs/search/classes_2.js +++ /dev/null @@ -1,11 +0,0 @@ -var searchData= -[ - ['channelcontroller_221',['ChannelController',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller.html',1,'SINRICPRO_2_9_17']]], - ['channelcontroller_3c_20sinricprotv_20_3e_222',['ChannelController< SinricProTV >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller.html',1,'SINRICPRO_2_9_17']]], - ['colorcontroller_223',['ColorController',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_controller.html',1,'SINRICPRO_2_9_17']]], - ['colorcontroller_3c_20sinricprolight_20_3e_224',['ColorController< SinricProLight >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_controller.html',1,'SINRICPRO_2_9_17']]], - ['colortemperaturecontroller_225',['ColorTemperatureController',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller.html',1,'SINRICPRO_2_9_17']]], - ['colortemperaturecontroller_3c_20sinricprolight_20_3e_226',['ColorTemperatureController< SinricProLight >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller.html',1,'SINRICPRO_2_9_17']]], - ['contactsensor_227',['ContactSensor',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_contact_sensor.html',1,'SINRICPRO_2_9_17']]], - ['contactsensor_3c_20sinricprocontactsensor_20_3e_228',['ContactSensor< SinricProContactsensor >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_contact_sensor.html',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/search/classes_3.html b/docs/docs/search/classes_3.html deleted file mode 100644 index d33343b..0000000 --- a/docs/docs/search/classes_3.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/classes_3.js b/docs/docs/search/classes_3.js deleted file mode 100644 index b60728f..0000000 --- a/docs/docs/search/classes_3.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['doorbell_229',['Doorbell',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_doorbell.html',1,'SINRICPRO_2_9_17']]], - ['doorbell_3c_20sinricprodoorbell_20_3e_230',['Doorbell< SinricProDoorbell >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_doorbell.html',1,'SINRICPRO_2_9_17']]], - ['doorcontroller_231',['DoorController',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_door_controller.html',1,'SINRICPRO_2_9_17']]], - ['doorcontroller_3c_20sinricprogaragedoor_20_3e_232',['DoorController< SinricProGarageDoor >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_door_controller.html',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/search/classes_4.html b/docs/docs/search/classes_4.html deleted file mode 100644 index 8430b07..0000000 --- a/docs/docs/search/classes_4.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/classes_4.js b/docs/docs/search/classes_4.js deleted file mode 100644 index 5856d27..0000000 --- a/docs/docs/search/classes_4.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['equalizercontroller_233',['EqualizerController',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller.html',1,'SINRICPRO_2_9_17']]], - ['equalizercontroller_3c_20sinricprospeaker_20_3e_234',['EqualizerController< SinricProSpeaker >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller.html',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/search/classes_5.html b/docs/docs/search/classes_5.html deleted file mode 100644 index c2f1b76..0000000 --- a/docs/docs/search/classes_5.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/classes_5.js b/docs/docs/search/classes_5.js deleted file mode 100644 index b38cc73..0000000 --- a/docs/docs/search/classes_5.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['inputcontroller_235',['InputController',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_input_controller.html',1,'SINRICPRO_2_9_17']]], - ['inputcontroller_3c_20sinricprospeaker_20_3e_236',['InputController< SinricProSpeaker >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_input_controller.html',1,'SINRICPRO_2_9_17']]], - ['inputcontroller_3c_20sinricprotv_20_3e_237',['InputController< SinricProTV >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_input_controller.html',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/search/classes_6.html b/docs/docs/search/classes_6.html deleted file mode 100644 index e39847c..0000000 --- a/docs/docs/search/classes_6.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/classes_6.js b/docs/docs/search/classes_6.js deleted file mode 100644 index 8367298..0000000 --- a/docs/docs/search/classes_6.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['keypadcontroller_238',['KeypadController',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_keypad_controller.html',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/search/classes_7.html b/docs/docs/search/classes_7.html deleted file mode 100644 index a2c4d1a..0000000 --- a/docs/docs/search/classes_7.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/classes_7.js b/docs/docs/search/classes_7.js deleted file mode 100644 index 3574de0..0000000 --- a/docs/docs/search/classes_7.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['lockcontroller_239',['LockController',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_lock_controller.html',1,'SINRICPRO_2_9_17']]], - ['lockcontroller_3c_20sinricprolock_20_3e_240',['LockController< SinricProLock >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_lock_controller.html',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/search/classes_8.html b/docs/docs/search/classes_8.html deleted file mode 100644 index 17003e4..0000000 --- a/docs/docs/search/classes_8.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/classes_8.js b/docs/docs/search/classes_8.js deleted file mode 100644 index 11e6a86..0000000 --- a/docs/docs/search/classes_8.js +++ /dev/null @@ -1,13 +0,0 @@ -var searchData= -[ - ['mediacontroller_241',['MediaController',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller.html',1,'SINRICPRO_2_9_17']]], - ['mediacontroller_3c_20sinricprospeaker_20_3e_242',['MediaController< SinricProSpeaker >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller.html',1,'SINRICPRO_2_9_17']]], - ['mediacontroller_3c_20sinricprotv_20_3e_243',['MediaController< SinricProTV >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller.html',1,'SINRICPRO_2_9_17']]], - ['modecontroller_244',['ModeController',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller.html',1,'SINRICPRO_2_9_17']]], - ['modecontroller_3c_20sinricprospeaker_20_3e_245',['ModeController< SinricProSpeaker >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller.html',1,'SINRICPRO_2_9_17']]], - ['motionsensor_246',['MotionSensor',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_motion_sensor.html',1,'SINRICPRO_2_9_17']]], - ['motionsensor_3c_20sinricpromotionsensor_20_3e_247',['MotionSensor< SinricProMotionsensor >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_motion_sensor.html',1,'SINRICPRO_2_9_17']]], - ['mutecontroller_248',['MuteController',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller.html',1,'SINRICPRO_2_9_17']]], - ['mutecontroller_3c_20sinricprospeaker_20_3e_249',['MuteController< SinricProSpeaker >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller.html',1,'SINRICPRO_2_9_17']]], - ['mutecontroller_3c_20sinricprotv_20_3e_250',['MuteController< SinricProTV >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller.html',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/search/classes_9.html b/docs/docs/search/classes_9.html deleted file mode 100644 index b8afa8c..0000000 --- a/docs/docs/search/classes_9.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/classes_9.js b/docs/docs/search/classes_9.js deleted file mode 100644 index 8b6bb0b..0000000 --- a/docs/docs/search/classes_9.js +++ /dev/null @@ -1,47 +0,0 @@ -var searchData= -[ - ['percentagecontroller_251',['PercentageController',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_percentage_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerlevelcontroller_252',['PowerLevelController',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerlevelcontroller_3c_20sinricprodimswitch_20_3e_253',['PowerLevelController< SinricProDimSwitch >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerlevelcontroller_3c_20sinricprofan_20_3e_254',['PowerLevelController< SinricProFan >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller.html',1,'SINRICPRO_2_9_17']]], - ['powersensor_255',['PowerSensor',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_sensor.html',1,'SINRICPRO_2_9_17']]], - ['powersensor_3c_20sinricpropowersensor_20_3e_256',['PowerSensor< SinricProPowerSensor >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_sensor.html',1,'SINRICPRO_2_9_17']]], - ['powerstatecontroller_257',['PowerStateController',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerstatecontroller_3c_20sinricproairqualitysensor_20_3e_258',['PowerStateController< SinricProAirQualitySensor >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerstatecontroller_3c_20sinricproblinds_20_3e_259',['PowerStateController< SinricProBlinds >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerstatecontroller_3c_20sinricprocamera_20_3e_260',['PowerStateController< SinricProCamera >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerstatecontroller_3c_20sinricprocontactsensor_20_3e_261',['PowerStateController< SinricProContactsensor >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerstatecontroller_3c_20sinricprodimswitch_20_3e_262',['PowerStateController< SinricProDimSwitch >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerstatecontroller_3c_20sinricprodoorbell_20_3e_263',['PowerStateController< SinricProDoorbell >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerstatecontroller_3c_20sinricprofan_20_3e_264',['PowerStateController< SinricProFan >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerstatecontroller_3c_20sinricprofanus_20_3e_265',['PowerStateController< SinricProFanUS >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerstatecontroller_3c_20sinricprolight_20_3e_266',['PowerStateController< SinricProLight >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerstatecontroller_3c_20sinricpromotionsensor_20_3e_267',['PowerStateController< SinricProMotionsensor >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerstatecontroller_3c_20sinricpropowersensor_20_3e_268',['PowerStateController< SinricProPowerSensor >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerstatecontroller_3c_20sinricprospeaker_20_3e_269',['PowerStateController< SinricProSpeaker >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerstatecontroller_3c_20sinricproswitch_20_3e_270',['PowerStateController< SinricProSwitch >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerstatecontroller_3c_20sinricprotemperaturesensor_20_3e_271',['PowerStateController< SinricProTemperaturesensor >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerstatecontroller_3c_20sinricprothermostat_20_3e_272',['PowerStateController< SinricProThermostat >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerstatecontroller_3c_20sinricprotv_20_3e_273',['PowerStateController< SinricProTV >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html',1,'SINRICPRO_2_9_17']]], - ['powerstatecontroller_3c_20sinricprowindowac_20_3e_274',['PowerStateController< SinricProWindowAC >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_275',['PushNotification',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_3c_20sinricproairqualitysensor_20_3e_276',['PushNotification< SinricProAirQualitySensor >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_3c_20sinricproblinds_20_3e_277',['PushNotification< SinricProBlinds >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_3c_20sinricprocamera_20_3e_278',['PushNotification< SinricProCamera >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_3c_20sinricprocontactsensor_20_3e_279',['PushNotification< SinricProContactsensor >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_3c_20sinricprodimswitch_20_3e_280',['PushNotification< SinricProDimSwitch >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_3c_20sinricprodoorbell_20_3e_281',['PushNotification< SinricProDoorbell >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_3c_20sinricprofan_20_3e_282',['PushNotification< SinricProFan >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_3c_20sinricprofanus_20_3e_283',['PushNotification< SinricProFanUS >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_3c_20sinricprogaragedoor_20_3e_284',['PushNotification< SinricProGarageDoor >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_3c_20sinricprolight_20_3e_285',['PushNotification< SinricProLight >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_3c_20sinricprolock_20_3e_286',['PushNotification< SinricProLock >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_3c_20sinricpromotionsensor_20_3e_287',['PushNotification< SinricProMotionsensor >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_3c_20sinricpropowersensor_20_3e_288',['PushNotification< SinricProPowerSensor >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_3c_20sinricprospeaker_20_3e_289',['PushNotification< SinricProSpeaker >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_3c_20sinricproswitch_20_3e_290',['PushNotification< SinricProSwitch >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_3c_20sinricprotemperaturesensor_20_3e_291',['PushNotification< SinricProTemperaturesensor >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_3c_20sinricprothermostat_20_3e_292',['PushNotification< SinricProThermostat >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_3c_20sinricprotv_20_3e_293',['PushNotification< SinricProTV >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]], - ['pushnotification_3c_20sinricprowindowac_20_3e_294',['PushNotification< SinricProWindowAC >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/search/classes_a.html b/docs/docs/search/classes_a.html deleted file mode 100644 index 6788af2..0000000 --- a/docs/docs/search/classes_a.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/classes_a.js b/docs/docs/search/classes_a.js deleted file mode 100644 index 8c2bd12..0000000 --- a/docs/docs/search/classes_a.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['rangecontroller_295',['RangeController',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller.html',1,'SINRICPRO_2_9_17']]], - ['rangecontroller_3c_20sinricproblinds_20_3e_296',['RangeController< SinricProBlinds >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller.html',1,'SINRICPRO_2_9_17']]], - ['rangecontroller_3c_20sinricprofanus_20_3e_297',['RangeController< SinricProFanUS >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller.html',1,'SINRICPRO_2_9_17']]], - ['rangecontroller_3c_20sinricprowindowac_20_3e_298',['RangeController< SinricProWindowAC >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller.html',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/search/classes_b.html b/docs/docs/search/classes_b.html deleted file mode 100644 index 3fcb498..0000000 --- a/docs/docs/search/classes_b.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/classes_b.js b/docs/docs/search/classes_b.js deleted file mode 100644 index 5a2e1db..0000000 --- a/docs/docs/search/classes_b.js +++ /dev/null @@ -1,24 +0,0 @@ -var searchData= -[ - ['sinricproairqualitysensor_299',['SinricProAirQualitySensor',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_air_quality_sensor.html',1,'SINRICPRO_2_9_17']]], - ['sinricproblinds_300',['SinricProBlinds',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_blinds.html',1,'SINRICPRO_2_9_17']]], - ['sinricprocamera_301',['SinricProCamera',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_camera.html',1,'SINRICPRO_2_9_17']]], - ['sinricproclass_302',['SinricProClass',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_class.html',1,'SINRICPRO_2_9_17']]], - ['sinricprocontactsensor_303',['SinricProContactsensor',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_contactsensor.html',1,'SINRICPRO_2_9_17']]], - ['sinricprodevice_304',['SinricProDevice',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_device.html',1,'SINRICPRO_2_9_17']]], - ['sinricprodimswitch_305',['SinricProDimSwitch',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_dim_switch.html',1,'SINRICPRO_2_9_17']]], - ['sinricprodoorbell_306',['SinricProDoorbell',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_doorbell.html',1,'SINRICPRO_2_9_17']]], - ['sinricprofan_307',['SinricProFan',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan.html',1,'SINRICPRO_2_9_17']]], - ['sinricprofanus_308',['SinricProFanUS',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_fan_u_s.html',1,'SINRICPRO_2_9_17']]], - ['sinricprogaragedoor_309',['SinricProGarageDoor',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_garage_door.html',1,'SINRICPRO_2_9_17']]], - ['sinricprolight_310',['SinricProLight',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_light.html',1,'SINRICPRO_2_9_17']]], - ['sinricprolock_311',['SinricProLock',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_lock.html',1,'SINRICPRO_2_9_17']]], - ['sinricpromotionsensor_312',['SinricProMotionsensor',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_motionsensor.html',1,'SINRICPRO_2_9_17']]], - ['sinricpropowersensor_313',['SinricProPowerSensor',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_power_sensor.html',1,'SINRICPRO_2_9_17']]], - ['sinricprospeaker_314',['SinricProSpeaker',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_speaker.html',1,'SINRICPRO_2_9_17']]], - ['sinricproswitch_315',['SinricProSwitch',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_switch.html',1,'SINRICPRO_2_9_17']]], - ['sinricprotemperaturesensor_316',['SinricProTemperaturesensor',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_temperaturesensor.html',1,'SINRICPRO_2_9_17']]], - ['sinricprothermostat_317',['SinricProThermostat',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_thermostat.html',1,'SINRICPRO_2_9_17']]], - ['sinricprotv_318',['SinricProTV',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_t_v.html',1,'SINRICPRO_2_9_17']]], - ['sinricprowindowac_319',['SinricProWindowAC',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_window_a_c.html',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/search/classes_c.html b/docs/docs/search/classes_c.html deleted file mode 100644 index 2f7b1f3..0000000 --- a/docs/docs/search/classes_c.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/classes_c.js b/docs/docs/search/classes_c.js deleted file mode 100644 index 0c1c930..0000000 --- a/docs/docs/search/classes_c.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['temperaturesensor_320',['TemperatureSensor',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_temperature_sensor.html',1,'SINRICPRO_2_9_17']]], - ['temperaturesensor_3c_20sinricprotemperaturesensor_20_3e_321',['TemperatureSensor< SinricProTemperaturesensor >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_temperature_sensor.html',1,'SINRICPRO_2_9_17']]], - ['temperaturesensor_3c_20sinricprothermostat_20_3e_322',['TemperatureSensor< SinricProThermostat >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_temperature_sensor.html',1,'SINRICPRO_2_9_17']]], - ['thermostatcontroller_323',['ThermostatController',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller.html',1,'SINRICPRO_2_9_17']]], - ['thermostatcontroller_3c_20sinricprothermostat_20_3e_324',['ThermostatController< SinricProThermostat >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller.html',1,'SINRICPRO_2_9_17']]], - ['thermostatcontroller_3c_20sinricprowindowac_20_3e_325',['ThermostatController< SinricProWindowAC >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller.html',1,'SINRICPRO_2_9_17']]], - ['togglecontroller_326',['ToggleController',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_toggle_controller.html',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/search/classes_d.html b/docs/docs/search/classes_d.html deleted file mode 100644 index f9011e7..0000000 --- a/docs/docs/search/classes_d.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/classes_d.js b/docs/docs/search/classes_d.js deleted file mode 100644 index c57d7cc..0000000 --- a/docs/docs/search/classes_d.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['volumecontroller_327',['VolumeController',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller.html',1,'SINRICPRO_2_9_17']]], - ['volumecontroller_3c_20sinricprospeaker_20_3e_328',['VolumeController< SinricProSpeaker >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller.html',1,'SINRICPRO_2_9_17']]], - ['volumecontroller_3c_20sinricprotv_20_3e_329',['VolumeController< SinricProTV >',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller.html',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/search/close.svg b/docs/docs/search/close.svg deleted file mode 100644 index a933eea..0000000 --- a/docs/docs/search/close.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - diff --git a/docs/docs/search/functions_0.html b/docs/docs/search/functions_0.html deleted file mode 100644 index eb4c501..0000000 --- a/docs/docs/search/functions_0.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/functions_0.js b/docs/docs/search/functions_0.js deleted file mode 100644 index 7e39210..0000000 --- a/docs/docs/search/functions_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['begin_331',['begin',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_class.html#a1b5b66fb0c539b9b5f5f58a135056c75',1,'SINRICPRO_2_9_17::SinricProClass']]] -]; diff --git a/docs/docs/search/functions_1.html b/docs/docs/search/functions_1.html deleted file mode 100644 index ef4088b..0000000 --- a/docs/docs/search/functions_1.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/functions_1.js b/docs/docs/search/functions_1.js deleted file mode 100644 index 59690bc..0000000 --- a/docs/docs/search/functions_1.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['gettimestamp_332',['getTimestamp',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_class.html#afb2be26eef972203404140612fa31326',1,'SINRICPRO_2_9_17::SinricProClass']]] -]; diff --git a/docs/docs/search/functions_2.html b/docs/docs/search/functions_2.html deleted file mode 100644 index ca5aa10..0000000 --- a/docs/docs/search/functions_2.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/functions_2.js b/docs/docs/search/functions_2.js deleted file mode 100644 index 77d8ecf..0000000 --- a/docs/docs/search/functions_2.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['handle_333',['handle',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_class.html#a37c2d0658e498b1bf878f8a3d9a7c5b4',1,'SINRICPRO_2_9_17::SinricProClass']]] -]; diff --git a/docs/docs/search/functions_3.html b/docs/docs/search/functions_3.html deleted file mode 100644 index d79f55b..0000000 --- a/docs/docs/search/functions_3.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/functions_3.js b/docs/docs/search/functions_3.js deleted file mode 100644 index 3b7d081..0000000 --- a/docs/docs/search/functions_3.js +++ /dev/null @@ -1,38 +0,0 @@ -var searchData= -[ - ['onadjustbands_334',['onAdjustBands',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller.html#a41a5c1506545c44c2408054a8675c7a8',1,'SINRICPRO_2_9_17::EqualizerController']]], - ['onadjustbrightness_335',['onAdjustBrightness',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller.html#a0633e5fa2981189f4a093bab00a8c7f1',1,'SINRICPRO_2_9_17::BrightnessController']]], - ['onadjustpercentage_336',['onAdjustPercentage',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_percentage_controller.html#a77ac70c4880e38dae4f640dceaeb2816',1,'SINRICPRO_2_9_17::PercentageController']]], - ['onadjustpowerlevel_337',['onAdjustPowerLevel',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller.html#a13b10bdb1844babe4de320fff9172d96',1,'SINRICPRO_2_9_17::PowerLevelController']]], - ['onadjustrangevalue_338',['onAdjustRangeValue',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller.html#ae85696d55112ae7343f9807faee6e064',1,'SINRICPRO_2_9_17::RangeController']]], - ['onadjusttargettemperature_339',['onAdjustTargetTemperature',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller.html#ac51f6fecfdf4c7bc8e0712e2da47bbf4',1,'SINRICPRO_2_9_17::ThermostatController']]], - ['onadjustvolume_340',['onAdjustVolume',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller.html#a2c868c87f96e3924c8b309e1bcfb507e',1,'SINRICPRO_2_9_17::VolumeController']]], - ['onbrightness_341',['onBrightness',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller.html#abbaab3067b1fcdcc5928451b818a4420',1,'SINRICPRO_2_9_17::BrightnessController']]], - ['onchangechannel_342',['onChangeChannel',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller.html#a92f3b83744b5bb82d32628eef39c1eb9',1,'SINRICPRO_2_9_17::ChannelController']]], - ['onchangechannelnumber_343',['onChangeChannelNumber',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller.html#afd8aee20590bfadec181c6ee515125ec',1,'SINRICPRO_2_9_17::ChannelController']]], - ['oncolor_344',['onColor',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_controller.html#a059ff103149869b7c49cdb8911875b7b',1,'SINRICPRO_2_9_17::ColorController']]], - ['oncolortemperature_345',['onColorTemperature',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller.html#a8535c44fd2517ed09ebe6a203cc25b67',1,'SINRICPRO_2_9_17::ColorTemperatureController']]], - ['onconnected_346',['onConnected',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_class.html#ac33a355adfc413d4ff36974d735115bd',1,'SINRICPRO_2_9_17::SinricProClass']]], - ['ondecreasecolortemperature_347',['onDecreaseColorTemperature',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller.html#a7468976e7fffeee14cc869b7236cbb50',1,'SINRICPRO_2_9_17::ColorTemperatureController']]], - ['ondisconnected_348',['onDisconnected',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_class.html#a654bb017ca55b448d55bb36e0346f38a',1,'SINRICPRO_2_9_17::SinricProClass']]], - ['ondoorstate_349',['onDoorState',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_door_controller.html#a6b536531ab89b39f1a48cb107e22185e',1,'SINRICPRO_2_9_17::DoorController']]], - ['onincreasecolortemperature_350',['onIncreaseColorTemperature',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller.html#a7ea9fd9861a5668a41d06267bfbec82a',1,'SINRICPRO_2_9_17::ColorTemperatureController']]], - ['onkeystroke_351',['onKeystroke',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_keypad_controller.html#ab24b4858dcc69145a367e964c2ae7961',1,'SINRICPRO_2_9_17::KeypadController']]], - ['onlockstate_352',['onLockState',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_lock_controller.html#aee42cc397234a454fd353ca6bc12a859',1,'SINRICPRO_2_9_17::LockController']]], - ['onmediacontrol_353',['onMediaControl',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller.html#afc2620621377fff928737b5a8a537020',1,'SINRICPRO_2_9_17::MediaController']]], - ['onmute_354',['onMute',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller.html#ab5fc79cc8903c3ccc1c106abf61d7cfd',1,'SINRICPRO_2_9_17::MuteController']]], - ['onpowerlevel_355',['onPowerLevel',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller.html#a0685d34694badb4442fed6b69b69b366',1,'SINRICPRO_2_9_17::PowerLevelController']]], - ['onpowerstate_356',['onPowerState',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html#a32f3257da431a1035f23a265ff0cc4cf',1,'SINRICPRO_2_9_17::PowerStateController']]], - ['onrangevalue_357',['onRangeValue',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller.html#a94adbcdf6ce61cb6552a5f9915e705ae',1,'SINRICPRO_2_9_17::RangeController::onRangeValue(SetRangeValueCallback cb)'],['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller.html#a6d6d8070b49c8b5272460836a1120b33',1,'SINRICPRO_2_9_17::RangeController::onRangeValue(const String &instance, GenericSetRangeValueCallback_int cb)']]], - ['onresetbands_358',['onResetBands',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller.html#aa6c3aabc2b442d82ac5456ccaac3f60d',1,'SINRICPRO_2_9_17::EqualizerController']]], - ['onselectinput_359',['onSelectInput',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_input_controller.html#a18f8f71ecf0d7292a63d9486f94e5180',1,'SINRICPRO_2_9_17::InputController']]], - ['onsetbands_360',['onSetBands',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller.html#a4aaa7a29394560be7537a86b0304d199',1,'SINRICPRO_2_9_17::EqualizerController']]], - ['onsetmode_361',['onSetMode',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller.html#ada087c948c3ab923bdb7818daa6b2b79',1,'SINRICPRO_2_9_17::ModeController::onSetMode(ModeCallback cb)'],['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller.html#a6b15ba168b3a673b98da43ac5e4ef76c',1,'SINRICPRO_2_9_17::ModeController::onSetMode(const String &instance, GenericModeCallback cb)']]], - ['onsetpercentage_362',['onSetPercentage',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_percentage_controller.html#aeef432df118679c689ccd8a48d47dc3d',1,'SINRICPRO_2_9_17::PercentageController']]], - ['onsetvolume_363',['onSetVolume',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller.html#a5db8c85f222debbece54c794015f9402',1,'SINRICPRO_2_9_17::VolumeController']]], - ['onskipchannels_364',['onSkipChannels',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller.html#ab1123d03d471fad4896eb2960ed41855',1,'SINRICPRO_2_9_17::ChannelController']]], - ['ontargettemperature_365',['onTargetTemperature',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller.html#a1c73725f1f3fbb1c5b72208aae5c2bf2',1,'SINRICPRO_2_9_17::ThermostatController']]], - ['onthermostatmode_366',['onThermostatMode',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller.html#a2ef31536973b20815dd6c80a28e19c9f',1,'SINRICPRO_2_9_17::ThermostatController']]], - ['ontogglestate_367',['onToggleState',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_toggle_controller.html#a7ccd28a4f20922847d0461649af5572d',1,'SINRICPRO_2_9_17::ToggleController']]], - ['operator_5b_5d_368',['operator[]',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_class.html#a84a491d393b5c7c1433a2a9e62a58766',1,'SINRICPRO_2_9_17::SinricProClass']]] -]; diff --git a/docs/docs/search/functions_4.html b/docs/docs/search/functions_4.html deleted file mode 100644 index 1657cad..0000000 --- a/docs/docs/search/functions_4.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/functions_4.js b/docs/docs/search/functions_4.js deleted file mode 100644 index d8c5c78..0000000 --- a/docs/docs/search/functions_4.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['restoredevicestates_369',['restoreDeviceStates',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_sinric_pro_class.html#a27a9bb7f1e8bde0f39398649493b6f93',1,'SINRICPRO_2_9_17::SinricProClass']]] -]; diff --git a/docs/docs/search/functions_5.html b/docs/docs/search/functions_5.html deleted file mode 100644 index 9301d6b..0000000 --- a/docs/docs/search/functions_5.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/functions_5.js b/docs/docs/search/functions_5.js deleted file mode 100644 index 1cdee11..0000000 --- a/docs/docs/search/functions_5.js +++ /dev/null @@ -1,29 +0,0 @@ -var searchData= -[ - ['sendairqualityevent_370',['sendAirQualityEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_air_quality_sensor.html#a733195bdc5b15c858e4e890847b3a0d5',1,'SINRICPRO_2_9_17::AirQualitySensor']]], - ['sendbandsevent_371',['sendBandsEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_equalizer_controller.html#a4ad5674e36d96a73147388251b794c82',1,'SINRICPRO_2_9_17::EqualizerController']]], - ['sendbrightnessevent_372',['sendBrightnessEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_brightness_controller.html#a2a96c414210f61de3ce53a4ca8c963b3',1,'SINRICPRO_2_9_17::BrightnessController']]], - ['sendchangechannelevent_373',['sendChangeChannelEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_channel_controller.html#aff5839c3020c3006af1a2a8c37cc858e',1,'SINRICPRO_2_9_17::ChannelController']]], - ['sendcolorevent_374',['sendColorEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_controller.html#a3599a6d00eb0f9127a7c1188885c5bc0',1,'SINRICPRO_2_9_17::ColorController']]], - ['sendcolortemperatureevent_375',['sendColorTemperatureEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_color_temperature_controller.html#a0f90d7f5a5b365116f97beca7630ccc9',1,'SINRICPRO_2_9_17::ColorTemperatureController']]], - ['sendcontactevent_376',['sendContactEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_contact_sensor.html#a452a4cfa3177d8d8d31c5919e9ccbb19',1,'SINRICPRO_2_9_17::ContactSensor']]], - ['senddoorbellevent_377',['sendDoorbellEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_doorbell.html#a168f5a4ddcbf381fd548bf10ee05b272',1,'SINRICPRO_2_9_17::Doorbell']]], - ['senddoorstateevent_378',['sendDoorStateEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_door_controller.html#a375cda2b0bc05e1a66e3bc29d059d9a7',1,'SINRICPRO_2_9_17::DoorController']]], - ['sendlockstateevent_379',['sendLockStateEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_lock_controller.html#a8fb3fec204da21e69d05f89a9ecb4739',1,'SINRICPRO_2_9_17::LockController']]], - ['sendmediacontrolevent_380',['sendMediaControlEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_media_controller.html#a7af593cbf79d38f6b90efb5afee45077',1,'SINRICPRO_2_9_17::MediaController']]], - ['sendmodeevent_381',['sendModeEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller.html#a41f8465e89d147c08ab8cbc6839d34da',1,'SINRICPRO_2_9_17::ModeController::sendModeEvent(String mode, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)'],['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mode_controller.html#a7c84d5c26f2ded88e4941313015f7f4c',1,'SINRICPRO_2_9_17::ModeController::sendModeEvent(String instance, String mode, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)']]], - ['sendmotionevent_382',['sendMotionEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_motion_sensor.html#a9be024aa2bb70f0146a02dd1b79d3faa',1,'SINRICPRO_2_9_17::MotionSensor']]], - ['sendmuteevent_383',['sendMuteEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_mute_controller.html#a4717d892b64a14052712152924bd5b29',1,'SINRICPRO_2_9_17::MuteController']]], - ['sendpowerlevelevent_384',['sendPowerLevelEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_level_controller.html#a2f1f88c7b4d9503bfcfe5557c5e55ed4',1,'SINRICPRO_2_9_17::PowerLevelController']]], - ['sendpowersensorevent_385',['sendPowerSensorEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_sensor.html#aec04692842ae1953973503f6be6d9afc',1,'SINRICPRO_2_9_17::PowerSensor']]], - ['sendpowerstateevent_386',['sendPowerStateEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_power_state_controller.html#acfd5f3a30933ace93751bd823630cded',1,'SINRICPRO_2_9_17::PowerStateController']]], - ['sendpushnotification_387',['sendPushNotification',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_push_notification.html#a04266791a4b23e9614b8773edb5f67b6',1,'SINRICPRO_2_9_17::PushNotification']]], - ['sendrangevalueevent_388',['sendRangeValueEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller.html#a1d726751c416fe6dd408e5dd19f6b53b',1,'SINRICPRO_2_9_17::RangeController::sendRangeValueEvent(int rangeValue, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)'],['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_range_controller.html#aaf84aa417e2246843a27e819898e64b5',1,'SINRICPRO_2_9_17::RangeController::sendRangeValueEvent(const String &instance, int rangeValue, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)']]], - ['sendselectinputevent_389',['sendSelectInputEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_input_controller.html#a973241ac912a18b142d236dda7f80e97',1,'SINRICPRO_2_9_17::InputController']]], - ['sendsetpercentageevent_390',['sendSetPercentageEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_percentage_controller.html#adf688c12e451e52b05670f150bdabcc8',1,'SINRICPRO_2_9_17::PercentageController']]], - ['sendtargettemperatureevent_391',['sendTargetTemperatureEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller.html#ab8b7fdd977a0a38413f2279b50274890',1,'SINRICPRO_2_9_17::ThermostatController']]], - ['sendtemperatureevent_392',['sendTemperatureEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_temperature_sensor.html#a75956fe7aff6e595a9b57519316ff789',1,'SINRICPRO_2_9_17::TemperatureSensor']]], - ['sendthermostatmodeevent_393',['sendThermostatModeEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_thermostat_controller.html#ae7273cd094f64a93494ae99501fc83e8',1,'SINRICPRO_2_9_17::ThermostatController']]], - ['sendtogglestateevent_394',['sendToggleStateEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_toggle_controller.html#a7fcc5084fea488e5b5e95f5ad7015a0f',1,'SINRICPRO_2_9_17::ToggleController']]], - ['sendvolumeevent_395',['sendVolumeEvent',['../class_s_i_n_r_i_c_p_r_o__2__9__17_1_1_volume_controller.html#aa2d3dbea5b07e4c5f39d3d20aa2167a4',1,'SINRICPRO_2_9_17::VolumeController']]] -]; diff --git a/docs/docs/search/mag_sel.svg b/docs/docs/search/mag_sel.svg deleted file mode 100644 index 03626f6..0000000 --- a/docs/docs/search/mag_sel.svg +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/docs/docs/search/namespaces_0.html b/docs/docs/search/namespaces_0.html deleted file mode 100644 index 21db2c3..0000000 --- a/docs/docs/search/namespaces_0.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/namespaces_0.js b/docs/docs/search/namespaces_0.js deleted file mode 100644 index 98c2026..0000000 --- a/docs/docs/search/namespaces_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['sinricpro_5f2_5f9_5f17_330',['SINRICPRO_2_9_17',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html',1,'']]] -]; diff --git a/docs/docs/search/nomatches.html b/docs/docs/search/nomatches.html deleted file mode 100644 index 2b9360b..0000000 --- a/docs/docs/search/nomatches.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - -
    -
    No Matches
    -
    - - diff --git a/docs/docs/search/pages_0.html b/docs/docs/search/pages_0.html deleted file mode 100644 index 8517b48..0000000 --- a/docs/docs/search/pages_0.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/pages_0.js b/docs/docs/search/pages_0.js deleted file mode 100644 index 56462ae..0000000 --- a/docs/docs/search/pages_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['sinricpro_20_28esp8266_20_2f_20esp32_20sdk_29_433',['SinricPro (ESP8266 / ESP32 SDK)',['../index.html',1,'']]] -]; diff --git a/docs/docs/search/search.css b/docs/docs/search/search.css deleted file mode 100644 index 9074198..0000000 --- a/docs/docs/search/search.css +++ /dev/null @@ -1,257 +0,0 @@ -/*---------------- Search Box */ - -#MSearchBox { - white-space : nowrap; - background: white; - border-radius: 0.65em; - box-shadow: inset 0.5px 0.5px 3px 0px #555; - z-index: 102; -} - -#MSearchBox .left { - display: inline-block; - vertical-align: middle; - height: 1.4em; -} - -#MSearchSelect { - display: inline-block; - vertical-align: middle; - height: 1.4em; - padding: 0 0 0 0.3em; - margin: 0; -} - -#MSearchField { - display: inline-block; - vertical-align: middle; - width: 7.5em; - height: 1.1em; - margin: 0 0.15em; - padding: 0; - line-height: 1em; - border:none; - color: #909090; - outline: none; - font-family: Arial, Verdana, sans-serif; - -webkit-border-radius: 0px; - border-radius: 0px; - background: none; -} - - -#MSearchBox .right { - display: inline-block; - vertical-align: middle; - width: 1.4em; - height: 1.4em; -} - -#MSearchClose { - display: none; - font-size: inherit; - background : none; - border: none; - margin: 0; - padding: 0; - outline: none; - -} - -#MSearchCloseImg { - height: 1.4em; - padding: 0.3em; - margin: 0; -} - -.MSearchBoxActive #MSearchField { - color: #000000; -} - -#main-menu > li:last-child { - /* This
  • object is the parent of the search bar */ - display: flex; - justify-content: center; - align-items: center; - height: 36px; - margin-right: 1em; -} - -/*---------------- Search filter selection */ - -#MSearchSelectWindow { - display: none; - position: absolute; - left: 0; top: 0; - border: 1px solid #90A5CE; - background-color: #F9FAFC; - z-index: 10001; - padding-top: 4px; - padding-bottom: 4px; - -moz-border-radius: 4px; - -webkit-border-top-left-radius: 4px; - -webkit-border-top-right-radius: 4px; - -webkit-border-bottom-left-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -} - -.SelectItem { - font: 8pt Arial, Verdana, sans-serif; - padding-left: 2px; - padding-right: 12px; - border: 0px; -} - -span.SelectionMark { - margin-right: 4px; - font-family: monospace; - outline-style: none; - text-decoration: none; -} - -a.SelectItem { - display: block; - outline-style: none; - color: #000000; - text-decoration: none; - padding-left: 6px; - padding-right: 12px; -} - -a.SelectItem:focus, -a.SelectItem:active { - color: #000000; - outline-style: none; - text-decoration: none; -} - -a.SelectItem:hover { - color: #FFFFFF; - background-color: #3D578C; - outline-style: none; - text-decoration: none; - cursor: pointer; - display: block; -} - -/*---------------- Search results window */ - -iframe#MSearchResults { - width: 60ex; - height: 15em; -} - -#MSearchResultsWindow { - display: none; - position: absolute; - left: 0; top: 0; - border: 1px solid #000; - background-color: #EEF1F7; - z-index:10000; -} - -/* ----------------------------------- */ - - -#SRIndex { - clear:both; - padding-bottom: 15px; -} - -.SREntry { - font-size: 10pt; - padding-left: 1ex; -} - -.SRPage .SREntry { - font-size: 8pt; - padding: 1px 5px; -} - -body.SRPage { - margin: 5px 2px; -} - -.SRChildren { - padding-left: 3ex; padding-bottom: .5em -} - -.SRPage .SRChildren { - display: none; -} - -.SRSymbol { - font-weight: bold; - color: #425E97; - font-family: Arial, Verdana, sans-serif; - text-decoration: none; - outline: none; -} - -a.SRScope { - display: block; - color: #425E97; - font-family: Arial, Verdana, sans-serif; - text-decoration: none; - outline: none; -} - -a.SRSymbol:focus, a.SRSymbol:active, -a.SRScope:focus, a.SRScope:active { - text-decoration: underline; -} - -span.SRScope { - padding-left: 4px; - font-family: Arial, Verdana, sans-serif; -} - -.SRPage .SRStatus { - padding: 2px 5px; - font-size: 8pt; - font-style: italic; - font-family: Arial, Verdana, sans-serif; -} - -.SRResult { - display: none; -} - -div.searchresults { - margin-left: 10px; - margin-right: 10px; -} - -/*---------------- External search page results */ - -.searchresult { - background-color: #F0F3F8; -} - -.pages b { - color: white; - padding: 5px 5px 3px 5px; - background-image: url("../tab_a.png"); - background-repeat: repeat-x; - text-shadow: 0 1px 1px #000000; -} - -.pages { - line-height: 17px; - margin-left: 4px; - text-decoration: none; -} - -.hl { - font-weight: bold; -} - -#searchresults { - margin-bottom: 20px; -} - -.searchpages { - margin-top: 10px; -} - diff --git a/docs/docs/search/search.js b/docs/docs/search/search.js deleted file mode 100644 index fb226f7..0000000 --- a/docs/docs/search/search.js +++ /dev/null @@ -1,816 +0,0 @@ -/* - @licstart The following is the entire license notice for the JavaScript code in this file. - - The MIT License (MIT) - - Copyright (C) 1997-2020 by Dimitri van Heesch - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software - and associated documentation files (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, publish, distribute, - sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or - substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING - BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - @licend The above is the entire license notice for the JavaScript code in this file - */ -function convertToId(search) -{ - var result = ''; - for (i=0;i do a search - { - this.Search(); - } - } - - this.OnSearchSelectKey = function(evt) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==40 && this.searchIndex0) // Up - { - this.searchIndex--; - this.OnSelectItem(this.searchIndex); - } - else if (e.keyCode==13 || e.keyCode==27) - { - this.OnSelectItem(this.searchIndex); - this.CloseSelectionWindow(); - this.DOMSearchField().focus(); - } - return false; - } - - // --------- Actions - - // Closes the results window. - this.CloseResultsWindow = function() - { - this.DOMPopupSearchResultsWindow().style.display = 'none'; - this.DOMSearchClose().style.display = 'none'; - this.Activate(false); - } - - this.CloseSelectionWindow = function() - { - this.DOMSearchSelectWindow().style.display = 'none'; - } - - // Performs a search. - this.Search = function() - { - this.keyTimeout = 0; - - // strip leading whitespace - var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); - - var code = searchValue.toLowerCase().charCodeAt(0); - var idxChar = searchValue.substr(0, 1).toLowerCase(); - if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair - { - idxChar = searchValue.substr(0, 2); - } - - var resultsPage; - var resultsPageWithSearch; - var hasResultsPage; - - var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); - if (idx!=-1) - { - var hexCode=idx.toString(16); - resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + this.extension; - resultsPageWithSearch = resultsPage+'?'+escape(searchValue); - hasResultsPage = true; - } - else // nothing available for this search term - { - resultsPage = this.resultsPath + '/nomatches' + this.extension; - resultsPageWithSearch = resultsPage; - hasResultsPage = false; - } - - window.frames.MSearchResults.location = resultsPageWithSearch; - var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); - - if (domPopupSearchResultsWindow.style.display!='block') - { - var domSearchBox = this.DOMSearchBox(); - this.DOMSearchClose().style.display = 'inline-block'; - if (this.insideFrame) - { - var domPopupSearchResults = this.DOMPopupSearchResults(); - domPopupSearchResultsWindow.style.position = 'relative'; - domPopupSearchResultsWindow.style.display = 'block'; - var width = document.body.clientWidth - 8; // the -8 is for IE :-( - domPopupSearchResultsWindow.style.width = width + 'px'; - domPopupSearchResults.style.width = width + 'px'; - } - else - { - var domPopupSearchResults = this.DOMPopupSearchResults(); - var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; - var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; - domPopupSearchResultsWindow.style.display = 'block'; - left -= domPopupSearchResults.offsetWidth; - domPopupSearchResultsWindow.style.top = top + 'px'; - domPopupSearchResultsWindow.style.left = left + 'px'; - } - } - - this.lastSearchValue = searchValue; - this.lastResultsPage = resultsPage; - } - - // -------- Activation Functions - - // Activates or deactivates the search panel, resetting things to - // their default values if necessary. - this.Activate = function(isActive) - { - if (isActive || // open it - this.DOMPopupSearchResultsWindow().style.display == 'block' - ) - { - this.DOMSearchBox().className = 'MSearchBoxActive'; - - var searchField = this.DOMSearchField(); - - if (searchField.value == this.searchLabel) // clear "Search" term upon entry - { - searchField.value = ''; - this.searchActive = true; - } - } - else if (!isActive) // directly remove the panel - { - this.DOMSearchBox().className = 'MSearchBoxInactive'; - this.DOMSearchField().value = this.searchLabel; - this.searchActive = false; - this.lastSearchValue = '' - this.lastResultsPage = ''; - } - } -} - -// ----------------------------------------------------------------------- - -// The class that handles everything on the search results page. -function SearchResults(name) -{ - // The number of matches from the last run of . - this.lastMatchCount = 0; - this.lastKey = 0; - this.repeatOn = false; - - // Toggles the visibility of the passed element ID. - this.FindChildElement = function(id) - { - var parentElement = document.getElementById(id); - var element = parentElement.firstChild; - - while (element && element!=parentElement) - { - if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') - { - return element; - } - - if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) - { - element = element.firstChild; - } - else if (element.nextSibling) - { - element = element.nextSibling; - } - else - { - do - { - element = element.parentNode; - } - while (element && element!=parentElement && !element.nextSibling); - - if (element && element!=parentElement) - { - element = element.nextSibling; - } - } - } - } - - this.Toggle = function(id) - { - var element = this.FindChildElement(id); - if (element) - { - if (element.style.display == 'block') - { - element.style.display = 'none'; - } - else - { - element.style.display = 'block'; - } - } - } - - // Searches for the passed string. If there is no parameter, - // it takes it from the URL query. - // - // Always returns true, since other documents may try to call it - // and that may or may not be possible. - this.Search = function(search) - { - if (!search) // get search word from URL - { - search = window.location.search; - search = search.substring(1); // Remove the leading '?' - search = unescape(search); - } - - search = search.replace(/^ +/, ""); // strip leading spaces - search = search.replace(/ +$/, ""); // strip trailing spaces - search = search.toLowerCase(); - search = convertToId(search); - - var resultRows = document.getElementsByTagName("div"); - var matches = 0; - - var i = 0; - while (i < resultRows.length) - { - var row = resultRows.item(i); - if (row.className == "SRResult") - { - var rowMatchName = row.id.toLowerCase(); - rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' - - if (search.length<=rowMatchName.length && - rowMatchName.substr(0, search.length)==search) - { - row.style.display = 'block'; - matches++; - } - else - { - row.style.display = 'none'; - } - } - i++; - } - document.getElementById("Searching").style.display='none'; - if (matches == 0) // no results - { - document.getElementById("NoMatches").style.display='block'; - } - else // at least one result - { - document.getElementById("NoMatches").style.display='none'; - } - this.lastMatchCount = matches; - return true; - } - - // return the first item with index index or higher that is visible - this.NavNext = function(index) - { - var focusItem; - while (1) - { - var focusName = 'Item'+index; - focusItem = document.getElementById(focusName); - if (focusItem && focusItem.parentNode.parentNode.style.display=='block') - { - break; - } - else if (!focusItem) // last element - { - break; - } - focusItem=null; - index++; - } - return focusItem; - } - - this.NavPrev = function(index) - { - var focusItem; - while (1) - { - var focusName = 'Item'+index; - focusItem = document.getElementById(focusName); - if (focusItem && focusItem.parentNode.parentNode.style.display=='block') - { - break; - } - else if (!focusItem) // last element - { - break; - } - focusItem=null; - index--; - } - return focusItem; - } - - this.ProcessKeys = function(e) - { - if (e.type == "keydown") - { - this.repeatOn = false; - this.lastKey = e.keyCode; - } - else if (e.type == "keypress") - { - if (!this.repeatOn) - { - if (this.lastKey) this.repeatOn = true; - return false; // ignore first keypress after keydown - } - } - else if (e.type == "keyup") - { - this.lastKey = 0; - this.repeatOn = false; - } - return this.lastKey!=0; - } - - this.Nav = function(evt,itemIndex) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==13) return true; - if (!this.ProcessKeys(e)) return false; - - if (this.lastKey==38) // Up - { - var newIndex = itemIndex-1; - var focusItem = this.NavPrev(newIndex); - if (focusItem) - { - var child = this.FindChildElement(focusItem.parentNode.parentNode.id); - if (child && child.style.display == 'block') // children visible - { - var n=0; - var tmpElem; - while (1) // search for last child - { - tmpElem = document.getElementById('Item'+newIndex+'_c'+n); - if (tmpElem) - { - focusItem = tmpElem; - } - else // found it! - { - break; - } - n++; - } - } - } - if (focusItem) - { - focusItem.focus(); - } - else // return focus to search field - { - parent.document.getElementById("MSearchField").focus(); - } - } - else if (this.lastKey==40) // Down - { - var newIndex = itemIndex+1; - var focusItem; - var item = document.getElementById('Item'+itemIndex); - var elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem && elem.style.display == 'block') // children visible - { - focusItem = document.getElementById('Item'+itemIndex+'_c0'); - } - if (!focusItem) focusItem = this.NavNext(newIndex); - if (focusItem) focusItem.focus(); - } - else if (this.lastKey==39) // Right - { - var item = document.getElementById('Item'+itemIndex); - var elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem) elem.style.display = 'block'; - } - else if (this.lastKey==37) // Left - { - var item = document.getElementById('Item'+itemIndex); - var elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem) elem.style.display = 'none'; - } - else if (this.lastKey==27) // Escape - { - parent.searchBox.CloseResultsWindow(); - parent.document.getElementById("MSearchField").focus(); - } - else if (this.lastKey==13) // Enter - { - return true; - } - return false; - } - - this.NavChild = function(evt,itemIndex,childIndex) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==13) return true; - if (!this.ProcessKeys(e)) return false; - - if (this.lastKey==38) // Up - { - if (childIndex>0) - { - var newIndex = childIndex-1; - document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); - } - else // already at first child, jump to parent - { - document.getElementById('Item'+itemIndex).focus(); - } - } - else if (this.lastKey==40) // Down - { - var newIndex = childIndex+1; - var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); - if (!elem) // last child, jump to parent next parent - { - elem = this.NavNext(itemIndex+1); - } - if (elem) - { - elem.focus(); - } - } - else if (this.lastKey==27) // Escape - { - parent.searchBox.CloseResultsWindow(); - parent.document.getElementById("MSearchField").focus(); - } - else if (this.lastKey==13) // Enter - { - return true; - } - return false; - } -} - -function setKeyActions(elem,action) -{ - elem.setAttribute('onkeydown',action); - elem.setAttribute('onkeypress',action); - elem.setAttribute('onkeyup',action); -} - -function setClassAttr(elem,attr) -{ - elem.setAttribute('class',attr); - elem.setAttribute('className',attr); -} - -function createResults() -{ - var results = document.getElementById("SRResults"); - for (var e=0; e(R!W8j_r#qQ#gnr4kAxdU#F0+OBry$Z+ z_0PMi;P|#{d%mw(dnw=jM%@$onTJa%@6Nm3`;2S#nwtVFJI#`U@2Q@@JCCctagvF- z8H=anvo~dTmJ2YA%wA6IHRv%{vxvUm|R)kgZeo zmX%Zb;mpflGZdXCTAgit`||AFzkI#z&(3d4(htA?U2FOL4WF6wY&TB#n3n*I4+hl| z*NBpo#FA92vEu822WQ%mvv4FO#qs` BFGc_W diff --git a/docs/docs/search/search_r.png b/docs/docs/search/search_r.png deleted file mode 100644 index 1af5d21ee13e070d7600f1c4657fde843b953a69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 553 zcmeAS@N?(olHy`uVBq!ia0vp^LO?9c!2%@BXHTsJQY`6?zK#qG8~eHcB(ehe3dtTp zz6=bxGZ+|(`xqD=STHa&U1eaXVrO7DwS|Gf*oA>XrmV$GYcEhOQT(QLuS{~ooZ2P@v=Xc@RKW@Irliv8_;wroU0*)0O?temdsA~70jrdux+`@W7 z-N(<(C)L?hOO?KV{>8(jC{hpKsws)#Fh zvsO>IB+gb@b+rGWaO&!a9Z{!U+fV*s7TS>fdt&j$L%^U@Epd$~Nl7e8wMs5Z1yT$~ z28I^8hDN#u<{^fLRz?<9hUVG^237_Jy7tbuQ8eV{r(~v8;?@w8^gA7>fx*+&&t;uc GLK6VEQpiUD diff --git a/docs/docs/search/searchdata.js b/docs/docs/search/searchdata.js deleted file mode 100644 index 853c0f4..0000000 --- a/docs/docs/search/searchdata.js +++ /dev/null @@ -1,30 +0,0 @@ -var indexSectionsWithContent = -{ - 0: "abcdeghiklmoprstv", - 1: "abcdeiklmprstv", - 2: "s", - 3: "bghors", - 4: "abcdgiklmprst", - 5: "s" -}; - -var indexSectionNames = -{ - 0: "all", - 1: "classes", - 2: "namespaces", - 3: "functions", - 4: "typedefs", - 5: "pages" -}; - -var indexSectionLabels = -{ - 0: "All", - 1: "Classes", - 2: "Namespaces", - 3: "Functions", - 4: "Typedefs", - 5: "Pages" -}; - diff --git a/docs/docs/search/typedefs_0.html b/docs/docs/search/typedefs_0.html deleted file mode 100644 index a4684c4..0000000 --- a/docs/docs/search/typedefs_0.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/typedefs_0.js b/docs/docs/search/typedefs_0.js deleted file mode 100644 index 3fb22df..0000000 --- a/docs/docs/search/typedefs_0.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['adjustbandscallback_396',['AdjustBandsCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a28446c362f1f44e269b50619761c9e9b',1,'SINRICPRO_2_9_17']]], - ['adjustbrightnesscallback_397',['AdjustBrightnessCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a3ff8d93d9483f41bf8504fd3e9cc8f49',1,'SINRICPRO_2_9_17']]], - ['adjustpercentagecallback_398',['AdjustPercentageCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a088a491b8656c376085bc31d558fd05d',1,'SINRICPRO_2_9_17']]], - ['adjustpowerlevelcallback_399',['AdjustPowerLevelCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a3ec3aad26d06f5b943a6906e11afc1f3',1,'SINRICPRO_2_9_17']]], - ['adjustrangevaluecallback_400',['AdjustRangeValueCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a2ba46d8544d48aee620fff9a930c01ff',1,'SINRICPRO_2_9_17']]], - ['adjusttargettemperaturecallback_401',['AdjustTargetTemperatureCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a8d55dffbb520779ef95fc29e49032886',1,'SINRICPRO_2_9_17']]], - ['adjustvolumecallback_402',['AdjustVolumeCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#ac6304129491317f85cee56ca5925dfab',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/search/typedefs_1.html b/docs/docs/search/typedefs_1.html deleted file mode 100644 index 46cf01e..0000000 --- a/docs/docs/search/typedefs_1.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/typedefs_1.js b/docs/docs/search/typedefs_1.js deleted file mode 100644 index 521b39f..0000000 --- a/docs/docs/search/typedefs_1.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['brightnesscallback_403',['BrightnessCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#aff9938ddc803e4339a3db9b31503e12d',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/search/typedefs_2.html b/docs/docs/search/typedefs_2.html deleted file mode 100644 index 6835ee6..0000000 --- a/docs/docs/search/typedefs_2.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/typedefs_2.js b/docs/docs/search/typedefs_2.js deleted file mode 100644 index 70892f2..0000000 --- a/docs/docs/search/typedefs_2.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['changechannelcallback_404',['ChangeChannelCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a8bc108630d532266ae36cda5ec7b4857',1,'SINRICPRO_2_9_17']]], - ['changechannelnumbercallback_405',['ChangeChannelNumberCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#ab21b05b6f4a6be7e89a7173b7fafb552',1,'SINRICPRO_2_9_17']]], - ['colorcallback_406',['ColorCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#ad8bcf09f6da3f41fffb001868cd3f84e',1,'SINRICPRO_2_9_17']]], - ['colortemperaturecallback_407',['ColorTemperatureCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a9828094e72d45dc55a1023fd677f0cc5',1,'SINRICPRO_2_9_17']]], - ['connectedcallbackhandler_408',['ConnectedCallbackHandler',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#af256b98e6806c944c9c386821a45d01e',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/search/typedefs_3.html b/docs/docs/search/typedefs_3.html deleted file mode 100644 index 0170047..0000000 --- a/docs/docs/search/typedefs_3.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/typedefs_3.js b/docs/docs/search/typedefs_3.js deleted file mode 100644 index 32a6648..0000000 --- a/docs/docs/search/typedefs_3.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['decreasecolortemperaturecallback_409',['DecreaseColorTemperatureCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#ae64ac4d2aa913eeb244091c7a13d2ecc',1,'SINRICPRO_2_9_17']]], - ['disconnectedcallbackhandler_410',['DisconnectedCallbackHandler',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a6cc95068e9f18665e76c37a621ca2ceb',1,'SINRICPRO_2_9_17']]], - ['doorcallback_411',['DoorCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#aaa6633dc67bd8f69e2f14cc0dc0a4466',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/search/typedefs_4.html b/docs/docs/search/typedefs_4.html deleted file mode 100644 index 81466a5..0000000 --- a/docs/docs/search/typedefs_4.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/typedefs_4.js b/docs/docs/search/typedefs_4.js deleted file mode 100644 index 62c180b..0000000 --- a/docs/docs/search/typedefs_4.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['genericadjustrangevaluecallback_5fint_412',['GenericAdjustRangeValueCallback_int',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a38dc8a8eb0e769ed32348b7166e39ad3',1,'SINRICPRO_2_9_17']]], - ['genericmodecallback_413',['GenericModeCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#ac29fade927b50eac618999f84b29d02b',1,'SINRICPRO_2_9_17']]], - ['genericrangevaluecallback_5fint_414',['GenericRangeValueCallback_int',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a0acdc221a5d0592fea85aa0c7f236cf0',1,'SINRICPRO_2_9_17']]], - ['genericsetrangevaluecallback_5fint_415',['GenericSetRangeValueCallback_int',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a29997b424c4b141240a08d26406e4a14',1,'SINRICPRO_2_9_17']]], - ['generictogglestatecallback_416',['GenericToggleStateCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a87371479ad42795e9dc9344bd02a6312',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/search/typedefs_5.html b/docs/docs/search/typedefs_5.html deleted file mode 100644 index 43fbec1..0000000 --- a/docs/docs/search/typedefs_5.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/typedefs_5.js b/docs/docs/search/typedefs_5.js deleted file mode 100644 index 6f1753c..0000000 --- a/docs/docs/search/typedefs_5.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['increasecolortemperaturecallback_417',['IncreaseColorTemperatureCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#aed3d41935f8162074c2a2cc0168164dd',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/search/typedefs_6.html b/docs/docs/search/typedefs_6.html deleted file mode 100644 index 99479c2..0000000 --- a/docs/docs/search/typedefs_6.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/typedefs_6.js b/docs/docs/search/typedefs_6.js deleted file mode 100644 index 65da1f5..0000000 --- a/docs/docs/search/typedefs_6.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['keystrokecallback_418',['KeystrokeCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a3dd7e26af9b9026ccc6f5328f563a8c3',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/search/typedefs_7.html b/docs/docs/search/typedefs_7.html deleted file mode 100644 index 9a825e0..0000000 --- a/docs/docs/search/typedefs_7.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/typedefs_7.js b/docs/docs/search/typedefs_7.js deleted file mode 100644 index 770e344..0000000 --- a/docs/docs/search/typedefs_7.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['lockstatecallback_419',['LockStateCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a53b5285d1315f98fa2c5dd27c7547ea5',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/search/typedefs_8.html b/docs/docs/search/typedefs_8.html deleted file mode 100644 index e968613..0000000 --- a/docs/docs/search/typedefs_8.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/typedefs_8.js b/docs/docs/search/typedefs_8.js deleted file mode 100644 index 52621ea..0000000 --- a/docs/docs/search/typedefs_8.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['mediacontrolcallback_420',['MediaControlCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a9e92d9efafd5313ef1b056030655c526',1,'SINRICPRO_2_9_17']]], - ['modecallback_421',['ModeCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#aa2d0fe1a7983a8ec5e8fb3e69a5af60f',1,'SINRICPRO_2_9_17']]], - ['mutecallback_422',['MuteCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a0e4c9c4ee0b526732bc0a868ac4f2c41',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/search/typedefs_9.html b/docs/docs/search/typedefs_9.html deleted file mode 100644 index 2e91532..0000000 --- a/docs/docs/search/typedefs_9.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/typedefs_9.js b/docs/docs/search/typedefs_9.js deleted file mode 100644 index c15626d..0000000 --- a/docs/docs/search/typedefs_9.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['powerstatecallback_423',['PowerStateCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#aad370bc6b280bbdeac98181a31f22df4',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/search/typedefs_a.html b/docs/docs/search/typedefs_a.html deleted file mode 100644 index bb6ac2a..0000000 --- a/docs/docs/search/typedefs_a.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/typedefs_a.js b/docs/docs/search/typedefs_a.js deleted file mode 100644 index dbff9cb..0000000 --- a/docs/docs/search/typedefs_a.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['resetbandscallback_424',['ResetBandsCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#aa8c78de42c40ee03966f3c96cdc05bab',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/search/typedefs_b.html b/docs/docs/search/typedefs_b.html deleted file mode 100644 index 566bbec..0000000 --- a/docs/docs/search/typedefs_b.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/typedefs_b.js b/docs/docs/search/typedefs_b.js deleted file mode 100644 index 293c368..0000000 --- a/docs/docs/search/typedefs_b.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['selectinputcallback_425',['SelectInputCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a2f7a91a480cd401f4df2f7ddda4a8f13',1,'SINRICPRO_2_9_17']]], - ['setbandscallback_426',['SetBandsCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#aaabec5dea3546d52e744a4b0b90c02f4',1,'SINRICPRO_2_9_17']]], - ['setpercentagecallback_427',['SetPercentageCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a3ab0c4ff332f49884fe6a75cb2a293c2',1,'SINRICPRO_2_9_17']]], - ['setpowerlevelcallback_428',['SetPowerLevelCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a5be6c20c0ba9e9b19bd76d42918451b2',1,'SINRICPRO_2_9_17']]], - ['settargettemperaturecallback_429',['SetTargetTemperatureCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a64ecf52eb927d219b3acabf01ad0d31f',1,'SINRICPRO_2_9_17']]], - ['setvolumecallback_430',['SetVolumeCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a5744ad6a31085c216c2193b0f2d86673',1,'SINRICPRO_2_9_17']]], - ['skipchannelscallback_431',['SkipChannelsCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a434616b976d1339be63540d16977fa3d',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/search/typedefs_c.html b/docs/docs/search/typedefs_c.html deleted file mode 100644 index 974c71a..0000000 --- a/docs/docs/search/typedefs_c.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/docs/search/typedefs_c.js b/docs/docs/search/typedefs_c.js deleted file mode 100644 index 1525e9d..0000000 --- a/docs/docs/search/typedefs_c.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['thermostatmodecallback_432',['ThermostatModeCallback',['../namespace_s_i_n_r_i_c_p_r_o__2__9__17.html#a6cb473352a45a2ae76a46a4292c95a8c',1,'SINRICPRO_2_9_17']]] -]; diff --git a/docs/docs/splitbar.png b/docs/docs/splitbar.png deleted file mode 100644 index fe895f2c58179b471a22d8320b39a4bd7312ec8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf(#6djGiuzAr*{o?=JLmPLyc> z_*`QK&+BH@jWrYJ7>r6%keRM@)Qyv8R=enp0jiI>aWlGyB58O zFVR20d+y`K7vDw(hJF3;>dD*3-?v=<8M)@x|EEGLnJsniYK!2U1 Y!`|5biEc?d1`HDhPgg&ebxsLQ02F6;9RL6T diff --git a/docs/docs/sync_off.png b/docs/docs/sync_off.png deleted file mode 100644 index 3b443fc62892114406e3d399421b2a881b897acc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 853 zcmV-b1FHOqP)oT|#XixUYy%lpuf3i8{fX!o zUyDD0jOrAiT^tq>fLSOOABs-#u{dV^F$b{L9&!2=9&RmV;;8s^x&UqB$PCj4FdKbh zoB1WTskPUPu05XzFbA}=KZ-GP1fPpAfSs>6AHb12UlR%-i&uOlTpFNS7{jm@mkU1V zh`nrXr~+^lsV-s1dkZOaI|kYyVj3WBpPCY{n~yd%u%e+d=f%`N0FItMPtdgBb@py; zq@v6NVArhyTC7)ULw-Jy8y42S1~4n(3LkrW8mW(F-4oXUP3E`e#g**YyqI7h-J2zK zK{m9##m4ri!7N>CqQqCcnI3hqo1I;Yh&QLNY4T`*ptiQGozK>FF$!$+84Z`xwmeMh zJ0WT+OH$WYFALEaGj2_l+#DC3t7_S`vHpSivNeFbP6+r50cO8iu)`7i%Z4BTPh@_m3Tk!nAm^)5Bqnr%Ov|Baunj#&RPtRuK& z4RGz|D5HNrW83-#ydk}tVKJrNmyYt-sTxLGlJY5nc&Re zU4SgHNPx8~Yxwr$bsju?4q&%T1874xxzq+_%?h8_ofw~(bld=o3iC)LUNR*BY%c0y zWd_jX{Y8`l%z+ol1$@Qa?Cy!(0CVIEeYpKZ`(9{z>3$CIe;pJDQk$m3p}$>xBm4lb zKo{4S)`wdU9Ba9jJbVJ0C=SOefZe%d$8=2r={nu<_^a3~>c#t_U6dye5)JrR(_a^E f@}b6j1K9lwFJq@>o)+Ry00000NkvXXu0mjfWa5j* diff --git a/docs/docs/sync_on.png b/docs/docs/sync_on.png deleted file mode 100644 index e08320fb64e6fa33b573005ed6d8fe294e19db76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 845 zcmV-T1G4;yP)Y;xxyHF2B5Wzm| zOOGupOTn@c(JmBOl)e;XMNnZuiTJP>rM8<|Q`7I_))aP?*T)ow&n59{}X4$3Goat zgjs?*aasfbrokzG5cT4K=uG`E14xZl@z)F={P0Y^?$4t z>v!teRnNZym<6h{7sLyF1V0HsfEl+l6TrZpsfr1}luH~F7L}ktXu|*uVX^RG$L0`K zWs3j|0tIvVe(N%_?2{(iCPFGf#B6Hjy6o&}D$A%W%jfO8_W%ZO#-mh}EM$LMn7joJ z05dHr!5Y92g+31l<%i1(=L1a1pXX+OYnalY>31V4K}BjyRe3)9n#;-cCVRD_IG1fT zOKGeNY8q;TL@K{dj@D^scf&VCs*-Jb>8b>|`b*osv52-!A?BpbYtTQBns5EAU**$m zSnVSm(teh>tQi*S*A>#ySc=n;`BHz`DuG4&g4Kf8lLhca+zvZ7t7RflD6-i-mcK=M z!=^P$*u2)bkY5asG4gsss!Hn%u~>}kIW`vMs%lJLH+u*9<4PaV_c6U`KqWXQH%+Nu zTv41O(^ZVi@qhjQdG!fbZw&y+2o!iYymO^?ud3{P*HdoX83YV*Uu_HB=?U&W9%AU# z80}k1SS-CXTU7dcQlsm<^oYLxVSseqY6NO}dc`Nj?8vrhNuCdm@^{a3AQ_>6myOj+ z`1RsLUXF|dm|3k7s2jD(B{rzE>WI2scH8i1;=O5Cc9xB3^aJk%fQjqsu+kH#0=_5a z0nCE8@dbQa-|YIuUVvG0L_IwHMEhOj$Mj4Uq05 X8=0q~qBNan00000NkvXXu0mjfptF>5 diff --git a/docs/docs/tab_a.png b/docs/docs/tab_a.png deleted file mode 100644 index 3b725c41c5a527a3a3e40097077d0e206a681247..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QlXwMjv*C{Z|8b*H5dputLHD# z=<0|*y7z(Vor?d;H&?EG&cXR}?!j-Lm&u1OOI7AIF5&c)RFE;&p0MYK>*Kl@eiymD r@|NpwKX@^z+;{u_Z~trSBfrMKa%3`zocFjEXaR$#tDnm{r-UW|TZ1%4 diff --git a/docs/docs/tab_b.png b/docs/docs/tab_b.png deleted file mode 100644 index e2b4a8638cb3496a016eaed9e16ffc12846dea18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QU#tajv*C{Z}0l@H7kg?K0Lnr z!j&C6_(~HV9oQ0Pa6x{-v0AGV_E?vLn=ZI-;YrdjIl`U`uzuDWSP?o#Dmo{%SgM#oan kX~E1%D-|#H#QbHoIja2U-MgvsK&LQxy85}Sb4q9e0Efg%P5=M^ diff --git a/docs/docs/tabs.css b/docs/docs/tabs.css deleted file mode 100644 index 85a0cd5..0000000 --- a/docs/docs/tabs.css +++ /dev/null @@ -1 +0,0 @@ -.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 7f871ec..939e157 100644 --- a/docs/index.html +++ b/docs/index.html @@ -130,7 +130,7 @@


    Full user documentation

    -

    Please see here for full user documentation

    +

    Please see here for full user documentation


    Examples

    diff --git a/documentation.dox b/documentation.dox index 98efa6a..c0ecb1b 100644 --- a/documentation.dox +++ b/documentation.dox @@ -7,10 +7,4 @@ * * @defgroup Capabilities Capabilities * @brief Capabilities - * - * @defgroup Callbacks Callbacks - * @brief Callbacks - * - * @defgroup Override Override - * @brief overrides of request handler **/