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/win/session_desktop_environment_factory.h" | 5 #include "remoting/host/win/session_desktop_environment_factory.h" |
6 | 6 |
7 #include "base/single_thread_task_runner.h" | 7 #include "base/single_thread_task_runner.h" |
8 #include "remoting/capturer/video_frame_capturer.h" | |
9 #include "remoting/host/audio_capturer.h" | |
10 #include "remoting/host/chromoting_host_context.h" | |
11 #include "remoting/host/desktop_environment.h" | |
12 #include "remoting/host/event_executor.h" | 8 #include "remoting/host/event_executor.h" |
| 9 #include "remoting/host/local_desktop_environment.h" |
13 #include "remoting/host/win/session_event_executor.h" | 10 #include "remoting/host/win/session_event_executor.h" |
14 | 11 |
15 namespace remoting { | 12 namespace remoting { |
16 | 13 |
| 14 namespace { |
| 15 |
| 16 scoped_ptr<EventExecutor> CreateSessionEventExecutor( |
| 17 base::Closure inject_sas, |
| 18 scoped_refptr<base::SingleThreadTaskRunner> input_task_runner, |
| 19 scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner) { |
| 20 scoped_ptr<EventExecutor> event_executor = EventExecutor::Create( |
| 21 input_task_runner, ui_task_runner); |
| 22 event_executor.reset(new SessionEventExecutorWin( |
| 23 input_task_runner, event_executor.Pass(), ui_task_runner, inject_sas)); |
| 24 return event_executor.Pass(); |
| 25 } |
| 26 |
| 27 } // namespace |
| 28 |
17 SessionDesktopEnvironmentFactory::SessionDesktopEnvironmentFactory( | 29 SessionDesktopEnvironmentFactory::SessionDesktopEnvironmentFactory( |
18 scoped_refptr<base::SingleThreadTaskRunner> input_task_runner, | 30 scoped_refptr<base::SingleThreadTaskRunner> caller_task_runner, |
19 scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner, | |
20 const base::Closure& inject_sas) | 31 const base::Closure& inject_sas) |
21 : DesktopEnvironmentFactory(input_task_runner, ui_task_runner), | 32 : DesktopEnvironmentFactory(caller_task_runner), |
22 inject_sas_(inject_sas) { | 33 inject_sas_(inject_sas) { |
23 } | 34 } |
24 | 35 |
25 SessionDesktopEnvironmentFactory::~SessionDesktopEnvironmentFactory() { | 36 SessionDesktopEnvironmentFactory::~SessionDesktopEnvironmentFactory() { |
26 } | 37 } |
27 | 38 |
28 scoped_ptr<DesktopEnvironment> SessionDesktopEnvironmentFactory::Create() { | 39 scoped_ptr<DesktopEnvironment> SessionDesktopEnvironmentFactory::Create( |
29 scoped_ptr<AudioCapturer> audio_capturer = AudioCapturer::Create(); | 40 const std::string& client_jid, |
30 scoped_ptr<EventExecutor> event_executor = EventExecutor::Create( | 41 const base::Closure& disconnect_callback) { |
31 input_task_runner_, ui_task_runner_); | 42 return scoped_ptr<DesktopEnvironment>(new LocalDesktopEnvironment( |
32 event_executor.reset(new SessionEventExecutorWin( | 43 caller_task_runner(), |
33 input_task_runner_, event_executor.Pass(), ui_task_runner_, inject_sas_)); | 44 base::Bind(&CreateSessionEventExecutor, inject_sas_))); |
34 scoped_ptr<VideoFrameCapturer> video_capturer(VideoFrameCapturer::Create()); | |
35 return scoped_ptr<DesktopEnvironment>(new DesktopEnvironment( | |
36 audio_capturer.Pass(), | |
37 event_executor.Pass(), | |
38 video_capturer.Pass())); | |
39 } | 45 } |
40 | 46 |
41 } // namespace remoting | 47 } // namespace remoting |
OLD | NEW |