[Openicc] OpenICC Configuration 0.1 DRAFT 1
Kai-Uwe Behrmann
ku.b at gmx.de
Thu Nov 24 08:41:34 PST 2011
Hello,
following is the description draft of the JSON Configuration format used
by Taxi and supported by Oyranos. The format was originally based on ucmm
from Graeme but extended in many areas by various people.
This draft is intented for correction not for substantial modifications.
For the later please open a OpenICC Configuration 0.2 thread. Thanks.
-------------------------------------------------------------------------
http://www.oyranos.org/wiki/index.php?title=OpenICC_Configuration_0.1
ucmm 2008-05-14 Graeme Gill Initial proposal for ArgyllCMS
ICC meta Tag for Monitor Profiles - DRAFT 3 2010-12-01 Kai-Uwe
Behrmann, Richard Hughes, Max Derhack, Lars Borg and others EDID keys
for ICC meta tag
OpenICC Configuration - 1.0 DRAFT 1 2011-11-24 Kai-Uwe Behrmann,
Sebastian Oliva, Richard Hughes Oyranos and Taxi DB format
Table of contents
1 Introduction
2 Specification
2.1 Format
2.2 Keys
2.3 Locations
3 References
== Introduction ==
The OpenICC Configuration, in the following text simply named
Configuration, is intended to share common configuration properties
through colour management systems and desktops environments.
== Specification ==
The Configuration uses the JSON format to store data.
=== Format ===
The Configuration is stored in the well known JSON format inside a tree
data structure. The key prefix contains "org"/"freedesktop"/"openicc".
Keys are usually grouped into sets either by namespaces like
"configuration" or by JSON format arrays.
JSON keys are literal strings in ASCII. Values are literal strings in
UTF-8. It is recommended to write floating point numbers as strings to
avoid imprecisions during reading.
=== Keys ===
Keys can have a key prefix to handle key sets like flat data in the ICC
meta tag. A prefix is upper letter [:alpha:] and a underscore '_'. The key
name itself should be lower case and separated by underscore '_'. The
string for the 'model' key with the 'EDID_' prefix would become
"EDID_model".
The "prefix" key is optional and can contain a comma ',' separated list of
prefixes for key names. A interpreter can then easily remove the prefix to
search for common key names in the data base, while maintaining the
origin. "EDID_model" can be resolved to "model" in absence of a explicit
"model" key. Example "prefix"="EDID_,OSD_".
"icc_profile_hash" optionally contains the ICC hash value to specify a ICC
profile.
"icc_profile_file" optionally contains the ICC profiles file name.
"creation_date" mandatory contains the date and time of entry creation and
should be updated on each change. Something human readable would be great.
But we can as well agree about an other format.
"expire_date" optionally contains data/time for showing a user a message
to update the profile with a new one.
"automatic_assignment" mandatory contains "1" for automatic generated
fallback style profiles in a local DB. "0" is to be used for explicit set
user selected profiles. This is useful to know which profiles should
easily be overridden.
Example:
{
"org": {
"freedesktop": {
"openicc": {
"device": {
"monitor": [
{ "prefix": "EDID_",
"EDID_model": "LCD one",
"icc_profile": "profile_name_from_edid.icc",
"creation_date": "05-08-11T11:59:50Z",
"expire_date": "05-08-12T11:59:50Z",
"automatic_assigment": "1"
},
{ "prefix": "EDID_",
"EDID_model": "LCD two",
"icc_profile": "profile_name_vendor.icc",
"creation_date": "05-08-11T11:59:50Z",
"expire_date": "05-08-12T11:59:50Z",
"automatic_assigment": "0"
}
}
}
}
}
}
}
=== Locations ===
File locations to write to are:
local: $XDG_CONFIG_HOME/color/openicc/ or ~/.local/share/color/openicc/
global: /etc/xdg/color/openicc/
Read from XDG_CONFIG_DIRS/color/openicc/ directory. The Configuration file
ending is 'json'.
The Configuration JSON can be used as file or by a in memory string
representation for exchange among supporting applications.
== References ==
1. International Color Consortium
2. JSON
3. meta tag - http://www.color.org/ICCSpecRevision_25-02-10_dictType.pdf
4. ISO 8601 - Data elements and interchange formats – Information interchange – Representation of dates and times
2010-2011 © Kai-Uwe Behrmann
regards
Kai-Uwe Behrmann
--
developing for colour management
www.behrmann.name + www.oyranos.org
More information about the openicc
mailing list