Loading services/core/java/com/android/server/display/AutomaticBrightnessController.java +32 −0 Original line number Diff line number Diff line Loading @@ -1160,6 +1160,14 @@ public class AutomaticBrightnessController { update(); } /** * Convert a brightness float scale value to a nit value. Adjustments, such as RBC, are not * applied. This is used when storing the brightness in nits for the default display and when * passing the brightness value to follower displays. * * @param brightness The float scale value * @return The nit value or -1f if no conversion is possible. */ public float convertToNits(float brightness) { if (mCurrentBrightnessMapper != null) { return mCurrentBrightnessMapper.convertToNits(brightness); Loading @@ -1168,6 +1176,30 @@ public class AutomaticBrightnessController { } } /** * Convert a brightness float scale value to a nit value. Adjustments, such as RBC are applied. * This is used when sending the brightness value to * {@link com.android.server.display.BrightnessTracker}. * * @param brightness The float scale value * @return The nit value or -1f if no conversion is possible. */ public float convertToAdjustedNits(float brightness) { if (mCurrentBrightnessMapper != null) { return mCurrentBrightnessMapper.convertToAdjustedNits(brightness); } else { return -1.0f; } } /** * Convert a brightness nit value to a float scale value. It is assumed that the nit value * provided does not have adjustments, such as RBC, applied. * * @param nits The nit value * @return The float scale value or {@link PowerManager.BRIGHTNESS_INVALID_FLOAT} if no * conversion is possible. */ public float convertToFloatScale(float nits) { if (mCurrentBrightnessMapper != null) { return mCurrentBrightnessMapper.convertToFloatScale(nits); Loading services/core/java/com/android/server/display/BrightnessMappingStrategy.java +42 −6 Original line number Diff line number Diff line Loading @@ -321,6 +321,14 @@ public abstract class BrightnessMappingStrategy { */ public abstract float convertToNits(float brightness); /** * Converts the provided brightness value to nits if possible. Adjustments, such as RBC are * applied. * * Returns -1.0f if there's no available mapping for the brightness to nits. */ public abstract float convertToAdjustedNits(float brightness); /** * Converts the provided nit value to a float scale value if possible. * Loading Loading @@ -682,6 +690,11 @@ public abstract class BrightnessMappingStrategy { return -1.0f; } @Override public float convertToAdjustedNits(float brightness) { return -1.0f; } @Override public float convertToFloatScale(float nits) { return PowerManager.BRIGHTNESS_INVALID_FLOAT; Loading Loading @@ -804,6 +817,14 @@ public abstract class BrightnessMappingStrategy { // a brightness in nits. private Spline mBrightnessToNitsSpline; // A spline mapping from nits with adjustments applied to the corresponding brightness // value, normalized to the range [0, 1.0]. private Spline mAdjustedNitsToBrightnessSpline; // A spline mapping from the system brightness value, normalized to the range [0, 1.0], to // a brightness in nits with adjustments applied. private Spline mBrightnessToAdjustedNitsSpline; // The default brightness configuration. private final BrightnessConfiguration mDefaultConfig; Loading Loading @@ -843,6 +864,8 @@ public abstract class BrightnessMappingStrategy { mNits = nits; mBrightness = brightness; computeNitsBrightnessSplines(mNits); mAdjustedNitsToBrightnessSpline = mNitsToBrightnessSpline; mBrightnessToAdjustedNitsSpline = mBrightnessToNitsSpline; mDefaultConfig = config; if (mLoggingEnabled) { Loading Loading @@ -892,7 +915,7 @@ public abstract class BrightnessMappingStrategy { nits = mDisplayWhiteBalanceController.calculateAdjustedBrightnessNits(nits); } float brightness = mNitsToBrightnessSpline.interpolate(nits); float brightness = mAdjustedNitsToBrightnessSpline.interpolate(nits); // Correct the brightness according to the current application and its category, but // only if no user data point is set (as this will override the user setting). if (mUserLux == -1) { Loading Loading @@ -929,6 +952,11 @@ public abstract class BrightnessMappingStrategy { return mBrightnessToNitsSpline.interpolate(brightness); } @Override public float convertToAdjustedNits(float brightness) { return mBrightnessToAdjustedNitsSpline.interpolate(brightness); } @Override public float convertToFloatScale(float nits) { return mNitsToBrightnessSpline.interpolate(nits); Loading Loading @@ -989,7 +1017,13 @@ public abstract class BrightnessMappingStrategy { @Override public void recalculateSplines(boolean applyAdjustment, float[] adjustedNits) { mBrightnessRangeAdjustmentApplied = applyAdjustment; computeNitsBrightnessSplines(mBrightnessRangeAdjustmentApplied ? adjustedNits : mNits); if (applyAdjustment) { mAdjustedNitsToBrightnessSpline = Spline.createSpline(adjustedNits, mBrightness); mBrightnessToAdjustedNitsSpline = Spline.createSpline(mBrightness, adjustedNits); } else { mAdjustedNitsToBrightnessSpline = mNitsToBrightnessSpline; mBrightnessToAdjustedNitsSpline = mBrightnessToNitsSpline; } } @Override Loading @@ -999,6 +1033,8 @@ public abstract class BrightnessMappingStrategy { pw.println(" mBrightnessSpline=" + mBrightnessSpline); pw.println(" mNitsToBrightnessSpline=" + mNitsToBrightnessSpline); pw.println(" mBrightnessToNitsSpline=" + mBrightnessToNitsSpline); pw.println(" mAdjustedNitsToBrightnessSpline=" + mAdjustedNitsToBrightnessSpline); pw.println(" mAdjustedBrightnessToNitsSpline=" + mBrightnessToAdjustedNitsSpline); pw.println(" mMaxGamma=" + mMaxGamma); pw.println(" mAutoBrightnessAdjustment=" + mAutoBrightnessAdjustment); pw.println(" mUserLux=" + mUserLux); Loading Loading @@ -1072,7 +1108,7 @@ public abstract class BrightnessMappingStrategy { float defaultNits = defaultSpline.interpolate(lux); float longTermNits = currSpline.interpolate(lux); float shortTermNits = mBrightnessSpline.interpolate(lux); float brightness = mNitsToBrightnessSpline.interpolate(shortTermNits); float brightness = mAdjustedNitsToBrightnessSpline.interpolate(shortTermNits); String luxPrefix = (lux == mUserLux ? "^" : ""); String strLux = luxPrefix + toStrFloatForDump(lux); Loading Loading @@ -1146,7 +1182,7 @@ public abstract class BrightnessMappingStrategy { float[] defaultNits = defaultCurve.second; float[] defaultBrightness = new float[defaultNits.length]; for (int i = 0; i < defaultBrightness.length; i++) { defaultBrightness[i] = mNitsToBrightnessSpline.interpolate(defaultNits[i]); defaultBrightness[i] = mAdjustedNitsToBrightnessSpline.interpolate(defaultNits[i]); } Pair<float[], float[]> curve = getAdjustedCurve(defaultLux, defaultBrightness, mUserLux, mUserBrightness, mAutoBrightnessAdjustment, mMaxGamma); Loading @@ -1154,7 +1190,7 @@ public abstract class BrightnessMappingStrategy { float[] brightness = curve.second; float[] nits = new float[brightness.length]; for (int i = 0; i < nits.length; i++) { nits[i] = mBrightnessToNitsSpline.interpolate(brightness[i]); nits[i] = mBrightnessToAdjustedNitsSpline.interpolate(brightness[i]); } mBrightnessSpline = Spline.createSpline(lux, nits); } Loading @@ -1162,7 +1198,7 @@ public abstract class BrightnessMappingStrategy { private float getUnadjustedBrightness(float lux) { Pair<float[], float[]> curve = mConfig.getCurve(); Spline spline = Spline.createSpline(curve.first, curve.second); return mNitsToBrightnessSpline.interpolate(spline.interpolate(lux)); return mAdjustedNitsToBrightnessSpline.interpolate(spline.interpolate(lux)); } private float correctBrightness(float brightness, String packageName, int category) { Loading services/core/java/com/android/server/display/DisplayPowerController.java +13 −6 Original line number Diff line number Diff line Loading @@ -1039,7 +1039,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call noteScreenBrightness(mPowerState.getScreenBrightness()); // Initialize all of the brightness tracking state final float brightness = convertToNits(mPowerState.getScreenBrightness()); final float brightness = convertToAdjustedNits(mPowerState.getScreenBrightness()); if (mBrightnessTracker != null && brightness >= PowerManager.BRIGHTNESS_MIN) { mBrightnessTracker.start(brightness); } Loading Loading @@ -2698,7 +2698,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call private void notifyBrightnessTrackerChanged(float brightness, boolean userInitiated, boolean wasShortTermModelActive) { final float brightnessInNits = convertToNits(brightness); final float brightnessInNits = convertToAdjustedNits(brightness); if (mUseAutoBrightness && brightnessInNits >= 0.0f && mAutomaticBrightnessController != null && mBrightnessTracker != null) { // We only want to track changes on devices that can actually map the display backlight Loading @@ -2722,6 +2722,13 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call return mAutomaticBrightnessController.convertToNits(brightness); } private float convertToAdjustedNits(float brightness) { if (mAutomaticBrightnessController == null) { return -1f; } return mAutomaticBrightnessController.convertToAdjustedNits(brightness); } private float convertToFloatScale(float nits) { if (mAutomaticBrightnessController == null) { return PowerManager.BRIGHTNESS_INVALID_FLOAT; Loading Loading @@ -3075,16 +3082,16 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call int appliedRbcStrength = event.isRbcEnabled() ? event.getRbcStrength() : -1; float appliedHbmMaxNits = event.getHbmMode() == BrightnessInfo.HIGH_BRIGHTNESS_MODE_OFF ? -1f : convertToNits(event.getHbmMax()); ? -1f : convertToAdjustedNits(event.getHbmMax()); // thermalCapNits set to -1 if not currently capping max brightness float appliedThermalCapNits = event.getThermalMax() == PowerManager.BRIGHTNESS_MAX ? -1f : convertToNits(event.getThermalMax()); ? -1f : convertToAdjustedNits(event.getThermalMax()); if (mIsDisplayInternal) { FrameworkStatsLog.write(FrameworkStatsLog.DISPLAY_BRIGHTNESS_CHANGED, convertToNits(event.getInitialBrightness()), convertToNits(event.getBrightness()), convertToAdjustedNits(event.getInitialBrightness()), convertToAdjustedNits(event.getBrightness()), event.getLux(), event.getPhysicalDisplayId(), event.wasShortTermModelActive(), Loading services/core/java/com/android/server/display/DisplayPowerController2.java +8 −6 Original line number Diff line number Diff line Loading @@ -854,7 +854,7 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal noteScreenBrightness(mPowerState.getScreenBrightness()); // Initialize all of the brightness tracking state final float brightness = mDisplayBrightnessController.convertToNits( final float brightness = mDisplayBrightnessController.convertToAdjustedNits( mPowerState.getScreenBrightness()); if (mBrightnessTracker != null && brightness >= PowerManager.BRIGHTNESS_MIN) { mBrightnessTracker.start(brightness); Loading Loading @@ -2165,7 +2165,8 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal private void notifyBrightnessTrackerChanged(float brightness, boolean userInitiated, boolean wasShortTermModelActive) { final float brightnessInNits = mDisplayBrightnessController.convertToNits(brightness); final float brightnessInNits = mDisplayBrightnessController.convertToAdjustedNits(brightness); if (mAutomaticBrightnessStrategy.shouldUseAutoBrightness() && brightnessInNits >= 0.0f && mAutomaticBrightnessController != null && mBrightnessTracker != null) { // We only want to track changes on devices that can actually map the display backlight Loading Loading @@ -2438,15 +2439,16 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal int appliedRbcStrength = event.isRbcEnabled() ? event.getRbcStrength() : -1; float appliedHbmMaxNits = event.getHbmMode() == BrightnessInfo.HIGH_BRIGHTNESS_MODE_OFF ? -1f : mDisplayBrightnessController.convertToNits(event.getHbmMax()); ? -1f : mDisplayBrightnessController.convertToAdjustedNits(event.getHbmMax()); // thermalCapNits set to -1 if not currently capping max brightness float appliedThermalCapNits = event.getThermalMax() == PowerManager.BRIGHTNESS_MAX ? -1f : mDisplayBrightnessController.convertToNits(event.getThermalMax()); ? -1f : mDisplayBrightnessController.convertToAdjustedNits(event.getThermalMax()); if (mIsDisplayInternal) { FrameworkStatsLog.write(FrameworkStatsLog.DISPLAY_BRIGHTNESS_CHANGED, mDisplayBrightnessController.convertToNits(event.getInitialBrightness()), mDisplayBrightnessController.convertToNits(event.getBrightness()), mDisplayBrightnessController .convertToAdjustedNits(event.getInitialBrightness()), mDisplayBrightnessController.convertToAdjustedNits(event.getBrightness()), event.getLux(), event.getPhysicalDisplayId(), event.wasShortTermModelActive(), Loading services/core/java/com/android/server/display/brightness/DisplayBrightnessController.java +22 −2 Original line number Diff line number Diff line Loading @@ -312,7 +312,10 @@ public final class DisplayBrightnessController { } /** * Convert a brightness float scale value to a nit value. * Convert a brightness float scale value to a nit value. Adjustments, such as RBC, are not * applied. This is used when storing the brightness in nits for the default display and when * passing the brightness value to follower displays. * * @param brightness The float scale value * @return The nit value or -1f if no conversion is possible. */ Loading @@ -324,7 +327,24 @@ public final class DisplayBrightnessController { } /** * Convert a brightness nit value to a float scale value. * Convert a brightness float scale value to a nit value. Adjustments, such as RBC are applied. * This is used when sending the brightness value to * {@link com.android.server.display.BrightnessTracker}. * * @param brightness The float scale value * @return The nit value or -1f if no conversion is possible. */ public float convertToAdjustedNits(float brightness) { if (mAutomaticBrightnessController == null) { return -1f; } return mAutomaticBrightnessController.convertToAdjustedNits(brightness); } /** * Convert a brightness nit value to a float scale value. It is assumed that the nit value * provided does not have adjustments, such as RBC, applied. * * @param nits The nit value * @return The float scale value or {@link PowerManager.BRIGHTNESS_INVALID_FLOAT} if no * conversion is possible. Loading Loading
services/core/java/com/android/server/display/AutomaticBrightnessController.java +32 −0 Original line number Diff line number Diff line Loading @@ -1160,6 +1160,14 @@ public class AutomaticBrightnessController { update(); } /** * Convert a brightness float scale value to a nit value. Adjustments, such as RBC, are not * applied. This is used when storing the brightness in nits for the default display and when * passing the brightness value to follower displays. * * @param brightness The float scale value * @return The nit value or -1f if no conversion is possible. */ public float convertToNits(float brightness) { if (mCurrentBrightnessMapper != null) { return mCurrentBrightnessMapper.convertToNits(brightness); Loading @@ -1168,6 +1176,30 @@ public class AutomaticBrightnessController { } } /** * Convert a brightness float scale value to a nit value. Adjustments, such as RBC are applied. * This is used when sending the brightness value to * {@link com.android.server.display.BrightnessTracker}. * * @param brightness The float scale value * @return The nit value or -1f if no conversion is possible. */ public float convertToAdjustedNits(float brightness) { if (mCurrentBrightnessMapper != null) { return mCurrentBrightnessMapper.convertToAdjustedNits(brightness); } else { return -1.0f; } } /** * Convert a brightness nit value to a float scale value. It is assumed that the nit value * provided does not have adjustments, such as RBC, applied. * * @param nits The nit value * @return The float scale value or {@link PowerManager.BRIGHTNESS_INVALID_FLOAT} if no * conversion is possible. */ public float convertToFloatScale(float nits) { if (mCurrentBrightnessMapper != null) { return mCurrentBrightnessMapper.convertToFloatScale(nits); Loading
services/core/java/com/android/server/display/BrightnessMappingStrategy.java +42 −6 Original line number Diff line number Diff line Loading @@ -321,6 +321,14 @@ public abstract class BrightnessMappingStrategy { */ public abstract float convertToNits(float brightness); /** * Converts the provided brightness value to nits if possible. Adjustments, such as RBC are * applied. * * Returns -1.0f if there's no available mapping for the brightness to nits. */ public abstract float convertToAdjustedNits(float brightness); /** * Converts the provided nit value to a float scale value if possible. * Loading Loading @@ -682,6 +690,11 @@ public abstract class BrightnessMappingStrategy { return -1.0f; } @Override public float convertToAdjustedNits(float brightness) { return -1.0f; } @Override public float convertToFloatScale(float nits) { return PowerManager.BRIGHTNESS_INVALID_FLOAT; Loading Loading @@ -804,6 +817,14 @@ public abstract class BrightnessMappingStrategy { // a brightness in nits. private Spline mBrightnessToNitsSpline; // A spline mapping from nits with adjustments applied to the corresponding brightness // value, normalized to the range [0, 1.0]. private Spline mAdjustedNitsToBrightnessSpline; // A spline mapping from the system brightness value, normalized to the range [0, 1.0], to // a brightness in nits with adjustments applied. private Spline mBrightnessToAdjustedNitsSpline; // The default brightness configuration. private final BrightnessConfiguration mDefaultConfig; Loading Loading @@ -843,6 +864,8 @@ public abstract class BrightnessMappingStrategy { mNits = nits; mBrightness = brightness; computeNitsBrightnessSplines(mNits); mAdjustedNitsToBrightnessSpline = mNitsToBrightnessSpline; mBrightnessToAdjustedNitsSpline = mBrightnessToNitsSpline; mDefaultConfig = config; if (mLoggingEnabled) { Loading Loading @@ -892,7 +915,7 @@ public abstract class BrightnessMappingStrategy { nits = mDisplayWhiteBalanceController.calculateAdjustedBrightnessNits(nits); } float brightness = mNitsToBrightnessSpline.interpolate(nits); float brightness = mAdjustedNitsToBrightnessSpline.interpolate(nits); // Correct the brightness according to the current application and its category, but // only if no user data point is set (as this will override the user setting). if (mUserLux == -1) { Loading Loading @@ -929,6 +952,11 @@ public abstract class BrightnessMappingStrategy { return mBrightnessToNitsSpline.interpolate(brightness); } @Override public float convertToAdjustedNits(float brightness) { return mBrightnessToAdjustedNitsSpline.interpolate(brightness); } @Override public float convertToFloatScale(float nits) { return mNitsToBrightnessSpline.interpolate(nits); Loading Loading @@ -989,7 +1017,13 @@ public abstract class BrightnessMappingStrategy { @Override public void recalculateSplines(boolean applyAdjustment, float[] adjustedNits) { mBrightnessRangeAdjustmentApplied = applyAdjustment; computeNitsBrightnessSplines(mBrightnessRangeAdjustmentApplied ? adjustedNits : mNits); if (applyAdjustment) { mAdjustedNitsToBrightnessSpline = Spline.createSpline(adjustedNits, mBrightness); mBrightnessToAdjustedNitsSpline = Spline.createSpline(mBrightness, adjustedNits); } else { mAdjustedNitsToBrightnessSpline = mNitsToBrightnessSpline; mBrightnessToAdjustedNitsSpline = mBrightnessToNitsSpline; } } @Override Loading @@ -999,6 +1033,8 @@ public abstract class BrightnessMappingStrategy { pw.println(" mBrightnessSpline=" + mBrightnessSpline); pw.println(" mNitsToBrightnessSpline=" + mNitsToBrightnessSpline); pw.println(" mBrightnessToNitsSpline=" + mBrightnessToNitsSpline); pw.println(" mAdjustedNitsToBrightnessSpline=" + mAdjustedNitsToBrightnessSpline); pw.println(" mAdjustedBrightnessToNitsSpline=" + mBrightnessToAdjustedNitsSpline); pw.println(" mMaxGamma=" + mMaxGamma); pw.println(" mAutoBrightnessAdjustment=" + mAutoBrightnessAdjustment); pw.println(" mUserLux=" + mUserLux); Loading Loading @@ -1072,7 +1108,7 @@ public abstract class BrightnessMappingStrategy { float defaultNits = defaultSpline.interpolate(lux); float longTermNits = currSpline.interpolate(lux); float shortTermNits = mBrightnessSpline.interpolate(lux); float brightness = mNitsToBrightnessSpline.interpolate(shortTermNits); float brightness = mAdjustedNitsToBrightnessSpline.interpolate(shortTermNits); String luxPrefix = (lux == mUserLux ? "^" : ""); String strLux = luxPrefix + toStrFloatForDump(lux); Loading Loading @@ -1146,7 +1182,7 @@ public abstract class BrightnessMappingStrategy { float[] defaultNits = defaultCurve.second; float[] defaultBrightness = new float[defaultNits.length]; for (int i = 0; i < defaultBrightness.length; i++) { defaultBrightness[i] = mNitsToBrightnessSpline.interpolate(defaultNits[i]); defaultBrightness[i] = mAdjustedNitsToBrightnessSpline.interpolate(defaultNits[i]); } Pair<float[], float[]> curve = getAdjustedCurve(defaultLux, defaultBrightness, mUserLux, mUserBrightness, mAutoBrightnessAdjustment, mMaxGamma); Loading @@ -1154,7 +1190,7 @@ public abstract class BrightnessMappingStrategy { float[] brightness = curve.second; float[] nits = new float[brightness.length]; for (int i = 0; i < nits.length; i++) { nits[i] = mBrightnessToNitsSpline.interpolate(brightness[i]); nits[i] = mBrightnessToAdjustedNitsSpline.interpolate(brightness[i]); } mBrightnessSpline = Spline.createSpline(lux, nits); } Loading @@ -1162,7 +1198,7 @@ public abstract class BrightnessMappingStrategy { private float getUnadjustedBrightness(float lux) { Pair<float[], float[]> curve = mConfig.getCurve(); Spline spline = Spline.createSpline(curve.first, curve.second); return mNitsToBrightnessSpline.interpolate(spline.interpolate(lux)); return mAdjustedNitsToBrightnessSpline.interpolate(spline.interpolate(lux)); } private float correctBrightness(float brightness, String packageName, int category) { Loading
services/core/java/com/android/server/display/DisplayPowerController.java +13 −6 Original line number Diff line number Diff line Loading @@ -1039,7 +1039,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call noteScreenBrightness(mPowerState.getScreenBrightness()); // Initialize all of the brightness tracking state final float brightness = convertToNits(mPowerState.getScreenBrightness()); final float brightness = convertToAdjustedNits(mPowerState.getScreenBrightness()); if (mBrightnessTracker != null && brightness >= PowerManager.BRIGHTNESS_MIN) { mBrightnessTracker.start(brightness); } Loading Loading @@ -2698,7 +2698,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call private void notifyBrightnessTrackerChanged(float brightness, boolean userInitiated, boolean wasShortTermModelActive) { final float brightnessInNits = convertToNits(brightness); final float brightnessInNits = convertToAdjustedNits(brightness); if (mUseAutoBrightness && brightnessInNits >= 0.0f && mAutomaticBrightnessController != null && mBrightnessTracker != null) { // We only want to track changes on devices that can actually map the display backlight Loading @@ -2722,6 +2722,13 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call return mAutomaticBrightnessController.convertToNits(brightness); } private float convertToAdjustedNits(float brightness) { if (mAutomaticBrightnessController == null) { return -1f; } return mAutomaticBrightnessController.convertToAdjustedNits(brightness); } private float convertToFloatScale(float nits) { if (mAutomaticBrightnessController == null) { return PowerManager.BRIGHTNESS_INVALID_FLOAT; Loading Loading @@ -3075,16 +3082,16 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call int appliedRbcStrength = event.isRbcEnabled() ? event.getRbcStrength() : -1; float appliedHbmMaxNits = event.getHbmMode() == BrightnessInfo.HIGH_BRIGHTNESS_MODE_OFF ? -1f : convertToNits(event.getHbmMax()); ? -1f : convertToAdjustedNits(event.getHbmMax()); // thermalCapNits set to -1 if not currently capping max brightness float appliedThermalCapNits = event.getThermalMax() == PowerManager.BRIGHTNESS_MAX ? -1f : convertToNits(event.getThermalMax()); ? -1f : convertToAdjustedNits(event.getThermalMax()); if (mIsDisplayInternal) { FrameworkStatsLog.write(FrameworkStatsLog.DISPLAY_BRIGHTNESS_CHANGED, convertToNits(event.getInitialBrightness()), convertToNits(event.getBrightness()), convertToAdjustedNits(event.getInitialBrightness()), convertToAdjustedNits(event.getBrightness()), event.getLux(), event.getPhysicalDisplayId(), event.wasShortTermModelActive(), Loading
services/core/java/com/android/server/display/DisplayPowerController2.java +8 −6 Original line number Diff line number Diff line Loading @@ -854,7 +854,7 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal noteScreenBrightness(mPowerState.getScreenBrightness()); // Initialize all of the brightness tracking state final float brightness = mDisplayBrightnessController.convertToNits( final float brightness = mDisplayBrightnessController.convertToAdjustedNits( mPowerState.getScreenBrightness()); if (mBrightnessTracker != null && brightness >= PowerManager.BRIGHTNESS_MIN) { mBrightnessTracker.start(brightness); Loading Loading @@ -2165,7 +2165,8 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal private void notifyBrightnessTrackerChanged(float brightness, boolean userInitiated, boolean wasShortTermModelActive) { final float brightnessInNits = mDisplayBrightnessController.convertToNits(brightness); final float brightnessInNits = mDisplayBrightnessController.convertToAdjustedNits(brightness); if (mAutomaticBrightnessStrategy.shouldUseAutoBrightness() && brightnessInNits >= 0.0f && mAutomaticBrightnessController != null && mBrightnessTracker != null) { // We only want to track changes on devices that can actually map the display backlight Loading Loading @@ -2438,15 +2439,16 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal int appliedRbcStrength = event.isRbcEnabled() ? event.getRbcStrength() : -1; float appliedHbmMaxNits = event.getHbmMode() == BrightnessInfo.HIGH_BRIGHTNESS_MODE_OFF ? -1f : mDisplayBrightnessController.convertToNits(event.getHbmMax()); ? -1f : mDisplayBrightnessController.convertToAdjustedNits(event.getHbmMax()); // thermalCapNits set to -1 if not currently capping max brightness float appliedThermalCapNits = event.getThermalMax() == PowerManager.BRIGHTNESS_MAX ? -1f : mDisplayBrightnessController.convertToNits(event.getThermalMax()); ? -1f : mDisplayBrightnessController.convertToAdjustedNits(event.getThermalMax()); if (mIsDisplayInternal) { FrameworkStatsLog.write(FrameworkStatsLog.DISPLAY_BRIGHTNESS_CHANGED, mDisplayBrightnessController.convertToNits(event.getInitialBrightness()), mDisplayBrightnessController.convertToNits(event.getBrightness()), mDisplayBrightnessController .convertToAdjustedNits(event.getInitialBrightness()), mDisplayBrightnessController.convertToAdjustedNits(event.getBrightness()), event.getLux(), event.getPhysicalDisplayId(), event.wasShortTermModelActive(), Loading
services/core/java/com/android/server/display/brightness/DisplayBrightnessController.java +22 −2 Original line number Diff line number Diff line Loading @@ -312,7 +312,10 @@ public final class DisplayBrightnessController { } /** * Convert a brightness float scale value to a nit value. * Convert a brightness float scale value to a nit value. Adjustments, such as RBC, are not * applied. This is used when storing the brightness in nits for the default display and when * passing the brightness value to follower displays. * * @param brightness The float scale value * @return The nit value or -1f if no conversion is possible. */ Loading @@ -324,7 +327,24 @@ public final class DisplayBrightnessController { } /** * Convert a brightness nit value to a float scale value. * Convert a brightness float scale value to a nit value. Adjustments, such as RBC are applied. * This is used when sending the brightness value to * {@link com.android.server.display.BrightnessTracker}. * * @param brightness The float scale value * @return The nit value or -1f if no conversion is possible. */ public float convertToAdjustedNits(float brightness) { if (mAutomaticBrightnessController == null) { return -1f; } return mAutomaticBrightnessController.convertToAdjustedNits(brightness); } /** * Convert a brightness nit value to a float scale value. It is assumed that the nit value * provided does not have adjustments, such as RBC, applied. * * @param nits The nit value * @return The float scale value or {@link PowerManager.BRIGHTNESS_INVALID_FLOAT} if no * conversion is possible. Loading