UPnP Media Service

All Linn DS products include and are accessible using the UPnP AV MediaRenderer device profile.

In addition to this, Linn has developed a further UPnP Media Service, which more readily allows its DS products to be controlled by multiple control points.

The interface described here is implemented by Auskerry and Bute compatible products. However, the interface will change in upcoming Cara compatible releases.

Service Type

urn:linn-co-uk:service:Media:1

Actions

Pause

This action puts the media pipeline in to the "Paused" state.

PauseCodec

This action is for developer debugging.

Play

This action puts the media pipeline in to the "Play" state.

PlaylistDelete

This action deletes the specified range of tracks from the device playlist.

Argument Direction Type
aSeq IN uint
aIndex IN uint
aCount IN uint

The aSeq supplied must be the current sequence number.

PlaylistInsert

This action inserts n tracks at a specified index in the device playlist.

Argument Direction Type
aSeq IN uint
aIndex IN uint
aPlaylistData IN string

The aSeq supplied must be the current sequence number.

aPlaylistData is an XML string and should be of the form,

<PlaylistData>
  <Track>
    <Uri>URI TO TRACK</Uri>
    <MetaData>DIDL-Lite METADATA FOR TRACK</MetaData>
  </Track>
</PlaylistData>

PlaylistMove

This action has not been implemented.

PlaylistRead

This action returns the URI and metadata for the track range specified.

Argument Direction Type
aSeq IN uint
aIndex IN uint
aCount IN uint
aPlaylistData OUT string

The aSeq supplied must be the current sequence number.

aPlaylistData is an XML string and is of the form,

<PlaylistData>
  <Track>
    <Uri>URI TO TRACK</Uri>
    <MetaData>DIDL-Lite METADATA FOR TRACK</MetaData>
  </Track>
</PlaylistData>

PlaylistSequence

This action returns the current "Sequence" number of the device playlist.

Argument Direction Type
aSeq OUT uint

PlaylistTrackCount

This action returns the track count of the device playlist.

Argument Direction Type
aSeq IN uint
aTrackCount OUT uint

The aSeq supplied must be the current sequence number.

SeekSeconds

This action seeks to a particular time in the current track.

Argument Direction Type Allowed Values
aOffset IN int
aRelativity IN string Absolute, Relative

SeekTracks

This action seeks to a particular track in the device playlist.

Argument Direction Type Allowed Values
aOffset IN int
aRelativity IN string Absolute, Relative

Status

This action returns the status of the media pipeline.

Argument Direction Type Allowed Values
aTransportState OUT string Playing, Paused, Stoppped, Eop
aCurrentTrackIndex OUT int
aCurrentTrackSeconds OUT uint
aCurrentTrackDuration OUT uint
aCurrentTrackBitDepth OUT uint
aCurrentTrackSampleRate OUT uint

Stop

This action puts the media pipeline in to the "Stop" state.

Evented State Variables

CurrentTrackIndex

This event indicates the new track index.

PlaylistDelete

This event describes the delete operation that has occured on the device playlist.

The delete event is an XML string and is of the form,

<Delete>
  <Sequence>NEW SEQUENCE NUMBER</Sequence>
  <Index>START INDEX</Index>
  <Count>COUNT</Count>
</Delete>

PlaylistInsert

This event describes the insert operation that has occured on the device playlist.

The insert event is an XML string and is of the form,

<Insert>
  <Sequence>NEW SEQUENCE NUMBER</Sequence>
  <Index>START INDEX</Index>
  <Count>COUNT</Count>
</Insert>

PlaylistMove

This event is not implemented.

TransportState

This event indicates the new transport state

Limitations

The maximum number of tracks that the device can store is currently 1000.