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.
