| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ui/events/ozone/evdev/libgestures_glue/gesture_interpreter_libevdev_cr
os.h" | 5 #include "ui/events/ozone/evdev/libgestures_glue/gesture_interpreter_libevdev_cr
os.h" |
| 6 | 6 |
| 7 #include <gestures/gestures.h> | 7 #include <gestures/gestures.h> |
| 8 #include <libevdev/libevdev.h> | 8 #include <libevdev/libevdev.h> |
| 9 #include <linux/input.h> | 9 #include <linux/input.h> |
| 10 | 10 |
| 11 #include "base/strings/stringprintf.h" | 11 #include "base/strings/stringprintf.h" |
| 12 #include "base/timer/timer.h" | 12 #include "base/timer/timer.h" |
| 13 #include "ui/events/event.h" | 13 #include "ui/events/event.h" |
| 14 #include "ui/events/keycodes/dom4/keycode_converter.h" | 14 #include "ui/events/keycodes/dom4/keycode_converter.h" |
| 15 #include "ui/events/ozone/evdev/cursor_delegate_evdev.h" | 15 #include "ui/events/ozone/evdev/cursor_delegate_evdev.h" |
| 16 #include "ui/events/ozone/evdev/event_device_info.h" | 16 #include "ui/events/ozone/evdev/event_device_info.h" |
| 17 #include "ui/events/ozone/evdev/event_device_util.h" | 17 #include "ui/events/ozone/evdev/event_device_util.h" |
| 18 #include "ui/events/ozone/evdev/event_modifiers_evdev.h" | 18 #include "ui/events/ozone/evdev/event_modifiers_evdev.h" |
| 19 #include "ui/events/ozone/evdev/keyboard_evdev.h" | 19 #include "ui/events/ozone/evdev/keyboard_util_evdev.h" |
| 20 #include "ui/events/ozone/evdev/libgestures_glue/gesture_property_provider.h" | 20 #include "ui/events/ozone/evdev/libgestures_glue/gesture_property_provider.h" |
| 21 #include "ui/events/ozone/evdev/libgestures_glue/gesture_timer_provider.h" | 21 #include "ui/events/ozone/evdev/libgestures_glue/gesture_timer_provider.h" |
| 22 #include "ui/events/ozone/evdev/mouse_button_map_evdev.h" | 22 #include "ui/events/ozone/evdev/mouse_button_map_evdev.h" |
| 23 #include "ui/gfx/geometry/point_f.h" | 23 #include "ui/gfx/geometry/point_f.h" |
| 24 | 24 |
| 25 namespace ui { | 25 namespace ui { |
| 26 | 26 |
| 27 namespace { | 27 namespace { |
| 28 | 28 |
| 29 // Convert libevdev device class to libgestures device class. | 29 // Convert libevdev device class to libgestures device class. |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 103 // Number of fingers for swipe gestures. | 103 // Number of fingers for swipe gestures. |
| 104 const int kGestureSwipeFingerCount = 3; | 104 const int kGestureSwipeFingerCount = 3; |
| 105 | 105 |
| 106 } // namespace | 106 } // namespace |
| 107 | 107 |
| 108 GestureInterpreterLibevdevCros::GestureInterpreterLibevdevCros( | 108 GestureInterpreterLibevdevCros::GestureInterpreterLibevdevCros( |
| 109 int id, | 109 int id, |
| 110 EventModifiersEvdev* modifiers, | 110 EventModifiersEvdev* modifiers, |
| 111 MouseButtonMapEvdev* button_map, | 111 MouseButtonMapEvdev* button_map, |
| 112 CursorDelegateEvdev* cursor, | 112 CursorDelegateEvdev* cursor, |
| 113 KeyboardEvdev* keyboard, | |
| 114 GesturePropertyProvider* property_provider, | 113 GesturePropertyProvider* property_provider, |
| 114 const KeyEventDispatchCallback& key_callback, |
| 115 const EventDispatchCallback& callback) | 115 const EventDispatchCallback& callback) |
| 116 : id_(id), | 116 : id_(id), |
| 117 is_mouse_(false), | 117 is_mouse_(false), |
| 118 modifiers_(modifiers), | 118 modifiers_(modifiers), |
| 119 button_map_(button_map), | 119 button_map_(button_map), |
| 120 cursor_(cursor), | 120 cursor_(cursor), |
| 121 keyboard_(keyboard), | |
| 122 property_provider_(property_provider), | 121 property_provider_(property_provider), |
| 122 key_callback_(key_callback), |
| 123 dispatch_callback_(callback), | 123 dispatch_callback_(callback), |
| 124 interpreter_(NULL), | 124 interpreter_(NULL), |
| 125 evdev_(NULL), | 125 evdev_(NULL), |
| 126 device_properties_(new GestureDeviceProperties) { | 126 device_properties_(new GestureDeviceProperties) { |
| 127 memset(&prev_key_state_, 0, sizeof(prev_key_state_)); | 127 memset(&prev_key_state_, 0, sizeof(prev_key_state_)); |
| 128 } | 128 } |
| 129 | 129 |
| 130 GestureInterpreterLibevdevCros::~GestureInterpreterLibevdevCros() { | 130 GestureInterpreterLibevdevCros::~GestureInterpreterLibevdevCros() { |
| 131 // Note that this destructor got called after the evdev device node has been | 131 // Note that this destructor got called after the evdev device node has been |
| 132 // closed. Therefore, all clean-up codes here shouldn't depend on the device | 132 // closed. Therefore, all clean-up codes here shouldn't depend on the device |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 238 | 238 |
| 239 void GestureInterpreterLibevdevCros::SetAllowedKeys( | 239 void GestureInterpreterLibevdevCros::SetAllowedKeys( |
| 240 scoped_ptr<std::set<DomCode>> allowed_keys) { | 240 scoped_ptr<std::set<DomCode>> allowed_keys) { |
| 241 if (!allowed_keys) { | 241 if (!allowed_keys) { |
| 242 allowed_keys_.reset(); | 242 allowed_keys_.reset(); |
| 243 return; | 243 return; |
| 244 } | 244 } |
| 245 | 245 |
| 246 allowed_keys_.reset(new std::set<int>()); | 246 allowed_keys_.reset(new std::set<int>()); |
| 247 for (const auto& it : *allowed_keys) { | 247 for (const auto& it : *allowed_keys) { |
| 248 int evdev_code = KeyboardEvdev::NativeCodeToEvdevCode( | 248 int evdev_code = |
| 249 KeycodeConverter::DomCodeToNativeKeycode(it)); | 249 NativeCodeToEvdevCode(KeycodeConverter::DomCodeToNativeKeycode(it)); |
| 250 allowed_keys_->insert(evdev_code); | 250 allowed_keys_->insert(evdev_code); |
| 251 } | 251 } |
| 252 } | 252 } |
| 253 | 253 |
| 254 void GestureInterpreterLibevdevCros::AllowAllKeys() { | 254 void GestureInterpreterLibevdevCros::AllowAllKeys() { |
| 255 allowed_keys_.reset(); | 255 allowed_keys_.reset(); |
| 256 } | 256 } |
| 257 | 257 |
| 258 void GestureInterpreterLibevdevCros::OnGestureReady(const Gesture* gesture) { | 258 void GestureInterpreterLibevdevCros::OnGestureReady(const Gesture* gesture) { |
| 259 switch (gesture->type) { | 259 switch (gesture->type) { |
| (...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 501 continue; | 501 continue; |
| 502 | 502 |
| 503 // Ignore digi buttons (e.g. BTN_TOOL_FINGER). | 503 // Ignore digi buttons (e.g. BTN_TOOL_FINGER). |
| 504 if (key >= BTN_DIGI && key < BTN_WHEEL) | 504 if (key >= BTN_DIGI && key < BTN_WHEEL) |
| 505 continue; | 505 continue; |
| 506 | 506 |
| 507 if (allowed_keys_ && !allowed_keys_->count(key)) | 507 if (allowed_keys_ && !allowed_keys_->count(key)) |
| 508 continue; | 508 continue; |
| 509 | 509 |
| 510 // Dispatch key press or release to keyboard. | 510 // Dispatch key press or release to keyboard. |
| 511 keyboard_->OnKeyChange(key, value); | 511 key_callback_.Run(id_, key, value); |
| 512 } | 512 } |
| 513 } | 513 } |
| 514 | 514 |
| 515 // Update internal key state. | 515 // Update internal key state. |
| 516 for (unsigned long i = 0; i < EVDEV_BITS_TO_LONGS(KEY_CNT); ++i) | 516 for (unsigned long i = 0; i < EVDEV_BITS_TO_LONGS(KEY_CNT); ++i) |
| 517 prev_key_state_[i] = evdev->key_state_bitmask[i]; | 517 prev_key_state_[i] = evdev->key_state_bitmask[i]; |
| 518 } | 518 } |
| 519 | 519 |
| 520 } // namespace ui | 520 } // namespace ui |
| OLD | NEW |