Difference between revisions of "Developer:Davaar:Topology"

From LinnDocs
Jump to: navigation, search
(Created page with '== Introduction == The Linn DS family of products all have a standard way of presenting themselves to the network. This makes it possible to write generic Control Point software…')
 
m (Volume Control)
 
(9 intermediate revisions by one other user not shown)
Line 1: Line 1:
 
== Introduction ==
 
== Introduction ==
  
The Linn DS family of 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 independently of the following:
+
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.
  
* Audio Performance - software that controls a Klimax DS will also control a Sneaky Music DS
+
The technologies associated with making this possible are grouped under the term Openhome Topology.
  
* Product Integration - software that controls a DS with an integrated Preamp will also control a DS connected to a separate Preamp
+
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
* Device Software Revision - software that controls a Cara 1 device will also control a Cara 2 device. As long as the device firmware is in the same compatibility family as the Control Point everything should work.
 
  
The technologies associated with making this possible are grouped under the term Topology.
+
== Topology ==
  
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 Linn Topology, which is described below
+
=== Products ===
  
== Topology - Room/Source ==
+
An Openhome installation consists of products from a variety of manufacturers each bearing the [[Developer:Davaar:ProductService|Product service]].
  
=== Functional Units ===
+
Amongst other information, each product has:
 
 
A Linn system is populated by functional units each bearing the [[Developer:Cara:ProductService|Product service]].
 
 
 
Each unit has a:
 
 
 
* Type (either Source or Preamp)
 
* Model (Klimax DS, Majik DS, etc)
 
  
 
* Room (user configurable, defaults to 'Main Room')
 
* Room (user configurable, defaults to 'Main Room')
  
* Name (user configurable, defaults to the Model)
+
* Name (user configurable, defaults to the model name)
  
* Source Count (fixed and read only, determined by the capabilities of the product)
+
* Source Count (fixed according to the capabilities of the product)
  
 
* List of Sources, each with its own Type, Name, and Visibility
 
* List of Sources, each with its own Type, Name, and Visibility
 +
 +
* Attributes, identifying additional functionality offered by the product
  
 
=== Proper Configuration ===
 
=== Proper Configuration ===
  
In a properly configured system a Room will contain one unit of type Preamp (Preamp Unit) and any number of units of type Source (Source Unit).
+
The name of each product represents its audio output.
  
The name of each Source Unit represents its audio output.
+
The name of each source represents an audio input (either internal or external).
  
The name of each Source in a Preamp Unit represents one of its audio inputs.
+
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.
  
In a properly configured system, if a Source Unit is connected to a Preamp input, then the name of the Source Unit and the name of the associated Source in the Preamp Unit matches. It is by matching these names that a Control Point is able to select the correct input on a Preamp when a particular Source is selected.
+
=== Discovering An Openhome System ===
  
=== Discovering A Linn System ===
+
The correct way to discover an Openhome system is to:
  
The correct way to discover a Linn System is to:
+
* search for all units bearing the Product service
  
* search for all units bearing the Product:3 service
+
* subscribe to each Product service
  
* subscribe to each Product service
+
* group these products according to their Room.
 +
 
 +
* collect the name of all the sources in each product
  
* using the Room and Type, collect all units into Rooms each containing one Preamp unit and any number of Source units
+
* match the names of the sources to the names of the products to create a set of tree structures in each room.
  
* collect the name of all the Sources in the Preamp units
+
=== Source Functionality ===
  
* match the names of the Source Units with the names of the Sources in their room's Preamp unit
+
To determine the kind of functionality available on each source, inspect its type.
  
=== Source Unit Sources ===
+
If it has type Playlist, it additionally contains the [[Developer:Davaar:PlaylistService|Playlist service]]
  
To determine the kind of functionality available in each source unit, collect the type of each Source within a Source unit.
+
If it has type Radio, it additionally contains the [[Developer:Davaar:RadioService|Radio service]]
  
If it has type Playlist, it additionally contains the Ds, Playlist and Jukebox service
+
If it has type Receiver, it additionally contains the [[Developer:Davaar:ReceiverService|Receiver service]]
  
If it is of type Cd, it additionally contains the Sdp service.
+
=== Volume Control ===
  
If it is of type Tuner, it additionally contains the Tuner service.
+
Products that offer volume control include the Volume attribute and the <span class="plainlinks">[http://wiki.openhome.org/wiki/Av:Developer:VolumeService <u>Volume Service</u>]</span> <!-- [[Developer:Davaar:VolumeService|Volume service]]-->
  
If it is of type UpnpAv, another device associated with this one can be found containing the UpnpAV MediaRenderer services
+
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.
  
<br> <br>
+
Control points may optionally provide the user with control of the volume of each product within the tree.

Latest revision as of 08:43, 13 March 2020

Introduction

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.

The technologies associated with making this possible are grouped under the term Openhome Topology.

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

Topology

Products

An Openhome installation consists of products from a variety of manufacturers each bearing the Product service.

Amongst other information, each product has:

  • Room (user configurable, defaults to 'Main Room')
  • Name (user configurable, defaults to the model name)
  • Source Count (fixed according to the capabilities of the product)
  • List of Sources, each with its own Type, Name, and Visibility
  • Attributes, identifying additional functionality offered by the product

Proper Configuration

The name of each product represents its audio output.

The name of each source represents an audio input (either internal or external).

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.

Discovering An Openhome System

The correct way to discover an Openhome system is to:

  • search for all units bearing the Product service
  • subscribe to each Product service
  • group these products according to their Room.
  • collect the name of all the sources in each product
  • match the names of the sources to the names of the products to create a set of tree structures in each room.

Source Functionality

To determine the kind of functionality available on each source, inspect its type.

If it has type Playlist, it additionally contains the Playlist service

If it has type Radio, it additionally contains the Radio service

If it has type Receiver, it additionally contains the Receiver service

Volume Control

Products that offer volume control include the Volume attribute and the Volume Service

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.

Control points may optionally provide the user with control of the volume of each product within the tree.