summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Kondik <shade@chemlab.org>2013-12-23 18:03:46 -0800
committerGerrit Code Review <gerrit@cyanogenmod.org>2016-01-13 11:51:21 -0800
commit0ad40951f7ab72218a2a486f92586dfe1a20c46d (patch)
treebb98ab4f61d9db9b8da36220601f314d8e744aa2
parent7f73524a46ab84c998028bb11e4a94df6ea3380b (diff)
downloadandroid_packages_apps_Snap-0ad40951f7ab72218a2a486f92586dfe1a20c46d.tar.gz
android_packages_apps_Snap-0ad40951f7ab72218a2a486f92586dfe1a20c46d.tar.bz2
android_packages_apps_Snap-0ad40951f7ab72218a2a486f92586dfe1a20c46d.zip
Snap: Support for HTC's HDR mode
* HDR was never actually working on CM because we did not instruct the camera to take all exposures. The HAL tells us that we'll get one JPEG, but we should snap 3 times. We handle this behavior in the framework now, but we should honor the num-jpegs-per-shutter value in the JPEG callback. Change-Id: I7124bf08985ae23b21ac4e294fb889ac4106946b
-rw-r--r--src/com/android/camera/PhotoModule.java12
-rw-r--r--src/com/android/camera/util/CameraUtil.java13
2 files changed, 13 insertions, 12 deletions
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java
index 359d96773..2a7d6b9cf 100644
--- a/src/com/android/camera/PhotoModule.java
+++ b/src/com/android/camera/PhotoModule.java
@@ -1211,11 +1211,7 @@ public class PhotoModule
if(mSnapshotMode == CameraInfo.CAMERA_SUPPORT_MODE_ZSL) {
Log.v(TAG, "JpegPictureCallback : in zslmode");
mParameters = mCameraDevice.getParameters();
- if (CameraUtil.isBurstSupported(mParameters)) {
- mBurstSnapNum = mParameters.getInt("num-snaps-per-shutter");
- } else {
- mBurstSnapNum = 1;
- }
+ mBurstSnapNum = CameraUtil.getNumSnapsPerShutter(mParameters);
}
Log.v(TAG, "JpegPictureCallback: Received = " + mReceivedSnapNum +
"Burst count = " + mBurstSnapNum);
@@ -1619,11 +1615,7 @@ public class PhotoModule
mParameters = mCameraDevice.getParameters();
}
- if (CameraUtil.isBurstSupported(mParameters)) {
- mBurstSnapNum = mParameters.getInt("num-snaps-per-shutter");
- } else {
- mBurstSnapNum = 1;
- }
+ mBurstSnapNum = CameraUtil.getNumSnapsPerShutter(mParameters);
mReceivedSnapNum = 0;
mPreviewRestartSupport = SystemProperties.getBoolean(
PERSIST_PREVIEW_RESTART, false);
diff --git a/src/com/android/camera/util/CameraUtil.java b/src/com/android/camera/util/CameraUtil.java
index 9d851e841..0fbc1ee34 100644
--- a/src/com/android/camera/util/CameraUtil.java
+++ b/src/com/android/camera/util/CameraUtil.java
@@ -40,6 +40,7 @@ import android.net.Uri;
import android.os.Handler;
import android.os.ParcelFileDescriptor;
import android.telephony.TelephonyManager;
+import android.text.TextUtils;
import android.util.DisplayMetrics;
import android.util.Log;
import android.util.TypedValue;
@@ -176,8 +177,16 @@ public class CameraUtil {
return (params.get(key) != null && !"null".equals(params.get(key)));
}
- public static boolean isBurstSupported(Parameters params) {
- return isSupported(params, "num-snaps-per-shutter");
+ public static int getNumSnapsPerShutter(Parameters params) {
+ String numJpegs = params.get("num-jpegs-per-shutter");
+ if (!TextUtils.isEmpty(numJpegs)) {
+ return Integer.valueOf(numJpegs);
+ }
+ String numSnaps = params.get("num-snaps-per-shutter");
+ if (!TextUtils.isEmpty(numSnaps)) {
+ return Integer.valueOf(numSnaps);
+ }
+ return 1;
}
// Private intent extras. Test only.