/* USB::Device#filename */ static VALUE rusb_device_filename(VALUE v) { return rb_str_new2(get_usb_device(v)->filename); } /* USB::Device#bus */ static VALUE rusb_device_bus(VALUE v) { return rusb_bus_make(get_usb_device(v)->bus, Qnil); } /* USB::Device#devnum */ static VALUE rusb_device_devnum(VALUE v) { return INT2FIX(get_usb_device(v)->devnum); } /* USB::Device#num_children */ static VALUE rusb_device_num_children(VALUE v) { return INT2FIX(get_usb_device(v)->num_children); } /* USB::Device#children */ static VALUE rusb_device_children(VALUE vdevice) { rusb_device_t *d = get_rusb_device(vdevice); struct usb_device *device = d->ptr; int i; VALUE children = rb_ary_new2(device->num_children); for (i = 0; i < device->num_children; i++) rb_ary_store(children, i, rusb_device_make(device->children[i], d->parent)); return children; }