diff options
author | Martin Brabham <optedoblivion@cyngn.com> | 2015-11-09 15:11:54 -0800 |
---|---|---|
committer | Michael Bestas <mikeioannina@gmail.com> | 2017-01-04 22:00:43 +0200 |
commit | aa0733567c3065f4a1188a2607fc13bbbd5dc1d1 (patch) | |
tree | a9237468da640e13636a4cdb6b698a93049478a9 /src/com/android/camera | |
parent | 28da641e6d643698b20db69f0f89fffee2d1c509 (diff) | |
download | android_packages_apps_Snap-aa0733567c3065f4a1188a2607fc13bbbd5dc1d1.tar.gz android_packages_apps_Snap-aa0733567c3065f4a1188a2607fc13bbbd5dc1d1.tar.bz2 android_packages_apps_Snap-aa0733567c3065f4a1188a2607fc13bbbd5dc1d1.zip |
Make panorama able to go 270 degrees in landscape
Change-Id: Icfab44c674bcc59c1d369af64985956ccaf63ccc
issue-id: SAMBAR-869
(cherry picked from commit e0ca697b97ef2d872f682d2b357d7233762cfafd)
Diffstat (limited to 'src/com/android/camera')
-rw-r--r-- | src/com/android/camera/MosaicFrameProcessor.java | 2 | ||||
-rw-r--r-- | src/com/android/camera/WideAnglePanoramaModule.java | 12 |
2 files changed, 9 insertions, 5 deletions
diff --git a/src/com/android/camera/MosaicFrameProcessor.java b/src/com/android/camera/MosaicFrameProcessor.java index cb305344d..2e027b3e3 100644 --- a/src/com/android/camera/MosaicFrameProcessor.java +++ b/src/com/android/camera/MosaicFrameProcessor.java @@ -24,7 +24,7 @@ import android.util.Log; public class MosaicFrameProcessor { private static final String TAG = "MosaicFrameProcessor"; private static final int NUM_FRAMES_IN_BUFFER = 2; - private static final int MAX_NUMBER_OF_FRAMES = 100; + private static final int MAX_NUMBER_OF_FRAMES = 100 * 2; // We need 200 frames for 360 degrees private static final int MOSAIC_RET_CODE_INDEX = 10; private static final int FRAME_COUNT_INDEX = 9; private static final int X_COORD_INDEX = 2; diff --git a/src/com/android/camera/WideAnglePanoramaModule.java b/src/com/android/camera/WideAnglePanoramaModule.java index 9c44f5c6d..424d8490d 100644 --- a/src/com/android/camera/WideAnglePanoramaModule.java +++ b/src/com/android/camera/WideAnglePanoramaModule.java @@ -69,7 +69,8 @@ public class WideAnglePanoramaModule extends BaseModule<WideAnglePanoramaUI> imp WideAnglePanoramaController, SurfaceTexture.OnFrameAvailableListener { - public static final int DEFAULT_SWEEP_ANGLE = 160; + public static final int DEFAULT_SWEEP_ANGLE_PORTRAIT = 160; + public static final int DEFAULT_SWEEP_ANGLE_LANDSCAPE = 270; public static final int DEFAULT_BLEND_MODE = Mosaic.BLENDTYPE_HORIZONTAL; public static final int DEFAULT_CAPTURE_PIXELS = 1440 * 1080; @@ -576,6 +577,9 @@ public class WideAnglePanoramaModule extends BaseModule<WideAnglePanoramaUI> imp parameters.setAutoWhiteBalanceLock(true); configureCamera(parameters); + final int sweepAngle = (mDeviceOrientation == 90 || mDeviceOrientation == 270) ? + DEFAULT_SWEEP_ANGLE_LANDSCAPE : DEFAULT_SWEEP_ANGLE_PORTRAIT; + mMosaicFrameProcessor.setProgressListener(new MosaicFrameProcessor.ProgressListener() { @Override public void onProgress(boolean isFinished, float panningRateX, float panningRateY, @@ -584,8 +588,8 @@ public class WideAnglePanoramaModule extends BaseModule<WideAnglePanoramaUI> imp float accumulatedVerticalAngle = progressY * mVerticalViewAngle; boolean isRotated = !(mDeviceOrientationAtCapture == mDeviceOrientation); if (isFinished - || (Math.abs(accumulatedHorizontalAngle) >= DEFAULT_SWEEP_ANGLE) - || (Math.abs(accumulatedVerticalAngle) >= DEFAULT_SWEEP_ANGLE) + || (Math.abs(accumulatedHorizontalAngle) >= sweepAngle) + || (Math.abs(accumulatedVerticalAngle) >= sweepAngle) || isRotated) { stopCapture(false); } else { @@ -605,7 +609,7 @@ public class WideAnglePanoramaModule extends BaseModule<WideAnglePanoramaUI> imp mUI.resetCaptureProgress(); // TODO: calculate the indicator width according to different devices to reflect the actual // angle of view of the camera device. - mUI.setMaxCaptureProgress(DEFAULT_SWEEP_ANGLE); + mUI.setMaxCaptureProgress(sweepAngle); mUI.showCaptureProgress(); mDeviceOrientationAtCapture = mDeviceOrientation; keepScreenOn(); |