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

Unified Diff: chrome/browser/media/router/media_router_mojo_impl.h

Issue 1415103006: Non-Local Join for Media Router and Presentation API (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added Unit Tests Created 5 years, 1 month 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/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 054223da4ddcf37223a19fb30ab4025eb6e959cb..a393f7c5fcc460d13e7b64d97553ce7521a8f2e3 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 MediaRouter,
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,
@@ -131,11 +137,14 @@ class MediaRouterMojoImpl : public MediaRouter,
class MediaRouterMediaRoutesObserver :
public media_router::MediaRoutesObserver {
public:
- explicit MediaRouterMediaRoutesObserver(MediaRouterMojoImpl* router);
+ explicit MediaRouterMediaRoutesObserver(MediaRouterMojoImpl* router,
+ const MediaSource::Id source_id = std::string(""));
imcheng 2015/11/19 18:55:08 |source_id| is not needed?
matt.boetger 2015/11/24 19:45:23 Done.
~MediaRouterMediaRoutesObserver() override;
// media_router::MediaRoutesObserver:
- void OnRoutesUpdated(const std::vector<media_router::MediaRoute>& routes)
+ void OnRoutesUpdated(const MediaSource::Id source_id,
+ const std::vector<media_router::MediaRoute>& routes,
+ const std::vector<media_router::MediaRoute>& joinable_routes)
override;
private:
@@ -158,6 +167,18 @@ class MediaRouterMojoImpl : public MediaRouter,
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(
@@ -223,8 +244,8 @@ class MediaRouterMojoImpl : public MediaRouter,
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.
@@ -246,7 +267,9 @@ class MediaRouterMojoImpl : public MediaRouter,
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<interfaces::MediaRoutePtr> joinable_routes) override;
void OnSinkAvailabilityUpdated(
interfaces::MediaRouter::SinkAvailability availability) override;
@@ -283,9 +306,10 @@ class MediaRouterMojoImpl : public MediaRouter,
base::ScopedPtrHashMap<MediaSource::Id, scoped_ptr<MediaSinksQuery>>
sinks_queries_;
- base::ObserverList<LocalMediaRoutesObserver> local_routes_observers_;
+ base::ScopedPtrHashMap<MediaSource::Id, scoped_ptr<MediaRoutesQuery>>
+ routes_queries_;
- base::ObserverList<MediaRoutesObserver> routes_observers_;
+ base::ObserverList<LocalMediaRoutesObserver> local_routes_observers_;
using PresentationSessionMessagesObserverList =
base::ObserverList<PresentationSessionMessagesObserver>;

Powered by Google App Engine
This is Rietveld 408576698