/* USB::Device#descriptor_bDeviceSubClass */ static VALUE rusb_devdesc_bDeviceSubClass(VALUE v) { return INT2FIX(get_usb_device(v)->descriptor.bDeviceSubClass); } /* USB::Device#descriptor_bDeviceProtocol */ static VALUE rusb_devdesc_bDeviceProtocol(VALUE v) { return INT2FIX(get_usb_device(v)->descriptor.bDeviceProtocol); } /* USB::Device#descriptor_bMaxPacketSize0 */ static VALUE rusb_devdesc_bMaxPacketSize0(VALUE v) { return INT2FIX(get_usb_device(v)->descriptor.bMaxPacketSize0); } /* USB::Device#descriptor_idVendor */ static VALUE rusb_devdesc_idVendor(VALUE v) { return INT2FIX(get_usb_device(v)->descriptor.idVendor); } /* USB::Device#descriptor_idProduct */ static VALUE rusb_devdesc_idProduct(VALUE v) { return INT2FIX(get_usb_device(v)->descriptor.idProduct); } /* USB::Device#descriptor_bcdDevice */ static VALUE rusb_devdesc_bcdDevice(VALUE v) { return INT2FIX(get_usb_device(v)->descriptor.bcdDevice); } /* USB::Device#descriptor_iManufacturer */ static VALUE rusb_devdesc_iManufacturer(VALUE v) { return INT2FIX(get_usb_device(v)->descriptor.iManufacturer); } /* USB::Device#descriptor_iProduct */ static VALUE rusb_devdesc_iProduct(VALUE v) { return INT2FIX(get_usb_device(v)->descriptor.iProduct); } /* USB::Device#descriptor_iSerialNumber */ static VALUE rusb_devdesc_iSerialNumber(VALUE v) { return INT2FIX(get_usb_device(v)->descriptor.iSerialNumber); } /* USB::Device#descriptor_bNumConfigurations */ static VALUE rusb_devdesc_bNumConfigurations(VALUE v) { return INT2FIX(get_usb_device(v)->descriptor.bNumConfigurations); } /* USB::Device#configurations */ static VALUE rusb_device_config(VALUE v) { struct usb_device *device = get_usb_device(v); int i; VALUE children = rb_ary_new2(device->descriptor.bNumConfigurations); for (i = 0; i < device->descriptor.bNumConfigurations; i++) rb_ary_store(children, i, rusb_config_descriptor_make(&device->config[i], v)); return children; }