diff options
author | Camera Software Integration <camswint@localhost> | 2015-07-29 11:29:17 -0700 |
---|---|---|
committer | Steve Kondik <steve@cyngn.com> | 2016-08-21 18:46:32 -0700 |
commit | fbab8d258597af06e6fe5e82d6b09a49116bc703 (patch) | |
tree | 17c2ed1a723c937d9333eee9f81f7c1467dd9e49 | |
parent | 6270badad595b090273ebe262bce05dfb213d580 (diff) | |
download | android_packages_apps_Snap-fbab8d258597af06e6fe5e82d6b09a49116bc703.tar.gz android_packages_apps_Snap-fbab8d258597af06e6fe5e82d6b09a49116bc703.tar.bz2 android_packages_apps_Snap-fbab8d258597af06e6fe5e82d6b09a49116bc703.zip |
SnapdragonCamera: Add noise reduction modes.
- Add menu for noise reduction modes
Change-Id: Ie5cd6590e08938fb8fbb668ac1b48aac5fe801c3
-rw-r--r-- | res/values/qcomarrays.xml | 16 | ||||
-rw-r--r-- | res/values/qcomstrings.xml | 17 | ||||
-rw-r--r-- | res/values/strings.xml | 12 | ||||
-rw-r--r-- | res/xml/video_preferences.xml | 8 | ||||
-rw-r--r-- | src/com/android/camera/CameraSettings.java | 18 | ||||
-rw-r--r-- | src/com/android/camera/VideoMenu.java | 1 | ||||
-rw-r--r-- | src/com/android/camera/VideoModule.java | 37 |
7 files changed, 107 insertions, 2 deletions
diff --git a/res/values/qcomarrays.xml b/res/values/qcomarrays.xml index 2b565fd56..0bacfe3a9 100644 --- a/res/values/qcomarrays.xml +++ b/res/values/qcomarrays.xml @@ -513,13 +513,27 @@ <string-array name="pref_camera_facedetection_entries" translatable="false"> <item>@string/setting_off</item> <item>@string/setting_on</item> - </string-array> + </string-array> <string-array name="pref_camera_facedetection_entryvalues" translatable="false"> <item>off</item> <item>on</item> </string-array> + <!-- Video Preferences Noise Reduction dialog box entries --> + <string-array name="pref_camera_noise_reduction_entries"> + <item>@string/pref_camera_noise_reduction_entry_off</item> + <item>@string/pref_camera_noise_reduction_entry_fast</item> + <item>@string/pref_camera_noise_reduction_entry_high_quality</item> + </string-array> + + <!-- Do not localize entryvalues --> + <string-array name="pref_camera_noise_reduction_entryvalues" translatable="false"> + <item>@string/pref_camera_noise_reduction_value_off</item> + <item>@string/pref_camera_noise_reduction_value_fast</item> + <item>@string/pref_camera_noise_reduction_value_high_quality</item> + </string-array> + <!-- Denoise --> <string-array name="pref_camera_denoise_entries" translatable="false"> <item>@string/setting_off</item> diff --git a/res/values/qcomstrings.xml b/res/values/qcomstrings.xml index f54df4f41..371c03ac8 100644 --- a/res/values/qcomstrings.xml +++ b/res/values/qcomstrings.xml @@ -195,6 +195,23 @@ <!-- Denoise --> <string name="pref_camera_denoise_title">Denoise</string> + + <!-- Default noise reduction setting. Do not translate. --> + <string name="pref_camera_noise_reduction_default">off</string> + + <!-- Settings screen, Select See More title --> + <string name="pref_camera_noise_reduction_title">Noise Reduction</string> + + <!-- Settings screen, see more radio button choices --> + <string name="pref_camera_noise_reduction_entry_off">Off</string> + <string name="pref_camera_noise_reduction_entry_fast">Fast</string> + <string name="pref_camera_noise_reduction_entry_high_quality">High Quality</string> + + <!-- see more entry values. Do not translate. --> + <string name="pref_camera_noise_reduction_value_off">off</string> + <string name="pref_camera_noise_reduction_value_fast">fast</string> + <string name="pref_camera_noise_reduction_value_high_quality">high-quality</string> + <string name="pref_camera_denoise_default" translatable="false">denoise-on</string> <!-- ISO --> diff --git a/res/values/strings.xml b/res/values/strings.xml index 7f97f5a9c..ddadda6e2 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -385,6 +385,18 @@ <!-- Toast after trying to select a setting that is not allowed to change in scene mode [CHAR LIMIT=NONE] --> <string name="not_selectable_in_scene_mode">Not selectable in scene mode.</string> + <!-- Toast after High Quality Noise Reduction has been enabled to show CDS is disabled --> + <string name="disable_CDS_during_HighQualityNoiseReduction">High Quality Noise Reduction will disable CDS</string> + + <!-- Toast after High Quality Noise Reduction has been enabled to show TNR is disabled --> + <string name="disable_TNR_during_HighQualityNoiseReduction">High Quality Noise Reduction will disable TNR</string> + + <!-- Toast after SeeMore has been enabled to show CDS is disabled --> + <string name="disable_CDS_during_SeeMore">SeeMore will disable CDS.</string> + + <!-- Toast after SeeMore has been enabled to show TNR is disabled --> + <string name="disable_TNR_during_SeeMore">SeeMore will disable TNR.</string> + <!-- Exposure settings in preference --> <string name="pref_exposure_title">Exposure</string> <string name="pref_exposure_default" translatable="false">0</string> diff --git a/res/xml/video_preferences.xml b/res/xml/video_preferences.xml index f4f8522ba..2cf47b5ee 100644 --- a/res/xml/video_preferences.xml +++ b/res/xml/video_preferences.xml @@ -131,7 +131,13 @@ camera:singleIcon="@drawable/ic_settings_fps" camera:entries="@array/pref_camera_hfr_entries" camera:entryValues="@array/pref_camera_hfr_entryvalues"/> - <IconListPreference + <ListPreference + camera:key="pref_camera_noise_reduction_key" + camera:defaultValue="@string/pref_camera_noise_reduction_default" + camera:title="@string/pref_camera_noise_reduction_title" + camera:entries="@array/pref_camera_noise_reduction_entries" + camera:entryValues="@array/pref_camera_noise_reduction_entryvalues"/> + <ListPreference camera:key="pref_camera_see_more_key" camera:defaultValue="@string/pref_camera_see_more_default" camera:title="@string/pref_camera_see_more_title" diff --git a/src/com/android/camera/CameraSettings.java b/src/com/android/camera/CameraSettings.java index 6d8778bcc..d3f565600 100644 --- a/src/com/android/camera/CameraSettings.java +++ b/src/com/android/camera/CameraSettings.java @@ -114,6 +114,7 @@ public class CameraSettings { 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"; public static final String KEY_SEE_MORE = "pref_camera_see_more_key"; + public static final String KEY_NOISE_REDUCTION = "pref_camera_noise_reduction_key"; public static final String KEY_VIDEO_HDR = "pref_camera_video_hdr_key"; public static final String DEFAULT_VIDEO_QUALITY_VALUE = "custom"; public static final String KEY_SKIN_TONE_ENHANCEMENT = "pref_camera_skinToneEnhancement_key"; @@ -135,6 +136,7 @@ public class CameraSettings { private static final String KEY_QC_SUPPORTED_FACE_RECOGNITION_MODES = "face-recognition-values"; private static final String KEY_QC_SUPPORTED_DIS_MODES = "dis-values"; private static final String KEY_QC_SUPPORTED_SEE_MORE_MODES = "see-more-values"; + private static final String KEY_QC_SUPPORTED_NOISE_REDUCTION_MODES = "noise-reduction-mode-values"; private static final String KEY_QC_SUPPORTED_STILL_MORE_MODES = "still-more-values"; private static final String KEY_QC_SUPPORTED_CDS_MODES = "cds-mode-values"; private static final String KEY_QC_SUPPORTED_VIDEO_CDS_MODES = "video-cds-mode-values"; @@ -167,6 +169,7 @@ public class CameraSettings { public static final String KEY_SNAPCAM_HDR_NEED_1X = "hdr-need-1x"; public static final String KEY_VIDEO_HSR = "video-hsr"; public static final String KEY_QC_SEE_MORE_MODE = "see-more"; + public static final String KEY_QC_NOISE_REDUCTION_MODE = "noise-reduction-mode"; public static final String KEY_LUMINANCE_CONITION = "luminance-condition"; public static final String LUMINANCE_CONITION_LOW = "low"; @@ -484,6 +487,14 @@ public class CameraSettings { return split(str); } + public static List<String> getSupportedNoiseReductionModes(Parameters params) { + String str = params.get(KEY_QC_SUPPORTED_NOISE_REDUCTION_MODES); + if (str == null) { + return null; + } + return split(str); + } + public static List<String> getSupportedAEBracketingModes(Parameters params) { String str = params.get(KEY_QC_SUPPORTED_AE_BRACKETING_MODES); if (str == null) { @@ -903,9 +914,16 @@ public class CameraSettings { group.findPreference(KEY_VIDEO_HIGH_FRAME_RATE); ListPreference seeMoreMode = group.findPreference(KEY_SEE_MORE); ListPreference savePath = group.findPreference(KEY_CAMERA_SAVEPATH); + ListPreference noiseReductionMode = group.findPreference(KEY_NOISE_REDUCTION); // Since the screen could be loaded from different resources, we need // to check if the preference is available here + + if (noiseReductionMode != null) { + filterUnsupportedOptions(group, noiseReductionMode, + getSupportedNoiseReductionModes(mParameters)); + } + if (seeMoreMode != null) { filterUnsupportedOptions(group, seeMoreMode, getSupportedSeeMoreModes(mParameters)); diff --git a/src/com/android/camera/VideoMenu.java b/src/com/android/camera/VideoMenu.java index 58331cfd3..1fd8b5d5f 100644 --- a/src/com/android/camera/VideoMenu.java +++ b/src/com/android/camera/VideoMenu.java @@ -135,6 +135,7 @@ public class VideoMenu extends MenuController CameraSettings.KEY_POWER_SHUTTER, CameraSettings.KEY_MAX_BRIGHTNESS, CameraSettings.KEY_SEE_MORE, + CameraSettings.KEY_NOISE_REDUCTION, CameraSettings.KEY_DIS, CameraSettings.KEY_VIDEO_EFFECT, CameraSettings.KEY_VIDEO_TIME_LAPSE_FRAME_INTERVAL, diff --git a/src/com/android/camera/VideoModule.java b/src/com/android/camera/VideoModule.java index 02bf9d4b4..5dc4c219e 100644 --- a/src/com/android/camera/VideoModule.java +++ b/src/com/android/camera/VideoModule.java @@ -2522,6 +2522,43 @@ public class VideoModule implements CameraModule, mUI.overrideSettings(CameraSettings.KEY_QC_VIDEO_TNR_MODE, video_tnr); } + String noiseReductionMode = mPreferences.getString( + CameraSettings.KEY_NOISE_REDUCTION, + mActivity.getString(R.string.pref_camera_noise_reduction_default)); + Log.v(TAG, "Noise ReductionMode =" + noiseReductionMode); + + if (isSupported(noiseReductionMode, + CameraSettings.getSupportedNoiseReductionModes(mParameters))) { + /* Disable CDS */ + if (noiseReductionMode.equals( + mActivity.getString(R.string.pref_camera_noise_reduction_value_high_quality)) && + video_cds.equals(mActivity.getString(R.string. + pref_camera_video_cds_value_on))) { + mParameters.set(CameraSettings.KEY_QC_VIDEO_CDS_MODE, + mActivity.getString(R.string.pref_camera_video_cds_value_off)); + mUI.overrideSettings(CameraSettings.KEY_QC_VIDEO_CDS_MODE, + mActivity.getString(R.string.pref_camera_video_cds_value_off)); + Toast.makeText(mActivity, R.string.disable_CDS_during_HighQualityNoiseReduction, + Toast.LENGTH_LONG).show(); + } + + /* Disable TNR */ + if (noiseReductionMode.equals( + mActivity.getString(R.string.pref_camera_noise_reduction_value_high_quality)) && + video_tnr.equals(mActivity.getString(R.string. + pref_camera_video_tnr_value_on))) { + mParameters.set(CameraSettings.KEY_QC_VIDEO_TNR_MODE, + mActivity.getString(R.string.pref_camera_video_tnr_value_off)); + mUI.overrideSettings(CameraSettings.KEY_QC_VIDEO_TNR_MODE, + mActivity.getString(R.string.pref_camera_video_tnr_value_off)); + Toast.makeText(mActivity, R.string.disable_TNR_during_HighQualityNoiseReduction, + Toast.LENGTH_LONG).show(); + } + + /* Set Noise Reduction mode */ + mParameters.set(CameraSettings.KEY_QC_NOISE_REDUCTION_MODE, noiseReductionMode); + } + String seeMoreMode = mPreferences.getString( CameraSettings.KEY_SEE_MORE, mActivity.getString(R.string.pref_camera_see_more_default)); |