[Openicc] Profile installation and association for Linux/Unix/X11
Graeme Gill
graeme at argyllcms.com
Thu Apr 24 09:16:46 PDT 2008
Kai-Uwe Behrmann wrote:
> Yes the proposal is here:
> https://www.oyranos.org/wiki/index.php?title=OpenIccDirectoryProposal
> Still we need to place it somewhere on fd.o .
> The directories are somewhat fixed paths. Arbitrary directories are not
> going to be supported supported in the same, so we discourage this.
I've looking into this a little bit, and get the impression the
necessary infrastructure is not quite in place. I think the idea
of Elektra is probably a reasonable one, but it's current implementation
worries me, particularly the version currently used in Oyranos, which uses
a file per key in the back end. I've had some very bad experiences
with such a scheme in the past, as it simply doesn't scale, and it's
very awkward for viewing or editing by humans. I've also found
such a arrangement to be rather more fragile than one would imagine,
since any filesystem problems can lead to inconsistencies that may
not be immediately obvious, and there may be locking/consistency
issues where larger semantic elements need to be manipulated
coherently, but the underlying system is only dealing with elements
at the lowest level.
Perhaps this could be cured with a different back end, one
that allows (say) all the color configuration key/values to be stored
in one file. A search for suitable back ends turned up XML (much as I
dislike it), JASON, OGDL and libconfig.
There doesn't seem to be any documentation for how Oyranos uses
the configuration to store profile & device information, and
it's not obvious from perusing the source code (although I'm
sure I could figure it out eventually), so it seems harder than
it might be to set or get the configuration independently.
Looking at the Oyranos Monitor API, I'm worried that the API's aren't
quite right according to my current understanding. oySetMonitorProfile()
for instance associates the profile with the display, but it is in fact
the monitor that it needs to be associated with. Now it's possible
that under the covers Oyranos is then identifying the current monitor and
associating the profile with the monitor, but it's unclear whether this is
the case.
The display name is a little problematic when Xinerama is running too,
and it needs some clarification. With Xinerama running there will (I think)
be only one virtual screen for rendering and other normal operations,
but for some things (such as XF86VidMode() which is use to set
the calibration), the underlying screens are still there, and
that is how they are accessed. So if there were two screens and Xinerama
is running, Xinerama thinks that there is only display name ":0.0",
while the only way to associate the correct profile to the second
screen and set it's calibration is ":0.1". Does oySetMonitorProfile()
understand this ?
Graeme Gill.
More information about the openicc
mailing list