aboutsummaryrefslogtreecommitdiffstats
path: root/sdk/src/java/cyanogenmod/hardware/CMHardwareManager.java
diff options
context:
space:
mode:
authorSteve Kondik <steve@cyngn.com>2016-07-18 02:36:42 -0700
committerSteve Kondik <steve@cyngn.com>2016-07-20 10:07:31 -0700
commit86cae92291f728d0eca637573ecbe6e0a53ccf1a (patch)
tree577cc188e1b9fc69b006135fbb480b1848a29e1d /sdk/src/java/cyanogenmod/hardware/CMHardwareManager.java
parent25d708141814289067587e504a0bb33a76c28a78 (diff)
downloadvendor_cmsdk-86cae92291f728d0eca637573ecbe6e0a53ccf1a.zip
vendor_cmsdk-86cae92291f728d0eca637573ecbe6e0a53ccf1a.tar.gz
vendor_cmsdk-86cae92291f728d0eca637573ecbe6e0a53ccf1a.tar.bz2
livedisplay: Add support for direct color balance control
* We currently use the DisplayColorCalibration API for setting display temperature which makes a lot of guesses about what temperature the display really is. Some devices will support the new ColorBalance API (via QDCM or other mechanism), which offers a calibrated alternative. Add support for this, which will supercede DCC if available. * Additionally, define the available color temperature range as a set of overlayable values so this can be specified per-device. This range will be mapped to balance values using the power curve calculations in the new MathUtils class. Change-Id: I99608c09807b747d962680293c7b0cee8d669003
Diffstat (limited to 'sdk/src/java/cyanogenmod/hardware/CMHardwareManager.java')
-rw-r--r--sdk/src/java/cyanogenmod/hardware/CMHardwareManager.java39
1 files changed, 39 insertions, 0 deletions
diff --git a/sdk/src/java/cyanogenmod/hardware/CMHardwareManager.java b/sdk/src/java/cyanogenmod/hardware/CMHardwareManager.java
index 7765b94..d31ce9b 100644
--- a/sdk/src/java/cyanogenmod/hardware/CMHardwareManager.java
+++ b/sdk/src/java/cyanogenmod/hardware/CMHardwareManager.java
@@ -20,6 +20,7 @@ import android.os.IBinder;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.util.Log;
+import android.util.Range;
import cyanogenmod.app.CMContextConstants;
@@ -129,6 +130,11 @@ public final class CMHardwareManager {
*/
public static final int FEATURE_UNIQUE_DEVICE_ID = 0x10000;
+ /**
+ * Color balance
+ */
+ public static final int FEATURE_COLOR_BALANCE = 0x20000;
+
private static final List<Integer> BOOLEAN_FEATURES = Arrays.asList(
FEATURE_ADAPTIVE_BACKLIGHT,
FEATURE_COLOR_ENHANCEMENT,
@@ -803,6 +809,39 @@ public final class CMHardwareManager {
return false;
}
+ public Range<Integer> getColorBalanceRange() {
+ int min = 0;
+ int max = 0;
+ try {
+ if (checkService()) {
+ min = sService.getColorBalanceMin();
+ max = sService.getColorBalanceMax();
+ }
+ } catch (RemoteException e) {
+ }
+ return new Range<Integer>(min, max);
+ }
+
+ public int getColorBalance() {
+ try {
+ if (checkService()) {
+ return sService.getColorBalance();
+ }
+ } catch (RemoteException e) {
+ }
+ return 0;
+ }
+
+ public boolean setColorBalance(int value) {
+ try {
+ if (checkService()) {
+ return sService.setColorBalance(value);
+ }
+ } catch (RemoteException e) {
+ }
+ return false;
+ }
+
/**
* @return true if service is valid
*/