// Copyright 2014 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. #ifndef REMOTING_HOST_INPUT_INJECTOR_CHROMEOS_H_ #define REMOTING_HOST_INPUT_INJECTOR_CHROMEOS_H_ #include "base/macros.h" #include "base/single_thread_task_runner.h" #include "remoting/host/input_injector.h" namespace remoting { // InputInjector implementation that translates input to ui::Events and passes // them to a supplied delegate for injection into ChromeOS. class InputInjectorChromeos : public InputInjector { public: explicit InputInjectorChromeos( scoped_refptr task_runner); ~InputInjectorChromeos() override; // Clipboard stub interface. void InjectClipboardEvent(const protocol::ClipboardEvent& event) override; // InputStub interface. void InjectKeyEvent(const protocol::KeyEvent& event) override; void InjectTextEvent(const protocol::TextEvent& event) override; void InjectMouseEvent(const protocol::MouseEvent& event) override; void InjectTouchEvent(const protocol::TouchEvent& event) override; // InputInjector interface. void Start(scoped_ptr client_clipboard) override; private: class Core; // Task runner for input injection. scoped_refptr input_task_runner_; scoped_ptr core_; DISALLOW_COPY_AND_ASSIGN(InputInjectorChromeos); }; } // namespace remoting #endif // REMOTING_HOST_INPUT_INJECTOR_CHROMEOS_H_