aboutsummaryrefslogtreecommitdiffstats
path: root/sdk/src/java/cyanogenmod/hardware/LiveDisplayConfig.java
diff options
context:
space:
mode:
Diffstat (limited to 'sdk/src/java/cyanogenmod/hardware/LiveDisplayConfig.java')
-rw-r--r--sdk/src/java/cyanogenmod/hardware/LiveDisplayConfig.java93
1 files changed, 91 insertions, 2 deletions
diff --git a/sdk/src/java/cyanogenmod/hardware/LiveDisplayConfig.java b/sdk/src/java/cyanogenmod/hardware/LiveDisplayConfig.java
index 81cdca3..dae3db8 100644
--- a/sdk/src/java/cyanogenmod/hardware/LiveDisplayConfig.java
+++ b/sdk/src/java/cyanogenmod/hardware/LiveDisplayConfig.java
@@ -15,6 +15,7 @@
*/
package cyanogenmod.hardware;
+import static cyanogenmod.hardware.LiveDisplayManager.FEATURE_COLOR_BALANCE;
import static cyanogenmod.hardware.LiveDisplayManager.FEATURE_FIRST;
import static cyanogenmod.hardware.LiveDisplayManager.FEATURE_LAST;
import static cyanogenmod.hardware.LiveDisplayManager.MODE_FIRST;
@@ -25,7 +26,9 @@ import android.os.Parcel;
import android.os.Parcelable;
import android.util.Range;
+import java.util.Arrays;
import java.util.BitSet;
+import java.util.List;
import cyanogenmod.os.Build;
import cyanogenmod.os.Concierge;
@@ -53,13 +56,23 @@ public class LiveDisplayConfig implements Parcelable {
private final Range<Integer> mColorTemperatureRange;
private final Range<Integer> mColorBalanceRange;
+ private final Range<Float> mHueRange;
+ private final Range<Float> mSaturationRange;
+ private final Range<Float> mIntensityRange;
+ private final Range<Float> mContrastRange;
+ private final Range<Float> mSaturationThresholdRange;
public LiveDisplayConfig(BitSet capabilities, int defaultMode,
int defaultDayTemperature, int defaultNightTemperature,
boolean defaultAutoOutdoorMode, boolean defaultAutoContrast,
boolean defaultCABC, boolean defaultColorEnhancement,
Range<Integer> colorTemperatureRange,
- Range<Integer> colorBalanceRange) {
+ Range<Integer> colorBalanceRange,
+ Range<Float> hueRange,
+ Range<Float> saturationRange,
+ Range<Float> intensityRange,
+ Range<Float> contrastRange,
+ Range<Float> saturationThresholdRange) {
super();
mCapabilities = (BitSet) capabilities.clone();
mAllModes.set(MODE_FIRST, MODE_LAST);
@@ -72,6 +85,11 @@ public class LiveDisplayConfig implements Parcelable {
mDefaultColorEnhancement = defaultColorEnhancement;
mColorTemperatureRange = colorTemperatureRange;
mColorBalanceRange = colorBalanceRange;
+ mHueRange = hueRange;
+ mSaturationRange = saturationRange;
+ mIntensityRange = intensityRange;
+ mContrastRange = contrastRange;
+ mSaturationThresholdRange = saturationThresholdRange;
}
private LiveDisplayConfig(Parcel parcel) {
@@ -92,6 +110,7 @@ public class LiveDisplayConfig implements Parcelable {
int maxColorTemperature = 0;
int minColorBalance = 0;
int maxColorBalance = 0;
+ float[] paRanges = new float[10];
if (parcelableVersion >= Build.CM_VERSION_CODES.FIG) {
capabilities = parcel.readLong();
@@ -106,6 +125,7 @@ public class LiveDisplayConfig implements Parcelable {
maxColorTemperature = parcel.readInt();
minColorBalance = parcel.readInt();
maxColorBalance = parcel.readInt();
+ parcel.readFloatArray(paRanges);
}
// set temps
@@ -120,6 +140,11 @@ public class LiveDisplayConfig implements Parcelable {
mDefaultColorEnhancement = defaultColorEnhancement;
mColorTemperatureRange = Range.create(minColorTemperature, maxColorTemperature);
mColorBalanceRange = Range.create(minColorBalance, maxColorBalance);
+ mHueRange = Range.create(paRanges[0], paRanges[1]);
+ mSaturationRange = Range.create(paRanges[2], paRanges[3]);
+ mIntensityRange = Range.create(paRanges[4], paRanges[5]);
+ mContrastRange = Range.create(paRanges[6], paRanges[7]);
+ mSaturationThresholdRange = Range.create(paRanges[8], paRanges[9]);
// Complete parcel info for the concierge
parcelInfo.complete();
@@ -137,7 +162,16 @@ public class LiveDisplayConfig implements Parcelable {
sb.append(" defaultCABC=").append(mDefaultCABC);
sb.append(" defaultColorEnhancement=").append(mDefaultColorEnhancement);
sb.append(" colorTemperatureRange=").append(mColorTemperatureRange);
- sb.append(" colorBalanceRange=").append(mColorBalanceRange);
+ if (mCapabilities.get(LiveDisplayManager.FEATURE_COLOR_BALANCE)) {
+ sb.append(" colorBalanceRange=").append(mColorBalanceRange);
+ }
+ if (mCapabilities.get(LiveDisplayManager.FEATURE_PICTURE_ADJUSTMENT)) {
+ sb.append(" hueRange=").append(mHueRange);
+ sb.append(" saturationRange=").append(mSaturationRange);
+ sb.append(" intensityRange=").append(mIntensityRange);
+ sb.append(" contrastRange=").append(mContrastRange);
+ sb.append(" saturationThresholdRange=").append(mSaturationThresholdRange);
+ }
return sb.toString();
}
@@ -165,6 +199,12 @@ public class LiveDisplayConfig implements Parcelable {
out.writeInt(mColorTemperatureRange.getUpper());
out.writeInt(mColorBalanceRange.getLower());
out.writeInt(mColorBalanceRange.getUpper());
+ out.writeFloatArray(new float[] {
+ mHueRange.getLower(), mHueRange.getUpper(),
+ mSaturationRange.getLower(), mSaturationRange.getUpper(),
+ mIntensityRange.getLower(), mIntensityRange.getUpper(),
+ mContrastRange.getLower(), mContrastRange.getUpper(),
+ mSaturationThresholdRange.getLower(), mSaturationThresholdRange.getUpper() } );
// Complete the parcel info for the concierge
parcelInfo.complete();
@@ -285,6 +325,55 @@ public class LiveDisplayConfig implements Parcelable {
return mColorBalanceRange;
}
+ /**
+ * Get the supported range for hue adjustment
+ *
+ * @return float range
+ */
+ public Range<Float> getHueRange() { return mHueRange; }
+
+ /**
+ * Get the supported range for saturation adjustment
+ *
+ * @return float range
+ */
+ public Range<Float> getSaturationRange() { return mSaturationRange; }
+
+ /**
+ * Get the supported range for intensity adjustment
+ *
+ * @return float range
+ */
+ public Range<Float> getIntensityRange() { return mIntensityRange; }
+
+ /**
+ * Get the supported range for contrast adjustment
+ *
+ * @return float range
+ */
+ public Range<Float> getContrastRange() { return mContrastRange; }
+
+ /**
+ * Get the supported range for saturation threshold adjustment
+ *
+ * @return float range
+ */
+ public Range<Float> getSaturationThresholdRange() {
+ return mSaturationThresholdRange;
+ }
+
+
+ /**
+ * Convenience method to get a list of all picture adjustment ranges
+ * with a single call.
+ *
+ * @return List of float ranges
+ */
+ public List<Range<Float>> getPictureAdjustmentRanges() {
+ return Arrays.asList(mHueRange, mSaturationRange, mIntensityRange,
+ mContrastRange, mSaturationThresholdRange);
+ }
+
/** @hide */
public static final Parcelable.Creator<LiveDisplayConfig> CREATOR =
new Parcelable.Creator<LiveDisplayConfig>() {