diff options
author | jt1134 <jt1134@gmail.com> | 2014-01-04 20:55:04 -0600 |
---|---|---|
committer | Chippa-a <vusal1372@gmail.com> | 2019-10-25 15:55:25 +0300 |
commit | 4ca2bae2b778f2ad6196c3b2fc67588b58de04b9 (patch) | |
tree | 15b5edd135246c5dd891e7ec9be777335a34f227 | |
parent | 6ab4abaeba483e1badd41c92034f868578016fdc (diff) | |
download | android_packages_apps_Snap-4ca2bae2b778f2ad6196c3b2fc67588b58de04b9.tar.gz android_packages_apps_Snap-4ca2bae2b778f2ad6196c3b2fc67588b58de04b9.tar.bz2 android_packages_apps_Snap-4ca2bae2b778f2ad6196c3b2fc67588b58de04b9.zip |
Camera2: implement exposure compensation settings in video mode
Change-Id: I83a2675e109dc7924cdd9240b26051ac218f532a
-rwxr-xr-x | 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 | 22 | ||||
-rwxr-xr-x | src/com/android/camera/VideoUI.java | 2 |
4 files changed, 31 insertions, 0 deletions
diff --git a/res/xml/video_preferences.xml b/res/xml/video_preferences.xml index 1d2917360..14c758b30 100755 --- 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 971372bf8..330fa2ace 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 15540ddc2..5734d174a 100644 --- a/src/com/android/camera/VideoModule.java +++ b/src/com/android/camera/VideoModule.java @@ -500,6 +500,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); @@ -1070,6 +1072,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]; @@ -1123,6 +1135,7 @@ public class VideoModule implements CameraModule, if(mWasMute != mIsMute) { setMute(mIsMute, false); } + resetExposureCompensation(); showVideoSnapshotUI(false); installIntentFilter(); @@ -2707,6 +2720,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 02db6b390..ce51d2a16 100755 --- 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, CameraSettings.KEY_RECORD_LOCATION); mOnScreenIndicators.updateLocationIndicator(location); |