| 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/touch_event_converter_evdev.h" | 5 #include "ui/events/ozone/evdev/touch_event_converter_evdev.h" |
| 6 | 6 |
| 7 #include <errno.h> | 7 #include <errno.h> |
| 8 #include <fcntl.h> | 8 #include <fcntl.h> |
| 9 #include <linux/input.h> | 9 #include <linux/input.h> |
| 10 #include <poll.h> | 10 #include <poll.h> |
| (...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 196 NOTIMPLEMENTED() << "invalid type: " << input.type; | 196 NOTIMPLEMENTED() << "invalid type: " << input.type; |
| 197 } | 197 } |
| 198 } | 198 } |
| 199 | 199 |
| 200 void TouchEventConverterEvdev::ProcessAbs(const input_event& input) { | 200 void TouchEventConverterEvdev::ProcessAbs(const input_event& input) { |
| 201 switch (input.code) { | 201 switch (input.code) { |
| 202 case ABS_MT_TOUCH_MAJOR: | 202 case ABS_MT_TOUCH_MAJOR: |
| 203 altered_slots_.set(current_slot_); | 203 altered_slots_.set(current_slot_); |
| 204 events_[current_slot_].major_ = input.value; | 204 events_[current_slot_].major_ = input.value; |
| 205 break; | 205 break; |
| 206 case ABS_X: | |
| 207 case ABS_MT_POSITION_X: | 206 case ABS_MT_POSITION_X: |
| 208 altered_slots_.set(current_slot_); | 207 altered_slots_.set(current_slot_); |
| 209 events_[current_slot_].x_ = TuxelsToPixels(input.value, | 208 events_[current_slot_].x_ = TuxelsToPixels(input.value, |
| 210 x_min_tuxels_, | 209 x_min_tuxels_, |
| 211 x_num_tuxels_, | 210 x_num_tuxels_, |
| 212 x_min_pixels_, | 211 x_min_pixels_, |
| 213 x_num_pixels_); | 212 x_num_pixels_); |
| 214 break; | 213 break; |
| 215 case ABS_Y: | |
| 216 case ABS_MT_POSITION_Y: | 214 case ABS_MT_POSITION_Y: |
| 217 altered_slots_.set(current_slot_); | 215 altered_slots_.set(current_slot_); |
| 218 events_[current_slot_].y_ = TuxelsToPixels(input.value, | 216 events_[current_slot_].y_ = TuxelsToPixels(input.value, |
| 219 y_min_tuxels_, | 217 y_min_tuxels_, |
| 220 y_num_tuxels_, | 218 y_num_tuxels_, |
| 221 y_min_pixels_, | 219 y_min_pixels_, |
| 222 y_num_pixels_); | 220 y_num_pixels_); |
| 223 break; | 221 break; |
| 224 case ABS_MT_TRACKING_ID: | 222 case ABS_MT_TRACKING_ID: |
| 225 altered_slots_.set(current_slot_); | 223 altered_slots_.set(current_slot_); |
| 226 if (input.value < 0) { | 224 if (input.value < 0) { |
| 227 events_[current_slot_].type_ = ET_TOUCH_RELEASED; | 225 events_[current_slot_].type_ = ET_TOUCH_RELEASED; |
| 228 } else { | 226 } else { |
| 229 events_[current_slot_].finger_ = input.value; | 227 events_[current_slot_].finger_ = input.value; |
| 230 events_[current_slot_].type_ = ET_TOUCH_PRESSED; | 228 events_[current_slot_].type_ = ET_TOUCH_PRESSED; |
| 231 } | 229 } |
| 232 break; | 230 break; |
| 233 case ABS_MT_PRESSURE: | 231 case ABS_MT_PRESSURE: |
| 234 case ABS_PRESSURE: | |
| 235 altered_slots_.set(current_slot_); | 232 altered_slots_.set(current_slot_); |
| 236 events_[current_slot_].pressure_ = input.value - pressure_min_; | 233 events_[current_slot_].pressure_ = input.value - pressure_min_; |
| 237 events_[current_slot_].pressure_ /= pressure_max_ - pressure_min_; | 234 events_[current_slot_].pressure_ /= pressure_max_ - pressure_min_; |
| 238 break; | 235 break; |
| 239 case ABS_MT_SLOT: | 236 case ABS_MT_SLOT: |
| 240 current_slot_ = input.value; | 237 current_slot_ = input.value; |
| 241 altered_slots_.set(current_slot_); | 238 altered_slots_.set(current_slot_); |
| 242 break; | 239 break; |
| 243 default: | 240 default: |
| 244 NOTIMPLEMENTED() << "invalid code for EV_ABS: " << input.code; | 241 DVLOG(5) << "unhandled code for EV_ABS: " << input.code; |
| 245 } | 242 } |
| 246 } | 243 } |
| 247 | 244 |
| 248 void TouchEventConverterEvdev::ProcessSyn(const input_event& input) { | 245 void TouchEventConverterEvdev::ProcessSyn(const input_event& input) { |
| 249 switch (input.code) { | 246 switch (input.code) { |
| 250 case SYN_REPORT: | 247 case SYN_REPORT: |
| 251 if (syn_dropped_) { | 248 if (syn_dropped_) { |
| 252 // Have to re-initialize. | 249 // Have to re-initialize. |
| 253 if (Reinitialize()) { | 250 if (Reinitialize()) { |
| 254 syn_dropped_ = false; | 251 syn_dropped_ = false; |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 297 | 294 |
| 298 // Subsequent events for this finger will be touch-move until it | 295 // Subsequent events for this finger will be touch-move until it |
| 299 // is released. | 296 // is released. |
| 300 events_[i].type_ = ET_TOUCH_MOVED; | 297 events_[i].type_ = ET_TOUCH_MOVED; |
| 301 } | 298 } |
| 302 } | 299 } |
| 303 altered_slots_.reset(); | 300 altered_slots_.reset(); |
| 304 } | 301 } |
| 305 | 302 |
| 306 } // namespace ui | 303 } // namespace ui |
| OLD | NEW |