USBMediaDevice.smali

.class public Lorg/webrtc/ali/USBMediaDevice;
.super Ljava/lang/Object;
.source "USBMediaDevice.java"

# interfaces
.implements Lcom/serenegiant/usb/USBMonitor$OnDeviceConnectListener;
.implements Lcom/serenegiant/usb/IStatusCallback;
.implements Lcom/serenegiant/usb/IButtonCallback;


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lorg/webrtc/ali/USBMediaDevice$USBMediaDeviceEvent;
    }
.end annotation


# static fields
.field private static hAudioPlayerHandle_:J = 0x0L

.field private static hAudioRecordHandle_:J = 0x0L

.field private static hCameraHandle_:J = 0x0L

.field static final kMaxRetryConnectAudioCount:I = 0x100

.field static final kMaxRetryConnectCameraCount:I = 0x100


# instance fields
.field private final TAG:Ljava/lang/String;

.field protected final USB_AUDIO_IN_TYPE:I

.field protected final USB_DEVICE_NONE:I

.field protected final USB_FLAG_AUDIO_TYPE_PLAYER:I

.field protected final USB_FLAG_AUDIO_TYPE_RECORD:I

.field protected final USB_FLAG_CAMERA_TYPE:I

.field protected mAttachUSBDevice:Z

.field private mAudioDevice:Lorg/webrtc/ali/USBAudioDevice;

.field protected mAudioPlayerConnectFail:Z

.field protected mAudioPlayerConnected:Z

.field private mAudioPlayerEndPointCount:I

.field protected mAudioPlayerRetryConnectCount:I

.field protected mAudioRecordConnectFail:Z

.field protected mAudioRecordConnected:Z

.field private mAudioRecordEndPointCount:I

.field protected mAudioRecordRetryConnectCount:I

.field private mAudioUsbPlayerDevice:Ljava/lang/String;

.field private mAudioUsbRecordDevice:Ljava/lang/String;

.field protected mCameraConnectFail:Z

.field protected mCameraConnected:Z

.field protected mCameraRetryCount:I

.field private mCameraUsbDevice:Ljava/lang/String;

.field protected mMediaDeviceEvent:Lorg/webrtc/ali/USBMediaDevice$USBMediaDeviceEvent;

.field private mUSBMonitor:Lcom/serenegiant/usb/USBMonitor;

.field private mUVCCamera:Lcom/serenegiant/usb/UVCCamera;


# direct methods
.method static constructor <clinit>()V
    .registers 2

    .line 37
    const-wide/16 v0, 0x0

    sput-wide v0, Lorg/webrtc/ali/USBMediaDevice;->hCameraHandle_:J

    .line 40
    sput-wide v0, Lorg/webrtc/ali/USBMediaDevice;->hAudioRecordHandle_:J

    .line 41
    sput-wide v0, Lorg/webrtc/ali/USBMediaDevice;->hAudioPlayerHandle_:J

    return-void
.end method

.method public constructor <init>(Landroid/content/Context;Lorg/webrtc/ali/USBMediaDevice$USBMediaDeviceEvent;)V
    .registers 5
    .param p1, "context"    # Landroid/content/Context;
    .param p2, "MediaDeviceEvent"    # Lorg/webrtc/ali/USBMediaDevice$USBMediaDeviceEvent;

    .line 517
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 32
    const-string v0, "USBMediaDevice"

    iput-object v0, p0, Lorg/webrtc/ali/USBMediaDevice;->TAG:Ljava/lang/String;

    .line 46
    const-string v0, ""

    iput-object v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mCameraUsbDevice:Ljava/lang/String;

    .line 47
    iput-object v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioUsbPlayerDevice:Ljava/lang/String;

    .line 48
    iput-object v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioUsbRecordDevice:Ljava/lang/String;

    .line 51
    const/4 v0, 0x0

    iput-boolean v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mCameraConnected:Z

    .line 52
    iput-boolean v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mCameraConnectFail:Z

    .line 57
    iput-boolean v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioPlayerConnected:Z

    .line 58
    iput-boolean v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioRecordConnected:Z

    .line 63
    iput-boolean v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioPlayerConnectFail:Z

    .line 64
    iput-boolean v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioRecordConnectFail:Z

    .line 69
    iput v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioPlayerRetryConnectCount:I

    .line 70
    iput v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioRecordRetryConnectCount:I

    .line 76
    iput v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mCameraRetryCount:I

    .line 77
    iput-boolean v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mAttachUSBDevice:Z

    .line 120
    const/16 v1, 0x80

    iput v1, p0, Lorg/webrtc/ali/USBMediaDevice;->USB_AUDIO_IN_TYPE:I

    .line 121
    iput v0, p0, Lorg/webrtc/ali/USBMediaDevice;->USB_DEVICE_NONE:I

    .line 124
    const/4 v0, 0x1

    iput v0, p0, Lorg/webrtc/ali/USBMediaDevice;->USB_FLAG_CAMERA_TYPE:I

    .line 125
    const/4 v0, 0x2

    iput v0, p0, Lorg/webrtc/ali/USBMediaDevice;->USB_FLAG_AUDIO_TYPE_RECORD:I

    .line 126
    const/4 v1, 0x4

    iput v1, p0, Lorg/webrtc/ali/USBMediaDevice;->USB_FLAG_AUDIO_TYPE_PLAYER:I

    .line 521
    const-string v1, "sdcard/usblog/"

    invoke-static {v1, v0}, Lorg/webrtc/ali/USBAudioDevice;->createLogFile(Ljava/lang/String;I)I

    .line 522
    const-string v0, "create usb device..."

    invoke-virtual {p0, v0}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 524
    new-instance v0, Lcom/serenegiant/usb/USBMonitor;

    invoke-direct {v0, p1, p0}, Lcom/serenegiant/usb/USBMonitor;-><init>(Landroid/content/Context;Lcom/serenegiant/usb/USBMonitor$OnDeviceConnectListener;)V

    iput-object v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mUSBMonitor:Lcom/serenegiant/usb/USBMonitor;

    .line 525
    new-instance v0, Lcom/serenegiant/usb/UVCCamera;

    invoke-direct {v0}, Lcom/serenegiant/usb/UVCCamera;-><init>()V

    iput-object v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mUVCCamera:Lcom/serenegiant/usb/UVCCamera;

    .line 527
    new-instance v0, Lorg/webrtc/ali/USBAudioDevice;

    invoke-direct {v0}, Lorg/webrtc/ali/USBAudioDevice;-><init>()V

    iput-object v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioDevice:Lorg/webrtc/ali/USBAudioDevice;

    .line 528
    iput-object p2, p0, Lorg/webrtc/ali/USBMediaDevice;->mMediaDeviceEvent:Lorg/webrtc/ali/USBMediaDevice$USBMediaDeviceEvent;

    .line 529
    iget-object v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mUSBMonitor:Lcom/serenegiant/usb/USBMonitor;

    invoke-virtual {v0}, Lcom/serenegiant/usb/USBMonitor;->register()V

    .line 530
    return-void
.end method

.method private doUSBConnectEvent(Landroid/hardware/usb/UsbDevice;)V
    .registers 5
    .param p1, "device"    # Landroid/hardware/usb/UsbDevice;

    .line 261
    iget-boolean v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mCameraConnected:Z

    const/4 v1, 0x1

    const-string v2, "usb device name:"

    if-nez v0, :cond_13

    iget-boolean v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mCameraConnectFail:Z

    if-nez v0, :cond_13

    iget-object v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mCameraUsbDevice:Ljava/lang/String;

    invoke-virtual {v0}, Ljava/lang/String;->isEmpty()Z

    move-result v0

    if-eqz v0, :cond_34

    :cond_13
    iget-boolean v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioRecordConnected:Z

    if-nez v0, :cond_23

    iget-boolean v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioRecordConnectFail:Z

    if-nez v0, :cond_23

    iget-object v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioUsbRecordDevice:Ljava/lang/String;

    .line 262
    invoke-virtual {v0}, Ljava/lang/String;->isEmpty()Z

    move-result v0

    if-eqz v0, :cond_34

    :cond_23
    iget-boolean v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioPlayerConnected:Z

    if-nez v0, :cond_75

    iget-boolean v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioPlayerConnectFail:Z

    if-nez v0, :cond_75

    iget-object v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioUsbPlayerDevice:Ljava/lang/String;

    .line 263
    invoke-virtual {v0}, Ljava/lang/String;->isEmpty()Z

    move-result v0

    if-eqz v0, :cond_34

    goto :goto_75

    .line 282
    :cond_34
    iget-boolean v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mCameraConnectFail:Z

    if-eqz v0, :cond_b1

    .line 284
    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v2

    invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    const-string v2, " onConnect failed... count:"

    invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    iget v2, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioRecordEndPointCount:I

    invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {p0, v0}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 286
    iget-boolean v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mAttachUSBDevice:Z

    if-nez v0, :cond_b1

    .line 288
    iput-boolean v1, p0, Lorg/webrtc/ali/USBMediaDevice;->mAttachUSBDevice:Z

    .line 289
    const-string v0, "do device cancel event..."

    invoke-virtual {p0, v0}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 291
    new-instance v0, Landroid/os/Handler;

    invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;

    move-result-object v1

    invoke-direct {v0, v1}, Landroid/os/Handler;-><init>(Landroid/os/Looper;)V

    new-instance v1, Lorg/webrtc/ali/USBMediaDevice$2;

    invoke-direct {v1, p0}, Lorg/webrtc/ali/USBMediaDevice$2;-><init>(Lorg/webrtc/ali/USBMediaDevice;)V

    invoke-virtual {v0, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z

    goto :goto_b1

    .line 265
    :cond_75
    :goto_75
    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v2

    invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    const-string v2, " onConnect... count:"

    invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    iget v2, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioRecordEndPointCount:I

    invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {p0, v0}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 267
    iget-boolean v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mAttachUSBDevice:Z

    if-nez v0, :cond_b1

    .line 268
    iput-boolean v1, p0, Lorg/webrtc/ali/USBMediaDevice;->mAttachUSBDevice:Z

    .line 269
    const-string v0, "do device connect event..."

    invoke-virtual {p0, v0}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 271
    new-instance v0, Landroid/os/Handler;

    invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;

    move-result-object v1

    invoke-direct {v0, v1}, Landroid/os/Handler;-><init>(Landroid/os/Looper;)V

    new-instance v1, Lorg/webrtc/ali/USBMediaDevice$1;

    invoke-direct {v1, p0}, Lorg/webrtc/ali/USBMediaDevice$1;-><init>(Lorg/webrtc/ali/USBMediaDevice;)V

    invoke-virtual {v0, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z

    .line 302
    :cond_b1
    :goto_b1
    return-void
.end method

.method public static getAudioPlayerHandle()J
    .registers 2

    .line 82
    sget-wide v0, Lorg/webrtc/ali/USBMediaDevice;->hAudioPlayerHandle_:J

    return-wide v0
.end method

.method public static getAudioRecordHandle()J
    .registers 2

    .line 81
    sget-wide v0, Lorg/webrtc/ali/USBMediaDevice;->hAudioRecordHandle_:J

    return-wide v0
.end method

.method public static getCameraHandle()J
    .registers 2

    .line 84
    sget-wide v0, Lorg/webrtc/ali/USBMediaDevice;->hCameraHandle_:J

    return-wide v0
.end method


# virtual methods
.method protected EnumUsbMediaDeviceType(Landroid/hardware/usb/UsbDevice;I)I
    .registers 9
    .param p1, "device"    # Landroid/hardware/usb/UsbDevice;
    .param p2, "index"    # I

    .line 137
    const/4 v0, 0x0

    .line 139
    .local v0, "nDeviceFlag":I
    move v1, p2

    .local v1, "i":I
    :goto_2
    invoke-virtual {p1}, Landroid/hardware/usb/UsbDevice;->getInterfaceCount()I

    move-result v2

    if-ge v1, v2, :cond_67

    .line 141
    invoke-virtual {p1, v1}, Landroid/hardware/usb/UsbDevice;->getInterface(I)Landroid/hardware/usb/UsbInterface;

    move-result-object v2

    .line 143
    .local v2, "inf":Landroid/hardware/usb/UsbInterface;
    invoke-virtual {v2}, Landroid/hardware/usb/UsbInterface;->getInterfaceClass()I

    move-result v3

    const/4 v4, 0x1

    if-ne v3, v4, :cond_55

    .line 145
    const/4 v3, 0x0

    .local v3, "j":I
    :goto_14
    invoke-virtual {v2}, Landroid/hardware/usb/UsbInterface;->getEndpointCount()I

    move-result v4

    if-ge v3, v4, :cond_54

    .line 147
    new-instance v4, Ljava/lang/StringBuilder;

    invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V

    const-string v5, "end point addr:"

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v2, v3}, Landroid/hardware/usb/UsbInterface;->getEndpoint(I)Landroid/hardware/usb/UsbEndpoint;

    move-result-object v5

    invoke-virtual {v5}, Landroid/hardware/usb/UsbEndpoint;->getAddress()I

    move-result v5

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v4

    invoke-virtual {p0, v4}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 149
    invoke-virtual {v2, v3}, Landroid/hardware/usb/UsbInterface;->getEndpoint(I)Landroid/hardware/usb/UsbEndpoint;

    move-result-object v4

    invoke-virtual {v4}, Landroid/hardware/usb/UsbEndpoint;->getAddress()I

    move-result v4

    const/16 v5, 0x80

    if-lt v4, v5, :cond_4a

    .line 150
    or-int/lit8 v0, v0, 0x2

    .line 151
    const-string v4, "find record device"

    invoke-virtual {p0, v4}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    goto :goto_51

    .line 153
    :cond_4a
    or-int/lit8 v0, v0, 0x4

    .line 154
    const-string v4, "find player device"

    invoke-virtual {p0, v4}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 145
    :goto_51
    add-int/lit8 v3, v3, 0x1

    goto :goto_14

    .end local v3    # "j":I
    :cond_54
    goto :goto_64

    .line 160
    :cond_55
    invoke-virtual {v2}, Landroid/hardware/usb/UsbInterface;->getInterfaceClass()I

    move-result v3

    const/16 v4, 0xe

    if-ne v3, v4, :cond_64

    .line 161
    const-string v3, "find camera device"

    invoke-virtual {p0, v3}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 162
    or-int/lit8 v0, v0, 0x1

    .line 139
    .end local v2    # "inf":Landroid/hardware/usb/UsbInterface;
    :cond_64
    :goto_64
    add-int/lit8 v1, v1, 0x1

    goto :goto_2

    .line 167
    .end local v1    # "i":I
    :cond_67
    return v0
.end method

.method public attachUSBDevice()Z
    .registers 2

    .line 174
    iget-boolean v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mAttachUSBDevice:Z

    return v0
.end method

.method protected closeAll(Landroid/hardware/usb/UsbDevice;)V
    .registers 5
    .param p1, "device"    # Landroid/hardware/usb/UsbDevice;

    .line 439
    invoke-virtual {p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v0

    iget-object v1, p0, Lorg/webrtc/ali/USBMediaDevice;->mCameraUsbDevice:Ljava/lang/String;

    invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    const/4 v1, 0x0

    if-eqz v0, :cond_45

    iget-object v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mUVCCamera:Lcom/serenegiant/usb/UVCCamera;

    if-eqz v0, :cond_45

    .line 440
    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    const-string v2, "stop camera enter name:"

    invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v2

    invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {p0, v0}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 441
    iget-object v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mUVCCamera:Lcom/serenegiant/usb/UVCCamera;

    invoke-virtual {v0}, Lcom/serenegiant/usb/UVCCamera;->stopPreview()V

    .line 442
    iget-object v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mUVCCamera:Lcom/serenegiant/usb/UVCCamera;

    const/4 v2, 0x0

    invoke-virtual {v0, v2}, Lcom/serenegiant/usb/UVCCamera;->setStatusCallback(Lcom/serenegiant/usb/IStatusCallback;)V

    .line 443
    iget-object v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mUVCCamera:Lcom/serenegiant/usb/UVCCamera;

    invoke-virtual {v0, v2}, Lcom/serenegiant/usb/UVCCamera;->setButtonCallback(Lcom/serenegiant/usb/IButtonCallback;)V

    .line 444
    iget-object v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mUVCCamera:Lcom/serenegiant/usb/UVCCamera;

    invoke-virtual {v0}, Lcom/serenegiant/usb/UVCCamera;->close()V

    .line 445
    iput-boolean v1, p0, Lorg/webrtc/ali/USBMediaDevice;->mCameraConnected:Z

    .line 446
    const-string v0, "stop camera leave!"

    invoke-virtual {p0, v0}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 449
    :cond_45
    invoke-virtual {p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v0

    iget-object v2, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioUsbRecordDevice:Ljava/lang/String;

    invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_7b

    iget-object v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioDevice:Lorg/webrtc/ali/USBAudioDevice;

    if-eqz v0, :cond_7b

    .line 450
    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    const-string v2, "stop audio record enter name:"

    invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v2

    invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {p0, v0}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 451
    iget-object v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioDevice:Lorg/webrtc/ali/USBAudioDevice;

    invoke-virtual {v0}, Lorg/webrtc/ali/USBAudioDevice;->closeUSBRecord()I

    .line 452
    iput-boolean v1, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioRecordConnected:Z

    .line 453
    iput v1, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioRecordEndPointCount:I

    .line 454
    const-string v0, "stop audio record leave!"

    invoke-virtual {p0, v0}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 457
    :cond_7b
    invoke-virtual {p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v0

    iget-object v2, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioUsbPlayerDevice:Ljava/lang/String;

    invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_b1

    iget-object v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioDevice:Lorg/webrtc/ali/USBAudioDevice;

    if-eqz v0, :cond_b1

    .line 458
    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    const-string v2, "stop audio player enter name:"

    invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v2

    invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {p0, v0}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 459
    iget-object v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioDevice:Lorg/webrtc/ali/USBAudioDevice;

    invoke-virtual {v0}, Lorg/webrtc/ali/USBAudioDevice;->closeUSBPlayer()I

    .line 460
    iput-boolean v1, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioPlayerConnected:Z

    .line 461
    iput v1, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioPlayerEndPointCount:I

    .line 462
    const-string v0, "stop audio player leave!"

    invoke-virtual {p0, v0}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 465
    :cond_b1
    return-void
.end method

.method protected connectAudioDevice(Landroid/hardware/usb/UsbDevice;Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;)Z
    .registers 21
    .param p1, "device"    # Landroid/hardware/usb/UsbDevice;
    .param p2, "ctrlBlock"    # Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;

    .line 343
    move-object/from16 v1, p0

    move-object/from16 v2, p2

    const-string v3, "failed to connect audio device :"

    const-string v4, "failed to connect audio record device :"

    const/4 v5, 0x0

    .line 345
    .local v5, "bEvent":Z
    iget-boolean v0, v1, Lorg/webrtc/ali/USBMediaDevice;->mAudioRecordConnected:Z

    const-string v6, " succ!"

    const-string v8, " !"

    const-string v9, " ref:"

    const-string v10, " retrycount:"

    const-string v11, "!"

    const/4 v12, 0x0

    const/4 v13, 0x1

    if-nez v0, :cond_ec

    invoke-virtual/range {p1 .. p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v0

    iget-object v14, v1, Lorg/webrtc/ali/USBMediaDevice;->mAudioUsbRecordDevice:Ljava/lang/String;

    invoke-virtual {v0, v14}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_ec

    .line 347
    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    const-string v14, "try connect audio record device :"

    invoke-virtual {v0, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual/range {p1 .. p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v14

    invoke-virtual {v0, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {v1, v0}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 349
    const/4 v14, 0x1

    .line 351
    .local v14, "connectFail":Z
    :try_start_3e
    iget-object v0, v1, Lorg/webrtc/ali/USBMediaDevice;->mAudioDevice:Lorg/webrtc/ali/USBAudioDevice;

    invoke-virtual {v0, v2}, Lorg/webrtc/ali/USBAudioDevice;->connectUSBRecord(Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;)I

    .line 352
    iget-object v0, v1, Lorg/webrtc/ali/USBMediaDevice;->mAudioDevice:Lorg/webrtc/ali/USBAudioDevice;

    invoke-virtual {v0}, Lorg/webrtc/ali/USBAudioDevice;->getAudioRecordDeviceCount()I

    move-result v0

    iput v0, v1, Lorg/webrtc/ali/USBMediaDevice;->mAudioRecordEndPointCount:I
    :try_end_4b
    .catch Ljava/lang/Exception; {:try_start_3e .. :try_end_4b} :catch_4d

    .line 353
    const/4 v14, 0x0

    .line 359
    goto :goto_89

    .line 355
    :catch_4d
    move-exception v0

    .line 356
    .local v0, "ex":Ljava/lang/Exception;
    iput v12, v1, Lorg/webrtc/ali/USBMediaDevice;->mAudioRecordEndPointCount:I

    .line 357
    new-instance v15, Ljava/lang/StringBuilder;

    invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v15, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual/range {p1 .. p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v7

    invoke-virtual {v15, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v15, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v7

    invoke-virtual {v1, v7}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 358
    new-instance v7, Ljava/lang/StringBuilder;

    invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V

    const-string v15, "audio record device open ex:"

    invoke-virtual {v7, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;

    move-result-object v15

    invoke-virtual {v7, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v7, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    iget v15, v1, Lorg/webrtc/ali/USBMediaDevice;->mAudioRecordRetryConnectCount:I

    invoke-virtual {v7, v15}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v7

    invoke-virtual {v1, v7}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 361
    .end local v0    # "ex":Ljava/lang/Exception;
    :goto_89
    if-nez v14, :cond_b8

    iget v0, v1, Lorg/webrtc/ali/USBMediaDevice;->mAudioRecordEndPointCount:I

    if-nez v0, :cond_90

    goto :goto_b8

    .line 366
    :cond_90
    iget-object v0, v1, Lorg/webrtc/ali/USBMediaDevice;->mAudioDevice:Lorg/webrtc/ali/USBAudioDevice;

    invoke-virtual {v0}, Lorg/webrtc/ali/USBAudioDevice;->getAudioRecordHandle()J

    move-result-wide v16

    sput-wide v16, Lorg/webrtc/ali/USBMediaDevice;->hAudioRecordHandle_:J

    .line 367
    iput-boolean v13, v1, Lorg/webrtc/ali/USBMediaDevice;->mAudioRecordConnected:Z

    .line 368
    iput v12, v1, Lorg/webrtc/ali/USBMediaDevice;->mAudioRecordRetryConnectCount:I

    .line 369
    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    const-string v4, " connect audio record device :"

    invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual/range {p1 .. p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v4

    invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {v1, v0}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    goto :goto_e3

    .line 362
    :cond_b8
    :goto_b8
    iget-object v0, v1, Lorg/webrtc/ali/USBMediaDevice;->mAudioDevice:Lorg/webrtc/ali/USBAudioDevice;

    invoke-virtual {v0}, Lorg/webrtc/ali/USBAudioDevice;->closeUSBRecord()I

    .line 363
    iget v0, v1, Lorg/webrtc/ali/USBMediaDevice;->mAudioRecordRetryConnectCount:I

    add-int/2addr v0, v13

    iput v0, v1, Lorg/webrtc/ali/USBMediaDevice;->mAudioRecordRetryConnectCount:I

    .line 364
    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual/range {p1 .. p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v4

    invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    iget v4, v1, Lorg/webrtc/ali/USBMediaDevice;->mAudioRecordRetryConnectCount:I

    invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {v0, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {v1, v0}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 372
    :goto_e3
    iget v0, v1, Lorg/webrtc/ali/USBMediaDevice;->mAudioRecordRetryConnectCount:I

    const/16 v4, 0x100

    if-lt v0, v4, :cond_eb

    .line 373
    iput-boolean v13, v1, Lorg/webrtc/ali/USBMediaDevice;->mAudioRecordConnectFail:Z

    .line 376
    :cond_eb
    const/4 v5, 0x1

    .line 382
    .end local v14    # "connectFail":Z
    :cond_ec
    iget-boolean v0, v1, Lorg/webrtc/ali/USBMediaDevice;->mAudioPlayerConnected:Z

    if-nez v0, :cond_1c3

    invoke-virtual/range {p1 .. p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v0

    iget-object v4, v1, Lorg/webrtc/ali/USBMediaDevice;->mAudioUsbPlayerDevice:Ljava/lang/String;

    invoke-virtual {v0, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_1c3

    .line 384
    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    const-string v4, "try connect audio device :"

    invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual/range {p1 .. p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v4

    invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {v1, v0}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 386
    const/4 v4, 0x1

    .line 388
    .local v4, "connectFail":Z
    :try_start_115
    iget-object v0, v1, Lorg/webrtc/ali/USBMediaDevice;->mAudioDevice:Lorg/webrtc/ali/USBAudioDevice;

    invoke-virtual {v0, v2}, Lorg/webrtc/ali/USBAudioDevice;->connectUSBPlayer(Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;)I

    .line 389
    iget-object v0, v1, Lorg/webrtc/ali/USBMediaDevice;->mAudioDevice:Lorg/webrtc/ali/USBAudioDevice;

    invoke-virtual {v0}, Lorg/webrtc/ali/USBAudioDevice;->getAudioPlayerDeviceCount()I

    move-result v0

    iput v0, v1, Lorg/webrtc/ali/USBMediaDevice;->mAudioPlayerEndPointCount:I
    :try_end_122
    .catch Ljava/lang/Exception; {:try_start_115 .. :try_end_122} :catch_124

    .line 390
    const/4 v4, 0x0

    .line 396
    goto :goto_160

    .line 392
    :catch_124
    move-exception v0

    .line 393
    .restart local v0    # "ex":Ljava/lang/Exception;
    iput v12, v1, Lorg/webrtc/ali/USBMediaDevice;->mAudioPlayerEndPointCount:I

    .line 394
    new-instance v7, Ljava/lang/StringBuilder;

    invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v7, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual/range {p1 .. p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v14

    invoke-virtual {v7, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v7, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v7

    invoke-virtual {v1, v7}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 395
    new-instance v7, Ljava/lang/StringBuilder;

    invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V

    const-string v11, "audio device open ex:"

    invoke-virtual {v7, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;

    move-result-object v11

    invoke-virtual {v7, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v7, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    iget v10, v1, Lorg/webrtc/ali/USBMediaDevice;->mAudioPlayerRetryConnectCount:I

    invoke-virtual {v7, v10}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v7

    invoke-virtual {v1, v7}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 398
    .end local v0    # "ex":Ljava/lang/Exception;
    :goto_160
    if-nez v4, :cond_190

    iget v0, v1, Lorg/webrtc/ali/USBMediaDevice;->mAudioPlayerEndPointCount:I

    if-nez v0, :cond_167

    goto :goto_190

    .line 403
    :cond_167
    iget-object v0, v1, Lorg/webrtc/ali/USBMediaDevice;->mAudioDevice:Lorg/webrtc/ali/USBAudioDevice;

    invoke-virtual {v0}, Lorg/webrtc/ali/USBAudioDevice;->getAudioPlayerHandle()J

    move-result-wide v7

    sput-wide v7, Lorg/webrtc/ali/USBMediaDevice;->hAudioPlayerHandle_:J

    .line 404
    const/4 v5, 0x1

    .line 405
    iput-boolean v13, v1, Lorg/webrtc/ali/USBMediaDevice;->mAudioPlayerConnected:Z

    .line 406
    iput v12, v1, Lorg/webrtc/ali/USBMediaDevice;->mAudioPlayerRetryConnectCount:I

    .line 407
    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    const-string v3, " connect audio device :"

    invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual/range {p1 .. p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v3

    invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {v1, v0}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    goto :goto_1bb

    .line 399
    :cond_190
    :goto_190
    iget-object v0, v1, Lorg/webrtc/ali/USBMediaDevice;->mAudioDevice:Lorg/webrtc/ali/USBAudioDevice;

    invoke-virtual {v0}, Lorg/webrtc/ali/USBAudioDevice;->closeUSBPlayer()I

    .line 400
    iget v0, v1, Lorg/webrtc/ali/USBMediaDevice;->mAudioPlayerRetryConnectCount:I

    add-int/2addr v0, v13

    iput v0, v1, Lorg/webrtc/ali/USBMediaDevice;->mAudioPlayerRetryConnectCount:I

    .line 401
    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual/range {p1 .. p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v3

    invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    iget v3, v1, Lorg/webrtc/ali/USBMediaDevice;->mAudioPlayerRetryConnectCount:I

    invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {v0, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {v1, v0}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 410
    :goto_1bb
    iget v0, v1, Lorg/webrtc/ali/USBMediaDevice;->mAudioPlayerRetryConnectCount:I

    const/16 v3, 0x100

    if-lt v0, v3, :cond_1c3

    .line 411
    iput-boolean v13, v1, Lorg/webrtc/ali/USBMediaDevice;->mAudioPlayerConnectFail:Z

    .line 416
    .end local v4    # "connectFail":Z
    :cond_1c3
    return v5
.end method

.method protected connectCameraDevice(Landroid/hardware/usb/UsbDevice;Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;)Z
    .registers 7
    .param p1, "device"    # Landroid/hardware/usb/UsbDevice;
    .param p2, "ctrlBlock"    # Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;

    .line 309
    iget-boolean v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mCameraConnected:Z

    const/4 v1, 0x0

    if-nez v0, :cond_b1

    invoke-virtual {p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v0

    iget-object v2, p0, Lorg/webrtc/ali/USBMediaDevice;->mCameraUsbDevice:Ljava/lang/String;

    invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_b1

    .line 312
    const/4 v0, 0x1

    :try_start_12
    new-instance v2, Ljava/lang/StringBuilder;

    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V

    const-string v3, "try connect camera device :"

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v3

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v2

    invoke-virtual {p0, v2}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 314
    iget-object v2, p0, Lorg/webrtc/ali/USBMediaDevice;->mUVCCamera:Lcom/serenegiant/usb/UVCCamera;

    invoke-virtual {v2, p2}, Lcom/serenegiant/usb/UVCCamera;->open(Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;)V

    .line 315
    iget-object v2, p0, Lorg/webrtc/ali/USBMediaDevice;->mUVCCamera:Lcom/serenegiant/usb/UVCCamera;

    invoke-virtual {v2, p0}, Lcom/serenegiant/usb/UVCCamera;->setStatusCallback(Lcom/serenegiant/usb/IStatusCallback;)V

    .line 316
    iget-object v2, p0, Lorg/webrtc/ali/USBMediaDevice;->mUVCCamera:Lcom/serenegiant/usb/UVCCamera;

    invoke-virtual {v2, p0}, Lcom/serenegiant/usb/UVCCamera;->setButtonCallback(Lcom/serenegiant/usb/IButtonCallback;)V

    .line 317
    iget-object v2, p0, Lorg/webrtc/ali/USBMediaDevice;->mUVCCamera:Lcom/serenegiant/usb/UVCCamera;

    invoke-virtual {v2}, Lcom/serenegiant/usb/UVCCamera;->getHandle()J

    move-result-wide v2

    sput-wide v2, Lorg/webrtc/ali/USBMediaDevice;->hCameraHandle_:J

    .line 318
    iput-boolean v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mCameraConnected:Z

    .line 319
    iput v1, p0, Lorg/webrtc/ali/USBMediaDevice;->mCameraRetryCount:I

    .line 320
    new-instance v1, Ljava/lang/StringBuilder;

    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V

    const-string v2, " connect camera device :"

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v2

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    const-string v2, " succ!"

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-virtual {p0, v1}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V
    :try_end_62
    .catch Ljava/lang/Exception; {:try_start_12 .. :try_end_62} :catch_63

    .line 326
    goto :goto_a8

    .line 322
    :catch_63
    move-exception v1

    .line 323
    .local v1, "ex":Ljava/lang/Exception;
    new-instance v2, Ljava/lang/StringBuilder;

    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V

    const-string v3, "failed to connect camera device :"

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v3

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    const-string v3, "!"

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v2

    invoke-virtual {p0, v2}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 324
    new-instance v2, Ljava/lang/StringBuilder;

    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V

    const-string v3, "camera open ex:"

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v1}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;

    move-result-object v3

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    const-string v3, " retrycount:"

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    iget v3, p0, Lorg/webrtc/ali/USBMediaDevice;->mCameraRetryCount:I

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v2

    invoke-virtual {p0, v2}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 325
    iget v2, p0, Lorg/webrtc/ali/USBMediaDevice;->mCameraRetryCount:I

    add-int/2addr v2, v0

    iput v2, p0, Lorg/webrtc/ali/USBMediaDevice;->mCameraRetryCount:I

    .line 328
    .end local v1    # "ex":Ljava/lang/Exception;
    :goto_a8
    iget v1, p0, Lorg/webrtc/ali/USBMediaDevice;->mCameraRetryCount:I

    const/16 v2, 0x100

    if-le v1, v2, :cond_b0

    .line 329
    iput-boolean v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mCameraConnectFail:Z

    .line 332
    :cond_b0
    return v0

    .line 335
    :cond_b1
    return v1
.end method

.method public getAudioPlayerDevCount()I
    .registers 2

    .line 171
    iget v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioPlayerEndPointCount:I

    return v0
.end method

.method public getAudioRecordDevCount()I
    .registers 2

    .line 170
    iget v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioRecordEndPointCount:I

    return v0
.end method

.method public getCameraConnected()Z
    .registers 2

    .line 173
    iget-boolean v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mCameraConnected:Z

    return v0
.end method

.method public getCameraName()Ljava/lang/String;
    .registers 2

    .line 178
    iget-object v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mUVCCamera:Lcom/serenegiant/usb/UVCCamera;

    if-nez v0, :cond_6

    .line 179
    const/4 v0, 0x0

    return-object v0

    .line 182
    :cond_6
    invoke-virtual {v0}, Lcom/serenegiant/usb/UVCCamera;->getDeviceName()Ljava/lang/String;

    move-result-object v0

    return-object v0
.end method

.method public onAttach(Landroid/hardware/usb/UsbDevice;)V
    .registers 6
    .param p1, "device"    # Landroid/hardware/usb/UsbDevice;

    .line 201
    const/4 v0, 0x0

    invoke-virtual {p0, p1, v0}, Lorg/webrtc/ali/USBMediaDevice;->EnumUsbMediaDeviceType(Landroid/hardware/usb/UsbDevice;I)I

    move-result v0

    .line 203
    .local v0, "deviceFlag":I
    new-instance v1, Ljava/lang/StringBuilder;

    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V

    const-string v2, "usb device name:"

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v2

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    const-string v2, " attach flag:"

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-virtual {p0, v1}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 205
    const/4 v1, 0x0

    .line 207
    .local v1, "toRequestPermission":Z
    iget-object v2, p0, Lorg/webrtc/ali/USBMediaDevice;->mCameraUsbDevice:Ljava/lang/String;

    invoke-virtual {v2}, Ljava/lang/String;->isEmpty()Z

    move-result v2

    if-eqz v2, :cond_51

    and-int/lit8 v2, v0, 0x1

    if-lez v2, :cond_51

    .line 208
    invoke-virtual {p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v2

    iput-object v2, p0, Lorg/webrtc/ali/USBMediaDevice;->mCameraUsbDevice:Ljava/lang/String;

    .line 209
    const/4 v1, 0x1

    .line 210
    new-instance v2, Ljava/lang/StringBuilder;

    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V

    const-string v3, "usb device has camera device name:"

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v3

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v2

    invoke-virtual {p0, v2}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 213
    :cond_51
    iget-object v2, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioUsbPlayerDevice:Ljava/lang/String;

    invoke-virtual {v2}, Ljava/lang/String;->isEmpty()Z

    move-result v2

    if-eqz v2, :cond_7c

    and-int/lit8 v2, v0, 0x4

    if-lez v2, :cond_7c

    .line 214
    invoke-virtual {p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v2

    iput-object v2, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioUsbPlayerDevice:Ljava/lang/String;

    .line 215
    const/4 v1, 0x1

    .line 216
    new-instance v2, Ljava/lang/StringBuilder;

    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V

    const-string v3, "usb device has audio player device name:"

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v3

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v2

    invoke-virtual {p0, v2}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 219
    :cond_7c
    iget-object v2, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioUsbRecordDevice:Ljava/lang/String;

    invoke-virtual {v2}, Ljava/lang/String;->isEmpty()Z

    move-result v2

    if-eqz v2, :cond_a7

    and-int/lit8 v2, v0, 0x2

    if-lez v2, :cond_a7

    .line 220
    invoke-virtual {p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v2

    iput-object v2, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioUsbRecordDevice:Ljava/lang/String;

    .line 221
    const/4 v1, 0x1

    .line 222
    new-instance v2, Ljava/lang/StringBuilder;

    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V

    const-string v3, "usb device has audio record device name:"

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v3

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v2

    invoke-virtual {p0, v2}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 225
    :cond_a7
    if-eqz v1, :cond_ae

    .line 226
    iget-object v2, p0, Lorg/webrtc/ali/USBMediaDevice;->mUSBMonitor:Lcom/serenegiant/usb/USBMonitor;

    invoke-virtual {v2, p1}, Lcom/serenegiant/usb/USBMonitor;->requestPermission(Landroid/hardware/usb/UsbDevice;)Z

    .line 229
    :cond_ae
    return-void
.end method

.method public onButton(II)V
    .registers 3
    .param p1, "var1"    # I
    .param p2, "var2"    # I

    .line 195
    return-void
.end method

.method public onCancel(Landroid/hardware/usb/UsbDevice;)V
    .registers 4
    .param p1, "device"    # Landroid/hardware/usb/UsbDevice;

    .line 501
    iget-boolean v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mAttachUSBDevice:Z

    if-nez v0, :cond_18

    .line 502
    const/4 v0, 0x1

    iput-boolean v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mAttachUSBDevice:Z

    .line 504
    new-instance v0, Landroid/os/Handler;

    invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;

    move-result-object v1

    invoke-direct {v0, v1}, Landroid/os/Handler;-><init>(Landroid/os/Looper;)V

    new-instance v1, Lorg/webrtc/ali/USBMediaDevice$4;

    invoke-direct {v1, p0}, Lorg/webrtc/ali/USBMediaDevice$4;-><init>(Lorg/webrtc/ali/USBMediaDevice;)V

    invoke-virtual {v0, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z

    .line 513
    :cond_18
    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    const-string v1, "usb device name:"

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v1

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    const-string v1, " onCancel"

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {p0, v0}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 514
    return-void
.end method

.method public onConnect(Landroid/hardware/usb/UsbDevice;Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;Z)V
    .registers 6
    .param p1, "device"    # Landroid/hardware/usb/UsbDevice;
    .param p2, "ctrlBlock"    # Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
    .param p3, "createNew"    # Z

    .line 422
    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    const-string v1, "connect device name:"

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v1

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    const-string v1, " status camera:"

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    iget-boolean v1, p0, Lorg/webrtc/ali/USBMediaDevice;->mCameraConnected:Z

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;

    const-string v1, " audio record:"

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    iget-boolean v1, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioRecordConnected:Z

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;

    const-string v1, " audio player:"

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    iget-boolean v1, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioPlayerConnected:Z

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {p0, v0}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 427
    invoke-virtual {p0, p1, p2}, Lorg/webrtc/ali/USBMediaDevice;->connectCameraDevice(Landroid/hardware/usb/UsbDevice;Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;)Z

    move-result v0

    .line 428
    .local v0, "bCameraEvent":Z
    invoke-virtual {p0, p1, p2}, Lorg/webrtc/ali/USBMediaDevice;->connectAudioDevice(Landroid/hardware/usb/UsbDevice;Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;)Z

    move-result v1

    .line 430
    .local v1, "bAudioDeviceEvent":Z
    if-nez v0, :cond_42

    if-eqz v1, :cond_45

    .line 431
    :cond_42
    invoke-direct {p0, p1}, Lorg/webrtc/ali/USBMediaDevice;->doUSBConnectEvent(Landroid/hardware/usb/UsbDevice;)V

    .line 434
    :cond_45
    return-void
.end method

.method public onDettach(Landroid/hardware/usb/UsbDevice;)V
    .registers 7
    .param p1, "device"    # Landroid/hardware/usb/UsbDevice;

    .line 234
    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    const-string v1, "usb device name:"

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v1

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    const-string v1, " dettach..."

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {p0, v0}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 236
    invoke-virtual {p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v0

    iget-object v2, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioUsbPlayerDevice:Ljava/lang/String;

    invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    const/4 v2, 0x0

    const-string v3, ""

    if-eqz v0, :cond_4b

    .line 237
    iput-object v3, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioUsbPlayerDevice:Ljava/lang/String;

    .line 238
    iput-boolean v2, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioPlayerConnected:Z

    .line 239
    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    const-string v4, "usb player device name:"

    invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v4

    invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {p0, v0}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 242
    :cond_4b
    invoke-virtual {p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v0

    iget-object v4, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioUsbRecordDevice:Ljava/lang/String;

    invoke-virtual {v0, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_76

    .line 243
    iput-object v3, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioUsbRecordDevice:Ljava/lang/String;

    .line 244
    iput-boolean v2, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioRecordConnected:Z

    .line 245
    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    const-string v4, "usb record device name:"

    invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v4

    invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {p0, v0}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 248
    :cond_76
    invoke-virtual {p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v0

    iget-object v4, p0, Lorg/webrtc/ali/USBMediaDevice;->mCameraUsbDevice:Ljava/lang/String;

    invoke-virtual {v0, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_a1

    .line 249
    iput-object v3, p0, Lorg/webrtc/ali/USBMediaDevice;->mCameraUsbDevice:Ljava/lang/String;

    .line 250
    iput-boolean v2, p0, Lorg/webrtc/ali/USBMediaDevice;->mCameraConnected:Z

    .line 251
    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    const-string v2, "usb camera device name:"

    invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v2

    invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {p0, v0}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 254
    :cond_a1
    return-void
.end method

.method public onDisconnect(Landroid/hardware/usb/UsbDevice;Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;)V
    .registers 5
    .param p1, "device"    # Landroid/hardware/usb/UsbDevice;
    .param p2, "ctrlBlock"    # Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;

    .line 471
    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    const-string v1, "usb device name:"

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v1

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    const-string v1, " onDisConnect ...enter"

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {p0, v0}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 473
    monitor-enter p0

    .line 474
    :try_start_1e
    invoke-virtual {p0, p1}, Lorg/webrtc/ali/USBMediaDevice;->closeAll(Landroid/hardware/usb/UsbDevice;)V

    .line 475
    monitor-exit p0
    :try_end_22
    .catchall {:try_start_1e .. :try_end_22} :catchall_69

    .line 477
    iget-boolean v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mAttachUSBDevice:Z

    if-eqz v0, :cond_4b

    iget-boolean v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mCameraConnected:Z

    if-nez v0, :cond_4b

    iget-boolean v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioPlayerConnected:Z

    if-nez v0, :cond_4b

    iget-boolean v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioRecordConnected:Z

    if-nez v0, :cond_4b

    .line 482
    const/4 v0, 0x0

    iput-boolean v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mAttachUSBDevice:Z

    .line 484
    const-string v0, "all usb device disconnect!"

    invoke-virtual {p0, v0}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 486
    new-instance v0, Landroid/os/Handler;

    invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;

    move-result-object v1

    invoke-direct {v0, v1}, Landroid/os/Handler;-><init>(Landroid/os/Looper;)V

    new-instance v1, Lorg/webrtc/ali/USBMediaDevice$3;

    invoke-direct {v1, p0}, Lorg/webrtc/ali/USBMediaDevice$3;-><init>(Lorg/webrtc/ali/USBMediaDevice;)V

    invoke-virtual {v0, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z

    .line 495
    :cond_4b
    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    const-string v1, "usb device name:"

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p1}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v1

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    const-string v1, " onDisConnect...leave"

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {p0, v0}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 496
    return-void

    .line 475
    :catchall_69
    move-exception v0

    :try_start_6a
    monitor-exit p0
    :try_end_6b
    .catchall {:try_start_6a .. :try_end_6b} :catchall_69

    throw v0
.end method

.method public onStatus(IIIILjava/nio/ByteBuffer;)V
    .registers 6
    .param p1, "var1"    # I
    .param p2, "var2"    # I
    .param p3, "var3"    # I
    .param p4, "var4"    # I
    .param p5, "var5"    # Ljava/nio/ByteBuffer;

    .line 189
    return-void
.end method

.method public release()V
    .registers 3

    .line 591
    iget-object v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mUSBMonitor:Lcom/serenegiant/usb/USBMonitor;

    if-nez v0, :cond_5

    .line 592
    return-void

    .line 595
    :cond_5
    const-string v0, "USBMediaDevice release..."

    invoke-virtual {p0, v0}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 597
    monitor-enter p0

    .line 599
    :try_start_b
    iget-object v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mUSBMonitor:Lcom/serenegiant/usb/USBMonitor;

    if-nez v0, :cond_11

    .line 600
    monitor-exit p0

    return-void

    .line 602
    :cond_11
    iget-object v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mUSBMonitor:Lcom/serenegiant/usb/USBMonitor;

    invoke-virtual {v0}, Lcom/serenegiant/usb/USBMonitor;->unregister()V

    .line 603
    const-wide/16 v0, 0x0

    sput-wide v0, Lorg/webrtc/ali/USBMediaDevice;->hCameraHandle_:J

    .line 604
    sput-wide v0, Lorg/webrtc/ali/USBMediaDevice;->hAudioRecordHandle_:J

    .line 605
    sput-wide v0, Lorg/webrtc/ali/USBMediaDevice;->hAudioPlayerHandle_:J

    .line 607
    iget-object v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioDevice:Lorg/webrtc/ali/USBAudioDevice;

    if-eqz v0, :cond_2c

    .line 608
    iget-object v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioDevice:Lorg/webrtc/ali/USBAudioDevice;

    invoke-virtual {v0}, Lorg/webrtc/ali/USBAudioDevice;->closeUSBRecord()I

    .line 609
    iget-object v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioDevice:Lorg/webrtc/ali/USBAudioDevice;

    invoke-virtual {v0}, Lorg/webrtc/ali/USBAudioDevice;->closeUSBPlayer()I

    .line 612
    :cond_2c
    iget-object v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mUVCCamera:Lcom/serenegiant/usb/UVCCamera;

    if-eqz v0, :cond_35

    .line 613
    iget-object v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mUVCCamera:Lcom/serenegiant/usb/UVCCamera;

    invoke-virtual {v0}, Lcom/serenegiant/usb/UVCCamera;->stopPreview()V

    .line 616
    :cond_35
    iget-object v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mUVCCamera:Lcom/serenegiant/usb/UVCCamera;

    const/4 v1, 0x0

    if-eqz v0, :cond_46

    .line 617
    iget-object v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mUVCCamera:Lcom/serenegiant/usb/UVCCamera;

    invoke-virtual {v0}, Lcom/serenegiant/usb/UVCCamera;->close()V

    .line 618
    iget-object v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mUVCCamera:Lcom/serenegiant/usb/UVCCamera;

    invoke-virtual {v0}, Lcom/serenegiant/usb/UVCCamera;->destroy()V

    .line 619
    iput-object v1, p0, Lorg/webrtc/ali/USBMediaDevice;->mUVCCamera:Lcom/serenegiant/usb/UVCCamera;

    .line 622
    :cond_46
    iget-object v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioDevice:Lorg/webrtc/ali/USBAudioDevice;

    if-eqz v0, :cond_51

    .line 623
    iget-object v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioDevice:Lorg/webrtc/ali/USBAudioDevice;

    invoke-virtual {v0}, Lorg/webrtc/ali/USBAudioDevice;->release()V

    .line 624
    iput-object v1, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioDevice:Lorg/webrtc/ali/USBAudioDevice;

    .line 627
    :cond_51
    iget-object v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mUSBMonitor:Lcom/serenegiant/usb/USBMonitor;

    invoke-virtual {v0}, Lcom/serenegiant/usb/USBMonitor;->destroy()V

    .line 628
    iput-object v1, p0, Lorg/webrtc/ali/USBMediaDevice;->mUSBMonitor:Lcom/serenegiant/usb/USBMonitor;

    .line 629
    const-string v0, ""

    iput-object v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mCameraUsbDevice:Ljava/lang/String;

    .line 630
    const-string v0, ""

    iput-object v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioUsbPlayerDevice:Ljava/lang/String;

    .line 631
    const-string v0, ""

    iput-object v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioUsbRecordDevice:Ljava/lang/String;

    .line 633
    monitor-exit p0

    .line 635
    return-void

    .line 633
    :catchall_66
    move-exception v0

    monitor-exit p0
    :try_end_68
    .catchall {:try_start_b .. :try_end_68} :catchall_66

    throw v0
.end method

.method public setupDevice()I
    .registers 9

    .line 534
    iget-object v0, p0, Lorg/webrtc/ali/USBMediaDevice;->mUSBMonitor:Lcom/serenegiant/usb/USBMonitor;

    invoke-virtual {v0}, Lcom/serenegiant/usb/USBMonitor;->getDeviceList()Ljava/util/List;

    move-result-object v0

    .line 536
    .local v0, "deviceList":Ljava/util/List;, "Ljava/util/List<Landroid/hardware/usb/UsbDevice;>;"
    new-instance v1, Ljava/lang/StringBuilder;

    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V

    const-string v2, "usb list count: "

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-interface {v0}, Ljava/util/List;->size()I

    move-result v2

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-virtual {p0, v1}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 538
    const/4 v1, 0x0

    .line 540
    .local v1, "nDeviceCount":I
    invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;

    move-result-object v2

    :goto_23
    invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z

    move-result v3

    if-eqz v3, :cond_10f

    invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v3

    check-cast v3, Landroid/hardware/usb/UsbDevice;

    .line 542
    .local v3, "item":Landroid/hardware/usb/UsbDevice;
    invoke-virtual {v3}, Landroid/hardware/usb/UsbDevice;->getInterfaceCount()I

    move-result v4

    const/4 v5, 0x0

    if-ltz v4, :cond_82

    .line 543
    new-instance v4, Ljava/lang/StringBuilder;

    invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V

    const-string v6, "usb productid:"

    invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v3}, Landroid/hardware/usb/UsbDevice;->getProductId()I

    move-result v6

    invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    const-string v6, " devclass:"

    invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    .line 544
    invoke-virtual {v3}, Landroid/hardware/usb/UsbDevice;->getDeviceClass()I

    move-result v6

    invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    const-string v6, " incount:"

    invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    .line 545
    invoke-virtual {v3}, Landroid/hardware/usb/UsbDevice;->getInterfaceCount()I

    move-result v6

    invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    const-string v6, " inclass:"

    invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    .line 546
    invoke-virtual {v3, v5}, Landroid/hardware/usb/UsbDevice;->getInterface(I)Landroid/hardware/usb/UsbInterface;

    move-result-object v6

    invoke-virtual {v6}, Landroid/hardware/usb/UsbInterface;->getInterfaceClass()I

    move-result v6

    invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    const-string v6, " name:"

    invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    .line 547
    invoke-virtual {v3}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v6

    invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v4

    .line 543
    invoke-virtual {p0, v4}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 550
    :cond_82
    invoke-virtual {p0, v3, v5}, Lorg/webrtc/ali/USBMediaDevice;->EnumUsbMediaDeviceType(Landroid/hardware/usb/UsbDevice;I)I

    move-result v4

    .line 551
    .local v4, "nDeviceFlag":I
    if-nez v4, :cond_89

    .line 552
    goto :goto_23

    .line 555
    :cond_89
    new-instance v5, Ljava/lang/StringBuilder;

    invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V

    const-string v6, "device "

    invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v3}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v6

    invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    const-string v6, " flag:"

    invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v5, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v5

    invoke-virtual {p0, v5}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 557
    const/4 v5, 0x0

    .line 559
    .local v5, "toRequestPermission":Z
    iget-object v6, p0, Lorg/webrtc/ali/USBMediaDevice;->mCameraUsbDevice:Ljava/lang/String;

    invoke-virtual {v6}, Ljava/lang/String;->isEmpty()Z

    move-result v6

    if-eqz v6, :cond_bf

    and-int/lit8 v6, v4, 0x1

    if-eqz v6, :cond_bf

    .line 560
    invoke-virtual {v3}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v6

    iput-object v6, p0, Lorg/webrtc/ali/USBMediaDevice;->mCameraUsbDevice:Ljava/lang/String;

    .line 561
    const/4 v5, 0x1

    .line 562
    add-int/lit8 v1, v1, 0x1

    .line 565
    :cond_bf
    iget-object v6, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioUsbRecordDevice:Ljava/lang/String;

    invoke-virtual {v6}, Ljava/lang/String;->isEmpty()Z

    move-result v6

    if-eqz v6, :cond_d4

    and-int/lit8 v6, v4, 0x2

    if-eqz v6, :cond_d4

    .line 566
    invoke-virtual {v3}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v6

    iput-object v6, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioUsbRecordDevice:Ljava/lang/String;

    .line 567
    const/4 v5, 0x1

    .line 568
    add-int/lit8 v1, v1, 0x1

    .line 571
    :cond_d4
    iget-object v6, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioUsbPlayerDevice:Ljava/lang/String;

    invoke-virtual {v6}, Ljava/lang/String;->isEmpty()Z

    move-result v6

    if-eqz v6, :cond_e9

    and-int/lit8 v6, v4, 0x4

    if-eqz v6, :cond_e9

    .line 572
    invoke-virtual {v3}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v6

    iput-object v6, p0, Lorg/webrtc/ali/USBMediaDevice;->mAudioUsbPlayerDevice:Ljava/lang/String;

    .line 573
    const/4 v5, 0x1

    .line 574
    add-int/lit8 v1, v1, 0x1

    .line 577
    :cond_e9
    if-eqz v5, :cond_10d

    .line 578
    iget-object v6, p0, Lorg/webrtc/ali/USBMediaDevice;->mUSBMonitor:Lcom/serenegiant/usb/USBMonitor;

    invoke-virtual {v6, v3}, Lcom/serenegiant/usb/USBMonitor;->requestPermission(Landroid/hardware/usb/UsbDevice;)Z

    .line 579
    new-instance v6, Ljava/lang/StringBuilder;

    invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V

    const-string v7, "usb permission "

    invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v3}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;

    move-result-object v7

    invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    const-string v7, " succ"

    invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v6

    invoke-virtual {p0, v6}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 582
    .end local v3    # "item":Landroid/hardware/usb/UsbDevice;
    .end local v4    # "nDeviceFlag":I
    .end local v5    # "toRequestPermission":Z
    :cond_10d
    goto/16 :goto_23

    .line 584
    :cond_10f
    new-instance v2, Ljava/lang/StringBuilder;

    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V

    const-string v3, "setup usb device count:"

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v2

    invoke-virtual {p0, v2}, Lorg/webrtc/ali/USBMediaDevice;->writeLog(Ljava/lang/String;)V

    .line 586
    return v1
.end method

.method public writeLog(Ljava/lang/String;)V
    .registers 3
    .param p1, "strLog"    # Ljava/lang/String;

    .line 638
    const/4 v0, 0x3

    invoke-static {v0, p1}, Lorg/webrtc/ali/USBAudioDevice;->writeLog(ILjava/lang/String;)I

    .line 639
    return-void
.end method