[fprint] discover_device function in examples
Daniel Drake
dan at reactivated.net
Sat Dec 1 12:53:12 GMT 2007
Andrei Tchijov wrote:
> Not a major thing .... but. All examples for libfprint use function
> "discover_device" which looks strange:
>
> struct fp_dscv_dev *discover_device(struct fp_dscv_dev
> **discovered_devs)
> {
> struct fp_dscv_dev *ddev = NULL;
> int i;
>
> for (i = 0; ddev = discovered_devs[i]; i++) {
> struct fp_driver *drv = fp_dscv_dev_get_driver(ddev);
> printf("Found device claimed by %s driver\n",
> fp_driver_get_full_name(drv));
> return ddev;
> }
>
> return ddev;
> }
>
> Unless I am greatly mistaken, "for" loop will run once (if
> discovered_devs is not empty) regardless of anything.
I wonder what I was thinking there. It's just supposed to select the
first device on the bus. No loop needed, obviously.
> struct fp_dscv_dev *discover_device(struct fp_dscv_dev
> **discovered_devs)
> {
> struct fp_dscv_dev *ddev = NULL;
> int i;
>
> for (i = 0; ddev = discovered_devs[i]; i++) {
> struct fp_driver *drv = fp_dscv_dev_get_driver(ddev);
> if( drv ) {
Fair guess, but for a valid device, driver will never be NULL.
I'll fix this for the next release.
Thanks,
Daniel
More information about the fprint
mailing list