From 5f41347c9d7440deeb080632807f454b3028fb38 Mon Sep 17 00:00:00 2001 From: Shaji Khan Date: Tue, 20 Feb 2024 20:29:13 +0530 Subject: [PATCH] looper --- app/src/main/assets/plugins.json | 4 ++-- app/src/main/cpp/SharedLibrary.h | 1 - .../shajikhan/ladspa/amprack/DataAdapter.java | 6 ++++++ .../ladspa/amprack/MainActivity.java | 2 +- app/src/main/jniLibs/arm64-v8a/liblooper.so | Bin 5384 -> 5408 bytes app/src/main/jniLibs/armeabi-v7a/liblooper.so | Bin 3324 -> 3512 bytes app/src/main/jniLibs/x86/liblooper.so | Bin 4936 -> 4612 bytes app/src/main/jniLibs/x86_64/liblooper.so | Bin 5736 -> 5680 bytes 8 files changed, 9 insertions(+), 4 deletions(-) diff --git a/app/src/main/assets/plugins.json b/app/src/main/assets/plugins.json index e2ea48fd..6953dcb1 100644 --- a/app/src/main/assets/plugins.json +++ b/app/src/main/assets/plugins.json @@ -1,13 +1,13 @@ { "Show All": [], "Featured": [ - 8095, 8018, 5029, 5005, 5013, 5008 + 8100, 8095, 8018, 5029, 5005, 5013, 5008 ], "Popular": [ 8095,8094,8067,7027, 5006, 6007, 8096 ], "New": [ - 8017,8018,8019,8020,8021,8022,8023,8024,8025,8026,8027,8028,8029,8030,8031, + 8100, 8017,8018,8019,8020,8021,8022,8023,8024,8025,8026,8027,8028,8029,8030,8031, 8032,8033,8034,8035,8036,8037,8038,8039,8040,8041,8042,8043,8044,8045,8046, 8047,8048,8049,8050,8051,8052,8053,8054,8055,8056,8057,8058,8059,8060,8061, 8062,8063,8064,8065,8066,8067,8068,8069,8070,8071,8072,8073,8074,8075,8076, diff --git a/app/src/main/cpp/SharedLibrary.h b/app/src/main/cpp/SharedLibrary.h index c71aa377..b21b6abf 100644 --- a/app/src/main/cpp/SharedLibrary.h +++ b/app/src/main/cpp/SharedLibrary.h @@ -78,7 +78,6 @@ class SharedLibrary { LV2Features features ; const LV2_Feature** feature_list; - int total_plugins = 0 ; void * dl_handle = NULL; unsigned long sampleRate ; diff --git a/app/src/main/java/com/shajikhan/ladspa/amprack/DataAdapter.java b/app/src/main/java/com/shajikhan/ladspa/amprack/DataAdapter.java index c3ea9a33..7ea9907a 100644 --- a/app/src/main/java/com/shajikhan/ladspa/amprack/DataAdapter.java +++ b/app/src/main/java/com/shajikhan/ladspa/amprack/DataAdapter.java @@ -80,6 +80,12 @@ public void onCheckedChanged(CompoundButton compoundButton, boolean b) { }); String pluginName = AudioEngine.getActivePluginName(position) ; + if (pluginName == null) { + Log.e(TAG, "onBindViewHolder: plugin name returned null, what are we even doing?", null); +// notifyItemRemoved(position); + return; + } + holder.getTextView().setText(pluginName); if (mainActivity.useTheme) mainActivity.skinEngine.cardText(holder.getTextView()); diff --git a/app/src/main/java/com/shajikhan/ladspa/amprack/MainActivity.java b/app/src/main/java/com/shajikhan/ladspa/amprack/MainActivity.java index fa7d8289..af4f85bd 100644 --- a/app/src/main/java/com/shajikhan/ladspa/amprack/MainActivity.java +++ b/app/src/main/java/com/shajikhan/ladspa/amprack/MainActivity.java @@ -1966,10 +1966,10 @@ void loadActivePreset() { return; } - SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE); String preset = sharedPreferences.getString("activePreset", null); AudioEngine.toggleMixer(sharedPreferences.getBoolean("toggleMixer", true)); + Log.i(TAG, "loadActivePreset: loading preset:\n" + preset); if (preset != null) { Log.d(TAG, "loadActivePreset: " + preset); diff --git a/app/src/main/jniLibs/arm64-v8a/liblooper.so b/app/src/main/jniLibs/arm64-v8a/liblooper.so index fade0df55893764143f4f6871b9080fbb01991ef..b901d655565836388dfd4dd2dae0e4bf2a99ef97 100755 GIT binary patch delta 2302 zcmZ`*4Qx|Y6u$SpwtKJbM&I_>50v%IfOgeTh?5N=^mSuc%#xAW2n0<#*<{TY_9KZi zL)t1NGnlx?1w{ffkOaC&GDA$ZWDB4(AtDLNHiuEdglJ*JYzoV^FzUJQN3e;fIsNYW z?%#LMy|=fWo^DT<8+R+kr}+SbR0}BAy?ig$f?gtEFAfktc4fb2(YVKWt_`okVy^S< zp~<^HCc2pe)1w!gW_MmnoF*r*lZ-K8{1Pc*UCUZHt*fX3d^73?!#AA?!>5YWvN+J!ObUXX|@bY62+XCIr&7bnH)1q4C2UnvlQLdR=@pqX;~e=tj>z6 zs;f6u)}U=IO||d*OTs{SF}tP(FcW+TrtSnB20RM*3t%tcZNMSG8Ne|>5zgK{KsP;u zz?A@sfTsZ6fcF5`;(UZIz;a?h35%1P?i1@_`=?n)9G_($6U~8q_9(Wy!dtS?wc(M`pT@5LeB)P3 zfC_a$-!j-i5mi7$32?eXNQQ06YGyyIS?ifqNwC9yr?VsGnLAVv#8__WP)xS-9(l_ zK`UEuITS}zpJNo{Ti-q4ft1?7@3DN3yf1q8W!RDri_lbfpYLoVl|c3ezQdnLW^8y!_m#84 zsk)7tIXGFU!L4#|^TeAVQayEWSSLHqC*W-N3cqidbv#u{LbhCT$hLTe%KZi0d!>rR zxJK1@8sd{r#B&gTt;OU^+h%f^<^5ar8vyr0wW_puds+C6edGtbZ{>_0!p5o=*YUxlR5L9e*6WRH+eiGFUZFu}AEmTb?IfP* zE0Xoc;eYYm^~{eLe1=3EkB2aZ$|4Demv7exZYSf8Qr?*SFewsBg+9H`K$%1YuP~#t z2FA%C>m=U_Iebjl93$h<+en9j?W8!{E2vL5U8nxGZY7ayul4bt334)fm2g$BG;kBS z16_?r%|It9&hZNAYi}XrOb*$d^9AlD#iCc})1R?E`VxV`BE(WWLr#c3JVeIDXZ`^? CY0=RD delta 2320 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 A-v9sr diff --git a/app/src/main/jniLibs/x86/liblooper.so b/app/src/main/jniLibs/x86/liblooper.so index 5326eba6016a2f7c6a3d13af0b678075ca52d04c..f0aaf3129a2dc21db1fb18a01517ca32ae00f961 100755 GIT binary patch delta 2320 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 A{Qv*} diff --git a/app/src/main/jniLibs/x86_64/liblooper.so b/app/src/main/jniLibs/x86_64/liblooper.so index c6dadf1699421e884445c0da406eb30f604f6c08..eabaab9d7a35a5dfc1b2e718dd6787167f513b9e 100755 GIT binary patch literal 5680 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