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

Unified Diff: ui/events/ozone/evdev/event_converter_evdev.cc

Issue 1287103004: Sync ui/events to chromium @ https://codereview.chromium.org/1210203002 (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: rebased Created 5 years, 4 months 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
« no previous file with comments | « ui/events/ozone/evdev/event_converter_evdev.h ('k') | ui/events/ozone/evdev/event_converter_evdev_impl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/events/ozone/evdev/event_converter_evdev.cc
diff --git a/ui/events/ozone/evdev/event_converter_evdev.cc b/ui/events/ozone/evdev/event_converter_evdev.cc
new file mode 100644
index 0000000000000000000000000000000000000000..efee28040edacb3e4f607f111fe64ba89169e306
--- /dev/null
+++ b/ui/events/ozone/evdev/event_converter_evdev.cc
@@ -0,0 +1,142 @@
+// 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.
+
+#include <linux/input.h>
+
+#include "ui/events/ozone/evdev/event_converter_evdev.h"
+
+#include "base/files/file_path.h"
+#include "base/logging.h"
+#include "base/message_loop/message_loop.h"
+#include "base/trace_event/trace_event.h"
+#include "ui/events/devices/input_device.h"
+
+namespace ui {
+
+EventConverterEvdev::EventConverterEvdev(int fd,
+ const base::FilePath& path,
+ int id,
+ InputDeviceType type,
+ const std::string& name,
+ uint16_t vendor_id,
+ uint16_t product_id)
+ : fd_(fd),
+ path_(path),
+ input_device_(id, type, name, vendor_id, product_id) {
+}
+
+EventConverterEvdev::~EventConverterEvdev() {
+ DCHECK(!enabled_);
+ DCHECK(!watching_);
+ if (fd_ >= 0)
+ close(fd_);
+}
+
+void EventConverterEvdev::Start() {
+ base::MessageLoopForUI::current()->WatchFileDescriptor(
+ fd_, true, base::MessagePumpLibevent::WATCH_READ, &controller_, this);
+ watching_ = true;
+}
+
+void EventConverterEvdev::Stop() {
+ controller_.StopWatchingFileDescriptor();
+ watching_ = false;
+}
+
+void EventConverterEvdev::SetEnabled(bool enabled) {
+ if (enabled == enabled_)
+ return;
+ if (enabled) {
+ TRACE_EVENT1("evdev", "EventConverterEvdev::OnEnabled", "path",
+ path_.value());
+ OnEnabled();
+ } else {
+ TRACE_EVENT1("evdev", "EventConverterEvdev::OnDisabled", "path",
+ path_.value());
+ OnDisabled();
+ }
+ enabled_ = enabled;
+}
+
+void EventConverterEvdev::OnStopped() {
+}
+
+void EventConverterEvdev::OnEnabled() {
+}
+
+void EventConverterEvdev::OnDisabled() {
+}
+
+void EventConverterEvdev::OnFileCanWriteWithoutBlocking(int fd) {
+ NOTREACHED();
+}
+
+bool EventConverterEvdev::HasKeyboard() const {
+ return false;
+}
+
+bool EventConverterEvdev::HasMouse() const {
+ return false;
+}
+
+bool EventConverterEvdev::HasTouchpad() const {
+ return false;
+}
+
+bool EventConverterEvdev::HasTouchscreen() const {
+ return false;
+}
+
+bool EventConverterEvdev::HasCapsLockLed() const {
+ return false;
+}
+
+gfx::Size EventConverterEvdev::GetTouchscreenSize() const {
+ NOTREACHED();
+ return gfx::Size();
+}
+
+int EventConverterEvdev::GetTouchPoints() const {
+ NOTREACHED();
+ return 0;
+}
+
+void EventConverterEvdev::SetKeyFilter(bool enable_filter,
+ std::vector<DomCode> allowed_keys) {
+ NOTREACHED();
+}
+
+void EventConverterEvdev::SetCapsLockLed(bool enabled) {
+ if (!HasCapsLockLed())
+ return;
+
+ input_event events[2];
+ memset(&events, 0, sizeof(events));
+
+ events[0].type = EV_LED;
+ events[0].code = LED_CAPSL;
+ events[0].value = enabled;
+
+ events[1].type = EV_SYN;
+ events[1].code = SYN_REPORT;
+ events[1].value = 0;
+
+ ssize_t written = write(fd_, events, sizeof(events));
+
+ if (written < 0) {
+ if (errno != ENODEV)
+ PLOG(ERROR) << "cannot set leds for " << path_.value() << ":";
+ Stop();
+ } else if (written != sizeof(events)) {
+ LOG(ERROR) << "short write setting leds for " << path_.value();
+ Stop();
+ }
+}
+
+base::TimeDelta EventConverterEvdev::TimeDeltaFromInputEvent(
+ const input_event& event) {
+ return base::TimeDelta::FromMicroseconds(event.time.tv_sec * 1000000 +
+ event.time.tv_usec);
+}
+} // namespace ui
« no previous file with comments | « ui/events/ozone/evdev/event_converter_evdev.h ('k') | ui/events/ozone/evdev/event_converter_evdev_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698