libinput_seat_unref(device->base.seat);
libevdev_free(device->evdev);
udev_device_unref(device->udev_device);
+ evdev_device_free_aux_data(device);
free(device->mt.slots);
free(device);
}
}
}
}
+
+void
+evdev_device_free_aux_data(struct evdev_device *device)
+{
+ int i;
+ struct mt_aux_data *aux_data, *aux_data_tmp;
+
+ for (i = 0; i < (int)device->mt.slots_len; i++) {
+ list_for_each_safe(aux_data, aux_data_tmp, &device->mt.aux_data_list[i], link) {
+ list_remove(&aux_data->link);
+ free(aux_data);
+ }
+ list_remove(&device->mt.aux_data_list[i]);
+ }
+ free(device->mt.aux_data_list);
+}
void
evdev_device_set_aux_data(struct evdev_device *device, uint32_t code);
+
+void
+evdev_device_free_aux_data(struct evdev_device *device);
#endif /* EVDEV_H */