Arduino DLNA Server
Loading...
Searching...
No Matches
ms_content_dir.h
Go to the documentation of this file.
1#pragma once
2
3/*
4<?xml version=\"1.0\"?>
5<scpd xmlns=\"urn:schemas-upnp-org:service-1-0\">
6<specVersion>
7<major>1</major>
8<minor>0</minor>
9</specVersion>
10<actionList>
11<action>
12<name>Browse</name>
13<argumentList>
14<argument>
15<name>ObjectID</name>
16<direction>in</direction>
17</argument>
18<argument>
19<name>BrowseFlag</name>
20<direction>in</direction>
21</argument>
22<argument>
23<name>Filter</name>
24<direction>in</direction>
25</argument>
26<argument>
27<name>StartingIndex</name>
28<direction>in</direction>
29</argument>
30<argument>
31<name>RequestedCount</name>
32<direction>in</direction>
33</argument>
34<argument>
35<name>SortCriteria</name>
36<direction>in</direction>
37</argument>
38<argument>
39<name>Result</name>
40<direction>out</direction>
41</argument>
42<argument>
43<name>NumberReturned</name>
44<direction>out</direction>
45</argument>
46<argument>
47<name>TotalMatches</name>
48<direction>out</direction>
49</argument>
50<argument>
51<name>UpdateID</name>
52<direction>out</direction>
53</argument>
54</argumentList>
55</action>
56<action>
57<name>GetSearchCapabilities</name>
58</action>
59<action>
60<name>GetSortCapabilities</name>
61</action>
62<action>
63<name>GetSystemUpdateID</name>
64</action>
65</actionList>
66<serviceStateTable>
67<stateVariable sendEvents=\"no\">
68<name>SystemUpdateID</name>
69<dataType>ui4</dataType>
70</stateVariable>
71</serviceStateTable>
72</scpd>\n";
73*/
74
75#include "dlna/xml/XMLPrinter.h"
76
77static void ms_content_dir_xml_printer(Print& out) {
79 XMLPrinter xml(out);
80 xml.printXMLHeader();
81 xml.printNodeBeginNl("scpd", "xmlns=\"urn:schemas-upnp-org:service-1-0\"");
82
83 xml.printNodeBeginNl("specVersion");
84 xml.printNode("major", 1);
85 xml.printNode("minor", 0);
86 xml.printNodeEnd("specVersion");
87
88 xml.printNodeBeginNl("actionList");
89
90 xml.printNodeBeginNl("action");
91 xml.printNode("name", "Browse");
92 xml.printNodeBeginNl("argumentList");
93 xml.printArgument("ObjectID", "in", "A_ARG_TYPE_ObjectID");
94 xml.printArgument("BrowseFlag", "in", "A_ARG_TYPE_BrowseFlag");
95 xml.printArgument("Filter", "in", "A_ARG_TYPE_Filter");
96 xml.printArgument("StartingIndex", "in", "A_ARG_TYPE_Index");
97 xml.printArgument("RequestedCount", "in", "A_ARG_TYPE_Count");
98 xml.printArgument("SortCriteria", "in", "A_ARG_TYPE_SortCriteria");
99 xml.printArgument("Result", "out", "A_ARG_TYPE_Result");
100 xml.printArgument("NumberReturned", "out", "A_ARG_TYPE_Count");
101 xml.printArgument("TotalMatches", "out", "A_ARG_TYPE_Count");
102 xml.printArgument("UpdateID", "out", "A_ARG_TYPE_UpdateID");
103 xml.printNodeEnd("argumentList");
104 xml.printNodeEnd("action");
105
106 xml.printNodeBeginNl("action");
107 xml.printNode("name", "GetSearchCapabilities");
108 xml.printNodeBeginNl("argumentList");
109 xml.printArgument("SearchCaps", "out", "SearchCapabilities");
110 xml.printNodeEnd("argumentList");
111 xml.printNodeEnd("action");
112
113 xml.printNodeBeginNl("action");
114 xml.printNode("name", "GetSortCapabilities");
115 xml.printNodeBeginNl("argumentList");
116 xml.printArgument("SortCaps", "out", "SortCapabilities");
117 xml.printNodeEnd("argumentList");
118 xml.printNodeEnd("action");
119
120 xml.printNodeBeginNl("action");
121 xml.printNode("name", "GetSystemUpdateID");
122 xml.printNodeBeginNl("argumentList");
123 xml.printArgument("Id", "out", "SystemUpdateID");
124 xml.printNodeEnd("argumentList");
125 xml.printNodeEnd("action");
126
127 /* Search action */
128 xml.printNodeBeginNl("action");
129 xml.printNode("name", "Search");
130 xml.printNodeBeginNl("argumentList");
131 xml.printArgument("ContainerID", "in", "A_ARG_TYPE_ObjectID");
132 xml.printArgument("SearchCriteria", "in", "A_ARG_TYPE_SearchCriteria");
133 xml.printArgument("Filter", "in", "A_ARG_TYPE_Filter");
134 xml.printArgument("StartingIndex", "in", "A_ARG_TYPE_Index");
135 xml.printArgument("RequestedCount", "in", "A_ARG_TYPE_Count");
136 xml.printArgument("SortCriteria", "in", "A_ARG_TYPE_SortCriteria");
137 xml.printArgument("Result", "out", "A_ARG_TYPE_Result");
138 xml.printArgument("NumberReturned", "out", "A_ARG_TYPE_Count");
139 xml.printArgument("TotalMatches", "out", "A_ARG_TYPE_Count");
140 xml.printArgument("UpdateID", "out", "A_ARG_TYPE_UpdateID");
141 xml.printNodeEnd("argumentList");
142 xml.printNodeEnd("action");
143
144 /* UpdateObject action */
145 xml.printNodeBeginNl("action");
146 xml.printNode("name", "UpdateObject");
147 xml.printNodeBeginNl("argumentList");
148 xml.printArgument("ObjectID", "in", "A_ARG_TYPE_ObjectID");
149 xml.printArgument("CurrentTagValue", "in", "A_ARG_TYPE_TagValueList");
150 xml.printArgument("NewTagValue", "in", "A_ARG_TYPE_TagValueList");
151 xml.printNodeEnd("argumentList");
152 xml.printNodeEnd("action");
153
154 xml.printNodeEnd("actionList");
155
156 xml.printNodeBeginNl("serviceStateTable");
157
158 xml.printNodeBeginNl("stateVariable", "sendEvents=\"yes\"");
159 xml.printNode("name", "TransferIDs");
160 xml.printNode("dataType", "string");
161 xml.printNodeEnd("stateVariable");
162
163 xml.printNodeBeginNl("stateVariable", "sendEvents=\"no\"");
164 xml.printNode("name", "A_ARG_TYPE_ObjectID");
165 xml.printNode("dataType", "string");
166 xml.printNodeEnd("stateVariable");
167
168 xml.printNodeBeginNl("stateVariable", "sendEvents=\"no\"");
169 xml.printNode("name", "A_ARG_TYPE_Result");
170 xml.printNode("dataType", "string");
171 xml.printNodeEnd("stateVariable");
172
173 xml.printNodeBeginNl("stateVariable", "sendEvents=\"no\"");
174 xml.printNode("name", "A_ARG_TYPE_SearchCriteria");
175 xml.printNode("dataType", "string");
176 xml.printNodeEnd("stateVariable");
177
178 xml.printNodeBeginNl("stateVariable", "sendEvents=\"no\"");
179 xml.printNode("name", "A_ARG_TYPE_BrowseFlag");
180 xml.printNode("dataType", "string");
181 xml.printNodeBeginNl("allowedValueList");
182 xml.printNode("allowedValue", "BrowseMetadata");
183 xml.printNode("allowedValue", "BrowseDirectChildren");
184 xml.printNodeEnd("allowedValueList");
185 xml.printNodeEnd("stateVariable");
186
187 xml.printNodeBeginNl("stateVariable", "sendEvents=\"no\"");
188 xml.printNode("name", "A_ARG_TYPE_Filter");
189 xml.printNode("dataType", "string");
190 xml.printNodeEnd("stateVariable");
191
192 xml.printNodeBeginNl("stateVariable", "sendEvents=\"no\"");
193 xml.printNode("name", "A_ARG_TYPE_SortCriteria");
194 xml.printNode("dataType", "string");
195 xml.printNodeEnd("stateVariable");
196
197 xml.printNodeBeginNl("stateVariable", "sendEvents=\"no\"");
198 xml.printNode("name", "A_ARG_TYPE_Index");
199 xml.printNode("dataType", "i4");
200 xml.printNodeEnd("stateVariable");
201
202 xml.printNodeBeginNl("stateVariable", "sendEvents=\"no\"");
203 xml.printNode("name", "A_ARG_TYPE_Count");
204 xml.printNode("dataType", "ui4");
205 xml.printNodeEnd("stateVariable");
206
207 xml.printNodeBeginNl("stateVariable", "sendEvents=\"no\"");
208 xml.printNode("name", "A_ARG_TYPE_UpdateID");
209 xml.printNode("dataType", "ui4");
210 xml.printNodeEnd("stateVariable");
211
212 xml.printNodeBeginNl("stateVariable", "sendEvents=\"no\"");
213 xml.printNode("name", "A_ARG_TYPE_TagValueList");
214 xml.printNode("dataType", "string");
215 xml.printNodeEnd("stateVariable");
216
217 xml.printNodeBeginNl("stateVariable", "sendEvents=\"no\"");
218 xml.printNode("name", "SearchCapabilities");
219 xml.printNode("dataType", "string");
220 xml.printNodeEnd("stateVariable");
221
222 xml.printNodeBeginNl("stateVariable", "sendEvents=\"no\"");
223 xml.printNode("name", "SortCapabilities");
224 xml.printNode("dataType", "string");
225 xml.printNodeEnd("stateVariable");
226
227 xml.printNodeBeginNl("stateVariable", "sendEvents=\"yes\"");
228 xml.printNode("name", "SystemUpdateID");
229 xml.printNode("dataType", "ui4");
230 xml.printNodeEnd("stateVariable");
231
232 xml.printNodeEnd("serviceStateTable");
233
234 xml.printNodeEnd("scpd");
235}
Functions to efficiently output XML. XML data contains a lot of redundancy so it is more memory effic...
Definition: XMLPrinter.h:54