[Openicc] monitor profiling

Hal V. Engel hvengel at astound.net
Mon Feb 26 10:45:36 PST 2007


On Monday 26 February 2007 06:32, Stefan Döhla wrote:
> Hi,
>
> > Jordi Canton wrote:
> >> I was just surfing looking for information about this specific device
> >> when I Found the following GPL licensed software called HCFR Colormeter
> >> that already supports Spyder2.
> >
> > I think you'll find that it supports the Spyder2 by using Datacolor's
> > MSWindows SDK for their instrument, therefore even though the
> > HCFR Colormeter software is GPL, the support for the Spyder2 is not.
>
> 1: The software doesn't use the "SDK" but simply loads the native
> user-space driver,
> which comes with some variants of Datacolor's products. This native
> driver is called "cvspyder.dll" and at least the function names are
> readable. It may not be that hard to extract the API from it - but
> this will probably be part of the ColorHCFR software.

This is hair splitting.  Graeme's point was that they are using the vendors 
library and the same calls to that library that are documented in the SDK.   
After all for these vendors the SDK is nothing but a document that describes 
the API, a header file and perhaps a few example programs.  So it really does 
not matter if they actually have a copy of the SDK or managed to figure out 
the API by digging around in the library binary.  The result is the same in 
the end.

The real issue is that the "user-space driver" is a closed source Windows and 
Mac only binary.  That is unless Datacolor also has this available for *nix 
systems (I was not able to find anything like this on their web site).  I 
have also asked them in the past if the interface library was available for 
Linux and they didn't even bother to respond to my request for information.

>
> 2: There's another software, called S2Fly, which was the first one using
> that API (at least as far as I know). The author may give you the
> reverse-engineered API as well.

Again if S2Fly is using the vendors interface library it simply does not 
matter unless the interface library is available for the platforms we need.  

As a side note the SDK information for the EyeOne library can be found on the 
net if you dig around enough.  Having that information would be comparable to 
having " reverse-engineered" the SDK APIs.  The problem is that the 
information is useless if X-Rite will not release the interface library for 
the platforms we use.  And so far at least they have not even though they 
have had linux versions of the library internally since at least 2004.  So we 
have exactly the same issue with X-Rite. 

>
> Starting from using cvspyder.dll - maybe one can issue the native USB
> commands as well - but that's not my expertise and I will stop
> issuing ideas at that point.

Now we are down to the meat of the issue.  Using a port sniffer to figure out 
how to interact with this type of device is a significant effort.  Even for 
someone who is very experienced at this, such as Graeme, it could take 100 to 
200 (possibly more) hours of effort to get an interface to the device that is 
good enough to consider a user test version and even more effort to have a 
production quality interface.  If the vendors would release interface 
protocol information for these devices a person who has worked on this type 
of thing could have a working interface in a few days effort.  This is an 
order of magnitude difference in the amount of effort required. 

Hal


More information about the openicc mailing list