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

Unified Diff: chrome/browser/ui/webui/media_router/media_router_ui.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/ui/webui/media_router/media_router_ui.h
diff --git a/chrome/browser/ui/webui/media_router/media_router_ui.h b/chrome/browser/ui/webui/media_router/media_router_ui.h
index c2d1dca6bb142f6f89d2a255b89ec4e9d4ee6c49..d59d9cc1988c2bbfb1a6a719efb3278478f1c1d4 100644
--- a/chrome/browser/ui/webui/media_router/media_router_ui.h
+++ b/chrome/browser/ui/webui/media_router/media_router_ui.h
@@ -13,8 +13,10 @@
#include "base/gtest_prod_util.h"
#include "base/macros.h"
#include "base/memory/weak_ptr.h"
+#include "base/optional.h"
#include "base/timer/timer.h"
#include "chrome/browser/media/router/issue.h"
+#include "chrome/browser/media/router/media_route_status_observer.h"
#include "chrome/browser/media/router/media_source.h"
#include "chrome/browser/media/router/presentation_service_delegate_impl.h"
#include "chrome/browser/ui/webui/constrained_web_dialog_ui.h"
@@ -164,6 +166,20 @@ class MediaRouterUI : public ConstrainedWebDialogUI,
void UpdateMaxDialogHeight(int height);
+ // Sends media commands to |route_controller_| if it is set.
+ void PlayRoute();
+ void PauseRoute();
+ void SeekRoute(uint32_t time);
+ void SetRouteMute(bool mute);
+ void SetRouteVolume(float volume);
+
+ // Gets a reference to the MediaRouteController for |route_id| and
+ // instantiates an observer for media status updates for the route.
+ void OnUIDetailsViewOpened(MediaRoute::Id route_id);
+
+ // Resets |route_controller_| and |route_status_observer_|.
+ void OnUIDetailsViewClosed();
+
void InitForTest(MediaRouter* router,
content::WebContents* initiator,
MediaRouterWebUIMessageHandler* handler,
@@ -212,6 +228,20 @@ class MediaRouterUI : public ConstrainedWebDialogUI,
DISALLOW_COPY_AND_ASSIGN(UIMediaRoutesObserver);
};
+ class UIMediaRouteStatusObserver : public MediaRouteStatusObserver {
+ public:
+ UIMediaRouteStatusObserver(MediaRouterWebUIMessageHandler* handler);
+ ~UIMediaRouteStatusObserver() override;
+
+ // MediaRouteStatusObserver
+ void OnMediaRouteStatusUpdated(const MediaStatus& status) override;
+
+ private:
+ MediaRouterWebUIMessageHandler* handler_;
+
+ DISALLOW_COPY_AND_ASSIGN(UIMediaRouteStatusObserver);
+ };
+
static std::string GetExtensionName(const GURL& url,
extensions::ExtensionRegistry* registry);
@@ -291,6 +321,9 @@ class MediaRouterUI : public ConstrainedWebDialogUI,
// opaque origin ("null") if |initiator_| is not set.
std::string GetSerializedInitiatorOrigin() const;
+ // Returns true if |routes_| contains a route with |route_id|.
+ bool IsValidRouteId(const MediaRoute::Id& route_id) const;
+
// Owned by the |web_ui| passed in the ctor, and guaranteed to be deleted
// only after it has deleted |this|.
MediaRouterWebUIMessageHandler* handler_ = nullptr;
@@ -348,6 +381,16 @@ class MediaRouterUI : public ConstrainedWebDialogUI,
// been painted and initialized with initial data, this should be cleared.
base::Time start_time_;
+ // The ID of the media route shown in the route details view.
+ base::Optional<MediaRoute::Id> selected_route_;
+
+ // The media controller for |selected_route_|.
+ MediaRouteController* route_controller_ = nullptr;
+
+ // The observer for the media status of |selected_route_| that notifies
+ // |handler_| of updates.
+ std::unique_ptr<UIMediaRouteStatusObserver> route_status_observer_;
+
// NOTE: Weak pointers must be invalidated before all other member variables.
// Therefore |weak_factory_| must be placed at the end.
base::WeakPtrFactory<MediaRouterUI> weak_factory_;
« no previous file with comments | « chrome/browser/media/router/mojo/media_status.mojom ('k') | chrome/browser/ui/webui/media_router/media_router_ui.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698