Skip to content

Instantly share code, notes, and snippets.

@nift4
Last active March 2, 2025 12:13
Show Gist options
  • Save nift4/0366f7714ec65422eea4179dc0515954 to your computer and use it in GitHub Desktop.
Save nift4/0366f7714ec65422eea4179dc0515954 to your computer and use it in GitHub Desktop.
libpowerampcore hi-res audio output detection
package com.maxmpz.audioplayer.output.athd;
import android.content.Context;
import android.os.Build;
import com.maxmpz.audioplayer.R;
import com.maxmpz.audioplayer.plugin.NativePluginInfo;
import com.maxmpz.audioplayer.plugin.OutputInternalHelper;
import com.maxmpz.audioplayer.processing.Pipeline2;
import p007.AbstractC1063Mx;
import p007.C0541Ee;
import p007.InterfaceC0749Hx;
import p007.InterfaceC1913aS;
/* compiled from: _ */
/* loaded from: classes.dex */
public class AthdPluginService extends AbstractC1063Mx implements InterfaceC0749Hx {
/* renamed from: р */
public C0541Ee f2080;
public AthdPluginService(Context context, NativePluginInfo nativePluginInfo) {
super(context, nativePluginInfo);
}
/* renamed from: x */
public static String m911x(Context context, int i) {
int i2;
long m1036A = OutputInternalHelper.m1036A(i, -1, null);
if (m1036A == -1) {
m1036A = 0;
}
long j = m1036A & (-72057594037927936L);
if (j == 144115188075855872L) {
return context.getString(R.string.athd_variant_pcm_offload); // QCOM (probably)
}
if (j == 72057594037927936L) {
return context.getString(R.string.athd_variant_samsung); // samsung
}
if (j == 1152921504606846976L) {
return context.getString(R.string.athd_variant_samsung_plain); // samsung
}
if (j == 936748722493063168L) {
return context.getString(R.string.athd_variant_mtk_hifi); // MediaTek
}
if (j == 288230376151711744L) {
if (Build.VERSION.SDK_INT >= 26) {
i2 = R.string.athd_variant_usb_bt_only;
} else {
i2 = R.string.athd_variant_usb_only;
}
return context.getString(i2);
}
if (j == 360287970189639680L) {
return context.getString(R.string.athd_variant_lenovo_hifi); // Lenovo
}
if (j == 432345564227567616L) {
return context.getString(R.string.athd_variant_meizu_hifi); // Meizu
}
if (j == 504403158265495552L) {
return context.getString(R.string.athd_variant_sony); // Sony
}
if (j == 576460752303423488L) {
return context.getString(R.string.hd_variant_direct_hd); // everyone
}
if (j == 864691128455135232L) {
return context.getString(R.string.hd_variant_direct_hd_ns); // TODO
}
if (j == 1008806316530991104L) {
return context.getString(R.string.hd_variant_direct_hd_miui); // Xiaomi
}
if (j == 1224979098644774912L) {
return context.getString(R.string.hd_variant_direct_hd_miui_11); // Xiaomi
}
if (j == 1297036692682702848L) {
return context.getString(R.string.hd_variant_direct_hd_miui_12); // Xiaomi
}
if (j == 1080863910568919040L) {
return context.getString(R.string.hd_variant_direct_hd_11); // TODO
}
if (j == 648518346341351424L) {
return context.getString(R.string.hd_variant_mixed); // Vivo
}
if (j == 720575940379279360L) {
return context.getString(R.string.hd_variant_direct_hd_huawei); // Huawei
}
if (j == 792633534417207296L) {
return context.getString(R.string.hd_variant_ibasso); // iBasso DAP
}
if (j != 216172782113783808L) {
return null;
}
return context.getString(R.string.hd_variant_dynamic); // OnePlus/OPPO
}
@Override // p007.AbstractC1063Mx
/* renamed from: A */
public final void mo838A(int i, InterfaceC1913aS interfaceC1913aS) {
if ((interfaceC1913aS instanceof Pipeline2) && ((Pipeline2) interfaceC1913aS).f2579m.f19673 == this.f9380P) {
C0541Ee c0541Ee = this.f2080;
if (c0541Ee == null) {
c0541Ee = new C0541Ee(this.f9381X);
this.f2080 = c0541Ee;
}
c0541Ee.m3488B(i, true);
}
}
@Override // p007.AbstractC1063Mx
/* renamed from: B */
public final int mo835B() {
return R.drawable.hires_24dp;
}
@Override // p007.InterfaceC0749Hx
/* renamed from: В */
public final String mo912(Context context) {
return m911x(context, this.f9382);
}
}
char * FUN_002e8f9c(undefined8 param_1,uint *param_2,uint *param_3)
{
bool bVar1;
ulong uVar2;
char *pcVar3;
bool bVar4;
bool bVar5;
uint uVar6;
bool bVar7;
bool bVar8;
bool bVar9;
int iVar10;
uint uVar11;
int iVar12;
int iVar13;
ulong uVar14;
char *pcVar15;
undefined8 uVar16;
char *pcVar17;
ulong uVar18;
ulong uVar19;
undefined8 uVar20;
ulong uVar21;
byte bVar22;
byte bVar23;
char *pcVar24;
char *pcVar25;
char *pcVar26;
undefined1 auVar27 [16];
byte local_1cc;
ulong local_1b0;
uint local_194;
undefined8 local_190;
undefined8 uStack_188;
undefined8 uStack_180;
undefined8 uStack_178;
undefined8 local_170;
undefined8 uStack_168;
undefined8 uStack_160;
undefined8 uStack_158;
undefined8 local_150;
undefined4 uStack_148;
undefined4 uStack_144;
undefined4 uStack_140;
undefined8 uStack_13c;
undefined8 local_130;
undefined8 uStack_128;
undefined8 uStack_120;
undefined8 uStack_118;
undefined8 local_110;
undefined8 uStack_108;
undefined8 local_100;
undefined8 uStack_f8;
undefined8 uStack_f0;
undefined4 uStack_e8;
undefined4 local_e4;
undefined4 uStack_e0;
undefined8 uStack_dc;
undefined8 local_d0;
undefined8 uStack_c8;
undefined8 local_c0;
undefined8 uStack_b8;
undefined8 uStack_b0;
undefined8 uStack_a8;
undefined8 local_a0;
undefined8 uStack_98;
undefined8 uStack_90;
undefined4 uStack_88;
undefined4 local_84;
undefined4 uStack_80;
undefined8 uStack_7c;
long local_68;
uVar6 = DAT_009b6fe8;
pcVar3 = (char *)tpidr_el0;
pcVar25 = (char *)&local_130;
local_68 = *(long *)(pcVar3 + 0x28);
uStack_7c = 0;
uStack_80 = 0;
uStack_c8 = 0;
local_d0 = 0;
uStack_98 = 0;
local_a0 = 0;
uStack_88 = 0;
local_84 = 0;
uStack_90 = 0;
uStack_b8 = 0;
local_c0 = 0;
uStack_a8 = 0;
uStack_b0 = 0;
pcVar17 = (char *)param_3;
iVar10 = FUN_0040197c("ro.product.manufacturer",&local_d0);
if (iVar10 < 1) {
__android_log_print(6,"audio_platform.c","%s() ro.product.manufacturer","audioplatform_detect");
LAB_002e9484:
pcVar25 = (char *)0x0;
goto LAB_002ea088;
}
uStack_dc = 0;
uStack_e0 = 0;
uStack_108 = 0;
local_110 = 0;
uStack_f8 = 0;
local_100 = 0;
uStack_e8 = 0;
local_e4 = 0;
uStack_f0 = 0;
uStack_128 = 0;
local_130 = 0;
uStack_118 = 0;
uStack_120 = 0;
uStack_188 = 0;
local_190 = 0;
uStack_178 = 0;
uStack_180 = 0;
uStack_168 = 0;
local_170 = 0;
uStack_158 = 0;
uStack_160 = 0;
uStack_148 = 0;
local_150 = 0;
uStack_13c = 0;
uStack_144 = 0;
uStack_140 = 0;
FUN_0040197c("ro.board.platform",&local_130);
uVar14 = FUN_0040197c("ro.build.date.utc",&local_190);
if ((int)uVar14 == 0) {
local_1b0 = 0;
}
else {
uVar14 = atoll((char *)&local_190);
local_1b0 = uVar14;
}
if (((int)uVar6 < 0x1d) ||
(uVar14 = FUN_0040197c("ro.odm.build.date.utc",&local_190), (int)uVar14 == 0)) {
uVar19 = 0;
}
else {
uVar14 = atoll((char *)&local_190);
uVar19 = uVar14;
}
auVar27 = FUN_002ebc70(uVar14,"AUDIO_FORMAT_PCM_24_BIT_PACKED");
pcVar15 = strcasestr(auVar27._0_8_,(char *)(auVar27._8_8_ + 0x5ef));
if ((pcVar15 == pcVar25) || (pcVar15 = strcasestr((char *)&local_130,"sdm"), pcVar15 == pcVar25))
goto LAB_002e90f4;
if ((int)uVar6 < 0x1c) goto LAB_002e9248;
auVar27 = FUN_002ebc70(pcVar15," Cappella");
pcVar15 = strcasestr(auVar27._0_8_,(char *)(auVar27._8_8_ + 0x482));
if ((pcVar15 == pcVar25) ||
(pcVar15 = strcasestr((char *)&local_130,"trinket"), pcVar15 != (char *)0x0)) {
LAB_002e90f4:
bVar7 = param_3 != (uint *)0x0;
if (param_3 != (uint *)0x0) {
auVar27 = FUN_002ebcc4(*(undefined8 *)param_3,*(undefined8 *)(param_3 + 2),"_resume");
pcVar15 = (char *)FUN_002ebb5c(auVar27._0_8_,auVar27._8_8_ + 0xd9);
}
FUN_002ebc70(pcVar15,0x5c);
pcVar15 = (char *)__strlen_chk();
if (pcVar15 == (char *)0x7) {
pcVar15 = strcasestr((char *)&local_130,"MSM8937");
if (pcVar15 != pcVar25) {
auVar27 = FUN_002ebc70(pcVar15,"_resume");
pcVar15 = strcasestr(auVar27._0_8_,(char *)(auVar27._8_8_ + 0xed));
if (pcVar15 != pcVar25) {
pcVar15 = strcasestr((char *)&local_130,"MSM891");
bVar8 = pcVar15 == pcVar25;
goto LAB_002e9180;
}
}
bVar9 = false;
bVar5 = true;
bVar8 = true;
}
else {
bVar8 = false;
LAB_002e9180:
bVar9 = false;
bVar5 = true;
}
}
else {
pcVar15 = strcasestr((char *)&local_130,"taro");
if ((pcVar15 != (char *)0x0) || ((int)uVar6 < 0x1d)) {
if (pcVar15 == (char *)0x0) {
pcVar15 = (char *)0x0;
goto LAB_002e9248;
}
goto LAB_002e90f4;
}
pcVar25 = (char *)&local_190;
pcVar15 = (char *)FUN_0040197c("ro.hardware",&local_190);
if (0 < (int)pcVar15) {
pcVar15 = strcasestr((char *)&local_190,"qcom");
if (pcVar15 != pcVar25) {
pcVar25 = (char *)&local_190;
pcVar15 = strcasestr((char *)&local_190,"timelm");
if (pcVar15 != pcVar25) goto LAB_002e9218;
}
goto LAB_002e90f4;
}
if (0x1c < (int)uVar6) {
LAB_002e9218:
pcVar25 = (char *)&local_190;
pcVar15 = (char *)FUN_0040197c("ro.bluetooth.library_name",&local_190);
if (((int)pcVar15 != 0) &&
(pcVar15 = strcasestr((char *)&local_190,"libbluetooth_qti.so"), pcVar15 == pcVar25))
goto LAB_002e90f4;
}
LAB_002e9248:
bVar7 = param_3 != (uint *)0x0;
bVar5 = false;
bVar8 = false;
bVar9 = (short)local_130 == 0x746d;
if ((bVar9) && (param_3 != (uint *)0x0)) {
auVar27 = FUN_002ebcc4(*(undefined8 *)param_3,*(undefined8 *)(param_3 + 2),
"%s() !descriptor_id");
pcVar15 = (char *)FUN_002ebb5c(auVar27._0_8_,auVar27._8_8_ + 0xbc8);
bVar5 = false;
bVar8 = false;
bVar7 = true;
bVar9 = true;
}
}
auVar27 = FUN_002ebb64(pcVar15,"ondaryColor");
iVar10 = strncasecmp(auVar27._0_8_,(char *)(auVar27._8_8_ + 0xc62),(size_t)pcVar17);
bVar4 = iVar10 == 0 && 0x1d < (int)uVar6;
if ((bVar4) && (bVar7 != false)) {
pcVar17 = "es_iterator";
FUN_002ebb54(*(undefined8 *)param_3,*(undefined8 *)(param_3 + 2),"%s Pixel Android 11+");
}
uVar14 = FUN_002ebbf0();
if (((int)uVar14 == 0) &&
(uVar14 = FUN_0040197c("ro.miui.ui.version.code",&local_190), (int)uVar14 != 0)) {
uVar14 = FUN_002ebc9c();
iVar13 = (int)uVar14;
if (bVar7 != false) {
pcVar17 = "es_iterator";
uVar14 = FUN_002ebba0(*(undefined8 *)param_3,*(undefined8 *)(param_3 + 2),"%s MIUI=%d");
bVar7 = true;
}
}
else {
iVar13 = 0;
}
bVar22 = 0;
bVar23 = 0;
if ((bVar4 || iVar13 != 0) || ((bool)(bVar5 ^ 1))) {
LAB_002e93a4:
bVar1 = (int)uVar6 < 0x1c;
if (bVar5 || 0x1b < (int)uVar6) {
LAB_002e93d4:
if ((int)uVar6 < 0x15) {
if (bVar7 != false) {
FUN_002ebcb8(*(undefined8 *)param_3,*(undefined8 *)(param_3 + 2),
"%s too low android_sdk=%d","es_iterator");
}
goto LAB_002e9484;
}
goto LAB_002e93dc;
}
auVar27 = FUN_002ebb64(uVar14,"AUDIO_FORMAT_PCM_24_BIT_PACKED");
uVar11 = strncasecmp(auVar27._0_8_,(char *)(auVar27._8_8_ + 0x5f3),(size_t)pcVar17);
uVar14 = (ulong)uVar11;
if ((uVar11 != 0) || (uVar14 = FUN_002ebc40(), (int)uVar14 < 1)) goto LAB_002e93d4;
pcVar17 = (char *)0x5c;
uVar11 = strncasecmp((char *)&local_190,"OPPO",0x5c);
uVar14 = (ulong)uVar11;
if (uVar11 != 0) goto LAB_002e93d4;
if (bVar7 == false) {
local_1cc = 0;
pcVar25 = (char *)0x0;
}
else {
pcVar17 = "es_iterator";
uVar14 = FUN_002ebb5c(*(undefined8 *)param_3,*(undefined8 *)(param_3 + 2),
"%s %s !is_snapdragon blacklisted as hi-res is disabled","es_iterator",
&local_d0);
local_1cc = 0;
pcVar25 = (char *)0x0;
bVar7 = true;
}
LAB_002e965c:
bVar8 = 0x17 < (int)uVar6;
uVar18 = uVar19;
if ((uVar6 & 0xfffffffc) == 0x18) goto LAB_002e9674;
}
else {
bVar23 = (bVar8 ^ 1U) & 0x1e < (int)uVar6;
if ((bVar23 & bVar7) == 0) {
bVar22 = (bVar8 ^ 1U) & uVar6 == 0x1e;
if ((bVar22 & bVar7) != 1) goto LAB_002e93a4;
pcVar25 = "%s Snapdragon Android 11";
}
else {
pcVar25 = "%s Snapdragon Android 12+";
}
bVar22 = bVar23 & bVar7 ^ 1;
pcVar17 = "es_iterator";
uVar14 = FUN_002ebb54(*(undefined8 *)param_3,*(undefined8 *)(param_3 + 2),pcVar25);
bVar1 = false;
LAB_002e93dc:
auVar27 = FUN_002ebb64(uVar14,"milk/shaders/blur_vs.glsl");
uVar11 = strncasecmp(auVar27._0_8_,(char *)(auVar27._8_8_ + 0x2c8),(size_t)pcVar17);
uVar14 = (ulong)uVar11;
if ((uVar11 != 0) || (uVar14 = FUN_002ebc40(), (int)uVar14 < 1)) {
LAB_002e93f4:
pcVar15 = (char *)0x0;
LAB_002e93f8:
if (((int)uVar6 < 0x17) ||
(uVar14 = FUN_0040197c("ro.lenovo.hifi_support",&local_190), (int)uVar14 < 1)) {
local_1cc = false;
}
else {
uVar14 = FUN_002ebb70();
local_1cc = (int)uVar14 == 0;
}
auVar27 = FUN_002ebb64(uVar14,&DAT_00130000);
uVar11 = strncasecmp(auVar27._0_8_,(char *)(auVar27._8_8_ + 0x4cb),(size_t)pcVar17);
if ((uVar11 == 0) && (uVar11 = access("/system/etc/audio_hifi.conf",4), -1 < (int)uVar11)) {
if (bVar7 != false) {
(**(code **)param_3)(*(undefined8 *)(param_3 + 2),"FLAG_VARIANT_MEIZU_HIFI");
}
uVar14 = FUN_002ebc18();
pcVar25 = (char *)0x600000400400000;
goto LAB_002e965c;
}
uVar14 = (ulong)uVar11;
if (uVar6 == 0x17) {
uVar14 = FUN_0040197c("ro.build.sense.version",&local_190);
pcVar25 = (char *)((ulong)pcVar15 | 0x100000000);
if ((int)uVar14 < 1) {
pcVar25 = pcVar15;
}
LAB_002e9510:
pcVar15 = pcVar25;
if ((int)uVar6 < 0x17) {
auVar27 = FUN_002ebb64(uVar14,"code instructions");
uVar11 = strncasecmp(auVar27._0_8_,(char *)(auVar27._8_8_ + 0x18a),(size_t)pcVar17);
uVar14 = (ulong)uVar11;
if (uVar11 == 0) {
if (bVar7 != false) {
uVar20 = *(undefined8 *)param_3;
uVar16 = *(undefined8 *)(param_3 + 2);
pcVar25 = "%s FLAG_SUPPORTS_LDAC for FiiO";
goto LAB_002e95b0;
}
goto LAB_002e95b8;
}
}
else {
uVar14 = FUN_0040197c("ro.somc.ldac.audio.supported",&local_190);
if ((0 < (int)uVar14) && (uVar14 = FUN_002ebb70(), (int)uVar14 == 0)) {
if (bVar7 != false) {
uVar20 = *(undefined8 *)param_3;
uVar16 = *(undefined8 *)(param_3 + 2);
pcVar25 = "%s FLAG_SUPPORTS_LDAC via ro.somc.ldac.audio.supported";
LAB_002e95b0:
pcVar17 = "es_iterator";
uVar14 = FUN_002ebb54(uVar20,uVar16,pcVar25);
}
goto LAB_002e95b8;
}
}
}
else {
pcVar25 = pcVar15;
if ((int)uVar6 < 0x1a) goto LAB_002e9510;
LAB_002e95b8:
pcVar25 = (char *)((ulong)pcVar15 | 0x4000000000000);
}
if (bVar23 == 0 && (iVar10 != 0 || 0x1d >= (int)uVar6)) {
local_194 = 0;
if (((int)uVar6 < 0x1c) ||
((uVar14 = FUN_002ebc04(), uVar14 == 0 &&
(pcVar17 = (char *)param_3,
uVar14 = FUN_002ea304("/vendor/etc/audio_io_policy.conf",&local_194), uVar14 == 0)))) {
pcVar17 = (char *)&local_194;
uVar14 = FUN_002ea424("/system/etc/audio_policy.conf",&local_d0,pcVar17,param_3);
if (uVar14 == 0) {
pcVar17 = (char *)&local_194;
uVar14 = FUN_002ea424("/vendor/etc/audio_policy.conf",&local_d0,pcVar17,param_3);
if ((bool)(uVar14 == 0 & bVar1)) {
uVar14 = FUN_002ebc04();
}
}
}
bVar23 = 0;
*param_2 = *param_2 | local_194;
pcVar25 = (char *)(uVar14 | (ulong)pcVar25);
}
goto LAB_002e965c;
}
pcVar17 = (char *)0x5c;
uVar11 = strncasecmp((char *)&local_190,"samsung",0x5c);
uVar14 = (ulong)uVar11;
if (uVar11 != 0) goto LAB_002e93f4;
if (bVar7 != false) {
pcVar17 = "es_iterator";
uVar14 = FUN_002ebb54(*(undefined8 *)param_3,*(undefined8 *)(param_3 + 2),"%s samsung band");
}
if ((int)uVar6 < 0x1c) {
iVar12 = FUN_0040197c("persist.audio.uhqa",&local_190);
if (0 < iVar12) {
pcVar17 = (char *)0x5c;
uVar11 = strncasecmp((char *)&local_190,"1",0x5c);
uVar14 = (ulong)uVar11;
if (uVar11 == 0) goto LAB_002e94d0;
}
uVar14 = FUN_0040197c("secmm.player.uhqamode",&local_190);
if ((0 < (int)uVar14) && (uVar14 = FUN_002ebb70(), (int)uVar14 == 0)) goto LAB_002e94d0;
if (bVar7 == false) {
pcVar15 = (char *)0x1000000000000000;
}
else {
pcVar17 = "es_iterator";
uVar14 = FUN_002ebb54(*(undefined8 *)param_3,*(undefined8 *)(param_3 + 2),
"%s FLAG_VARIANT_SAMSUNG");
pcVar15 = (char *)0x1000000000000000;
bVar7 = true;
}
goto LAB_002e93f8;
}
LAB_002e94d0:
if (bVar7 == false) {
if (bVar8 == false) goto LAB_002ea0e8;
}
else {
pcVar17 = "es_iterator";
FUN_002ebb54(*(undefined8 *)param_3,*(undefined8 *)(param_3 + 2),
"%s FLAG_VARIANT_SAMSUNG_UHQA");
if (bVar8 == false) {
LAB_002ea0e8:
uVar14 = FUN_002ebc18();
}
else {
auVar27 = FUN_002ebcc4(*(undefined8 *)param_3,*(undefined8 *)(param_3 + 2),
"c_mf4x4_i (mat4 m, int i) {\n\tmat4 m2 = xll_transpose_mf4x4(m);\n\t return i < 2?(i==0?m2[0]:m2[1]):(i==3?m2[3]:m2[2]);\n}\n#else\nvec2 x ll_matrixindexdynamic_mf2x2_i (mat2 m, int i) { return xll_matrixinde x_mf2x2_i (m, i); }\nvec3 xll_matrixindexdynamic_mf3x3_i (mat3 m, int i) { return xll_matrixindex_mf3x3_i (m, i); }\nvec4 xll_matrixindexd ynamic_mf4x4_i (mat4 m, int i) { return xll_matrixindex_mf4x4_i (m, i ); }\n#endif\n"
);
uVar14 = FUN_002ebb5c(auVar27._0_8_,auVar27._8_8_ + 0xb96);
}
}
uVar21 = 0x102000400000000;
if ((bVar5 && (int)uVar6 < 0x17) && (uVar21 = 0x102080400000000, bVar7 == true)) {
pcVar17 = "es_iterator";
uVar14 = FUN_002ebb54(*(undefined8 *)param_3,*(undefined8 *)(param_3 + 2),
"%s FLAG_VARIANT_UHQA_MSM_BIT FLAG_USE_AT_CALLBACK");
uVar21 = 0x102080400000000;
}
uVar2 = 0x200000000;
if (0x17 < (int)uVar6) {
uVar2 = 0x400000000000;
}
uVar18 = uVar21 | uVar2 | 0x14000000000;
if ((int)uVar6 < 0x1f) {
uVar18 = uVar21 | uVar2;
}
if ((int)uVar6 < 0x1a) {
pcVar25 = (char *)(uVar18 | 0x10000000000000);
local_1cc = 0;
goto LAB_002e965c;
}
if (bVar8 == false) {
*param_2 = *param_2 | 0xc000000;
}
iVar10 = FUN_0040197c("ro.build.changelist",&local_190);
pcVar25 = pcVar3;
if (iVar10 < 1) {
if (uVar6 != 0x1a) {
LAB_002ea2b0:
if (bVar7 != false) {
pcVar17 = "es_iterator";
FUN_002ebb5c(*(undefined8 *)param_3,*(undefined8 *)(param_3 + 2),"%s OLD changelist=%s",
"es_iterator",&local_190);
}
goto LAB_002ea2d4;
}
}
else {
iVar10 = FUN_002ebc9c();
if (uVar6 != 0x1a) {
if (iVar10 < 0xfb9627) {
if (iVar10 < 0xecc1f1) goto LAB_002ea2b0;
if (bVar7 != false) {
pcVar17 = "es_iterator";
FUN_002ebb5c(*(undefined8 *)param_3,*(undefined8 *)(param_3 + 2),"%s 1 changelist=%s",
"es_iterator",&local_190);
}
}
else if (bVar7 != false) {
pcVar17 = "es_iterator";
FUN_002ebb5c(*(undefined8 *)param_3,*(undefined8 *)(param_3 + 2),"%s 2 changelist=%s",
"es_iterator",&local_190);
}
LAB_002ea2d4:
uVar14 = FUN_002ebbd4(0x94400000000);
uVar19 = uVar18;
goto LAB_002e965c;
}
}
if (bVar7 != false) {
pcVar17 = "audioplatform_detect";
(**(code **)param_3)
(*(undefined8 *)(param_3 + 2),"%s android_sdk=%d","audioplatform_detect",0x1a);
}
uVar14 = FUN_002ebbd4(0x94400000000);
bVar8 = true;
LAB_002e9674:
auVar27 = FUN_002ebb64(uVar14,"es_iterator");
iVar10 = strncasecmp(auVar27._0_8_,(char *)(auVar27._8_8_ + 0xd24),(size_t)pcVar17);
if (iVar10 == 0) {
pcVar25 = (char *)((ulong)pcVar25 & 0xffffffffffffff);
iVar10 = FUN_0040197c("ro.config.hifi_config_state",&local_190);
if ((iVar10 < 1) || (iVar10 = FUN_002ebc9c(), iVar10 < 1)) {
if (bVar7 != false) {
FUN_002ebb54(*(undefined8 *)param_3,*(undefined8 *)(param_3 + 2),
"%s vivo !hifi_config_state","es_iterator");
bVar7 = true;
}
}
else {
*param_2 = *param_2 | 0x2800000;
if (bVar7 != false) {
FUN_002ebb54(*(undefined8 *)param_3,*(undefined8 *)(param_3 + 2),
"%s vivo FLAG_VARIANT_MIXED_HIRES","es_iterator");
}
uVar14 = 0x910001000400000;
if ((int)uVar6 < 0x1a) {
uVar14 = 0x900001000400000;
}
pcVar25 = (char *)((ulong)pcVar25 | uVar14);
}
}
}
iVar10 = strncasecmp((char *)&local_d0,"oneplus",0x5c);
pcVar17 = (char *)0x5c;
uVar11 = strncasecmp((char *)&local_d0,"oppo",0x5c);
uVar14 = (ulong)uVar11;
if (uVar11 == 0) {
pcVar15 = &DAT_00000001;
}
else {
auVar27 = FUN_002ebb64(uVar14,"dler unexpectedly returned");
uVar11 = strncasecmp(auVar27._0_8_,(char *)(auVar27._8_8_ + 0x410),(size_t)pcVar17);
uVar14 = (ulong)uVar11;
pcVar15 = (char *)(ulong)(uVar11 == 0);
}
iVar12 = (int)pcVar15;
pcVar26 = pcVar25;
if ((0x19 < (int)uVar6) && (iVar13 == 0)) {
auVar27 = FUN_002ebb64(uVar14,"fs");
uVar11 = strncasecmp(auVar27._0_8_,(char *)(auVar27._8_8_ + 0x40b),(size_t)pcVar17);
uVar14 = (ulong)uVar11;
if (uVar11 != 0) {
auVar27 = FUN_002ebb64(uVar14,"ondaryColor");
uVar11 = strncasecmp(auVar27._0_8_,(char *)(auVar27._8_8_ + 0xcd6),(size_t)pcVar17);
uVar14 = (ulong)uVar11;
if ((uVar11 != 0) && (!(bool)(bVar5 & (ulong)pcVar25 >> 0x38 == 8))) goto LAB_002e9798;
}
if (((int)uVar6 < 0x1e) &&
(pcVar25 = (char *)((ulong)pcVar25 | 0x40000000000000), bVar7 != false)) {
pcVar17 = "es_iterator";
uVar14 = FUN_002ebcb8(*(undefined8 *)param_3,*(undefined8 *)(param_3 + 2),
"%s FLAG_NEEDS_DEEP_BUFFER android_sdk=%d");
}
pcVar26 = (char *)((ulong)pcVar25 & 0xffefbbffffffffff | 0x10400000000000);
if ((!bVar1 && iVar10 != 0) && (iVar12 == 0)) {
pcVar26 = (char *)((ulong)pcVar25 & 0xffefbbffffffffff | 0x10600000000000);
}
}
LAB_002e9798:
if (((bool)(bVar5 & (uVar6 == 0x1a && iVar13 != 0)) &&
((ulong)pcVar26 & 0xff00000000000000) == 0x800000000000000) &&
(pcVar26 = (char *)((ulong)pcVar26 | 0x40000000000000), bVar7 != false)) {
pcVar17 = "es_iterator";
uVar14 = FUN_002ebba0(*(undefined8 *)param_3,*(undefined8 *)(param_3 + 2),
"%s miui_ver=%d FLAG_NEEDS_DEEP_BUFFER");
bVar7 = true;
}
pcVar25 = pcVar26;
if ((((uVar6 == 0x1e && bVar5) && (((ulong)pcVar26 & 0xff00000000000000) == 0x800000000000000)) &&
(((ulong)pcVar26 >> 0x21 & 1) != 0)) && (iVar13 == 0)) {
pcVar15 = (char *)0x62abf631;
pcVar24 = (char *)((ulong)pcVar26 & 0xffffffffffffff | 0xc00000000000000);
pcVar25 = pcVar24;
if (bVar7 == false) {
pcVar25 = (char *)((ulong)pcVar26 & 0xffffffffffffff | 0xc40000000000000);
if (0x62abf630 < uVar18 || iVar10 != 0) {
pcVar25 = pcVar24;
}
}
else {
pcVar17 = "es_iterator";
uVar14 = FUN_002ebb54(*(undefined8 *)param_3,*(undefined8 *)(param_3 + 2),
"%s forcing FLAG_VARIANT_DIRECT_HD_NS");
bVar7 = true;
if ((iVar10 == 0) && (uVar18 < 0x62abf631)) {
pcVar17 = "es_iterator";
uVar14 = FUN_002ebb5c(*(undefined8 *)param_3,*(undefined8 *)(param_3 + 2),
"%s isOnePlusOrOppo FLAG_NEEDS_DEEP_BUFFER build_date_utc=%lu",
"es_iterator",local_1b0);
bVar7 = true;
pcVar25 = (char *)((ulong)pcVar26 & 0xffffffffffffff | 0xc40000000000000);
}
}
}
if ((bool)(0x1b < (int)uVar6 & bVar9) &&
((ulong)pcVar25 & 0xff00000000000000) == 0x900000000000000) {
if (bVar7 != false) {
pcVar17 = "es_iterator";
uVar14 = FUN_002ebb54(*(undefined8 *)param_3,*(undefined8 *)(param_3 + 2),
"%s forcing FLAG_VARIANT_MTK_HIFI");
}
uVar19 = 0xd80c00000400000;
if ((int)uVar6 < 0x21) {
uVar19 = 0xd80800000400000;
}
pcVar25 = (char *)((ulong)pcVar25 & 0x1ffffffffffffff | uVar19);
}
else if (((ulong)pcVar25 >> 0x38 == 0) && (0x19 < (int)uVar6)) {
auVar27 = FUN_002ebb64(uVar14,"s4Str");
uVar11 = strncasecmp(auVar27._0_8_,(char *)(auVar27._8_8_ + 0xb75),(size_t)pcVar17);
uVar14 = (ulong)uVar11;
if (uVar11 == 0) {
if (bVar7 != false) {
pcVar17 = "es_iterator";
uVar14 = FUN_002ebb5c(*(undefined8 *)param_3,*(undefined8 *)(param_3 + 2),"%s %s",
"es_iterator",&local_d0);
}
pcVar25 = (char *)((ulong)pcVar25 & 0x3ffffffffffffff | 0xb02010000000000);
*param_2 = *param_2 | 0xff00000;
}
}
if ((ulong)pcVar25 >> 0x38 == 2) {
if (bVar7 != false) {
pcVar17 = "audioplatform_detect";
(**(code **)param_3)
(*(undefined8 *)(param_3 + 2),"%s FLAG_NEEDS_EXTRA_SLEEPS","audioplatform_detect");
(**(code **)param_3)(*(undefined8 *)(param_3 + 2),"%s FLAG_SUPPORTS_UNITY_GAIN_STREAM");
pcVar15 = pcVar3;
}
uVar14 = FUN_0040197c("audio.offload.buffer.size.kb",&local_190);
if (((int)uVar14 < 1) || (uVar14 = FUN_002ebc9c(), (int)uVar14 < 0x201)) {
pcVar25 = (char *)((ulong)pcVar25 | 0x10000200000000);
if ((local_1cc & 1) != 0) {
if (bVar7 != false) goto LAB_002e9a0c;
goto LAB_002e9b44;
}
}
else {
pcVar25 = (char *)((ulong)pcVar25 | 0x18000200000000);
if (bVar7 == false) {
bVar7 = false;
if ((local_1cc & 1) != 0) goto LAB_002e9b44;
}
else {
pcVar17 = "es_iterator";
uVar14 = FUN_002ebb54(*(undefined8 *)param_3,*(undefined8 *)(param_3 + 2),
"%s FLAG_NEEDS_OFFLOAD_OUTPUT_FLAG");
if ((local_1cc & 1) == 0) {
bVar7 = true;
}
else {
LAB_002e9a0c:
uVar14 = (**(code **)param_3)(*(undefined8 *)(param_3 + 2),"FLAG_VARIANT_LENOVO_HIFI");
bVar7 = true;
LAB_002e9b44:
pcVar25 = (char *)((ulong)pcVar25 & 0x1ffffffffffffff | 0x500000000040000);
}
}
}
}
if (((ulong)pcVar25 >> 0x21 & 1) != 0) {
auVar27 = FUN_002ebb64(uVar14,"");
uVar11 = strncasecmp(auVar27._0_8_,(char *)(auVar27._8_8_ + 0x318),(size_t)pcVar17);
uVar14 = (ulong)uVar11;
if (uVar11 == 0) {
if (bVar7 == false) {
bVar7 = false;
pcVar25 = (char *)((ulong)pcVar25 & 0xfffffeffffffffff | 0x8000);
}
else {
pcVar17 = "audioplatform_detect";
(**(code **)param_3)
(*(undefined8 *)(param_3 + 2),"%s LG PA_OUTPUT_CAP_NEEDS_VOL_UI",
"audioplatform_detect");
pcVar25 = (char *)((ulong)pcVar25 & 0xfffffeffffffffff | 0x8000);
uVar14 = (**(code **)param_3)(*(undefined8 *)(param_3 + 2),"%s LG ~FLAG_SUPPORTS_PCM_32");
bVar7 = true;
pcVar15 = pcVar3;
}
}
}
if (((((ulong)pcVar25 >> 0x21 & 1) != 0) && ((int)uVar6 < 0x1a && iVar13 < 8)) &&
(pcVar25 = (char *)((ulong)pcVar25 | 0x8000), bVar7 != false)) {
pcVar17 = "es_iterator";
uVar14 = FUN_002ebba0(*(undefined8 *)param_3,*(undefined8 *)(param_3 + 2),
"%s MIUI=%d PA_OUTPUT_CAP_NEEDS_VOL_UI");
bVar7 = true;
}
if (0x1c < (int)uVar6) {
if ((ulong)pcVar25 >> 0x38 == 8) {
bVar9 = ((ulong)pcVar25 & 0x200000000) == 0 && (int)uVar6 < 0x1f;
}
else {
bVar9 = (int)uVar6 < 0x1f;
}
if ((!bVar9 && bVar5) &&
((9 < iVar13 || ((iVar13 == 0 && (uVar14 = FUN_002ebbf0(), (int)uVar14 == 0)))))) {
uVar19 = (ulong)pcVar25 & 0xffffffffffffff;
if ((int)uVar6 < 0x21 || iVar13 < 0xc) {
if (((int)uVar6 < 0x1f || local_1b0 < 0x62c3253d) ||
0x1e < (int)uVar6 && local_1b0 == 0x62c3253d) {
if ((int)uVar6 < 0x1e) {
uVar19 = uVar19 | 0xe00000000000000;
if (bVar7 == false) goto LAB_002e9d60;
pcVar17 = "es_iterator";
uVar14 = FUN_002ebb54(*(undefined8 *)param_3,*(undefined8 *)(param_3 + 2),
"%s => FLAG_VARIANT_DIRECT_HD_MIUI_STREAM");
LAB_002e9d5c:
bVar7 = true;
}
else if (uVar18 < 0x62543f3a) {
uVar19 = uVar19 | 0x1100000000000000;
if (bVar7 != false) {
uVar20 = *(undefined8 *)param_3;
uVar16 = *(undefined8 *)(param_3 + 2);
pcVar25 = "%s => FLAG_VARIANT_DIRECT_HD_MIUI_STREAM_1 odm_build_date_utc=%lu";
goto LAB_002e9d54;
}
}
else {
uVar19 = uVar19 | 0xc00000000000000;
if (bVar7 != false) {
uVar20 = *(undefined8 *)param_3;
uVar16 = *(undefined8 *)(param_3 + 2);
pcVar25 = "%s => FLAG_VARIANT_DIRECT_HD_NS odm_build_date_utc=%lu";
LAB_002e9d54:
pcVar17 = "es_iterator";
uVar14 = FUN_002ebb5c(uVar20,uVar16,pcVar25,"es_iterator",uVar18);
goto LAB_002e9d5c;
}
}
}
else {
uVar19 = uVar19 | 0x1200000000000000;
if (bVar7 != false) {
uVar20 = *(undefined8 *)param_3;
uVar16 = *(undefined8 *)(param_3 + 2);
pcVar25 = "%s => FLAG_VARIANT_DIRECT_HD_MIUI_STREAM_12 build_date_utc=%lu";
uVar18 = local_1b0;
goto LAB_002e9d54;
}
}
}
else {
uVar19 = uVar19 | 0xc00000000000000;
if (bVar7 != false) {
uVar20 = *(undefined8 *)param_3;
uVar16 = *(undefined8 *)(param_3 + 2);
pcVar25 = "%s => FLAG_VARIANT_DIRECT_HD_NS build_date_utc=%lu";
uVar18 = local_1b0;
goto LAB_002e9d54;
}
}
LAB_002e9d60:
uVar21 = uVar19 | 0x8000;
if (0xb < iVar13) {
uVar21 = uVar19;
}
pcVar25 = (char *)(uVar21 | 0x10000000000000);
if (0x1e < (int)uVar6) {
if (uVar21 >> 0x38 != 0xc) {
pcVar25 = (char *)(uVar21 | 0x10000200000000);
}
if ((iVar13 >= 0xc && 0x62c3253c < local_1b0) && (iVar13 < 0xc || local_1b0 != 0x62c3253d))
{
pcVar25 = (char *)((ulong)pcVar25 | 0x4141a000000000);
if (bVar7 != false) {
pcVar17 = "es_iterator";
uVar14 = FUN_002ebb54(*(undefined8 *)param_3,*(undefined8 *)(param_3 + 2),
"%s => MIUI FLAG_NEEDS_DEEP_BUFFER");
}
}
else {
pcVar25 = (char *)((ulong)pcVar25 | 0x141a000000000);
}
*param_2 = *param_2 | 0xfc00000;
}
if ((iVar13 < 0xc && 0x6131099f < local_1b0) &&
(pcVar25 = (char *)((ulong)pcVar25 | 0x40000000000), bVar7 != false)) {
pcVar17 = "es_iterator";
uVar14 = FUN_002ebb54(*(undefined8 *)param_3,*(undefined8 *)(param_3 + 2),
"%s => FLAG_NEEDS_DIRECT_PCM");
bVar7 = true;
}
}
}
auVar27 = FUN_002ebb64(uVar14,"fs");
iVar13 = strncasecmp(auVar27._0_8_,(char *)(auVar27._8_8_ + 0x410),(size_t)pcVar17);
if ((iVar13 == 0) && (0x1b < (int)uVar6)) {
auVar27 = FUN_002ebc70(0," array");
pcVar17 = strcasestr(auVar27._0_8_,(char *)(auVar27._8_8_ + 0x669));
if ((pcVar17 == pcVar15) ||
(pcVar17 = strcasestr((char *)&local_130,"hi3660"), pcVar17 == pcVar15)) {
*param_2 = *param_2 | 0x2a00000;
pcVar25 = (char *)((ulong)pcVar25 | 0xa00440200000000);
goto LAB_002e9e98;
}
if (bVar7 == false) {
bVar7 = false;
if (!bVar8) goto LAB_002e9ec8;
goto LAB_002e9ec4;
}
auVar27 = FUN_002ebcc4(*(undefined8 *)param_3,*(undefined8 *)(param_3 + 2),"t3 ddy);");
FUN_002ebb5c(auVar27._0_8_,auVar27._8_8_ + 0x525);
if (bVar8) goto LAB_002e9ea0;
bVar7 = true;
}
else {
LAB_002e9e98:
if (bVar8) {
if (bVar7 != false) {
LAB_002e9ea0:
(**(code **)param_3)
(*(undefined8 *)(param_3 + 2),"%s USB can handle Hi-Res - sdk=%d",
"audioplatform_detect",DAT_009b6fe8);
bVar7 = true;
}
LAB_002e9ec4:
pcVar25 = (char *)((ulong)pcVar25 | 0x400000000);
}
}
LAB_002e9ec8:
if (((ulong)pcVar25 | 0x400000000000000) >> 0x38 == 4) {
if (bVar23 == 0) {
if (bVar22 == 0) {
if (bVar4) {
uVar14 = 0x81141a000000000;
uVar19 = 0xeebe5fffffffff;
if (bVar7 != false) {
FUN_002ebb54(*(undefined8 *)param_3,*(undefined8 *)(param_3 + 2),
"%s isPixelAndroid11 =>FLAG_VARIANT_DIRECT_HD","es_iterator");
goto LAB_002e9f70;
}
goto LAB_002e9fcc;
}
goto LAB_002e9fe4;
}
if (bVar7 == false) goto LAB_002e9fbc;
LAB_002e9f3c:
uVar14 = 0x81141a000000000;
uVar19 = 0xeebe5dffffffff;
(**(code **)param_3)
(*(undefined8 *)(param_3 + 2),
"%s isSnapdragonAndroid11=%d isSnapdragonAndroid12=%d =>FLAG_VARIANT_DIRECT_HD_STRE AM_11 build_date_utc=%lu"
,"audioplatform_detect",bVar22,bVar23,local_1b0);
LAB_002e9f70:
bVar7 = true;
}
else if (iVar12 == 0 && iVar10 != 0) {
if (bVar7 != false) goto LAB_002e9f3c;
bVar7 = false;
LAB_002e9fbc:
uVar14 = 0x81141a000000000;
uVar19 = 0xeebe5dffffffff;
}
else {
uVar14 = 0x31141c000400000;
uVar19 = 0xeebe3fffbfffff;
if (bVar7 != false) {
FUN_002ebb5c(*(undefined8 *)param_3,*(undefined8 *)(param_3 + 2),
"%s isSnapdragonAndroid12 isOppo isOnePlus=>FLAG_VARIANT_DYNAMIC build_date_utc =%lu"
,"es_iterator",local_1b0);
goto LAB_002e9f70;
}
}
LAB_002e9fcc:
pcVar25 = (char *)(uVar19 & (ulong)pcVar25 | uVar14);
*param_2 = *param_2 | 0xfc00000;
}
LAB_002e9fe4:
if (((ulong)pcVar25 & 0xff00000400000000) == 0x400000000) {
if (bVar7 != false) {
FUN_002ebb54(*(undefined8 *)param_3,*(undefined8 *)(param_3 + 2),"%s FLAG_VARIANT_USB_ONLY",
"es_iterator");
}
uVar14 = 0x400001000000000;
if ((int)uVar6 < 0x1d) {
uVar14 = 0x400000000000000;
}
pcVar25 = (char *)((ulong)pcVar25 | uVar14);
FUN_002ebc18();
}
else if ((ulong)pcVar25 >> 0x38 == 0) {
__android_log_print(5,"audio_platform.c","%s no supported hi-res variants",
"audioplatform_detect");
goto LAB_002ea088;
}
if (bVar7 != false) {
(**(code **)param_3)
(*(undefined8 *)(param_3 + 2),"%s >>>OK flags=0x%lx","audioplatform_detect",pcVar25);
}
LAB_002ea088:
if (*(long *)(pcVar3 + 0x28) == local_68) {
return pcVar25;
}
/* WARNING: Subroutine does not return */
__stack_chk_fail();
}
public static final int athd_variant_bit_msm = 0x7f08006f;
public static final int athd_variant_lenovo_hifi = 0x7f080070;
public static final int athd_variant_meizu_hifi = 0x7f080071;
public static final int athd_variant_mtk = 0x7f080072;
public static final int athd_variant_mtk_hifi = 0x7f080073;
public static final int athd_variant_pcm_offload = 0x7f080074;
public static final int athd_variant_samsung = 0x7f080075;
public static final int athd_variant_samsung_plain = 0x7f080076;
public static final int athd_variant_sony = 0x7f080077;
public static final int athd_variant_usb_bt_only = 0x7f080078;
public static final int athd_variant_usb_only = 0x7f080079;
public static final int hd_variant_direct_hd = 0x7f080210;
public static final int hd_variant_direct_hd_10 = 0x7f080211;
public static final int hd_variant_direct_hd_11 = 0x7f080212;
public static final int hd_variant_direct_hd_huawei = 0x7f080213;
public static final int hd_variant_direct_hd_miui = 0x7f080214;
public static final int hd_variant_direct_hd_miui_11 = 0x7f080215;
public static final int hd_variant_direct_hd_miui_12 = 0x7f080216;
public static final int hd_variant_direct_hd_ns = 0x7f080217;
public static final int hd_variant_direct_huawei_9 = 0x7f080218;
public static final int hd_variant_direct_pcm8_24 = 0x7f080219;
public static final int hd_variant_dynamic = 0x7f08021a;
public static final int hd_variant_ibasso = 0x7f08021b;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment