<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.openhome.org/mediawiki/skins/common/feed.css?270"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.openhome.org/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Av%3ADeveloper%3AEriskay%3APlaylistService</id>
		<title>Av:Developer:Eriskay:PlaylistService - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.openhome.org/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Av%3ADeveloper%3AEriskay%3APlaylistService"/>
		<link rel="alternate" type="text/html" href="http://wiki.openhome.org/mediawiki/index.php?title=Av:Developer:Eriskay:PlaylistService&amp;action=history"/>
		<updated>2026-05-12T22:56:21Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.16.2</generator>

	<entry>
		<id>http://wiki.openhome.org/mediawiki/index.php?title=Av:Developer:Eriskay:PlaylistService&amp;diff=1313&amp;oldid=prev</id>
		<title>Simonc: Created page with &quot;= Playlist Service =  == Overview == The Playlist service provides access to a list of tracks, which can be played in sequence, starting at any point. ‘Shuffle’ and ‘Repeat...&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.openhome.org/mediawiki/index.php?title=Av:Developer:Eriskay:PlaylistService&amp;diff=1313&amp;oldid=prev"/>
				<updated>2015-12-15T13:22:59Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;= Playlist Service =  == Overview == The Playlist service provides access to a list of tracks, which can be played in sequence, starting at any point. ‘Shuffle’ and ‘Repeat...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Playlist Service =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
The Playlist service provides access to a list of tracks, which can be played in sequence, starting at any point. ‘Shuffle’ and ‘Repeat’ modes also exist, allowing track order to be randomised and playback to loop.&lt;br /&gt;
&lt;br /&gt;
If a device's [[Av:Developer:Eriskay:ProductService | Product]] service reports a source of type &amp;lt;tt&amp;gt;&amp;quot;Playlist&amp;quot;&amp;lt;/tt&amp;gt;, then that device is guaranteed to bear the Playlist service.  If the Playlist service is available, all its properties and actions must be fully implemented.&lt;br /&gt;
&lt;br /&gt;
== Evented Properties ==&lt;br /&gt;
=== Repeat ===&lt;br /&gt;
By default a playlist plays each track in sequence then stops after playing the final track. Setting the &amp;lt;tt&amp;gt;Repeat&amp;lt;/tt&amp;gt; property changes this behaviour to loop from the last track back to the first, playing it immediately.&lt;br /&gt;
&lt;br /&gt;
By default, &amp;lt;tt&amp;gt;Repeat&amp;lt;/tt&amp;gt; is off.&lt;br /&gt;
&lt;br /&gt;
=== Shuffle ===&lt;br /&gt;
Tracks are played in random order if the &amp;lt;tt&amp;gt;Shuffle&amp;lt;/tt&amp;gt; property is enabled.  As with normal playback, each track is played once then the playlist stops.  If &amp;lt;tt&amp;gt;Shuffle&amp;lt;/tt&amp;gt; is enabled mid-way through a playlist, each track in the list is shuffled, including any that have just been played. &lt;br /&gt;
&lt;br /&gt;
When combined with &amp;lt;tt&amp;gt;Repeat&amp;lt;/tt&amp;gt;, each track is played once before any track is played for a second time. &lt;br /&gt;
&lt;br /&gt;
By default, &amp;lt;tt&amp;gt;Shuffle&amp;lt;/tt&amp;gt; is off.&lt;br /&gt;
&lt;br /&gt;
=== Id ===&lt;br /&gt;
The id of the current track (the track currently playing or that would be played if the &amp;lt;tt&amp;gt;Transport.Play&amp;lt;/tt&amp;gt; action was invoked while this source was active). Or &amp;lt;tt&amp;gt;0&amp;lt;/tt&amp;gt; if the playlist is empty.&lt;br /&gt;
&lt;br /&gt;
=== IdArray ===&lt;br /&gt;
A JSON integer array containing the ids of the tracks currently in the playlist.&lt;br /&gt;
&lt;br /&gt;
For example, &amp;lt;tt&amp;gt;[2, 276, 19]&amp;lt;/tt&amp;gt; describes a playlist containing track ids 2, 276, and 19 in that order.&lt;br /&gt;
&lt;br /&gt;
Contains &amp;lt;tt&amp;gt;[0..TracksMax]&amp;lt;/tt&amp;gt; elements.&lt;br /&gt;
&lt;br /&gt;
=== TracksMax ===&lt;br /&gt;
The maximum number of tracks a playlist can contain. Set on startup and invariant thereafter.&lt;br /&gt;
&lt;br /&gt;
== Actions ==&lt;br /&gt;
=== SetRepeat ===&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
Arguments: (in bool repeat)&lt;br /&gt;
&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Enable or disable repeat mode.&lt;br /&gt;
&lt;br /&gt;
=== Repeat ===&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
Arguments: (out bool repeat)&lt;br /&gt;
&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Report whether repeat mode is enabled.&lt;br /&gt;
&lt;br /&gt;
=== SetShuffle ===&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
Arguments: (out bool shuffle)&lt;br /&gt;
&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Enable or disable shuffle mode.&lt;br /&gt;
&lt;br /&gt;
=== Shuffle ===&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
Arguments: (in bool shuffle)&lt;br /&gt;
&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Report whether shuffle mode is enabled.&lt;br /&gt;
&lt;br /&gt;
=== Id ===&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
Arguments: (out uint id)&lt;br /&gt;
&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Return the value of the &amp;lt;tt&amp;gt;Id&amp;lt;/tt&amp;gt; state variable.&lt;br /&gt;
&lt;br /&gt;
=== ReadList ===&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
Arguments: (in string ids, out string json)&lt;br /&gt;
&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Given a space separated list of track ids, report their associated uri and metadata in the following JSON form:&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
    [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;id&amp;quot;: integer_id,&lt;br /&gt;
            &amp;quot;uri&amp;quot;: &amp;quot;track_uri&amp;quot;,&lt;br /&gt;
            &amp;quot;metadata&amp;quot;: &amp;quot;track_metadata&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;id&amp;quot;: integer_id,&lt;br /&gt;
            &amp;quot;uri&amp;quot;: &amp;quot;track_uri&amp;quot;,&lt;br /&gt;
            &amp;quot;metadata&amp;quot;: &amp;quot;track_metadata&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
Any ids not in the playlist are ignored.&lt;br /&gt;
&lt;br /&gt;
=== Insert ===&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
Arguments: (in uint afterId, in string uri, in string metadata, out uint newId)&lt;br /&gt;
&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Adds the given uri and metadata as a new track to the playlist. &lt;br /&gt;
&lt;br /&gt;
Set the &amp;lt;tt&amp;gt;AfterId&amp;lt;/tt&amp;gt; argument to &amp;lt;tt&amp;gt;0&amp;lt;/tt&amp;gt; to insert a track at the start of the playlist. &lt;br /&gt;
&lt;br /&gt;
Reports a &amp;lt;tt&amp;gt;800&amp;lt;/tt&amp;gt; fault code if &amp;lt;tt&amp;gt;AfterId&amp;lt;/tt&amp;gt; is not &amp;lt;tt&amp;gt;0&amp;lt;/tt&amp;gt; and doesn’t appear in the playlist. &lt;br /&gt;
&amp;lt;br&amp;gt;Reports a &amp;lt;tt&amp;gt;801&amp;lt;/tt&amp;gt; fault code if the playlist is full (i.e. already contains &amp;lt;tt&amp;gt;TracksMax&amp;lt;/tt&amp;gt; tracks).&lt;br /&gt;
&lt;br /&gt;
=== DeleteList ===&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
Arguments: (int string ids)&lt;br /&gt;
&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Given a space separated list of track ids, remove the tracks with these ids from the playlist. &lt;br /&gt;
&lt;br /&gt;
If the id to be deleted is currently playing, the next track becomes current. &lt;br /&gt;
&lt;br /&gt;
Any ids not in the playlist are silently ignored.&lt;br /&gt;
&lt;br /&gt;
=== DeleteAll ===&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
Arguments: None&lt;br /&gt;
&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Delete all tracks from the playlist.&lt;br /&gt;
&lt;br /&gt;
== Move ==&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
Arguments: (in string ids, in uint afterId)&lt;br /&gt;
&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Move a space separated list of ids.&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;tt&amp;gt;AfterId&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;0&amp;lt;/tt&amp;gt; to move the tracks to the start of the playlist.&lt;br /&gt;
&lt;br /&gt;
Any ids not in the playlist are silently ignored.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;AfterId&amp;lt;/tt&amp;gt; must not also be in the list to be moved.&lt;br /&gt;
&lt;br /&gt;
=== TracksMax ===&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
Arguments: (out uint max)&lt;br /&gt;
&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Return the value of the &amp;lt;tt&amp;gt;TracksMax&amp;lt;/tt&amp;gt; property.&lt;br /&gt;
&lt;br /&gt;
=== IdArray ===&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
Arguments: (out uint token, out string json)&lt;br /&gt;
&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Return the value of the &amp;lt;tt&amp;gt;IdArray&amp;lt;/tt&amp;gt; property.  Supports polling implementations by returning a token which can be used with the &amp;lt;tt&amp;gt;IdArrayChanged&amp;lt;/tt&amp;gt; action.&lt;br /&gt;
&lt;br /&gt;
=== IdArrayChanged ===&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
Arguments: (in uint token, out bool changed)&lt;br /&gt;
&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Check to see if &amp;lt;tt&amp;gt;IdArray&amp;lt;/tt&amp;gt; has changed since gathering the specified token. This token must have been previously collected from the &amp;lt;tt&amp;gt;IdArray&amp;lt;/tt&amp;gt; action. &lt;br /&gt;
&lt;br /&gt;
This mechanism is provided specifically for any basic control points unable to partake in standard eventing.&lt;br /&gt;
&lt;br /&gt;
== UPnP Service Description ==&lt;br /&gt;
For devices supporting the UPnP protocol, the service description is&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;name: &amp;quot;Playlist&amp;quot; &lt;br /&gt;
&amp;lt;br&amp;gt;domain: &amp;quot;openhome.org.eriskay&amp;quot; &lt;br /&gt;
&amp;lt;br&amp;gt;version: &amp;quot;1&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;scpd xmlns=&amp;quot;urn:schemas-upnp-org:service-1-0&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;specVersion&amp;gt;&lt;br /&gt;
    &amp;lt;major&amp;gt;1&amp;lt;/major&amp;gt;&lt;br /&gt;
    &amp;lt;minor&amp;gt;0&amp;lt;/minor&amp;gt;&lt;br /&gt;
  &amp;lt;/specVersion&amp;gt;&lt;br /&gt;
  &amp;lt;actionList&amp;gt;&lt;br /&gt;
    &amp;lt;action&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;SetRepeat&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;argumentList&amp;gt;&lt;br /&gt;
        &amp;lt;argument&amp;gt;&lt;br /&gt;
          &amp;lt;name&amp;gt;Repeat&amp;lt;/name&amp;gt;&lt;br /&gt;
          &amp;lt;direction&amp;gt;in&amp;lt;/direction&amp;gt;&lt;br /&gt;
          &amp;lt;relatedStateVariable&amp;gt;Repeat&amp;lt;/relatedStateVariable&amp;gt;&lt;br /&gt;
        &amp;lt;/argument&amp;gt;&lt;br /&gt;
      &amp;lt;/argumentList&amp;gt;&lt;br /&gt;
    &amp;lt;/action&amp;gt;&lt;br /&gt;
    &amp;lt;action&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;Repeat&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;argumentList&amp;gt;&lt;br /&gt;
        &amp;lt;argument&amp;gt;&lt;br /&gt;
          &amp;lt;name&amp;gt;Repeat&amp;lt;/name&amp;gt;&lt;br /&gt;
          &amp;lt;direction&amp;gt;out&amp;lt;/direction&amp;gt;&lt;br /&gt;
          &amp;lt;relatedStateVariable&amp;gt;Repeat&amp;lt;/relatedStateVariable&amp;gt;&lt;br /&gt;
        &amp;lt;/argument&amp;gt;&lt;br /&gt;
      &amp;lt;/argumentList&amp;gt;&lt;br /&gt;
    &amp;lt;/action&amp;gt;&lt;br /&gt;
    &amp;lt;action&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;SetShuffle&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;argumentList&amp;gt;&lt;br /&gt;
        &amp;lt;argument&amp;gt;&lt;br /&gt;
          &amp;lt;name&amp;gt;Shuffle&amp;lt;/name&amp;gt;&lt;br /&gt;
          &amp;lt;direction&amp;gt;in&amp;lt;/direction&amp;gt;&lt;br /&gt;
          &amp;lt;relatedStateVariable&amp;gt;Shuffle&amp;lt;/relatedStateVariable&amp;gt;&lt;br /&gt;
        &amp;lt;/argument&amp;gt;&lt;br /&gt;
      &amp;lt;/argumentList&amp;gt;&lt;br /&gt;
    &amp;lt;/action&amp;gt;&lt;br /&gt;
    &amp;lt;action&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;Shuffle&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;argumentList&amp;gt;&lt;br /&gt;
        &amp;lt;argument&amp;gt;&lt;br /&gt;
          &amp;lt;name&amp;gt;Shuffle&amp;lt;/name&amp;gt;&lt;br /&gt;
          &amp;lt;direction&amp;gt;out&amp;lt;/direction&amp;gt;&lt;br /&gt;
          &amp;lt;relatedStateVariable&amp;gt;Shuffle&amp;lt;/relatedStateVariable&amp;gt;&lt;br /&gt;
        &amp;lt;/argument&amp;gt;&lt;br /&gt;
      &amp;lt;/argumentList&amp;gt;&lt;br /&gt;
    &amp;lt;/action&amp;gt;&lt;br /&gt;
    &amp;lt;action&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;Id&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;argumentList&amp;gt;&lt;br /&gt;
        &amp;lt;argument&amp;gt;&lt;br /&gt;
          &amp;lt;name&amp;gt;Id&amp;lt;/name&amp;gt;&lt;br /&gt;
          &amp;lt;direction&amp;gt;out&amp;lt;/direction&amp;gt;&lt;br /&gt;
          &amp;lt;relatedStateVariable&amp;gt;Id&amp;lt;/relatedStateVariable&amp;gt;&lt;br /&gt;
        &amp;lt;/argument&amp;gt;&lt;br /&gt;
      &amp;lt;/argumentList&amp;gt;&lt;br /&gt;
    &amp;lt;/action&amp;gt;&lt;br /&gt;
    &amp;lt;action&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;ReadList&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;argumentList&amp;gt;&lt;br /&gt;
        &amp;lt;argument&amp;gt;&lt;br /&gt;
          &amp;lt;name&amp;gt;IdList&amp;lt;/name&amp;gt;&lt;br /&gt;
          &amp;lt;direction&amp;gt;in&amp;lt;/direction&amp;gt;&lt;br /&gt;
          &amp;lt;relatedStateVariable&amp;gt;IdList&amp;lt;/relatedStateVariable&amp;gt;&lt;br /&gt;
        &amp;lt;/argument&amp;gt;&lt;br /&gt;
        &amp;lt;argument&amp;gt;&lt;br /&gt;
          &amp;lt;name&amp;gt;TrackList&amp;lt;/name&amp;gt;&lt;br /&gt;
          &amp;lt;direction&amp;gt;out&amp;lt;/direction&amp;gt;&lt;br /&gt;
          &amp;lt;relatedStateVariable&amp;gt;TrackList&amp;lt;/relatedStateVariable&amp;gt;&lt;br /&gt;
        &amp;lt;/argument&amp;gt;&lt;br /&gt;
      &amp;lt;/argumentList&amp;gt;&lt;br /&gt;
    &amp;lt;/action&amp;gt;&lt;br /&gt;
    &amp;lt;action&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;Insert&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;argumentList&amp;gt;&lt;br /&gt;
        &amp;lt;argument&amp;gt;&lt;br /&gt;
          &amp;lt;name&amp;gt;AfterId&amp;lt;/name&amp;gt;&lt;br /&gt;
          &amp;lt;direction&amp;gt;in&amp;lt;/direction&amp;gt;&lt;br /&gt;
          &amp;lt;relatedStateVariable&amp;gt;Id&amp;lt;/relatedStateVariable&amp;gt;&lt;br /&gt;
        &amp;lt;/argument&amp;gt;&lt;br /&gt;
        &amp;lt;argument&amp;gt;&lt;br /&gt;
          &amp;lt;name&amp;gt;Uri&amp;lt;/name&amp;gt;&lt;br /&gt;
          &amp;lt;direction&amp;gt;in&amp;lt;/direction&amp;gt;&lt;br /&gt;
          &amp;lt;relatedStateVariable&amp;gt;Uri&amp;lt;/relatedStateVariable&amp;gt;&lt;br /&gt;
        &amp;lt;/argument&amp;gt;&lt;br /&gt;
        &amp;lt;argument&amp;gt;&lt;br /&gt;
          &amp;lt;name&amp;gt;Metadata&amp;lt;/name&amp;gt;&lt;br /&gt;
          &amp;lt;direction&amp;gt;in&amp;lt;/direction&amp;gt;&lt;br /&gt;
          &amp;lt;relatedStateVariable&amp;gt;Metadata&amp;lt;/relatedStateVariable&amp;gt;&lt;br /&gt;
        &amp;lt;/argument&amp;gt;&lt;br /&gt;
        &amp;lt;argument&amp;gt;&lt;br /&gt;
          &amp;lt;name&amp;gt;NewId&amp;lt;/name&amp;gt;&lt;br /&gt;
          &amp;lt;direction&amp;gt;out&amp;lt;/direction&amp;gt;&lt;br /&gt;
          &amp;lt;relatedStateVariable&amp;gt;Id&amp;lt;/relatedStateVariable&amp;gt;&lt;br /&gt;
        &amp;lt;/argument&amp;gt;&lt;br /&gt;
      &amp;lt;/argumentList&amp;gt;&lt;br /&gt;
    &amp;lt;/action&amp;gt;&lt;br /&gt;
    &amp;lt;action&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;Move&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;argumentList&amp;gt;&lt;br /&gt;
        &amp;lt;argument&amp;gt;&lt;br /&gt;
          &amp;lt;name&amp;gt;AfterId&amp;lt;/name&amp;gt;&lt;br /&gt;
          &amp;lt;direction&amp;gt;in&amp;lt;/direction&amp;gt;&lt;br /&gt;
          &amp;lt;relatedStateVariable&amp;gt;Id&amp;lt;/relatedStateVariable&amp;gt;&lt;br /&gt;
        &amp;lt;/argument&amp;gt;&lt;br /&gt;
        &amp;lt;argument&amp;gt;&lt;br /&gt;
          &amp;lt;name&amp;gt;IdList&amp;lt;/name&amp;gt;&lt;br /&gt;
          &amp;lt;direction&amp;gt;in&amp;lt;/direction&amp;gt;&lt;br /&gt;
          &amp;lt;relatedStateVariable&amp;gt;IdList&amp;lt;/relatedStateVariable&amp;gt;&lt;br /&gt;
        &amp;lt;/argument&amp;gt;&lt;br /&gt;
      &amp;lt;/argumentList&amp;gt;&lt;br /&gt;
    &amp;lt;/action&amp;gt;&lt;br /&gt;
    &amp;lt;action&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;DeleteList&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;argumentList&amp;gt;&lt;br /&gt;
        &amp;lt;argument&amp;gt;&lt;br /&gt;
          &amp;lt;name&amp;gt;IdList&amp;lt;/name&amp;gt;&lt;br /&gt;
          &amp;lt;direction&amp;gt;in&amp;lt;/direction&amp;gt;&lt;br /&gt;
          &amp;lt;relatedStateVariable&amp;gt;IdList&amp;lt;/relatedStateVariable&amp;gt;&lt;br /&gt;
        &amp;lt;/argument&amp;gt;&lt;br /&gt;
      &amp;lt;/argumentList&amp;gt;&lt;br /&gt;
    &amp;lt;/action&amp;gt;&lt;br /&gt;
    &amp;lt;action&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;DeleteAll&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;/action&amp;gt;&lt;br /&gt;
    &amp;lt;action&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;TracksMax&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;argumentList&amp;gt;&lt;br /&gt;
        &amp;lt;argument&amp;gt;&lt;br /&gt;
          &amp;lt;name&amp;gt;TracksMax&amp;lt;/name&amp;gt;&lt;br /&gt;
          &amp;lt;direction&amp;gt;out&amp;lt;/direction&amp;gt;&lt;br /&gt;
          &amp;lt;relatedStateVariable&amp;gt;TracksMax&amp;lt;/relatedStateVariable&amp;gt;&lt;br /&gt;
        &amp;lt;/argument&amp;gt;&lt;br /&gt;
      &amp;lt;/argumentList&amp;gt;&lt;br /&gt;
    &amp;lt;/action&amp;gt;&lt;br /&gt;
    &amp;lt;action&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;IdArray&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;argumentList&amp;gt;&lt;br /&gt;
        &amp;lt;argument&amp;gt;&lt;br /&gt;
          &amp;lt;name&amp;gt;Token&amp;lt;/name&amp;gt;&lt;br /&gt;
          &amp;lt;direction&amp;gt;out&amp;lt;/direction&amp;gt;&lt;br /&gt;
          &amp;lt;relatedStateVariable&amp;gt;IdArrayToken&amp;lt;/relatedStateVariable&amp;gt;&lt;br /&gt;
        &amp;lt;/argument&amp;gt;&lt;br /&gt;
        &amp;lt;argument&amp;gt;&lt;br /&gt;
          &amp;lt;name&amp;gt;Array&amp;lt;/name&amp;gt;&lt;br /&gt;
          &amp;lt;direction&amp;gt;out&amp;lt;/direction&amp;gt;&lt;br /&gt;
          &amp;lt;relatedStateVariable&amp;gt;IdArray&amp;lt;/relatedStateVariable&amp;gt;&lt;br /&gt;
        &amp;lt;/argument&amp;gt;&lt;br /&gt;
      &amp;lt;/argumentList&amp;gt;&lt;br /&gt;
    &amp;lt;/action&amp;gt;&lt;br /&gt;
    &amp;lt;action&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;IdArrayChanged&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;argumentList&amp;gt;&lt;br /&gt;
        &amp;lt;argument&amp;gt;&lt;br /&gt;
          &amp;lt;name&amp;gt;Token&amp;lt;/name&amp;gt;&lt;br /&gt;
          &amp;lt;direction&amp;gt;in&amp;lt;/direction&amp;gt;&lt;br /&gt;
          &amp;lt;relatedStateVariable&amp;gt;IdArrayToken&amp;lt;/relatedStateVariable&amp;gt;&lt;br /&gt;
        &amp;lt;/argument&amp;gt;&lt;br /&gt;
        &amp;lt;argument&amp;gt;&lt;br /&gt;
          &amp;lt;name&amp;gt;Value&amp;lt;/name&amp;gt;&lt;br /&gt;
          &amp;lt;direction&amp;gt;out&amp;lt;/direction&amp;gt;&lt;br /&gt;
          &amp;lt;relatedStateVariable&amp;gt;IdArrayChanged&amp;lt;/relatedStateVariable&amp;gt;&lt;br /&gt;
        &amp;lt;/argument&amp;gt;&lt;br /&gt;
      &amp;lt;/argumentList&amp;gt;&lt;br /&gt;
    &amp;lt;/action&amp;gt;&lt;br /&gt;
  &amp;lt;/actionList&amp;gt;&lt;br /&gt;
  &amp;lt;serviceStateTable&amp;gt;&lt;br /&gt;
    &amp;lt;stateVariable sendEvents=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;Repeat&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;dataType&amp;gt;boolean&amp;lt;/dataType&amp;gt;&lt;br /&gt;
    &amp;lt;/stateVariable&amp;gt;&lt;br /&gt;
    &amp;lt;stateVariable sendEvents=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;Shuffle&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;dataType&amp;gt;boolean&amp;lt;/dataType&amp;gt;&lt;br /&gt;
    &amp;lt;/stateVariable&amp;gt;&lt;br /&gt;
    &amp;lt;stateVariable sendEvents=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;Id&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;dataType&amp;gt;ui4&amp;lt;/dataType&amp;gt;&lt;br /&gt;
    &amp;lt;/stateVariable&amp;gt;&lt;br /&gt;
    &amp;lt;stateVariable sendEvents=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;IdArray&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;dataType&amp;gt;string&amp;lt;/dataType&amp;gt;&lt;br /&gt;
    &amp;lt;/stateVariable&amp;gt;&lt;br /&gt;
    &amp;lt;stateVariable sendEvents=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;TracksMax&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;dataType&amp;gt;ui4&amp;lt;/dataType&amp;gt;&lt;br /&gt;
    &amp;lt;/stateVariable&amp;gt;&lt;br /&gt;
    &amp;lt;stateVariable sendEvents=&amp;quot;no&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;IdList&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;dataType&amp;gt;string&amp;lt;/dataType&amp;gt;&lt;br /&gt;
    &amp;lt;/stateVariable&amp;gt;&lt;br /&gt;
    &amp;lt;stateVariable sendEvents=&amp;quot;no&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;TrackList&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;dataType&amp;gt;string&amp;lt;/dataType&amp;gt;&lt;br /&gt;
    &amp;lt;/stateVariable&amp;gt;&lt;br /&gt;
    &amp;lt;stateVariable sendEvents=&amp;quot;no&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;Uri&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;dataType&amp;gt;string&amp;lt;/dataType&amp;gt;&lt;br /&gt;
    &amp;lt;/stateVariable&amp;gt;&lt;br /&gt;
    &amp;lt;stateVariable sendEvents=&amp;quot;no&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;Metadata&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;dataType&amp;gt;string&amp;lt;/dataType&amp;gt;&lt;br /&gt;
    &amp;lt;/stateVariable&amp;gt;&lt;br /&gt;
    &amp;lt;stateVariable sendEvents=&amp;quot;no&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;IdArrayToken&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;dataType&amp;gt;ui4&amp;lt;/dataType&amp;gt;&lt;br /&gt;
    &amp;lt;/stateVariable&amp;gt;&lt;br /&gt;
    &amp;lt;stateVariable sendEvents=&amp;quot;no&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;IdArrayChanged&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;dataType&amp;gt;boolean&amp;lt;/dataType&amp;gt;&lt;br /&gt;
    &amp;lt;/stateVariable&amp;gt;&lt;br /&gt;
  &amp;lt;/serviceStateTable&amp;gt;&lt;br /&gt;
&amp;lt;/scpd&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Simonc</name></author>	</entry>

	</feed>