summaryrefslogtreecommitdiff
path: root/chromium/content/public/browser/media_controller.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/content/public/browser/media_controller.h')
-rw-r--r--chromium/content/public/browser/media_controller.h44
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_