Chromium Code Reviews| 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/devices/device_data_manager.h" | 5 #include "ui/events/devices/device_data_manager.h" |
| 6 | 6 |
| 7 #include "base/at_exit.h" | 7 #include "base/at_exit.h" |
| 8 #include "base/bind.h" | 8 #include "base/bind.h" |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "ui/events/devices/input_device_event_observer.h" | 10 #include "ui/events/devices/input_device_event_observer.h" |
| (...skipping 15 matching lines...) Expand all Loading... | |
| 26 | 26 |
| 27 DeviceDataManager::DeviceDataManager() { | 27 DeviceDataManager::DeviceDataManager() { |
| 28 CHECK(!instance_) << "Can not create multiple instances of DeviceDataManager"; | 28 CHECK(!instance_) << "Can not create multiple instances of DeviceDataManager"; |
| 29 instance_ = this; | 29 instance_ = this; |
| 30 | 30 |
| 31 base::AtExitManager::RegisterTask( | 31 base::AtExitManager::RegisterTask( |
| 32 base::Bind(&base::DeletePointer<DeviceDataManager>, this)); | 32 base::Bind(&base::DeletePointer<DeviceDataManager>, this)); |
| 33 | 33 |
| 34 for (int i = 0; i < kMaxDeviceNum; ++i) { | 34 for (int i = 0; i < kMaxDeviceNum; ++i) { |
| 35 touch_device_to_display_map_[i] = gfx::Display::kInvalidDisplayID; | 35 touch_device_to_display_map_[i] = gfx::Display::kInvalidDisplayID; |
| 36 touch_device_to_destination_display_map_[i] = | |
| 37 gfx::Display::kInvalidDisplayID; | |
| 36 touch_radius_scale_map_[i] = 1.0; | 38 touch_radius_scale_map_[i] = 1.0; |
| 37 } | 39 } |
| 38 } | 40 } |
| 39 | 41 |
| 40 DeviceDataManager::~DeviceDataManager() { | 42 DeviceDataManager::~DeviceDataManager() { |
| 41 CHECK_EQ(this, instance_); | 43 CHECK_EQ(this, instance_); |
| 42 instance_ = NULL; | 44 instance_ = NULL; |
| 43 } | 45 } |
| 44 | 46 |
| 45 // static | 47 // static |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 67 void DeviceDataManager::ClearTouchTransformerRecord() { | 69 void DeviceDataManager::ClearTouchTransformerRecord() { |
| 68 for (int i = 0; i < kMaxDeviceNum; i++) { | 70 for (int i = 0; i < kMaxDeviceNum; i++) { |
| 69 touch_device_transformer_map_[i] = gfx::Transform(); | 71 touch_device_transformer_map_[i] = gfx::Transform(); |
| 70 touch_device_to_display_map_[i] = gfx::Display::kInvalidDisplayID; | 72 touch_device_to_display_map_[i] = gfx::Display::kInvalidDisplayID; |
| 71 touch_radius_scale_map_[i] = 1.0; | 73 touch_radius_scale_map_[i] = 1.0; |
| 72 } | 74 } |
| 73 } | 75 } |
| 74 | 76 |
| 75 bool DeviceDataManager::IsTouchDeviceIdValid( | 77 bool DeviceDataManager::IsTouchDeviceIdValid( |
| 76 unsigned int touch_device_id) const { | 78 unsigned int touch_device_id) const { |
| 77 return (touch_device_id > 0 && touch_device_id < kMaxDeviceNum); | 79 return (touch_device_id > 0 && touch_device_id < kMaxDeviceNum); |
|
oshima
2015/02/27 02:37:43
optional: it may be safer to reset the table entry
pkotwicz
2015/02/27 02:47:06
My understanding is that there is no table entry i
oshima
2015/02/27 20:45:31
this is just a array, not map right? anyway, if th
pkotwicz
2015/03/01 16:04:00
I don't think I understand your concern
We check
| |
| 78 } | 80 } |
| 79 | 81 |
| 80 void DeviceDataManager::UpdateTouchInfoForDisplay( | 82 void DeviceDataManager::UpdateTouchInfoForDisplay( |
| 81 int64_t display_id, | 83 int64_t display_id, |
| 82 unsigned int touch_device_id, | 84 unsigned int touch_device_id, |
| 83 const gfx::Transform& touch_transformer) { | 85 const gfx::Transform& touch_transformer) { |
| 84 if (IsTouchDeviceIdValid(touch_device_id)) { | 86 if (IsTouchDeviceIdValid(touch_device_id)) { |
| 85 touch_device_to_display_map_[touch_device_id] = display_id; | 87 touch_device_to_display_map_[touch_device_id] = display_id; |
| 86 touch_device_transformer_map_[touch_device_id] = touch_transformer; | 88 touch_device_transformer_map_[touch_device_id] = touch_transformer; |
| 87 } | 89 } |
| (...skipping 24 matching lines...) Expand all Loading... | |
| 112 } | 114 } |
| 113 } | 115 } |
| 114 | 116 |
| 115 int64_t DeviceDataManager::GetDisplayForTouchDevice( | 117 int64_t DeviceDataManager::GetDisplayForTouchDevice( |
| 116 unsigned int touch_device_id) const { | 118 unsigned int touch_device_id) const { |
| 117 if (IsTouchDeviceIdValid(touch_device_id)) | 119 if (IsTouchDeviceIdValid(touch_device_id)) |
| 118 return touch_device_to_display_map_[touch_device_id]; | 120 return touch_device_to_display_map_[touch_device_id]; |
| 119 return gfx::Display::kInvalidDisplayID; | 121 return gfx::Display::kInvalidDisplayID; |
| 120 } | 122 } |
| 121 | 123 |
| 124 void DeviceDataManager::SetDestinationDisplayForTouchDevice( | |
| 125 unsigned int touch_device_id, | |
| 126 int64_t destination_display_id) { | |
| 127 if (IsTouchDeviceIdValid(touch_device_id)) { | |
| 128 touch_device_to_destination_display_map_[touch_device_id] = | |
| 129 destination_display_id; | |
| 130 } | |
| 131 } | |
| 132 | |
| 133 int64_t DeviceDataManager::GetDestinationDisplayForTouchDevice( | |
| 134 unsigned int touch_device_id) { | |
| 135 if (IsTouchDeviceIdValid(touch_device_id)) | |
| 136 return touch_device_to_destination_display_map_[touch_device_id]; | |
| 137 return gfx::Display::kInvalidDisplayID; | |
| 138 } | |
| 139 | |
| 122 void DeviceDataManager::OnTouchscreenDevicesUpdated( | 140 void DeviceDataManager::OnTouchscreenDevicesUpdated( |
| 123 const std::vector<TouchscreenDevice>& devices) { | 141 const std::vector<TouchscreenDevice>& devices) { |
| 124 if (devices.size() == touchscreen_devices_.size() && | 142 if (devices.size() == touchscreen_devices_.size() && |
| 125 std::equal(devices.begin(), | 143 std::equal(devices.begin(), |
| 126 devices.end(), | 144 devices.end(), |
| 127 touchscreen_devices_.begin(), | 145 touchscreen_devices_.begin(), |
| 128 InputDeviceEquals)) { | 146 InputDeviceEquals)) { |
| 129 return; | 147 return; |
| 130 } | 148 } |
| 131 touchscreen_devices_ = devices; | 149 touchscreen_devices_ = devices; |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 165 | 183 |
| 166 void DeviceDataManager::AddObserver(InputDeviceEventObserver* observer) { | 184 void DeviceDataManager::AddObserver(InputDeviceEventObserver* observer) { |
| 167 observers_.AddObserver(observer); | 185 observers_.AddObserver(observer); |
| 168 } | 186 } |
| 169 | 187 |
| 170 void DeviceDataManager::RemoveObserver(InputDeviceEventObserver* observer) { | 188 void DeviceDataManager::RemoveObserver(InputDeviceEventObserver* observer) { |
| 171 observers_.RemoveObserver(observer); | 189 observers_.RemoveObserver(observer); |
| 172 } | 190 } |
| 173 | 191 |
| 174 } // namespace ui | 192 } // namespace ui |
| OLD | NEW |