+void
+spi_remove_device_listeners (SpiDEController *controller, const char *bus_name)
+{
+ GList *l, *tmp;
+
+ for (l = controller->mouse_listeners; l; l = tmp)
+ {
+ DEControllerListener *listener = l->data;
+ tmp = l->next;
+ if (!strcmp (listener->bus_name, bus_name))
+ {
+printf("Removing mouse listener %s %s\n", listener->bus_name, listener->path);
+ spi_controller_deregister_device_listener (controller, listener);
+ }
+ }
+ for (l = controller->key_listeners; l; l = tmp)
+ {
+ DEControllerKeyListener *key_listener = l->data;
+ tmp = l->next;
+ if (!strcmp (key_listener->listener.bus_name, bus_name))
+ {
+printf("Removing key listener: %s %s\n", key_listener->listener.bus_name, key_listener->listener.path);
+ spi_deregister_controller_key_listener (controller, key_listener);
+ }
+ }
+}
+