SinricPro Library
SinricProTV

Device to control a TV. More...

Inheritance diagram for SinricProTV:

Public Types

using PowerStateCallback = std::function< bool(const String &, bool &)>
 Callback definition for onPowerState 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...
 
using MuteCallback = std::function< bool(const String &, bool &)>
 Callback definition for onMute function. More...
 
using MediaControlCallback = std::function< bool(const String &, String &)>
 Callback definition for onMediaControl function. More...
 
using SelectInputCallback = std::function< bool(const String &, String &)>
 Callback definition for onSelectInput 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...
 

Public Member Functions

void onPowerState (PowerStateCallback cb)
 Set callback function for powerState request. More...
 
bool sendPowerStateEvent (bool state, String cause="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="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="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="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="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="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 Typedef Documentation

◆ AdjustVolumeCallback

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

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
}
void onAdjustVolume(AdjustVolumeCallback cb)
Set callback function for adjustVolume request.
Definition: VolumeController.h:78

◆ ChangeChannelCallback

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

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;
}
void onChangeChannel(ChangeChannelCallback cb)
Set callback function for changeChannel request.
Definition: ChannelController.h:85

◆ ChangeChannelNumberCallback

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

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;
}
void onChangeChannelNumber(ChangeChannelNumberCallback cb)
Set callback function for changeChannel request.
Definition: ChannelController.h:97

◆ MediaControlCallback

using MediaControlCallback = std::function<bool(const String &, String &)>
inherited

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
}
void onMediaControl(MediaControlCallback cb)
Set callback function for mediaControl request.
Definition: MediaController.h:48

◆ MuteCallback

using MuteCallback = std::function<bool(const String &, bool &)>
inherited

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
}
void onMute(MuteCallback cb)
Set callback function for setMute request.
Definition: MuteController.h:47

◆ PowerStateCallback

using PowerStateCallback = std::function<bool(const String &, bool &)>
inherited

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
}
void onPowerState(PowerStateCallback cb)
Set callback function for powerState request.
Definition: PowerStateController.h:47

◆ SelectInputCallback

using SelectInputCallback = std::function<bool(const String &, String &)>
inherited

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;
}
void onSelectInput(SelectInputCallback cb)
Set callback function for selectInput request.
Definition: InputController.h:48

◆ SetVolumeCallback

using SetVolumeCallback = std::function<bool(const String &, int &)>
inherited

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
}
void onSetVolume(SetVolumeCallback cb)
Set callback function for setVolume request.
Definition: VolumeController.h:68

◆ SkipChannelsCallback

using SkipChannelsCallback = std::function<bool(const String &, int, String &)>
inherited

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;
}
void onSkipChannels(SkipChannelsCallback cb)
Set callback function for skipChannels request.
Definition: ChannelController.h:109

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 = "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 = "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 = "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 = "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

◆ sendSelectInputEvent()

bool sendSelectInputEvent ( String  input,
String  cause = "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 = "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