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

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: Backwards Compatibility Created 4 years, 11 months 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_, std::vector<MediaRoute::Id>()));
369 } 381 }
370 382
371 void MediaRouterAndroid::OnRouteRequestError( 383 void MediaRouterAndroid::OnRouteRequestError(
372 JNIEnv* env, 384 JNIEnv* env,
373 jobject obj, 385 jobject obj,
374 jstring jerror_text, 386 jstring jerror_text,
375 jint jroute_request_id) { 387 jint jroute_request_id) {
376 MediaRouteRequest* request = route_requests_.Lookup(jroute_request_id); 388 MediaRouteRequest* request = route_requests_.Lookup(jroute_request_id);
377 if (!request) 389 if (!request)
378 return; 390 return;
(...skipping 10 matching lines...) Expand all
389 jobject obj, 401 jobject obj,
390 jstring jmedia_route_id) { 402 jstring jmedia_route_id) {
391 MediaRoute::Id route_id = ConvertJavaStringToUTF8(env, jmedia_route_id); 403 MediaRoute::Id route_id = ConvertJavaStringToUTF8(env, jmedia_route_id);
392 for (auto it = active_routes_.begin(); it != active_routes_.end(); ++it) 404 for (auto it = active_routes_.begin(); it != active_routes_.end(); ++it)
393 if (it->media_route_id() == route_id) { 405 if (it->media_route_id() == route_id) {
394 active_routes_.erase(it); 406 active_routes_.erase(it);
395 break; 407 break;
396 } 408 }
397 409
398 FOR_EACH_OBSERVER(MediaRoutesObserver, routes_observers_, 410 FOR_EACH_OBSERVER(MediaRoutesObserver, routes_observers_,
399 OnRoutesUpdated(active_routes_)); 411 OnRoutesUpdated(active_routes_, std::vector<MediaRoute::Id>()));
400 } 412 }
401 413
402 void MediaRouterAndroid::OnMessageSentResult( 414 void MediaRouterAndroid::OnMessageSentResult(
403 JNIEnv* env, jobject obj, jboolean jsuccess, jint jcallback_id) { 415 JNIEnv* env, jobject obj, jboolean jsuccess, jint jcallback_id) {
404 SendRouteMessageCallback* callback = message_callbacks_.Lookup(jcallback_id); 416 SendRouteMessageCallback* callback = message_callbacks_.Lookup(jcallback_id);
405 callback->Run(jsuccess); 417 callback->Run(jsuccess);
406 message_callbacks_.Remove(jcallback_id); 418 message_callbacks_.Remove(jcallback_id);
407 } 419 }
408 420
409 // Notifies the media router about a message received from the media route. 421 // Notifies the media router about a message received from the media route.
410 void MediaRouterAndroid::OnMessage( 422 void MediaRouterAndroid::OnMessage(
411 JNIEnv* env, jobject obj, jstring jmedia_route_id, jstring jmessage) { 423 JNIEnv* env, jobject obj, jstring jmedia_route_id, jstring jmessage) {
412 MediaRoute::Id route_id = ConvertJavaStringToUTF8(env, jmedia_route_id); 424 MediaRoute::Id route_id = ConvertJavaStringToUTF8(env, jmedia_route_id);
413 auto* observer_list = messages_observers_.get(route_id); 425 auto* observer_list = messages_observers_.get(route_id);
414 if (!observer_list) 426 if (!observer_list)
415 return; 427 return;
416 428
417 ScopedVector<content::PresentationSessionMessage> session_messages; 429 ScopedVector<content::PresentationSessionMessage> session_messages;
418 scoped_ptr<content::PresentationSessionMessage> message( 430 scoped_ptr<content::PresentationSessionMessage> message(
419 new content::PresentationSessionMessage(content::TEXT)); 431 new content::PresentationSessionMessage(content::TEXT));
420 message->message = ConvertJavaStringToUTF8(env, jmessage); 432 message->message = ConvertJavaStringToUTF8(env, jmessage);
421 session_messages.push_back(message.Pass()); 433 session_messages.push_back(message.Pass());
422 434
423 FOR_EACH_OBSERVER(PresentationSessionMessagesObserver, *observer_list, 435 FOR_EACH_OBSERVER(PresentationSessionMessagesObserver, *observer_list,
424 OnMessagesReceived(session_messages, true)); 436 OnMessagesReceived(session_messages, true));
425 } 437 }
426 438
427 } // namespace media_router 439 } // namespace media_router
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698