All pastes #518738 Raw Edit

Anonymous

public text v1 · immutable
#518738 ·published 2007-05-29 12:12 UTC
rendered paste body
==== OUTPUT ====

leftwing@atlantis USB $ cc -I/usr/sfw/include -L/usr/sfw/lib -R/usr/sfw/lib -lusb test1.c -o test1 ; ./test1 
libusb test (JMC #1)
usb_init()...
usb_find_busses()...
usb_find_devices()...
busses = usb_get_busses()...
BUS: 001
    Device: 0430_00a2
        Vendor: 1072
        Product: 162
        Device Class:
            USB_CLASS_PER_INTERFACE

    Device: 046d_c043
        Vendor: 1133
        Product: 49219
         (Logitech)
        Device Class:
            USB_CLASS_PER_INTERFACE

    Device: 0430_100e
        Vendor: 1072
        Product: 4110
        Device Class:
            USB_CLASS_HUB

    Device: 0518_0001
        Vendor: 1304
        Product: 1
        Device Class:
            USB_CLASS_PER_INTERFACE

    Device: 0451_2046
        Vendor: 1105
        Product: 8262
        Device Class:
            USB_CLASS_HUB

    Device: 0451_1446
        Vendor: 1105
        Product: 5190
        Device Class:
            USB_CLASS_HUB

    Device: 0000_0000
        Vendor: 0
        Product: 0
        Device Class:
            USB_CLASS_HUB


==== SOURCE ====

#include <usb.h>
#include <stdio.h>
#include <stdlib.h>

void main(void)
{
	struct usb_bus *busses;
	struct usb_bus *bus;
	int c, i, a;

	printf("libusb test (JMC #1)\n");

	printf("usb_init()...\n");
	usb_init();
	
	printf("usb_find_busses()...\n");
	usb_find_busses();

	printf("usb_find_devices()...\n");
	usb_find_devices();

	printf("busses = usb_get_busses()...\n");
	busses = usb_get_busses();

	for (bus = busses; bus; bus = bus->next)
	{
		struct usb_device *dev;
		
		printf("BUS: %s\n", bus->dirname);
		
		for (dev = bus->devices; dev; dev = dev->next)
		{
			struct usb_device_descriptor *desc = &(dev->descriptor);
			printf("    Device: %s\n", dev->filename);
			printf("        Vendor: %d\n", desc->idVendor);
			printf("        Product: %d\n", desc->idProduct);

			if (desc->idVendor == 1133)
				printf("         (Logitech)\n");
			if (desc->idProduct == 2160)
				printf("         (Quickcam Express)\n");
			
			// Enumerate and print values for bDeviceClass:
			printf("        Device Class:\n");
			if (desc->bDeviceClass == USB_CLASS_PER_INTERFACE) printf("            USB_CLASS_PER_INTERFACE\n");
			if (desc->bDeviceClass == USB_CLASS_AUDIO) printf("            USB_CLASS_AUDIO\n");
			if (desc->bDeviceClass == USB_CLASS_COMM) printf("            USB_CLASS_COMM\n");
			if (desc->bDeviceClass == USB_CLASS_HID) printf("            USB_CLASS_HID\n");
			if (desc->bDeviceClass == USB_CLASS_PRINTER) printf("            USB_CLASS_PRINTER\n");
			if (desc->bDeviceClass == USB_CLASS_MASS_STORAGE) printf("            USB_CLASS_MASS_STORAGE\n");
			if (desc->bDeviceClass == USB_CLASS_HUB) printf("            USB_CLASS_HUB\n");
			if (desc->bDeviceClass == USB_CLASS_DATA) printf("            USB_CLASS_DATA\n");
			if (desc->bDeviceClass == USB_CLASS_VENDOR_SPEC) printf("            USB_CLASS_VENDOR_SPEC\n");
			
			printf("\n");
		}
	}

}