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

Unified Diff: chrome/browser/ui/webui/media_router/media_router_ui.h

Issue 2040873002: [Media Router] Assign each route a current cast mode if possible (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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 50804a91e1c7e340a5f2c96ba99c276853cb3abd..3b7a7ae248d86ecb9110947ab0707c20d90aceeb 100644
--- a/chrome/browser/ui/webui/media_router/media_router_ui.h
+++ b/chrome/browser/ui/webui/media_router/media_router_ui.h
@@ -137,6 +137,10 @@ class MediaRouterUI : public ConstrainedWebDialogUI,
return joinable_route_ids_;
}
const std::set<MediaCastMode>& cast_modes() const { return cast_modes_; }
+ const std::unordered_map<MediaRoute::Id, MediaCastMode>& current_cast_modes()
+ const {
+ return current_cast_modes_;
+ }
const content::WebContents* initiator() const { return initiator_; }
// Marked virtual for tests.
@@ -159,6 +163,12 @@ class MediaRouterUI : public ConstrainedWebDialogUI,
UIMediaRoutesObserverFiltersNonDisplayRoutes);
FRIEND_TEST_ALL_PREFIXES(MediaRouterUITest,
UIMediaRoutesObserverFiltersNonDisplayJoinableRoutes);
+ FRIEND_TEST_ALL_PREFIXES(MediaRouterUITest,
+ UIMediaRoutesObserverAssignsCurrentCastModes);
+ FRIEND_TEST_ALL_PREFIXES(MediaRouterUITest,
+ UIMediaRoutesObserverSkipsUnavailableCastModes);
+ FRIEND_TEST_ALL_PREFIXES(MediaRouterUITest,
+ UIMediaRoutesObserverFiltersNonDisplayJoinableRoutes);
FRIEND_TEST_ALL_PREFIXES(MediaRouterUITest, GetExtensionNameExtensionPresent);
FRIEND_TEST_ALL_PREFIXES(MediaRouterUITest,
GetExtensionNameEmptyWhenNotInstalled);
@@ -172,11 +182,17 @@ class MediaRouterUI : public ConstrainedWebDialogUI,
class UIMediaRoutesObserver : public MediaRoutesObserver {
public:
- using RoutesUpdatedCallback =
- base::Callback<void(const std::vector<MediaRoute>&,
- const std::vector<MediaRoute::Id>&)>;
- UIMediaRoutesObserver(MediaRouter* router, const MediaSource::Id& source_id,
- const RoutesUpdatedCallback& callback);
+ using RoutesUpdatedCallback = base::Callback<void(
+ const std::vector<MediaRoute>&,
+ const std::vector<MediaRoute::Id>&,
+ const std::unordered_map<MediaRoute::Id, MediaCastMode>&)>;
+ using SourceCastModeMapCallback =
+ base::Callback<std::unordered_map<MediaSource::Id, MediaCastMode>()>;
+ UIMediaRoutesObserver(
+ MediaRouter* router,
+ const MediaSource::Id& source_id,
+ const SourceCastModeMapCallback& source_cast_mode_callback,
+ const RoutesUpdatedCallback& callback);
~UIMediaRoutesObserver() override;
// MediaRoutesObserver
@@ -185,7 +201,8 @@ class MediaRouterUI : public ConstrainedWebDialogUI,
const std::vector<MediaRoute::Id>& joinable_route_ids) override;
private:
- // Callback to the owning MediaRouterUI instance.
+ // Callbacks to the owning MediaRouterUI instance.
+ SourceCastModeMapCallback source_cast_mode_callback_;
RoutesUpdatedCallback callback_;
DISALLOW_COPY_AND_ASSIGN(UIMediaRoutesObserver);
@@ -203,9 +220,15 @@ class MediaRouterUI : public ConstrainedWebDialogUI,
// Ignored if the UI is not yet initialized.
void SetIssue(const Issue* issue);
+ // Called by |routes_observer_| to get an updated map from media sources to
+ // their current cast mode.
+ std::unordered_map<MediaSource::Id, MediaCastMode> GetAvailableSourceMap();
+
// Called by |routes_observer_| when the set of active routes has changed.
void OnRoutesUpdated(const std::vector<MediaRoute>& routes,
- const std::vector<MediaRoute::Id>& joinable_route_ids);
+ const std::vector<MediaRoute::Id>& joinable_route_ids,
+ const std::unordered_map<MediaRoute::Id, MediaCastMode>&
+ current_cast_modes);
// Callback passed to MediaRouter to receive response to route creation
// requests.
@@ -283,6 +306,7 @@ class MediaRouterUI : public ConstrainedWebDialogUI,
std::vector<MediaRoute> routes_;
std::vector<MediaRoute::Id> joinable_route_ids_;
CastModeSet cast_modes_;
+ std::unordered_map<MediaRoute::Id, MediaCastMode> current_cast_modes_;
std::unique_ptr<QueryResultManager> query_result_manager_;
« no previous file with comments | « chrome/browser/resources/media_router/media_router_data.js ('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