aboutsummaryrefslogtreecommitdiffstats
path: root/cm/lib/main/java/org/cyanogenmod/platform/internal/CMHardwareService.java
diff options
context:
space:
mode:
Diffstat (limited to 'cm/lib/main/java/org/cyanogenmod/platform/internal/CMHardwareService.java')
-rw-r--r--cm/lib/main/java/org/cyanogenmod/platform/internal/CMHardwareService.java64
1 files changed, 64 insertions, 0 deletions
diff --git a/cm/lib/main/java/org/cyanogenmod/platform/internal/CMHardwareService.java b/cm/lib/main/java/org/cyanogenmod/platform/internal/CMHardwareService.java
index 7e79de4..6052383 100644
--- a/cm/lib/main/java/org/cyanogenmod/platform/internal/CMHardwareService.java
+++ b/cm/lib/main/java/org/cyanogenmod/platform/internal/CMHardwareService.java
@@ -36,6 +36,7 @@ import java.util.Arrays;
import org.cyanogenmod.hardware.AdaptiveBacklight;
import org.cyanogenmod.hardware.AutoContrast;
+import org.cyanogenmod.hardware.ColorBalance;
import org.cyanogenmod.hardware.ColorEnhancement;
import org.cyanogenmod.hardware.DisplayColorCalibration;
import org.cyanogenmod.hardware.DisplayGammaCalibration;
@@ -96,6 +97,11 @@ public class CMHardwareService extends CMSystemService implements ThermalUpdateC
public boolean writePersistentBytes(String key, byte[] value);
public byte[] readPersistentBytes(String key);
+
+ public int getColorBalanceMin();
+ public int getColorBalanceMax();
+ public int getColorBalance();
+ public boolean setColorBalance(int value);
}
private class LegacyCMHardware implements CMHardwareInterface {
@@ -137,6 +143,8 @@ public class CMHardwareService extends CMSystemService implements ThermalUpdateC
mSupportedFeatures |= CMHardwareManager.FEATURE_THERMAL_MONITOR;
if (UniqueDeviceId.isSupported())
mSupportedFeatures |= CMHardwareManager.FEATURE_UNIQUE_DEVICE_ID;
+ if (ColorBalance.isSupported())
+ mSupportedFeatures |= CMHardwareManager.FEATURE_COLOR_BALANCE;
}
public int getSupportedFeatures() {
@@ -334,6 +342,22 @@ public class CMHardwareService extends CMSystemService implements ThermalUpdateC
public byte[] readPersistentBytes(String key) {
return PersistentStorage.get(key);
}
+
+ public int getColorBalanceMin() {
+ return ColorBalance.getMinValue();
+ }
+
+ public int getColorBalanceMax() {
+ return ColorBalance.getMaxValue();
+ }
+
+ public int getColorBalance() {
+ return ColorBalance.getValue();
+ }
+
+ public boolean setColorBalance(int value) {
+ return ColorBalance.setValue(value);
+ }
}
private CMHardwareInterface getImpl(Context context) {
@@ -687,5 +711,45 @@ public class CMHardwareService extends CMSystemService implements ThermalUpdateC
}
return false;
}
+
+ @Override
+ public int getColorBalanceMin() {
+ mContext.enforceCallingOrSelfPermission(
+ cyanogenmod.platform.Manifest.permission.HARDWARE_ABSTRACTION_ACCESS, null);
+ if (isSupported(CMHardwareManager.FEATURE_COLOR_BALANCE)) {
+ return mCmHwImpl.getColorBalanceMin();
+ }
+ return 0;
+ }
+
+ @Override
+ public int getColorBalanceMax() {
+ mContext.enforceCallingOrSelfPermission(
+ cyanogenmod.platform.Manifest.permission.HARDWARE_ABSTRACTION_ACCESS, null);
+ if (isSupported(CMHardwareManager.FEATURE_COLOR_BALANCE)) {
+ return mCmHwImpl.getColorBalanceMax();
+ }
+ return 0;
+ }
+
+ @Override
+ public int getColorBalance() {
+ mContext.enforceCallingOrSelfPermission(
+ cyanogenmod.platform.Manifest.permission.HARDWARE_ABSTRACTION_ACCESS, null);
+ if (isSupported(CMHardwareManager.FEATURE_COLOR_BALANCE)) {
+ return mCmHwImpl.getColorBalance();
+ }
+ return 0;
+ }
+
+ @Override
+ public boolean setColorBalance(int value) {
+ mContext.enforceCallingOrSelfPermission(
+ cyanogenmod.platform.Manifest.permission.HARDWARE_ABSTRACTION_ACCESS, null);
+ if (isSupported(CMHardwareManager.FEATURE_COLOR_BALANCE)) {
+ return mCmHwImpl.setColorBalance(value);
+ }
+ return false;
+ }
};
}