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/host/ipc_desktop_environment.h" | 5 #include "remoting/host/ipc_desktop_environment.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/compiler_specific.h" | 9 #include "base/compiler_specific.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
11 #include "base/process_util.h" | 11 #include "base/process_util.h" |
12 #include "base/single_thread_task_runner.h" | 12 #include "base/single_thread_task_runner.h" |
13 #include "ipc/ipc_sender.h" | 13 #include "ipc/ipc_sender.h" |
14 #include "media/video/capture/screen/screen_capturer.h" | 14 #include "media/video/capture/screen/screen_capturer.h" |
| 15 #include "remoting/base/capabilities.h" |
15 #include "remoting/host/audio_capturer.h" | 16 #include "remoting/host/audio_capturer.h" |
16 #include "remoting/host/chromoting_messages.h" | 17 #include "remoting/host/chromoting_messages.h" |
17 #include "remoting/host/client_session_control.h" | 18 #include "remoting/host/client_session_control.h" |
18 #include "remoting/host/desktop_session.h" | 19 #include "remoting/host/desktop_session.h" |
19 #include "remoting/host/desktop_session_proxy.h" | 20 #include "remoting/host/desktop_session_proxy.h" |
20 #include "remoting/host/input_injector.h" | 21 #include "remoting/host/input_injector.h" |
21 #include "remoting/host/screen_controls.h" | 22 #include "remoting/host/screen_controls.h" |
22 | 23 |
23 namespace remoting { | 24 namespace remoting { |
24 | 25 |
25 IpcDesktopEnvironment::IpcDesktopEnvironment( | 26 IpcDesktopEnvironment::IpcDesktopEnvironment( |
26 scoped_refptr<base::SingleThreadTaskRunner> audio_task_runner, | 27 scoped_refptr<base::SingleThreadTaskRunner> audio_task_runner, |
27 scoped_refptr<base::SingleThreadTaskRunner> caller_task_runner, | 28 scoped_refptr<base::SingleThreadTaskRunner> caller_task_runner, |
28 scoped_refptr<base::SingleThreadTaskRunner> capture_task_runner, | 29 scoped_refptr<base::SingleThreadTaskRunner> capture_task_runner, |
29 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner, | 30 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner, |
30 base::WeakPtr<ClientSessionControl> client_session_control, | 31 base::WeakPtr<ClientSessionControl> client_session_control, |
31 base::WeakPtr<DesktopSessionConnector> desktop_session_connector, | 32 base::WeakPtr<DesktopSessionConnector> desktop_session_connector, |
32 bool virtual_terminal) { | 33 bool virtual_terminal) { |
33 DCHECK(caller_task_runner->BelongsToCurrentThread()); | 34 DCHECK(caller_task_runner->BelongsToCurrentThread()); |
34 | 35 |
35 desktop_session_proxy_ = new DesktopSessionProxy(audio_task_runner, | 36 desktop_session_proxy_ = new DesktopSessionProxy(audio_task_runner, |
36 caller_task_runner, | 37 caller_task_runner, |
37 io_task_runner, | 38 io_task_runner, |
38 capture_task_runner, | 39 capture_task_runner, |
39 client_session_control); | 40 client_session_control, |
40 | 41 desktop_session_connector, |
41 desktop_session_proxy_->ConnectToDesktopSession(desktop_session_connector, | 42 virtual_terminal); |
42 virtual_terminal); | |
43 } | 43 } |
44 | 44 |
45 IpcDesktopEnvironment::~IpcDesktopEnvironment() { | 45 IpcDesktopEnvironment::~IpcDesktopEnvironment() { |
46 } | 46 } |
47 | 47 |
48 scoped_ptr<AudioCapturer> IpcDesktopEnvironment::CreateAudioCapturer() { | 48 scoped_ptr<AudioCapturer> IpcDesktopEnvironment::CreateAudioCapturer() { |
49 return desktop_session_proxy_->CreateAudioCapturer(); | 49 return desktop_session_proxy_->CreateAudioCapturer(); |
50 } | 50 } |
51 | 51 |
52 scoped_ptr<InputInjector> IpcDesktopEnvironment::CreateInputInjector() { | 52 scoped_ptr<InputInjector> IpcDesktopEnvironment::CreateInputInjector() { |
53 return desktop_session_proxy_->CreateInputInjector(); | 53 return desktop_session_proxy_->CreateInputInjector(); |
54 } | 54 } |
55 | 55 |
56 scoped_ptr<ScreenControls> IpcDesktopEnvironment::CreateScreenControls() { | 56 scoped_ptr<ScreenControls> IpcDesktopEnvironment::CreateScreenControls() { |
57 return desktop_session_proxy_->CreateScreenControls(); | 57 return desktop_session_proxy_->CreateScreenControls(); |
58 } | 58 } |
59 | 59 |
60 scoped_ptr<media::ScreenCapturer> IpcDesktopEnvironment::CreateVideoCapturer() { | 60 scoped_ptr<media::ScreenCapturer> IpcDesktopEnvironment::CreateVideoCapturer() { |
61 return desktop_session_proxy_->CreateVideoCapturer(); | 61 return desktop_session_proxy_->CreateVideoCapturer(); |
62 } | 62 } |
63 | 63 |
| 64 Capabilities IpcDesktopEnvironment::GetCapabilities() const { |
| 65 return desktop_session_proxy_->GetCapabilities(); |
| 66 } |
| 67 |
| 68 void IpcDesktopEnvironment::SetCapabilities(const Capabilities& capabilities) { |
| 69 return desktop_session_proxy_->SetCapabilities(capabilities); |
| 70 } |
| 71 |
64 IpcDesktopEnvironmentFactory::IpcDesktopEnvironmentFactory( | 72 IpcDesktopEnvironmentFactory::IpcDesktopEnvironmentFactory( |
65 scoped_refptr<base::SingleThreadTaskRunner> audio_task_runner, | 73 scoped_refptr<base::SingleThreadTaskRunner> audio_task_runner, |
66 scoped_refptr<base::SingleThreadTaskRunner> caller_task_runner, | 74 scoped_refptr<base::SingleThreadTaskRunner> caller_task_runner, |
67 scoped_refptr<base::SingleThreadTaskRunner> capture_task_runner, | 75 scoped_refptr<base::SingleThreadTaskRunner> capture_task_runner, |
68 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner, | 76 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner, |
69 IPC::Sender* daemon_channel) | 77 IPC::Sender* daemon_channel) |
70 : audio_task_runner_(audio_task_runner), | 78 : audio_task_runner_(audio_task_runner), |
71 caller_task_runner_(caller_task_runner), | 79 caller_task_runner_(caller_task_runner), |
72 capture_task_runner_(capture_task_runner), | 80 capture_task_runner_(capture_task_runner), |
73 io_task_runner_(io_task_runner), | 81 io_task_runner_(io_task_runner), |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
197 if (i != active_connections_.end()) { | 205 if (i != active_connections_.end()) { |
198 DesktopSessionProxy* desktop_session_proxy = i->second; | 206 DesktopSessionProxy* desktop_session_proxy = i->second; |
199 active_connections_.erase(i); | 207 active_connections_.erase(i); |
200 | 208 |
201 // Disconnect the client session. | 209 // Disconnect the client session. |
202 desktop_session_proxy->DisconnectSession(); | 210 desktop_session_proxy->DisconnectSession(); |
203 } | 211 } |
204 } | 212 } |
205 | 213 |
206 } // namespace remoting | 214 } // namespace remoting |
OLD | NEW |