Go to the documentation of this file. 1 #ifndef UPNP_TV_DEVICE_H
2 #define UPNP_TV_DEVICE_H
67 #define MAX_BRIGHTNESS 10
68 #define MIN_BRIGHTNESS 1
83 #define MAX_CONTRAST 10
84 #define MIN_CONTRAST 1
87 #define MAX_CHANNEL 100
91 #define TV_SERVICE_SERVCOUNT 2
94 #define TV_SERVICE_CONTROL 0
97 #define TV_SERVICE_PICTURE 1
100 #define TV_CONTROL_VARCOUNT 3
103 #define TV_CONTROL_POWER 0
106 #define TV_CONTROL_CHANNEL 1
109 #define TV_CONTROL_VOLUME 2
112 #define TV_PICTURE_VARCOUNT 4
115 #define TV_PICTURE_COLOR 0
118 #define TV_PICTURE_TINT 1
121 #define TV_PICTURE_CONTRAST 2
124 #define TV_PICTURE_BRIGHTNESS 3
127 #define TV_MAX_VAL_LEN 5
130 #define TV_MAXACTIONS 12
133 #define TV_MAXVARS TV_PICTURE_VARCOUNT
151 const char **errorString);
217 const UpnpSubscriptionRequest *sr_event);
227 UpnpStateVarRequest *cgv_event);
237 UpnpActionRequest *ca_event);
268 unsigned int service,
287 const char **errorString);
298 const char **errorString);
311 const char **errorString);
322 const char **errorString);
333 const char **errorString);
346 const char **errorString);
357 const char **errorString);
368 const char **errorString);
383 const char **errorString);
394 const char **errorString);
405 const char **errorString);
418 const char **errorString);
429 const char **errorString);
440 const char **errorString);
453 const char **errorString);
464 const char **errorString);
475 const char **errorString);
488 const char **errorString);
499 const char **errorString);
510 const char **errorString);
525 const char *desc_doc_name,
528 const char *web_dir_path,
@ UPNP_DISCOVERY_SEARCH_RESULT
Definition: Callback.h:63
@ UPNP_EVENT_SUBSCRIPTION_REQUEST
Definition: Callback.h:83
static int IncrementBrightness(int incr, IXML_Document *in, IXML_Document **out, const char **errorString)
Increment the brightness. Read the current brightness from the state table, add the increment,...
Definition: tv_device.c:1199
@ UPNP_CONTROL_ACTION_REQUEST
Definition: Callback.h:25
int UpnpRegisterRootDevice(const char *DescUrl, Upnp_FunPtr Callback, const void *Cookie, UpnpDevice_Handle *Hnd)
Registers a device application with the UPnP Library.
Definition: upnpapi.c:763
#define TV_MAXVARS
Definition: tv_device.h:133
int SampleUtil_PrintEvent(Upnp_EventType EventType, const void *Event)
Prints callback event structure details.
Definition: sample_util.c:317
int UpnpAcceptSubscription(UpnpDevice_Handle Hnd, const char *DevID, const char *ServID, const char **VarName, const char **NewVal, int cVariables, const Upnp_SID SubsId)
Accepts a subscription request and sends out the current state of the eventable variables for a servi...
Definition: upnpapi.c:2380
struct TvService tv_service_table[]
Definition: tv_device.c:70
char * SampleUtil_GetFirstDocumentItem(IXML_Document *doc, const char *item)
Given a document node, this routine searches for the first element named by the input string item,...
Definition: sample_util.c:192
const char * ActionNames[12]
Definition: tv_device.h:166
int UpnpDownloadXmlDoc(const char *url, IXML_Document **xmlDoc)
Downloads an XML document specified in a URL.
Definition: upnpapi.c:3190
int TvDeviceIncreaseTint(IXML_Document *in, IXML_Document **out, const char **errorString)
Increase tint.
@ UPNP_CONTROL_GET_VAR_REQUEST
Definition: Callback.h:36
int UpnpAcceptSubscriptionExt(UpnpDevice_Handle Hnd, const char *DevID, const char *ServID, IXML_Document *PropSet, const Upnp_SID SubsId)
Similar to UpnpAcceptSubscription() except that it takes a DOM document for the variables to event ra...
Definition: upnpapi.c:2459
int TvDeviceDecreaseTint(IXML_Document *in, IXML_Document **out, const char **errorString)
Decrease tint.
@ UPNP_EVENT_RENEWAL_COMPLETE
Definition: Callback.h:93
#define UPNP_E_INVALID_PARAM
One or more of the parameters passed to the function is not valid.
Definition: upnp.h:110
void(* print_string)(const char *string,...)
Prototype for displaying strings. All printing done by the device, control point, and sample util,...
Definition: sample_util.h:162
static int SetServiceTable(int serviceType, const char *UDN, const char *serviceId, const char *serviceTypeS, struct TvService *out)
Initializes the service table for the specified service.
Definition: tv_device.c:112
@ UPNP_EVENT_UNSUBSCRIBE_COMPLETE
Definition: Callback.h:103
const char * tvc_varname[]
Definition: tv_device.c:54
int TvDeviceCallbackEventHandler(Upnp_EventType EventType, const void *Event, void *Cookie)
The callback handler registered with the SDK while registering root device.
Definition: tv_device.c:1265
int TvDeviceIncreaseChannel(IXML_Document *in, IXML_Document **out, const char **errorString)
Increase the channel.
Definition: tv_device.c:670
#define MAX_CHANNEL
Definition: tv_device.c:106
Data structure representing the DOM Document.
Definition: ixml.h:198
int TvDeviceHandleSubscriptionRequest(const UpnpSubscriptionRequest *sr_event)
Called during a subscription request callback.
Definition: tv_device.c:291
char * VariableStrVal[4]
Definition: tv_device.h:164
int SampleUtil_Initialize(print_string print_function)
Initializes the sample util. Must be called before any sample util functions. May be called multiple ...
Definition: sample_util.c:62
unsigned short UpnpGetServerPort(void)
Returns the internal server IPv4 UPnP listening port.
Definition: upnpapi.c:659
#define TV_SERVICE_SERVCOUNT
Definition: tv_device.h:91
int TvDeviceStart(char *ip_address, unsigned short port, const char *desc_doc_name, const char *web_dir_path, print_string pfun, int combo)
Initializes the UPnP Sdk, registers the device, and sends out advertisements.
Definition: tv_device.c:1301
int TvDeviceSetContrast(IXML_Document *in, IXML_Document **out, const char **errorString)
Change the contrast, update the TvDevice picture service state table, and notify all subscribed contr...
#define MAX_VOLUME
Definition: tv_device.c:98
int TvDeviceStateTableInit(char *DescDocURL)
Initialize the device state table for this TvDevice, pulling identifier info from the description Doc...
Definition: tv_device.c:219
static int IncrementContrast(int incr, IXML_Document *in, IXML_Document **out, const char **errorString)
Increment the contrast. Read the current contrast from the state table, add the increment,...
Definition: tv_device.c:1089
int TvDeviceIncreaseContrast(IXML_Document *in, IXML_Document **out, const char **errorString)
Increase the contrast.
Definition: tv_device.c:1143
#define TV_CONTROL_VARCOUNT
Definition: tv_device.h:100
#define TV_CONTROL_POWER
Definition: tv_device.h:103
static int IncrementVolume(int incr, IXML_Document *in, IXML_Document **out, const char **errorString)
Increment the volume. Read the current volume from the state table, add the increment,...
Definition: tv_device.c:719
@ UPNP_DISCOVERY_SEARCH_TIMEOUT
Definition: Callback.h:68
upnp_action actions[12]
Definition: tv_device.h:168
#define TV_PICTURE_CONTRAST
Definition: tv_device.h:121
int UpnpInit2(const char *IfName, unsigned short DestPort)
Initializes the Linux SDK for UPnP Devices (IPv4 or IPv6).
Definition: upnpapi.c:460
#define UPNP_E_SUCCESS
The operation completed successfully.
Definition: upnp.h:97
#define POWER_ON
Definition: tv_device.c:90
int UpnpUnRegisterRootDevice(UpnpDevice_Handle Hnd)
Unregisters a root device registered with UpnpRegisterRootDevice, UpnpRegisterRootDevice2,...
Definition: upnpapi.c:1226
int TvDeviceDecreaseChannel(IXML_Document *in, IXML_Document **out, const char **errorString)
Decrease the channel.
Definition: tv_device.c:664
@ UPNP_EVENT_RECEIVED
Definition: Callback.h:88
int TvDeviceIncreaseVolume(IXML_Document *in, IXML_Document **out, const char **errorString)
Increase the volume.
Definition: tv_device.c:773
const char * tvp_varname[]
Definition: tv_device.c:61
@ UPNP_CONTROL_GET_VAR_COMPLETE
Definition: Callback.h:41
int TvDeviceSetTint(IXML_Document *in, IXML_Document **out, const char **errorString)
Change the tint, update the TvDevice picture service state table, and notify all subscribed control p...
Definition: tv_device.c:892
int TvDevicePowerOn(IXML_Document *in, IXML_Document **out, const char **errorString)
Turn the power on.
Definition: tv_device.c:530
int TvDeviceDecreaseBrightness(IXML_Document *in, IXML_Document **out, const char **errorString)
Decrease brightnesss.
Definition: tv_device.c:1259
EXPORT_SPEC void ixmlDocument_free(IXML_Document *doc)
Frees a Document object and all Nodes associated with it.
Definition: document.c:54
#define TV_CONTROL_CHANNEL
Definition: tv_device.h:106
int TvDeviceDecreaseVolume(IXML_Document *in, IXML_Document **out, const char **errorString)
Decrease the volume.
Definition: tv_device.c:779
int TvDeviceHandleActionRequest(UpnpActionRequest *ca_event)
Called during an action request callback.
Definition: tv_device.c:395
#define TV_CONTROL_VOLUME
Definition: tv_device.h:109
int VariableCount
Definition: tv_device.h:170
@ UPNP_DISCOVERY_ADVERTISEMENT_BYEBYE
Definition: Callback.h:57
char ServiceType[NAME_SIZE]
Definition: tv_device.h:160
int TvDeviceSetColor(IXML_Document *in, IXML_Document **out, const char **errorString)
Change the color, update the TvDevice picture service state table, and notify all subscribed control ...
Definition: tv_device.c:785
struct TvService tv_service_table[2]
Definition: tv_device.c:70
const char * UpnpString_get_String(const UpnpString *p)
Returns the pointer to char.
Definition: UpnpString.c:159
int default_advr_expire
Definition: tv_device.c:67
#define TV_SERVICE_PICTURE
Definition: tv_device.h:97
const char * VariableName[4]
Definition: tv_device.h:162
int UpnpNotify(UpnpDevice_Handle, const char *DevID, const char *ServID, const char **VarName, const char **NewVal, int cVariables)
Sends out an event change notification to all control points subscribed to a particular service.
Definition: upnpapi.c:2279
int TvDeviceSetBrightness(IXML_Document *in, IXML_Document **out, const char **errorString)
Change the brightness, update the TvDevice picture service state table, and notify all subscribed con...
Definition: tv_device.c:1155
int TvDeviceStop(void)
Stops the device. Uninitializes the sdk.
Definition: tv_device.c:1378
#define TV_PICTURE_BRIGHTNESS
Definition: tv_device.h:124
#define UPNP_E_INVALID_DESC
The description document passed to UpnpRegisterRootDevice, UpnpRegisterRootDevice2 UpnpRegisterRootDe...
Definition: upnp.h:143
#define TV_PICTURE_COLOR
Definition: tv_device.h:115
int SampleUtil_Print(const char *fmt,...)
Function emulating printf that ultimately calls the registered print function with the formatted stri...
Definition: sample_util.c:634
void linux_print(const char *format,...)
Prints a string to standard out.
Definition: sample_util.c:666
int TvDeviceSetChannel(IXML_Document *in, IXML_Document **out, const char **errorString)
Change the channel, update the TvDevice control service state table, and notify all subscribed contro...
Definition: tv_device.c:575
int UpnpSendAdvertisement(UpnpDevice_Handle Hnd, int Exp)
Sends out the discovery announcements for all devices and services for a device.
Definition: upnpapi.c:1638
int SampleUtil_FindAndParseService(IXML_Document *DescDoc, const char *location, const char *serviceType, char **serviceId, char **eventURL, char **controlURL)
This routine finds the first occurance of a service in a DOM representation of a description document...
Definition: sample_util.c:550
int(* upnp_action)(IXML_Document *request, IXML_Document **out, const char **errorString)
Prototype for all actions. For each action that a service implements, there is a corresponding functi...
Definition: tv_device.h:145
int UpnpDevice_Handle
Returned when a device application registers with UpnpRegisterRootDevice, UpnpRegisterRootDevice2,...
Definition: upnp.h:436
int SetActionTable(int serviceType, struct TvService *out)
Initializes the action table for the specified service.
Definition: tv_device.c:164
#define TV_MAXACTIONS
Definition: tv_device.h:130
char * UpnpGetServerIpAddress(void)
Returns the local IPv4 listening ip address.
Definition: upnpapi.c:679
char UDN[NAME_SIZE]
Definition: tv_device.h:156
int TvDeviceSetVolume(IXML_Document *in, IXML_Document **out, const char **errorString)
Change the volume, update the TvDevice control service state table, and notify all subscribed control...
Definition: tv_device.c:676
@ UPNP_EVENT_SUBSCRIBE_COMPLETE
Definition: Callback.h:98
char ServiceId[NAME_SIZE]
Definition: tv_device.h:158
@ UPNP_CONTROL_ACTION_COMPLETE
Definition: Callback.h:30
int device_main(int argc, char *argv[])
Main entry point for tv device application.
Definition: tv_device.c:1418
int UpnpNotifyExt(UpnpDevice_Handle, const char *DevID, const char *ServID, IXML_Document *PropSet)
Similar to UpnpNotify except that it takes a DOM document for the event rather than an array of strin...
Definition: upnpapi.c:2333
@ UPNP_DISCOVERY_ADVERTISEMENT_ALIVE
Definition: Callback.h:51
int TvDeviceHandleGetVarRequest(UpnpStateVarRequest *cgv_event)
Called during a get variable request callback.
Definition: tv_device.c:348
#define UPNP_E_INTERNAL_ERROR
Generic error code for internal conditions not covered by other error codes.
Definition: upnp.h:376
int TvDeviceIncreaseColor(IXML_Document *in, IXML_Document **out, const char **errorString)
Increase the color.
Definition: tv_device.c:886
#define TV_PICTURE_TINT
Definition: tv_device.h:118
#define MAX_CONTRAST
Definition: tv_device.c:102
int TvDevicePowerOff(IXML_Document *in, IXML_Document **out, const char **errorString)
Turn the power off.
Definition: tv_device.c:553
#define MAX_COLOR
Definition: tv_device.c:82
void * TvDeviceCommandLoop(void *args)
Function that receives commands from the user at the command prompt during the lifetime of the device...
Definition: tv_device.c:1388
int TvDeviceDecreaseColor(IXML_Document *in, IXML_Document **out, const char **errorString)
Decrease the color.
Definition: tv_device.c:880
int TvDeviceSetServiceTableVar(unsigned int service, int variable, char *value)
Update the TvDevice service state table, and notify all subscribed control points of the updated stat...
Definition: tv_device.c:472
#define TV_SERVICE_CONTROL
Definition: tv_device.h:94
int UpnpFinish(void)
Initializes the OpenSSL library, and the OpenSSL context for use with pupnp.
Definition: upnpapi.c:585
ithread_mutex_t TVDevMutex
Definition: tv_device.c:79
int UpnpSetWebServerRootDir(const char *rootDir)
Sets the document root directory for the internal web server.
int TvDeviceDecreaseContrast(IXML_Document *in, IXML_Document **out, const char **errorString)
Decrease the contrast.
Definition: tv_device.c:1149
int TvDeviceIncreaseBrightness(IXML_Document *in, IXML_Document **out, const char **errorString)
Increase brightnesss.
Definition: tv_device.c:1253
UpnpDevice_Handle device_handle
Definition: tv_device.c:73
static int TvDeviceSetPower(int on)
Turn the power on/off, update the TvDevice control service state table, and notify all subscribed con...
Definition: tv_device.c:509
#define MAX_TINT
Definition: tv_device.c:94
#define TV_PICTURE_VARCOUNT
Definition: tv_device.h:112
static int IncrementColor(int incr, IXML_Document *in, IXML_Document **out, const char **errorString)
Increment the color. Read the current color from the state table, add the increment,...
Definition: tv_device.c:828
#define TV_MAX_VAL_LEN
Definition: tv_device.h:127
#define MAX_BRIGHTNESS
Definition: tv_device.c:86
Definition: tv_device.h:154
int SampleUtil_Finish()
Releases Resources held by sample util.
Definition: sample_util.c:92