sanders: dirac: Add DiracSound backend
Special thanks to vasishath for his base work on mi3 Signed-off-by: Ashwin R C <ashwin2001achu@gmail.com> Signed-off-by: utsavbalar1231 <utsavbalar1231@gmail.com> Signed-off-by: ronaxdevil <pratabidya.007@gmail.com>
This commit is contained in:
committed by
ronaxdevil
parent
fa2a05dda6
commit
abc69bde44
95
LineageActions/res/values/arrays.xml
Normal file
95
LineageActions/res/values/arrays.xml
Normal file
@@ -0,0 +1,95 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2018 The LineageOS Project
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<resources>
|
||||
<!-- Values for Dirac headset pref -->
|
||||
<string-array name="dirac_headset_pref_entries" translatable="false">
|
||||
<item>@string/dirac_headset_default</item>
|
||||
<item>@string/dirac_headset_earbuds</item>
|
||||
<item>@string/dirac_headset_in_ear_2013</item>
|
||||
<item>@string/dirac_headset_piston_1</item>
|
||||
<item>@string/dirac_headset_general</item>
|
||||
<item>@string/dirac_headset_general_inear</item>
|
||||
<item>@string/dirac_headset_piston_basic</item>
|
||||
<item>@string/dirac_headset_piston_2</item>
|
||||
<item>@string/dirac_headset_piston_standard</item>
|
||||
<item>@string/dirac_headset_headphone</item>
|
||||
<item>@string/dirac_headset_piston_youth</item>
|
||||
<item>@string/dirac_headset_piston_color</item>
|
||||
<item>@string/dirac_headset_in_ear</item>
|
||||
<item>@string/dirac_headset_capsule</item>
|
||||
<item>@string/dirac_headset_in_ear_pro</item>
|
||||
<item>@string/dirac_headset_comfort</item>
|
||||
<item>@string/dirac_headset_reduction_noise</item>
|
||||
<item>@string/dirac_headset_cancelling</item>
|
||||
<item>@string/dirac_headset_half_in_ear</item>
|
||||
<item>@string/dirac_headset_in_ear2</item>
|
||||
<item>@string/dirac_headset_earphone_basic</item>
|
||||
<item>@string/dirac_headset_earphone</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="dirac_headset_pref_values" translatable="false">
|
||||
<item>0</item>
|
||||
<item>1</item>
|
||||
<item>2</item>
|
||||
<item>3</item>
|
||||
<item>5</item>
|
||||
<item>6</item>
|
||||
<item>7</item>
|
||||
<item>8</item>
|
||||
<item>9</item>
|
||||
<item>10</item>
|
||||
<item>11</item>
|
||||
<item>12</item>
|
||||
<item>13</item>
|
||||
<item>14</item>
|
||||
<item>15</item>
|
||||
<item>16</item>
|
||||
<item>17</item>
|
||||
<item>18</item>
|
||||
<item>19</item>
|
||||
<item>20</item>
|
||||
<item>21</item>
|
||||
<item>22</item>
|
||||
<item>23</item>
|
||||
</string-array>
|
||||
|
||||
<!-- Values for Dirac preset pref -->
|
||||
<string-array name="dirac_preset_pref_entries" translatable="false">
|
||||
<item>@string/dirac_preset_default</item>
|
||||
<item>@string/dirac_preset_rock</item>
|
||||
<item>@string/dirac_preset_jazz</item>
|
||||
<item>@string/dirac_preset_pop</item>
|
||||
<item>@string/dirac_preset_classical</item>
|
||||
<item>@string/dirac_preset_hiphop</item>
|
||||
<item>@string/dirac_preset_blues</item>
|
||||
<item>@string/dirac_preset_electronic</item>
|
||||
<item>@string/dirac_preset_country</item>
|
||||
<item>@string/dirac_preset_dance</item>
|
||||
<item>@string/dirac_preset_metal</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="dirac_preset_pref_values" translatable="false">
|
||||
<item>"0,0,0,0,0,0,0"</item>
|
||||
<item>"4,2,-2,0,-2,-2,4"</item>
|
||||
<item>"0,0,0,-2,-3,0,0"</item>
|
||||
<item>"0,-3,-5,0,0,-3,0"</item>
|
||||
<item>"0,0,0,0,3,6,6"</item>
|
||||
<item>"3,3,-3,0,-3,0,2"</item>
|
||||
<item>"2,4,-6,4,0,1,2"</item>
|
||||
<item>"3,3,-1,0,-3,0,0"</item>
|
||||
<item>"0,0,-2,-2,2,2,0"</item>
|
||||
<item>"0,4,2,0,-2,-2,4"</item>
|
||||
<item>"2,0,0,-2,-4,0,0"</item>
|
||||
</string-array>
|
||||
</resources>
|
||||
@@ -96,15 +96,38 @@
|
||||
<string name="dirac_headset_title">Headset type</string>
|
||||
<string name="dirac_preset_title">Sound preset</string>
|
||||
|
||||
<!-- TODO: change the string values accordingly -->
|
||||
<string name="dirac_headset_0">Headset 0</string>
|
||||
<string name="dirac_headset_1">Headset 1</string>
|
||||
<string name="dirac_headset_2">Headset 2</string>
|
||||
<string name="dirac_headset_3">Headset 3</string>
|
||||
<string name="dirac_headset_default">Default</string>
|
||||
<string name="dirac_headset_earbuds">Mi Earbuds</string>
|
||||
<string name="dirac_headset_in_ear_2013">Mi In-Ear (2013)</string>
|
||||
<string name="dirac_headset_piston_1">Mi Piston 1</string>
|
||||
<string name="dirac_headset_general">General Earbuds</string>
|
||||
<string name="dirac_headset_general_inear">General In-Ear</string>
|
||||
<string name="dirac_headset_piston_basic">Basic Edition</string>
|
||||
<string name="dirac_headset_piston_2">Mi Piston 2</string>
|
||||
<string name="dirac_headset_piston_standard">Mi Piston 3</string>
|
||||
<string name="dirac_headset_headphone">Mi Headphone</string>
|
||||
<string name="dirac_headset_piston_youth">Youth Edition</string>
|
||||
<string name="dirac_headset_piston_color">Color Edition</string>
|
||||
<string name="dirac_headset_in_ear">Mi In-Ear</string>
|
||||
<string name="dirac_headset_capsule">Mi Capsule</string>
|
||||
<string name="dirac_headset_in_ear_pro">Mi In-Ear Pro</string>
|
||||
<string name="dirac_headset_comfort">Mi Comfort</string>
|
||||
<string name="dirac_headset_reduction_noise">Mi Noise Cancelling (Type-C)</string>
|
||||
<string name="dirac_headset_cancelling">Mi Noise Cancelling (3.5mm)</string>
|
||||
<string name="dirac_headset_half_in_ear">Mi Half In-Ear</string>
|
||||
<string name="dirac_headset_in_ear2">Mi In-Ear 2</string>
|
||||
<string name="dirac_headset_earphone_basic">Mi Earphones Basic</string>
|
||||
<string name="dirac_headset_earphone">Mi Earphones</string>
|
||||
|
||||
<!-- TODO: change the string values accordingly -->
|
||||
<string name="dirac_preset_0">Preset 0</string>
|
||||
<string name="dirac_preset_1">Preset 1</string>
|
||||
<string name="dirac_preset_2">Preset 2</string>
|
||||
<string name="dirac_preset_3">Preset 3</string>
|
||||
<string name="dirac_preset_default">Default</string>
|
||||
<string name="dirac_preset_rock">Rock</string>
|
||||
<string name="dirac_preset_jazz">Jazz</string>
|
||||
<string name="dirac_preset_pop">Pop</string>
|
||||
<string name="dirac_preset_classical">Classical</string>
|
||||
<string name="dirac_preset_hiphop">Hiphop</string>
|
||||
<string name="dirac_preset_blues">Blues</string>
|
||||
<string name="dirac_preset_electronic">Electronic</string>
|
||||
<string name="dirac_preset_country">Country</string>
|
||||
<string name="dirac_preset_dance">Dance</string>
|
||||
<string name="dirac_preset_metal">Metal</string>
|
||||
</resources>
|
||||
|
||||
@@ -15,13 +15,17 @@
|
||||
|
||||
<ListPreference
|
||||
android:key="dirac_headset_pref"
|
||||
android:entries="@array/dirac_headset_pref_entries"
|
||||
android:entryValues="@array/dirac_headset_pref_values"
|
||||
android:defaultValue="0"
|
||||
android:title="@string/dirac_headset_title"
|
||||
android:summary="%s" />
|
||||
|
||||
<ListPreference
|
||||
android:key="dirac_preset_pref"
|
||||
android:defaultValue="0"
|
||||
android:entries="@array/dirac_preset_pref_entries"
|
||||
android:entryValues="@array/dirac_preset_pref_values"
|
||||
android:defaultValue="0,0,0,0,0,0,0"
|
||||
android:title="@string/dirac_preset_title"
|
||||
android:summary="%s" />
|
||||
|
||||
|
||||
@@ -32,6 +32,7 @@ import lineageos.providers.LineageSettings;
|
||||
import org.lineageos.settings.device.util.FileUtils;
|
||||
import org.lineageos.settings.device.actions.Constants;
|
||||
import org.lineageos.settings.device.ServiceWrapper.LocalBinder;
|
||||
import org.lineageos.settings.device.dirac.DiracUtils;
|
||||
|
||||
public class BootCompletedReceiver extends BroadcastReceiver {
|
||||
static final String TAG = "LineageActions";
|
||||
@@ -56,7 +57,8 @@ public class BootCompletedReceiver extends BroadcastReceiver {
|
||||
}
|
||||
|
||||
context.startService(new Intent(context, ServiceWrapper.class));
|
||||
}
|
||||
DiracUtils.initialize();
|
||||
}
|
||||
|
||||
protected static void enableNavBar(boolean enable, Context context) {
|
||||
// LineageSettings.Global.putInt(context.getContentResolver(),
|
||||
|
||||
@@ -61,34 +61,10 @@ public class DiracSettingsFragment extends PreferenceFragment implements
|
||||
mHeadsetType = (ListPreference) findPreference(PREF_HEADSET);
|
||||
mHeadsetType.setOnPreferenceChangeListener(this);
|
||||
mHeadsetType.setEnabled(enhancerEnabled);
|
||||
// TODO: adapt to real values
|
||||
String[] headsetEntries = new String[] {
|
||||
getString(R.string.dirac_headset_0),
|
||||
getString(R.string.dirac_headset_1),
|
||||
getString(R.string.dirac_headset_2),
|
||||
getString(R.string.dirac_headset_3)
|
||||
};
|
||||
String[] headsetValues = new String[] {
|
||||
"0", "1", "2", "3"
|
||||
};
|
||||
mHeadsetType.setEntries(headsetEntries);
|
||||
mHeadsetType.setEntryValues(headsetValues);
|
||||
|
||||
mPreset = (ListPreference) findPreference(PREF_PRESET);
|
||||
mPreset.setOnPreferenceChangeListener(this);
|
||||
mPreset.setEnabled(enhancerEnabled);
|
||||
// TODO: adapt to real values
|
||||
String[] presetEntries = new String[] {
|
||||
getString(R.string.dirac_preset_0),
|
||||
getString(R.string.dirac_preset_1),
|
||||
getString(R.string.dirac_preset_2),
|
||||
getString(R.string.dirac_preset_3)
|
||||
};
|
||||
String[] presetValues = new String[] {
|
||||
"0", "1", "2", "3"
|
||||
};
|
||||
mPreset.setEntries(presetEntries);
|
||||
mPreset.setEntryValues(presetValues);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -125,10 +101,10 @@ public class DiracSettingsFragment extends PreferenceFragment implements
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
switch (preference.getKey()) {
|
||||
case PREF_HEADSET:
|
||||
// TODO: on Headset changed
|
||||
DiracUtils.setHeadsetType(Integer.parseInt(newValue.toString()));
|
||||
return true;
|
||||
case PREF_PRESET:
|
||||
// TODO: on Preset changed
|
||||
DiracUtils.setLevel(String.valueOf(newValue));
|
||||
return true;
|
||||
default: return false;
|
||||
}
|
||||
@@ -136,7 +112,7 @@ public class DiracSettingsFragment extends PreferenceFragment implements
|
||||
|
||||
@Override
|
||||
public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
|
||||
// TODO: Toggle enhancer
|
||||
DiracUtils.setMusic(isChecked);
|
||||
|
||||
mTextView.setText(getString(isChecked ? R.string.switch_bar_on : R.string.switch_bar_off));
|
||||
mSwitchBar.setActivated(isChecked);
|
||||
|
||||
@@ -0,0 +1,76 @@
|
||||
/*
|
||||
* Copyright (C) 2018 The LineageOS Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.lineageos.settings.dirac;
|
||||
|
||||
import android.media.audiofx.AudioEffect;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
public class DiracSound extends AudioEffect {
|
||||
|
||||
private static final int DIRACSOUND_PARAM_HEADSET_TYPE = 1;
|
||||
private static final int DIRACSOUND_PARAM_EQ_LEVEL = 2;
|
||||
private static final int DIRACSOUND_PARAM_MUSIC = 4;
|
||||
|
||||
private static final UUID EFFECT_TYPE_DIRACSOUND =
|
||||
UUID.fromString("e069d9e0-8329-11df-9168-0002a5d5c51b");
|
||||
private static final String TAG = "DiracSound";
|
||||
|
||||
public DiracSound(int priority, int audioSession) {
|
||||
super(EFFECT_TYPE_NULL, EFFECT_TYPE_DIRACSOUND, priority, audioSession);
|
||||
}
|
||||
|
||||
public void setMusic(int enable) throws IllegalStateException,
|
||||
IllegalArgumentException, UnsupportedOperationException {
|
||||
checkStatus(setParameter(DIRACSOUND_PARAM_MUSIC, enable));
|
||||
}
|
||||
|
||||
public int getMusic() throws IllegalStateException,
|
||||
IllegalArgumentException, UnsupportedOperationException {
|
||||
int[] value = new int[1];
|
||||
checkStatus(getParameter(DIRACSOUND_PARAM_MUSIC, value));
|
||||
return value[0];
|
||||
}
|
||||
|
||||
public void setHeadsetType(int type) throws IllegalStateException,
|
||||
IllegalArgumentException, UnsupportedOperationException {
|
||||
checkStatus(setParameter(DIRACSOUND_PARAM_HEADSET_TYPE, type));
|
||||
}
|
||||
|
||||
public int getHeadsetType() throws IllegalStateException,
|
||||
IllegalArgumentException, UnsupportedOperationException {
|
||||
int[] value = new int[1];
|
||||
checkStatus(getParameter(DIRACSOUND_PARAM_HEADSET_TYPE, value));
|
||||
return value[0];
|
||||
}
|
||||
|
||||
public void setLevel(int band, float level) throws IllegalStateException,
|
||||
IllegalArgumentException, UnsupportedOperationException {
|
||||
checkStatus(setParameter(new int[]{DIRACSOUND_PARAM_EQ_LEVEL, band},
|
||||
String.valueOf(level).getBytes()));
|
||||
}
|
||||
|
||||
public float getLevel(int band) throws IllegalStateException,
|
||||
IllegalArgumentException, UnsupportedOperationException {
|
||||
int[] param = new int[2];
|
||||
byte[] value = new byte[10];
|
||||
param[0] = DIRACSOUND_PARAM_EQ_LEVEL;
|
||||
param[1] = band;
|
||||
checkStatus(getParameter(param, value));
|
||||
return new Float(new String(value)).floatValue();
|
||||
}
|
||||
}
|
||||
@@ -17,10 +17,51 @@
|
||||
package org.lineageos.settings.dirac;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.UserHandle;
|
||||
|
||||
public final class DiracUtils {
|
||||
|
||||
protected static DiracSound mDiracSound;
|
||||
private static boolean mInitialized;
|
||||
|
||||
public static void initialize() {
|
||||
if (!mInitialized) {
|
||||
mInitialized = true;
|
||||
mDiracSound = new DiracSound(0, 0);
|
||||
mDiracSound.setMusic(mDiracSound.getMusic());
|
||||
mDiracSound.setHeadsetType(mDiracSound.getHeadsetType());
|
||||
setLevel(getLevel());
|
||||
}
|
||||
}
|
||||
|
||||
protected static void setMusic(boolean enable) {
|
||||
mDiracSound.setMusic(enable ? 1 : 0);
|
||||
}
|
||||
|
||||
protected static boolean isDiracEnabled(Context context) {
|
||||
return false;
|
||||
return mDiracSound.getMusic() == 1;
|
||||
}
|
||||
|
||||
protected static void setLevel(String preset) {
|
||||
String[] level = preset.split("\\s*,\\s*");
|
||||
|
||||
for (int band = 0; band <= level.length - 1; band++) {
|
||||
mDiracSound.setLevel(band, Float.valueOf(level[band]));
|
||||
}
|
||||
}
|
||||
|
||||
protected static String getLevel() {
|
||||
String selected = "";
|
||||
for (int band = 0; band <= 6; band++) {
|
||||
int temp = (int) mDiracSound.getLevel(band);
|
||||
selected += String.valueOf(temp);
|
||||
if (band != 6) selected += ",";
|
||||
}
|
||||
return selected;
|
||||
}
|
||||
|
||||
protected static void setHeadsetType(int paramInt) {
|
||||
mDiracSound.setHeadsetType(paramInt);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user