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/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 Loading... | |
| 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 Loading... | |
| 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 Loading... | |
| 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 Loading... | |
| 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 |
| OLD | NEW |