| 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 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 107 x_num_tuxels_ -= cal.bezel_left + cal.bezel_right; | 107 x_num_tuxels_ -= cal.bezel_left + cal.bezel_right; |
| 108 y_min_tuxels_ += cal.bezel_top; | 108 y_min_tuxels_ += cal.bezel_top; |
| 109 y_num_tuxels_ -= cal.bezel_top + cal.bezel_bottom; | 109 y_num_tuxels_ -= cal.bezel_top + cal.bezel_bottom; |
| 110 | 110 |
| 111 VLOG(1) << "applying touch calibration: " | 111 VLOG(1) << "applying touch calibration: " |
| 112 << base::StringPrintf("[%d, %d, %d, %d]", cal.bezel_left, | 112 << base::StringPrintf("[%d, %d, %d, %d]", cal.bezel_left, |
| 113 cal.bezel_right, cal.bezel_top, | 113 cal.bezel_right, cal.bezel_top, |
| 114 cal.bezel_bottom); | 114 cal.bezel_bottom); |
| 115 } | 115 } |
| 116 | 116 |
| 117 native_size_ = gfx::Size(x_num_tuxels_, y_num_tuxels_); | |
| 118 | |
| 119 events_.resize(touch_points_); | 117 events_.resize(touch_points_); |
| 120 for (size_t i = 0; i < events_.size(); ++i) { | 118 for (size_t i = 0; i < events_.size(); ++i) { |
| 121 events_[i].finger_ = info.GetSlotValue(ABS_MT_TRACKING_ID, i); | 119 events_[i].finger_ = info.GetSlotValue(ABS_MT_TRACKING_ID, i); |
| 122 events_[i].type_ = | 120 events_[i].type_ = |
| 123 events_[i].finger_ < 0 ? ET_TOUCH_RELEASED : ET_TOUCH_PRESSED; | 121 events_[i].finger_ < 0 ? ET_TOUCH_RELEASED : ET_TOUCH_PRESSED; |
| 124 events_[i].x_ = info.GetSlotValue(ABS_MT_POSITION_X, i); | 122 events_[i].x_ = info.GetSlotValue(ABS_MT_POSITION_X, i); |
| 125 events_[i].y_ = info.GetSlotValue(ABS_MT_POSITION_Y, i); | 123 events_[i].y_ = info.GetSlotValue(ABS_MT_POSITION_Y, i); |
| 126 events_[i].radius_x_ = info.GetSlotValue(ABS_MT_TOUCH_MAJOR, i); | 124 events_[i].radius_x_ = info.GetSlotValue(ABS_MT_TOUCH_MAJOR, i); |
| 127 events_[i].radius_y_ = info.GetSlotValue(ABS_MT_TOUCH_MINOR, i); | 125 events_[i].radius_y_ = info.GetSlotValue(ABS_MT_TOUCH_MINOR, i); |
| 128 events_[i].pressure_ = info.GetSlotValue(ABS_MT_PRESSURE, i); | 126 events_[i].pressure_ = info.GetSlotValue(ABS_MT_PRESSURE, i); |
| 129 } | 127 } |
| 130 } | 128 } |
| 131 | 129 |
| 132 bool TouchEventConverterEvdev::Reinitialize() { | 130 bool TouchEventConverterEvdev::Reinitialize() { |
| 133 EventDeviceInfo info; | 131 EventDeviceInfo info; |
| 134 if (info.Initialize(fd_)) { | 132 if (info.Initialize(fd_)) { |
| 135 Initialize(info); | 133 Initialize(info); |
| 136 return true; | 134 return true; |
| 137 } | 135 } |
| 138 return false; | 136 return false; |
| 139 } | 137 } |
| 140 | 138 |
| 141 bool TouchEventConverterEvdev::HasTouchscreen() const { | 139 bool TouchEventConverterEvdev::HasTouchscreen() const { |
| 142 return true; | 140 return true; |
| 143 } | 141 } |
| 144 | 142 |
| 145 gfx::Size TouchEventConverterEvdev::GetTouchscreenSize() const { | 143 gfx::Size TouchEventConverterEvdev::GetTouchscreenSize() const { |
| 146 return native_size_; | 144 return gfx::Size(x_num_tuxels_, y_num_tuxels_); |
| 147 } | 145 } |
| 148 | 146 |
| 149 int TouchEventConverterEvdev::GetTouchPoints() const { | 147 int TouchEventConverterEvdev::GetTouchPoints() const { |
| 150 return touch_points_; | 148 return touch_points_; |
| 151 } | 149 } |
| 152 | 150 |
| 153 void TouchEventConverterEvdev::OnFileCanReadWithoutBlocking(int fd) { | 151 void TouchEventConverterEvdev::OnFileCanReadWithoutBlocking(int fd) { |
| 154 input_event inputs[MAX_FINGERS * 6 + 1]; | 152 input_event inputs[MAX_FINGERS * 6 + 1]; |
| 155 ssize_t read_size = read(fd, inputs, sizeof(inputs)); | 153 ssize_t read_size = read(fd, inputs, sizeof(inputs)); |
| 156 if (read_size < 0) { | 154 if (read_size < 0) { |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 281 | 279 |
| 282 // Subsequent events for this finger will be touch-move until it | 280 // Subsequent events for this finger will be touch-move until it |
| 283 // is released. | 281 // is released. |
| 284 events_[i].type_ = ET_TOUCH_MOVED; | 282 events_[i].type_ = ET_TOUCH_MOVED; |
| 285 events_[i].altered_ = false; | 283 events_[i].altered_ = false; |
| 286 } | 284 } |
| 287 } | 285 } |
| 288 } | 286 } |
| 289 | 287 |
| 290 } // namespace ui | 288 } // namespace ui |
| OLD | NEW |