// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "remoting/host/basic_desktop_environment.h" #include "base/bind.h" #include "base/logging.h" #include "base/single_thread_task_runner.h" #include "remoting/host/audio_capturer.h" #include "remoting/host/client_session_control.h" #include "remoting/host/gnubby_auth_handler.h" #include "remoting/host/input_injector.h" #include "remoting/host/screen_controls.h" #include "third_party/webrtc/modules/desktop_capture/screen_capturer.h" namespace remoting { BasicDesktopEnvironment::~BasicDesktopEnvironment() { DCHECK(caller_task_runner_->BelongsToCurrentThread()); } scoped_ptr<AudioCapturer> BasicDesktopEnvironment::CreateAudioCapturer() { DCHECK(caller_task_runner_->BelongsToCurrentThread()); return AudioCapturer::Create(); } scoped_ptr<InputInjector> BasicDesktopEnvironment::CreateInputInjector() { DCHECK(caller_task_runner_->BelongsToCurrentThread()); return InputInjector::Create(input_task_runner(), ui_task_runner()); } scoped_ptr<ScreenControls> BasicDesktopEnvironment::CreateScreenControls() { DCHECK(caller_task_runner_->BelongsToCurrentThread()); return scoped_ptr<ScreenControls>(); } std::string BasicDesktopEnvironment::GetCapabilities() const { return std::string(); } void BasicDesktopEnvironment::SetCapabilities(const std::string& capabilities) { } scoped_ptr<GnubbyAuthHandler> BasicDesktopEnvironment::CreateGnubbyAuthHandler( protocol::ClientStub* client_stub) { return scoped_ptr<GnubbyAuthHandler>(); } scoped_ptr<webrtc::ScreenCapturer> BasicDesktopEnvironment::CreateVideoCapturer() { DCHECK(caller_task_runner_->BelongsToCurrentThread()); // The basic desktop environment does not use X DAMAGE, since it is // broken on many systems - see http://crbug.com/73423. return scoped_ptr<webrtc::ScreenCapturer>(webrtc::ScreenCapturer::Create()); } BasicDesktopEnvironment::BasicDesktopEnvironment( scoped_refptr<base::SingleThreadTaskRunner> caller_task_runner, scoped_refptr<base::SingleThreadTaskRunner> input_task_runner, scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner) : caller_task_runner_(caller_task_runner), input_task_runner_(input_task_runner), ui_task_runner_(ui_task_runner) { DCHECK(caller_task_runner_->BelongsToCurrentThread()); } BasicDesktopEnvironmentFactory::BasicDesktopEnvironmentFactory( scoped_refptr<base::SingleThreadTaskRunner> caller_task_runner, scoped_refptr<base::SingleThreadTaskRunner> input_task_runner, scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner) : caller_task_runner_(caller_task_runner), input_task_runner_(input_task_runner), ui_task_runner_(ui_task_runner) { } BasicDesktopEnvironmentFactory::~BasicDesktopEnvironmentFactory() { } bool BasicDesktopEnvironmentFactory::SupportsAudioCapture() const { DCHECK(caller_task_runner_->BelongsToCurrentThread()); return AudioCapturer::IsSupported(); } } // namespace remoting