Added set_configuration method in libusb

This commit is contained in:
Kovid Goyal 2007-01-16 19:57:23 +00:00
parent 8c566b877e
commit 94387a023f

View File

@ -138,14 +138,6 @@ class Bus(Structure):
return ans return ans
return property(doc=doc, fget=fget) return property(doc=doc, fget=fget)
class NTStatus(Structure):
_fields_ = [\
('code', c_uint, 16),
('facility', c_uint, 13),
('c', c_uint, 1),
('sev', c_uint, 2)
]
class DeviceHandle(Structure): class DeviceHandle(Structure):
_fields_ = [\ _fields_ = [\
('fd', c_int), \ ('fd', c_int), \
@ -161,14 +153,18 @@ class DeviceHandle(Structure):
""" Close this DeviceHandle """ """ Close this DeviceHandle """
_libusb.usb_close(byref(self)) _libusb.usb_close(byref(self))
def set_configuration(self, num):
ret = _libusb.usb_set_configuration(byref(self), num)
if ret < 0:
raise Error('Failed to set device configuration to: ' + num)
def claim_interface(self, num): def claim_interface(self, num):
""" """
Claim interface C{num} on device. Claim interface C{num} on device.
Must be called before doing anything witht the device. Must be called before doing anything witht the device.
""" """
ret = _libusb.usb_claim_interface(byref(self), num) ret = _libusb.usb_claim_interface(byref(self), num)
if _iswindows:
return
if -ret == ENOMEM: if -ret == ENOMEM:
raise Error("Insufficient memory to claim interface") raise Error("Insufficient memory to claim interface")
elif -ret == EBUSY: elif -ret == EBUSY:
@ -296,8 +292,8 @@ _libusb.usb_reset.restype = c_int
_libusb.usb_control_msg.restype = c_int _libusb.usb_control_msg.restype = c_int
_libusb.usb_bulk_read.restype = c_int _libusb.usb_bulk_read.restype = c_int
_libusb.usb_bulk_write.restype = c_int _libusb.usb_bulk_write.restype = c_int
if _iswindows: _libusb.usb_set_configuration.argtypes = [POINTER(DeviceHandle), c_int]
_libusb.usb_claim_interface.restype = NTStatus _libusb.usb_set_configuration.restype = c_int
_libusb.usb_init() _libusb.usb_init()
def busses(): def busses():