This make it possible to use them with allocated string buffers. --- netmd/libusb1.py | 21 ++++++++++++++------- 1 files changed, 14 insertions(+), 7 deletions(-)
diff --git a/netmd/libusb1.py b/netmd/libusb1.py index 3f61cee..7c99505 100644 --- a/netmd/libusb1.py +++ b/netmd/libusb1.py @@ -633,8 +633,9 @@ libusb_free_transfer = libusb.libusb_free_transfer libusb_free_transfer.argtypes = [libusb_transfer_p] libusb_free_transfer.restype = None -def libusb_fill_control_transfer(transfer, dev_handle, buffer, callback, +def libusb_fill_control_transfer(transfer_p, dev_handle, buffer, callback, user_data, timeout): + transfer = transfer_p.contents transfer.dev_handle = dev_handle transfer.endpoint = 0 transfer.type = LIBUSB_TRANSFER_TYPE_CONTROL @@ -646,8 +647,9 @@ def libusb_fill_control_transfer(transfer, dev_handle, buffer, callback, transfer.user_data = user_data transfer.callback = callback -def libusb_fill_bulk_transfer(transfer, dev_handle, endpoint, buffer, length, +def libusb_fill_bulk_transfer(transfer_p, dev_handle, endpoint, buffer, length, callback, user_data, timeout): + transfer = transfer_p.contents transfer.dev_handle = dev_handle transfer.endpoint = endpoint transfer.type = LIBUSB_TRANSFER_TYPE_BULK @@ -657,8 +659,9 @@ def libusb_fill_bulk_transfer(transfer, dev_handle, endpoint, buffer, length, transfer.user_data = user_data transfer.callback = callback -def libusb_fill_interrupt_transfer(transfer, dev_handle, endpoint, buffer, +def libusb_fill_interrupt_transfer(transfer_p, dev_handle, endpoint, buffer, length, callback, user_data, timeout): + transfer = transfer_p.contents transfer.dev_handle = dev_handle transfer.endpoint = endpoint transfer.type = LIBUSB_TRANSFER_TYPE_INTERRUPT @@ -668,8 +671,9 @@ def libusb_fill_interrupt_transfer(transfer, dev_handle, endpoint, buffer, transfer.user_data = user_data transfer.callback = callback -def libusb_fill_iso_transfer(transfer, dev_handle, endpoint, buffer, length, +def libusb_fill_iso_transfer(transfer_p, dev_handle, endpoint, buffer, length, num_iso_packets, callback, user_data, timeout): + transfer = transfer_p.contents transfer.dev_handle = dev_handle transfer.endpoint = endpoint transfer.type = LIBUSB_TRANSFER_TYPE_ISOCHRONOUS @@ -680,11 +684,13 @@ def libusb_fill_iso_transfer(transfer, dev_handle, endpoint, buffer, length, transfer.user_data = user_data transfer.callback = callback -def libusb_set_iso_packet_lengths(transfer, length): +def libusb_set_iso_packet_lengths(transfer_p, length): + transfer = transfer_p.contents for i in xrange(transfer.num_iso_packets): transfer.iso_packet_desc[i].length = length -def libusb_get_iso_packet_buffer(transfer, packet): +def libusb_get_iso_packet_buffer(transfer_p, packet): + transfer = transfer_p.contents offset = 0 if packet >= transfer.num_iso_packets: return None @@ -692,7 +698,8 @@ def libusb_get_iso_packet_buffer(transfer, packet): offset += transfer.iso_packet_desc[i].length return transfer.buffer[offset:] -def libusb_get_iso_packet_buffer_simple(transfer, packet): +def libusb_get_iso_packet_buffer_simple(transfer_p, packet): + transfer = transfer_p.contents if packet >= transfer.num_iso_packets: return None return transfer.buffer[transfer.iso_packet_desc[0].length * packet:]