[colord] Using spotread in colord
Richard Hughes
hughsient at gmail.com
Thu Nov 29 14:17:07 PST 2012
Hey all. I've just merged this commit:
commit 178069e11b29c57f5d8cd104c250afea5256ca6d
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Nov 29 22:11:52 2012 +0000
Use spotread when there is no native sensor driver
The downside is this requires ArgyllCMS to be installed. The
upside is that we
can support many more sensors than we have native drivers for
(huey & colorhug).
The idea is that we launch spotread in the daemon first when the
use uses Lock()
to get the device capabilities, and also to work out what color sensor to
connect to. This instance gets killed as we don't yet know what display type
we're going to be profiling.
When the user first calls GetSample() we spawn spotread and get
the value from
the sensor. Any subsequent calls to GetSample() re-use the same
instance, and
the sub-process is kept alive until the user calls Unlock(). This ensures we
only calibrate devices like the ColorMunki once per Lock()/Unlock() cycle.
This has been tested on a ColorMunki and a DTP94, although we
probably need to
detect more strings to make this work for all devices. If you have a problem
with 'colormgr get-sensor-reading' reporting that spotread timed out then
please send a verbose daemon log to the mailing list and I'll fix things.
On another point, clients will now have to handle errors like
org.freedesktop.ColorManager.Sensor.RequiredPositionCalibrate by
showing some
kind of UI and then resubmitting the GetSample() request.
---
If you've got a colorimeter (not huey, colorhug, dtp94 or colormunki),
I'd appreciate it if you could give it a go with colord from git
master. Just do 'colormgr get-sensor-reading' and check it gives a
valid reading.
Thanks!
Richard
More information about the colord
mailing list