Accepting request 99876 from multimedia:photo

let's move argyllcms there, so we could use this project as devel repository for factory submission

OBS-URL: https://build.opensuse.org/request/show/99876
OBS-URL: https://build.opensuse.org/package/show/multimedia:color_management/argyllcms?expand=0&rev=1
This commit is contained in:
Klaus Kämpf 2012-01-12 09:42:03 +00:00 committed by Git OBS Bridge
commit bd101b881b
12 changed files with 3288 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

92
19-color.fdi Normal file
View File

@ -0,0 +1,92 @@
<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
<!-- This file normally lives at "/usr/share/hal/fdi/policy/10osvendor/19-color.fdi" -->
<!-- Color meter devices known to Argyll CMS
FDI creation: Nicolas Mailhot <nicolas.mailhot at laposte.net>
with input from David Zeuthen and Frdric Crozat,
maintained by Graeme Gill.
-->
<device>
<!-- Serial Connected Color Instruments -->
<match key="serial.device" exists="true">
<append key="info.capabilities" type="strlist">access_control</append>
<merge key="access_control.type" type="string">color</merge>
<merge key="access_control.file" type="copy_property">linux.device_file</merge>
</match>
<!-- HCFR association -->
<match key="usb_device.vendor_id" int="0x04DB">
<!-- Display colorimeter -->
<match key="usb_device.product_id" int="0x005B">
<append key="info.capabilities" type="strlist">access_control</append>
<merge key="access_control.type" type="string">color</merge>
<merge key="access_control.file" type="copy_property">linux.device_file</merge>
</match>
</match>
<!-- MonacoOPTIX -->
<match key="usb_device.vendor_id" int="0x0670">
<!-- Eye-One Display 1 - display colorimeter -->
<match key="usb_device.product_id" int="0x0001">
<append key="info.capabilities" type="strlist">access_control</append>
<merge key="access_control.type" type="string">color</merge>
<merge key="access_control.file" type="copy_property">linux.device_file</merge>
</match>
</match>
<!-- X-Rite -->
<match key="usb_device.vendor_id" int="0x0765">
<!-- DTP20 "Pulse" - "swipe" type reflective spectrometer, that can be used un-tethered. -->
<match key="usb_device.product_id" int="0xd020">
<append key="info.capabilities" type="strlist">access_control</append>
<merge key="access_control.type" type="string">color</merge>
<merge key="access_control.file" type="copy_property">linux.device_file</merge>
</match>
<!-- DTP92Q - CRT display colorimeter. (Not tested) -->
<match key="usb_device.product_id" int="0xd092">
<append key="info.capabilities" type="strlist">access_control</append>
<merge key="access_control.type" type="string">color</merge>
<merge key="access_control.file" type="copy_property">linux.device_file</merge>
</match>
<!-- DTP94 "Optix XR" or "Optix XR2" - display colorimeter -->
<match key="usb_device.product_id" int="0xd094">
<append key="info.capabilities" type="strlist">access_control</append>
<merge key="access_control.type" type="string">color</merge>
<merge key="access_control.file" type="copy_property">linux.device_file</merge>
</match>
</match>
<!-- ColorVision -->
<match key="usb_device.vendor_id" int="0x085C">
<!-- Spyder 2 - display colorimeter -->
<match key="usb_device.product_id" int="0x0200">
<append key="info.capabilities" type="strlist">access_control</append>
<merge key="access_control.type" type="string">color</merge>
<merge key="access_control.file" type="copy_property">linux.device_file</merge>
</match>
</match>
<!-- Gretag-Macbeth -->
<match key="usb_device.vendor_id" int="0x0971">
<!-- Eye-One Monitor - spot emissive spectrometer -->
<match key="usb_device.product_id" int="0x2001">
<append key="info.capabilities" type="strlist">access_control</append>
<merge key="access_control.type" type="string">color</merge>
<merge key="access_control.file" type="copy_property">linux.device_file</merge>
</match>
<!-- Eye-One Pro - spot and "swipe" reflective/emissive spectrometer -->
<match key="usb_device.product_id" int="0x2000">
<append key="info.capabilities" type="strlist">access_control</append>
<merge key="access_control.type" type="string">color</merge>
<merge key="access_control.file" type="copy_property">linux.device_file</merge>
</match>
<!-- Eye-One Display - display colorimeter -->
<match key="usb_device.product_id" int="0x2003">
<append key="info.capabilities" type="strlist">access_control</append>
<merge key="access_control.type" type="string">color</merge>
<merge key="access_control.file" type="copy_property">linux.device_file</merge>
</match>
<!-- Huey - display colorimeter -->
<match key="usb_device.product_id" int="0x2005">
<append key="info.capabilities" type="strlist">access_control</append>
<merge key="access_control.type" type="string">color</merge>
<merge key="access_control.file" type="copy_property">linux.device_file</merge>
</match>
</match>
</device>
</deviceinfo>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,57 @@
diff -wruN ../orig-Argyll_V1.3.5/profile/Makefile.am ./profile/Makefile.am
--- ../orig-Argyll_V1.3.5/profile/Makefile.am 2012-01-11 20:53:56.448041068 +0100
+++ ./profile/Makefile.am 2012-01-11 21:43:19.152803748 +0100
@@ -11,8 +11,8 @@
../numlib/libargyllnum.la ../spectro/libinsttypes.la \
../xicc/libxutils.la ../libargyll.la
-LDADD = ./libprof.la ../xicc/libxutils.la ../spectro/libinst.la \
- ../xicc/libxicc.la ../spectro/libinsttypes.la \
+LDADD = ./libprof.la ../xicc/libxutils.la ../xicc/libxicc.la \
+ ../spectro/libinst.la ../spectro/libinsttypes.la \
../gamut/libgamut.la ../gamut/libgammap.la ../plot/libvrml.la \
../plot/libplot.la ../rspl/librspl.la \
../numlib/libargyllnum.la $(ICC_LIBS) ../cgats/libcgats.la \
diff -wruN ../orig-Argyll_V1.3.5/spectro/Makefile.am ./spectro/Makefile.am
--- ../orig-Argyll_V1.3.5/spectro/Makefile.am 2012-01-11 20:53:56.448041068 +0100
+++ ./spectro/Makefile.am 2012-01-11 21:51:16.265039580 +0100
@@ -10,6 +10,8 @@
libinst_la_SOURCES = inst.h inst.c insttypes.c dtp20.c dtp20.h dtp22.c \
dtp22.h dtp41.c dtp41.h dtp51.c dtp51.h dtp92.c dtp92.h \
+ i1d3.c i1d3.h \
+ colorhug.c colorhug.h \
i1disp.c i1disp.h i1pro.c i1pro.h i1pro_imp.c i1pro_imp.h \
munki.c munki_imp.c ss.c ss.h ss_imp.c ss_imp.h hcfr.c hcfr.h \
spyd2.c spyd2.h spyd2setup.h spyd2PLD.h huey.c huey.h unixio.c \
@@ -33,7 +35,7 @@
../libargyllusb.la ../libargyll.la
bin_PROGRAMS = synthcal dispwin dispread dispcal fakeread synthread \
- chartread spotread illumread ccmxmake spec2cie average spyd2en
+ chartread spotread illumread ccxxmake spec2cie average spyd2en
dispwin_CFLAGS = $(AM_CFLAGS) -DSTANDALONE_TEST
diff -wruN ../orig-Argyll_V1.3.5/target/Makefile.am ./target/Makefile.am
--- ../orig-Argyll_V1.3.5/target/Makefile.am 2012-01-11 20:53:56.448041068 +0100
+++ ./target/Makefile.am 2012-01-11 21:19:48.114575843 +0100
@@ -11,6 +11,7 @@
$(ICC_LIBS) ../render/librender.la ../cgats/libcgats.la \
../xicc/libxicc.la ../gamut/libgamut.la \
../spectro/libinsttypes.la ../spectro/libconv.la \
+ ../spectro/libinst.la \
../numlib/libargyllnum.la $(TIFF_LIBS)
bin_PROGRAMS = targen printtarg
diff -wruN ../orig-Argyll_V1.3.5/xicc/Makefile.am ./xicc/Makefile.am
--- ../orig-Argyll_V1.3.5/xicc/Makefile.am 2012-01-11 20:53:56.448041068 +0100
+++ ./xicc/Makefile.am 2012-01-11 20:53:22.997984221 +0100
@@ -8,6 +8,7 @@
libxicc_la_SOURCES = xicc.h xicc.c xlutfix.c xspect.c xspect.h xsep.c \
xsep.h xdevlin.c xdevlin.h xcam.c xcam.h cam97s3.c cam97s3.h \
cam02.c cam02.h mpp.c ccmx.c xfit.c xfit.h moncurve.c \
+ ccss.h ccss.c \
moncurve.h mpp.h xdgb.c
libxicc_la_LIBADD = $(ICC_LIBS) ../gamut/libgamut.la \
../numlib/libargyllnum.la ../spectro/libinsttypes.la \

3
Argyll_V1.3.5_src.zip Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:905dc6b5493e02eee76ef7384d619d1135704650a14d27b13c549002a1d9908c
size 12892085

View File

@ -0,0 +1,959 @@
diff -wruN ../orig-Argyll_V1.3.5/libusb1/55-Argyll.rules ./libusb1/55-Argyll.rules
--- ../orig-Argyll_V1.3.5/libusb1/55-Argyll.rules 2012-01-11 21:54:38.365302389 +0100
+++ ./libusb1/55-Argyll.rules 2012-01-11 21:56:39.478274483 +0100
@@ -46,6 +46,9 @@
# Huey
ATTRS{idVendor}=="0971", ATTRS{idProduct}=="2005", ENV{COLOR_MEASUREMENT_DEVICE}="1"
+# ColorHug
+ATTRS{idVendor}=="04d8", ATTRS{idProduct}=="f8dA", ENV{COLOR_MEASUREMENT_DEVICE}="1"
+
# Set ID_VENDOR and ID_MODEL acording to VID and PID
IMPORT{program}="usb-db %p"
diff -wruN ../orig-Argyll_V1.3.5/spectro/afiles ./spectro/afiles
--- ../orig-Argyll_V1.3.5/spectro/afiles 2011-10-24 14:10:26.000000000 +0200
+++ ./spectro/afiles 2012-01-11 21:56:05.116268005 +0100
@@ -60,6 +60,8 @@
LzmaDec.c
huey.c
huey.h
+colorhug.c
+colorhug.h
spec2cie.c
average.c
conv.h
diff -wruN ../orig-Argyll_V1.3.5/spectro/colorhug.c ./spectro/colorhug.c
--- ../orig-Argyll_V1.3.5/spectro/colorhug.c 1970-01-01 01:00:00.000000000 +0100
+++ ./spectro/colorhug.c 2012-01-11 21:56:05.116268005 +0100
@@ -0,0 +1,752 @@
+/*
+ * Argyll Color Correction System
+ *
+ * Hughski ColorHug related functions
+ *
+ * Author: Richard Hughes
+ * Date: 30/11/2011
+ *
+ * Copyright 2006 - 2007, Graeme W. Gill
+ * Copyright 2011, Richard Hughes
+ * All rights reserved.
+ *
+ * (Based on huey.c)
+ *
+ * This material is licenced under the GNU GENERAL PUBLIC LICENSE Version 2 or later :-
+ * see the License2.txt file for licencing details.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <ctype.h>
+#include <string.h>
+#include <time.h>
+#include <stdarg.h>
+#include <math.h>
+#ifndef SALONEINSTLIB
+#include "copyright.h"
+#include "aconfig.h"
+#include "numlib.h"
+#else /* SALONEINSTLIB */
+#include "sa_config.h"
+#include "numsup.h"
+#endif /* SALONEINSTLIB */
+#include "xspect.h"
+#include "insttypes.h"
+#include "icoms.h"
+#include "conv.h"
+#include "colorhug.h"
+
+static inst_code colorhug_interp_code(inst *pp, int ec);
+
+/* Interpret an icoms error into a ColorHug error */
+static int icoms2colorhug_err(int se) {
+ if (se & ICOM_USERM) {
+ se &= ICOM_USERM;
+ if (se == ICOM_USER)
+ return COLORHUG_USER_ABORT;
+ if (se == ICOM_TERM)
+ return COLORHUG_USER_TERM;
+ if (se == ICOM_TRIG)
+ return COLORHUG_USER_TRIG;
+ if (se == ICOM_CMND)
+ return COLORHUG_USER_CMND;
+ }
+ if (se != ICOM_OK)
+ return COLORHUG_COMS_FAIL;
+ return COLORHUG_OK;
+}
+
+/* ColorHug commands that we care about */
+typedef enum {
+ ch_set_mult = 0x04, /* Set multiplier value */
+ ch_set_integral = 0x06, /* Set integral time */
+ ch_get_serial = 0x0b, /* Gets the serial number */
+ ch_set_leds = 0x0e, /* Sets the LEDs */
+ ch_take_reading = 0x23 /* Takes an XYZ reading */
+} ColorHugCmd;
+
+/* Diagnostic - return a description given the instruction code */
+static char *inst_desc(int cc) {
+ static char buf[40];
+ switch(cc) {
+ case 0x04:
+ return "SetMultiplier";
+ case 0x06:
+ return "SetIntegral";
+ case 0x0b:
+ return "GetSerial";
+ case 0x0e:
+ return "SetLeds";
+ case 0x23:
+ return "TakeReadingXYZ";
+ }
+ sprintf(buf,"Unknown %02x",cc);
+ return buf;
+}
+
+/* Error codes interpretation */
+static char *
+colorhug_interp_error(inst *pp, int ec) {
+ ec &= inst_imask;
+ switch (ec) {
+ case COLORHUG_INTERNAL_ERROR:
+ return "Internal software error";
+ case COLORHUG_COMS_FAIL:
+ return "Communications failure";
+ case COLORHUG_UNKNOWN_MODEL:
+ return "Not a known ColorHug Model";
+ case COLORHUG_USER_ABORT:
+ return "User hit Abort key";
+ case COLORHUG_USER_TERM:
+ return "User hit Terminate key";
+ case COLORHUG_USER_TRIG:
+ return "User hit Trigger key";
+ case COLORHUG_USER_CMND:
+ return "User hit a Command key";
+
+ case COLORHUG_OK:
+ return "OK";
+ case COLORHUG_UNKNOWN_CMD:
+ return "Unknown connamd";
+ case COLORHUG_WRONG_UNLOCK_CODE:
+ return "Wrong unlock code";
+ case COLORHUG_NOT_IMPLEMENTED:
+ return "Not implemented";
+ case COLORHUG_UNDERFLOW_SENSOR:
+ return "Sensor underflow";
+ case COLORHUG_NO_SERIAL:
+ return "No serial";
+ case COLORHUG_WATCHDOG:
+ return "Watchdog";
+ case COLORHUG_INVALID_ADDRESS:
+ return "Invalid address";
+ case COLORHUG_INVALID_LENGTH:
+ return "Invalid length";
+ case COLORHUG_INVALID_CHECKSUM:
+ return "Invlid checksum";
+ case COLORHUG_INVALID_VALUE:
+ return "Invalid value";
+ case COLORHUG_UNKNOWN_CMD_FOR_BOOTLOADER:
+ return "Unknown command for bootloader";
+ case COLORHUG_NO_CALIBRATION:
+ return "No calibration";
+ case COLORHUG_OVERFLOW_MULTIPLY:
+ return "Multiply overflow";
+ case COLORHUG_OVERFLOW_ADDITION:
+ return "Addition overflow";
+ case COLORHUG_OVERFLOW_SENSOR:
+ return "Sensor overflow";
+ case COLORHUG_OVERFLOW_STACK:
+ return "Stack overflow";
+
+ /* Internal errors */
+ case COLORHUG_NO_COMS:
+ return "Communications hasn't been established";
+ case COLORHUG_NOT_INITED:
+ return "Insrument hasn't been initialised";
+ default:
+ return "Unknown error code";
+ }
+}
+
+/* Do a command/response exchange with the colorhug */
+static inst_code
+colorhug_command(colorhug *p,
+ ColorHugCmd cmd,
+ unsigned char *in, uint in_size,
+ unsigned char *out, uint out_size,
+ double timeout)
+{
+ int i;
+ unsigned char buf[64];
+ int wbytes;
+ int rbytes;
+ int se, ua = 0, rv = inst_ok;
+ int isdeb = 0;
+
+ /* Turn off low level debug messages, and sumarise them here */
+ isdeb = p->icom->debug;
+ if (isdeb <= 2)
+ p->icom->debug = 0;
+
+ if (isdeb) {
+ fprintf(stderr,"colorhug: Sending cmd '%s' args '%s'\n",
+ inst_desc(cmd), icoms_tohex(in, in_size));
+ }
+
+ /* Send the command with any specified data */
+ buf[0] = cmd;
+ if (in != NULL)
+ memcpy(buf + 1, in, in_size);
+ if (p->icom->is_hid) {
+ se = p->icom->hid_write(p->icom, buf, in_size + 1, &wbytes, timeout);
+ } else {
+ se = p->icom->usb_write(p->icom, 0x01, buf, in_size + 1, &wbytes, timeout);
+ }
+ if (se != 0) {
+ if (se & ICOM_USERM) {
+ ua = (se & ICOM_USERM);
+ }
+ if (se & ~ICOM_USERM) {
+ if (isdeb)
+ fprintf(stderr,"colorhug: Command send failed with ICOM err 0x%x\n", se);
+ p->icom->debug = isdeb;
+ return colorhug_interp_code((inst *)p, COLORHUG_COMS_FAIL);
+ }
+ }
+ rv = colorhug_interp_code((inst *)p, icoms2colorhug_err(ua));
+ if (isdeb)
+ fprintf(stderr,"colorhug: ICOM err 0x%x\n",ua);
+ if (wbytes != in_size + 1)
+ rv = colorhug_interp_code((inst *)p, COLORHUG_BAD_WR_LENGTH);
+ if (rv != inst_ok) {
+ p->icom->debug = isdeb;
+ return rv;
+ }
+
+ /* Now fetch the response */
+ if (isdeb)
+ fprintf(stderr,"colorhug: Reading response\n");
+
+ if (p->icom->is_hid) {
+ se = p->icom->hid_read(p->icom, buf, out_size + 2, &rbytes, timeout);
+ } else {
+ se = p->icom->usb_read(p->icom, 0x81, buf, out_size + 2, &rbytes, timeout);
+ }
+
+ if (isdeb && rbytes >= 2) {
+ fprintf(stderr,"Recieved cmd '%s' error '%s' args '%s'\n",
+ inst_desc(buf[1]),
+ colorhug_interp_error((inst *) p, buf[0]),
+ icoms_tohex(buf, rbytes - 2));
+ }
+
+ if (se != 0) {
+
+ /* deal with command error */
+ if (rbytes == 2 && buf[0] != COLORHUG_OK) {
+ rv = colorhug_interp_code((inst *)p, buf[0]);
+ return rv;
+ }
+
+ /* deal with underrun or overrun */
+ if (rbytes != out_size + 2) {
+ rv = colorhug_interp_code((inst *)p, COLORHUG_BAD_RD_LENGTH);
+ return rv;
+ }
+
+ /* there's another reason it failed */
+ if (se & ICOM_USERM) {
+ ua = (se & ICOM_USERM);
+ }
+ if (se & ~ICOM_USERM) {
+ if (isdeb)
+ fprintf(stderr,"colorhug: Response read failed with ICOM err 0x%x\n",se);
+ p->icom->debug = isdeb;
+ return colorhug_interp_code((inst *)p, COLORHUG_COMS_FAIL);
+ }
+ }
+ rv = colorhug_interp_code((inst *)p, icoms2colorhug_err(ua));
+ if (rv != inst_ok)
+ return rv;
+
+ /* check the command was the same */
+ if (buf[1] != cmd) {
+ rv = colorhug_interp_code((inst *)p, COLORHUG_BAD_RET_CMD);
+ return rv;
+ }
+ if (out != NULL) {
+ memcpy(out, buf + 2, out_size);
+ }
+ if (isdeb) {
+ fprintf(stderr,"colorhug: '%s' ICOM err 0x%x\n",
+ icoms_tohex(buf + 2, out_size),ua);
+ }
+ p->icom->debug = isdeb;
+ return rv;
+}
+
+/* Take a short, and convert it into a byte buffer */
+static void short2buf(unsigned char *buf, int inv)
+{
+ buf[0] = (inv >> 0) & 0xff;
+ buf[1] = (inv >> 8) & 0xff;
+}
+
+/* Converts a packed float to a double */
+static double packed_float_to_double (uint32_t pf)
+{
+ return (double) pf / (double) 0x10000;
+}
+
+/* Set the device LED state */
+static inst_code
+colorhug_set_LEDs(colorhug *p, int mask)
+{
+ int i;
+ unsigned char ibuf[4];
+ inst_code ev;
+
+ mask &= 0x3;
+ p->led_state = mask;
+
+ ibuf[0] = mask;
+ ibuf[1] = 0; /* repeat */
+ ibuf[2] = 0; /* on */
+ ibuf[3] = 0; /* off */
+
+ /* Do command */
+ ev = colorhug_command(p, ch_set_leds,
+ ibuf, sizeof (ibuf), /* input */
+ NULL, 0, /* output */
+ 1.0);
+ return ev;
+}
+
+/* Take a XYZ measurement from the device */
+static inst_code
+colorhug_take_XYZ_measurement(colorhug *p, double XYZ[3])
+{
+ inst_code ev;
+ int i;
+ uint8_t ibuf[2];
+ uint32_t obuf[3];
+
+ if (!p->inited)
+ return colorhug_interp_code((inst *)p, COLORHUG_NOT_INITED);
+
+ /* Choose the calibration matrix */
+ short2buf(ibuf + 0, p->crt ? 65 : 64);
+
+ /* Do the measurement, and return the values */
+ ev = colorhug_command(p, ch_take_reading,
+ ibuf, sizeof (ibuf),
+ (unsigned char *) obuf, sizeof (obuf),
+ 1.0);
+ if (ev != inst_ok)
+ return ev;
+
+ /* Convert to doubles */
+ for (i = 0; i < 3; i++)
+ XYZ[i] = packed_float_to_double (obuf[i]);
+
+ /* Apply the colorimeter correction matrix */
+ icmMulBy3x3(XYZ, p->ccmat, XYZ);
+
+ if (p->debug) {
+ fprintf(stderr,"colorhug: returning XYZ = %f %f %f\n",
+ XYZ[0],XYZ[1],XYZ[2]);
+ }
+ return inst_ok;
+}
+
+/* Establish communications with a ColorHug */
+static inst_code
+colorhug_init_coms(inst *pp, int port, baud_rate br, flow_control fc, double tout) {
+ colorhug *p = (colorhug *) pp;
+
+ if (p->debug) {
+ p->icom->debug = p->debug; /* Turn on debugging */
+ fprintf(stderr,"colorhug: About to init coms\n");
+ }
+
+ /* Open as an HID if available */
+ if (p->icom->is_hid_portno(p->icom, port) != instUnknown) {
+
+ if (p->debug)
+ fprintf(stderr,"colorhug: About to init HID\n");
+
+ /* Set config, interface */
+ p->icom->set_hid_port(p->icom, port, icomuf_none, 0, NULL);
+
+ } else if (p->icom->is_usb_portno(p->icom, port) != instUnknown) {
+
+ if (p->debug)
+ fprintf(stderr,"colorhug: About to init USB\n");
+
+ /* Set config, interface, write end point, read end point */
+ p->icom->set_usb_port(p->icom, port, 1, 0x00, 0x00, icomuf_detach, 0, NULL);
+
+ } else {
+ if (p->debug)
+ fprintf(stderr,"colorhug: init_coms called to wrong device!\n");
+ return colorhug_interp_code((inst *)p, COLORHUG_UNKNOWN_MODEL);
+ }
+
+ if (p->debug)
+ fprintf(stderr,"colorhug: init coms has suceeded\n");
+
+ p->gotcoms = 1;
+ return inst_ok;
+}
+
+/* Set the device multiplier */
+static inst_code
+colorhug_set_multiplier (colorhug *p, int multiplier)
+{
+ inst_code ev;
+ unsigned char ibuf[1];
+
+ /* Set the desired multiplier */
+ ibuf[0] = multiplier;
+ ev = colorhug_command(p, ch_set_mult,
+ ibuf, sizeof (ibuf),
+ NULL, 0,
+ 1.0);
+ return ev;
+}
+
+/* Set the device integral time */
+static inst_code
+colorhug_set_integral (colorhug *p, int integral)
+{
+ inst_code ev;
+ unsigned char ibuf[2];
+
+ /* Set the desired integral time */
+ short2buf(ibuf + 0, integral);
+ ev = colorhug_command(p, ch_set_integral,
+ ibuf, sizeof (ibuf),
+ NULL, 0,
+ 1.0);
+ return ev;
+}
+
+/* Initialise the ColorHug */
+static inst_code
+colorhug_init_inst(inst *pp)
+{
+ colorhug *p = (colorhug *)pp;
+ inst_code ev;
+
+ if (p->debug)
+ fprintf(stderr,"colorhug: About to init instrument\n");
+
+ /* Must establish coms first */
+ if (p->gotcoms == 0)
+ return colorhug_interp_code((inst *)p, COLORHUG_NO_COMS);
+
+ /* Turn the LEDs off */
+ ev = colorhug_set_LEDs(p, 0x0);
+ if (ev != inst_ok)
+ return ev;
+
+ /* Turn the sensor on */
+ ev = colorhug_set_multiplier(p, 0x03);
+ if (ev != inst_ok)
+ return ev;
+
+ /* Set the integral time to maximum precision */
+ ev = colorhug_set_integral(p, 0xffff);
+ if (ev != inst_ok)
+ return ev;
+
+ p->itype = instColorHug;
+ p->trig = inst_opt_trig_keyb;
+ p->inited = 1;
+ if (p->debug)
+ fprintf(stderr,"colorhug: instrument inited OK\n");
+
+ /* Flash the LEDs */
+ ev = colorhug_set_LEDs(p, 0x1);
+ if (ev != inst_ok)
+ return ev;
+ msec_sleep(50);
+ ev = colorhug_set_LEDs(p, 0x2);
+ if (ev != inst_ok)
+ return ev;
+ msec_sleep(50);
+ ev = colorhug_set_LEDs(p, 0x1);
+ if (ev != inst_ok)
+ return ev;
+ msec_sleep(50);
+ ev = colorhug_set_LEDs(p, 0x0);
+ if (ev != inst_ok)
+ return ev;
+
+ return ev;
+}
+
+/* Read a single sample */
+static inst_code
+colorhug_read_sample(
+inst *pp,
+char *name, /* Strip name (7 chars) */
+ipatch *val) { /* Pointer to instrument patch value */
+ colorhug *p = (colorhug *)pp;
+ int user_trig = 0;
+ int rv = inst_protocol_error;
+
+ if (p->trig == inst_opt_trig_keyb) {
+ int se;
+ if ((se = icoms_poll_user(p->icom, 1)) != ICOM_TRIG) {
+ /* Abort, term or command */
+ return colorhug_interp_code((inst *)p, icoms2colorhug_err(se));
+ }
+ user_trig = 1;
+ if (p->trig_return)
+ printf("\n");
+ }
+
+ /* Read the XYZ value */
+ if ((rv = colorhug_take_XYZ_measurement(p, val->aXYZ)) != inst_ok) {
+ return rv;
+ }
+
+ val->XYZ_v = 0;
+ val->aXYZ_v = 1; /* These are absolute XYZ readings ? */
+ val->Lab_v = 0;
+ val->sp.spec_n = 0;
+ val->duration = 0.0;
+
+ if (user_trig)
+ return inst_user_trig;
+ return rv;
+}
+
+/* Insert a colorimetric correction matrix */
+inst_code colorhug_col_cor_mat(
+inst *pp,
+double mtx[3][3]
+) {
+ colorhug *p = (colorhug *)pp;
+
+ if (mtx == NULL)
+ icmSetUnity3x3(p->ccmat);
+ else
+ icmCpy3x3(p->ccmat, mtx);
+
+ return inst_ok;
+}
+
+/* Determine if a calibration is needed */
+inst_cal_type colorhug_needs_calibration(inst *pp) {
+ return inst_ok;
+}
+
+/* Request an instrument calibration */
+inst_code colorhug_calibrate(
+inst *pp,
+inst_cal_type calt, /* Calibration type. inst_calt_all for all neeeded */
+inst_cal_cond *calc, /* Current condition/desired condition */
+char id[CALIDLEN] /* Condition identifier (ie. white reference ID) */
+) {
+ id[0] = '\000';
+ return inst_unsupported;
+}
+
+/* Convert a machine specific error code into an abstract dtp code */
+static inst_code
+colorhug_interp_code(inst *pp, int ec) {
+ ec &= inst_imask;
+ switch (ec) {
+
+ case COLORHUG_OK:
+ return inst_ok;
+
+ case COLORHUG_INTERNAL_ERROR:
+ case COLORHUG_NO_COMS:
+ case COLORHUG_NOT_INITED:
+ return inst_internal_error | ec;
+
+ case COLORHUG_COMS_FAIL:
+ return inst_coms_fail | ec;
+
+ case COLORHUG_UNKNOWN_MODEL:
+ return inst_unknown_model | ec;
+
+ case COLORHUG_UNKNOWN_CMD:
+ case COLORHUG_WRONG_UNLOCK_CODE:
+ case COLORHUG_NOT_IMPLEMENTED:
+ case COLORHUG_UNDERFLOW_SENSOR:
+ case COLORHUG_NO_SERIAL:
+ case COLORHUG_WATCHDOG:
+ case COLORHUG_INVALID_ADDRESS:
+ case COLORHUG_INVALID_LENGTH:
+ case COLORHUG_INVALID_CHECKSUM:
+ case COLORHUG_INVALID_VALUE:
+ case COLORHUG_UNKNOWN_CMD_FOR_BOOTLOADER:
+ case COLORHUG_NO_CALIBRATION:
+ case COLORHUG_OVERFLOW_MULTIPLY:
+ case COLORHUG_OVERFLOW_ADDITION:
+ case COLORHUG_OVERFLOW_SENSOR:
+ case COLORHUG_OVERFLOW_STACK:
+ case COLORHUG_BAD_WR_LENGTH:
+ case COLORHUG_BAD_RD_LENGTH:
+ case COLORHUG_BAD_RET_CMD:
+ case COLORHUG_BAD_RET_STAT:
+ return inst_protocol_error | ec;
+
+ case COLORHUG_USER_ABORT:
+ return inst_user_abort | ec;
+ case COLORHUG_USER_TERM:
+ return inst_user_term | ec;
+ case COLORHUG_USER_TRIG:
+ return inst_user_trig | ec;
+ case COLORHUG_USER_CMND:
+ return inst_user_cmnd | ec;
+ }
+ return inst_other_error | ec;
+}
+
+/* Destroy ourselves */
+static void
+colorhug_del(inst *pp) {
+ colorhug *p = (colorhug *)pp;
+ if (p->icom != NULL)
+ p->icom->del(p->icom);
+ free(p);
+}
+
+/* Return the instrument capabilities */
+inst_capability colorhug_capabilities(inst *pp) {
+ colorhug *p = (colorhug *)pp;
+ inst_capability rv;
+
+ rv = inst_emis_spot
+ | inst_emis_disp
+ | inst_emis_disp_lcd
+ | inst_colorimeter
+ | inst_ccmx
+ ;
+
+ return rv;
+}
+
+/* Return the instrument capabilities 2 */
+inst2_capability colorhug_capabilities2(inst *pp) {
+ colorhug *p = (colorhug *)pp;
+ inst2_capability rv = 0;
+
+ rv |= inst2_prog_trig;
+ rv |= inst2_keyb_trig;
+ rv |= inst2_has_leds;
+
+ return rv;
+}
+
+/* Set device measurement mode */
+inst_code colorhug_set_mode(inst *pp, inst_mode m)
+{
+ colorhug *p = (colorhug *)pp;
+ inst_mode mm; /* Measurement mode */
+
+ /* The measurement mode portion of the mode */
+ mm = m & inst_mode_measurement_mask;
+
+ /* only display emission mode and ambient supported */
+ if (mm != inst_mode_emis_spot
+ && mm != inst_mode_emis_disp
+ && mm != inst_mode_emis_ambient) {
+ return inst_unsupported;
+ }
+
+ /* Spectral mode is not supported */
+ if (m & inst_mode_spectral)
+ return inst_unsupported;
+
+ p->mode = m;
+ return inst_ok;
+}
+
+/* Set or reset an optional mode */
+static inst_code
+colorhug_set_opt_mode(inst *pp, inst_opt_mode m, ...)
+{
+ colorhug *p = (colorhug *)pp;
+ inst_code ev = inst_ok;
+
+ /* Select CRT/LCD */
+ if (m == inst_opt_disp_crt) {
+ if (p->crt == 0)
+ p->crt = 1;
+ return inst_ok;
+ } else if (m == inst_opt_disp_lcd) {
+ if (p->crt != 0)
+ p->crt = 0;
+ return inst_ok;
+
+ }
+ /* Record the trigger mode */
+ if (m == inst_opt_trig_prog
+ || m == inst_opt_trig_keyb) {
+ p->trig = m;
+ return inst_ok;
+ }
+ if (m == inst_opt_trig_return) {
+ p->trig_return = 1;
+ return inst_ok;
+ } else if (m == inst_opt_trig_no_return) {
+ p->trig_return = 0;
+ return inst_ok;
+ }
+
+ /* Operate the LEDs */
+ if (m == inst_opt_get_gen_ledmask) {
+ va_list args;
+ int *mask = NULL;
+
+ va_start(args, m);
+ mask = va_arg(args, int *);
+ va_end(args);
+ *mask = 0x3; /* Two general LEDs */
+ return inst_ok;
+ } else if (m == inst_opt_get_led_state) {
+ va_list args;
+ int *mask = NULL;
+
+ va_start(args, m);
+ mask = va_arg(args, int *);
+ va_end(args);
+ *mask = p->led_state;
+ return inst_ok;
+ } else if (m == inst_opt_set_led_state) {
+ va_list args;
+ int mask = 0;
+
+ va_start(args, m);
+ mask = va_arg(args, int);
+ va_end(args);
+ return colorhug_set_LEDs(p, mask);
+ }
+
+ return inst_unsupported;
+}
+
+/* Constructor */
+extern colorhug *new_colorhug(icoms *icom, int debug, int verb)
+{
+ colorhug *p;
+ if ((p = (colorhug *)calloc(sizeof(colorhug),1)) == NULL)
+ error("colorhug: malloc failed!");
+
+ if (icom == NULL)
+ p->icom = new_icoms();
+ else
+ p->icom = icom;
+
+ p->debug = debug;
+ p->verb = verb;
+
+ /* Set the colorimeter correction matrix to do nothing */
+ icmSetUnity3x3(p->ccmat);
+
+ p->init_coms = colorhug_init_coms;
+ p->init_inst = colorhug_init_inst;
+ p->capabilities = colorhug_capabilities;
+ p->capabilities2 = colorhug_capabilities2;
+ p->set_mode = colorhug_set_mode;
+ p->set_opt_mode = colorhug_set_opt_mode;
+ p->read_sample = colorhug_read_sample;
+ p->needs_calibration = colorhug_needs_calibration;
+ p->col_cor_mat = colorhug_col_cor_mat;
+ p->calibrate = colorhug_calibrate;
+ p->interp_error = colorhug_interp_error;
+ p->del = colorhug_del;
+
+ /* Until initalisation */
+ p->itype = instUnknown;
+
+ return p;
+}
diff -wruN ../orig-Argyll_V1.3.5/spectro/colorhug.h ./spectro/colorhug.h
--- ../orig-Argyll_V1.3.5/spectro/colorhug.h 1970-01-01 01:00:00.000000000 +0100
+++ ./spectro/colorhug.h 2012-01-11 21:56:05.116268005 +0100
@@ -0,0 +1,85 @@
+/*
+ * Argyll Color Correction System
+ *
+ * Hughski ColorHug related defines
+ *
+ * Author: Richard Hughes
+ * Date: 30/11/2011
+ *
+ * Copyright 2006 - 2007, Graeme W. Gill
+ * Copyright 2011, Richard Hughes
+ * All rights reserved.
+ *
+ * (Based on huey.h)
+ *
+ * This material is licenced under the GNU GENERAL PUBLIC LICENSE Version 2 or later :-
+ * see the License2.txt file for licencing details.
+ */
+
+#ifndef COLORHUG_H
+
+#include "inst.h"
+
+/* Note: update colorhug_interp_error() and colorhug_interp_code() in colorhug.c */
+/* if anything of these #defines are added or subtracted */
+
+/* Fake Error codes */
+#define COLORHUG_INTERNAL_ERROR 0x61 /* Internal software error */
+#define COLORHUG_COMS_FAIL 0x62 /* Communication failure */
+#define COLORHUG_UNKNOWN_MODEL 0x63 /* Not an colorhug */
+#define COLORHUG_DATA_PARSE_ERROR 0x64 /* Read data parsing error */
+#define COLORHUG_USER_ABORT 0x65 /* User hit abort */
+#define COLORHUG_USER_TERM 0x66 /* User hit terminate */
+#define COLORHUG_USER_TRIG 0x67 /* User hit trigger */
+#define COLORHUG_USER_CMND 0x68 /* User hit command */
+
+/* Real error codes */
+#define COLORHUG_OK 0x00
+#define COLORHUG_UNKNOWN_CMD 0x01
+#define COLORHUG_WRONG_UNLOCK_CODE 0x02
+#define COLORHUG_NOT_IMPLEMENTED 0x03
+#define COLORHUG_UNDERFLOW_SENSOR 0x04
+#define COLORHUG_NO_SERIAL 0x05
+#define COLORHUG_WATCHDOG 0x06
+#define COLORHUG_INVALID_ADDRESS 0x07
+#define COLORHUG_INVALID_LENGTH 0x08
+#define COLORHUG_INVALID_CHECKSUM 0x09
+#define COLORHUG_INVALID_VALUE 0x0a
+#define COLORHUG_UNKNOWN_CMD_FOR_BOOTLOADER 0x0b
+#define COLORHUG_NO_CALIBRATION 0x0c
+#define COLORHUG_OVERFLOW_MULTIPLY 0x0d
+#define COLORHUG_OVERFLOW_ADDITION 0x0e
+#define COLORHUG_OVERFLOW_SENSOR 0x0f
+#define COLORHUG_OVERFLOW_STACK 0x10
+
+/* Internal errors */
+#define COLORHUG_NO_COMS 0x22
+#define COLORHUG_NOT_INITED 0x23
+#define COLORHUG_BAD_WR_LENGTH 0x25
+#define COLORHUG_BAD_RD_LENGTH 0x26
+#define COLORHUG_BAD_RET_CMD 0x27
+#define COLORHUG_BAD_RET_STAT 0x28
+
+
+/* COLORHUG communication object */
+struct _colorhug {
+ INST_OBJ_BASE
+
+ inst_mode mode; /* Currently selected mode */
+
+ inst_opt_mode trig; /* Reading trigger mode */
+ int trig_return; /* Emit "\n" after trigger */
+
+ int ser_no; /* Serial number */
+ int crt; /* NZ if set to CRT */
+ double ccmat[3][3]; /* Colorimeter correction matrix */
+ int led_state; /* Current LED state */
+
+}; typedef struct _colorhug colorhug;
+
+/* Constructor */
+extern colorhug *new_colorhug(icoms *icom, int debug, int verb);
+
+
+#define COLORHUG_H
+#endif /* COLORHUG_H */
diff -wruN ../orig-Argyll_V1.3.5/spectro/inst.c ./spectro/inst.c
--- ../orig-Argyll_V1.3.5/spectro/inst.c 2011-10-24 14:10:27.000000000 +0200
+++ ./spectro/inst.c 2012-01-11 21:56:05.116268005 +0100
@@ -476,6 +476,8 @@
p = (inst *)new_spyd2(icom, debug, verb);
else if (itype == instHuey)
p = (inst *)new_huey(icom, debug, verb);
+ else if (itype == instColorHug)
+ p = (inst *)new_colorhug(icom, debug, verb);
else {
return NULL;
}
diff -wruN ../orig-Argyll_V1.3.5/spectro/instlib.ksh ./spectro/instlib.ksh
--- ../orig-Argyll_V1.3.5/spectro/instlib.ksh 2011-10-24 14:10:26.000000000 +0200
+++ ./spectro/instlib.ksh 2012-01-11 21:56:05.116268005 +0100
@@ -9,7 +9,7 @@
echo "Making standalone GPLv2 instrument archive instlib.zip "
-FILES="License2.txt Makefile.OSX Makefile.UNIX Makefile.WNT pollem.h pollem.c conv.h conv.c hidio.h hidio.c icoms.h inst.h inst.c insttypes.c insttypes.h insttypeinst.h dtp20.c dtp20.h dtp22.c dtp22.h dtp41.c dtp41.h dtp51.c dtp51.h dtp92.c dtp92.h ss.h ss.c ss_imp.h ss_imp.c i1disp.c i1disp.h i1d3.h i1d3.c i1pro.h i1pro.c i1pro_imp.h i1pro_imp.c munki.h munki.c munki_imp.h munki_imp.c hcfr.c hcfr.h huey.c huey.h spyd2.c spyd2.h spyd2setup.h spyd2PLD.h spyd2en.c i1d3ccss.c vinflate.c inflate.c LzmaDec.c LzmaDec.h LzmaTypes.h ntio.c unixio.c usbio.h usbio.c xdg_bds.c xdg_bds.h ../xicc/xspect.h ../xicc/xspect.c ../xicc/ccss.h ../xicc/ccss.c ../rspl/rspl1.h ../rspl/rspl1.c ../h/sort.h ../numlib/numsup.h ../numlib/numsup.c ../cgats/pars.h ../cgats/pars.c ../cgats/parsstd.c ../cgats/cgats.h ../cgats/cgats.c ../cgats/cgatsstd.c spotread.c"
+FILES="License2.txt Makefile.OSX Makefile.UNIX Makefile.WNT pollem.h pollem.c conv.h conv.c hidio.h hidio.c icoms.h inst.h inst.c insttypes.c insttypes.h insttypeinst.h dtp20.c dtp20.h dtp22.c dtp22.h dtp41.c dtp41.h dtp51.c dtp51.h dtp92.c dtp92.h ss.h ss.c ss_imp.h ss_imp.c i1disp.c i1disp.h i1d3.h i1d3.c i1pro.h i1pro.c i1pro_imp.h i1pro_imp.c munki.h munki.c munki_imp.h munki_imp.c hcfr.c hcfr.h huey.c huey.h colorhug.c colorhug.h spyd2.c spyd2.h spyd2setup.h spyd2PLD.h spyd2en.c i1d3ccss.c vinflate.c inflate.c LzmaDec.c LzmaDec.h LzmaTypes.h ntio.c unixio.c usbio.h usbio.c xdg_bds.c xdg_bds.h ../xicc/xspect.h ../xicc/xspect.c ../xicc/ccss.h ../xicc/ccss.c ../rspl/rspl1.h ../rspl/rspl1.c ../h/sort.h ../numlib/numsup.h ../numlib/numsup.c ../cgats/pars.h ../cgats/pars.c ../cgats/parsstd.c ../cgats/cgats.h ../cgats/cgats.c ../cgats/cgatsstd.c spotread.c"
rm -f instlib.zip
rm -rf _zipdir
diff -wruN ../orig-Argyll_V1.3.5/spectro/insttypes.c ./spectro/insttypes.c
--- ../orig-Argyll_V1.3.5/spectro/insttypes.c 2011-10-24 14:10:27.000000000 +0200
+++ ./spectro/insttypes.c 2012-01-11 21:56:05.116268005 +0100
@@ -73,6 +73,8 @@
return "Datacolor Spyder3";
case instHuey:
return "GretagMacbeth Huey";
+ case instColorHug:
+ return "Hughski ColorHug";
default:
break;
}
@@ -124,6 +126,8 @@
return instSpyder3;
else if (strcmp(name, "GretagMacbeth Huey") == 0)
return instHuey;
+ else if (strcmp(name, "Hughski ColorHug") == 0)
+ return instColorHug;
return instUnknown;
}
@@ -183,6 +187,11 @@
return instSpyder3;
}
+ if (idVendor == 0x04d8) { /* Microchip */
+ if (idProduct == 0xf8da) /* Hughski ColorHug */
+ return instColorHug;
+ }
+
/* Add other instruments here */
return instUnknown;
@@ -260,6 +269,8 @@
case instHuey:
return 1; /* Not applicable */
+ case instColorHug:
+ return 1; /* Not applicable */
default:
break;
diff -wruN ../orig-Argyll_V1.3.5/spectro/insttypes.h ./spectro/insttypes.h
--- ../orig-Argyll_V1.3.5/spectro/insttypes.h 2011-10-24 14:10:26.000000000 +0200
+++ ./spectro/insttypes.h 2012-01-11 21:56:05.116268005 +0100
@@ -44,6 +44,7 @@
instSpyder2, /* Datacolor/ColorVision Spyder2 */
instSpyder3, /* Datacolor Spyder3 */
instHuey, /* GretagMacbeth Huey */
+ instColorHug, /* Hughski ColorHug */
} instType;
diff -wruN ../orig-Argyll_V1.3.5/spectro/Jamfile ./spectro/Jamfile
--- ../orig-Argyll_V1.3.5/spectro/Jamfile 2011-10-24 14:10:26.000000000 +0200
+++ ./spectro/Jamfile 2012-01-11 21:56:05.116268005 +0100
@@ -69,7 +69,7 @@
../plot $(LIBUSBHDRS) $(CMMHDRS) ;
# Instrument access library library
-Library libinst : inst.c insttypes.c dtp20.c dtp22.c dtp41.c dtp51.c dtp92.c i1disp.c i1d3.c i1pro.c i1pro_imp.c munki.c munki_imp.c ss.c ss_imp.c hcfr.c spyd2.c huey.c $(IOFILE) usbio.c hidio.c ;
+Library libinst : inst.c insttypes.c dtp20.c dtp22.c dtp41.c dtp51.c dtp92.c i1disp.c i1d3.c i1pro.c i1pro_imp.c munki.c munki_imp.c ss.c ss_imp.c hcfr.c spyd2.c huey.c colorhug.c $(IOFILE) usbio.c hidio.c ;
# Display access library
Library libdisp : dispsup.c dispwin.c : : : $(LibWinH) ;

662
argyllcms-1.0.2-legal.patch Normal file
View File

@ -0,0 +1,662 @@
diff -uNr Argyll_V1.0.1.orig/doc/ArgyllDoc.html Argyll_V1.0.1/doc/ArgyllDoc.html
--- Argyll_V1.0.1.orig/doc/ArgyllDoc.html 2008-07-27 11:18:52.000000000 +0200
+++ Argyll_V1.0.1/doc/ArgyllDoc.html 2008-07-27 11:39:29.000000000 +0200
@@ -18,7 +18,7 @@
Author: Graeme Gill
<h2><u>Introduction</u></h2>
Argyll is an open source, ICC compatible color management
-system. It supports accurate ICC profile creation for scanners, CMYK
+system. It supports accurate ICC profile creation for acquisition devices, CMYK
printers,
film recorders and calibration and profiling of displays.
Spectral sample data is supported,
diff -uNr Argyll_V1.0.1.orig/doc/chartread.html Argyll_V1.0.1/doc/chartread.html
--- Argyll_V1.0.1.orig/doc/chartread.html 2008-07-27 11:18:52.000000000 +0200
+++ Argyll_V1.0.1/doc/chartread.html 2008-07-27 11:40:27.000000000 +0200
@@ -206,7 +206,7 @@
<br>
<a name="a"></a> Normally the patch locations are not needed in the
output, but if a chart is being read as an input reference (for use in
-profiling a scanner or a camera), then the patch locations will still
+profiling an acquisition device), then the patch locations will still
be needed. The <span style="font-weight: bold;">-a</span> flag adds
the locations to the output .ti3 file.<br>
<br>
diff -uNr Argyll_V1.0.1.orig/doc/colprof.html Argyll_V1.0.1/doc/colprof.html
--- Argyll_V1.0.1.orig/doc/colprof.html 2008-07-27 11:18:52.000000000 +0200
+++ Argyll_V1.0.1/doc/colprof.html 2008-07-27 11:41:01.000000000 +0200
@@ -617,8 +617,8 @@
absolute value, and any values whiter than that, will not be clipped by
the profile. The profile effectively operates in an absolute intent
mode, &nbsp;irrespective of what intent is selected when it is used.
-This flag can be useful when an input profile is needed for using a
-scanner as a "poor mans" colorimeter, or if the white point of the test
+This flag can be useful when an input profile is needed for using an
+acquisition device as a "poor mans" colorimeter, or if the white point of the test
chart doesn't represent the white points of media
that will be used in practice, and that white point adjustment will be
done individually in some downstream application.<br>
diff -uNr Argyll_V1.0.1.orig/doc/Installing_Linux.html Argyll_V1.0.1/doc/Installing_Linux.html
--- Argyll_V1.0.1.orig/doc/Installing_Linux.html 2008-07-27 11:18:52.000000000 +0200
+++ Argyll_V1.0.1/doc/Installing_Linux.html 2008-07-27 11:42:29.000000000 +0200
@@ -30,7 +30,7 @@
variable to give access to the executables from your command line
environment.
The .tgz file also contains several useful reference files (such as
-scanner
+acquisition device
chart recognition templates, sample illumination spectrum etc.) in the
ref sub-directory, as
well
diff -uNr Argyll_V1.0.1.orig/doc/Installing_MSWindows.html Argyll_V1.0.1/doc/Installing_MSWindows.html
--- Argyll_V1.0.1.orig/doc/Installing_MSWindows.html 2008-07-27 11:18:52.000000000 +0200
+++ Argyll_V1.0.1/doc/Installing_MSWindows.html 2008-07-27 11:42:50.000000000 +0200
@@ -69,7 +69,7 @@
<br>
The .zip file also contains several useful reference files
(such as
-scanner
+acquisition device
chart recognition templates, sample illumination spectrum etc.) in the
ref sub-directory, all the current documentation in a doc
sub-directory, and instrument USB drivers in the libusbw directory.<br>
diff -uNr Argyll_V1.0.1.orig/doc/Installing_OSX.html Argyll_V1.0.1/doc/Installing_OSX.html
--- Argyll_V1.0.1.orig/doc/Installing_OSX.html 2008-07-27 11:18:52.000000000 +0200
+++ Argyll_V1.0.1/doc/Installing_OSX.html 2008-07-27 11:39:58.000000000 +0200
@@ -30,7 +30,7 @@
with how to do this, consult an appropriate tutorial, e.g. &lt;<a
href="http://heather.cs.ucdavis.edu/%7Ematloff/UnixAndC/Unix/ShellIntro.html#tth_sEc1">ShellIntro</a>&gt;.
The .tgz file also contains several useful reference files (such as
-scanner chart recognition templates, sample illumination spectrum
+acquisition device chart recognition templates, sample illumination spectrum
etc.) in the ref sub-directory, as well as
all the current documentation in a doc sub-directory.<br>
<br>
diff -uNr Argyll_V1.0.1.orig/doc/Organisation.html Argyll_V1.0.1/doc/Organisation.html
--- Argyll_V1.0.1.orig/doc/Organisation.html 2008-07-27 11:18:52.000000000 +0200
+++ Argyll_V1.0.1/doc/Organisation.html 2008-07-27 11:36:55.000000000 +0200
@@ -13,7 +13,7 @@
This directory contains routines that generate calibration test charts,
based
on various distribution algorithms suitable for
-reading using an Xrite DTP51 or DTP41 colorimeter, or scanner for print
+reading using an Xrite DTP51 or DTP41 colorimeter, or acquisition device for print
charts,
the Gretag Spectrolino for film charts, or the Xrite DTP92 pr DTP94 for
monitor
diff -uNr Argyll_V1.0.1.orig/doc/printtarg.html Argyll_V1.0.1/doc/printtarg.html
--- Argyll_V1.0.1.orig/doc/printtarg.html 2008-07-27 11:18:52.000000000 +0200
+++ Argyll_V1.0.1/doc/printtarg.html 2008-07-27 11:36:27.000000000 +0200
@@ -167,7 +167,7 @@
file, and a .ti2 file containing the device test values together with
the layout information needed to identify the patch location. This
module can also generate the image recognition templates needed to read
-the print targets in using a scanner.<br>
+the print targets in using an acquisition device.<br>
<br>
<a name="v"></a> The <b>-v</b> flag turns on verbose mode. Prints
information about how many patches there are in a row, how many patches
diff -uNr Argyll_V1.0.1.orig/doc/scanin.html Argyll_V1.0.1/doc/scanin.html
--- Argyll_V1.0.1.orig/doc/scanin.html 2008-07-27 11:18:52.000000000 +0200
+++ Argyll_V1.0.1/doc/scanin.html 2008-07-27 11:34:18.000000000 +0200
@@ -23,7 +23,7 @@
recogin.cht
valin.cie [diag.tif]</span><br style="font-family: monospace;">
<span style="font-family: monospace;">&nbsp;&nbsp; :- inputs
-'input.tif',&nbsp; and outputs scanner
+'input.tif',&nbsp; and outputs device
'input.ti3', or</span><br style="font-family: monospace;">
<br style="font-family: monospace;">
<a style="font-family: monospace;" href="#g"> usage</a><span
@@ -85,7 +85,7 @@
style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Replace device values in .ti3</span><br style="font-family: monospace;">
<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-Default is to create a scanner .ti3 file<br>
+Default is to create a device .ti3 file<br>
</span></small><small><span style="font-family: monospace;">&nbsp;</span><a
style="font-family: monospace;" href="#F">-F x1,y1,x2,y2,x3,y3,x4,y4</a><span
style="font-family: monospace;"> <br>
@@ -187,10 +187,10 @@
of the chart are visible within the image, and if the image is cropped
to exclude the chart edges, it may well not recognize the chart
properly. It is designed to cope with a variety of resolutions, and
-will cope with some degree of noise in the scan (due to screening
+will cope with some degree of noise in the acquisition (due to screening
artefacts on the original, or film grain), but it isn't really designed
to accept very high resolution input. For anything over 600DPI, you
-should consider down sampling the scan using a filtering downsample,
+should consider down sampling the image using a filtering downsample,
before submitting the file to scanin.<br>
<br>
There are 5 basic modes that <b>scanin</b> operates in.<br>
@@ -199,7 +199,7 @@
assumed to be parsing an input device characterization chart (ie. an
IT8.7/2 chart), for the purpose of creating a <a
href="File_Formats.html#.ti3">.ti3</a> data file containing
-the CIE test values and the corresponding RGB scanner values. The <a
+the CIE test values and the corresponding RGB device values. The <a
href="File_Formats.html#.ti3">.ti3</a> file can then be used for
creating
an input profile using <a href="colprof.html">colprof</a>. The file
@@ -221,7 +221,7 @@
file in
this situation, should be a good quality image, perhaps synthetically
generated
-(rather than being scanned), and perfectly oriented, to make
+(rather than being parsed), and perfectly oriented, to make
specification
of the patch locations easier. The file arguments are: <a name="gp1"></a>The
TIFF file that
@@ -245,7 +245,7 @@
input devices to be used as a crude replacement for a color measuring
instrument. The icc profile has
(presumably) been
-created by scanning an IT8.7/2 chart (or similar) through the RGB input
+created with an image of a IT8.7/2 chart (or similar) through the RGB input
device,
and
then using scanin to create the .ti3 file needed to feed to colprof to
@@ -267,7 +267,7 @@
The resulting .ti3 file will have the same base name as the input TIFF
file.
If there is more than one page in the test chart, then scanin will need
-to be run multiple times, once for each scan file made from each test
+to be run multiple times, once for each image file made from each test
chart. <a name="ca"></a>The <b>-ca</b> flag combination should be
used
for all pages after the first,
@@ -339,7 +339,7 @@
<br>
<a name="p"></a>By default the automatic chart recognition copes with
rotation, scale and stretch in the chart image, making it suitable for
-charts that have been scanned, or shot squarely with a camera. If a
+charts that have been acquired, or shot squarely with a camera. If a
chart has been shot not exactly facing the camera (perhaps to avoid
reflection, or to get more even lighting), then it will suffer from
perspective distortion as well. The <span style="font-weight: bold;"><span
@@ -349,7 +349,7 @@
<a name="m"></a>Normally scanin computes an average of the pixel values
within a sample square, using a "robust" mean, that discards pixel
values that are too far from the average ("outlier" pixel values). This
-is done in an attempt to discard value that are due to scanning
+is done in an attempt to discard value that are due to acquisition
artefacts such as dust, scratches etc. You can force scanin to return
the true mean values for the sample squares that includes all the pixel
values, by using the <span style="font-weight: bold;">-m</span> flag.<br>
@@ -357,9 +357,9 @@
<a name="G"></a>Normally scanin has reasonably robust feature
recognition, but the default assumption is that the input chart has an
approximately even visual distribution of patch values, and has been
-scanned and converted to a typical gamma 2.2 corrected image, meaning
+acquired and converted to a typical gamma 2.2 corrected image, meaning
that the average patch pixel value is expected to be about 50%. If this
-is not the case (for instance if the input chart has been scanned with
+is not the case (for instance if the input chart has been processed with
linear light or "raw" encoding), then it may enhance the image
recognition to provide the approximate gamma encoding of the image. For
instance, if linear light encoding ("Raw") is used, a <span
diff -uNr Argyll_V1.0.1.orig/doc/Scenarios.html Argyll_V1.0.1/doc/Scenarios.html
--- Argyll_V1.0.1.orig/doc/Scenarios.html 2008-07-27 11:18:52.000000000 +0200
+++ Argyll_V1.0.1/doc/Scenarios.html 2008-07-27 11:52:05.000000000 +0200
@@ -32,17 +32,17 @@
href="#PM5">Installing a
display profile</a></h4>
<h4><br>
-<a href="#PS1">Profiling Scanners</a></h4>
+<a href="#PS1">Profiling Acquisition Devices</a></h4>
<h4>&nbsp;&nbsp;&nbsp; <a href="#PS2">Types of test charts</a></h4>
-<h4>&nbsp;&nbsp;&nbsp; <a href="#PS3">Taking readings from a scanner</a></h4>
-<h4>&nbsp;&nbsp;&nbsp; <a href="#PS4">Creating a scanner profile</a></h4>
+<h4>&nbsp;&nbsp;&nbsp; <a href="#PS3">Taking readings from an acquisition device</a></h4>
+<h4>&nbsp;&nbsp;&nbsp; <a href="#PS4">Creating an acquisition device profile</a></h4>
<h4><br>
<a href="#PP1">Profiling Printers</a></h4>
<h4> &nbsp;&nbsp;&nbsp; <a href="#PP2">Creating a print test chart</a></h4>
<h4> &nbsp;&nbsp;&nbsp; <a href="#PP3">Reading a print test chart
using an instrument</a></h4>
<h4> &nbsp;&nbsp;&nbsp; <a href="#PP4">Reading a print test chart
-using a scanner</a></h4>
+using an acquisition device</a></h4>
<h4> </h4>
<h4>&nbsp;&nbsp;&nbsp; <a href="#PP5">Creating a printer profile<br>
</a></h4>
@@ -353,14 +353,14 @@
the connected display.<br>
<br>
<hr size="2" width="100%">
-<h3><a name="PS1"></a>Profiling Scanners</h3>
-Because a scanner is an input device, it is necessary to go about
+<h3><a name="PS1"></a>Profiling Acquisition Devices</h3>
+Because a acquisition device is an input device, it is necessary to go about
profiling it in quite a different way to an output device. To profile
-it, a test chart is needed to exercise the scanner response, to which
+it, a test chart is needed to exercise the device response, to which
the CIE values for each test patch is known. Generally standard
reflection or transparency test charts are used for this purpose.<br>
<h4><a name="PS2"></a>Types of test charts</h4>
-The most common and popular test chart for scanner profiling is the
+The most common and popular test chart for acquisiton device profiling is the
IT8.7/2 chart. This is a standard format chart generally reproduced on
photographic film, containing about 264 test patches. The Kodak Q-60
Color Input Target is a typical example:<br>
@@ -400,18 +400,18 @@
<img alt="CMP_DT_003" src="CMP_DT_003.jpg"
style="width: 186px; height: 141px;"><br>
<br>
-<h4><a name="PS3"></a>Taking readings from a scanner</h4>
-The test chart you are using needs to be placed on the scanner, and the
-scanner needs to be configured to a suitable state, and restored to
+<h4><a name="PS3"></a>Taking readings from an acquisition device</h4>
+The test chart you are using needs to be exposed to the device, and the
+acquisition device needs to be configured to a suitable state, and restored to
that
same state when used subsequently with the resulting profile. The chart
should
be scanned, and saved to a TIFF format file. I will assume the
resulting
-file is called scanner.tif. The raster file need only be roughly
+file is called device.tif. The raster file need only be roughly
cropped so as to contain the test chart (including the charts edges).<br>
<br>
-The second step is to extract the RGB values from the scanner.tif file,
+The second step is to extract the RGB values from the device.tif file,
and match then to the reference CIE values.
To locate the patch values in the scan, the <b>scanin</b> utility
needs to
@@ -485,32 +485,32 @@
chart recognition template file will need to be created (this is beyond
the scope of the current documentation).<br>
<br>
-To create the scanner .ti3 file, run the <b>scanin</b> utility as
+To create the device .ti3 file, run the <b>scanin</b> utility as
follows
(assuming an IT8 chart is being used):<br>
<br>
-<a href="scanin.html"> scanin</a> -v scanner.tif It8.cht It8ref.txt<br>
+<a href="scanin.html"> scanin</a> -v device.tif It8.cht It8ref.txt<br>
<br>
"It8ref.txt" is assumed to be the name of the CIE reference file
-supplied by the chart manufacturer. The resulting file will be named "<b>scanner.ti3</b>".<br>
+supplied by the chart manufacturer. The resulting file will be named "<b>device.ti3</b>".<br>
<br>
<span style="font-weight: bold;">scanin</span> will process 16 bit per
-component .tiff files, which (if the scanner is capable of creating
+component .tiff files, which (if the device is capable of creating
such files),&nbsp; may improve the quality of the profile. <br>
<br>
If you have any doubts about the correctness of the chart recognition,
or the subsequent profile's delta E report is unusual, then use the
scanin diagnostic flags <a href="scanin.html#d">-dipn</a> and examine
the <span style="font-weight: bold;">diag.tif</span> diagnostic file.<br>
-<h4><a name="PS4"></a>Creating a scanner profile</h4>
-Similar to a display profile, a scanner profile can be either a
-shaper/matrix or LUT based profile. Well behaved scanners will
+<h4><a name="PS4"></a>Creating an acquisition device profile</h4>
+Similar to a display profile, an acquisition device profile can be either a
+shaper/matrix or LUT based profile. Well behaved devices will
probably give the best results
with a shaper/matrix profile, but if the fit is poor, consider using a
LUT
type profile.<br>
<br>
-If the purpose of the scanner profile is to use it as a substitute for
+If the purpose of the device profile is to use it as a substitute for
a
colorimeter, then the <b>-u</b> flag should be used to avoid clipping
values above the white point. Unless the shaper/matrix type profile is
@@ -520,24 +520,24 @@
To create a matrix/shaper profile, the following suffices:<br>
<br>
<a href="colprof.html">colprof</a> <a href="colprof.html#v">-v</a> <a
- href="colprof.html#E">-D"Scanner</a> <a href="colprof.html#E">A"</a> <a
+ href="colprof.html#E">-D"Device</a> <a href="colprof.html#E">A"</a> <a
href="colprof.html#q">-qm</a> <a href="colprof.html#a">-as</a>
-<a href="colprof.html#p1">scanner</a><br>
+<a href="colprof.html#p1">device</a><br>
<br>
For a LUT based profile then the following would be used:<br>
<br>
<a href="colprof.html">colprof</a> <a href="colprof.html#v">-v</a> <a
- href="colprof.html#E">-D"Scanner A"</a>
+ href="colprof.html#E">-D"Device A"</a>
<a href="colprof.html#q">-qm</a>
-<a href="colprof.html#p1">scanner</a><br>
+<a href="colprof.html#p1">device</a><br>
<br>
For the purposes of a poor mans colorimeter, the following would
generally be used:<br>
<br>
<a href="colprof.html">colprof</a> <a href="colprof.html#v">-v</a> <a
- href="colprof.html#E">-D"Scanner A"</a>
+ href="colprof.html#E">-D"Device A"</a>
<a href="colprof.html#q">-qm</a> <a href="colprof.html#u">-u</a>
-<a href="colprof.html#p1">scanner</a><br>
+<a href="colprof.html#p1">device</a><br>
<br>
Make sure you check the delta E report at the end of the profile
creation, to see if the profile is behaving reasonably.<br>
@@ -703,7 +703,7 @@
<a href="printtarg.html#i">-ii1</a> <a href="printtarg.html#p">-pA4</a>
<a href="printtarg.html#p1">PrinterA</a><br>
<br>
-For using with a scanner as a colorimeter, the Gretag Spectroscan
+For using with an acquisition device as a colorimeter, the Gretag Spectroscan
layout is suitable, but the <a href="printtarg.html#s">-s</a> flag
should be used so as to generate a layout suitable for scan
recognition, as well as generating the scan recognition template
@@ -804,28 +804,27 @@
for each type of instrument. Continue with <a href="Scenarios.html#PP5">Creating
a printer profile</a>.<br>
<br>
-<h4><a name="PP4"></a>Reading a print test chart using a scanner or
-camera<br>
+<h4><a name="PP4"></a>Reading a print test chart using an acquisition device<br>
</h4>
<br>
-Argyll supports using a scanner or even a camera as a substitute for a
+Argyll supports using any acquisition device as a substitute for a
colorimeter.
-While a scanner or camera is no replacement for a color measurement
+While most are no replacement for a color measurement
instrument, it may give acceptable results in some situations, and may
give better results than a generic profile for a printing device.<br>
<br>
-The main limitation of the scanner-as-colorimeter approach are:<br>
+The main limitation of the any-device-as-colorimeter approach are:<br>
<br>
-* The scanner dynamic range and/or precision may not match the printers
+* The acquisition device dynamic range and/or precision may not match the printers
or what is required for a good profile.<br>
-* The spectral interaction of the scanner test chart and printer test
-chart with the scanner
+* The spectral interaction of the device test chart and printer test
+chart with the device
spectral response can cause color errors.<br>
* Spectral differences caused by different black amounts in the print
test chart can cause
color errors. <br>
* The IT8 chart gamut may be so much smaller than the printers that the
-scanner profile is too inaccurate. <br>
+acquisition device profile is too inaccurate. <br>
<br>
As well as some of the above, a camera may not be suitable if it
automatically adjusts exposure or white point when taking a picture,
@@ -834,23 +833,23 @@
The end result is often a profile that has a slight color cast to,
compared to a profile created using a colorimeter or spectrometer..<br>
<br>
-It is assumed that you have created a scanner or camera profile
+It is assumed that you have created an acquisition device profile
following the <a href="http://www.argyllcms.com/doc/Scenarios.html#PS1">procedure</a>
outline above. For best possible results it
-is advisable to both profile the scanner or camera, and use it in
+is advisable to both profile the acquisition device, and use it in
scanning the
printed test chart, in as "raw" mode as possible (i.e. using 16 bits
-per component images, if the scanner or camera is
+per component images, if the acquisition device is
capable of doing so; not setting white or black points, using a fixed
exposure etc.). It is
generally advisable to create a LUT type input profile, and use the <a
href="http://www.argyllcms.com/doc/colprof.html#u">-u</a> flag to
avoid clipping scanned value whiter than the input calibration chart.<br>
<br>
-Scan or photograph your printer chart (or charts) on the scanner or
-camera previously profiled.
+Scan or photograph your printer chart (or charts) on the acquisition device
+previously profiled.
<big><span style="font-weight: bold;">The
-scanner or camera must be configured and used exactly the same as it
+acquisition device must be configured and used exactly the same as it
was when it
was profiled.</span></big><br>
<br>
@@ -858,21 +857,21 @@
style="font-weight: bold;">PrinterB.tif</span> (or <span
style="font-weight: bold;">PrinterB1.tif</span>, <span
style="font-weight: bold;">PrinterB2.tif</span> etc. in the case of
-multiple charts). As with profiling the scanner or camera, the raster
+multiple charts). As with profiling the acquisition device, the raster
file need
only be roughly cropped so as to contain the test chart.<br>
<br>
-The scanner recognition files
+The acquisition device recognition files
created when <span style="font-weight: bold;">printtarg</span> was run
is assumed to be called <span style="font-weight: bold;">PrinterB.cht</span>.
-Using the scanner profile created previously (assumed to be called <span
- style="font-weight: bold;">scanner.icm</span>), the printer test chart
+Using the device profile created previously (assumed to be called <span
+ style="font-weight: bold;">device.icm</span>), the printer test chart
scan patches are converted to CIE values using the <span
style="font-weight: bold;">scanin</span> utility:<br>
<br>
<a href="scanin.html">scanin</a> <a href="scanin.html#v">-v</a> <a
href="scanin.html#c">-c</a> <a href="scanin.html#cp1">PrinterB.tif</a>
-<a href="scanin.html#cp2">PrinterB.cht</a> <a href="scanin.html#cp3">scanner.icm</a>
+<a href="scanin.html#cp2">PrinterB.cht</a> <a href="scanin.html#cp3">device.icm</a>
<a href="scanin.html#cp4">PrinterB</a><br>
<br>
If there were multiple test chart pages, the results would be
@@ -881,15 +880,15 @@
<br>
<a href="scanin.html">scanin</a> <a href="scanin.html#v">-v</a> <a
href="scanin.html#c">-c</a> <a href="scanin.html#cp1">PrinterB1.tif</a>
-<a href="scanin.html#cp2">PrinterB1.cht</a> <a href="scanin.html#cp3">scanner.icm</a>
+<a href="scanin.html#cp2">PrinterB1.cht</a> <a href="scanin.html#cp3">device.icm</a>
<a href="scanin.html#cp4">PrinterB</a><br>
<a href="scanin.html">scanin</a> <a href="scanin.html#v">-v</a> <a
href="scanin.html#ca">-ca</a> <a href="scanin.html#cp1">PrinterB2.tif</a>
-<a href="scanin.html#cp2">PrinterB2.cht</a> <a href="scanin.html#cp3">scanner.icm</a>
+<a href="scanin.html#cp2">PrinterB2.cht</a> <a href="scanin.html#cp3">device.icm</a>
<a href="scanin.html#cp4">PrinterB</a><br>
<a href="scanin.html">scanin</a> <a href="scanin.html#v">-v</a> <a
href="scanin.html#ca">-ca</a> <a href="scanin.html#cp1">PrinterB3.tif</a>
-<a href="scanin.html#cp2">PrinterB3.cht</a> <a href="scanin.html#cp3">scanner.icm</a>
+<a href="scanin.html#cp2">PrinterB3.cht</a> <a href="scanin.html#cp3">device.icm</a>
<a href="scanin.html#cp4">PrinterB</a><br>
<br>
Now that the <span style="font-weight: bold;">PrinterB.ti3</span> data
diff -uNr Argyll_V1.0.1.orig/doc/targen.html Argyll_V1.0.1/doc/targen.html
--- Argyll_V1.0.1.orig/doc/targen.html 2008-07-27 11:18:52.000000000 +0200
+++ Argyll_V1.0.1/doc/targen.html 2008-07-27 11:53:34.000000000 +0200
@@ -615,7 +615,7 @@
&nbsp; &nbsp;&nbsp; &nbsp;3 x Letter&nbsp;&nbsp; 1386<br>
&nbsp; &nbsp; &nbsp; 4 x Letter&nbsp;&nbsp; 1848<br>
<br>
-&nbsp; Scanner (printtarg with -iSS -s options):<br>
+&nbsp; Acquisition device (printtarg with -iSS -s options):<br>
<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 1 x A4R &nbsp; &nbsp;&nbsp; 1014<br>
&nbsp; &nbsp; &nbsp; &nbsp;2 x A4R &nbsp; &nbsp;&nbsp; 2028<br>
diff -uNr Argyll_V1.0.1.orig/doc/ti3_format.html Argyll_V1.0.1/doc/ti3_format.html
--- Argyll_V1.0.1.orig/doc/ti3_format.html 2008-07-27 11:18:52.000000000 +0200
+++ Argyll_V1.0.1/doc/ti3_format.html 2008-07-27 11:42:04.000000000 +0200
@@ -173,7 +173,7 @@
or "<span style="font-weight: bold;">RGB_LAB</span>" for an RGB printer
or display, "<span style="font-weight: bold;">CMYK_XYZ</span>" for a
printer, "<span style="font-weight: bold;">XYZ_RGB"</span> for an RGB
-scanner.<br>
+acquisition device.<br>
<br>
If spectral values are going to be included in the file, the following
keywords and values shall be used:<br>
diff -uNr Argyll_V1.0.1.orig/doc/ucmm.html Argyll_V1.0.1/doc/ucmm.html
--- Argyll_V1.0.1.orig/doc/ucmm.html 2008-07-27 11:18:52.000000000 +0200
+++ Argyll_V1.0.1/doc/ucmm.html 2008-07-27 11:41:27.000000000 +0200
@@ -13,7 +13,7 @@
designed just to handle the necessary configuration needed to track the
installation and association of ICC profiles with Unix/Linux X11
displays. It could be expanded at some point to also hold the
-associations for other devices such as scanner and printers.<br>
+associations for other devices such as acquisition devices and printers.<br>
<br>
It consists primarily of a small configuration database that associates
a display monitor (identified by its EDID or the X11 display name if an
diff -uNr Argyll_V1.0.1.orig/log.txt Argyll_V1.0.1/log.txt
--- Argyll_V1.0.1.orig/log.txt 2008-07-27 11:18:52.000000000 +0200
+++ Argyll_V1.0.1/log.txt 2008-07-27 11:35:38.000000000 +0200
@@ -1648,7 +1648,7 @@
* Added shaper/matrix input profile support.
(profile/profin.c, xicc/xmatrix.c)
- This may be more accurate for scanner profiles,
+ This may be more accurate for device profiles,
given the poor coverage of test points provided
by an IT8 chart (but doesn't appear to be in practice).
@@ -1659,7 +1659,7 @@
* Added support in scanin.c and scanrd.c for
using a scan of a print test chart, plus a
- profile for the scanner, to be able to measure
+ profile for the device, to be able to measure
color for printer calibration. This
new mode handles multi-page test charts.
@@ -1689,13 +1689,13 @@
patch spacer contrast determination.
Also added an XYZ to sRGB conversion
function to support RGB previews of N color
- devices, as well as scanner recognition template files.
+ devices, as well as device recognition template files.
* Expanded xicc/xcolorants.c to incorporate
an approximate device model for arbitrary
colorant combinations. This is used to
be able to approximate expected density readings,
- as well as preview colors and scanner recognition templates.
+ as well as preview colors and device recognition templates.
* Create a new test point creation module,
target/simplat.c, to create higher dimentional,
@@ -1793,7 +1793,7 @@
* Added preliminary support in printtarg for the SpectroScan
spectrodensitometer. Also added preliminary support for
- scanner recognisable test charts.
+ device recognisable test charts.
* Added option to icclink to turn off the use of linearisation
curves in the output link, since this sometimes seems to
@@ -1960,7 +1960,7 @@
Cleaned up build automation somewhat.
Added RGB output device profile generation support.
- Added RGB scanner device profile generation support.
+ Added RGB device profile generation support.
Added a couple of spectrometer conversion utilities for
raw data files from other CMSs.
diff -uNr Argyll_V1.0.1.orig/profile/profcheck.c Argyll_V1.0.1/profile/profcheck.c
--- Argyll_V1.0.1.orig/profile/profcheck.c 2008-07-27 11:18:52.000000000 +0200
+++ Argyll_V1.0.1/profile/profcheck.c 2008-07-27 11:54:01.000000000 +0200
@@ -360,7 +360,7 @@
devchan = 3;
isLab = 1;
isAdditive = 1;
- /* Scanner .ti3 files: */
+ /* Acquisition Device .ti3 files: */
} else if (strcmp(icg->t[0].kdata[ti],"XYZ_RGB") == 0) {
devspace = icSigRgbData;
devchan = 3;
diff -uNr Argyll_V1.0.1.orig/profile/profin.c Argyll_V1.0.1/profile/profin.c
--- Argyll_V1.0.1.orig/profile/profin.c 2008-07-27 11:18:52.000000000 +0200
+++ Argyll_V1.0.1/profile/profin.c 2008-07-27 11:53:08.000000000 +0200
@@ -49,7 +49,7 @@
/*
Basic algorithm outline:
- Scanner:
+ Acquisition Device:
Figure out the input curves to give
the flattest grid.
diff -uNr Argyll_V1.0.1.orig/scanin/scanin.c Argyll_V1.0.1/scanin/scanin.c
--- Argyll_V1.0.1.orig/scanin/scanin.c 2008-07-27 11:18:53.000000000 +0200
+++ Argyll_V1.0.1/scanin/scanin.c 2008-07-27 11:26:37.000000000 +0200
@@ -2,7 +2,7 @@
/*
* Argyll Color Correction System
*
- * Scanin: Input the scan of a test chart, and output cgats data
+ * Scanin: Input the image of a test chart, and output cgats data
* Uses scanrd to do the hard work.
*
* Author: Graeme W. Gill
@@ -72,7 +72,7 @@
fprintf(stderr,"Author: Graeme W. Gill, licensed under the GPL Version 3\n");
fprintf(stderr,"\n");
fprintf(stderr,"usage: scanin [options] input.tif recogin.cht valin.cie [diag.tif]\n");
- fprintf(stderr," :- inputs 'input.tif' and outputs scanner 'input.ti3', or\n");
+ fprintf(stderr," :- inputs 'input.tif' and outputs device 'input.ti3', or\n");
fprintf(stderr,"\n");
fprintf(stderr,"usage: scanin -g [options] input.tif recogout.cht [diag.tif]\n");
fprintf(stderr," :- outputs file 'recogout.cht', or\n");
@@ -92,7 +92,7 @@
fprintf(stderr," -ca Same as -c, but accumulates more values to .ti3\n");
fprintf(stderr," from subsequent pages\n");
fprintf(stderr," -r Replace device values in .ti2/.ti3\n");
- fprintf(stderr," Default is to create a scanner .ti3 file\n");
+ fprintf(stderr," Default is to create a device .ti3 file\n");
fprintf(stderr," -F x1,y1,x2,y2,x3,y3,x4,y4\n");
fprintf(stderr," Don't auto recognize, locate using four fiducual marks\n");
fprintf(stderr," -p Compensate for perspective distortion\n");
@@ -127,12 +127,12 @@
static char datin_name[200] = { 0 }; /* Data input name (.cie/.q60) */
static char datout_name[200] = { 0 }; /* Data output name (.ti3/.val) */
static char recog_name[200] = { 0 }; /* Reference chart name (.cht) */
- static char prof_name[200] = { 0 }; /* scanner profile name (.cht) */
+ static char prof_name[200] = { 0 }; /* device profile name (.cht) */
static char diag_name[200] = { 0 }; /* Diagnostic Output (.tif) name, if used */
int verb = 1;
int tmean = 0; /* Return true mean, rather than robust mean */
int repl = 0; /* Replace .ti3 device values from raster file */
- int outo = 0; /* Output the values read, rather than creating scanner .ti3 */
+ int outo = 0; /* Output the values read, rather than creating device .ti3 */
int colm = 0; /* Use inage values to measure color for print profile. > 1 == append */
int flags = SI_GENERAL_ROT; /* Default allow all rotations */
@@ -153,7 +153,7 @@
scanrd *sr; /* Scanrd object */
int err;
char *errm;
- int pnotscan = 0; /* Number of patches that wern't scanned */
+ int pnotscan = 0; /* Number of patches that weren't processed */
if (argc <= 1)
usage();
diff -uNr Argyll_V1.0.1.orig/target/printtarg.c Argyll_V1.0.1/target/printtarg.c
--- Argyll_V1.0.1.orig/target/printtarg.c 2008-07-27 11:18:52.000000000 +0200
+++ Argyll_V1.0.1/target/printtarg.c 2008-07-27 11:37:20.000000000 +0200
@@ -3252,7 +3252,7 @@
}
/******************************************************************/
-/* Edge tracking support, for generating the scanner image */
+/* Edge tracking support, for generating the device image */
/* recognition reference chart file. */
/* Establish width and height to convert between topleft and */
diff -uNr Argyll_V1.0.1.orig/ttbd.txt Argyll_V1.0.1/ttbd.txt
--- Argyll_V1.0.1.orig/ttbd.txt 2008-07-27 11:18:54.000000000 +0200
+++ Argyll_V1.0.1/ttbd.txt 2008-07-27 11:54:46.000000000 +0200
@@ -123,7 +123,7 @@
* Should create a .ti2 template file for some standard charts,
such as an IT8.7/3, ECI2002 random and non-random etc.
- Scanner recognition files too ??
+ Device recognition files too ??
* Add an option to targen, that allows generation of
test points down the neutral axis (how does this work
@@ -293,7 +293,7 @@
patch variance is too high (probable faulty read).
* Add spectral fix options to scanin code to allow compensation
- for scanner and media errors when using a scanned image to
+ for device and media errors when using an acquired image to
measure color.
This means figuring out how it will work, as well as creating
to tools to create the spectral fix data (or just add general

View File

@ -0,0 +1,17 @@
diff -up Argyll_V1.3.0/libusb1/55-Argyll.rules.udev151 Argyll_V1.3.0/libusb1/55-Argyll.rules
--- Argyll_V1.3.0/libusb1/55-Argyll.rules.udev151 2010-09-23 11:42:00.784827088 +0200
+++ Argyll_V1.3.0/libusb1/55-Argyll.rules 2010-09-23 11:42:10.586231594 +0200
@@ -43,12 +43,6 @@ ATTRS{idVendor}=="085c", ATTRS{idProduct
# Huey
ATTRS{idVendor}=="0971", ATTRS{idProduct}=="2005", ENV{COLOR_MEASUREMENT_DEVICE}="1"
-# Let udev-acl and ConsoleKit manage these devices, if applicable
-TEST=="/lib/udev/udev-acl", TEST=="/var/run/ConsoleKit/database", ENV{COLOR_MEASUREMENT_DEVICE}=="*?", ENV{ACL_MANAGE}="1"
-
-# Otherwise, restrict access to members of the plugdev group
-ENV{COLOR_MEASUREMENT_DEVICE}=="*?", ENV{ACL_MANAGE}!="*?", MODE="660", GROUP="plugdev"
-
# Set ID_VENDOR and ID_MODEL acording to VID and PID
IMPORT{program}="usb-db %p"
diff -up Argyll_V1.3.0/libusb/55-Argyll.rules.udev151 Argyll_V1.3.0/libusb/55-Argyll.rules

80
argyllcms.changes Normal file
View File

@ -0,0 +1,80 @@
-------------------------------------------------------------------
Wed Jan 11 20:00:46 UTC 2012 - kkaempf@suse.com
- Update to 1.3.5
- add Argyll_V1.3.5_autotools.patch covering new files to compile
- add 0001-Add-an-experimental-ColorHug-sensor-driver.patch to
support 'colorhug' from http://hughski.com (experimental)
-------------------------------------------------------------------
Mon Nov 8 10:33:27 UTC 2010 - fcrozat@novell.com
- Release 1.3.2 (bug fixes)
- remove argyllcms-1.3.0-include.patch (merged upstream)
-------------------------------------------------------------------
Thu Sep 23 12:03:40 UTC 2010 - fcrozat@novell.com
- argyllcms-1.3.0-udev151.patch: remove all ACL management from
udev rules, it is handled by udev package itself (Mandriva)
- argyllcms-1.3.0-include.patch : fix missing includes
-------------------------------------------------------------------
Sun Sep 12 18:17:03 UTC 2010 - fcrozat@novell.com
- Release 1.3.0
- remove patches argyllcms-1.1.0-bufferoverflow.patch,
argyllcms-1.1.0-void.patch, argyllcms-1.1.0-strfmt.patch (merged
upstream)
-------------------------------------------------------------------
Mon Aug 9 16:30:57 UTC 2010 - fcrozat@novell.com
- Update patch1 with new version from Roland, merging patch10 in it
-------------------------------------------------------------------
Mon Aug 9 15:58:06 UTC 2010 - fcrozat@novell.com
- Update to 1.2.1
- move back icclib to argyllcms, upstream release are not so frequent as Argyllcms one
- Patch10: allow to use (or not) system icclib
- update patches 8 and 9 with new fixes
-------------------------------------------------------------------
Thu Aug 5 16:21:44 UTC 2010 - fcrozat@novell.com
- Update to latest release and move icclib to a separate package
------------------------------------------------------------------
Mon Apr 20 08:34:10 CET 2009 - Vladimir Nadvornik <nadvornik@novell.com>
- ported to openSUSE
-------------------------------------------------------------------
Mon Mar 23 08:34:10 CET 2009 - Ron Ciesla <limb@jcomserv.net>
- Patch for ICC library CVE-2009-{0583, 0584} by Tim Waugh.
-------------------------------------------------------------------
Mon Feb 23 00:12:29 CET 2009 - Fedora Release Engineering <rel-eng@lists.fedoraproject.org>
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
* Wed Sep 3 2008 Nicolas Mailhot <nicolas.mailhot at laposte.net>
- 1.0.3-1
* Mon Sep 1 2008 Nicolas Mailhot <nicolas.mailhot at laposte.net>
- 1.0.2-1
* Sun Jul 27 2008 Nicolas Mailhot <nicolas.mailhot at laposte.net>
- 1.0.1-1
* Wed Mar 26 2008 Tom "spot" Callaway <tcallawa@redhat.com>
- patch applied for legal reasons
* Thu Feb 8 2008 Nicolas Mailhot <nicolas.mailhot at laposte.net>
- 0.70-0.8.Beta9
- 0.70-0.8.Beta8
* Thu Feb 7 2008 Nicolas Mailhot <nicolas.mailhot at laposte.net>
- 0.70-0.7.Beta8
* Thu Dec 14 2007 Nicolas Mailhot <nicolas.mailhot at laposte.net>
- 0.70-0.6.Beta7
- 0.70-0.5.Beta7
* Thu Dec 13 2007 Nicolas Mailhot <nicolas.mailhot at laposte.net>
- 0.70-0.4.Beta7
* Wed Dec 12 2007 Nicolas Mailhot <nicolas.mailhot at laposte.net>
- 0.70-0.3.Beta7
- 0.70-0.2.Beta7
- 0.70-0.1.Beta7

171
argyllcms.spec Normal file
View File

@ -0,0 +1,171 @@
#define alphaversion Beta8
#define alphatag .%{alphaversion}
%define archivename Argyll_V%{version}%{?alphaversion}_src.zip
Name: argyllcms
Version: 1.3.5
Release: 1
Summary: ICC compatible color management system
Group: System/X11/Utilities
License: GPLv3 and MIT
URL: http://www.%{name}.com/
Source0: %{url}%{archivename}
Source1: 19-color.fdi
Source2: color-device-file.policy
# Many thanks to Alastair M. Robinson and Roland Mas (debian)
Patch1: Argyll_V1.3.0_autotools.patch
# new and changed files in 1.3.5
Patch2: Argyll_V1.3.5_autotools.patch
# Patch applied for legal reasons
Patch4: argyllcms-1.0.2-legal.patch
# drop udev-acl stuff, handled by udev directly (Mandriva)
Patch5: argyllcms-1.3.0-udev151.patch
# add support for colorhug (http://hughski.com)
Patch6: ColorHug-sensor-driver.patch
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
BuildRequires: libtiff-devel unzip
BuildRequires: xorg-x11-devel
BuildRequires: udev
Requires: udev
%if %suse_version < 1120
BuildRequires: hal
Requires: hal
%endif
%description
The Argyll color management system supports accurate ICC profile creation for
scanners, CMYK printers, film recorders and calibration and profiling of
displays.
Spectral sample data is supported, allowing a selection of illuminants observer
types, and paper fluorescent whitener additive compensation. Profiles can also
incorporate source specific gamut mappings for perceptual and saturation
intents. Gamut mapping and profile linking uses the CIECAM02 appearance model,
a unique gamut mapping algorithm, and a wide selection of rendering intents. It
also includes code for the fastest portable 8 bit raster color conversion
engine available anywhere, as well as support for fast, fully accurate 16 bit
conversion. Device color gamuts can also be viewed and compared using a VRML
viewer.
%package doc
Summary: Argyll CMS documentation
Group: System/X11/Utilities
# Does not really make sense without Argyll CMS itself
Requires: %{name} = %{version}-%{release}
%description doc
The Argyll color management system supports accurate ICC profile creation for
scanners, CMYK printers, film recorders and calibration and profiling of
displays.
This package contains the Argyll color management system documentation.
%package -n libicc2
Summary: Libraries for icclib
Group: System/Libraries
%description -n libicc2
The icclib is a set of routines which implement the reading and
writing of color profile files that conform to the International
Color Consortium (ICC) Profile Format Specification, Version 3.4.
%package -n libicc-devel
Summary: Development libraries, header files for icclib
Group: Development/Libraries/C and C++
Requires: libicc2 = %{version}
%description -n libicc-devel
The icclib is a set of routines which implement the reading and
writing of color profile files that conform to the International
Color Consortium (ICC) Profile Format Specification, Version 3.4.
%prep
%setup -q -n Argyll_V%{version}
# Autotools support
%patch1 -p1 -b .auto
%patch2 -p1
# Legal patch required
#patch4 -p1 -b .legal
%if %suse_version >= 1120
%patch5 -p1 -b .udev151
%if %suse_version >= 1140
# colorhug is for openSUSE >= 11.4 only
%patch6 -p1
%endif
%endif
#needed by patches 1
autoreconf -i
%build
%configure
make
%install
make install DESTDIR=%{buildroot}
# remove unpackaged files
rm -f %{buildroot}/%{_libdir}/argyll/*.{la,a,so} %{buildroot}/%{_libdir}/*.{la,a}
%if %suse_version < 1120
# Do some device permission magic
install -d -m 0755 %{buildroot}%{_datadir}/hal/fdi/policy/10osvendor/
install -p -m 0644 %{SOURCE1} \
%{buildroot}%{_datadir}/hal/fdi/policy/10osvendor/
install -d -m 0755 %{buildroot}%{_datadir}/PolicyKit/policy/
install -p -m 0644 %{SOURCE2} \
%{buildroot}%{_datadir}/PolicyKit/policy/
%else
install -d -m 0755 %{buildroot}%{_sysconfdir}/udev/rules.d
install -p -m 0644 libusb1/55-Argyll.rules \
%{buildroot}%{_sysconfdir}/udev/rules.d
%endif
%clean
rm -rf %{buildroot}
%post -n libicc2 -p /sbin/ldconfig
%postun -n libicc2 -p /sbin/ldconfig
%files
%defattr(-,root,root,-)
%doc *.txt
%{_bindir}/*
%{_libdir}/argyll
%dir %{_datadir}/color
%{_datadir}/color/argyll
%if %suse_version < 1120
%{_datadir}/hal/fdi/policy/10osvendor/19-color.fdi
%{_datadir}/PolicyKit/policy/color-device-file.policy
%else
%{_sysconfdir}/udev/rules.d/55-Argyll.rules
%endif
%exclude %{_datadir}/doc
%files doc
%defattr(-,root,root,-)
%doc doc/*.html doc/*.jpg doc/*.txt
%files -n libicc2
%defattr(-,root,root,-)
%{_libdir}/*.so.2*
%files -n libicc-devel
%defattr(-,root,root,-)
%{_libdir}/*.so
%{_includedir}/*
%changelog

15
color-device-file.policy Normal file
View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN" "http://www.freedesktop.org/standards/PolicyKit/1.0/policyconfig.dtd">
<!-- This file normally lives at
"/usr/share/PolicyKit/policy/color-device-file.policy"
-->
<policyconfig>
<action id="org.freedesktop.hal.device-access.color">
<description>Directly access color meter devices</description>
<message>System policy prevents access to the color meter devices</message>
<defaults>
<allow_inactive>no</allow_inactive>
<allow_active>yes</allow_active>
</defaults>
</action>
</policyconfig>