Revert "Use the calculated max iso packet size."

The libusb_get_max_iso_packet_size ignores the endpoint information and
will return the same size for all endpoints, even if the current
alternative configuration does not support given size.

This reverts commit a6e284610b.
This commit is contained in:
Sebastian Zagrodzki
2017-02-05 16:00:53 +01:00
parent a6e284610b
commit 4319ef2cc2

View File

@@ -37,8 +37,10 @@ func iso_callback(cptr unsafe.Pointer) {
}
func (end *endpoint) allocTransfer() *Transfer {
// Use libusb_get_max_iso_packet_size ?
const (
iso_packets = 8 // 128 // 242
iso_packets = 8 // 128 // 242
packet_size = 2 * 960 // 1760
)
xfer := C.libusb_alloc_transfer(C.int(iso_packets))
@@ -46,22 +48,11 @@ func (end *endpoint) allocTransfer() *Transfer {
log.Printf("usb: transfer allocation failed?!")
return nil
}
handle := end.Device.handle
dev := C.libusb_get_device(handle)
packet_size := C.libusb_get_max_iso_packet_size(dev, C.uchar(end.Address))
switch packet_size {
case C.LIBUSB_ERROR_NOT_FOUND:
log.Printf("usb: get_max_iso_packet_size: endpoint does not exist")
return nil
case C.LIBUSB_ERROR_OTHER:
log.Printf("usb: get_max_iso_packet_size: unknown failure")
return nil
}
buf := make([]byte, iso_packets*packet_size)
done := make(chan struct{}, 1)
xfer.dev_handle = handle
xfer.dev_handle = end.Device.handle
xfer.endpoint = C.uchar(end.Address)
xfer._type = C.LIBUSB_TRANSFER_TYPE_ISOCHRONOUS
@@ -69,7 +60,7 @@ func (end *endpoint) allocTransfer() *Transfer {
xfer.length = C.int(len(buf))
xfer.num_iso_packets = iso_packets
C.libusb_set_iso_packet_lengths(xfer, C.uint(packet_size))
C.libusb_set_iso_packet_lengths(xfer, packet_size)
/*
pkts := *(*[]C.struct_libusb_packet_descriptor)(unsafe.Pointer(&reflect.SliceHeader{
Data: uintptr(unsafe.Pointer(&xfer.iso_packet_desc)),