--- a
+++ b/upmpd/OHPlaylist.xml
@@ -0,0 +1,337 @@
+<?xml version="1.0" encoding="utf-8"?>
+<scpd xmlns="urn:schemas-upnp-org:service-1-0">
+ <specVersion>
+ <major>1</major>
+ <minor>1</minor>
+ </specVersion>
+ <actionList>
+ <action>
+ <name>Play</name>
+ <argumentList></argumentList>
+ </action>
+ <action>
+ <name>Pause</name>
+ <argumentList></argumentList>
+ </action>
+ <action>
+ <name>Stop</name>
+ <argumentList></argumentList>
+ </action>
+ <action>
+ <name>Next</name>
+ <argumentList></argumentList>
+ </action>
+ <action>
+ <name>Previous</name>
+ <argumentList></argumentList>
+ </action>
+ <action>
+ <name>SetRepeat</name>
+ <argumentList>
+ <argument>
+ <name>Value</name>
+ <direction>in</direction>
+ <relatedStateVariable>Repeat</relatedStateVariable>
+ </argument>
+ </argumentList>
+ </action>
+ <action>
+ <name>Repeat</name>
+ <argumentList>
+ <argument>
+ <name>Value</name>
+ <direction>out</direction>
+ <relatedStateVariable>Repeat</relatedStateVariable>
+ </argument>
+ </argumentList>
+ </action>
+ <action>
+ <name>SetShuffle</name>
+ <argumentList>
+ <argument>
+ <name>Value</name>
+ <direction>in</direction>
+ <relatedStateVariable>Shuffle</relatedStateVariable>
+ </argument>
+ </argumentList>
+ </action>
+ <action>
+ <name>Shuffle</name>
+ <argumentList>
+ <argument>
+ <name>Value</name>
+ <direction>out</direction>
+ <relatedStateVariable>Shuffle</relatedStateVariable>
+ </argument>
+ </argumentList>
+ </action>
+ <action>
+ <name>SeekSecondAbsolute</name>
+ <argumentList>
+ <argument>
+ <name>Value</name>
+ <direction>in</direction>
+ <relatedStateVariable>A_ARG_TYPE_SeekSecondAbsolute_Value</relatedStateVariable>
+ </argument>
+ </argumentList>
+ </action>
+ <action>
+ <name>SeekSecondRelative</name>
+ <argumentList>
+ <argument>
+ <name>Value</name>
+ <direction>in</direction>
+ <relatedStateVariable>A_ARG_TYPE_SeekSecondRelative_Value</relatedStateVariable>
+ </argument>
+ </argumentList>
+ </action>
+ <action>
+ <name>SeekId</name>
+ <argumentList>
+ <argument>
+ <name>Value</name>
+ <direction>in</direction>
+ <relatedStateVariable>Id</relatedStateVariable>
+ </argument>
+ </argumentList>
+ </action>
+ <action>
+ <name>SeekIndex</name>
+ <argumentList>
+ <argument>
+ <name>Value</name>
+ <direction>in</direction>
+ <relatedStateVariable>A_ARG_TYPE_SeekIndex_Value</relatedStateVariable>
+ </argument>
+ </argumentList>
+ </action>
+ <action>
+ <name>TransportState</name>
+ <argumentList>
+ <argument>
+ <name>Value</name>
+ <direction>out</direction>
+ <relatedStateVariable>TransportState</relatedStateVariable>
+ </argument>
+ </argumentList>
+ </action>
+ <action>
+ <name>Id</name>
+ <argumentList>
+ <argument>
+ <name>Value</name>
+ <direction>out</direction>
+ <relatedStateVariable>Id</relatedStateVariable>
+ </argument>
+ </argumentList>
+ </action>
+ <action>
+ <name>Read</name>
+ <argumentList>
+ <argument>
+ <name>Id</name>
+ <direction>in</direction>
+ <relatedStateVariable>Id</relatedStateVariable>
+ </argument>
+ <argument>
+ <name>Uri</name>
+ <direction>out</direction>
+ <relatedStateVariable>A_ARG_TYPE_Read_Uri</relatedStateVariable>
+ </argument>
+ <argument>
+ <name>Metadata</name>
+ <direction>out</direction>
+ <relatedStateVariable>A_ARG_TYPE_Read_Metadata</relatedStateVariable>
+ </argument>
+ </argumentList>
+ </action>
+ <action>
+ <name>ReadList</name>
+ <argumentList>
+ <argument>
+ <name>IdList</name>
+ <direction>in</direction>
+ <relatedStateVariable>A_ARG_TYPE_ReadList_IdList</relatedStateVariable>
+ </argument>
+ <argument>
+ <name>TrackList</name>
+ <direction>out</direction>
+ <relatedStateVariable>A_ARG_TYPE_ReadList_TrackList</relatedStateVariable>
+ </argument>
+ </argumentList>
+ </action>
+ <action>
+ <name>Insert</name>
+ <argumentList>
+ <argument>
+ <name>AfterId</name>
+ <direction>in</direction>
+ <relatedStateVariable>Id</relatedStateVariable>
+ </argument>
+ <argument>
+ <name>Uri</name>
+ <direction>in</direction>
+ <relatedStateVariable>A_ARG_TYPE_Insert_Uri</relatedStateVariable>
+ </argument>
+ <argument>
+ <name>Metadata</name>
+ <direction>in</direction>
+ <relatedStateVariable>A_ARG_TYPE_Insert_Metadata</relatedStateVariable>
+ </argument>
+ <argument>
+ <name>NewId</name>
+ <direction>out</direction>
+ <relatedStateVariable>Id</relatedStateVariable>
+ </argument>
+ </argumentList>
+ </action>
+ <action>
+ <name>DeleteId</name>
+ <argumentList>
+ <argument>
+ <name>Value</name>
+ <direction>in</direction>
+ <relatedStateVariable>Id</relatedStateVariable>
+ </argument>
+ </argumentList>
+ </action>
+ <action>
+ <name>DeleteAll</name>
+ <argumentList></argumentList>
+ </action>
+ <action>
+ <name>TracksMax</name>
+ <argumentList>
+ <argument>
+ <name>Value</name>
+ <direction>out</direction>
+ <relatedStateVariable>TracksMax</relatedStateVariable>
+ </argument>
+ </argumentList>
+ </action>
+ <action>
+ <name>IdArray</name>
+ <argumentList>
+ <argument>
+ <name>Token</name>
+ <direction>out</direction>
+ <relatedStateVariable>A_ARG_TYPE_IdArray_Token</relatedStateVariable>
+ </argument>
+ <argument>
+ <name>Array</name>
+ <direction>out</direction>
+ <relatedStateVariable>IdArray</relatedStateVariable>
+ </argument>
+ </argumentList>
+ </action>
+ <action>
+ <name>IdArrayChanged</name>
+ <argumentList>
+ <argument>
+ <name>Token</name>
+ <direction>in</direction>
+ <relatedStateVariable>A_ARG_TYPE_IdArrayChanged_Token</relatedStateVariable>
+ </argument>
+ <argument>
+ <name>Value</name>
+ <direction>out</direction>
+ <relatedStateVariable>A_ARG_TYPE_IdArrayChanged_Value</relatedStateVariable>
+ </argument>
+ </argumentList>
+ </action>
+ <action>
+ <name>ProtocolInfo</name>
+ <argumentList>
+ <argument>
+ <name>Value</name>
+ <direction>out</direction>
+ <relatedStateVariable>ProtocolInfo</relatedStateVariable>
+ </argument>
+ </argumentList>
+ </action>
+ </actionList>
+ <serviceStateTable>
+ <stateVariable sendEvents="yes">
+ <name>TransportState</name>
+ <dataType>string</dataType>
+ <allowedValueList>
+ <allowedValue>Buffering</allowedValue>
+ <allowedValue>Paused</allowedValue>
+ <allowedValue>Playing</allowedValue>
+ <allowedValue>Stopped</allowedValue>
+ </allowedValueList>
+ </stateVariable>
+ <stateVariable sendEvents="yes">
+ <name>Repeat</name>
+ <dataType>boolean</dataType>
+ </stateVariable>
+ <stateVariable sendEvents="yes">
+ <name>Shuffle</name>
+ <dataType>boolean</dataType>
+ </stateVariable>
+ <stateVariable sendEvents="yes">
+ <name>Id</name>
+ <dataType>ui4</dataType>
+ </stateVariable>
+ <stateVariable sendEvents="yes">
+ <name>TracksMax</name>
+ <dataType>ui4</dataType>
+ </stateVariable>
+ <stateVariable sendEvents="yes">
+ <name>ProtocolInfo</name>
+ <dataType>string</dataType>
+ </stateVariable>
+ <stateVariable sendEvents="yes">
+ <name>IdArray</name>
+ <dataType>bin.base64</dataType>
+ </stateVariable>
+ <stateVariable sendEvents="no">
+ <name>A_ARG_TYPE_SeekSecondAbsolute_Value</name>
+ <dataType>ui4</dataType>
+ </stateVariable>
+ <stateVariable sendEvents="no">
+ <name>A_ARG_TYPE_SeekSecondRelative_Value</name>
+ <dataType>i4</dataType>
+ </stateVariable>
+ <stateVariable sendEvents="no">
+ <name>A_ARG_TYPE_SeekIndex_Value</name>
+ <dataType>ui4</dataType>
+ </stateVariable>
+ <stateVariable sendEvents="no">
+ <name>A_ARG_TYPE_Read_Uri</name>
+ <dataType>string</dataType>
+ </stateVariable>
+ <stateVariable sendEvents="no">
+ <name>A_ARG_TYPE_Read_Metadata</name>
+ <dataType>string</dataType>
+ </stateVariable>
+ <stateVariable sendEvents="no">
+ <name>A_ARG_TYPE_ReadList_IdList</name>
+ <dataType>string</dataType>
+ </stateVariable>
+ <stateVariable sendEvents="no">
+ <name>A_ARG_TYPE_ReadList_TrackList</name>
+ <dataType>string</dataType>
+ </stateVariable>
+ <stateVariable sendEvents="no">
+ <name>A_ARG_TYPE_Insert_Uri</name>
+ <dataType>string</dataType>
+ </stateVariable>
+ <stateVariable sendEvents="no">
+ <name>A_ARG_TYPE_Insert_Metadata</name>
+ <dataType>string</dataType>
+ </stateVariable>
+ <stateVariable sendEvents="no">
+ <name>A_ARG_TYPE_IdArray_Token</name>
+ <dataType>ui4</dataType>
+ </stateVariable>
+ <stateVariable sendEvents="no">
+ <name>A_ARG_TYPE_IdArrayChanged_Token</name>
+ <dataType>ui4</dataType>
+ </stateVariable>
+ <stateVariable sendEvents="no">
+ <name>A_ARG_TYPE_IdArrayChanged_Value</name>
+ <dataType>boolean</dataType>
+ </stateVariable>
+ </serviceStateTable>
+</scpd>