mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-28 08:16:09 +03:00
74 lines
2.4 KiB
Plaintext
74 lines
2.4 KiB
Plaintext
|
// Copyright 2017 The Chromium Authors. All rights reserved.
|
||
|
// Use of this source code is governed by a BSD-style license that can be
|
||
|
// found in the LICENSE file.
|
||
|
|
||
|
module media_router.mojom;
|
||
|
|
||
|
import "mojo/public/mojom/base/time.mojom";
|
||
|
|
||
|
// Represents the current state of a media content. This struct should be kept
|
||
|
// free of details specific to Media Router, so that it can be moved to the
|
||
|
// media namespace and be reused for other features in the future.
|
||
|
struct MediaStatus {
|
||
|
enum PlayState {
|
||
|
PLAYING,
|
||
|
PAUSED,
|
||
|
BUFFERING
|
||
|
};
|
||
|
|
||
|
// The title of the currently playing media. For example, in a MediaStatus
|
||
|
// representing a YouTube Cast route, this is the title of the video.
|
||
|
// For a tab mirroring or media remoting route, it's the page title.
|
||
|
// For a Presentation API route, it is the presentation page title.
|
||
|
string title;
|
||
|
|
||
|
// If this is true, the media can be played and paused through its
|
||
|
// MediaController.
|
||
|
bool can_play_pause;
|
||
|
|
||
|
// If this is true, the media can be muted and unmuted through its
|
||
|
// MediaController.
|
||
|
bool can_mute;
|
||
|
|
||
|
// If this is true, the media's volume can be changed through its
|
||
|
// MediaController.
|
||
|
bool can_set_volume;
|
||
|
|
||
|
// If this is true, the media's current playback position can be changed
|
||
|
// through its MediaController.
|
||
|
bool can_seek;
|
||
|
|
||
|
// Whether the media is playing, paused, or buffering.
|
||
|
PlayState play_state;
|
||
|
|
||
|
bool is_muted;
|
||
|
|
||
|
// Current volume of the media, with 1 being the highest and 0 being the
|
||
|
// lowest/no sound. When |is_muted| is true, there should be no sound
|
||
|
// regardless of |volume|.
|
||
|
float volume;
|
||
|
|
||
|
// The length of the media. A value of 0 indicates that this is a media with
|
||
|
// no set duration (e.g. a live stream).
|
||
|
mojo_base.mojom.TimeDelta duration;
|
||
|
|
||
|
// Current playback position. Must be less than or equal to |duration|.
|
||
|
mojo_base.mojom.TimeDelta current_time;
|
||
|
|
||
|
// Only set for Hangouts routes.
|
||
|
HangoutsMediaStatusExtraData? hangouts_extra_data;
|
||
|
};
|
||
|
|
||
|
struct HangoutsMediaStatusExtraData {
|
||
|
// Whether local present mode (aka "smooth motion") is on.
|
||
|
bool local_present;
|
||
|
};
|
||
|
|
||
|
// Interface for being notified whenever the MediaStatus of a media changes.
|
||
|
// This interface should be kept free of details specific to Media Router, so
|
||
|
// that it can be moved to the media namespace and be reused for other features
|
||
|
// in the future.
|
||
|
interface MediaStatusObserver {
|
||
|
OnMediaStatusUpdated(MediaStatus status);
|
||
|
};
|