AudioRouteManager.smali
.class public Lcom/tencent/liteav/audio/route/AudioRouteManager;
.super Lcom/tencent/liteav/audio/route/s$a;
.source "SourceFile"
# annotations
.annotation runtime Lcom/tencent/liteav/base/annotations/JNINamespace;
value = "liteav::audio"
.end annotation
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/tencent/liteav/audio/route/AudioRouteManager$RecordingConfig;
}
.end annotation
# static fields
.field private static final BLUETOOTH_SCO_RECONNECT_INTERVAL:I = 0x3e8
.field private static final IN_CALL_DETECTION_TIME:J = 0x1f4L
.field private static final RECORDING_CONFIGS_LIMIT:I = 0xa
.field private static final TAG:Ljava/lang/String; = "AudioRouteManager"
# instance fields
.field private mAudioDeviceCallback:Landroid/media/AudioDeviceCallback;
.field private final mAudioManager:Landroid/media/AudioManager;
.field private mAudioRecordingCallback:Landroid/media/AudioManager$AudioRecordingCallback;
.field private final mAudioRouteSupervisor:Lcom/tencent/liteav/audio/route/q;
.field private final mBroadcastReceiver:Lcom/tencent/liteav/audio/route/s;
.field private mCurrentAudioIOScene:Lcom/tencent/liteav/audio/route/a;
.field private mCurrentRouteConfig:Ljava/lang/String;
.field private mCurrentRouteType:Lcom/tencent/liteav/audio/route/b$a;
.field private mExpectedAudioIOScene:Lcom/tencent/liteav/audio/route/a;
.field private final mForceUpdateRouteRunnable:Ljava/lang/Runnable;
.field private mHandler:Lcom/tencent/liteav/base/util/CustomHandler;
.field private mHasModeConflict:Z
.field private mIsServiceStarted:Z
.field private final mNativeAudioRouteManager:J
.field private mSwitcher:Lcom/tencent/liteav/audio/route/r$a;
.field private mSwitcherListener:Lcom/tencent/liteav/audio/route/r$a$a;
# direct methods
.method public constructor <init>(J)V
.registers 6
.line 77
invoke-direct {p0}, Lcom/tencent/liteav/audio/route/s$a;-><init>()V
const/4 v0, 0x0
.line 40
iput-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mHandler:Lcom/tencent/liteav/base/util/CustomHandler;
const/4 v1, 0x0
.line 41
iput-boolean v1, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mIsServiceStarted:Z
.line 42
sget-object v2, Lcom/tencent/liteav/audio/route/a;->a:Lcom/tencent/liteav/audio/route/a;
iput-object v2, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mCurrentAudioIOScene:Lcom/tencent/liteav/audio/route/a;
.line 43
sget-object v2, Lcom/tencent/liteav/audio/route/a;->a:Lcom/tencent/liteav/audio/route/a;
iput-object v2, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mExpectedAudioIOScene:Lcom/tencent/liteav/audio/route/a;
.line 44
sget-object v2, Lcom/tencent/liteav/audio/route/b$a;->a:Lcom/tencent/liteav/audio/route/b$a;
iput-object v2, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mCurrentRouteType:Lcom/tencent/liteav/audio/route/b$a;
.line 45
iput-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mSwitcher:Lcom/tencent/liteav/audio/route/r$a;
const-string v2, ""
.line 46
iput-object v2, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mCurrentRouteConfig:Ljava/lang/String;
.line 47
iput-boolean v1, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mHasModeConflict:Z
.line 48
iput-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mAudioRecordingCallback:Landroid/media/AudioManager$AudioRecordingCallback;
.line 49
iput-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mAudioDeviceCallback:Landroid/media/AudioDeviceCallback;
.line 50
invoke-static {p0}, Lcom/tencent/liteav/audio/route/c;->a(Lcom/tencent/liteav/audio/route/AudioRouteManager;)Ljava/lang/Runnable;
move-result-object v0
iput-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mForceUpdateRouteRunnable:Ljava/lang/Runnable;
.line 52
new-instance v0, Lcom/tencent/liteav/audio/route/AudioRouteManager$1;
invoke-direct {v0, p0}, Lcom/tencent/liteav/audio/route/AudioRouteManager$1;-><init>(Lcom/tencent/liteav/audio/route/AudioRouteManager;)V
iput-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mSwitcherListener:Lcom/tencent/liteav/audio/route/r$a$a;
.line 78
iput-wide p1, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mNativeAudioRouteManager:J
.line 79
invoke-static {}, Lcom/tencent/liteav/base/ContextUtils;->getApplicationContext()Landroid/content/Context;
move-result-object p1
.line 80
new-instance p2, Lcom/tencent/liteav/audio/route/q;
invoke-direct {p2}, Lcom/tencent/liteav/audio/route/q;-><init>()V
iput-object p2, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mAudioRouteSupervisor:Lcom/tencent/liteav/audio/route/q;
const-string p2, "audio"
.line 81
invoke-virtual {p1, p2}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object p2
check-cast p2, Landroid/media/AudioManager;
iput-object p2, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mAudioManager:Landroid/media/AudioManager;
.line 82
new-instance p2, Lcom/tencent/liteav/audio/route/s;
invoke-direct {p2, p1, p0}, Lcom/tencent/liteav/audio/route/s;-><init>(Landroid/content/Context;Lcom/tencent/liteav/audio/route/s$a;)V
iput-object p2, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mBroadcastReceiver:Lcom/tencent/liteav/audio/route/s;
return-void
.end method
.method static synthetic access$000(Lcom/tencent/liteav/audio/route/AudioRouteManager;)J
.registers 3
.line 30
iget-wide v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mNativeAudioRouteManager:J
return-wide v0
.end method
.method static synthetic access$100(JI)V
.registers 3
.line 30
invoke-static {p0, p1, p2}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->nativeNotifyAudioRouteChangedFromJava(JI)V
return-void
.end method
.method static synthetic access$200(Lcom/tencent/liteav/audio/route/AudioRouteManager;)Z
.registers 1
.line 30
iget-boolean p0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mHasModeConflict:Z
return p0
.end method
.method static synthetic access$300(Lcom/tencent/liteav/audio/route/AudioRouteManager;)Lcom/tencent/liteav/audio/route/q;
.registers 1
.line 30
iget-object p0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mAudioRouteSupervisor:Lcom/tencent/liteav/audio/route/q;
return-object p0
.end method
.method static synthetic access$400(Lcom/tencent/liteav/audio/route/AudioRouteManager;Z)V
.registers 2
.line 30
invoke-direct {p0, p1}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->autoCheckRouteUpdate(Z)V
return-void
.end method
.method static synthetic access$500(JZ)V
.registers 3
.line 30
invoke-static {p0, p1, p2}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->nativeNotifyBluetoothConnectionFailedFromJava(JZ)V
return-void
.end method
.method static synthetic access$600(Lcom/tencent/liteav/audio/route/AudioRouteManager;Ljava/lang/Runnable;)V
.registers 2
.line 30
invoke-direct {p0, p1}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->runOnWorkThread(Ljava/lang/Runnable;)V
return-void
.end method
.method static synthetic access$700(Lcom/tencent/liteav/audio/route/AudioRouteManager;Ljava/util/List;)V
.registers 2
.line 30
invoke-direct {p0, p1}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->handleRecordingConfigChanged(Ljava/util/List;)V
return-void
.end method
.method static synthetic access$lambda$0(Lcom/tencent/liteav/audio/route/AudioRouteManager;)V
.registers 1
invoke-direct {p0}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->stopInternal()V
return-void
.end method
.method static synthetic access$lambda$1(Lcom/tencent/liteav/audio/route/AudioRouteManager;)V
.registers 1
invoke-direct {p0}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->notifyAudioIOSceneChangedInternal()V
return-void
.end method
.method private autoCheckRouteUpdate(Z)V
.registers 8
.line 466
iget-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mCurrentAudioIOScene:Lcom/tencent/liteav/audio/route/a;
sget-object v1, Lcom/tencent/liteav/audio/route/a;->a:Lcom/tencent/liteav/audio/route/a;
if-ne v0, v1, :cond_e
.line 467
sget-object p1, Lcom/tencent/liteav/audio/route/b$a;->a:Lcom/tencent/liteav/audio/route/b$a;
iput-object p1, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mCurrentRouteType:Lcom/tencent/liteav/audio/route/b$a;
.line 468
invoke-direct {p0}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->destroySwitcher()V
return-void
.line 471
:cond_e
iget-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mAudioRouteSupervisor:Lcom/tencent/liteav/audio/route/q;
.line 11122
iget-boolean v1, v0, Lcom/tencent/liteav/audio/route/q;->c:Z
const/4 v2, 0x0
if-nez v1, :cond_20
const/4 v0, 0x0
new-array v0, v0, [Ljava/lang/Object;
const-string v1, "AudioRouteSupervisor"
const-string v3, "err in getHighestPriorityRoute(), it\'s not been initialized yet"
.line 11123
invoke-static {v1, v3, v0}, Lcom/tencent/liteav/base/Log;->e(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
goto :goto_52
.line 11128
:cond_20
iget-object v0, v0, Lcom/tencent/liteav/audio/route/q;->b:Ljava/util/HashMap;
invoke-virtual {v0}, Ljava/util/HashMap;->entrySet()Ljava/util/Set;
move-result-object v0
invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v0
move-object v1, v2
:cond_2b
:goto_2b
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v3
if-eqz v3, :cond_4d
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v3
check-cast v3, Ljava/util/Map$Entry;
.line 11129
invoke-interface {v3}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object v3
check-cast v3, Lcom/tencent/liteav/audio/route/b;
if-eqz v3, :cond_2b
.line 12063
iget-boolean v4, v3, Lcom/tencent/liteav/audio/route/b;->b:Z
if-eqz v4, :cond_2b
if-eqz v1, :cond_4b
.line 12070
iget v4, v3, Lcom/tencent/liteav/audio/route/b;->c:I
.line 13070
iget v5, v1, Lcom/tencent/liteav/audio/route/b;->c:I
if-lt v4, v5, :cond_2b
:cond_4b
move-object v1, v3
goto :goto_2b
:cond_4d
if-eqz v1, :cond_52
.line 14056
iget-object v0, v1, Lcom/tencent/liteav/audio/route/b;->a:Lcom/tencent/liteav/audio/route/b$a;
goto :goto_54
.line 11139
:cond_52
:goto_52
sget-object v0, Lcom/tencent/liteav/audio/route/q;->a:Lcom/tencent/liteav/audio/route/b$a;
.line 473
:goto_54
iget-object v1, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mCurrentRouteType:Lcom/tencent/liteav/audio/route/b$a;
if-ne v1, v0, :cond_5a
if-eqz p1, :cond_a6
.line 474
:cond_5a
iput-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mCurrentRouteType:Lcom/tencent/liteav/audio/route/b$a;
.line 475
invoke-direct {p0}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->destroySwitcher()V
.line 476
iget-object p1, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mAudioManager:Landroid/media/AudioManager;
iget-object v1, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mHandler:Lcom/tencent/liteav/base/util/CustomHandler;
iget-object v3, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mCurrentAudioIOScene:Lcom/tencent/liteav/audio/route/a;
.line 15022
sget-object v4, Lcom/tencent/liteav/audio/route/r$1;->a:[I
invoke-virtual {v0}, Lcom/tencent/liteav/audio/route/b$a;->ordinal()I
move-result v0
aget v0, v4, v0
const/4 v4, 0x1
if-eq v0, v4, :cond_95
const/4 v4, 0x2
if-eq v0, v4, :cond_8f
const/4 v4, 0x3
if-eq v0, v4, :cond_89
const/4 v4, 0x4
if-eq v0, v4, :cond_83
const/4 v4, 0x5
if-eq v0, v4, :cond_7d
goto :goto_9a
.line 15032
:cond_7d
new-instance v2, Lcom/tencent/liteav/audio/route/r$d;
invoke-direct {v2, p1, v1, v3}, Lcom/tencent/liteav/audio/route/r$d;-><init>(Landroid/media/AudioManager;Landroid/os/Handler;Lcom/tencent/liteav/audio/route/a;)V
goto :goto_9a
.line 15030
:cond_83
new-instance v2, Lcom/tencent/liteav/audio/route/r$b;
invoke-direct {v2, p1, v1, v3}, Lcom/tencent/liteav/audio/route/r$b;-><init>(Landroid/media/AudioManager;Landroid/os/Handler;Lcom/tencent/liteav/audio/route/a;)V
goto :goto_9a
.line 15028
:cond_89
new-instance v2, Lcom/tencent/liteav/audio/route/r$f;
invoke-direct {v2, p1, v1, v3}, Lcom/tencent/liteav/audio/route/r$f;-><init>(Landroid/media/AudioManager;Landroid/os/Handler;Lcom/tencent/liteav/audio/route/a;)V
goto :goto_9a
.line 15026
:cond_8f
new-instance v2, Lcom/tencent/liteav/audio/route/r$e;
invoke-direct {v2, p1, v1, v3}, Lcom/tencent/liteav/audio/route/r$e;-><init>(Landroid/media/AudioManager;Landroid/os/Handler;Lcom/tencent/liteav/audio/route/a;)V
goto :goto_9a
.line 15024
:cond_95
new-instance v2, Lcom/tencent/liteav/audio/route/r$c;
invoke-direct {v2, p1, v1, v3}, Lcom/tencent/liteav/audio/route/r$c;-><init>(Landroid/media/AudioManager;Landroid/os/Handler;Lcom/tencent/liteav/audio/route/a;)V
.line 476
:goto_9a
iput-object v2, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mSwitcher:Lcom/tencent/liteav/audio/route/r$a;
.line 478
iget-object p1, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mSwitcherListener:Lcom/tencent/liteav/audio/route/r$a$a;
invoke-virtual {v2, p1}, Lcom/tencent/liteav/audio/route/r$a;->a(Lcom/tencent/liteav/audio/route/r$a$a;)V
.line 479
iget-object p1, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mSwitcher:Lcom/tencent/liteav/audio/route/r$a;
invoke-virtual {p1}, Lcom/tencent/liteav/audio/route/r$a;->a()V
:cond_a6
return-void
.end method
.method private buildAudioDeviceCallback()V
.registers 2
.line 552
iget-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mAudioDeviceCallback:Landroid/media/AudioDeviceCallback;
if-eqz v0, :cond_5
return-void
.line 555
:cond_5
new-instance v0, Lcom/tencent/liteav/audio/route/AudioRouteManager$3;
invoke-direct {v0, p0}, Lcom/tencent/liteav/audio/route/AudioRouteManager$3;-><init>(Lcom/tencent/liteav/audio/route/AudioRouteManager;)V
iput-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mAudioDeviceCallback:Landroid/media/AudioDeviceCallback;
return-void
.end method
.method private buildAudioRecordingCallback()V
.registers 2
.line 283
iget-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mAudioRecordingCallback:Landroid/media/AudioManager$AudioRecordingCallback;
if-eqz v0, :cond_5
return-void
.line 286
:cond_5
new-instance v0, Lcom/tencent/liteav/audio/route/AudioRouteManager$2;
invoke-direct {v0, p0}, Lcom/tencent/liteav/audio/route/AudioRouteManager$2;-><init>(Lcom/tencent/liteav/audio/route/AudioRouteManager;)V
iput-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mAudioRecordingCallback:Landroid/media/AudioManager$AudioRecordingCallback;
return-void
.end method
.method private destroySwitcher()V
.registers 2
.line 484
iget-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mSwitcher:Lcom/tencent/liteav/audio/route/r$a;
if-nez v0, :cond_5
return-void
.line 487
:cond_5
invoke-virtual {v0}, Lcom/tencent/liteav/audio/route/r$a;->b()V
const/4 v0, 0x0
.line 488
iput-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mSwitcher:Lcom/tencent/liteav/audio/route/r$a;
return-void
.end method
.method private enableUsbDeviceInternal(Z)V
.registers 6
.line 250
iget-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mBroadcastReceiver:Lcom/tencent/liteav/audio/route/s;
const/4 v1, 0x0
const-string v2, "AudioRouteManager"
if-nez v0, :cond_f
new-array p1, v1, [Ljava/lang/Object;
const-string v0, "broadcast receiver is null"
.line 251
invoke-static {v2, v0, p1}, Lcom/tencent/liteav/base/Log;->e(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
return-void
.line 254
:cond_f
invoke-static {p1}, Ljava/lang/String;->valueOf(Z)Ljava/lang/String;
move-result-object v0
const-string v3, "enable usb device: "
invoke-virtual {v3, v0}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
new-array v1, v1, [Ljava/lang/Object;
invoke-static {v2, v0, v1}, Lcom/tencent/liteav/base/Log;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
.line 255
iget-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mBroadcastReceiver:Lcom/tencent/liteav/audio/route/s;
.line 3095
iput-boolean p1, v0, Lcom/tencent/liteav/audio/route/s;->c:Z
.line 256
invoke-direct {p0}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->updateAudioRouteStatus()V
return-void
.end method
.method private handleBluetoothHeadsetChangedInternal(Z)V
.registers 5
.line 402
iget-boolean v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mIsServiceStarted:Z
const/4 v1, 0x0
if-nez v0, :cond_f
new-array p1, v1, [Ljava/lang/Object;
const-string v0, "AudioRouteManager"
const-string v1, "ignore bluetooth headset changing, AudioRouteManager is not started"
.line 403
invoke-static {v0, v1, p1}, Lcom/tencent/liteav/base/Log;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
return-void
.line 407
:cond_f
iget-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mAudioRouteSupervisor:Lcom/tencent/liteav/audio/route/q;
sget-object v2, Lcom/tencent/liteav/audio/route/b$a;->e:Lcom/tencent/liteav/audio/route/b$a;
invoke-virtual {v0, v2, p1}, Lcom/tencent/liteav/audio/route/q;->a(Lcom/tencent/liteav/audio/route/b$a;Z)Z
move-result p1
if-eqz p1, :cond_1c
.line 408
invoke-direct {p0, v1}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->autoCheckRouteUpdate(Z)V
:cond_1c
return-void
.end method
.method private handleBluetoothSCOChangedInternal(Z)V
.registers 4
.line 413
iget-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mSwitcher:Lcom/tencent/liteav/audio/route/r$a;
if-eqz v0, :cond_7
.line 414
invoke-virtual {v0, p1}, Lcom/tencent/liteav/audio/route/r$a;->a(Z)V
.line 422
:cond_7
iget-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mForceUpdateRouteRunnable:Ljava/lang/Runnable;
invoke-direct {p0, v0}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->removeCallbacksOnWorkThread(Ljava/lang/Runnable;)V
if-nez p1, :cond_1f
.line 423
iget-boolean p1, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mIsServiceStarted:Z
if-eqz p1, :cond_1f
iget-object p1, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mCurrentAudioIOScene:Lcom/tencent/liteav/audio/route/a;
sget-object v0, Lcom/tencent/liteav/audio/route/a;->a:Lcom/tencent/liteav/audio/route/a;
if-eq p1, v0, :cond_1f
.line 429
iget-object p1, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mForceUpdateRouteRunnable:Ljava/lang/Runnable;
const-wide/16 v0, 0x3e8
invoke-direct {p0, p1, v0, v1}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->runOnWorkThread(Ljava/lang/Runnable;J)V
:cond_1f
return-void
.end method
.method private handleRecordingConfigChanged(Ljava/util/List;)V
.registers 9
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"Landroid/media/AudioRecordingConfiguration;",
">;)V"
}
.end annotation
.line 322
invoke-interface {p1}, Ljava/util/List;->isEmpty()Z
move-result v0
if-eqz v0, :cond_7
return-void
.line 326
:cond_7
invoke-interface {p1}, Ljava/util/List;->size()I
move-result v0
const/16 v1, 0xa
invoke-static {v0, v1}, Ljava/lang/Math;->min(II)I
move-result v0
.line 327
new-array v1, v0, [Lcom/tencent/liteav/audio/route/AudioRouteManager$RecordingConfig;
const/4 v2, 0x0
move v3, v2
:goto_15
if-ge v3, v0, :cond_44
.line 329
new-instance v4, Lcom/tencent/liteav/audio/route/AudioRouteManager$RecordingConfig;
invoke-direct {v4}, Lcom/tencent/liteav/audio/route/AudioRouteManager$RecordingConfig;-><init>()V
aput-object v4, v1, v3
.line 330
invoke-interface {p1, v3}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v4
check-cast v4, Landroid/media/AudioRecordingConfiguration;
.line 331
aget-object v5, v1, v3
invoke-virtual {v4}, Landroid/media/AudioRecordingConfiguration;->getClientAudioSessionId()I
move-result v6
.line 3311
iput v6, v5, Lcom/tencent/liteav/audio/route/AudioRouteManager$RecordingConfig;->a:I
.line 332
invoke-static {}, Lcom/tencent/liteav/base/system/LiteavSystemInfo;->getSystemOSVersionInt()I
move-result v5
const/16 v6, 0x1d
if-lt v5, v6, :cond_3d
.line 333
aget-object v5, v1, v3
invoke-virtual {v4}, Landroid/media/AudioRecordingConfiguration;->isClientSilenced()Z
move-result v4
.line 3315
iput-boolean v4, v5, Lcom/tencent/liteav/audio/route/AudioRouteManager$RecordingConfig;->b:Z
goto :goto_41
.line 336
:cond_3d
aget-object v4, v1, v3
.line 4315
iput-boolean v2, v4, Lcom/tencent/liteav/audio/route/AudioRouteManager$RecordingConfig;->b:Z
:goto_41
add-int/lit8 v3, v3, 0x1
goto :goto_15
.line 339
:cond_44
iget-wide v2, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mNativeAudioRouteManager:J
invoke-static {v2, v3, v1}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->nativeNotifyAudioRecordingConfigChangedFromJava(J[Lcom/tencent/liteav/audio/route/AudioRouteManager$RecordingConfig;)V
return-void
.end method
.method private handleUsbChangedInternal(Z)V
.registers 5
.line 434
iget-boolean v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mIsServiceStarted:Z
const/4 v1, 0x0
if-nez v0, :cond_f
new-array p1, v1, [Ljava/lang/Object;
const-string v0, "AudioRouteManager"
const-string v1, "ignore usb changing, AudioRouteManager is not started"
.line 435
invoke-static {v0, v1, p1}, Lcom/tencent/liteav/base/Log;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
return-void
.line 439
:cond_f
iget-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mAudioRouteSupervisor:Lcom/tencent/liteav/audio/route/q;
sget-object v2, Lcom/tencent/liteav/audio/route/b$a;->f:Lcom/tencent/liteav/audio/route/b$a;
invoke-virtual {v0, v2, p1}, Lcom/tencent/liteav/audio/route/q;->a(Lcom/tencent/liteav/audio/route/b$a;Z)Z
move-result p1
if-eqz p1, :cond_1c
.line 440
invoke-direct {p0, v1}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->autoCheckRouteUpdate(Z)V
:cond_1c
return-void
.end method
.method private handleWiredHeadsetChangedInternal(Z)V
.registers 5
.line 391
iget-boolean v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mIsServiceStarted:Z
const/4 v1, 0x0
if-nez v0, :cond_f
new-array p1, v1, [Ljava/lang/Object;
const-string v0, "AudioRouteManager"
const-string v1, "ignore wired headset changing, AudioRouteManager is not started"
.line 392
invoke-static {v0, v1, p1}, Lcom/tencent/liteav/base/Log;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
return-void
.line 396
:cond_f
iget-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mAudioRouteSupervisor:Lcom/tencent/liteav/audio/route/q;
sget-object v2, Lcom/tencent/liteav/audio/route/b$a;->d:Lcom/tencent/liteav/audio/route/b$a;
invoke-virtual {v0, v2, p1}, Lcom/tencent/liteav/audio/route/q;->a(Lcom/tencent/liteav/audio/route/b$a;Z)Z
move-result p1
if-eqz p1, :cond_1c
.line 397
invoke-direct {p0, v1}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->autoCheckRouteUpdate(Z)V
:cond_1c
return-void
.end method
.method static synthetic lambda$enableUsbDevice$2(Lcom/tencent/liteav/audio/route/AudioRouteManager;Z)V
.registers 2
.line 118
invoke-direct {p0, p1}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->enableUsbDeviceInternal(Z)V
return-void
.end method
.method static synthetic lambda$new$0(Lcom/tencent/liteav/audio/route/AudioRouteManager;)V
.registers 2
const/4 v0, 0x1
.line 50
invoke-direct {p0, v0}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->autoCheckRouteUpdate(Z)V
return-void
.end method
.method static synthetic lambda$notifyAudioIOSceneChanged$3(Lcom/tencent/liteav/audio/route/AudioRouteManager;I)V
.registers 2
.line 129
invoke-static {p1}, Lcom/tencent/liteav/audio/route/a;->a(I)Lcom/tencent/liteav/audio/route/a;
move-result-object p1
iput-object p1, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mExpectedAudioIOScene:Lcom/tencent/liteav/audio/route/a;
.line 130
invoke-direct {p0}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->notifyAudioIOSceneChangedInternal()V
return-void
.end method
.method static synthetic lambda$onBluetoothConnectionChanged$6(Lcom/tencent/liteav/audio/route/AudioRouteManager;Z)V
.registers 2
.line 173
invoke-direct {p0, p1}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->handleBluetoothHeadsetChangedInternal(Z)V
return-void
.end method
.method static synthetic lambda$onBluetoothSCOConnected$7(Lcom/tencent/liteav/audio/route/AudioRouteManager;Z)V
.registers 2
.line 181
invoke-direct {p0, p1}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->handleBluetoothSCOChangedInternal(Z)V
return-void
.end method
.method static synthetic lambda$onUsbConnectionChanged$8(Lcom/tencent/liteav/audio/route/AudioRouteManager;Z)V
.registers 2
.line 191
invoke-direct {p0, p1}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->handleUsbChangedInternal(Z)V
return-void
.end method
.method static synthetic lambda$onWiredHeadsetConnectionChanged$5(Lcom/tencent/liteav/audio/route/AudioRouteManager;Z)V
.registers 2
.line 163
invoke-direct {p0, p1}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->handleWiredHeadsetChangedInternal(Z)V
return-void
.end method
.method static synthetic lambda$setHandFreeModeEnabled$4(Lcom/tencent/liteav/audio/route/AudioRouteManager;Z)V
.registers 2
.line 141
invoke-direct {p0, p1}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->setHandFreeModeEnabledInternal(Z)V
return-void
.end method
.method static synthetic lambda$start$1(Lcom/tencent/liteav/audio/route/AudioRouteManager;Ljava/lang/String;)V
.registers 2
.line 102
invoke-direct {p0, p1}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->startInternal(Ljava/lang/String;)V
return-void
.end method
.method private static native nativeNotifyAudioRecordingConfigChangedFromJava(J[Lcom/tencent/liteav/audio/route/AudioRouteManager$RecordingConfig;)V
.end method
.method private static native nativeNotifyAudioRouteChangedFromJava(JI)V
.end method
.method private static native nativeNotifyBluetoothConnectionFailedFromJava(JZ)V
.end method
.method private notifyAudioIOSceneChangedInternal()V
.registers 7
.line 343
iget-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mCurrentAudioIOScene:Lcom/tencent/liteav/audio/route/a;
iget-object v1, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mExpectedAudioIOScene:Lcom/tencent/liteav/audio/route/a;
if-ne v0, v1, :cond_7
return-void
:cond_7
const/4 v2, 0x2
new-array v3, v2, [Ljava/lang/Object;
const/4 v4, 0x0
aput-object v0, v3, v4
const/4 v0, 0x1
aput-object v1, v3, v0
const-string v1, "AudioRouteManager"
const-string v5, "notify audio io scene changed, %s -> %s"
.line 347
invoke-static {v1, v5, v3}, Lcom/tencent/liteav/base/Log;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
.line 350
iget-object v3, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mAudioManager:Landroid/media/AudioManager;
invoke-virtual {v3}, Landroid/media/AudioManager;->getMode()I
move-result v3
if-ne v3, v2, :cond_29
.line 351
invoke-static {p0}, Lcom/tencent/liteav/audio/route/e;->a(Lcom/tencent/liteav/audio/route/AudioRouteManager;)Ljava/lang/Runnable;
move-result-object v0
const-wide/16 v1, 0x1f4
invoke-direct {p0, v0, v1, v2}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->runOnWorkThread(Ljava/lang/Runnable;J)V
return-void
.line 355
:cond_29
iget-object v2, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mExpectedAudioIOScene:Lcom/tencent/liteav/audio/route/a;
invoke-static {v2}, Lcom/tencent/liteav/audio/route/a;->a(Lcom/tencent/liteav/audio/route/a;)I
move-result v2
.line 356
invoke-static {v2}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object v3
const-string v5, "setMode to "
invoke-virtual {v5, v3}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
new-array v5, v4, [Ljava/lang/Object;
invoke-static {v1, v3, v5}, Lcom/tencent/liteav/base/Log;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
.line 358
:try_start_3e
iget-object v3, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mAudioManager:Landroid/media/AudioManager;
invoke-virtual {v3}, Landroid/media/AudioManager;->getMode()I
move-result v3
if-ne v3, v2, :cond_53
const/4 v3, 0x3
if-ne v2, v3, :cond_53
.line 359
iput-boolean v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mHasModeConflict:Z
const-string v0, "set communication mode repeatedly, maybe can\'t be the mode owner"
new-array v3, v4, [Ljava/lang/Object;
.line 360
invoke-static {v1, v0, v3}, Lcom/tencent/liteav/base/Log;->w(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
goto :goto_55
.line 362
:cond_53
iput-boolean v4, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mHasModeConflict:Z
.line 364
:goto_55
iget-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mAudioManager:Landroid/media/AudioManager;
invoke-virtual {v0, v2}, Landroid/media/AudioManager;->setMode(I)V
:try_end_5a
.catch Ljava/lang/Exception; {:try_start_3e .. :try_end_5a} :catch_5b
goto :goto_62
:catch_5b
new-array v0, v4, [Ljava/lang/Object;
const-string v2, "AudioManager setMode failed, ignore it"
.line 368
invoke-static {v1, v2, v0}, Lcom/tencent/liteav/base/Log;->w(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
.line 371
:goto_62
iget-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mExpectedAudioIOScene:Lcom/tencent/liteav/audio/route/a;
iput-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mCurrentAudioIOScene:Lcom/tencent/liteav/audio/route/a;
.line 372
iget-object v1, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mSwitcher:Lcom/tencent/liteav/audio/route/r$a;
if-eqz v1, :cond_6e
.line 373
invoke-virtual {v1, v0}, Lcom/tencent/liteav/audio/route/r$a;->a(Lcom/tencent/liteav/audio/route/a;)V
return-void
.line 375
:cond_6e
invoke-direct {p0, v4}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->autoCheckRouteUpdate(Z)V
return-void
.end method
.method private registerAudioDeviceCallback()V
.registers 4
.line 524
invoke-static {}, Lcom/tencent/liteav/base/system/LiteavSystemInfo;->getSystemOSVersionInt()I
move-result v0
const/16 v1, 0x1e
if-gt v0, v1, :cond_9
return-void
.line 528
:cond_9
iget-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mAudioDeviceCallback:Landroid/media/AudioDeviceCallback;
if-nez v0, :cond_10
.line 529
invoke-direct {p0}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->buildAudioDeviceCallback()V
.line 531
:cond_10
iget-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mAudioDeviceCallback:Landroid/media/AudioDeviceCallback;
if-nez v0, :cond_15
return-void
.line 534
:cond_15
iget-object v1, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mAudioManager:Landroid/media/AudioManager;
const/4 v2, 0x0
invoke-virtual {v1, v0, v2}, Landroid/media/AudioManager;->registerAudioDeviceCallback(Landroid/media/AudioDeviceCallback;Landroid/os/Handler;)V
const/4 v0, 0x0
new-array v0, v0, [Ljava/lang/Object;
const-string v1, "AudioRouteManager"
const-string v2, "register audio device callback"
.line 535
invoke-static {v1, v2, v0}, Lcom/tencent/liteav/base/Log;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
return-void
.end method
.method private registerAudioRecordingCallback()V
.registers 4
.line 261
invoke-static {}, Lcom/tencent/liteav/base/system/LiteavSystemInfo;->getSystemOSVersionInt()I
move-result v0
const/16 v1, 0x18
if-ge v0, v1, :cond_9
return-void
.line 264
:cond_9
iget-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mAudioRecordingCallback:Landroid/media/AudioManager$AudioRecordingCallback;
if-nez v0, :cond_10
.line 265
invoke-direct {p0}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->buildAudioRecordingCallback()V
.line 267
:cond_10
iget-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mAudioManager:Landroid/media/AudioManager;
iget-object v1, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mAudioRecordingCallback:Landroid/media/AudioManager$AudioRecordingCallback;
const/4 v2, 0x0
invoke-virtual {v0, v1, v2}, Landroid/media/AudioManager;->registerAudioRecordingCallback(Landroid/media/AudioManager$AudioRecordingCallback;Landroid/os/Handler;)V
return-void
.end method
.method private removeCallbacksOnWorkThread(Ljava/lang/Runnable;)V
.registers 3
.line 513
iget-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mHandler:Lcom/tencent/liteav/base/util/CustomHandler;
if-eqz v0, :cond_7
.line 515
invoke-virtual {v0, p1}, Landroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;)V
:cond_7
return-void
.end method
.method private runOnWorkThread(Ljava/lang/Runnable;)V
.registers 3
.line 492
iget-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mHandler:Lcom/tencent/liteav/base/util/CustomHandler;
if-eqz v0, :cond_7
.line 494
invoke-virtual {v0, p1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
:cond_7
return-void
.end method
.method private runOnWorkThread(Ljava/lang/Runnable;J)V
.registers 5
.line 506
iget-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mHandler:Lcom/tencent/liteav/base/util/CustomHandler;
if-eqz v0, :cond_7
.line 508
invoke-virtual {v0, p1, p2, p3}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z
:cond_7
return-void
.end method
.method private runOnWorkThreadAndWaitDone(Ljava/lang/Runnable;J)V
.registers 5
.line 499
iget-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mHandler:Lcom/tencent/liteav/base/util/CustomHandler;
if-eqz v0, :cond_7
.line 501
invoke-virtual {v0, p1, p2, p3}, Lcom/tencent/liteav/base/util/CustomHandler;->runAndWaitDone(Ljava/lang/Runnable;J)Z
:cond_7
return-void
.end method
.method private setHandFreeModeEnabledInternal(Z)V
.registers 8
.line 380
iget-boolean v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mIsServiceStarted:Z
const/4 v1, 0x0
if-nez v0, :cond_f
new-array p1, v1, [Ljava/lang/Object;
const-string v0, "AudioRouteManager"
const-string v1, "set handfree mode failed, AudioRouteManager is not started"
.line 381
invoke-static {v0, v1, p1}, Lcom/tencent/liteav/base/Log;->w(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
return-void
.line 385
:cond_f
iget-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mAudioRouteSupervisor:Lcom/tencent/liteav/audio/route/q;
.line 5074
iget-boolean v2, v0, Lcom/tencent/liteav/audio/route/q;->c:Z
const-string v3, "AudioRouteSupervisor"
if-nez v2, :cond_20
new-array p1, v1, [Ljava/lang/Object;
const-string v0, "error in setHandFreeModeEnabled(), it\'s not been initialized yet"
.line 5075
invoke-static {v3, v0, p1}, Lcom/tencent/liteav/base/Log;->e(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
:goto_1e
move p1, v1
goto :goto_60
.line 5079
:cond_20
iget-object v2, v0, Lcom/tencent/liteav/audio/route/q;->b:Ljava/util/HashMap;
sget-object v4, Lcom/tencent/liteav/audio/route/b$a;->c:Lcom/tencent/liteav/audio/route/b$a;
invoke-virtual {v2, v4}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
check-cast v2, Lcom/tencent/liteav/audio/route/b;
.line 5080
iget-object v0, v0, Lcom/tencent/liteav/audio/route/q;->b:Ljava/util/HashMap;
sget-object v4, Lcom/tencent/liteav/audio/route/b$a;->b:Lcom/tencent/liteav/audio/route/b$a;
invoke-virtual {v0, v4}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/tencent/liteav/audio/route/b;
if-eqz v2, :cond_58
if-nez v0, :cond_39
goto :goto_58
.line 6070
:cond_39
iget v3, v2, Lcom/tencent/liteav/audio/route/b;->c:I
.line 7070
iget v4, v0, Lcom/tencent/liteav/audio/route/b;->c:I
.line 5086
invoke-static {v3, v4}, Ljava/lang/Math;->min(II)I
move-result v3
.line 8070
iget v4, v2, Lcom/tencent/liteav/audio/route/b;->c:I
.line 9070
iget v5, v0, Lcom/tencent/liteav/audio/route/b;->c:I
.line 5087
invoke-static {v4, v5}, Ljava/lang/Math;->max(II)I
move-result v4
if-eqz p1, :cond_4d
move v5, v4
goto :goto_4e
:cond_4d
move v5, v3
.line 9086
:goto_4e
iput v5, v2, Lcom/tencent/liteav/audio/route/b;->c:I
if-eqz p1, :cond_53
goto :goto_54
:cond_53
move v3, v4
.line 10086
:goto_54
iput v3, v0, Lcom/tencent/liteav/audio/route/b;->c:I
const/4 p1, 0x1
goto :goto_60
:cond_58
:goto_58
new-array p1, v1, [Ljava/lang/Object;
const-string v0, "setHandFreeModeEnabled failed, speakerphone or earphone not existed"
.line 5082
invoke-static {v3, v0, p1}, Lcom/tencent/liteav/base/Log;->e(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
goto :goto_1e
:goto_60
if-eqz p1, :cond_65
.line 386
invoke-direct {p0, v1}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->autoCheckRouteUpdate(Z)V
:cond_65
return-void
.end method
.method private startInternal(Ljava/lang/String;)V
.registers 12
const/4 v0, 0x0
new-array v1, v0, [Ljava/lang/Object;
const-string v2, "AudioRouteManager"
const-string v3, "startInternal"
.line 195
invoke-static {v2, v3, v1}, Lcom/tencent/liteav/base/Log;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
.line 196
iget-boolean v1, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mIsServiceStarted:Z
if-eqz v1, :cond_21
.line 197
iget-object v1, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mCurrentRouteConfig:Ljava/lang/String;
invoke-virtual {v1, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_17
return-void
:cond_17
new-array v1, v0, [Ljava/lang/Object;
const-string v3, "AudioRouteManager\'s been started, stop it first"
.line 200
invoke-static {v2, v3, v1}, Lcom/tencent/liteav/base/Log;->w(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
.line 201
invoke-direct {p0}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->stopInternal()V
.line 205
:cond_21
iget-object v1, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mAudioRouteSupervisor:Lcom/tencent/liteav/audio/route/q;
.line 1027
iget-boolean v3, v1, Lcom/tencent/liteav/audio/route/q;->c:Z
const-string v4, "AudioRouteSupervisor"
const/4 v5, 0x1
if-eqz v3, :cond_34
new-array v1, v0, [Ljava/lang/Object;
const-string v3, "error in initialize(), it\'s already intialized"
.line 1028
invoke-static {v4, v3, v1}, Lcom/tencent/liteav/base/Log;->w(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
:cond_31
:goto_31
move v1, v0
goto/16 :goto_c6
.line 1032
:cond_34
invoke-static {p1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v3
const-string v6, "initialize from string: "
invoke-virtual {v6, v3}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
new-array v6, v0, [Ljava/lang/Object;
invoke-static {v4, v3, v6}, Lcom/tencent/liteav/base/Log;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
if-eqz p1, :cond_31
.line 1033
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v3
if-gtz v3, :cond_4c
goto :goto_31
:cond_4c
const-string v3, "[\n\r]"
const-string v6, ""
.line 1037
invoke-virtual {p1, v3, v6}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
move-result-object v3
.line 1038
invoke-virtual {v3}, Ljava/lang/String;->length()I
move-result v6
if-gtz v6, :cond_5b
goto :goto_31
:cond_5b
const-string v6, ";"
.line 1042
invoke-virtual {v3, v6}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v3
.line 1043
array-length v6, v3
if-gtz v6, :cond_65
goto :goto_31
:cond_65
move v6, v0
.line 1047
:goto_66
array-length v7, v3
if-ge v6, v7, :cond_c3
.line 1048
aget-object v7, v3, v6
invoke-static {v7}, Lcom/tencent/liteav/audio/route/b$a;->a(Ljava/lang/String;)Lcom/tencent/liteav/audio/route/b$a;
move-result-object v7
.line 1143
sget-object v8, Lcom/tencent/liteav/audio/route/b$a;->a:Lcom/tencent/liteav/audio/route/b$a;
if-ne v7, v8, :cond_84
.line 1144
invoke-static {v7}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v7
const-string v8, "error, unknown route name: "
invoke-virtual {v8, v7}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v7
new-array v8, v0, [Ljava/lang/Object;
invoke-static {v4, v7, v8}, Lcom/tencent/liteav/base/Log;->e(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
:goto_82
move v7, v0
goto :goto_bc
.line 1147
:cond_84
iget-object v8, v1, Lcom/tencent/liteav/audio/route/q;->b:Ljava/util/HashMap;
invoke-virtual {v8, v7}, Ljava/util/HashMap;->containsKey(Ljava/lang/Object;)Z
move-result v8
if-eqz v8, :cond_9c
.line 1148
invoke-static {v7}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v7
const-string v8, "error, existed route name: "
invoke-virtual {v8, v7}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v7
new-array v8, v0, [Ljava/lang/Object;
invoke-static {v4, v7, v8}, Lcom/tencent/liteav/base/Log;->e(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
goto :goto_82
.line 1153
:cond_9c
sget-object v8, Lcom/tencent/liteav/audio/route/b$a;->b:Lcom/tencent/liteav/audio/route/b$a;
if-eq v7, v8, :cond_a7
sget-object v8, Lcom/tencent/liteav/audio/route/b$a;->c:Lcom/tencent/liteav/audio/route/b$a;
if-ne v7, v8, :cond_a5
goto :goto_a7
:cond_a5
move v8, v0
goto :goto_a8
:cond_a7
:goto_a7
move v8, v5
.line 1154
:goto_a8
new-instance v9, Lcom/tencent/liteav/audio/route/b;
invoke-direct {v9, v7, v6, v8}, Lcom/tencent/liteav/audio/route/b;-><init>(Lcom/tencent/liteav/audio/route/b$a;IZ)V
.line 1155
iget-object v8, v1, Lcom/tencent/liteav/audio/route/q;->b:Ljava/util/HashMap;
invoke-virtual {v8, v7, v9}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
new-array v8, v5, [Ljava/lang/Object;
aput-object v7, v8, v0
const-string v7, "add audio route, name: %s"
.line 1156
invoke-static {v4, v7, v8}, Lcom/tencent/liteav/base/Log;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
move v7, v5
:goto_bc
if-nez v7, :cond_c0
goto/16 :goto_31
:cond_c0
add-int/lit8 v6, v6, 0x1
goto :goto_66
.line 1053
:cond_c3
iput-boolean v5, v1, Lcom/tencent/liteav/audio/route/q;->c:Z
move v1, v5
:goto_c6
if-nez v1, :cond_d0
new-array p1, v0, [Ljava/lang/Object;
const-string v0, "AudioRouteManager start failed"
.line 206
invoke-static {v2, v0, p1}, Lcom/tencent/liteav/base/Log;->e(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
return-void
.line 211
:cond_d0
iget-object v1, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mBroadcastReceiver:Lcom/tencent/liteav/audio/route/s;
.line 2048
iget-object v2, v1, Lcom/tencent/liteav/audio/route/s;->b:Lcom/tencent/liteav/audio/route/s$b;
if-nez v2, :cond_df
.line 2049
new-instance v2, Lcom/tencent/liteav/audio/route/s$b;
iget-object v3, v1, Lcom/tencent/liteav/audio/route/s;->a:Landroid/content/Context;
invoke-direct {v2, v3}, Lcom/tencent/liteav/audio/route/s$b;-><init>(Landroid/content/Context;)V
iput-object v2, v1, Lcom/tencent/liteav/audio/route/s;->b:Lcom/tencent/liteav/audio/route/s$b;
.line 2052
:cond_df
new-instance v2, Landroid/content/IntentFilter;
invoke-direct {v2}, Landroid/content/IntentFilter;-><init>()V
const-string v3, "android.intent.action.HEADSET_PLUG"
.line 2053
invoke-virtual {v2, v3}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
const-string v3, "android.bluetooth.adapter.action.STATE_CHANGED"
.line 2054
invoke-virtual {v2, v3}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
const-string v3, "android.bluetooth.headset.profile.action.AUDIO_STATE_CHANGED"
.line 2055
invoke-virtual {v2, v3}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
const-string v3, "android.bluetooth.headset.profile.action.CONNECTION_STATE_CHANGED"
.line 2056
invoke-virtual {v2, v3}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
const-string v3, "android.hardware.usb.action.USB_DEVICE_ATTACHED"
.line 2057
invoke-virtual {v2, v3}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
const-string v3, "android.hardware.usb.action.USB_DEVICE_DETACHED"
.line 2058
invoke-virtual {v2, v3}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
.line 2059
iget-object v3, v1, Lcom/tencent/liteav/audio/route/s;->a:Landroid/content/Context;
invoke-virtual {v3, v1, v2}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
.line 212
invoke-direct {p0}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->registerAudioDeviceCallback()V
.line 214
invoke-direct {p0}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->updateAudioRouteStatus()V
.line 215
iput-object p1, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mCurrentRouteConfig:Ljava/lang/String;
.line 216
invoke-direct {p0}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->registerAudioRecordingCallback()V
.line 217
iput-boolean v5, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mIsServiceStarted:Z
.line 218
iput-boolean v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mHasModeConflict:Z
return-void
.end method
.method private stopInternal()V
.registers 7
const-string v0, "AudioRouteManager"
const-string v1, "stopInternal"
const/4 v2, 0x0
new-array v3, v2, [Ljava/lang/Object;
.line 222
invoke-static {v0, v1, v3}, Lcom/tencent/liteav/base/Log;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
.line 223
iget-boolean v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mIsServiceStarted:Z
if-nez v0, :cond_18
const-string v0, "AudioRouteManager"
const-string v1, "AudioRouteManager is not started"
new-array v2, v2, [Ljava/lang/Object;
.line 224
invoke-static {v0, v1, v2}, Lcom/tencent/liteav/base/Log;->e(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
return-void
.line 227
:cond_18
invoke-direct {p0}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->unregisterAudioRecordingCallback()V
.line 228
invoke-direct {p0}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->destroySwitcher()V
.line 230
:try_start_1e
iget-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mAudioManager:Landroid/media/AudioManager;
invoke-virtual {v0, v2}, Landroid/media/AudioManager;->setMode(I)V
:try_end_23
.catch Ljava/lang/Exception; {:try_start_1e .. :try_end_23} :catch_24
goto :goto_2d
:catch_24
const-string v0, "AudioRouteManager"
const-string v1, "AudioManager setMode failed, ignore it"
new-array v3, v2, [Ljava/lang/Object;
.line 234
invoke-static {v0, v1, v3}, Lcom/tencent/liteav/base/Log;->w(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
.line 236
:goto_2d
sget-object v0, Lcom/tencent/liteav/audio/route/b$a;->a:Lcom/tencent/liteav/audio/route/b$a;
iput-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mCurrentRouteType:Lcom/tencent/liteav/audio/route/b$a;
.line 237
sget-object v0, Lcom/tencent/liteav/audio/route/a;->a:Lcom/tencent/liteav/audio/route/a;
iput-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mCurrentAudioIOScene:Lcom/tencent/liteav/audio/route/a;
.line 238
sget-object v0, Lcom/tencent/liteav/audio/route/a;->a:Lcom/tencent/liteav/audio/route/a;
iput-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mExpectedAudioIOScene:Lcom/tencent/liteav/audio/route/a;
.line 241
iget-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mBroadcastReceiver:Lcom/tencent/liteav/audio/route/s;
.line 2064
iget-object v1, v0, Lcom/tencent/liteav/audio/route/s;->a:Landroid/content/Context;
if-eqz v1, :cond_62
.line 2066
:try_start_3f
iget-object v1, v0, Lcom/tencent/liteav/audio/route/s;->a:Landroid/content/Context;
invoke-virtual {v1, v0}, Landroid/content/Context;->unregisterReceiver(Landroid/content/BroadcastReceiver;)V
:try_end_44
.catch Ljava/lang/Exception; {:try_start_3f .. :try_end_44} :catch_44
.line 2070
:catch_44
iget-object v1, v0, Lcom/tencent/liteav/audio/route/s;->b:Lcom/tencent/liteav/audio/route/s$b;
if-eqz v1, :cond_62
.line 2071
iget-object v1, v0, Lcom/tencent/liteav/audio/route/s;->b:Lcom/tencent/liteav/audio/route/s$b;
.line 2399
iget-object v3, v1, Lcom/tencent/liteav/audio/route/s$b;->c:Ljava/lang/Object;
monitor-enter v3
.line 2400
:try_start_4d
iget-object v4, v1, Lcom/tencent/liteav/audio/route/s$b;->a:Landroid/bluetooth/BluetoothAdapter;
const/4 v5, 0x0
if-eqz v4, :cond_5b
iget-object v4, v1, Lcom/tencent/liteav/audio/route/s$b;->b:Landroid/bluetooth/BluetoothProfile;
if-eqz v4, :cond_5b
.line 2401
invoke-virtual {v1}, Lcom/tencent/liteav/audio/route/s$b;->b()V
.line 2402
iput-object v5, v1, Lcom/tencent/liteav/audio/route/s$b;->b:Landroid/bluetooth/BluetoothProfile;
.line 2404
:cond_5b
monitor-exit v3
:try_end_5c
.catchall {:try_start_4d .. :try_end_5c} :catchall_5f
.line 2072
iput-object v5, v0, Lcom/tencent/liteav/audio/route/s;->b:Lcom/tencent/liteav/audio/route/s$b;
goto :goto_62
:catchall_5f
move-exception v0
.line 2404
:try_start_60
monitor-exit v3
:try_end_61
.catchall {:try_start_60 .. :try_end_61} :catchall_5f
throw v0
.line 242
:cond_62
:goto_62
invoke-direct {p0}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->unregisterAudioDeviceCallback()V
.line 243
iget-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mAudioRouteSupervisor:Lcom/tencent/liteav/audio/route/q;
.line 3061
iget-boolean v1, v0, Lcom/tencent/liteav/audio/route/q;->c:Z
if-nez v1, :cond_75
const-string v0, "AudioRouteSupervisor"
const-string v1, "error in uninitialize(), it\'s not been initialized yet"
new-array v3, v2, [Ljava/lang/Object;
.line 3062
invoke-static {v0, v1, v3}, Lcom/tencent/liteav/base/Log;->w(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
goto :goto_7c
.line 3065
:cond_75
iget-object v1, v0, Lcom/tencent/liteav/audio/route/q;->b:Ljava/util/HashMap;
invoke-virtual {v1}, Ljava/util/HashMap;->clear()V
.line 3066
iput-boolean v2, v0, Lcom/tencent/liteav/audio/route/q;->c:Z
:goto_7c
const-string v0, ""
.line 244
iput-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mCurrentRouteConfig:Ljava/lang/String;
.line 245
iput-boolean v2, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mIsServiceStarted:Z
.line 246
iput-boolean v2, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mHasModeConflict:Z
return-void
.end method
.method private unregisterAudioDeviceCallback()V
.registers 4
.line 540
invoke-static {}, Lcom/tencent/liteav/base/system/LiteavSystemInfo;->getSystemOSVersionInt()I
move-result v0
const/16 v1, 0x1e
if-gt v0, v1, :cond_9
return-void
.line 543
:cond_9
iget-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mAudioDeviceCallback:Landroid/media/AudioDeviceCallback;
if-nez v0, :cond_e
return-void
.line 546
:cond_e
iget-object v1, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mAudioManager:Landroid/media/AudioManager;
invoke-virtual {v1, v0}, Landroid/media/AudioManager;->unregisterAudioDeviceCallback(Landroid/media/AudioDeviceCallback;)V
const/4 v0, 0x0
new-array v0, v0, [Ljava/lang/Object;
const-string v1, "AudioRouteManager"
const-string v2, "unregister audio device callback"
.line 547
invoke-static {v1, v2, v0}, Lcom/tencent/liteav/base/Log;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
return-void
.end method
.method private unregisterAudioRecordingCallback()V
.registers 3
.line 272
invoke-static {}, Lcom/tencent/liteav/base/system/LiteavSystemInfo;->getSystemOSVersionInt()I
move-result v0
const/16 v1, 0x18
if-ge v0, v1, :cond_9
return-void
.line 275
:cond_9
iget-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mAudioRecordingCallback:Landroid/media/AudioManager$AudioRecordingCallback;
if-nez v0, :cond_e
return-void
.line 278
:cond_e
iget-object v1, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mAudioManager:Landroid/media/AudioManager;
invoke-virtual {v1, v0}, Landroid/media/AudioManager;->unregisterAudioRecordingCallback(Landroid/media/AudioManager$AudioRecordingCallback;)V
return-void
.end method
.method private updateAudioRouteStatus()V
.registers 7
.line 448
iget-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mBroadcastReceiver:Lcom/tencent/liteav/audio/route/s;
const/4 v1, 0x0
if-nez v0, :cond_d
.line 449
iget-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mAudioRouteSupervisor:Lcom/tencent/liteav/audio/route/q;
sget-object v2, Lcom/tencent/liteav/audio/route/b$a;->e:Lcom/tencent/liteav/audio/route/b$a;
invoke-virtual {v0, v2, v1}, Lcom/tencent/liteav/audio/route/q;->a(Lcom/tencent/liteav/audio/route/b$a;Z)Z
goto :goto_22
.line 451
:cond_d
iget-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mAudioRouteSupervisor:Lcom/tencent/liteav/audio/route/q;
sget-object v2, Lcom/tencent/liteav/audio/route/b$a;->e:Lcom/tencent/liteav/audio/route/b$a;
iget-object v3, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mBroadcastReceiver:Lcom/tencent/liteav/audio/route/s;
.line 10099
iget-object v4, v3, Lcom/tencent/liteav/audio/route/s;->b:Lcom/tencent/liteav/audio/route/s$b;
if-nez v4, :cond_19
move v3, v1
goto :goto_1f
.line 10102
:cond_19
iget-object v3, v3, Lcom/tencent/liteav/audio/route/s;->b:Lcom/tencent/liteav/audio/route/s$b;
invoke-virtual {v3}, Lcom/tencent/liteav/audio/route/s$b;->a()Z
move-result v3
.line 451
:goto_1f
invoke-virtual {v0, v2, v3}, Lcom/tencent/liteav/audio/route/q;->a(Lcom/tencent/liteav/audio/route/b$a;Z)Z
.line 454
:goto_22
iget-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mAudioRouteSupervisor:Lcom/tencent/liteav/audio/route/q;
sget-object v2, Lcom/tencent/liteav/audio/route/b$a;->d:Lcom/tencent/liteav/audio/route/b$a;
iget-object v3, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mAudioManager:Landroid/media/AudioManager;
invoke-virtual {v3}, Landroid/media/AudioManager;->isWiredHeadsetOn()Z
move-result v3
invoke-virtual {v0, v2, v3}, Lcom/tencent/liteav/audio/route/q;->a(Lcom/tencent/liteav/audio/route/b$a;Z)Z
.line 455
iget-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mAudioRouteSupervisor:Lcom/tencent/liteav/audio/route/q;
sget-object v2, Lcom/tencent/liteav/audio/route/b$a;->c:Lcom/tencent/liteav/audio/route/b$a;
const/4 v3, 0x1
invoke-virtual {v0, v2, v3}, Lcom/tencent/liteav/audio/route/q;->a(Lcom/tencent/liteav/audio/route/b$a;Z)Z
.line 456
iget-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mAudioRouteSupervisor:Lcom/tencent/liteav/audio/route/q;
sget-object v2, Lcom/tencent/liteav/audio/route/b$a;->b:Lcom/tencent/liteav/audio/route/b$a;
invoke-virtual {v0, v2, v3}, Lcom/tencent/liteav/audio/route/q;->a(Lcom/tencent/liteav/audio/route/b$a;Z)Z
.line 457
iget-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mAudioRouteSupervisor:Lcom/tencent/liteav/audio/route/q;
sget-object v2, Lcom/tencent/liteav/audio/route/b$a;->f:Lcom/tencent/liteav/audio/route/b$a;
iget-object v4, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mBroadcastReceiver:Lcom/tencent/liteav/audio/route/s;
.line 11078
iget-boolean v5, v4, Lcom/tencent/liteav/audio/route/s;->c:Z
if-eqz v5, :cond_73
.line 11081
iget-object v4, v4, Lcom/tencent/liteav/audio/route/s;->a:Landroid/content/Context;
const-string v5, "usb"
invoke-virtual {v4, v5}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v4
check-cast v4, Landroid/hardware/usb/UsbManager;
if-eqz v4, :cond_73
.line 11085
invoke-virtual {v4}, Landroid/hardware/usb/UsbManager;->getDeviceList()Ljava/util/HashMap;
move-result-object v4
.line 11086
invoke-virtual {v4}, Ljava/util/HashMap;->values()Ljava/util/Collection;
move-result-object v4
invoke-interface {v4}, Ljava/util/Collection;->iterator()Ljava/util/Iterator;
move-result-object v4
:cond_60
invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z
move-result v5
if-eqz v5, :cond_73
invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v5
check-cast v5, Landroid/hardware/usb/UsbDevice;
.line 11087
invoke-static {v5}, Lcom/tencent/liteav/audio/route/s;->a(Landroid/hardware/usb/UsbDevice;)Z
move-result v5
if-eqz v5, :cond_60
goto :goto_74
:cond_73
move v3, v1
.line 457
:goto_74
invoke-virtual {v0, v2, v3}, Lcom/tencent/liteav/audio/route/q;->a(Lcom/tencent/liteav/audio/route/b$a;Z)Z
.line 459
invoke-direct {p0, v1}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->autoCheckRouteUpdate(Z)V
return-void
.end method
# virtual methods
.method public enableUsbDevice(Z)V
.registers 2
.line 118
invoke-static {p0, p1}, Lcom/tencent/liteav/audio/route/h;->a(Lcom/tencent/liteav/audio/route/AudioRouteManager;Z)Ljava/lang/Runnable;
move-result-object p1
invoke-direct {p0, p1}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->runOnWorkThread(Ljava/lang/Runnable;)V
return-void
.end method
.method public initialize()V
.registers 3
.line 90
new-instance v0, Landroid/os/HandlerThread;
const-string v1, "AudioRouteManagerLooper"
invoke-direct {v0, v1}, Landroid/os/HandlerThread;-><init>(Ljava/lang/String;)V
.line 91
invoke-virtual {v0}, Landroid/os/HandlerThread;->start()V
.line 92
new-instance v1, Lcom/tencent/liteav/base/util/CustomHandler;
invoke-virtual {v0}, Landroid/os/HandlerThread;->getLooper()Landroid/os/Looper;
move-result-object v0
invoke-direct {v1, v0}, Lcom/tencent/liteav/base/util/CustomHandler;-><init>(Landroid/os/Looper;)V
iput-object v1, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mHandler:Lcom/tencent/liteav/base/util/CustomHandler;
return-void
.end method
.method public notifyAudioIOSceneChanged(IJ)V
.registers 4
.line 128
invoke-static {p0, p1}, Lcom/tencent/liteav/audio/route/i;->a(Lcom/tencent/liteav/audio/route/AudioRouteManager;I)Ljava/lang/Runnable;
move-result-object p1
invoke-direct {p0, p1, p2, p3}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->runOnWorkThreadAndWaitDone(Ljava/lang/Runnable;J)V
return-void
.end method
.method public onBluetoothConnectionChanged(Z)V
.registers 2
.line 173
invoke-static {p0, p1}, Lcom/tencent/liteav/audio/route/l;->a(Lcom/tencent/liteav/audio/route/AudioRouteManager;Z)Ljava/lang/Runnable;
move-result-object p1
invoke-direct {p0, p1}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->runOnWorkThread(Ljava/lang/Runnable;)V
return-void
.end method
.method public onBluetoothSCOConnected(Z)V
.registers 2
.line 181
invoke-static {p0, p1}, Lcom/tencent/liteav/audio/route/m;->a(Lcom/tencent/liteav/audio/route/AudioRouteManager;Z)Ljava/lang/Runnable;
move-result-object p1
invoke-direct {p0, p1}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->runOnWorkThread(Ljava/lang/Runnable;)V
return-void
.end method
.method public onUsbConnectionChanged(Z)V
.registers 2
.line 191
invoke-static {p0, p1}, Lcom/tencent/liteav/audio/route/d;->a(Lcom/tencent/liteav/audio/route/AudioRouteManager;Z)Ljava/lang/Runnable;
move-result-object p1
invoke-direct {p0, p1}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->runOnWorkThread(Ljava/lang/Runnable;)V
return-void
.end method
.method public onWiredHeadsetConnectionChanged(Z)V
.registers 2
.line 163
invoke-static {p0, p1}, Lcom/tencent/liteav/audio/route/k;->a(Lcom/tencent/liteav/audio/route/AudioRouteManager;Z)Ljava/lang/Runnable;
move-result-object p1
invoke-direct {p0, p1}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->runOnWorkThread(Ljava/lang/Runnable;)V
return-void
.end method
.method public setHandFreeModeEnabled(Z)V
.registers 2
.line 141
invoke-static {p0, p1}, Lcom/tencent/liteav/audio/route/j;->a(Lcom/tencent/liteav/audio/route/AudioRouteManager;Z)Ljava/lang/Runnable;
move-result-object p1
invoke-direct {p0, p1}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->runOnWorkThread(Ljava/lang/Runnable;)V
return-void
.end method
.method public start(Ljava/lang/String;)V
.registers 2
.line 102
invoke-static {p0, p1}, Lcom/tencent/liteav/audio/route/f;->a(Lcom/tencent/liteav/audio/route/AudioRouteManager;Ljava/lang/String;)Ljava/lang/Runnable;
move-result-object p1
invoke-direct {p0, p1}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->runOnWorkThread(Ljava/lang/Runnable;)V
return-void
.end method
.method public stop()V
.registers 2
.line 110
invoke-static {p0}, Lcom/tencent/liteav/audio/route/g;->a(Lcom/tencent/liteav/audio/route/AudioRouteManager;)Ljava/lang/Runnable;
move-result-object v0
invoke-direct {p0, v0}, Lcom/tencent/liteav/audio/route/AudioRouteManager;->runOnWorkThread(Ljava/lang/Runnable;)V
return-void
.end method
.method public uninitialize()V
.registers 3
.line 149
iget-object v0, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mHandler:Lcom/tencent/liteav/base/util/CustomHandler;
const/4 v1, 0x0
.line 150
iput-object v1, p0, Lcom/tencent/liteav/audio/route/AudioRouteManager;->mHandler:Lcom/tencent/liteav/base/util/CustomHandler;
if-eqz v0, :cond_a
.line 152
invoke-virtual {v0}, Lcom/tencent/liteav/base/util/CustomHandler;->quitLooperAndWaitDone()V
:cond_a
return-void
.end method