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

Side by Side Diff: chrome/browser/media/android/router/media_router_android.cc

Issue 1415103006: Non-Local Join for Media Router and Presentation API (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Review Fixes 2 Created 5 years 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/media/android/router/media_router_android.h" 5 #include "chrome/browser/media/android/router/media_router_android.h"
6 6
7 #include "base/android/context_utils.h" 7 #include "base/android/context_utils.h"
8 #include "base/android/jni_android.h" 8 #include "base/android/jni_android.h"
9 #include "base/android/jni_array.h" 9 #include "base/android/jni_array.h"
10 #include "base/android/jni_string.h" 10 #include "base/android/jni_string.h"
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 env, 98 env,
99 java_media_router_.obj(), 99 java_media_router_.obj(),
100 jsource_id.obj(), 100 jsource_id.obj(),
101 jsink_id.obj(), 101 jsink_id.obj(),
102 jpresentation_id.obj(), 102 jpresentation_id.obj(),
103 jorigin.obj(), 103 jorigin.obj(),
104 tab_id, 104 tab_id,
105 route_request_id); 105 route_request_id);
106 } 106 }
107 107
108 void MediaRouterAndroid::JoinRouteByRouteId(
109 const MediaSource::Id& source,
110 const MediaRoute::Id& route_id,
111 const GURL& origin,
112 content::WebContents* web_contents,
113 const std::vector<MediaRouteResponseCallback>& callbacks) {
114 NOTIMPLEMENTED();
115 }
116
108 void MediaRouterAndroid::JoinRoute( 117 void MediaRouterAndroid::JoinRoute(
109 const MediaSource::Id& source_id, 118 const MediaSource::Id& source_id,
110 const std::string& presentation_id, 119 const std::string& presentation_id,
111 const GURL& origin, 120 const GURL& origin,
112 content::WebContents* web_contents, 121 content::WebContents* web_contents,
113 const std::vector<MediaRouteResponseCallback>& callbacks) { 122 const std::vector<MediaRouteResponseCallback>& callbacks) {
114 if (!origin.is_valid()) { 123 if (!origin.is_valid()) {
115 for (const MediaRouteResponseCallback& callback : callbacks) 124 for (const MediaRouteResponseCallback& callback : callbacks)
116 callback.Run(nullptr, "", "Invalid origin"); 125 callback.Run(nullptr, "", "Invalid origin");
117 return; 126 return;
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 ScopedJavaLocalRef<jstring> jsource_id = 262 ScopedJavaLocalRef<jstring> jsource_id =
254 base::android::ConvertUTF8ToJavaString(env, source_id); 263 base::android::ConvertUTF8ToJavaString(env, source_id);
255 Java_ChromeMediaRouter_stopObservingMediaSinks( 264 Java_ChromeMediaRouter_stopObservingMediaSinks(
256 env, java_media_router_.obj(), jsource_id.obj()); 265 env, java_media_router_.obj(), jsource_id.obj());
257 } 266 }
258 } 267 }
259 268
260 void MediaRouterAndroid::RegisterMediaRoutesObserver( 269 void MediaRouterAndroid::RegisterMediaRoutesObserver(
261 MediaRoutesObserver* observer) { 270 MediaRoutesObserver* observer) {
262 DVLOG(2) << "Added MediaRoutesObserver: " << observer; 271 DVLOG(2) << "Added MediaRoutesObserver: " << observer;
272 const std::string& source_id = observer->source_id();
mark a. foltz 2015/12/09 00:48:16 Can this be inlined below?
matt.boetger 2015/12/15 19:21:20 Done.
273 if (!source_id.empty())
274 NOTIMPLEMENTED() << "Joinable routes query not implemented.";
275
263 routes_observers_.AddObserver(observer); 276 routes_observers_.AddObserver(observer);
264 } 277 }
265 278
266 void MediaRouterAndroid::UnregisterMediaRoutesObserver( 279 void MediaRouterAndroid::UnregisterMediaRoutesObserver(
267 MediaRoutesObserver* observer) { 280 MediaRoutesObserver* observer) {
268 if (!routes_observers_.HasObserver(observer)) 281 if (!routes_observers_.HasObserver(observer))
269 return; 282 return;
270 routes_observers_.RemoveObserver(observer); 283 routes_observers_.RemoveObserver(observer);
271 } 284 }
272 285
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
358 jis_local, std::string(), 371 jis_local, std::string(),
359 true); // TODO(avayvod): Populate for_display. 372 true); // TODO(avayvod): Populate for_display.
360 373
361 for (const MediaRouteResponseCallback& callback : request->callbacks) 374 for (const MediaRouteResponseCallback& callback : request->callbacks)
362 callback.Run(&route, request->presentation_id, std::string()); 375 callback.Run(&route, request->presentation_id, std::string());
363 376
364 route_requests_.Remove(jroute_request_id); 377 route_requests_.Remove(jroute_request_id);
365 378
366 active_routes_.push_back(route); 379 active_routes_.push_back(route);
367 FOR_EACH_OBSERVER(MediaRoutesObserver, routes_observers_, 380 FOR_EACH_OBSERVER(MediaRoutesObserver, routes_observers_,
368 OnRoutesUpdated(active_routes_)); 381 OnRoutesUpdated(active_routes_,
382 std::vector<MediaRoute::Id>()));
369 } 383 }
370 384
371 void MediaRouterAndroid::OnRouteRequestError( 385 void MediaRouterAndroid::OnRouteRequestError(
372 JNIEnv* env, 386 JNIEnv* env,
373 jobject obj, 387 jobject obj,
374 jstring jerror_text, 388 jstring jerror_text,
375 jint jroute_request_id) { 389 jint jroute_request_id) {
376 MediaRouteRequest* request = route_requests_.Lookup(jroute_request_id); 390 MediaRouteRequest* request = route_requests_.Lookup(jroute_request_id);
377 if (!request) 391 if (!request)
378 return; 392 return;
(...skipping 10 matching lines...) Expand all
389 jobject obj, 403 jobject obj,
390 jstring jmedia_route_id) { 404 jstring jmedia_route_id) {
391 MediaRoute::Id route_id = ConvertJavaStringToUTF8(env, jmedia_route_id); 405 MediaRoute::Id route_id = ConvertJavaStringToUTF8(env, jmedia_route_id);
392 for (auto it = active_routes_.begin(); it != active_routes_.end(); ++it) 406 for (auto it = active_routes_.begin(); it != active_routes_.end(); ++it)
393 if (it->media_route_id() == route_id) { 407 if (it->media_route_id() == route_id) {
394 active_routes_.erase(it); 408 active_routes_.erase(it);
395 break; 409 break;
396 } 410 }
397 411
398 FOR_EACH_OBSERVER(MediaRoutesObserver, routes_observers_, 412 FOR_EACH_OBSERVER(MediaRoutesObserver, routes_observers_,
399 OnRoutesUpdated(active_routes_)); 413 OnRoutesUpdated(active_routes_,
414 std::vector<MediaRoute::Id>()));
400 } 415 }
401 416
402 void MediaRouterAndroid::OnMessageSentResult( 417 void MediaRouterAndroid::OnMessageSentResult(
403 JNIEnv* env, jobject obj, jboolean jsuccess, jint jcallback_id) { 418 JNIEnv* env, jobject obj, jboolean jsuccess, jint jcallback_id) {
404 SendRouteMessageCallback* callback = message_callbacks_.Lookup(jcallback_id); 419 SendRouteMessageCallback* callback = message_callbacks_.Lookup(jcallback_id);
405 callback->Run(jsuccess); 420 callback->Run(jsuccess);
406 message_callbacks_.Remove(jcallback_id); 421 message_callbacks_.Remove(jcallback_id);
407 } 422 }
408 423
409 // Notifies the media router about a message received from the media route. 424 // Notifies the media router about a message received from the media route.
410 void MediaRouterAndroid::OnMessage( 425 void MediaRouterAndroid::OnMessage(
411 JNIEnv* env, jobject obj, jstring jmedia_route_id, jstring jmessage) { 426 JNIEnv* env, jobject obj, jstring jmedia_route_id, jstring jmessage) {
412 MediaRoute::Id route_id = ConvertJavaStringToUTF8(env, jmedia_route_id); 427 MediaRoute::Id route_id = ConvertJavaStringToUTF8(env, jmedia_route_id);
413 auto* observer_list = messages_observers_.get(route_id); 428 auto* observer_list = messages_observers_.get(route_id);
414 if (!observer_list) 429 if (!observer_list)
415 return; 430 return;
416 431
417 ScopedVector<content::PresentationSessionMessage> session_messages; 432 ScopedVector<content::PresentationSessionMessage> session_messages;
418 scoped_ptr<content::PresentationSessionMessage> message( 433 scoped_ptr<content::PresentationSessionMessage> message(
419 new content::PresentationSessionMessage(content::TEXT)); 434 new content::PresentationSessionMessage(content::TEXT));
420 message->message = ConvertJavaStringToUTF8(env, jmessage); 435 message->message = ConvertJavaStringToUTF8(env, jmessage);
421 session_messages.push_back(message.Pass()); 436 session_messages.push_back(message.Pass());
422 437
423 FOR_EACH_OBSERVER(PresentationSessionMessagesObserver, *observer_list, 438 FOR_EACH_OBSERVER(PresentationSessionMessagesObserver, *observer_list,
424 OnMessagesReceived(session_messages, true)); 439 OnMessagesReceived(session_messages, true));
425 } 440 }
426 441
427 } // namespace media_router 442 } // namespace media_router
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698