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