diff options
author | jt1134 <jt1134@gmail.com> | 2014-01-04 20:55:04 -0600 |
---|---|---|
committer | Michael Bestas <mikeioannina@gmail.com> | 2017-01-04 21:57:37 +0200 |
commit | 63f350e5654fe9941f4f66597f03a0ea5e03d074 (patch) | |
tree | 07270f7dee14ca4b824de638a56e4261f0262b4b | |
parent | 9cc26c0d16af16f17a0d6fdc3b1b549de521a72b (diff) | |
download | android_packages_apps_Snap-63f350e5654fe9941f4f66597f03a0ea5e03d074.tar.gz android_packages_apps_Snap-63f350e5654fe9941f4f66597f03a0ea5e03d074.tar.bz2 android_packages_apps_Snap-63f350e5654fe9941f4f66597f03a0ea5e03d074.zip |
Camera2: implement exposure compensation settings in video mode
Change-Id: I83a2675e109dc7924cdd9240b26051ac218f532a
-rw-r--r-- | res/xml/video_preferences.xml | 5 | ||||
-rw-r--r-- | src/com/android/camera/VideoMenu.java | 2 | ||||
-rw-r--r-- | src/com/android/camera/VideoModule.java | 23 | ||||
-rw-r--r-- | src/com/android/camera/VideoUI.java | 2 |
4 files changed, 32 insertions, 0 deletions
diff --git a/res/xml/video_preferences.xml b/res/xml/video_preferences.xml index 0c239d14c..2e307f300 100644 --- a/res/xml/video_preferences.xml +++ b/res/xml/video_preferences.xml @@ -64,6 +64,11 @@ camera:labelList="@array/pref_camera_video_flashmode_labels" camera:entryValues="@array/pref_camera_video_flashmode_entryvalues"/> <IconListPreference + camera:key="pref_camera_exposure_key" + camera:defaultValue="@string/pref_exposure_default" + camera:title="@string/pref_exposure_title" + camera:singleIcon="@drawable/ic_exposure_holo_light" /> + <IconListPreference camera:key="pref_camera_whitebalance_key" camera:defaultValue="@string/pref_camera_whitebalance_default" camera:title="@string/pref_camera_whitebalance_title" diff --git a/src/com/android/camera/VideoMenu.java b/src/com/android/camera/VideoMenu.java index a10045ba0..aaa7b0ede 100644 --- a/src/com/android/camera/VideoMenu.java +++ b/src/com/android/camera/VideoMenu.java @@ -114,6 +114,7 @@ public class VideoMenu extends MenuController CameraSettings.KEY_VIDEO_QUALITY, CameraSettings.KEY_RECORD_LOCATION, CameraSettings.KEY_CAMERA_SAVEPATH, + CameraSettings.KEY_EXPOSURE, CameraSettings.KEY_WHITE_BALANCE, CameraSettings.KEY_VIDEO_HIGH_FRAME_RATE, CameraSettings.KEY_DIS @@ -123,6 +124,7 @@ public class VideoMenu extends MenuController CameraSettings.KEY_VIDEO_QUALITY, CameraSettings.KEY_RECORD_LOCATION, CameraSettings.KEY_CAMERA_SAVEPATH, + CameraSettings.KEY_EXPOSURE, CameraSettings.KEY_WHITE_BALANCE, CameraSettings.KEY_FACE_DETECTION, CameraSettings.KEY_VIDEO_HIGH_FRAME_RATE, diff --git a/src/com/android/camera/VideoModule.java b/src/com/android/camera/VideoModule.java index 888d29572..315a4897f 100644 --- a/src/com/android/camera/VideoModule.java +++ b/src/com/android/camera/VideoModule.java @@ -495,6 +495,8 @@ public class VideoModule implements CameraModule, mPreferences.setLocalId(mActivity, mCameraId); CameraSettings.upgradeLocalPreferences(mPreferences.getLocal()); + // we need to reset exposure for the preview + resetExposureCompensation(); mOrientationManager = new OrientationManager(mActivity); @@ -1054,6 +1056,16 @@ public class VideoModule implements CameraModule, ". mDesiredPreviewHeight=" + mDesiredPreviewHeight); } + private void resetExposureCompensation() { + String value = mPreferences.getString(CameraSettings.KEY_EXPOSURE, + CameraSettings.EXPOSURE_DEFAULT_VALUE); + if (!CameraSettings.EXPOSURE_DEFAULT_VALUE.equals(value)) { + Editor editor = mPreferences.edit(); + editor.putString(CameraSettings.KEY_EXPOSURE, "0"); + editor.apply(); + } + } + void setPreviewFrameLayoutCameraOrientation(){ CameraInfo info = CameraHolder.instance().getCameraInfo()[mCameraId]; @@ -1108,6 +1120,8 @@ public class VideoModule implements CameraModule, setMute(mIsMute, false); } initializeVideoControl(); + resetExposureCompensation(); + showVideoSnapshotUI(false); installIntentFilter(); @@ -2619,6 +2633,15 @@ public class VideoModule implements CameraModule, if (CameraUtil.isSupported(mParameters, "video-size")) { mParameters.set("video-size", recordSize); } + // Set exposure compensation + int value = CameraSettings.readExposure(mPreferences); + int max = mParameters.getMaxExposureCompensation(); + int min = mParameters.getMinExposureCompensation(); + if (value >= min && value <= max) { + mParameters.setExposureCompensation(value); + } else { + Log.w(TAG, "invalid exposure range: " + value); + } // Set white balance parameter. String whiteBalance = mPreferences.getString( CameraSettings.KEY_WHITE_BALANCE, diff --git a/src/com/android/camera/VideoUI.java b/src/com/android/camera/VideoUI.java index de3d1cc8a..2454a012f 100644 --- a/src/com/android/camera/VideoUI.java +++ b/src/com/android/camera/VideoUI.java @@ -718,6 +718,8 @@ public class VideoUI implements PieRenderer.PieListener, } public void updateOnScreenIndicators(Parameters param, ComboPreferences prefs) { + mOnScreenIndicators.updateExposureOnScreenIndicator(param, + CameraSettings.readExposure(prefs)); mOnScreenIndicators.updateFlashOnScreenIndicator(param.getFlashMode()); boolean location = RecordLocationPreference.get(prefs); mOnScreenIndicators.updateLocationIndicator(location); |