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/router/media_router_mojo_impl.h" | 5 #include "chrome/browser/media/router/media_router_mojo_impl.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/guid.h" | 8 #include "base/guid.h" |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/memory/scoped_vector.h" | 10 #include "base/memory/scoped_vector.h" |
(...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
307 } | 307 } |
308 | 308 |
309 SetWakeReason(MediaRouteProviderWakeReason::JOIN_ROUTE); | 309 SetWakeReason(MediaRouteProviderWakeReason::JOIN_ROUTE); |
310 int tab_id = SessionTabHelper::IdForTab(web_contents); | 310 int tab_id = SessionTabHelper::IdForTab(web_contents); |
311 RunOrDefer(base::Bind(&MediaRouterMojoImpl::DoJoinRoute, | 311 RunOrDefer(base::Bind(&MediaRouterMojoImpl::DoJoinRoute, |
312 base::Unretained(this), source_id, presentation_id, | 312 base::Unretained(this), source_id, presentation_id, |
313 origin.is_empty() ? "" : origin.spec(), tab_id, | 313 origin.is_empty() ? "" : origin.spec(), tab_id, |
314 callbacks)); | 314 callbacks)); |
315 } | 315 } |
316 | 316 |
317 void MediaRouterMojoImpl::CloseRoute(const MediaRoute::Id& route_id) { | 317 void MediaRouterMojoImpl::TerminateRoute(const MediaRoute::Id& route_id) { |
318 DCHECK(thread_checker_.CalledOnValidThread()); | 318 DCHECK(thread_checker_.CalledOnValidThread()); |
319 | 319 |
320 SetWakeReason(MediaRouteProviderWakeReason::CLOSE_ROUTE); | 320 SetWakeReason(MediaRouteProviderWakeReason::TERMINATE_ROUTE); |
321 RunOrDefer(base::Bind(&MediaRouterMojoImpl::DoCloseRoute, | 321 RunOrDefer(base::Bind(&MediaRouterMojoImpl::DoTerminateRoute, |
322 base::Unretained(this), route_id)); | 322 base::Unretained(this), route_id)); |
323 } | 323 } |
324 | 324 |
| 325 void MediaRouterMojoImpl::DetachRoute(const MediaRoute::Id& route_id) { |
| 326 DCHECK(thread_checker_.CalledOnValidThread()); |
| 327 |
| 328 SetWakeReason(MediaRouteProviderWakeReason::DETACH_ROUTE); |
| 329 RunOrDefer(base::Bind(&MediaRouterMojoImpl::DoDetachRoute, |
| 330 base::Unretained(this), route_id)); |
| 331 } |
| 332 |
325 void MediaRouterMojoImpl::SendRouteMessage( | 333 void MediaRouterMojoImpl::SendRouteMessage( |
326 const MediaRoute::Id& route_id, | 334 const MediaRoute::Id& route_id, |
327 const std::string& message, | 335 const std::string& message, |
328 const SendRouteMessageCallback& callback) { | 336 const SendRouteMessageCallback& callback) { |
329 DCHECK(thread_checker_.CalledOnValidThread()); | 337 DCHECK(thread_checker_.CalledOnValidThread()); |
330 | 338 |
331 SetWakeReason(MediaRouteProviderWakeReason::SEND_SESSION_MESSAGE); | 339 SetWakeReason(MediaRouteProviderWakeReason::SEND_SESSION_MESSAGE); |
332 RunOrDefer(base::Bind(&MediaRouterMojoImpl::DoSendSessionMessage, | 340 RunOrDefer(base::Bind(&MediaRouterMojoImpl::DoSendSessionMessage, |
333 base::Unretained(this), route_id, message, callback)); | 341 base::Unretained(this), route_id, message, callback)); |
334 } | 342 } |
(...skipping 13 matching lines...) Expand all Loading... |
348 void MediaRouterMojoImpl::AddIssue(const Issue& issue) { | 356 void MediaRouterMojoImpl::AddIssue(const Issue& issue) { |
349 DCHECK(thread_checker_.CalledOnValidThread()); | 357 DCHECK(thread_checker_.CalledOnValidThread()); |
350 issue_manager_.AddIssue(issue); | 358 issue_manager_.AddIssue(issue); |
351 } | 359 } |
352 | 360 |
353 void MediaRouterMojoImpl::ClearIssue(const Issue::Id& issue_id) { | 361 void MediaRouterMojoImpl::ClearIssue(const Issue::Id& issue_id) { |
354 DCHECK(thread_checker_.CalledOnValidThread()); | 362 DCHECK(thread_checker_.CalledOnValidThread()); |
355 issue_manager_.ClearIssue(issue_id); | 363 issue_manager_.ClearIssue(issue_id); |
356 } | 364 } |
357 | 365 |
358 void MediaRouterMojoImpl::OnPresentationSessionDetached( | |
359 const MediaRoute::Id& route_id) { | |
360 DCHECK(thread_checker_.CalledOnValidThread()); | |
361 SetWakeReason(MediaRouteProviderWakeReason::PRESENTATION_SESSION_DETACHED); | |
362 RunOrDefer(base::Bind(&MediaRouterMojoImpl::DoOnPresentationSessionDetached, | |
363 base::Unretained(this), route_id)); | |
364 } | |
365 | |
366 bool MediaRouterMojoImpl::RegisterMediaSinksObserver( | 366 bool MediaRouterMojoImpl::RegisterMediaSinksObserver( |
367 MediaSinksObserver* observer) { | 367 MediaSinksObserver* observer) { |
368 DCHECK(thread_checker_.CalledOnValidThread()); | 368 DCHECK(thread_checker_.CalledOnValidThread()); |
369 | 369 |
370 // Create an observer list for the media source and add |observer| | 370 // Create an observer list for the media source and add |observer| |
371 // to it. Fail if |observer| is already registered. | 371 // to it. Fail if |observer| is already registered. |
372 const std::string& source_id = observer->source().id(); | 372 const std::string& source_id = observer->source().id(); |
373 auto* sinks_query = sinks_queries_.get(source_id); | 373 auto* sinks_query = sinks_queries_.get(source_id); |
374 if (!sinks_query) { | 374 if (!sinks_query) { |
375 sinks_query = new MediaSinksQuery; | 375 sinks_query = new MediaSinksQuery; |
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
544 int tab_id, | 544 int tab_id, |
545 const std::vector<MediaRouteResponseCallback>& callbacks) { | 545 const std::vector<MediaRouteResponseCallback>& callbacks) { |
546 DVLOG_WITH_INSTANCE(1) << "DoJoinRoute " << source_id | 546 DVLOG_WITH_INSTANCE(1) << "DoJoinRoute " << source_id |
547 << ", presentation ID: " << presentation_id; | 547 << ", presentation ID: " << presentation_id; |
548 media_route_provider_->JoinRoute( | 548 media_route_provider_->JoinRoute( |
549 source_id, presentation_id, origin, tab_id, | 549 source_id, presentation_id, origin, tab_id, |
550 base::Bind(&MediaRouterMojoImpl::RouteResponseReceived, | 550 base::Bind(&MediaRouterMojoImpl::RouteResponseReceived, |
551 base::Unretained(this), presentation_id, callbacks)); | 551 base::Unretained(this), presentation_id, callbacks)); |
552 } | 552 } |
553 | 553 |
554 void MediaRouterMojoImpl::DoCloseRoute(const MediaRoute::Id& route_id) { | 554 void MediaRouterMojoImpl::DoTerminateRoute(const MediaRoute::Id& route_id) { |
555 DVLOG_WITH_INSTANCE(1) << "DoCloseRoute " << route_id; | 555 DVLOG_WITH_INSTANCE(1) << "DoTerminateRoute " << route_id; |
556 media_route_provider_->CloseRoute(route_id); | 556 media_route_provider_->TerminateRoute(route_id); |
| 557 } |
| 558 |
| 559 void MediaRouterMojoImpl::DoDetachRoute(const MediaRoute::Id& route_id) { |
| 560 DVLOG_WITH_INSTANCE(1) << "DoDetachRoute " << route_id; |
| 561 media_route_provider_->DetachRoute(route_id); |
557 } | 562 } |
558 | 563 |
559 void MediaRouterMojoImpl::DoSendSessionMessage( | 564 void MediaRouterMojoImpl::DoSendSessionMessage( |
560 const MediaRoute::Id& route_id, | 565 const MediaRoute::Id& route_id, |
561 const std::string& message, | 566 const std::string& message, |
562 const SendRouteMessageCallback& callback) { | 567 const SendRouteMessageCallback& callback) { |
563 DVLOG_WITH_INSTANCE(1) << "SendRouteMessage " << route_id; | 568 DVLOG_WITH_INSTANCE(1) << "SendRouteMessage " << route_id; |
564 media_route_provider_->SendRouteMessage(route_id, message, callback); | 569 media_route_provider_->SendRouteMessage(route_id, message, callback); |
565 } | 570 } |
566 | 571 |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
672 if (!interfaces::MediaRouter::PresentationConnectionState_IsValidValue( | 677 if (!interfaces::MediaRouter::PresentationConnectionState_IsValidValue( |
673 state)) { | 678 state)) { |
674 DLOG(WARNING) << "Unknown PresentationConnectionState value " << state; | 679 DLOG(WARNING) << "Unknown PresentationConnectionState value " << state; |
675 return; | 680 return; |
676 } | 681 } |
677 | 682 |
678 NotifyPresentationConnectionStateChange( | 683 NotifyPresentationConnectionStateChange( |
679 route_id, mojo::PresentationConnectionStateFromMojo(state)); | 684 route_id, mojo::PresentationConnectionStateFromMojo(state)); |
680 } | 685 } |
681 | 686 |
682 void MediaRouterMojoImpl::DoOnPresentationSessionDetached( | |
683 const MediaRoute::Id& route_id) { | |
684 DVLOG_WITH_INSTANCE(1) << "DoOnPresentationSessionDetached " << route_id; | |
685 media_route_provider_->OnPresentationSessionDetached(route_id); | |
686 } | |
687 | |
688 bool MediaRouterMojoImpl::HasLocalDisplayRoute() const { | 687 bool MediaRouterMojoImpl::HasLocalDisplayRoute() const { |
689 return has_local_display_route_; | 688 return has_local_display_route_; |
690 } | 689 } |
691 | 690 |
692 void MediaRouterMojoImpl::DoStartObservingMediaSinks( | 691 void MediaRouterMojoImpl::DoStartObservingMediaSinks( |
693 const MediaSource::Id& source_id) { | 692 const MediaSource::Id& source_id) { |
694 DVLOG_WITH_INSTANCE(1) << "DoStartObservingMediaSinks: " << source_id; | 693 DVLOG_WITH_INSTANCE(1) << "DoStartObservingMediaSinks: " << source_id; |
695 // No need to call MRPM if there are no sinks available. | 694 // No need to call MRPM if there are no sinks available. |
696 if (availability_ == interfaces::MediaRouter::SINK_AVAILABILITY_UNAVAILABLE) | 695 if (availability_ == interfaces::MediaRouter::SINK_AVAILABILITY_UNAVAILABLE) |
697 return; | 696 return; |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
829 if (current_wake_reason_ == MediaRouteProviderWakeReason::TOTAL_COUNT) | 828 if (current_wake_reason_ == MediaRouteProviderWakeReason::TOTAL_COUNT) |
830 current_wake_reason_ = reason; | 829 current_wake_reason_ = reason; |
831 } | 830 } |
832 | 831 |
833 void MediaRouterMojoImpl::ClearWakeReason() { | 832 void MediaRouterMojoImpl::ClearWakeReason() { |
834 DCHECK(current_wake_reason_ != MediaRouteProviderWakeReason::TOTAL_COUNT); | 833 DCHECK(current_wake_reason_ != MediaRouteProviderWakeReason::TOTAL_COUNT); |
835 current_wake_reason_ = MediaRouteProviderWakeReason::TOTAL_COUNT; | 834 current_wake_reason_ = MediaRouteProviderWakeReason::TOTAL_COUNT; |
836 } | 835 } |
837 | 836 |
838 } // namespace media_router | 837 } // namespace media_router |
OLD | NEW |