[rygel] data: Transform XML files for better IOP



commit 0cb7fe4244533ac900497f185237f833f13ecf0f
Author: Zeeshan Ali (Khattak) <zeeshanak gnome org>
Date:   Wed Sep 15 14:24:27 2010 +0300

    data: Transform XML files for better IOP
    
    Generate XML files from templates at build time so we can strip out
    newlines and leading whitespace to improve our IOP with some devices in
    the market that use some crappy XML parsers.

 data/xml/AVTransport2.xml                          |  575 --------------------
 data/xml/AVTransport2.xml.in                       |  575 ++++++++++++++++++++
 data/xml/ConnectionManager.xml                     |  167 ------
 data/xml/ConnectionManager.xml.in                  |  167 ++++++
 data/xml/ContentDirectory.xml                      |  407 --------------
 data/xml/ContentDirectory.xml.in                   |  407 ++++++++++++++
 data/xml/Makefile.am                               |   20 +-
 .../{MediaRenderer2.xml => MediaRenderer2.xml.in}  |    0
 data/xml/{MediaServer2.xml => MediaServer2.xml.in} |    0
 data/xml/RenderingControl2.xml                     |  194 -------
 data/xml/RenderingControl2.xml.in                  |  194 +++++++
 ...ar1.xml => X_MS_MediaReceiverRegistrar1.xml.in} |    0
 12 files changed, 1356 insertions(+), 1350 deletions(-)
---
diff --git a/data/xml/AVTransport2.xml.in b/data/xml/AVTransport2.xml.in
new file mode 100644
index 0000000..4ed9b2c
--- /dev/null
+++ b/data/xml/AVTransport2.xml.in
@@ -0,0 +1,575 @@
+<?xml version="1.0"?>
+<!--============================================================
+Title: UPnP AV AV-Transport Service (AVT) Template
+
+Purpose:
+To identify the required/optional actions and state variables
+and the required allowed values defined by this service type.
+
+Note:
+This file uses tabs (not spaces) for block indentation.
+Any updates to this file should maintain this convention.
+This includes disabling any automatic tab-to-space conversion
+feature provided by your editor.
+================================================================-->
+<scpd>
+   <serviceStateTable>
+      <stateVariable>
+         <name>TransportState</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+         <allowedValueList>
+            <allowedValue>STOPPED</allowedValue>
+            <allowedValue>PLAYING</allowedValue>
+         </allowedValueList>
+      </stateVariable>
+
+      <stateVariable>
+         <name>TransportStatus</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+         <allowedValueList>
+            <allowedValue>OK</allowedValue>
+            <allowedValue>ERROR_OCCURRED</allowedValue>
+         </allowedValueList>
+      </stateVariable>
+
+      <stateVariable>
+         <name>CurrentMediaCategory</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+         <allowedValueList>
+            <allowedValue>NO_MEDIA</allowedValue>
+            <allowedValue>TRACK_AWARE</allowedValue>
+            <allowedValue>TRACK_UNAWARE</allowedValue>
+         </allowedValueList>
+      </stateVariable>
+
+      <stateVariable>
+         <name>PlaybackStorageMedium</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>RecordStorageMedium</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>PossiblePlaybackStorageMedia</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>PossibleRecordStorageMedia</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>CurrentPlayMode</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+         <allowedValueList>
+            <allowedValue>NORMAL</allowedValue>
+         </allowedValueList>
+         <defaultValue>NORMAL</defaultValue>
+      </stateVariable>
+
+      <stateVariable>
+         <name>TransportPlaySpeed</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+         <allowedValueList>
+            <allowedValue>1</allowedValue>
+         </allowedValueList>
+         <defaultValue>1</defaultValue>
+      </stateVariable>
+
+      <stateVariable>
+         <name>RecordMediumWriteStatus</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>CurrentRecordQualityMode</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>PossibleRecordQualityModes</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>NumberOfTracks</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>ui4</dataType>
+         <allowedValueRange>
+            <minimum>0</minimum>
+         </allowedValueRange>
+      </stateVariable>
+
+      <stateVariable>
+         <name>CurrentTrack</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>ui4</dataType>
+         <allowedValueRange>
+            <minimum>0</minimum>
+            <step>1</step>
+         </allowedValueRange>
+      </stateVariable>
+
+      <stateVariable>
+         <name>CurrentTrackDuration</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>CurrentMediaDuration</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>CurrentTrackMetaData</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>CurrentTrackURI</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>AVTransportURI</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>AVTransportURIMetaData</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>NextAVTransportURI</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>NextAVTransportURIMetaData</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>RelativeTimePosition</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>AbsoluteTimePosition</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>RelativeCounterPosition</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>i4</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>AbsoluteCounterPosition</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>i4</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>LastChange</name>
+         <sendEventsAttribute>yes</sendEventsAttribute>
+         <dataType>string</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>A_ARG_TYPE_SeekMode</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+         <allowedValueList>
+            <allowedValue>TRACK_NR</allowedValue>
+         </allowedValueList>
+      </stateVariable>
+
+      <stateVariable>
+         <name>A_ARG_TYPE_SeekTarget</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>A_ARG_TYPE_InstanceID</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>ui4</dataType>
+      </stateVariable>
+   </serviceStateTable>
+
+   <actionList>
+      <action>
+         <name>SetAVTransportURI</name>
+         <argumentList>
+            <argument>
+               <name>InstanceID</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>CurrentURI</name>
+               <direction>in</direction>
+               <relatedStateVariable>AVTransportURI</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>CurrentURIMetaData</name>
+               <direction>in</direction>
+               <relatedStateVariable>AVTransportURIMetaData</relatedStateVariable>
+            </argument>
+         </argumentList>
+      </action>
+
+      <action>
+         <name>GetMediaInfo</name>
+         <argumentList>
+            <argument>
+               <name>InstanceID</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>NrTracks</name>
+               <direction>out</direction>
+               <relatedStateVariable>NumberOfTracks</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>MediaDuration</name>
+               <direction>out</direction>
+               <relatedStateVariable>CurrentMediaDuration</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>CurrentURI</name>
+               <direction>out</direction>
+               <relatedStateVariable>AVTransportURI</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>CurrentURIMetaData</name>
+               <direction>out</direction>
+               <relatedStateVariable>AVTransportURIMetaData</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>NextURI</name>
+               <direction>out</direction>
+               <relatedStateVariable>NextAVTransportURI</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>NextURIMetaData</name>
+               <direction>out</direction>
+               <relatedStateVariable>NextAVTransportURIMetaData</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>PlayMedium</name>
+               <direction>out</direction>
+               <relatedStateVariable>PlaybackStorageMedium</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>RecordMedium</name>
+               <direction>out</direction>
+               <relatedStateVariable>RecordStorageMedium</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>WriteStatus</name>
+               <direction>out</direction>
+               <relatedStateVariable>RecordMediumWriteStatus</relatedStateVariable>
+            </argument>
+         </argumentList>
+      </action>
+
+      <action>
+         <name>GetMediaInfo_Ext</name>
+         <argumentList>
+            <argument>
+               <name>InstanceID</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>CurrentType</name>
+               <direction>out</direction>
+               <relatedStateVariable>CurrentMediaCategory</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>NrTracks</name>
+               <direction>out</direction>
+               <relatedStateVariable>NumberOfTracks</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>MediaDuration</name>
+               <direction>out</direction>
+               <relatedStateVariable>CurrentMediaDuration</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>CurrentURI</name>
+               <direction>out</direction>
+               <relatedStateVariable>AVTransportURI</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>CurrentURIMetaData</name>
+               <direction>out</direction>
+               <relatedStateVariable>AVTransportURIMetaData</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>NextURI</name>
+               <direction>out</direction>
+               <relatedStateVariable>NextAVTransportURI</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>NextURIMetaData</name>
+               <direction>out</direction>
+               <relatedStateVariable>NextAVTransportURIMetaData</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>PlayMedium</name>
+               <direction>out</direction>
+               <relatedStateVariable>PlaybackStorageMedium</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>RecordMedium</name>
+               <direction>out</direction>
+               <relatedStateVariable>RecordStorageMedium</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>WriteStatus</name>
+               <direction>out</direction>
+               <relatedStateVariable>RecordMediumWriteStatus</relatedStateVariable>
+            </argument>
+         </argumentList>
+      </action>
+
+      <action>
+         <name>GetTransportInfo</name>
+         <argumentList>
+            <argument>
+               <name>InstanceID</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>CurrentTransportState</name>
+               <direction>out</direction>
+               <relatedStateVariable>TransportState</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>CurrentTransportStatus</name>
+               <direction>out</direction>
+               <relatedStateVariable>TransportStatus</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>CurrentSpeed</name>
+               <direction>out</direction>
+               <relatedStateVariable>TransportPlaySpeed</relatedStateVariable>
+            </argument>
+         </argumentList>
+      </action>
+
+      <action>
+         <name>GetPositionInfo</name>
+         <argumentList>
+            <argument>
+               <name>InstanceID</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>Track</name>
+               <direction>out</direction>
+               <relatedStateVariable>CurrentTrack</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>TrackDuration</name>
+               <direction>out</direction>
+               <relatedStateVariable>CurrentTrackDuration</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>TrackMetaData</name>
+               <direction>out</direction>
+               <relatedStateVariable>CurrentTrackMetaData</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>TrackURI</name>
+               <direction>out</direction>
+               <relatedStateVariable>CurrentTrackURI</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>RelTime</name>
+               <direction>out</direction>
+               <relatedStateVariable>RelativeTimePosition</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>AbsTime</name>
+               <direction>out</direction>
+               <relatedStateVariable>AbsoluteTimePosition</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>RelCount</name>
+               <direction>out</direction>
+               <relatedStateVariable>RelativeCounterPosition</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>AbsCount</name>
+               <direction>out</direction>
+               <relatedStateVariable>AbsoluteCounterPosition</relatedStateVariable>
+            </argument>
+         </argumentList>
+      </action>
+
+      <action>
+         <name>GetDeviceCapabilities</name>
+         <argumentList>
+            <argument>
+               <name>InstanceID</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>PlayMedia</name>
+               <direction>out</direction>
+               <relatedStateVariable>PossiblePlaybackStorageMedia</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>RecMedia</name>
+               <direction>out</direction>
+               <relatedStateVariable>PossibleRecordStorageMedia</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>RecQualityModes</name>
+               <direction>out</direction>
+               <relatedStateVariable>PossibleRecordQualityModes</relatedStateVariable>
+            </argument>
+         </argumentList>
+      </action>
+
+      <action>
+         <name>GetTransportSettings</name>
+         <argumentList>
+            <argument>
+               <name>InstanceID</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>PlayMode</name>
+               <direction>out</direction>
+               <relatedStateVariable>CurrentPlayMode</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>RecQualityMode</name>
+               <direction>out</direction>
+               <relatedStateVariable>CurrentRecordQualityMode</relatedStateVariable>
+            </argument>
+         </argumentList>
+      </action>
+
+      <action>
+         <name>Stop</name>
+         <argumentList>
+            <argument>
+               <name>InstanceID</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>
+            </argument>
+         </argumentList>
+      </action>
+
+      <action>
+         <name>Play</name>
+         <argumentList>
+            <argument>
+               <name>InstanceID</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>Speed</name>
+               <direction>in</direction>
+               <relatedStateVariable>TransportPlaySpeed</relatedStateVariable>
+            </argument>
+         </argumentList>
+      </action>
+
+      <action>
+         <Optional/>
+         <name>Pause</name>
+         <argumentList>
+            <argument>
+               <name>InstanceID</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>
+            </argument>
+         </argumentList>
+      </action>
+
+      <action>
+         <name>Seek</name>
+         <argumentList>
+            <argument>
+               <name>InstanceID</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>Unit</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_SeekMode</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>Target</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_SeekTarget</relatedStateVariable>
+            </argument>
+         </argumentList>
+      </action>
+
+      <action>
+         <name>Next</name>
+         <argumentList>
+            <argument>
+               <name>InstanceID</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>
+            </argument>
+         </argumentList>
+      </action>
+
+      <action>
+         <name>Previous</name>
+         <argumentList>
+            <argument>
+               <name>InstanceID</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>
+            </argument>
+         </argumentList>
+      </action>
+   </actionList>
+</scpd>
+
diff --git a/data/xml/ConnectionManager.xml.in b/data/xml/ConnectionManager.xml.in
new file mode 100644
index 0000000..7fa40e8
--- /dev/null
+++ b/data/xml/ConnectionManager.xml.in
@@ -0,0 +1,167 @@
+<?xml version="1.0"?>
+<!--============================================================
+Title: UPnP AV Connection Manager Service (CM) Template
+
+Purpose:
+To identify the required/optional actions and state variables
+and the required allowed values defined by this service type.
+
+Note:
+This file uses tabs (not spaces) for block indentation.
+Any updates to this file should maintain this convention.
+This includes disabling any automatic tab-to-space conversion
+feature provided by your editor.
+================================================================-->
+<scpd xmlns="urn:schemas-upnp-org:service-1-0">
+   <specVersion>
+      <major>1</major>
+      <minor>0</minor>
+   </specVersion>
+   <serviceStateTable>
+      <stateVariable>
+         <name>SourceProtocolInfo</name>
+         <sendEventsAttribute>yes</sendEventsAttribute>
+         <dataType>string</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>SinkProtocolInfo</name>
+         <sendEventsAttribute>yes</sendEventsAttribute>
+         <dataType>string</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>CurrentConnectionIDs</name>
+         <sendEventsAttribute>yes</sendEventsAttribute>
+         <dataType>string</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>A_ARG_TYPE_ConnectionStatus</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+         <allowedValueList>
+            <allowedValue>OK</allowedValue>
+            <allowedValue>ContentFormatMismatch</allowedValue>
+            <allowedValue>InsufficientBandwidth</allowedValue>
+            <allowedValue>UnreliableChannel</allowedValue>
+            <allowedValue>Unknown</allowedValue>
+         </allowedValueList>
+      </stateVariable>
+
+      <stateVariable>
+         <name>A_ARG_TYPE_ConnectionManager</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>A_ARG_TYPE_Direction</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+         <allowedValueList>
+            <allowedValue>Input</allowedValue>
+            <allowedValue>Output</allowedValue>
+         </allowedValueList>
+      </stateVariable>
+
+      <stateVariable>
+         <name>A_ARG_TYPE_ProtocolInfo</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>A_ARG_TYPE_ConnectionID</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>i4</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>A_ARG_TYPE_AVTransportID</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>i4</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>A_ARG_TYPE_RcsID</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>i4</dataType>
+      </stateVariable>
+   </serviceStateTable>
+
+   <actionList>
+      <action>
+         <name>GetProtocolInfo</name>
+         <argumentList>
+            <argument>
+               <name>Source</name>
+               <direction>out</direction>
+               <relatedStateVariable>SourceProtocolInfo</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>Sink</name>
+               <direction>out</direction>
+               <relatedStateVariable>SinkProtocolInfo</relatedStateVariable>
+            </argument>
+         </argumentList>
+      </action>
+
+      <action>
+         <name>GetCurrentConnectionIDs</name>
+         <argumentList>
+            <argument>
+               <name>ConnectionIDs</name>
+               <direction>out</direction>
+               <relatedStateVariable>CurrentConnectionIDs</relatedStateVariable>
+            </argument>
+         </argumentList>
+      </action>
+
+      <action>
+         <name>GetCurrentConnectionInfo</name>
+         <argumentList>
+            <argument>
+               <name>ConnectionID</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_ConnectionID</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>RcsID</name>
+               <direction>out</direction>
+               <relatedStateVariable>A_ARG_TYPE_RcsID</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>AVTransportID</name>
+               <direction>out</direction>
+               <relatedStateVariable>A_ARG_TYPE_AVTransportID</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>ProtocolInfo</name>
+               <direction>out</direction>
+               <relatedStateVariable>A_ARG_TYPE_ProtocolInfo</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>PeerConnectionManager</name>
+               <direction>out</direction>
+               <relatedStateVariable>A_ARG_TYPE_ConnectionManager</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>PeerConnectionID</name>
+               <direction>out</direction>
+               <relatedStateVariable>A_ARG_TYPE_ConnectionID</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>Direction</name>
+               <direction>out</direction>
+               <relatedStateVariable>A_ARG_TYPE_Direction</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>Status</name>
+               <direction>out</direction>
+               <relatedStateVariable>A_ARG_TYPE_ConnectionStatus</relatedStateVariable>
+            </argument>
+         </argumentList>
+      </action>
+   </actionList>
+</scpd>
diff --git a/data/xml/ContentDirectory.xml.in b/data/xml/ContentDirectory.xml.in
new file mode 100644
index 0000000..e569c20
--- /dev/null
+++ b/data/xml/ContentDirectory.xml.in
@@ -0,0 +1,407 @@
+<?xml version="1.0"?>
+<!--============================================================
+Title: UPnP AV Content Directory Service (CDS) Template
+
+Purpose:
+To identify the required/optional actions and state variables
+and the required allowed values defined by this service type.
+
+Note:
+This file uses tabs (not spaces) for block indentation.
+Any updates to this file should maintain this convention.
+This includes disabling any automatic tab-to-space conversion
+feature provided by your editor.
+================================================================-->
+<scpd xmlns="urn:schemas-upnp-org:service-1-0">
+   <specVersion>
+      <major>1</major>
+      <minor>0</minor>
+   </specVersion>
+   <serviceStateTable>
+      <stateVariable>
+         <name>SearchCapabilities</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>SortCapabilities</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>SystemUpdateID</name>
+         <sendEventsAttribute>yes</sendEventsAttribute>
+         <dataType>ui4</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <Optional/>
+         <name>ContainerUpdateIDs</name>
+         <sendEventsAttribute>yes</sendEventsAttribute>
+         <dataType>string</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>FeatureList</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>A_ARG_TYPE_ObjectID</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>A_ARG_TYPE_Result</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>A_ARG_TYPE_BrowseFlag</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+         <allowedValueList>
+            <allowedValue>BrowseMetadata</allowedValue>
+            <allowedValue>BrowseDirectChildren</allowedValue>
+         </allowedValueList>
+      </stateVariable>
+
+      <stateVariable>
+         <name>A_ARG_TYPE_Filter</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>A_ARG_TYPE_SortCriteria</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>A_ARG_TYPE_Index</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>ui4</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>A_ARG_TYPE_Count</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>ui4</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>A_ARG_TYPE_UpdateID</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>ui4</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <Optional/>
+         <name>A_ARG_TYPE_SearchCriteria</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <Optional/>
+         <name>A_ARG_TYPE_URI</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>uri</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <Optional/>
+         <name>A_ARG_TYPE_TransferID</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>ui4</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <Optional/>
+         <name>TransferIDs</name>
+         <sendEventsAttribute>yes</sendEventsAttribute>
+         <dataType>string</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <Optional/>
+         <name>A_ARG_TYPE_TransferStatus</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+         <allowedValueList>
+            <allowedValue>COMPLETED</allowedValue>
+            <allowedValue>ERROR</allowedValue>
+            <allowedValue>IN_PROGRESS</allowedValue>
+            <allowedValue>STOPPED</allowedValue>
+         </allowedValueList>
+      </stateVariable>
+
+      <stateVariable>
+         <Optional/>
+         <name>A_ARG_TYPE_TransferLength</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <Optional/>
+         <name>A_ARG_TYPE_TransferTotal</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+      </stateVariable>
+   </serviceStateTable>
+
+   <actionList>
+      <action>
+         <name>GetSearchCapabilities</name>
+         <argumentList>
+            <argument>
+               <name>SearchCaps</name>
+               <direction>out</direction>
+               <relatedStateVariable>SearchCapabilities</relatedStateVariable>
+            </argument>
+         </argumentList>
+      </action>
+
+      <action>
+         <name>GetSortCapabilities</name>
+         <argumentList>
+            <argument>
+               <name>SortCaps</name>
+               <direction>out</direction>
+               <relatedStateVariable>SortCapabilities</relatedStateVariable>
+            </argument>
+         </argumentList>
+      </action>
+
+      <action>
+         <name>GetSystemUpdateID</name>
+         <argumentList>
+            <argument>
+               <name>Id</name>
+               <direction>out</direction>
+               <relatedStateVariable>SystemUpdateID</relatedStateVariable>
+            </argument>
+         </argumentList>
+      </action>
+
+      <action>
+         <name>GetFeatureList</name>
+         <argumentList>
+            <argument>
+               <name>FeatureList</name>
+               <direction>out</direction>
+               <relatedStateVariable>FeatureList</relatedStateVariable>
+            </argument>
+         </argumentList>
+      </action>
+
+
+      <action>
+         <name>Browse</name>
+         <argumentList>
+            <argument>
+               <name>ObjectID</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_ObjectID</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>BrowseFlag</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_BrowseFlag</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>Filter</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_Filter</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>StartingIndex</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_Index</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>RequestedCount</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_Count</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>SortCriteria</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_SortCriteria</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>Result</name>
+               <direction>out</direction>
+               <relatedStateVariable>A_ARG_TYPE_Result</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>NumberReturned</name>
+               <direction>out</direction>
+               <relatedStateVariable>A_ARG_TYPE_Count</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>TotalMatches</name>
+               <direction>out</direction>
+               <relatedStateVariable>A_ARG_TYPE_Count</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>UpdateID</name>
+               <direction>out</direction>
+               <relatedStateVariable>A_ARG_TYPE_UpdateID</relatedStateVariable>
+            </argument>
+         </argumentList>
+      </action>
+
+      <action>
+         <Optional/>
+         <name>Search</name>
+         <argumentList>
+            <argument>
+               <name>ContainerID</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_ObjectID</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>SearchCriteria</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_SearchCriteria</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>Filter</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_Filter</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>StartingIndex</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_Index</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>RequestedCount</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_Count</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>SortCriteria</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_SortCriteria</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>Result</name>
+               <direction>out</direction>
+               <relatedStateVariable>A_ARG_TYPE_Result</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>NumberReturned</name>
+               <direction>out</direction>
+               <relatedStateVariable>A_ARG_TYPE_Count</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>TotalMatches</name>
+               <direction>out</direction>
+               <relatedStateVariable>A_ARG_TYPE_Count</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>UpdateID</name>
+               <direction>out</direction>
+               <relatedStateVariable>A_ARG_TYPE_UpdateID</relatedStateVariable>
+            </argument>
+         </argumentList>
+      </action>
+
+      <action>
+         <Optional/>
+         <name>CreateObject</name>
+         <argumentList>
+            <argument>
+               <name>ContainerID</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_ObjectID</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>Elements</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_Result</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>ObjectID</name>
+               <direction>out</direction>
+               <relatedStateVariable>A_ARG_TYPE_ObjectID</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>Result</name>
+               <direction>out</direction>
+               <relatedStateVariable>A_ARG_TYPE_Result</relatedStateVariable>
+            </argument>
+         </argumentList>
+      </action>
+
+      <action>
+         <Optional/>
+         <name>ImportResource</name>
+         <argumentList>
+            <argument>
+               <name>SourceURI</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_URI</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>DestinationURI</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_URI</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>TransferID</name>
+               <direction>out</direction>
+               <relatedStateVariable>A_ARG_TYPE_TransferID</relatedStateVariable>
+            </argument>
+         </argumentList>
+      </action>
+
+      <action>
+         <Optional/>
+         <name>GetTransferProgress</name>
+         <argumentList>
+            <argument>
+               <name>TransferID</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_TransferID</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>TransferStatus</name>
+               <direction>out</direction>
+               <relatedStateVariable>A_ARG_TYPE_TransferStatus</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>TransferLength</name>
+               <direction>out</direction>
+               <relatedStateVariable>A_ARG_TYPE_TransferLength</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>TransferTotal</name>
+               <direction>out</direction>
+               <relatedStateVariable>A_ARG_TYPE_TransferTotal</relatedStateVariable>
+            </argument>
+         </argumentList>
+      </action>
+
+      <action>
+         <Optional/>
+         <name>StopTransferResource</name>
+         <argumentList>
+            <argument>
+               <name>TransferID</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_TransferID</relatedStateVariable>
+            </argument>
+         </argumentList>
+      </action>
+   </actionList>
+</scpd>
diff --git a/data/xml/Makefile.am b/data/xml/Makefile.am
index 3963648..ad82af3 100644
--- a/data/xml/Makefile.am
+++ b/data/xml/Makefile.am
@@ -1,10 +1,16 @@
-xml_DATA = MediaServer2.xml \
-	   MediaRenderer2.xml \
-	   ContentDirectory.xml \
-	   ConnectionManager.xml \
-	   AVTransport2.xml \
-	   RenderingControl2.xml \
-	   X_MS_MediaReceiverRegistrar1.xml
+xml_in_files = MediaServer2.xml.in \
+	       MediaRenderer2.xml.in \
+               ContentDirectory.xml.in \
+               ConnectionManager.xml.in \
+               AVTransport2.xml.in \
+               RenderingControl2.xml.in \
+               X_MS_MediaReceiverRegistrar1.xml.in
+
+xml_DATA = $(xml_in_files:.xml.in=.xml)
+
+# Strip newlines and leading spaces from XML files as not all devices like them
+$(xml_DATA): $(xml_in_files) Makefile
+	@cat < $(@:.xml=.xml.in) | sed -re "s,^ +,,g" | tr -d "\n" > $@
 
 xmldir = $(datadir)/rygel/xml
 
diff --git a/data/xml/MediaRenderer2.xml b/data/xml/MediaRenderer2.xml.in
similarity index 100%
rename from data/xml/MediaRenderer2.xml
rename to data/xml/MediaRenderer2.xml.in
diff --git a/data/xml/MediaServer2.xml b/data/xml/MediaServer2.xml.in
similarity index 100%
rename from data/xml/MediaServer2.xml
rename to data/xml/MediaServer2.xml.in
diff --git a/data/xml/RenderingControl2.xml.in b/data/xml/RenderingControl2.xml.in
new file mode 100644
index 0000000..59af6f1
--- /dev/null
+++ b/data/xml/RenderingControl2.xml.in
@@ -0,0 +1,194 @@
+<?xml version="1.0"?>
+<!--============================================================
+Title: UPnP AV Rendering Control Service (RCS) Template
+
+Purpose:
+To identify the required/optional actions and state variables
+and the required allowed values defined by this service type.
+
+Note:
+This file uses tabs (not spaces) for block indentation.
+Any updates to this file should maintain this convention.
+This includes disabling any automatic tab-to-space conversion
+feature provided by your editor.
+================================================================-->
+<scpd>
+   <serviceStateTable>
+      <stateVariable>
+         <name>LastChange</name>
+         <sendEventsAttribute>yes</sendEventsAttribute>
+         <dataType>string</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>PresetNameList</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <Optional/>
+         <name>Mute</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>boolean</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <Optional/>
+         <name>Volume</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>ui2</dataType>
+         <allowedValueRange>
+            <minimum>0</minimum>
+            <step>1</step>
+         </allowedValueRange>
+      </stateVariable>
+
+      <stateVariable>
+         <Optional/>
+         <name>A_ARG_TYPE_Channel</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+         <allowedValueList>
+            <allowedValue>Master</allowedValue>
+         </allowedValueList>
+      </stateVariable>
+
+      <stateVariable>
+         <name>A_ARG_TYPE_InstanceID</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>ui4</dataType>
+      </stateVariable>
+
+      <stateVariable>
+         <name>A_ARG_TYPE_PresetName</name>
+         <sendEventsAttribute>no</sendEventsAttribute>
+         <dataType>string</dataType>
+         <allowedValueList>
+            <allowedValue>FactoryDefaults</allowedValue>
+         </allowedValueList>
+      </stateVariable>
+   </serviceStateTable>
+
+   <actionList>
+      <action>
+         <name>ListPresets</name>
+         <argumentList>
+            <argument>
+               <name>InstanceID</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>CurrentPresetNameList</name>
+               <direction>out</direction>
+               <relatedStateVariable>PresetNameList</relatedStateVariable>
+            </argument>
+         </argumentList>
+      </action>
+
+      <action>
+         <name>SelectPreset</name>
+         <argumentList>
+            <argument>
+               <name>InstanceID</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>PresetName</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_PresetName</relatedStateVariable>
+            </argument>
+         </argumentList>
+      </action>
+
+      <action>
+         <Optional/>
+         <name>GetMute</name>
+         <argumentList>
+            <argument>
+               <name>InstanceID</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>Channel</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_Channel</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>CurrentMute</name>
+               <direction>out</direction>
+               <relatedStateVariable>Mute</relatedStateVariable>
+            </argument>
+         </argumentList>
+      </action>
+
+      <action>
+         <Optional/>
+         <name>SetMute</name>
+         <argumentList>
+            <argument>
+               <name>InstanceID</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>Channel</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_Channel</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>DesiredMute</name>
+               <direction>in</direction>
+               <relatedStateVariable>Mute</relatedStateVariable>
+            </argument>
+         </argumentList>
+      </action>
+
+      <action>
+         <Optional/>
+         <name>GetVolume</name>
+         <argumentList>
+            <argument>
+               <name>InstanceID</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>Channel</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_Channel</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>CurrentVolume</name>
+               <direction>out</direction>
+               <relatedStateVariable>Volume</relatedStateVariable>
+            </argument>
+         </argumentList>
+      </action>
+
+      <action>
+         <Optional/>
+         <name>SetVolume</name>
+         <argumentList>
+            <argument>
+               <name>InstanceID</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>Channel</name>
+               <direction>in</direction>
+               <relatedStateVariable>A_ARG_TYPE_Channel</relatedStateVariable>
+            </argument>
+            <argument>
+               <name>DesiredVolume</name>
+               <direction>in</direction>
+               <relatedStateVariable>Volume</relatedStateVariable>
+            </argument>
+         </argumentList>
+      </action>
+   </actionList>
+</scpd>
diff --git a/data/xml/X_MS_MediaReceiverRegistrar1.xml b/data/xml/X_MS_MediaReceiverRegistrar1.xml.in
similarity index 100%
rename from data/xml/X_MS_MediaReceiverRegistrar1.xml
rename to data/xml/X_MS_MediaReceiverRegistrar1.xml.in



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]