| // Copyright 2018 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| library fuchsia.media.sessions; |
| |
| using zx; |
| bits PlaybackCapabilityFlags:uint32 { |
| /// If set, the player can `Play()`. |
| PLAY = 0x1; |
| /// If set, the player can `Stop()`. |
| STOP = 0x2; |
| /// If set, the player can `Pause()`. |
| PAUSE = 0x4; |
| /// If set, the player can `SeekToPosition()`. |
| SEEK_TO_POSITION = 0x8; |
| /// If set, the player can `SkipForward()` on `supported_skip_intervals`. |
| SKIP_FORWARD = 0x10; |
| /// If set, the player can `SkipReverse()` on `supported_skip_intervals`. |
| SKIP_REVERSE = 0x20; |
| /// The intervals on which skipping can be performed in the media. |
| SHUFFLE = 0x40; |
| // If set, the player can `NextItem()` if there is a next item. |
| CHANGE_TO_NEXT_ITEM = 0x80; |
| // If set, the player can `PrevItem()` if there is a previous item. |
| CHANGE_TO_PREV_ITEM = 0x100; |
| /// If set, the player can `BindGainControl()`. |
| HAS_GAIN_CONTROL = 0x200; |
| /// If set, the player can provide bitmaps of its artwork. |
| PROVIDE_BITMAPS = 0x400; |
| }; |
| |
| /// `PlaybackCapabilities` enumerates the capabilities of the player backing |
| /// the media session, and correspond to the control commands they can execute. |
| table PlaybackCapabilities { |
| 1: PlaybackCapabilityFlags flags; |
| /// The intervals on which skipping can be performed in the media. |
| 2: vector<zx.duration> supported_skip_intervals; |
| /// The playback rates supported by the media. |
| 3: vector<float32> supported_playback_rates; |
| /// Supported repeat modes that can be set with `SetRepeatMode()`. |
| 4: vector<RepeatMode> supported_repeat_modes; |
| /// A set of names of custom extensions the player advertises. |
| 5: vector<string> custom_extensions; |
| }; |