summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcodeworkx <codeworkx@cyanogenmod.org>2016-01-06 11:35:40 +0100
committerChippa-a <vusal1372@gmail.com>2019-10-25 15:55:25 +0300
commite043aa1a45655c813fad57cee05e8c0588add0ec (patch)
tree577f38adabeeb291c4cfe059d0a93d31ac33d25a
parent3d818573ea89729f43aee04a08ffd329c3a294da (diff)
downloadandroid_packages_apps_Snap-e043aa1a45655c813fad57cee05e8c0588add0ec.tar.gz
android_packages_apps_Snap-e043aa1a45655c813fad57cee05e8c0588add0ec.tar.bz2
android_packages_apps_Snap-e043aa1a45655c813fad57cee05e8c0588add0ec.zip
Snap: Add support for shutter speed
Author: codeworkx <codeworkx@cyanogenmod.org> Date: Wed Jan 6 11:35:40 2016 +0100 Snap: add support for shutter speed Change-Id: Id3393280c7c1c2f292d71587ba099e8dbafd1340 Author: codeworkx <codeworkx@cyanogenmod.org> Date: Fri Jan 8 19:38:15 2016 +0100 Snap: Restart preview when shutter-speed gets disabled Change-Id: I3884b23f1c855cfffeb20ca6e2a760732370d772 Change-Id: I82144c80d8fc2e7324b3dc8cde44b5b2934bdd50
-rw-r--r--res/values/cm_arrays.xml48
-rw-r--r--res/values/cm_strings.xml25
-rwxr-xr-xres/xml/camera_preferences.xml8
-rwxr-xr-xsrc/com/android/camera/CameraSettings.java18
-rw-r--r--src/com/android/camera/PhotoMenu.java2
-rwxr-xr-xsrc/com/android/camera/PhotoModule.java21
6 files changed, 122 insertions, 0 deletions
diff --git a/res/values/cm_arrays.xml b/res/values/cm_arrays.xml
index 3e700a68f..bb5627e7c 100644
--- a/res/values/cm_arrays.xml
+++ b/res/values/cm_arrays.xml
@@ -40,4 +40,52 @@
<item>10000</item>
<item>0</item>
</string-array>
+
+ <!-- Shutter speed -->
+ <array name="pref_camera_shutter_speed_entries" translatable="false">
+ <item>@string/pref_camera_shutter_speed_entry_0</item>
+ <item>@string/pref_camera_shutter_speed_entry_1_6000</item>
+ <item>@string/pref_camera_shutter_speed_entry_1_4000</item>
+ <item>@string/pref_camera_shutter_speed_entry_1_2000</item>
+ <item>@string/pref_camera_shutter_speed_entry_1_1000</item>
+ <item>@string/pref_camera_shutter_speed_entry_1_500</item>
+ <item>@string/pref_camera_shutter_speed_entry_1_250</item>
+ <item>@string/pref_camera_shutter_speed_entry_1_125</item>
+ <item>@string/pref_camera_shutter_speed_entry_1_60</item>
+ <item>@string/pref_camera_shutter_speed_entry_1_30</item>
+ <item>@string/pref_camera_shutter_speed_entry_1_15</item>
+ <item>@string/pref_camera_shutter_speed_entry_1_8</item>
+ <item>@string/pref_camera_shutter_speed_entry_1_4</item>
+ <item>@string/pref_camera_shutter_speed_entry_1_2</item>
+ <item>@string/pref_camera_shutter_speed_entry_1</item>
+ <item>@string/pref_camera_shutter_speed_entry_2</item>
+ <item>@string/pref_camera_shutter_speed_entry_4</item>
+ <item>@string/pref_camera_shutter_speed_entry_8</item>
+ <item>@string/pref_camera_shutter_speed_entry_15</item>
+ <item>@string/pref_camera_shutter_speed_entry_30</item>
+ </array>
+
+ <string-array name="pref_camera_shutter_speed_entryvalues" translatable="false">
+ <item>0</item>
+ <item>1/6000</item>
+ <item>1/4000</item>
+ <item>1/2000</item>
+ <item>1/1000</item>
+ <item>1/500</item>
+ <item>1/250</item>
+ <item>1/125</item>
+ <item>1/60</item>
+ <item>1/30</item>
+ <item>1/15</item>
+ <item>1/8</item>
+ <item>1/4</item>
+ <item>1/2</item>
+ <item>1</item>
+ <item>2</item>
+ <item>4</item>
+ <item>8</item>
+ <item>15</item>
+ <item>30</item>
+ </string-array>
+
</resources>
diff --git a/res/values/cm_strings.xml b/res/values/cm_strings.xml
index 6b2ec335c..bf2766c5b 100644
--- a/res/values/cm_strings.xml
+++ b/res/values/cm_strings.xml
@@ -100,4 +100,29 @@
<string name="pref_camera_focustime_entry_10">10s</string>
<string name="pref_camera_focustime_entry_infinite">Infinite</string>
+ <!-- Shutter speed -->
+ <string name="pref_camera_shutter_speed_title">Shutter speed</string>
+ <string name="pref_camera_shutter_speed_default" translatable="false">0</string>
+
+ <string name="pref_camera_shutter_speed_entry_0" translatable="false">0</string>
+ <string name="pref_camera_shutter_speed_entry_1_6000" translatable="false">1/6000</string>
+ <string name="pref_camera_shutter_speed_entry_1_4000" translatable="false">1/4000</string>
+ <string name="pref_camera_shutter_speed_entry_1_2000" translatable="false">1/2000</string>
+ <string name="pref_camera_shutter_speed_entry_1_1000" translatable="false">1/1000</string>
+ <string name="pref_camera_shutter_speed_entry_1_500" translatable="false">1/500</string>
+ <string name="pref_camera_shutter_speed_entry_1_250" translatable="false">1/250</string>
+ <string name="pref_camera_shutter_speed_entry_1_125" translatable="false">1/125</string>
+ <string name="pref_camera_shutter_speed_entry_1_60" translatable="false">1/60</string>
+ <string name="pref_camera_shutter_speed_entry_1_30" translatable="false">1/30</string>
+ <string name="pref_camera_shutter_speed_entry_1_15" translatable="false">1/25</string>
+ <string name="pref_camera_shutter_speed_entry_1_8" translatable="false">1/8</string>
+ <string name="pref_camera_shutter_speed_entry_1_4" translatable="false">1/4</string>
+ <string name="pref_camera_shutter_speed_entry_1_2" translatable="false">1/2</string>
+ <string name="pref_camera_shutter_speed_entry_1" translatable="false">1</string>
+ <string name="pref_camera_shutter_speed_entry_2" translatable="false">2</string>
+ <string name="pref_camera_shutter_speed_entry_4" translatable="false">4</string>
+ <string name="pref_camera_shutter_speed_entry_8" translatable="false">8</string>
+ <string name="pref_camera_shutter_speed_entry_15" translatable="false">15</string>
+ <string name="pref_camera_shutter_speed_entry_30" translatable="false">30</string>
+
</resources>
diff --git a/res/xml/camera_preferences.xml b/res/xml/camera_preferences.xml
index 8f3efb6fe..f62711332 100755
--- a/res/xml/camera_preferences.xml
+++ b/res/xml/camera_preferences.xml
@@ -413,6 +413,14 @@
camera:entries="@array/pref_camera2_camera2_entries"
camera:entryValues="@array/pref_camera2_camera2_entryvalues" />
+ <IconListPreference
+ camera:key="pref_camera_shutter_speed_key"
+ camera:defaultValue="@string/pref_camera_shutter_speed_default"
+ camera:title="@string/pref_camera_shutter_speed_title"
+ camera:entries="@array/pref_camera_shutter_speed_entries"
+ camera:singleIcon="@drawable/ic_settings_countdowntimer"
+ camera:entryValues="@array/pref_camera_shutter_speed_entryvalues" />
+
<ListPreference
camera:key="pref_camera_zoom_key"
camera:defaultValue="@string/pref_camera_zoom_default"
diff --git a/src/com/android/camera/CameraSettings.java b/src/com/android/camera/CameraSettings.java
index cca1ef2cd..2fdd60ed4 100755
--- a/src/com/android/camera/CameraSettings.java
+++ b/src/com/android/camera/CameraSettings.java
@@ -103,6 +103,7 @@ public class CameraSettings {
public static final String KEY_AUTOEXPOSURE = "pref_camera_autoexposure_key";
public static final String KEY_ANTIBANDING = "pref_camera_antibanding_key";
public static final String KEY_ISO = "pref_camera_iso_key";
+ public static final String KEY_SHUTTER_SPEED = "pref_camera_shutter_speed_key";
public static final String KEY_LENSSHADING = "pref_camera_lensshading_key";
public static final String KEY_HISTOGRAM = "pref_camera_histogram_key";
public static final String KEY_DENOISE = "pref_camera_denoise_key";
@@ -159,6 +160,8 @@ public class CameraSettings {
private static final String KEY_QC_SUPPORTED_VIDEO_TNR_MODES = "video-tnr-mode-values";
private static final String KEY_SNAPCAM_SUPPORTED_HDR_MODES = "hdr-mode-values";
private static final String KEY_SNAPCAM_SUPPORTED_HDR_NEED_1X = "hdr-need-1x-values";
+ public static final String KEY_SNAPCAM_SHUTTER_SPEED = "shutter-speed";
+ public static final String KEY_SNAPCAM_SHUTTER_SPEED_MODES = "shutter-speed-values";
public static final String KEY_QC_AE_BRACKETING = "ae-bracket-hdr";
public static final String KEY_QC_AF_BRACKETING = "af-bracket";
public static final String KEY_QC_RE_FOCUS = "re-focus";
@@ -514,6 +517,15 @@ public class CameraSettings {
params.set(mKeyIso, iso);
}
+ public static List<String> getSupportedShutterSpeedValues(Parameters params) {
+ String shutterSpeedValues = params.get(KEY_SNAPCAM_SHUTTER_SPEED_MODES);
+ if (shutterSpeedValues == null) {
+ return null;
+ }
+ Log.d(TAG, "Supported shutter speed values: " + shutterSpeedValues);
+ return split(shutterSpeedValues);
+ }
+
public static String getSupportedHighestVideoQuality(
int cameraId, Parameters parameters) {
// When launching the camera app first time, we will set the video quality
@@ -831,6 +843,7 @@ public class CameraSettings {
ListPreference autoExposure = group.findPreference(KEY_AUTOEXPOSURE);
ListPreference antiBanding = group.findPreference(KEY_ANTIBANDING);
ListPreference mIso = group.findPreference(KEY_ISO);
+ ListPreference mShutterSpeed = group.findPreference(KEY_SHUTTER_SPEED);
ListPreference lensShade = group.findPreference(KEY_LENSSHADING);
ListPreference histogram = group.findPreference(KEY_HISTOGRAM);
ListPreference denoise = group.findPreference(KEY_DENOISE);
@@ -951,6 +964,11 @@ public class CameraSettings {
mIso, getSupportedIsoValues(mParameters));
}
+ if (mShutterSpeed != null) {
+ filterUnsupportedOptions(group,
+ mShutterSpeed, getSupportedShutterSpeedValues(mParameters));
+ }
+
if (redeyeReduction != null) {
filterUnsupportedOptions(group,
redeyeReduction, ParametersWrapper.getSupportedRedeyeReductionModes(mParameters));
diff --git a/src/com/android/camera/PhotoMenu.java b/src/com/android/camera/PhotoMenu.java
index 87b2b95b4..2ff841562 100644
--- a/src/com/android/camera/PhotoMenu.java
+++ b/src/com/android/camera/PhotoMenu.java
@@ -195,6 +195,7 @@ public class PhotoMenu extends MenuController
CameraSettings.KEY_WHITE_BALANCE,
CameraSettings.KEY_QC_CHROMA_FLASH,
CameraSettings.KEY_FOCUS_TIME,
+ CameraSettings.KEY_SHUTTER_SPEED,
CameraSettings.KEY_REDEYE_REDUCTION,
CameraSettings.KEY_SELFIE_MIRROR,
CameraSettings.KEY_SHUTTER_SOUND,
@@ -218,6 +219,7 @@ public class PhotoMenu extends MenuController
CameraSettings.KEY_QC_CHROMA_FLASH,
CameraSettings.KEY_FOCUS_MODE,
CameraSettings.KEY_FOCUS_TIME,
+ CameraSettings.KEY_SHUTTER_SPEED,
CameraSettings.KEY_REDEYE_REDUCTION,
CameraSettings.KEY_POWER_SHUTTER,
CameraSettings.KEY_MAX_BRIGHTNESS,
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java
index 8a9ceb8b0..d7338cf48 100755
--- a/src/com/android/camera/PhotoModule.java
+++ b/src/com/android/camera/PhotoModule.java
@@ -3305,6 +3305,14 @@ public class PhotoModule
CameraSettings.setISOValue(mParameters, iso);
}
}
+ // Set shutter speed parameter
+ String shutterSpeed = mPreferences.getString(
+ CameraSettings.KEY_SHUTTER_SPEED,
+ mActivity.getString(R.string.pref_camera_shutter_speed_default));
+ if (CameraUtil.isSupported(shutterSpeed,
+ CameraSettings.getSupportedShutterSpeedValues(mParameters))) {
+ mParameters.set(CameraSettings.KEY_SNAPCAM_SHUTTER_SPEED, shutterSpeed);
+ }
// Set color effect parameter.
String colorEffect = mPreferences.getString(
CameraSettings.KEY_COLOR_EFFECT,
@@ -4164,6 +4172,19 @@ public class PhotoModule
mParameters.setJpegQuality(jpegQuality);
+ // When shutter speed gets disabled preview needs to be restarted
+ if (CameraUtil.isSupported(mParameters, CameraSettings.KEY_SNAPCAM_SHUTTER_SPEED)) {
+ String shutterSpeed = mPreferences.getString(CameraSettings.KEY_SHUTTER_SPEED, null);
+ if (shutterSpeed != null) {
+ String oldShutterSpeed = mParameters.get(CameraSettings.KEY_SNAPCAM_SHUTTER_SPEED);
+ if (!shutterSpeed.equals(oldShutterSpeed) && shutterSpeed.equals("0") &&
+ mCameraState != PREVIEW_STOPPED) {
+ Log.v(TAG, "Shutter speed disabled. Restart Preview");
+ mRestartPreview = true;
+ }
+ }
+ }
+
// For the following settings, we need to check if the settings are
// still supported by latest driver, if not, ignore the settings.