Bastien Nocera wrote:
> Heya,
> 
> I'm thinking of the way we could handle hotpluggable devices in fprintd.
> 
> - Make libfprint export an FDI file that tells us all the fingerprint
> reader devices it supports (adding an internal function giving us back a
> struct containing that)

Would be nice if we could generate it at compile time instead, but the 
idea sounds OK. I think you mentioned this was a requirement during our 
earlier discussions anyway, so that HAL knows which USB devices are 
supported fingerprint readers.

> - Monitor hal inside fprintd, and get told when fingerprint devices are
> added/removed (graceful failure when removed and in use, make sure that
> libusb re-reads the full list of usb devices when
> libusb_get_device_list() is called)

Yes, libusb re-enumerates the buses. It should also handle disconnected 
devices OK, but not sure how libfprint deals with that right now.

> - internally, IDs for devices should be gathered from their position on
> the usb bus, rather than just incrementing (that would mean the path to
> the devices would stay constant across runs, rather than being
> reordered). We'd need to modify libfprint to give that to us from
> libusb.

This is more tricky, since USB bus topology can completely change in a 
flash. There have been some recent discussions on the libusb mailing 
list about this

> - DeviceAdded/DeviceRemoved in the manager (path to the object in the
> signals)
> 
> What do you think?

It sounds like it would work, but the correct solution would be to have 
libusb provide the backing for this functionality. libusb would offer a 
callback mechanism to inform library users when USB devices are 
connected or disconnected. libfprint would bubble up this interface (for 
recognised devices only) to library users like fprintd.

I'm planning this for libusb-1.1. I am planning to use HAL for device 
notifications, and maybe offer some lightweight options for embedded 
systems too. I hope that libusb-1.1 isn't too far off in the future - 
1.0 is soon to enter beta, and 1.1 will be a fairly small incremental 
release (only planned features right now are some internal cleanups and 
device hotplug)

Is hotpluggable device notifications a high priority requirement? Right 
now we do only get the device list at fprintd startup, but how about if 
we obtained the device list in fprint_manager_get_devices()?

Daniel

_______________________________________________
fprint mailing list
[email protected]
http://lists.reactivated.net/mailman/listinfo/fprint

Reply via email to