diff options
Diffstat (limited to 'chromium/content/public/browser/media_controller.h')
-rw-r--r-- | chromium/content/public/browser/media_controller.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/chromium/content/public/browser/media_controller.h b/chromium/content/public/browser/media_controller.h new file mode 100644 index 00000000000..707a109e469 --- /dev/null +++ b/chromium/content/public/browser/media_controller.h @@ -0,0 +1,44 @@ +// Copyright 2018 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. + +#ifndef CONTENT_PUBLIC_BROWSER_MEDIA_CONTROLLER_H_ +#define CONTENT_PUBLIC_BROWSER_MEDIA_CONTROLLER_H_ + +#include "base/time/time.h" + +namespace content { + +// High level interface that allows a controller to issue simple media commands. +// Modeled after the media_router.mojom.MediaController interface. +// State changes will be signaled via the MediaStatusObserver interface. +// TODO(tguilbert): Add MediaStatusObserver interface. +class MediaController { + public: + virtual ~MediaController() = default; + + // Starts playing the media if it is paused. Is a no-op if not supported by + // the media or the media is already playing. + virtual void Play() = 0; + + // Pauses the media if it is playing. Is a no-op if not supported by the media + // or the media is already paused. + virtual void Pause() = 0; + + // Mutes the media if |mute| is true, and unmutes it if false. Is a no-op if + // not supported by the media. + virtual void SetMute(bool mute) = 0; + + // Changes the current volume of the media, with 1 being the highest and 0 + // being the lowest/no sound. Does not change the (un)muted state of the + // media. Is a no-op if not supported by the media. + virtual void SetVolume(float volume) = 0; + + // Sets the current playback position. |time| must be less than or equal to + // the duration of the media. Is a no-op if the media doesn't support seeking. + virtual void Seek(base::TimeDelta time) = 0; +}; + +} // namespace content + +#endif // CONTENT_PUBLIC_BROWSER_MEDIA_CONTROLLER_H_ |