package com.github.mjdev.libaums.usb;

import android.hardware.usb.UsbDeviceConnection;
import android.hardware.usb.UsbEndpoint;
import java.io.IOException;
import java.nio.ByteBuffer;

/* JADX INFO: loaded from: classes.dex */
class HoneyCombMr1Communication implements UsbCommunication {
    private UsbDeviceConnection deviceConnection;
    private UsbEndpoint inEndpoint;
    private UsbEndpoint outEndpoint;

    HoneyCombMr1Communication(UsbDeviceConnection usbDeviceConnection, UsbEndpoint usbEndpoint, UsbEndpoint usbEndpoint2) {
        this.deviceConnection = usbDeviceConnection;
        this.outEndpoint = usbEndpoint;
        this.inEndpoint = usbEndpoint2;
    }

    @Override // com.github.mjdev.libaums.usb.UsbCommunication
    public int bulkOutTransfer(ByteBuffer byteBuffer) throws IOException {
        int iPosition = byteBuffer.position();
        if (iPosition == 0) {
            int iBulkTransfer = this.deviceConnection.bulkTransfer(this.outEndpoint, byteBuffer.array(), byteBuffer.remaining(), 5000);
            if (iBulkTransfer == -1) {
                throw new IOException("Could not write to device, result == -1");
            }
            byteBuffer.position(byteBuffer.position() + iBulkTransfer);
            return iBulkTransfer;
        }
        byte[] bArr = new byte[byteBuffer.remaining()];
        System.arraycopy(byteBuffer.array(), iPosition, bArr, 0, byteBuffer.remaining());
        int iBulkTransfer2 = this.deviceConnection.bulkTransfer(this.outEndpoint, bArr, byteBuffer.remaining(), 5000);
        if (iBulkTransfer2 == -1) {
            throw new IOException("Could not write to device, result == -1");
        }
        byteBuffer.position(byteBuffer.position() + iBulkTransfer2);
        return iBulkTransfer2;
    }

    @Override // com.github.mjdev.libaums.usb.UsbCommunication
    public int bulkInTransfer(ByteBuffer byteBuffer) throws IOException {
        int iPosition = byteBuffer.position();
        if (iPosition == 0) {
            int iBulkTransfer = this.deviceConnection.bulkTransfer(this.inEndpoint, byteBuffer.array(), byteBuffer.remaining(), 5000);
            if (iBulkTransfer == -1) {
                throw new IOException("Could read from to device, result == -1");
            }
            byteBuffer.position(byteBuffer.position() + iBulkTransfer);
            return iBulkTransfer;
        }
        byte[] bArr = new byte[byteBuffer.remaining()];
        int iBulkTransfer2 = this.deviceConnection.bulkTransfer(this.inEndpoint, bArr, byteBuffer.remaining(), 5000);
        if (iBulkTransfer2 == -1) {
            throw new IOException("Could not read from device, result == -1");
        }
        System.arraycopy(bArr, 0, byteBuffer.array(), iPosition, iBulkTransfer2);
        byteBuffer.position(byteBuffer.position() + iBulkTransfer2);
        return iBulkTransfer2;
    }
}
