summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--res/values/cm_arrays.xml48
-rw-r--r--res/values/cm_strings.xml26
-rw-r--r--res/xml/camera_preferences.xml7
-rw-r--r--src/com/android/camera/CameraSettings.java20
-rw-r--r--src/com/android/camera/PhotoMenu.java2
-rw-r--r--src/com/android/camera/PhotoModule.java9
6 files changed, 112 insertions, 0 deletions
diff --git a/res/values/cm_arrays.xml b/res/values/cm_arrays.xml
index 94410cf48..d3414355d 100644
--- a/res/values/cm_arrays.xml
+++ b/res/values/cm_arrays.xml
@@ -44,4 +44,52 @@
<item>30000</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 b328bda18..8f44e53b4 100644
--- a/res/values/cm_strings.xml
+++ b/res/values/cm_strings.xml
@@ -161,4 +161,30 @@
<string name="pref_camera_focustime_entry_20">20s</string>
<string name="pref_camera_focustime_entry_30">30s</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 2fb598e0e..b3f34daf2 100644
--- a/res/xml/camera_preferences.xml
+++ b/res/xml/camera_preferences.xml
@@ -322,6 +322,13 @@
camera:title="@string/pref_camera_manual_focus_title"
camera:entries="@array/pref_camera_manual_focus_entries"
camera:entryValues="@array/pref_camera_manual_focus_entry_values" />
+ <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_power_shutter"
camera:defaultValue="@string/pref_camera_power_shutter_default"
diff --git a/src/com/android/camera/CameraSettings.java b/src/com/android/camera/CameraSettings.java
index e65e914e0..92c8b5038 100644
--- a/src/com/android/camera/CameraSettings.java
+++ b/src/com/android/camera/CameraSettings.java
@@ -98,6 +98,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";
@@ -144,6 +145,8 @@ public class CameraSettings {
private static final String KEY_QC_SUPPORTED_PREVIEW_FORMATS = "preview-format-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";
@@ -294,6 +297,7 @@ public class CameraSettings {
return group;
}
+ // ISO
public static List<String> getSupportedIsoValues(Parameters params) {
String isoValues = params.get(mKeyIsoValues);
if (isoValues == null) {
@@ -316,6 +320,16 @@ public class CameraSettings {
params.set(mKeyIso, iso);
}
+ // Shutter speed
+ 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
@@ -604,6 +618,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);
@@ -699,6 +714,11 @@ public class CameraSettings {
mIso, getSupportedIsoValues(mParameters));
}
+ if (mShutterSpeed != null) {
+ filterUnsupportedOptions(group,
+ mShutterSpeed, getSupportedShutterSpeedValues(mParameters));
+ }
+
if (redeyeReduction != null) {
filterUnsupportedOptions(group,
redeyeReduction, mParameters.getSupportedRedeyeReductionModes());
diff --git a/src/com/android/camera/PhotoMenu.java b/src/com/android/camera/PhotoMenu.java
index 37aa77fda..f4381db88 100644
--- a/src/com/android/camera/PhotoMenu.java
+++ b/src/com/android/camera/PhotoMenu.java
@@ -150,6 +150,7 @@ public class PhotoMenu extends MenuController
CameraSettings.KEY_WHITE_BALANCE,
CameraSettings.KEY_FOCUS_MODE,
CameraSettings.KEY_FOCUS_TIME,
+ CameraSettings.KEY_SHUTTER_SPEED,
CameraSettings.KEY_REDEYE_REDUCTION,
CameraSettings.KEY_POWER_SHUTTER,
CameraSettings.KEY_MAX_BRIGHTNESS
@@ -169,6 +170,7 @@ public class PhotoMenu extends MenuController
CameraSettings.KEY_WHITE_BALANCE,
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 5a05ae043..bee9d6e94 100644
--- a/src/com/android/camera/PhotoModule.java
+++ b/src/com/android/camera/PhotoModule.java
@@ -2940,6 +2940,15 @@ 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,