USBMonitor$UsbControlBlock.smali
.class public final Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
.super Ljava/lang/Object;
.source "USBMonitor.java"
# interfaces
.implements Ljava/lang/Cloneable;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/serenegiant/usb/USBMonitor;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "UsbControlBlock"
.end annotation
# instance fields
.field private final mBusNum:I
.field protected mConnection:Landroid/hardware/usb/UsbDeviceConnection;
.field private final mDevNum:I
.field protected final mInfo:Lcom/serenegiant/usb/USBMonitor$UsbDeviceInfo;
.field private final mInterfaces:Landroid/util/SparseArray;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroid/util/SparseArray<",
"Landroid/util/SparseArray<",
"Landroid/hardware/usb/UsbInterface;",
">;>;"
}
.end annotation
.end field
.field private final mWeakDevice:Ljava/lang/ref/WeakReference;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/ref/WeakReference<",
"Landroid/hardware/usb/UsbDevice;",
">;"
}
.end annotation
.end field
.field private final mWeakMonitor:Ljava/lang/ref/WeakReference;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/ref/WeakReference<",
"Lcom/serenegiant/usb/USBMonitor;",
">;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method private constructor <init>(Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;)V
.registers 6
.param p1, "src" # Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/IllegalStateException;
}
.end annotation
.line 1088
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 1048
new-instance v0, Landroid/util/SparseArray;
invoke-direct {v0}, Landroid/util/SparseArray;-><init>()V
iput-object v0, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mInterfaces:Landroid/util/SparseArray;
.line 1089
invoke-virtual {p1}, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->getUSBMonitor()Lcom/serenegiant/usb/USBMonitor;
move-result-object v0
.line 1090
.local v0, "monitor":Lcom/serenegiant/usb/USBMonitor;
invoke-virtual {p1}, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->getDevice()Landroid/hardware/usb/UsbDevice;
move-result-object v1
.line 1091
.local v1, "device":Landroid/hardware/usb/UsbDevice;
if-eqz v1, :cond_4a
.line 1094
# getter for: Lcom/serenegiant/usb/USBMonitor;->mUsbManager:Landroid/hardware/usb/UsbManager;
invoke-static {v0}, Lcom/serenegiant/usb/USBMonitor;->access$1400(Lcom/serenegiant/usb/USBMonitor;)Landroid/hardware/usb/UsbManager;
move-result-object v2
invoke-virtual {v2, v1}, Landroid/hardware/usb/UsbManager;->openDevice(Landroid/hardware/usb/UsbDevice;)Landroid/hardware/usb/UsbDeviceConnection;
move-result-object v2
iput-object v2, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mConnection:Landroid/hardware/usb/UsbDeviceConnection;
.line 1095
if-eqz v2, :cond_42
.line 1098
# getter for: Lcom/serenegiant/usb/USBMonitor;->mUsbManager:Landroid/hardware/usb/UsbManager;
invoke-static {v0}, Lcom/serenegiant/usb/USBMonitor;->access$1400(Lcom/serenegiant/usb/USBMonitor;)Landroid/hardware/usb/UsbManager;
move-result-object v2
const/4 v3, 0x0
invoke-static {v2, v1, v3}, Lcom/serenegiant/usb/USBMonitor;->updateDeviceInfo(Landroid/hardware/usb/UsbManager;Landroid/hardware/usb/UsbDevice;Lcom/serenegiant/usb/USBMonitor$UsbDeviceInfo;)Lcom/serenegiant/usb/USBMonitor$UsbDeviceInfo;
move-result-object v2
iput-object v2, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mInfo:Lcom/serenegiant/usb/USBMonitor$UsbDeviceInfo;
.line 1099
new-instance v2, Ljava/lang/ref/WeakReference;
invoke-direct {v2, v0}, Ljava/lang/ref/WeakReference;-><init>(Ljava/lang/Object;)V
iput-object v2, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mWeakMonitor:Ljava/lang/ref/WeakReference;
.line 1100
new-instance v2, Ljava/lang/ref/WeakReference;
invoke-direct {v2, v1}, Ljava/lang/ref/WeakReference;-><init>(Ljava/lang/Object;)V
iput-object v2, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mWeakDevice:Ljava/lang/ref/WeakReference;
.line 1101
iget v2, p1, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mBusNum:I
iput v2, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mBusNum:I
.line 1102
iget v2, p1, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mDevNum:I
iput v2, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mDevNum:I
.line 1104
return-void
.line 1096
:cond_42
new-instance v2, Ljava/lang/IllegalStateException;
const-string v3, "device may already be removed or have no permission"
invoke-direct {v2, v3}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v2
.line 1092
:cond_4a
new-instance v2, Ljava/lang/IllegalStateException;
const-string v3, "device may already be removed"
invoke-direct {v2, v3}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v2
.end method
.method private constructor <init>(Lcom/serenegiant/usb/USBMonitor;Landroid/hardware/usb/UsbDevice;)V
.registers 16
.param p1, "monitor" # Lcom/serenegiant/usb/USBMonitor;
.param p2, "device" # Landroid/hardware/usb/UsbDevice;
.line 1055
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 1048
new-instance v0, Landroid/util/SparseArray;
invoke-direct {v0}, Landroid/util/SparseArray;-><init>()V
iput-object v0, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mInterfaces:Landroid/util/SparseArray;
.line 1057
new-instance v0, Ljava/lang/ref/WeakReference;
invoke-direct {v0, p1}, Ljava/lang/ref/WeakReference;-><init>(Ljava/lang/Object;)V
iput-object v0, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mWeakMonitor:Ljava/lang/ref/WeakReference;
.line 1058
new-instance v0, Ljava/lang/ref/WeakReference;
invoke-direct {v0, p2}, Ljava/lang/ref/WeakReference;-><init>(Ljava/lang/Object;)V
iput-object v0, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mWeakDevice:Ljava/lang/ref/WeakReference;
.line 1059
# getter for: Lcom/serenegiant/usb/USBMonitor;->mUsbManager:Landroid/hardware/usb/UsbManager;
invoke-static {p1}, Lcom/serenegiant/usb/USBMonitor;->access$1400(Lcom/serenegiant/usb/USBMonitor;)Landroid/hardware/usb/UsbManager;
move-result-object v0
invoke-virtual {v0, p2}, Landroid/hardware/usb/UsbManager;->openDevice(Landroid/hardware/usb/UsbDevice;)Landroid/hardware/usb/UsbDeviceConnection;
move-result-object v0
iput-object v0, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mConnection:Landroid/hardware/usb/UsbDeviceConnection;
.line 1060
const-string v0, "USBMonitor"
const-string v1, "openDevice"
invoke-static {v0, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 1061
# getter for: Lcom/serenegiant/usb/USBMonitor;->mUsbManager:Landroid/hardware/usb/UsbManager;
invoke-static {p1}, Lcom/serenegiant/usb/USBMonitor;->access$1400(Lcom/serenegiant/usb/USBMonitor;)Landroid/hardware/usb/UsbManager;
move-result-object v1
iget-object v2, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mConnection:Landroid/hardware/usb/UsbDeviceConnection;
const/4 v3, 0x0
invoke-static {v1, p2, v3, v2}, Lcom/serenegiant/usb/USBMonitor;->updateDeviceInfo(Landroid/hardware/usb/UsbManager;Landroid/hardware/usb/UsbDevice;Lcom/serenegiant/usb/USBMonitor$UsbDeviceInfo;Landroid/hardware/usb/UsbDeviceConnection;)Lcom/serenegiant/usb/USBMonitor$UsbDeviceInfo;
move-result-object v1
iput-object v1, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mInfo:Lcom/serenegiant/usb/USBMonitor$UsbDeviceInfo;
.line 1062
invoke-virtual {p2}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;
move-result-object v1
.line 1063
.local v1, "name":Ljava/lang/String;
invoke-static {v1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v2
if-nez v2, :cond_46
const-string v2, "/"
invoke-virtual {v1, v2}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v3
:cond_46
move-object v2, v3
.line 1064
.local v2, "v":[Ljava/lang/String;
const/4 v3, 0x0
.line 1065
.local v3, "busnum":I
const/4 v4, 0x0
.line 1066
.local v4, "devnum":I
const/4 v5, 0x1
const/4 v6, 0x2
if-eqz v2, :cond_5d
.line 1067
array-length v7, v2
sub-int/2addr v7, v6
aget-object v7, v2, v7
invoke-static {v7}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v3
.line 1068
array-length v7, v2
sub-int/2addr v7, v5
aget-object v7, v2, v7
invoke-static {v7}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v4
.line 1070
:cond_5d
iput v3, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mBusNum:I
.line 1071
iput v4, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mDevNum:I
.line 1073
iget-object v7, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mConnection:Landroid/hardware/usb/UsbDeviceConnection;
if-eqz v7, :cond_a3
.line 1074
invoke-virtual {v7}, Landroid/hardware/usb/UsbDeviceConnection;->getFileDescriptor()I
move-result v7
.line 1075
.local v7, "desc":I
iget-object v8, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mConnection:Landroid/hardware/usb/UsbDeviceConnection;
invoke-virtual {v8}, Landroid/hardware/usb/UsbDeviceConnection;->getRawDescriptors()[B
move-result-object v8
.line 1076
.local v8, "rawDesc":[B
new-instance v9, Ljava/lang/StringBuilder;
invoke-direct {v9}, Ljava/lang/StringBuilder;-><init>()V
sget-object v10, Ljava/util/Locale;->US:Ljava/util/Locale;
const/4 v11, 0x4
new-array v11, v11, [Ljava/lang/Object;
const/4 v12, 0x0
aput-object v1, v11, v12
invoke-static {v7}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v12
aput-object v12, v11, v5
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v5
aput-object v5, v11, v6
const/4 v5, 0x3
invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v6
aput-object v6, v11, v5
const-string v5, "name=%s,desc=%d,busnum=%d,devnum=%d,rawDesc="
invoke-static {v10, v5, v11}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v5
invoke-virtual {v9, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v9, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v9}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
invoke-static {v0, v5}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
.line 1077
.end local v7 # "desc":I
.end local v8 # "rawDesc":[B
goto :goto_b7
.line 1078
:cond_a3
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "could not connect to device "
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
invoke-static {v0, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 1081
:goto_b7
return-void
.end method
.method synthetic constructor <init>(Lcom/serenegiant/usb/USBMonitor;Landroid/hardware/usb/UsbDevice;Lcom/serenegiant/usb/USBMonitor$1;)V
.registers 4
.param p1, "x0" # Lcom/serenegiant/usb/USBMonitor;
.param p2, "x1" # Landroid/hardware/usb/UsbDevice;
.param p3, "x2" # Lcom/serenegiant/usb/USBMonitor$1;
.line 1041
invoke-direct {p0, p1, p2}, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;-><init>(Lcom/serenegiant/usb/USBMonitor;Landroid/hardware/usb/UsbDevice;)V
return-void
.end method
.method private declared-synchronized checkConnection()V
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/IllegalStateException;
}
.end annotation
monitor-enter p0
.line 1427
:try_start_1
iget-object v0, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mConnection:Landroid/hardware/usb/UsbDeviceConnection;
:try_end_3
.catchall {:try_start_1 .. :try_end_3} :catchall_f
if-eqz v0, :cond_7
.line 1430
monitor-exit p0
return-void
.line 1428
:cond_7
:try_start_7
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "already closed"
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
:try_end_f
.catchall {:try_start_7 .. :try_end_f} :catchall_f
.line 1426
.end local p0 # "this":Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
:catchall_f
move-exception v0
monitor-exit p0
throw v0
.end method
# virtual methods
.method public declared-synchronized claimInterface(Landroid/hardware/usb/UsbInterface;)V
.registers 3
.param p1, "intf" # Landroid/hardware/usb/UsbInterface;
monitor-enter p0
.line 1348
const/4 v0, 0x1
:try_start_2
invoke-virtual {p0, p1, v0}, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->claimInterface(Landroid/hardware/usb/UsbInterface;Z)V
:try_end_5
.catchall {:try_start_2 .. :try_end_5} :catchall_7
.line 1349
monitor-exit p0
return-void
.line 1347
.end local p0 # "this":Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
.end local p1 # "intf":Landroid/hardware/usb/UsbInterface;
:catchall_7
move-exception p1
monitor-exit p0
throw p1
.end method
.method public declared-synchronized claimInterface(Landroid/hardware/usb/UsbInterface;Z)V
.registers 4
.param p1, "intf" # Landroid/hardware/usb/UsbInterface;
.param p2, "force" # Z
monitor-enter p0
.line 1352
:try_start_1
invoke-direct {p0}, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->checkConnection()V
.line 1353
iget-object v0, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mConnection:Landroid/hardware/usb/UsbDeviceConnection;
invoke-virtual {v0, p1, p2}, Landroid/hardware/usb/UsbDeviceConnection;->claimInterface(Landroid/hardware/usb/UsbInterface;Z)Z
:try_end_9
.catchall {:try_start_1 .. :try_end_9} :catchall_b
.line 1354
monitor-exit p0
return-void
.line 1351
.end local p0 # "this":Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
.end local p1 # "intf":Landroid/hardware/usb/UsbInterface;
.end local p2 # "force":Z
:catchall_b
move-exception p1
monitor-exit p0
throw p1
.end method
.method public clone()Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/CloneNotSupportedException;
}
.end annotation
.line 1117
:try_start_0
new-instance v0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
invoke-direct {v0, p0}, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;-><init>(Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;)V
:try_end_5
.catch Ljava/lang/IllegalStateException; {:try_start_0 .. :try_end_5} :catch_7
.line 1120
.local v0, "ctrlblock":Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
nop
.line 1121
return-object v0
.line 1118
.end local v0 # "ctrlblock":Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
:catch_7
move-exception v0
.line 1119
.local v0, "e":Ljava/lang/IllegalStateException;
new-instance v1, Ljava/lang/CloneNotSupportedException;
invoke-virtual {v0}, Ljava/lang/IllegalStateException;->getMessage()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Ljava/lang/CloneNotSupportedException;-><init>(Ljava/lang/String;)V
throw v1
.end method
.method public bridge synthetic clone()Ljava/lang/Object;
.registers 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/CloneNotSupportedException;
}
.end annotation
.line 1041
invoke-virtual {p0}, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->clone()Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
move-result-object v0
return-object v0
.end method
.method public declared-synchronized close()V
.registers 8
monitor-enter p0
.line 1381
:try_start_1
iget-object v0, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mConnection:Landroid/hardware/usb/UsbDeviceConnection;
if-eqz v0, :cond_6b
.line 1382
iget-object v0, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mInterfaces:Landroid/util/SparseArray;
invoke-virtual {v0}, Landroid/util/SparseArray;->size()I
move-result v0
.line 1383
.local v0, "n":I
const/4 v1, 0x0
.local v1, "i":I
:goto_c
if-ge v1, v0, :cond_34
.line 1384
iget-object v2, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mInterfaces:Landroid/util/SparseArray;
invoke-virtual {v2, v1}, Landroid/util/SparseArray;->valueAt(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Landroid/util/SparseArray;
.line 1385
.local v2, "intfs":Landroid/util/SparseArray;, "Landroid/util/SparseArray<Landroid/hardware/usb/UsbInterface;>;"
if-eqz v2, :cond_31
.line 1386
invoke-virtual {v2}, Landroid/util/SparseArray;->size()I
move-result v3
.line 1387
.local v3, "m":I
const/4 v4, 0x0
.local v4, "j":I
:goto_1d
if-ge v4, v3, :cond_2e
.line 1388
invoke-virtual {v2, v4}, Landroid/util/SparseArray;->valueAt(I)Ljava/lang/Object;
move-result-object v5
check-cast v5, Landroid/hardware/usb/UsbInterface;
.line 1389
.local v5, "intf":Landroid/hardware/usb/UsbInterface;
iget-object v6, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mConnection:Landroid/hardware/usb/UsbDeviceConnection;
invoke-virtual {v6, v5}, Landroid/hardware/usb/UsbDeviceConnection;->releaseInterface(Landroid/hardware/usb/UsbInterface;)Z
.line 1387
nop
.end local v5 # "intf":Landroid/hardware/usb/UsbInterface;
add-int/lit8 v4, v4, 0x1
goto :goto_1d
.line 1391
.end local v4 # "j":I
.end local p0 # "this":Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
:cond_2e
invoke-virtual {v2}, Landroid/util/SparseArray;->clear()V
.line 1383
.end local v2 # "intfs":Landroid/util/SparseArray;, "Landroid/util/SparseArray<Landroid/hardware/usb/UsbInterface;>;"
.end local v3 # "m":I
:cond_31
add-int/lit8 v1, v1, 0x1
goto :goto_c
.line 1394
.end local v1 # "i":I
:cond_34
iget-object v1, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mInterfaces:Landroid/util/SparseArray;
invoke-virtual {v1}, Landroid/util/SparseArray;->clear()V
.line 1395
iget-object v1, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mConnection:Landroid/hardware/usb/UsbDeviceConnection;
invoke-virtual {v1}, Landroid/hardware/usb/UsbDeviceConnection;->close()V
.line 1396
const/4 v1, 0x0
iput-object v1, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mConnection:Landroid/hardware/usb/UsbDeviceConnection;
.line 1397
iget-object v1, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mWeakMonitor:Ljava/lang/ref/WeakReference;
invoke-virtual {v1}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/serenegiant/usb/USBMonitor;
.line 1398
.local v1, "monitor":Lcom/serenegiant/usb/USBMonitor;
if-eqz v1, :cond_6b
.line 1399
# getter for: Lcom/serenegiant/usb/USBMonitor;->mOnDeviceConnectListener:Lcom/serenegiant/usb/USBMonitor$OnDeviceConnectListener;
invoke-static {v1}, Lcom/serenegiant/usb/USBMonitor;->access$1100(Lcom/serenegiant/usb/USBMonitor;)Lcom/serenegiant/usb/USBMonitor$OnDeviceConnectListener;
move-result-object v2
if-eqz v2, :cond_60
.line 1400
# getter for: Lcom/serenegiant/usb/USBMonitor;->mOnDeviceConnectListener:Lcom/serenegiant/usb/USBMonitor$OnDeviceConnectListener;
invoke-static {v1}, Lcom/serenegiant/usb/USBMonitor;->access$1100(Lcom/serenegiant/usb/USBMonitor;)Lcom/serenegiant/usb/USBMonitor$OnDeviceConnectListener;
move-result-object v2
iget-object v3, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mWeakDevice:Ljava/lang/ref/WeakReference;
invoke-virtual {v3}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object;
move-result-object v3
check-cast v3, Landroid/hardware/usb/UsbDevice;
invoke-interface {v2, v3, p0}, Lcom/serenegiant/usb/USBMonitor$OnDeviceConnectListener;->onDisconnect(Landroid/hardware/usb/UsbDevice;Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;)V
.line 1402
:cond_60
# getter for: Lcom/serenegiant/usb/USBMonitor;->mCtrlBlocks:Ljava/util/concurrent/ConcurrentHashMap;
invoke-static {v1}, Lcom/serenegiant/usb/USBMonitor;->access$700(Lcom/serenegiant/usb/USBMonitor;)Ljava/util/concurrent/ConcurrentHashMap;
move-result-object v2
invoke-virtual {p0}, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->getDevice()Landroid/hardware/usb/UsbDevice;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/util/concurrent/ConcurrentHashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
:try_end_6b
.catchall {:try_start_1 .. :try_end_6b} :catchall_6d
.line 1405
.end local v0 # "n":I
.end local v1 # "monitor":Lcom/serenegiant/usb/USBMonitor;
:cond_6b
monitor-exit p0
return-void
.line 1380
:catchall_6d
move-exception v0
monitor-exit p0
goto :goto_71
:goto_70
throw v0
:goto_71
goto :goto_70
.end method
.method public equals(Ljava/lang/Object;)Z
.registers 5
.param p1, "o" # Ljava/lang/Object;
.line 1409
const/4 v0, 0x0
if-nez p1, :cond_4
return v0
.line 1410
:cond_4
instance-of v1, p1, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
if-eqz v1, :cond_26
.line 1411
move-object v1, p1
check-cast v1, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
invoke-virtual {v1}, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->getDevice()Landroid/hardware/usb/UsbDevice;
move-result-object v1
.line 1412
.local v1, "device":Landroid/hardware/usb/UsbDevice;
if-nez v1, :cond_1b
iget-object v2, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mWeakDevice:Ljava/lang/ref/WeakReference;
invoke-virtual {v2}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object;
move-result-object v2
if-nez v2, :cond_25
const/4 v0, 0x1
goto :goto_25
:cond_1b
iget-object v0, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mWeakDevice:Ljava/lang/ref/WeakReference;
.line 1413
invoke-virtual {v0}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object;
move-result-object v0
invoke-virtual {v1, v0}, Landroid/hardware/usb/UsbDevice;->equals(Ljava/lang/Object;)Z
move-result v0
.line 1412
:cond_25
:goto_25
return v0
.line 1414
.end local v1 # "device":Landroid/hardware/usb/UsbDevice;
:cond_26
instance-of v0, p1, Landroid/hardware/usb/UsbDevice;
if-eqz v0, :cond_35
.line 1415
iget-object v0, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mWeakDevice:Ljava/lang/ref/WeakReference;
invoke-virtual {v0}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object;
move-result-object v0
invoke-virtual {p1, v0}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v0
return v0
.line 1417
:cond_35
invoke-super {p0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v0
return v0
.end method
.method public getBusNum()I
.registers 2
.line 1295
iget v0, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mBusNum:I
return v0
.end method
.method public declared-synchronized getConnection()Landroid/hardware/usb/UsbDeviceConnection;
.registers 2
monitor-enter p0
.line 1213
:try_start_1
iget-object v0, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mConnection:Landroid/hardware/usb/UsbDeviceConnection;
:try_end_3
.catchall {:try_start_1 .. :try_end_3} :catchall_5
monitor-exit p0
return-object v0
.end local p0 # "this":Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
:catchall_5
move-exception v0
monitor-exit p0
throw v0
.end method
.method public getDevNum()I
.registers 2
.line 1299
iget v0, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mDevNum:I
return v0
.end method
.method public final getDevice()Landroid/hardware/usb/UsbDevice;
.registers 2
.line 1129
iget-object v0, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mWeakDevice:Ljava/lang/ref/WeakReference;
invoke-virtual {v0}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/hardware/usb/UsbDevice;
return-object v0
.end method
.method public getDeviceId()I
.registers 3
.line 1146
iget-object v0, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mWeakDevice:Ljava/lang/ref/WeakReference;
invoke-virtual {v0}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/hardware/usb/UsbDevice;
.line 1147
.local v0, "device":Landroid/hardware/usb/UsbDevice;
if-eqz v0, :cond_f
invoke-virtual {v0}, Landroid/hardware/usb/UsbDevice;->getDeviceId()I
move-result v1
goto :goto_10
:cond_f
const/4 v1, 0x0
:goto_10
return v1
.end method
.method public getDeviceKey()I
.registers 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/IllegalStateException;
}
.end annotation
.line 1175
invoke-direct {p0}, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->checkConnection()V
.line 1176
iget-object v0, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mWeakDevice:Ljava/lang/ref/WeakReference;
invoke-virtual {v0}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/hardware/usb/UsbDevice;
invoke-static {v0}, Lcom/serenegiant/usb/USBMonitor;->getDeviceKey(Landroid/hardware/usb/UsbDevice;)I
move-result v0
return v0
.end method
.method public getDeviceKey(Z)I
.registers 4
.param p1, "useNewAPI" # Z
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/IllegalStateException;
}
.end annotation
.line 1186
if-eqz p1, :cond_5
invoke-direct {p0}, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->checkConnection()V
.line 1187
:cond_5
iget-object v0, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mWeakDevice:Ljava/lang/ref/WeakReference;
invoke-virtual {v0}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/hardware/usb/UsbDevice;
iget-object v1, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mInfo:Lcom/serenegiant/usb/USBMonitor$UsbDeviceInfo;
iget-object v1, v1, Lcom/serenegiant/usb/USBMonitor$UsbDeviceInfo;->serial:Ljava/lang/String;
invoke-static {v0, v1, p1}, Lcom/serenegiant/usb/USBMonitor;->getDeviceKey(Landroid/hardware/usb/UsbDevice;Ljava/lang/String;Z)I
move-result v0
return v0
.end method
.method public getDeviceKeyName()Ljava/lang/String;
.registers 2
.line 1155
iget-object v0, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mWeakDevice:Ljava/lang/ref/WeakReference;
invoke-virtual {v0}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/hardware/usb/UsbDevice;
invoke-static {v0}, Lcom/serenegiant/usb/USBMonitor;->getDeviceKeyName(Landroid/hardware/usb/UsbDevice;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public getDeviceKeyName(Z)Ljava/lang/String;
.registers 4
.param p1, "useNewAPI" # Z
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/IllegalStateException;
}
.end annotation
.line 1165
if-eqz p1, :cond_5
invoke-direct {p0}, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->checkConnection()V
.line 1166
:cond_5
iget-object v0, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mWeakDevice:Ljava/lang/ref/WeakReference;
invoke-virtual {v0}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/hardware/usb/UsbDevice;
iget-object v1, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mInfo:Lcom/serenegiant/usb/USBMonitor$UsbDeviceInfo;
iget-object v1, v1, Lcom/serenegiant/usb/USBMonitor$UsbDeviceInfo;->serial:Ljava/lang/String;
invoke-static {v0, v1, p1}, Lcom/serenegiant/usb/USBMonitor;->getDeviceKeyName(Landroid/hardware/usb/UsbDevice;Ljava/lang/String;Z)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public getDeviceKeyNameWithSerial()Ljava/lang/String;
.registers 4
.line 1196
iget-object v0, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mWeakDevice:Ljava/lang/ref/WeakReference;
invoke-virtual {v0}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/hardware/usb/UsbDevice;
iget-object v1, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mInfo:Lcom/serenegiant/usb/USBMonitor$UsbDeviceInfo;
iget-object v1, v1, Lcom/serenegiant/usb/USBMonitor$UsbDeviceInfo;->serial:Ljava/lang/String;
const/4 v2, 0x0
invoke-static {v0, v1, v2}, Lcom/serenegiant/usb/USBMonitor;->getDeviceKeyName(Landroid/hardware/usb/UsbDevice;Ljava/lang/String;Z)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public getDeviceKeyWithSerial()I
.registers 2
.line 1205
invoke-virtual {p0}, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->getDeviceKeyNameWithSerial()Ljava/lang/String;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/String;->hashCode()I
move-result v0
return v0
.end method
.method public getDeviceName()Ljava/lang/String;
.registers 3
.line 1137
iget-object v0, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mWeakDevice:Ljava/lang/ref/WeakReference;
invoke-virtual {v0}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/hardware/usb/UsbDevice;
.line 1138
.local v0, "device":Landroid/hardware/usb/UsbDevice;
if-eqz v0, :cond_f
invoke-virtual {v0}, Landroid/hardware/usb/UsbDevice;->getDeviceName()Ljava/lang/String;
move-result-object v1
goto :goto_11
:cond_f
const-string v1, ""
:goto_11
return-object v1
.end method
.method public declared-synchronized getFileDescriptor()I
.registers 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/IllegalStateException;
}
.end annotation
monitor-enter p0
.line 1222
:try_start_1
invoke-direct {p0}, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->checkConnection()V
.line 1223
iget-object v0, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mConnection:Landroid/hardware/usb/UsbDeviceConnection;
invoke-virtual {v0}, Landroid/hardware/usb/UsbDeviceConnection;->getFileDescriptor()I
move-result v0
:try_end_a
.catchall {:try_start_1 .. :try_end_a} :catchall_c
monitor-exit p0
return v0
.line 1221
.end local p0 # "this":Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
:catchall_c
move-exception v0
monitor-exit p0
throw v0
.end method
.method public declared-synchronized getInterface(I)Landroid/hardware/usb/UsbInterface;
.registers 3
.param p1, "interface_id" # I
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/IllegalStateException;
}
.end annotation
monitor-enter p0
.line 1308
const/4 v0, 0x0
:try_start_2
invoke-virtual {p0, p1, v0}, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->getInterface(II)Landroid/hardware/usb/UsbInterface;
move-result-object v0
:try_end_6
.catchall {:try_start_2 .. :try_end_6} :catchall_8
monitor-exit p0
return-object v0
.end local p0 # "this":Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
.end local p1 # "interface_id":I
:catchall_8
move-exception p1
monitor-exit p0
throw p1
.end method
.method public declared-synchronized getInterface(II)Landroid/hardware/usb/UsbInterface;
.registers 10
.param p1, "interface_id" # I
.param p2, "altsetting" # I
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/IllegalStateException;
}
.end annotation
monitor-enter p0
.line 1319
:try_start_1
invoke-direct {p0}, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->checkConnection()V
.line 1320
iget-object v0, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mInterfaces:Landroid/util/SparseArray;
invoke-virtual {v0, p1}, Landroid/util/SparseArray;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/util/SparseArray;
.line 1321
.local v0, "intfs":Landroid/util/SparseArray;, "Landroid/util/SparseArray<Landroid/hardware/usb/UsbInterface;>;"
if-nez v0, :cond_19
.line 1322
new-instance v1, Landroid/util/SparseArray;
invoke-direct {v1}, Landroid/util/SparseArray;-><init>()V
move-object v0, v1
.line 1323
iget-object v1, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mInterfaces:Landroid/util/SparseArray;
invoke-virtual {v1, p1, v0}, Landroid/util/SparseArray;->put(ILjava/lang/Object;)V
.line 1325
.end local p0 # "this":Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
:cond_19
invoke-virtual {v0, p2}, Landroid/util/SparseArray;->get(I)Ljava/lang/Object;
move-result-object v1
check-cast v1, Landroid/hardware/usb/UsbInterface;
.line 1326
.local v1, "intf":Landroid/hardware/usb/UsbInterface;
if-nez v1, :cond_4a
.line 1327
iget-object v2, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mWeakDevice:Ljava/lang/ref/WeakReference;
invoke-virtual {v2}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object;
move-result-object v2
check-cast v2, Landroid/hardware/usb/UsbDevice;
.line 1328
.local v2, "device":Landroid/hardware/usb/UsbDevice;
invoke-virtual {v2}, Landroid/hardware/usb/UsbDevice;->getInterfaceCount()I
move-result v3
.line 1329
.local v3, "n":I
const/4 v4, 0x0
.local v4, "i":I
:goto_2e
if-ge v4, v3, :cond_45
.line 1330
invoke-virtual {v2, v4}, Landroid/hardware/usb/UsbDevice;->getInterface(I)Landroid/hardware/usb/UsbInterface;
move-result-object v5
.line 1331
.local v5, "temp":Landroid/hardware/usb/UsbInterface;
invoke-virtual {v5}, Landroid/hardware/usb/UsbInterface;->getId()I
move-result v6
if-ne v6, p1, :cond_42
invoke-virtual {v5}, Landroid/hardware/usb/UsbInterface;->getAlternateSetting()I
move-result v6
if-ne v6, p2, :cond_42
.line 1332
move-object v1, v5
.line 1333
goto :goto_45
.line 1329
.end local v5 # "temp":Landroid/hardware/usb/UsbInterface;
:cond_42
add-int/lit8 v4, v4, 0x1
goto :goto_2e
.line 1336
.end local v4 # "i":I
:cond_45
:goto_45
if-eqz v1, :cond_4a
.line 1337
invoke-virtual {v0, p2, v1}, Landroid/util/SparseArray;->append(ILjava/lang/Object;)V
:try_end_4a
.catchall {:try_start_1 .. :try_end_4a} :catchall_4c
.line 1340
.end local v2 # "device":Landroid/hardware/usb/UsbDevice;
.end local v3 # "n":I
:cond_4a
monitor-exit p0
return-object v1
.line 1318
.end local v0 # "intfs":Landroid/util/SparseArray;, "Landroid/util/SparseArray<Landroid/hardware/usb/UsbInterface;>;"
.end local v1 # "intf":Landroid/hardware/usb/UsbInterface;
.end local p1 # "interface_id":I
.end local p2 # "altsetting":I
:catchall_4c
move-exception p1
monitor-exit p0
goto :goto_50
:goto_4f
throw p1
:goto_50
goto :goto_4f
.end method
.method public getManufacture()Ljava/lang/String;
.registers 2
.line 1267
iget-object v0, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mInfo:Lcom/serenegiant/usb/USBMonitor$UsbDeviceInfo;
iget-object v0, v0, Lcom/serenegiant/usb/USBMonitor$UsbDeviceInfo;->manufacturer:Ljava/lang/String;
return-object v0
.end method
.method public getProductId()I
.registers 3
.line 1250
iget-object v0, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mWeakDevice:Ljava/lang/ref/WeakReference;
invoke-virtual {v0}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/hardware/usb/UsbDevice;
.line 1251
.local v0, "device":Landroid/hardware/usb/UsbDevice;
if-eqz v0, :cond_f
invoke-virtual {v0}, Landroid/hardware/usb/UsbDevice;->getProductId()I
move-result v1
goto :goto_10
:cond_f
const/4 v1, 0x0
:goto_10
return v1
.end method
.method public getProductName()Ljava/lang/String;
.registers 2
.line 1275
iget-object v0, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mInfo:Lcom/serenegiant/usb/USBMonitor$UsbDeviceInfo;
iget-object v0, v0, Lcom/serenegiant/usb/USBMonitor$UsbDeviceInfo;->product:Ljava/lang/String;
return-object v0
.end method
.method public declared-synchronized getRawDescriptors()[B
.registers 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/IllegalStateException;
}
.end annotation
monitor-enter p0
.line 1232
:try_start_1
invoke-direct {p0}, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->checkConnection()V
.line 1233
iget-object v0, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mConnection:Landroid/hardware/usb/UsbDeviceConnection;
invoke-virtual {v0}, Landroid/hardware/usb/UsbDeviceConnection;->getRawDescriptors()[B
move-result-object v0
:try_end_a
.catchall {:try_start_1 .. :try_end_a} :catchall_c
monitor-exit p0
return-object v0
.line 1231
.end local p0 # "this":Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
:catchall_c
move-exception v0
monitor-exit p0
throw v0
.end method
.method public getSerial()Ljava/lang/String;
.registers 2
.line 1291
iget-object v0, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mInfo:Lcom/serenegiant/usb/USBMonitor$UsbDeviceInfo;
iget-object v0, v0, Lcom/serenegiant/usb/USBMonitor$UsbDeviceInfo;->serial:Ljava/lang/String;
return-object v0
.end method
.method public getUSBMonitor()Lcom/serenegiant/usb/USBMonitor;
.registers 2
.line 1125
iget-object v0, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mWeakMonitor:Ljava/lang/ref/WeakReference;
invoke-virtual {v0}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/serenegiant/usb/USBMonitor;
return-object v0
.end method
.method public getUsbVersion()Ljava/lang/String;
.registers 2
.line 1259
iget-object v0, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mInfo:Lcom/serenegiant/usb/USBMonitor$UsbDeviceInfo;
iget-object v0, v0, Lcom/serenegiant/usb/USBMonitor$UsbDeviceInfo;->usb_version:Ljava/lang/String;
return-object v0
.end method
.method public getVenderId()I
.registers 3
.line 1241
iget-object v0, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mWeakDevice:Ljava/lang/ref/WeakReference;
invoke-virtual {v0}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/hardware/usb/UsbDevice;
.line 1242
.local v0, "device":Landroid/hardware/usb/UsbDevice;
if-eqz v0, :cond_f
invoke-virtual {v0}, Landroid/hardware/usb/UsbDevice;->getVendorId()I
move-result v1
goto :goto_10
:cond_f
const/4 v1, 0x0
:goto_10
return v1
.end method
.method public getVersion()Ljava/lang/String;
.registers 2
.line 1283
iget-object v0, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mInfo:Lcom/serenegiant/usb/USBMonitor$UsbDeviceInfo;
iget-object v0, v0, Lcom/serenegiant/usb/USBMonitor$UsbDeviceInfo;->version:Ljava/lang/String;
return-object v0
.end method
.method public declared-synchronized releaseInterface(Landroid/hardware/usb/UsbInterface;)V
.registers 6
.param p1, "intf" # Landroid/hardware/usb/UsbInterface;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/IllegalStateException;
}
.end annotation
monitor-enter p0
.line 1362
:try_start_1
invoke-direct {p0}, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->checkConnection()V
.line 1363
iget-object v0, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mInterfaces:Landroid/util/SparseArray;
invoke-virtual {p1}, Landroid/hardware/usb/UsbInterface;->getId()I
move-result v1
invoke-virtual {v0, v1}, Landroid/util/SparseArray;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/util/SparseArray;
.line 1364
.local v0, "intfs":Landroid/util/SparseArray;, "Landroid/util/SparseArray<Landroid/hardware/usb/UsbInterface;>;"
if-eqz v0, :cond_28
.line 1365
invoke-virtual {v0, p1}, Landroid/util/SparseArray;->indexOfValue(Ljava/lang/Object;)I
move-result v1
.line 1366
.local v1, "index":I
invoke-virtual {v0, v1}, Landroid/util/SparseArray;->removeAt(I)V
.line 1367
invoke-virtual {v0}, Landroid/util/SparseArray;->size()I
move-result v2
if-nez v2, :cond_28
.line 1368
iget-object v2, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mInterfaces:Landroid/util/SparseArray;
invoke-virtual {p1}, Landroid/hardware/usb/UsbInterface;->getId()I
move-result v3
invoke-virtual {v2, v3}, Landroid/util/SparseArray;->remove(I)V
.line 1371
.end local v1 # "index":I
.end local p0 # "this":Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
:cond_28
iget-object v1, p0, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->mConnection:Landroid/hardware/usb/UsbDeviceConnection;
invoke-virtual {v1, p1}, Landroid/hardware/usb/UsbDeviceConnection;->releaseInterface(Landroid/hardware/usb/UsbInterface;)Z
:try_end_2d
.catchall {:try_start_1 .. :try_end_2d} :catchall_2f
.line 1372
monitor-exit p0
return-void
.line 1361
.end local v0 # "intfs":Landroid/util/SparseArray;, "Landroid/util/SparseArray<Landroid/hardware/usb/UsbInterface;>;"
.end local p1 # "intf":Landroid/hardware/usb/UsbInterface;
:catchall_2f
move-exception p1
monitor-exit p0
throw p1
.end method