summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAjit Singh Solanki <ajits@codeaurora.org>2013-11-07 01:56:47 -0800
committerSunid Wilson <sunidw@codeaurora.org>2013-12-13 10:59:43 -0800
commit2e1e3f96100551feed54b507e7ad1dad52b637f1 (patch)
treea97263b237f0f41abf15ec78d65059b801eb33a4
parent1c7734057201ffd1b6d165d9e24793ef3d213043 (diff)
downloadandroid_packages_apps_Snap-2e1e3f96100551feed54b507e7ad1dad52b637f1.tar.gz
android_packages_apps_Snap-2e1e3f96100551feed54b507e7ad1dad52b637f1.tar.bz2
android_packages_apps_Snap-2e1e3f96100551feed54b507e7ad1dad52b637f1.zip
Camera: Add support for UbiFocus, ChromaFlash and OptiZoom.
- Add UI option in App to enable/disable UbiFocus, ChromaFlash and OptiZoom - App shows UI options for these features only when supported in HAL Change-Id: I924f97b2b510b351d9a8cb48a0aac6a4dc24ca10
-rw-r--r--res/values/qcomarrays.xml16
-rw-r--r--res/values/qcomstrings.xml20
-rw-r--r--res/xml/camera_preferences.xml6
-rw-r--r--src/com/android/camera/CameraSettings.java45
-rw-r--r--src/com/android/camera/PhotoMenu.java1
-rw-r--r--src/com/android/camera/PhotoModule.java51
6 files changed, 138 insertions, 1 deletions
diff --git a/res/values/qcomarrays.xml b/res/values/qcomarrays.xml
index 3d08bab1f..4bafc660a 100644
--- a/res/values/qcomarrays.xml
+++ b/res/values/qcomarrays.xml
@@ -561,5 +561,21 @@
<item>@string/pref_camera_video_hdr_value_off</item>
<item>@string/pref_camera_video_hdr_value_on</item>
</string-array>
+
+ <!-- Camera Preferences Selectable Advanced features dialog box entries -->
+ <string-array name="pref_camera_advanced_features_entries" translatable="false">
+ <item>@string/pref_camera_advanced_feature_entry_none</item>
+ <item>@string/pref_camera_advanced_feature_entry_ubifocus</item>
+ <item>@string/pref_camera_advanced_feature_entry_chromaflash</item>
+ <item>@string/pref_camera_advanced_feature_entry_optizoom</item>
+ </string-array>
+
+ <string-array name="pref_camera_advanced_features_entryvalues" translatable="false">
+ <item>@string/pref_camera_advanced_feature_value_none</item>
+ <item>@string/pref_camera_advanced_feature_value_ubifocus_on</item>
+ <item>@string/pref_camera_advanced_feature_value_chromaflash_on</item>
+ <item>@string/pref_camera_advanced_feature_value_optizoom_on</item>
+ </string-array>
+
</resources>
diff --git a/res/values/qcomstrings.xml b/res/values/qcomstrings.xml
index 05eec50a5..c63f30b6f 100644
--- a/res/values/qcomstrings.xml
+++ b/res/values/qcomstrings.xml
@@ -133,6 +133,26 @@
<string name="pref_camera_selectablezoneaf_value_centerweighted">center-weighted</string>
<string name="pref_camera_selectablezoneaf_value_frameaverage">frame-average</string>
+ <string name="pref_camera_advanced_feature_default">none</string>
+
+ <!-- Settings screen, Selectable advanced features title -->
+ <string name="pref_camera_advanced_features_title">Advanced Features</string>
+
+ <!-- Settings screen, Selectable Zone Af dialog radio button choices -->
+ <string name="pref_camera_advanced_feature_entry_none">None</string>
+ <string name="pref_camera_advanced_feature_entry_ubifocus">Ubi Focus</string>
+ <string name="pref_camera_advanced_feature_entry_chromaflash">Chroma Flash</string>
+ <string name="pref_camera_advanced_feature_entry_optizoom">Opti Zoom</string>
+
+ <!-- Auto exposure entry values. Do not translate. -->
+ <string name="pref_camera_advanced_feature_value_none">af-bracket-off</string>
+ <string name="pref_camera_advanced_feature_value_ubifocus_on">af-bracket-on</string>
+ <string name="pref_camera_advanced_feature_value_chromaflash_on">chroma-flash-on</string>
+ <string name="pref_camera_advanced_feature_value_optizoom_on">opti-zoom-on</string>
+ <string name="pref_camera_advanced_feature_value_ubifocus_off">af-bracket-off</string>
+ <string name="pref_camera_advanced_feature_value_chromaflash_off">chroma-flash-off</string>
+ <string name="pref_camera_advanced_feature_value_optizoom_off">opti-zoom-off</string>
+
<!-- Settings screen, ZSL location dialog choices -->
<string name="pref_camera_zsl_entry_off">Off</string>
<string name="pref_camera_zsl_entry_on">On</string>
diff --git a/res/xml/camera_preferences.xml b/res/xml/camera_preferences.xml
index 36165abc0..c6ac85929 100644
--- a/res/xml/camera_preferences.xml
+++ b/res/xml/camera_preferences.xml
@@ -230,4 +230,10 @@
camera:defaultValue="@string/pref_camera_videosnapsize_default"
camera:entries="@array/pref_camera_picturesize_entries"
camera:entryValues="@array/pref_camera_picturesize_entryvalues" />
+ <ListPreference
+ camera:key="pref_camera_advanced_features_key"
+ camera:defaultValue="@string/pref_camera_advanced_feature_default"
+ camera:title="@string/pref_camera_advanced_features_title"
+ camera:entries="@array/pref_camera_advanced_features_entries"
+ camera:entryValues="@array/pref_camera_advanced_features_entryvalues" />
</PreferenceGroup>
diff --git a/src/com/android/camera/CameraSettings.java b/src/com/android/camera/CameraSettings.java
index 243f1e35d..4a2bed5c0 100644
--- a/src/com/android/camera/CameraSettings.java
+++ b/src/com/android/camera/CameraSettings.java
@@ -93,6 +93,7 @@ public class CameraSettings {
public static final String KEY_DENOISE = "pref_camera_denoise_key";
public static final String KEY_REDEYE_REDUCTION = "pref_camera_redeyereduction_key";
public static final String KEY_AE_BRACKET_HDR = "pref_camera_ae_bracket_hdr_key";
+ public static final String KEY_ADVANCED_FEATURES = "pref_camera_advanced_features_key";
public static final String KEY_VIDEO_SNAPSHOT_SIZE = "pref_camera_videosnapsize_key";
public static final String KEY_VIDEO_HIGH_FRAME_RATE = "pref_camera_hfr_key";
@@ -105,9 +106,15 @@ public class CameraSettings {
public static final String KEY_DIS = "pref_camera_dis_key";
private static final String KEY_QC_SUPPORTED_AE_BRACKETING_MODES = "ae-bracket-hdr-values";
+ private static final String KEY_QC_SUPPORTED_AF_BRACKETING_MODES = "af-bracket-values";
+ private static final String KEY_QC_SUPPORTED_CF_MODES = "chroma-flash-values";
+ private static final String KEY_QC_SUPPORTED_OZ_MODES = "opti-zoom-values";
private static final String KEY_QC_SUPPORTED_FACE_RECOGNITION_MODES = "face-recognition-values";
private static final String KEY_QC_SUPPORTED_DIS_MODES = "dis-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_CHROMA_FLASH = "chroma-flash";
+ public static final String KEY_QC_OPTI_ZOOM = "opti-zoom";
public static final String KEY_QC_FACE_RECOGNITION = "face-recognition";
public static final String KEY_QC_DIS_MODE = "dis";
@@ -246,6 +253,38 @@ public class CameraSettings {
return split(str);
}
+ public static List<String> getSupportedAdvancedFeatures(Parameters params) {
+ String str = params.get(KEY_QC_SUPPORTED_AF_BRACKETING_MODES);
+ str += ',' + params.get(KEY_QC_SUPPORTED_CF_MODES);
+ str += ',' + params.get(KEY_QC_SUPPORTED_OZ_MODES);
+ return split(str);
+ }
+
+ public static List<String> getSupportedAFBracketingModes(Parameters params) {
+ String str = params.get(KEY_QC_SUPPORTED_AF_BRACKETING_MODES);
+ if (str == null) {
+ return null;
+ }
+ return split(str);
+ }
+
+ public static List<String> getSupportedChromaFlashModes(Parameters params) {
+ String str = params.get(KEY_QC_SUPPORTED_CF_MODES);
+ if (str == null) {
+ return null;
+ }
+ return split(str);
+ }
+
+ public static List<String> getSupportedOptiZoomModes(Parameters params) {
+ String str = params.get(KEY_QC_SUPPORTED_OZ_MODES);
+ if (str == null) {
+ return null;
+ }
+ return split(str);
+ }
+
+
// Splits a comma delimited string to an ArrayList of String.
// Return null if the passing string is null or the size is 0.
private static ArrayList<String> split(String str) {
@@ -294,6 +333,7 @@ public class CameraSettings {
ListPreference denoise = group.findPreference(KEY_DENOISE);
ListPreference redeyeReduction = group.findPreference(KEY_REDEYE_REDUCTION);
ListPreference aeBracketing = group.findPreference(KEY_AE_BRACKET_HDR);
+ ListPreference advancedFeatures = group.findPreference(KEY_ADVANCED_FEATURES);
ListPreference faceRC = group.findPreference(KEY_FACE_RECOGNITION);
ListPreference jpegQuality = group.findPreference(KEY_JPEG_QUALITY);
ListPreference videoSnapSize = group.findPreference(KEY_VIDEO_SNAPSHOT_SIZE);
@@ -376,7 +416,10 @@ public class CameraSettings {
filterUnsupportedOptions(group,
pictureFormat, getSupportedPictureFormatLists());
}
-
+ if(advancedFeatures != null) {
+ filterUnsupportedOptions(group,
+ advancedFeatures, getSupportedAdvancedFeatures(mParameters));
+ }
}
private void initPreference(PreferenceGroup group) {
ListPreference videoQuality = group.findPreference(KEY_VIDEO_QUALITY);
diff --git a/src/com/android/camera/PhotoMenu.java b/src/com/android/camera/PhotoMenu.java
index 0f4d3b74a..26039d906 100644
--- a/src/com/android/camera/PhotoMenu.java
+++ b/src/com/android/camera/PhotoMenu.java
@@ -119,6 +119,7 @@ public class PhotoMenu extends PieController
CameraSettings.KEY_ANTIBANDING,
CameraSettings.KEY_ISO,
CameraSettings.KEY_DENOISE,
+ CameraSettings.KEY_ADVANCED_FEATURES,
CameraSettings.KEY_EXPOSURE,
CameraSettings.KEY_WHITE_BALANCE,
CameraSettings.KEY_FLASH_MODE,
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java
index 176885ce4..a64b0056c 100644
--- a/src/com/android/camera/PhotoModule.java
+++ b/src/com/android/camera/PhotoModule.java
@@ -2068,6 +2068,22 @@ public class PhotoModule
return mRestartPreview;
}
+ private void qcomUpdateAdvancedFeatures(String ubiFocus,
+ String chromaFlash,
+ String optiZoom) {
+ if (CameraUtil.isSupported(ubiFocus,
+ CameraSettings.getSupportedAFBracketingModes(mParameters))) {
+ mParameters.set(CameraSettings.KEY_QC_AF_BRACKETING, ubiFocus);
+ }
+ if (CameraUtil.isSupported(chromaFlash,
+ CameraSettings.getSupportedChromaFlashModes(mParameters))) {
+ mParameters.set(CameraSettings.KEY_QC_CHROMA_FLASH, chromaFlash);
+ }
+ if (CameraUtil.isSupported(optiZoom,
+ CameraSettings.getSupportedOptiZoomModes(mParameters))) {
+ mParameters.set(CameraSettings.KEY_QC_OPTI_ZOOM, optiZoom);
+ }
+ }
private void qcomUpdateCameraParametersPreference() {
//qcom Related Parameter update
//Set Brightness.
@@ -2205,6 +2221,41 @@ public class PhotoModule
CameraSettings.getSupportedAEBracketingModes(mParameters))) {
mParameters.set(CameraSettings.KEY_QC_AE_BRACKETING, aeBracketing);
}
+ // Set Advanced features.
+ String advancedFeature = mPreferences.getString(
+ CameraSettings.KEY_ADVANCED_FEATURES,
+ mActivity.getString(R.string.pref_camera_advanced_feature_default));
+ Log.v(TAG, " advancedFeature value =" + advancedFeature);
+
+ if(advancedFeature != null) {
+ String ubiFocusOff = mActivity.getString(R.string.
+ pref_camera_advanced_feature_value_ubifocus_off);
+ String chromaFlashOff = mActivity.getString(R.string.
+ pref_camera_advanced_feature_value_chromaflash_off);
+ String optiZoomOff = mActivity.getString(R.string.
+ pref_camera_advanced_feature_value_optizoom_off);
+
+ if (advancedFeature.equals(mActivity.getString(R.string.
+ pref_camera_advanced_feature_value_ubifocus_on))) {
+ qcomUpdateAdvancedFeatures(advancedFeature,
+ chromaFlashOff,
+ optiZoomOff);
+ } else if (advancedFeature.equals(mActivity.getString(R.string.
+ pref_camera_advanced_feature_value_chromaflash_on))) {
+ qcomUpdateAdvancedFeatures(ubiFocusOff,
+ advancedFeature,
+ optiZoomOff);
+ } else if (advancedFeature.equals(mActivity.getString(R.string.
+ pref_camera_advanced_feature_value_optizoom_on))) {
+ qcomUpdateAdvancedFeatures(ubiFocusOff,
+ chromaFlashOff,
+ advancedFeature);
+ } else {
+ qcomUpdateAdvancedFeatures(ubiFocusOff,
+ chromaFlashOff,
+ optiZoomOff);
+ }
+ }
// Set auto exposure parameter.
String autoExposure = mPreferences.getString(
CameraSettings.KEY_AUTOEXPOSURE,