summaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
authorSultanxda <sultanxda@gmail.com>2015-09-08 21:32:48 -0700
committerBruno Martins <bgcngm@gmail.com>2018-11-20 12:31:35 +0000
commitfc702617c6fa5f0fdfb7de15181d46cfe745b14d (patch)
tree56239ac9844ff024516d21491f123cbb47ea5970 /src/com
parentbd0c655ab965ade3b848fea43b8b279df77e754a (diff)
downloadandroid_packages_apps_Snap-fc702617c6fa5f0fdfb7de15181d46cfe745b14d.tar.gz
android_packages_apps_Snap-fc702617c6fa5f0fdfb7de15181d46cfe745b14d.tar.bz2
android_packages_apps_Snap-fc702617c6fa5f0fdfb7de15181d46cfe745b14d.zip
SnapdragonCamera: Add focus-mode option to camcorder
User can now control the focus mode used while recording video. Change-Id: I340c01a3f88314de67ca024279672276eff453ed Signed-off-by: Sultanxda <sultanxda@gmail.com>
Diffstat (limited to 'src/com')
-rwxr-xr-xsrc/com/android/camera/CameraSettings.java6
-rw-r--r--src/com/android/camera/FocusOverlayManager.java13
-rw-r--r--src/com/android/camera/PhotoModule.java26
-rw-r--r--src/com/android/camera/VideoMenu.java2
-rw-r--r--src/com/android/camera/VideoModule.java7
5 files changed, 35 insertions, 19 deletions
diff --git a/src/com/android/camera/CameraSettings.java b/src/com/android/camera/CameraSettings.java
index bf9b6946d..b01d94097 100755
--- a/src/com/android/camera/CameraSettings.java
+++ b/src/com/android/camera/CameraSettings.java
@@ -68,6 +68,7 @@ public class CameraSettings {
public static final String KEY_PICTURE_SIZE = "pref_camera_picturesize_key";
public static final String KEY_JPEG_QUALITY = "pref_camera_jpegquality_key";
public static final String KEY_FOCUS_MODE = "pref_camera_focusmode_key";
+ public static final String KEY_VIDEOCAMERA_FOCUS_MODE = "pref_camera_video_focusmode_key";
public static final String KEY_FOCUS_TIME = "pref_camera_focustime_key";
public static final String KEY_FLASH_MODE = "pref_camera_flashmode_key";
public static final String KEY_VIDEOCAMERA_FLASH_MODE = "pref_camera_video_flashmode_key";
@@ -1108,6 +1109,7 @@ public class CameraSettings {
ListPreference sceneMode = group.findPreference(KEY_SCENE_MODE);
ListPreference flashMode = group.findPreference(KEY_FLASH_MODE);
ListPreference focusMode = group.findPreference(KEY_FOCUS_MODE);
+ ListPreference videoFocusMode = group.findPreference(KEY_VIDEOCAMERA_FOCUS_MODE);
IconListPreference exposure =
(IconListPreference) group.findPreference(KEY_EXPOSURE);
IconListPreference cameraIdPref =
@@ -1210,6 +1212,10 @@ public class CameraSettings {
filterUnsupportedOptions(group,
focusMode, mParameters.getSupportedFocusModes());
}
+ if (videoFocusMode != null) {
+ filterUnsupportedOptions(group,
+ videoFocusMode, mParameters.getSupportedFocusModes());
+ }
if (videoFlashMode != null) {
filterUnsupportedOptions(group,
videoFlashMode, mParameters.getSupportedFlashModes());
diff --git a/src/com/android/camera/FocusOverlayManager.java b/src/com/android/camera/FocusOverlayManager.java
index 91a0fd8d1..5313e0ed4 100644
--- a/src/com/android/camera/FocusOverlayManager.java
+++ b/src/com/android/camera/FocusOverlayManager.java
@@ -462,7 +462,7 @@ public class FocusOverlayManager {
}
}
- public String getFocusMode() {
+ public String getFocusMode(boolean fromVideo) {
if (mOverrideFocusMode != null) return mOverrideFocusMode;
if (mParameters == null) return Parameters.FOCUS_MODE_AUTO;
List<String> supportedFocusModes = mParameters.getSupportedFocusModes();
@@ -472,8 +472,13 @@ public class FocusOverlayManager {
mFocusMode = Parameters.FOCUS_MODE_AUTO;
} else {
// The default is continuous autofocus.
- mFocusMode = mPreferences.getString(
- CameraSettings.KEY_FOCUS_MODE, null);
+ if (fromVideo) {
+ mFocusMode = mPreferences.getString(
+ CameraSettings.KEY_VIDEOCAMERA_FOCUS_MODE, null);
+ } else {
+ mFocusMode = mPreferences.getString(
+ CameraSettings.KEY_FOCUS_MODE, null);
+ }
// Try to find a supported focus mode from the default list.
if (mFocusMode == null) {
@@ -607,7 +612,7 @@ public class FocusOverlayManager {
}
private boolean needAutoFocusCall() {
- String focusMode = getFocusMode();
+ String focusMode = getFocusMode(false);
return !(focusMode.equals(Parameters.FOCUS_MODE_INFINITY)
|| focusMode.equals(Parameters.FOCUS_MODE_FIXED)
|| focusMode.equals(Parameters.FOCUS_MODE_EDOF));
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java
index 4bcc42399..73d05da8d 100644
--- a/src/com/android/camera/PhotoModule.java
+++ b/src/com/android/camera/PhotoModule.java
@@ -1432,7 +1432,7 @@ public class PhotoModule
if (needRestartPreview) {
Log.d(TAG, "JpegPictureCallback: needRestartPreview");
setupPreview();
- focusMode = mFocusManager.getFocusMode();
+ focusMode = mFocusManager.getFocusMode(false);
if (CameraUtil.FOCUS_MODE_CONTINUOUS_PICTURE.equals(focusMode) ||
CameraUtil.FOCUS_MODE_MW_CONTINUOUS_PICTURE.equals(focusMode)) {
mCameraDevice.cancelAutoFocus();
@@ -1440,7 +1440,7 @@ public class PhotoModule
} else if ((mReceivedSnapNum == mBurstSnapNum)
&& (mCameraState != LONGSHOT)){
mFocusManager.resetTouchFocus();
- focusMode = mFocusManager.getFocusMode();
+ focusMode = mFocusManager.getFocusMode(false);
if (CameraUtil.FOCUS_MODE_CONTINUOUS_PICTURE.equals(focusMode) ||
CameraUtil.FOCUS_MODE_MW_CONTINUOUS_PICTURE.equals(focusMode)) {
mCameraDevice.cancelAutoFocus();
@@ -1951,7 +1951,7 @@ public class PhotoModule
}
if ((mManual3AEnabled & MANUAL_FOCUS) != 0) {
mUI.overrideSettings(CameraSettings.KEY_FOCUS_MODE,
- mFocusManager.getFocusMode());
+ mFocusManager.getFocusMode(false));
}
}
@@ -2056,7 +2056,7 @@ public class PhotoModule
if (!Parameters.SCENE_MODE_AUTO.equals(mSceneMode)) {
flashMode = Parameters.FLASH_MODE_OFF;
String whiteBalance = Parameters.WHITE_BALANCE_AUTO;
- focusMode = mFocusManager.getFocusMode();
+ focusMode = mFocusManager.getFocusMode(false);
colorEffect = mParameters.getColorEffect();
String defaultEffect = mActivity.getString(R.string.pref_camera_coloreffect_default);
if (CameraUtil.SCENE_MODE_HDR.equals(mSceneMode)) {
@@ -2385,7 +2385,7 @@ public class PhotoModule
setCameraState(IDLE);
mFocusManager.resetTouchFocus();
if (CameraUtil.FOCUS_MODE_CONTINUOUS_PICTURE.equals(
- mFocusManager.getFocusMode())) {
+ mFocusManager.getFocusMode(false))) {
mCameraDevice.cancelAutoFocus();
}
mUI.resumeFaceDetection();
@@ -3073,7 +3073,7 @@ public class PhotoModule
if (!mSnapshotOnIdle && !mInstantCaptureSnapShot) {
// If the focus mode is continuous autofocus, call cancelAutoFocus to
// resume it because it may have been paused by autoFocus call.
- focusMode = mFocusManager.getFocusMode();
+ focusMode = mFocusManager.getFocusMode(false);
if (CameraUtil.FOCUS_MODE_CONTINUOUS_PICTURE.equals(focusMode) &&
mCameraState != INIT ||
CameraUtil.FOCUS_MODE_MW_CONTINUOUS_PICTURE.equals(focusMode)) {
@@ -3671,10 +3671,10 @@ public class PhotoModule
}
} else if (mFocusManager.isTouch()) {
mFocusManager.overrideFocusMode(null);
- mParameters.setFocusMode(mFocusManager.getFocusMode());
+ mParameters.setFocusMode(mFocusManager.getFocusMode(false));
} else {
// If not supported use the current mode
- mFocusManager.overrideFocusMode(mFocusManager.getFocusMode());
+ mFocusManager.overrideFocusMode(mFocusManager.getFocusMode(false));
}
if (!pictureFormat.equals(PIXEL_FORMAT_JPEG)) {
@@ -3691,7 +3691,7 @@ public class PhotoModule
mFocusManager.setZslEnable(false);
if ((mManual3AEnabled & MANUAL_FOCUS) == 0) {
mFocusManager.overrideFocusMode(null);
- mParameters.setFocusMode(mFocusManager.getFocusMode());
+ mParameters.setFocusMode(mFocusManager.getFocusMode(false));
}
}
@@ -3768,7 +3768,7 @@ public class PhotoModule
mParameters.setFlashMode(fMode);
}
- if(!mFocusManager.getFocusMode().equals(Parameters.FOCUS_MODE_CONTINUOUS_PICTURE) &&
+ if(!mFocusManager.getFocusMode(false).equals(Parameters.FOCUS_MODE_CONTINUOUS_PICTURE) &&
!mFocusManager.isFocusCompleted()) {
mUI.clearFocus();
}
@@ -4029,7 +4029,7 @@ public class PhotoModule
// initialize focus mode
if ((mManual3AEnabled & MANUAL_FOCUS) == 0) {
mFocusManager.overrideFocusMode(null);
- mParameters.setFocusMode(mFocusManager.getFocusMode());
+ mParameters.setFocusMode(mFocusManager.getFocusMode(false));
}
// Set picture size.
@@ -4298,7 +4298,7 @@ public class PhotoModule
mParameters.setFocusMode(Parameters.FOCUS_MODE_INFINITY);
} else if ((mManual3AEnabled & MANUAL_FOCUS) == 0) {
mFocusManager.overrideFocusMode(null);
- mParameters.setFocusMode(mFocusManager.getFocusMode());
+ mParameters.setFocusMode(mFocusManager.getFocusMode(false));
}
// Set focus time.
@@ -4568,7 +4568,7 @@ public class PhotoModule
alert.show();
} else {
mManual3AEnabled &= ~MANUAL_FOCUS;
- mParameters.setFocusMode(mFocusManager.getFocusMode());
+ mParameters.setFocusMode(mFocusManager.getFocusMode(false));
mUI.overrideSettings(CameraSettings.KEY_FOCUS_MODE, null);
updateCommonManual3ASettings();
onSharedPreferenceChanged();
diff --git a/src/com/android/camera/VideoMenu.java b/src/com/android/camera/VideoMenu.java
index ad68d01e2..b02585579 100644
--- a/src/com/android/camera/VideoMenu.java
+++ b/src/com/android/camera/VideoMenu.java
@@ -115,6 +115,7 @@ public class VideoMenu extends MenuController
mOtherKeys1 = new String[] {
CameraSettings.KEY_VIDEOCAMERA_FLASH_MODE,
CameraSettings.KEY_VIDEO_QUALITY,
+ CameraSettings.KEY_VIDEOCAMERA_FOCUS_MODE,
CameraSettings.KEY_RECORD_LOCATION,
CameraSettings.KEY_CAMERA_SAVEPATH,
CameraSettings.KEY_EXPOSURE,
@@ -127,6 +128,7 @@ public class VideoMenu extends MenuController
mOtherKeys2 = new String[] {
CameraSettings.KEY_VIDEOCAMERA_FLASH_MODE,
CameraSettings.KEY_VIDEO_QUALITY,
+ CameraSettings.KEY_VIDEOCAMERA_FOCUS_MODE,
CameraSettings.KEY_RECORD_LOCATION,
CameraSettings.KEY_CAMERA_SAVEPATH,
CameraSettings.KEY_EXPOSURE,
diff --git a/src/com/android/camera/VideoModule.java b/src/com/android/camera/VideoModule.java
index 0119138fb..5aefbd6db 100644
--- a/src/com/android/camera/VideoModule.java
+++ b/src/com/android/camera/VideoModule.java
@@ -616,7 +616,7 @@ public class VideoModule implements CameraModule,
if (mMeteringAreaSupported)
mParameters.setMeteringAreas(mFocusManager.getMeteringAreas());
if (mFocusAreaSupported || mMeteringAreaSupported) {
- mParameters.setFocusMode(mFocusManager.getFocusMode());
+ mParameters.setFocusMode(mFocusManager.getFocusMode(true));
mCameraDevice.setParameters(mParameters);
}
}
@@ -2817,6 +2817,9 @@ public class VideoModule implements CameraModule,
//set power mode settings
updatePowerMode();
+ // Set focus mode
+ mParameters.setFocusMode(mFocusManager.getFocusMode(true));
+
// Set face detetction parameter.
String faceDetection = mPreferences.getString(
CameraSettings.KEY_FACE_DETECTION,
@@ -2902,7 +2905,7 @@ public class VideoModule implements CameraModule,
// Set continuous autofocus.
// Set focus mode
- mParameters.setFocusMode(mFocusManager.getFocusMode());
+ mParameters.setFocusMode(mFocusManager.getFocusMode(true));
mParameters.set(CameraUtil.RECORDING_HINT, CameraUtil.TRUE);