Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1070)

Unified Diff: chrome/browser/media/router/mojo/media_route_controller.h

Issue 2724513002: (Not for review) Dummy C++ side Custom Controls implementation (Closed)
Patch Set: . Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/media/router/mojo/media_route_controller.h
diff --git a/chrome/browser/media/router/mojo/media_route_controller.h b/chrome/browser/media/router/mojo/media_route_controller.h
new file mode 100644
index 0000000000000000000000000000000000000000..2d0e1d03edf32c1acca8240a9178fab330e88580
--- /dev/null
+++ b/chrome/browser/media/router/mojo/media_route_controller.h
@@ -0,0 +1,53 @@
+// 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.
+
+#ifndef CHROME_BROWSER_MEDIA_ROUTER_MOJO_MEDIA_ROUTE_CONTROLLER_H_
+#define CHROME_BROWSER_MEDIA_ROUTER_MOJO_MEDIA_ROUTE_CONTROLLER_H_
+
+#include "chrome/browser/media/router/media_route.h"
+#include "chrome/browser/media/router/mojo/media_controller.mojom.h"
+#include "chrome/browser/media/router/mojo/media_status.mojom.h"
+#include "mojo/public/cpp/bindings/binding.h"
+
+namespace media_router {
+
+namespace mojom {
+class MediaRouteProvider;
+}
+
+class MediaRouteStatusObserver;
+
+class MediaRouteController : public mojom::MediaStatusObserver {
+ public:
+ MediaRouteController(MediaRoute::Id route_id,
+ mojom::MediaRouteProvider* provider,
+ base::Callback<void()> destroyer_callback);
+ ~MediaRouteController() override;
+
+ void OnControllerSet(bool success);
+
+ void Play();
+ void Pause();
+ void Seek(uint32_t time);
+ void SetMute(bool mute);
+ void SetVolume(float volume);
+
+ void AddObserver(MediaRouteStatusObserver* observer);
+ void RemoveObserver(MediaRouteStatusObserver* observer);
+
+ // mojom::MediaStatusObserver:
+ void OnMediaStatusUpdated(mojom::MediaStatusPtr mojo_status) override;
+
+ void OnDummyMediaStatusUpdated();
+
+ private:
+ base::Callback<void()> destroyer_callback_;
+ mojom::MediaControllerPtr media_controller_;
+ std::unique_ptr<mojo::Binding<mojom::MediaStatusObserver>> binding_;
+ std::unordered_set<MediaRouteStatusObserver*> observers_;
+};
+
+} // namespace media_router
+
+#endif // CHROME_BROWSER_MEDIA_ROUTER_MOJO_MEDIA_ROUTE_CONTROLLER_H_
« no previous file with comments | « chrome/browser/media/router/mojo/media_controller.mojom ('k') | chrome/browser/media/router/mojo/media_route_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698