libUPnP 1.14.19
tv_device.h
Go to the documentation of this file.
1#ifndef UPNP_TV_DEVICE_H
2#define UPNP_TV_DEVICE_H
3
4/**************************************************************************
5 *
6 * Copyright (c) 2000-2003 Intel Corporation
7 * All rights reserved.
8 *
9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions are met:
11 *
12 * - Redistributions of source code must retain the above copyright notice,
13 * this list of conditions and the following disclaimer.
14 * - Redistributions in binary form must reproduce the above copyright notice,
15 * this list of conditions and the following disclaimer in the documentation
16 * and/or other materials provided with the distribution.
17 * - Neither name of Intel Corporation nor the names of its contributors
18 * may be used to endorse or promote products derived from this software
19 * without specific prior written permission.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR
25 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
26 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
27 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
28 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
29 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
30 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
31 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 *
33 **************************************************************************/
34
47#include <signal.h>
48#include <stdio.h>
49
50#ifdef __cplusplus
51extern "C" {
52#endif
53
54#include "sample_util.h"
55
56#include "ithread.h"
57#include "upnp.h"
58
59#include <stdlib.h>
60#include <string.h>
61
63#define MAX_COLOR 10
64#define MIN_COLOR 1
65
67#define MAX_BRIGHTNESS 10
68#define MIN_BRIGHTNESS 1
69
71#define POWER_ON 1
72#define POWER_OFF 0
73
75#define MAX_TINT 10
76#define MIN_TINT 1
77
79#define MAX_VOLUME 10
80#define MIN_VOLUME 1
81
83#define MAX_CONTRAST 10
84#define MIN_CONTRAST 1
85
87#define MAX_CHANNEL 100
88#define MIN_CHANNEL 1
89
91#define TV_SERVICE_SERVCOUNT 2
92
94#define TV_SERVICE_CONTROL 0
95
97#define TV_SERVICE_PICTURE 1
98
100#define TV_CONTROL_VARCOUNT 3
101
103#define TV_CONTROL_POWER 0
104
106#define TV_CONTROL_CHANNEL 1
107
109#define TV_CONTROL_VOLUME 2
110
112#define TV_PICTURE_VARCOUNT 4
113
115#define TV_PICTURE_COLOR 0
116
118#define TV_PICTURE_TINT 1
119
121#define TV_PICTURE_CONTRAST 2
122
124#define TV_PICTURE_BRIGHTNESS 3
125
127#define TV_MAX_VAL_LEN 5
128
130#define TV_MAXACTIONS 12
131
133#define TV_MAXVARS TV_PICTURE_VARCOUNT
134
135#define IP_MODE_IPV4 1
136#define IP_MODE_IPV6_LLA 2
137#define IP_MODE_IPV6_ULA_GUA 3
138
149typedef int (*upnp_action)(
151 IXML_Document *request,
153 IXML_Document **out,
155 const char **errorString);
156
159{
161 char UDN[NAME_SIZE];
163 char ServiceId[NAME_SIZE];
165 char ServiceType[NAME_SIZE];
176};
177
179extern struct TvService tv_service_table[];
180
183
188extern ithread_mutex_t TVDevMutex;
189
198 int serviceType,
200 struct TvService *out);
201
212 char *DescDocURL);
213
222 const UpnpSubscriptionRequest *sr_event);
223
232 UpnpStateVarRequest *cgv_event);
233
242 UpnpActionRequest *ca_event);
243
257 Upnp_EventType,
259 const void *Event,
261 void *Cookie);
262
274 unsigned int service,
278 int variable,
280 char *value);
281
282/* Control Service Actions */
283
289 IXML_Document *in,
291 IXML_Document **out,
293 const char **errorString);
294
300 IXML_Document *in,
302 IXML_Document **out,
304 const char **errorString);
305
313 IXML_Document *in,
315 IXML_Document **out,
317 const char **errorString);
318
324 IXML_Document *in,
326 IXML_Document **out,
328 const char **errorString);
329
335 IXML_Document *in,
337 IXML_Document **out,
339 const char **errorString);
340
348 IXML_Document *in,
350 IXML_Document **out,
352 const char **errorString);
353
359 IXML_Document *in,
361 IXML_Document **out,
363 const char **errorString);
364
370 IXML_Document *in,
372 IXML_Document **out,
374 const char **errorString);
375
376/*Picture Service Actions */
377
385 IXML_Document *in,
387 IXML_Document **out,
389 const char **errorString);
390
396 IXML_Document *in,
398 IXML_Document **out,
400 const char **errorString);
401
407 IXML_Document *in,
409 IXML_Document **out,
411 const char **errorString);
412
420 IXML_Document *in,
422 IXML_Document **out,
424 const char **errorString);
425
431 IXML_Document *in,
433 IXML_Document **out,
435 const char **errorString);
436
442 IXML_Document *in,
444 IXML_Document **out,
446 const char **errorString);
447
455 IXML_Document *in,
457 IXML_Document **out,
459 const char **errorString);
460
466 IXML_Document *in,
468 IXML_Document **out,
470 const char **errorString);
471
477 IXML_Document *in,
479 IXML_Document **out,
481 const char **errorString);
482
490 IXML_Document *in,
492 IXML_Document **out,
494 const char **errorString);
495
501 IXML_Document *in,
503 IXML_Document **out,
505 const char **errorString);
506
512 IXML_Document *in,
514 IXML_Document **out,
516 const char **errorString);
517
522int TvDeviceStart(
525 char *iface,
528 unsigned short port,
531 const char *desc_doc_name,
534 const char *web_dir_path,
537 int ip_mode,
539 print_string pfun,
541 int combo);
542
546int TvDeviceStop(void);
547
554void *TvDeviceCommandLoop(void *args);
555
570int device_main(int argc, char *argv[]);
571
572#ifdef __cplusplus
573}
574#endif
575
580#endif /* UPNP_TV_DEVICE_H */
int UpnpDevice_Handle
Returned when a device application registers with UpnpRegisterRootDevice, UpnpRegisterRootDevice2,...
Definition upnp.h:439
int TvDeviceDecreaseVolume(IXML_Document *in, IXML_Document **out, const char **errorString)
Decrease the volume.
Definition tv_device.c:835
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:1240
#define TV_MAXACTIONS
Definition tv_device.h:130
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:619
int TvDeviceDecreaseContrast(IXML_Document *in, IXML_Document **out, const char **errorString)
Decrease the contrast.
Definition tv_device.c:1234
int TvDeviceDecreaseColor(IXML_Document *in, IXML_Document **out, const char **errorString)
Decrease the color.
Definition tv_device.c:946
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:1359
int TvDevicePowerOff(IXML_Document *in, IXML_Document **out, const char **errorString)
Turn the power off.
Definition tv_device.c:594
int TvDeviceHandleGetVarRequest(UpnpStateVarRequest *cgv_event)
Called during a get variable request callback.
Definition tv_device.c:364
int TvDevicePowerOn(IXML_Document *in, IXML_Document **out, const char **errorString)
Turn the power on.
Definition tv_device.c:568
#define TV_MAXVARS
Definition tv_device.h:133
int SetActionTable(int serviceType, struct TvService *out)
Initializes the action table for the specified service.
Definition tv_device.c:171
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:841
int TvDeviceDecreaseBrightness(IXML_Document *in, IXML_Document **out, const char **errorString)
Decrease brightnesss.
Definition tv_device.c:1353
int TvDeviceIncreaseVolume(IXML_Document *in, IXML_Document **out, const char **errorString)
Increase the volume.
Definition tv_device.c:829
int device_main(int argc, char *argv[])
Main entry point for tv device application.
Definition tv_device.c:1569
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:149
int TvDeviceHandleSubscriptionRequest(const UpnpSubscriptionRequest *sr_event)
Called during a subscription request callback.
Definition tv_device.c:308
struct TvService tv_service_table[]
Definition tv_device.c:75
int TvDeviceIncreaseChannel(IXML_Document *in, IXML_Document **out, const char **errorString)
Increase the channel.
Definition tv_device.c:717
int TvDeviceIncreaseContrast(IXML_Document *in, IXML_Document **out, const char **errorString)
Increase the contrast.
Definition tv_device.c:1228
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...
Definition tv_device.c:1121
UpnpDevice_Handle device_handle
Definition tv_device.c:78
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:958
ithread_mutex_t TVDevMutex
Definition tv_device.c:84
int TvDeviceStart(char *iface, unsigned short port, const char *desc_doc_name, const char *web_dir_path, int ip_mode, print_string pfun, int combo)
Initializes the UPnP Sdk, registers the device, and sends out advertisements.
Definition tv_device.c:1397
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:507
int TvDeviceDecreaseTint(IXML_Document *in, IXML_Document **out, const char **errorString)
Decrease tint.
Definition tv_device.c:1100
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
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:1535
int TvDeviceDecreaseChannel(IXML_Document *in, IXML_Document **out, const char **errorString)
Decrease the channel.
Definition tv_device.c:711
int TvDeviceIncreaseTint(IXML_Document *in, IXML_Document **out, const char **errorString)
Increase tint.
Definition tv_device.c:1081
int TvDeviceIncreaseBrightness(IXML_Document *in, IXML_Document **out, const char **errorString)
Increase brightnesss.
Definition tv_device.c:1347
int TvDeviceStop(void)
Stops the device. Uninitializes the sdk.
Definition tv_device.c:1525
int TvDeviceIncreaseColor(IXML_Document *in, IXML_Document **out, const char **errorString)
Increase the color.
Definition tv_device.c:952
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:723
int TvDeviceStateTableInit(char *DescDocURL)
Initialize the device state table for this TvDevice, pulling identifier info from the description Doc...
Definition tv_device.c:226
int TvDeviceHandleActionRequest(UpnpActionRequest *ca_event)
Called during an action request callback.
Definition tv_device.c:420
Definition tv_device.h:159
int VariableCount
Definition tv_device.h:175
char UDN[NAME_SIZE]
Definition tv_device.h:161
upnp_action actions[12]
Definition tv_device.h:173
const char * VariableName[4]
Definition tv_device.h:167
char * VariableStrVal[4]
Definition tv_device.h:169
char ServiceType[NAME_SIZE]
Definition tv_device.h:165
const char * ActionNames[12]
Definition tv_device.h:171
char ServiceId[NAME_SIZE]
Definition tv_device.h:163
Data structure representing the DOM Document.
Definition ixml.h:160
Definition UpnpActionRequest.c:19
Definition UpnpStateVarRequest.c:19
Definition UpnpSubscriptionRequest.c:19