+ int max_num_slots = abs_info_[ABS_MT_SLOT].maximum + 1;
+ // |request| is MT code + slots.
+ int32_t request[max_num_slots + 1];
+ for (unsigned int i = ABS_MT_SLOT + 1; i < ABS_MAX; ++i) {
+ memset(request, 0, sizeof(request));
+ request[0] = i;
+ if (HasAbsEvent(i))
+ if (!GetSlotValues(fd, request, max_num_slots + 1))
+ LOG(WARNING) << "Failed to get multitouch values for code " << i;
+
+ slot_values_[i - ABS_MT_SLOT - 1].assign(
+ request + 1, request + max_num_slots + 1);
+ }
+