summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjt1134 <jt1134@gmail.com>2014-01-04 20:55:04 -0600
committerMichael Bestas <mikeioannina@gmail.com>2017-01-04 21:57:37 +0200
commit63f350e5654fe9941f4f66597f03a0ea5e03d074 (patch)
tree07270f7dee14ca4b824de638a56e4261f0262b4b
parent9cc26c0d16af16f17a0d6fdc3b1b549de521a72b (diff)
downloadandroid_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.xml5
-rw-r--r--src/com/android/camera/VideoMenu.java2
-rw-r--r--src/com/android/camera/VideoModule.java23
-rw-r--r--src/com/android/camera/VideoUI.java2
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);