diff options
| author | Christos Papageorgiou <root.expert.xda@gmail.com> | 2019-07-18 14:57:27 +0300 |
|---|---|---|
| committer | Julian Veit <claymore1298@gmail.com> | 2019-07-19 14:53:39 +0200 |
| commit | dc83801bd3d13067b64fb32b3d7a6ec573224304 (patch) | |
| tree | 271cfc3b4b886c8fee1414e7eb38ce89d4673702 | |
| parent | 901e652275ef109fe4e8d35c1a2e8076e47381a8 (diff) | |
JamesDSP: Refactor UI
* Leave only basic options in the main fragment.
* Move all the advanced options in another fragment to improve user experience.
| -rw-r--r-- | app/src/main/AndroidManifest.xml | 4 | ||||
| -rw-r--r-- | app/src/main/java/james/dsp/activity/AdvancedOptions.java | 55 | ||||
| -rw-r--r-- | app/src/main/java/james/dsp/activity/DSPScreen.java | 34 | ||||
| -rw-r--r-- | app/src/main/java/james/dsp/service/HeadsetService.java | 51 | ||||
| -rw-r--r-- | app/src/main/res/values/strings.xml | 1 | ||||
| -rw-r--r-- | app/src/main/res/xml/advanced_preferences.xml | 122 | ||||
| -rw-r--r-- | app/src/main/res/xml/bluetooth_preferences.xml | 125 | ||||
| -rw-r--r-- | app/src/main/res/xml/headset_preferences.xml | 125 | ||||
| -rw-r--r-- | app/src/main/res/xml/speaker_preferences.xml | 125 |
9 files changed, 317 insertions, 325 deletions
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 60e52cd..24ec428 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -26,14 +26,12 @@ <category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.MULTIWINDOW_LAUNCHER" /> </intent-filter> - <!-- + <intent-filter> <action android:name="android.media.action.DISPLAY_AUDIO_EFFECT_CONTROL_PANEL" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> - --> </activity> - <service android:exported="false" android:enabled="true" diff --git a/app/src/main/java/james/dsp/activity/AdvancedOptions.java b/app/src/main/java/james/dsp/activity/AdvancedOptions.java new file mode 100644 index 0000000..4ff170d --- /dev/null +++ b/app/src/main/java/james/dsp/activity/AdvancedOptions.java @@ -0,0 +1,55 @@ +package james.dsp.activity; + +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.preference.Preference; +import android.preference.PreferenceActivity; +import android.preference.PreferenceFragment; +import android.util.Log; + +import james.dsp.R; + +public class AdvancedOptions extends PreferenceFragment { + private static final String TAG = DSPScreen.class.getSimpleName(); + + private final SharedPreferences.OnSharedPreferenceChangeListener listener = new SharedPreferences.OnSharedPreferenceChangeListener() { + + @Override + public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { + Log.e(TAG, "Preferenced changed!"); + getActivity().sendBroadcast(new Intent(DSPManager.ACTION_UPDATE_PREFERENCES)); + } + }; + @Override + public void onCreate(Bundle savedInstanceState) + { + super.onCreate(savedInstanceState); + + String config = getArguments().getString("config"); + getPreferenceManager().setSharedPreferencesName( + DSPManager.SHARED_PREFERENCES_BASENAME + "." + "advanced" + "." + config); + getPreferenceManager().setSharedPreferencesMode(Context.MODE_MULTI_PROCESS); + try + { + int xmlId = R.xml.class.getField( "advanced_preferences").getInt(null); + addPreferencesFromResource(xmlId); + } + catch (Exception e) + { + throw new RuntimeException(e); + } + + getPreferenceManager().getSharedPreferences() + .registerOnSharedPreferenceChangeListener(listener); + } + + @Override + public void onDestroy() + { + super.onDestroy(); + getPreferenceManager().getSharedPreferences() + .unregisterOnSharedPreferenceChangeListener(listener); + } +} diff --git a/app/src/main/java/james/dsp/activity/DSPScreen.java b/app/src/main/java/james/dsp/activity/DSPScreen.java index 939f4e4..c401645 100644 --- a/app/src/main/java/james/dsp/activity/DSPScreen.java +++ b/app/src/main/java/james/dsp/activity/DSPScreen.java @@ -1,12 +1,15 @@ package james.dsp.activity; +import android.app.FragmentTransaction; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.content.SharedPreferences.OnSharedPreferenceChangeListener; import android.os.Bundle; +import android.preference.Preference; import android.preference.PreferenceFragment; + import james.dsp.R; import james.dsp.preference.EqualizerPreference; import james.dsp.preference.SummariedListPreference; @@ -18,7 +21,7 @@ import james.dsp.service.HeadsetService; * and a listener that ensures that our {@link HeadsetService} is running if * required. * - * @Co-founder alankila + * Co-founder alankila */ public final class DSPScreen extends PreferenceFragment { @@ -37,7 +40,7 @@ public final class DSPScreen extends PreferenceFragment { Editor e = sharedPreferences.edit(); e.putString("dsp.tone.eq.custom", newValue); - e.commit(); + e.apply(); /* Now tell the equalizer that it must display something else. */ EqualizerPreference eq = (EqualizerPreference) getPreferenceScreen().findPreference("dsp.tone.eq.custom"); @@ -60,11 +63,11 @@ public final class DSPScreen extends PreferenceFragment } } /* Tell listpreference that it must display something else. */ - if (!desiredValue.equals(preset.getEntry())) + if (!desiredValue.contentEquals(preset.getEntry())) { Editor e = sharedPreferences.edit(); e.putString("dsp.tone.eq", desiredValue); - e.commit(); + e.apply(); preset.refreshFromPreference(); } } @@ -77,7 +80,7 @@ public final class DSPScreen extends PreferenceFragment public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - String config = getArguments().getString("config"); + final String config = getArguments().getString("config"); getPreferenceManager().setSharedPreferencesName( DSPManager.SHARED_PREFERENCES_BASENAME + "." + config); getPreferenceManager().setSharedPreferencesMode(Context.MODE_MULTI_PROCESS); @@ -92,6 +95,27 @@ public final class DSPScreen extends PreferenceFragment } getPreferenceManager().getSharedPreferences() .registerOnSharedPreferenceChangeListener(listener); + + Preference preference = getPreferenceManager().findPreference("advanced.options"); + if (preference != null) { + preference.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + Bundle bundle = new Bundle(); + bundle.putString("config", config); + + AdvancedOptions advancedOptions = new AdvancedOptions(); + advancedOptions.setArguments(bundle); + + FragmentTransaction ft = getFragmentManager().beginTransaction(); + ft.replace(R.id.dsp_container, advancedOptions); + ft.addToBackStack(null); + ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); + ft.commit(); + return true; + } + }); + } } @Override diff --git a/app/src/main/java/james/dsp/service/HeadsetService.java b/app/src/main/java/james/dsp/service/HeadsetService.java index ddd03e5..1143514 100644 --- a/app/src/main/java/james/dsp/service/HeadsetService.java +++ b/app/src/main/java/james/dsp/service/HeadsetService.java @@ -39,6 +39,9 @@ import java.util.HashMap; import java.util.Map; import java.util.UUID; import james.dsp.activity.JdspImpResToolbox; + +import static james.dsp.activity.DSPManager.TAG; + /** * <p>This calls listen to events that affect DSP function and responds to them.</p> * <ol> @@ -337,7 +340,7 @@ public class HeadsetService extends Service JDSPModule fxId = new JDSPModule(sessionId); if (fxId.JamesDSP == null) { - Log.e(DSPManager.TAG, "Audio session load fail"); + Log.e(TAG, "Audio session load fail"); fxId.release(); fxId = null; } @@ -506,16 +509,16 @@ class StartUpOptimiserThread implements Runnable { mUseBluetooth = mAudioManager.isBluetoothA2dpOn(); if (mUseBluetooth) { - Log.i(DSPManager.TAG, "Bluetooth mode"); + Log.i(TAG, "Bluetooth mode"); mUseHeadset = false; } else { mUseHeadset = mAudioManager.isWiredHeadsetOn(); if (mUseHeadset) - Log.i(DSPManager.TAG, "Headset mode"); + Log.i(TAG, "Headset mode"); else - Log.i(DSPManager.TAG, "Speaker mode"); + Log.i(TAG, "Speaker mode"); } } iconLarge = BitmapFactory.decodeResource(getResources(), R.drawable.icon); @@ -575,7 +578,7 @@ class StartUpOptimiserThread implements Runnable { if (JamesDSPGbEf == null) { JamesDSPGbEf = new JDSPModule(0); if (JamesDSPGbEf.JamesDSP == null) { - Log.e(DSPManager.TAG, "Global audio session load fail, reload it now!"); + Log.e(TAG, "Global audio session load fail, reload it now!"); JamesDSPGbEf.release(); JamesDSPGbEf = null; return super.onStartCommand(intent, flags, startId); @@ -584,18 +587,18 @@ class StartUpOptimiserThread implements Runnable { return super.onStartCommand(intent, flags, startId); } if (JamesDSPGbEf.JamesDSP == null) { - Log.e(DSPManager.TAG, "Global audio session load fail, reload it now!"); + Log.e(TAG, "Global audio session load fail, reload it now!"); JamesDSPGbEf.release(); JamesDSPGbEf = new JDSPModule(0); if (JamesDSPGbEf.JamesDSP == null) { - Log.e(DSPManager.TAG, "Global audio session load fail, reload it now!"); + Log.e(TAG, "Global audio session load fail, reload it now!"); JamesDSPGbEf.release(); JamesDSPGbEf = null; return super.onStartCommand(intent, flags, startId); } return super.onStartCommand(intent, flags, startId); } - Log.i(DSPManager.TAG, "Global audio session created!"); + Log.i(TAG, "Global audio session created!"); updateDsp(false, true); } return super.onStartCommand(intent, flags, startId); @@ -635,6 +638,7 @@ class StartUpOptimiserThread implements Runnable { modeEffect = preferencesMode.getInt("dsp.app.modeEffect", 0); final String mode = getAudioOutputRouting(); SharedPreferences preferences = getSharedPreferences(DSPManager.SHARED_PREFERENCES_BASENAME + "." + mode, 0); + SharedPreferences advancedPref = getSharedPreferences(DSPManager.SHARED_PREFERENCES_BASENAME + "." + "advanced" + "." + mode, 0); if (notify) { String pid = ""; @@ -654,7 +658,7 @@ class StartUpOptimiserThread implements Runnable { { try { - updateDsp(preferences, JamesDSPGbEf, updateConvolver, 0); + updateDsp(preferences, advancedPref, JamesDSPGbEf, updateConvolver, 0); } catch (Exception e) { @@ -666,7 +670,7 @@ class StartUpOptimiserThread implements Runnable { { try { - updateDsp(preferences, mAudioSessions.get(sessionId), updateConvolver, sessionId); + updateDsp(preferences, advancedPref, mAudioSessions.get(sessionId), updateConvolver, sessionId); } catch (Exception e) { @@ -676,7 +680,7 @@ class StartUpOptimiserThread implements Runnable { } } - private void updateDsp(SharedPreferences preferences, JDSPModule session, boolean updateMajor, int sessionId) + private void updateDsp(SharedPreferences preferences, SharedPreferences advancedPref, JDSPModule session, boolean updateMajor, int sessionId) { boolean masterSwitch = preferences.getBoolean("dsp.masterswitch.enable", false); session.JamesDSP.setEnabled(masterSwitch); // Master switch @@ -709,35 +713,36 @@ class StartUpOptimiserThread implements Runnable { session.setParameterFloatArray(session.JamesDSP, 1997, bench_c0); session.setParameterFloatArray(session.JamesDSP, 1998, bench_c1); } - float limthreshold = Float.valueOf(preferences.getString("dsp.masterswitch.limthreshold", "-0.1")); - float limrelease = Float.valueOf(preferences.getString("dsp.masterswitch.limrelease", "60")); + float limthreshold = Float.valueOf(advancedPref.getString("dsp.masterswitch.limthreshold", "-0.1")); + float limrelease = Float.valueOf(advancedPref.getString("dsp.masterswitch.limrelease", "60")); if (prelimthreshold != limthreshold || prelimrelease != limrelease) session.setParameterFloatArray(session.JamesDSP, 1500, new float[]{ limthreshold, limrelease }); prelimthreshold = limthreshold; prelimrelease = limrelease; if (compressorEnabled == 1 && updateMajor) { - session.setParameterShort(session.JamesDSP, 100, Short.valueOf(preferences.getString("dsp.compression.pregain", "12"))); - session.setParameterShort(session.JamesDSP, 101, (short)Math.abs(Short.valueOf(preferences.getString("dsp.compression.threshold", "-60")))); - session.setParameterShort(session.JamesDSP, 102, Short.valueOf(preferences.getString("dsp.compression.knee", "30"))); - session.setParameterShort(session.JamesDSP, 103, Short.valueOf(preferences.getString("dsp.compression.ratio", "12"))); - session.setParameterShort(session.JamesDSP, 104, (short)(Float.valueOf((preferences.getString("dsp.compression.attack", "0.01")))*1000)); - session.setParameterShort(session.JamesDSP, 105, (short)(Float.valueOf((preferences.getString("dsp.compression.release", "0.01")))*1000)); + session.setParameterShort(session.JamesDSP, 100, Short.valueOf(advancedPref.getString("dsp.compression.pregain", "12"))); + Log.e(TAG, String.valueOf(session.getParameter(session.JamesDSP, 100))); + session.setParameterShort(session.JamesDSP, 101, (short)Math.abs(Short.valueOf(advancedPref.getString("dsp.compression.threshold", "-60")))); + session.setParameterShort(session.JamesDSP, 102, Short.valueOf(advancedPref.getString("dsp.compression.knee", "30"))); + session.setParameterShort(session.JamesDSP, 103, Short.valueOf(advancedPref.getString("dsp.compression.ratio", "12"))); + session.setParameterShort(session.JamesDSP, 104, (short)(Float.valueOf((advancedPref.getString("dsp.compression.attack", "0.01")))*1000)); + session.setParameterShort(session.JamesDSP, 105, (short)(Float.valueOf((advancedPref.getString("dsp.compression.release", "0.01")))*1000)); } session.setParameterShort(session.JamesDSP, 1200, (short)compressorEnabled); // Compressor switch session.setParameterShort(session.JamesDSP, 1201, (short)bassBoostEnabled); // Bass boost switch if (bassBoostEnabled == 1 && updateMajor) { session.setParameterShort(session.JamesDSP, 112, Short.valueOf(preferences.getString("dsp.bass.mode", "80"))); - short filtertype = Short.valueOf(preferences.getString("dsp.bass.filtertype", "0")); + short filtertype = Short.valueOf(advancedPref.getString("dsp.bass.filtertype", "0")); session.setParameterShort(session.JamesDSP, 113, filtertype); - short freq = Short.valueOf(preferences.getString("dsp.bass.freq", "55")); + short freq = Short.valueOf(advancedPref.getString("dsp.bass.freq", "55")); session.setParameterShort(session.JamesDSP, 114, freq); if(DSPManager.devMsgDisplay) if(filtertype == 0 && freq < 90) Toast.makeText(HeadsetService.this, R.string.preferredlpf, Toast.LENGTH_SHORT).show(); } - session.setParameterShort(session.JamesDSP, 151, Short.valueOf(preferences.getString("dsp.tone.filtertype", "0"))); + session.setParameterShort(session.JamesDSP, 151, Short.valueOf(advancedPref.getString("dsp.tone.filtertype", "0"))); session.setParameterShort(session.JamesDSP, 1202, (short)equalizerEnabled); // Equalizer switch if (equalizerEnabled == 1) { @@ -765,7 +770,7 @@ class StartUpOptimiserThread implements Runnable { if (bs2bEnabled == 1 && updateMajor) session.setParameterShort(session.JamesDSP, 188, Short.valueOf(preferences.getString("dsp.bs2b.mode", "0"))); if (analogModelEnabled == 1 && updateMajor) - session.setParameterShort(session.JamesDSP, 150, (short) (Float.valueOf(preferences.getString("dsp.analogmodelling.tubedrive", "2"))*1000)); + session.setParameterShort(session.JamesDSP, 150, (short) (Float.valueOf(advancedPref.getString("dsp.analogmodelling.tubedrive", "2"))*1000)); session.setParameterShort(session.JamesDSP, 1206, (short)analogModelEnabled); // Analog modelling switch if (viperddcEnabled == 1 && updateMajor) { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 19d83d0..e5cf1fd 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -138,4 +138,5 @@ <b>Credit:</b>\n\n GUI Author: Antti S. Lankila \n </string> + <string name="advanced_options">Advanced Options</string> </resources>
\ No newline at end of file diff --git a/app/src/main/res/xml/advanced_preferences.xml b/app/src/main/res/xml/advanced_preferences.xml new file mode 100644 index 0000000..20eaaaa --- /dev/null +++ b/app/src/main/res/xml/advanced_preferences.xml @@ -0,0 +1,122 @@ +<?xml version="1.0" encoding="utf-8"?> +<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> + <PreferenceCategory android:title="@string/pref_dsp_title"> + <james.dsp.preference.SummariedTextPreferenceRanged + android:key="dsp.masterswitch.limthreshold" + android:defaultValue="-0.1" + android:dialogTitle="@string/limiter_threshold" + android:title="@string/limiter_threshold" + android:inputType="numberDecimal|numberSigned" /> + + <james.dsp.preference.SummariedTextPreferenceRanged + android:key="dsp.masterswitch.limrelease" + android:defaultValue="60" + android:dialogTitle="@string/limiter_release" + android:title="@string/limiter_release" + android:inputType="number" /> + </PreferenceCategory> + + <PreferenceCategory android:title="@string/pref_compression_title"> + <james.dsp.preference.SummariedListPreference + android:key="dsp.compression.pregain" + android:defaultValue="12" + android:dialogTitle="@string/dialog_pregain" + android:entries="@array/compression_pregain" + android:entryValues="@array/compression_pregain_values" + android:title="@string/dialog_pregain" /> + <james.dsp.preference.SummariedTextPreferenceRanged + android:key="dsp.compression.threshold" + android:defaultValue="-60" + android:dialogTitle="@string/dialog_threshold" + android:title="@string/dialog_threshold" + android:inputType="number|numberSigned" /> + <james.dsp.preference.SummariedTextPreferenceRanged + android:key="dsp.compression.knee" + android:defaultValue="30" + android:dialogTitle="@string/dialog_knee" + android:title="@string/dialog_knee" + android:inputType="number" /> + <james.dsp.preference.SummariedTextPreferenceRanged + android:key="dsp.compression.ratio" + android:defaultValue="12" + android:dialogTitle="@string/dialog_ratio" + android:title="@string/dialog_ratio" + android:inputType="number|numberSigned" /> + <james.dsp.preference.SummariedTextPreferenceRanged + android:key="dsp.compression.attack" + android:defaultValue="0.01" + android:dialogTitle="@string/dialog_attack" + android:title="@string/dialog_attack" + android:inputType="numberDecimal" /> + <james.dsp.preference.SummariedTextPreferenceRanged + android:key="dsp.compression.release" + android:defaultValue="0.24" + android:dialogTitle="@string/dialog_release" + android:title="@string/dialog_release" + android:inputType="numberDecimal" /> + </PreferenceCategory> + + <PreferenceCategory android:title="@string/pref_bassboost_title"> + <james.dsp.preference.SummariedListPreference + android:defaultValue="0" + android:dialogTitle="@string/dialog_filtertype" + android:entries="@array/bassboost_filtertype" + android:entryValues="@array/bassboost_filtertype_values" + android:title="@string/dialog_filtertype" + android:key="dsp.bass.filtertype" /> + <james.dsp.preference.SummariedTextPreferenceRanged + android:dialogTitle="@string/pref_effect_freq_title" + android:key="dsp.bass.freq" + android:defaultValue="55" + android:title="@string/pref_effect_freq_title" + android:inputType="number" /> + </PreferenceCategory> + + <PreferenceCategory android:title="@string/pref_equalizer_title"> + <james.dsp.preference.SummariedListPreference + android:defaultValue="0" + android:dialogTitle="@string/dialog_filtertype" + android:entries="@array/equalizer_filtertype" + android:entryValues="@array/equalizer_filtertype_values" + android:title="@string/dialog_filtertype" + android:key="dsp.tone.filtertype" /> + </PreferenceCategory> + + <PreferenceCategory android:title="@string/pref_convolver_title"> + <james.dsp.preference.SummariedListPreferenceWithCustom + android:title="@string/dialog_offlineimpulseresponseresampler" + android:key="dsp.convolver.resampler" + android:defaultValue="" + android:dialogTitle="@string/dialog_offlineimpulseresponseresampler_title" /> + <james.dsp.preference.SummariedListPreferenceWithCustom + android:title="@string/dialog_impulseresponse" + android:key="dsp.convolver.files" + android:defaultValue="" + android:dialogTitle="@string/dialog_impulseresponse" /> + <james.dsp.preference.SummariedTextPreferenceRanged + android:key="dsp.convolver.gain" + android:defaultValue="0.0" + android:dialogTitle="@string/dialog_convgain" + android:title="@string/dialog_convgain" + android:inputType="numberDecimal|numberSigned" /> + <james.dsp.preference.SummariedListPreference + android:defaultValue="1" + android:dialogTitle="@string/dialog_length" + android:entries="@array/quality_level" + android:entryValues="@array/quality_values" + android:title="@string/dialog_quality" + android:key="dsp.convolver.quality" /> + </PreferenceCategory> + + <PreferenceCategory android:title="@string/pref_analogmodelling_title"> + <james.dsp.preference.SummariedTextPreferenceRanged + android:key="dsp.analogmodelling.tubedrive" + android:defaultValue="2" + android:dialogTitle="@string/dialog_tubedrive" + android:title="@string/dialog_tubedrive" + android:inputType="numberDecimal" + android:digits="0123456789." /> + </PreferenceCategory> + + +</PreferenceScreen>
\ No newline at end of file diff --git a/app/src/main/res/xml/bluetooth_preferences.xml b/app/src/main/res/xml/bluetooth_preferences.xml index 20afa12..ca68b56 100644 --- a/app/src/main/res/xml/bluetooth_preferences.xml +++ b/app/src/main/res/xml/bluetooth_preferences.xml @@ -7,19 +7,8 @@ android:summaryOff="@string/pref_dsp_summary_off" android:disableDependentsState="false" android:title="@string/pref_dsp_enable"></CheckBoxPreference> - <james.dsp.preference.SummariedTextPreferenceRanged - android:key="dsp.masterswitch.limthreshold" - android:defaultValue="-0.1" - android:dialogTitle="@string/limiter_threshold" - android:title="@string/limiter_threshold" - android:inputType="numberDecimal|numberSigned" /> - <james.dsp.preference.SummariedTextPreferenceRanged - android:key="dsp.masterswitch.limrelease" - android:defaultValue="60" - android:dialogTitle="@string/limiter_release" - android:title="@string/limiter_release" - android:inputType="number" /> </PreferenceCategory> + <PreferenceCategory android:title="@string/pref_compression_title"> <CheckBoxPreference android:key="dsp.compression.enable" @@ -27,43 +16,6 @@ android:summaryOff="@string/pref_compression_summary_off" android:disableDependentsState="false" android:title="@string/pref_compression_enable"></CheckBoxPreference> - <james.dsp.preference.SummariedListPreference - android:key="dsp.compression.pregain" - android:defaultValue="12" - android:dialogTitle="@string/dialog_pregain" - android:entries="@array/compression_pregain" - android:entryValues="@array/compression_pregain_values" - android:title="@string/dialog_pregain" /> - <james.dsp.preference.SummariedTextPreferenceRanged - android:key="dsp.compression.threshold" - android:defaultValue="-60" - android:dialogTitle="@string/dialog_threshold" - android:title="@string/dialog_threshold" - android:inputType="number|numberSigned" /> - <james.dsp.preference.SummariedTextPreferenceRanged - android:key="dsp.compression.knee" - android:defaultValue="30" - android:dialogTitle="@string/dialog_knee" - android:title="@string/dialog_knee" - android:inputType="number" /> - <james.dsp.preference.SummariedTextPreferenceRanged - android:key="dsp.compression.ratio" - android:defaultValue="12" - android:dialogTitle="@string/dialog_ratio" - android:title="@string/dialog_ratio" - android:inputType="number|numberSigned" /> - <james.dsp.preference.SummariedTextPreferenceRanged - android:key="dsp.compression.attack" - android:defaultValue="0.01" - android:dialogTitle="@string/dialog_attack" - android:title="@string/dialog_attack" - android:inputType="numberDecimal" /> - <james.dsp.preference.SummariedTextPreferenceRanged - android:key="dsp.compression.release" - android:defaultValue="0.24" - android:dialogTitle="@string/dialog_release" - android:title="@string/dialog_release" - android:inputType="numberDecimal" /> </PreferenceCategory> <PreferenceCategory android:title="@string/pref_bassboost_title"> @@ -73,6 +25,7 @@ android:summaryOn="@string/pref_bassboost_summary_on" android:summaryOff="@string/pref_bassboost_summary_off" android:title="@string/pref_bassboost_enable"></CheckBoxPreference> + <james.dsp.preference.SummariedListPreference android:entries="@array/bassboost_modes" android:dialogTitle="@string/dialog_effect" @@ -80,19 +33,22 @@ android:defaultValue="600" android:title="@string/pref_effect_title" android:entryValues="@array/bassboost_modes_values" /> + </PreferenceCategory> + + <PreferenceCategory android:title="@string/pref_headset_virtual_title"> + <CheckBoxPreference + android:title="@string/pref_headset_virtual_enable" + android:key="dsp.headphone.enable" + android:summaryOn="@string/pref_headset_virtual_summary_on" + android:summaryOff="@string/pref_headset_virtual_summary_off" /> + <james.dsp.preference.SummariedListPreference - android:defaultValue="0" - android:dialogTitle="@string/dialog_filtertype" - android:entries="@array/bassboost_filtertype" - android:entryValues="@array/bassboost_filtertype_values" - android:title="@string/dialog_filtertype" - android:key="dsp.bass.filtertype" /> - <james.dsp.preference.SummariedTextPreferenceRanged - android:dialogTitle="@string/pref_effect_freq_title" - android:key="dsp.bass.freq" - android:defaultValue="55" - android:title="@string/pref_effect_freq_title" - android:inputType="number" /> + android:title="@string/pref_room_title" + android:key="dsp.headphone.preset" + android:dialogTitle="@string/dialog_reverbtime" + android:entries="@array/headphone_preset" + android:entryValues="@array/headphone_preset_values" + android:defaultValue="8"/> </PreferenceCategory> <PreferenceCategory android:title="@string/pref_equalizer_title"> @@ -103,13 +59,6 @@ android:summaryOff="@string/pref_equalizer_summary_off" android:title="@string/pref_equalizer_enable"></CheckBoxPreference> <james.dsp.preference.SummariedListPreference - android:defaultValue="0" - android:dialogTitle="@string/dialog_filtertype" - android:entries="@array/equalizer_filtertype" - android:entryValues="@array/equalizer_filtertype_values" - android:title="@string/dialog_filtertype" - android:key="dsp.tone.filtertype" /> - <james.dsp.preference.SummariedListPreference android:entries="@array/equalizer_preset_modes" android:dialogTitle="@string/pref_equalizer_preset_title" android:key="dsp.tone.eq" @@ -127,30 +76,8 @@ android:summaryOn="@string/pref_convolver_summary_on" android:summaryOff="@string/pref_convolver_summary_off" android:title="@string/pref_convolver_enable"></CheckBoxPreference> - <james.dsp.preference.SummariedListPreferenceWithCustom - android:title="@string/dialog_offlineimpulseresponseresampler" - android:key="dsp.convolver.resampler" - android:defaultValue="" - android:dialogTitle="@string/dialog_offlineimpulseresponseresampler_title" /> - <james.dsp.preference.SummariedListPreferenceWithCustom - android:title="@string/dialog_impulseresponse" - android:key="dsp.convolver.files" - android:defaultValue="" - android:dialogTitle="@string/dialog_impulseresponse" /> - <james.dsp.preference.SummariedTextPreferenceRanged - android:key="dsp.convolver.gain" - android:defaultValue="0.0" - android:dialogTitle="@string/dialog_convgain" - android:title="@string/dialog_convgain" - android:inputType="numberDecimal|numberSigned" /> - <james.dsp.preference.SummariedListPreference - android:defaultValue="1" - android:dialogTitle="@string/dialog_length" - android:entries="@array/quality_level" - android:entryValues="@array/quality_values" - android:title="@string/dialog_quality" - android:key="dsp.convolver.quality" /> </PreferenceCategory> + <PreferenceCategory android:title="@string/pref_ddc_title" android:key="dsp.ddc"> <CheckBoxPreference android:key="dsp.ddc.enable" @@ -164,6 +91,7 @@ android:defaultValue="" android:dialogTitle="@string/dialog_sosmatrix" /> </PreferenceCategory> + <PreferenceCategory android:title="@string/pref_analogmodelling_title" android:key="dsp.analogmodelling"> <CheckBoxPreference @@ -172,14 +100,8 @@ android:summaryOn="@string/pref_analogmodelling_summary_on" android:summaryOff="@string/pref_analogmodelling_summary_off" android:title="@string/pref_analogmodelling_enable"></CheckBoxPreference> - <james.dsp.preference.SummariedTextPreferenceRanged - android:key="dsp.analogmodelling.tubedrive" - android:defaultValue="2" - android:dialogTitle="@string/dialog_tubedrive" - android:title="@string/dialog_tubedrive" - android:inputType="numberDecimal" - android:digits="0123456789." /> </PreferenceCategory> + <PreferenceCategory android:title="@string/pref_headset_stereowide_title"> <CheckBoxPreference android:key="dsp.stereowide.enable" @@ -195,6 +117,7 @@ android:title="@string/dialog_stereo" android:key="dsp.stereowide.mode" /> </PreferenceCategory> + <PreferenceCategory android:title="@string/pref_headset_bs2b_title"> <CheckBoxPreference android:key="dsp.bs2b.enable" @@ -210,4 +133,10 @@ android:title="@string/dialog_bs2b" android:key="dsp.bs2b.mode" /> </PreferenceCategory> + + <PreferenceCategory android:title="@string/advanced_options"> + <Preference android:title="@string/advanced_options" + android:key="advanced.options"> + </Preference> + </PreferenceCategory> </PreferenceScreen>
\ No newline at end of file diff --git a/app/src/main/res/xml/headset_preferences.xml b/app/src/main/res/xml/headset_preferences.xml index 20afa12..ca68b56 100644 --- a/app/src/main/res/xml/headset_preferences.xml +++ b/app/src/main/res/xml/headset_preferences.xml @@ -7,19 +7,8 @@ android:summaryOff="@string/pref_dsp_summary_off" android:disableDependentsState="false" android:title="@string/pref_dsp_enable"></CheckBoxPreference> - <james.dsp.preference.SummariedTextPreferenceRanged - android:key="dsp.masterswitch.limthreshold" - android:defaultValue="-0.1" - android:dialogTitle="@string/limiter_threshold" - android:title="@string/limiter_threshold" - android:inputType="numberDecimal|numberSigned" /> - <james.dsp.preference.SummariedTextPreferenceRanged - android:key="dsp.masterswitch.limrelease" - android:defaultValue="60" - android:dialogTitle="@string/limiter_release" - android:title="@string/limiter_release" - android:inputType="number" /> </PreferenceCategory> + <PreferenceCategory android:title="@string/pref_compression_title"> <CheckBoxPreference android:key="dsp.compression.enable" @@ -27,43 +16,6 @@ android:summaryOff="@string/pref_compression_summary_off" android:disableDependentsState="false" android:title="@string/pref_compression_enable"></CheckBoxPreference> - <james.dsp.preference.SummariedListPreference - android:key="dsp.compression.pregain" - android:defaultValue="12" - android:dialogTitle="@string/dialog_pregain" - android:entries="@array/compression_pregain" - android:entryValues="@array/compression_pregain_values" - android:title="@string/dialog_pregain" /> - <james.dsp.preference.SummariedTextPreferenceRanged - android:key="dsp.compression.threshold" - android:defaultValue="-60" - android:dialogTitle="@string/dialog_threshold" - android:title="@string/dialog_threshold" - android:inputType="number|numberSigned" /> - <james.dsp.preference.SummariedTextPreferenceRanged - android:key="dsp.compression.knee" - android:defaultValue="30" - android:dialogTitle="@string/dialog_knee" - android:title="@string/dialog_knee" - android:inputType="number" /> - <james.dsp.preference.SummariedTextPreferenceRanged - android:key="dsp.compression.ratio" - android:defaultValue="12" - android:dialogTitle="@string/dialog_ratio" - android:title="@string/dialog_ratio" - android:inputType="number|numberSigned" /> - <james.dsp.preference.SummariedTextPreferenceRanged - android:key="dsp.compression.attack" - android:defaultValue="0.01" - android:dialogTitle="@string/dialog_attack" - android:title="@string/dialog_attack" - android:inputType="numberDecimal" /> - <james.dsp.preference.SummariedTextPreferenceRanged - android:key="dsp.compression.release" - android:defaultValue="0.24" - android:dialogTitle="@string/dialog_release" - android:title="@string/dialog_release" - android:inputType="numberDecimal" /> </PreferenceCategory> <PreferenceCategory android:title="@string/pref_bassboost_title"> @@ -73,6 +25,7 @@ android:summaryOn="@string/pref_bassboost_summary_on" android:summaryOff="@string/pref_bassboost_summary_off" android:title="@string/pref_bassboost_enable"></CheckBoxPreference> + <james.dsp.preference.SummariedListPreference android:entries="@array/bassboost_modes" android:dialogTitle="@string/dialog_effect" @@ -80,19 +33,22 @@ android:defaultValue="600" android:title="@string/pref_effect_title" android:entryValues="@array/bassboost_modes_values" /> + </PreferenceCategory> + + <PreferenceCategory android:title="@string/pref_headset_virtual_title"> + <CheckBoxPreference + android:title="@string/pref_headset_virtual_enable" + android:key="dsp.headphone.enable" + android:summaryOn="@string/pref_headset_virtual_summary_on" + android:summaryOff="@string/pref_headset_virtual_summary_off" /> + <james.dsp.preference.SummariedListPreference - android:defaultValue="0" - android:dialogTitle="@string/dialog_filtertype" - android:entries="@array/bassboost_filtertype" - android:entryValues="@array/bassboost_filtertype_values" - android:title="@string/dialog_filtertype" - android:key="dsp.bass.filtertype" /> - <james.dsp.preference.SummariedTextPreferenceRanged - android:dialogTitle="@string/pref_effect_freq_title" - android:key="dsp.bass.freq" - android:defaultValue="55" - android:title="@string/pref_effect_freq_title" - android:inputType="number" /> + android:title="@string/pref_room_title" + android:key="dsp.headphone.preset" + android:dialogTitle="@string/dialog_reverbtime" + android:entries="@array/headphone_preset" + android:entryValues="@array/headphone_preset_values" + android:defaultValue="8"/> </PreferenceCategory> <PreferenceCategory android:title="@string/pref_equalizer_title"> @@ -103,13 +59,6 @@ android:summaryOff="@string/pref_equalizer_summary_off" android:title="@string/pref_equalizer_enable"></CheckBoxPreference> <james.dsp.preference.SummariedListPreference - android:defaultValue="0" - android:dialogTitle="@string/dialog_filtertype" - android:entries="@array/equalizer_filtertype" - android:entryValues="@array/equalizer_filtertype_values" - android:title="@string/dialog_filtertype" - android:key="dsp.tone.filtertype" /> - <james.dsp.preference.SummariedListPreference android:entries="@array/equalizer_preset_modes" android:dialogTitle="@string/pref_equalizer_preset_title" android:key="dsp.tone.eq" @@ -127,30 +76,8 @@ android:summaryOn="@string/pref_convolver_summary_on" android:summaryOff="@string/pref_convolver_summary_off" android:title="@string/pref_convolver_enable"></CheckBoxPreference> - <james.dsp.preference.SummariedListPreferenceWithCustom - android:title="@string/dialog_offlineimpulseresponseresampler" - android:key="dsp.convolver.resampler" - android:defaultValue="" - android:dialogTitle="@string/dialog_offlineimpulseresponseresampler_title" /> - <james.dsp.preference.SummariedListPreferenceWithCustom - android:title="@string/dialog_impulseresponse" - android:key="dsp.convolver.files" - android:defaultValue="" - android:dialogTitle="@string/dialog_impulseresponse" /> - <james.dsp.preference.SummariedTextPreferenceRanged - android:key="dsp.convolver.gain" - android:defaultValue="0.0" - android:dialogTitle="@string/dialog_convgain" - android:title="@string/dialog_convgain" - android:inputType="numberDecimal|numberSigned" /> - <james.dsp.preference.SummariedListPreference - android:defaultValue="1" - android:dialogTitle="@string/dialog_length" - android:entries="@array/quality_level" - android:entryValues="@array/quality_values" - android:title="@string/dialog_quality" - android:key="dsp.convolver.quality" /> </PreferenceCategory> + <PreferenceCategory android:title="@string/pref_ddc_title" android:key="dsp.ddc"> <CheckBoxPreference android:key="dsp.ddc.enable" @@ -164,6 +91,7 @@ android:defaultValue="" android:dialogTitle="@string/dialog_sosmatrix" /> </PreferenceCategory> + <PreferenceCategory android:title="@string/pref_analogmodelling_title" android:key="dsp.analogmodelling"> <CheckBoxPreference @@ -172,14 +100,8 @@ android:summaryOn="@string/pref_analogmodelling_summary_on" android:summaryOff="@string/pref_analogmodelling_summary_off" android:title="@string/pref_analogmodelling_enable"></CheckBoxPreference> - <james.dsp.preference.SummariedTextPreferenceRanged - android:key="dsp.analogmodelling.tubedrive" - android:defaultValue="2" - android:dialogTitle="@string/dialog_tubedrive" - android:title="@string/dialog_tubedrive" - android:inputType="numberDecimal" - android:digits="0123456789." /> </PreferenceCategory> + <PreferenceCategory android:title="@string/pref_headset_stereowide_title"> <CheckBoxPreference android:key="dsp.stereowide.enable" @@ -195,6 +117,7 @@ android:title="@string/dialog_stereo" android:key="dsp.stereowide.mode" /> </PreferenceCategory> + <PreferenceCategory android:title="@string/pref_headset_bs2b_title"> <CheckBoxPreference android:key="dsp.bs2b.enable" @@ -210,4 +133,10 @@ android:title="@string/dialog_bs2b" android:key="dsp.bs2b.mode" /> </PreferenceCategory> + + <PreferenceCategory android:title="@string/advanced_options"> + <Preference android:title="@string/advanced_options" + android:key="advanced.options"> + </Preference> + </PreferenceCategory> </PreferenceScreen>
\ No newline at end of file diff --git a/app/src/main/res/xml/speaker_preferences.xml b/app/src/main/res/xml/speaker_preferences.xml index 20afa12..ca68b56 100644 --- a/app/src/main/res/xml/speaker_preferences.xml +++ b/app/src/main/res/xml/speaker_preferences.xml @@ -7,19 +7,8 @@ android:summaryOff="@string/pref_dsp_summary_off" android:disableDependentsState="false" android:title="@string/pref_dsp_enable"></CheckBoxPreference> - <james.dsp.preference.SummariedTextPreferenceRanged - android:key="dsp.masterswitch.limthreshold" - android:defaultValue="-0.1" - android:dialogTitle="@string/limiter_threshold" - android:title="@string/limiter_threshold" - android:inputType="numberDecimal|numberSigned" /> - <james.dsp.preference.SummariedTextPreferenceRanged - android:key="dsp.masterswitch.limrelease" - android:defaultValue="60" - android:dialogTitle="@string/limiter_release" - android:title="@string/limiter_release" - android:inputType="number" /> </PreferenceCategory> + <PreferenceCategory android:title="@string/pref_compression_title"> <CheckBoxPreference android:key="dsp.compression.enable" @@ -27,43 +16,6 @@ android:summaryOff="@string/pref_compression_summary_off" android:disableDependentsState="false" android:title="@string/pref_compression_enable"></CheckBoxPreference> - <james.dsp.preference.SummariedListPreference - android:key="dsp.compression.pregain" - android:defaultValue="12" - android:dialogTitle="@string/dialog_pregain" - android:entries="@array/compression_pregain" - android:entryValues="@array/compression_pregain_values" - android:title="@string/dialog_pregain" /> - <james.dsp.preference.SummariedTextPreferenceRanged - android:key="dsp.compression.threshold" - android:defaultValue="-60" - android:dialogTitle="@string/dialog_threshold" - android:title="@string/dialog_threshold" - android:inputType="number|numberSigned" /> - <james.dsp.preference.SummariedTextPreferenceRanged - android:key="dsp.compression.knee" - android:defaultValue="30" - android:dialogTitle="@string/dialog_knee" - android:title="@string/dialog_knee" - android:inputType="number" /> - <james.dsp.preference.SummariedTextPreferenceRanged - android:key="dsp.compression.ratio" - android:defaultValue="12" - android:dialogTitle="@string/dialog_ratio" - android:title="@string/dialog_ratio" - android:inputType="number|numberSigned" /> - <james.dsp.preference.SummariedTextPreferenceRanged - android:key="dsp.compression.attack" - android:defaultValue="0.01" - android:dialogTitle="@string/dialog_attack" - android:title="@string/dialog_attack" - android:inputType="numberDecimal" /> - <james.dsp.preference.SummariedTextPreferenceRanged - android:key="dsp.compression.release" - android:defaultValue="0.24" - android:dialogTitle="@string/dialog_release" - android:title="@string/dialog_release" - android:inputType="numberDecimal" /> </PreferenceCategory> <PreferenceCategory android:title="@string/pref_bassboost_title"> @@ -73,6 +25,7 @@ android:summaryOn="@string/pref_bassboost_summary_on" android:summaryOff="@string/pref_bassboost_summary_off" android:title="@string/pref_bassboost_enable"></CheckBoxPreference> + <james.dsp.preference.SummariedListPreference android:entries="@array/bassboost_modes" android:dialogTitle="@string/dialog_effect" @@ -80,19 +33,22 @@ android:defaultValue="600" android:title="@string/pref_effect_title" android:entryValues="@array/bassboost_modes_values" /> + </PreferenceCategory> + + <PreferenceCategory android:title="@string/pref_headset_virtual_title"> + <CheckBoxPreference + android:title="@string/pref_headset_virtual_enable" + android:key="dsp.headphone.enable" + android:summaryOn="@string/pref_headset_virtual_summary_on" + android:summaryOff="@string/pref_headset_virtual_summary_off" /> + <james.dsp.preference.SummariedListPreference - android:defaultValue="0" - android:dialogTitle="@string/dialog_filtertype" - android:entries="@array/bassboost_filtertype" - android:entryValues="@array/bassboost_filtertype_values" - android:title="@string/dialog_filtertype" - android:key="dsp.bass.filtertype" /> - <james.dsp.preference.SummariedTextPreferenceRanged - android:dialogTitle="@string/pref_effect_freq_title" - android:key="dsp.bass.freq" - android:defaultValue="55" - android:title="@string/pref_effect_freq_title" - android:inputType="number" /> + android:title="@string/pref_room_title" + android:key="dsp.headphone.preset" + android:dialogTitle="@string/dialog_reverbtime" + android:entries="@array/headphone_preset" + android:entryValues="@array/headphone_preset_values" + android:defaultValue="8"/> </PreferenceCategory> <PreferenceCategory android:title="@string/pref_equalizer_title"> @@ -103,13 +59,6 @@ android:summaryOff="@string/pref_equalizer_summary_off" android:title="@string/pref_equalizer_enable"></CheckBoxPreference> <james.dsp.preference.SummariedListPreference - android:defaultValue="0" - android:dialogTitle="@string/dialog_filtertype" - android:entries="@array/equalizer_filtertype" - android:entryValues="@array/equalizer_filtertype_values" - android:title="@string/dialog_filtertype" - android:key="dsp.tone.filtertype" /> - <james.dsp.preference.SummariedListPreference android:entries="@array/equalizer_preset_modes" android:dialogTitle="@string/pref_equalizer_preset_title" android:key="dsp.tone.eq" @@ -127,30 +76,8 @@ android:summaryOn="@string/pref_convolver_summary_on" android:summaryOff="@string/pref_convolver_summary_off" android:title="@string/pref_convolver_enable"></CheckBoxPreference> - <james.dsp.preference.SummariedListPreferenceWithCustom - android:title="@string/dialog_offlineimpulseresponseresampler" - android:key="dsp.convolver.resampler" - android:defaultValue="" - android:dialogTitle="@string/dialog_offlineimpulseresponseresampler_title" /> - <james.dsp.preference.SummariedListPreferenceWithCustom - android:title="@string/dialog_impulseresponse" - android:key="dsp.convolver.files" - android:defaultValue="" - android:dialogTitle="@string/dialog_impulseresponse" /> - <james.dsp.preference.SummariedTextPreferenceRanged - android:key="dsp.convolver.gain" - android:defaultValue="0.0" - android:dialogTitle="@string/dialog_convgain" - android:title="@string/dialog_convgain" - android:inputType="numberDecimal|numberSigned" /> - <james.dsp.preference.SummariedListPreference - android:defaultValue="1" - android:dialogTitle="@string/dialog_length" - android:entries="@array/quality_level" - android:entryValues="@array/quality_values" - android:title="@string/dialog_quality" - android:key="dsp.convolver.quality" /> </PreferenceCategory> + <PreferenceCategory android:title="@string/pref_ddc_title" android:key="dsp.ddc"> <CheckBoxPreference android:key="dsp.ddc.enable" @@ -164,6 +91,7 @@ android:defaultValue="" android:dialogTitle="@string/dialog_sosmatrix" /> </PreferenceCategory> + <PreferenceCategory android:title="@string/pref_analogmodelling_title" android:key="dsp.analogmodelling"> <CheckBoxPreference @@ -172,14 +100,8 @@ android:summaryOn="@string/pref_analogmodelling_summary_on" android:summaryOff="@string/pref_analogmodelling_summary_off" android:title="@string/pref_analogmodelling_enable"></CheckBoxPreference> - <james.dsp.preference.SummariedTextPreferenceRanged - android:key="dsp.analogmodelling.tubedrive" - android:defaultValue="2" - android:dialogTitle="@string/dialog_tubedrive" - android:title="@string/dialog_tubedrive" - android:inputType="numberDecimal" - android:digits="0123456789." /> </PreferenceCategory> + <PreferenceCategory android:title="@string/pref_headset_stereowide_title"> <CheckBoxPreference android:key="dsp.stereowide.enable" @@ -195,6 +117,7 @@ android:title="@string/dialog_stereo" android:key="dsp.stereowide.mode" /> </PreferenceCategory> + <PreferenceCategory android:title="@string/pref_headset_bs2b_title"> <CheckBoxPreference android:key="dsp.bs2b.enable" @@ -210,4 +133,10 @@ android:title="@string/dialog_bs2b" android:key="dsp.bs2b.mode" /> </PreferenceCategory> + + <PreferenceCategory android:title="@string/advanced_options"> + <Preference android:title="@string/advanced_options" + android:key="advanced.options"> + </Preference> + </PreferenceCategory> </PreferenceScreen>
\ No newline at end of file |
