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.xml
monitor/%monitor_id%.xml
control 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 3).
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="3">
<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>The caps attribute is optional. Its format is defined in ACCESS.bus specifications.
To add controls to caps, use the add attribute.
To remove controls from caps, use the remove attribute.
Note remove is handled before add, so if you remove and add a same control, it will finally be in caps.
List of controls supported by a monitor (optional if you have an
include element).
control
id attributes are defined in
options.xml. If control
type is
“list” or
“command” without default values, 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”). This attribute is
optional, as long as the monitor profile includes another profile which defines
this attribute.
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.
Includes another monitor, manufacturer or standard profile, specified
by the file attribute.
File format:
<?xml version="1.0"?>
<monitor name="%full_monitor_name%" init="[standard|samsung]">
<caps add="%add_caps%" remove="%remove_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>
<!--- Including VESA generic profile is generally a good idea. -->
<include file="VESA"/>
</monitor>
If a monitor supports exactly the same controls as another one, you can define it as shown:
<?xml version="1.0"?> <monitor name="%full_monitor_name%"> <caps add="%add_caps%" remove="%remove_caps%"/> <include file="%include_monitor_id%"/> </monitor>