Table of Contents
The monitor database is written in XML, it can be found in
      the db directory of
      ddccontrol-db package.
This directory contains the following files:
options.xmlmonitor/%monitor_id%.xmlcontrol elements
        (e.g. “brightness”) are contained in
        group elements (e.g.
        “color
        settings”). group and subgroup elements allow the GUI to
        separate the controls in different branches on the
        tree.
options
        attributes:
date: indicates the release
            date of the current database (YYYYMMDD format).dbversion: indicates which
            version of database format is used (must be set to
            2).group
        attributes:
name: full English group
            name.subgroup
        attributes:
name: full English subgroup
            name.pattern: name of the
            fullscreen pattern gddccontrol must display to help the
            user to adjust subgroup's controls (optional). For
            possible values, see ddccontrol/src/gddccontrol/fspatterns.c.control
        attributes:
id: abbreviated control
            name.name: full English control
            name.address: DDC/CI address
            (optional).type: one of
              these values:
              value element in a
                  command control, the default value “0x01” will be
                  used.refresh (only
              for list and command controls): Set whether other
              controls must be refreshed after changing list value
              or running the command associated with the control
              (optional). Possible values:
              value
        attributes:
id: abbreviated value
            name.name: full English value
            name (it is not needed if there is only one value for
            command controls).value: DDC/CI control value
            (optional).File format:
<?xml version="1.0"?>
<options date="%date%" dbversion="2">
  <group name="%groupname%">
    <subgroup name="%subgroupname%" pattern="%patternname%">
      <control id="%control_id%" type="value" name="%control_name%" address="%hex_address%"/>
        <!-- Command using the default 0x01 address -->
      <control id="%control_id%" type="command" name="%control_name%" address="%hex_address%"/>
      <control id="%control_id%" type="command" name="%control_name%" address="%hex_address%">
        <value id="%value_id%" value="%hex_value%"/>
      </control>
      <control id="%control_id%" type="list" name="%control_name%" address="%hex_address%">
        <value id="%value_id%" name="%value_name%" value="%hex_value%"/>
        <value...>
      </control>
      <control ...>
    </subgroup>
  </group>
  <group ...>
</options>
      List of controls supported by a monitor.
control
        id attributes are
        defined in options.xml. If
        control type is “list” or “command” without non-default
        value, supported values must be defined.
address attribute
        for control elements
        and value attribute
        for value elements are
        optional if they are defined in the general options
        file.
The init
        attribute in monitor
        element define the type of the initialization: DDC/CI
        standard (“standard”), or Samsung
        (“samsung”).
The caps
        attribute is optional. Its format is defined in ACCESS.bus
        specifications and is treated as following:
If caps is
              not defined, caps are read from monitor.
If this attribute exists and have a “vcp” string (e.g. “type(lcd) vcp(10 12)”) then the specified caps string is used.
If this attribute exists but does not have a “vcp” (e.g. “type(crt)” or “”), then all controls defined in the monitor profile are supposed to be supported.
You can set a delay attribute in control elements to set the time
        in milliseconds to wait after changing the value of this
        control. If you don't, a default value is used.
File format:
<?xml version="1.0"?>
<monitor name="%full_monitor_name%" init="[standard|samsung]" caps="%caps%">
  <controls>
    <!--- value -->
    <control id="%control_id%" address="%hex_address%" delay="%wait_time%"/>
    <!--- command using a default 0x01 value-->
    <control id="%control_id%" address="%hex_address%" delay="%wait_time%"/>
    <!--- command -->
    <control id="%control_id%" address="%hex_address%" delay="%wait_time%">
      <value id="activate" value="%hex_value%"/>
    </control>
    <!--- list -->
    <control id="%control_id%" address="%hex_address%" delay="%wait_time%">
      <value id="%value_id%" value="%hex_value%"/>
      <value...>
    </control>
    <control...>
  </controls>
</monitor>
        If a monitor supports exactly the same controls as another one, you can define it as shown:
<?xml version="1.0"?> <monitor include="%monitor_id%" name="%full_monitor_name%" caps="%caps%"/>