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

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 3 * WITH UI Changes 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::ConnectRouteByRouteId(
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 if (!observer->source_id().empty())
273 NOTIMPLEMENTED() << "Joinable routes query not implemented.";
274
263 routes_observers_.AddObserver(observer); 275 routes_observers_.AddObserver(observer);
264 } 276 }
265 277
266 void MediaRouterAndroid::UnregisterMediaRoutesObserver( 278 void MediaRouterAndroid::UnregisterMediaRoutesObserver(
267 MediaRoutesObserver* observer) { 279 MediaRoutesObserver* observer) {
268 if (!routes_observers_.HasObserver(observer)) 280 if (!routes_observers_.HasObserver(observer))
269 return; 281 return;
270 routes_observers_.RemoveObserver(observer); 282 routes_observers_.RemoveObserver(observer);
271 } 283 }
272 284
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
358 jis_local, std::string(), 370 jis_local, std::string(),
359 true); // TODO(avayvod): Populate for_display. 371 true); // TODO(avayvod): Populate for_display.
360 372
361 for (const MediaRouteResponseCallback& callback : request->callbacks) 373 for (const MediaRouteResponseCallback& callback : request->callbacks)
362 callback.Run(&route, request->presentation_id, std::string()); 374 callback.Run(&route, request->presentation_id, std::string());
363 375
364 route_requests_.Remove(jroute_request_id); 376 route_requests_.Remove(jroute_request_id);
365 377
366 active_routes_.push_back(route); 378 active_routes_.push_back(route);
367 FOR_EACH_OBSERVER(MediaRoutesObserver, routes_observers_, 379 FOR_EACH_OBSERVER(MediaRoutesObserver, routes_observers_,
368 OnRoutesUpdated(active_routes_)); 380 OnRoutesUpdated(active_routes_,
381 std::vector<MediaRoute::Id>()));
apacible 2015/12/18 22:34:19 nit: Does this fit on the previous line?
matt.boetger 2015/12/18 23:37:14 Done.
369 } 382 }
370 383
371 void MediaRouterAndroid::OnRouteRequestError( 384 void MediaRouterAndroid::OnRouteRequestError(
372 JNIEnv* env, 385 JNIEnv* env,
373 jobject obj, 386 jobject obj,
374 jstring jerror_text, 387 jstring jerror_text,
375 jint jroute_request_id) { 388 jint jroute_request_id) {
376 MediaRouteRequest* request = route_requests_.Lookup(jroute_request_id); 389 MediaRouteRequest* request = route_requests_.Lookup(jroute_request_id);
377 if (!request) 390 if (!request)
378 return; 391 return;
(...skipping 10 matching lines...) Expand all
389 jobject obj, 402 jobject obj,
390 jstring jmedia_route_id) { 403 jstring jmedia_route_id) {
391 MediaRoute::Id route_id = ConvertJavaStringToUTF8(env, jmedia_route_id); 404 MediaRoute::Id route_id = ConvertJavaStringToUTF8(env, jmedia_route_id);
392 for (auto it = active_routes_.begin(); it != active_routes_.end(); ++it) 405 for (auto it = active_routes_.begin(); it != active_routes_.end(); ++it)
393 if (it->media_route_id() == route_id) { 406 if (it->media_route_id() == route_id) {
394 active_routes_.erase(it); 407 active_routes_.erase(it);
395 break; 408 break;
396 } 409 }
397 410
398 FOR_EACH_OBSERVER(MediaRoutesObserver, routes_observers_, 411 FOR_EACH_OBSERVER(MediaRoutesObserver, routes_observers_,
399 OnRoutesUpdated(active_routes_)); 412 OnRoutesUpdated(active_routes_,
413 std::vector<MediaRoute::Id>()));
apacible 2015/12/18 22:34:19 nit: Does this fit on the previous line?
matt.boetger 2015/12/18 23:37:14 Done.
400 } 414 }
401 415
402 void MediaRouterAndroid::OnMessageSentResult( 416 void MediaRouterAndroid::OnMessageSentResult(
403 JNIEnv* env, jobject obj, jboolean jsuccess, jint jcallback_id) { 417 JNIEnv* env, jobject obj, jboolean jsuccess, jint jcallback_id) {
404 SendRouteMessageCallback* callback = message_callbacks_.Lookup(jcallback_id); 418 SendRouteMessageCallback* callback = message_callbacks_.Lookup(jcallback_id);
405 callback->Run(jsuccess); 419 callback->Run(jsuccess);
406 message_callbacks_.Remove(jcallback_id); 420 message_callbacks_.Remove(jcallback_id);
407 } 421 }
408 422
409 // Notifies the media router about a message received from the media route. 423 // Notifies the media router about a message received from the media route.
410 void MediaRouterAndroid::OnMessage( 424 void MediaRouterAndroid::OnMessage(
411 JNIEnv* env, jobject obj, jstring jmedia_route_id, jstring jmessage) { 425 JNIEnv* env, jobject obj, jstring jmedia_route_id, jstring jmessage) {
412 MediaRoute::Id route_id = ConvertJavaStringToUTF8(env, jmedia_route_id); 426 MediaRoute::Id route_id = ConvertJavaStringToUTF8(env, jmedia_route_id);
413 auto* observer_list = messages_observers_.get(route_id); 427 auto* observer_list = messages_observers_.get(route_id);
414 if (!observer_list) 428 if (!observer_list)
415 return; 429 return;
416 430
417 ScopedVector<content::PresentationSessionMessage> session_messages; 431 ScopedVector<content::PresentationSessionMessage> session_messages;
418 scoped_ptr<content::PresentationSessionMessage> message( 432 scoped_ptr<content::PresentationSessionMessage> message(
419 new content::PresentationSessionMessage(content::TEXT)); 433 new content::PresentationSessionMessage(content::TEXT));
420 message->message = ConvertJavaStringToUTF8(env, jmessage); 434 message->message = ConvertJavaStringToUTF8(env, jmessage);
421 session_messages.push_back(message.Pass()); 435 session_messages.push_back(message.Pass());
422 436
423 FOR_EACH_OBSERVER(PresentationSessionMessagesObserver, *observer_list, 437 FOR_EACH_OBSERVER(PresentationSessionMessagesObserver, *observer_list,
424 OnMessagesReceived(session_messages, true)); 438 OnMessagesReceived(session_messages, true));
425 } 439 }
426 440
427 } // namespace media_router 441 } // namespace media_router
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698