USBAudioDevice.smali
.class public Lorg/webrtc/ali/USBAudioDevice;
.super Ljava/lang/Object;
.source "USBAudioDevice.java"
# static fields
.field private static final DEFAULT_USBFS:Ljava/lang/String; = "/dev/bus/usb"
.field static final LOG_DEBUG:I = 0x2
.field static final LOG_ERROR:I = 0x5
.field static final LOG_FATAL:I = 0x6
.field static final LOG_INFO:I = 0x3
.field static final LOG_SILENT:I = 0x7
.field static final LOG_VERBOSE:I = 0x1
.field static final LOG_WARN:I = 0x4
# instance fields
.field private final TAG:Ljava/lang/String;
.field private audioDevicePlayerHandle_:J
.field private audioDeviceRecordHandle_:J
.field private audioPlayerDeviceCount_:I
.field private audioRecordDeviceCount_:I
.field private usbControlPlayBlock_:Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
.field private usbControlRecordBlock_:Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
# direct methods
.method static constructor <clinit>()V
.registers 1
.line 19
const-string v0, "usb100"
invoke-static {v0}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V
.line 20
const-string v0, "USBAudioDevice"
invoke-static {v0}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V
.line 21
return-void
.end method
.method public constructor <init>()V
.registers 4
.line 43
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 14
const-string v0, "USBAudioDevice"
iput-object v0, p0, Lorg/webrtc/ali/USBAudioDevice;->TAG:Ljava/lang/String;
.line 61
const-wide/16 v0, 0x0
iput-wide v0, p0, Lorg/webrtc/ali/USBAudioDevice;->audioDeviceRecordHandle_:J
.line 66
const/4 v2, 0x0
iput v2, p0, Lorg/webrtc/ali/USBAudioDevice;->audioRecordDeviceCount_:I
.line 151
iput-wide v0, p0, Lorg/webrtc/ali/USBAudioDevice;->audioDevicePlayerHandle_:J
.line 152
iput v2, p0, Lorg/webrtc/ali/USBAudioDevice;->audioPlayerDeviceCount_:I
.line 44
invoke-direct {p0}, Lorg/webrtc/ali/USBAudioDevice;->nativeCreateUSBRecord()J
move-result-wide v0
iput-wide v0, p0, Lorg/webrtc/ali/USBAudioDevice;->audioDeviceRecordHandle_:J
.line 45
invoke-direct {p0}, Lorg/webrtc/ali/USBAudioDevice;->nativeCreateUSBPlayer()J
move-result-wide v0
iput-wide v0, p0, Lorg/webrtc/ali/USBAudioDevice;->audioDevicePlayerHandle_:J
.line 46
return-void
.end method
.method public static declared-synchronized createLogFile(Ljava/lang/String;I)I
.registers 4
.param p0, "strPath" # Ljava/lang/String;
.param p1, "level" # I
const-class v0, Lorg/webrtc/ali/USBAudioDevice;
monitor-enter v0
.line 244
:try_start_3
invoke-static {p0, p1}, Lorg/webrtc/ali/USBAudioDevice;->nativeCreateUSBLog(Ljava/lang/String;I)I
move-result v1
:try_end_7
.catchall {:try_start_3 .. :try_end_7} :catchall_9
monitor-exit v0
return v1
.end local p0 # "strPath":Ljava/lang/String;
.end local p1 # "level":I
:catchall_9
move-exception p0
monitor-exit v0
throw p0
.end method
.method private final getUSBFSName(Ljava/lang/String;)Ljava/lang/String;
.registers 9
.param p1, "deviceName" # Ljava/lang/String;
.line 26
const/4 v0, 0x0
.line 27
.local v0, "result":Ljava/lang/String;
invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
const-string v2, "/"
if-nez v1, :cond_e
invoke-virtual {p1, v2}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v1
goto :goto_f
:cond_e
const/4 v1, 0x0
.line 28
.local v1, "v":[Ljava/lang/String;
:goto_f
if-eqz v1, :cond_31
array-length v3, v1
const/4 v4, 0x2
if-le v3, v4, :cond_31
.line 29
new-instance v3, Ljava/lang/StringBuilder;
const/4 v5, 0x0
aget-object v5, v1, v5
invoke-direct {v3, v5}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 30
.local v3, "sb":Ljava/lang/StringBuilder;
const/4 v5, 0x1
.local v5, "i":I
:goto_1e
array-length v6, v1
sub-int/2addr v6, v4
if-ge v5, v6, :cond_2d
.line 31
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
aget-object v6, v1, v5
invoke-virtual {v3, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 30
add-int/lit8 v5, v5, 0x1
goto :goto_1e
.line 32
.end local v5 # "i":I
:cond_2d
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 34
.end local v3 # "sb":Ljava/lang/StringBuilder;
:cond_31
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v2
if-eqz v2, :cond_4f
.line 35
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "failed to get USBFS path, try to use default path:"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
const-string v3, "USBAudioDevice"
invoke-static {v3, v2}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
.line 36
const-string v0, "/dev/bus/usb"
.line 39
:cond_4f
return-object v0
.end method
.method private static final native nativeCloseUSBPlayer(J)I
.end method
.method private static final native nativeCloseUSBRecord(J)I
.end method
.method private final native nativeConnectUSBPlayer(JIIIIILjava/lang/String;)I
.end method
.method private final native nativeConnectUSBRecord(JIIIIILjava/lang/String;)I
.end method
.method private static final native nativeCreateUSBLog(Ljava/lang/String;I)I
.end method
.method private final native nativeCreateUSBPlayer()J
.end method
.method private final native nativeCreateUSBRecord()J
.end method
.method private static final native nativeDestroyUSBLog(I)I
.end method
.method private final native nativeDestroyUSBPlayer(J)V
.end method
.method private final native nativeDestroyUSBRecord(J)V
.end method
.method private static final native nativeStopUSBPlayer(J)I
.end method
.method private static final native nativeStopUSBRecord(J)I
.end method
.method private static final native nativeWriteUSBLog(ILjava/lang/String;)I
.end method
.method public static declared-synchronized releaseLogFile(I)I
.registers 3
.param p0, "param" # I
const-class v0, Lorg/webrtc/ali/USBAudioDevice;
monitor-enter v0
.line 284
:try_start_3
invoke-static {p0}, Lorg/webrtc/ali/USBAudioDevice;->nativeDestroyUSBLog(I)I
move-result v1
:try_end_7
.catchall {:try_start_3 .. :try_end_7} :catchall_9
monitor-exit v0
return v1
.end local p0 # "param":I
:catchall_9
move-exception p0
monitor-exit v0
throw p0
.end method
.method public static writeLog(ILjava/lang/String;)I
.registers 3
.param p0, "tag" # I
.param p1, "strLog" # Ljava/lang/String;
.line 270
invoke-static {p0, p1}, Lorg/webrtc/ali/USBAudioDevice;->nativeWriteUSBLog(ILjava/lang/String;)I
move-result v0
return v0
.end method
.method public static writeLog(Ljava/lang/String;)I
.registers 2
.param p0, "strLog" # Ljava/lang/String;
.line 277
const/4 v0, 0x3
invoke-static {v0, p0}, Lorg/webrtc/ali/USBAudioDevice;->nativeWriteUSBLog(ILjava/lang/String;)I
move-result v0
return v0
.end method
# virtual methods
.method public declared-synchronized closeUSBPlayer()I
.registers 6
monitor-enter p0
.line 205
:try_start_1
iget-wide v0, p0, Lorg/webrtc/ali/USBAudioDevice;->audioDevicePlayerHandle_:J
:try_end_3
.catchall {:try_start_1 .. :try_end_3} :catchall_17
const-wide/16 v2, 0x0
cmp-long v4, v0, v2
if-nez v4, :cond_c
.line 206
const/4 v0, -0x1
monitor-exit p0
return v0
.line 209
:cond_c
const/4 v0, 0x0
:try_start_d
iput v0, p0, Lorg/webrtc/ali/USBAudioDevice;->audioPlayerDeviceCount_:I
.line 210
iget-wide v0, p0, Lorg/webrtc/ali/USBAudioDevice;->audioDevicePlayerHandle_:J
invoke-static {v0, v1}, Lorg/webrtc/ali/USBAudioDevice;->nativeCloseUSBPlayer(J)I
move-result v0
:try_end_15
.catchall {:try_start_d .. :try_end_15} :catchall_17
monitor-exit p0
return v0
.line 204
.end local p0 # "this":Lorg/webrtc/ali/USBAudioDevice;
:catchall_17
move-exception v0
monitor-exit p0
throw v0
.end method
.method public declared-synchronized closeUSBRecord()I
.registers 6
monitor-enter p0
.line 117
:try_start_1
iget-wide v0, p0, Lorg/webrtc/ali/USBAudioDevice;->audioDeviceRecordHandle_:J
:try_end_3
.catchall {:try_start_1 .. :try_end_3} :catchall_17
const-wide/16 v2, 0x0
cmp-long v4, v0, v2
if-nez v4, :cond_c
.line 118
const/4 v0, -0x1
monitor-exit p0
return v0
.line 121
:cond_c
const/4 v0, 0x0
:try_start_d
iput v0, p0, Lorg/webrtc/ali/USBAudioDevice;->audioRecordDeviceCount_:I
.line 122
iget-wide v0, p0, Lorg/webrtc/ali/USBAudioDevice;->audioDeviceRecordHandle_:J
invoke-static {v0, v1}, Lorg/webrtc/ali/USBAudioDevice;->nativeCloseUSBRecord(J)I
move-result v0
:try_end_15
.catchall {:try_start_d .. :try_end_15} :catchall_17
monitor-exit p0
return v0
.line 116
.end local p0 # "this":Lorg/webrtc/ali/USBAudioDevice;
:catchall_17
move-exception v0
monitor-exit p0
throw v0
.end method
.method public declared-synchronized connectUSBPlayer(Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;)I
.registers 12
.param p1, "usbControlBlock" # Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
monitor-enter p0
.line 169
:try_start_1
iget-wide v0, p0, Lorg/webrtc/ali/USBAudioDevice;->audioDevicePlayerHandle_:J
:try_end_3
.catchall {:try_start_1 .. :try_end_3} :catchall_66
const-wide/16 v2, 0x0
cmp-long v4, v0, v2
if-nez v4, :cond_c
.line 170
const/4 v0, -0x1
monitor-exit p0
return v0
.line 175
:cond_c
:try_start_c
invoke-virtual {p1}, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->clone()Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
move-result-object v0
iput-object v0, p0, Lorg/webrtc/ali/USBAudioDevice;->usbControlPlayBlock_:Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
.line 177
iget-wide v2, p0, Lorg/webrtc/ali/USBAudioDevice;->audioDevicePlayerHandle_:J
.line 179
invoke-virtual {v0}, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->getVenderId()I
move-result v4
iget-object v0, p0, Lorg/webrtc/ali/USBAudioDevice;->usbControlPlayBlock_:Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
.line 180
invoke-virtual {v0}, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->getProductId()I
move-result v5
iget-object v0, p0, Lorg/webrtc/ali/USBAudioDevice;->usbControlPlayBlock_:Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
.line 181
invoke-virtual {v0}, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->getFileDescriptor()I
move-result v6
iget-object v0, p0, Lorg/webrtc/ali/USBAudioDevice;->usbControlPlayBlock_:Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
.line 182
invoke-virtual {v0}, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->getBusNum()I
move-result v7
iget-object v0, p0, Lorg/webrtc/ali/USBAudioDevice;->usbControlPlayBlock_:Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
.line 183
invoke-virtual {v0}, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->getDevNum()I
move-result v8
iget-object v0, p0, Lorg/webrtc/ali/USBAudioDevice;->usbControlPlayBlock_:Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
.line 184
invoke-virtual {v0}, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->getDeviceName()Ljava/lang/String;
move-result-object v0
invoke-direct {p0, v0}, Lorg/webrtc/ali/USBAudioDevice;->getUSBFSName(Ljava/lang/String;)Ljava/lang/String;
move-result-object v9
.line 177
move-object v1, p0
invoke-direct/range {v1 .. v9}, Lorg/webrtc/ali/USBAudioDevice;->nativeConnectUSBPlayer(JIIIIILjava/lang/String;)I
move-result v0
:try_end_3f
.catch Ljava/lang/Exception; {:try_start_c .. :try_end_3f} :catch_49
.catchall {:try_start_c .. :try_end_3f} :catchall_66
.line 186
.local v0, "rc":I
if-gtz v0, :cond_44
.line 187
const/4 v1, -0x2
monitor-exit p0
return v1
.line 190
:cond_44
:try_start_44
iput v0, p0, Lorg/webrtc/ali/USBAudioDevice;->audioPlayerDeviceCount_:I
:try_end_46
.catch Ljava/lang/Exception; {:try_start_44 .. :try_end_46} :catch_49
.catchall {:try_start_44 .. :try_end_46} :catchall_66
.line 191
const/4 v1, 0x0
monitor-exit p0
return v1
.line 193
.end local v0 # "rc":I
.end local p0 # "this":Lorg/webrtc/ali/USBAudioDevice;
:catch_49
move-exception v0
.line 194
.local v0, "e":Ljava/lang/Exception;
const/4 v1, 0x5
:try_start_4b
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "info:"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, 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;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v1, v2}, Lorg/webrtc/ali/USBAudioDevice;->writeLog(ILjava/lang/String;)I
:try_end_63
.catchall {:try_start_4b .. :try_end_63} :catchall_66
.line 195
const/4 v1, -0x3
monitor-exit p0
return v1
.line 168
.end local v0 # "e":Ljava/lang/Exception;
.end local p1 # "usbControlBlock":Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
:catchall_66
move-exception p1
monitor-exit p0
throw p1
.end method
.method public declared-synchronized connectUSBRecord(Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;)I
.registers 12
.param p1, "usbControlBlock" # Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
monitor-enter p0
.line 82
:try_start_1
iget-wide v0, p0, Lorg/webrtc/ali/USBAudioDevice;->audioDeviceRecordHandle_:J
:try_end_3
.catchall {:try_start_1 .. :try_end_3} :catchall_66
const-wide/16 v2, 0x0
cmp-long v4, v0, v2
if-nez v4, :cond_c
.line 83
const/4 v0, -0x1
monitor-exit p0
return v0
.line 87
:cond_c
:try_start_c
invoke-virtual {p1}, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->clone()Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
move-result-object v0
iput-object v0, p0, Lorg/webrtc/ali/USBAudioDevice;->usbControlRecordBlock_:Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
.line 88
iget-wide v2, p0, Lorg/webrtc/ali/USBAudioDevice;->audioDeviceRecordHandle_:J
.line 90
invoke-virtual {v0}, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->getVenderId()I
move-result v4
iget-object v0, p0, Lorg/webrtc/ali/USBAudioDevice;->usbControlRecordBlock_:Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
.line 91
invoke-virtual {v0}, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->getProductId()I
move-result v5
iget-object v0, p0, Lorg/webrtc/ali/USBAudioDevice;->usbControlRecordBlock_:Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
.line 92
invoke-virtual {v0}, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->getFileDescriptor()I
move-result v6
iget-object v0, p0, Lorg/webrtc/ali/USBAudioDevice;->usbControlRecordBlock_:Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
.line 93
invoke-virtual {v0}, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->getBusNum()I
move-result v7
iget-object v0, p0, Lorg/webrtc/ali/USBAudioDevice;->usbControlRecordBlock_:Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
.line 94
invoke-virtual {v0}, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->getDevNum()I
move-result v8
iget-object v0, p0, Lorg/webrtc/ali/USBAudioDevice;->usbControlRecordBlock_:Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
.line 95
invoke-virtual {v0}, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->getDeviceName()Ljava/lang/String;
move-result-object v0
invoke-direct {p0, v0}, Lorg/webrtc/ali/USBAudioDevice;->getUSBFSName(Ljava/lang/String;)Ljava/lang/String;
move-result-object v9
.line 88
move-object v1, p0
invoke-direct/range {v1 .. v9}, Lorg/webrtc/ali/USBAudioDevice;->nativeConnectUSBRecord(JIIIIILjava/lang/String;)I
move-result v0
:try_end_3f
.catch Ljava/lang/Exception; {:try_start_c .. :try_end_3f} :catch_49
.catchall {:try_start_c .. :try_end_3f} :catchall_66
.line 97
.local v0, "rc":I
if-gtz v0, :cond_44
.line 98
const/4 v1, -0x2
monitor-exit p0
return v1
.line 101
:cond_44
:try_start_44
iput v0, p0, Lorg/webrtc/ali/USBAudioDevice;->audioRecordDeviceCount_:I
:try_end_46
.catch Ljava/lang/Exception; {:try_start_44 .. :try_end_46} :catch_49
.catchall {:try_start_44 .. :try_end_46} :catchall_66
.line 102
const/4 v1, 0x0
monitor-exit p0
return v1
.line 104
.end local v0 # "rc":I
.end local p0 # "this":Lorg/webrtc/ali/USBAudioDevice;
:catch_49
move-exception v0
.line 105
.local v0, "e":Ljava/lang/Exception;
const/4 v1, 0x5
:try_start_4b
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "info:"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, 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;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v1, v2}, Lorg/webrtc/ali/USBAudioDevice;->writeLog(ILjava/lang/String;)I
:try_end_63
.catchall {:try_start_4b .. :try_end_63} :catchall_66
.line 106
const/4 v1, -0x3
monitor-exit p0
return v1
.line 81
.end local v0 # "e":Ljava/lang/Exception;
.end local p1 # "usbControlBlock":Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
:catchall_66
move-exception p1
monitor-exit p0
throw p1
.end method
.method public declared-synchronized getAudioPlayerDeviceCount()I
.registers 2
monitor-enter p0
.line 162
:try_start_1
iget v0, p0, Lorg/webrtc/ali/USBAudioDevice;->audioPlayerDeviceCount_:I
:try_end_3
.catchall {:try_start_1 .. :try_end_3} :catchall_5
monitor-exit p0
return v0
.end local p0 # "this":Lorg/webrtc/ali/USBAudioDevice;
:catchall_5
move-exception v0
monitor-exit p0
throw v0
.end method
.method public declared-synchronized getAudioPlayerHandle()J
.registers 3
monitor-enter p0
.line 157
:try_start_1
iget-wide v0, p0, Lorg/webrtc/ali/USBAudioDevice;->audioDevicePlayerHandle_:J
:try_end_3
.catchall {:try_start_1 .. :try_end_3} :catchall_5
monitor-exit p0
return-wide v0
.end local p0 # "this":Lorg/webrtc/ali/USBAudioDevice;
:catchall_5
move-exception v0
monitor-exit p0
throw v0
.end method
.method public getAudioRecordDeviceCount()I
.registers 2
.line 69
iget v0, p0, Lorg/webrtc/ali/USBAudioDevice;->audioRecordDeviceCount_:I
return v0
.end method
.method public declared-synchronized getAudioRecordHandle()J
.registers 3
monitor-enter p0
.line 68
:try_start_1
iget-wide v0, p0, Lorg/webrtc/ali/USBAudioDevice;->audioDeviceRecordHandle_:J
:try_end_3
.catchall {:try_start_1 .. :try_end_3} :catchall_5
monitor-exit p0
return-wide v0
.end local p0 # "this":Lorg/webrtc/ali/USBAudioDevice;
:catchall_5
move-exception v0
monitor-exit p0
throw v0
.end method
.method public declared-synchronized release()V
.registers 2
monitor-enter p0
.line 52
:try_start_1
invoke-virtual {p0}, Lorg/webrtc/ali/USBAudioDevice;->releaseUSBRecord()V
.line 53
invoke-virtual {p0}, Lorg/webrtc/ali/USBAudioDevice;->releaseUSBPlayer()V
.line 54
const/4 v0, 0x0
invoke-static {v0}, Lorg/webrtc/ali/USBAudioDevice;->releaseLogFile(I)I
:try_end_b
.catchall {:try_start_1 .. :try_end_b} :catchall_d
.line 55
monitor-exit p0
return-void
.line 51
.end local p0 # "this":Lorg/webrtc/ali/USBAudioDevice;
:catchall_d
move-exception v0
monitor-exit p0
throw v0
.end method
.method public declared-synchronized releaseUSBPlayer()V
.registers 6
monitor-enter p0
.line 230
:try_start_1
iget-wide v0, p0, Lorg/webrtc/ali/USBAudioDevice;->audioDevicePlayerHandle_:J
:try_end_3
.catchall {:try_start_1 .. :try_end_3} :catchall_17
const-wide/16 v2, 0x0
cmp-long v4, v0, v2
if-nez v4, :cond_b
.line 231
monitor-exit p0
return-void
.line 234
:cond_b
:try_start_b
iget-wide v0, p0, Lorg/webrtc/ali/USBAudioDevice;->audioDevicePlayerHandle_:J
invoke-direct {p0, v0, v1}, Lorg/webrtc/ali/USBAudioDevice;->nativeDestroyUSBPlayer(J)V
.line 235
iput-wide v2, p0, Lorg/webrtc/ali/USBAudioDevice;->audioDevicePlayerHandle_:J
.line 236
const/4 v0, 0x0
iput v0, p0, Lorg/webrtc/ali/USBAudioDevice;->audioPlayerDeviceCount_:I
:try_end_15
.catchall {:try_start_b .. :try_end_15} :catchall_17
.line 237
monitor-exit p0
return-void
.line 229
.end local p0 # "this":Lorg/webrtc/ali/USBAudioDevice;
:catchall_17
move-exception v0
monitor-exit p0
throw v0
.end method
.method public declared-synchronized releaseUSBRecord()V
.registers 6
monitor-enter p0
.line 138
:try_start_1
iget-wide v0, p0, Lorg/webrtc/ali/USBAudioDevice;->audioDeviceRecordHandle_:J
:try_end_3
.catchall {:try_start_1 .. :try_end_3} :catchall_17
const-wide/16 v2, 0x0
cmp-long v4, v0, v2
if-nez v4, :cond_b
.line 139
monitor-exit p0
return-void
.line 142
:cond_b
:try_start_b
iget-wide v0, p0, Lorg/webrtc/ali/USBAudioDevice;->audioDeviceRecordHandle_:J
invoke-direct {p0, v0, v1}, Lorg/webrtc/ali/USBAudioDevice;->nativeDestroyUSBRecord(J)V
.line 143
iput-wide v2, p0, Lorg/webrtc/ali/USBAudioDevice;->audioDeviceRecordHandle_:J
.line 144
const/4 v0, 0x0
iput v0, p0, Lorg/webrtc/ali/USBAudioDevice;->audioRecordDeviceCount_:I
:try_end_15
.catchall {:try_start_b .. :try_end_15} :catchall_17
.line 145
monitor-exit p0
return-void
.line 137
.end local p0 # "this":Lorg/webrtc/ali/USBAudioDevice;
:catchall_17
move-exception v0
monitor-exit p0
throw v0
.end method
.method public declared-synchronized stopUSBPlayer()I
.registers 6
monitor-enter p0
.line 218
:try_start_1
iget-wide v0, p0, Lorg/webrtc/ali/USBAudioDevice;->audioDevicePlayerHandle_:J
:try_end_3
.catchall {:try_start_1 .. :try_end_3} :catchall_14
const-wide/16 v2, 0x0
cmp-long v4, v0, v2
if-nez v4, :cond_c
.line 219
const/4 v0, -0x1
monitor-exit p0
return v0
.line 222
:cond_c
:try_start_c
iget-wide v0, p0, Lorg/webrtc/ali/USBAudioDevice;->audioDevicePlayerHandle_:J
invoke-static {v0, v1}, Lorg/webrtc/ali/USBAudioDevice;->nativeStopUSBPlayer(J)I
move-result v0
:try_end_12
.catchall {:try_start_c .. :try_end_12} :catchall_14
monitor-exit p0
return v0
.line 217
.end local p0 # "this":Lorg/webrtc/ali/USBAudioDevice;
:catchall_14
move-exception v0
monitor-exit p0
throw v0
.end method
.method public declared-synchronized stopUSBRecord()I
.registers 6
monitor-enter p0
.line 128
:try_start_1
iget-wide v0, p0, Lorg/webrtc/ali/USBAudioDevice;->audioDeviceRecordHandle_:J
:try_end_3
.catchall {:try_start_1 .. :try_end_3} :catchall_14
const-wide/16 v2, 0x0
cmp-long v4, v0, v2
if-nez v4, :cond_c
.line 129
const/4 v0, -0x1
monitor-exit p0
return v0
.line 132
:cond_c
:try_start_c
iget-wide v0, p0, Lorg/webrtc/ali/USBAudioDevice;->audioDeviceRecordHandle_:J
invoke-static {v0, v1}, Lorg/webrtc/ali/USBAudioDevice;->nativeStopUSBRecord(J)I
move-result v0
:try_end_12
.catchall {:try_start_c .. :try_end_12} :catchall_14
monitor-exit p0
return v0
.line 127
.end local p0 # "this":Lorg/webrtc/ali/USBAudioDevice;
:catchall_14
move-exception v0
monitor-exit p0
throw v0
.end method