Difference between revisions of "Developer:Davaar"

From LinnDocs
Jump to: navigation, search
(Davaar 1)
m
 
(70 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.
  
Davaar  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.
  
 +
Davaar contains two new headline features:
  
== Davaar 1 ==
+
* Openhome compatibility
 +
* Sender/Receiver support
  
Davaar 1 develops upon some of the ideas that began to become established in Cara. It differs from Cara...
+
=== 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.
  
=== Simplified Topology ===
+
=== Sender/Receiver support ===
  
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.
+
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.
  
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]].
+
== Services ==
  
With Cara the cross-platform Linn Topology layer matures into a library of code that can and should be used by external developers.
+
A detailed description of the OpenHome services can be found on the [http://wiki.openhome.org/wiki/Oh:Overview OpenHome website]
  
However, for those developers not using a Common or Dynamic Language Runtime, the recommended Topology algorithms are described [[Developer:Cara:Topology|here]].<br>
+
== Algorithms ==
  
=== Simplified Media Services<br> ===
+
* [[Developer:Davaar:Topology|Topology]]
  
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]].
+
* [[Developer:Davaar:PlaylistService#IdArray|Id Array]]
  
=== New MediaTime Service<br> ===
+
* [[Developer:Davaar:SenderService#Connecting|Connecting Senders/Receivers]]
  
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 ===
+
= Davaar 1 =
  
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.
+
<!--== Pre-requisites ==
  
=== Multiple Sources<br> ===
+
You will require [[Multicast_Filtering| Multicast Filtering]] (IGMP snooping) on your network for full sender/receiver functionality-->
 
 
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>
 
 
 
See [[Developer:Cara:Topology|Topology]] for more concerning this change<br>
 
 
 
=== Additional Features<br> ===
 
 
 
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.
 
 
 
The on-device playlist in a DS can now be placed into shuffle and repeat modes.
 
 
 
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.