From OpenHome

Revision as of 13:22, 6 August 2013 by Johnh (Talk | contribs)
Jump to: navigation, search

Contents

Overview

The Info service provides information concerning the currently playing media. The information provided is based on the concept of a track, which has a URI and metadata in DIDL-Lite format. Some time after the track changes further information becomes available such as the bit-rate, sample-rate, bit-depth, etc. Optionally a track may contain dynamic textual information (known as metatext) that is updated as the track is played. Metatext is typically used to convey broadcast information from Internet radio stations.

Actions

Counters

Counters are used to version Track, Details, and Metatext information in the face of dynamic changes.

The Counters action can be used by clients that are unable to partake in UPnP eventing in order to track changes in the information provided by the Info Service.

When a track changes, the Track Count is incremented, the URI and Metadata are set, the Details Count is set to zero, the Details are defaulted to blank and zero values, the Metatext Count is set to zero, and the Metatext is set to blank.

Subsequent updates to the Details and Metatext are accompanied by increments in their respective Counters.

Track

Reports current track information concerning the current media:

  • URI
  • Metadata

Details

Reports details concerning the current media:

  • Duration
  • Bit Rate
  • Bit Depth
  • Sample Rate
  • Lossless
  • Codec Name

Metatext

Reports dynamic textual information concerning the current media.

This currently amounts to broadcast information from internet radio stations, but the same mechanism could be used for other purposes in the future.

Technical Details

   Domain  : av.openhome.org
   Name    : Info
   Version : 1

Info Service Description (XML)

<?xml version="1.0" encoding="utf-8"?>
<scpd xmlns="urn:schemas-upnp-org:service-1-0">
    <specVersion>
        <major>1</major>
        <minor>0</minor>
    </specVersion>
    <actionList>
        <action>
            <name>Counters</name>
            <argumentList>
                <argument>
                    <name>TrackCount</name>
                    <direction>out</direction>
                    <relatedStateVariable>TrackCount</relatedStateVariable>
                </argument>
                <argument>
                    <name>DetailsCount</name>
                    <direction>out</direction>
                    <relatedStateVariable>DetailsCount</relatedStateVariable>
                </argument>
                <argument>
                    <name>MetatextCount</name>
                    <direction>out</direction>
                    <relatedStateVariable>MetatextCount</relatedStateVariable>
                </argument>
            </argumentList>
        </action>
        <action>
            <name>Track</name>
            <argumentList>
                <argument>
                    <name>Uri</name>
                    <direction>out</direction>
                    <relatedStateVariable>Uri</relatedStateVariable>
                </argument>
                <argument>
                    <name>Metadata</name>
                    <direction>out</direction>
                    <relatedStateVariable>Metadata</relatedStateVariable>
                </argument>
            </argumentList>
        </action>
        <action>
            <name>Details</name>
            <argumentList>
                <argument>
                    <name>Duration</name>
                    <direction>out</direction>
                    <relatedStateVariable>Duration</relatedStateVariable>
                </argument>
                <argument>
                    <name>BitRate</name>
                    <direction>out</direction>
                    <relatedStateVariable>BitRate</relatedStateVariable>
                </argument>
                <argument>
                    <name>BitDepth</name>
                    <direction>out</direction>
                    <relatedStateVariable>BitDepth</relatedStateVariable>
                </argument>
                <argument>
                    <name>SampleRate</name>
                    <direction>out</direction>
                    <relatedStateVariable>SampleRate</relatedStateVariable>
                </argument>
                <argument>
                    <name>Lossless</name>
                    <direction>out</direction>
                    <relatedStateVariable>Lossless</relatedStateVariable>
                </argument>
                <argument>
                    <name>CodecName</name>
                    <direction>out</direction>
                    <relatedStateVariable>CodecName</relatedStateVariable>
                </argument>
            </argumentList>
        </action>
        <action>
            <name>Metatext</name>
            <argumentList>
                <argument>
                    <name>Value</name>
                    <direction>out</direction>
                    <relatedStateVariable>Metatext</relatedStateVariable>
                </argument>
            </argumentList>
        </action>
    </actionList>
    <serviceStateTable>
        <stateVariable sendEvents="yes">
            <name>TrackCount</name>
            <dataType>ui4</dataType>
        </stateVariable>
        <stateVariable sendEvents="yes">
            <name>DetailsCount</name>
            <dataType>ui4</dataType>
        </stateVariable>
        <stateVariable sendEvents="yes">
            <name>MetatextCount</name>
            <dataType>ui4</dataType>
        </stateVariable>
        <stateVariable sendEvents="yes">
          <name>Uri</name>
          <dataType>string</dataType>
        </stateVariable>
        <stateVariable sendEvents="yes">
          <name>Metadata</name>
          <dataType>string</dataType>
        </stateVariable>
        <stateVariable sendEvents="yes">
            <name>Duration</name>
            <dataType>ui4</dataType>
        </stateVariable>
        <stateVariable sendEvents="yes">
            <name>BitRate</name>
            <dataType>ui4</dataType>
        </stateVariable>
        <stateVariable sendEvents="yes">
            <name>BitDepth</name>
            <dataType>ui4</dataType>
        </stateVariable>
        <stateVariable sendEvents="yes">
            <name>SampleRate</name>
            <dataType>ui4</dataType>
        </stateVariable>
        <stateVariable sendEvents="yes">
            <name>Lossless</name>
            <dataType>boolean</dataType>
        </stateVariable>
        <stateVariable sendEvents="yes">
            <name>CodecName</name>
            <dataType>string</dataType>
        </stateVariable>
        <stateVariable sendEvents="yes">
          <name>Metatext</name>
          <dataType>string</dataType>
        </stateVariable>
   </serviceStateTable>
</scpd>