am 69e431c4: am f2ef3b51: Add a menu item to enable the audio effects panel, if one is present on the device.
Merge commit '69e431c461dc2c669839b1b5eb696c706f84620d'
* commit '69e431c461dc2c669839b1b5eb696c706f84620d':
Add a menu item to enable the audio effects panel, if one is present
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 21928c6..d95a2ce 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -296,5 +296,8 @@
<!-- Text shown on widget when first loaded -->
<string name="widget_initial_text">Touch to select music.</string>
+
+ <!-- Menu text for the item controlling the audio effects panel [CHAR LIMIT=15] -->
+ <string name="effectspanel">Sound effects</string>
</resources>
diff --git a/src/com/android/music/IMediaPlaybackService.aidl b/src/com/android/music/IMediaPlaybackService.aidl
index 7b069e7..232abf2 100644
--- a/src/com/android/music/IMediaPlaybackService.aidl
+++ b/src/com/android/music/IMediaPlaybackService.aidl
@@ -51,7 +51,6 @@
void setRepeatMode(int repeatmode);
int getRepeatMode();
int getMediaMountedCount();
- void setAudioSessionId(int sessionId);
int getAudioSessionId();
}
diff --git a/src/com/android/music/MediaPlaybackActivity.java b/src/com/android/music/MediaPlaybackActivity.java
index 782b116..c90c49b 100644
--- a/src/com/android/music/MediaPlaybackActivity.java
+++ b/src/com/android/music/MediaPlaybackActivity.java
@@ -31,9 +31,11 @@
import android.content.Intent;
import android.content.IntentFilter;
import android.content.ServiceConnection;
+import android.content.pm.ResolveInfo;
import android.content.res.Configuration;
import android.database.Cursor;
import android.graphics.Bitmap;
+import android.media.audiofx.AudioEffect;
import android.media.AudioManager;
import android.net.Uri;
import android.os.Bundle;
@@ -525,6 +527,12 @@
.setIcon(R.drawable.ic_menu_set_as_ringtone);
menu.add(1, DELETE_ITEM, 0, R.string.delete_item)
.setIcon(R.drawable.ic_menu_delete);
+
+ Intent i = new Intent(AudioEffect.ACTION_DISPLAY_AUDIO_EFFECT_CONTROL_PANEL);
+ if (getPackageManager().resolveActivity(i, 0) != null) {
+ menu.add(0, EFFECTS_PANEL, 0, R.string.effectspanel);
+ }
+
return true;
}
return false;
@@ -611,6 +619,13 @@
}
return true;
}
+
+ case EFFECTS_PANEL: {
+ Intent i = new Intent(AudioEffect.ACTION_DISPLAY_AUDIO_EFFECT_CONTROL_PANEL);
+ i.putExtra(AudioEffect.EXTRA_AUDIO_SESSION, mService.getAudioSessionId());
+ startActivityForResult(i, EFFECTS_PANEL);
+ return true;
+ }
}
} catch (RemoteException ex) {
}
diff --git a/src/com/android/music/MediaPlaybackService.java b/src/com/android/music/MediaPlaybackService.java
index eabd80d..e43af1f 100644
--- a/src/com/android/music/MediaPlaybackService.java
+++ b/src/com/android/music/MediaPlaybackService.java
@@ -32,6 +32,7 @@
import android.content.SharedPreferences.Editor;
import android.database.Cursor;
import android.database.sqlite.SQLiteException;
+import android.media.audiofx.AudioEffect;
import android.media.AudioManager;
import android.media.AudioManager.OnAudioFocusChangeListener;
import android.media.MediaPlayer;
@@ -43,8 +44,6 @@
import android.os.SystemClock;
import android.os.PowerManager.WakeLock;
import android.provider.MediaStore;
-import android.telephony.PhoneStateListener;
-import android.telephony.TelephonyManager;
import android.util.Log;
import android.widget.RemoteViews;
import android.widget.Toast;
@@ -318,6 +317,10 @@
Log.e(LOGTAG, "Service being destroyed while still playing.");
}
// release all MediaPlayer resources, including the native player and wakelocks
+ Intent i = new Intent(AudioEffect.ACTION_CLOSE_AUDIO_EFFECT_CONTROL_SESSION);
+ i.putExtra(AudioEffect.EXTRA_AUDIO_SESSION, getAudioSessionId());
+ i.putExtra(AudioEffect.EXTRA_PACKAGE_NAME, getPackageName());
+ sendBroadcast(i);
mPlayer.release();
mPlayer = null;
@@ -663,7 +666,7 @@
stopSelf(mServiceStartId);
}
};
-
+
/**
* Called when we receive a ACTION_MEDIA_EJECT notification.
*
@@ -1687,27 +1690,6 @@
mMediaPlayer.setWakeMode(MediaPlaybackService.this, PowerManager.PARTIAL_WAKE_LOCK);
}
- public void setDataSourceAsync(String path) {
- try {
- mMediaPlayer.reset();
- mMediaPlayer.setDataSource(path);
- mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
- mMediaPlayer.prepareAsync();
- } catch (IOException ex) {
- // TODO: notify the user why the file couldn't be opened
- mIsInitialized = false;
- return;
- } catch (IllegalArgumentException ex) {
- // TODO: notify the user why the file couldn't be opened
- mIsInitialized = false;
- return;
- }
- mMediaPlayer.setOnCompletionListener(listener);
- mMediaPlayer.setOnErrorListener(errorListener);
-
- mIsInitialized = true;
- }
-
public void setDataSource(String path) {
try {
mMediaPlayer.reset();
@@ -1730,7 +1712,10 @@
}
mMediaPlayer.setOnCompletionListener(listener);
mMediaPlayer.setOnErrorListener(errorListener);
-
+ Intent i = new Intent(AudioEffect.ACTION_OPEN_AUDIO_EFFECT_CONTROL_SESSION);
+ i.putExtra(AudioEffect.EXTRA_AUDIO_SESSION, getAudioSessionId());
+ i.putExtra(AudioEffect.EXTRA_PACKAGE_NAME, getPackageName());
+ sendBroadcast(i);
mIsInitialized = true;
}
@@ -1927,9 +1912,6 @@
public int getMediaMountedCount() {
return mService.get().getMediaMountedCount();
}
- public void setAudioSessionId(int sessionId) {
- mService.get().setAudioSessionId(sessionId);
- }
public int getAudioSessionId() {
return mService.get().getAudioSessionId();
}
diff --git a/src/com/android/music/MusicUtils.java b/src/com/android/music/MusicUtils.java
index b81b24b..b770557 100644
--- a/src/com/android/music/MusicUtils.java
+++ b/src/com/android/music/MusicUtils.java
@@ -87,7 +87,8 @@
public final static int DELETE_ITEM = 10;
public final static int SCAN_DONE = 11;
public final static int QUEUE = 12;
- public final static int CHILD_MENU_BASE = 13; // this should be the last item
+ public final static int EFFECTS_PANEL = 13;
+ public final static int CHILD_MENU_BASE = 14; // this should be the last item
}
public static String makeAlbumsLabel(Context context, int numalbums, int numsongs, boolean isUnknown) {