libUPnP 1.18.5
tv_ctrlpt.h
Go to the documentation of this file.
1#ifndef UPNP_TV_CTRLPT_H
2#define UPNP_TV_CTRLPT_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
46
47#ifdef __cplusplus
48extern "C" {
49#endif
50
51#include "sample_util.h"
52
53#include "upnp.h"
54
55#include <stdarg.h>
56
57#define TV_SERVICE_SERVCOUNT 2
58#define TV_SERVICE_CONTROL 0
59#define TV_SERVICE_PICTURE 1
60
61#define TV_CONTROL_VARCOUNT 3
62#define TV_CONTROL_POWER 0
63#define TV_CONTROL_CHANNEL 1
64#define TV_CONTROL_VOLUME 2
65
66#define TV_PICTURE_VARCOUNT 4
67#define TV_PICTURE_COLOR 0
68#define TV_PICTURE_TINT 1
69#define TV_PICTURE_CONTRAST 2
70#define TV_PICTURE_BRIGHTNESS 3
71
72#define TV_MAX_VAL_LEN 5
73
74#define TV_SUCCESS 0
75#define TV_ERROR (-1)
76#define TV_WARNING 1
77
78/* This should be the maximum VARCOUNT from above */
79#define TV_MAXVARS TV_PICTURE_VARCOUNT
80
81extern const char *TvServiceName[];
82extern const char *TvVarName[TV_SERVICE_SERVCOUNT][TV_MAXVARS];
83extern char TvVarCount[];
84
86{
87 char ServiceId[NAME_SIZE];
88 char ServiceType[NAME_SIZE];
89 char *VariableStrVal[TV_MAXVARS];
90 char EventURL[NAME_SIZE];
91 char ControlURL[NAME_SIZE];
92 char SID[NAME_SIZE];
93};
94
95extern struct TvDeviceNode *GlobalDeviceList;
96
98{
99 char UDN[250];
100 char DescDocURL[250];
101 char FriendlyName[250];
102 char PresURL[250];
103 int AdvrTimeOut;
104 struct tv_service TvService[TV_SERVICE_SERVCOUNT];
105};
106
108{
109 struct TvDevice device;
110 struct TvDeviceNode *next;
111};
112
113extern ithread_mutex_t DeviceListMutex;
114
115extern UpnpClient_Handle ctrlpt_handle;
116
117void TvCtrlPointPrintHelp(void);
118int TvCtrlPointDeleteNode(struct TvDeviceNode *);
119int TvCtrlPointRemoveDevice(const char *);
120int TvCtrlPointRemoveAll(void);
121int TvCtrlPointRefresh(void);
122
123int TvCtrlPointSendAction(int, int, const char *, const char **, char **, int);
124int TvCtrlPointSendActionNumericArg(int devnum,
125 int service,
126 const char *actionName,
127 const char *paramName,
128 int paramValue);
129int TvCtrlPointSendPowerOn(int devnum);
130int TvCtrlPointSendPowerOff(int devnum);
131int TvCtrlPointSendSetChannel(int, int);
132int TvCtrlPointSendSetVolume(int, int);
133int TvCtrlPointSendSetColor(int, int);
134int TvCtrlPointSendSetTint(int, int);
135int TvCtrlPointSendSetContrast(int, int);
136int TvCtrlPointSendSetBrightness(int, int);
137
138int TvCtrlPointGetVar(int, int, const char *);
139int TvCtrlPointGetPower(int devnum);
140int TvCtrlPointGetChannel(int);
141int TvCtrlPointGetVolume(int);
142int TvCtrlPointGetColor(int);
143int TvCtrlPointGetTint(int);
144int TvCtrlPointGetContrast(int);
145int TvCtrlPointGetBrightness(int);
146
147int TvCtrlPointGetDevice(int, struct TvDeviceNode **);
148int TvCtrlPointPrintList(void);
149int TvCtrlPointPrintDevice(int);
150void TvCtrlPointAddDevice(IXML_Document *, const char *, int);
151void TvCtrlPointHandleGetVar(const char *, const char *, const DOMString);
152
159void TvStateUpdate(
161 char *UDN,
163 int Service,
165 IXML_Document *ChangedVariables,
167 char **State);
168
169void TvCtrlPointHandleEvent(const char *, int, IXML_Document *);
170void TvCtrlPointHandleSubscribeUpdate(const char *, const Upnp_SID, int);
171int TvCtrlPointCallbackEventHandler(Upnp_EventType, void *, void *);
172
184 int incr);
185
186void TvCtrlPointPrintCommands(void);
187void *TvCtrlPointCommandLoop(void *);
188int TvCtrlPointStart(char *iface, state_update updateFunctionPtr, int combo);
189int TvCtrlPointStop(void);
190int TvCtrlPointProcessCommand(char *cmdline);
191
196
200void TvCtrlPointPrintLongHelp(void);
201
205void TvCtrlPointPrintCommands(void);
206
212void *TvCtrlPointCommandLoop(void *args);
213
217int TvCtrlPointProcessCommand(char *cmdline);
218
219#ifdef __cplusplus
220};
221#endif
222
224
226
227#endif /* UPNP_TV_CTRLPT_H */
char Upnp_SID[44]
Holds the subscription identifier for a subscription between a client and a device.
Definition upnp.h:448
int UpnpClient_Handle
Returned when a control point application registers with UpnpRegisterClient.
Definition upnp.h:429
void TvCtrlPointVerifyTimeouts(int incr)
Checks the advertisement each device in the global device list.
Definition tv_ctrlpt.c:1196
#define TV_MAXVARS
Definition tv_ctrlpt.h:79
#define TV_SERVICE_SERVCOUNT
Definition tv_ctrlpt.h:57
ithread_mutex_t DeviceListMutex
Definition tv_ctrlpt.c:58
void * TvCtrlPointCommandLoop(void *args)
Function that receives commands from the user at the command prompt during the lifetime of the device...
Definition tv_ctrlpt.c:1535
void TvCtrlPointPrintCommands(void)
Definition tv_ctrlpt.c:1521
void TvCtrlPointPrintShortHelp(void)
Print help info for this application.
Definition tv_ctrlpt.c:1341
const char * TvVarName[2][4]
Definition tv_ctrlpt.c:72
const char * TvServiceName[]
Definition tv_ctrlpt.c:66
void TvStateUpdate(char *UDN, int Service, IXML_Document *ChangedVariables, char **State)
Update a Tv state table. Called when an event is received.
Definition tv_ctrlpt.c:835
void(* state_update)(const char *varName, const char *varValue, const char *UDN, eventType type)
Prototype for passing back state changes.
Definition sample_util.h:179
int TvCtrlPointStart(char *iface, state_update updateFunctionPtr, int combo)
Call this function to initialize the UPnP library and start the TV Control Point. This function creat...
Definition tv_ctrlpt.c:1273
void TvCtrlPointPrintLongHelp(void)
Print long help info for this application.
Definition tv_ctrlpt.c:1364
struct TvDeviceNode * GlobalDeviceList
Definition tv_ctrlpt.c:86
#define DOMString
The type of DOM strings.
Definition ixml.h:48
struct _IXML_Document IXML_Document
Data structure representing the DOM Document.
Definition tv_ctrlpt.h:108
Definition tv_ctrlpt.h:98
Definition tv_ctrlpt.h:86