Last active
July 5, 2020 15:40
-
-
Save pawitp/5450415 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
From 5e101a379e79721f7be8203f47abd0509536eaae Mon Sep 17 00:00:00 2001 | |
From: Pawit Pornkitprasan <p.pawit@gmail.com> | |
Date: Wed, 24 Apr 2013 14:55:05 +0700 | |
Subject: [PATCH] Camera: antibanding setting | |
Some camera HALs do not support auto-antibanding and the user | |
needs to configure it to match their electricity frequency | |
Change-Id: Ie2022d78ad2fd293a6f39aacf7804fe21f7589d5 | |
--- | |
res/values/arrays.xml | 15 +++++++++++++++ | |
res/values/cm_strings.xml | 8 ++++++++ | |
res/xml/camera_preferences.xml | 6 ++++++ | |
res/xml/video_preferences.xml | 6 ++++++ | |
src/com/android/camera/CameraSettings.java | 6 ++++++ | |
src/com/android/camera/PhotoController.java | 3 ++- | |
src/com/android/camera/PhotoModule.java | 8 ++++++++ | |
src/com/android/camera/VideoController.java | 3 ++- | |
src/com/android/camera/VideoModule.java | 8 ++++++++ | |
9 files changed, 61 insertions(+), 2 deletions(-) | |
diff --git a/res/values/arrays.xml b/res/values/arrays.xml | |
index 7f600ca..27cac41 100644 | |
--- a/res/values/arrays.xml | |
+++ b/res/values/arrays.xml | |
@@ -505,4 +505,19 @@ | |
<item>@drawable/ic_exposure_p4</item> | |
<item>@drawable/ic_exposure_p5</item> | |
</array> | |
+ | |
+ <!-- Antibanding --> | |
+ <string-array name="pref_camera_antibanding_entryvalues" translatable="false"> | |
+ <item>off</item> | |
+ <item>auto</item> | |
+ <item>50hz</item> | |
+ <item>60hz</item> | |
+ </string-array> | |
+ | |
+ <string-array name="pref_camera_antibanding_entries" translatable="false"> | |
+ <item>@string/pref_camera_antibanding_entry_off</item> | |
+ <item>@string/pref_camera_antibanding_entry_auto</item> | |
+ <item>@string/pref_camera_antibanding_entry_50hz</item> | |
+ <item>@string/pref_camera_antibanding_entry_60hz</item> | |
+ </string-array> | |
</resources> | |
diff --git a/res/values/cm_strings.xml b/res/values/cm_strings.xml | |
index e666416..08f395e 100644 | |
--- a/res/values/cm_strings.xml | |
+++ b/res/values/cm_strings.xml | |
@@ -201,4 +201,12 @@ | |
<!-- Default HDR Video entry value --> | |
<string name="pref_video_hdr_default" translatable="false">@string/setting_off_value</string> | |
<string name="pref_video_hdr">HDR</string> | |
+ | |
+ <!-- Settings screen, Antibanding --> | |
+ <string name="pref_camera_antibanding_title">Antibanding</string> | |
+ <string name="pref_camera_antibanding_default" translatable="false">auto</string> | |
+ <string name="pref_camera_antibanding_entry_auto">Auto</string> | |
+ <string name="pref_camera_antibanding_entry_50hz">50z</string> | |
+ <string name="pref_camera_antibanding_entry_60hz">60z</string> | |
+ <string name="pref_camera_antibanding_entry_off">Off</string> | |
</resources> | |
diff --git a/res/xml/camera_preferences.xml b/res/xml/camera_preferences.xml | |
index 3db0f43..8dce9cf 100644 | |
--- a/res/xml/camera_preferences.xml | |
+++ b/res/xml/camera_preferences.xml | |
@@ -130,4 +130,10 @@ | |
camera:entries="@array/pref_nohands_persistent_entries" | |
camera:defaultValue="@string/pref_nohands_persistent_default" | |
camera:entryValues="@array/pref_nohands_persistent_entryvalues" /> | |
+ <ListPreference | |
+ camera:key="pref_camera_antibanding_key" | |
+ camera:defaultValue="@string/pref_camera_antibanding_default" | |
+ camera:title="@string/pref_camera_antibanding_title" | |
+ camera:entries="@array/pref_camera_antibanding_entries" | |
+ camera:entryValues="@array/pref_camera_antibanding_entryvalues" /> | |
</PreferenceGroup> | |
diff --git a/res/xml/video_preferences.xml b/res/xml/video_preferences.xml | |
index e4b47ef..781d63f 100644 | |
--- a/res/xml/video_preferences.xml | |
+++ b/res/xml/video_preferences.xml | |
@@ -101,4 +101,10 @@ | |
<ListPreference | |
camera:key="pref_camera_storage_key" | |
camera:title="@string/pref_camera_storage_title" /> | |
+ <ListPreference | |
+ camera:key="pref_camera_antibanding_key" | |
+ camera:defaultValue="@string/pref_camera_antibanding_default" | |
+ camera:title="@string/pref_camera_antibanding_title" | |
+ camera:entries="@array/pref_camera_antibanding_entries" | |
+ camera:entryValues="@array/pref_camera_antibanding_entryvalues" /> | |
</PreferenceGroup> | |
diff --git a/src/com/android/camera/CameraSettings.java b/src/com/android/camera/CameraSettings.java | |
index 7b21b85..328be00 100644 | |
--- a/src/com/android/camera/CameraSettings.java | |
+++ b/src/com/android/camera/CameraSettings.java | |
@@ -79,6 +79,7 @@ public class CameraSettings { | |
public static final String KEY_NOHANDS_MODE = "pref_nohands_shutter_key"; | |
public static final String KEY_PERSISTENT_NOHANDS = "pref_nohands_persistent_key"; | |
public static final String KEY_VIDEO_HDR = "pref_video_hdr_key"; | |
+ public static final String KEY_ANTIBANDING = "pref_camera_antibanding_key"; | |
public static final String EXPOSURE_DEFAULT_VALUE = "0"; | |
public static final String VALUE_ON = "on"; | |
@@ -192,6 +193,7 @@ public class CameraSettings { | |
ListPreference videoColorEffect = group.findPreference(KEY_VIDEOCAMERA_COLOR_EFFECT); | |
ListPreference storage = group.findPreference(KEY_STORAGE); | |
ListPreference videoHdr = group.findPreference(KEY_VIDEO_HDR); | |
+ ListPreference antibanding = group.findPreference(KEY_ANTIBANDING); | |
// Since the screen could be loaded from different resources, we need | |
// to check if the preference is available here | |
@@ -270,6 +272,10 @@ public class CameraSettings { | |
!Util.isVideoHdrSupported(mParameters)) { | |
removePreference(group, videoHdr.getKey()); | |
} | |
+ if (antibanding != null) { | |
+ filterUnsupportedOptions(group, | |
+ antibanding, mParameters.getSupportedAntibanding()); | |
+ } | |
} | |
private void buildStorage(PreferenceGroup group, ListPreference storage) { | |
diff --git a/src/com/android/camera/PhotoController.java b/src/com/android/camera/PhotoController.java | |
index 30c4870..0c0eab3 100644 | |
--- a/src/com/android/camera/PhotoController.java | |
+++ b/src/com/android/camera/PhotoController.java | |
@@ -108,7 +108,8 @@ public class PhotoController extends PieController | |
CameraSettings.KEY_JPEG, | |
CameraSettings.KEY_COLOR_EFFECT, | |
CameraSettings.KEY_PERSISTENT_NOHANDS, | |
- CameraSettings.KEY_BURST_MODE}; | |
+ CameraSettings.KEY_BURST_MODE, | |
+ CameraSettings.KEY_ANTIBANDING}; | |
PieItem item = makeItem(R.drawable.ic_settings_holo_light); | |
item.setFixedSlice(FLOAT_PI_DIVIDED_BY_TWO * 3, sweep); | |
item.setOnClickListener(new OnClickListener() { | |
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java | |
index aca1abc..c796f17 100644 | |
--- a/src/com/android/camera/PhotoModule.java | |
+++ b/src/com/android/camera/PhotoModule.java | |
@@ -2635,6 +2635,14 @@ public class PhotoModule | |
mParameters.setColorEffect(colorEffect); | |
} | |
+ // Antibanding | |
+ String antibanding = mPreferences.getString( | |
+ CameraSettings.KEY_ANTIBANDING, | |
+ mActivity.getString(R.string.pref_camera_antibanding_default)); | |
+ if (Util.isSupported(antibanding, mParameters.getSupportedAntibanding())) { | |
+ mParameters.setAntibanding(antibanding); | |
+ } | |
+ | |
// Set exposure compensation | |
if (!mHDRShotInProgress) { | |
int value = CameraSettings.readExposure(mPreferences); | |
diff --git a/src/com/android/camera/VideoController.java b/src/com/android/camera/VideoController.java | |
index 04f4196..312bf47 100644 | |
--- a/src/com/android/camera/VideoController.java | |
+++ b/src/com/android/camera/VideoController.java | |
@@ -106,7 +106,8 @@ public class VideoController extends PieController | |
CameraSettings.KEY_RECORD_LOCATION, | |
CameraSettings.KEY_POWER_SHUTTER, | |
CameraSettings.KEY_VIDEOCAMERA_COLOR_EFFECT, | |
- CameraSettings.KEY_VIDEOCAMERA_JPEG}; | |
+ CameraSettings.KEY_VIDEOCAMERA_JPEG, | |
+ CameraSettings.KEY_ANTIBANDING}; | |
PieItem item = makeItem(R.drawable.ic_settings_holo_light); | |
item.setFixedSlice(FLOAT_PI_DIVIDED_BY_TWO * 3, sweep); | |
diff --git a/src/com/android/camera/VideoModule.java b/src/com/android/camera/VideoModule.java | |
index 2cdcc68..f4187b6 100644 | |
--- a/src/com/android/camera/VideoModule.java | |
+++ b/src/com/android/camera/VideoModule.java | |
@@ -2033,6 +2033,14 @@ public class VideoModule implements CameraModule, | |
mParameters.setColorEffect(colorEffect); | |
} | |
+ // Antibanding | |
+ String antibanding = mPreferences.getString( | |
+ CameraSettings.KEY_ANTIBANDING, | |
+ mActivity.getString(R.string.pref_camera_antibanding_default)); | |
+ if (Util.isSupported(antibanding, mParameters.getSupportedAntibanding())) { | |
+ mParameters.setAntibanding(antibanding); | |
+ } | |
+ | |
// Set exposure compensation | |
int value = CameraSettings.readExposure(mPreferences); | |
int max = mParameters.getMaxExposureCompensation(); | |
-- | |
1.7.3.4 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment