diff options
Diffstat (limited to 'cmhw/org/cyanogenmod/hardware/SunlightEnhancement.java')
-rw-r--r-- | cmhw/org/cyanogenmod/hardware/SunlightEnhancement.java | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/cmhw/org/cyanogenmod/hardware/SunlightEnhancement.java b/cmhw/org/cyanogenmod/hardware/SunlightEnhancement.java new file mode 100644 index 0000000..a83e9cd --- /dev/null +++ b/cmhw/org/cyanogenmod/hardware/SunlightEnhancement.java @@ -0,0 +1,88 @@ +/* + * Copyright (C) 2016 The CyanogenMod Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.cyanogenmod.hardware; + +import org.cyanogenmod.internal.util.FileUtils; + +import android.util.Log; + +/** + * Facemelt mode! + */ +public class SunlightEnhancement { + + private static final String TAG = "SunlightEnhancement"; + + private static final String FILE_HBM = "/sys/class/graphics/fb0/hbm"; + + /** + * Whether device supports HBM + * + * @return boolean Supported devices must return always true + */ + public static boolean isSupported() { + return FileUtils.isFileWritable(FILE_HBM); + } + + /** + * This method return the current activation status of HBM + * + * @return boolean Must be false when HBM is not supported or not activated, or + * the operation failed while reading the status; true in any other case. + */ + public static boolean isEnabled() { + try { + return Integer.parseInt(FileUtils.readOneLine(FILE_HBM)) > 0; + } catch (Exception e) { + Log.e(TAG, e.getMessage(), e); + } + return false; + } + + /** + * This method allows to setup HBM + * + * @param status The new HBM status + * @return boolean Must be false if HBM is not supported or the operation + * failed; true in any other case. + */ + public static boolean setEnabled(boolean status) { + return FileUtils.writeLine(FILE_HBM, status ? "1" : "0"); + } + + /** + * Whether adaptive backlight (CABL / CABC) is required to be enabled + * + * @return boolean False if adaptive backlight is not a dependency + */ + public static boolean isAdaptiveBacklightRequired() { + return false; + } + + /** + * Set this to true if the implementation is self-managed and does + * it's own ambient sensing. In this case, setEnabled is assumed + * to toggle the feature on or off, but not activate it. If set + * to false, LiveDisplay will call setEnabled when the ambient lux + * threshold is crossed. + * + * @return true if this enhancement is self-managed + */ + public static boolean isSelfManaged() { + return false; + } +} |