summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLikai Ding <likaid@codeaurora.org>2013-08-14 17:43:38 +0800
committerXiaojing Zhang <zhangx@codeaurora.org>2014-11-04 20:37:56 -0800
commit60e2e3ff9ee15841099cd057895db838bda0a8d9 (patch)
treeafadc19425e04c04bfa6cfbd3ed952ce0f2e581f /src
parent3d1a38b32c8508c916ec333db16e393c5d5ca96b (diff)
downloadandroid_packages_apps_Gallery2-60e2e3ff9ee15841099cd057895db838bda0a8d9.tar.gz
android_packages_apps_Gallery2-60e2e3ff9ee15841099cd057895db838bda0a8d9.tar.bz2
android_packages_apps_Gallery2-60e2e3ff9ee15841099cd057895db838bda0a8d9.zip
Gallery2: support stereo/single track play mode
User can select stereo/single track play mode. Change-Id: I8225739815484f3c288823802f68478cb457725e
Diffstat (limited to 'src')
-rw-r--r--src/com/android/gallery3d/app/MovieActivity.java7
-rw-r--r--src/org/codeaurora/gallery3d/ext/ActivityHooker.java24
-rw-r--r--src/org/codeaurora/gallery3d/ext/ActivityHookerGroup.java48
-rw-r--r--src/org/codeaurora/gallery3d/ext/IActivityHooker.java31
-rwxr-xr-xsrc/org/codeaurora/gallery3d/video/ExtensionHelper.java4
-rw-r--r--[-rwxr-xr-x]src/org/codeaurora/gallery3d/video/StereoAudioHooker.java (renamed from src/com/qcom/gallery3d/video/StereoAudioHooker.java)57
6 files changed, 145 insertions, 26 deletions
diff --git a/src/com/android/gallery3d/app/MovieActivity.java b/src/com/android/gallery3d/app/MovieActivity.java
index 5152e5b39..937d309bc 100644
--- a/src/com/android/gallery3d/app/MovieActivity.java
+++ b/src/com/android/gallery3d/app/MovieActivity.java
@@ -196,6 +196,8 @@ public class MovieActivity extends Activity {
mMovieHooker.setParameter(null, mPlayer.getMoviePlayerExt());
mMovieHooker.setParameter(null, mMovieItem);
mMovieHooker.setParameter(null, mPlayer.getVideoSurface());
+ mMovieHooker.onCreate(savedInstanceState);
+
// Determine available/supported effects
final Descriptor[] effects = AudioEffect.queryEffects();
for (final Descriptor effect : effects) {
@@ -447,6 +449,7 @@ public class MovieActivity extends Activity {
.requestAudioFocus(null, AudioManager.STREAM_MUSIC,
AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
super.onStart();
+ mMovieHooker.onStart();
}
@Override
@@ -454,6 +457,7 @@ public class MovieActivity extends Activity {
((AudioManager) getSystemService(AUDIO_SERVICE))
.abandonAudioFocus(null);
super.onStop();
+ mMovieHooker.onStop();
}
@Override
@@ -465,6 +469,7 @@ public class MovieActivity extends Activity {
// Do nothing
}
super.onPause();
+ mMovieHooker.onPause();
}
@Override
@@ -478,6 +483,7 @@ public class MovieActivity extends Activity {
registerReceiver(mReceiver, intentFilter);
}
super.onResume();
+ mMovieHooker.onResume();
}
@Override
@@ -498,6 +504,7 @@ public class MovieActivity extends Activity {
mVirtualizerEffect.release();
}
super.onDestroy();
+ mMovieHooker.onDestroy();
}
@Override
diff --git a/src/org/codeaurora/gallery3d/ext/ActivityHooker.java b/src/org/codeaurora/gallery3d/ext/ActivityHooker.java
index 039c5a04e..65761ff23 100644
--- a/src/org/codeaurora/gallery3d/ext/ActivityHooker.java
+++ b/src/org/codeaurora/gallery3d/ext/ActivityHooker.java
@@ -52,6 +52,30 @@ public class ActivityHooker implements IActivityHooker {
}
@Override
+ public void onCreate(Bundle savedInstanceState) {
+ }
+
+ @Override
+ public void onStart() {
+ }
+
+ @Override
+ public void onResume() {
+ }
+
+ @Override
+ public void onPause() {
+ }
+
+ @Override
+ public void onStop() {
+ }
+
+ @Override
+ public void onDestroy() {
+ }
+
+ @Override
public boolean onCreateOptionsMenu(Menu menu) {
return false;
}
diff --git a/src/org/codeaurora/gallery3d/ext/ActivityHookerGroup.java b/src/org/codeaurora/gallery3d/ext/ActivityHookerGroup.java
index 2e24aa688..4bf8616e7 100644
--- a/src/org/codeaurora/gallery3d/ext/ActivityHookerGroup.java
+++ b/src/org/codeaurora/gallery3d/ext/ActivityHookerGroup.java
@@ -46,6 +46,54 @@ public class ActivityHookerGroup extends ActivityHooker {
}
@Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ for (IActivityHooker hook : mHooks) {
+ hook.onCreate(savedInstanceState);
+ }
+ }
+
+ @Override
+ public void onStart() {
+ super.onStart();
+ for (IActivityHooker hook : mHooks) {
+ hook.onStart();
+ }
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ for (IActivityHooker hook : mHooks) {
+ hook.onResume();
+ }
+ }
+
+ @Override
+ public void onPause() {
+ super.onPause();
+ for (IActivityHooker hook : mHooks) {
+ hook.onPause();
+ }
+ }
+
+ @Override
+ public void onStop() {
+ super.onStop();
+ for (IActivityHooker hook : mHooks) {
+ hook.onStop();
+ }
+ }
+
+ @Override
+ public void onDestroy() {
+ super.onDestroy();
+ for (IActivityHooker hook : mHooks) {
+ hook.onDestroy();
+ }
+ }
+
+ @Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
boolean handle = false;
diff --git a/src/org/codeaurora/gallery3d/ext/IActivityHooker.java b/src/org/codeaurora/gallery3d/ext/IActivityHooker.java
index fa1b5c0a0..a83799626 100644
--- a/src/org/codeaurora/gallery3d/ext/IActivityHooker.java
+++ b/src/org/codeaurora/gallery3d/ext/IActivityHooker.java
@@ -26,7 +26,36 @@ import android.view.MenuItem;
* //do something return true; default: return false; } } }
*/
public interface IActivityHooker {
-
+ /**
+ * Will be called in Host Activity.onCreate(Bundle savedInstanceState)
+ * @param savedInstanceState
+ */
+ void onCreate(Bundle savedInstanceState);
+ /**
+ * Will be called in Host Activity.onStart()
+ */
+ void onStart();
+ /**
+ * Will be called in Host Activity.onStop()
+ */
+ void onStop();
+ /**
+ * Will be called in Host Activity.onPause()
+ */
+ void onPause();
+ /**
+ * Will be called in Host Activity.onResume()
+ */
+ void onResume();
+ /**
+ * Will be called in Host Activity.onDestroy()
+ */
+ void onDestroy();
+ /**
+ * Will be called in Host Activity.onCreateOptionsMenu(Menu menu)
+ * @param menu
+ * @return
+ */
/**
* Will be called in Host Activity.onCreateOptionsMenu(Menu menu)
*
diff --git a/src/org/codeaurora/gallery3d/video/ExtensionHelper.java b/src/org/codeaurora/gallery3d/video/ExtensionHelper.java
index cef0f96d7..7694cbfff 100755
--- a/src/org/codeaurora/gallery3d/video/ExtensionHelper.java
+++ b/src/org/codeaurora/gallery3d/video/ExtensionHelper.java
@@ -17,10 +17,14 @@ public class ExtensionHelper {
final ActivityHookerGroup group = new ActivityHookerGroup();
boolean loop = context.getResources().getBoolean(R.bool.loop);
+ boolean stereo = context.getResources().getBoolean(R.bool.stereo);
if (loop == true) {
group.addHooker(new LoopVideoHooker()); // add it for common feature.
}
+ if (stereo == true) {
+ group.addHooker(new StereoAudioHooker()); // add it for common feature.
+ }
return group;
}
diff --git a/src/com/qcom/gallery3d/video/StereoAudioHooker.java b/src/org/codeaurora/gallery3d/video/StereoAudioHooker.java
index 72f3cb255..cb52f5972 100755..100644
--- a/src/com/qcom/gallery3d/video/StereoAudioHooker.java
+++ b/src/org/codeaurora/gallery3d/video/StereoAudioHooker.java
@@ -1,65 +1,70 @@
-package com.qcom.gallery3d.video;
+package org.codeaurora.gallery3d.video;
import android.content.Context;
import android.media.AudioManager;
+import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import com.android.gallery3d.R;
-import com.qcom.gallery3d.ext.QcomLog;
public class StereoAudioHooker extends MovieHooker {
private static final String TAG = "StereoAudioHooker";
private static final boolean LOG = true;
-
+
private static final int MENU_STEREO_AUDIO = 1;
private MenuItem mMenuStereoAudio;
-
+
private static final String KEY_STEREO = "EnableStereoOutput";
private boolean mSystemStereoAudio;
private boolean mCurrentStereoAudio;
private boolean mIsInitedStereoAudio;
private AudioManager mAudioManager;
-
+
@Override
public void onStart() {
super.onStart();
enableStereoAudio();
}
+
@Override
public void onStop() {
super.onStop();
restoreStereoAudio();
}
+
@Override
public boolean onCreateOptionsMenu(final Menu menu) {
super.onCreateOptionsMenu(menu);
- mMenuStereoAudio = menu.add(0, getMenuActivityId(MENU_STEREO_AUDIO), 0, R.string.single_track);
+ mMenuStereoAudio = menu.add(0, getMenuActivityId(MENU_STEREO_AUDIO), 0,
+ R.string.single_track);
return true;
}
+
@Override
public boolean onPrepareOptionsMenu(final Menu menu) {
super.onPrepareOptionsMenu(menu);
updateStereoAudioIcon();
return true;
}
+
@Override
public boolean onOptionsItemSelected(final MenuItem item) {
super.onOptionsItemSelected(item);
- switch(getMenuOriginalId(item.getItemId())) {
- case MENU_STEREO_AUDIO:
- mCurrentStereoAudio = !mCurrentStereoAudio;
- setStereoAudio(mCurrentStereoAudio);
- return true;
- default:
- return false;
+ switch (getMenuOriginalId(item.getItemId())) {
+ case MENU_STEREO_AUDIO:
+ mCurrentStereoAudio = !mCurrentStereoAudio;
+ setStereoAudio(mCurrentStereoAudio);
+ return true;
+ default:
+ return false;
}
}
-
+
private boolean getStereoAudio() {
boolean isstereo = false;
if (mAudioManager == null) {
- mAudioManager = (AudioManager)getContext().getSystemService(Context.AUDIO_SERVICE);
+ mAudioManager = (AudioManager) getContext().getSystemService(Context.AUDIO_SERVICE);
}
final String stereo = mAudioManager.getParameters(KEY_STEREO);
final String key = KEY_STEREO + "=1";
@@ -69,35 +74,38 @@ public class StereoAudioHooker extends MovieHooker {
isstereo = false;
}
if (LOG) {
- QcomLog.v(TAG, "getStereoAudio() isstereo=" + isstereo + ", stereo=" + stereo + ", key=" + key);
+ Log.v(TAG, "getStereoAudio() isstereo=" + isstereo + ", stereo=" + stereo
+ + ", key=" + key);
}
return isstereo;
}
-
+
private void setStereoAudio(final boolean flag) {
final String value = KEY_STEREO + "=" + (flag ? "1" : "0");
if (mAudioManager == null) {
- mAudioManager = (AudioManager)getContext().getSystemService(Context.AUDIO_SERVICE);
+ mAudioManager = (AudioManager) getContext().getSystemService(Context.AUDIO_SERVICE);
}
mAudioManager.setParameters(value);
if (LOG) {
- QcomLog.v(TAG, "setStereoAudio(" + flag + ") value=" + value);
+ Log.v(TAG, "setStereoAudio(" + flag + ") value=" + value);
}
}
-
+
private void updateStereoAudioIcon() {
if (mMenuStereoAudio != null) {
if (mCurrentStereoAudio) {
mMenuStereoAudio.setTitle(R.string.single_track);
+ mMenuStereoAudio.setIcon(R.drawable.ic_menu_single_track);
} else {
mMenuStereoAudio.setTitle(R.string.stereo);
+ mMenuStereoAudio.setIcon(R.drawable.ic_menu_stereo);
}
}
}
-
+
private void enableStereoAudio() {
if (LOG) {
- QcomLog.v(TAG, "enableStereoAudio() mIsInitedStereoAudio=" + mIsInitedStereoAudio
+ Log.v(TAG, "enableStereoAudio() mIsInitedStereoAudio=" + mIsInitedStereoAudio
+ ", mCurrentStereoAudio=" + mCurrentStereoAudio);
}
mSystemStereoAudio = getStereoAudio();
@@ -105,13 +113,12 @@ public class StereoAudioHooker extends MovieHooker {
mCurrentStereoAudio = mSystemStereoAudio;
mIsInitedStereoAudio = true;
} else {
- //if activity is not from onCreate()
- //restore old stereo type
+ // restore old stereo type
setStereoAudio(mCurrentStereoAudio);
}
updateStereoAudioIcon();
}
-
+
private void restoreStereoAudio() {
setStereoAudio(mSystemStereoAudio);
}