OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "remoting/client/chromoting_client.h" | 5 #include "remoting/client/chromoting_client.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "remoting/base/capabilities.h" | 9 #include "remoting/base/capabilities.h" |
10 #include "remoting/client/audio_decode_scheduler.h" | 10 #include "remoting/client/audio_decode_scheduler.h" |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 DCHECK(!session_manager_); // Start must be called more than once. | 63 DCHECK(!session_manager_); // Start must be called more than once. |
64 | 64 |
65 host_jid_ = host_jid; | 65 host_jid_ = host_jid; |
66 local_capabilities_ = capabilities; | 66 local_capabilities_ = capabilities; |
67 | 67 |
68 connection_->set_client_stub(this); | 68 connection_->set_client_stub(this); |
69 connection_->set_clipboard_stub(this); | 69 connection_->set_clipboard_stub(this); |
70 connection_->set_video_stub(video_renderer_->GetVideoStub()); | 70 connection_->set_video_stub(video_renderer_->GetVideoStub()); |
71 connection_->set_audio_stub(audio_decode_scheduler_.get()); | 71 connection_->set_audio_stub(audio_decode_scheduler_.get()); |
72 | 72 |
73 session_manager_.reset(new protocol::JingleSessionManager( | 73 session_manager_.reset(new protocol::JingleSessionManager(signal_strategy)); |
74 make_scoped_ptr(new protocol::IceTransportFactory(transport_context)), | |
75 signal_strategy)); | |
76 | 74 |
77 if (!protocol_config_) | 75 if (!protocol_config_) |
78 protocol_config_ = protocol::CandidateSessionConfig::CreateDefault(); | 76 protocol_config_ = protocol::CandidateSessionConfig::CreateDefault(); |
79 if (!audio_decode_scheduler_) | 77 if (!audio_decode_scheduler_) |
80 protocol_config_->DisableAudioChannel(); | 78 protocol_config_->DisableAudioChannel(); |
81 session_manager_->set_protocol_config(std::move(protocol_config_)); | 79 session_manager_->set_protocol_config(std::move(protocol_config_)); |
82 | 80 |
83 authenticator_ = std::move(authenticator); | 81 authenticator_ = std::move(authenticator); |
| 82 transport_context_ = transport_context; |
84 | 83 |
85 signal_strategy_ = signal_strategy; | 84 signal_strategy_ = signal_strategy; |
86 signal_strategy_->AddListener(this); | 85 signal_strategy_->AddListener(this); |
87 | 86 |
88 switch (signal_strategy_->GetState()) { | 87 switch (signal_strategy_->GetState()) { |
89 case SignalStrategy::CONNECTING: | 88 case SignalStrategy::CONNECTING: |
90 // Nothing to do here. Just need to wait until |signal_strategy_| becomes | 89 // Nothing to do here. Just need to wait until |signal_strategy_| becomes |
91 // connected. | 90 // connected. |
92 break; | 91 break; |
93 case SignalStrategy::CONNECTED: | 92 case SignalStrategy::CONNECTED: |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
195 } | 194 } |
196 | 195 |
197 bool ChromotingClient::OnSignalStrategyIncomingStanza( | 196 bool ChromotingClient::OnSignalStrategyIncomingStanza( |
198 const buzz::XmlElement* stanza) { | 197 const buzz::XmlElement* stanza) { |
199 return false; | 198 return false; |
200 } | 199 } |
201 | 200 |
202 void ChromotingClient::StartConnection() { | 201 void ChromotingClient::StartConnection() { |
203 DCHECK(thread_checker_.CalledOnValidThread()); | 202 DCHECK(thread_checker_.CalledOnValidThread()); |
204 connection_->Connect( | 203 connection_->Connect( |
205 session_manager_->Connect(host_jid_, std::move(authenticator_)), this); | 204 session_manager_->Connect(host_jid_, std::move(authenticator_)), |
| 205 transport_context_, this); |
206 } | 206 } |
207 | 207 |
208 void ChromotingClient::OnAuthenticated() { | 208 void ChromotingClient::OnAuthenticated() { |
209 DCHECK(thread_checker_.CalledOnValidThread()); | 209 DCHECK(thread_checker_.CalledOnValidThread()); |
210 | 210 |
211 // Initialize the decoder. | 211 // Initialize the decoder. |
212 video_renderer_->OnSessionConfig(connection_->config()); | 212 video_renderer_->OnSessionConfig(connection_->config()); |
213 if (connection_->config().is_audio_enabled()) | 213 if (connection_->config().is_audio_enabled()) |
214 audio_decode_scheduler_->Initialize(connection_->config()); | 214 audio_decode_scheduler_->Initialize(connection_->config()); |
215 } | 215 } |
216 | 216 |
217 void ChromotingClient::OnChannelsConnected() { | 217 void ChromotingClient::OnChannelsConnected() { |
218 DCHECK(thread_checker_.CalledOnValidThread()); | 218 DCHECK(thread_checker_.CalledOnValidThread()); |
219 | 219 |
220 // Negotiate capabilities with the host. | 220 // Negotiate capabilities with the host. |
221 VLOG(1) << "Client capabilities: " << local_capabilities_; | 221 VLOG(1) << "Client capabilities: " << local_capabilities_; |
222 | 222 |
223 protocol::Capabilities capabilities; | 223 protocol::Capabilities capabilities; |
224 capabilities.set_capabilities(local_capabilities_); | 224 capabilities.set_capabilities(local_capabilities_); |
225 connection_->host_stub()->SetCapabilities(capabilities); | 225 connection_->host_stub()->SetCapabilities(capabilities); |
226 } | 226 } |
227 | 227 |
228 } // namespace remoting | 228 } // namespace remoting |
OLD | NEW |