<?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%3APinsService</id>
		<title>Av:Developer:PinsService - 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%3APinsService"/>
		<link rel="alternate" type="text/html" href="http://wiki.openhome.org/mediawiki/index.php?title=Av:Developer:PinsService&amp;action=history"/>
		<updated>2026-05-22T09:17:27Z</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:PinsService&amp;diff=1367&amp;oldid=prev</id>
		<title>Simonc at 09:14, 17 August 2018</title>
		<link rel="alternate" type="text/html" href="http://wiki.openhome.org/mediawiki/index.php?title=Av:Developer:PinsService&amp;diff=1367&amp;oldid=prev"/>
				<updated>2018-08-17T09:14:44Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 09:14, 17 August 2018&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 4:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 4:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The Pins service provides access both device-specific and account-wide pins. Both classes of pin can be read from or invoked on a device. Device-specific pins can also be edited; account-wide pins may be editable via a device but should also have edit APIs in the service or location that provides general account support.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The Pins service provides access both device-specific and account-wide pins. Both classes of pin can be read from or invoked on a device. Device-specific pins can also be edited; account-wide pins may be editable via a device but should also have edit APIs in the service or location that provides general account support.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;= Supported Content =&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Reference code contains support for the following [[Av:Developer:PinInvokers | pinnable content]].&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;= State Variables =&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;= State Variables =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Simonc</name></author>	</entry>

	<entry>
		<id>http://wiki.openhome.org/mediawiki/index.php?title=Av:Developer:PinsService&amp;diff=1366&amp;oldid=prev</id>
		<title>Simonc: Created page with &quot;= Overview =  A pin is a set of instructions to switch source or play one or more tracks on a device. Some pins will have wholly predictable results (e.g. switch to Analog2, play...&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.openhome.org/mediawiki/index.php?title=Av:Developer:PinsService&amp;diff=1366&amp;oldid=prev"/>
				<updated>2018-08-17T09:10:11Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;= Overview =  A pin is a set of instructions to switch source or play one or more tracks on a device. Some pins will have wholly predictable results (e.g. switch to Analog2, play...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
A pin is a set of instructions to switch source or play one or more tracks on a device. Some pins will have wholly predictable results (e.g. switch to Analog2, play named playlist); others may be more dynamic (e.g. play the latest podcast from a given feed or a curated playlist of the week from a streaming service).&lt;br /&gt;
&lt;br /&gt;
The Pins service provides access both device-specific and account-wide pins. Both classes of pin can be read from or invoked on a device. Device-specific pins can also be edited; account-wide pins may be editable via a device but should also have edit APIs in the service or location that provides general account support.&lt;br /&gt;
&lt;br /&gt;
= State Variables =&lt;br /&gt;
== DeviceMax ==&lt;br /&gt;
The maximum number of device-specific pins supported&lt;br /&gt;
&lt;br /&gt;
== AccountMax ==&lt;br /&gt;
The maximum number of account-wide pins supported&lt;br /&gt;
&lt;br /&gt;
== Modes ==&lt;br /&gt;
JSON array of strings identifying the different styles of pins supported&lt;br /&gt;
&lt;br /&gt;
== CloudConnected ==&lt;br /&gt;
&amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; if a connection is available to cloud-backed master copy of account pins (i.e. when account pins are editable); &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt; otherwise.&lt;br /&gt;
&lt;br /&gt;
== IdArray ==&lt;br /&gt;
JSON array of identifiers (unsigned integer) for all pins. &lt;br /&gt;
&amp;lt;br&amp;gt;Device pins are listed first, followed by Account pins. i.e. array will always have &amp;lt;tt&amp;gt;DeviceMax&amp;lt;/tt&amp;gt; + &amp;lt;tt&amp;gt;AccountMax&amp;lt;/tt&amp;gt; entries. &lt;br /&gt;
&amp;lt;br&amp;gt;Identifiers will normally be unique; &amp;lt;tt&amp;gt;0&amp;lt;/tt&amp;gt; is a special case which signifies an empty pin.&lt;br /&gt;
&lt;br /&gt;
= Actions =&lt;br /&gt;
== GetDeviceMax ==&lt;br /&gt;
Read the &amp;lt;tt&amp;gt;DeviceMax&amp;lt;/tt&amp;gt; property.&lt;br /&gt;
&lt;br /&gt;
== GetAccountMax ==&lt;br /&gt;
Read the &amp;lt;tt&amp;gt;AccountMax&amp;lt;/tt&amp;gt; property.&lt;br /&gt;
&lt;br /&gt;
== GetModes ==&lt;br /&gt;
Read the &amp;lt;tt&amp;gt;Modes&amp;lt;/tt&amp;gt; property.&lt;br /&gt;
&lt;br /&gt;
== GetCloudConnected ==&lt;br /&gt;
Read the &amp;lt;tt&amp;gt;CloudConnected&amp;lt;/tt&amp;gt; property.&lt;br /&gt;
&lt;br /&gt;
== GetIdArray ==&lt;br /&gt;
Read the &amp;lt;tt&amp;gt;IdArray&amp;lt;/tt&amp;gt; property.&lt;br /&gt;
&lt;br /&gt;
== ReadList ==&lt;br /&gt;
Input: JSON integer array, specifying ids of pins to be read. &lt;br /&gt;
&amp;lt;br&amp;gt;Output: JSON array of pins&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;id&amp;quot;: {unsigned integer, unique across device &amp;amp; account pins},&lt;br /&gt;
        &amp;quot;mode&amp;quot;: &amp;quot;where track(s) will be fetched from&amp;quot;,&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;instructs the device how to interpret the uri below&amp;quot;,&lt;br /&gt;
        &amp;quot;uri&amp;quot;: &amp;quot;absolute uri&amp;quot;,&lt;br /&gt;
        &amp;quot;title&amp;quot;: &amp;quot;Short text, may be user-visible&amp;quot;,&lt;br /&gt;
        &amp;quot;description&amp;quot;: &amp;quot;Longer text, may be user-visible&amp;quot;,&lt;br /&gt;
        &amp;quot;artworkUri&amp;quot;: &amp;quot;absolute uri to image&amp;quot;,&lt;br /&gt;
        &amp;quot;shuffle&amp;quot;: {boolean}&lt;br /&gt;
    },&lt;br /&gt;
    { ... }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== InvokeIndex ==&lt;br /&gt;
Invoke the pin at the specified index in &amp;lt;tt&amp;gt;IdArray&amp;lt;/tt&amp;gt;. This will stop anything that is currently playing and may clear any current playlist.&lt;br /&gt;
&lt;br /&gt;
== InvokeId ==&lt;br /&gt;
Invoke the pin with the specified id. This will stop anything that is currently playing and may clear any current playlist.&lt;br /&gt;
&lt;br /&gt;
== InvokeUri ==&lt;br /&gt;
Invoke a pin using data (mode, type, uri, shuffle) from a control point. Should be used by any control point that wants to determine which account to read pins from. (Note however that pins which themselves require cloud support to load cannot be loaded by the device - control points would have to load them directly into a playlist instead.) This will stop anything that is currently playing and may clear any current playlist.&lt;br /&gt;
&lt;br /&gt;
== SetDevice ==&lt;br /&gt;
Set a device pin, specifying the mode, type, uri, title, description, artworkUri and shuffle plus index into the set of device pins. &lt;br /&gt;
&amp;lt;br&amp;gt;Any pin currently assigned at the specified index will be replaced. &lt;br /&gt;
&amp;lt;br&amp;gt;Any playing content is unaffected (i.e. invoking then replacing a pin leaves the old representation of the pin playing). &lt;br /&gt;
index must be in the range &amp;lt;tt&amp;gt;[0..DeviceMax)&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;Some errors are notified in response to this action. Success should only be assumed when an update is evented to IdArray showing a change in id at the specified index.&lt;br /&gt;
&lt;br /&gt;
== SetAccount ==&lt;br /&gt;
Set an account pin, specifying the mode, type, uri, title, description, artworkUri and shuffle plus index into the set of device pins. &lt;br /&gt;
&amp;lt;br&amp;gt;Any pin currently assigned at the specified index will be replaced. &lt;br /&gt;
&amp;lt;br&amp;gt;Any playing content is unaffected (i.e. invoking then replacing a pin leaves the old representation of the pin playing). &lt;br /&gt;
index must be in the range &amp;lt;tt&amp;gt;[0..AccountMax)&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;Requests to update an account pin are proxied to a remote server so are likely to be slower and have greater chance of failure. &lt;br /&gt;
&amp;lt;br&amp;gt;Some errors are notified in response to this action. Success should only be assumed when an update is evented to &amp;lt;tt&amp;gt;IdArray&amp;lt;/tt&amp;gt; showing a change in id at &amp;lt;tt&amp;gt;DeviceMax + index&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Clear ==&lt;br /&gt;
Clear any content in the pin with the specified id. &lt;br /&gt;
&amp;lt;br&amp;gt;As with Set, changes to device pins are implemented locally; changes to account pins are proxied to a remote server. &lt;br /&gt;
&amp;lt;br&amp;gt;Some errors are notified in response to this action. Success should only be assumed when an update is evented to the sequence number for the specified id.&lt;br /&gt;
&lt;br /&gt;
== Swap ==&lt;br /&gt;
Swap contents of the 2 pins at the specified indices. &lt;br /&gt;
&amp;lt;br&amp;gt;Pins can only be swapped within either device or account lists.&lt;br /&gt;
&lt;br /&gt;
= Technical Details =&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    Domain  : av.openhome.org&lt;br /&gt;
    Name    : Pins&lt;br /&gt;
    Version : 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Service Description (XML) ==&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;GetDeviceMax&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;DeviceMax&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;DeviceMax&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;GetAccountMax&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;AccountMax&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;AccountMax&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;GetModes&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;Modes&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;Modes&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;GetIdArray&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;IdArray&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;GetCloudConnected&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;CloudConnected&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;CloudConnected&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;Ids&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;A_ARG_TYPE_String&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;List&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;A_ARG_TYPE_String&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;InvokeId&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;in&amp;lt;/direction&amp;gt;&lt;br /&gt;
          &amp;lt;relatedStateVariable&amp;gt;A_ARG_TYPE_Uint&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;InvokeIndex&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;Index&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;A_ARG_TYPE_Uint&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;InvokeUri&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;Mode&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;A_ARG_TYPE_String&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;Type&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;A_ARG_TYPE_String&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;A_ARG_TYPE_String&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;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;A_ARG_TYPE_Bool&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;SetDevice&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;Index&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;A_ARG_TYPE_Uint&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;Mode&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;A_ARG_TYPE_String&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;Type&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;A_ARG_TYPE_String&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;A_ARG_TYPE_String&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;Title&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;A_ARG_TYPE_String&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;Description&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;A_ARG_TYPE_String&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;ArtworkUri&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;A_ARG_TYPE_String&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;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;A_ARG_TYPE_Bool&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;SetAccount&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;Index&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;A_ARG_TYPE_Uint&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;Mode&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;A_ARG_TYPE_String&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;Type&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;A_ARG_TYPE_String&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;A_ARG_TYPE_String&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;Title&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;A_ARG_TYPE_String&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;Description&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;A_ARG_TYPE_String&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;ArtworkUri&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;A_ARG_TYPE_String&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;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;A_ARG_TYPE_Bool&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;Clear&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;in&amp;lt;/direction&amp;gt;&lt;br /&gt;
          &amp;lt;relatedStateVariable&amp;gt;A_ARG_TYPE_Uint&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;Swap&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;Index1&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;A_ARG_TYPE_Uint&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;Index2&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;A_ARG_TYPE_Uint&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;DeviceMax&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;AccountMax&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;Modes&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;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;CloudConnected&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;no&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;A_ARG_TYPE_String&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;A_ARG_TYPE_Uint&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;A_ARG_TYPE_Bool&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;/div&gt;</summary>
		<author><name>Simonc</name></author>	</entry>

	</feed>