Index: ui/events/ozone/evdev/input_device_factory_evdev_proxy.cc |
diff --git a/ui/events/ozone/evdev/input_device_factory_evdev_proxy.cc b/ui/events/ozone/evdev/input_device_factory_evdev_proxy.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..2ebf05782fab86233035f470307af1886dffb441 |
--- /dev/null |
+++ b/ui/events/ozone/evdev/input_device_factory_evdev_proxy.cc |
@@ -0,0 +1,97 @@ |
+// 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<base::SingleThreadTaskRunner> reply_runner, |
+ const GetTouchDeviceStatusReply& reply, |
+ scoped_ptr<std::string> status) { |
+ // Thread hop back to UI for reply. |
+ reply_runner->PostTask(FROM_HERE, base::Bind(reply, base::Passed(&status))); |
+} |
+ |
+void ForwardGetTouchEventLogReply( |
+ scoped_refptr<base::SingleThreadTaskRunner> reply_runner, |
+ const GetTouchEventLogReply& reply, |
+ scoped_ptr<std::vector<base::FilePath>> 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<base::SingleThreadTaskRunner> task_runner, |
+ base::WeakPtr<InputDeviceFactoryEvdev> 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 |