API documentation
[platform/upstream/libusb.git] / examples / lsusb.c
index d093709..ca39bd9 100644 (file)
 
 #include <libusb/libusb.h>
 
-void print_devs(libusb_dev *devs)
+void print_devs(libusb_device **devs)
 {
-       libusb_dev *dev;
+       libusb_device *dev;
+       int i = 0;
 
-       for (dev = devs; dev; dev = libusb_dev_next(dev)) {
-               struct usb_dev_descriptor *desc = libusb_dev_get_descriptor(dev);
+       while ((dev = devs[i++]) != NULL) {
+               struct libusb_device_descriptor *desc =
+                       libusb_get_device_descriptor(dev);
                printf("%04x:%04x\n", desc->idVendor, desc->idProduct);
        }
 }
 
 int main(void)
 {
-       libusb_dev *devs;
-       libusb_init(0);
-       libusb_find_devices();
-       devs = libusb_get_devices();
+       libusb_device **devs;
+       int r;
+
+       r = libusb_init();
+       if (r < 0)
+               return r;
+
+       r = libusb_get_device_list(&devs);
+       if (r < 0)
+               return r;
 
        print_devs(devs);
+       libusb_free_device_list(devs, 1);
 
        libusb_exit();
        return 0;