mirror of
https://github.com/DSheirer/sdrtrunk.git
synced 2026-11-14 01:27:34 -05:00
Merge pull request #156 from DSheirer/155-libusb-pipe-error
Resolves #155 - LIBUSB_PIPE_ERROR when trying to start R820T tuner
This commit is contained in:
@@ -33,6 +33,7 @@ import sample.complex.ComplexBuffer;
|
|||||||
import source.tuner.TunerManager;
|
import source.tuner.TunerManager;
|
||||||
import util.ThreadPool;
|
import util.ThreadPool;
|
||||||
|
|
||||||
|
import javax.usb.UsbException;
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -140,6 +141,28 @@ public class USBTransferProcessor implements TransferCallback
|
|||||||
{
|
{
|
||||||
mTransfersInProgress.add(transfer);
|
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
|
else
|
||||||
{
|
{
|
||||||
//TODO: broadcast to each listener that this source has an error and is shutting down
|
//TODO: broadcast to each listener that this source has an error and is shutting down
|
||||||
|
|||||||
Reference in New Issue
Block a user