1<?xml version="1.0" encoding="UTF-8"?> 2<!-- 3 Copyright (C) 2020 The Android Open Source Project 4 5 Licensed under the Apache License, Version 2.0 (the "License"); 6 you may not use this file except in compliance with the License. 7 You may obtain a copy of the License at 8 9 http://www.apache.org/licenses/LICENSE-2.0 10 11 Unless required by applicable law or agreed to in writing, software 12 distributed under the License is distributed on an "AS IS" BASIS, 13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 See the License for the specific language governing permissions and 15 limitations under the License. 16--> 17 18<!-- 19 This defines the format of the XML file used to provide static configuration values 20 for the displays on a device. 21 It is parsed in com/android/server/display/DisplayDeviceConfig.java 22--> 23<xs:schema version="2.0" 24 elementFormDefault="qualified" 25 xmlns:xs="http://www.w3.org/2001/XMLSchema"> 26 <xs:element name="displayConfiguration"> 27 <xs:complexType> 28 <xs:sequence> 29 <xs:element type ="xs:string" name="name"> 30 <xs:annotation name="nullable"/> 31 <xs:annotation name="final"/> 32 </xs:element> 33 <xs:element type="densityMapping" name="densityMapping" minOccurs="0" maxOccurs="1"> 34 <xs:annotation name="nullable"/> 35 <xs:annotation name="final"/> 36 </xs:element> 37 <xs:element type="nitsMap" name="screenBrightnessMap"> 38 <xs:annotation name="nonnull"/> 39 <xs:annotation name="final"/> 40 </xs:element> 41 <xs:element type="nonNegativeDecimal" name="screenBrightnessDefault"> 42 <xs:annotation name="nonnull"/> 43 <xs:annotation name="final"/> 44 </xs:element> 45 <xs:element type="thermalThrottling" name="thermalThrottling"> 46 <xs:annotation name="nonnull"/> 47 <xs:annotation name="final"/> 48 </xs:element> 49 <xs:element type="luxThrottling" name="luxThrottling" minOccurs="0" 50 maxOccurs="1"/> 51 <xs:element type="highBrightnessMode" name="highBrightnessMode" minOccurs="0" 52 maxOccurs="1"/> 53 <xs:element type="displayQuirks" name="quirks" minOccurs="0" maxOccurs="1"/> 54 <xs:element type="autoBrightness" name="autoBrightness" minOccurs="0" 55 maxOccurs="1"/> 56 <xs:element type="refreshRateConfigs" name="refreshRate" minOccurs="0" 57 maxOccurs="1"/> 58 <xs:element type="nonNegativeDecimal" name="screenBrightnessRampFastDecrease"> 59 <xs:annotation name="final"/> 60 </xs:element> 61 <xs:element type="nonNegativeDecimal" name="screenBrightnessRampFastIncrease"> 62 <xs:annotation name="final"/> 63 </xs:element> 64 <xs:element type="nonNegativeDecimal" name="screenBrightnessRampSlowDecrease"> 65 <xs:annotation name="final"/> 66 </xs:element> 67 <xs:element type="nonNegativeDecimal" name="screenBrightnessRampSlowIncrease"> 68 <xs:annotation name="final"/> 69 </xs:element> 70 <!-- Maximum time in milliseconds that a brightness increase animation 71 can take. --> 72 <xs:element type="xs:nonNegativeInteger" name="screenBrightnessRampIncreaseMaxMillis"> 73 <xs:annotation name="final"/> 74 </xs:element> 75 <!-- Maximum time in milliseconds that a brightness decrease animation 76 can take. --> 77 <xs:element type="xs:nonNegativeInteger" name="screenBrightnessRampDecreaseMaxMillis"> 78 <xs:annotation name="final"/> 79 </xs:element> 80 <xs:element type="sensorDetails" name="lightSensor"> 81 <xs:annotation name="final"/> 82 </xs:element> 83 <xs:element type="sensorDetails" name="screenOffBrightnessSensor"> 84 <xs:annotation name="final"/> 85 </xs:element> 86 <xs:element type="sensorDetails" name="proxSensor"> 87 <xs:annotation name="final"/> 88 </xs:element> 89 90 <!-- Length of the ambient light horizon used to calculate the long & short term 91 estimates of ambient light in milliseconds.--> 92 <xs:element type="xs:nonNegativeInteger" name="ambientLightHorizonLong"> 93 <xs:annotation name="final"/> 94 </xs:element> 95 <xs:element type="xs:nonNegativeInteger" name="ambientLightHorizonShort"> 96 <xs:annotation name="final"/> 97 </xs:element> 98 99 <!-- Set of thresholds that dictate the change needed for screen brightness 100 adaptations --> 101 <xs:element type="thresholds" name="displayBrightnessChangeThresholds"> 102 <xs:annotation name="nonnull"/> 103 <xs:annotation name="final"/> 104 </xs:element> 105 <!-- Set of thresholds that dictate the change needed for ambient brightness 106 adaptations --> 107 <xs:element type="thresholds" name="ambientBrightnessChangeThresholds"> 108 <xs:annotation name="nonnull"/> 109 <xs:annotation name="final"/> 110 </xs:element> 111 <!-- Set of thresholds that dictate the change needed for screen brightness 112 adaptations while in idle mode --> 113 <xs:element type="thresholds" name="displayBrightnessChangeThresholdsIdle" minOccurs="0" maxOccurs="1"> 114 <xs:annotation name="final"/> 115 </xs:element> 116 <!-- Set of thresholds that dictate the change needed for ambient brightness 117 adaptations while in idle mode --> 118 <xs:element type="thresholds" name="ambientBrightnessChangeThresholdsIdle" minOccurs="0" maxOccurs="1"> 119 <xs:annotation name="final"/> 120 </xs:element> 121 <!-- Table that translates sensor values from the screenOffBrightnessSensor 122 to lux values; -1 means the lux reading is not available. --> 123 <xs:element type="integer-array" name="screenOffBrightnessSensorValueToLux"> 124 <xs:annotation name="final"/> 125 </xs:element> 126 <!-- The version of the Universal Stylus Initiative 127 (USI, https://universalstylus.org/) protocol supported by the display, if any. --> 128 <xs:element type="usiVersion" name="usiVersion"> 129 <xs:annotation name="final"/> 130 </xs:element> 131 </xs:sequence> 132 </xs:complexType> 133 </xs:element> 134 135 <!-- Type definitions --> 136 <xs:complexType name="displayQuirks"> 137 <xs:sequence> 138 <xs:element name="quirk" type="xs:string" minOccurs="0" maxOccurs="unbounded" /> 139 </xs:sequence> 140 </xs:complexType> 141 142 <xs:complexType name="luxThrottling"> 143 <xs:sequence> 144 <xs:element name="brightnessLimitMap" type="brightnessLimitMap" 145 maxOccurs="unbounded"> 146 <xs:annotation name="nonnull"/> 147 <xs:annotation name="final"/> 148 </xs:element> 149 </xs:sequence> 150 </xs:complexType> 151 152 <xs:complexType name="brightnessLimitMap"> 153 <xs:sequence> 154 <xs:element name="type" type="PredefinedBrightnessLimitNames"> 155 <xs:annotation name="nonnull"/> 156 <xs:annotation name="final"/> 157 </xs:element> 158 <!-- lux level from light sensor to screen brightness recommended max value map. 159 Screen brightness recommended max value is to highBrightnessMode.transitionPoint and must be below that --> 160 <xs:element name="map" type="nonNegativeFloatToFloatMap"> 161 <xs:annotation name="nonnull"/> 162 <xs:annotation name="final"/> 163 </xs:element> 164 </xs:sequence> 165 </xs:complexType> 166 167 <!-- Predefined type names as defined by DisplayDeviceConfig.BrightnessLimitMapType --> 168 <xs:simpleType name="PredefinedBrightnessLimitNames"> 169 <xs:restriction base="xs:string"> 170 <xs:enumeration value="default"/> 171 <xs:enumeration value="adaptive"/> 172 </xs:restriction> 173 </xs:simpleType> 174 175 <xs:complexType name="highBrightnessMode"> 176 <xs:all> 177 <xs:element name="transitionPoint" type="nonNegativeDecimal" minOccurs="1" 178 maxOccurs="1"> 179 <xs:annotation name="nonnull"/> 180 <xs:annotation name="final"/> 181 </xs:element> 182 <xs:element name="minimumLux" type="nonNegativeDecimal" minOccurs="1" maxOccurs="1"> 183 <xs:annotation name="nonnull"/> 184 <xs:annotation name="final"/> 185 </xs:element> 186 <xs:element name="timing" type="hbmTiming" minOccurs="1" maxOccurs="1"/> 187 <xs:element type="refreshRateRange" name="refreshRate" minOccurs="0" maxOccurs="1"> 188 <xs:annotation name="nullable"/> 189 <xs:annotation name="final"/> 190 </xs:element> 191 <xs:element name="allowInLowPowerMode" type="xs:boolean" minOccurs="0" maxOccurs="1"> 192 <xs:annotation name="nonnull"/> 193 <xs:annotation name="final"/> 194 </xs:element> 195 <!-- The minimum HDR video size at which high-brightness-mode is allowed to operate. 196 Default is 0.5 if not specified--> 197 <xs:element name="minimumHdrPercentOfScreen" type="nonNegativeDecimal" 198 minOccurs="0" maxOccurs="1"> 199 <xs:annotation name="nullable"/> 200 <xs:annotation name="final"/> 201 </xs:element> 202 <!-- This LUT specifies how to boost HDR brightness at given SDR brightness (nits). --> 203 <xs:element type="sdrHdrRatioMap" name="sdrHdrRatioMap" minOccurs="0" maxOccurs="1"> 204 <xs:annotation name="nullable"/> 205 <xs:annotation name="final"/> 206 </xs:element> 207 </xs:all> 208 <xs:attribute name="enabled" type="xs:boolean" use="optional"/> 209 </xs:complexType> 210 211 <xs:complexType name="hbmTiming"> 212 <xs:all> 213 <xs:element name="timeWindowSecs" type="xs:nonNegativeInteger" minOccurs="1" 214 maxOccurs="1"> 215 <xs:annotation name="nonnull"/> 216 <xs:annotation name="final"/> 217 </xs:element> 218 <xs:element name="timeMaxSecs" type="xs:nonNegativeInteger" minOccurs="1" maxOccurs="1"> 219 <xs:annotation name="nonnull"/> 220 <xs:annotation name="final"/> 221 </xs:element> 222 <xs:element name="timeMinSecs" type="xs:nonNegativeInteger" minOccurs="1" maxOccurs="1"> 223 <xs:annotation name="nonnull"/> 224 <xs:annotation name="final"/> 225 </xs:element> 226 </xs:all> 227 </xs:complexType> 228 229 <!-- Maps to PowerManager.THERMAL_STATUS_* values. --> 230 <xs:simpleType name="thermalStatus"> 231 <xs:restriction base="xs:string"> 232 <xs:enumeration value="none"/> 233 <xs:enumeration value="light"/> 234 <xs:enumeration value="moderate"/> 235 <xs:enumeration value="severe"/> 236 <xs:enumeration value="critical"/> 237 <xs:enumeration value="emergency"/> 238 <xs:enumeration value="shutdown"/> 239 </xs:restriction> 240 </xs:simpleType> 241 242 <xs:complexType name="thermalThrottling"> 243 <xs:sequence> 244 <xs:element type="brightnessThrottlingMap" name="brightnessThrottlingMap" maxOccurs="unbounded"> 245 <xs:annotation name="final"/> 246 </xs:element> 247 <xs:element type="refreshRateThrottlingMap" name="refreshRateThrottlingMap" maxOccurs="unbounded"> 248 <xs:annotation name="final"/> 249 </xs:element> 250 </xs:sequence> 251 </xs:complexType> 252 253 <xs:complexType name="refreshRateThrottlingMap"> 254 <xs:attribute name="id" type="xs:string" /> 255 <xs:sequence> 256 <xs:element name="refreshRateThrottlingPoint" type="refreshRateThrottlingPoint" maxOccurs="unbounded"> 257 <xs:annotation name="nonnull"/> 258 <xs:annotation name="final"/> 259 </xs:element> 260 </xs:sequence> 261 </xs:complexType> 262 263 <xs:complexType name="refreshRateThrottlingPoint"> 264 <xs:sequence> 265 <xs:element type="thermalStatus" name="thermalStatus"> 266 <xs:annotation name="nonnull"/> 267 <xs:annotation name="final"/> 268 </xs:element> 269 <xs:element type="refreshRateRange" name="refreshRateRange"> 270 <xs:annotation name="nonnull"/> 271 <xs:annotation name="final"/> 272 </xs:element> 273 </xs:sequence> 274 </xs:complexType> 275 276 <xs:complexType name="brightnessThrottlingMap"> 277 <xs:sequence> 278 <xs:element name="brightnessThrottlingPoint" type="brightnessThrottlingPoint" maxOccurs="unbounded" minOccurs="1"> 279 <xs:annotation name="nonnull"/> 280 <xs:annotation name="final"/> 281 </xs:element> 282 </xs:sequence> 283 <xs:attribute name="id" type="xs:string"/> 284 </xs:complexType> 285 286 <xs:complexType name="brightnessThrottlingPoint"> 287 <xs:sequence> 288 <xs:element type="thermalStatus" name="thermalStatus"> 289 <xs:annotation name="nonnull"/> 290 <xs:annotation name="final"/> 291 </xs:element> 292 <xs:element type="nonNegativeDecimal" name="brightness"> 293 <xs:annotation name="nonnull"/> 294 <xs:annotation name="final"/> 295 </xs:element> 296 </xs:sequence> 297 </xs:complexType> 298 299 <xs:complexType name="nitsMap"> 300 <xs:sequence> 301 <xs:element name="point" type="point" maxOccurs="unbounded" minOccurs="2"> 302 <xs:annotation name="nonnull"/> 303 <xs:annotation name="final"/> 304 </xs:element> 305 </xs:sequence> 306 <!-- valid value of interpolation if specified: linear --> 307 <xs:attribute name="interpolation" type="xs:string" use="optional"/> 308 </xs:complexType> 309 310 <xs:complexType name="point"> 311 <xs:sequence> 312 <xs:element type="nonNegativeDecimal" name="value"> 313 <xs:annotation name="nonnull"/> 314 <xs:annotation name="final"/> 315 </xs:element> 316 <xs:element type="nonNegativeDecimal" name="nits"> 317 <xs:annotation name="nonnull"/> 318 <xs:annotation name="final"/> 319 </xs:element> 320 </xs:sequence> 321 </xs:complexType> 322 323 <xs:complexType name="sdrHdrRatioMap"> 324 <xs:sequence> 325 <xs:element name="point" type="sdrHdrRatioPoint" maxOccurs="unbounded" minOccurs="2"> 326 <xs:annotation name="nonnull"/> 327 <xs:annotation name="final"/> 328 </xs:element> 329 </xs:sequence> 330 </xs:complexType> 331 332 <xs:complexType name="sdrHdrRatioPoint"> 333 <xs:sequence> 334 <xs:element type="nonNegativeDecimal" name="sdrNits"> 335 <xs:annotation name="nonnull"/> 336 <xs:annotation name="final"/> 337 </xs:element> 338 <xs:element type="nonNegativeDecimal" name="hdrRatio"> 339 <xs:annotation name="nonnull"/> 340 <xs:annotation name="final"/> 341 </xs:element> 342 </xs:sequence> 343 </xs:complexType> 344 345 <xs:simpleType name="nonNegativeDecimal"> 346 <xs:restriction base="xs:decimal"> 347 <xs:minInclusive value="0.0"/> 348 </xs:restriction> 349 </xs:simpleType> 350 351 <xs:complexType name="sensorDetails"> 352 <xs:sequence> 353 <xs:element type="xs:string" name="type" minOccurs="0" maxOccurs="1"> 354 <xs:annotation name="nullable"/> 355 <xs:annotation name="final"/> 356 </xs:element> 357 <xs:element type="xs:string" name="name" minOccurs="0" maxOccurs="1"> 358 <xs:annotation name="nullable"/> 359 <xs:annotation name="final"/> 360 </xs:element> 361 <xs:element type="refreshRateRange" name="refreshRate" minOccurs="0" maxOccurs="1"> 362 <xs:annotation name="nullable"/> 363 <xs:annotation name="final"/> 364 </xs:element> 365 </xs:sequence> 366 </xs:complexType> 367 368 <xs:complexType name="refreshRateRange"> 369 <xs:sequence> 370 <xs:element type="xs:nonNegativeInteger" name="minimum" minOccurs="1" maxOccurs="1"> 371 <xs:annotation name="final"/> 372 </xs:element> 373 <xs:element type="xs:nonNegativeInteger" name="maximum" minOccurs="1" maxOccurs="1"> 374 <xs:annotation name="final"/> 375 </xs:element> 376 </xs:sequence> 377 </xs:complexType> 378 379 <xs:complexType name="densityMapping"> 380 <xs:sequence> 381 <xs:element name="density" type="density" maxOccurs="unbounded" minOccurs="1"> 382 </xs:element> 383 </xs:sequence> 384 </xs:complexType> 385 386 <xs:complexType name="density"> 387 <xs:sequence> 388 <xs:element type="xs:nonNegativeInteger" name="width"> 389 <xs:annotation name="nonnull"/> 390 <xs:annotation name="final"/> 391 </xs:element> 392 <xs:element type="xs:nonNegativeInteger" name="height"> 393 <xs:annotation name="nonnull"/> 394 <xs:annotation name="final"/> 395 </xs:element> 396 <xs:element type="xs:nonNegativeInteger" name="density"> 397 <xs:annotation name="nonnull"/> 398 <xs:annotation name="final"/> 399 </xs:element> 400 </xs:sequence> 401 </xs:complexType> 402 403 <!-- Thresholds for brightness changes. --> 404 <xs:complexType name="thresholds"> 405 <xs:sequence> 406 <!-- Brightening thresholds for active screen brightness mode. --> 407 <xs:element name="brighteningThresholds" type="brightnessThresholds" minOccurs="0" 408 maxOccurs="1" > 409 <xs:annotation name="nonnull"/> 410 <xs:annotation name="final"/> 411 </xs:element> 412 <!-- Darkening thresholds for active screen brightness mode. --> 413 <xs:element name="darkeningThresholds" type="brightnessThresholds" minOccurs="0" 414 maxOccurs="1" > 415 <xs:annotation name="nonnull"/> 416 <xs:annotation name="final"/> 417 </xs:element> 418 </xs:sequence> 419 </xs:complexType> 420 421 <!-- Brightening and darkening minimum change thresholds. --> 422 <xs:complexType name="brightnessThresholds"> 423 <!-- Minimum brightness change needed. --> 424 <xs:element name="minimum" type="nonNegativeDecimal" minOccurs="0" maxOccurs="1" > 425 <xs:annotation name="nonnull"/> 426 <xs:annotation name="final"/> 427 </xs:element> 428 <xs:sequence> 429 <!-- Thresholds as tenths of percent of current brightness level, at each level of 430 brightness --> 431 <xs:element name="brightnessThresholdPoints" type="thresholdPoints" maxOccurs="1" minOccurs="0"> 432 <xs:annotation name="final"/> 433 </xs:element> 434 </xs:sequence> 435 </xs:complexType> 436 437 <xs:complexType name="thresholdPoints"> 438 <xs:sequence> 439 <xs:element type="thresholdPoint" name="brightnessThresholdPoint" maxOccurs="unbounded" minOccurs="1"> 440 <xs:annotation name="nonnull"/> 441 <xs:annotation name="final"/> 442 </xs:element> 443 </xs:sequence> 444 </xs:complexType> 445 446 <xs:complexType name="thresholdPoint"> 447 <xs:sequence> 448 <xs:element type="nonNegativeDecimal" name="threshold"> 449 <xs:annotation name="nonnull"/> 450 <xs:annotation name="final"/> 451 </xs:element> 452 <xs:element type="nonNegativeDecimal" name="percentage"> 453 <xs:annotation name="nonnull"/> 454 <xs:annotation name="final"/> 455 </xs:element> 456 </xs:sequence> 457 </xs:complexType> 458 459 <xs:complexType name="autoBrightness"> 460 <xs:attribute name="enabled" type="xs:boolean" use="optional" default="true"/> 461 <xs:sequence> 462 <!-- Sets the debounce for autoBrightness brightening in millis--> 463 <xs:element name="brighteningLightDebounceMillis" type="xs:nonNegativeInteger" 464 minOccurs="0" maxOccurs="1"> 465 <xs:annotation name="final"/> 466 </xs:element> 467 <!-- Sets the debounce for autoBrightness darkening in millis--> 468 <xs:element name="darkeningLightDebounceMillis" type="xs:nonNegativeInteger" 469 minOccurs="0" maxOccurs="1"> 470 <xs:annotation name="final"/> 471 </xs:element> 472 <!-- Sets the brightness mapping of the desired screen brightness in nits to the 473 corresponding lux for the current display --> 474 <xs:element name="displayBrightnessMapping" type="displayBrightnessMapping" 475 minOccurs="0" maxOccurs="1"> 476 <xs:annotation name="final"/> 477 </xs:element> 478 </xs:sequence> 479 </xs:complexType> 480 481 <!-- Represents the brightness mapping of the desired screen brightness in nits to the 482 corresponding lux for the current display --> 483 <xs:complexType name="displayBrightnessMapping"> 484 <xs:sequence> 485 <!-- Sets the list of display brightness points, each representing the desired screen 486 brightness in nits to the corresponding lux for the current display 487 488 The N entries of this array define N + 1 control points as follows: 489 (1-based arrays) 490 491 Point 1: (0, nits[1]): currentLux <= 0 492 Point 2: (lux[1], nits[2]): 0 < currentLux <= lux[1] 493 Point 3: (lux[2], nits[3]): lux[2] < currentLux <= lux[3] 494 ... 495 Point N+1: (lux[N], nits[N+1]): lux[N] < currentLux 496 497 The control points must be strictly increasing. Each control point 498 corresponds to an entry in the brightness backlight values arrays. 499 For example, if currentLux == lux[1] (first element of the levels array) 500 then the brightness will be determined by nits[2] (second element 501 of the brightness values array). 502 --> 503 <xs:element name="displayBrightnessPoint" type="displayBrightnessPoint" 504 minOccurs="1" maxOccurs="unbounded"> 505 <xs:annotation name="final"/> 506 </xs:element> 507 </xs:sequence> 508 </xs:complexType> 509 510 <!-- Represents a point in the display brightness mapping, representing the lux level from the 511 light sensor to the desired screen brightness in nits at this level --> 512 <xs:complexType name="displayBrightnessPoint"> 513 <xs:sequence> 514 <!-- The lux level from the light sensor. This must be a non-negative integer --> 515 <xs:element name="lux" type="xs:nonNegativeInteger" 516 minOccurs="1" maxOccurs="1"> 517 <xs:annotation name="final"/> 518 </xs:element> 519 520 <!-- Desired screen brightness in nits corresponding to the suggested lux values. 521 The display brightness is defined as the measured brightness of an all-white image. 522 This must be a non-negative integer --> 523 <xs:element name="nits" type="nonNegativeDecimal" 524 minOccurs="1" maxOccurs="1"> 525 <xs:annotation name="final"/> 526 </xs:element> 527 </xs:sequence> 528 </xs:complexType> 529 530 <xs:complexType name="refreshRateConfigs"> 531 <xs:element name="defaultRefreshRate" type="xs:nonNegativeInteger" 532 minOccurs="0" maxOccurs="1"> 533 <xs:annotation name="final"/> 534 </xs:element> 535 <xs:element name="defaultPeakRefreshRate" type="xs:nonNegativeInteger" 536 minOccurs="0" maxOccurs="1"> 537 <xs:annotation name="final"/> 538 </xs:element> 539 <xs:element name="refreshRateZoneProfiles" type="refreshRateZoneProfiles" 540 minOccurs="0" maxOccurs="1"> 541 <xs:annotation name="final"/> 542 </xs:element> 543 <xs:element name="defaultRefreshRateInHbmHdr" type="xs:nonNegativeInteger" 544 minOccurs="0" maxOccurs="1"> 545 <xs:annotation name="final"/> 546 </xs:element> 547 <xs:element name="defaultRefreshRateInHbmSunlight" type="xs:nonNegativeInteger" 548 minOccurs="0" maxOccurs="1"> 549 <xs:annotation name="final"/> 550 </xs:element> 551 <xs:element name="lowerBlockingZoneConfigs" type="blockingZoneConfig" 552 minOccurs="0" maxOccurs="1"> 553 <xs:annotation name="final"/> 554 </xs:element> 555 <xs:element name="higherBlockingZoneConfigs" type="blockingZoneConfig" 556 minOccurs="0" maxOccurs="1"> 557 <xs:annotation name="final"/> 558 </xs:element> 559 </xs:complexType> 560 561 <xs:complexType name="refreshRateZoneProfiles"> 562 <xs:sequence> 563 <xs:element name="refreshRateZoneProfile" type="refreshRateZone" 564 minOccurs="0" maxOccurs="unbounded"> 565 <xs:annotation name="final"/> 566 </xs:element> 567 </xs:sequence> 568 </xs:complexType> 569 570 <xs:complexType name="refreshRateZone"> 571 <xs:attribute name="id" use="required" type="xs:string" /> 572 <xs:element name="refreshRateRange" type="refreshRateRange"> 573 <xs:annotation name="final"/> 574 </xs:element> 575 </xs:complexType> 576 577 <xs:complexType name="blockingZoneConfig"> 578 <xs:element name="defaultRefreshRate" type="xs:nonNegativeInteger" 579 minOccurs="1" maxOccurs="1"> 580 <xs:annotation name="final"/> 581 </xs:element> 582 <xs:element type ="xs:string" name="refreshRateThermalThrottlingId"> 583 <xs:annotation name="nullable"/> 584 <xs:annotation name="final"/> 585 </xs:element> 586 <xs:element name="blockingZoneThreshold" type="blockingZoneThreshold" 587 minOccurs="1" maxOccurs="1"> 588 <xs:annotation name="final"/> 589 </xs:element> 590 </xs:complexType> 591 592 <xs:complexType name="blockingZoneThreshold"> 593 <xs:sequence> 594 <xs:element name="displayBrightnessPoint" type="displayBrightnessPoint" 595 minOccurs="1" maxOccurs="unbounded"> 596 <xs:annotation name="final"/> 597 </xs:element> 598 </xs:sequence> 599 </xs:complexType> 600 601 <xs:complexType name="integer-array"> 602 <xs:sequence> 603 <xs:element name="item" type="xs:nonNegativeInteger" minOccurs="0" maxOccurs="unbounded"/> 604 </xs:sequence> 605 </xs:complexType> 606 607 <xs:complexType name="usiVersion"> 608 <xs:element name="majorVersion" type="xs:nonNegativeInteger" 609 minOccurs="1" maxOccurs="1"> 610 <xs:annotation name="final"/> 611 </xs:element> 612 <xs:element name="minorVersion" type="xs:nonNegativeInteger" 613 minOccurs="1" maxOccurs="1"> 614 <xs:annotation name="final"/> 615 </xs:element> 616 </xs:complexType> 617 618 <!-- generic types --> 619 <xs:complexType name="nonNegativeFloatToFloatPoint"> 620 <xs:sequence> 621 <xs:element name="first" type="nonNegativeDecimal"> 622 <xs:annotation name="nonnull"/> 623 <xs:annotation name="final"/> 624 </xs:element> 625 <xs:element name="second" type="nonNegativeDecimal"> 626 <xs:annotation name="nonnull"/> 627 <xs:annotation name="final"/> 628 </xs:element> 629 </xs:sequence> 630 </xs:complexType> 631 632 <xs:complexType name="nonNegativeFloatToFloatMap"> 633 <xs:sequence> 634 <xs:element name="point" type="nonNegativeFloatToFloatPoint" maxOccurs="unbounded"> 635 <xs:annotation name="nonnull"/> 636 <xs:annotation name="final"/> 637 </xs:element> 638 </xs:sequence> 639 </xs:complexType> 640</xs:schema> 641