package H2; import B.RunnableC0001b; import D.n; import android.content.Context; import android.media.MediaScannerConnection; import android.os.Handler; import android.os.Looper; import android.text.SpannableStringBuilder; import android.text.format.DateFormat; import android.text.style.ForegroundColorSpan; import android.util.Log; import com.ve3nea.morse_expert.MainActivity; import com.ve3nea.morse_expert.WaterfallSurfaceView; import i3.d; import java.io.BufferedOutputStream; import java.io.DataOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.Arrays; import java.util.Date; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import k3.s; import pas.decoder; import pas.nativedecoder; /* loaded from: classes.dex */ public final class b { /* renamed from: A, reason: collision with root package name */ public static final int f602A; /* renamed from: B, reason: collision with root package name */ public static final int f603B; /* renamed from: C, reason: collision with root package name */ public static final int f604C; /* renamed from: D, reason: collision with root package name */ public static final d f605D; /* renamed from: z, reason: collision with root package name */ public static final int f606z; /* renamed from: a, reason: collision with root package name */ public final float[] f607a; /* renamed from: b, reason: collision with root package name */ public final float[] f608b; public final float[] c; /* renamed from: d, reason: collision with root package name */ public final float[] f609d; /* renamed from: e, reason: collision with root package name */ public final nativedecoder.TNativeDecoder f610e; public int f; /* renamed from: g, reason: collision with root package name */ public int f611g; /* renamed from: h, reason: collision with root package name */ public int f612h; /* renamed from: i, reason: collision with root package name */ public decoder.TDecoderState f613i; /* renamed from: j, reason: collision with root package name */ public String f614j; /* renamed from: k, reason: collision with root package name */ public final c f615k; /* renamed from: l, reason: collision with root package name */ public int f616l; /* renamed from: m, reason: collision with root package name */ public final I2.b f617m; /* renamed from: n, reason: collision with root package name */ public final Handler f618n; /* renamed from: o, reason: collision with root package name */ public WaterfallSurfaceView f619o; /* renamed from: p, reason: collision with root package name */ public MainActivity f620p; /* renamed from: q, reason: collision with root package name */ public MainActivity f621q; /* renamed from: r, reason: collision with root package name */ public final AtomicInteger f622r; /* renamed from: s, reason: collision with root package name */ public final AtomicBoolean f623s; /* renamed from: t, reason: collision with root package name */ public final Context f624t; /* renamed from: u, reason: collision with root package name */ public int f625u; /* renamed from: v, reason: collision with root package name */ public final AtomicBoolean f626v; /* renamed from: w, reason: collision with root package name */ public DataOutputStream f627w; /* renamed from: x, reason: collision with root package name */ public int f628x; /* renamed from: y, reason: collision with root package name */ public String f629y; /* JADX WARN: Removed duplicated region for block: B:14:0x012d */ /* JADX WARN: Type inference failed for: r0v4, types: [i3.d, java.lang.Object] */ static { boolean z3; float f; float f4; float f5; int round = Math.round(25.6f); f606z = round; int round2 = Math.round(153.6f); f602A = round2; f603B = round2 - round; f604C = Math.round(85.333336f); i3.d obj = new i3.d(); if (2048 > 1073741824) { z3 = true; } else { z3 = false; } obj.f11709l = z3; int i4 = (int) 1024; obj.f11700a = i4; obj.f11701b = 1024L; if (!z3) { obj.f11708k = 1; int[] iArr = new int[((int) g3.c.a((1 << (((int) (g3.c.d(((float) 1024) + 0.5f) / g3.c.d(2.0d))) / 2)) + 2)) + 2]; obj.c = iArr; float[] fArr = new float[i4]; obj.f11703e = fArr; int i5 = (i4 * 2) >> 2; obj.f11704g = i5; iArr[0] = i5; iArr[1] = 1; if (i5 > 2) { int i6 = i5 >> 1; float f6 = 0.7853982f / i6; float f7 = 2.0f * f6; float b4 = (float) g3.c.b(i6 * f6); // r9 = i6 (smali) fArr[0] = 1.0f; fArr[1] = b4; if (i6 == 4) { double d4 = f7; f4 = 0.5f; fArr[2] = (float) g3.c.b(d4); fArr[3] = (float) g3.c.f(d4); } else { f4 = 0.5f; if (i6 > 4) { iArr[2] = 0; iArr[3] = 16; int i7 = i5; int i8 = 2; f5 = 1.0f; while (i7 > 32) { int i9 = i8 << 1; int i10 = i8 << 4; for (int i11 = i8; i11 < i9; i11++) { int i12 = iArr[i11] << 2; iArr[i8 + i11] = i12; iArr[i9 + i11] = i12 + i10; } i7 >>= 2; i8 = i9; } fArr[2] = 0.5f / ((float) g3.c.b(f7)); fArr[3] = 0.5f / ((float) g3.c.b(6.0f * f6)); for (int i13 = 4; i13 < i6; i13 += 4) { float f8 = i13 * f6; double d5 = f8; fArr[i13] = (float) g3.c.b(d5); fArr[i13 + 1] = (float) g3.c.f(d5); double d6 = 3.0f * f8; fArr[i13 + 2] = (float) g3.c.b(d6); fArr[i13 + 3] = -((float) g3.c.f(d6)); } int i14 = 0; while (i6 > 2) { int i15 = i14 + i6; i6 >>= 1; fArr[i15] = f5; fArr[i15 + 1] = b4; if (i6 == 4) { float f9 = fArr[i14 + 4]; float f10 = fArr[i14 + 5]; fArr[i15 + 2] = f9; fArr[i15 + 3] = f10; } else if (i6 > 4) { float f11 = fArr[i14 + 4]; float f12 = fArr[i14 + 6]; fArr[i15 + 2] = f4 / f11; fArr[i15 + 3] = f4 / f12; for (int i16 = 4; i16 < i6; i16 += 4) { int i17 = (i16 * 2) + i14; int i18 = i15 + i16; float f13 = fArr[i17]; float f14 = fArr[i17 + 1]; float f15 = fArr[i17 + 2]; float f16 = fArr[i17 + 3]; fArr[i18] = f13; fArr[i18 + 1] = f14; fArr[i18 + 2] = f15; fArr[i18 + 3] = f16; } } i14 = i15; } } } f5 = 1.0f; int i142 = 0; while (i6 > 2) { } } int i19 = i4 >> 2; obj.f11706i = i19; iArr[1] = i19; if (i19 > 1) { int i20 = i19 >> 1; float f17 = 0.7853982f / i20; float b5 = (float) g3.c.b(i20 * f17); // r6 = i20 (smali) fArr[i5] = b5; fArr[i5 + i20] = b5 * 0.5f; for (int i21 = 1; i21 < i20; i21++) { double d7 = i21 * f17; fArr[i5 + i21] = ((float) g3.c.b(d7)) * 0.5f; fArr[(i5 + i19) - i21] = ((float) g3.c.f(d7)) * 0.5f; } } } else { obj.f11708k = 1; s sVar = new s(((long) g3.c.a((1 << ((int) (((long) (g3.c.d(((float) 1024) + 0.5f) / g3.c.d(2.0d))) / 2))) + 2)) + 2, true); obj.f11702d = sVar; k3.d dVar = new k3.d(1024L, true); obj.f = dVar; obj.f11705h = 512L; sVar.c(0L, 512L); sVar.c(1L, 1L); if (512 > 2) { long j4 = 512 >> 1; float f18 = 0.7853982f / ((float) j4); float f19 = f18 * 2.0f; float b6 = (float) g3.c.b(j4 * f18); // r14 = j4 (smali 同模式) dVar.c(0L, 1.0f); dVar.c(1L, b6); if (j4 == 4) { f = 0.5f; double d8 = f19; dVar.c(2L, (float) g3.c.b(d8)); dVar.c(3L, (float) g3.c.f(d8)); } else { f = 0.5f; if (j4 > 4) { sVar.c(2L, 0L); sVar.c(3L, 16L); long j5 = 2; long j6 = 512; while (j6 > 32) { long j7 = j5 << 1; long j8 = j5 << 4; long j9 = j5; while (j9 < j7) { long b7 = sVar.b(j9) << 2; sVar.c(j5 + j9, b7); sVar.c(j7 + j9, b7 + j8); j9++; f19 = f19; } j6 >>= 2; j5 = j7; } dVar.c(2L, 0.5f / ((float) g3.c.b(f19))); dVar.c(3L, 0.5f / ((float) g3.c.b(6.0f * f18))); long j10 = 4; while (j10 < j4) { float f20 = ((float) j10) * f18; double d9 = f20; dVar.c(j10, (float) g3.c.b(d9)); dVar.c(j10 + 1, (float) g3.c.f(d9)); double d10 = 3.0f * f20; long j11 = j10; dVar.c(j10 + 2, (float) g3.c.b(d10)); dVar.c(j11 + 3, -((float) g3.c.f(d10))); j10 = j11 + 4; } } } long j12 = 0; long j13 = 2; while (j4 > j13) { long j14 = j12 + j4; j4 >>= 1; dVar.c(j14, 1.0f); dVar.c(j14 + 1, b6); if (j4 == 4) { float b8 = dVar.b(j12 + 4); float b9 = dVar.b(j12 + 5); j13 = 2; dVar.c(j14 + 2, b8); dVar.c(j14 + 3, b9); } else { j13 = 2; if (j4 > 4) { float b10 = dVar.b(j12 + 4); float b11 = dVar.b(6 + j12); dVar.c(j14 + 2, f / b10); dVar.c(j14 + 3, f / b11); long j15 = 4; while (j15 < j4) { long j16 = (j15 * 2) + j12; float f21 = b6; long j17 = j14 + j15; long j18 = j12; float b12 = dVar.b(j16); long j19 = j14; float b13 = dVar.b(j16 + 1); float b14 = dVar.b(j16 + 2); float b15 = dVar.b(j16 + 3); dVar.c(j17, b12); dVar.c(j17 + 1, b13); dVar.c(j17 + 2, b14); dVar.c(j17 + 3, b15); j15 += 4; b6 = f21; j12 = j18; j14 = j19; } } } b6 = b6; j12 = j14; } } long j20 = 256; obj.f11707j = 256L; long j21 = 1; sVar.c(1L, 256L); if (256 > 1) { long j22 = 256 >> 1; float f22 = 0.7853982f / ((float) j22); long j23 = 512; dVar.c(512L, (float) g3.c.b(j22 * f22)); // r1 = j22 (smali) dVar.c(512 + j22, dVar.b(512L) * 0.5f); long j24 = 1; while (j24 < j22) { long j25 = j20; long j26 = j21; double d11 = ((float) j24) * f22; long j27 = j23; dVar.c(j23 + j24, ((float) g3.c.b(d11)) * 0.5f); dVar.c((j27 + j25) - j24, ((float) g3.c.f(d11)) * 0.5f); j24 += j26; j20 = j25; j21 = j26; j23 = j27; } } } f605D = obj; } public b(Context context) { float[] fArr = new float[1024]; fArr[512] = 1.0f; for (int i4 = 1; i4 < 512; i4++) { double d4 = (i4 * 6.283185307179586d) / 1024; float cos = (float) ((Math.cos(d4 * 2.0d) * 0.08d) + (0.42d - (Math.cos(d4) * 0.5d))); fArr[i4] = cos; double d5 = 0.003125f * 6.283185307179586d * (i4 - 512); float sin = (float) ((Math.sin(d5) / d5) * cos); fArr[i4] = sin; fArr[1024 - i4] = sin; } this.f607a = fArr; this.f608b = new float[1024]; this.c = new float[1024]; this.f609d = new float[f603B]; this.f610e = nativedecoder.TNativeDecoder.Create(); this.f614j = ""; this.f615k = new c(4000, 0); I2.b bVar = new I2.b(); this.f617m = bVar; this.f618n = new Handler(Looper.getMainLooper()); this.f622r = new AtomicInteger(); this.f623s = new AtomicBoolean(false); this.f625u = 0; this.f626v = new AtomicBoolean(false); this.f628x = 0; this.f624t = context; bVar.b(context); } /* JADX WARN: Removed duplicated region for block: B:57:0x01e2 */ /* JADX WARN: Removed duplicated region for block: B:63:0x020a A[LOOP:6: B:62:0x0208->B:63:0x020a, LOOP_END] */ /* JADX WARN: Removed duplicated region for block: B:66:0x0216 A[LOOP:7: B:65:0x0214->B:66:0x0216, LOOP_END] */ /* JADX WARN: Removed duplicated region for block: B:70:0x0232 */ /* JADX WARN: Removed duplicated region for block: B:73:? A[RETURN, SYNTHETIC] */ /* Code decompiled incorrectly, please refer to instructions dump. */ public final void a(float[] fArr) { c cVar; float[] fArr2; float[] fArr3; b bVar; Exception exc; int i4; float f; int i5; WaterfallSurfaceView waterfallSurfaceView; int length = fArr.length; int i6 = 0; while (true) { cVar = this.f615k; if (i6 >= length) { break; } cVar.c(Math.abs(fArr[i6])); i6++; } this.f616l = Math.round(((float) Math.log10(Math.max(-0.5d, cVar.f633e))) * 20.0f); int i7 = f604C; int i8 = 1024 - i7; float[] fArr4 = this.f608b; System.arraycopy(fArr4, i7, fArr4, 0, i8); System.arraycopy(fArr, 0, fArr4, i8, i7); int i9 = 0; while (true) { fArr2 = this.c; if (i9 >= 1024) { break; } fArr2[i9] = fArr4[i9] * this.f607a[i9]; i9++; } f605D.k(fArr2, 0); int i10 = f606z; int i11 = i10; while (true) { int i12 = f602A; float f4 = 0.0f; fArr3 = this.f609d; if (i11 < i12) { int i13 = i11 * 2; float f5 = fArr2[i13]; float f6 = fArr2[i13 + 1]; float f7 = ((f6 * f6) + (f5 * f5)) * 0.001f; if (!Float.isNaN(f7)) { f4 = f7; } fArr3[i11 - i10] = f4; i11++; } else { // smali: 循环内无 try; 录音写入 try 在循环后(见下) break; } } DataOutputStream dataOutputStream = this.f627w; Context context = this.f624t; AtomicBoolean atomicBoolean = this.f626v; try { // smali try_start_0: 录音写入整块(原 jadx 误把 try 放 break 处) if (dataOutputStream == null && atomicBoolean.get()) { File file = new File(context.getExternalFilesDir(null), ((String) DateFormat.format("yyyy-MM-dd_HH_mm_ss", new Date())) + "_spectra.bin"); this.f629y = file.getAbsoluteFile().toString(); this.f627w = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(file, false))); this.f628x = 0; this.f614j = " Recording..."; } if (this.f627w != null) { for (float f8 : fArr3) { this.f627w.writeFloat(f8); } } if (atomicBoolean.get()) { int i14 = this.f628x + 1; this.f628x = i14; if (i14 >= 2048) { atomicBoolean.set(false); this.f627w.close(); this.f627w = null; this.f614j = ""; MediaScannerConnection.scanFile(context, new String[]{this.f629y}, new String[]{"application/x-binary"}, null); } } } catch (IOException e4) { Log.e("File write", "Exception: ", e4); } nativedecoder.TNativeDecoder tNativeDecoder = this.f610e; try { this.f613i = tNativeDecoder.ProcessSpectrum(fArr3); int i15 = this.f625u + 1; this.f625u = i15; Handler handler = this.f618n; if (i15 == 15) { try { this.f625u = 0; this.f = tNativeDecoder.getPitch(); this.f611g = tNativeDecoder.getSnr(); this.f612h = tNativeDecoder.getWpm(); handler.post(new B0.b(this, this.f614j, new int[]{this.f616l, this.f, this.f611g, this.f612h, tNativeDecoder.getSignalCount(), this.f613i.Value})); AtomicInteger atomicInteger = this.f622r; int i16 = atomicInteger.get(); if (i16 != 0) { tNativeDecoder.LockToPitch(i16); atomicInteger.set(0); } tNativeDecoder.setHamMode(this.f623s.get()); } catch (Exception e5) { // jadx 幻觉区(空循环/空 if 为 catch 错位还原)已裁剪; 原 smali: 记录异常后跳回正常流程尾部 exc = e5; bVar = this; Log.e("Audio Processor", "Exception", exc); } } int charCount = tNativeDecoder.getCharCount(); if (charCount > 0) { SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder(); int i18 = 0; while (i18 < charCount) { decoder.TCharInfo GetChar = tNativeDecoder.GetChar(i18); spannableStringBuilder.append(GetChar.getChar()); ForegroundColorSpan foregroundColorSpan = new ForegroundColorSpan(this.f617m.a(GetChar)); int i19 = i18 + 1; spannableStringBuilder.setSpan(foregroundColorSpan, i18, i19, 33); i18 = i19; } bVar = this; try { handler.post(new RunnableC0001b(bVar, spannableStringBuilder, tNativeDecoder.getDeleteCount(), 2, false)); } catch (Exception e6) { // jadx 幻觉区已裁剪(同 catch e5); 原 smali: 记录异常后跳回正常流程尾部 exc = e6; Log.e("Audio Processor", "Exception", exc); } } else { bVar = this; } } catch (Exception e7) { // jadx 幻觉(e 变量)已裁剪 bVar = this; } i4 = f603B; int i1722 = i4 / 2; float[] copyOfRange22 = Arrays.copyOfRange(fArr3, i1722 - 20, i1722 + 20); Arrays.sort(copyOfRange22); f = copyOfRange22[20]; if (f > 0.0f) { for (int i20 = 0; i20 < i4; i20++) { fArr3[i20] = fArr3[i20] / f; } } float[] fArr522 = (float[]) fArr3.clone(); new c(12, 1).a(fArr522); new c(12, 0).a(fArr522); for (i5 = 0; i5 < i4; i5++) { fArr3[i5] = fArr3[i5] - fArr522[i5]; } for (int i21 = 0; i21 < i4; i21++) { fArr3[i21] = ((float) Math.log10(Math.max(-0.5d, fArr3[i21]) + 1.0d)) * 10.0f; } waterfallSurfaceView = bVar.f619o; if (waterfallSurfaceView != null) { waterfallSurfaceView.queueEvent(new n(waterfallSurfaceView, 1, (float[]) fArr3.clone())); } } }