/* USB::Setting#bAlternateSetting */ static VALUE rusb_setting_bAlternateSetting(VALUE v) { return INT2FIX(get_usb_interface_descriptor(v)->bAlternateSetting); } /* USB::Setting#bNumEndpoints */ static VALUE rusb_setting_bNumEndpoints(VALUE v) { return INT2FIX(get_usb_interface_descriptor(v)->bNumEndpoints); } /* USB::Setting#bInterfaceClass */ static VALUE rusb_setting_bInterfaceClass(VALUE v) { return INT2FIX(get_usb_interface_descriptor(v)->bInterfaceClass); } /* USB::Setting#bInterfaceSubClass */ static VALUE rusb_setting_bInterfaceSubClass(VALUE v) { return INT2FIX(get_usb_interface_descriptor(v)->bInterfaceSubClass); } /* USB::Setting#bInterfaceProtocol */ static VALUE rusb_setting_bInterfaceProtocol(VALUE v) { return INT2FIX(get_usb_interface_descriptor(v)->bInterfaceProtocol); } /* USB::Setting#iInterface */ static VALUE rusb_setting_iInterface(VALUE v) { return INT2FIX(get_usb_interface_descriptor(v)->iInterface); } /* USB::Setting#endpoints */ static VALUE rusb_setting_endpoints(VALUE v) { struct usb_interface_descriptor *p = get_usb_interface_descriptor(v); int i; VALUE endpoint = rb_ary_new2(p->bNumEndpoints); for (i = 0; i < p->bNumEndpoints; i++) rb_ary_store(endpoint, i, rusb_endpoint_descriptor_make(&p->endpoint[i], v)); return endpoint; }