Developer:Davaar

From LinnDocs
Revision as of 16:59, 17 November 2010 by Eamonnb (talk | contribs) (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 …')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Davaar Developer Documentation

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.

Cara 10

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:

  • Radio metatext

This feature is exposed in the Metatext action of the Info service (new as of Cara 6):

Cara 6

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 6. However, they clearly will not support the new features.

From a developers perspective, Cara 6 adds support for:

  • Internet radio via a new Radio source
  • 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:

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
  • 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 Preamp service have been moved to the 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 here.

Simplified Media Services

The Media service on Bute has been split and redesigned into the Ds and Playlist services. The Ds service handles transport state and control such as Play, Pause, Stop, Seek. The 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 here.

New MediaTime Service

The 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 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.

Multiple Sources

There are two types of device that bear the 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.

See Topology for more concerning this change

Additional Features

A Ds source now provides an additional 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.

DS products now support playback of AAC media.

Services

Algorithms

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.

Required Workarounds

  • None