Resolves #155 - LIBUSB_PIPE_ERROR when trying to start R820T tuner

This commit is contained in:
Denny
2017-01-28 17:33:59 -05:00
parent 57a52a662a
commit 960bf975d9

View File

@@ -33,6 +33,7 @@ import sample.complex.ComplexBuffer;
import source.tuner.TunerManager;
import util.ThreadPool;
import javax.usb.UsbException;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.List;
@@ -140,6 +141,28 @@ public class USBTransferProcessor implements TransferCallback
{
mTransfersInProgress.add(transfer);
}
else if(result == LibUsb.ERROR_PIPE)
{
int resetResult = LibUsb.clearHalt(mDeviceHandle, USB_BULK_TRANSFER_ENDPOINT);
if(resetResult == LibUsb.SUCCESS)
{
int resubmitResult = LibUsb.submitTransfer(transfer);
if(resubmitResult == LibUsb.SUCCESS)
{
mTransfersInProgress.add(transfer);
}
else
{
mLog.error(mDeviceName + " - error resubmitting transfer after endpoint clear halt");
}
}
else
{
mLog.error(mDeviceName + " - unable to clear device endpoint halt");
}
}
else
{
//TODO: broadcast to each listener that this source has an error and is shutting down