Professional Documents
Culture Documents
Legal Notice
This is a preliminary document and may be changed substantially prior to final commercial release of the
software described herein.
The information contained in this document represents the current view of Microsoft Corporation on the
issues discussed as of the date of publication. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot
guarantee the accuracy of any information presented after the date of publication.
This White Paper is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR
IMPLIED, AS TO THE INFORMATION IN THIS DOCUMENT.
Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights
under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval
system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or
otherwise), or for any purpose, without the express written permission of Microsoft Corporation.
Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property
rights covering subject matter in this document. Except as expressly provided in any written license
agreement from Microsoft, the furnishing of this document does not give you any license to these patents,
trademarks, copyrights, or other intellectual property.
2005 Microsoft Corporation. All rights reserved.
Microsoft, MS-DOS, Windows, Windows Media, Windows NT, Windows Server, Windows Vista, Active
Directory, ActiveSync, ActiveX, Direct3D, DirectDraw, DirectInput, DirectMusic, DirectPlay, DirectShow,
DirectSound, DirectX, FrontPage, HighMAT, JScript, Microsoft Press, MSN, NetShow, Outlook, PlaysForSure
logo, PowerPoint, Visual Basic, Visual C++, Visual InterDev, Visual J++, Visual Studio, WebTV, Win32,
and Win32s are either registered trademarks or trademarks of Microsoft Corporation in the U.S.A. and/or
other countries.
All other trademarks are property of their respective owners.
Some of the links in this document might let you leave Microsoft's site. The linked sites are not under the
control of Microsoft and Microsoft is not responsible for the contents of any linked site or any link
contained in a linked site, or any changes or updates to such sites. Microsoft is not responsible for
webcasting or any other form of transmission received from any linked site. Microsoft is providing these
links to you only as a convenience, and the inclusion of any link does not imply endorsement by Microsoft
of the site.
Table of Contents
Table of Contents..................................................................................................1
Playback control scenarios.................................................................................1
Suggested playback control implementation....................................................2
Overview.........................................................................................................................2
Playback control device properties............................................................................3
A.1.1. Volume.............................................................................................................3
A.1.2. Playback Rate.................................................................................................3
A.1.3. Playback Object.............................................................................................3
A.1.4. Playback Container Index.............................................................................4
A.1.5. Playback Position...........................................................................................4
Playback Control Operations......................................................................................5
A.1.6. Skip...................................................................................................................5
Mapping of scenarios onto MTP Playback Controls.........................................6
Scenarios not addressed at this time.................................................................7
In addition, there is one set of operations (forward & backward skip) which relies on
information which may not be practical to expose to a controlling initiator. This will be
implemented using an operation, which provides multi-parameter control.
Skip
This identifies (and is used to set) the current volume of the device, and is an unsigned
32-bit integer. The allowed values of this property device should be identified by a range
form defined in the DevicePropDesc dataset defining this property. Values for this
property are always based at 0, and a value of 0 indicates that the device is muted.
DevicePropCode = 0xD403
Datatype: INT32
DescForms: Range
Get/Set: Get/Set
This identifies the current speed of playback, identified linearly. It is a signed 32-bit
integer, which identifies the speed in thousandths. Thus, a value of 1000 indicates that
the playback should proceed at full speed. A value of 500 indicates that playback should
be at half-speed. A value of -1000 indicates that playback should be in reverse at full
speed. A value of 0 indicates that the device is paused.
DevicePropCode = 0xD410
Datatype: INT32
DescForms: Enum
Get/Set: Get/Set
This identifies the object currently being played back on the device, identified by Object
Handle. This property has two special values. A value of 0x00000000 indicates that the
device is currently stopped, and no media file is being consumed.
Devices which support playlist or album objects should allow this property to contain a
handle of an album or playlist. If a device supports these object types, as well as
playback control, it must also support the Playback Container Index Device Property. If
this property contains an album or playlist object, it indicates that the device is currently
playing back the contents of that album or playlist.
Whenever the object being played back is updated on the device (due to the previous
object finishing playback, user input on the device, or active control on another active
session) the device should indicate this by initiating a DevicePropChanged event for this
property.
DevicePropCode = 0xD411
Datatype: UINT32
DescForms: None
Get/Set: Get/Set
When playing content, the Playback Object device property may contain a container
object (album, playlist, etc.) rather than the actual object being consumed. In this case,
it is important to expose the specific object in that playback container which is being
consumed. The object being played should be identified by its index within Object
References array of that playback container, and that index is contained in this property.
Recall that arrays in MTP are zero-based (so a value of 0x00000000 in this property
indicates that the first ObjectHandle in the Object References array is being consumed).
If the Playback Object does not represent a container object, or the object being played
back is not an object referenced by the object whose object handle is in the Playback
Object device property, then this property must contain a value of 0xFFFFFFFF.
DevicePropCode = 0xD412
Datatype: UINT32
DescForms: None
Get/Set: Get/Set
This identifies the current time offset of the object currently being played back in
milliseconds. During playback, this property will change frequently, and those changes
should not result in DevicePropChanged events unless they are caused by actions
external to both the current session and the regular playback of the object.
DevicePropCode = 0xD413
Datatype: UINT32
DescForms: None
Get/Set: Get/Set
This operation updates the current object being played back by skipping either ahead or
behind in a device-specific ordering of objects (the ordering is defined by the device for
its own independent playback of objects). This operation requires one parameter,
containing a signed INT32 value, which indicates the depth and direction into the
playback queue to which the current playback object should skip.
A value of 1 indicates that the device should skip ahead one media object to the object
immediately following the object currently identified by the Playback Object (and
optionally Playback Container Object if the Playback Object is a container). A value of -1
indicates that the previous object in the device playback queue should be loaded as the
current playback object. If a device supports this operation, it must at least support
values of [-1,1]. If a value not supported by device is passed in this parameter, and the
device is incapable of interpreting it, a response code of Invalid_Parameter should be
returned. If a value of 0 is passed in this parameter, the responder should fail this
operation with a response code of Invalid_Parameter.