Chromium Code Reviews| Index: chrome/browser/media/router/media_router_mojo_impl.h |
| diff --git a/chrome/browser/media/router/media_router_mojo_impl.h b/chrome/browser/media/router/media_router_mojo_impl.h |
| index 2b8904c7e8bd3bc731afc605fb8a14b2f247bdb4..4f7fcf4fbb86c7a3c3486c1aa51946d85930f698 100644 |
| --- a/chrome/browser/media/router/media_router_mojo_impl.h |
| +++ b/chrome/browser/media/router/media_router_mojo_impl.h |
| @@ -74,6 +74,12 @@ class MediaRouterMojoImpl : public MediaRouterBase, |
| const GURL& origin, |
| content::WebContents* web_contents, |
| const std::vector<MediaRouteResponseCallback>& callbacks) override; |
| + void JoinRouteByRouteId( |
| + const MediaSource::Id& source, |
| + const MediaRoute::Id& route_id, |
| + const GURL& origin, |
| + content::WebContents* web_contents, |
| + const std::vector<MediaRouteResponseCallback>& callbacks) override; |
| void CloseRoute(const MediaRoute::Id& route_id) override; |
| void SendRouteMessage(const MediaRoute::Id& route_id, |
| const std::string& message, |
| @@ -136,7 +142,9 @@ class MediaRouterMojoImpl : public MediaRouterBase, |
| ~MediaRouterMediaRoutesObserver() override; |
| // media_router::MediaRoutesObserver: |
| - void OnRoutesUpdated(const std::vector<media_router::MediaRoute>& routes) |
| + void OnRoutesUpdated( |
| + const std::vector<media_router::MediaRoute>& routes, |
| + const std::vector<media_router::MediaRoute::Id>& joinable_route_ids) |
| override; |
| private: |
| @@ -159,6 +167,18 @@ class MediaRouterMojoImpl : public MediaRouterBase, |
| DISALLOW_COPY_AND_ASSIGN(MediaSinksQuery); |
| }; |
| + struct MediaRoutesQuery { |
| + public: |
| + MediaRoutesQuery(); |
| + ~MediaRoutesQuery(); |
| + |
| + // True if the query has been sent to the MRPM. False otherwise. |
| + bool is_active = false; |
| + base::ObserverList<MediaRoutesObserver> observers; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(MediaRoutesQuery); |
| + }; |
| + |
| // Standard constructor, used by |
| // MediaRouterMojoImplFactory::GetApiForBrowserContext. |
| explicit MediaRouterMojoImpl( |
| @@ -224,8 +244,8 @@ class MediaRouterMojoImpl : public MediaRouterBase, |
| void DoOnPresentationSessionDetached(const MediaRoute::Id& route_id); |
| void DoStartObservingMediaSinks(const MediaSource::Id& source_id); |
| void DoStopObservingMediaSinks(const MediaSource::Id& source_id); |
| - void DoStartObservingMediaRoutes(); |
| - void DoStopObservingMediaRoutes(); |
| + void DoStartObservingMediaRoutes(const MediaSource::Id& source_id); |
| + void DoStopObservingMediaRoutes(const MediaSource::Id& source_id); |
| // Invoked when the next batch of messages arrives. |
| // |route_id|: ID of route of the messages. |
| @@ -247,7 +267,9 @@ class MediaRouterMojoImpl : public MediaRouterBase, |
| void OnIssue(interfaces::IssuePtr issue) override; |
| void OnSinksReceived(const mojo::String& media_source, |
| mojo::Array<interfaces::MediaSinkPtr> sinks) override; |
| - void OnRoutesUpdated(mojo::Array<interfaces::MediaRoutePtr> routes) override; |
| + void OnRoutesUpdated(const mojo::String& media_source, |
| + mojo::Array<interfaces::MediaRoutePtr> routes, |
| + mojo::Array<mojo::String> joinable_route_ids) override; |
| void OnSinkAvailabilityUpdated( |
| interfaces::MediaRouter::SinkAvailability availability) override; |
| void OnPresentationConnectionStateChanged( |
| @@ -295,9 +317,10 @@ class MediaRouterMojoImpl : public MediaRouterBase, |
| base::ScopedPtrHashMap<MediaSource::Id, scoped_ptr<MediaSinksQuery>> |
| sinks_queries_; |
| - base::ObserverList<LocalMediaRoutesObserver> local_routes_observers_; |
| + base::ScopedPtrHashMap<MediaSource::Id, scoped_ptr<MediaRoutesQuery>> |
|
mark a. foltz
2015/12/03 19:24:23
Why do we need this map and |local_routes_observer
matt.boetger
2015/12/15 19:21:20
|local_routes_observers| only deals with local, di
|
| + routes_queries_; |
| - base::ObserverList<MediaRoutesObserver> routes_observers_; |
| + base::ObserverList<LocalMediaRoutesObserver> local_routes_observers_; |
| using PresentationSessionMessagesObserverList = |
| base::ObserverList<PresentationSessionMessagesObserver>; |