On 13 Mar 2003, Ben Guthro wrote:
> I am in the process of writing hardware / software monitor color
> calibration software for linux under Qt. In doing so, determining the
> monitor hardware that is currently running is quite paramount. The DDC
> seems to probe the monitors, then store this EDID data in an atom called
> While this method seems to work great in a single monitor environment, a
> Xinerama environment seems to be different.
> Since there seems to be a shared Screen between the Xinerama displays -
> is this EDID data still stored somewhere?
> Though the full EDID data would be nice, ultimately, I merely need a way
> off accociating specific screen coordinates to a monitor Vendor / Model
> / serial number triplet
> Any insight into this matter would be greatly apprecated
Xcms is an existing industry standard color management scheme for X
servers. It also uses atoms (such as XDCCC_LINEAR_RGB_MATRICES) to
maintain state and make it available to applications/libraries.
See "man xcmsdb" for the way one implementation handles these atoms.
I haven't looked at the Xcms code for creating these atoms,
so I don't know whether it copes with Xinerama.
(I do have a program which can be used with xcmsdb to read
XFree86_DDC_EDID1_RAWDATA and create the XDCCC_ atoms, but
conventional wisdom is that the color data in many monitor EDIDs
is worse than using established defaults - and I've seen figures
to prove that).
Xinerama didn't exist when I wrote the code for the atoms
XFree86_DDC_EDID1_RAWDATA and XFree86_DDC_EDID2_RAWDATA,
and I've never got around to looking at what to do.
As you say, Xinerama presents a single screen, and thus properties
on a single root window, but there are multiple sets of EDID data to
present. I've heard talk of ways of refering to the separate heads
for use in commands which take a display as argument, but I haven't
seen anything working.
With Xinerama, since a window may be moved between screens at any time
(or appear on more than one at the same time) it isn't really appropriate
for a client to ask about the monitor it is displayed on, but I can see
that it may be sensible for "configuration" type applications to have
access to both sets of monitor information at the same time.
The X log file contains most of the EDID data (and I have a program
which can parse most of it) so that might be the easiest way to get
what you need.
I haven't tried very hard, but I can't remember ever seeing correct
EDID data for two monitors into the XFree86_DDC_EDID1_RAWDATA atoms
of a dual head setup, and I would definitely not like to rely on it
for a dual-head card.
Sorry I can't be very positive.
Dr. Andrew C. Aitchison Computer Officer, DPMMS, Cambridge
[EMAIL PROTECTED] http://www.dpmms.cam.ac.uk/~werdna
Devel mailing list