// Copyright 2015 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 "ui/events/ozone/evdev/input_device_factory_evdev_proxy.h" #include "base/bind.h" #include "base/thread_task_runner_handle.h" #include "ui/events/ozone/evdev/input_device_factory_evdev.h" namespace ui { namespace { void ForwardGetTouchDeviceStatusReply( scoped_refptr reply_runner, const GetTouchDeviceStatusReply& reply, scoped_ptr status) { // Thread hop back to UI for reply. reply_runner->PostTask(FROM_HERE, base::Bind(reply, base::Passed(&status))); } void ForwardGetTouchEventLogReply( scoped_refptr reply_runner, const GetTouchEventLogReply& reply, scoped_ptr> log_paths) { // Thread hop back to UI for reply. reply_runner->PostTask(FROM_HERE, base::Bind(reply, base::Passed(&log_paths))); } } // namespace InputDeviceFactoryEvdevProxy::InputDeviceFactoryEvdevProxy( scoped_refptr task_runner, base::WeakPtr input_device_factory) : task_runner_(task_runner), input_device_factory_(input_device_factory) { } InputDeviceFactoryEvdevProxy::~InputDeviceFactoryEvdevProxy() { } void InputDeviceFactoryEvdevProxy::AddInputDevice(int id, const base::FilePath& path) { task_runner_->PostTask(FROM_HERE, base::Bind(&InputDeviceFactoryEvdev::AddInputDevice, input_device_factory_, id, path)); } void InputDeviceFactoryEvdevProxy::RemoveInputDevice( const base::FilePath& path) { task_runner_->PostTask(FROM_HERE, base::Bind(&InputDeviceFactoryEvdev::RemoveInputDevice, input_device_factory_, path)); } void InputDeviceFactoryEvdevProxy::OnStartupScanComplete() { task_runner_->PostTask( FROM_HERE, base::Bind(&InputDeviceFactoryEvdev::OnStartupScanComplete, input_device_factory_)); } void InputDeviceFactoryEvdevProxy::SetCapsLockLed(bool enabled) { task_runner_->PostTask(FROM_HERE, base::Bind(&InputDeviceFactoryEvdev::SetCapsLockLed, input_device_factory_, enabled)); } void InputDeviceFactoryEvdevProxy::UpdateInputDeviceSettings( const InputDeviceSettingsEvdev& settings) { task_runner_->PostTask( FROM_HERE, base::Bind(&InputDeviceFactoryEvdev::UpdateInputDeviceSettings, input_device_factory_, settings)); } void InputDeviceFactoryEvdevProxy::GetTouchDeviceStatus( const GetTouchDeviceStatusReply& reply) { task_runner_->PostTask( FROM_HERE, base::Bind(&InputDeviceFactoryEvdev::GetTouchDeviceStatus, input_device_factory_, base::Bind(&ForwardGetTouchDeviceStatusReply, base::ThreadTaskRunnerHandle::Get(), reply))); } void InputDeviceFactoryEvdevProxy::GetTouchEventLog( const base::FilePath& out_dir, const GetTouchEventLogReply& reply) { task_runner_->PostTask( FROM_HERE, base::Bind(&InputDeviceFactoryEvdev::GetTouchEventLog, input_device_factory_, out_dir, base::Bind(&ForwardGetTouchEventLogReply, base::ThreadTaskRunnerHandle::Get(), reply))); } } // namespace ui