Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 Loading... | |
| 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 Loading... | |
| 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 Loading... | |
| 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 Loading... | |
| 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 |
| OLD | NEW |