From 0ad40951f7ab72218a2a486f92586dfe1a20c46d Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Mon, 23 Dec 2013 18:03:46 -0800 Subject: 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 --- src/com/android/camera/PhotoModule.java | 12 ++---------- src/com/android/camera/util/CameraUtil.java | 13 +++++++++++-- 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. -- cgit v1.2.3