/* USB::Interface#num_altsetting */ static VALUE rusb_interface_num_altsetting(VALUE v) { return INT2FIX(get_usb_interface(v)->num_altsetting); } /* USB::Interface#settings */ static VALUE rusb_interface_settings(VALUE v) { struct usb_interface *p = get_usb_interface(v); int i; VALUE altsetting = rb_ary_new2(p->num_altsetting); for (i = 0; i < p->num_altsetting; i++) rb_ary_store(altsetting, i, rusb_interface_descriptor_make(&p->altsetting[i], v)); return altsetting; }