blob: 3a3a4a7b8b7de55af2d8f5f7a457962b51c57647 [file] [log] [blame]
// 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;
};