summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjunjiez <junjiez@codeaurora.org>2017-09-08 16:33:32 +0800
committerzhuw <zhuw@codeaurora.org>2017-10-19 13:52:30 +0800
commitcef1351155f01f810d1fd564f0b5fcfdf9194ebe (patch)
tree6912e493bd6e897329211917ebd19a1c52313164
parentd666f32f4ef1ce511cecf275e76ace21f58d2fbd (diff)
downloadandroid_packages_apps_Snap-cef1351155f01f810d1fd564f0b5fcfdf9194ebe.tar.gz
android_packages_apps_Snap-cef1351155f01f810d1fd564f0b5fcfdf9194ebe.tar.bz2
android_packages_apps_Snap-cef1351155f01f810d1fd564f0b5fcfdf9194ebe.zip
SnapdragonCamera:Add exposure mode
add exposure mode option to dev options in Camera2 Change-Id: I23d1cfb0e7b03816bfdadea4bebdfc59788a49f7 CRs-Fixed: 2128685
-rwxr-xr-x[-rw-r--r--]res/values/camera2arrays.xml12
-rwxr-xr-x[-rw-r--r--]res/values/qcomstrings.xml10
-rw-r--r--res/xml/capture_preferences.xml7
-rwxr-xr-x[-rw-r--r--]res/xml/setting_menu_preferences.xml9
-rwxr-xr-xsrc/com/android/camera/CaptureModule.java12
-rwxr-xr-x[-rw-r--r--]src/com/android/camera/SettingsManager.java1
-rw-r--r--version.mk2
7 files changed, 52 insertions, 1 deletions
diff --git a/res/values/camera2arrays.xml b/res/values/camera2arrays.xml
index 6f8b0caf0..31bfe6987 100644..100755
--- a/res/values/camera2arrays.xml
+++ b/res/values/camera2arrays.xml
@@ -1111,4 +1111,16 @@ for time lapse recording -->
<item>@string/pref_camera2_afmode_value_continuous_picture</item>
<item>@string/pref_camera2_afmode_value_edof</item>
</string-array>
+
+ <string-array name="pref_camera2_exposure_metering_entries" translatable="false">
+ <item>@string/pref_camera2_exposure_metering_entry_frame_average</item>
+ <item>@string/pref_camera2_exposure_metering_entry_center_weighted</item>
+ <item>@string/pref_camera2_exposure_metering_entry_spot_meteting</item>
+ </string-array>
+
+ <string-array name="pref_camera2_exposure_metering_entryvalues" translatable="false">
+ <item>@string/pref_camera2_exposure_metering_entryvalue_frame_average</item>
+ <item>@string/pref_camera2_exposure_metering_entryvalue_center_weighted</item>
+ <item>@string/pref_camera2_exposure_metering_entryvalue_spot_meteting</item>
+ </string-array>
</resources>
diff --git a/res/values/qcomstrings.xml b/res/values/qcomstrings.xml
index 210053e0f..142af9059 100644..100755
--- a/res/values/qcomstrings.xml
+++ b/res/values/qcomstrings.xml
@@ -1207,5 +1207,15 @@
<string name="pref_camera2_afmode_value_continuous_video" translatable="false">3</string>
<string name="pref_camera2_afmode_value_continuous_picture" translatable="false">4</string>
<string name="pref_camera2_afmode_value_edof" translatable="false">5</string>
+
+ <string name="pref_camera2_exposure_metering_title" translatable="true">ExposureMetering</string>
+ <string name="pref_camera2_exposure_metering_default" translatable="true">0</string>
+ <string name="pref_camera2_exposure_metering_entry_frame_average" translatable="false">FrameAverage</string>
+ <string name="pref_camera2_exposure_metering_entry_center_weighted" translatable="false">CenterWeighted</string>
+ <string name="pref_camera2_exposure_metering_entry_spot_meteting" translatable="false">SpotMeteting</string>
+ <string name="pref_camera2_exposure_metering_entryvalue_frame_average" translatable="false">0</string>
+ <string name="pref_camera2_exposure_metering_entryvalue_center_weighted" translatable="false">1</string>
+ <string name="pref_camera2_exposure_metering_entryvalue_spot_meteting" translatable="false">2</string>
+
</resources>
diff --git a/res/xml/capture_preferences.xml b/res/xml/capture_preferences.xml
index 4207ecf76..8095a9ab0 100644
--- a/res/xml/capture_preferences.xml
+++ b/res/xml/capture_preferences.xml
@@ -393,4 +393,11 @@
camera:title="@string/pref_camera2_afmode_title"
camera:entries="@array/pref_camera2_afmode_entries"
camera:entryValues="@array/pref_camera2_afmode_entryvalues"/>
+
+ <ListPreference
+ camera:key="pref_camera2_exposure_metering_key"
+ camera:defaultValue="@string/pref_camera2_exposure_metering_default"
+ camera:title="@string/pref_camera2_exposure_metering_title"
+ camera:entries="@array/pref_camera2_exposure_metering_entries"
+ camera:entryValues="@array/pref_camera2_exposure_metering_entryvalues" />
</PreferenceGroup>
diff --git a/res/xml/setting_menu_preferences.xml b/res/xml/setting_menu_preferences.xml
index a8a2ce07f..b65b77bea 100644..100755
--- a/res/xml/setting_menu_preferences.xml
+++ b/res/xml/setting_menu_preferences.xml
@@ -392,5 +392,14 @@
android:layout="@layout/preference"
android:summary="%s"
android:title="@string/pref_camera2_afmode_title" />
+
+ <ListPreference
+ android:defaultValue="@string/pref_camera2_exposure_metering_default"
+ android:entries="@array/pref_camera2_exposure_metering_entries"
+ android:entryValues="@array/pref_camera2_exposure_metering_entryvalues"
+ android:key="pref_camera2_exposure_metering_key"
+ android:layout="@layout/preference"
+ android:summary="%s"
+ android:title="@string/pref_camera2_exposure_metering_title" />
</PreferenceCategory>
</PreferenceScreen>
diff --git a/src/com/android/camera/CaptureModule.java b/src/com/android/camera/CaptureModule.java
index 5d2335118..03ec05859 100755
--- a/src/com/android/camera/CaptureModule.java
+++ b/src/com/android/camera/CaptureModule.java
@@ -251,6 +251,9 @@ public class CaptureModule implements CameraModule, PhotoController,
public static final CaptureRequest.Key<Integer> sharpness_control = new CaptureRequest.Key<>(
"org.codeaurora.qcamera3.sharpness.strength", Integer.class);
+ public static final CaptureRequest.Key<Integer> exposure_metering = new CaptureRequest.Key<>(
+ "org.codeaurora.qcamera3.exposure_metering.exposure_metering_mode", Integer.class);
+
private boolean[] mTakingPicture = new boolean[MAX_NUM_CAM];
private int mControlAFMode = CameraMetadata.CONTROL_AF_MODE_CONTINUOUS_PICTURE;
private int mLastResultAFState = -1;
@@ -2128,6 +2131,7 @@ public class CaptureModule implements CameraModule, PhotoController,
applyAntiBandingLevel(builder);
applySharpnessControlModes(builder);
applyAfModes(builder);
+ applyExposureMeteringModes(builder);
applyHistogram(builder);
}
@@ -4041,6 +4045,14 @@ public class CaptureModule implements CameraModule, PhotoController,
}
}
+ private void applyExposureMeteringModes(CaptureRequest.Builder request) {
+ String value = mSettingsManager.getValue(SettingsManager.KEY_EXPOSURE_METERING_MODE);
+ if (value != null) {
+ int intValue = Integer.parseInt(value);
+ request.set(CaptureModule.exposure_metering, intValue);
+ }
+ }
+
private void applyHistogram(CaptureRequest.Builder request) {
String value = mSettingsManager.getValue(SettingsManager.KEY_HISTOGRAM);
if (value != null ) {
diff --git a/src/com/android/camera/SettingsManager.java b/src/com/android/camera/SettingsManager.java
index 6a365e88b..568186c4d 100644..100755
--- a/src/com/android/camera/SettingsManager.java
+++ b/src/com/android/camera/SettingsManager.java
@@ -148,6 +148,7 @@ public class SettingsManager implements ListMenu.SettingsListener {
public static final String KEY_ZOOM = "pref_camera2_zoom_key";
public static final String KEY_SHARPNESS_CONTROL_MODE = "pref_camera2_sharpness_control_key";
public static final String KEY_AF_MODE = "pref_camera2_afmode_key";
+ public static final String KEY_EXPOSURE_METERING_MODE = "pref_camera2_exposure_metering_key";
public static final HashMap<String, Integer> KEY_ISO_INDEX = new HashMap<String, Integer>();
public static final String KEY_BSGC_DETECTION = "pref_camera2_bsgc_key";
diff --git a/version.mk b/version.mk
index abac85c0c..c728d1a70 100644
--- a/version.mk
+++ b/version.mk
@@ -40,7 +40,7 @@
# base_version_build is 3 digits and auto-increment for fixing CR.
base_version_major := 2
base_version_minor := 00
-base_version_build := 001
+base_version_build := 002
#####################################################
#####################################################