/* USB::DevHandle#usb_get_string(index, langid, buf) */
static VALUE
rusb_get_string(
VALUE v,
VALUE vindex,
VALUE vlangid,
VALUE vbuf)
{
usb_dev_handle *p = get_usb_devhandle(v);
int index = NUM2INT(vindex);
int langid = NUM2INT(vlangid);
char *buf;
int buflen;
int ret;
StringValue(vbuf);
rb_str_modify(vbuf);
buf = RSTRING_PTR(vbuf);
buflen = RSTRING_LEN(vbuf);
ret = usb_get_string(p, index, langid, buf, buflen);
check_usb_error("usb_get_string", ret);
return INT2NUM(ret);
}