Switch to side-by-side view

--- 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>