Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(80)

Unified Diff: components/arc/arc_bridge_service.h

Issue 1408263006: chromeos: Add ArcInputBridge to components/arc (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@arcxx
Patch Set: added owners Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/arc/arc_bridge_service.h
diff --git a/components/arc/arc_bridge_service.h b/components/arc/arc_bridge_service.h
index 77968cec22121f378c6fc90932cc2b6808e75480..1df72e54658492d8a8db850c8bfa58163d9d3f9e 100644
--- a/components/arc/arc_bridge_service.h
+++ b/components/arc/arc_bridge_service.h
@@ -8,9 +8,11 @@
#include "base/macros.h"
#include "base/observer_list.h"
#include "base/sequenced_task_runner.h"
+#include "components/arc/arc_bridge_input_devices.h"
#include "ipc/ipc_channel_proxy.h"
#include "ipc/ipc_listener.h"
#include "ipc/ipc_message.h"
+#include "ui/events/event.h"
namespace base {
class CommandLine;
@@ -113,15 +115,8 @@ class ArcBridgeService : public IPC::Listener {
// Gets if ARC is available in this system.
bool available() const { return available_; }
- // Requests registration of an input device on the ARC instance.
- // TODO(denniskempin): Make this interface more typesafe.
- // |name| should be the displayable name of the emulated device (e.g. "Chrome
- // OS Keyboard"), |device_type| the name of the device type (e.g. "keyboard")
- // and |fd| a file descriptor that emulates the kernel events of the device.
- // This can only be called on the thread that this class was created on.
- bool RegisterInputDevice(const std::string& name,
- const std::string& device_type,
- base::ScopedFD fd);
+ // Translates and sends input event to the ARC instance.
+ void SendInputEvent(ui::Event* event);
private:
friend class ArcBridgeTest;
@@ -167,6 +162,22 @@ class ArcBridgeService : public IPC::Listener {
void OnInstanceStarted(bool success);
void OnInstanceStopped(bool success);
+ // Creates and registers an input device on the ARC instance.
+ // TODO(denniskempin): Make this interface more typesafe.
+ // |name| should be the displayable name of the emulated device (e.g. "Chrome
+ // OS Keyboard"), |device_type| the name of the device type (e.g. "keyboard")
+ // Returns a file descriptor that receives the kernel events of the device.
+ base::ScopedFD CreateBridgeInputDevice(const std::string& name,
Luis Héctor Chávez 2015/11/17 17:51:54 I would prefer if the ArcBridgeService did not hav
denniskempin 2015/11/19 19:22:09 done
+ const std::string& device_type);
+
+ // Register all bridge input devices with the ARC instance. Called
+ // once the instance is ready.
+ void SetupBridgeInputDevices();
+
+ // List of bridge input devices registered with the ARC instance.
+ ScopedVector<BridgeInputDevice> bridge_devices_;
+
+ // Task runner on which incoming messages are handled.
scoped_refptr<base::SequencedTaskRunner> origin_task_runner_;
scoped_refptr<base::SingleThreadTaskRunner> ipc_task_runner_;
scoped_refptr<base::SequencedTaskRunner> file_task_runner_;

Powered by Google App Engine
This is Rietveld 408576698