Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
# Returns whole buffers
self.assertEqual(
bytearray(itertools.chain(*transfer.getISOBufferList())),
buff,
)
# Returns actually transfered data, so here nothing
self.assertEqual(bytearray(
itertools.chain(*[x for _, x in transfer.iterISO()])),
bytearray(),
)
# Fake reception of whole transfers
c_transfer = getattr(
transfer,
'_' + transfer.__class__.__name__ + '__transfer'
)
for iso_metadata in libusb1.get_iso_packet_list(c_transfer):
iso_metadata.actual_length = iso_metadata.length
# Now iterISO returns everythig
self.assertEqual(bytearray(
itertools.chain(*[x for _, x in transfer.iterISO()])),
buff,
)
raise ValueError('Too many ISO transfer lengths (%i), there are '
'only %i ISO transfers available' % (configured_iso_packets,
num_iso_packets))
if sum(iso_transfer_length_list) > buffer_length:
raise ValueError('ISO transfers too long (%i), there are only '
'%i bytes available' % (sum(iso_transfer_length_list),
buffer_length))
transfer_p = self.__transfer
self.__initialized = False
self.__transfer_buffer = string_buffer
self.__user_data = user_data
libusb1.libusb_fill_iso_transfer(transfer_p, self.__handle,
endpoint, string_buffer, buffer_length, configured_iso_packets,
self.__ctypesCallbackWrapper, None, timeout)
for length, iso_packet_desc in zip(iso_transfer_length_list,
libusb1.get_iso_packet_list(transfer_p)):
if length <= 0:
raise ValueError('Negative/null length transfers are not '
'possible.')
iso_packet_desc.length = length
self.__callback = callback
self.__initialized = True
'%i bytes available' % (
sum(iso_transfer_length_list),
buffer_length,
)
)
transfer_p = self.__transfer
self.__initialized = False
self.__transfer_buffer = string_buffer
self.__user_data = user_data
libusb1.libusb_fill_iso_transfer(
transfer_p, self.__handle, endpoint, string_buffer, buffer_length,
configured_iso_packets, self.__ctypesCallbackWrapper, None,
timeout)
for length, iso_packet_desc in zip(
iso_transfer_length_list,
libusb1.get_iso_packet_list(transfer_p)):
if length <= 0:
raise ValueError(
'Negative/null length transfers are not possible.'
)
iso_packet_desc.length = length
self.__callback = callback
self.__initialized = True
- actual_length
- status
(see libusb1's API documentation for their signification)
Should not be called on a submitted transfer (except for 'length'
values).
"""
transfer_p = self.__transfer
transfer = transfer_p.contents
if transfer.type != libusb1.LIBUSB_TRANSFER_TYPE_ISOCHRONOUS:
raise TypeError('This method cannot be called on non-iso '
'transfers.')
return [{
'length': x.length,
'actual_length': x.actual_length,
'status': x.status,
} for x in libusb1.get_iso_packet_list(transfer_p)]
- status
(see libusb1's API documentation for their signification)
Returned list is consistent with getISOBufferList return value.
Should not be called on a submitted transfer (except for 'length'
values).
"""
transfer_p = self.__transfer
transfer = transfer_p.contents
if transfer.type != libusb1.LIBUSB_TRANSFER_TYPE_ISOCHRONOUS:
raise TypeError('This method cannot be called on non-iso '
'transfers.')
return [{
'length': x.length,
'actual_length': x.actual_length,
'status': x.status,
} for x in libusb1.get_iso_packet_list(transfer_p)]
configured_iso_packets = len(iso_transfer_length_list)
if configured_iso_packets > num_iso_packets:
raise ValueError('Too many ISO transfer lengths (%i), there are '
'only %i ISO transfers available' % (configured_iso_packets,
num_iso_packets))
if sum(iso_transfer_length_list) > buffer_length:
raise ValueError('ISO transfers too long (%i), there are only '
'%i bytes available' % (sum(iso_transfer_length_list),
buffer_length))
transfer_p = self.__transfer
self.__initialized = False
libusb1.libusb_fill_iso_transfer(transfer_p, self.__handle,
endpoint, string_buffer, buffer_length, num_iso_packets,
self.__ctypesCallbackWrapper, user_data, timeout)
for length, iso_packet_desc in zip(iso_transfer_length_list,
libusb1.get_iso_packet_list(transfer_p)):
if length <= 0:
raise ValueError('Negative/null transfer length are not '
'possible.')
iso_packet_desc.length = length
self.__callback = callback
self.__initialized = True
Generator yielding (status, buffer) for each isochornous transfer.
buffer is truncated to actual_length.
This is more efficient than calling both getISOBufferList and
getISOSetupList when receiving data.
Should not be called on a submitted transfer.
"""
transfer_p = self.__transfer
transfer = transfer_p.contents
# pylint: disable=undefined-variable
if transfer.type != TRANSFER_TYPE_ISOCHRONOUS:
# pylint: enable=undefined-variable
raise TypeError(
'This method cannot be called on non-iso transfers.'
)
buffer_position = transfer.buffer
for iso_transfer in libusb1.get_iso_packet_list(transfer_p):
yield (
iso_transfer.status,
string_at(buffer_position, iso_transfer.actual_length),
)
buffer_position += iso_transfer.length
"""
transfer_p = self.__transfer
transfer = transfer_p.contents
# pylint: disable=undefined-variable
if transfer.type != TRANSFER_TYPE_ISOCHRONOUS:
# pylint: enable=undefined-variable
raise TypeError(
'This method cannot be called on non-iso transfers.'
)
return [
{
'length': x.length,
'actual_length': x.actual_length,
'status': x.status,
}
for x in libusb1.get_iso_packet_list(transfer_p)
]