From OpenHome

(Difference between revisions)
Jump to: navigation, search
(Created page with "= Network Services = ohMedia defines the following network services: * Product. The core of a renderer and the only mandatory service. The sta...")
(Topology)
Line 36: Line 36:
* discover source functionality based on source type
* discover source functionality based on source type
* discover additional functionality based on product attributes
* discover additional functionality based on product attributes
-
e.g. if we had two products, a pre-amp and a media renderer which were connected together then both their Product services would return the same room name and one of the source names returned by the pre-amp's Product service would be the same as the product name returned by the media renderer's Product service.
+
Example implementations of the Topology algorithm are available in C# and C++ from the [https://github.com/openhome/ohTopology ohTopology] github repo.
-
Example implementation of the Topology algorithm are available in C# and C++ from the [https://github.com/openhome/ohTopology ohTopology] github repo.
+

Revision as of 12:06, 12 July 2013

Contents

Network Services

ohMedia defines the following network services:

  • Product. The core of a renderer and the only mandatory service. The state of this service allows control points to infer which other services are present on a device. In more complex installations it allows devices to mapped into a multi-room hi-fi system
  • Playlist. An ordered list of tracks to be played.
  • Radio. Browse and select from a list of favourite internet radio, podcast and listen again presets.
  • Info. Report information about currently playing track.
  • Time. Report information about progress through a track.
  • Volume. Control volume on a renderer or a connected pre-amp.
  • Sender. Indicate presence and state of a Songcast sender.
  • Receiver. Control a Songcast receiver.
  • NetworkMonitor. Measures network performance.
  • PlaylistManager. Included in media servers. Allows playlists to be shared between renderers and saved for future reuse.

UPnP

All ohMedia products publish and/or consume network services using UPnP. This is enabled by ohNet - a cross-platform UPnP stack suitable for use in control points and devices. ohNet is stable and intended for external use.

Songcast

Songcast enables synchronised playing of audio from an unbounded number of ohMedia renderers. Audio can be sent from an ohMedia renderer or from a desktop computer using the Songcast application.

The ohSongcast github repo provides a cross-platform C++ library offering much of the code needed to write a songcast sender. The Songcast protocols are also documented:

Topology

ohMedia models a home as a number of hi-fi systems, which are located in rooms.

A hi-fi system is modelled as a hierarchical tree of products, where a product is defined as a single physical box that is located in a room, has a unique name within the room, has at least one output and any number of inputs.

A product is modelled through the Product service specification.

When a control point wants to construct a model of a user's home they use the Topology algorithm:

  • discover all the products in the home that have a Product service
  • group the discovered products based on the room they are in
  • create a hierarchical tree structure by matching source names to product names *
  • discover source functionality based on source type
  • discover additional functionality based on product attributes

Example implementations of the Topology algorithm are available in C# and C++ from the ohTopology github repo.