libUPnP 1.8.4
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 <stdio.h>
48#include <signal.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
145typedef int (*upnp_action)(
147 IXML_Document *request,
149 IXML_Document **out,
151 const char **errorString);
152
154struct TvService {
156 char UDN[NAME_SIZE];
158 char ServiceId[NAME_SIZE];
160 char ServiceType[NAME_SIZE];
171};
172
174extern struct TvService tv_service_table[];
175
178
183extern ithread_mutex_t TVDevMutex;
184
193 int serviceType,
195 struct TvService *out);
196
207 char *DescDocURL);
208
217 const UpnpSubscriptionRequest *sr_event);
218
227 UpnpStateVarRequest *cgv_event);
228
237 UpnpActionRequest *ca_event);
238
252 Upnp_EventType,
254 const void *Event,
256 void *Cookie);
257
268 unsigned int service,
272 int variable,
274 char *value);
275
276/* Control Service Actions */
277
283 IXML_Document *in,
285 IXML_Document **out,
287 const char **errorString);
288
294 IXML_Document *in,
296 IXML_Document **out,
298 const char **errorString);
299
307 IXML_Document *in,
309 IXML_Document **out,
311 const char **errorString);
312
318 IXML_Document *in,
320 IXML_Document **out,
322 const char **errorString);
323
329 IXML_Document *in,
331 IXML_Document **out,
333 const char **errorString);
334
342 IXML_Document *in,
344 IXML_Document **out,
346 const char **errorString);
347
353 IXML_Document *in,
355 IXML_Document **out,
357 const char **errorString);
358
364 IXML_Document *in,
366 IXML_Document **out,
368 const char **errorString);
369
370/*Picture Service Actions */
371
379 IXML_Document *in,
381 IXML_Document **out,
383 const char **errorString);
384
390 IXML_Document *in,
392 IXML_Document **out,
394 const char **errorString);
395
401 IXML_Document *in,
403 IXML_Document **out,
405 const char **errorString);
406
414 IXML_Document *in,
416 IXML_Document **out,
418 const char **errorString);
419
425 IXML_Document *in,
427 IXML_Document **out,
429 const char **errorString);
430
436 IXML_Document *in,
438 IXML_Document **out,
440 const char **errorString);
441
449 IXML_Document *in,
451 IXML_Document **out,
453 const char **errorString);
454
460 IXML_Document *in,
462 IXML_Document **out,
464 const char **errorString);
465
471 IXML_Document *in,
473 IXML_Document **out,
475 const char **errorString);
476
484 IXML_Document *in,
486 IXML_Document **out,
488 const char **errorString);
489
495 IXML_Document *in,
497 IXML_Document **out,
499 const char **errorString);
500
506 IXML_Document *in,
508 IXML_Document **out,
510 const char **errorString);
511
516int TvDeviceStart(
519 char *ip_address,
522 unsigned short port,
525 const char *desc_doc_name,
528 const char *web_dir_path,
530 print_string pfun,
532 int combo);
533
537int TvDeviceStop(void);
538
545void *TvDeviceCommandLoop(void *args);
546
561int device_main(int argc, char *argv[]);
562
563#ifdef __cplusplus
564}
565#endif
566
571#endif /* UPNP_TV_DEVICE_H */
int UpnpDevice_Handle
Returned when a device application registers with UpnpRegisterRootDevice, UpnpRegisterRootDevice2,...
Definition: upnp.h:436
int TvDeviceDecreaseVolume(IXML_Document *in, IXML_Document **out, const char **errorString)
Decrease the volume.
Definition: tv_device.c:779
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
#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:575
int TvDeviceIncreaseTint(IXML_Document *in, IXML_Document **out, const char **errorString)
Increase tint.
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...
int TvDeviceDecreaseContrast(IXML_Document *in, IXML_Document **out, const char **errorString)
Decrease the contrast.
Definition: tv_device.c:1149
int TvDeviceDecreaseColor(IXML_Document *in, IXML_Document **out, const char **errorString)
Decrease the color.
Definition: tv_device.c:880
int TvDeviceDecreaseTint(IXML_Document *in, IXML_Document **out, const char **errorString)
Decrease tint.
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 TvDevicePowerOff(IXML_Document *in, IXML_Document **out, const char **errorString)
Turn the power off.
Definition: tv_device.c:553
int TvDeviceHandleGetVarRequest(UpnpStateVarRequest *cgv_event)
Called during a get variable request callback.
Definition: tv_device.c:348
int TvDevicePowerOn(IXML_Document *in, IXML_Document **out, const char **errorString)
Turn the power on.
Definition: tv_device.c:530
#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:164
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 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
int TvDeviceDecreaseBrightness(IXML_Document *in, IXML_Document **out, const char **errorString)
Decrease brightnesss.
Definition: tv_device.c:1259
int TvDeviceIncreaseVolume(IXML_Document *in, IXML_Document **out, const char **errorString)
Increase the volume.
Definition: tv_device.c:773
int device_main(int argc, char *argv[])
Main entry point for tv device application.
Definition: tv_device.c:1418
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 TvDeviceHandleSubscriptionRequest(const UpnpSubscriptionRequest *sr_event)
Called during a subscription request callback.
Definition: tv_device.c:291
struct TvService tv_service_table[]
Definition: tv_device.c:70
int TvDeviceIncreaseChannel(IXML_Document *in, IXML_Document **out, const char **errorString)
Increase the channel.
Definition: tv_device.c:670
int TvDeviceIncreaseContrast(IXML_Document *in, IXML_Document **out, const char **errorString)
Increase the contrast.
Definition: tv_device.c:1143
UpnpDevice_Handle device_handle
Definition: tv_device.c:73
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
ithread_mutex_t TVDevMutex
Definition: tv_device.c:79
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
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:1388
int TvDeviceDecreaseChannel(IXML_Document *in, IXML_Document **out, const char **errorString)
Decrease the channel.
Definition: tv_device.c:664
int TvDeviceIncreaseBrightness(IXML_Document *in, IXML_Document **out, const char **errorString)
Increase brightnesss.
Definition: tv_device.c:1253
int TvDeviceStop(void)
Stops the device. Uninitializes the sdk.
Definition: tv_device.c:1378
int TvDeviceIncreaseColor(IXML_Document *in, IXML_Document **out, const char **errorString)
Increase the color.
Definition: tv_device.c:886
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
int TvDeviceStateTableInit(char *DescDocURL)
Initialize the device state table for this TvDevice, pulling identifier info from the description Doc...
Definition: tv_device.c:219
int TvDeviceHandleActionRequest(UpnpActionRequest *ca_event)
Called during an action request callback.
Definition: tv_device.c:395
Definition: tv_device.h:154
int VariableCount
Definition: tv_device.h:170
char UDN[NAME_SIZE]
Definition: tv_device.h:156
upnp_action actions[12]
Definition: tv_device.h:168
const char * VariableName[4]
Definition: tv_device.h:162
char * VariableStrVal[4]
Definition: tv_device.h:164
char ServiceType[NAME_SIZE]
Definition: tv_device.h:160
const char * ActionNames[12]
Definition: tv_device.h:166
char ServiceId[NAME_SIZE]
Definition: tv_device.h:158
Data structure representing the DOM Document.
Definition: ixml.h:198