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
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>