libUPnP 1.14.19
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
47#ifdef __cplusplus
48extern "C" {
49#endif
50
51#include "sample_util.h"
52
53#include "UpnpString.h"
54#include "upnp.h"
55#include "upnptools.h"
56
57#include <signal.h>
58#include <stdarg.h>
59#include <stdio.h>
60
61#define TV_SERVICE_SERVCOUNT 2
62#define TV_SERVICE_CONTROL 0
63#define TV_SERVICE_PICTURE 1
64
65#define TV_CONTROL_VARCOUNT 3
66#define TV_CONTROL_POWER 0
67#define TV_CONTROL_CHANNEL 1
68#define TV_CONTROL_VOLUME 2
69
70#define TV_PICTURE_VARCOUNT 4
71#define TV_PICTURE_COLOR 0
72#define TV_PICTURE_TINT 1
73#define TV_PICTURE_CONTRAST 2
74#define TV_PICTURE_BRIGHTNESS 3
75
76#define TV_MAX_VAL_LEN 5
77
78#define TV_SUCCESS 0
79#define TV_ERROR (-1)
80#define TV_WARNING 1
81
82/* This should be the maximum VARCOUNT from above */
83#define TV_MAXVARS TV_PICTURE_VARCOUNT
84
85extern const char *TvServiceName[];
86extern const char *TvVarName[TV_SERVICE_SERVCOUNT][TV_MAXVARS];
87extern char TvVarCount[];
88
90{
91 char ServiceId[NAME_SIZE];
92 char ServiceType[NAME_SIZE];
93 char *VariableStrVal[TV_MAXVARS];
94 char EventURL[NAME_SIZE];
95 char ControlURL[NAME_SIZE];
96 char SID[NAME_SIZE];
97};
98
99extern struct TvDeviceNode *GlobalDeviceList;
100
102{
103 char UDN[250];
104 char DescDocURL[250];
105 char FriendlyName[250];
106 char PresURL[250];
107 int AdvrTimeOut;
109};
110
112{
113 struct TvDevice device;
114 struct TvDeviceNode *next;
115};
116
117extern ithread_mutex_t DeviceListMutex;
118
119extern UpnpClient_Handle ctrlpt_handle;
120
121void TvCtrlPointPrintHelp(void);
122int TvCtrlPointDeleteNode(struct TvDeviceNode *);
123int TvCtrlPointRemoveDevice(const char *);
124int TvCtrlPointRemoveAll(void);
125int TvCtrlPointRefresh(void);
126
127int TvCtrlPointSendAction(int, int, const char *, const char **, char **, int);
128int TvCtrlPointSendActionNumericArg(int devnum,
129 int service,
130 const char *actionName,
131 const char *paramName,
132 int paramValue);
133int TvCtrlPointSendPowerOn(int devnum);
134int TvCtrlPointSendPowerOff(int devnum);
135int TvCtrlPointSendSetChannel(int, int);
136int TvCtrlPointSendSetVolume(int, int);
137int TvCtrlPointSendSetColor(int, int);
138int TvCtrlPointSendSetTint(int, int);
139int TvCtrlPointSendSetContrast(int, int);
140int TvCtrlPointSendSetBrightness(int, int);
141
142int TvCtrlPointGetVar(int, int, const char *);
143int TvCtrlPointGetPower(int devnum);
144int TvCtrlPointGetChannel(int);
145int TvCtrlPointGetVolume(int);
146int TvCtrlPointGetColor(int);
147int TvCtrlPointGetTint(int);
148int TvCtrlPointGetContrast(int);
149int TvCtrlPointGetBrightness(int);
150
151int TvCtrlPointGetDevice(int, struct TvDeviceNode **);
152int TvCtrlPointPrintList(void);
153int TvCtrlPointPrintDevice(int);
154void TvCtrlPointAddDevice(IXML_Document *, const char *, int);
155void TvCtrlPointHandleGetVar(const char *, const char *, const DOMString);
156
163void TvStateUpdate(
165 char *UDN,
167 int Service,
169 IXML_Document *ChangedVariables,
171 char **State);
172
173void TvCtrlPointHandleEvent(const char *, int, IXML_Document *);
174void TvCtrlPointHandleSubscribeUpdate(const char *, const Upnp_SID, int);
175int TvCtrlPointCallbackEventHandler(Upnp_EventType, const void *, void *);
176
188 int incr);
189
190void TvCtrlPointPrintCommands(void);
191void *TvCtrlPointCommandLoop(void *);
192int TvCtrlPointStart(char *iface, state_update updateFunctionPtr, int combo);
193int TvCtrlPointStop(void);
194int TvCtrlPointProcessCommand(char *cmdline);
195
200
204void TvCtrlPointPrintLongHelp(void);
205
209void TvCtrlPointPrintCommands(void);
210
216void *TvCtrlPointCommandLoop(void *args);
217
221int TvCtrlPointProcessCommand(char *cmdline);
222
223#ifdef __cplusplus
224};
225#endif
226
231#endif /* UPNP_TV_CTRLPT_H */
UpnpString object declaration.
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:1193
#define TV_MAXVARS
Definition tv_ctrlpt.h:83
#define TV_SERVICE_SERVCOUNT
Definition tv_ctrlpt.h:61
ithread_mutex_t DeviceListMutex
Definition tv_ctrlpt.c:55
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:1532
void TvCtrlPointPrintCommands(void)
Definition tv_ctrlpt.c:1518
void TvCtrlPointPrintShortHelp(void)
Print help info for this application.
Definition tv_ctrlpt.c:1338
const char * TvVarName[2][4]
Definition tv_ctrlpt.c:69
const char * TvServiceName[]
Definition tv_ctrlpt.c:63
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:832
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:1270
void TvCtrlPointPrintLongHelp(void)
Print long help info for this application.
Definition tv_ctrlpt.c:1361
struct TvDeviceNode * GlobalDeviceList
Definition tv_ctrlpt.c:83
#define DOMString
The type of DOM strings.
Definition ixml.h:48
Definition tv_ctrlpt.h:112
Definition tv_ctrlpt.h:102
Definition tv_device.h:159
Data structure representing the DOM Document.
Definition ixml.h:160
Definition tv_ctrlpt.h:90