displayconfig: support sdr and hdr blending

Update displayconfig to include interpolation type for nitsMap,
sdrHdrRatioMap and minimumHdrPercentOfScreen.

Bug: 196171661
Change-Id: I84f8dc5542de692988a8aa061b5a886f85666312
This commit is contained in:
Long Ling
2022-01-31 17:27:00 -08:00
parent 5c31c58990
commit f7ff96dd3f
2 changed files with 68 additions and 0 deletions

View File

@@ -123,6 +123,18 @@
<xs:annotation name="nonnull"/>
<xs:annotation name="final"/>
</xs:element>
<!-- The minimum HDR video size at which high-brightness-mode is allowed to operate.
Default is 0.5 if not specified-->
<xs:element name="minimumHdrPercentOfScreen" type="nonNegativeDecimal"
minOccurs="0" maxOccurs="1">
<xs:annotation name="nullable"/>
<xs:annotation name="final"/>
</xs:element>
<!-- This LUT specifies how to boost HDR brightness at given SDR brightness (nits). -->
<xs:element type="sdrHdrRatioMap" name="sdrHdrRatioMap" minOccurs="0" maxOccurs="1">
<xs:annotation name="nullable"/>
<xs:annotation name="final"/>
</xs:element>
</xs:all>
<xs:attribute name="enabled" type="xs:boolean" use="optional"/>
</xs:complexType>
@@ -158,6 +170,14 @@
</xs:restriction>
</xs:simpleType>
<!-- Maps to DisplayDeviceConfig.INTERPOLATION_* values. -->
<xs:simpleType name="interpolation">
<xs:restriction base="xs:string">
<xs:enumeration value="default"/>
<xs:enumeration value="linear"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="thermalThrottling">
<xs:complexType>
<xs:element type="brightnessThrottlingMap" name="brightnessThrottlingMap">
@@ -196,6 +216,7 @@
<xs:annotation name="final"/>
</xs:element>
</xs:sequence>
<xs:attribute name="interpolation" type="interpolation" use="optional"/>
</xs:complexType>
<xs:complexType name="point">
@@ -211,6 +232,28 @@
</xs:sequence>
</xs:complexType>
<xs:complexType name="sdrHdrRatioMap">
<xs:sequence>
<xs:element name="point" type="sdrHdrRatioPoint" maxOccurs="unbounded" minOccurs="2">
<xs:annotation name="nonnull"/>
<xs:annotation name="final"/>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="sdrHdrRatioPoint">
<xs:sequence>
<xs:element type="nonNegativeDecimal" name="sdrNits">
<xs:annotation name="nonnull"/>
<xs:annotation name="final"/>
</xs:element>
<xs:element type="nonNegativeDecimal" name="hdrRatio">
<xs:annotation name="nonnull"/>
<xs:annotation name="final"/>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="nonNegativeDecimal">
<xs:restriction base="xs:decimal">
<xs:minInclusive value="0.0"/>

View File

@@ -90,23 +90,35 @@ package com.android.server.display.config {
ctor public HighBrightnessMode();
method @NonNull public final boolean getAllowInLowPowerMode_all();
method public boolean getEnabled();
method @Nullable public final java.math.BigDecimal getMinimumHdrPercentOfScreen_all();
method @NonNull public final java.math.BigDecimal getMinimumLux_all();
method @Nullable public final com.android.server.display.config.RefreshRateRange getRefreshRate_all();
method @Nullable public final com.android.server.display.config.SdrHdrRatioMap getSdrHdrRatioMap_all();
method @NonNull public final com.android.server.display.config.ThermalStatus getThermalStatusLimit_all();
method public com.android.server.display.config.HbmTiming getTiming_all();
method @NonNull public final java.math.BigDecimal getTransitionPoint_all();
method public final void setAllowInLowPowerMode_all(@NonNull boolean);
method public void setEnabled(boolean);
method public final void setMinimumHdrPercentOfScreen_all(@Nullable java.math.BigDecimal);
method public final void setMinimumLux_all(@NonNull java.math.BigDecimal);
method public final void setRefreshRate_all(@Nullable com.android.server.display.config.RefreshRateRange);
method public final void setSdrHdrRatioMap_all(@Nullable com.android.server.display.config.SdrHdrRatioMap);
method public final void setThermalStatusLimit_all(@NonNull com.android.server.display.config.ThermalStatus);
method public void setTiming_all(com.android.server.display.config.HbmTiming);
method public final void setTransitionPoint_all(@NonNull java.math.BigDecimal);
}
public enum Interpolation {
method public String getRawName();
enum_constant public static final com.android.server.display.config.Interpolation _default;
enum_constant public static final com.android.server.display.config.Interpolation linear;
}
public class NitsMap {
ctor public NitsMap();
method public com.android.server.display.config.Interpolation getInterpolation();
method @NonNull public final java.util.List<com.android.server.display.config.Point> getPoint();
method public void setInterpolation(com.android.server.display.config.Interpolation);
}
public class Point {
@@ -125,6 +137,19 @@ package com.android.server.display.config {
method public final void setMinimum(java.math.BigInteger);
}
public class SdrHdrRatioMap {
ctor public SdrHdrRatioMap();
method @NonNull public final java.util.List<com.android.server.display.config.SdrHdrRatioPoint> getPoint();
}
public class SdrHdrRatioPoint {
ctor public SdrHdrRatioPoint();
method @NonNull public final java.math.BigDecimal getHdrRatio();
method @NonNull public final java.math.BigDecimal getSdrNits();
method public final void setHdrRatio(@NonNull java.math.BigDecimal);
method public final void setSdrNits(@NonNull java.math.BigDecimal);
}
public class SensorDetails {
ctor public SensorDetails();
method @Nullable public final String getName();