Difference between revisions of "Developer:Davaar"

From LinnDocs
Jump to: navigation, search
(Created page with '= Davaar Developer Documentation = Cara represents a familiy of on-device and off-device software components that interoperate successfully. This interoperability consists in a …')
 
m
 
(73 intermediate revisions by 6 users not shown)
Line 1: Line 1:
 
= Davaar Developer Documentation =
 
= Davaar Developer Documentation =
 +
== Overview ==
 +
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.
  
Cara represents a familiy of on-device and off-device software components that interoperate successfully. This interoperability consists in a stable set of well-defined software interfaces and a shared set of strategies or algorithms for performing common tasks such as product discovery or playlist management.
+
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.
  
== Cara 10 ==
+
Davaar contains two new headline features:
As with all releases in the same compatibility family, all existing, correctly written, Cara control points remain compatible with Cara 10.
 
  
From a developers perspective, Cara 10 adds support for:
+
* Openhome compatibility
 +
* Sender/Receiver support
  
* Radio metatext
+
=== Openhome compatibility ===
  
This feature is exposed in the Metatext action of the Info service (new as of Cara 6):
+
Openhome is an independent standard for networked home devices. Davaar brings Linn'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.
  
* [[Developer:Cara:InfoService|Info Service]]
+
=== Sender/Receiver support ===
  
== Cara 6 ==
+
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 serviceOne sender can send to an arbitrary number of receivers, and there is no limit on the number of senders.  A detailed description is given below.
Cara 6 adds a number of services to support new functionality.  As with all releases in the same compatibility family, all existing, correctly written, Cara control points remain compatible with Cara 6However, they clearly will not support the new features.
 
  
From a developers perspective, Cara 6 adds support for:
+
== Services ==
  
* Internet radio via a new Radio source
+
A detailed description of the OpenHome services can be found on the [http://wiki.openhome.org/wiki/Oh:Overview OpenHome website]
* Time delay of the audio of digital sources
 
* Subscription and retrieval of source independent Info and Time metadata.  
 
* Wma support
 
* Support for a myriad of Internet radio container formats.
 
  
These new features are exposed in the following new services:
+
== Algorithms ==
 
 
* [[Developer:Cara:DelayService|Delay Service]]
 
* [[Developer:Cara:RadioService|Radio Service]]
 
* [[Developer:Cara:InfoService|Info Service]]
 
* [[Developer:Cara:TimeService|Time Service]]
 
 
 
== Cara 1 ==
 
 
 
Cara 1 develops upon some of the ideas that began to become established in Bute. It differs from Bute in five major respects:
 
 
 
* Simplified Topology - discoverable through the Product service alone
 
* Simplified Media Services - split into all new Ds and Playlist services
 
* New MediaTime Service - shared across all sources<br>
 
* More Efficient Comms - limited request size, unlimited response size
 
* Multiple Sources - for source products, allowing for further enhancements and features
 
* Additional Features - such as the jukebox, shuffle and repeat, web configuration, and AAC support
 
 
 
=== Simplified Topology ===
 
 
 
Bute made it possible to discover all the rooms, all the sources in those rooms, and to configure and select them using the Product and Preamp services. Cara goes one stage further and makes this possible using the Product service alone.
 
 
 
In order to achieve this, many of the actions previously available in the [[Developer:Cara:PreampService|Preamp service]] have been moved to the [[Developer:Cara:ProductService|Product service]].
 
 
 
With Cara the cross-platform Linn Topology layer matures into a library of code that can and should be used by external developers.
 
 
 
However, for those developers not using a Common or Dynamic Language Runtime, the recommended Topology algorithms are described [[Developer:Cara:Topology|here]].<br>
 
 
 
=== Simplified Media Services<br> ===
 
 
 
The Media service on Bute has been split and redesigned into the [[Developer:Cara:DsService|Ds]] and [[Developer:Cara:PlaylistService|Playlist]] services. The [[Developer:Cara:DsService|Ds service]] handles transport state and control such as Play, Pause, Stop, Seek. The [[Developer:Cara:PlaylistService|Playlist service]] is concerned with manipulation of the on-device playlist and provides a new approach for keeping a control point up to date with changes to that playlist. The algorithms involved are described [[Developer:Cara:PlaylistIdArray|here]].
 
 
 
=== New MediaTime Service<br> ===
 
 
 
The [[Developer:Cara:MediaTimeService|MediaTime service]] events the current time of the playing track in seconds. It is shared by all audio sources for which current track time is meaningful. Separating this service out allows control point designers to choose how they wish to collect the current track time: through eventing, by polling, or not at all.
 
 
 
=== Comms ===
 
  
UPnP and [[Developer:LPEC|LPEC]] network transactions now follow a new pattern. All requests must be less than 12Kb. Responses, however, are unlimited in length. In order to achieve this, responses to UPnP actions are now sent out using chunked encoding. This should not affect developers using standard HTTP/1.1 libraries. But if a developer is using their own hand-written HTTP software, it must support chunked encoding in order to work with Cara.
+
* [[Developer:Davaar:Topology|Topology]]
  
=== Multiple Sources<br> ===
+
* [[Developer:Davaar:PlaylistService#IdArray|Id Array]]
  
There are two types of device that bear the [[Developer:Cara:ProductService|Product service]]: Source Products and Preamp Products. In both Bute and Cara, Preamp Products typically have more than one source. In Cara, it is also common for Source Products to have more than one source.<br>
+
* [[Developer:Davaar:SenderService#Connecting|Connecting Senders/Receivers]]
  
See [[Developer:Cara:Topology|Topology]] for more concerning this change<br>
 
  
=== Additional Features<br> ===
+
= Davaar 1 =
  
A Ds source now provides an additional [[Developer:Cara:JukeboxService|Jukebox Service]] that allows users to identify a set of stored, numbered playlists that can be selectively loaded using their infra-red handset. This instantly connects a user to their music without having to use a graphical user interface.
+
<!--== Pre-requisites ==
  
The on-device playlist in a DS can now be placed into shuffle and repeat modes.
+
You will require [[Multicast_Filtering| Multicast Filtering]] (IGMP snooping) on your network for full sender/receiver functionality-->
 
 
Configuration of a single device is now possible using a Web Browser, making full device configuration available to those previously unable to use LinnConfig. The Web Configuration program uses the Google Web Toolkit (GWT) together with Linn's open source GWT UPnP Service Library. These technologies may be used to develop further Web Applications for Linn's product range.<br>
 
 
 
DS products now support playback of AAC media.<br>
 
 
 
== Services ==
 
 
 
* [[Developer:Cara:ProductService|Product Service]]
 
* [[Developer:Cara:PlaylistService|Playlist Service]]
 
* [[Developer:Cara:DsService|Ds Service]]
 
* [[Developer:Cara:MediaTimeService|MediaTime Service]]
 
* [[Developer:Cara:PreampService|Preamp Service]]
 
* [[Developer:Cara:JukeboxService|Jukebox Service]]
 
* [[Developer:Cara:AvtService|UPnP AV Transport Service]]
 
* [[Developer:Cara:RenderingControlService|UPnP Rendering Control Service]]
 
* [[Developer:Cara:DelayService|Delay Service]]
 
* [[Developer:Cara:RadioService|Radio Service]]
 
* [[Developer:Cara:InfoService|Info Service]]
 
* [[Developer:Cara:TimeService|Time Service]]
 
 
 
== Algorithms ==
 
 
 
* [[Developer:Cara:Topology|Topology]]
 
 
 
* [[Developer:Cara:PlaylistService#IdArray|Id Array]]
 
  
 
== Known Issues ==
 
== Known Issues ==
  
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.
+
If you are using an 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.
  
==== Required Workarounds ====
+
== Required Workarounds ==
  
 
* None
 
* None
 +
 +
;Goto [[ReleaseNotes|<u>Release Notes</u>]] for details of later updates.

Latest revision as of 07:45, 24 July 2023

Davaar Developer Documentation

Overview

Davaar is the name of a Linn software compatibility family. It represents a family of on- and off-device software that is interoperable.

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.

Davaar contains two new headline features:

  • Openhome compatibility
  • Sender/Receiver support

Openhome compatibility

Openhome is an independent standard for networked home devices. Davaar brings Linn'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.

Sender/Receiver support

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. One sender can send to an arbitrary number of receivers, and there is no limit on the number of senders. A detailed description is given below.

Services

A detailed description of the OpenHome services can be found on the OpenHome website

Algorithms


Davaar 1

Known Issues

If you are using an 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.

Required Workarounds

  • None
Goto Release Notes for details of later updates.