| // 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.mediasession; |
| |
| using zx; |
| |
| /// |PlaybackCapabilities| enumerates the capabilities of the player backing |
| /// the media session, and correspond to the control commands they can execute. |
| struct PlaybackCapabilities { |
| /// If set, the player can |Play()|. |
| bool can_play; |
| /// If set, the player can |Stop()|. |
| bool can_stop; |
| /// If set, the player can |Pause()|. |
| bool can_pause; |
| /// If set, the player can |SeekToPosition()|. |
| bool can_seek_to_position; |
| /// If set, the player can |SkipForward()| on |supported_skip_intervals|. |
| bool can_skip_forward; |
| /// If set, the player can |SkipReverse()| on |supported_skip_intervals|. |
| bool can_skip_reverse; |
| /// The intervals on which skipping can be performed in the media. |
| vector<zx.duration> supported_skip_intervals; |
| /// The playback rates supported by the media. |
| vector<float32> supported_playback_rates; |
| |
| /// If set, the player can |SetShuffleMode()|. |
| bool can_shuffle; |
| /// Supported repeat modes that can be set with |SetRepeatMode()|. |
| vector<RepeatMode> supported_repeat_mode; |
| |
| // If set, the player can |NextItem()| if there is a next item. |
| bool can_change_to_next_item; |
| // If set, the player can |PrevItem()| if there is a previous item. |
| bool can_change_to_prev_item; |
| |
| /// A set of names of custom extensions the player advertises. |
| vector<string> custom_extensions; |
| |
| /// If set, the player can |BindGainControl()|. |
| bool has_gain_control; |
| }; |