summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSteve Kondik <shade@chemlab.org>2014-04-15 01:30:17 -0700
committerSteve Kondik <shade@chemlab.org>2014-04-15 01:30:17 -0700
commitd5a72be6b5c7ab290a10f079c3f133ff7adbd2d2 (patch)
tree0b82be60ea9f9a8d490e85867e1a5d109d9b6c53 /src
parent922214814a91f555aac293108e640f2297c50854 (diff)
downloadandroid_packages_apps_AudioFX-d5a72be6b5c7ab290a10f079c3f133ff7adbd2d2.tar.gz
android_packages_apps_AudioFX-d5a72be6b5c7ab290a10f079c3f133ff7adbd2d2.tar.bz2
android_packages_apps_AudioFX-d5a72be6b5c7ab290a10f079c3f133ff7adbd2d2.zip
afx: Add support for standalone mode
* Allow launching from the app drawer, in which case the most recently used audio session will be activated.
Diffstat (limited to 'src')
-rw-r--r--src/com/pheelicks/visualizer/VisualizerView.java7
-rw-r--r--src/org/cyanogenmod/audiofx/ActivityMusic.java35
-rw-r--r--src/org/cyanogenmod/audiofx/ControlPanelEffect.java21
3 files changed, 54 insertions, 9 deletions
diff --git a/src/com/pheelicks/visualizer/VisualizerView.java b/src/com/pheelicks/visualizer/VisualizerView.java
index 7da1cd2..9ab5e22 100644
--- a/src/com/pheelicks/visualizer/VisualizerView.java
+++ b/src/com/pheelicks/visualizer/VisualizerView.java
@@ -100,7 +100,12 @@ public class VisualizerView extends View {
if (mVisualizer == null) {
// Create the Visualizer object and attach it to our media player.
- mVisualizer = new Visualizer(audioSessionId);
+ try {
+ mVisualizer = new Visualizer(audioSessionId);
+ } catch (Exception e) {
+ Log.e(TAG, "Error enabling visualizer!", e);
+ return;
+ }
mVisualizer.setEnabled(false);
mVisualizer.setCaptureSize(Visualizer.getCaptureSizeRange()[1]);
diff --git a/src/org/cyanogenmod/audiofx/ActivityMusic.java b/src/org/cyanogenmod/audiofx/ActivityMusic.java
index a2d1e8e..97dae56 100644
--- a/src/org/cyanogenmod/audiofx/ActivityMusic.java
+++ b/src/org/cyanogenmod/audiofx/ActivityMusic.java
@@ -115,6 +115,8 @@ public class ActivityMusic extends Activity {
private VisualizerView mVisualizer;
+ private boolean mStandalone = false;
+
// Preset Reverb fields
/**
* Array containing RSid of preset reverb names.
@@ -167,6 +169,14 @@ public class ActivityMusic extends Activity {
|| (deviceClass == BluetoothClass.Device.AUDIO_VIDEO_WEARABLE_HEADSET)) {
mIsHeadsetOn = audioManager.isWiredHeadsetOn();
}
+ } else if (action.equals(AudioEffect.ACTION_OPEN_AUDIO_EFFECT_CONTROL_SESSION)) {
+ // handle a session change
+ if (mStandalone) {
+ mAudioSession = intent.getIntExtra(AudioEffect.EXTRA_AUDIO_SESSION,
+ AudioEffect.ERROR_BAD_VALUE);
+ mCallingPackageName = intent.getStringExtra(AudioEffect.EXTRA_PACKAGE_NAME);
+ updateUI();
+ }
}
if (isHeadsetOnPrev != mIsHeadsetOn) {
updateUIHeadset(true);
@@ -199,10 +209,12 @@ public class ActivityMusic extends Activity {
// check for errors
if (mCallingPackageName == null) {
- Log.e(TAG, "Package name is null");
- setResult(RESULT_CANCELED);
- finish();
- return;
+ Log.w(TAG, "Invoked without package, using last seen package");
+ mCallingPackageName = ControlPanelEffect.getMostRecentPackage(this);
+ mAudioSession = ControlPanelEffect.getSessionForPackage(mCallingPackageName);
+ mStandalone = true;
+ } else {
+ mStandalone = false;
}
setResult(RESULT_OK);
@@ -379,8 +391,7 @@ public class ActivityMusic extends Activity {
ActionBar.LayoutParams.WRAP_CONTENT,
ActionBar.LayoutParams.WRAP_CONTENT,
Gravity.CENTER_VERTICAL | Gravity.END);
- ab.setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE | ActionBar.DISPLAY_SHOW_CUSTOM
- | ActionBar.DISPLAY_HOME_AS_UP);
+ ab.setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE | ActionBar.DISPLAY_SHOW_CUSTOM);
ab.setCustomView(mToggleSwitch, params);
}
@@ -427,6 +438,7 @@ public class ActivityMusic extends Activity {
intentFilter.addAction(BluetoothDevice.ACTION_ACL_CONNECTED);
intentFilter.addAction(BluetoothDevice.ACTION_ACL_DISCONNECTED);
intentFilter.addAction(AudioManager.ACTION_AUDIO_BECOMING_NOISY);
+ intentFilter.addAction(AudioEffect.ACTION_OPEN_AUDIO_EFFECT_CONTROL_SESSION);
registerReceiver(mReceiver, intentFilter);
// Check if wired or Bluetooth headset is connected/on
@@ -434,6 +446,17 @@ public class ActivityMusic extends Activity {
mIsHeadsetOn = (audioManager.isWiredHeadsetOn() || audioManager.isBluetoothA2dpOn());
Log.v(TAG, "onResume: mIsHeadsetOn : " + mIsHeadsetOn);
+ if (mCallingPackageName == null || mAudioSession == -1) {
+ Log.w(TAG, "Invoked without package, using last seen package");
+ mCallingPackageName = ControlPanelEffect.getMostRecentPackage(this);
+ mAudioSession = ControlPanelEffect.getSessionForPackage(mCallingPackageName);
+ mStandalone = true;
+ } else {
+ mStandalone = false;
+ }
+
+ getActionBar().setDisplayHomeAsUpEnabled(!mStandalone);
+
// Update UI
updateUI();
}
diff --git a/src/org/cyanogenmod/audiofx/ControlPanelEffect.java b/src/org/cyanogenmod/audiofx/ControlPanelEffect.java
index f028105..9a01e3a 100644
--- a/src/org/cyanogenmod/audiofx/ControlPanelEffect.java
+++ b/src/org/cyanogenmod/audiofx/ControlPanelEffect.java
@@ -112,9 +112,9 @@ public class ControlPanelEffect {
// Defaults
final static boolean GLOBAL_ENABLED_DEFAULT = false;
private final static boolean VIRTUALIZER_ENABLED_DEFAULT = true;
- private final static int VIRTUALIZER_STRENGTH_DEFAULT = 1000;
+ private final static int VIRTUALIZER_STRENGTH_DEFAULT = 0;
private final static boolean BASS_BOOST_ENABLED_DEFAULT = true;
- private final static int BASS_BOOST_STRENGTH_DEFAULT = 667;
+ private final static int BASS_BOOST_STRENGTH_DEFAULT = 0;
private final static boolean PRESET_REVERB_ENABLED_DEFAULT = true;
private final static int PRESET_REVERB_CURRENT_PRESET_DEFAULT = 0; // None
private static int mPrevBassBoostStrength = 0;
@@ -1026,6 +1026,10 @@ public class ControlPanelEffect {
Log.v(TAG, "openSession(" + context + ", " + packageName + ", " + audioSession + ")");
final String methodTag = "openSession: ";
+ // store the most recent package name in the global prefs
+ final SharedPreferences global = context.getSharedPreferences("global", Context.MODE_PRIVATE);
+ global.edit().putString("current_package", packageName).commit();
+
// init preferences
final SharedPreferences prefs = context.getSharedPreferences(packageName,
Context.MODE_PRIVATE);
@@ -1487,4 +1491,17 @@ public class ControlPanelEffect {
}
return presetReverbEffect;
}
+
+ public static int getSessionForPackage(String packageName) {
+ int session = -1;
+ if (mPackageSessions.containsKey(packageName)) {
+ session = mPackageSessions.get(packageName);
+ }
+ return session;
+ }
+
+ public static String getMostRecentPackage(Context context) {
+ SharedPreferences prefs = context.getSharedPreferences("global", Context.MODE_PRIVATE);
+ return prefs.getString("current_package", null);
+ }
}