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

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 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/jni_android.h" 7 #include "base/android/jni_android.h"
8 #include "base/android/jni_array.h" 8 #include "base/android/jni_array.h"
9 #include "base/android/jni_string.h" 9 #include "base/android/jni_string.h"
10 #include "base/guid.h" 10 #include "base/guid.h"
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 env, 97 env,
98 java_media_router_.obj(), 98 java_media_router_.obj(),
99 jsource_id.obj(), 99 jsource_id.obj(),
100 jsink_id.obj(), 100 jsink_id.obj(),
101 jpresentation_id.obj(), 101 jpresentation_id.obj(),
102 jorigin.obj(), 102 jorigin.obj(),
103 tab_id, 103 tab_id,
104 route_request_id); 104 route_request_id);
105 } 105 }
106 106
107 void MediaRouterAndroid::JoinRouteByRouteId(
108 const MediaSource::Id& source,
109 const MediaRoute::Id& route_id,
110 const GURL& origin,
111 content::WebContents* web_contents,
112 const std::vector<MediaRouteResponseCallback>& callbacks) {
113 NOTIMPLEMENTED();
114 }
115
107 void MediaRouterAndroid::JoinRoute( 116 void MediaRouterAndroid::JoinRoute(
108 const MediaSource::Id& source_id, 117 const MediaSource::Id& source_id,
109 const std::string& presentation_id, 118 const std::string& presentation_id,
110 const GURL& origin, 119 const GURL& origin,
111 content::WebContents* web_contents, 120 content::WebContents* web_contents,
112 const std::vector<MediaRouteResponseCallback>& callbacks) { 121 const std::vector<MediaRouteResponseCallback>& callbacks) {
113 if (!origin.is_valid()) { 122 if (!origin.is_valid()) {
114 for (const MediaRouteResponseCallback& callback : callbacks) 123 for (const MediaRouteResponseCallback& callback : callbacks)
115 callback.Run(nullptr, "", "Invalid origin"); 124 callback.Run(nullptr, "", "Invalid origin");
116 return; 125 return;
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
252 ScopedJavaLocalRef<jstring> jsource_id = 261 ScopedJavaLocalRef<jstring> jsource_id =
253 base::android::ConvertUTF8ToJavaString(env, source_id); 262 base::android::ConvertUTF8ToJavaString(env, source_id);
254 Java_ChromeMediaRouter_stopObservingMediaSinks( 263 Java_ChromeMediaRouter_stopObservingMediaSinks(
255 env, java_media_router_.obj(), jsource_id.obj()); 264 env, java_media_router_.obj(), jsource_id.obj());
256 } 265 }
257 } 266 }
258 267
259 void MediaRouterAndroid::RegisterMediaRoutesObserver( 268 void MediaRouterAndroid::RegisterMediaRoutesObserver(
260 MediaRoutesObserver* observer) { 269 MediaRoutesObserver* observer) {
261 DVLOG(2) << "Added MediaRoutesObserver: " << observer; 270 DVLOG(2) << "Added MediaRoutesObserver: " << observer;
271 const std::string& source_id = observer->source_id();
272 if (!source_id.empty())
273 NOTIMPLEMENTED() << "Joinable routes query not implemented.";
imcheng 2015/12/01 23:45:06 -2 indent, new line after
matt.boetger 2015/12/03 01:19:20 Done.
262 routes_observers_.AddObserver(observer); 274 routes_observers_.AddObserver(observer);
263 } 275 }
264 276
265 void MediaRouterAndroid::UnregisterMediaRoutesObserver( 277 void MediaRouterAndroid::UnregisterMediaRoutesObserver(
266 MediaRoutesObserver* observer) { 278 MediaRoutesObserver* observer) {
267 if (!routes_observers_.HasObserver(observer)) 279 if (!routes_observers_.HasObserver(observer))
268 return; 280 return;
269 routes_observers_.RemoveObserver(observer); 281 routes_observers_.RemoveObserver(observer);
270 } 282 }
271 283
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
357 jis_local, std::string(), 369 jis_local, std::string(),
358 true); // TODO(avayvod): Populate for_display. 370 true); // TODO(avayvod): Populate for_display.
359 371
360 for (const MediaRouteResponseCallback& callback : request->callbacks) 372 for (const MediaRouteResponseCallback& callback : request->callbacks)
361 callback.Run(&route, request->presentation_id, std::string()); 373 callback.Run(&route, request->presentation_id, std::string());
362 374
363 route_requests_.Remove(jroute_request_id); 375 route_requests_.Remove(jroute_request_id);
364 376
365 active_routes_.push_back(route); 377 active_routes_.push_back(route);
366 FOR_EACH_OBSERVER(MediaRoutesObserver, routes_observers_, 378 FOR_EACH_OBSERVER(MediaRoutesObserver, routes_observers_,
367 OnRoutesUpdated(active_routes_)); 379 OnRoutesUpdated(active_routes_,
380 std::vector<MediaRoute::Id>()));
368 } 381 }
369 382
370 void MediaRouterAndroid::OnRouteRequestError( 383 void MediaRouterAndroid::OnRouteRequestError(
371 JNIEnv* env, 384 JNIEnv* env,
372 jobject obj, 385 jobject obj,
373 jstring jerror_text, 386 jstring jerror_text,
374 jint jroute_request_id) { 387 jint jroute_request_id) {
375 MediaRouteRequest* request = route_requests_.Lookup(jroute_request_id); 388 MediaRouteRequest* request = route_requests_.Lookup(jroute_request_id);
376 if (!request) 389 if (!request)
377 return; 390 return;
(...skipping 10 matching lines...) Expand all
388 jobject obj, 401 jobject obj,
389 jstring jmedia_route_id) { 402 jstring jmedia_route_id) {
390 MediaRoute::Id route_id = ConvertJavaStringToUTF8(env, jmedia_route_id); 403 MediaRoute::Id route_id = ConvertJavaStringToUTF8(env, jmedia_route_id);
391 for (auto it = active_routes_.begin(); it != active_routes_.end(); ++it) 404 for (auto it = active_routes_.begin(); it != active_routes_.end(); ++it)
392 if (it->media_route_id() == route_id) { 405 if (it->media_route_id() == route_id) {
393 active_routes_.erase(it); 406 active_routes_.erase(it);
394 break; 407 break;
395 } 408 }
396 409
397 FOR_EACH_OBSERVER(MediaRoutesObserver, routes_observers_, 410 FOR_EACH_OBSERVER(MediaRoutesObserver, routes_observers_,
398 OnRoutesUpdated(active_routes_)); 411 OnRoutesUpdated(active_routes_,
412 std::vector<MediaRoute::Id>()));
399 } 413 }
400 414
401 void MediaRouterAndroid::OnMessageSentResult( 415 void MediaRouterAndroid::OnMessageSentResult(
402 JNIEnv* env, jobject obj, jboolean jsuccess, jint jcallback_id) { 416 JNIEnv* env, jobject obj, jboolean jsuccess, jint jcallback_id) {
403 SendRouteMessageCallback* callback = message_callbacks_.Lookup(jcallback_id); 417 SendRouteMessageCallback* callback = message_callbacks_.Lookup(jcallback_id);
404 callback->Run(jsuccess); 418 callback->Run(jsuccess);
405 message_callbacks_.Remove(jcallback_id); 419 message_callbacks_.Remove(jcallback_id);
406 } 420 }
407 421
408 // Notifies the media router about a message received from the media route. 422 // Notifies the media router about a message received from the media route.
409 void MediaRouterAndroid::OnMessage( 423 void MediaRouterAndroid::OnMessage(
410 JNIEnv* env, jobject obj, jstring jmedia_route_id, jstring jmessage) { 424 JNIEnv* env, jobject obj, jstring jmedia_route_id, jstring jmessage) {
411 MediaRoute::Id route_id = ConvertJavaStringToUTF8(env, jmedia_route_id); 425 MediaRoute::Id route_id = ConvertJavaStringToUTF8(env, jmedia_route_id);
412 auto* observer_list = messages_observers_.get(route_id); 426 auto* observer_list = messages_observers_.get(route_id);
413 if (!observer_list) 427 if (!observer_list)
414 return; 428 return;
415 429
416 ScopedVector<content::PresentationSessionMessage> session_messages; 430 ScopedVector<content::PresentationSessionMessage> session_messages;
417 scoped_ptr<content::PresentationSessionMessage> message( 431 scoped_ptr<content::PresentationSessionMessage> message(
418 new content::PresentationSessionMessage(content::TEXT)); 432 new content::PresentationSessionMessage(content::TEXT));
419 message->message = ConvertJavaStringToUTF8(env, jmessage); 433 message->message = ConvertJavaStringToUTF8(env, jmessage);
420 session_messages.push_back(message.Pass()); 434 session_messages.push_back(message.Pass());
421 435
422 FOR_EACH_OBSERVER(PresentationSessionMessagesObserver, *observer_list, 436 FOR_EACH_OBSERVER(PresentationSessionMessagesObserver, *observer_list,
423 OnMessagesReceived(session_messages, true)); 437 OnMessagesReceived(session_messages, true));
424 } 438 }
425 439
426 } // namespace media_router 440 } // namespace media_router
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698