35 "scpd",
"xmlns=\"urn:schemas-upnp-org:service-1-0\"");
45 result += xml.
printNode(
"name",
"GetProtocolInfo");
47 result += xml.
printArgument(
"Source",
"out",
"SourceProtocolInfo");
48 result += xml.
printArgument(
"Sink",
"out",
"SinkProtocolInfo");
54 result += xml.
printNode(
"name",
"GetCurrentConnectionIDs");
56 result += xml.
printArgument(
"ConnectionIDs",
"out",
"CurrentConnectionIDs");
62 result += xml.
printNode(
"name",
"GetCurrentConnectionInfo");
65 xml.
printArgument(
"ConnectionID",
"in",
"A_ARG_TYPE_ConnectionID");
66 result += xml.
printArgument(
"RcsID",
"out",
"A_ARG_TYPE_RcsID");
68 xml.
printArgument(
"AVTransportID",
"out",
"A_ARG_TYPE_AVTransportID");
70 xml.
printArgument(
"ProtocolInfo",
"out",
"A_ARG_TYPE_ProtocolInfo");
72 "A_ARG_TYPE_ConnectionManager");
74 xml.
printArgument(
"PeerConnectionID",
"out",
"A_ARG_TYPE_ConnectionID");
75 result += xml.
printArgument(
"Direction",
"out",
"A_ARG_TYPE_Direction");
76 result += xml.
printArgument(
"Status",
"out",
"A_ARG_TYPE_ConnectionStatus");
83 result += xml.
printNode(
"name",
"SourceProtocolInfo");
84 result += xml.
printNode(
"dataType",
"string");
88 result += xml.
printNode(
"name",
"SinkProtocolInfo");
89 result += xml.
printNode(
"dataType",
"string");
93 result += xml.
printNode(
"name",
"CurrentConnectionIDs");
94 result += xml.
printNode(
"dataType",
"string");
98 result += xml.
printNode(
"name",
"A_ARG_TYPE_ConnectionStatus");
99 result += xml.
printNode(
"dataType",
"string");
101 result += xml.
printNode(
"allowedValue",
"OK");
102 result += xml.
printNode(
"allowedValue",
"ContentFormatMismatch");
103 result += xml.
printNode(
"allowedValue",
"InsufficientBandwidth");
104 result += xml.
printNode(
"allowedValue",
"UnreliableChannel");
105 result += xml.
printNode(
"allowedValue",
"Unknown");
110 result += xml.
printNode(
"name",
"A_ARG_TYPE_ConnectionManager");
111 result += xml.
printNode(
"dataType",
"string");
115 result += xml.
printNode(
"name",
"A_ARG_TYPE_Direction");
116 result += xml.
printNode(
"dataType",
"string");
118 result += xml.
printNode(
"allowedValue",
"Input");
119 result += xml.
printNode(
"allowedValue",
"Output");
124 result += xml.
printNode(
"name",
"A_ARG_TYPE_ProtocolInfo");
125 result += xml.
printNode(
"dataType",
"string");
129 result += xml.
printNode(
"name",
"A_ARG_TYPE_ConnectionID");
130 result += xml.
printNode(
"dataType",
"i4");
134 result += xml.
printNode(
"name",
"A_ARG_TYPE_AVTransportID");
135 result += xml.
printNode(
"dataType",
"i4");
139 result += xml.
printNode(
"name",
"A_ARG_TYPE_RcsID");
140 result += xml.
printNode(
"dataType",
"i4");
175 "scpd",
"xmlns=\"urn:schemas-upnp-org:service-1-0\"");
186 result += xml.
printNode(
"name",
"GetSearchCapabilities");
189 result += xml.
printNode(
"name",
"SearchCaps");
190 result += xml.
printNode(
"direction",
"out");
191 result += xml.
printNode(
"relatedStateVariable",
"SearchCapabilities");
198 result += xml.
printNode(
"name",
"GetSortCapabilities");
201 result += xml.
printNode(
"name",
"SortCaps");
202 result += xml.
printNode(
"direction",
"out");
203 result += xml.
printNode(
"relatedStateVariable",
"SortCapabilities");
210 result += xml.
printNode(
"name",
"GetSystemUpdateID");
214 result += xml.
printNode(
"direction",
"out");
215 result += xml.
printNode(
"relatedStateVariable",
"SystemUpdateID");
222 result += xml.
printNode(
"name",
"Browse");
224 result += xml.
printArgument(
"ObjectID",
"in",
"A_ARG_TYPE_ObjectID");
225 result += xml.
printArgument(
"BrowseFlag",
"in",
"A_ARG_TYPE_BrowseFlag");
226 result += xml.
printArgument(
"Filter",
"in",
"A_ARG_TYPE_Filter");
227 result += xml.
printArgument(
"StartingIndex",
"in",
"A_ARG_TYPE_Index");
228 result += xml.
printArgument(
"RequestedCount",
"in",
"A_ARG_TYPE_Count");
229 result += xml.
printArgument(
"SortCriteria",
"in",
"A_ARG_TYPE_SortCriteria");
230 result += xml.
printArgument(
"Result",
"out",
"A_ARG_TYPE_Result");
231 result += xml.
printArgument(
"NumberReturned",
"out",
"A_ARG_TYPE_Count");
232 result += xml.
printArgument(
"TotalMatches",
"out",
"A_ARG_TYPE_Count");
233 result += xml.
printArgument(
"UpdateID",
"out",
"A_ARG_TYPE_UpdateID");
239 result += xml.
printNode(
"name",
"Search");
241 result += xml.
printArgument(
"ContainerID",
"in",
"A_ARG_TYPE_ObjectID");
242 result += xml.
printArgument(
"SearchCriteria",
"in",
"A_ARG_TYPE_SearchCriteria");
243 result += xml.
printArgument(
"Filter",
"in",
"A_ARG_TYPE_Filter");
244 result += xml.
printArgument(
"StartingIndex",
"in",
"A_ARG_TYPE_Index");
245 result += xml.
printArgument(
"RequestedCount",
"in",
"A_ARG_TYPE_Count");
246 result += xml.
printArgument(
"SortCriteria",
"in",
"A_ARG_TYPE_SortCriteria");
247 result += xml.
printArgument(
"Result",
"out",
"A_ARG_TYPE_Result");
248 result += xml.
printArgument(
"NumberReturned",
"out",
"A_ARG_TYPE_Count");
249 result += xml.
printArgument(
"TotalMatches",
"out",
"A_ARG_TYPE_Count");
250 result += xml.
printArgument(
"UpdateID",
"out",
"A_ARG_TYPE_UpdateID");
256 result += xml.
printNode(
"name",
"UpdateObject");
258 result += xml.
printArgument(
"ObjectID",
"in",
"A_ARG_TYPE_ObjectID");
259 result += xml.
printArgument(
"CurrentTagValue",
"in",
"A_ARG_TYPE_TagValueList");
260 result += xml.
printArgument(
"NewTagValue",
"in",
"A_ARG_TYPE_TagValueList");
269 result += xml.
printNode(
"name",
"TransferIDs");
270 result += xml.
printNode(
"dataType",
"string");
274 result += xml.
printNode(
"name",
"A_ARG_TYPE_ObjectID");
275 result += xml.
printNode(
"dataType",
"string");
279 result += xml.
printNode(
"name",
"A_ARG_TYPE_Result");
280 result += xml.
printNode(
"dataType",
"string");
284 result += xml.
printNode(
"name",
"A_ARG_TYPE_SearchCriteria");
285 result += xml.
printNode(
"dataType",
"string");
289 result += xml.
printNode(
"name",
"A_ARG_TYPE_BrowseFlag");
290 result += xml.
printNode(
"dataType",
"string");
292 result += xml.
printNode(
"allowedValue",
"BrowseMetadata");
293 result += xml.
printNode(
"allowedValue",
"BrowseDirectChildren");
298 result += xml.
printNode(
"name",
"A_ARG_TYPE_Filter");
299 result += xml.
printNode(
"dataType",
"string");
303 result += xml.
printNode(
"name",
"A_ARG_TYPE_SortCriteria");
304 result += xml.
printNode(
"dataType",
"string");
308 result += xml.
printNode(
"name",
"A_ARG_TYPE_Index");
309 result += xml.
printNode(
"dataType",
"i4");
313 result += xml.
printNode(
"name",
"A_ARG_TYPE_Count");
314 result += xml.
printNode(
"dataType",
"ui4");
318 result += xml.
printNode(
"name",
"A_ARG_TYPE_UpdateID");
319 result += xml.
printNode(
"dataType",
"ui4");
323 result += xml.
printNode(
"name",
"A_ARG_TYPE_TagValueList");
324 result += xml.
printNode(
"dataType",
"string");
328 result += xml.
printNode(
"name",
"SearchCapabilities");
329 result += xml.
printNode(
"dataType",
"string");
333 result += xml.
printNode(
"name",
"SortCapabilities");
334 result += xml.
printNode(
"dataType",
"string");
338 result += xml.
printNode(
"name",
"SystemUpdateID");
339 result += xml.
printNode(
"dataType",
"ui4");
Abstract DLNA Descriptor Generation.
Definition: DLNADescr.h:9
ContentDirectory SCPD descriptor for MediaServer.
Definition: DLNAMediaServerDescr.h:160
size_t printDescr(Print &out) override
Emit ContentDirectory SCPD XML.
Definition: DLNAMediaServerDescr.h:170
Definition: Allocator.h:13
Functions to efficiently output XML. XML data contains a lot of redundancy so it is more memory effic...
Definition: XMLPrinter.h:56
size_t printNodeBeginNl(const char *node, const char *attributes=nullptr, const char *ns=nullptr)
Prints the beginning of an XML node and a newline.
Definition: XMLPrinter.h:339
size_t printNode(XMLNode node)
Prints an XML node from XMLNode struct.
Definition: XMLPrinter.h:89
size_t printNodeEnd(const char *node, const char *ns=nullptr)
Prints the end of an XML node.
Definition: XMLPrinter.h:352
size_t printArgument(const char *name, const char *direction, const char *relatedStateVariable=nullptr)
Helper to print a UPnP <argument> element with name, direction and optional relatedStateVariable.
Definition: XMLPrinter.h:267
size_t printXMLHeader()
Prints the XML header.
Definition: XMLPrinter.h:79