d$b.smali
.class public final Lcom/imo/android/imoim/mic/d$b;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/imo/android/imoim/mic/d;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = "b"
.end annotation
# instance fields
.field public a:I
.field public b:I
.field public c:I
.field public d:I
.field public e:Ljava/util/concurrent/ArrayBlockingQueue;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/ArrayBlockingQueue<",
"[S>;"
}
.end annotation
.end field
.field f:I
.field final synthetic g:Lcom/imo/android/imoim/mic/d;
# direct methods
.method public constructor <init>(Lcom/imo/android/imoim/mic/d;)V
.registers 4
.line 84
iput-object p1, p0, Lcom/imo/android/imoim/mic/d$b;->g:Lcom/imo/android/imoim/mic/d;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/16 p1, 0x400
.line 86
iput p1, p0, Lcom/imo/android/imoim/mic/d$b;->b:I
const/4 p1, 0x0
.line 87
iput p1, p0, Lcom/imo/android/imoim/mic/d$b;->c:I
.line 89
iput p1, p0, Lcom/imo/android/imoim/mic/d$b;->d:I
.line 91
new-instance v0, Ljava/util/concurrent/ArrayBlockingQueue;
const/16 v1, 0x32
invoke-direct {v0, v1}, Ljava/util/concurrent/ArrayBlockingQueue;-><init>(I)V
iput-object v0, p0, Lcom/imo/android/imoim/mic/d$b;->e:Ljava/util/concurrent/ArrayBlockingQueue;
.line 94
iput p1, p0, Lcom/imo/android/imoim/mic/d$b;->f:I
return-void
.end method
# virtual methods
.method public final run()V
.registers 11
const-string v0, "AudioPoller"
const/4 v1, 0x2
const/16 v2, 0x3e80
const/16 v3, 0x10
.line 97
invoke-static {v2, v3, v1}, Landroid/media/AudioRecord;->getMinBufferSize(III)I
move-result v1
.line 99
iget v2, p0, Lcom/imo/android/imoim/mic/d$b;->b:I
mul-int/lit8 v2, v2, 0x18
iput v2, p0, Lcom/imo/android/imoim/mic/d$b;->a:I
.line 103
:goto_11
iget v2, p0, Lcom/imo/android/imoim/mic/d$b;->a:I
if-ge v2, v1, :cond_1a
mul-int/lit8 v2, v2, 0x2
.line 104
iput v2, p0, Lcom/imo/android/imoim/mic/d$b;->a:I
goto :goto_11
:cond_1a
const/4 v1, 0x0
const/4 v2, 0x0
:goto_1c
const/16 v3, 0xa
if-ge v2, v3, :cond_2c
.line 107
iget-object v3, p0, Lcom/imo/android/imoim/mic/d$b;->e:Ljava/util/concurrent/ArrayBlockingQueue;
iget v4, p0, Lcom/imo/android/imoim/mic/d$b;->b:I
new-array v4, v4, [S
invoke-virtual {v3, v4}, Ljava/util/concurrent/ArrayBlockingQueue;->add(Ljava/lang/Object;)Z
add-int/lit8 v2, v2, 0x1
goto :goto_1c
:cond_2c
const/4 v2, 0x0
.line 111
:try_start_2d
new-instance v9, Landroid/media/AudioRecord;
const/4 v4, 0x1
const/16 v5, 0x3e80
const/16 v6, 0x10
const/4 v7, 0x2
iget v8, p0, Lcom/imo/android/imoim/mic/d$b;->a:I
move-object v3, v9
invoke-direct/range {v3 .. v8}, Landroid/media/AudioRecord;-><init>(IIIII)V
:try_end_3b
.catch Ljava/lang/Exception; {:try_start_2d .. :try_end_3b} :catch_81
.line 118
:try_start_3b
invoke-virtual {v9}, Landroid/media/AudioRecord;->startRecording()V
const-string v3, "SW recording begin"
.line 1071
invoke-static {v0, v3}, Lcom/imo/android/imoim/util/bt;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 120
:goto_43
sget-boolean v3, Lcom/imo/android/imoim/mic/d;->b:Z
if-eqz v3, :cond_97
.line 123
iget-object v3, p0, Lcom/imo/android/imoim/mic/d$b;->e:Ljava/util/concurrent/ArrayBlockingQueue;
invoke-virtual {v3}, Ljava/util/concurrent/ArrayBlockingQueue;->isEmpty()Z
move-result v3
if-eqz v3, :cond_54
.line 124
iget v3, p0, Lcom/imo/android/imoim/mic/d$b;->b:I
new-array v3, v3, [S
goto :goto_5c
.line 126
:cond_54
iget-object v3, p0, Lcom/imo/android/imoim/mic/d$b;->e:Ljava/util/concurrent/ArrayBlockingQueue;
invoke-virtual {v3}, Ljava/util/concurrent/ArrayBlockingQueue;->poll()Ljava/lang/Object;
move-result-object v3
check-cast v3, [S
.line 128
:goto_5c
iget v4, p0, Lcom/imo/android/imoim/mic/d$b;->b:I
invoke-virtual {v9, v3, v1, v4}, Landroid/media/AudioRecord;->read([SII)I
move-result v4
iput v4, p0, Lcom/imo/android/imoim/mic/d$b;->f:I
const/4 v5, -0x2
const/4 v6, 0x1
if-eq v4, v5, :cond_6b
const/4 v5, -0x3
if-ne v4, v5, :cond_70
:cond_6b
const-string v4, "Read error"
.line 1079
invoke-static {v0, v4, v6}, Lcom/imo/android/imoim/util/bt;->a(Ljava/lang/String;Ljava/lang/String;Z)V
.line 132
:cond_70
iget v4, p0, Lcom/imo/android/imoim/mic/d$b;->d:I
add-int/2addr v4, v6
iput v4, p0, Lcom/imo/android/imoim/mic/d$b;->d:I
.line 133
iget-object v4, p0, Lcom/imo/android/imoim/mic/d$b;->g:Lcom/imo/android/imoim/mic/d;
invoke-static {v4}, Lcom/imo/android/imoim/mic/d;->a(Lcom/imo/android/imoim/mic/d;)Lcom/imo/android/imoim/tensor/TensorJni;
move-result-object v4
invoke-virtual {v4, v3}, Lcom/imo/android/imoim/tensor/TensorJni;->offer([S)V
:try_end_7e
.catch Ljava/lang/Exception; {:try_start_3b .. :try_end_7e} :catch_7f
goto :goto_43
:catch_7f
move-exception v1
goto :goto_83
:catch_81
move-exception v1
move-object v9, v2
.line 136
:goto_83
invoke-static {v1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
.line 2071
invoke-static {v0, v1}, Lcom/imo/android/imoim/util/bt;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 137
iget-object v1, p0, Lcom/imo/android/imoim/mic/d$b;->g:Lcom/imo/android/imoim/mic/d;
invoke-static {v1}, Lcom/imo/android/imoim/mic/d;->b(Lcom/imo/android/imoim/mic/d;)Lcom/imo/android/imoim/mic/d$a;
move-result-object v1
if-eqz v1, :cond_97
.line 138
iget-object v1, p0, Lcom/imo/android/imoim/mic/d$b;->g:Lcom/imo/android/imoim/mic/d;
invoke-static {v1}, Lcom/imo/android/imoim/mic/d;->b(Lcom/imo/android/imoim/mic/d;)Lcom/imo/android/imoim/mic/d$a;
.line 140
:cond_97
iget-object v1, p0, Lcom/imo/android/imoim/mic/d$b;->g:Lcom/imo/android/imoim/mic/d;
invoke-static {v1}, Lcom/imo/android/imoim/mic/d;->a(Lcom/imo/android/imoim/mic/d;)Lcom/imo/android/imoim/tensor/TensorJni;
move-result-object v1
invoke-virtual {v1}, Lcom/imo/android/imoim/tensor/TensorJni;->finishTensor()V
if-eqz v9, :cond_ad
.line 142
invoke-virtual {v9, v2}, Landroid/media/AudioRecord;->setRecordPositionUpdateListener(Landroid/media/AudioRecord$OnRecordPositionUpdateListener;)V
.line 143
invoke-virtual {v9}, Landroid/media/AudioRecord;->release()V
const-string v1, "stopped"
.line 3071
invoke-static {v0, v1}, Lcom/imo/android/imoim/util/bt;->d(Ljava/lang/String;Ljava/lang/String;)V
:cond_ad
return-void
.end method