| Index: ui/events/x/device_data_manager.cc
|
| diff --git a/ui/events/x/device_data_manager.cc b/ui/events/x/device_data_manager.cc
|
| index 12dfb0c834023659410c92f359ea6e9c772b6cac..e3e91deaa21066838441111593ae6a3096b717ae 100644
|
| --- a/ui/events/x/device_data_manager.cc
|
| +++ b/ui/events/x/device_data_manager.cc
|
| @@ -582,9 +582,8 @@ bool DeviceDataManager::GetDataRange(unsigned int deviceid,
|
| }
|
|
|
| void DeviceDataManager::SetDeviceListForTest(
|
| - const std::vector<unsigned int>& devices,
|
| - const std::vector<unsigned int>& cmt_devices,
|
| - const std::vector<unsigned int>& touchpads) {
|
| + const std::vector<unsigned int>& touchscreen,
|
| + const std::vector<unsigned int>& cmt_devices) {
|
| for (int i = 0; i < kMaxDeviceNum; ++i) {
|
| valuator_count_[i] = 0;
|
| valuator_lookup_[i].clear();
|
| @@ -595,44 +594,59 @@ void DeviceDataManager::SetDeviceListForTest(
|
| last_seen_valuator_[i][j].clear();
|
| }
|
|
|
| - for (size_t i = 0; i < devices.size(); i++) {
|
| - unsigned int deviceid = devices[i];
|
| - valuator_lookup_[deviceid].resize(DT_LAST_ENTRY, -1);
|
| - data_type_lookup_[deviceid].resize(DT_LAST_ENTRY, DT_LAST_ENTRY);
|
| - valuator_min_[deviceid].resize(DT_LAST_ENTRY, 0);
|
| - valuator_max_[deviceid].resize(DT_LAST_ENTRY, 0);
|
| - for (int j = 0; j < kMaxSlotNum; j++)
|
| - last_seen_valuator_[deviceid][j].resize(DT_LAST_ENTRY, 0);
|
| + for (size_t i = 0; i < touchscreen.size(); i++) {
|
| + unsigned int deviceid = touchscreen[i];
|
| + InitializeValuatorsForTest(deviceid, kTouchDataTypeStart, kTouchDataTypeEnd,
|
| + 0, 1000);
|
| }
|
|
|
| cmt_devices_.reset();
|
| for (size_t i = 0; i < cmt_devices.size(); ++i) {
|
| - unsigned int deviceid = devices[i];
|
| + unsigned int deviceid = cmt_devices[i];
|
| cmt_devices_[deviceid] = true;
|
| + touchpads_[deviceid] = true;
|
| + InitializeValuatorsForTest(deviceid, kCMTDataTypeStart, kCMTDataTypeEnd,
|
| + -1000, 1000);
|
| }
|
| +}
|
|
|
| - touchpads_.reset();
|
| - for (size_t i = 0; i < touchpads.size(); ++i) {
|
| - unsigned int deviceid = devices[i];
|
| - touchpads_[deviceid] = true;
|
| +void DeviceDataManager::SetValuatorDataForTest(XIDeviceEvent* xievent,
|
| + DataType type,
|
| + double value) {
|
| + int index = valuator_lookup_[xievent->deviceid][type];
|
| + CHECK(!XIMaskIsSet(xievent->valuators.mask, index));
|
| + CHECK(index >= 0 && index < valuator_count_[xievent->deviceid]);
|
| + XISetMask(xievent->valuators.mask, index);
|
| +
|
| + double* valuators = xievent->valuators.values;
|
| + for (int i = 0; i < index; ++i) {
|
| + if (XIMaskIsSet(xievent->valuators.mask, i))
|
| + valuators++;
|
| }
|
| + for (int i = valuators - xievent->valuators.values;
|
| + i < DT_LAST_ENTRY - 1; ++i)
|
| + xievent->valuators.values[i + 1] = xievent->valuators.values[i];
|
| + *valuators = value;
|
| }
|
|
|
| -void DeviceDataManager::SetDeviceValuatorForTest(int deviceid,
|
| - int val_index,
|
| - DataType data_type,
|
| - double min,
|
| - double max) {
|
| - valuator_lookup_[deviceid][data_type] = val_index;
|
| - data_type_lookup_[deviceid][val_index] = data_type;
|
| - valuator_min_[deviceid][data_type] = min;
|
| - valuator_max_[deviceid][data_type] = max;
|
| -
|
| - // Recalulate the number of valuators for the device.
|
| - valuator_count_[deviceid] = 0;
|
| - for (size_t i = 0; i < DT_LAST_ENTRY; ++i) {
|
| - if (valuator_lookup_[deviceid][i] != -1)
|
| - valuator_count_[deviceid]++;
|
| +void DeviceDataManager::InitializeValuatorsForTest(int deviceid,
|
| + int start_valuator,
|
| + int end_valuator,
|
| + double min_value,
|
| + double max_value) {
|
| + valuator_lookup_[deviceid].resize(DT_LAST_ENTRY, -1);
|
| + data_type_lookup_[deviceid].resize(DT_LAST_ENTRY, DT_LAST_ENTRY);
|
| + valuator_min_[deviceid].resize(DT_LAST_ENTRY, 0);
|
| + valuator_max_[deviceid].resize(DT_LAST_ENTRY, 0);
|
| + for (int j = 0; j < kMaxSlotNum; j++)
|
| + last_seen_valuator_[deviceid][j].resize(DT_LAST_ENTRY, 0);
|
| + for (int j = start_valuator; j <= end_valuator; ++j) {
|
| + valuator_lookup_[deviceid][j] = valuator_count_[deviceid];
|
| + data_type_lookup_[deviceid][valuator_count_[deviceid]] = j;
|
| + valuator_min_[deviceid][j] = min_value;
|
| + valuator_max_[deviceid][j] = max_value;
|
| + valuator_count_[deviceid]++;
|
| }
|
| }
|
| +
|
| } // namespace ui
|
|
|