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

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

Issue 2805793002: ozone: evdev: Add gamepad support (Closed)
Patch Set: Support Gamepad in Ozone. Created 3 years, 7 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_device_info.h ('k') | ui/events/ozone/evdev/event_device_info_unittest.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.cc
diff --git a/ui/events/ozone/evdev/event_device_info.cc b/ui/events/ozone/evdev/event_device_info.cc
index aa877e0b18ae4f955bec42af2fbf167bef1841dc..0366df0c98cfc73ce34de0b7a6c25ce87ed974bc 100644
--- a/ui/events/ozone/evdev/event_device_info.cc
+++ b/ui/events/ozone/evdev/event_device_info.cc
@@ -251,6 +251,11 @@ void EventDeviceInfo::SetDeviceType(InputDeviceType type) {
device_type_ = type;
}
+void EventDeviceInfo::SetId(uint16_t vendor_id, uint16_t product_id) {
+ vendor_id_ = vendor_id;
+ product_id_ = product_id;
+}
+
bool EventDeviceInfo::HasEventType(unsigned int type) const {
if (type > EV_MAX)
return false;
@@ -427,6 +432,23 @@ bool EventDeviceInfo::HasTouchscreen() const {
return HasAbsXY() && HasDirect();
}
+bool EventDeviceInfo::HasGamepad() const {
+ if (!HasEventType(EV_KEY))
+ return false;
+
+ // If the device has gamepad button, and it's not keyboard or tablet, it will
+ // be considered to be a gamepad. Note: this WILL have false positives and
+ // false negatives. A concrete solution will use ID_INPUT_JOYSTICK with some
+ // patch removing false positives.
+ bool support_gamepad_btn = false;
+ for (int key = BTN_JOYSTICK; key <= BTN_THUMBR; ++key) {
+ if (HasKeyEvent(key))
+ support_gamepad_btn = true;
+ }
+
+ return support_gamepad_btn && !HasTablet() && !HasKeyboard();
+}
+
EventDeviceInfo::LegacyAbsoluteDeviceType
EventDeviceInfo::ProbeLegacyAbsoluteDevice() const {
if (!HasAbsXY())
« no previous file with comments | « ui/events/ozone/evdev/event_device_info.h ('k') | ui/events/ozone/evdev/event_device_info_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698