<?xml version="1.0" encoding="UTF-8"?>
<!--
    Copyright (C) 2020 The Android Open Source 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.
-->

<!--
    This defines the format of the XML file used to provide static configuration values
    for the displays on a device.
    It is parsed in com/android/server/display/DisplayDeviceConfig.java
-->
<xs:schema version="2.0"
           elementFormDefault="qualified"
           xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="displayConfiguration">
        <xs:complexType>
            <xs:sequence>
                <xs:element type="nitsMap" name="screenBrightnessMap">
                    <xs:annotation name="nonnull"/>
                    <xs:annotation name="final"/>
                </xs:element>
                <xs:element type="nonNegativeDecimal" name="screenBrightnessDefault">
                    <xs:annotation name="nonnull"/>
                    <xs:annotation name="final"/>
                </xs:element>
                <xs:element type="highBrightnessMode" name="highBrightnessMode" minOccurs="0" maxOccurs="1"/>
                <xs:element type="displayQuirks" name="quirks" minOccurs="0" maxOccurs="1" />
                <xs:element type="nonNegativeDecimal" name="screenBrightnessRampFastDecrease">
                    <xs:annotation name="final"/>
                </xs:element>
                <xs:element type="nonNegativeDecimal" name="screenBrightnessRampFastIncrease">
                    <xs:annotation name="final"/>
                </xs:element>
                <xs:element type="nonNegativeDecimal" name="screenBrightnessRampSlowDecrease">
                    <xs:annotation name="final"/>
                </xs:element>
                <xs:element type="nonNegativeDecimal" name="screenBrightnessRampSlowIncrease">
                    <xs:annotation name="final"/>
                </xs:element>
                <xs:element type="sensorDetails" name="lightSensor">
                    <xs:annotation name="final"/>
                </xs:element>
                <xs:element type="sensorDetails" name="proxSensor">
                    <xs:annotation name="final"/>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <!-- Type definitions -->

    <xs:complexType name="displayQuirks">
        <xs:sequence>
            <xs:element name="quirk" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="highBrightnessMode">
        <xs:all>
            <xs:element name="transitionPoint" type="nonNegativeDecimal" minOccurs="1" maxOccurs="1">
                <xs:annotation name="nonnull"/>
                <xs:annotation name="final"/>
            </xs:element>
            <xs:element name="minimumLux" type="nonNegativeDecimal" minOccurs="1" maxOccurs="1">
                <xs:annotation name="nonnull"/>
                <xs:annotation name="final"/>
            </xs:element>
            <xs:element name="timing" type="hbmTiming" minOccurs="1" maxOccurs="1"/>
            <xs:element type="refreshRateRange" name="refreshRate" minOccurs="0" maxOccurs="1">
                <xs:annotation name="nullable"/>
                <xs:annotation name="final"/>
            </xs:element>
            <!-- The highest (most severe) thermal status at which high-brightness-mode is allowed
                 to operate. -->
            <xs:element name="thermalStatusLimit" type="thermalStatus" minOccurs="0" maxOccurs="1">
                <xs:annotation name="nonnull"/>
                <xs:annotation name="final"/>
            </xs:element>
            <xs:element name="allowInLowPowerMode" type="xs:boolean" minOccurs="0" maxOccurs="1">
                <xs:annotation name="nonnull"/>
                <xs:annotation name="final"/>
            </xs:element>
        </xs:all>
        <xs:attribute name="enabled" type="xs:boolean" use="optional"/>
    </xs:complexType>

    <xs:complexType name="hbmTiming">
        <xs:all>
            <xs:element name="timeWindowSecs" type="xs:nonNegativeInteger" minOccurs="1" maxOccurs="1">
                <xs:annotation name="nonnull"/>
                <xs:annotation name="final"/>
            </xs:element>
            <xs:element name="timeMaxSecs" type="xs:nonNegativeInteger" minOccurs="1" maxOccurs="1">
                <xs:annotation name="nonnull"/>
                <xs:annotation name="final"/>
            </xs:element>
            <xs:element name="timeMinSecs" type="xs:nonNegativeInteger" minOccurs="1" maxOccurs="1">
                <xs:annotation name="nonnull"/>
                <xs:annotation name="final"/>
            </xs:element>
        </xs:all>
    </xs:complexType>

    <!-- Maps to PowerManager.THERMAL_STATUS_* values. -->
    <xs:simpleType name="thermalStatus">
        <xs:restriction base="xs:string">
            <xs:enumeration value="none"/>
            <xs:enumeration value="light"/>
            <xs:enumeration value="moderate"/>
            <xs:enumeration value="severe"/>
            <xs:enumeration value="critical"/>
            <xs:enumeration value="emergency"/>
            <xs:enumeration value="shutdown"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="nitsMap">
        <xs:sequence>
            <xs:element name="point" type="point" maxOccurs="unbounded" minOccurs="2">
                <xs:annotation name="nonnull"/>
                <xs:annotation name="final"/>
            </xs:element>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="point">
        <xs:sequence>
            <xs:element type="nonNegativeDecimal" name="value">
                <xs:annotation name="nonnull"/>
                <xs:annotation name="final"/>
            </xs:element>
            <xs:element type="nonNegativeDecimal" name="nits">
                <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"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="sensorDetails">
        <xs:sequence>
            <xs:element type="xs:string" name="type" minOccurs="0" maxOccurs="1">
                <xs:annotation name="nullable"/>
                <xs:annotation name="final"/>
            </xs:element>
            <xs:element type="xs:string" name="name" minOccurs="0" maxOccurs="1">
                <xs:annotation name="nullable"/>
                <xs:annotation name="final"/>
            </xs:element>
            <xs:element type="refreshRateRange" name="refreshRate" minOccurs="0" maxOccurs="1">
                <xs:annotation name="nullable"/>
                <xs:annotation name="final"/>
            </xs:element>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="refreshRateRange">
        <xs:sequence>
            <xs:element type="xs:nonNegativeInteger" name="minimum" minOccurs="1" maxOccurs="1">
                <xs:annotation name="final"/>
            </xs:element>
            <xs:element type="xs:nonNegativeInteger" name="maximum" minOccurs="1" maxOccurs="1">
                <xs:annotation name="final"/>
            </xs:element>
        </xs:sequence>
    </xs:complexType>


</xs:schema>
