<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.linn.co.uk/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Grahamd</id>
	<title>LinnDocs - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.linn.co.uk/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Grahamd"/>
	<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Special:Contributions/Grahamd"/>
	<updated>2026-11-02T07:32:39Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Beta:Home&amp;diff=6456</id>
		<title>Beta:Home</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Beta:Home&amp;diff=6456"/>
		<updated>2011-08-11T16:19:51Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* How do I participate in the beta programme? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= What is a beta programme? =&lt;br /&gt;
&lt;br /&gt;
Linn has a beta programme to allow external use and testing of new software and hardware prior to its formal release. Whilst we provide and test against recommended environments, in an open system, there are many different tweaks and changes that DS customers can employ. The beta programme helps ensure that an upcoming release of software works in as many of those different environments as possible.&lt;br /&gt;
&lt;br /&gt;
== Characteristics of a Linn beta release ==&lt;br /&gt;
&lt;br /&gt;
* All intended features of the upcoming release are implemented.&lt;br /&gt;
* It functions reasonably well on at least one recommended environment.&lt;br /&gt;
* It has had some internal testing against that recommended environment.&lt;br /&gt;
* Discussion and support take place on Linn&#039;s [http://forums.linn.co.uk/bb/forumdisplay.php?fid=5 &#039;&#039;&#039;Development Forum&#039;&#039;&#039;] &lt;br /&gt;
** Beta releases are not upported by the Linn Service Department, this includes downgrading to previous releases&lt;br /&gt;
* Bugs can be reported via http://products.linn.co.uk/trac/&lt;br /&gt;
&lt;br /&gt;
= Who should participate in the beta programme? =&lt;br /&gt;
&lt;br /&gt;
Technically advanced DS users who:&lt;br /&gt;
&lt;br /&gt;
* Don&#039;t mind if their DS doesn&#039;t play any music for a couple of hours, or even a couple of days.&lt;br /&gt;
* Don&#039;t mind that they can&#039;t use all of their current control points.&lt;br /&gt;
* Are willing to discuss their experiences on Linn&#039;s [http://forums.linn.co.uk/bb/forumdisplay.php?fid=5 &#039;&#039;&#039;Development Forum&#039;&#039;&#039;] &lt;br /&gt;
* Are willing to raise bugs on http://products.linn.co.uk/trac/ and then track and test the potential solutions to those bugs.&lt;br /&gt;
* Want to ensure their environment has robust support when the software is fully released.&lt;br /&gt;
&lt;br /&gt;
= How do I participate in the beta programme? =&lt;br /&gt;
&lt;br /&gt;
The following products are currently in beta:&lt;br /&gt;
&lt;br /&gt;
* [[Beta:DsDavaar|DS Davaar 3]]&lt;br /&gt;
&lt;br /&gt;
Subscribe to the Beta RSS feed to keep up to date with the latest Beta releases:&lt;br /&gt;
&lt;br /&gt;
* [http://products.linn.co.uk/VersionInfo/BetaVersionInfo.xml http://products.linn.co.uk/VersionInfo/BetaVersionInfo.xml]&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Beta:Home&amp;diff=6365</id>
		<title>Beta:Home</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Beta:Home&amp;diff=6365"/>
		<updated>2011-06-28T16:25:55Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* How do I participate in the beta programme? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= What is a beta programme? =&lt;br /&gt;
&lt;br /&gt;
Linn has a beta programme to allow external use and testing of new software and hardware prior to its formal release. Whilst we provide and test against recommended environments, in an open system, there are many different tweaks and changes that DS customers can employ. The beta programme helps ensure that an upcoming release of software works in as many of those different environments as possible.&lt;br /&gt;
&lt;br /&gt;
== Characteristics of a Linn beta release ==&lt;br /&gt;
&lt;br /&gt;
* All intended features of the upcoming release are implemented.&lt;br /&gt;
* It functions reasonably well on at least one recommended environment.&lt;br /&gt;
* It has had some internal testing against that recommended environment.&lt;br /&gt;
* Discussion and support take place on Linn&#039;s [http://forums.linn.co.uk/bb/forumdisplay.php?fid=5 &#039;&#039;&#039;Development Forum&#039;&#039;&#039;] &lt;br /&gt;
** Beta releases are not upported by the Linn Service Department, this includes downgrading to previous releases&lt;br /&gt;
* Bugs can be reported via http://products.linn.co.uk/trac/&lt;br /&gt;
&lt;br /&gt;
= Who should participate in the beta programme? =&lt;br /&gt;
&lt;br /&gt;
Technically advanced DS users who:&lt;br /&gt;
&lt;br /&gt;
* Don&#039;t mind if their DS doesn&#039;t play any music for a couple of hours, or even a couple of days.&lt;br /&gt;
* Don&#039;t mind that they can&#039;t use all of their current control points.&lt;br /&gt;
* Are willing to discuss their experiences on Linn&#039;s [http://forums.linn.co.uk/bb/forumdisplay.php?fid=5 &#039;&#039;&#039;Development Forum&#039;&#039;&#039;] &lt;br /&gt;
* Are willing to raise bugs on http://products.linn.co.uk/trac/ and then track and test the potential solutions to those bugs.&lt;br /&gt;
* Want to ensure their environment has robust support when the software is fully released.&lt;br /&gt;
&lt;br /&gt;
= How do I participate in the beta programme? =&lt;br /&gt;
&lt;br /&gt;
The following products are currently in beta:&lt;br /&gt;
&lt;br /&gt;
* KinskyTouch for iPad&lt;br /&gt;
&lt;br /&gt;
Subscribe to the Beta RSS feed to keep up to date with the latest Beta releases:&lt;br /&gt;
&lt;br /&gt;
* [http://products.linn.co.uk/VersionInfo/BetaVersionInfo.xml http://products.linn.co.uk/VersionInfo/BetaVersionInfo.xml]&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:ProductService&amp;diff=6076</id>
		<title>Developer:Davaar:ProductService</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:ProductService&amp;diff=6076"/>
		<updated>2011-03-18T13:44:09Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Attributes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Architectural Overview =&lt;br /&gt;
&lt;br /&gt;
The Product service contains basic information concerning a single product. It contains information about what kind of device it is: the model, manufacturer, its name, its room, and details concerning each source within the product. Other basic functionality such as control of the product&#039;s standby state are also included.&lt;br /&gt;
&lt;br /&gt;
It should be possible for a control point to create a complete map of the home by subscribing to the Product service of every device.&lt;br /&gt;
&lt;br /&gt;
== Network Presentation ==&lt;br /&gt;
&lt;br /&gt;
=== Attributes ===&lt;br /&gt;
Every product has one or more attributes indicating additional features offered by that product beyond those provided by its sources&lt;br /&gt;
&lt;br /&gt;
=== Manufacturer ===&lt;br /&gt;
There are &#039;&#039;&#039;four&#039;&#039;&#039; Manufacturer parameters; &#039;&#039;&#039;Name&#039;&#039;&#039;, &#039;&#039;&#039;Info&#039;&#039;&#039;, &#039;&#039;&#039;Url&#039;&#039;&#039; and &#039;&#039;&#039;ImageUri&#039;&#039;&#039;. They are all text strings.&lt;br /&gt;
&lt;br /&gt;
==== Name ====&lt;br /&gt;
Name contains the Manufacturer name (example: &amp;quot;&#039;&#039;Linn&#039;&#039;&amp;quot;). Name is read only.&lt;br /&gt;
&lt;br /&gt;
==== Info ====&lt;br /&gt;
Info contains more Manufacturer information (example &amp;quot;&#039;&#039;Linn Products Ltd&#039;&#039;&amp;quot;). Info is read only.&lt;br /&gt;
&lt;br /&gt;
==== Url ====&lt;br /&gt;
Url contains the Manufacturer website address (example &amp;quot;&#039;&#039;http://www.linn.co.uk&#039;&#039;&amp;quot;). Url is read only.&lt;br /&gt;
&lt;br /&gt;
==== ImageUri ====&lt;br /&gt;
ImageUri contains... ImageUri is read only.&lt;br /&gt;
&lt;br /&gt;
=== Model ===&lt;br /&gt;
&lt;br /&gt;
There are &#039;&#039;&#039;four&#039;&#039;&#039; Model parameters; &#039;&#039;&#039;Name&#039;&#039;&#039;, &#039;&#039;&#039;Info&#039;&#039;&#039;, &#039;&#039;&#039;Url&#039;&#039;&#039; and &#039;&#039;&#039;ImageUri&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Name ====&lt;br /&gt;
Name contains the Model name (example: &amp;quot;&#039;&#039;Majik DS&#039;&#039;&amp;quot;). Name is read only.&lt;br /&gt;
==== Info ====&lt;br /&gt;
Info contains more Model information (example &amp;quot;&#039;&#039;Linn Hi-Fi component&#039;&#039;&amp;quot;). Info is read only. &lt;br /&gt;
==== Url ====&lt;br /&gt;
Url contains the Model website address (example &amp;quot;&#039;&#039;http://products.linn.co.uk/MajikDS&#039;&#039;&amp;quot;). Url is read only.&lt;br /&gt;
==== ImageUri ====&lt;br /&gt;
ImageUri contains... ImageUri is read only.&lt;br /&gt;
&lt;br /&gt;
=== Product ===&lt;br /&gt;
There are &#039;&#039;&#039;five&#039;&#039;&#039; Product parameters; &#039;&#039;&#039;Room&#039;&#039;&#039;, &#039;&#039;&#039;Name&#039;&#039;&#039;, &#039;&#039;&#039;Info&#039;&#039;&#039;, &#039;&#039;&#039;Url&#039;&#039;&#039; and &#039;&#039;&#039;ImageUri&#039;&#039;&#039;. They are all text strings.&lt;br /&gt;
&lt;br /&gt;
==== Room ====&lt;br /&gt;
This is the name of the room where the Product is located. Room is used to group the Product with other Products in the same physical room. The Upnp &#039;&#039;&#039;&#039;&#039;Friendly Name&#039;&#039;&#039;&#039;&#039; is derived by combining Room and Name in the format {&#039;&#039;&#039;&#039;&#039;Room&amp;amp;nbsp;: Name&#039;&#039;&#039;&#039;&#039;}. Products which are &#039;&#039;&#039;&#039;&#039;Linked&#039;&#039;&#039;&#039;&#039; always share the same Room name. Room is set to &#039;&#039;&#039;&#039;&#039;Main Room&#039;&#039;&#039;&#039;&#039; by default.&lt;br /&gt;
&lt;br /&gt;
==== Name ====&lt;br /&gt;
This is the Product name. The Upnp &#039;&#039;&#039;&#039;&#039;Friendly Name&#039;&#039;&#039;&#039;&#039; is derived by combining Room and Name in the format {&#039;&#039;&#039;&#039;&#039;Room&amp;amp;nbsp;: Name&#039;&#039;&#039;&#039;&#039;}. By default the Name is the same as the Model. &lt;br /&gt;
&lt;br /&gt;
==== Info ====&lt;br /&gt;
Info contains more Product information (example &amp;quot;&#039;&#039;Linn Hi-Fi component&#039;&#039;&amp;quot;). Info is read only.&lt;br /&gt;
&lt;br /&gt;
==== Url ====&lt;br /&gt;
Url contains... Url is read only.&lt;br /&gt;
&lt;br /&gt;
==== ImageUri ====&lt;br /&gt;
ImageUri contains... ImageUri is read only.&lt;br /&gt;
&lt;br /&gt;
== Standby Control==&lt;br /&gt;
&lt;br /&gt;
=== Standby===&lt;br /&gt;
This is the Standby state of the physical product. Standby can be changed using the SetStandby function. Products which are &#039;&#039;&#039;&#039;&#039;Linked&#039;&#039;&#039;&#039;&#039; always share the same Standby state. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Source Control ==&lt;br /&gt;
&lt;br /&gt;
=== Source List===&lt;br /&gt;
The Product service maintains a list of all sources within the Product. The size of this list is fixed for each Product and reported by the SourceCount function. Each source can then be referenced by its unique source index* in the list. Only one source, and thus one index, can be active at any given time. When a new source is selected the previous source is automatically deactivated before activating the new source. [* source index is zero based, ie 0,1,2,3,4,5..n, where n=listsize-1]&lt;br /&gt;
&lt;br /&gt;
=== Source Index ===&lt;br /&gt;
&lt;br /&gt;
The current (ie currently active) source can be changed by source index or source name. The function SetSourceIndex is used to change the current source by index. If the index is out of range an error will be reported. SetSourceIndexByName is used to change to the source whose name matches that specified. If a source of the specified name does not exist, the source will not change and no error will be reported.&lt;br /&gt;
&lt;br /&gt;
=== SourceCount ===&lt;br /&gt;
&lt;br /&gt;
SourceCount returns the number of sources that exist in the Product (ie the source list size). SourceCount is read only.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Source Specific Parameters ===&lt;br /&gt;
Every source has four fundamental parameters, &#039;&#039;&#039;SourceSystemName&#039;&#039;&#039;, &#039;&#039;&#039;SourceName&#039;&#039;&#039;, &#039;&#039;&#039;SourceVisible&#039;&#039;&#039; and &#039;&#039;&#039;SourceType&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== SourceSystemName ====&lt;br /&gt;
&lt;br /&gt;
SourceSystemName is a unique name string used to identify each source. SourceSystemName is read only. It can only be read via the &#039;&#039;&#039;Source&#039;&#039;&#039; action.&lt;br /&gt;
&lt;br /&gt;
==== SourceName ====&lt;br /&gt;
&lt;br /&gt;
SourceName is a unique name string assigned to each source. In the default state, for a given source index, SourceName matches SourceSystemName. It can be read via the &#039;&#039;&#039;Source&#039;&#039;&#039; action, or the &#039;&#039;&#039;SourceXml&#039;&#039;&#039; action.&lt;br /&gt;
&lt;br /&gt;
==== SourceType ====&lt;br /&gt;
&lt;br /&gt;
SourceType is a unique type string assigned to each source. SourceType is read only. It can be read via the &#039;&#039;&#039;Source&#039;&#039;&#039; action, or the &#039;&#039;&#039;SourceXml&#039;&#039;&#039; action.&lt;br /&gt;
&lt;br /&gt;
==== SourceVisible ====&lt;br /&gt;
&lt;br /&gt;
SourceVisible is a unique flag assigned to each source. This flag is used to indicate whether the source is to be displayed (front panel, GUI etc) when browsing through the source list. It can be read via the &#039;&#039;&#039;Source&#039;&#039;&#039; action, or the &#039;&#039;&#039;SourceXml&#039;&#039;&#039; action.&lt;br /&gt;
&lt;br /&gt;
Note - &#039;&#039;a source&#039;s &amp;quot;visibility&amp;quot; does not affect its ability to be selected/activated via the functions SetSourceIndex and SetCurrentSourceByName.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Actions=&lt;br /&gt;
&lt;br /&gt;
== Network Presentation Actions==&lt;br /&gt;
=== Attributes Action ===&lt;br /&gt;
The Attributes action reports a string containing a space separated list of all attributes.&lt;br /&gt;
&lt;br /&gt;
=== Manufacturer Action ===&lt;br /&gt;
The Manufacturer action returns all four Manufacturer parameters.&lt;br /&gt;
&lt;br /&gt;
=== Model Action ===&lt;br /&gt;
The Model action returns all four Model parameters.&lt;br /&gt;
&lt;br /&gt;
=== Product Action ===&lt;br /&gt;
The Product action returns all five Product parameters.&lt;br /&gt;
&lt;br /&gt;
== Standby Actions==&lt;br /&gt;
=== Standby===&lt;br /&gt;
The Standby action reports the current standby state of the product.&lt;br /&gt;
&lt;br /&gt;
=== SetStandby===&lt;br /&gt;
The SetStandby action provides a means of setting the current standby state of the product.&lt;br /&gt;
&lt;br /&gt;
==Source Actions==&lt;br /&gt;
===SourceXml Action===&lt;br /&gt;
The SourceXml action returns a list of all source specific parameters, for every source, in XML format.&lt;br /&gt;
&lt;br /&gt;
===SourceXmlChangeCount Action===&lt;br /&gt;
The SourceXmlChangeCount action returns a count indicating the number of times SourceXml has been updated since power on. This is useful for control points that do not support eventing.&lt;br /&gt;
&lt;br /&gt;
===Source Action===&lt;br /&gt;
The Source action returns all source specific parameters for a given source index.&lt;br /&gt;
&lt;br /&gt;
= API Reference =&lt;br /&gt;
&lt;br /&gt;
[http://oss.linn.co.uk/trac/browser/Main/LibUpnpCil/Services/Openhome/Product1.xml Product Service Description (XML)]&lt;br /&gt;
&lt;br /&gt;
= Migration Guide =&lt;br /&gt;
&lt;br /&gt;
All actions relating to configuration have been removed as part of the migration to the Davaar.   &lt;br /&gt;
&lt;br /&gt;
The domain for the Product service has changed to &#039;&#039;&#039;av.openhome.org&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
== Actions ==&lt;br /&gt;
=== Changed Actions ===&lt;br /&gt;
====Standby====&lt;br /&gt;
The arguments have changed their names as follows:&lt;br /&gt;
*aStandby -&amp;gt; Value&lt;br /&gt;
====SetStandby====&lt;br /&gt;
The arguments have changed their names as follows:&lt;br /&gt;
*aStandby -&amp;gt; Value&lt;br /&gt;
====SourceCount====&lt;br /&gt;
The arguments have changed their names as follows:&lt;br /&gt;
*aSourceCount -&amp;gt; Value&lt;br /&gt;
====SourceXml====&lt;br /&gt;
The arguments have changed their names as follows:&lt;br /&gt;
*aSourceXml -&amp;gt; Value&lt;br /&gt;
&lt;br /&gt;
====SourceIndex====&lt;br /&gt;
The arguments have changed their names as follows:&lt;br /&gt;
*aSourceIndex -&amp;gt; Value&lt;br /&gt;
====SetSourceIndex====&lt;br /&gt;
The arguments have changed their names as follows:&lt;br /&gt;
*aSourceIndex -&amp;gt; Value&lt;br /&gt;
&lt;br /&gt;
====SetSourceIndexByName====&lt;br /&gt;
The arguments have changed their names as follows:&lt;br /&gt;
*aSourceName -&amp;gt; Value&lt;br /&gt;
&lt;br /&gt;
=== New Actions ===&lt;br /&gt;
*Manufacturer&lt;br /&gt;
*Model&lt;br /&gt;
*Product&lt;br /&gt;
*Source&lt;br /&gt;
*Attributes&lt;br /&gt;
*SourceXmlChangeCount&lt;br /&gt;
&lt;br /&gt;
=== Obsolete Actions ===&lt;br /&gt;
*SetName&lt;br /&gt;
*SetRoom&lt;br /&gt;
*SetStartupSourceIndex&lt;br /&gt;
*StartupSourceIndex&lt;br /&gt;
*SetStartupSourceIndexByName &lt;br /&gt;
*SetStartupSourceEnabled &lt;br /&gt;
*StartupSourceEnabled&lt;br /&gt;
*SetSourceVisible&lt;br /&gt;
*SetSourceName&lt;br /&gt;
*SourceAttributes&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Beta:DsDavaar&amp;diff=6074</id>
		<title>Beta:DsDavaar</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Beta:DsDavaar&amp;diff=6074"/>
		<updated>2011-03-17T17:13:05Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Songcast */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= DS Davaar Beta =&lt;br /&gt;
&lt;br /&gt;
== What is it? ==&lt;br /&gt;
&lt;br /&gt;
Davaar is a major software upgrade for all DS products. It introduces a number of new features for all DS products and lays the technical groundwork for future improvements.  Davaar contains two new headline features:&lt;br /&gt;
&lt;br /&gt;
* OpenHome compatibility&lt;br /&gt;
* [[Songcast]] &lt;br /&gt;
&lt;br /&gt;
=== OpenHome compatibility ===&lt;br /&gt;
&lt;br /&gt;
OpenHome is an independent standard for networked home devices.  Linn&#039;s DS devices are fully compatible with the OpenHome Audio Visual (AV) specification.  OpenHome AV allows other manufacturer&#039;s digitial streaming products and control points to interact in a seamless way with Linn&#039;s DS.&lt;br /&gt;
&lt;br /&gt;
=== Songcast ===&lt;br /&gt;
&lt;br /&gt;
[[Songcast|Songcast]] allows a DS to tune-in to another DS.  A DS can [[songcast]] to more than one DS.  Further, a DS can [[songcast]] no matter what source is selected.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
You will need a Davaar compatible control point to utilise the Davaar beta for the DS.  [http://oss.linn.co.uk/trac/wiki/KinskyDesktop KinskyDesktop Davaar] has also entered its beta release and you will need it to control your Davaar DS.  Other control points are being migrated to Davaar and will become available during the beta phase.&lt;br /&gt;
&lt;br /&gt;
== Where do I start? ==&lt;br /&gt;
&lt;br /&gt;
# Ensure you are aware and agree with the requirements of being involved in Linn&#039;s [[Beta:Home|beta programme]]&lt;br /&gt;
# Download and install the latest Davaar Linn Konfig application [http://products.linn.co.uk/VersionInfo/Downloads/Beta here] (Available for Windows, Mac, and Linux platforms)&lt;br /&gt;
# Go to Tools-&amp;gt;Options and select &#039;Show Beta Versions&#039; from the Updates section of Linn Konfig&lt;br /&gt;
# Select your device from the list, go to the update tab, select the latest Davaar beta firmware release, and click update&lt;br /&gt;
#* If you have multiple DS devices, you can select Tools-&amp;gt;Update All Devices&lt;br /&gt;
#* Linn Konfig [[Konfig Manual|Manual]]&lt;br /&gt;
&lt;br /&gt;
== Release Notes ==&lt;br /&gt;
* &#039;&#039;&#039;[[Beta:DsDavaar1:Release Notes|Davaar 1]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
=== How do I report a defect? ===&lt;br /&gt;
# Login to our [http://products.linn.co.uk/trac defect tracking site]&lt;br /&gt;
#* If you don&#039;t have a login name and password, please send a request to support@products.linn.co.uk&lt;br /&gt;
# Follow the instructions listed for &#039;Creating a New Ticket&#039;&lt;br /&gt;
# Once created, your ticket is assigned an engineer and will be investigated&lt;br /&gt;
# All progress made on the ticket will be emailed to you as it is updated&lt;br /&gt;
&lt;br /&gt;
=== What if I have problems updating? ===&lt;br /&gt;
&#039;&#039;Don&#039;t panic, the update process is safe, so you will always be able to recover your device&#039;&#039;&lt;br /&gt;
* Restart Linn Konfig. If your device reports a Davaar version, the update was successfull and you are done.&lt;br /&gt;
* If your device does not report a Davaar version, retry the update process&lt;br /&gt;
* If this fails, power cycle your device and try again&lt;br /&gt;
* If this fails, put your device into fallback (from the button on the back of the device) and try again&lt;br /&gt;
&lt;br /&gt;
=== What if I want to go back to Cara? ===&lt;br /&gt;
# You must first complete the Davaar upgrade process once it has been started&lt;br /&gt;
# Put your device into fallback mode from the button on the back of the device&lt;br /&gt;
# Download and install the latest Cara Linn Konfig application (3.10.6) [http://products.linn.co.uk/VersionInfo/Downloads/Releases here]&lt;br /&gt;
# Select your device from the list and go to the update tab.&lt;br /&gt;
# Select device firmware from the dropdown box and select the latest Cara firmware release and update&lt;br /&gt;
# Keep in mind&lt;br /&gt;
#* Davaar control points will no longer work with your device&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
* Potential intermittent hiss on outputs when an analog source is active&lt;br /&gt;
* Potential time shift when changing tracks between different sample rates over [[Songcast]]&lt;br /&gt;
* Webconfig is not yet fully functional&lt;br /&gt;
* Initial beta release only provides support for Small-scale [[Songcast]] mode&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Beta:Home&amp;diff=6073</id>
		<title>Beta:Home</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Beta:Home&amp;diff=6073"/>
		<updated>2011-03-17T15:45:36Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* How do I participate in the beta programme? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= What is a beta programme? =&lt;br /&gt;
&lt;br /&gt;
Linn has a beta programme to allow external use and testing of new software and hardware prior to its formal release. Whilst we provide and test against recommended environments, in an open system, there are many different tweaks and changes that DS customers can employ. The beta programme helps ensure that an upcoming release of software works in as many of those different environments as possible.&lt;br /&gt;
&lt;br /&gt;
== Characteristics of a Linn beta release ==&lt;br /&gt;
&lt;br /&gt;
* All intended features of the upcoming release are implemented.&lt;br /&gt;
* It functions reasonably well on at least one recommended environment.&lt;br /&gt;
* It has had some internal testing against that recommended environment.&lt;br /&gt;
* Discussion and support take place on Linn&#039;s development forum: http://forums.linn.co.uk/bb/forumdisplay.php?fid=5&lt;br /&gt;
* Bugs can be reported via http://products.linn.co.uk/trac/&lt;br /&gt;
&lt;br /&gt;
= Who should participate in the beta programme? =&lt;br /&gt;
&lt;br /&gt;
Technically advanced DS users who:&lt;br /&gt;
&lt;br /&gt;
* Don&#039;t mind if their DS doesn&#039;t play any music for a couple of hours, or even a couple of days.&lt;br /&gt;
* Don&#039;t mind that they can&#039;t use all of their current control points.&lt;br /&gt;
* Are willing to discuss their experiences on the development forum (http://forums.linn.co.uk/bb/forumdisplay.php?fid=5)&lt;br /&gt;
* Are willing to raise bugs on http://products.linn.co.uk/trac/ and then track and test the potential solutions to those bugs.&lt;br /&gt;
* Want to ensure their environment has robust support when the software is fully released.&lt;br /&gt;
&lt;br /&gt;
= How do I participate in the beta programme? =&lt;br /&gt;
&lt;br /&gt;
The following products are currently in beta:&lt;br /&gt;
&lt;br /&gt;
* [[Beta:DsDavaar|DS Davaar 1]]&lt;br /&gt;
* [http://oss.linn.co.uk/trac/wiki/KinskyDesktop KinskyDesktop Davaar]&lt;br /&gt;
&lt;br /&gt;
Subscribe to the Beta RSS feed to keep up to date with the latest Beta releases:&lt;br /&gt;
&lt;br /&gt;
* [http://products.linn.co.uk/VersionInfo/BetaVersionInfo.xml http://products.linn.co.uk/VersionInfo/BetaVersionInfo.xml]&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Songcast&amp;diff=6033</id>
		<title>Songcast</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Songcast&amp;diff=6033"/>
		<updated>2011-03-17T13:49:48Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Initial Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Songcast =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Davaar sees the introduction of Songcast. Songcast allows a DS to tune into another DS. A DS can songcast to more than one DS. Further, a DS can songcast no matter what source is selected. &lt;br /&gt;
&lt;br /&gt;
== Initial Setup ==&lt;br /&gt;
* Your DS must be running Davaar 1 firmware or higher. &lt;br /&gt;
* You will require a Davaar compatible Linn Konfig to update and configure your DS&lt;br /&gt;
* You will require a Davaar compatible control software to control your DS&lt;br /&gt;
&lt;br /&gt;
== How to Songcast == &lt;br /&gt;
&lt;br /&gt;
=== Using Kinsky Desktop ===&lt;br /&gt;
* text&lt;br /&gt;
&lt;br /&gt;
=== Using Kinsky PDA ===&lt;br /&gt;
* Not yet supported&lt;br /&gt;
&lt;br /&gt;
=== Using the handset (REM 019) ===&lt;br /&gt;
* text&lt;br /&gt;
&lt;br /&gt;
== Home Plugs and Songcast ==&lt;br /&gt;
* Installation scalability may be decreased&lt;br /&gt;
* May not reliably songcast studio master quality audio&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Songcast&amp;diff=6032</id>
		<title>Songcast</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Songcast&amp;diff=6032"/>
		<updated>2011-03-17T13:49:26Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Initial Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Songcast =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Davaar sees the introduction of Songcast. Songcast allows a DS to tune into another DS. A DS can songcast to more than one DS. Further, a DS can songcast no matter what source is selected. &lt;br /&gt;
&lt;br /&gt;
== Initial Setup ==&lt;br /&gt;
* Your DS must be running Davaar 1 firmware or higher. &lt;br /&gt;
* You will require a Davaar compatible Linn Konfig to update and configure your device&lt;br /&gt;
* You will require a Davaar compatible control software to control your device&lt;br /&gt;
&lt;br /&gt;
== How to Songcast == &lt;br /&gt;
&lt;br /&gt;
=== Using Kinsky Desktop ===&lt;br /&gt;
* text&lt;br /&gt;
&lt;br /&gt;
=== Using Kinsky PDA ===&lt;br /&gt;
* Not yet supported&lt;br /&gt;
&lt;br /&gt;
=== Using the handset (REM 019) ===&lt;br /&gt;
* text&lt;br /&gt;
&lt;br /&gt;
== Home Plugs and Songcast ==&lt;br /&gt;
* Installation scalability may be decreased&lt;br /&gt;
* May not reliably songcast studio master quality audio&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Media_Server_Extensions&amp;diff=5643</id>
		<title>Developer:Media Server Extensions</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Media_Server_Extensions&amp;diff=5643"/>
		<updated>2011-01-18T11:21:31Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
The ContentDirectory service has various limitations which become apparent when implementing control points on different hardware platforms.&amp;amp;nbsp;This document aims to outlines some ideas that address various shortcomings of the ContentDirectory specification. The ideas have been categorised in low, medium and high priority groups.&lt;br /&gt;
&lt;br /&gt;
= High =&lt;br /&gt;
&lt;br /&gt;
== Image Resolution ==&lt;br /&gt;
&lt;br /&gt;
Control points running on different platforms have different memory limits and display technologies. This means that a control point on a PC might want to display artwork at a high resolution, while a control point on a PDA might want to display artwork at a much lower resolution.&lt;br /&gt;
&lt;br /&gt;
Media servers often try to solve this problem using one of the following two methods:&lt;br /&gt;
&lt;br /&gt;
# A configurable parameter that scales all artwork to a user defined size&lt;br /&gt;
# A profile system where a user can create profiles for each class of control point they have and configure a parameter that scales all artwork to a user defined size per profile&lt;br /&gt;
&lt;br /&gt;
The first solution is highly problematic because it limits the resolution of artwork across the whole network. But a single network very often contains control points that can display high resolution images AND control points that can&#039;t.&lt;br /&gt;
&lt;br /&gt;
The second solution is just architecturally poor, turning the relationship between a control point and a media server on its head. Why should the media server try to infer what a control point needs through configuration when the control point is perfectly capable of telling the media server its exact requirements in every single circumstance.&lt;br /&gt;
&lt;br /&gt;
So, it is proposed that compliant media servers include a &#039;&#039;&#039;size&#039;&#039;&#039; element in their artwork uri&#039;s, where the size is the image&#039;s largest dimension. This allows a control point to ask for an image at a specified size.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
If the original artwork was 400x512, then a media server would provide the following albumArtURI: &amp;lt;uri&amp;gt;?size=512. If it is not possible for the media server to obtain the original resolution then the media server would provide the following albumArtURI: &amp;lt;uri&amp;gt;?size=0.&lt;br /&gt;
&lt;br /&gt;
The presence of the size element tells the control point:&lt;br /&gt;
&lt;br /&gt;
# the media server implements the image scaling extension&lt;br /&gt;
# the original size of the image.&lt;br /&gt;
&lt;br /&gt;
Now the control point can request the image at any resolution by using &amp;lt;uri&amp;gt;?size=x, where x is the size it wants.&lt;br /&gt;
&lt;br /&gt;
So, in this example, &amp;lt;uri&amp;gt;?size=1024 gets an 800x1024 image, and &amp;lt;uri&amp;gt;?size=200 gets a 156x200 image.&lt;br /&gt;
&lt;br /&gt;
== albumArtURI&amp;lt;br&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
The current specification only allows retrieval of artwork for a musicAlbum container through the property albumArtURI. When browsing a music library on a control point it quickly becomes clear that to implement a graphically rich control point the ContentDirectory service should provide a way to retrieve artwork for all of the content directory classes, not just musicAlbum containers.&lt;br /&gt;
&lt;br /&gt;
There has become a somewhat defacto standard where just about all media server provide an albumArtURI property for a musicItem item as well as for a musicAlbum container, however this is still not good enough to implement a graphically rich control point.&lt;br /&gt;
&lt;br /&gt;
It is proposed that an optional property is introduced to the object class called &#039;&#039;&#039;albumArtURI&#039;&#039;&amp;amp;nbsp;&#039;&#039;&#039;&#039;&#039;which may contain an attribute &#039;&#039;&#039;title&#039;&#039;&#039;,&amp;amp;nbsp;e.g. &amp;amp;lt;albumArtURI title=&amp;quot;Font Cover&amp;quot;&amp;amp;gt;http://Front Cover.jpg&amp;amp;lt;/albumArtURI&amp;amp;gt;.&amp;amp;nbsp;The object class can contain zero or more albumArtURIs elements.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Medium =&lt;br /&gt;
= Low =&lt;br /&gt;
&lt;br /&gt;
== Dynamic IP Addresses ==&lt;br /&gt;
&lt;br /&gt;
At present all media servers return URIs that contain a reference to their IP address, e.g. http://172.20.1.1/music.flac etc. This means that if the media server&#039;s IP address were to change across reboots, then any control point or media renderer with URIs that referenced the media server before the reboot will become invalid.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is proposed that a media server should always reference itself by host name and not by IP address in any XML that it sends to external devices, i.e. http://mynas/music.flac.&lt;br /&gt;
&lt;br /&gt;
== Disc Information ==&lt;br /&gt;
&lt;br /&gt;
It is proposed that two new properties are added to the musicTrack item called &#039;&#039;&#039;OriginalDiscNumber&#039;&#039;&#039; and &#039;&#039;&#039;OriginalDiscCount&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Replay Gain Information ==&lt;br /&gt;
&lt;br /&gt;
It is proposed that four new properties are added to the musicTrack item called &#039;&#039;&#039;ReplayGainAlbum&#039;&#039;&#039;, &#039;&#039;&#039;ReplayGainAlbumPeak&#039;&#039;&#039;, &#039;&#039;&#039;ReplayGainTrack&#039;&#039;&#039;, and &#039;&#039;&#039;ReplayGainTrackPeak&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== webURI ==&lt;br /&gt;
&lt;br /&gt;
The current specification does not easily allow a control point to provide rich information about objects in the browse hierarchy.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is proposed to add an optionally property to the object class called &#039;&#039;&#039;webURI&amp;amp;nbsp;&#039;&#039;&#039;which will contain a URI to a website that provides a rich collection of information about the object, e.g. for a musicArtist container it would provided a link to a website that provided information about the artist.&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Media_Server_Extensions&amp;diff=5642</id>
		<title>Developer:Media Server Extensions</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Media_Server_Extensions&amp;diff=5642"/>
		<updated>2011-01-18T11:19:07Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Image Resolution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
The ContentDirectory service has various limitations which become apparent when implementing control points on different hardware platforms.&amp;amp;nbsp;This document aims to outlines some ideas that address various shortcomings of the ContentDirectory specification. The ideas have been categorised in low, medium and high priority groups.&lt;br /&gt;
&lt;br /&gt;
= High =&lt;br /&gt;
&lt;br /&gt;
== Image Resolution ==&lt;br /&gt;
&lt;br /&gt;
Control points running on different platforms have different memory limits and display technologies. This means that a control point on a PC might want to display artwork at a high resolution, while a control point on a PDA might want to display artwork at a much lower resolution.&lt;br /&gt;
&lt;br /&gt;
Media servers often try to solve this problem using one of the following two methods:&lt;br /&gt;
&lt;br /&gt;
# A configurable parameter that scales all artwork to a user defined size&lt;br /&gt;
# A profile system where a user can create profiles for each class of control point they have and configure a parameter that scales all artwork to a user defined size per profile&lt;br /&gt;
&lt;br /&gt;
The first solution is highly problematic because it limits the resolution of artwork across the whole network. But a single network very often contains control points that can display high resolution images AND control points that can&#039;t.&lt;br /&gt;
&lt;br /&gt;
The second solution is just architecturally poor, turning the relationship between a control point and a media server on its head. Why should the media server try to infer what a control point needs through configuration when the control point is perfectly capable of telling the media server its exact requirements in every single circumstance.&lt;br /&gt;
&lt;br /&gt;
So, it is proposed that compliant media servers include a &#039;&#039;&#039;size&#039;&#039;&#039; element in their artwork uri&#039;s, where the size is the image&#039;s largest dimension. This allows a control point to ask for an image at a specified size.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
If the original artwork was 400x512, then a media server would provide the following albumArtURI: &amp;lt;uri&amp;gt;?size=512. If it is not possible for the media server to obtain the original resolution then the media server would provide the following albumArtURI: &amp;lt;uri&amp;gt;?size=0.&lt;br /&gt;
&lt;br /&gt;
The presence of the size element informs the control point that the media server implements the image scaling extension and informs the control point what the original size of the image is.&lt;br /&gt;
&lt;br /&gt;
Now the control point can request the image at any resolution by using &amp;lt;uri&amp;gt;?size=x, where x is the size it wants.&lt;br /&gt;
&lt;br /&gt;
So, in this example, &amp;lt;uri&amp;gt;?size=1024 gets an 800x1024 image, and &amp;lt;uri&amp;gt;?size=200 gets a 156x200 image.&lt;br /&gt;
&lt;br /&gt;
== albumArtURI&amp;lt;br&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
The current specification only allows retrieval of artwork for a musicAlbum container through the property albumArtURI. When browsing a music library on a control point it quickly becomes clear that to implement a graphically rich control point the ContentDirectory service should provide a way to retrieve artwork for all of the content directory classes, not just musicAlbum containers.&lt;br /&gt;
&lt;br /&gt;
There has become a somewhat defacto standard where just about all media server provide an albumArtURI property for a musicItem item as well as for a musicAlbum container, however this is still not good enough to implement a graphically rich control point.&lt;br /&gt;
&lt;br /&gt;
It is proposed that an optional property is introduced to the object class called &#039;&#039;&#039;albumArtURI&#039;&#039;&amp;amp;nbsp;&#039;&#039;&#039;&#039;&#039;which may contain an attribute &#039;&#039;&#039;title&#039;&#039;&#039;,&amp;amp;nbsp;e.g. &amp;amp;lt;albumArtURI title=&amp;quot;Font Cover&amp;quot;&amp;amp;gt;http://Front Cover.jpg&amp;amp;lt;/albumArtURI&amp;amp;gt;.&amp;amp;nbsp;The object class can contain zero or more albumArtURIs elements.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Medium =&lt;br /&gt;
= Low =&lt;br /&gt;
&lt;br /&gt;
== Dynamic IP Addresses ==&lt;br /&gt;
&lt;br /&gt;
At present all media servers return URIs that contain a reference to their IP address, e.g. http://172.20.1.1/music.flac etc. This means that if the media server&#039;s IP address were to change across reboots, then any control point or media renderer with URIs that referenced the media server before the reboot will become invalid.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is proposed that a media server should always reference itself by host name and not by IP address in any XML that it sends to external devices, i.e. http://mynas/music.flac.&lt;br /&gt;
&lt;br /&gt;
== Disc Information ==&lt;br /&gt;
&lt;br /&gt;
It is proposed that two new properties are added to the musicTrack item called &#039;&#039;&#039;OriginalDiscNumber&#039;&#039;&#039; and &#039;&#039;&#039;OriginalDiscCount&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Replay Gain Information ==&lt;br /&gt;
&lt;br /&gt;
It is proposed that four new properties are added to the musicTrack item called &#039;&#039;&#039;ReplayGainAlbum&#039;&#039;&#039;, &#039;&#039;&#039;ReplayGainAlbumPeak&#039;&#039;&#039;, &#039;&#039;&#039;ReplayGainTrack&#039;&#039;&#039;, and &#039;&#039;&#039;ReplayGainTrackPeak&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== webURI ==&lt;br /&gt;
&lt;br /&gt;
The current specification does not easily allow a control point to provide rich information about objects in the browse hierarchy.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is proposed to add an optionally property to the object class called &#039;&#039;&#039;webURI&amp;amp;nbsp;&#039;&#039;&#039;which will contain a URI to a website that provides a rich collection of information about the object, e.g. for a musicArtist container it would provided a link to a website that provided information about the artist.&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Media_Server_Extensions&amp;diff=5641</id>
		<title>Developer:Media Server Extensions</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Media_Server_Extensions&amp;diff=5641"/>
		<updated>2011-01-18T11:18:40Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Image Resolution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
The ContentDirectory service has various limitations which become apparent when implementing control points on different hardware platforms.&amp;amp;nbsp;This document aims to outlines some ideas that address various shortcomings of the ContentDirectory specification. The ideas have been categorised in low, medium and high priority groups.&lt;br /&gt;
&lt;br /&gt;
= High =&lt;br /&gt;
&lt;br /&gt;
== Image Resolution ==&lt;br /&gt;
&lt;br /&gt;
Control points running on different platforms have different memory limits and display technologies. This means that a control point on a PC might want to display artwork at a high resolution, while a control point on a PDA might want to display artwork at a much lower resolution.&lt;br /&gt;
&lt;br /&gt;
Currently media servers try to solve this problem using one of the following two methods:&lt;br /&gt;
&lt;br /&gt;
# A configurable parameter that scales all artwork to a user defined size&lt;br /&gt;
# A profile system where a user can create profiles for each class of control point they have and configure a parameter that scales all artwork to a user defined size per profile&lt;br /&gt;
&lt;br /&gt;
The first solution is highly problematic because it limits the resolution of artwork across the whole network. But a single network very often contains control points that can display high resolution images AND control points that can&#039;t.&lt;br /&gt;
&lt;br /&gt;
The second solution is just architecturally poor, turning the relationship between a control point and a media server on its head. Why should the media server try to infer what a control point needs through configuration when the control point is perfectly capable of telling the media server its exact requirements in every single circumstance.&lt;br /&gt;
&lt;br /&gt;
So, it is proposed that compliant media servers include a &#039;&#039;&#039;size&#039;&#039;&#039; element in their artwork uri&#039;s, where the size is the image&#039;s largest dimension. This allows a control point to ask for an image at a specified size.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
If the original artwork was 400x512, then a media server would provide the following albumArtURI: &amp;lt;uri&amp;gt;?size=512. If it is not possible for the media server to obtain the original resolution then the media server would provide the following albumArtURI: &amp;lt;uri&amp;gt;?size=0.&lt;br /&gt;
&lt;br /&gt;
The presence of the size element informs the control point that the media server implements the image scaling extension and informs the control point what the original size of the image is.&lt;br /&gt;
&lt;br /&gt;
Now the control point can request the image at any resolution by using &amp;lt;uri&amp;gt;?size=x, where x is the size it wants.&lt;br /&gt;
&lt;br /&gt;
So, in this example, &amp;lt;uri&amp;gt;?size=1024 gets an 800x1024 image, and &amp;lt;uri&amp;gt;?size=200 gets a 156x200 image.&lt;br /&gt;
&lt;br /&gt;
== albumArtURI&amp;lt;br&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
The current specification only allows retrieval of artwork for a musicAlbum container through the property albumArtURI. When browsing a music library on a control point it quickly becomes clear that to implement a graphically rich control point the ContentDirectory service should provide a way to retrieve artwork for all of the content directory classes, not just musicAlbum containers.&lt;br /&gt;
&lt;br /&gt;
There has become a somewhat defacto standard where just about all media server provide an albumArtURI property for a musicItem item as well as for a musicAlbum container, however this is still not good enough to implement a graphically rich control point.&lt;br /&gt;
&lt;br /&gt;
It is proposed that an optional property is introduced to the object class called &#039;&#039;&#039;albumArtURI&#039;&#039;&amp;amp;nbsp;&#039;&#039;&#039;&#039;&#039;which may contain an attribute &#039;&#039;&#039;title&#039;&#039;&#039;,&amp;amp;nbsp;e.g. &amp;amp;lt;albumArtURI title=&amp;quot;Font Cover&amp;quot;&amp;amp;gt;http://Front Cover.jpg&amp;amp;lt;/albumArtURI&amp;amp;gt;.&amp;amp;nbsp;The object class can contain zero or more albumArtURIs elements.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Medium =&lt;br /&gt;
= Low =&lt;br /&gt;
&lt;br /&gt;
== Dynamic IP Addresses ==&lt;br /&gt;
&lt;br /&gt;
At present all media servers return URIs that contain a reference to their IP address, e.g. http://172.20.1.1/music.flac etc. This means that if the media server&#039;s IP address were to change across reboots, then any control point or media renderer with URIs that referenced the media server before the reboot will become invalid.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is proposed that a media server should always reference itself by host name and not by IP address in any XML that it sends to external devices, i.e. http://mynas/music.flac.&lt;br /&gt;
&lt;br /&gt;
== Disc Information ==&lt;br /&gt;
&lt;br /&gt;
It is proposed that two new properties are added to the musicTrack item called &#039;&#039;&#039;OriginalDiscNumber&#039;&#039;&#039; and &#039;&#039;&#039;OriginalDiscCount&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Replay Gain Information ==&lt;br /&gt;
&lt;br /&gt;
It is proposed that four new properties are added to the musicTrack item called &#039;&#039;&#039;ReplayGainAlbum&#039;&#039;&#039;, &#039;&#039;&#039;ReplayGainAlbumPeak&#039;&#039;&#039;, &#039;&#039;&#039;ReplayGainTrack&#039;&#039;&#039;, and &#039;&#039;&#039;ReplayGainTrackPeak&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== webURI ==&lt;br /&gt;
&lt;br /&gt;
The current specification does not easily allow a control point to provide rich information about objects in the browse hierarchy.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is proposed to add an optionally property to the object class called &#039;&#039;&#039;webURI&amp;amp;nbsp;&#039;&#039;&#039;which will contain a URI to a website that provides a rich collection of information about the object, e.g. for a musicArtist container it would provided a link to a website that provided information about the artist.&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Media_Server_Extensions&amp;diff=5640</id>
		<title>Developer:Media Server Extensions</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Media_Server_Extensions&amp;diff=5640"/>
		<updated>2011-01-18T11:17:52Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Image Resolution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
The ContentDirectory service has various limitations which become apparent when implementing control points on different hardware platforms.&amp;amp;nbsp;This document aims to outlines some ideas that address various shortcomings of the ContentDirectory specification. The ideas have been categorised in low, medium and high priority groups.&lt;br /&gt;
&lt;br /&gt;
= High =&lt;br /&gt;
&lt;br /&gt;
== Image Resolution ==&lt;br /&gt;
&lt;br /&gt;
Control points running on different platforms have different memory limits and display technologies. This means that a control point on a PC might be capable of displaying images at a high resolution, while a control point on a PDA might only want to display images at a much lower resolution.&lt;br /&gt;
&lt;br /&gt;
Currently media servers try to solve this problem using one of the following two methods:&lt;br /&gt;
&lt;br /&gt;
# A configurable parameter that scales all artwork to a user defined size&lt;br /&gt;
# A profile system where a user can create profiles for each class of control point they have and configure a parameter that scales all artwork to a user defined size per profile&lt;br /&gt;
&lt;br /&gt;
The first solution is highly problematic because it limits the resolution of artwork across the whole network. But a single network very often contains control points that can display high resolution images AND control points that can&#039;t.&lt;br /&gt;
&lt;br /&gt;
The second solution is just architecturally poor, turning the relationship between a control point and a media server on its head. Why should the media server try to infer what a control point needs through configuration when the control point is perfectly capable of telling the media server its exact requirements in every single circumstance.&lt;br /&gt;
&lt;br /&gt;
So, it is proposed that compliant media servers include a &#039;&#039;&#039;size&#039;&#039;&#039; element in their artwork uri&#039;s, where the size is the image&#039;s largest dimension. This allows a control point to ask for an image at a specified size.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
If the original artwork was 400x512, then a media server would provide the following albumArtURI: &amp;lt;uri&amp;gt;?size=512. If it is not possible for the media server to obtain the original resolution then the media server would provide the following albumArtURI: &amp;lt;uri&amp;gt;?size=0.&lt;br /&gt;
&lt;br /&gt;
The presence of the size element informs the control point that the media server implements the image scaling extension and informs the control point what the original size of the image is.&lt;br /&gt;
&lt;br /&gt;
Now the control point can request the image at any resolution by using &amp;lt;uri&amp;gt;?size=x, where x is the size it wants.&lt;br /&gt;
&lt;br /&gt;
So, in this example, &amp;lt;uri&amp;gt;?size=1024 gets an 800x1024 image, and &amp;lt;uri&amp;gt;?size=200 gets a 156x200 image.&lt;br /&gt;
&lt;br /&gt;
== albumArtURI&amp;lt;br&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
The current specification only allows retrieval of artwork for a musicAlbum container through the property albumArtURI. When browsing a music library on a control point it quickly becomes clear that to implement a graphically rich control point the ContentDirectory service should provide a way to retrieve artwork for all of the content directory classes, not just musicAlbum containers.&lt;br /&gt;
&lt;br /&gt;
There has become a somewhat defacto standard where just about all media server provide an albumArtURI property for a musicItem item as well as for a musicAlbum container, however this is still not good enough to implement a graphically rich control point.&lt;br /&gt;
&lt;br /&gt;
It is proposed that an optional property is introduced to the object class called &#039;&#039;&#039;albumArtURI&#039;&#039;&amp;amp;nbsp;&#039;&#039;&#039;&#039;&#039;which may contain an attribute &#039;&#039;&#039;title&#039;&#039;&#039;,&amp;amp;nbsp;e.g. &amp;amp;lt;albumArtURI title=&amp;quot;Font Cover&amp;quot;&amp;amp;gt;http://Front Cover.jpg&amp;amp;lt;/albumArtURI&amp;amp;gt;.&amp;amp;nbsp;The object class can contain zero or more albumArtURIs elements.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Medium =&lt;br /&gt;
= Low =&lt;br /&gt;
&lt;br /&gt;
== Dynamic IP Addresses ==&lt;br /&gt;
&lt;br /&gt;
At present all media servers return URIs that contain a reference to their IP address, e.g. http://172.20.1.1/music.flac etc. This means that if the media server&#039;s IP address were to change across reboots, then any control point or media renderer with URIs that referenced the media server before the reboot will become invalid.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is proposed that a media server should always reference itself by host name and not by IP address in any XML that it sends to external devices, i.e. http://mynas/music.flac.&lt;br /&gt;
&lt;br /&gt;
== Disc Information ==&lt;br /&gt;
&lt;br /&gt;
It is proposed that two new properties are added to the musicTrack item called &#039;&#039;&#039;OriginalDiscNumber&#039;&#039;&#039; and &#039;&#039;&#039;OriginalDiscCount&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Replay Gain Information ==&lt;br /&gt;
&lt;br /&gt;
It is proposed that four new properties are added to the musicTrack item called &#039;&#039;&#039;ReplayGainAlbum&#039;&#039;&#039;, &#039;&#039;&#039;ReplayGainAlbumPeak&#039;&#039;&#039;, &#039;&#039;&#039;ReplayGainTrack&#039;&#039;&#039;, and &#039;&#039;&#039;ReplayGainTrackPeak&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== webURI ==&lt;br /&gt;
&lt;br /&gt;
The current specification does not easily allow a control point to provide rich information about objects in the browse hierarchy.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is proposed to add an optionally property to the object class called &#039;&#039;&#039;webURI&amp;amp;nbsp;&#039;&#039;&#039;which will contain a URI to a website that provides a rich collection of information about the object, e.g. for a musicArtist container it would provided a link to a website that provided information about the artist.&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Media_Server_Extensions&amp;diff=5639</id>
		<title>Developer:Media Server Extensions</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Media_Server_Extensions&amp;diff=5639"/>
		<updated>2011-01-18T11:14:39Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Image Resolution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
The ContentDirectory service has various limitations which become apparent when implementing control points on different hardware platforms.&amp;amp;nbsp;This document aims to outlines some ideas that address various shortcomings of the ContentDirectory specification. The ideas have been categorised in low, medium and high priority groups.&lt;br /&gt;
&lt;br /&gt;
= High =&lt;br /&gt;
&lt;br /&gt;
== Image Resolution ==&lt;br /&gt;
&lt;br /&gt;
Control points running on different platforms have different memory limits. This means that a control point on a PC might be capable of displaying images at a high resolution, while a control point on a PDA might only want to display images at a much lower resolution.&lt;br /&gt;
&lt;br /&gt;
Currently media servers try to solve this problem using one of the following two methods:&lt;br /&gt;
&lt;br /&gt;
# A configurable parameter that scales all artwork to a user defined size&lt;br /&gt;
# A profile system where a user can create profiles for each class of control point they have and configure a parameter that scales all artwork to a user defined size per profile&lt;br /&gt;
&lt;br /&gt;
The first solution is highly problematic because it limits the resolution of artwork across the whole network. But a single network very often contains control points that can display high resolution images AND control points that can&#039;t.&lt;br /&gt;
&lt;br /&gt;
The second solution is just architecturally poor, turning the relationship between a control point and a media server on its head. Why should the media server try to infer what a control point needs through configuration when the control point is perfectly capable of telling the media server its exact requirements in every single circumstance.&lt;br /&gt;
&lt;br /&gt;
So, it is proposed that compliant media servers include a &#039;&#039;&#039;size&#039;&#039;&#039; element in their artwork uri&#039;s, where the size is the image&#039;s largest dimension. This allows a control point to ask for an image at a specified size.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
If the original artwork was 400x512, then a media server would provide the following albumArtURI: &amp;lt;uri&amp;gt;?size=512. If it is not possible for the media server to obtain the original resolution then the media server would provide the following albumArtURI: &amp;lt;uri&amp;gt;?size=0.&lt;br /&gt;
&lt;br /&gt;
The presence of the size element informs the control point that the media server implements the image scaling extension and informs the control point what the original size of the image is.&lt;br /&gt;
&lt;br /&gt;
Now the control point can request the image at any resolution by using &amp;lt;uri&amp;gt;?size=x, where x is the size it wants.&lt;br /&gt;
&lt;br /&gt;
So, in this example, &amp;lt;uri&amp;gt;?size=1024 gets an 800x1024 image, and &amp;lt;uri&amp;gt;?size=200 gets a 156x200 image.&lt;br /&gt;
&lt;br /&gt;
== albumArtURI&amp;lt;br&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
The current specification only allows retrieval of artwork for a musicAlbum container through the property albumArtURI. When browsing a music library on a control point it quickly becomes clear that to implement a graphically rich control point the ContentDirectory service should provide a way to retrieve artwork for all of the content directory classes, not just musicAlbum containers.&lt;br /&gt;
&lt;br /&gt;
There has become a somewhat defacto standard where just about all media server provide an albumArtURI property for a musicItem item as well as for a musicAlbum container, however this is still not good enough to implement a graphically rich control point.&lt;br /&gt;
&lt;br /&gt;
It is proposed that an optional property is introduced to the object class called &#039;&#039;&#039;albumArtURI&#039;&#039;&amp;amp;nbsp;&#039;&#039;&#039;&#039;&#039;which may contain an attribute &#039;&#039;&#039;title&#039;&#039;&#039;,&amp;amp;nbsp;e.g. &amp;amp;lt;albumArtURI title=&amp;quot;Font Cover&amp;quot;&amp;amp;gt;http://Front Cover.jpg&amp;amp;lt;/albumArtURI&amp;amp;gt;.&amp;amp;nbsp;The object class can contain zero or more albumArtURIs elements.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Medium =&lt;br /&gt;
= Low =&lt;br /&gt;
&lt;br /&gt;
== Dynamic IP Addresses ==&lt;br /&gt;
&lt;br /&gt;
At present all media servers return URIs that contain a reference to their IP address, e.g. http://172.20.1.1/music.flac etc. This means that if the media server&#039;s IP address were to change across reboots, then any control point or media renderer with URIs that referenced the media server before the reboot will become invalid.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is proposed that a media server should always reference itself by host name and not by IP address in any XML that it sends to external devices, i.e. http://mynas/music.flac.&lt;br /&gt;
&lt;br /&gt;
== Disc Information ==&lt;br /&gt;
&lt;br /&gt;
It is proposed that two new properties are added to the musicTrack item called &#039;&#039;&#039;OriginalDiscNumber&#039;&#039;&#039; and &#039;&#039;&#039;OriginalDiscCount&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Replay Gain Information ==&lt;br /&gt;
&lt;br /&gt;
It is proposed that four new properties are added to the musicTrack item called &#039;&#039;&#039;ReplayGainAlbum&#039;&#039;&#039;, &#039;&#039;&#039;ReplayGainAlbumPeak&#039;&#039;&#039;, &#039;&#039;&#039;ReplayGainTrack&#039;&#039;&#039;, and &#039;&#039;&#039;ReplayGainTrackPeak&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== webURI ==&lt;br /&gt;
&lt;br /&gt;
The current specification does not easily allow a control point to provide rich information about objects in the browse hierarchy.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is proposed to add an optionally property to the object class called &#039;&#039;&#039;webURI&amp;amp;nbsp;&#039;&#039;&#039;which will contain a URI to a website that provides a rich collection of information about the object, e.g. for a musicArtist container it would provided a link to a website that provided information about the artist.&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Media_Server_Extensions&amp;diff=5638</id>
		<title>Developer:Media Server Extensions</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Media_Server_Extensions&amp;diff=5638"/>
		<updated>2011-01-18T11:11:48Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Image Resolution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
The ContentDirectory service has various limitations which become apparent when implementing control points on different hardware platforms.&amp;amp;nbsp;This document aims to outlines some ideas that address various shortcomings of the ContentDirectory specification. The ideas have been categorised in low, medium and high priority groups.&lt;br /&gt;
&lt;br /&gt;
= High =&lt;br /&gt;
&lt;br /&gt;
== Image Resolution ==&lt;br /&gt;
&lt;br /&gt;
Control points running on different platforms have different memory limits. This means that a control point on a PC might be capable of displaying images at a high resolution, while a control point on a PDA might only want to display images at a much lower resolution.&lt;br /&gt;
&lt;br /&gt;
Currently media servers try to solve this problem using one of the following two methods:&lt;br /&gt;
&lt;br /&gt;
# A configurable parameter that scales all artwork to a user defined size&lt;br /&gt;
# A profile system where a user can create profiles for each class of control point they have and configure a parameter that scales all artwork to a user defined size per profile&lt;br /&gt;
&lt;br /&gt;
The first solution is highly problematic because it limits the resolution of artwork across the whole network. But a single network very often contains control points that can display high resolution images AND control points that can&#039;t.&lt;br /&gt;
&lt;br /&gt;
The second solution is just an architecturally poor solution, which turns the relationship between a control point and a media server on its head. Why should the media server try to infer what a control point needs through configuration when the control point is perfectly capable of telling the media server its exact requirements in every single circumstance.&lt;br /&gt;
&lt;br /&gt;
So, it is proposed that compliant media servers include a &#039;&#039;&#039;size&#039;&#039;&#039; element in their artwork uri&#039;s, where the size is the image&#039;s largest dimension. This allows a control point to ask for an image at a specified size.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
If the original artwork was 400x512, then a media server would provide the following albumArtURI: &amp;lt;uri&amp;gt;?size=512. If it is not possible for the media server to obtain the original resolution then the media server would provide the following albumArtURI: &amp;lt;uri&amp;gt;?size=0.&lt;br /&gt;
&lt;br /&gt;
The presence of the size element informs the control point that the media server implements the image scaling extension and informs the control point what the original size of the image is.&lt;br /&gt;
&lt;br /&gt;
Now the control point can request the image at any resolution by using &amp;lt;uri&amp;gt;?size=x, where x is the size it wants.&lt;br /&gt;
&lt;br /&gt;
So, in this example, &amp;lt;uri&amp;gt;?size=1024 gets an 800x1024 image, and &amp;lt;uri&amp;gt;?size=200 gets a 156x200 image.&lt;br /&gt;
&lt;br /&gt;
== albumArtURI&amp;lt;br&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
The current specification only allows retrieval of artwork for a musicAlbum container through the property albumArtURI. When browsing a music library on a control point it quickly becomes clear that to implement a graphically rich control point the ContentDirectory service should provide a way to retrieve artwork for all of the content directory classes, not just musicAlbum containers.&lt;br /&gt;
&lt;br /&gt;
There has become a somewhat defacto standard where just about all media server provide an albumArtURI property for a musicItem item as well as for a musicAlbum container, however this is still not good enough to implement a graphically rich control point.&lt;br /&gt;
&lt;br /&gt;
It is proposed that an optional property is introduced to the object class called &#039;&#039;&#039;albumArtURI&#039;&#039;&amp;amp;nbsp;&#039;&#039;&#039;&#039;&#039;which may contain an attribute &#039;&#039;&#039;title&#039;&#039;&#039;,&amp;amp;nbsp;e.g. &amp;amp;lt;albumArtURI title=&amp;quot;Font Cover&amp;quot;&amp;amp;gt;http://Front Cover.jpg&amp;amp;lt;/albumArtURI&amp;amp;gt;.&amp;amp;nbsp;The object class can contain zero or more albumArtURIs elements.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Medium =&lt;br /&gt;
= Low =&lt;br /&gt;
&lt;br /&gt;
== Dynamic IP Addresses ==&lt;br /&gt;
&lt;br /&gt;
At present all media servers return URIs that contain a reference to their IP address, e.g. http://172.20.1.1/music.flac etc. This means that if the media server&#039;s IP address were to change across reboots, then any control point or media renderer with URIs that referenced the media server before the reboot will become invalid.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is proposed that a media server should always reference itself by host name and not by IP address in any XML that it sends to external devices, i.e. http://mynas/music.flac.&lt;br /&gt;
&lt;br /&gt;
== Disc Information ==&lt;br /&gt;
&lt;br /&gt;
It is proposed that two new properties are added to the musicTrack item called &#039;&#039;&#039;OriginalDiscNumber&#039;&#039;&#039; and &#039;&#039;&#039;OriginalDiscCount&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Replay Gain Information ==&lt;br /&gt;
&lt;br /&gt;
It is proposed that four new properties are added to the musicTrack item called &#039;&#039;&#039;ReplayGainAlbum&#039;&#039;&#039;, &#039;&#039;&#039;ReplayGainAlbumPeak&#039;&#039;&#039;, &#039;&#039;&#039;ReplayGainTrack&#039;&#039;&#039;, and &#039;&#039;&#039;ReplayGainTrackPeak&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== webURI ==&lt;br /&gt;
&lt;br /&gt;
The current specification does not easily allow a control point to provide rich information about objects in the browse hierarchy.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is proposed to add an optionally property to the object class called &#039;&#039;&#039;webURI&amp;amp;nbsp;&#039;&#039;&#039;which will contain a URI to a website that provides a rich collection of information about the object, e.g. for a musicArtist container it would provided a link to a website that provided information about the artist.&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Media_Server_Extensions&amp;diff=5637</id>
		<title>Developer:Media Server Extensions</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Media_Server_Extensions&amp;diff=5637"/>
		<updated>2011-01-18T11:03:18Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
The ContentDirectory service has various limitations which become apparent when implementing control points on different hardware platforms.&amp;amp;nbsp;This document aims to outlines some ideas that address various shortcomings of the ContentDirectory specification. The ideas have been categorised in low, medium and high priority groups.&lt;br /&gt;
&lt;br /&gt;
= High =&lt;br /&gt;
&lt;br /&gt;
== Image Resolution ==&lt;br /&gt;
&lt;br /&gt;
Control points running on different platforms have different memory limits. This means that a control point on a PC is capable of displaying images of a high resolution, while a control point on a PDA can only display images at a much lower resolution.&lt;br /&gt;
&lt;br /&gt;
Currently media servers try to solve this problem using one of the following two methods:&lt;br /&gt;
&lt;br /&gt;
# A configurable parameter that scales all artwork to a user defined size&lt;br /&gt;
# A profile system where a user can create profiles for each class of control point they have and configure a parameter that scales all artwork to a user defined size per profile&lt;br /&gt;
&lt;br /&gt;
These systems are fundamentally flawed as they are trying to infer what a control point wants, rather than allowing a control point to ask the media server for the information it wants.&lt;br /&gt;
&lt;br /&gt;
It is proposed that all image URIs allow a parameter &#039;&#039;&#039;size&#039;&#039;&#039; to be specified, (where the size is the image&#039;s largest dimension). This parameter allows a control point to ask for the image at a specified size; It is then up to the media server to try and service this request as best possible.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
If the original artwork was 400x512, then a media server would provide the following albumArtURI: &amp;lt;uri&amp;gt;?size=512. If it is not possible for the media server to obtain the original resolution then the media server would provide the following albumArtURI: &amp;lt;uri&amp;gt;?size=0.&lt;br /&gt;
&lt;br /&gt;
The presence of the size element informs the control point that the media server implements the image scaling extension and informs the control point what the original size of the image is.&lt;br /&gt;
&lt;br /&gt;
Now the control point can request the image at any resolution by using &amp;lt;uri&amp;gt;?size=x, where x is the size it wants.&lt;br /&gt;
&lt;br /&gt;
So, in this example, &amp;lt;uri&amp;gt;?size=1024 gets an 800x1024 image, and &amp;lt;uri&amp;gt;?size=200 gets a 156x200 image.&lt;br /&gt;
&lt;br /&gt;
== albumArtURI&amp;lt;br&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
The current specification only allows retrieval of artwork for a musicAlbum container through the property albumArtURI. When browsing a music library on a control point it quickly becomes clear that to implement a graphically rich control point the ContentDirectory service should provide a way to retrieve artwork for all of the content directory classes, not just musicAlbum containers.&lt;br /&gt;
&lt;br /&gt;
There has become a somewhat defacto standard where just about all media server provide an albumArtURI property for a musicItem item as well as for a musicAlbum container, however this is still not good enough to implement a graphically rich control point.&lt;br /&gt;
&lt;br /&gt;
It is proposed that an optional property is introduced to the object class called &#039;&#039;&#039;albumArtURI&#039;&#039;&amp;amp;nbsp;&#039;&#039;&#039;&#039;&#039;which may contain an attribute &#039;&#039;&#039;title&#039;&#039;&#039;,&amp;amp;nbsp;e.g. &amp;amp;lt;albumArtURI title=&amp;quot;Font Cover&amp;quot;&amp;amp;gt;http://Front Cover.jpg&amp;amp;lt;/albumArtURI&amp;amp;gt;.&amp;amp;nbsp;The object class can contain zero or more albumArtURIs elements.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Medium =&lt;br /&gt;
= Low =&lt;br /&gt;
&lt;br /&gt;
== Dynamic IP Addresses ==&lt;br /&gt;
&lt;br /&gt;
At present all media servers return URIs that contain a reference to their IP address, e.g. http://172.20.1.1/music.flac etc. This means that if the media server&#039;s IP address were to change across reboots, then any control point or media renderer with URIs that referenced the media server before the reboot will become invalid.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is proposed that a media server should always reference itself by host name and not by IP address in any XML that it sends to external devices, i.e. http://mynas/music.flac.&lt;br /&gt;
&lt;br /&gt;
== Disc Information ==&lt;br /&gt;
&lt;br /&gt;
It is proposed that two new properties are added to the musicTrack item called &#039;&#039;&#039;OriginalDiscNumber&#039;&#039;&#039; and &#039;&#039;&#039;OriginalDiscCount&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Replay Gain Information ==&lt;br /&gt;
&lt;br /&gt;
It is proposed that four new properties are added to the musicTrack item called &#039;&#039;&#039;ReplayGainAlbum&#039;&#039;&#039;, &#039;&#039;&#039;ReplayGainAlbumPeak&#039;&#039;&#039;, &#039;&#039;&#039;ReplayGainTrack&#039;&#039;&#039;, and &#039;&#039;&#039;ReplayGainTrackPeak&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== webURI ==&lt;br /&gt;
&lt;br /&gt;
The current specification does not easily allow a control point to provide rich information about objects in the browse hierarchy.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is proposed to add an optionally property to the object class called &#039;&#039;&#039;webURI&amp;amp;nbsp;&#039;&#039;&#039;which will contain a URI to a website that provides a rich collection of information about the object, e.g. for a musicArtist container it would provided a link to a website that provided information about the artist.&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Media_Server_Extensions&amp;diff=5636</id>
		<title>Developer:Media Server Extensions</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Media_Server_Extensions&amp;diff=5636"/>
		<updated>2011-01-18T10:40:15Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Image Resolution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
The ContentDirectory service has various limitations which become apparent when implementing control points on different hardware platforms.&amp;amp;nbsp;This document aims to outlines some ideas that address various shortcomings of the ContentDirectory specification. The ideas have been categorised in low, medium and high priority groups.&lt;br /&gt;
&lt;br /&gt;
= High =&lt;br /&gt;
&lt;br /&gt;
== Image Resolution ==&lt;br /&gt;
&lt;br /&gt;
Control points running on different platforms have different memory limits. This means that a control point on a PC is capable of displaying images of a high resolution, while a control point on a PDA can only display images at a much lower resolution.&lt;br /&gt;
&lt;br /&gt;
Currently media servers try to solve this problem using one of the following two methods:&lt;br /&gt;
&lt;br /&gt;
# A configurable parameter that scales all artwork to a user defined size&lt;br /&gt;
# A profile system where a user can create profiles for each class of control point they have and configure a parameter that scales all artwork to a user defined size per profile&lt;br /&gt;
&lt;br /&gt;
These systems are fundamentally flawed as they are trying to infer what a control point wants, rather than allowing a control point to ask the media server for the information it wants.&lt;br /&gt;
&lt;br /&gt;
It is proposed that all image URIs allow a parameter &#039;&#039;&#039;size&#039;&#039;&#039; to be specified, (where the size is the image&#039;s largest dimension). This parameter allows a control point to ask for the image at a specified size; It is then up to the media server to try and service this request as best possible.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
If the original artwork was 400x512, then a media server would provide the following albumArtURI: &amp;lt;uri&amp;gt;?size=512; if it is not possible for the media server to obtain the original resolution then the media server would provide the following albumArtURI: &amp;lt;uri&amp;gt;?size=0. Providing this size element in the albumArtURI informs the control point that the media server implements this image scaling extension and informs the control point what the original size of the image is.&lt;br /&gt;
&lt;br /&gt;
== albumArtURI&amp;lt;br&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
The current specification only allows retrieval of artwork for a musicAlbum container through the property albumArtURI. When browsing a music library on a control point it quickly becomes clear that to implement a graphically rich control point the ContentDirectory service should provide a way to retrieve artwork for all of the content directory classes, not just musicAlbum containers.&lt;br /&gt;
&lt;br /&gt;
There has become a somewhat defacto standard where just about all media server provide an albumArtURI property for a musicItem item as well as for a musicAlbum container, however this is still not good enough to implement a graphically rich control point.&lt;br /&gt;
&lt;br /&gt;
It is proposed that an optional property is introduced to the object class called &#039;&#039;&#039;albumArtURI&#039;&#039;&amp;amp;nbsp;&#039;&#039;&#039;&#039;&#039;which may contain an attribute &#039;&#039;&#039;title&#039;&#039;&#039;,&amp;amp;nbsp;e.g. &amp;amp;lt;albumArtURI title=&amp;quot;Font Cover&amp;quot;&amp;amp;gt;http://Front Cover.jpg&amp;amp;lt;/albumArtURI&amp;amp;gt;.&amp;amp;nbsp;The object class can contain zero or more albumArtURIs elements.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Medium =&lt;br /&gt;
= Low =&lt;br /&gt;
&lt;br /&gt;
== Dynamic IP Addresses ==&lt;br /&gt;
&lt;br /&gt;
At present all media servers return URIs that contain a reference to their IP address, e.g. http://172.20.1.1/music.flac etc. This means that if the media server&#039;s IP address were to change across reboots, then any control point or media renderer with URIs that referenced the media server before the reboot will become invalid.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is proposed that a media server should always reference itself by host name and not by IP address in any XML that it sends to external devices, i.e. http://mynas/music.flac.&lt;br /&gt;
&lt;br /&gt;
== Disc Information ==&lt;br /&gt;
&lt;br /&gt;
It is proposed that two new properties are added to the musicTrack item called &#039;&#039;&#039;OriginalDiscNumber&#039;&#039;&#039; and &#039;&#039;&#039;OriginalDiscCount&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Replay Gain Information ==&lt;br /&gt;
&lt;br /&gt;
It is proposed that four new properties are added to the musicTrack item called &#039;&#039;&#039;ReplayGainAlbum&#039;&#039;&#039;, &#039;&#039;&#039;ReplayGainAlbumPeak&#039;&#039;&#039;, &#039;&#039;&#039;ReplayGainTrack&#039;&#039;&#039;, and &#039;&#039;&#039;ReplayGainTrackPeak&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== webURI ==&lt;br /&gt;
&lt;br /&gt;
The current specification does not easily allow a control point to provide rich information about objects in the browse hierarchy.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is proposed to add an optionally property to the object class called &#039;&#039;&#039;webURI&amp;amp;nbsp;&#039;&#039;&#039;which will contain a URI to a website that provides a rich collection of information about the object, e.g. for a musicArtist container it would provided a link to a website that provided information about the artist.&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:Topology&amp;diff=5232</id>
		<title>Developer:Davaar:Topology</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:Topology&amp;diff=5232"/>
		<updated>2010-12-02T15:31:10Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Openhome products all have a standard way of presenting themselves to the network. This makes it possible to write generic Control Point software that is able to control those products independent of Manufacturer or specific features.&lt;br /&gt;
&lt;br /&gt;
The technologies associated with making this possible are grouped under the term Openhome Topology.&lt;br /&gt;
&lt;br /&gt;
If a developer wishes to write generic software that participates in the aims described above, then they should write that software in a way that conforms to the strategies and algorithms of Openhome Topology, which is described below&lt;br /&gt;
&lt;br /&gt;
== Topology ==&lt;br /&gt;
&lt;br /&gt;
=== Products ===&lt;br /&gt;
&lt;br /&gt;
An Openhome installation consists of products from a variety of manufacturers each bearing the [[Developer:Davaar:ProductService|Product service]].&lt;br /&gt;
&lt;br /&gt;
Amongst other information, each product has:&lt;br /&gt;
&lt;br /&gt;
* Room (user configurable, defaults to &#039;Main Room&#039;)&lt;br /&gt;
&lt;br /&gt;
* Name (user configurable, defaults to the model name)&lt;br /&gt;
&lt;br /&gt;
* Source Count (fixed according to the capabilities of the product)&lt;br /&gt;
&lt;br /&gt;
* List of Sources, each with its own Type, Name, and Visibility&lt;br /&gt;
&lt;br /&gt;
* Attributes, identifying additional functionality offered by the product&lt;br /&gt;
&lt;br /&gt;
=== Proper Configuration ===&lt;br /&gt;
&lt;br /&gt;
The name of each product represents its audio output.&lt;br /&gt;
&lt;br /&gt;
The name of each source represents an audio input (either internal or external).&lt;br /&gt;
&lt;br /&gt;
In a properly configured system, if one product is connected to another using an audio cable, then the name of the product sending the audio should match the name of the source receiving the audio. It is by matching these names that a Control Point is able to select the correct input on, for instance, a preamp when a particular source is selected.&lt;br /&gt;
&lt;br /&gt;
=== Discovering An Openhome System ===&lt;br /&gt;
&lt;br /&gt;
The correct way to discover an Openhome system is to:&lt;br /&gt;
&lt;br /&gt;
* search for all units bearing the Product service&lt;br /&gt;
&lt;br /&gt;
* subscribe to each Product service&lt;br /&gt;
&lt;br /&gt;
* group these products according to their Room.&lt;br /&gt;
&lt;br /&gt;
* collect the name of all the sources in each product&lt;br /&gt;
&lt;br /&gt;
* match the names of the sources to the names of the products to create a set of tree structures in each room.&lt;br /&gt;
&lt;br /&gt;
=== Source Functionality ===&lt;br /&gt;
&lt;br /&gt;
To determine the kind of functionality available on each source, inspect its type.&lt;br /&gt;
&lt;br /&gt;
If it has type Playlist, it additionally contains the [[Developer:Davaar:PlaylistService|Playlist service]]&lt;br /&gt;
&lt;br /&gt;
If it has type Radio, it additionally contains the [[Developer:Davaar:RadioService|Radio service]]&lt;br /&gt;
&lt;br /&gt;
If it has type Receiver, it additionally contains the [[Developer:Davaar:ReceiverService|Receiver service]]&lt;br /&gt;
&lt;br /&gt;
=== Volume Control ===&lt;br /&gt;
&lt;br /&gt;
Products that offer volume control include the Volume attribute and the [[Developer:Davaar:VolumeService|Volume service]]&lt;br /&gt;
&lt;br /&gt;
The primary volume control offered by a control point should be the one situated nearest the root in the tree structure that contains the current source.&lt;br /&gt;
&lt;br /&gt;
Control points may optionally provide the user with control of the volume of each product within the tree.&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:ReceiverService&amp;diff=5209</id>
		<title>Developer:Davaar:ReceiverService</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:ReceiverService&amp;diff=5209"/>
		<updated>2010-12-01T13:44:29Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Stop */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Architectural Overview =&lt;br /&gt;
&lt;br /&gt;
The Receiver service provides the means for controlling a Receiver source. If a device&#039;s [[Developer:Davaar:ProductService|Product service]] reports a source of type &#039;Receiver&#039;, then that device is guaranteed to bear the Receiver service.&lt;br /&gt;
&lt;br /&gt;
A receiver plays audio broadcast from a sender.&lt;br /&gt;
&lt;br /&gt;
= Actions =&lt;br /&gt;
== Sender ==&lt;br /&gt;
Report the Uri and Metadata of the sender this receiver is currently listening to.&lt;br /&gt;
&lt;br /&gt;
==SetSender==&lt;br /&gt;
Set the Uri and Metadata of the sender to listen to.&lt;br /&gt;
&lt;br /&gt;
The Metadata must have originated from a device bearing the [[Developer:Davaar:SenderService|Sender service]].&lt;br /&gt;
&lt;br /&gt;
The Uri must be the result of applying this receiver&#039;s ProtocolInfo to this Metadata.&lt;br /&gt;
&lt;br /&gt;
==ProtocolInfo==&lt;br /&gt;
Report the receiver&#039;s protocol info.&lt;br /&gt;
&lt;br /&gt;
==TransportState==&lt;br /&gt;
&lt;br /&gt;
Report the current transport state, which can be: &#039;Playing&#039;, &#039;Paused&#039;, &#039;Stopped&#039;, or &#039;Buffering&#039;.&lt;br /&gt;
&lt;br /&gt;
==Play==&lt;br /&gt;
Play audio from the current sender&lt;br /&gt;
&lt;br /&gt;
==Stop==&lt;br /&gt;
Stop playing audio from the current sender&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    : Receiver&lt;br /&gt;
    Version : 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
[http://oss.linn.co.uk/trac/browser/Main/LibUpnpCil/Services/Openhome/Receiver1.xml Receiver Service Description (XML)]&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:ReceiverService&amp;diff=5208</id>
		<title>Developer:Davaar:ReceiverService</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:ReceiverService&amp;diff=5208"/>
		<updated>2010-12-01T13:44:17Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Play */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Architectural Overview =&lt;br /&gt;
&lt;br /&gt;
The Receiver service provides the means for controlling a Receiver source. If a device&#039;s [[Developer:Davaar:ProductService|Product service]] reports a source of type &#039;Receiver&#039;, then that device is guaranteed to bear the Receiver service.&lt;br /&gt;
&lt;br /&gt;
A receiver plays audio broadcast from a sender.&lt;br /&gt;
&lt;br /&gt;
= Actions =&lt;br /&gt;
== Sender ==&lt;br /&gt;
Report the Uri and Metadata of the sender this receiver is currently listening to.&lt;br /&gt;
&lt;br /&gt;
==SetSender==&lt;br /&gt;
Set the Uri and Metadata of the sender to listen to.&lt;br /&gt;
&lt;br /&gt;
The Metadata must have originated from a device bearing the [[Developer:Davaar:SenderService|Sender service]].&lt;br /&gt;
&lt;br /&gt;
The Uri must be the result of applying this receiver&#039;s ProtocolInfo to this Metadata.&lt;br /&gt;
&lt;br /&gt;
==ProtocolInfo==&lt;br /&gt;
Report the receiver&#039;s protocol info.&lt;br /&gt;
&lt;br /&gt;
==TransportState==&lt;br /&gt;
&lt;br /&gt;
Report the current transport state, which can be: &#039;Playing&#039;, &#039;Paused&#039;, &#039;Stopped&#039;, or &#039;Buffering&#039;.&lt;br /&gt;
&lt;br /&gt;
==Play==&lt;br /&gt;
Play audio from the current sender&lt;br /&gt;
&lt;br /&gt;
==Stop==&lt;br /&gt;
Stop playing the current sender&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    : Receiver&lt;br /&gt;
    Version : 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
[http://oss.linn.co.uk/trac/browser/Main/LibUpnpCil/Services/Openhome/Receiver1.xml Receiver Service Description (XML)]&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:ReceiverService&amp;diff=5207</id>
		<title>Developer:Davaar:ReceiverService</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:ReceiverService&amp;diff=5207"/>
		<updated>2010-12-01T13:43:45Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* SetSender */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Architectural Overview =&lt;br /&gt;
&lt;br /&gt;
The Receiver service provides the means for controlling a Receiver source. If a device&#039;s [[Developer:Davaar:ProductService|Product service]] reports a source of type &#039;Receiver&#039;, then that device is guaranteed to bear the Receiver service.&lt;br /&gt;
&lt;br /&gt;
A receiver plays audio broadcast from a sender.&lt;br /&gt;
&lt;br /&gt;
= Actions =&lt;br /&gt;
== Sender ==&lt;br /&gt;
Report the Uri and Metadata of the sender this receiver is currently listening to.&lt;br /&gt;
&lt;br /&gt;
==SetSender==&lt;br /&gt;
Set the Uri and Metadata of the sender to listen to.&lt;br /&gt;
&lt;br /&gt;
The Metadata must have originated from a device bearing the [[Developer:Davaar:SenderService|Sender service]].&lt;br /&gt;
&lt;br /&gt;
The Uri must be the result of applying this receiver&#039;s ProtocolInfo to this Metadata.&lt;br /&gt;
&lt;br /&gt;
==ProtocolInfo==&lt;br /&gt;
Report the receiver&#039;s protocol info.&lt;br /&gt;
&lt;br /&gt;
==TransportState==&lt;br /&gt;
&lt;br /&gt;
Report the current transport state, which can be: &#039;Playing&#039;, &#039;Paused&#039;, &#039;Stopped&#039;, or &#039;Buffering&#039;.&lt;br /&gt;
&lt;br /&gt;
==Play==&lt;br /&gt;
Play the current sender&lt;br /&gt;
&lt;br /&gt;
==Stop==&lt;br /&gt;
Stop playing the current sender&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    : Receiver&lt;br /&gt;
    Version : 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
[http://oss.linn.co.uk/trac/browser/Main/LibUpnpCil/Services/Openhome/Receiver1.xml Receiver Service Description (XML)]&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:ReceiverService&amp;diff=5206</id>
		<title>Developer:Davaar:ReceiverService</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:ReceiverService&amp;diff=5206"/>
		<updated>2010-12-01T13:43:28Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Sender */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Architectural Overview =&lt;br /&gt;
&lt;br /&gt;
The Receiver service provides the means for controlling a Receiver source. If a device&#039;s [[Developer:Davaar:ProductService|Product service]] reports a source of type &#039;Receiver&#039;, then that device is guaranteed to bear the Receiver service.&lt;br /&gt;
&lt;br /&gt;
A receiver plays audio broadcast from a sender.&lt;br /&gt;
&lt;br /&gt;
= Actions =&lt;br /&gt;
== Sender ==&lt;br /&gt;
Report the Uri and Metadata of the sender this receiver is currently listening to.&lt;br /&gt;
&lt;br /&gt;
==SetSender==&lt;br /&gt;
Set the Uri and Metadata of the current sender.&lt;br /&gt;
&lt;br /&gt;
The Metadata must have originated from a device bearing the [[Developer:Davaar:SenderService|Sender service]].&lt;br /&gt;
&lt;br /&gt;
The Uri must be the result of applying this receiver&#039;s ProtocolInfo to this Metadata.&lt;br /&gt;
&lt;br /&gt;
==ProtocolInfo==&lt;br /&gt;
Report the receiver&#039;s protocol info.&lt;br /&gt;
&lt;br /&gt;
==TransportState==&lt;br /&gt;
&lt;br /&gt;
Report the current transport state, which can be: &#039;Playing&#039;, &#039;Paused&#039;, &#039;Stopped&#039;, or &#039;Buffering&#039;.&lt;br /&gt;
&lt;br /&gt;
==Play==&lt;br /&gt;
Play the current sender&lt;br /&gt;
&lt;br /&gt;
==Stop==&lt;br /&gt;
Stop playing the current sender&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    : Receiver&lt;br /&gt;
    Version : 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
[http://oss.linn.co.uk/trac/browser/Main/LibUpnpCil/Services/Openhome/Receiver1.xml Receiver Service Description (XML)]&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:ReceiverService&amp;diff=5205</id>
		<title>Developer:Davaar:ReceiverService</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:ReceiverService&amp;diff=5205"/>
		<updated>2010-12-01T13:42:57Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Architectural Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Architectural Overview =&lt;br /&gt;
&lt;br /&gt;
The Receiver service provides the means for controlling a Receiver source. If a device&#039;s [[Developer:Davaar:ProductService|Product service]] reports a source of type &#039;Receiver&#039;, then that device is guaranteed to bear the Receiver service.&lt;br /&gt;
&lt;br /&gt;
A receiver plays audio broadcast from a sender.&lt;br /&gt;
&lt;br /&gt;
= Actions =&lt;br /&gt;
== Sender ==&lt;br /&gt;
Report the Uri and Metadata of the current sender.&lt;br /&gt;
&lt;br /&gt;
==SetSender==&lt;br /&gt;
Set the Uri and Metadata of the current sender.&lt;br /&gt;
&lt;br /&gt;
The Metadata must have originated from a device bearing the [[Developer:Davaar:SenderService|Sender service]].&lt;br /&gt;
&lt;br /&gt;
The Uri must be the result of applying this receiver&#039;s ProtocolInfo to this Metadata.&lt;br /&gt;
&lt;br /&gt;
==ProtocolInfo==&lt;br /&gt;
Report the receiver&#039;s protocol info.&lt;br /&gt;
&lt;br /&gt;
==TransportState==&lt;br /&gt;
&lt;br /&gt;
Report the current transport state, which can be: &#039;Playing&#039;, &#039;Paused&#039;, &#039;Stopped&#039;, or &#039;Buffering&#039;.&lt;br /&gt;
&lt;br /&gt;
==Play==&lt;br /&gt;
Play the current sender&lt;br /&gt;
&lt;br /&gt;
==Stop==&lt;br /&gt;
Stop playing the current sender&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    : Receiver&lt;br /&gt;
    Version : 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
[http://oss.linn.co.uk/trac/browser/Main/LibUpnpCil/Services/Openhome/Receiver1.xml Receiver Service Description (XML)]&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:SenderService&amp;diff=5204</id>
		<title>Developer:Davaar:SenderService</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:SenderService&amp;diff=5204"/>
		<updated>2010-12-01T13:40:51Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Status */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Architectural Overview =&lt;br /&gt;
&lt;br /&gt;
The Sender service indicates the presence of an Openhome sender and provides information concerning that sender.&lt;br /&gt;
&lt;br /&gt;
An Openhome sender broadcasts music on a network in a way that is playable by an Openhome receiver.&lt;br /&gt;
&lt;br /&gt;
Openhome senders should be discovered independently of the standard algorithm for discovering Openhome products and sources. An independent search should be made for devices bearing the Sender service.&lt;br /&gt;
&lt;br /&gt;
= Actions =&lt;br /&gt;
== Attributes ==&lt;br /&gt;
Reports a space separated list of attributes that identify additional functionality that can be found on the same device as this Sender.&lt;br /&gt;
&lt;br /&gt;
Currently defined attributes are:&lt;br /&gt;
&lt;br /&gt;
* Info - this device reports on the current media using the Info service&lt;br /&gt;
* Time - this device reports on the current media using the Time service&lt;br /&gt;
&lt;br /&gt;
== Audio == &lt;br /&gt;
Reports whether audio is currently present on this sender.&lt;br /&gt;
&lt;br /&gt;
== Metadata ==&lt;br /&gt;
Provides a representation of this audio item in DIDL-Lite format.&lt;br /&gt;
&lt;br /&gt;
== PresentationUrl ==&lt;br /&gt;
Reports the Url of a presentation page for further information concerning the sender, or for controlling the sender in some application-specific way.&lt;br /&gt;
&lt;br /&gt;
If the sender has no presentation page, the PresentationUrl should be empty.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
Reports the status of the sender (normally only for debugging purposes):&lt;br /&gt;
&lt;br /&gt;
* Sending - currently sending audio over the network&lt;br /&gt;
* Ready - ready to send audio but no listeners&lt;br /&gt;
* Blocked - audio from another sender detected on the same channel (mis-configuration)&lt;br /&gt;
* Inactive - no audio source currently assigned to this sender&lt;br /&gt;
* Disabled - sender disabled by user configuration&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    : Sender&lt;br /&gt;
    Version : 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
[http://oss.linn.co.uk/trac/browser/Main/LibUpnpCil/Services/Openhome/Sender1.xml Sender Service Description (XML)]&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:SenderService&amp;diff=5203</id>
		<title>Developer:Davaar:SenderService</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:SenderService&amp;diff=5203"/>
		<updated>2010-12-01T13:40:18Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Status */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Architectural Overview =&lt;br /&gt;
&lt;br /&gt;
The Sender service indicates the presence of an Openhome sender and provides information concerning that sender.&lt;br /&gt;
&lt;br /&gt;
An Openhome sender broadcasts music on a network in a way that is playable by an Openhome receiver.&lt;br /&gt;
&lt;br /&gt;
Openhome senders should be discovered independently of the standard algorithm for discovering Openhome products and sources. An independent search should be made for devices bearing the Sender service.&lt;br /&gt;
&lt;br /&gt;
= Actions =&lt;br /&gt;
== Attributes ==&lt;br /&gt;
Reports a space separated list of attributes that identify additional functionality that can be found on the same device as this Sender.&lt;br /&gt;
&lt;br /&gt;
Currently defined attributes are:&lt;br /&gt;
&lt;br /&gt;
* Info - this device reports on the current media using the Info service&lt;br /&gt;
* Time - this device reports on the current media using the Time service&lt;br /&gt;
&lt;br /&gt;
== Audio == &lt;br /&gt;
Reports whether audio is currently present on this sender.&lt;br /&gt;
&lt;br /&gt;
== Metadata ==&lt;br /&gt;
Provides a representation of this audio item in DIDL-Lite format.&lt;br /&gt;
&lt;br /&gt;
== PresentationUrl ==&lt;br /&gt;
Reports the Url of a presentation page for further information concerning the sender, or for controlling the sender in some application-specific way.&lt;br /&gt;
&lt;br /&gt;
If the sender has no presentation page, the PresentationUrl should be empty.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
Reports the status of the sender (normally only for debugging purposes):&lt;br /&gt;
&lt;br /&gt;
* Sending - currently sending audio over the network&lt;br /&gt;
* Ready - ready to send audio but no listeners&lt;br /&gt;
* Blocked - audio from another sender detected on the same channel&lt;br /&gt;
* Inactive - no audio source currently assigned to this sender&lt;br /&gt;
* Disabled - sender disabled by user configuration&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    : Sender&lt;br /&gt;
    Version : 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
[http://oss.linn.co.uk/trac/browser/Main/LibUpnpCil/Services/Openhome/Sender1.xml Sender Service Description (XML)]&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:SenderService&amp;diff=5202</id>
		<title>Developer:Davaar:SenderService</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:SenderService&amp;diff=5202"/>
		<updated>2010-12-01T13:39:32Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Status */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Architectural Overview =&lt;br /&gt;
&lt;br /&gt;
The Sender service indicates the presence of an Openhome sender and provides information concerning that sender.&lt;br /&gt;
&lt;br /&gt;
An Openhome sender broadcasts music on a network in a way that is playable by an Openhome receiver.&lt;br /&gt;
&lt;br /&gt;
Openhome senders should be discovered independently of the standard algorithm for discovering Openhome products and sources. An independent search should be made for devices bearing the Sender service.&lt;br /&gt;
&lt;br /&gt;
= Actions =&lt;br /&gt;
== Attributes ==&lt;br /&gt;
Reports a space separated list of attributes that identify additional functionality that can be found on the same device as this Sender.&lt;br /&gt;
&lt;br /&gt;
Currently defined attributes are:&lt;br /&gt;
&lt;br /&gt;
* Info - this device reports on the current media using the Info service&lt;br /&gt;
* Time - this device reports on the current media using the Time service&lt;br /&gt;
&lt;br /&gt;
== Audio == &lt;br /&gt;
Reports whether audio is currently present on this sender.&lt;br /&gt;
&lt;br /&gt;
== Metadata ==&lt;br /&gt;
Provides a representation of this audio item in DIDL-Lite format.&lt;br /&gt;
&lt;br /&gt;
== PresentationUrl ==&lt;br /&gt;
Reports the Url of a presentation page for further information concerning the sender, or for controlling the sender in some application-specific way.&lt;br /&gt;
&lt;br /&gt;
If the sender has no presentation page, the PresentationUrl should be empty.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
Reports the status of the sender (normally only for debugging purposes):&lt;br /&gt;
&lt;br /&gt;
* Sending - currently sending audio over the network&lt;br /&gt;
* Ready - ready to send audio but no listeners&lt;br /&gt;
* Blocked - audio from another sender detected on the same channel&lt;br /&gt;
* Inactive - no audio source connected to this sender&lt;br /&gt;
* Disabled - sender disabled by user configuration&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    : Sender&lt;br /&gt;
    Version : 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
[http://oss.linn.co.uk/trac/browser/Main/LibUpnpCil/Services/Openhome/Sender1.xml Sender Service Description (XML)]&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:SenderService&amp;diff=5201</id>
		<title>Developer:Davaar:SenderService</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:SenderService&amp;diff=5201"/>
		<updated>2010-12-01T13:38:43Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Status */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Architectural Overview =&lt;br /&gt;
&lt;br /&gt;
The Sender service indicates the presence of an Openhome sender and provides information concerning that sender.&lt;br /&gt;
&lt;br /&gt;
An Openhome sender broadcasts music on a network in a way that is playable by an Openhome receiver.&lt;br /&gt;
&lt;br /&gt;
Openhome senders should be discovered independently of the standard algorithm for discovering Openhome products and sources. An independent search should be made for devices bearing the Sender service.&lt;br /&gt;
&lt;br /&gt;
= Actions =&lt;br /&gt;
== Attributes ==&lt;br /&gt;
Reports a space separated list of attributes that identify additional functionality that can be found on the same device as this Sender.&lt;br /&gt;
&lt;br /&gt;
Currently defined attributes are:&lt;br /&gt;
&lt;br /&gt;
* Info - this device reports on the current media using the Info service&lt;br /&gt;
* Time - this device reports on the current media using the Time service&lt;br /&gt;
&lt;br /&gt;
== Audio == &lt;br /&gt;
Reports whether audio is currently present on this sender.&lt;br /&gt;
&lt;br /&gt;
== Metadata ==&lt;br /&gt;
Provides a representation of this audio item in DIDL-Lite format.&lt;br /&gt;
&lt;br /&gt;
== PresentationUrl ==&lt;br /&gt;
Reports the Url of a presentation page for further information concerning the sender, or for controlling the sender in some application-specific way.&lt;br /&gt;
&lt;br /&gt;
If the sender has no presentation page, the PresentationUrl should be empty.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
Reports the status of the sender (normally only for debugging purposes):&lt;br /&gt;
&lt;br /&gt;
* Sending - currently sending audio over the network&lt;br /&gt;
* Ready - ready to send audio but no listeners&lt;br /&gt;
* Blocked - audio from another sender detected on the same channel&lt;br /&gt;
* Inactive - currently no audio to send on this channel&lt;br /&gt;
* Disabled - sender disabled by user configuration&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    : Sender&lt;br /&gt;
    Version : 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
[http://oss.linn.co.uk/trac/browser/Main/LibUpnpCil/Services/Openhome/Sender1.xml Sender Service Description (XML)]&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:SenderService&amp;diff=5200</id>
		<title>Developer:Davaar:SenderService</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:SenderService&amp;diff=5200"/>
		<updated>2010-12-01T13:38:14Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* PresentationUrl */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Architectural Overview =&lt;br /&gt;
&lt;br /&gt;
The Sender service indicates the presence of an Openhome sender and provides information concerning that sender.&lt;br /&gt;
&lt;br /&gt;
An Openhome sender broadcasts music on a network in a way that is playable by an Openhome receiver.&lt;br /&gt;
&lt;br /&gt;
Openhome senders should be discovered independently of the standard algorithm for discovering Openhome products and sources. An independent search should be made for devices bearing the Sender service.&lt;br /&gt;
&lt;br /&gt;
= Actions =&lt;br /&gt;
== Attributes ==&lt;br /&gt;
Reports a space separated list of attributes that identify additional functionality that can be found on the same device as this Sender.&lt;br /&gt;
&lt;br /&gt;
Currently defined attributes are:&lt;br /&gt;
&lt;br /&gt;
* Info - this device reports on the current media using the Info service&lt;br /&gt;
* Time - this device reports on the current media using the Time service&lt;br /&gt;
&lt;br /&gt;
== Audio == &lt;br /&gt;
Reports whether audio is currently present on this sender.&lt;br /&gt;
&lt;br /&gt;
== Metadata ==&lt;br /&gt;
Provides a representation of this audio item in DIDL-Lite format.&lt;br /&gt;
&lt;br /&gt;
== PresentationUrl ==&lt;br /&gt;
Reports the Url of a presentation page for further information concerning the sender, or for controlling the sender in some application-specific way.&lt;br /&gt;
&lt;br /&gt;
If the sender has no presentation page, the PresentationUrl should be empty.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
Reports the status of the sender (normally only for debugging purposes):&lt;br /&gt;
&lt;br /&gt;
* Sending - currently sending out audio&lt;br /&gt;
* Ready - ready to send audio but no listeners&lt;br /&gt;
* Blocked - audio from another sender detected on the same channel&lt;br /&gt;
* Inactive - currently no audio to send on this channel&lt;br /&gt;
* Disabled - sender disabled by user configuration&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    : Sender&lt;br /&gt;
    Version : 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
[http://oss.linn.co.uk/trac/browser/Main/LibUpnpCil/Services/Openhome/Sender1.xml Sender Service Description (XML)]&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:SenderService&amp;diff=5199</id>
		<title>Developer:Davaar:SenderService</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:SenderService&amp;diff=5199"/>
		<updated>2010-12-01T13:37:58Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* PresentationUrl */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Architectural Overview =&lt;br /&gt;
&lt;br /&gt;
The Sender service indicates the presence of an Openhome sender and provides information concerning that sender.&lt;br /&gt;
&lt;br /&gt;
An Openhome sender broadcasts music on a network in a way that is playable by an Openhome receiver.&lt;br /&gt;
&lt;br /&gt;
Openhome senders should be discovered independently of the standard algorithm for discovering Openhome products and sources. An independent search should be made for devices bearing the Sender service.&lt;br /&gt;
&lt;br /&gt;
= Actions =&lt;br /&gt;
== Attributes ==&lt;br /&gt;
Reports a space separated list of attributes that identify additional functionality that can be found on the same device as this Sender.&lt;br /&gt;
&lt;br /&gt;
Currently defined attributes are:&lt;br /&gt;
&lt;br /&gt;
* Info - this device reports on the current media using the Info service&lt;br /&gt;
* Time - this device reports on the current media using the Time service&lt;br /&gt;
&lt;br /&gt;
== Audio == &lt;br /&gt;
Reports whether audio is currently present on this sender.&lt;br /&gt;
&lt;br /&gt;
== Metadata ==&lt;br /&gt;
Provides a representation of this audio item in DIDL-Lite format.&lt;br /&gt;
&lt;br /&gt;
== PresentationUrl ==&lt;br /&gt;
Reports the Url of a presentation page for further information concerning the sender, or for controlling the sender in some application-specific way.&lt;br /&gt;
&lt;br /&gt;
If this sender has no presentation page, the PresentationUrl should be empty.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
Reports the status of the sender (normally only for debugging purposes):&lt;br /&gt;
&lt;br /&gt;
* Sending - currently sending out audio&lt;br /&gt;
* Ready - ready to send audio but no listeners&lt;br /&gt;
* Blocked - audio from another sender detected on the same channel&lt;br /&gt;
* Inactive - currently no audio to send on this channel&lt;br /&gt;
* Disabled - sender disabled by user configuration&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    : Sender&lt;br /&gt;
    Version : 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
[http://oss.linn.co.uk/trac/browser/Main/LibUpnpCil/Services/Openhome/Sender1.xml Sender Service Description (XML)]&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:SenderService&amp;diff=5198</id>
		<title>Developer:Davaar:SenderService</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:SenderService&amp;diff=5198"/>
		<updated>2010-12-01T13:37:04Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Architectural Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Architectural Overview =&lt;br /&gt;
&lt;br /&gt;
The Sender service indicates the presence of an Openhome sender and provides information concerning that sender.&lt;br /&gt;
&lt;br /&gt;
An Openhome sender broadcasts music on a network in a way that is playable by an Openhome receiver.&lt;br /&gt;
&lt;br /&gt;
Openhome senders should be discovered independently of the standard algorithm for discovering Openhome products and sources. An independent search should be made for devices bearing the Sender service.&lt;br /&gt;
&lt;br /&gt;
= Actions =&lt;br /&gt;
== Attributes ==&lt;br /&gt;
Reports a space separated list of attributes that identify additional functionality that can be found on the same device as this Sender.&lt;br /&gt;
&lt;br /&gt;
Currently defined attributes are:&lt;br /&gt;
&lt;br /&gt;
* Info - this device reports on the current media using the Info service&lt;br /&gt;
* Time - this device reports on the current media using the Time service&lt;br /&gt;
&lt;br /&gt;
== Audio == &lt;br /&gt;
Reports whether audio is currently present on this sender.&lt;br /&gt;
&lt;br /&gt;
== Metadata ==&lt;br /&gt;
Provides a representation of this audio item in DIDL-Lite format.&lt;br /&gt;
&lt;br /&gt;
== PresentationUrl ==&lt;br /&gt;
Reports the Url of a presentation page for further information concerning the sender, or for controlling the sender in some application secific way.&lt;br /&gt;
&lt;br /&gt;
If this sender has no presentation page, the PresentationUrl should be empty.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
Reports the status of the sender (normally only for debugging purposes):&lt;br /&gt;
&lt;br /&gt;
* Sending - currently sending out audio&lt;br /&gt;
* Ready - ready to send audio but no listeners&lt;br /&gt;
* Blocked - audio from another sender detected on the same channel&lt;br /&gt;
* Inactive - currently no audio to send on this channel&lt;br /&gt;
* Disabled - sender disabled by user configuration&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    : Sender&lt;br /&gt;
    Version : 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
[http://oss.linn.co.uk/trac/browser/Main/LibUpnpCil/Services/Openhome/Sender1.xml Sender Service Description (XML)]&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:ProductService&amp;diff=5122</id>
		<title>Developer:Davaar:ProductService</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:ProductService&amp;diff=5122"/>
		<updated>2010-11-29T15:14:02Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Architectural Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Architectural Overview =&lt;br /&gt;
&lt;br /&gt;
The Product service contains basic information concerning a single product. It contains information about what kind of device it is: the model, manufacturer, its name, its room, and details concerning each source within the product. Other basic functionality such as control of the product&#039;s standby state are also included.&lt;br /&gt;
&lt;br /&gt;
It should be possible for a control point to create a complete map of the home by subscribing to the Product service of every device.&lt;br /&gt;
&lt;br /&gt;
== Network Presentation ==&lt;br /&gt;
&lt;br /&gt;
=== Attributes ===&lt;br /&gt;
Every product has one or more attributes indicating the key features supported by that product.&lt;br /&gt;
&lt;br /&gt;
=== Manufacturer ===&lt;br /&gt;
There are &#039;&#039;&#039;four&#039;&#039;&#039; Manufacturer parameters; &#039;&#039;&#039;Name&#039;&#039;&#039;, &#039;&#039;&#039;Info&#039;&#039;&#039;, &#039;&#039;&#039;Url&#039;&#039;&#039; and &#039;&#039;&#039;ImageUri&#039;&#039;&#039;. They are all text strings.&lt;br /&gt;
&lt;br /&gt;
==== Name ====&lt;br /&gt;
Name contains the Manufacturer name (example: &amp;quot;&#039;&#039;Linn&#039;&#039;&amp;quot;). Name is read only.&lt;br /&gt;
&lt;br /&gt;
==== Info ====&lt;br /&gt;
Info contains more Manufacturer information (example &amp;quot;&#039;&#039;Linn Products Ltd&#039;&#039;&amp;quot;). Info is read only.&lt;br /&gt;
&lt;br /&gt;
==== Url ====&lt;br /&gt;
Url contains the Manufacturer website address (example &amp;quot;&#039;&#039;http://www.linn.co.uk&#039;&#039;&amp;quot;). Url is read only.&lt;br /&gt;
&lt;br /&gt;
==== ImageUri ====&lt;br /&gt;
ImageUri contains... ImageUri is read only.&lt;br /&gt;
&lt;br /&gt;
=== Model ===&lt;br /&gt;
&lt;br /&gt;
There are &#039;&#039;&#039;four&#039;&#039;&#039; Model parameters; &#039;&#039;&#039;Name&#039;&#039;&#039;, &#039;&#039;&#039;Info&#039;&#039;&#039;, &#039;&#039;&#039;Url&#039;&#039;&#039; and &#039;&#039;&#039;ImageUri&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Name ====&lt;br /&gt;
Name contains the Model name (example: &amp;quot;&#039;&#039;Majik DS&#039;&#039;&amp;quot;). Name is read only.&lt;br /&gt;
==== Info ====&lt;br /&gt;
Info contains more Model information (example &amp;quot;&#039;&#039;Linn Hi-Fi component&#039;&#039;&amp;quot;). Info is read only. &lt;br /&gt;
==== Url ====&lt;br /&gt;
Url contains the Model website address (example &amp;quot;&#039;&#039;http://products.linn.co.uk/MajikDS&#039;&#039;&amp;quot;). Url is read only.&lt;br /&gt;
==== ImageUri ====&lt;br /&gt;
ImageUri contains... ImageUri is read only.&lt;br /&gt;
&lt;br /&gt;
=== Product ===&lt;br /&gt;
There are &#039;&#039;&#039;five&#039;&#039;&#039; Product parameters; &#039;&#039;&#039;Room&#039;&#039;&#039;, &#039;&#039;&#039;Name&#039;&#039;&#039;, &#039;&#039;&#039;Info&#039;&#039;&#039;, &#039;&#039;&#039;Url&#039;&#039;&#039; and &#039;&#039;&#039;ImageUri&#039;&#039;&#039;. They are all text strings.&lt;br /&gt;
&lt;br /&gt;
==== Room ====&lt;br /&gt;
This is the name of the room where the Product is located. Room is used to group the Product with other Products in the same physical room. The Upnp &#039;&#039;&#039;&#039;&#039;Friendly Name&#039;&#039;&#039;&#039;&#039; is derived by combining Room and Name in the format {&#039;&#039;&#039;&#039;&#039;Room&amp;amp;nbsp;: Name&#039;&#039;&#039;&#039;&#039;}. Products which are &#039;&#039;&#039;&#039;&#039;Linked&#039;&#039;&#039;&#039;&#039; always share the same Room name. Room is set to &#039;&#039;&#039;&#039;&#039;Main Room&#039;&#039;&#039;&#039;&#039; by default.&lt;br /&gt;
&lt;br /&gt;
==== Name ====&lt;br /&gt;
This is the Product name. The Upnp &#039;&#039;&#039;&#039;&#039;Friendly Name&#039;&#039;&#039;&#039;&#039; is derived by combining Room and Name in the format {&#039;&#039;&#039;&#039;&#039;Room&amp;amp;nbsp;: Name&#039;&#039;&#039;&#039;&#039;}. By default the Name is the same as the Model. &lt;br /&gt;
&lt;br /&gt;
==== Info ====&lt;br /&gt;
Info contains more Product information (example &amp;quot;&#039;&#039;Linn Hi-Fi component&#039;&#039;&amp;quot;). Info is read only.&lt;br /&gt;
&lt;br /&gt;
==== Url ====&lt;br /&gt;
Url contains... Url is read only.&lt;br /&gt;
&lt;br /&gt;
==== ImageUri ====&lt;br /&gt;
ImageUri contains... ImageUri is read only.&lt;br /&gt;
&lt;br /&gt;
== Standby Control==&lt;br /&gt;
&lt;br /&gt;
=== Standby===&lt;br /&gt;
This is the Standby state of the physical product. Standby can be changed using the SetStandby function. Products which are &#039;&#039;&#039;&#039;&#039;Linked&#039;&#039;&#039;&#039;&#039; always share the same Standby state. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Source Control ==&lt;br /&gt;
&lt;br /&gt;
=== Source List===&lt;br /&gt;
The Product service maintains a list of all sources within the Product. The size of this list is fixed for each Product and reported by the SourceCount function. Each source can then be referenced by its unique source index* in the list. Only one source, and thus one index, can be active at any given time. When a new source is selected the previous source is automatically deactivated before activating the new source. [* source index is zero based, ie 0,1,2,3,4,5..n, where n=listsize-1]&lt;br /&gt;
&lt;br /&gt;
=== Source Index ===&lt;br /&gt;
&lt;br /&gt;
The current (ie currently active) source can be changed by source index or source name. The function SetSourceIndex is used to change the current source by index. If the index is out of range an error will be reported. SetSourceIndexByName is used to change to the source whose name matches that specified. If a source of the specified name does not exist, the source will not change and no error will be reported.&lt;br /&gt;
&lt;br /&gt;
=== SourceCount ===&lt;br /&gt;
&lt;br /&gt;
SourceCount returns the number of sources that exist in the Product (ie the source list size). SourceCount is read only.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Source Specific Parameters ===&lt;br /&gt;
Every source has four fundamental parameters, &#039;&#039;&#039;SourceSystemName&#039;&#039;&#039;, &#039;&#039;&#039;SourceName&#039;&#039;&#039;, &#039;&#039;&#039;SourceVisible&#039;&#039;&#039; and &#039;&#039;&#039;SourceType&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== SourceSystemName ====&lt;br /&gt;
&lt;br /&gt;
SourceSystemName is a unique name string used to identify each source. SourceSystemName is read only. It can only be read via the &#039;&#039;&#039;Source&#039;&#039;&#039; action.&lt;br /&gt;
&lt;br /&gt;
==== SourceName ====&lt;br /&gt;
&lt;br /&gt;
SourceName is a unique name string assigned to each source. In the default state, for a given source index, SourceName matches SourceSystemName. It can be read via the &#039;&#039;&#039;Source&#039;&#039;&#039; action, or the &#039;&#039;&#039;SourceXml&#039;&#039;&#039; action.&lt;br /&gt;
&lt;br /&gt;
==== SourceType ====&lt;br /&gt;
&lt;br /&gt;
SourceType is a unique type string assigned to each source. SourceType is read only. It can be read via the &#039;&#039;&#039;Source&#039;&#039;&#039; action, or the &#039;&#039;&#039;SourceXml&#039;&#039;&#039; action.&lt;br /&gt;
&lt;br /&gt;
==== SourceVisible ====&lt;br /&gt;
&lt;br /&gt;
SourceVisible is a unique flag assigned to each source. This flag is used to indicate whether the source is to be displayed (front panel, GUI etc) when browsing through the source list. It can be read via the &#039;&#039;&#039;Source&#039;&#039;&#039; action, or the &#039;&#039;&#039;SourceXml&#039;&#039;&#039; action.&lt;br /&gt;
&lt;br /&gt;
Note - &#039;&#039;a source&#039;s &amp;quot;visibility&amp;quot; does not affect its ability to be selected/activated via the functions SetSourceIndex and SetCurrentSourceByName.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Actions=&lt;br /&gt;
&lt;br /&gt;
== Network Presentation Actions==&lt;br /&gt;
=== Attributes Action ===&lt;br /&gt;
The Attributes action reports a string containing a space separated list of all attributes.&lt;br /&gt;
&lt;br /&gt;
=== Manufacturer Action ===&lt;br /&gt;
The Manufacturer action returns all four Manufacturer parameters.&lt;br /&gt;
&lt;br /&gt;
=== Model Action ===&lt;br /&gt;
The Model action returns all four Model parameters.&lt;br /&gt;
&lt;br /&gt;
=== Product Action ===&lt;br /&gt;
The Product action returns all five Product parameters.&lt;br /&gt;
&lt;br /&gt;
== Standby Actions==&lt;br /&gt;
=== Standby===&lt;br /&gt;
The Standby action reports the current standby state of the product.&lt;br /&gt;
&lt;br /&gt;
=== SetStandby===&lt;br /&gt;
The SetStandby action provides a means of setting the current standby state of the product.&lt;br /&gt;
&lt;br /&gt;
==Source Actions==&lt;br /&gt;
===SourceXml Action===&lt;br /&gt;
The SourceXml action returns a list of all source specific parameters, for every source, in XML format.&lt;br /&gt;
&lt;br /&gt;
===SourceXmlChangeCount Action===&lt;br /&gt;
The SourceXmlChangeCount action returns a count indicating the number of times SourceXml has been updated since power on. This is useful for control points that do not support eventing.&lt;br /&gt;
&lt;br /&gt;
===Source Action===&lt;br /&gt;
The Source action returns all source specific parameters for a given source index.&lt;br /&gt;
&lt;br /&gt;
= API Reference =&lt;br /&gt;
&lt;br /&gt;
[http://oss.linn.co.uk/trac/browser/Main/LibUpnpCil/Services/Openhome/Product1.xml Product Service Description (XML)]&lt;br /&gt;
&lt;br /&gt;
= Migration Guide =&lt;br /&gt;
&lt;br /&gt;
All actions relating to configuration have been removed as part of the migration to the Davaar.   &lt;br /&gt;
&lt;br /&gt;
The domain for the Product service has changed to &#039;&#039;&#039;av.openhome.org&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
== Actions ==&lt;br /&gt;
=== Changed Actions ===&lt;br /&gt;
====Standby====&lt;br /&gt;
The arguments have changed their names as follows:&lt;br /&gt;
*aStandby -&amp;gt; Value&lt;br /&gt;
====SetStandby====&lt;br /&gt;
The arguments have changed their names as follows:&lt;br /&gt;
*aStandby -&amp;gt; Value&lt;br /&gt;
====SourceCount====&lt;br /&gt;
The arguments have changed their names as follows:&lt;br /&gt;
*aSourceCount -&amp;gt; Value&lt;br /&gt;
====SourceXml====&lt;br /&gt;
The arguments have changed their names as follows:&lt;br /&gt;
*aSourceXml -&amp;gt; Value&lt;br /&gt;
&lt;br /&gt;
====SourceIndex====&lt;br /&gt;
The arguments have changed their names as follows:&lt;br /&gt;
*aSourceIndex -&amp;gt; Value&lt;br /&gt;
====SetSourceIndex====&lt;br /&gt;
The arguments have changed their names as follows:&lt;br /&gt;
*aSourceIndex -&amp;gt; Value&lt;br /&gt;
&lt;br /&gt;
====SetSourceIndexByName====&lt;br /&gt;
The arguments have changed their names as follows:&lt;br /&gt;
*aSourceName -&amp;gt; Value&lt;br /&gt;
&lt;br /&gt;
=== New Actions ===&lt;br /&gt;
*Manufacturer&lt;br /&gt;
*Model&lt;br /&gt;
*Product&lt;br /&gt;
*Source&lt;br /&gt;
*Attributes&lt;br /&gt;
*SourceXmlChangeCount&lt;br /&gt;
&lt;br /&gt;
=== Obsolete Actions ===&lt;br /&gt;
*SetName&lt;br /&gt;
*SetRoom&lt;br /&gt;
*SetStartupSourceIndex&lt;br /&gt;
*StartupSourceIndex&lt;br /&gt;
*SetStartupSourceIndexByName &lt;br /&gt;
*SetStartupSourceEnabled &lt;br /&gt;
*StartupSourceEnabled&lt;br /&gt;
*SetSourceVisible&lt;br /&gt;
*SetSourceName&lt;br /&gt;
*SourceAttributes&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar&amp;diff=5103</id>
		<title>Developer:Davaar</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar&amp;diff=5103"/>
		<updated>2010-11-24T15:39:04Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Davaar 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Davaar Developer Documentation =&lt;br /&gt;
== Overview ==&lt;br /&gt;
Davaar is the name of a Linn [[Software Compatibility Families|software compatibility family]]. It represents a family of on- and off-device software that is interoperable.&lt;br /&gt;
&lt;br /&gt;
This interoperability consists in a stable set of well-defined interfaces and a shared set of software practices, including product discovery and playlist management algorithms.&lt;br /&gt;
&lt;br /&gt;
Davaar contains two new headline features:&lt;br /&gt;
&lt;br /&gt;
* Openhome compatibility&lt;br /&gt;
* Party mode support&lt;br /&gt;
&lt;br /&gt;
=== Openhome compatibility ===&lt;br /&gt;
&lt;br /&gt;
Openhome is an independent standard for networked home devices. Davaar brings Linn&#039;s DS devices into line with this Openhome standard. Each Openhome service is described below together with a migration guide for its Linn Cara equivalent.&lt;br /&gt;
&lt;br /&gt;
=== Party mode support ===&lt;br /&gt;
&lt;br /&gt;
Davaar allows one DS to play whatever is being played by another DS. This is achieved by coupling the new Receiver source (and associated service) with the new Sender service. A detailed description is given below.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
* [[Developer:Davaar:ProductService|Product Service]]&lt;br /&gt;
* [[Developer:Davaar:PlaylistService|Playlist Service]]&lt;br /&gt;
* [[Developer:Davaar:JukeboxService|Jukebox Service]]&lt;br /&gt;
* [[Developer:Davaar:AvtService|UPnP AV Transport Service]]&lt;br /&gt;
* [[Developer:Davaar:RenderingControlService|UPnP Rendering Control Service]]&lt;br /&gt;
* [[Developer:Davaar:RadioService|Radio Service]]&lt;br /&gt;
* [[Developer:Davaar:InfoService|Info Service]]&lt;br /&gt;
* [[Developer:Davaar:TimeService|Time Service]]&lt;br /&gt;
* [[Developer:Davaar:VolumeService|Volume Service]]&lt;br /&gt;
* [[Developer:Davaar:SenderService|Sender Service]]&lt;br /&gt;
* [[Developer:Davaar:ReceiverService|Receiver Service]]&lt;br /&gt;
&lt;br /&gt;
== Algorithms ==&lt;br /&gt;
&lt;br /&gt;
* [[Developer:Davaar:Topology|Topology]]&lt;br /&gt;
&lt;br /&gt;
* [[Developer:Davaar:PlaylistService#IdArray|Id Array]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Davaar 1 =&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
If you are using a alpha or beta release of the code, bugs, features and performance issues should be expected. Keeping an up-to-date bug log on this Wiki page would be unreasonable, hence only issues which require a work-around to get the code running will be listed here in detail.&lt;br /&gt;
&lt;br /&gt;
== Required Workarounds ==&lt;br /&gt;
&lt;br /&gt;
* None&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar&amp;diff=5102</id>
		<title>Developer:Davaar</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar&amp;diff=5102"/>
		<updated>2010-11-24T15:38:54Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Party mode support */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Davaar Developer Documentation =&lt;br /&gt;
== Overview ==&lt;br /&gt;
Davaar is the name of a Linn [[Software Compatibility Families|software compatibility family]]. It represents a family of on- and off-device software that is interoperable.&lt;br /&gt;
&lt;br /&gt;
This interoperability consists in a stable set of well-defined interfaces and a shared set of software practices, including product discovery and playlist management algorithms.&lt;br /&gt;
&lt;br /&gt;
Davaar contains two new headline features:&lt;br /&gt;
&lt;br /&gt;
* Openhome compatibility&lt;br /&gt;
* Party mode support&lt;br /&gt;
&lt;br /&gt;
=== Openhome compatibility ===&lt;br /&gt;
&lt;br /&gt;
Openhome is an independent standard for networked home devices. Davaar brings Linn&#039;s DS devices into line with this Openhome standard. Each Openhome service is described below together with a migration guide for its Linn Cara equivalent.&lt;br /&gt;
&lt;br /&gt;
=== Party mode support ===&lt;br /&gt;
&lt;br /&gt;
Davaar allows one DS to play whatever is being played by another DS. This is achieved by coupling the new Receiver source (and associated service) with the new Sender service. A detailed description is given below.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
* [[Developer:Davaar:ProductService|Product Service]]&lt;br /&gt;
* [[Developer:Davaar:PlaylistService|Playlist Service]]&lt;br /&gt;
* [[Developer:Davaar:JukeboxService|Jukebox Service]]&lt;br /&gt;
* [[Developer:Davaar:AvtService|UPnP AV Transport Service]]&lt;br /&gt;
* [[Developer:Davaar:RenderingControlService|UPnP Rendering Control Service]]&lt;br /&gt;
* [[Developer:Davaar:RadioService|Radio Service]]&lt;br /&gt;
* [[Developer:Davaar:InfoService|Info Service]]&lt;br /&gt;
* [[Developer:Davaar:TimeService|Time Service]]&lt;br /&gt;
* [[Developer:Davaar:VolumeService|Volume Service]]&lt;br /&gt;
* [[Developer:Davaar:SenderService|Sender Service]]&lt;br /&gt;
* [[Developer:Davaar:ReceiverService|Receiver Service]]&lt;br /&gt;
&lt;br /&gt;
== Algorithms ==&lt;br /&gt;
&lt;br /&gt;
* [[Developer:Davaar:Topology|Topology]]&lt;br /&gt;
&lt;br /&gt;
* [[Developer:Davaar:PlaylistService#IdArray|Id Array]]&lt;br /&gt;
&lt;br /&gt;
= Davaar 1 =&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
If you are using a alpha or beta release of the code, bugs, features and performance issues should be expected. Keeping an up-to-date bug log on this Wiki page would be unreasonable, hence only issues which require a work-around to get the code running will be listed here in detail.&lt;br /&gt;
&lt;br /&gt;
== Required Workarounds ==&lt;br /&gt;
&lt;br /&gt;
* None&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar&amp;diff=5101</id>
		<title>Developer:Davaar</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar&amp;diff=5101"/>
		<updated>2010-11-24T15:38:44Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Known Issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Davaar Developer Documentation =&lt;br /&gt;
== Overview ==&lt;br /&gt;
Davaar is the name of a Linn [[Software Compatibility Families|software compatibility family]]. It represents a family of on- and off-device software that is interoperable.&lt;br /&gt;
&lt;br /&gt;
This interoperability consists in a stable set of well-defined interfaces and a shared set of software practices, including product discovery and playlist management algorithms.&lt;br /&gt;
&lt;br /&gt;
Davaar contains two new headline features:&lt;br /&gt;
&lt;br /&gt;
* Openhome compatibility&lt;br /&gt;
* Party mode support&lt;br /&gt;
&lt;br /&gt;
=== Openhome compatibility ===&lt;br /&gt;
&lt;br /&gt;
Openhome is an independent standard for networked home devices. Davaar brings Linn&#039;s DS devices into line with this Openhome standard. Each Openhome service is described below together with a migration guide for its Linn Cara equivalent.&lt;br /&gt;
&lt;br /&gt;
=== Party mode support ===&lt;br /&gt;
&lt;br /&gt;
Davaar allows one DS to play whatever is being played by another DS. This is achieved by coupling the new Receiver source (and associated service) with the new Sender service. A detailed description is given below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
* [[Developer:Davaar:ProductService|Product Service]]&lt;br /&gt;
* [[Developer:Davaar:PlaylistService|Playlist Service]]&lt;br /&gt;
* [[Developer:Davaar:JukeboxService|Jukebox Service]]&lt;br /&gt;
* [[Developer:Davaar:AvtService|UPnP AV Transport Service]]&lt;br /&gt;
* [[Developer:Davaar:RenderingControlService|UPnP Rendering Control Service]]&lt;br /&gt;
* [[Developer:Davaar:RadioService|Radio Service]]&lt;br /&gt;
* [[Developer:Davaar:InfoService|Info Service]]&lt;br /&gt;
* [[Developer:Davaar:TimeService|Time Service]]&lt;br /&gt;
* [[Developer:Davaar:VolumeService|Volume Service]]&lt;br /&gt;
* [[Developer:Davaar:SenderService|Sender Service]]&lt;br /&gt;
* [[Developer:Davaar:ReceiverService|Receiver Service]]&lt;br /&gt;
&lt;br /&gt;
== Algorithms ==&lt;br /&gt;
&lt;br /&gt;
* [[Developer:Davaar:Topology|Topology]]&lt;br /&gt;
&lt;br /&gt;
* [[Developer:Davaar:PlaylistService#IdArray|Id Array]]&lt;br /&gt;
&lt;br /&gt;
= Davaar 1 =&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
If you are using a alpha or beta release of the code, bugs, features and performance issues should be expected. Keeping an up-to-date bug log on this Wiki page would be unreasonable, hence only issues which require a work-around to get the code running will be listed here in detail.&lt;br /&gt;
&lt;br /&gt;
== Required Workarounds ==&lt;br /&gt;
&lt;br /&gt;
* None&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar&amp;diff=5100</id>
		<title>Developer:Davaar</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar&amp;diff=5100"/>
		<updated>2010-11-24T15:38:25Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Davaar 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Davaar Developer Documentation =&lt;br /&gt;
== Overview ==&lt;br /&gt;
Davaar is the name of a Linn [[Software Compatibility Families|software compatibility family]]. It represents a family of on- and off-device software that is interoperable.&lt;br /&gt;
&lt;br /&gt;
This interoperability consists in a stable set of well-defined interfaces and a shared set of software practices, including product discovery and playlist management algorithms.&lt;br /&gt;
&lt;br /&gt;
Davaar contains two new headline features:&lt;br /&gt;
&lt;br /&gt;
* Openhome compatibility&lt;br /&gt;
* Party mode support&lt;br /&gt;
&lt;br /&gt;
=== Openhome compatibility ===&lt;br /&gt;
&lt;br /&gt;
Openhome is an independent standard for networked home devices. Davaar brings Linn&#039;s DS devices into line with this Openhome standard. Each Openhome service is described below together with a migration guide for its Linn Cara equivalent.&lt;br /&gt;
&lt;br /&gt;
=== Party mode support ===&lt;br /&gt;
&lt;br /&gt;
Davaar allows one DS to play whatever is being played by another DS. This is achieved by coupling the new Receiver source (and associated service) with the new Sender service. A detailed description is given below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
* [[Developer:Davaar:ProductService|Product Service]]&lt;br /&gt;
* [[Developer:Davaar:PlaylistService|Playlist Service]]&lt;br /&gt;
* [[Developer:Davaar:JukeboxService|Jukebox Service]]&lt;br /&gt;
* [[Developer:Davaar:AvtService|UPnP AV Transport Service]]&lt;br /&gt;
* [[Developer:Davaar:RenderingControlService|UPnP Rendering Control Service]]&lt;br /&gt;
* [[Developer:Davaar:RadioService|Radio Service]]&lt;br /&gt;
* [[Developer:Davaar:InfoService|Info Service]]&lt;br /&gt;
* [[Developer:Davaar:TimeService|Time Service]]&lt;br /&gt;
* [[Developer:Davaar:VolumeService|Volume Service]]&lt;br /&gt;
* [[Developer:Davaar:SenderService|Sender Service]]&lt;br /&gt;
* [[Developer:Davaar:ReceiverService|Receiver Service]]&lt;br /&gt;
&lt;br /&gt;
== Algorithms ==&lt;br /&gt;
&lt;br /&gt;
* [[Developer:Davaar:Topology|Topology]]&lt;br /&gt;
&lt;br /&gt;
* [[Developer:Davaar:PlaylistService#IdArray|Id Array]]&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
If you are using a alpha or beta release of the code, bugs, features and performance issues should be expected. Keeping an up-to-date bug log on this Wiki page would be unreasonable, hence only issues which require a work-around to get the code running will be listed here in detail.&lt;br /&gt;
&lt;br /&gt;
== Required Workarounds ==&lt;br /&gt;
&lt;br /&gt;
* None&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar&amp;diff=5099</id>
		<title>Developer:Davaar</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar&amp;diff=5099"/>
		<updated>2010-11-24T15:37:58Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Davaar Developer Documentation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Davaar Developer Documentation =&lt;br /&gt;
== Overview ==&lt;br /&gt;
Davaar is the name of a Linn [[Software Compatibility Families|software compatibility family]]. It represents a family of on- and off-device software that is interoperable.&lt;br /&gt;
&lt;br /&gt;
This interoperability consists in a stable set of well-defined interfaces and a shared set of software practices, including product discovery and playlist management algorithms.&lt;br /&gt;
&lt;br /&gt;
Davaar contains two new headline features:&lt;br /&gt;
&lt;br /&gt;
* Openhome compatibility&lt;br /&gt;
* Party mode support&lt;br /&gt;
&lt;br /&gt;
=== Openhome compatibility ===&lt;br /&gt;
&lt;br /&gt;
Openhome is an independent standard for networked home devices. Davaar brings Linn&#039;s DS devices into line with this Openhome standard. Each Openhome service is described below together with a migration guide for its Linn Cara equivalent.&lt;br /&gt;
&lt;br /&gt;
=== Party mode support ===&lt;br /&gt;
&lt;br /&gt;
Davaar allows one DS to play whatever is being played by another DS. This is achieved by coupling the new Receiver source (and associated service) with the new Sender service. A detailed description is given below.&lt;br /&gt;
&lt;br /&gt;
= Davaar 1 =&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
* [[Developer:Davaar:ProductService|Product Service]]&lt;br /&gt;
* [[Developer:Davaar:PlaylistService|Playlist Service]]&lt;br /&gt;
* [[Developer:Davaar:JukeboxService|Jukebox Service]]&lt;br /&gt;
* [[Developer:Davaar:AvtService|UPnP AV Transport Service]]&lt;br /&gt;
* [[Developer:Davaar:RenderingControlService|UPnP Rendering Control Service]]&lt;br /&gt;
* [[Developer:Davaar:RadioService|Radio Service]]&lt;br /&gt;
* [[Developer:Davaar:InfoService|Info Service]]&lt;br /&gt;
* [[Developer:Davaar:TimeService|Time Service]]&lt;br /&gt;
* [[Developer:Davaar:VolumeService|Volume Service]]&lt;br /&gt;
* [[Developer:Davaar:SenderService|Sender Service]]&lt;br /&gt;
* [[Developer:Davaar:ReceiverService|Receiver Service]]&lt;br /&gt;
&lt;br /&gt;
== Algorithms ==&lt;br /&gt;
&lt;br /&gt;
* [[Developer:Davaar:Topology|Topology]]&lt;br /&gt;
&lt;br /&gt;
* [[Developer:Davaar:PlaylistService#IdArray|Id Array]]&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
If you are using a alpha or beta release of the code, bugs, features and performance issues should be expected. Keeping an up-to-date bug log on this Wiki page would be unreasonable, hence only issues which require a work-around to get the code running will be listed here in detail.&lt;br /&gt;
&lt;br /&gt;
== Required Workarounds ==&lt;br /&gt;
&lt;br /&gt;
* None&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar&amp;diff=5098</id>
		<title>Developer:Davaar</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar&amp;diff=5098"/>
		<updated>2010-11-24T15:37:50Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Davaar 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Davaar Developer Documentation =&lt;br /&gt;
&lt;br /&gt;
= Davaar 1 =&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
* [[Developer:Davaar:ProductService|Product Service]]&lt;br /&gt;
* [[Developer:Davaar:PlaylistService|Playlist Service]]&lt;br /&gt;
* [[Developer:Davaar:JukeboxService|Jukebox Service]]&lt;br /&gt;
* [[Developer:Davaar:AvtService|UPnP AV Transport Service]]&lt;br /&gt;
* [[Developer:Davaar:RenderingControlService|UPnP Rendering Control Service]]&lt;br /&gt;
* [[Developer:Davaar:RadioService|Radio Service]]&lt;br /&gt;
* [[Developer:Davaar:InfoService|Info Service]]&lt;br /&gt;
* [[Developer:Davaar:TimeService|Time Service]]&lt;br /&gt;
* [[Developer:Davaar:VolumeService|Volume Service]]&lt;br /&gt;
* [[Developer:Davaar:SenderService|Sender Service]]&lt;br /&gt;
* [[Developer:Davaar:ReceiverService|Receiver Service]]&lt;br /&gt;
&lt;br /&gt;
== Algorithms ==&lt;br /&gt;
&lt;br /&gt;
* [[Developer:Davaar:Topology|Topology]]&lt;br /&gt;
&lt;br /&gt;
* [[Developer:Davaar:PlaylistService#IdArray|Id Array]]&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
If you are using a alpha or beta release of the code, bugs, features and performance issues should be expected. Keeping an up-to-date bug log on this Wiki page would be unreasonable, hence only issues which require a work-around to get the code running will be listed here in detail.&lt;br /&gt;
&lt;br /&gt;
== Required Workarounds ==&lt;br /&gt;
&lt;br /&gt;
* None&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar&amp;diff=5097</id>
		<title>Developer:Davaar</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar&amp;diff=5097"/>
		<updated>2010-11-24T15:37:13Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Davaar Developer Documentation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Davaar Developer Documentation =&lt;br /&gt;
&lt;br /&gt;
= Davaar 1 =&lt;br /&gt;
== Overview ==&lt;br /&gt;
Davaar is the name of a Linn [[Software Compatibility Families|software compatibility family]]. It represents a family of on- and off-device software that is interoperable.&lt;br /&gt;
&lt;br /&gt;
This interoperability consists in a stable set of well-defined interfaces and a shared set of software practices, including product discovery and playlist management algorithms.&lt;br /&gt;
&lt;br /&gt;
Davaar contains two new headline features:&lt;br /&gt;
&lt;br /&gt;
* Openhome compatibility&lt;br /&gt;
* Party mode support&lt;br /&gt;
&lt;br /&gt;
=== Openhome compatibility ===&lt;br /&gt;
&lt;br /&gt;
Openhome is an independent standard for networked home devices. Davaar brings Linn&#039;s DS devices into line with this Openhome standard. Each Openhome service is described below together with a migration guide for its Linn Cara equivalent.&lt;br /&gt;
&lt;br /&gt;
=== Party mode support ===&lt;br /&gt;
&lt;br /&gt;
Davaar allows one DS to play whatever is being played by another DS. This is achieved by coupling the new Receiver source (and associated service) with the new Sender service. A detailed description is given below.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
* [[Developer:Davaar:ProductService|Product Service]]&lt;br /&gt;
* [[Developer:Davaar:PlaylistService|Playlist Service]]&lt;br /&gt;
* [[Developer:Davaar:JukeboxService|Jukebox Service]]&lt;br /&gt;
* [[Developer:Davaar:AvtService|UPnP AV Transport Service]]&lt;br /&gt;
* [[Developer:Davaar:RenderingControlService|UPnP Rendering Control Service]]&lt;br /&gt;
* [[Developer:Davaar:RadioService|Radio Service]]&lt;br /&gt;
* [[Developer:Davaar:InfoService|Info Service]]&lt;br /&gt;
* [[Developer:Davaar:TimeService|Time Service]]&lt;br /&gt;
* [[Developer:Davaar:VolumeService|Volume Service]]&lt;br /&gt;
* [[Developer:Davaar:SenderService|Sender Service]]&lt;br /&gt;
* [[Developer:Davaar:ReceiverService|Receiver Service]]&lt;br /&gt;
&lt;br /&gt;
== Algorithms ==&lt;br /&gt;
&lt;br /&gt;
* [[Developer:Davaar:Topology|Topology]]&lt;br /&gt;
&lt;br /&gt;
* [[Developer:Davaar:PlaylistService#IdArray|Id Array]]&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
If you are using a alpha or beta release of the code, bugs, features and performance issues should be expected. Keeping an up-to-date bug log on this Wiki page would be unreasonable, hence only issues which require a work-around to get the code running will be listed here in detail.&lt;br /&gt;
&lt;br /&gt;
== Required Workarounds ==&lt;br /&gt;
&lt;br /&gt;
* None&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar&amp;diff=5096</id>
		<title>Developer:Davaar</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar&amp;diff=5096"/>
		<updated>2010-11-24T15:36:50Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Davaar 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Davaar Developer Documentation =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Davaar is the name of a Linn [[Software Compatibility Families|software compatibility family]]. It represents a family of on- and off-device software that is interoperable.&lt;br /&gt;
&lt;br /&gt;
This interoperability consists in a stable set of well-defined interfaces and a shared set of software practices, including product discovery and playlist management algorithms.&lt;br /&gt;
&lt;br /&gt;
Davaar contains two new headline features:&lt;br /&gt;
&lt;br /&gt;
* Openhome compatibility&lt;br /&gt;
* Party mode support&lt;br /&gt;
&lt;br /&gt;
=== Openhome compatibility ===&lt;br /&gt;
&lt;br /&gt;
Openhome is an independent standard for networked home devices. Davaar brings Linn&#039;s DS devices into line with this Openhome standard. Each Openhome service is described below together with a migration guide for its Linn Cara equivalent.&lt;br /&gt;
&lt;br /&gt;
=== Party mode support ===&lt;br /&gt;
&lt;br /&gt;
Davaar allows one DS to play whatever is being played by another DS. This is achieved by coupling the new Receiver source (and associated service) with the new Sender service. A detailed description is given below.&lt;br /&gt;
&lt;br /&gt;
= Davaar 1 =&lt;br /&gt;
== Overview ==&lt;br /&gt;
Davaar is the name of a Linn [[Software Compatibility Families|software compatibility family]]. It represents a family of on- and off-device software that is interoperable.&lt;br /&gt;
&lt;br /&gt;
This interoperability consists in a stable set of well-defined interfaces and a shared set of software practices, including product discovery and playlist management algorithms.&lt;br /&gt;
&lt;br /&gt;
Davaar contains two new headline features:&lt;br /&gt;
&lt;br /&gt;
* Openhome compatibility&lt;br /&gt;
* Party mode support&lt;br /&gt;
&lt;br /&gt;
=== Openhome compatibility ===&lt;br /&gt;
&lt;br /&gt;
Openhome is an independent standard for networked home devices. Davaar brings Linn&#039;s DS devices into line with this Openhome standard. Each Openhome service is described below together with a migration guide for its Linn Cara equivalent.&lt;br /&gt;
&lt;br /&gt;
=== Party mode support ===&lt;br /&gt;
&lt;br /&gt;
Davaar allows one DS to play whatever is being played by another DS. This is achieved by coupling the new Receiver source (and associated service) with the new Sender service. A detailed description is given below.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
* [[Developer:Davaar:ProductService|Product Service]]&lt;br /&gt;
* [[Developer:Davaar:PlaylistService|Playlist Service]]&lt;br /&gt;
* [[Developer:Davaar:JukeboxService|Jukebox Service]]&lt;br /&gt;
* [[Developer:Davaar:AvtService|UPnP AV Transport Service]]&lt;br /&gt;
* [[Developer:Davaar:RenderingControlService|UPnP Rendering Control Service]]&lt;br /&gt;
* [[Developer:Davaar:RadioService|Radio Service]]&lt;br /&gt;
* [[Developer:Davaar:InfoService|Info Service]]&lt;br /&gt;
* [[Developer:Davaar:TimeService|Time Service]]&lt;br /&gt;
* [[Developer:Davaar:VolumeService|Volume Service]]&lt;br /&gt;
* [[Developer:Davaar:SenderService|Sender Service]]&lt;br /&gt;
* [[Developer:Davaar:ReceiverService|Receiver Service]]&lt;br /&gt;
&lt;br /&gt;
== Algorithms ==&lt;br /&gt;
&lt;br /&gt;
* [[Developer:Davaar:Topology|Topology]]&lt;br /&gt;
&lt;br /&gt;
* [[Developer:Davaar:PlaylistService#IdArray|Id Array]]&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
If you are using a alpha or beta release of the code, bugs, features and performance issues should be expected. Keeping an up-to-date bug log on this Wiki page would be unreasonable, hence only issues which require a work-around to get the code running will be listed here in detail.&lt;br /&gt;
&lt;br /&gt;
== Required Workarounds ==&lt;br /&gt;
&lt;br /&gt;
* None&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar&amp;diff=5095</id>
		<title>Developer:Davaar</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar&amp;diff=5095"/>
		<updated>2010-11-24T15:35:56Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Known Issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Davaar Developer Documentation =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Davaar is the name of a Linn [[Software Compatibility Families|software compatibility family]]. It represents a family of on- and off-device software that is interoperable.&lt;br /&gt;
&lt;br /&gt;
This interoperability consists in a stable set of well-defined interfaces and a shared set of software practices, including product discovery and playlist management algorithms.&lt;br /&gt;
&lt;br /&gt;
Davaar contains two new headline features:&lt;br /&gt;
&lt;br /&gt;
* Openhome compatibility&lt;br /&gt;
* Party mode support&lt;br /&gt;
&lt;br /&gt;
=== Openhome compatibility ===&lt;br /&gt;
&lt;br /&gt;
Openhome is an independent standard for networked home devices. Davaar brings Linn&#039;s DS devices into line with this Openhome standard. Each Openhome service is described below together with a migration guide for its Linn Cara equivalent.&lt;br /&gt;
&lt;br /&gt;
=== Party mode support ===&lt;br /&gt;
&lt;br /&gt;
Davaar allows one DS to play whatever is being played by another DS. This is achieved by coupling the new Receiver source (and associated service) with the new Sender service. A detailed description is given below.&lt;br /&gt;
&lt;br /&gt;
= Davaar 1 =&lt;br /&gt;
The initial Davaar release.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
* [[Developer:Davaar:ProductService|Product Service]]&lt;br /&gt;
* [[Developer:Davaar:PlaylistService|Playlist Service]]&lt;br /&gt;
* [[Developer:Davaar:JukeboxService|Jukebox Service]]&lt;br /&gt;
* [[Developer:Davaar:AvtService|UPnP AV Transport Service]]&lt;br /&gt;
* [[Developer:Davaar:RenderingControlService|UPnP Rendering Control Service]]&lt;br /&gt;
* [[Developer:Davaar:RadioService|Radio Service]]&lt;br /&gt;
* [[Developer:Davaar:InfoService|Info Service]]&lt;br /&gt;
* [[Developer:Davaar:TimeService|Time Service]]&lt;br /&gt;
* [[Developer:Davaar:VolumeService|Volume Service]]&lt;br /&gt;
* [[Developer:Davaar:SenderService|Sender Service]]&lt;br /&gt;
* [[Developer:Davaar:ReceiverService|Receiver Service]]&lt;br /&gt;
&lt;br /&gt;
== Algorithms ==&lt;br /&gt;
&lt;br /&gt;
* [[Developer:Davaar:Topology|Topology]]&lt;br /&gt;
&lt;br /&gt;
* [[Developer:Davaar:PlaylistService#IdArray|Id Array]]&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
If you are using a alpha or beta release of the code, bugs, features and performance issues should be expected. Keeping an up-to-date bug log on this Wiki page would be unreasonable, hence only issues which require a work-around to get the code running will be listed here in detail.&lt;br /&gt;
&lt;br /&gt;
== Required Workarounds ==&lt;br /&gt;
&lt;br /&gt;
* None&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar&amp;diff=5094</id>
		<title>Developer:Davaar</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar&amp;diff=5094"/>
		<updated>2010-11-24T15:35:37Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Davaar 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Davaar Developer Documentation =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Davaar is the name of a Linn [[Software Compatibility Families|software compatibility family]]. It represents a family of on- and off-device software that is interoperable.&lt;br /&gt;
&lt;br /&gt;
This interoperability consists in a stable set of well-defined interfaces and a shared set of software practices, including product discovery and playlist management algorithms.&lt;br /&gt;
&lt;br /&gt;
Davaar contains two new headline features:&lt;br /&gt;
&lt;br /&gt;
* Openhome compatibility&lt;br /&gt;
* Party mode support&lt;br /&gt;
&lt;br /&gt;
=== Openhome compatibility ===&lt;br /&gt;
&lt;br /&gt;
Openhome is an independent standard for networked home devices. Davaar brings Linn&#039;s DS devices into line with this Openhome standard. Each Openhome service is described below together with a migration guide for its Linn Cara equivalent.&lt;br /&gt;
&lt;br /&gt;
=== Party mode support ===&lt;br /&gt;
&lt;br /&gt;
Davaar allows one DS to play whatever is being played by another DS. This is achieved by coupling the new Receiver source (and associated service) with the new Sender service. A detailed description is given below.&lt;br /&gt;
&lt;br /&gt;
= Davaar 1 =&lt;br /&gt;
The initial Davaar release.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
* [[Developer:Davaar:ProductService|Product Service]]&lt;br /&gt;
* [[Developer:Davaar:PlaylistService|Playlist Service]]&lt;br /&gt;
* [[Developer:Davaar:JukeboxService|Jukebox Service]]&lt;br /&gt;
* [[Developer:Davaar:AvtService|UPnP AV Transport Service]]&lt;br /&gt;
* [[Developer:Davaar:RenderingControlService|UPnP Rendering Control Service]]&lt;br /&gt;
* [[Developer:Davaar:RadioService|Radio Service]]&lt;br /&gt;
* [[Developer:Davaar:InfoService|Info Service]]&lt;br /&gt;
* [[Developer:Davaar:TimeService|Time Service]]&lt;br /&gt;
* [[Developer:Davaar:VolumeService|Volume Service]]&lt;br /&gt;
* [[Developer:Davaar:SenderService|Sender Service]]&lt;br /&gt;
* [[Developer:Davaar:ReceiverService|Receiver Service]]&lt;br /&gt;
&lt;br /&gt;
== Algorithms ==&lt;br /&gt;
&lt;br /&gt;
* [[Developer:Davaar:Topology|Topology]]&lt;br /&gt;
&lt;br /&gt;
* [[Developer:Davaar:PlaylistService#IdArray|Id Array]]&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
If you are using a alpha or beta release of the code, bugs, features and performance issues should be expected. Keeping an up-to-date bug log on this Wiki page would be unreasonable, hence only issues which require a work-around to get the code running will be listed here in detail.&lt;br /&gt;
&lt;br /&gt;
==== Required Workarounds ====&lt;br /&gt;
&lt;br /&gt;
* None&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar&amp;diff=5093</id>
		<title>Developer:Davaar</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar&amp;diff=5093"/>
		<updated>2010-11-24T15:34:49Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Davaar 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Davaar Developer Documentation =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Davaar is the name of a Linn [[Software Compatibility Families|software compatibility family]]. It represents a family of on- and off-device software that is interoperable.&lt;br /&gt;
&lt;br /&gt;
This interoperability consists in a stable set of well-defined interfaces and a shared set of software practices, including product discovery and playlist management algorithms.&lt;br /&gt;
&lt;br /&gt;
Davaar contains two new headline features:&lt;br /&gt;
&lt;br /&gt;
* Openhome compatibility&lt;br /&gt;
* Party mode support&lt;br /&gt;
&lt;br /&gt;
=== Openhome compatibility ===&lt;br /&gt;
&lt;br /&gt;
Openhome is an independent standard for networked home devices. Davaar brings Linn&#039;s DS devices into line with this Openhome standard. Each Openhome service is described below together with a migration guide for its Linn Cara equivalent.&lt;br /&gt;
&lt;br /&gt;
=== Party mode support ===&lt;br /&gt;
&lt;br /&gt;
Davaar allows one DS to play whatever is being played by another DS. This is achieved by coupling the new Receiver source (and associated service) with the new Sender service. A detailed description is given below.&lt;br /&gt;
&lt;br /&gt;
== Davaar 1 ==&lt;br /&gt;
The initial Davaar release.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
* [[Developer:Davaar:ProductService|Product Service]]&lt;br /&gt;
* [[Developer:Davaar:PlaylistService|Playlist Service]]&lt;br /&gt;
* [[Developer:Davaar:JukeboxService|Jukebox Service]]&lt;br /&gt;
* [[Developer:Davaar:AvtService|UPnP AV Transport Service]]&lt;br /&gt;
* [[Developer:Davaar:RenderingControlService|UPnP Rendering Control Service]]&lt;br /&gt;
* [[Developer:Davaar:RadioService|Radio Service]]&lt;br /&gt;
* [[Developer:Davaar:InfoService|Info Service]]&lt;br /&gt;
* [[Developer:Davaar:TimeService|Time Service]]&lt;br /&gt;
* [[Developer:Davaar:VolumeService|Volume Service]]&lt;br /&gt;
* [[Developer:Davaar:SenderService|Sender Service]]&lt;br /&gt;
* [[Developer:Davaar:ReceiverService|Receiver Service]]&lt;br /&gt;
&lt;br /&gt;
== Algorithms ==&lt;br /&gt;
&lt;br /&gt;
* [[Developer:Davaar:Topology|Topology]]&lt;br /&gt;
&lt;br /&gt;
* [[Developer:Davaar:PlaylistService#IdArray|Id Array]]&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
If you are using a alpha or beta release of the code, bugs, features and performance issues should be expected. Keeping an up-to-date bug log on this Wiki page would be unreasonable, hence only issues which require a work-around to get the code running will be listed here in detail.&lt;br /&gt;
&lt;br /&gt;
==== Required Workarounds ====&lt;br /&gt;
&lt;br /&gt;
* None&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar&amp;diff=5092</id>
		<title>Developer:Davaar</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar&amp;diff=5092"/>
		<updated>2010-11-24T15:34:36Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Davaar 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Davaar Developer Documentation =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Davaar is the name of a Linn [[Software Compatibility Families|software compatibility family]]. It represents a family of on- and off-device software that is interoperable.&lt;br /&gt;
&lt;br /&gt;
This interoperability consists in a stable set of well-defined interfaces and a shared set of software practices, including product discovery and playlist management algorithms.&lt;br /&gt;
&lt;br /&gt;
Davaar contains two new headline features:&lt;br /&gt;
&lt;br /&gt;
* Openhome compatibility&lt;br /&gt;
* Party mode support&lt;br /&gt;
&lt;br /&gt;
=== Openhome compatibility ===&lt;br /&gt;
&lt;br /&gt;
Openhome is an independent standard for networked home devices. Davaar brings Linn&#039;s DS devices into line with this Openhome standard. Each Openhome service is described below together with a migration guide for its Linn Cara equivalent.&lt;br /&gt;
&lt;br /&gt;
=== Party mode support ===&lt;br /&gt;
&lt;br /&gt;
Davaar allows one DS to play whatever is being played by another DS. This is achieved by coupling the new Receiver source (and associated service) with the new Sender service. A detailed description is given below.&lt;br /&gt;
&lt;br /&gt;
=== Davaar 1 ===&lt;br /&gt;
The initial Davaar release.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
* [[Developer:Davaar:ProductService|Product Service]]&lt;br /&gt;
* [[Developer:Davaar:PlaylistService|Playlist Service]]&lt;br /&gt;
* [[Developer:Davaar:JukeboxService|Jukebox Service]]&lt;br /&gt;
* [[Developer:Davaar:AvtService|UPnP AV Transport Service]]&lt;br /&gt;
* [[Developer:Davaar:RenderingControlService|UPnP Rendering Control Service]]&lt;br /&gt;
* [[Developer:Davaar:RadioService|Radio Service]]&lt;br /&gt;
* [[Developer:Davaar:InfoService|Info Service]]&lt;br /&gt;
* [[Developer:Davaar:TimeService|Time Service]]&lt;br /&gt;
* [[Developer:Davaar:VolumeService|Volume Service]]&lt;br /&gt;
* [[Developer:Davaar:SenderService|Sender Service]]&lt;br /&gt;
* [[Developer:Davaar:ReceiverService|Receiver Service]]&lt;br /&gt;
&lt;br /&gt;
== Algorithms ==&lt;br /&gt;
&lt;br /&gt;
* [[Developer:Davaar:Topology|Topology]]&lt;br /&gt;
&lt;br /&gt;
* [[Developer:Davaar:PlaylistService#IdArray|Id Array]]&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
If you are using a alpha or beta release of the code, bugs, features and performance issues should be expected. Keeping an up-to-date bug log on this Wiki page would be unreasonable, hence only issues which require a work-around to get the code running will be listed here in detail.&lt;br /&gt;
&lt;br /&gt;
==== Required Workarounds ====&lt;br /&gt;
&lt;br /&gt;
* None&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:ProductService&amp;diff=5091</id>
		<title>Developer:Davaar:ProductService</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:ProductService&amp;diff=5091"/>
		<updated>2010-11-24T15:28:16Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Attributes Action */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Architectural Overview =&lt;br /&gt;
&lt;br /&gt;
The Product service contains basic information concerning a single product. It contains information about what kind of device it is: the model, manufacturer, its name, its room, and details concerning each source within the product. Other basic functionality such as control of the product&#039;s standby state are also included.&lt;br /&gt;
&lt;br /&gt;
It should be possible for a control point to create a complete map of the home by subscribing to the Product service of every device.&lt;br /&gt;
&lt;br /&gt;
A physical product may contain more than one Product and thus be presented as more than one Product service on the network. An example of this would be a preamplifier with an embedded DS source. In this scenario the two Product services are &#039;&#039;&#039;&#039;&#039;Linked&#039;&#039;&#039;&#039;&#039; (internally grouped). Linked Products share certain key parameters such as Standby and Room (ie changing Standby on one Product will automatically change the Standby state on all other Products in that &#039;&#039;&#039;&#039;&#039;Linked&#039;&#039;&#039;&#039;&#039; group).&lt;br /&gt;
&lt;br /&gt;
== Network Presentation ==&lt;br /&gt;
&lt;br /&gt;
=== Attributes ===&lt;br /&gt;
Every product has one or more attributes indicating the key features supported by that product.&lt;br /&gt;
&lt;br /&gt;
=== Manufacturer ===&lt;br /&gt;
There are &#039;&#039;&#039;four&#039;&#039;&#039; Manufacturer parameters; &#039;&#039;&#039;Name&#039;&#039;&#039;, &#039;&#039;&#039;Info&#039;&#039;&#039;, &#039;&#039;&#039;Url&#039;&#039;&#039; and &#039;&#039;&#039;ImageUri&#039;&#039;&#039;. They are all text strings.&lt;br /&gt;
&lt;br /&gt;
==== Name ====&lt;br /&gt;
Name contains the Manufacturer name (example: &amp;quot;&#039;&#039;Linn&#039;&#039;&amp;quot;). Name is read only.&lt;br /&gt;
&lt;br /&gt;
==== Info ====&lt;br /&gt;
Info contains more Manufacturer information (example &amp;quot;&#039;&#039;Linn Products Ltd&#039;&#039;&amp;quot;). Info is read only.&lt;br /&gt;
&lt;br /&gt;
==== Url ====&lt;br /&gt;
Url contains the Manufacturer website address (example &amp;quot;&#039;&#039;http://www.linn.co.uk&#039;&#039;&amp;quot;). Url is read only.&lt;br /&gt;
&lt;br /&gt;
==== ImageUri ====&lt;br /&gt;
ImageUri contains... ImageUri is read only.&lt;br /&gt;
&lt;br /&gt;
=== Model ===&lt;br /&gt;
&lt;br /&gt;
There are &#039;&#039;&#039;four&#039;&#039;&#039; Model parameters; &#039;&#039;&#039;Name&#039;&#039;&#039;, &#039;&#039;&#039;Info&#039;&#039;&#039;, &#039;&#039;&#039;Url&#039;&#039;&#039; and &#039;&#039;&#039;ImageUri&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Name ====&lt;br /&gt;
Name contains the Model name (example: &amp;quot;&#039;&#039;Majik DS&#039;&#039;&amp;quot;). Name is read only.&lt;br /&gt;
==== Info ====&lt;br /&gt;
Info contains more Model information (example &amp;quot;&#039;&#039;Linn Hi-Fi component&#039;&#039;&amp;quot;). Info is read only. &lt;br /&gt;
==== Url ====&lt;br /&gt;
Url contains the Model website address (example &amp;quot;&#039;&#039;http://products.linn.co.uk/MajikDS&#039;&#039;&amp;quot;). Url is read only.&lt;br /&gt;
==== ImageUri ====&lt;br /&gt;
ImageUri contains... ImageUri is read only.&lt;br /&gt;
&lt;br /&gt;
=== Product ===&lt;br /&gt;
There are &#039;&#039;&#039;five&#039;&#039;&#039; Product parameters; &#039;&#039;&#039;Room&#039;&#039;&#039;, &#039;&#039;&#039;Name&#039;&#039;&#039;, &#039;&#039;&#039;Info&#039;&#039;&#039;, &#039;&#039;&#039;Url&#039;&#039;&#039; and &#039;&#039;&#039;ImageUri&#039;&#039;&#039;. They are all text strings.&lt;br /&gt;
&lt;br /&gt;
==== Room ====&lt;br /&gt;
This is the name of the room where the Product is located. Room is used to group the Product with other Products in the same physical room. The Upnp &#039;&#039;&#039;&#039;&#039;Friendly Name&#039;&#039;&#039;&#039;&#039; is derived by combining Room and Name in the format {&#039;&#039;&#039;&#039;&#039;Room&amp;amp;nbsp;: Name&#039;&#039;&#039;&#039;&#039;}. Products which are &#039;&#039;&#039;&#039;&#039;Linked&#039;&#039;&#039;&#039;&#039; always share the same Room name. Room is set to &#039;&#039;&#039;&#039;&#039;Main Room&#039;&#039;&#039;&#039;&#039; by default.&lt;br /&gt;
&lt;br /&gt;
==== Name ====&lt;br /&gt;
This is the Product name. The Upnp &#039;&#039;&#039;&#039;&#039;Friendly Name&#039;&#039;&#039;&#039;&#039; is derived by combining Room and Name in the format {&#039;&#039;&#039;&#039;&#039;Room&amp;amp;nbsp;: Name&#039;&#039;&#039;&#039;&#039;}. By default the Name is the same as the Model. &lt;br /&gt;
&lt;br /&gt;
==== Info ====&lt;br /&gt;
Info contains more Product information (example &amp;quot;&#039;&#039;Linn Hi-Fi component&#039;&#039;&amp;quot;). Info is read only.&lt;br /&gt;
&lt;br /&gt;
==== Url ====&lt;br /&gt;
Url contains... Url is read only.&lt;br /&gt;
&lt;br /&gt;
==== ImageUri ====&lt;br /&gt;
ImageUri contains... ImageUri is read only.&lt;br /&gt;
&lt;br /&gt;
== Standby Control==&lt;br /&gt;
&lt;br /&gt;
=== Standby===&lt;br /&gt;
This is the Standby state of the physical product. Standby can be changed using the SetStandby function. Products which are &#039;&#039;&#039;&#039;&#039;Linked&#039;&#039;&#039;&#039;&#039; always share the same Standby state. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Source Control ==&lt;br /&gt;
&lt;br /&gt;
=== Source List===&lt;br /&gt;
The Product service maintains a list of all sources within the Product. The size of this list is fixed for each Product and reported by the SourceCount function. Each source can then be referenced by its unique source index* in the list. Only one source, and thus one index, can be active at any given time. When a new source is selected the previous source is automatically deactivated before activating the new source. [* source index is zero based, ie 0,1,2,3,4,5..n, where n=listsize-1]&lt;br /&gt;
&lt;br /&gt;
=== Source Index ===&lt;br /&gt;
&lt;br /&gt;
The current (ie currently active) source can be changed by source index or source name. The function SetSourceIndex is used to change the current source by index. If the index is out of range an error will be reported. SetSourceIndexByName is used to change to the source whose name matches that specified. If a source of the specified name does not exist, the source will not change and no error will be reported.&lt;br /&gt;
&lt;br /&gt;
=== SourceCount ===&lt;br /&gt;
&lt;br /&gt;
SourceCount returns the number of sources that exist in the Product (ie the source list size). SourceCount is read only.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Source Specific Parameters ===&lt;br /&gt;
Every source has four fundamental parameters, &#039;&#039;&#039;SourceSystemName&#039;&#039;&#039;, &#039;&#039;&#039;SourceName&#039;&#039;&#039;, &#039;&#039;&#039;SourceVisible&#039;&#039;&#039; and &#039;&#039;&#039;SourceType&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== SourceSystemName ====&lt;br /&gt;
&lt;br /&gt;
SourceSystemName is a unique name string used to identify each source. SourceSystemName is read only. It can only be read via the &#039;&#039;&#039;Source&#039;&#039;&#039; action.&lt;br /&gt;
&lt;br /&gt;
==== SourceName ====&lt;br /&gt;
&lt;br /&gt;
SourceName is a unique name string assigned to each source. In the default state, for a given source index, SourceName matches SourceSystemName. It can be read via the &#039;&#039;&#039;Source&#039;&#039;&#039; action, or the &#039;&#039;&#039;SourceXml&#039;&#039;&#039; action.&lt;br /&gt;
&lt;br /&gt;
==== SourceType ====&lt;br /&gt;
&lt;br /&gt;
SourceType is a unique type string assigned to each source. SourceType is read only. It can be read via the &#039;&#039;&#039;Source&#039;&#039;&#039; action, or the &#039;&#039;&#039;SourceXml&#039;&#039;&#039; action.&lt;br /&gt;
&lt;br /&gt;
==== SourceVisible ====&lt;br /&gt;
&lt;br /&gt;
SourceVisible is a unique flag assigned to each source. This flag is used to indicate whether the source is to be displayed (front panel, GUI etc) when browsing through the source list. It can be read via the &#039;&#039;&#039;Source&#039;&#039;&#039; action, or the &#039;&#039;&#039;SourceXml&#039;&#039;&#039; action.&lt;br /&gt;
&lt;br /&gt;
Note - &#039;&#039;a source&#039;s &amp;quot;visibility&amp;quot; does not affect its ability to be selected/activated via the functions SetSourceIndex and SetCurrentSourceByName.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Actions=&lt;br /&gt;
&lt;br /&gt;
== Network Presentation Actions==&lt;br /&gt;
=== Attributes Action ===&lt;br /&gt;
The Attributes action reports a string containing a space separated list of all attributes.&lt;br /&gt;
&lt;br /&gt;
=== Manufacturer Action ===&lt;br /&gt;
The Manufacturer action returns all four Manufacturer parameters.&lt;br /&gt;
&lt;br /&gt;
=== Model Action ===&lt;br /&gt;
The Model action returns all four Model parameters.&lt;br /&gt;
&lt;br /&gt;
=== Product Action ===&lt;br /&gt;
The Product action returns all five Product parameters.&lt;br /&gt;
&lt;br /&gt;
== Standby Actions==&lt;br /&gt;
=== Standby===&lt;br /&gt;
The Standby action reports the current standby state of the product.&lt;br /&gt;
&lt;br /&gt;
=== SetStandby===&lt;br /&gt;
The SetStandby action provides a means of setting the current standby state of the product.&lt;br /&gt;
&lt;br /&gt;
==Source Actions==&lt;br /&gt;
===SourceXml Action===&lt;br /&gt;
The SourceXml action returns a list of all source specific parameters, for every source, in XML format.&lt;br /&gt;
&lt;br /&gt;
===SourceXmlChangeCount Action===&lt;br /&gt;
The SourceXmlChangeCount action returns a count indicating the number of times SourceXml has been updated since power on. This is useful for control points that do not support eventing.&lt;br /&gt;
&lt;br /&gt;
===Source Action===&lt;br /&gt;
The Source action returns all source specific parameters for a given source index.&lt;br /&gt;
&lt;br /&gt;
= API Reference =&lt;br /&gt;
&lt;br /&gt;
[http://oss.linn.co.uk/trac/browser/Main/LibUpnpCil/Services/Openhome/Product1.xml Product Service Description (XML)]&lt;br /&gt;
&lt;br /&gt;
= Migration Guide =&lt;br /&gt;
&lt;br /&gt;
All actions relating to configuration have been removed as part of the migration to the Davaar.   &lt;br /&gt;
&lt;br /&gt;
The domain for the Product service has changed to &#039;&#039;&#039;av.openhome.org&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
== Actions ==&lt;br /&gt;
=== Changed Actions ===&lt;br /&gt;
====Standby====&lt;br /&gt;
The arguments have changed their names as follows:&lt;br /&gt;
*aStandby -&amp;gt; Value&lt;br /&gt;
====SetStandby====&lt;br /&gt;
The arguments have changed their names as follows:&lt;br /&gt;
*aStandby -&amp;gt; Value&lt;br /&gt;
====SourceCount====&lt;br /&gt;
The arguments have changed their names as follows:&lt;br /&gt;
*aSourceCount -&amp;gt; Value&lt;br /&gt;
====SourceXml====&lt;br /&gt;
The arguments have changed their names as follows:&lt;br /&gt;
*aSourceXml -&amp;gt; Value&lt;br /&gt;
&lt;br /&gt;
====SourceIndex====&lt;br /&gt;
The arguments have changed their names as follows:&lt;br /&gt;
*aSourceIndex -&amp;gt; Value&lt;br /&gt;
====SetSourceIndex====&lt;br /&gt;
The arguments have changed their names as follows:&lt;br /&gt;
*aSourceIndex -&amp;gt; Value&lt;br /&gt;
&lt;br /&gt;
====SetSourceIndexByName====&lt;br /&gt;
The arguments have changed their names as follows:&lt;br /&gt;
*aSourceName -&amp;gt; Value&lt;br /&gt;
&lt;br /&gt;
=== New Actions ===&lt;br /&gt;
*Manufacturer&lt;br /&gt;
*Model&lt;br /&gt;
*Product&lt;br /&gt;
*Source&lt;br /&gt;
*Attributes&lt;br /&gt;
*SourceXmlChangeCount&lt;br /&gt;
&lt;br /&gt;
=== Obsolete Actions ===&lt;br /&gt;
*SetName&lt;br /&gt;
*SetRoom&lt;br /&gt;
*SetStartupSourceIndex&lt;br /&gt;
*StartupSourceIndex&lt;br /&gt;
*SetStartupSourceIndexByName &lt;br /&gt;
*SetStartupSourceEnabled &lt;br /&gt;
*StartupSourceEnabled&lt;br /&gt;
*SetSourceVisible&lt;br /&gt;
*SetSourceName&lt;br /&gt;
*SourceAttributes&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:Topology&amp;diff=5090</id>
		<title>Developer:Davaar:Topology</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:Topology&amp;diff=5090"/>
		<updated>2010-11-24T15:25:03Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Topology - Room/Source */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Openhome products all have a standard way of presenting themselves to the network. This makes it possible to write generic Control Point software that is able to control those products independent of Manufacturer or specific features.&lt;br /&gt;
&lt;br /&gt;
The technologies associated with making this possible are grouped under the term Topology.&lt;br /&gt;
&lt;br /&gt;
If a developer wishes to write generic software that participates in the aims described above, then they should write that software in a way that conforms to the strategies and algorithms of Openhome Topology, which is described below&lt;br /&gt;
&lt;br /&gt;
== Topology ==&lt;br /&gt;
&lt;br /&gt;
=== Products ===&lt;br /&gt;
&lt;br /&gt;
An Openhome installation consists of products from a variety of manufacturers each bearing the [[Developer:Davaar:ProductService|Product service]].&lt;br /&gt;
&lt;br /&gt;
Amongst other information, each product has:&lt;br /&gt;
&lt;br /&gt;
* Room (user configurable, defaults to &#039;Main Room&#039;)&lt;br /&gt;
&lt;br /&gt;
* Name (user configurable, defaults to the model name)&lt;br /&gt;
&lt;br /&gt;
* Source Count (fixed according to the capabilities of the product)&lt;br /&gt;
&lt;br /&gt;
* List of Sources, each with its own Type, Name, and Visibility&lt;br /&gt;
&lt;br /&gt;
* Attributes, identifying additional functionality offered by the product&lt;br /&gt;
&lt;br /&gt;
=== Proper Configuration ===&lt;br /&gt;
&lt;br /&gt;
The name of each product represents its audio output.&lt;br /&gt;
&lt;br /&gt;
The name of each source represents an audio input (either internal or external).&lt;br /&gt;
&lt;br /&gt;
In a properly configured system, if one product is connected to another using an audio cable, then the name of the product sending the audio should match the name of the source receiving the audio. It is by matching these names that a Control Point is able to select the correct input on, for instance, a preamp when a particular source is selected.&lt;br /&gt;
&lt;br /&gt;
=== Discovering An Openhome System ===&lt;br /&gt;
&lt;br /&gt;
The correct way to discover an Openhome system is to:&lt;br /&gt;
&lt;br /&gt;
* search for all units bearing the Product service&lt;br /&gt;
&lt;br /&gt;
* subscribe to each Product service&lt;br /&gt;
&lt;br /&gt;
* group these products according to their Room.&lt;br /&gt;
&lt;br /&gt;
* collect the name of all the sources in each product&lt;br /&gt;
&lt;br /&gt;
* match the names of the sources to the names of the products to create a set of tree structures in each room.&lt;br /&gt;
&lt;br /&gt;
=== Source Functionality ===&lt;br /&gt;
&lt;br /&gt;
To determine the kind of functionality available on each source, inspect its type.&lt;br /&gt;
&lt;br /&gt;
If it has type Playlist, it additionally contains the [[Developer:Davaar:PlaylistService|Playlist service]]&lt;br /&gt;
&lt;br /&gt;
If it has type Radio, it additionally contains the [[Developer:Davaar:RadioService|Radio service]]&lt;br /&gt;
&lt;br /&gt;
If it has type Receiver, it additionally contains the [[Developer:Davaar:ReceiverService|Receiver service]]&lt;br /&gt;
&lt;br /&gt;
=== Volume Control ===&lt;br /&gt;
&lt;br /&gt;
Products that offer volume control include the Volume attribute and the [[Developer:Davaar:VolumeService|Volume service]]&lt;br /&gt;
&lt;br /&gt;
The primary volume control offered by a control point should be the one situated nearest the root in the tree structure that contains the current source.&lt;br /&gt;
&lt;br /&gt;
Control points may optionally provide the user with control of the volume of each product within the tree.&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:Topology&amp;diff=5089</id>
		<title>Developer:Davaar:Topology</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:Topology&amp;diff=5089"/>
		<updated>2010-11-24T15:24:48Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Volume Control */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Openhome products all have a standard way of presenting themselves to the network. This makes it possible to write generic Control Point software that is able to control those products independent of Manufacturer or specific features.&lt;br /&gt;
&lt;br /&gt;
The technologies associated with making this possible are grouped under the term Topology.&lt;br /&gt;
&lt;br /&gt;
If a developer wishes to write generic software that participates in the aims described above, then they should write that software in a way that conforms to the strategies and algorithms of Openhome Topology, which is described below&lt;br /&gt;
&lt;br /&gt;
== Topology - Room/Source ==&lt;br /&gt;
&lt;br /&gt;
=== Products ===&lt;br /&gt;
&lt;br /&gt;
An Openhome installation consists of products from a variety of manufacturers each bearing the [[Developer:Davaar:ProductService|Product service]].&lt;br /&gt;
&lt;br /&gt;
Amongst other information, each product has:&lt;br /&gt;
&lt;br /&gt;
* Room (user configurable, defaults to &#039;Main Room&#039;)&lt;br /&gt;
&lt;br /&gt;
* Name (user configurable, defaults to the model name)&lt;br /&gt;
&lt;br /&gt;
* Source Count (fixed according to the capabilities of the product)&lt;br /&gt;
&lt;br /&gt;
* List of Sources, each with its own Type, Name, and Visibility&lt;br /&gt;
&lt;br /&gt;
* Attributes, identifying additional functionality offered by the product&lt;br /&gt;
&lt;br /&gt;
=== Proper Configuration ===&lt;br /&gt;
&lt;br /&gt;
The name of each product represents its audio output.&lt;br /&gt;
&lt;br /&gt;
The name of each source represents an audio input (either internal or external).&lt;br /&gt;
&lt;br /&gt;
In a properly configured system, if one product is connected to another using an audio cable, then the name of the product sending the audio should match the name of the source receiving the audio. It is by matching these names that a Control Point is able to select the correct input on, for instance, a preamp when a particular source is selected.&lt;br /&gt;
&lt;br /&gt;
=== Discovering An Openhome System ===&lt;br /&gt;
&lt;br /&gt;
The correct way to discover an Openhome system is to:&lt;br /&gt;
&lt;br /&gt;
* search for all units bearing the Product service&lt;br /&gt;
&lt;br /&gt;
* subscribe to each Product service&lt;br /&gt;
&lt;br /&gt;
* group these products according to their Room.&lt;br /&gt;
&lt;br /&gt;
* collect the name of all the sources in each product&lt;br /&gt;
&lt;br /&gt;
* match the names of the sources to the names of the products to create a set of tree structures in each room.&lt;br /&gt;
&lt;br /&gt;
=== Source Functionality ===&lt;br /&gt;
&lt;br /&gt;
To determine the kind of functionality available on each source, inspect its type.&lt;br /&gt;
&lt;br /&gt;
If it has type Playlist, it additionally contains the [[Developer:Davaar:PlaylistService|Playlist service]]&lt;br /&gt;
&lt;br /&gt;
If it has type Radio, it additionally contains the [[Developer:Davaar:RadioService|Radio service]]&lt;br /&gt;
&lt;br /&gt;
If it has type Receiver, it additionally contains the [[Developer:Davaar:ReceiverService|Receiver service]]&lt;br /&gt;
&lt;br /&gt;
=== Volume Control ===&lt;br /&gt;
&lt;br /&gt;
Products that offer volume control include the Volume attribute and the [[Developer:Davaar:VolumeService|Volume service]]&lt;br /&gt;
&lt;br /&gt;
The primary volume control offered by a control point should be the one situated nearest the root in the tree structure that contains the current source.&lt;br /&gt;
&lt;br /&gt;
Control points may optionally provide the user with control of the volume of each product within the tree.&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:Topology&amp;diff=5088</id>
		<title>Developer:Davaar:Topology</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:Topology&amp;diff=5088"/>
		<updated>2010-11-24T15:24:34Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Volume Control */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Openhome products all have a standard way of presenting themselves to the network. This makes it possible to write generic Control Point software that is able to control those products independent of Manufacturer or specific features.&lt;br /&gt;
&lt;br /&gt;
The technologies associated with making this possible are grouped under the term Topology.&lt;br /&gt;
&lt;br /&gt;
If a developer wishes to write generic software that participates in the aims described above, then they should write that software in a way that conforms to the strategies and algorithms of Openhome Topology, which is described below&lt;br /&gt;
&lt;br /&gt;
== Topology - Room/Source ==&lt;br /&gt;
&lt;br /&gt;
=== Products ===&lt;br /&gt;
&lt;br /&gt;
An Openhome installation consists of products from a variety of manufacturers each bearing the [[Developer:Davaar:ProductService|Product service]].&lt;br /&gt;
&lt;br /&gt;
Amongst other information, each product has:&lt;br /&gt;
&lt;br /&gt;
* Room (user configurable, defaults to &#039;Main Room&#039;)&lt;br /&gt;
&lt;br /&gt;
* Name (user configurable, defaults to the model name)&lt;br /&gt;
&lt;br /&gt;
* Source Count (fixed according to the capabilities of the product)&lt;br /&gt;
&lt;br /&gt;
* List of Sources, each with its own Type, Name, and Visibility&lt;br /&gt;
&lt;br /&gt;
* Attributes, identifying additional functionality offered by the product&lt;br /&gt;
&lt;br /&gt;
=== Proper Configuration ===&lt;br /&gt;
&lt;br /&gt;
The name of each product represents its audio output.&lt;br /&gt;
&lt;br /&gt;
The name of each source represents an audio input (either internal or external).&lt;br /&gt;
&lt;br /&gt;
In a properly configured system, if one product is connected to another using an audio cable, then the name of the product sending the audio should match the name of the source receiving the audio. It is by matching these names that a Control Point is able to select the correct input on, for instance, a preamp when a particular source is selected.&lt;br /&gt;
&lt;br /&gt;
=== Discovering An Openhome System ===&lt;br /&gt;
&lt;br /&gt;
The correct way to discover an Openhome system is to:&lt;br /&gt;
&lt;br /&gt;
* search for all units bearing the Product service&lt;br /&gt;
&lt;br /&gt;
* subscribe to each Product service&lt;br /&gt;
&lt;br /&gt;
* group these products according to their Room.&lt;br /&gt;
&lt;br /&gt;
* collect the name of all the sources in each product&lt;br /&gt;
&lt;br /&gt;
* match the names of the sources to the names of the products to create a set of tree structures in each room.&lt;br /&gt;
&lt;br /&gt;
=== Source Functionality ===&lt;br /&gt;
&lt;br /&gt;
To determine the kind of functionality available on each source, inspect its type.&lt;br /&gt;
&lt;br /&gt;
If it has type Playlist, it additionally contains the [[Developer:Davaar:PlaylistService|Playlist service]]&lt;br /&gt;
&lt;br /&gt;
If it has type Radio, it additionally contains the [[Developer:Davaar:RadioService|Radio service]]&lt;br /&gt;
&lt;br /&gt;
If it has type Receiver, it additionally contains the [[Developer:Davaar:ReceiverService|Receiver service]]&lt;br /&gt;
&lt;br /&gt;
=== Volume Control ===&lt;br /&gt;
&lt;br /&gt;
Products that offer volume control include the Volume attribute and the [[Developer:Davaar:VolumeService|Volume service]]&lt;br /&gt;
&lt;br /&gt;
The primary volume control offered by a control point should be the one situated nearest the root in the tree structure that contains the current source.&lt;br /&gt;
&lt;br /&gt;
Control points may optionally provide the user with control of the volume of each product within this tree.&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:Topology&amp;diff=5087</id>
		<title>Developer:Davaar:Topology</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:Topology&amp;diff=5087"/>
		<updated>2010-11-24T15:22:32Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Discovering An Openhome System */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Openhome products all have a standard way of presenting themselves to the network. This makes it possible to write generic Control Point software that is able to control those products independent of Manufacturer or specific features.&lt;br /&gt;
&lt;br /&gt;
The technologies associated with making this possible are grouped under the term Topology.&lt;br /&gt;
&lt;br /&gt;
If a developer wishes to write generic software that participates in the aims described above, then they should write that software in a way that conforms to the strategies and algorithms of Openhome Topology, which is described below&lt;br /&gt;
&lt;br /&gt;
== Topology - Room/Source ==&lt;br /&gt;
&lt;br /&gt;
=== Products ===&lt;br /&gt;
&lt;br /&gt;
An Openhome installation consists of products from a variety of manufacturers each bearing the [[Developer:Davaar:ProductService|Product service]].&lt;br /&gt;
&lt;br /&gt;
Amongst other information, each product has:&lt;br /&gt;
&lt;br /&gt;
* Room (user configurable, defaults to &#039;Main Room&#039;)&lt;br /&gt;
&lt;br /&gt;
* Name (user configurable, defaults to the model name)&lt;br /&gt;
&lt;br /&gt;
* Source Count (fixed according to the capabilities of the product)&lt;br /&gt;
&lt;br /&gt;
* List of Sources, each with its own Type, Name, and Visibility&lt;br /&gt;
&lt;br /&gt;
* Attributes, identifying additional functionality offered by the product&lt;br /&gt;
&lt;br /&gt;
=== Proper Configuration ===&lt;br /&gt;
&lt;br /&gt;
The name of each product represents its audio output.&lt;br /&gt;
&lt;br /&gt;
The name of each source represents an audio input (either internal or external).&lt;br /&gt;
&lt;br /&gt;
In a properly configured system, if one product is connected to another using an audio cable, then the name of the product sending the audio should match the name of the source receiving the audio. It is by matching these names that a Control Point is able to select the correct input on, for instance, a preamp when a particular source is selected.&lt;br /&gt;
&lt;br /&gt;
=== Discovering An Openhome System ===&lt;br /&gt;
&lt;br /&gt;
The correct way to discover an Openhome system is to:&lt;br /&gt;
&lt;br /&gt;
* search for all units bearing the Product service&lt;br /&gt;
&lt;br /&gt;
* subscribe to each Product service&lt;br /&gt;
&lt;br /&gt;
* group these products according to their Room.&lt;br /&gt;
&lt;br /&gt;
* collect the name of all the sources in each product&lt;br /&gt;
&lt;br /&gt;
* match the names of the sources to the names of the products to create a set of tree structures in each room.&lt;br /&gt;
&lt;br /&gt;
=== Source Functionality ===&lt;br /&gt;
&lt;br /&gt;
To determine the kind of functionality available on each source, inspect its type.&lt;br /&gt;
&lt;br /&gt;
If it has type Playlist, it additionally contains the [[Developer:Davaar:PlaylistService|Playlist service]]&lt;br /&gt;
&lt;br /&gt;
If it has type Radio, it additionally contains the [[Developer:Davaar:RadioService|Radio service]]&lt;br /&gt;
&lt;br /&gt;
If it has type Receiver, it additionally contains the [[Developer:Davaar:ReceiverService|Receiver service]]&lt;br /&gt;
&lt;br /&gt;
=== Volume Control ===&lt;br /&gt;
&lt;br /&gt;
Products that offer volume control include the Volume attribute and the [[Developer:Davaar:VolumeService|Volume service]]&lt;br /&gt;
&lt;br /&gt;
The primary volume control offered by a control point should be that situated nearest the root in the tree structure that contains the current source.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:Topology&amp;diff=5086</id>
		<title>Developer:Davaar:Topology</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:Topology&amp;diff=5086"/>
		<updated>2010-11-24T15:21:57Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Proper Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Openhome products all have a standard way of presenting themselves to the network. This makes it possible to write generic Control Point software that is able to control those products independent of Manufacturer or specific features.&lt;br /&gt;
&lt;br /&gt;
The technologies associated with making this possible are grouped under the term Topology.&lt;br /&gt;
&lt;br /&gt;
If a developer wishes to write generic software that participates in the aims described above, then they should write that software in a way that conforms to the strategies and algorithms of Openhome Topology, which is described below&lt;br /&gt;
&lt;br /&gt;
== Topology - Room/Source ==&lt;br /&gt;
&lt;br /&gt;
=== Products ===&lt;br /&gt;
&lt;br /&gt;
An Openhome installation consists of products from a variety of manufacturers each bearing the [[Developer:Davaar:ProductService|Product service]].&lt;br /&gt;
&lt;br /&gt;
Amongst other information, each product has:&lt;br /&gt;
&lt;br /&gt;
* Room (user configurable, defaults to &#039;Main Room&#039;)&lt;br /&gt;
&lt;br /&gt;
* Name (user configurable, defaults to the model name)&lt;br /&gt;
&lt;br /&gt;
* Source Count (fixed according to the capabilities of the product)&lt;br /&gt;
&lt;br /&gt;
* List of Sources, each with its own Type, Name, and Visibility&lt;br /&gt;
&lt;br /&gt;
* Attributes, identifying additional functionality offered by the product&lt;br /&gt;
&lt;br /&gt;
=== Proper Configuration ===&lt;br /&gt;
&lt;br /&gt;
The name of each product represents its audio output.&lt;br /&gt;
&lt;br /&gt;
The name of each source represents an audio input (either internal or external).&lt;br /&gt;
&lt;br /&gt;
In a properly configured system, if one product is connected to another using an audio cable, then the name of the product sending the audio should match the name of the source receiving the audio. It is by matching these names that a Control Point is able to select the correct input on, for instance, a preamp when a particular source is selected.&lt;br /&gt;
&lt;br /&gt;
=== Discovering An Openhome System ===&lt;br /&gt;
&lt;br /&gt;
The correct way to discover an Openhome system is to:&lt;br /&gt;
&lt;br /&gt;
* search for all units bearing the Product:1 service&lt;br /&gt;
&lt;br /&gt;
* subscribe to each Product service&lt;br /&gt;
&lt;br /&gt;
* group these products according to their Room.&lt;br /&gt;
&lt;br /&gt;
* collect the name of all the sources in each product&lt;br /&gt;
&lt;br /&gt;
* match the names of the sources to the names of the products to create a set of tree structures in each room.&lt;br /&gt;
&lt;br /&gt;
=== Source Functionality ===&lt;br /&gt;
&lt;br /&gt;
To determine the kind of functionality available on each source, inspect its type.&lt;br /&gt;
&lt;br /&gt;
If it has type Playlist, it additionally contains the [[Developer:Davaar:PlaylistService|Playlist service]]&lt;br /&gt;
&lt;br /&gt;
If it has type Radio, it additionally contains the [[Developer:Davaar:RadioService|Radio service]]&lt;br /&gt;
&lt;br /&gt;
If it has type Receiver, it additionally contains the [[Developer:Davaar:ReceiverService|Receiver service]]&lt;br /&gt;
&lt;br /&gt;
=== Volume Control ===&lt;br /&gt;
&lt;br /&gt;
Products that offer volume control include the Volume attribute and the [[Developer:Davaar:VolumeService|Volume service]]&lt;br /&gt;
&lt;br /&gt;
The primary volume control offered by a control point should be that situated nearest the root in the tree structure that contains the current source.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:Topology&amp;diff=5085</id>
		<title>Developer:Davaar:Topology</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:Topology&amp;diff=5085"/>
		<updated>2010-11-24T15:21:18Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Products */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Openhome products all have a standard way of presenting themselves to the network. This makes it possible to write generic Control Point software that is able to control those products independent of Manufacturer or specific features.&lt;br /&gt;
&lt;br /&gt;
The technologies associated with making this possible are grouped under the term Topology.&lt;br /&gt;
&lt;br /&gt;
If a developer wishes to write generic software that participates in the aims described above, then they should write that software in a way that conforms to the strategies and algorithms of Openhome Topology, which is described below&lt;br /&gt;
&lt;br /&gt;
== Topology - Room/Source ==&lt;br /&gt;
&lt;br /&gt;
=== Products ===&lt;br /&gt;
&lt;br /&gt;
An Openhome installation consists of products from a variety of manufacturers each bearing the [[Developer:Davaar:ProductService|Product service]].&lt;br /&gt;
&lt;br /&gt;
Amongst other information, each product has:&lt;br /&gt;
&lt;br /&gt;
* Room (user configurable, defaults to &#039;Main Room&#039;)&lt;br /&gt;
&lt;br /&gt;
* Name (user configurable, defaults to the model name)&lt;br /&gt;
&lt;br /&gt;
* Source Count (fixed according to the capabilities of the product)&lt;br /&gt;
&lt;br /&gt;
* List of Sources, each with its own Type, Name, and Visibility&lt;br /&gt;
&lt;br /&gt;
* Attributes, identifying additional functionality offered by the product&lt;br /&gt;
&lt;br /&gt;
=== Proper Configuration ===&lt;br /&gt;
&lt;br /&gt;
The name of each product represents its audio output.&lt;br /&gt;
&lt;br /&gt;
The name of each source represents an audio input (either internal or external).&lt;br /&gt;
&lt;br /&gt;
In a properly configured system, if one product is connected to another using a audio cable, then the name of the product sending the audio should match the name of the source receiving the audio. It is by matching these names that a Control Point is able to select the correct input on, for instance, a preamp when a particular source is selected.&lt;br /&gt;
&lt;br /&gt;
=== Discovering An Openhome System ===&lt;br /&gt;
&lt;br /&gt;
The correct way to discover an Openhome system is to:&lt;br /&gt;
&lt;br /&gt;
* search for all units bearing the Product:1 service&lt;br /&gt;
&lt;br /&gt;
* subscribe to each Product service&lt;br /&gt;
&lt;br /&gt;
* group these products according to their Room.&lt;br /&gt;
&lt;br /&gt;
* collect the name of all the sources in each product&lt;br /&gt;
&lt;br /&gt;
* match the names of the sources to the names of the products to create a set of tree structures in each room.&lt;br /&gt;
&lt;br /&gt;
=== Source Functionality ===&lt;br /&gt;
&lt;br /&gt;
To determine the kind of functionality available on each source, inspect its type.&lt;br /&gt;
&lt;br /&gt;
If it has type Playlist, it additionally contains the [[Developer:Davaar:PlaylistService|Playlist service]]&lt;br /&gt;
&lt;br /&gt;
If it has type Radio, it additionally contains the [[Developer:Davaar:RadioService|Radio service]]&lt;br /&gt;
&lt;br /&gt;
If it has type Receiver, it additionally contains the [[Developer:Davaar:ReceiverService|Receiver service]]&lt;br /&gt;
&lt;br /&gt;
=== Volume Control ===&lt;br /&gt;
&lt;br /&gt;
Products that offer volume control include the Volume attribute and the [[Developer:Davaar:VolumeService|Volume service]]&lt;br /&gt;
&lt;br /&gt;
The primary volume control offered by a control point should be that situated nearest the root in the tree structure that contains the current source.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:Topology&amp;diff=5084</id>
		<title>Developer:Davaar:Topology</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:Topology&amp;diff=5084"/>
		<updated>2010-11-24T15:21:02Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: /* Functional Units */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Openhome products all have a standard way of presenting themselves to the network. This makes it possible to write generic Control Point software that is able to control those products independent of Manufacturer or specific features.&lt;br /&gt;
&lt;br /&gt;
The technologies associated with making this possible are grouped under the term Topology.&lt;br /&gt;
&lt;br /&gt;
If a developer wishes to write generic software that participates in the aims described above, then they should write that software in a way that conforms to the strategies and algorithms of Openhome Topology, which is described below&lt;br /&gt;
&lt;br /&gt;
== Topology - Room/Source ==&lt;br /&gt;
&lt;br /&gt;
=== Products ===&lt;br /&gt;
&lt;br /&gt;
An Openhome consists of products from a variety of manufacturers each bearing the [[Developer:Davaar:ProductService|Product service]].&lt;br /&gt;
&lt;br /&gt;
Amongst other information, each product has:&lt;br /&gt;
&lt;br /&gt;
* Room (user configurable, defaults to &#039;Main Room&#039;)&lt;br /&gt;
&lt;br /&gt;
* Name (user configurable, defaults to the model name)&lt;br /&gt;
&lt;br /&gt;
* Source Count (fixed according to the capabilities of the product)&lt;br /&gt;
&lt;br /&gt;
* List of Sources, each with its own Type, Name, and Visibility&lt;br /&gt;
&lt;br /&gt;
* Attributes, identifying additional functionality offered by the product&lt;br /&gt;
&lt;br /&gt;
=== Proper Configuration ===&lt;br /&gt;
&lt;br /&gt;
The name of each product represents its audio output.&lt;br /&gt;
&lt;br /&gt;
The name of each source represents an audio input (either internal or external).&lt;br /&gt;
&lt;br /&gt;
In a properly configured system, if one product is connected to another using a audio cable, then the name of the product sending the audio should match the name of the source receiving the audio. It is by matching these names that a Control Point is able to select the correct input on, for instance, a preamp when a particular source is selected.&lt;br /&gt;
&lt;br /&gt;
=== Discovering An Openhome System ===&lt;br /&gt;
&lt;br /&gt;
The correct way to discover an Openhome system is to:&lt;br /&gt;
&lt;br /&gt;
* search for all units bearing the Product:1 service&lt;br /&gt;
&lt;br /&gt;
* subscribe to each Product service&lt;br /&gt;
&lt;br /&gt;
* group these products according to their Room.&lt;br /&gt;
&lt;br /&gt;
* collect the name of all the sources in each product&lt;br /&gt;
&lt;br /&gt;
* match the names of the sources to the names of the products to create a set of tree structures in each room.&lt;br /&gt;
&lt;br /&gt;
=== Source Functionality ===&lt;br /&gt;
&lt;br /&gt;
To determine the kind of functionality available on each source, inspect its type.&lt;br /&gt;
&lt;br /&gt;
If it has type Playlist, it additionally contains the [[Developer:Davaar:PlaylistService|Playlist service]]&lt;br /&gt;
&lt;br /&gt;
If it has type Radio, it additionally contains the [[Developer:Davaar:RadioService|Radio service]]&lt;br /&gt;
&lt;br /&gt;
If it has type Receiver, it additionally contains the [[Developer:Davaar:ReceiverService|Receiver service]]&lt;br /&gt;
&lt;br /&gt;
=== Volume Control ===&lt;br /&gt;
&lt;br /&gt;
Products that offer volume control include the Volume attribute and the [[Developer:Davaar:VolumeService|Volume service]]&lt;br /&gt;
&lt;br /&gt;
The primary volume control offered by a control point should be that situated nearest the root in the tree structure that contains the current source.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
	<entry>
		<id>https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:Topology&amp;diff=5083</id>
		<title>Developer:Davaar:Topology</title>
		<link rel="alternate" type="text/html" href="https://docs.linn.co.uk/wiki/index.php?title=Developer:Davaar:Topology&amp;diff=5083"/>
		<updated>2010-11-24T15:20:47Z</updated>

		<summary type="html">&lt;p&gt;Grahamd: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Openhome products all have a standard way of presenting themselves to the network. This makes it possible to write generic Control Point software that is able to control those products independent of Manufacturer or specific features.&lt;br /&gt;
&lt;br /&gt;
The technologies associated with making this possible are grouped under the term Topology.&lt;br /&gt;
&lt;br /&gt;
If a developer wishes to write generic software that participates in the aims described above, then they should write that software in a way that conforms to the strategies and algorithms of Openhome Topology, which is described below&lt;br /&gt;
&lt;br /&gt;
== Topology - Room/Source ==&lt;br /&gt;
&lt;br /&gt;
=== Functional Units ===&lt;br /&gt;
&lt;br /&gt;
An Openhome consists of products from a variety of manufacturers each bearing the [[Developer:Davaar:ProductService|Product service]].&lt;br /&gt;
&lt;br /&gt;
Amongst other information, each product has:&lt;br /&gt;
&lt;br /&gt;
* Room (user configurable, defaults to &#039;Main Room&#039;)&lt;br /&gt;
&lt;br /&gt;
* Name (user configurable, defaults to the model name)&lt;br /&gt;
&lt;br /&gt;
* Source Count (fixed according to the capabilities of the product)&lt;br /&gt;
&lt;br /&gt;
* List of Sources, each with its own Type, Name, and Visibility&lt;br /&gt;
&lt;br /&gt;
* Attributes, identifying additional functionality offered by the product&lt;br /&gt;
&lt;br /&gt;
=== Proper Configuration ===&lt;br /&gt;
&lt;br /&gt;
The name of each product represents its audio output.&lt;br /&gt;
&lt;br /&gt;
The name of each source represents an audio input (either internal or external).&lt;br /&gt;
&lt;br /&gt;
In a properly configured system, if one product is connected to another using a audio cable, then the name of the product sending the audio should match the name of the source receiving the audio. It is by matching these names that a Control Point is able to select the correct input on, for instance, a preamp when a particular source is selected.&lt;br /&gt;
&lt;br /&gt;
=== Discovering An Openhome System ===&lt;br /&gt;
&lt;br /&gt;
The correct way to discover an Openhome system is to:&lt;br /&gt;
&lt;br /&gt;
* search for all units bearing the Product:1 service&lt;br /&gt;
&lt;br /&gt;
* subscribe to each Product service&lt;br /&gt;
&lt;br /&gt;
* group these products according to their Room.&lt;br /&gt;
&lt;br /&gt;
* collect the name of all the sources in each product&lt;br /&gt;
&lt;br /&gt;
* match the names of the sources to the names of the products to create a set of tree structures in each room.&lt;br /&gt;
&lt;br /&gt;
=== Source Functionality ===&lt;br /&gt;
&lt;br /&gt;
To determine the kind of functionality available on each source, inspect its type.&lt;br /&gt;
&lt;br /&gt;
If it has type Playlist, it additionally contains the [[Developer:Davaar:PlaylistService|Playlist service]]&lt;br /&gt;
&lt;br /&gt;
If it has type Radio, it additionally contains the [[Developer:Davaar:RadioService|Radio service]]&lt;br /&gt;
&lt;br /&gt;
If it has type Receiver, it additionally contains the [[Developer:Davaar:ReceiverService|Receiver service]]&lt;br /&gt;
&lt;br /&gt;
=== Volume Control ===&lt;br /&gt;
&lt;br /&gt;
Products that offer volume control include the Volume attribute and the [[Developer:Davaar:VolumeService|Volume service]]&lt;br /&gt;
&lt;br /&gt;
The primary volume control offered by a control point should be that situated nearest the root in the tree structure that contains the current source.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Grahamd</name></author>
	</entry>
</feed>