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

Unified Diff: ui/events/ozone/evdev/event_device_info.h

Issue 58473003: evdev: Fix crashing with touch devices (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 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
« no previous file with comments | « ui/events/events.gyp ('k') | ui/events/ozone/evdev/event_device_info.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/events/ozone/evdev/event_device_info.h
diff --git a/ui/events/ozone/evdev/event_device_info.h b/ui/events/ozone/evdev/event_device_info.h
new file mode 100644
index 0000000000000000000000000000000000000000..b4b1c05c233e9e560ce8f28ce11227f9083d3fee
--- /dev/null
+++ b/ui/events/ozone/evdev/event_device_info.h
@@ -0,0 +1,57 @@
+// Copyright 2013 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 UI_EVENTS_OZONE_EVDEV_EVENT_DEVICE_INFO_H_
+#define UI_EVENTS_OZONE_EVDEV_EVENT_DEVICE_INFO_H_
+
+#include <limits.h>
+#include <linux/input.h>
+
+#include "base/basictypes.h"
+
+#define EVDEV_LONG_BITS (CHAR_BIT * sizeof(long))
+#define EVDEV_BITS_TO_LONGS(x) (((x) + EVDEV_LONG_BITS - 1) / EVDEV_LONG_BITS)
+
+namespace ui {
+
+// Device information for Linux input devices
+//
+// This stores and queries information about input devices; in
+// particular it knows which events the device can generate.
+class EventDeviceInfo {
+ public:
+ EventDeviceInfo();
+ ~EventDeviceInfo();
+
+ // Initialize device information from an open device.
+ bool Initialize(int fd);
+
+ // Check events this device can generate.
+ bool HasEventType(unsigned int type) const;
+ bool HasKeyEvent(unsigned int code) const;
+ bool HasRelEvent(unsigned int code) const;
+ bool HasAbsEvent(unsigned int code) const;
+ bool HasMscEvent(unsigned int code) const;
+ bool HasSwEvent(unsigned int code) const;
+ bool HasLedEvent(unsigned int code) const;
+
+ // Check input device properties.
+ bool HasProp(unsigned int code) const;
+
+ private:
+ unsigned long ev_bits_[EVDEV_BITS_TO_LONGS(EV_CNT)];
+ unsigned long key_bits_[EVDEV_BITS_TO_LONGS(KEY_CNT)];
+ unsigned long rel_bits_[EVDEV_BITS_TO_LONGS(REL_CNT)];
+ unsigned long abs_bits_[EVDEV_BITS_TO_LONGS(ABS_CNT)];
+ unsigned long msc_bits_[EVDEV_BITS_TO_LONGS(MSC_CNT)];
+ unsigned long sw_bits_[EVDEV_BITS_TO_LONGS(SW_CNT)];
+ unsigned long led_bits_[EVDEV_BITS_TO_LONGS(LED_CNT)];
+ unsigned long prop_bits_[EVDEV_BITS_TO_LONGS(INPUT_PROP_CNT)];
+
+ DISALLOW_COPY_AND_ASSIGN(EventDeviceInfo);
+};
+
+} // namspace ui
+
+#endif // UI_EVENTS_OZONE_EVDEV_EVENT_DEVICE_INFO_H_
« no previous file with comments | « ui/events/events.gyp ('k') | ui/events/ozone/evdev/event_device_info.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698