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 "extensions/renderer/api/display_source/wifi_display/wifi_display_sessi
on.h" | 5 #include "extensions/renderer/api/display_source/wifi_display/wifi_display_sessi
on.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/timer/timer.h" | 10 #include "base/timer/timer.h" |
11 #include "content/public/common/service_registry.h" | |
12 #include "content/public/renderer/render_frame.h" | 11 #include "content/public/renderer/render_frame.h" |
13 #include "extensions/renderer/api/display_source/wifi_display/wifi_display_media
_manager.h" | 12 #include "extensions/renderer/api/display_source/wifi_display/wifi_display_media
_manager.h" |
| 13 #include "services/shell/public/cpp/interface_provider.h" |
14 #include "third_party/wds/src/libwds/public/logging.h" | 14 #include "third_party/wds/src/libwds/public/logging.h" |
15 #include "third_party/wds/src/libwds/public/media_manager.h" | 15 #include "third_party/wds/src/libwds/public/media_manager.h" |
16 | 16 |
17 namespace { | 17 namespace { |
18 const char kErrorInternal[] = "An internal error has occurred"; | 18 const char kErrorInternal[] = "An internal error has occurred"; |
19 const char kErrorTimeout[] = "Sink became unresponsive"; | 19 const char kErrorTimeout[] = "Sink became unresponsive"; |
20 | 20 |
21 static void LogWDSError(const char* format, ...) { | 21 static void LogWDSError(const char* format, ...) { |
22 va_list args; | 22 va_list args; |
23 va_start(args, format); | 23 va_start(args, format); |
(...skipping 11 matching lines...) Expand all Loading... |
35 | 35 |
36 WiFiDisplaySession::WiFiDisplaySession( | 36 WiFiDisplaySession::WiFiDisplaySession( |
37 const DisplaySourceSessionParams& params) | 37 const DisplaySourceSessionParams& params) |
38 : binding_(this), | 38 : binding_(this), |
39 params_(params), | 39 params_(params), |
40 cseq_(0), | 40 cseq_(0), |
41 timer_id_(0), | 41 timer_id_(0), |
42 weak_factory_(this) { | 42 weak_factory_(this) { |
43 DCHECK(params_.render_frame); | 43 DCHECK(params_.render_frame); |
44 wds::LogSystem::set_error_func(&LogWDSError); | 44 wds::LogSystem::set_error_func(&LogWDSError); |
45 params.render_frame->GetServiceRegistry()->ConnectToRemoteService( | 45 params.render_frame->GetRemoteInterfaces()->GetInterface(&service_); |
46 mojo::GetProxy(&service_)); | |
47 service_.set_connection_error_handler(base::Bind( | 46 service_.set_connection_error_handler(base::Bind( |
48 &WiFiDisplaySession::OnIPCConnectionError, | 47 &WiFiDisplaySession::OnIPCConnectionError, |
49 weak_factory_.GetWeakPtr())); | 48 weak_factory_.GetWeakPtr())); |
50 | 49 |
51 service_->SetClient(binding_.CreateInterfacePtrAndBind()); | 50 service_->SetClient(binding_.CreateInterfacePtrAndBind()); |
52 binding_.set_connection_error_handler(base::Bind( | 51 binding_.set_connection_error_handler(base::Bind( |
53 &WiFiDisplaySession::OnIPCConnectionError, | 52 &WiFiDisplaySession::OnIPCConnectionError, |
54 weak_factory_.GetWeakPtr())); | 53 weak_factory_.GetWeakPtr())); |
55 } | 54 } |
56 | 55 |
(...skipping 20 matching lines...) Expand all Loading... |
77 | 76 |
78 void WiFiDisplaySession::OnConnected(const mojo::String& local_ip_address, | 77 void WiFiDisplaySession::OnConnected(const mojo::String& local_ip_address, |
79 const mojo::String& sink_ip_address) { | 78 const mojo::String& sink_ip_address) { |
80 DCHECK_EQ(DisplaySourceSession::Established, state_); | 79 DCHECK_EQ(DisplaySourceSession::Established, state_); |
81 local_ip_address_ = local_ip_address; | 80 local_ip_address_ = local_ip_address; |
82 media_manager_.reset( | 81 media_manager_.reset( |
83 new WiFiDisplayMediaManager( | 82 new WiFiDisplayMediaManager( |
84 params_.video_track, | 83 params_.video_track, |
85 params_.audio_track, | 84 params_.audio_track, |
86 sink_ip_address, | 85 sink_ip_address, |
87 params_.render_frame->GetServiceRegistry(), | 86 params_.render_frame->GetRemoteInterfaces(), |
88 base::Bind( | 87 base::Bind( |
89 &WiFiDisplaySession::OnMediaError, | 88 &WiFiDisplaySession::OnMediaError, |
90 weak_factory_.GetWeakPtr()))); | 89 weak_factory_.GetWeakPtr()))); |
91 wfd_source_.reset(wds::Source::Create(this, media_manager_.get(), this)); | 90 wfd_source_.reset(wds::Source::Create(this, media_manager_.get(), this)); |
92 wfd_source_->Start(); | 91 wfd_source_->Start(); |
93 } | 92 } |
94 | 93 |
95 void WiFiDisplaySession::OnConnectRequestHandled(bool success, | 94 void WiFiDisplaySession::OnConnectRequestHandled(bool success, |
96 const mojo::String& error) { | 95 const mojo::String& error) { |
97 DCHECK_EQ(DisplaySourceSession::Establishing, state_); | 96 DCHECK_EQ(DisplaySourceSession::Establishing, state_); |
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
218 } | 217 } |
219 | 218 |
220 void WiFiDisplaySession::RunTerminateCallback( | 219 void WiFiDisplaySession::RunTerminateCallback( |
221 bool success, | 220 bool success, |
222 const std::string& error_message) { | 221 const std::string& error_message) { |
223 if (!teminate_completion_callback_.is_null()) | 222 if (!teminate_completion_callback_.is_null()) |
224 teminate_completion_callback_.Run(success, error_message); | 223 teminate_completion_callback_.Run(success, error_message); |
225 } | 224 } |
226 | 225 |
227 } // namespace extensions | 226 } // namespace extensions |
OLD | NEW |