Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f7ff96dd authored by Long Ling's avatar Long Ling
Browse files

displayconfig: support sdr and hdr blending

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

Bug: 196171661
Change-Id: I84f8dc5542de692988a8aa061b5a886f85666312
parent 5c31c589
Loading
Loading
Loading
Loading
+43 −0
Original line number Diff line number Diff line
@@ -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"/>
+25 −0
Original line number Diff line number Diff line
@@ -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();