/* USB::Configuration#bDescriptorType */ static VALUE rusb_config_bDescriptorType(VALUE v) { return INT2FIX(get_usb_config_descriptor(v)->bDescriptorType); } /* USB::Configuration#wTotalLength */ static VALUE rusb_config_wTotalLength(VALUE v) { return INT2FIX(get_usb_config_descriptor(v)->wTotalLength); } /* USB::Configuration#bNumInterfaces */ static VALUE rusb_config_bNumInterfaces(VALUE v) { return INT2FIX(get_usb_config_descriptor(v)->bNumInterfaces); } /* USB::Configuration#bConfigurationValue */ static VALUE rusb_config_bConfigurationValue(VALUE v) { return INT2FIX(get_usb_config_descriptor(v)->bConfigurationValue); } /* USB::Configuration#iConfiguration */ static VALUE rusb_config_iConfiguration(VALUE v) { return INT2FIX(get_usb_config_descriptor(v)->iConfiguration); } /* USB::Configuration#bmAttributes */ static VALUE rusb_config_bmAttributes(VALUE v) { return INT2FIX(get_usb_config_descriptor(v)->bmAttributes); } /* USB::Configuration#bMaxPower */ static VALUE rusb_config_bMaxPower(VALUE v) { return INT2FIX(get_usb_config_descriptor(v)->MaxPower); } /* USB::Configuration#interfaces */ static VALUE rusb_config_interfaces(VALUE v) { struct usb_config_descriptor *p = get_usb_config_descriptor(v); int i; VALUE interface = rb_ary_new2(p->bNumInterfaces); for (i = 0; i < p->bNumInterfaces; i++) rb_ary_store(interface, i, rusb_interface_make(&p->interface[i], v)); return interface; }