From cb5c7cec4aa1946f75dc3d408eb7f1051f3fb3d4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?=
Date: Sat, 25 Nov 2017 10:13:28 +0100
Subject: Switch from repack to Files-Excluded
---
debian/changelog | 6 ++++++
debian/copyright | 7 +++++++
debian/watch | 5 +++--
3 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/debian/changelog b/debian/changelog
index 3860758..ba7b4bf 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+argyll (1.9.2+repack-2.1) UNRELEASED; urgency=medium
+
+ * Switch from repack to Files-Excluded.
+
+ -- Jörg Frings-Fürst Sat, 25 Nov 2017 10:10:30 +0100
+
argyll (1.9.2+repack-2) unstable; urgency=medium
* New README.source to explain the branching model used.
diff --git a/debian/copyright b/debian/copyright
index 3dd2dcb..57796ec 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -2,6 +2,13 @@ Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: ArgyllCMS
Upstream-Contact: Graeme W. Gill
Source: http://www.argyllcms.com/
+Files-Excluded: yajl/yajl_test.exe
+ yajl/yajl_test.obj
+ usb/bin/*
+ jpeg/*
+ tiff/*
+ zlib/*
+ png/*
Files: *
Copyright: 1995-2016 Graeme W. Gill
diff --git a/debian/watch b/debian/watch
index 00b6fcc..c8ab751 100644
--- a/debian/watch
+++ b/debian/watch
@@ -1,5 +1,6 @@
version=4
#opts="dversionmangle=s/\+repack\d+$//" http://www.argyllcms.com/downloadsrc.html Argyll_V(.*)_src\.zip
-opts=dversionmangle=s/\+repack(.*)// \
-http://www.argyllcms.com/downloadsrc.html Argyll_V(.*)_src\.zip debian debian/repack.sh
+#opts=dversionmangle=s/\+repack(.*)// \
+http://www.argyllcms.com/downloadsrc.html Argyll_V(.*)_src\.zip
+
--
cgit v1.2.3
From f6b8e0eae4374f339487a33e3e4fe5462d5816e1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?=
Date: Sat, 25 Nov 2017 10:16:00 +0100
Subject: New upstream version 2.0.0
---
Jambase | 0
Jamfile | 0
Jamtop | 19 +-
License.txt | 0
License2.txt | 0
License3.txt | 0
Makefile | 0
Readme.txt | 6 +-
adirs | 0
afiles | 0
binfiles | 0
blddirs | 0
ccast/Jamfile | 0
ccast/License.txt | 0
ccast/Readme.txt | 6 +-
ccast/axTLS/Jamfile | 2 +-
ccast/axTLS/aes.c | 0
ccast/axTLS/asn1.c | 34 +
ccast/axTLS/axTLS_config.h | 0
ccast/axTLS/axTLS_version.h | 0
ccast/axTLS/bigint.c | 0
ccast/axTLS/bigint.h | 0
ccast/axTLS/bigint_impl.h | 0
ccast/axTLS/cert.h | 0
ccast/axTLS/crypto.h | 1 +
ccast/axTLS/crypto_misc.c | 0
ccast/axTLS/crypto_misc.h | 2 +
ccast/axTLS/gen_cert.c | 0
ccast/axTLS/hmac.c | 0
ccast/axTLS/loader.c | 0
ccast/axTLS/md2.c | 0
ccast/axTLS/md5.c | 0
ccast/axTLS/openssl.c | 0
ccast/axTLS/os_int.h | 0
ccast/axTLS/os_port.c | 0
ccast/axTLS/os_port.h | 0
ccast/axTLS/p12.c | 0
ccast/axTLS/private_key.h | 0
ccast/axTLS/rc4.c | 0
ccast/axTLS/rsa.c | 44 +
ccast/axTLS/sha1.c | 0
ccast/axTLS/ssl.h | 0
ccast/axTLS/temp | 0
ccast/axTLS/tls1.c | 0
ccast/axTLS/tls1.h | 0
ccast/axTLS/tls1_clnt.c | 0
ccast/axTLS/tls1_svr.c | 0
ccast/axTLS/x509.c | 0
ccast/cast_channel.proto | 0
ccast/ccast.c | 2 +-
ccast/ccast.h | 0
ccast/ccmdns.c | 761 +++-
ccast/ccmdns.h | 17 +-
ccast/ccmes.c | 0
ccast/ccmes.h | 0
ccast/ccpacket.c | 0
ccast/ccpacket.h | 0
ccast/cctest.c | 0
ccast/chan/cast_channel.pb-c.c | 0
ccast/chan/cast_channel.pb-c.h | 0
ccast/chan/protobuf-c.c | 0
ccast/chan/protobuf-c.h | 0
ccast/dpat.c | 0
ccast/filt.c | 0
cgats/Jamfile | 0
cgats/License4.txt | 0
cgats/Makefile | 0
cgats/Makefile.IBMNT | 0
cgats/Makefile.OSX | 0
cgats/Makefile.UNIX | 0
cgats/Makefile.WNT | 0
cgats/Readme.txt | 0
cgats/afiles | 0
cgats/cgats.c | 1 +
cgats/cgats.h | 3 +
cgats/cgatsstd.c | 0
cgats/makezip.ksh | 0
cgats/pars.c | 6 +
cgats/pars.h | 0
cgats/parsstd.c | 0
cgats/test.txt | 0
doc/3dformat.html | 0
doc/ArgyllCMS_arts_tag.html | 0
doc/ArgyllDoc.html | 1054 ++++-
doc/ArgyllFlow.jpg | Bin
doc/ArgyllFlowThumb.jpg | Bin
doc/CMP_DT_003.jpg | Bin
doc/CMP_Digital_Target-4.jpg | Bin
doc/CMP_Digital_Target-7.jpg | Bin
doc/CRTspectrum.jpg | Bin
doc/ChangesSummary.html | 93 +-
doc/Chroma4.jpg | Bin
doc/ColorHug.jpg | Bin
doc/ColorManagement.html | 0
doc/ColorMunki.jpg | Bin
doc/ColorMunkiCreate.jpg | Bin
doc/Compiling.html | 2 +-
doc/CrushedDisplyBlacks.html | 0
doc/DC.jpg | Bin
doc/DTP20.jpg | Bin
doc/DTP22.jpg | Bin
doc/DTP41.jpg | Bin
doc/DTP51.jpg | Bin
doc/DTP92.jpg | Bin
doc/DTP94.jpg | Bin
doc/DocLicense.txt | 0
doc/EX1.jpg | Bin
doc/Environment.html | 115 +-
doc/FWA.html | 0
doc/FWA_measure.jpg | Bin
doc/File_Formats.html | 0
doc/Fluorescent.jpg | Bin
doc/HCFR.jpg | Bin
doc/HCT.jpg | Bin
doc/HiResLaser.jpg | Bin
doc/Huey.jpg | Bin
doc/Installing.html | 0
doc/Installing_Linux.html | 839 ++--
doc/Installing_MSWindows.html | 0
doc/Installing_OSX.html | 0
doc/JETI_1211.jpg | Bin
doc/JETI_1501.jpg | Bin
doc/K10A.jpg | Bin
doc/Kgraph1.jpg | Bin
doc/Kgraph2.jpg | Bin
doc/Kgraph3.jpg | Bin
doc/Kgraph4.jpg | Bin
doc/Kgraph5.jpg | Bin
doc/Kgraph6.jpg | Bin
doc/Kgraph7.jpg | Bin
doc/Kgraph8.jpg | Bin
doc/Kparams.jpg | Bin
doc/LSDC.jpg | Bin
doc/LabSteps.jpg | Bin
doc/License.txt | 0
doc/License2.txt | 0
doc/License3.txt | 0
doc/License4.txt | 0
doc/Limitations.html | 0
doc/MinorTools.html | 0
doc/Organisation.html | 0
doc/Overview.html | 0
doc/Passport.jpg | Bin 0 -> 10046 bytes
doc/Performance.html | 0
doc/Q60.jpg | Bin
doc/QPcard201.jpg | Bin
doc/QPcard202.jpg | Bin
doc/SG.jpg | Bin
doc/SG_footer.txt | 0
doc/SG_header.txt | 0
doc/SMCube.jpg | Bin
doc/Scenarios.html | 224 +-
doc/Smile.jpg | Bin
doc/Source.html | 0
doc/Spyd2.jpg | Bin
doc/Spyd3.jpg | Bin
doc/Spyd3x.jpg | Bin
doc/Spyd4.jpg | Bin
doc/Spyd5.jpg | Bin
doc/SpyderChecker.jpg | Bin
doc/SpyderChecker24.jpg | Bin
doc/VideoEOTFs.html | 0
doc/WideGamutColmters.html | 0
doc/XRGA.html | 4 +
doc/YellowGreen.jpg | Bin
doc/afiles | 5 +
doc/applycal.html | 0
doc/average.html | 0
doc/cal_format.html | 0
doc/calvschar.html | 0
doc/cb2ti3.html | 0
doc/ccmxs.html | 0
doc/ccmxs/DTP-94_1964_10_Dell_2408W.ccmx | 0
doc/ccmxs/DTP-94_1997_Shaw_Dell_2408W.ccmx | 0
doc/ccmxs/DTP-94_Dell_2408W.ccmx | 0
doc/ccmxs/DTP-94_Dell_U2410.ccmx | 0
doc/ccmxs/EyeOne_Display_1_NEC1990SXi.ccmx | 0
doc/ccmxs/EyeOne_Display_2_EIZO_S2233W.ccmx | 0
doc/ccmxs/EyeOne_Display_2_NEC1990SXi.ccmx | 0
.../EyeOne_Display_LT_U2410_Standard_1931.ccmx | 0
.../EyeOne_Display_LT_U2410_Standard_1964.ccmx | 0
doc/ccmxs/EyeOne_Display_LT_U2410_sRGB_1931.ccmx | 0
doc/ccmxs/EyeOne_Display_LT_U2410_sRGB_1964.ccmx | 0
doc/ccmxs/Huey_Acer_al2016w.ccmx | 0
doc/ccmxs/Huey_Eizo_CG243.ccmx | 0
doc/ccmxs/Huey_HP_compaq_6730s.ccmx | 0
doc/ccmxs/Huey_HP_lp2475w.ccmx | 0
doc/ccmxs/Huey_NEC1990SXi.ccmx | 0
doc/ccmxs/Huey_NEC_Spectraview_241.ccmx | 0
doc/ccmxs/NEC_EyeOne_Display_2_NEC2690WUXi2.ccmx | 0
doc/ccmxs/Spyder2_EIZO_S2433W_standard_1931.ccmx | 0
doc/ccmxs/Spyder2_EIZO_S2433W_standard_1964.ccmx | 0
doc/ccmxs/Spyder3_EIZO_S2233_standard_1964.ccmx | 0
doc/ccmxs/Spyder3_EIZO_S2243W_standard_1931.ccmx | 0
doc/ccmxs/Spyder3_HP_LP2475w.ccmx | 0
doc/ccmxs/Spyder3_NEC2690WUXi2.ccmx | 0
doc/ccmxs/Spyder3_NEC_PA301W.ccmx | 0
doc/ccsss.html | 56 +
doc/ccsss/MacBookProRetina2016.ccss | 24 +
doc/cctiff.html | 0
doc/ccxxmake.html | 207 +-
doc/chartread.html | 87 +-
doc/cht_format.html | 0
doc/collink.html | 1067 +++--
doc/colorchecker.jpg | Bin
doc/colprof.html | 1076 ++---
doc/colverify.html | 57 +-
doc/cube.jpg | Bin
doc/dispcal.html | 226 +-
doc/dispprofloc.html | 0
doc/dispread.html | 128 +-
doc/dispwin.html | 197 +-
doc/evalInputTargets.html | 0
doc/extracticc.html | 0
doc/extractttag.html | 0
doc/fakeCMY.html | 0
doc/fakeread.html | 57 +-
doc/filmread.html | 0
doc/filmtarg.html | 0
doc/gamma.html | 0
doc/gamutmapping1.jpg | Bin
doc/greytiff.html | 0
doc/i1d.jpg | Bin
doc/i1d3_1.jpg | Bin
doc/i1d3_2.jpg | Bin
doc/i1m.jpg | Bin
doc/i1p.jpg | Bin
doc/i1pro2.jpg | Bin
doc/i1proDriver.html | 0
doc/i1proDriver.xls | Bin
doc/i1proHiRes.html | 0
doc/i1proHiRes.jpg | Bin
doc/i1proHiRes.zip | Bin
doc/i1scan14.jpg | Bin
doc/iccdump.html | 0
doc/iccgamut.html | 313 +-
doc/iccgamutmapping.html | 0
doc/icclu.html | 0
doc/illumread.html | 0
doc/illumread_1.jpg | Bin
doc/illumread_2.jpg | Bin
doc/illumread_3.jpg | Bin
doc/illumread_4.jpg | Bin
doc/illumread_5.jpg | Bin
doc/illumread_6.jpg | Bin
doc/inoutreferred.html | 48 +
doc/instruments.html | 373 +-
doc/invprofcheck.html | 0
doc/kodak2ti3.html | 0
doc/ls2ti3.html | 37 +
doc/monitorcontrols.html | 0
doc/mox.jpg | Bin
doc/moxxr.jpg | Bin
doc/mppcheck.html | 0
doc/mpplu.html | 382 +-
doc/mppprof.html | 0
doc/oeminst.html | 0
doc/printcal.html | 0
doc/printtarg.html | 162 +-
doc/profcheck.html | 40 +-
doc/refine.html | 89 +-
doc/revfix.html | 0
doc/scanin.html | 0
doc/sl.jpg | Bin
doc/spec2cie.html | 149 +-
doc/specplot.html | 0
doc/splitti3.html | 0
doc/spotread.html | 287 +-
doc/srgbplot.gif | Bin
doc/ss.jpg | Bin
doc/surface.jpg | Bin
doc/synthcal.html | 0
doc/synthread.html | 347 +-
doc/targen.html | 0
doc/ti3_format.html | 38 +-
doc/tiffgamut.html | 281 +-
doc/timage.html | 0
doc/txt2ti3.html | 16 +-
doc/ucmm.html | 0
doc/viewgam.html | 0
doc/xicclu.html | 611 +--
gamut/GenRMGam.c | 0
gamut/GenVisGam.c | 0
gamut/Jamfile | 0
gamut/License.txt | 0
gamut/Readme.txt | 0
gamut/afiles | 0
gamut/fakegam.c | 0
gamut/gammap.c | 8 +-
gamut/gammap.h | 0
gamut/gammap.txt | 0
gamut/gamut.c | 0
gamut/gamut.h | 0
gamut/isecvol.c | 0
gamut/maptest.c | 0
gamut/nearsmth.c | 0
gamut/nearsmth.h | 0
gamut/smthtest.c | 0
gamut/surftest.c | 0
gamut/viewgam.c | 0
h/License.txt | 0
h/Readme.txt | 0
h/aconfig.h | 10 +-
h/afiles | 0
h/copyright.h | 0
h/counters.h | 30 +-
h/llist.h | 0
h/sort.h | 6 +-
h/xlist.h | 0
icc/ClayRGB1998.icm | Bin
icc/EBU3213_PAL.icm | Bin
icc/Jamfile | 0
icc/License4.txt | 0
icc/Makefile | 0
icc/Makefile.IBMNT | 0
icc/Makefile.OSX | 0
icc/Makefile.UNIX | 0
icc/Makefile.WNT | 0
icc/ProPhoto.icm | Bin
icc/ProPhotoLin.icm | Bin
icc/Readme.txt | 0
icc/Rec2020.icm | Bin
icc/Rec709.icm | Bin
icc/SMPTE431_P3.icm | Bin
icc/SMPTE_RP145_NTSC.icm | Bin
icc/afiles | 0
icc/icc.c | 698 ++-
icc/icc.h | 141 +-
icc/iccV42.h | 0
icc/iccdump.c | 0
icc/icclu.c | 0
icc/iccrw.c | 0
icc/iccstd.c | 0
icc/icctest.c | 0
icc/lab2lab.icm | Bin
icc/log.txt | 0
icc/lutest.c | 0
icc/mcheck.c | 0
icc/mkDispProf.c | 0
icc/sRGB.icm | Bin
icc/testDE2K.c | 0
icc/todo.txt | 0
imdi/Jamfile | 0
imdi/License.txt | 0
imdi/Makefile | 0
imdi/Makefile.OSX | 0
imdi/Makefile.UNIX | 0
imdi/Makefile.WNT | 0
imdi/Readme.txt | 0
imdi/afiles | 0
imdi/cctiff.c | 0
imdi/cctiffo.c | 0
imdi/cgen.c | 0
imdi/ctest.c | 0
imdi/greytiff.c | 0
imdi/imdi.c | 0
imdi/imdi.h | 0
imdi/imdi_arch.h | 0
imdi/imdi_gen.c | 0
imdi/imdi_gen.h | 0
imdi/imdi_make.c | 0
imdi/imdi_tab.c | 0
imdi/imdi_tab.h | 0
imdi/imdi_utl.h | 0
imdi/itest.c | 0
imdi/refi.c | 0
imdi/refi.h | 0
imdi/ssort.c | 0
install.bat | 0
jam.patch | 0
jcnf/Jamfile | 0
jcnf/Readme.txt | 0
jcnf/afiles | 0
jcnf/jcnf.c | 4 +
jcnf/jcnf.h | 0
jcnf/test.c | 0
jcnf/test.jcnf | 0
lib/Readme.txt | 0
lib/afiles | 0
link/Jamfile | 2 +
link/collink.c | 118 +-
link/monoplot.c | 0
link/pathplot.c | 0
log.txt | 144 +
makeall.bat | 0
makeall.sh | 0
makeinstall.sh | 0
makeoemdnldbin.sh | 0
makepackagebin.sh | 9 +-
namedc/Jamfile | 2 +
namedc/License.txt | 0
namedc/afiles | 0
namedc/namedc.c | 0
namedc/namedc.h | 0
namedc/txt2iccnc.c | 1 +
notes.txt | 0
numlib/Jamfile | 4 +-
numlib/LUtest.c | 0
numlib/License.txt | 0
numlib/Readme.txt | 0
numlib/aatree.c | 0
numlib/aatree.h | 3 +
numlib/afiles | 5 +
numlib/dhsx.c | 306 +-
numlib/dhsx.h | 28 +-
numlib/dnsq.c | 0
numlib/dnsq.h | 0
numlib/dnsqtest.c | 0
numlib/ludecomp.c | 16 +-
numlib/ludecomp.h | 14 +
numlib/numlib.h | 2 +
numlib/numsup.c | 327 +-
numlib/numsup.h | 88 +-
numlib/powell.c | 121 +-
numlib/powell.h | 24 +-
numlib/qptest.c | 105 +
numlib/quadprog.c | 845 ++++
numlib/quadprog.h | 67 +
numlib/rand.c | 128 +-
numlib/rand.h | 40 +
numlib/sobol.c | 0
numlib/sobol.h | 0
numlib/soboltest.c | 0
numlib/svd.c | 0
numlib/svd.h | 35 +-
numlib/svdtest.c | 0
numlib/tdhsx.c | 0
numlib/tpowell.c | 0
numlib/ui.c | 0
numlib/ui.h | 0
numlib/varmet.c | 290 ++
numlib/varmet.h | 55 +
numlib/zbrent.c | 0
numlib/zbrent.h | 0
numlib/zbrenttest.c | 0
plot/Imakefile | 0
plot/Jamfile | 7 +-
plot/License.txt | 0
plot/Readme.txt | 0
plot/X3DOM_LICENSE.txt | 0
plot/afiles | 0
plot/plot.c | 37 +-
plot/plot.h | 11 +-
plot/vrml.c | 19 +-
plot/vrml.h | 4 +
plot/x3dom.css | 0
plot/x3dom.css.h | 0
plot/x3dom.js | 0
plot/x3dom.js.h | 0
profile/Jamfile | 2 +
profile/applycal.c | 5 +-
profile/cb2ti3.c | 0
profile/colprof.c | 84 +-
profile/colverify.c | 38 +-
profile/invprofcheck.c | 0
profile/kodak2ti3.c | 0
profile/ls2ti3.c | 0
profile/mppcheck.c | 0
profile/mppprof.c | 0
profile/printcal.c | 0
profile/prof.h | 6 +-
profile/profcheck.c | 36 +-
profile/profin.c | 16 +-
profile/profout.c | 34 +-
profile/simpprof.c | 0
profile/splitti3.c | 0
profile/txt2ti3.c | 157 +-
ref/3dap5k.sp | 0
ref/CIE_C.sp | 0
ref/CMP_DT_003.cht | 0
ref/CMP_Digital_Target-4.cht | 0
ref/CMP_Digital_Target-4.cie | 0
ref/CMP_Digital_Target-4.ti2 | 0
ref/CMP_Digital_Target-7.cht | 0
ref/CRT.ccss | 0
ref/ClayRGB1998.icm | Bin
ref/ColorChecker.cht | 0
ref/ColorChecker.cie | 0
ref/ColorChecker.ti2 | 0
ref/ColorCheckerDC.cht | 0
ref/ColorCheckerDC.ti2 | 0
ref/ColorCheckerPassport.cht | 0
ref/ColorCheckerPassport.cie | 0
ref/ColorCheckerSG.cht | 0
ref/ColorCheckerSG.ti2 | 0
ref/D50_0.0.sp | 0
ref/D50_0.1.sp | 0
ref/D50_0.3.sp | 0
ref/D50_0.5.sp | 0
ref/D50_0.7.sp | 0
ref/D50_1.0.sp | 0
ref/D50_1.2.sp | 0
ref/D50_1.5.sp | 0
ref/D50_1.7.sp | 0
ref/D50_2.0.sp | 0
ref/D50_2.5.sp | 0
ref/D50_3.0.sp | 0
ref/EBU3213_PAL.icm | Bin
ref/ECI2002.ti2 | 0
ref/ECI2002R.ti2 | 0
ref/F1.sp | 0
ref/F5.sp | 0
ref/F8.sp | 0
ref/FograStrip2.ti1 | 0
ref/FograStrip2_2.ti2 | 0
ref/FograStrip3.ti1 | 0
ref/FograStrip3_3.ti2 | 0
ref/GTIPlus.sp | 0
ref/Hutchcolor.cht | 0
ref/LaserSoftDCPro.cht | 0
ref/License.txt | 0
ref/Office.sp | 0
ref/ProPhoto.icm | Bin
ref/ProPhotoLin.icm | Bin
ref/QPcard_201.cht | 0
ref/QPcard_201.cie | 0
ref/QPcard_202.cht | 0
ref/QPcard_202.cie | 0
ref/ReadMe.txt | 0
ref/Rec2020.icm | Bin
ref/Rec709.icm | Bin
ref/SMPTE431_P3.icm | Bin
ref/SMPTE_RP145_NTSC.icm | Bin
ref/SOtele.sp | 0
ref/SpyderChecker.cht | 0
ref/SpyderChecker.cie | 0
ref/SpyderChecker24.cht | 0
ref/SpyderChecker24.cie | 0
ref/StandardObs2deg.cmf | 23 +
ref/Trulux.sp | 0
ref/TruluxPlus.sp | 0
ref/afiles | 1 +
ref/ccxx.ti1 | 0
ref/cmyk.icm | Bin
ref/example.sp | 0
ref/example121.sp | 0
ref/i1_RGB_Scan_1.4.cht | 0
ref/i1_RGB_Scan_1.4.ti2 | 0
ref/it8.cht | 0
ref/lab2lab.icm | Bin
ref/linear.cal | 2 +-
ref/sRGB.icm | Bin
ref/strange.cal | 2 +-
render/Jamfile | 0
render/License.txt | 0
render/Readme.txt | 0
render/afiles | 0
render/makecharts.ksh | 0
render/render.c | 13 +-
render/render.h | 0
render/screens.h | 0
render/thscreen.c | 0
render/thscreen.h | 0
render/timage.c | 2 +-
rspl/Jamfile | 2 +
rspl/c1.c | 0
rspl/c1df.c | 0
rspl/cw1.c | 0
rspl/cw3.c | 0
rspl/gam.c | 13 +-
rspl/gam.h | 0
rspl/mlbs.c | 0
rspl/mlbs.h | 0
rspl/opt.c | 0
rspl/rev.c | 963 +++-
rspl/rev.h | 17 +-
rspl/revbench.c | 0
rspl/rspl.c | 0
rspl/rspl.h | 35 +-
rspl/rspl1.c | 0
rspl/rspl1.h | 0
rspl/rspl_imp.h | 0
rspl/scat.c | 127 +-
rspl/scat2.c | 0
rspl/sm1.c | 0
rspl/sm2.c | 0
rspl/sm3.c | 0
rspl/smtmpp.c | 0
rspl/smtnd.c | 2 +-
rspl/spline.c | 0
rspl/stest.c | 0
rspl/t2d.c | 0
rspl/t2ddf.c | 0
rspl/t3d.c | 0
rspl/t3ddf.c | 0
rspl/tnd.c | 0
rspl/trnd.c | 0
scanin/CMP_DT_003.cht | 0
scanin/CMP_Digital_Target-4.cht | 0
scanin/CMP_Digital_Target-4.cie | 0
scanin/CMP_Digital_Target-4.ti2 | 0
scanin/CMP_Digital_Target-7.cht | 0
scanin/ColorChecker.cht | 0
scanin/ColorChecker.cie | 0
scanin/ColorCheckerDC.cht | 0
scanin/ColorCheckerDC.ti2 | 0
scanin/ColorCheckerHalfPassport.cht | 58 +
scanin/ColorCheckerHalfPassport.cie | 38 +
scanin/ColorCheckerPassport.cht | 0
scanin/ColorCheckerPassport.cie | 0
scanin/ColorCheckerSG.cht | 0
scanin/ColorCheckerSG.ti2 | 0
scanin/Hutchcolor.cht | 0
scanin/Jamfile | 2 +
scanin/LaserSoftDCPro.cht | 0
scanin/License.txt | 0
scanin/QPcard_201.cht | 0
scanin/QPcard_201.cie | 0
scanin/QPcard_202.cht | 0
scanin/QPcard_202.cie | 0
scanin/Readme.txt | 0
scanin/SpyderChecker.cht | 0
scanin/SpyderChecker.cie | 0
scanin/SpyderChecker24.cht | 0
scanin/SpyderChecker24.cie | 0
scanin/afiles | 2 +
scanin/i1_RGB_Scan_1.4.cht | 0
scanin/it8.cht | 0
scanin/scanin.c | 0
scanin/scanrd.c | 2 +-
scanin/scanrd.h | 0
scanin/scanrd_.h | 0
spectro/IntsLib_Readme.txt | 0
spectro/Jamfile | 34 +-
spectro/License.txt | 0
spectro/License2.txt | 0
spectro/License3.txt | 0
spectro/LzmaDec.c | 0
spectro/LzmaDec.h | 0
spectro/LzmaTypes.h | 0
spectro/Makefile.OSX | 0
spectro/Makefile.SA | 0
spectro/Makefile.UNIX | 0
spectro/Makefile.WNT | 0
spectro/Readme.txt | 0
spectro/SOtele.sp | 0
spectro/afiles | 3 +
spectro/aglob.c | 0
spectro/aglob.h | 0
spectro/average.c | 0
spectro/base64.c | 0
spectro/base64.h | 0
spectro/ccwin.c | 0
spectro/ccwin.h | 0
spectro/ccxx.ti1 | 0
spectro/ccxxmake.c | 48 +-
spectro/chartread.c | 34 +-
spectro/colorhug.c | 7 +-
spectro/colorhug.h | 0
spectro/conv.c | 41 +
spectro/conv.h | 4 +
spectro/cubecal.h | 0
spectro/dev.h | 6 +-
spectro/dispcal.c | 217 +-
spectro/dispread.c | 39 +-
spectro/dispsup.c | 2 +
spectro/dispsup.h | 0
spectro/disptechs.c | 0
spectro/disptechs.h | 0
spectro/dispwin.c | 580 ++-
spectro/dispwin.h | 14 +-
spectro/dtp20.c | 5 +-
spectro/dtp20.h | 0
spectro/dtp22.c | 15 +-
spectro/dtp22.h | 0
spectro/dtp41.c | 5 +-
spectro/dtp41.h | 0
spectro/dtp51.c | 5 +-
spectro/dtp51.h | 0
spectro/dtp92.c | 37 +-
spectro/dtp92.h | 0
spectro/ex1.c | 7 +-
spectro/ex1.h | 0
spectro/fakeread.c | 0
spectro/hcfr.c | 7 +-
spectro/hcfr.h | 0
spectro/hidio.c | 3 +
spectro/hidio.h | 0
spectro/huey.c | 28 +-
spectro/huey.h | 0
spectro/i1d3.c | 81 +-
spectro/i1d3.h | 5 +-
spectro/i1disp.c | 81 +-
spectro/i1disp.h | 7 +-
spectro/i1pro.c | 11 +-
spectro/i1pro.h | 2 +-
spectro/i1pro_imp.c | 117 +-
spectro/i1pro_imp.h | 0
spectro/icoms.c | 179 +-
spectro/icoms.h | 32 +-
spectro/icoms_nt.c | 26 +-
spectro/icoms_ux.c | 62 +-
spectro/ifiles | 0
spectro/illumread.c | 8 +-
spectro/inflate.c | 0
spectro/inst.c | 365 +-
spectro/inst.h | 37 +-
spectro/instappsup.c | 3 +-
spectro/instappsup.h | 0
spectro/instlib.ksh | 0
spectro/instlib.txt | 0
spectro/insttypeinst.h | 0
spectro/insttypes.c | 90 +-
spectro/insttypes.h | 30 +-
spectro/iusb.h | 0
spectro/kleink10.c | 11 +-
spectro/kleink10.h | 0
spectro/linear.cal | 2 +-
spectro/linear.sp | 0
spectro/madvrwin.c | 0
spectro/madvrwin.h | 0
spectro/mongoose.c | 0
spectro/mongoose.h | 0
spectro/munki.c | 5 +-
spectro/munki.h | 2 +-
spectro/munki_imp.c | 12 +-
spectro/munki_imp.h | 3 +-
spectro/oemarch.c | 1 +
spectro/oemarch.h | 0
spectro/oeminst.c | 4 +-
spectro/pollem.c | 0
spectro/pollem.h | 0
spectro/rspec.c | 7 +-
spectro/rspec.h | 0
spectro/sa_conv.c | 0
spectro/sa_conv.h | 0
spectro/smcube.c | 7 +-
spectro/smcube.h | 0
spectro/spec2cie.c | 159 +-
spectro/specbos.c | 260 +-
spectro/specbos.h | 3 +
spectro/spotread.c | 153 +-
spectro/spyd2.c | 72 +-
spectro/spyd2.h | 0
spectro/ss.c | 71 +-
spectro/ss.h | 0
spectro/ss_imp.c | 1 +
spectro/ss_imp.h | 0
spectro/strange.cal | 2 +-
spectro/synthcal.c | 0
spectro/synthread.c | 0
spectro/usbio.c | 1 +
spectro/usbio.h | 0
spectro/usbio_bsd.c | 0
spectro/usbio_lx.c | 4 +
spectro/usbio_nt.c | 6 +
spectro/usbio_ox.c | 13 +-
spectro/vinflate.c | 0
spectro/vtpglut.c | 570 +++
spectro/vtpglut.h | 243 ++
spectro/vtpgluttypes.h | 44 +
spectro/webwin.c | 0
spectro/webwin.h | 0
spectro/xdg_bds.c | 52 +-
spectro/xdg_bds.h | 7 +
spectro/xrga.c | 1 +
spectro/xrga.h | 0
target/ColorChecker.ti2 | 0
target/ECI2002.ti2 | 0
target/ECI2002R.ti2 | 0
target/FograStrip2.ti1 | 0
target/FograStrip2_2.ti2 | 0
target/FograStrip3.ti1 | 0
target/FograStrip3_3.ti2 | 0
target/Jamfile | 2 +
target/License.txt | 0
target/Readme.txt | 0
target/afiles | 0
target/alphix.c | 0
target/alphix.h | 0
target/filmtarg.c | 0
target/i1_RGB_Scan_1.4.ti2 | 0
target/ifarp.c | 0
target/ifarp.h | 0
target/ofps.c | 8 +-
target/ofps.h | 0
target/ppoint.c | 0
target/ppoint.h | 0
target/prand.c | 0
target/prand.h | 0
target/printtarg.c | 0
target/randix.c | 0
target/randix.h | 0
target/simdlat.c | 0
target/simdlat.h | 0
target/simplat.c | 0
target/simplat.h | 0
target/targen.c | 0
target/targen.h | 0
ttbd.txt | 0
tweak/Jamfile | 2 +
tweak/License.txt | 0
tweak/Readme.txt | 0
tweak/afiles | 0
tweak/refine.c | 32 +-
ucmm/Jamfile | 0
ucmm/afiles | 0
ucmm/ucmm.c | 615 ++-
ucmm/ucmm.h | 11 +-
usb/45-Argyll.rules | 3 +
usb/55-Argyll.rules | 3 +
usb/Argyll | 0
usb/Argyll.kext/Info.plist | 0
usb/Argyll.usermap | 0
usb/ArgyllCMS.cat | Bin 3551 -> 3635 bytes
usb/ArgyllCMS.inf | 3 +
usb/ArgyllCMS.inf.d | 1 +
usb/ArgyllCMS.inf.t | 0
usb/ArgyllCMS_x64.cat | Bin 3535 -> 3619 bytes
usb/Jamfile | 0
usb/afiles | 0
usb/binfiles.lx | 0
usb/binfiles.msw | 0
usb/binfiles.osx | 0
usb/driver/AUTHORS.txt | 0
usb/driver/COPYING_GPL.txt | 0
usb/driver/LICENSE.txt | 0
usb/driver/Makefile | 0
usb/driver/README.txt | 0
usb/driver/abort_endpoint.c | 0
usb/driver/claim_interface.c | 0
usb/driver/clear_feature.c | 0
usb/driver/dispatch.c | 0
usb/driver/driver_api.h | 0
usb/driver/driver_debug.c | 0
usb/driver/driver_debug.h | 0
usb/driver/driver_registry.c | 0
usb/driver/get_configuration.c | 0
usb/driver/get_descriptor.c | 0
usb/driver/get_interface.c | 0
usb/driver/get_status.c | 0
usb/driver/ioctl.c | 0
usb/driver/libusb-win32-README-1.2.6.0.txt | 0
usb/driver/libusb_driver.c | 0
usb/driver/libusb_driver.h | 0
usb/driver/libusb_driver_rc.rc | 0
usb/driver/lusb_defdi_guids.h | 0
usb/driver/pnp.c | 0
usb/driver/power.c | 0
usb/driver/release_interface.c | 0
usb/driver/reset_device.c | 0
usb/driver/reset_endpoint.c | 0
usb/driver/set_configuration.c | 0
usb/driver/set_descriptor.c | 0
usb/driver/set_feature.c | 0
usb/driver/set_interface.c | 0
usb/driver/transfer.c | 0
usb/driver/usbd.def | 0
usb/driver/usbdlib_gcc.h | 0
usb/driver/vendor_request.c | 0
usb/install_kext.sh | 0
xicc/Jamfile | 6 +
xicc/License.txt | 0
xicc/Readme.txt | 0
xicc/afiles | 0
xicc/bt1886.c | 0
xicc/bt1886.h | 0
xicc/cam02.c | 127 +-
xicc/cam02.h | 19 +-
xicc/cam02plot.c | 8 +-
xicc/cam02ref.h | 11 +-
xicc/cam02test.c | 38 +-
xicc/cam97s3.c | 0
xicc/cam97s3.h | 0
xicc/cam97test.c | 0
xicc/ccmx.c | 0
xicc/ccmx.h | 0
xicc/ccss.c | 0
xicc/ccss.h | 0
xicc/ccttest.c | 5 +-
xicc/cgatsplot.c | 53 +-
xicc/cv.c | 0
xicc/cvtest.c | 0
xicc/example.sp | 0
xicc/extracticc.c | 0
xicc/extractttag.c | 0
xicc/fakeCMY.c | 0
xicc/fbview.c | 0
xicc/iccgamut.c | 38 +
xicc/iccjpeg.c | 0
xicc/iccjpeg.h | 0
xicc/icheck.c | 0
xicc/monctest.c | 0
xicc/moncurve.c | 0
xicc/moncurve.h | 0
xicc/mpp.c | 0
xicc/mpp.h | 0
xicc/mpplu.c | 30 +-
xicc/revfix.c | 0
xicc/specplot.c | 12 +-
xicc/specsubsamp.c | 40 +-
xicc/spectest.c | 1 +
xicc/spectest2.c | 1 +
xicc/tiffgamut.c | 57 +-
xicc/tiffgmts.c | 0
xicc/transplot.c | 0
xicc/xcal.c | 0
xicc/xcal.h | 0
xicc/xcam.c | 8 +-
xicc/xcam.h | 5 +-
xicc/xcolorants.c | 0
xicc/xcolorants.h | 0
xicc/xcolorantslu.c | 0
xicc/xdevlin.c | 0
xicc/xdevlin.h | 0
xicc/xdgb.c | 0
xicc/xdgb.h | 0
xicc/xfbview.c | 0
xicc/xfit.c | 1 +
xicc/xfit.h | 1 +
xicc/xicc.c | 72 +-
xicc/xicc.h | 23 +-
xicc/xicclu.c | 59 +-
xicc/xlut.c | 41 +-
xicc/xlutfix.c | 0
xicc/xmatrix.c | 16 +-
xicc/xmono.c | 2 +-
xicc/xspect.c | 4584 +++++++++-----------
xicc/xspect.h | 78 +-
xicc/xutils.c | 0
xicc/xutils.h | 0
xml/ANNOUNCEMENT | 0
xml/CHANGES | 0
xml/COPYING | 0
xml/Makefile.in | 0
xml/README | 0
xml/afiles | 0
xml/config.h.in | 0
xml/configure | 0
xml/configure.in | 0
xml/doc/Mini-XML.pdf | Bin
xml/install-sh | 0
xml/mxml-attr.c | 0
xml/mxml-config.h | 0
xml/mxml-entity.c | 0
xml/mxml-file.c | 0
xml/mxml-get.c | 0
xml/mxml-index.c | 0
xml/mxml-node.c | 0
xml/mxml-private.c | 0
xml/mxml-private.h | 0
xml/mxml-search.c | 0
xml/mxml-set.c | 0
xml/mxml-string.c | 0
xml/mxml.h | 0
xml/mxml.list.in | 0
xml/mxml.pc.in | 0
xml/mxml.spec | 0
xml/mxml.xml | 0
xml/mxmldoc.c | 0
xml/test.xml | 0
xml/testmxml.c | 0
yajl/COPYING | 0
yajl/ChangeLog | 0
yajl/Jamfile | 0
yajl/README | 0
yajl/TODO | 0
yajl/afiles | 0
yajl/json_verify.c | 0
yajl/yajl.c | 0
yajl/yajl.h | 0
yajl/yajl_alloc.c | 0
yajl/yajl_alloc.h | 0
yajl/yajl_buf.c | 0
yajl/yajl_buf.h | 0
yajl/yajl_bytestack.h | 0
yajl/yajl_common.h | 0
yajl/yajl_encode.c | 0
yajl/yajl_encode.h | 0
yajl/yajl_gen.c | 0
yajl/yajl_gen.h | 4 +
yajl/yajl_lex.c | 0
yajl/yajl_lex.h | 0
yajl/yajl_parse.h | 0
yajl/yajl_parser.c | 0
yajl/yajl_parser.h | 0
yajl/yajl_test.c | 0
yajl/yajl_tree.c | 0
yajl/yajl_tree.h | 0
yajl/yajl_version.c | 0
yajl/yajl_version.h | 0
ziparch.sh | 0
982 files changed, 17458 insertions(+), 7586 deletions(-)
mode change 100644 => 100755 Jambase
mode change 100644 => 100755 Jamfile
mode change 100644 => 100755 Jamtop
mode change 100644 => 100755 License.txt
mode change 100644 => 100755 License2.txt
mode change 100644 => 100755 License3.txt
mode change 100644 => 100755 Makefile
mode change 100644 => 100755 Readme.txt
mode change 100644 => 100755 adirs
mode change 100644 => 100755 afiles
mode change 100644 => 100755 binfiles
mode change 100644 => 100755 blddirs
mode change 100644 => 100755 ccast/Jamfile
mode change 100644 => 100755 ccast/License.txt
mode change 100644 => 100755 ccast/axTLS/Jamfile
mode change 100644 => 100755 ccast/axTLS/aes.c
mode change 100644 => 100755 ccast/axTLS/asn1.c
mode change 100644 => 100755 ccast/axTLS/axTLS_config.h
mode change 100644 => 100755 ccast/axTLS/axTLS_version.h
mode change 100644 => 100755 ccast/axTLS/bigint.c
mode change 100644 => 100755 ccast/axTLS/bigint.h
mode change 100644 => 100755 ccast/axTLS/bigint_impl.h
mode change 100644 => 100755 ccast/axTLS/cert.h
mode change 100644 => 100755 ccast/axTLS/crypto.h
mode change 100644 => 100755 ccast/axTLS/crypto_misc.c
mode change 100644 => 100755 ccast/axTLS/crypto_misc.h
mode change 100644 => 100755 ccast/axTLS/gen_cert.c
mode change 100644 => 100755 ccast/axTLS/hmac.c
mode change 100644 => 100755 ccast/axTLS/loader.c
mode change 100644 => 100755 ccast/axTLS/md2.c
mode change 100644 => 100755 ccast/axTLS/md5.c
mode change 100644 => 100755 ccast/axTLS/openssl.c
mode change 100644 => 100755 ccast/axTLS/os_int.h
mode change 100644 => 100755 ccast/axTLS/os_port.c
mode change 100644 => 100755 ccast/axTLS/os_port.h
mode change 100644 => 100755 ccast/axTLS/p12.c
mode change 100644 => 100755 ccast/axTLS/private_key.h
mode change 100644 => 100755 ccast/axTLS/rc4.c
mode change 100644 => 100755 ccast/axTLS/rsa.c
mode change 100644 => 100755 ccast/axTLS/sha1.c
mode change 100644 => 100755 ccast/axTLS/ssl.h
mode change 100644 => 100755 ccast/axTLS/temp
mode change 100644 => 100755 ccast/axTLS/tls1.c
mode change 100644 => 100755 ccast/axTLS/tls1.h
mode change 100644 => 100755 ccast/axTLS/tls1_clnt.c
mode change 100644 => 100755 ccast/axTLS/tls1_svr.c
mode change 100644 => 100755 ccast/axTLS/x509.c
mode change 100644 => 100755 ccast/cast_channel.proto
mode change 100644 => 100755 ccast/ccast.c
mode change 100644 => 100755 ccast/ccast.h
mode change 100644 => 100755 ccast/ccmdns.c
mode change 100644 => 100755 ccast/ccmdns.h
mode change 100644 => 100755 ccast/ccmes.c
mode change 100644 => 100755 ccast/ccmes.h
mode change 100644 => 100755 ccast/ccpacket.c
mode change 100644 => 100755 ccast/ccpacket.h
mode change 100644 => 100755 ccast/cctest.c
mode change 100644 => 100755 ccast/chan/cast_channel.pb-c.c
mode change 100644 => 100755 ccast/chan/cast_channel.pb-c.h
mode change 100644 => 100755 ccast/chan/protobuf-c.c
mode change 100644 => 100755 ccast/chan/protobuf-c.h
mode change 100644 => 100755 ccast/dpat.c
mode change 100644 => 100755 ccast/filt.c
mode change 100644 => 100755 cgats/Jamfile
mode change 100644 => 100755 cgats/License4.txt
mode change 100644 => 100755 cgats/Makefile
mode change 100644 => 100755 cgats/Makefile.IBMNT
mode change 100644 => 100755 cgats/Makefile.OSX
mode change 100644 => 100755 cgats/Makefile.UNIX
mode change 100644 => 100755 cgats/Makefile.WNT
mode change 100644 => 100755 cgats/Readme.txt
mode change 100644 => 100755 cgats/afiles
mode change 100644 => 100755 cgats/cgats.c
mode change 100644 => 100755 cgats/cgats.h
mode change 100644 => 100755 cgats/cgatsstd.c
mode change 100644 => 100755 cgats/makezip.ksh
mode change 100644 => 100755 cgats/pars.c
mode change 100644 => 100755 cgats/pars.h
mode change 100644 => 100755 cgats/parsstd.c
mode change 100644 => 100755 cgats/test.txt
mode change 100644 => 100755 doc/3dformat.html
mode change 100644 => 100755 doc/ArgyllCMS_arts_tag.html
mode change 100644 => 100755 doc/ArgyllFlow.jpg
mode change 100644 => 100755 doc/ArgyllFlowThumb.jpg
mode change 100644 => 100755 doc/CMP_DT_003.jpg
mode change 100644 => 100755 doc/CMP_Digital_Target-4.jpg
mode change 100644 => 100755 doc/CMP_Digital_Target-7.jpg
mode change 100644 => 100755 doc/CRTspectrum.jpg
mode change 100644 => 100755 doc/Chroma4.jpg
mode change 100644 => 100755 doc/ColorHug.jpg
mode change 100644 => 100755 doc/ColorManagement.html
mode change 100644 => 100755 doc/ColorMunki.jpg
mode change 100644 => 100755 doc/ColorMunkiCreate.jpg
mode change 100644 => 100755 doc/Compiling.html
mode change 100644 => 100755 doc/CrushedDisplyBlacks.html
mode change 100644 => 100755 doc/DC.jpg
mode change 100644 => 100755 doc/DTP20.jpg
mode change 100644 => 100755 doc/DTP22.jpg
mode change 100644 => 100755 doc/DTP41.jpg
mode change 100644 => 100755 doc/DTP51.jpg
mode change 100644 => 100755 doc/DTP92.jpg
mode change 100644 => 100755 doc/DTP94.jpg
mode change 100644 => 100755 doc/DocLicense.txt
mode change 100644 => 100755 doc/EX1.jpg
mode change 100644 => 100755 doc/Environment.html
mode change 100644 => 100755 doc/FWA.html
mode change 100644 => 100755 doc/FWA_measure.jpg
mode change 100644 => 100755 doc/File_Formats.html
mode change 100644 => 100755 doc/Fluorescent.jpg
mode change 100644 => 100755 doc/HCFR.jpg
mode change 100644 => 100755 doc/HCT.jpg
mode change 100644 => 100755 doc/HiResLaser.jpg
mode change 100644 => 100755 doc/Huey.jpg
mode change 100644 => 100755 doc/Installing.html
mode change 100644 => 100755 doc/Installing_Linux.html
mode change 100644 => 100755 doc/Installing_MSWindows.html
mode change 100644 => 100755 doc/Installing_OSX.html
mode change 100644 => 100755 doc/JETI_1211.jpg
mode change 100644 => 100755 doc/JETI_1501.jpg
mode change 100644 => 100755 doc/K10A.jpg
mode change 100644 => 100755 doc/Kgraph1.jpg
mode change 100644 => 100755 doc/Kgraph2.jpg
mode change 100644 => 100755 doc/Kgraph3.jpg
mode change 100644 => 100755 doc/Kgraph4.jpg
mode change 100644 => 100755 doc/Kgraph5.jpg
mode change 100644 => 100755 doc/Kgraph6.jpg
mode change 100644 => 100755 doc/Kgraph7.jpg
mode change 100644 => 100755 doc/Kgraph8.jpg
mode change 100644 => 100755 doc/Kparams.jpg
mode change 100644 => 100755 doc/LSDC.jpg
mode change 100644 => 100755 doc/LabSteps.jpg
mode change 100644 => 100755 doc/License.txt
mode change 100644 => 100755 doc/License2.txt
mode change 100644 => 100755 doc/License3.txt
mode change 100644 => 100755 doc/License4.txt
mode change 100644 => 100755 doc/Limitations.html
mode change 100644 => 100755 doc/MinorTools.html
mode change 100644 => 100755 doc/Organisation.html
mode change 100644 => 100755 doc/Overview.html
create mode 100755 doc/Passport.jpg
mode change 100644 => 100755 doc/Performance.html
mode change 100644 => 100755 doc/Q60.jpg
mode change 100644 => 100755 doc/QPcard201.jpg
mode change 100644 => 100755 doc/QPcard202.jpg
mode change 100644 => 100755 doc/SG.jpg
mode change 100644 => 100755 doc/SG_footer.txt
mode change 100644 => 100755 doc/SG_header.txt
mode change 100644 => 100755 doc/SMCube.jpg
mode change 100644 => 100755 doc/Scenarios.html
mode change 100644 => 100755 doc/Smile.jpg
mode change 100644 => 100755 doc/Source.html
mode change 100644 => 100755 doc/Spyd2.jpg
mode change 100644 => 100755 doc/Spyd3.jpg
mode change 100644 => 100755 doc/Spyd3x.jpg
mode change 100644 => 100755 doc/Spyd4.jpg
mode change 100644 => 100755 doc/Spyd5.jpg
mode change 100644 => 100755 doc/SpyderChecker.jpg
mode change 100644 => 100755 doc/SpyderChecker24.jpg
mode change 100644 => 100755 doc/VideoEOTFs.html
mode change 100644 => 100755 doc/WideGamutColmters.html
mode change 100644 => 100755 doc/XRGA.html
mode change 100644 => 100755 doc/YellowGreen.jpg
mode change 100644 => 100755 doc/afiles
mode change 100644 => 100755 doc/applycal.html
mode change 100644 => 100755 doc/average.html
mode change 100644 => 100755 doc/cal_format.html
mode change 100644 => 100755 doc/calvschar.html
mode change 100644 => 100755 doc/cb2ti3.html
mode change 100644 => 100755 doc/ccmxs.html
mode change 100644 => 100755 doc/ccmxs/DTP-94_1964_10_Dell_2408W.ccmx
mode change 100644 => 100755 doc/ccmxs/DTP-94_1997_Shaw_Dell_2408W.ccmx
mode change 100644 => 100755 doc/ccmxs/DTP-94_Dell_2408W.ccmx
mode change 100644 => 100755 doc/ccmxs/DTP-94_Dell_U2410.ccmx
mode change 100644 => 100755 doc/ccmxs/EyeOne_Display_1_NEC1990SXi.ccmx
mode change 100644 => 100755 doc/ccmxs/EyeOne_Display_2_EIZO_S2233W.ccmx
mode change 100644 => 100755 doc/ccmxs/EyeOne_Display_2_NEC1990SXi.ccmx
mode change 100644 => 100755 doc/ccmxs/EyeOne_Display_LT_U2410_Standard_1931.ccmx
mode change 100644 => 100755 doc/ccmxs/EyeOne_Display_LT_U2410_Standard_1964.ccmx
mode change 100644 => 100755 doc/ccmxs/EyeOne_Display_LT_U2410_sRGB_1931.ccmx
mode change 100644 => 100755 doc/ccmxs/EyeOne_Display_LT_U2410_sRGB_1964.ccmx
mode change 100644 => 100755 doc/ccmxs/Huey_Acer_al2016w.ccmx
mode change 100644 => 100755 doc/ccmxs/Huey_Eizo_CG243.ccmx
mode change 100644 => 100755 doc/ccmxs/Huey_HP_compaq_6730s.ccmx
mode change 100644 => 100755 doc/ccmxs/Huey_HP_lp2475w.ccmx
mode change 100644 => 100755 doc/ccmxs/Huey_NEC1990SXi.ccmx
mode change 100644 => 100755 doc/ccmxs/Huey_NEC_Spectraview_241.ccmx
mode change 100644 => 100755 doc/ccmxs/NEC_EyeOne_Display_2_NEC2690WUXi2.ccmx
mode change 100644 => 100755 doc/ccmxs/Spyder2_EIZO_S2433W_standard_1931.ccmx
mode change 100644 => 100755 doc/ccmxs/Spyder2_EIZO_S2433W_standard_1964.ccmx
mode change 100644 => 100755 doc/ccmxs/Spyder3_EIZO_S2233_standard_1964.ccmx
mode change 100644 => 100755 doc/ccmxs/Spyder3_EIZO_S2243W_standard_1931.ccmx
mode change 100644 => 100755 doc/ccmxs/Spyder3_HP_LP2475w.ccmx
mode change 100644 => 100755 doc/ccmxs/Spyder3_NEC2690WUXi2.ccmx
mode change 100644 => 100755 doc/ccmxs/Spyder3_NEC_PA301W.ccmx
create mode 100755 doc/ccsss.html
create mode 100755 doc/ccsss/MacBookProRetina2016.ccss
mode change 100644 => 100755 doc/cctiff.html
mode change 100644 => 100755 doc/ccxxmake.html
mode change 100644 => 100755 doc/chartread.html
mode change 100644 => 100755 doc/cht_format.html
mode change 100644 => 100755 doc/collink.html
mode change 100644 => 100755 doc/colorchecker.jpg
mode change 100644 => 100755 doc/colprof.html
mode change 100644 => 100755 doc/colverify.html
mode change 100644 => 100755 doc/cube.jpg
mode change 100644 => 100755 doc/dispcal.html
mode change 100644 => 100755 doc/dispprofloc.html
mode change 100644 => 100755 doc/dispread.html
mode change 100644 => 100755 doc/dispwin.html
mode change 100644 => 100755 doc/evalInputTargets.html
mode change 100644 => 100755 doc/extracticc.html
mode change 100644 => 100755 doc/extractttag.html
mode change 100644 => 100755 doc/fakeCMY.html
mode change 100644 => 100755 doc/fakeread.html
mode change 100644 => 100755 doc/filmread.html
mode change 100644 => 100755 doc/filmtarg.html
mode change 100644 => 100755 doc/gamma.html
mode change 100644 => 100755 doc/gamutmapping1.jpg
mode change 100644 => 100755 doc/greytiff.html
mode change 100644 => 100755 doc/i1d.jpg
mode change 100644 => 100755 doc/i1d3_1.jpg
mode change 100644 => 100755 doc/i1d3_2.jpg
mode change 100644 => 100755 doc/i1m.jpg
mode change 100644 => 100755 doc/i1p.jpg
mode change 100644 => 100755 doc/i1pro2.jpg
mode change 100644 => 100755 doc/i1proDriver.html
mode change 100644 => 100755 doc/i1proDriver.xls
mode change 100644 => 100755 doc/i1proHiRes.html
mode change 100644 => 100755 doc/i1proHiRes.jpg
mode change 100644 => 100755 doc/i1proHiRes.zip
mode change 100644 => 100755 doc/i1scan14.jpg
mode change 100644 => 100755 doc/iccdump.html
mode change 100644 => 100755 doc/iccgamut.html
mode change 100644 => 100755 doc/iccgamutmapping.html
mode change 100644 => 100755 doc/icclu.html
mode change 100644 => 100755 doc/illumread.html
mode change 100644 => 100755 doc/illumread_1.jpg
mode change 100644 => 100755 doc/illumread_2.jpg
mode change 100644 => 100755 doc/illumread_3.jpg
mode change 100644 => 100755 doc/illumread_4.jpg
mode change 100644 => 100755 doc/illumread_5.jpg
mode change 100644 => 100755 doc/illumread_6.jpg
create mode 100755 doc/inoutreferred.html
mode change 100644 => 100755 doc/instruments.html
mode change 100644 => 100755 doc/invprofcheck.html
mode change 100644 => 100755 doc/kodak2ti3.html
create mode 100755 doc/ls2ti3.html
mode change 100644 => 100755 doc/monitorcontrols.html
mode change 100644 => 100755 doc/mox.jpg
mode change 100644 => 100755 doc/moxxr.jpg
mode change 100644 => 100755 doc/mppcheck.html
mode change 100644 => 100755 doc/mpplu.html
mode change 100644 => 100755 doc/mppprof.html
mode change 100644 => 100755 doc/oeminst.html
mode change 100644 => 100755 doc/printcal.html
mode change 100644 => 100755 doc/printtarg.html
mode change 100644 => 100755 doc/profcheck.html
mode change 100644 => 100755 doc/refine.html
mode change 100644 => 100755 doc/revfix.html
mode change 100644 => 100755 doc/scanin.html
mode change 100644 => 100755 doc/sl.jpg
mode change 100644 => 100755 doc/spec2cie.html
mode change 100644 => 100755 doc/specplot.html
mode change 100644 => 100755 doc/splitti3.html
mode change 100644 => 100755 doc/spotread.html
mode change 100644 => 100755 doc/srgbplot.gif
mode change 100644 => 100755 doc/ss.jpg
mode change 100644 => 100755 doc/surface.jpg
mode change 100644 => 100755 doc/synthcal.html
mode change 100644 => 100755 doc/synthread.html
mode change 100644 => 100755 doc/targen.html
mode change 100644 => 100755 doc/ti3_format.html
mode change 100644 => 100755 doc/tiffgamut.html
mode change 100644 => 100755 doc/timage.html
mode change 100644 => 100755 doc/txt2ti3.html
mode change 100644 => 100755 doc/ucmm.html
mode change 100644 => 100755 doc/viewgam.html
mode change 100644 => 100755 doc/xicclu.html
mode change 100644 => 100755 gamut/GenRMGam.c
mode change 100644 => 100755 gamut/GenVisGam.c
mode change 100644 => 100755 gamut/Jamfile
mode change 100644 => 100755 gamut/License.txt
mode change 100644 => 100755 gamut/Readme.txt
mode change 100644 => 100755 gamut/afiles
mode change 100644 => 100755 gamut/fakegam.c
mode change 100644 => 100755 gamut/gammap.c
mode change 100644 => 100755 gamut/gammap.h
mode change 100644 => 100755 gamut/gammap.txt
mode change 100644 => 100755 gamut/gamut.c
mode change 100644 => 100755 gamut/gamut.h
mode change 100644 => 100755 gamut/isecvol.c
mode change 100644 => 100755 gamut/maptest.c
mode change 100644 => 100755 gamut/nearsmth.c
mode change 100644 => 100755 gamut/nearsmth.h
mode change 100644 => 100755 gamut/smthtest.c
mode change 100644 => 100755 gamut/surftest.c
mode change 100644 => 100755 gamut/viewgam.c
mode change 100644 => 100755 h/License.txt
mode change 100644 => 100755 h/Readme.txt
mode change 100644 => 100755 h/aconfig.h
mode change 100644 => 100755 h/afiles
mode change 100644 => 100755 h/copyright.h
mode change 100644 => 100755 h/counters.h
mode change 100644 => 100755 h/llist.h
mode change 100644 => 100755 h/sort.h
mode change 100644 => 100755 h/xlist.h
mode change 100644 => 100755 icc/ClayRGB1998.icm
mode change 100644 => 100755 icc/EBU3213_PAL.icm
mode change 100644 => 100755 icc/Jamfile
mode change 100644 => 100755 icc/License4.txt
mode change 100644 => 100755 icc/Makefile
mode change 100644 => 100755 icc/Makefile.IBMNT
mode change 100644 => 100755 icc/Makefile.OSX
mode change 100644 => 100755 icc/Makefile.UNIX
mode change 100644 => 100755 icc/Makefile.WNT
mode change 100644 => 100755 icc/ProPhoto.icm
mode change 100644 => 100755 icc/ProPhotoLin.icm
mode change 100644 => 100755 icc/Readme.txt
mode change 100644 => 100755 icc/Rec2020.icm
mode change 100644 => 100755 icc/Rec709.icm
mode change 100644 => 100755 icc/SMPTE431_P3.icm
mode change 100644 => 100755 icc/SMPTE_RP145_NTSC.icm
mode change 100644 => 100755 icc/afiles
mode change 100644 => 100755 icc/icc.c
mode change 100644 => 100755 icc/icc.h
mode change 100644 => 100755 icc/iccV42.h
mode change 100644 => 100755 icc/iccdump.c
mode change 100644 => 100755 icc/icclu.c
mode change 100644 => 100755 icc/iccrw.c
mode change 100644 => 100755 icc/iccstd.c
mode change 100644 => 100755 icc/icctest.c
mode change 100644 => 100755 icc/lab2lab.icm
mode change 100644 => 100755 icc/log.txt
mode change 100644 => 100755 icc/lutest.c
mode change 100644 => 100755 icc/mcheck.c
mode change 100644 => 100755 icc/mkDispProf.c
mode change 100644 => 100755 icc/sRGB.icm
mode change 100644 => 100755 icc/testDE2K.c
mode change 100644 => 100755 icc/todo.txt
mode change 100644 => 100755 imdi/Jamfile
mode change 100644 => 100755 imdi/License.txt
mode change 100644 => 100755 imdi/Makefile
mode change 100644 => 100755 imdi/Makefile.OSX
mode change 100644 => 100755 imdi/Makefile.UNIX
mode change 100644 => 100755 imdi/Makefile.WNT
mode change 100644 => 100755 imdi/Readme.txt
mode change 100644 => 100755 imdi/afiles
mode change 100644 => 100755 imdi/cctiff.c
mode change 100644 => 100755 imdi/cctiffo.c
mode change 100644 => 100755 imdi/cgen.c
mode change 100644 => 100755 imdi/ctest.c
mode change 100644 => 100755 imdi/greytiff.c
mode change 100644 => 100755 imdi/imdi.c
mode change 100644 => 100755 imdi/imdi.h
mode change 100644 => 100755 imdi/imdi_arch.h
mode change 100644 => 100755 imdi/imdi_gen.c
mode change 100644 => 100755 imdi/imdi_gen.h
mode change 100644 => 100755 imdi/imdi_make.c
mode change 100644 => 100755 imdi/imdi_tab.c
mode change 100644 => 100755 imdi/imdi_tab.h
mode change 100644 => 100755 imdi/imdi_utl.h
mode change 100644 => 100755 imdi/itest.c
mode change 100644 => 100755 imdi/refi.c
mode change 100644 => 100755 imdi/refi.h
mode change 100644 => 100755 imdi/ssort.c
mode change 100644 => 100755 install.bat
mode change 100644 => 100755 jam.patch
mode change 100644 => 100755 jcnf/Jamfile
mode change 100644 => 100755 jcnf/Readme.txt
mode change 100644 => 100755 jcnf/afiles
mode change 100644 => 100755 jcnf/jcnf.c
mode change 100644 => 100755 jcnf/jcnf.h
mode change 100644 => 100755 jcnf/test.c
mode change 100644 => 100755 jcnf/test.jcnf
mode change 100644 => 100755 lib/Readme.txt
mode change 100644 => 100755 lib/afiles
mode change 100644 => 100755 link/collink.c
mode change 100644 => 100755 link/monoplot.c
mode change 100644 => 100755 link/pathplot.c
mode change 100644 => 100755 log.txt
mode change 100644 => 100755 makeall.bat
mode change 100644 => 100755 makeall.sh
mode change 100644 => 100755 makeinstall.sh
mode change 100644 => 100755 makeoemdnldbin.sh
mode change 100644 => 100755 makepackagebin.sh
mode change 100644 => 100755 namedc/Jamfile
mode change 100644 => 100755 namedc/License.txt
mode change 100644 => 100755 namedc/afiles
mode change 100644 => 100755 namedc/namedc.c
mode change 100644 => 100755 namedc/namedc.h
mode change 100644 => 100755 namedc/txt2iccnc.c
mode change 100644 => 100755 notes.txt
mode change 100644 => 100755 numlib/Jamfile
mode change 100644 => 100755 numlib/LUtest.c
mode change 100644 => 100755 numlib/License.txt
mode change 100644 => 100755 numlib/Readme.txt
mode change 100644 => 100755 numlib/aatree.c
mode change 100644 => 100755 numlib/aatree.h
mode change 100644 => 100755 numlib/afiles
mode change 100644 => 100755 numlib/dhsx.c
mode change 100644 => 100755 numlib/dhsx.h
mode change 100644 => 100755 numlib/dnsq.c
mode change 100644 => 100755 numlib/dnsq.h
mode change 100644 => 100755 numlib/dnsqtest.c
mode change 100644 => 100755 numlib/ludecomp.c
mode change 100644 => 100755 numlib/ludecomp.h
mode change 100644 => 100755 numlib/numlib.h
mode change 100644 => 100755 numlib/numsup.c
mode change 100644 => 100755 numlib/numsup.h
mode change 100644 => 100755 numlib/powell.c
mode change 100644 => 100755 numlib/powell.h
create mode 100755 numlib/qptest.c
create mode 100755 numlib/quadprog.c
create mode 100755 numlib/quadprog.h
mode change 100644 => 100755 numlib/rand.c
mode change 100644 => 100755 numlib/rand.h
mode change 100644 => 100755 numlib/sobol.c
mode change 100644 => 100755 numlib/sobol.h
mode change 100644 => 100755 numlib/soboltest.c
mode change 100644 => 100755 numlib/svd.c
mode change 100644 => 100755 numlib/svd.h
mode change 100644 => 100755 numlib/svdtest.c
mode change 100644 => 100755 numlib/tdhsx.c
mode change 100644 => 100755 numlib/tpowell.c
mode change 100644 => 100755 numlib/ui.c
mode change 100644 => 100755 numlib/ui.h
create mode 100755 numlib/varmet.c
create mode 100755 numlib/varmet.h
mode change 100644 => 100755 numlib/zbrent.c
mode change 100644 => 100755 numlib/zbrent.h
mode change 100644 => 100755 numlib/zbrenttest.c
mode change 100644 => 100755 plot/Imakefile
mode change 100644 => 100755 plot/Jamfile
mode change 100644 => 100755 plot/License.txt
mode change 100644 => 100755 plot/Readme.txt
mode change 100644 => 100755 plot/X3DOM_LICENSE.txt
mode change 100644 => 100755 plot/afiles
mode change 100644 => 100755 plot/plot.c
mode change 100644 => 100755 plot/plot.h
mode change 100644 => 100755 plot/vrml.c
mode change 100644 => 100755 plot/vrml.h
mode change 100644 => 100755 plot/x3dom.css
mode change 100644 => 100755 plot/x3dom.css.h
mode change 100644 => 100755 plot/x3dom.js
mode change 100644 => 100755 plot/x3dom.js.h
mode change 100644 => 100755 profile/applycal.c
mode change 100644 => 100755 profile/cb2ti3.c
mode change 100644 => 100755 profile/colprof.c
mode change 100644 => 100755 profile/colverify.c
mode change 100644 => 100755 profile/invprofcheck.c
mode change 100644 => 100755 profile/kodak2ti3.c
mode change 100644 => 100755 profile/ls2ti3.c
mode change 100644 => 100755 profile/mppcheck.c
mode change 100644 => 100755 profile/mppprof.c
mode change 100644 => 100755 profile/printcal.c
mode change 100644 => 100755 profile/prof.h
mode change 100644 => 100755 profile/profcheck.c
mode change 100644 => 100755 profile/profin.c
mode change 100644 => 100755 profile/profout.c
mode change 100644 => 100755 profile/simpprof.c
mode change 100644 => 100755 profile/splitti3.c
mode change 100644 => 100755 profile/txt2ti3.c
mode change 100644 => 100755 ref/3dap5k.sp
mode change 100644 => 100755 ref/CIE_C.sp
mode change 100644 => 100755 ref/CMP_DT_003.cht
mode change 100644 => 100755 ref/CMP_Digital_Target-4.cht
mode change 100644 => 100755 ref/CMP_Digital_Target-4.cie
mode change 100644 => 100755 ref/CMP_Digital_Target-4.ti2
mode change 100644 => 100755 ref/CMP_Digital_Target-7.cht
mode change 100644 => 100755 ref/CRT.ccss
mode change 100644 => 100755 ref/ClayRGB1998.icm
mode change 100644 => 100755 ref/ColorChecker.cht
mode change 100644 => 100755 ref/ColorChecker.cie
mode change 100644 => 100755 ref/ColorChecker.ti2
mode change 100644 => 100755 ref/ColorCheckerDC.cht
mode change 100644 => 100755 ref/ColorCheckerDC.ti2
mode change 100644 => 100755 ref/ColorCheckerPassport.cht
mode change 100644 => 100755 ref/ColorCheckerPassport.cie
mode change 100644 => 100755 ref/ColorCheckerSG.cht
mode change 100644 => 100755 ref/ColorCheckerSG.ti2
mode change 100644 => 100755 ref/D50_0.0.sp
mode change 100644 => 100755 ref/D50_0.1.sp
mode change 100644 => 100755 ref/D50_0.3.sp
mode change 100644 => 100755 ref/D50_0.5.sp
mode change 100644 => 100755 ref/D50_0.7.sp
mode change 100644 => 100755 ref/D50_1.0.sp
mode change 100644 => 100755 ref/D50_1.2.sp
mode change 100644 => 100755 ref/D50_1.5.sp
mode change 100644 => 100755 ref/D50_1.7.sp
mode change 100644 => 100755 ref/D50_2.0.sp
mode change 100644 => 100755 ref/D50_2.5.sp
mode change 100644 => 100755 ref/D50_3.0.sp
mode change 100644 => 100755 ref/EBU3213_PAL.icm
mode change 100644 => 100755 ref/ECI2002.ti2
mode change 100644 => 100755 ref/ECI2002R.ti2
mode change 100644 => 100755 ref/F1.sp
mode change 100644 => 100755 ref/F5.sp
mode change 100644 => 100755 ref/F8.sp
mode change 100644 => 100755 ref/FograStrip2.ti1
mode change 100644 => 100755 ref/FograStrip2_2.ti2
mode change 100644 => 100755 ref/FograStrip3.ti1
mode change 100644 => 100755 ref/FograStrip3_3.ti2
mode change 100644 => 100755 ref/GTIPlus.sp
mode change 100644 => 100755 ref/Hutchcolor.cht
mode change 100644 => 100755 ref/LaserSoftDCPro.cht
mode change 100644 => 100755 ref/License.txt
mode change 100644 => 100755 ref/Office.sp
mode change 100644 => 100755 ref/ProPhoto.icm
mode change 100644 => 100755 ref/ProPhotoLin.icm
mode change 100644 => 100755 ref/QPcard_201.cht
mode change 100644 => 100755 ref/QPcard_201.cie
mode change 100644 => 100755 ref/QPcard_202.cht
mode change 100644 => 100755 ref/QPcard_202.cie
mode change 100644 => 100755 ref/ReadMe.txt
mode change 100644 => 100755 ref/Rec2020.icm
mode change 100644 => 100755 ref/Rec709.icm
mode change 100644 => 100755 ref/SMPTE431_P3.icm
mode change 100644 => 100755 ref/SMPTE_RP145_NTSC.icm
mode change 100644 => 100755 ref/SOtele.sp
mode change 100644 => 100755 ref/SpyderChecker.cht
mode change 100644 => 100755 ref/SpyderChecker.cie
mode change 100644 => 100755 ref/SpyderChecker24.cht
mode change 100644 => 100755 ref/SpyderChecker24.cie
create mode 100644 ref/StandardObs2deg.cmf
mode change 100644 => 100755 ref/Trulux.sp
mode change 100644 => 100755 ref/TruluxPlus.sp
mode change 100644 => 100755 ref/afiles
mode change 100644 => 100755 ref/ccxx.ti1
mode change 100644 => 100755 ref/cmyk.icm
mode change 100644 => 100755 ref/example.sp
mode change 100644 => 100755 ref/example121.sp
mode change 100644 => 100755 ref/i1_RGB_Scan_1.4.cht
mode change 100644 => 100755 ref/i1_RGB_Scan_1.4.ti2
mode change 100644 => 100755 ref/it8.cht
mode change 100644 => 100755 ref/lab2lab.icm
mode change 100644 => 100755 ref/linear.cal
mode change 100644 => 100755 ref/sRGB.icm
mode change 100644 => 100755 ref/strange.cal
mode change 100644 => 100755 render/Jamfile
mode change 100644 => 100755 render/License.txt
mode change 100644 => 100755 render/Readme.txt
mode change 100644 => 100755 render/afiles
mode change 100644 => 100755 render/makecharts.ksh
mode change 100644 => 100755 render/render.c
mode change 100644 => 100755 render/render.h
mode change 100644 => 100755 render/screens.h
mode change 100644 => 100755 render/thscreen.c
mode change 100644 => 100755 render/thscreen.h
mode change 100644 => 100755 render/timage.c
mode change 100644 => 100755 rspl/c1.c
mode change 100644 => 100755 rspl/c1df.c
mode change 100644 => 100755 rspl/cw1.c
mode change 100644 => 100755 rspl/cw3.c
mode change 100644 => 100755 rspl/gam.c
mode change 100644 => 100755 rspl/gam.h
mode change 100644 => 100755 rspl/mlbs.c
mode change 100644 => 100755 rspl/mlbs.h
mode change 100644 => 100755 rspl/opt.c
mode change 100644 => 100755 rspl/rev.c
mode change 100644 => 100755 rspl/rev.h
mode change 100644 => 100755 rspl/revbench.c
mode change 100644 => 100755 rspl/rspl.c
mode change 100644 => 100755 rspl/rspl.h
mode change 100644 => 100755 rspl/rspl1.c
mode change 100644 => 100755 rspl/rspl1.h
mode change 100644 => 100755 rspl/rspl_imp.h
mode change 100644 => 100755 rspl/scat.c
mode change 100644 => 100755 rspl/scat2.c
mode change 100644 => 100755 rspl/sm1.c
mode change 100644 => 100755 rspl/sm2.c
mode change 100644 => 100755 rspl/sm3.c
mode change 100644 => 100755 rspl/smtmpp.c
mode change 100644 => 100755 rspl/smtnd.c
mode change 100644 => 100755 rspl/spline.c
mode change 100644 => 100755 rspl/stest.c
mode change 100644 => 100755 rspl/t2d.c
mode change 100644 => 100755 rspl/t2ddf.c
mode change 100644 => 100755 rspl/t3d.c
mode change 100644 => 100755 rspl/t3ddf.c
mode change 100644 => 100755 rspl/tnd.c
mode change 100644 => 100755 rspl/trnd.c
mode change 100644 => 100755 scanin/CMP_DT_003.cht
mode change 100644 => 100755 scanin/CMP_Digital_Target-4.cht
mode change 100644 => 100755 scanin/CMP_Digital_Target-4.cie
mode change 100644 => 100755 scanin/CMP_Digital_Target-4.ti2
mode change 100644 => 100755 scanin/CMP_Digital_Target-7.cht
mode change 100644 => 100755 scanin/ColorChecker.cht
mode change 100644 => 100755 scanin/ColorChecker.cie
mode change 100644 => 100755 scanin/ColorCheckerDC.cht
mode change 100644 => 100755 scanin/ColorCheckerDC.ti2
create mode 100755 scanin/ColorCheckerHalfPassport.cht
create mode 100755 scanin/ColorCheckerHalfPassport.cie
mode change 100644 => 100755 scanin/ColorCheckerPassport.cht
mode change 100644 => 100755 scanin/ColorCheckerPassport.cie
mode change 100644 => 100755 scanin/ColorCheckerSG.cht
mode change 100644 => 100755 scanin/ColorCheckerSG.ti2
mode change 100644 => 100755 scanin/Hutchcolor.cht
mode change 100644 => 100755 scanin/Jamfile
mode change 100644 => 100755 scanin/LaserSoftDCPro.cht
mode change 100644 => 100755 scanin/License.txt
mode change 100644 => 100755 scanin/QPcard_201.cht
mode change 100644 => 100755 scanin/QPcard_201.cie
mode change 100644 => 100755 scanin/QPcard_202.cht
mode change 100644 => 100755 scanin/QPcard_202.cie
mode change 100644 => 100755 scanin/Readme.txt
mode change 100644 => 100755 scanin/SpyderChecker.cht
mode change 100644 => 100755 scanin/SpyderChecker.cie
mode change 100644 => 100755 scanin/SpyderChecker24.cht
mode change 100644 => 100755 scanin/SpyderChecker24.cie
mode change 100644 => 100755 scanin/afiles
mode change 100644 => 100755 scanin/i1_RGB_Scan_1.4.cht
mode change 100644 => 100755 scanin/it8.cht
mode change 100644 => 100755 scanin/scanin.c
mode change 100644 => 100755 scanin/scanrd.c
mode change 100644 => 100755 scanin/scanrd.h
mode change 100644 => 100755 scanin/scanrd_.h
mode change 100644 => 100755 spectro/IntsLib_Readme.txt
mode change 100644 => 100755 spectro/Jamfile
mode change 100644 => 100755 spectro/License.txt
mode change 100644 => 100755 spectro/License2.txt
mode change 100644 => 100755 spectro/License3.txt
mode change 100644 => 100755 spectro/LzmaDec.c
mode change 100644 => 100755 spectro/LzmaDec.h
mode change 100644 => 100755 spectro/LzmaTypes.h
mode change 100644 => 100755 spectro/Makefile.OSX
mode change 100644 => 100755 spectro/Makefile.SA
mode change 100644 => 100755 spectro/Makefile.UNIX
mode change 100644 => 100755 spectro/Makefile.WNT
mode change 100644 => 100755 spectro/Readme.txt
mode change 100644 => 100755 spectro/SOtele.sp
mode change 100644 => 100755 spectro/afiles
mode change 100644 => 100755 spectro/aglob.c
mode change 100644 => 100755 spectro/aglob.h
mode change 100644 => 100755 spectro/average.c
mode change 100644 => 100755 spectro/base64.c
mode change 100644 => 100755 spectro/base64.h
mode change 100644 => 100755 spectro/ccwin.c
mode change 100644 => 100755 spectro/ccwin.h
mode change 100644 => 100755 spectro/ccxx.ti1
mode change 100644 => 100755 spectro/ccxxmake.c
mode change 100644 => 100755 spectro/chartread.c
mode change 100644 => 100755 spectro/colorhug.c
mode change 100644 => 100755 spectro/colorhug.h
mode change 100644 => 100755 spectro/conv.c
mode change 100644 => 100755 spectro/conv.h
mode change 100644 => 100755 spectro/cubecal.h
mode change 100644 => 100755 spectro/dev.h
mode change 100644 => 100755 spectro/dispcal.c
mode change 100644 => 100755 spectro/dispread.c
mode change 100644 => 100755 spectro/dispsup.c
mode change 100644 => 100755 spectro/dispsup.h
mode change 100644 => 100755 spectro/disptechs.c
mode change 100644 => 100755 spectro/disptechs.h
mode change 100644 => 100755 spectro/dispwin.c
mode change 100644 => 100755 spectro/dispwin.h
mode change 100644 => 100755 spectro/dtp20.c
mode change 100644 => 100755 spectro/dtp20.h
mode change 100644 => 100755 spectro/dtp22.c
mode change 100644 => 100755 spectro/dtp22.h
mode change 100644 => 100755 spectro/dtp41.c
mode change 100644 => 100755 spectro/dtp41.h
mode change 100644 => 100755 spectro/dtp51.c
mode change 100644 => 100755 spectro/dtp51.h
mode change 100644 => 100755 spectro/dtp92.c
mode change 100644 => 100755 spectro/dtp92.h
mode change 100644 => 100755 spectro/ex1.c
mode change 100644 => 100755 spectro/ex1.h
mode change 100644 => 100755 spectro/fakeread.c
mode change 100644 => 100755 spectro/hcfr.c
mode change 100644 => 100755 spectro/hcfr.h
mode change 100644 => 100755 spectro/hidio.c
mode change 100644 => 100755 spectro/hidio.h
mode change 100644 => 100755 spectro/huey.c
mode change 100644 => 100755 spectro/huey.h
mode change 100644 => 100755 spectro/i1d3.c
mode change 100644 => 100755 spectro/i1d3.h
mode change 100644 => 100755 spectro/i1disp.c
mode change 100644 => 100755 spectro/i1disp.h
mode change 100644 => 100755 spectro/i1pro.c
mode change 100644 => 100755 spectro/i1pro.h
mode change 100644 => 100755 spectro/i1pro_imp.c
mode change 100644 => 100755 spectro/i1pro_imp.h
mode change 100644 => 100755 spectro/icoms.c
mode change 100644 => 100755 spectro/icoms.h
mode change 100644 => 100755 spectro/icoms_nt.c
mode change 100644 => 100755 spectro/icoms_ux.c
mode change 100644 => 100755 spectro/ifiles
mode change 100644 => 100755 spectro/illumread.c
mode change 100644 => 100755 spectro/inflate.c
mode change 100644 => 100755 spectro/inst.c
mode change 100644 => 100755 spectro/inst.h
mode change 100644 => 100755 spectro/instappsup.c
mode change 100644 => 100755 spectro/instappsup.h
mode change 100644 => 100755 spectro/instlib.ksh
mode change 100644 => 100755 spectro/instlib.txt
mode change 100644 => 100755 spectro/insttypeinst.h
mode change 100644 => 100755 spectro/insttypes.c
mode change 100644 => 100755 spectro/insttypes.h
mode change 100644 => 100755 spectro/iusb.h
mode change 100644 => 100755 spectro/kleink10.c
mode change 100644 => 100755 spectro/kleink10.h
mode change 100644 => 100755 spectro/linear.cal
mode change 100644 => 100755 spectro/linear.sp
mode change 100644 => 100755 spectro/madvrwin.c
mode change 100644 => 100755 spectro/madvrwin.h
mode change 100644 => 100755 spectro/mongoose.c
mode change 100644 => 100755 spectro/mongoose.h
mode change 100644 => 100755 spectro/munki.c
mode change 100644 => 100755 spectro/munki.h
mode change 100644 => 100755 spectro/munki_imp.c
mode change 100644 => 100755 spectro/munki_imp.h
mode change 100644 => 100755 spectro/oemarch.c
mode change 100644 => 100755 spectro/oemarch.h
mode change 100644 => 100755 spectro/oeminst.c
mode change 100644 => 100755 spectro/pollem.c
mode change 100644 => 100755 spectro/pollem.h
mode change 100644 => 100755 spectro/rspec.c
mode change 100644 => 100755 spectro/rspec.h
mode change 100644 => 100755 spectro/sa_conv.c
mode change 100644 => 100755 spectro/sa_conv.h
mode change 100644 => 100755 spectro/smcube.c
mode change 100644 => 100755 spectro/smcube.h
mode change 100644 => 100755 spectro/spec2cie.c
mode change 100644 => 100755 spectro/specbos.c
mode change 100644 => 100755 spectro/specbos.h
mode change 100644 => 100755 spectro/spotread.c
mode change 100644 => 100755 spectro/spyd2.c
mode change 100644 => 100755 spectro/spyd2.h
mode change 100644 => 100755 spectro/ss.c
mode change 100644 => 100755 spectro/ss.h
mode change 100644 => 100755 spectro/ss_imp.c
mode change 100644 => 100755 spectro/ss_imp.h
mode change 100644 => 100755 spectro/strange.cal
mode change 100644 => 100755 spectro/synthcal.c
mode change 100644 => 100755 spectro/synthread.c
mode change 100644 => 100755 spectro/usbio.c
mode change 100644 => 100755 spectro/usbio.h
mode change 100644 => 100755 spectro/usbio_bsd.c
mode change 100644 => 100755 spectro/usbio_lx.c
mode change 100644 => 100755 spectro/usbio_nt.c
mode change 100644 => 100755 spectro/usbio_ox.c
mode change 100644 => 100755 spectro/vinflate.c
create mode 100755 spectro/vtpglut.c
create mode 100755 spectro/vtpglut.h
create mode 100755 spectro/vtpgluttypes.h
mode change 100644 => 100755 spectro/webwin.c
mode change 100644 => 100755 spectro/webwin.h
mode change 100644 => 100755 spectro/xdg_bds.c
mode change 100644 => 100755 spectro/xdg_bds.h
mode change 100644 => 100755 spectro/xrga.c
mode change 100644 => 100755 spectro/xrga.h
mode change 100644 => 100755 target/ColorChecker.ti2
mode change 100644 => 100755 target/ECI2002.ti2
mode change 100644 => 100755 target/ECI2002R.ti2
mode change 100644 => 100755 target/FograStrip2.ti1
mode change 100644 => 100755 target/FograStrip2_2.ti2
mode change 100644 => 100755 target/FograStrip3.ti1
mode change 100644 => 100755 target/FograStrip3_3.ti2
mode change 100644 => 100755 target/Jamfile
mode change 100644 => 100755 target/License.txt
mode change 100644 => 100755 target/Readme.txt
mode change 100644 => 100755 target/afiles
mode change 100644 => 100755 target/alphix.c
mode change 100644 => 100755 target/alphix.h
mode change 100644 => 100755 target/filmtarg.c
mode change 100644 => 100755 target/i1_RGB_Scan_1.4.ti2
mode change 100644 => 100755 target/ifarp.c
mode change 100644 => 100755 target/ifarp.h
mode change 100644 => 100755 target/ofps.c
mode change 100644 => 100755 target/ofps.h
mode change 100644 => 100755 target/ppoint.c
mode change 100644 => 100755 target/ppoint.h
mode change 100644 => 100755 target/prand.c
mode change 100644 => 100755 target/prand.h
mode change 100644 => 100755 target/printtarg.c
mode change 100644 => 100755 target/randix.c
mode change 100644 => 100755 target/randix.h
mode change 100644 => 100755 target/simdlat.c
mode change 100644 => 100755 target/simdlat.h
mode change 100644 => 100755 target/simplat.c
mode change 100644 => 100755 target/simplat.h
mode change 100644 => 100755 target/targen.c
mode change 100644 => 100755 target/targen.h
mode change 100644 => 100755 ttbd.txt
mode change 100644 => 100755 tweak/Jamfile
mode change 100644 => 100755 tweak/License.txt
mode change 100644 => 100755 tweak/Readme.txt
mode change 100644 => 100755 tweak/afiles
mode change 100644 => 100755 tweak/refine.c
mode change 100644 => 100755 ucmm/Jamfile
mode change 100644 => 100755 ucmm/afiles
mode change 100644 => 100755 ucmm/ucmm.c
mode change 100644 => 100755 ucmm/ucmm.h
mode change 100644 => 100755 usb/45-Argyll.rules
mode change 100644 => 100755 usb/55-Argyll.rules
mode change 100644 => 100755 usb/Argyll
mode change 100644 => 100755 usb/Argyll.kext/Info.plist
mode change 100644 => 100755 usb/Argyll.usermap
mode change 100644 => 100755 usb/ArgyllCMS.cat
mode change 100644 => 100755 usb/ArgyllCMS.inf
mode change 100644 => 100755 usb/ArgyllCMS.inf.d
mode change 100644 => 100755 usb/ArgyllCMS.inf.t
mode change 100644 => 100755 usb/ArgyllCMS_x64.cat
mode change 100644 => 100755 usb/Jamfile
mode change 100644 => 100755 usb/afiles
mode change 100644 => 100755 usb/binfiles.lx
mode change 100644 => 100755 usb/binfiles.msw
mode change 100644 => 100755 usb/binfiles.osx
mode change 100644 => 100755 usb/driver/AUTHORS.txt
mode change 100644 => 100755 usb/driver/COPYING_GPL.txt
mode change 100644 => 100755 usb/driver/LICENSE.txt
mode change 100644 => 100755 usb/driver/Makefile
mode change 100644 => 100755 usb/driver/README.txt
mode change 100644 => 100755 usb/driver/abort_endpoint.c
mode change 100644 => 100755 usb/driver/claim_interface.c
mode change 100644 => 100755 usb/driver/clear_feature.c
mode change 100644 => 100755 usb/driver/dispatch.c
mode change 100644 => 100755 usb/driver/driver_api.h
mode change 100644 => 100755 usb/driver/driver_debug.c
mode change 100644 => 100755 usb/driver/driver_debug.h
mode change 100644 => 100755 usb/driver/driver_registry.c
mode change 100644 => 100755 usb/driver/get_configuration.c
mode change 100644 => 100755 usb/driver/get_descriptor.c
mode change 100644 => 100755 usb/driver/get_interface.c
mode change 100644 => 100755 usb/driver/get_status.c
mode change 100644 => 100755 usb/driver/ioctl.c
mode change 100644 => 100755 usb/driver/libusb-win32-README-1.2.6.0.txt
mode change 100644 => 100755 usb/driver/libusb_driver.c
mode change 100644 => 100755 usb/driver/libusb_driver.h
mode change 100644 => 100755 usb/driver/libusb_driver_rc.rc
mode change 100644 => 100755 usb/driver/lusb_defdi_guids.h
mode change 100644 => 100755 usb/driver/pnp.c
mode change 100644 => 100755 usb/driver/power.c
mode change 100644 => 100755 usb/driver/release_interface.c
mode change 100644 => 100755 usb/driver/reset_device.c
mode change 100644 => 100755 usb/driver/reset_endpoint.c
mode change 100644 => 100755 usb/driver/set_configuration.c
mode change 100644 => 100755 usb/driver/set_descriptor.c
mode change 100644 => 100755 usb/driver/set_feature.c
mode change 100644 => 100755 usb/driver/set_interface.c
mode change 100644 => 100755 usb/driver/transfer.c
mode change 100644 => 100755 usb/driver/usbd.def
mode change 100644 => 100755 usb/driver/usbdlib_gcc.h
mode change 100644 => 100755 usb/driver/vendor_request.c
mode change 100644 => 100755 usb/install_kext.sh
mode change 100644 => 100755 xicc/Jamfile
mode change 100644 => 100755 xicc/License.txt
mode change 100644 => 100755 xicc/Readme.txt
mode change 100644 => 100755 xicc/afiles
mode change 100644 => 100755 xicc/bt1886.c
mode change 100644 => 100755 xicc/bt1886.h
mode change 100644 => 100755 xicc/cam02.c
mode change 100644 => 100755 xicc/cam02.h
mode change 100644 => 100755 xicc/cam02plot.c
mode change 100644 => 100755 xicc/cam02ref.h
mode change 100644 => 100755 xicc/cam02test.c
mode change 100644 => 100755 xicc/cam97s3.c
mode change 100644 => 100755 xicc/cam97s3.h
mode change 100644 => 100755 xicc/cam97test.c
mode change 100644 => 100755 xicc/ccmx.c
mode change 100644 => 100755 xicc/ccmx.h
mode change 100644 => 100755 xicc/ccss.c
mode change 100644 => 100755 xicc/ccss.h
mode change 100644 => 100755 xicc/ccttest.c
mode change 100644 => 100755 xicc/cgatsplot.c
mode change 100644 => 100755 xicc/cv.c
mode change 100644 => 100755 xicc/cvtest.c
mode change 100644 => 100755 xicc/example.sp
mode change 100644 => 100755 xicc/extracticc.c
mode change 100644 => 100755 xicc/extractttag.c
mode change 100644 => 100755 xicc/fakeCMY.c
mode change 100644 => 100755 xicc/fbview.c
mode change 100644 => 100755 xicc/iccgamut.c
mode change 100644 => 100755 xicc/iccjpeg.c
mode change 100644 => 100755 xicc/iccjpeg.h
mode change 100644 => 100755 xicc/icheck.c
mode change 100644 => 100755 xicc/monctest.c
mode change 100644 => 100755 xicc/moncurve.c
mode change 100644 => 100755 xicc/moncurve.h
mode change 100644 => 100755 xicc/mpp.c
mode change 100644 => 100755 xicc/mpp.h
mode change 100644 => 100755 xicc/mpplu.c
mode change 100644 => 100755 xicc/revfix.c
mode change 100644 => 100755 xicc/specplot.c
mode change 100644 => 100755 xicc/specsubsamp.c
mode change 100644 => 100755 xicc/spectest.c
mode change 100644 => 100755 xicc/spectest2.c
mode change 100644 => 100755 xicc/tiffgamut.c
mode change 100644 => 100755 xicc/tiffgmts.c
mode change 100644 => 100755 xicc/transplot.c
mode change 100644 => 100755 xicc/xcal.c
mode change 100644 => 100755 xicc/xcal.h
mode change 100644 => 100755 xicc/xcam.c
mode change 100644 => 100755 xicc/xcam.h
mode change 100644 => 100755 xicc/xcolorants.c
mode change 100644 => 100755 xicc/xcolorants.h
mode change 100644 => 100755 xicc/xcolorantslu.c
mode change 100644 => 100755 xicc/xdevlin.c
mode change 100644 => 100755 xicc/xdevlin.h
mode change 100644 => 100755 xicc/xdgb.c
mode change 100644 => 100755 xicc/xdgb.h
mode change 100644 => 100755 xicc/xfbview.c
mode change 100644 => 100755 xicc/xfit.c
mode change 100644 => 100755 xicc/xfit.h
mode change 100644 => 100755 xicc/xicc.c
mode change 100644 => 100755 xicc/xicc.h
mode change 100644 => 100755 xicc/xicclu.c
mode change 100644 => 100755 xicc/xlut.c
mode change 100644 => 100755 xicc/xlutfix.c
mode change 100644 => 100755 xicc/xmatrix.c
mode change 100644 => 100755 xicc/xmono.c
mode change 100644 => 100755 xicc/xspect.c
mode change 100644 => 100755 xicc/xspect.h
mode change 100644 => 100755 xicc/xutils.c
mode change 100644 => 100755 xicc/xutils.h
mode change 100644 => 100755 xml/ANNOUNCEMENT
mode change 100644 => 100755 xml/CHANGES
mode change 100644 => 100755 xml/COPYING
mode change 100644 => 100755 xml/Makefile.in
mode change 100644 => 100755 xml/README
mode change 100644 => 100755 xml/afiles
mode change 100644 => 100755 xml/config.h.in
mode change 100644 => 100755 xml/configure
mode change 100644 => 100755 xml/configure.in
mode change 100644 => 100755 xml/doc/Mini-XML.pdf
mode change 100644 => 100755 xml/install-sh
mode change 100644 => 100755 xml/mxml-attr.c
mode change 100644 => 100755 xml/mxml-config.h
mode change 100644 => 100755 xml/mxml-entity.c
mode change 100644 => 100755 xml/mxml-file.c
mode change 100644 => 100755 xml/mxml-get.c
mode change 100644 => 100755 xml/mxml-index.c
mode change 100644 => 100755 xml/mxml-node.c
mode change 100644 => 100755 xml/mxml-private.c
mode change 100644 => 100755 xml/mxml-private.h
mode change 100644 => 100755 xml/mxml-search.c
mode change 100644 => 100755 xml/mxml-set.c
mode change 100644 => 100755 xml/mxml-string.c
mode change 100644 => 100755 xml/mxml.h
mode change 100644 => 100755 xml/mxml.list.in
mode change 100644 => 100755 xml/mxml.pc.in
mode change 100644 => 100755 xml/mxml.spec
mode change 100644 => 100755 xml/mxml.xml
mode change 100644 => 100755 xml/mxmldoc.c
mode change 100644 => 100755 xml/test.xml
mode change 100644 => 100755 xml/testmxml.c
mode change 100644 => 100755 yajl/COPYING
mode change 100644 => 100755 yajl/ChangeLog
mode change 100644 => 100755 yajl/Jamfile
mode change 100644 => 100755 yajl/README
mode change 100644 => 100755 yajl/TODO
mode change 100644 => 100755 yajl/afiles
mode change 100644 => 100755 yajl/json_verify.c
mode change 100644 => 100755 yajl/yajl.c
mode change 100644 => 100755 yajl/yajl.h
mode change 100644 => 100755 yajl/yajl_alloc.c
mode change 100644 => 100755 yajl/yajl_alloc.h
mode change 100644 => 100755 yajl/yajl_buf.c
mode change 100644 => 100755 yajl/yajl_buf.h
mode change 100644 => 100755 yajl/yajl_bytestack.h
mode change 100644 => 100755 yajl/yajl_common.h
mode change 100644 => 100755 yajl/yajl_encode.c
mode change 100644 => 100755 yajl/yajl_encode.h
mode change 100644 => 100755 yajl/yajl_gen.c
mode change 100644 => 100755 yajl/yajl_gen.h
mode change 100644 => 100755 yajl/yajl_lex.c
mode change 100644 => 100755 yajl/yajl_lex.h
mode change 100644 => 100755 yajl/yajl_parse.h
mode change 100644 => 100755 yajl/yajl_parser.c
mode change 100644 => 100755 yajl/yajl_parser.h
mode change 100644 => 100755 yajl/yajl_test.c
mode change 100644 => 100755 yajl/yajl_tree.c
mode change 100644 => 100755 yajl/yajl_tree.h
mode change 100644 => 100755 yajl/yajl_version.c
mode change 100644 => 100755 yajl/yajl_version.h
mode change 100644 => 100755 ziparch.sh
diff --git a/Jambase b/Jambase
old mode 100644
new mode 100755
diff --git a/Jamfile b/Jamfile
old mode 100644
new mode 100755
diff --git a/Jamtop b/Jamtop
old mode 100644
new mode 100755
index 6864931..da2f9c5
--- a/Jamtop
+++ b/Jamtop
@@ -39,6 +39,16 @@ USE_USB = true ;
# enable dummy Demo Instrument (only if code is available)
USE_DEMOINST = true ;
+# enable Video Test Patch Generator and 3DLUT device support
+# (V2.0.0 and above)
+USE_VTPGLUT = false ;
+
+# enable Printer device support
+USE_PRINTER = false ;
+
+# enable CMF Measurement device support
+USE_CMFM = false ;
+
# Use ArgyllCMS version of libusb (deprecated - don't use)
USE_LIBUSB = false ;
@@ -110,11 +120,14 @@ if $(UNIX) {
}
}
if $(OS) = FREEBSD {
- LINKFLAGS += -L$(LibWinD) -g -lrt -lX11 -lXext -lXxf86vm -lXinerama -lXrandr -lXau -lXdmcp -lXss -lusb ;
+ LINKFLAGS += -g -lrt -lusb ;
+ GUILINKFLAGS += -L$(LibWinD) -g -lX11 -lXext -lXxf86vm -lXinerama -lXrandr -lXau -lXdmcp -lXss ;
} else if $(OS) = OPENBSD {
- LINKFLAGS += -L$(LibWinD) -g -lX11 -lXext -lXxf86vm -lXinerama -lXrandr -lXau -lXdmcp -lXss -L/usr/local/lib ;
+ LINKFLAGS += ;
+ GUILINKFLAGS += -L$(LibWinD) -g -lX11 -lXext -lXxf86vm -lXinerama -lXrandr -lXau -lXdmcp -lXss -L/usr/local/lib ;
} else {
- LINKFLAGS += -L$(LibWinD) -ldl -lrt -lX11 -lXext -lXxf86vm -lXinerama -lXrandr -lXau -lXdmcp -lXss ;
+ LINKFLAGS += -ldl -lrt ;
+ GUILINKFLAGS += -L$(LibWinD) -lX11 -lXext -lXxf86vm -lXinerama -lXrandr -lXau -lXdmcp -lXss ;
}
# HDRS += $(LibWinH) ;
}
diff --git a/License.txt b/License.txt
old mode 100644
new mode 100755
diff --git a/License2.txt b/License2.txt
old mode 100644
new mode 100755
diff --git a/License3.txt b/License3.txt
old mode 100644
new mode 100755
diff --git a/Makefile b/Makefile
old mode 100644
new mode 100755
diff --git a/Readme.txt b/Readme.txt
old mode 100644
new mode 100755
index f406d68..38c9ce1
--- a/Readme.txt
+++ b/Readme.txt
@@ -1,8 +1,8 @@
-Argyll CMS README file - Version 1.9.2
+Argyll CMS README file - Version 2.0.0
--------------------------------------
-Date: 17th October 2016
+Date: 17th November 2017
Author: Graeme Gill
Introduction
@@ -26,7 +26,7 @@ provided for each major tool, and a general guide to using the tools for
typical color management tasks is also available. A mailing list provides
support for more advanced usage.
-This is Version 1.9.2, a bug fix update to the last release V1.9.1.
+This is Version 2.0.0, a feature and bug fix update to the last major release V1.9.2.
The first public release of icclib was in November 1998,
and of Argyll was in October 2000. Code development commenced in 1995. See
Changes Summary for an overview of changes since the last release. Changes
diff --git a/adirs b/adirs
old mode 100644
new mode 100755
diff --git a/afiles b/afiles
old mode 100644
new mode 100755
diff --git a/binfiles b/binfiles
old mode 100644
new mode 100755
diff --git a/blddirs b/blddirs
old mode 100644
new mode 100755
diff --git a/ccast/Jamfile b/ccast/Jamfile
old mode 100644
new mode 100755
diff --git a/ccast/License.txt b/ccast/License.txt
old mode 100644
new mode 100755
diff --git a/ccast/Readme.txt b/ccast/Readme.txt
index 6823ba9..fc99019 100644
--- a/ccast/Readme.txt
+++ b/ccast/Readme.txt
@@ -3,10 +3,10 @@ rasters to the Google ChromeCast.
Hierarchy:
- cccast.c Top level actions & receive thread
- ccmes.c Message handling, uses probuf
+ ccast.c Top level actions & receive thread
+ ccmes.c Message handling, uses protobuf
chan/ protobuf encoding
ccpacket.c socket write/read
ccmdns.c MDNS sign on
- axTLS SSL/TLS library
+ axTLS Standalone SSL/TLS library
diff --git a/ccast/axTLS/Jamfile b/ccast/axTLS/Jamfile
old mode 100644
new mode 100755
index 9a8aff4..5466680
--- a/ccast/axTLS/Jamfile
+++ b/ccast/axTLS/Jamfile
@@ -13,7 +13,7 @@ if $(NT) {
}
}
-# tiff library
+# axTLS library
LIBSRCS =
aes.c
asn1.c
diff --git a/ccast/axTLS/aes.c b/ccast/axTLS/aes.c
old mode 100644
new mode 100755
diff --git a/ccast/axTLS/asn1.c b/ccast/axTLS/asn1.c
old mode 100644
new mode 100755
index b082275..b5e678e
--- a/ccast/axTLS/asn1.c
+++ b/ccast/axTLS/asn1.c
@@ -200,6 +200,40 @@ int asn1_get_private_key(const uint8_t *buf, int len, RSA_CTX **rsa_ctx)
return X509_OK;
}
+/**
+ * Read the modulus and public exponent of an RSA certificate.
+ */
+int asn1_get_public_key(const uint8_t *cert, int *offset, RSA_CTX **rsa_ctx)
+{
+ int ret = X509_NOT_OK, mod_len, pub_len;
+ uint8_t *modulus = NULL, *pub_exp = NULL;
+ int len;
+
+ /* Hmm. Not checking that the two ints are within the squence ... */
+ if ((len = asn1_next_obj(cert, offset, ASN1_SEQUENCE)) < 0)
+ goto end_pub_key;
+
+ if ((mod_len = asn1_get_int(cert, offset, &modulus)) <= 0) {
+ ret = X509_INVALID_PUB_KEY;
+ goto end_pub_key;
+ }
+ if ((pub_len = asn1_get_int(cert, offset, &pub_exp)) <= 0) {
+ free(modulus);
+ ret = X509_INVALID_PUB_KEY;
+ goto end_pub_key;
+ }
+
+ RSA_pub_key_new(rsa_ctx, modulus, mod_len, pub_exp, pub_len);
+
+ free(modulus);
+ free(pub_exp);
+
+ ret = X509_OK;
+
+end_pub_key:
+ return ret;
+}
+
/**
* Get the time of a certificate. Ignore hours/minutes/seconds.
*/
diff --git a/ccast/axTLS/axTLS_config.h b/ccast/axTLS/axTLS_config.h
old mode 100644
new mode 100755
diff --git a/ccast/axTLS/axTLS_version.h b/ccast/axTLS/axTLS_version.h
old mode 100644
new mode 100755
diff --git a/ccast/axTLS/bigint.c b/ccast/axTLS/bigint.c
old mode 100644
new mode 100755
diff --git a/ccast/axTLS/bigint.h b/ccast/axTLS/bigint.h
old mode 100644
new mode 100755
diff --git a/ccast/axTLS/bigint_impl.h b/ccast/axTLS/bigint_impl.h
old mode 100644
new mode 100755
diff --git a/ccast/axTLS/cert.h b/ccast/axTLS/cert.h
old mode 100644
new mode 100755
diff --git a/ccast/axTLS/crypto.h b/ccast/axTLS/crypto.h
old mode 100644
new mode 100755
index bf2c187..904000d
--- a/ccast/axTLS/crypto.h
+++ b/ccast/axTLS/crypto.h
@@ -204,6 +204,7 @@ void RSA_pub_key_new(RSA_CTX **rsa_ctx,
void RSA_free(RSA_CTX *ctx);
int RSA_decrypt(const RSA_CTX *ctx, const uint8_t *in_data, uint8_t *out_data,
int is_decryption);
+int RSA_decrypt2(const RSA_CTX *ctx, const uint8_t *in_data, uint8_t *out_data);
bigint *RSA_private(const RSA_CTX *c, bigint *bi_msg);
#if defined(CONFIG_SSL_CERT_VERIFICATION) || defined(CONFIG_SSL_GENERATE_X509_CERT)
bigint *RSA_sign_verify(BI_CTX *ctx, const uint8_t *sig, int sig_len,
diff --git a/ccast/axTLS/crypto_misc.c b/ccast/axTLS/crypto_misc.c
old mode 100644
new mode 100755
diff --git a/ccast/axTLS/crypto_misc.h b/ccast/axTLS/crypto_misc.h
old mode 100644
new mode 100755
index acb5c73..d1c843c
--- a/ccast/axTLS/crypto_misc.h
+++ b/ccast/axTLS/crypto_misc.h
@@ -55,6 +55,7 @@ extern "C" {
#define X509_VFY_ERROR_INVALID_CHAIN -7
#define X509_VFY_ERROR_UNSUPPORTED_DIGEST -8
#define X509_INVALID_PRIV_KEY -9
+#define X509_INVALID_PUB_KEY -10
/*
* The Distinguished Name
@@ -128,6 +129,7 @@ const char * x509_display_error(int error);
int get_asn1_length(const uint8_t *buf, int *offset);
int asn1_get_private_key(const uint8_t *buf, int len, RSA_CTX **rsa_ctx);
+int asn1_get_public_key(const uint8_t *cert, int *offset, RSA_CTX **rsa_ctx);
int asn1_next_obj(const uint8_t *buf, int *offset, int obj_type);
int asn1_skip_obj(const uint8_t *buf, int *offset, int obj_type);
int asn1_get_int(const uint8_t *buf, int *offset, uint8_t **object);
diff --git a/ccast/axTLS/gen_cert.c b/ccast/axTLS/gen_cert.c
old mode 100644
new mode 100755
diff --git a/ccast/axTLS/hmac.c b/ccast/axTLS/hmac.c
old mode 100644
new mode 100755
diff --git a/ccast/axTLS/loader.c b/ccast/axTLS/loader.c
old mode 100644
new mode 100755
diff --git a/ccast/axTLS/md2.c b/ccast/axTLS/md2.c
old mode 100644
new mode 100755
diff --git a/ccast/axTLS/md5.c b/ccast/axTLS/md5.c
old mode 100644
new mode 100755
diff --git a/ccast/axTLS/openssl.c b/ccast/axTLS/openssl.c
old mode 100644
new mode 100755
diff --git a/ccast/axTLS/os_int.h b/ccast/axTLS/os_int.h
old mode 100644
new mode 100755
diff --git a/ccast/axTLS/os_port.c b/ccast/axTLS/os_port.c
old mode 100644
new mode 100755
diff --git a/ccast/axTLS/os_port.h b/ccast/axTLS/os_port.h
old mode 100644
new mode 100755
diff --git a/ccast/axTLS/p12.c b/ccast/axTLS/p12.c
old mode 100644
new mode 100755
diff --git a/ccast/axTLS/private_key.h b/ccast/axTLS/private_key.h
old mode 100644
new mode 100755
diff --git a/ccast/axTLS/rc4.c b/ccast/axTLS/rc4.c
old mode 100644
new mode 100755
diff --git a/ccast/axTLS/rsa.c b/ccast/axTLS/rsa.c
old mode 100644
new mode 100755
index e707f2b..14948eb
--- a/ccast/axTLS/rsa.c
+++ b/ccast/axTLS/rsa.c
@@ -187,6 +187,50 @@ int RSA_decrypt(const RSA_CTX *ctx, const uint8_t *in_data,
return size ? size : -1;
}
+/**
+ * @brief Use PKCS1.5 for decryption.
+ * @param ctx [in] The context
+ * @param in_data [in] The data to encrypt
+ * @param out_data [out] The decrypted data.
+ * @return The number of bytes that were originally encrypted. -1 on error.
+ */
+int RSA_decrypt2(const RSA_CTX *ctx, const uint8_t *in_data, uint8_t *out_data)
+{
+ const int byte_size = ctx->num_octets;
+ int i, size;
+ bigint *decrypted_bi, *dat_bi;
+ uint8_t *block = (uint8_t *)malloc(byte_size);
+
+ /* decrypt */
+ dat_bi = bi_import(ctx->bi_ctx, in_data, byte_size);
+
+ decrypted_bi = RSA_public(ctx, dat_bi); /* Frees dat_bi and exponent ? */
+
+ /* convert to a normal block (frees decrypted_bi) */
+ bi_export(ctx->bi_ctx, decrypted_bi, block, byte_size);
+
+
+ /* We assume this is padded with "0001ff....ff00" */
+ i = 2;
+ while (block[i++] == 0xff && i < byte_size)
+ ;
+
+ /* Skip last 0x00 */
+ if (i < byte_size && block[i] == 0x00)
+ i++;
+
+ size = byte_size - i;
+
+ /* get only the bit we want */
+ if (size > 0) {
+ memcpy(out_data, &block[i], size);
+ }
+
+ free(block);
+
+ return size ? size : -1;
+}
+
/**
* Performs m = c^d mod n
*/
diff --git a/ccast/axTLS/sha1.c b/ccast/axTLS/sha1.c
old mode 100644
new mode 100755
diff --git a/ccast/axTLS/ssl.h b/ccast/axTLS/ssl.h
old mode 100644
new mode 100755
diff --git a/ccast/axTLS/temp b/ccast/axTLS/temp
old mode 100644
new mode 100755
diff --git a/ccast/axTLS/tls1.c b/ccast/axTLS/tls1.c
old mode 100644
new mode 100755
diff --git a/ccast/axTLS/tls1.h b/ccast/axTLS/tls1.h
old mode 100644
new mode 100755
diff --git a/ccast/axTLS/tls1_clnt.c b/ccast/axTLS/tls1_clnt.c
old mode 100644
new mode 100755
diff --git a/ccast/axTLS/tls1_svr.c b/ccast/axTLS/tls1_svr.c
old mode 100644
new mode 100755
diff --git a/ccast/axTLS/x509.c b/ccast/axTLS/x509.c
old mode 100644
new mode 100755
diff --git a/ccast/cast_channel.proto b/ccast/cast_channel.proto
old mode 100644
new mode 100755
diff --git a/ccast/ccast.c b/ccast/ccast.c
old mode 100644
new mode 100755
index 2a2c1a8..26a4dee
--- a/ccast/ccast.c
+++ b/ccast/ccast.c
@@ -71,8 +71,8 @@ static void check_json(char *mesbuf) {
/* Read messages. If they are ones we deal with, send a reply */
/* If they are anonomous (sessionId == 0), then ignore them */
-/* (Could save last known anonomous message if they prove useful) */
/* and if they are numbered, keep then in a sorted list. */
+/* (Could save last known anonomous message if they prove useful) */
static int cc_rec_thread(void *context) {
ccast *p = (ccast *)context;
diff --git a/ccast/ccast.h b/ccast/ccast.h
old mode 100644
new mode 100755
diff --git a/ccast/ccmdns.c b/ccast/ccmdns.c
old mode 100644
new mode 100755
index 1000db3..8fd7046
--- a/ccast/ccmdns.c
+++ b/ccast/ccmdns.c
@@ -130,10 +130,12 @@ typedef int SOCKET;
# define DBG(xxx) a1logd xxx ;
# define DBG2(xxx) a1logd xxx ;
# define DLEV 0
+# define DLEVP1 0
#else
# define DBG(xxx) ;
# define DBG2(xxx) a1logd xxx ;
# define DLEV 2
+# define DLEVP1 3
#endif /* DEBUG */
/* ================================================================ */
@@ -144,7 +146,7 @@ typedef int SOCKET;
#define SOURCE_PORT 5353
#define DESTINATION_PORT 5353
-#define BUFSIZE 1024
+#define BUFSIZE 2048
/* Various DNS defines */
#define DNS_CLASS_IN 0x0001
@@ -158,6 +160,25 @@ typedef int SOCKET;
#define DNS_TYPE_NSEC 47 /* DNS Next Secure Name */
+char *cctype2str(cctype typ) {
+ switch (typ) {
+ case cctyp_unkn:
+ return "Unknown";
+ case cctyp_1:
+ return "One";
+ case cctyp_2:
+ return "Two";
+ case cctyp_Audio:
+ return "Audio";
+ case cctyp_Ultra:
+ return "Ultra";
+ case cctyp_Other:
+ return "Other";
+ default:
+ return "Unexpected";
+ }
+}
+
#ifdef NEVER
/* Print out a V6 address in zero compresed form */
/* (It would be nice to add zero compression) */
@@ -201,20 +222,21 @@ static int init_mDNS() {
return 0;
}
-/* Setup the send socket */
+/* Setup the send and recieve socket */
/* Return nz on error */
-static int init_send_mDNS(SOCKET *psock) {
+static int init_socket_mDNS(SOCKET *psock) {
int nRet, nOptVal;
int off;
SOCKET sock;
struct sockaddr_in stSourceAddr;
+ struct ip_mreq stIpMreq;
- DBG((g_log,0,"init_send_mDNS() called\n"))
+ DBG((g_log,0,"init_socket_mDNS() called\n"))
/* get a datagram (UDP) socket */
sock = socket(PF_INET, SOCK_DGRAM, 0);
if (sock == INVALID_SOCKET) {
- DBG((g_log,0,"opening send UDP socked failed with %d\n",ERRNO))
+ DBG((g_log,0,"opening UDP socked failed with %d\n",ERRNO))
return 1;
}
@@ -234,7 +256,7 @@ static int init_send_mDNS(SOCKET *psock) {
{
int on = 1;
if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (const char *)&on, sizeof(on))) {
- DBG((g_log,0,"setsockopt(SO_REUSEADDR) failed with %d\n",ERRNO))
+ DBG((g_log,0,"setsockopt(SO_REUSEADDR) failed with %d\n",ERRNO))
closesocket(sock);
return 1;
}
@@ -272,6 +294,9 @@ static int init_send_mDNS(SOCKET *psock) {
return 1;
}
+ /* - - - - - - - */
+ /* Send setup */
+
/* disable loopback of multicast datagrams we send, since the
* default--according to Steve Deering--is to loopback all
* datagrams sent on any interface which is a member of the
@@ -306,13 +331,55 @@ static int init_send_mDNS(SOCKET *psock) {
if (psock != NULL)
*psock = sock;
- DBG((g_log,0,"init sending mDNS succeed\n",ERRNO))
+ /* - - - - - - - */
+ /* Recieve setup */
+
+ /* join the multicast group we want to receive datagrams from */
+ stIpMreq.imr_multiaddr.s_addr = inet_addr(DESTINATION_MCAST); /* group addr */
+ stIpMreq.imr_interface.s_addr = INADDR_ANY; /* use default */
+ nRet = setsockopt(sock, IPPROTO_IP, IP_ADD_MEMBERSHIP,
+ (char *)&stIpMreq, sizeof (struct ip_mreq));
+
+ if (nRet == SOCKET_ERROR) {
+ DBG((g_log,0,"registering for read events failed with %d\n",ERRNO))
+ closesocket(sock);
+ return 1;
+ }
+
+ /* Make this timeout after 100 msec second */
+#ifdef NT
+ {
+ DWORD tv;
+ tv = 100;
+ if (setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, (const char*)&tv, sizeof(tv)) < 0) {
+ DBG((g_log,0,"setsockopt timout failed with %d\n",ERRNO))
+ closesocket(sock);
+ return 1;
+ }
+ }
+#else
+ {
+ struct timeval tv;
+ tv.tv_sec = 0;
+ tv.tv_usec = 100 * 1000;
+ if (setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, (const char*)&tv, sizeof(tv)) < 0) {
+ DBG((g_log,0,"setsockopt timout failed with %d\n",ERRNO))
+ closesocket(sock);
+ return 1;
+ }
+ }
+#endif
+
+ if (psock != NULL)
+ *psock = sock;
+
+ DBG((g_log,0,"init mDNS socket succeed\n",ERRNO))
return 0;
}
-/* Send an mDNS quesry */
-/* on some platforms if we try to transmit & recieve at the same time */
+/* Send an mDNS query */
+/* On some platforms if we try to transmit & recieve at the same time (what ?) */
/* Return nz on error */
static int send_mDNS(SOCKET sock) {
int nRet;
@@ -360,7 +427,7 @@ static int send_mDNS(SOCKET sock) {
return 0;
}
-static int parse_dns(char **name, char **ip, ORD8 *buf, int size);
+static int parse_dns(char **name, char **ip, cctype *ptyp, int *pcaflags, ORD8 *buf, int size);
/* Free up what get_ccids returned */
void free_ccids(ccast_id **ids) {
@@ -376,135 +443,25 @@ void free_ccids(ccast_id **ids) {
}
}
-/* Spend the given time waiting for replies. */
-/* (Note than on MSWin this will be a minimum of 500msec) */
-/* Add any ChromeCast replies to the list. */
-/* return nz on error */
-static int init_receive_mDNS(SOCKET *psock) {
- int nRet;
- int off, size;
- struct sockaddr_in stSourceAddr;
- struct ip_mreq stIpMreq;
- SOCKET sock;
-
- DBG((g_log,0,"init_receive_mDNS() called\n"))
-
- /* get a datagram (UDP) socket */
- sock = socket(PF_INET, SOCK_DGRAM, 0);
- if (sock == INVALID_SOCKET) {
- DBG((g_log,0,"opening receive UDP socked failed with %d\n",ERRNO))
- return 1;
- }
-
- /* We can't receive from port 5353 if someone else is using it, */
- /* so set the SO_REUSEADDR option (which is enough for MSWin), */
- /* and SO_REUSEPORT for OS X and Linux */
- {
- int on = 1, off = 0;
- if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (const char *) &on, sizeof(on))) {
- DBG((g_log,0,"setsockopt(SO_REUSEADDR) failed with %d\n",ERRNO))
- closesocket(sock);
- return 1;
- }
-
- /* Need this to be able to open port on Unix like systems */
-#ifndef NT
-# ifndef SO_REUSEPORT
-# ifdef __APPLE__
-# define SO_REUSEPORT 0x0200
-# else /* Linux */
-# define SO_REUSEPORT 15
-# endif
-# endif
- if (setsockopt(sock, SOL_SOCKET, SO_REUSEPORT, (const char *)&on, sizeof(on))) {
- DBG((g_log,0,"setsockopt(SO_REUSEPORT) failed with %d\n",ERRNO))
- }
-#endif
- }
-
- /* init source address structure */
- stSourceAddr.sin_family = PF_INET;
- stSourceAddr.sin_port = htons(SOURCE_PORT);
- stSourceAddr.sin_addr.s_addr = INADDR_ANY;
-
- /*
- * Calling bind() is not required, but some implementations need it
- * before you can reference any multicast socket options
- * and in this case we must be on port 5353.
- */
- nRet = bind(sock, (struct sockaddr *)&stSourceAddr,
- sizeof(struct sockaddr));
- if (nRet == SOCKET_ERROR) {
- DBG((g_log,0,"bind failed with %d\n",ERRNO))
- closesocket(sock);
- return 1;
- }
-
- /* join the multicast group we want to receive datagrams from */
- stIpMreq.imr_multiaddr.s_addr = inet_addr(DESTINATION_MCAST); /* group addr */
- stIpMreq.imr_interface.s_addr = INADDR_ANY; /* use default */
- nRet = setsockopt(sock, IPPROTO_IP, IP_ADD_MEMBERSHIP,
- (char *)&stIpMreq, sizeof (struct ip_mreq));
-
- if (nRet == SOCKET_ERROR) {
- DBG((g_log,0,"registering for read events failed with %d\n",ERRNO))
- closesocket(sock);
- return 1;
- }
-
- /* Make this timeout after 100 msec second */
-#ifdef NT
- {
- DWORD tv;
- tv = 100;
- if (setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, (const char*)&tv, sizeof(tv)) < 0) {
- DBG((g_log,0,"setsockopt timout failed with %d\n",ERRNO))
- closesocket(sock);
- return 1;
- }
- }
-#else
- {
- struct timeval tv;
- tv.tv_sec = 0;
- tv.tv_usec = 100 * 1000;
- if (setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, (const char*)&tv, sizeof(tv)) < 0) {
- DBG((g_log,0,"setsockopt timout failed with %d\n",ERRNO))
- closesocket(sock);
- return 1;
- }
- }
-#endif
-
- if (psock != NULL)
- *psock = sock;
-
- return 0;
-}
-
/* Spend the given time waiting for replies. */
/* (Note than on MSWin this will be a minimum of 500msec) */
/* Add any ChromeCast replies to the list. */
/* return nz on error & free *ids */
-static int receive_mDNS(SOCKET sock, ccast_id ***ids, int emsec) {
- int nids = 0;
+static int receive_mDNS(SOCKET sock, ccast_id ***ids, int *nids, int emsec) {
unsigned int smsec;
unsigned int nSize;
int off, size;
ORD8 achInBuf[BUFSIZE];
struct sockaddr_in stSourceAddr;
- /* Count the number of current id's */
- if (*ids != NULL) {
- for (nids = 0; (*ids)[nids] != NULL; nids++)
- ;
- }
-
- DBG((g_log,0,"receive_mDNS() called with %d ids\n",nids))
+ DBG((g_log,0,"receive_mDNS() called with %d ids\n",*nids))
+ /* While there is still wait time */
for (smsec = msec_time(), emsec += smsec;msec_time() <= emsec;) {
int i;
char *name, *ip;
+ cctype typ;
+ int caflags; /* (We're not currently saving this) */
struct sockaddr stSockAddr;
/* Recv the available data */
@@ -514,75 +471,86 @@ static int receive_mDNS(SOCKET sock, ccast_id ***ids, int emsec) {
if (size == SOCKET_ERROR) {
if (ERRNO == UDP_SOCKET_TIMEOUT)
continue; /* Timeout */
- DBG((g_log,0,"recvfrom failed with %d\n",ERRNO))
+ DBG2((g_log,DLEV,"recvfrom failed with %d\n",ERRNO))
free_ccids(*ids);
*ids = NULL;
return 1;
}
- DBG((g_log,0,"Got mDNS message length %d bytes\n",size))
+
+ DBG2((g_log,DLEVP1,"Got mDNS message length %d bytes\n",size))
#ifdef DEBUG
adump_bytes(g_log, " ", achInBuf, 0, size);
#endif
- if (parse_dns(&name, &ip, achInBuf, size) != 0) {
+ if (parse_dns(&name, &ip, &typ, &caflags, achInBuf, size) != 0) {
DBG((g_log,0,"Failed to parse the reply\n"))
} else {
DBG((g_log,0,"Parsed reply OK\n"))
-//if (*pnids > 0) {
-// name = strdup("Argyll1234");
-// ip = strdup("10.0.0.129");
-//}
/* If we found an entry */
if (name != NULL && ip != NULL) {
- DBG((g_log,0,"Got a name '%s' & IP '%s'\n",name,ip))
- /* Check if it is a duplcate */
- for (i = 0; i < nids; i++) {
- if (strcmp((*ids)[i]->name, name) == 0
- && strcmp((*ids)[i]->ip, ip) == 0)
- break; /* yes */
- }
- if (i < nids) {
- DBG((g_log,0,"Duplicate\n"))
+ DBG((g_log,0,"Got a name '%s', IP '%s', type %s\n",name,ip, cctype2str(typ)))
+
+ /* Check if it is a Chromecast-Audio or Other */
+ if (typ == cctyp_Audio
+ || typ == cctyp_Other) {
+ DBG((g_log,0,"Ignoring Chromecast-Audio/Other\n"))
free(name);
free(ip);
+
} else {
- ccast_id **tids;
- if ((tids = realloc(*ids, (nids + 2) * sizeof(ccast_id *))) == NULL
- || (*ids = tids, (*ids)[nids] = malloc(sizeof(ccast_id)), (*ids)[nids]) == NULL) {
- DBG((g_log,0,"realloc/malloc fail\n"))
+
+ /* Check if it is a duplcate */
+ for (i = 0; i < *nids; i++) {
+ if (strcmp((*ids)[i]->name, name) == 0
+ && strcmp((*ids)[i]->ip, ip) == 0)
+ break; /* yes */
+ }
+ if (i < *nids) {
+ DBG((g_log,0,"Duplicate\n"))
free(name);
free(ip);
- free_ccids(*ids);
- *ids = NULL;
- return 1;
} else {
- DBG((g_log,0,"Adding entry\n"))
- (*ids)[nids]->name = name;
- (*ids)[nids]->ip = ip;
- (*ids)[++nids] = NULL; /* End marker */
+ ccast_id **tids;
+ if ((tids = realloc(*ids, (*nids + 2) * sizeof(ccast_id *))) == NULL
+ || (*ids = tids, (*ids)[*nids] = malloc(sizeof(ccast_id)), (*ids)[*nids]) == NULL) {
+ DBG((g_log,0,"realloc/malloc fail\n"))
+ free(name);
+ free(ip);
+ free_ccids(*ids);
+ *ids = NULL;
+ return 1;
+ } else {
+ DBG((g_log,0,"Adding entry\n"))
+ (*ids)[*nids]->name = name;
+ (*ids)[*nids]->ip = ip;
+ (*ids)[*nids]->typ = typ;
+ (*nids)++;
+ (*ids)[*nids] = NULL; /* End marker */
+ }
}
}
}
}
}
- DBG((g_log,0,"receive_mDNS() returning %d in list\n",nids))
+ DBG2((g_log,DLEVP1,"receive_mDNS() returning %d in list\n",*nids))
return 0;
}
/* ==================================================================== */
-/* Get a list of Chromecasts. Return NULL on error */
+/* Get a list of Video output capable Chromecasts. Return NULL on error */
/* Last pointer in array is NULL */
-/* Takes 1.0 second to return */
+/* Takes 1.5 second to return */
ccast_id **get_ccids() {
ccast_id **ids = NULL;
+ int nids = 0;
int i, j, k;
unsigned int smsec;
- int waittime = 100;
- SOCKET ssock, rsock;
+ int waittime = 200;
+ SOCKET sock;
DBG2((g_log,DLEV,"get_ccids: called\n"))
@@ -591,45 +559,38 @@ ccast_id **get_ccids() {
return NULL;
}
- if (init_send_mDNS(&ssock)) {
- DBG2((g_log,0,"get_ccids: init_send_mDNS() failed\n"))
- return NULL;
- }
-
- if (init_receive_mDNS(&rsock)) {
- DBG2((g_log,0,"get_ccids: init_receive_mDNS() failed\n"))
- closesocket(ssock);
+ if (init_socket_mDNS(&sock)) {
+ DBG2((g_log,0,"get_ccids: init_socket_mDNS() failed\n"))
return NULL;
}
smsec = msec_time();
/* Try a few times, with increasing response wait time */
- for (k = 1; ids == NULL && (msec_time() - smsec) < 1000; k++) {
+ for (k = 1;
+ ((msec_time() - smsec) < 700)
+ || (nids == 0 && (msec_time() - smsec) < 1600);
+ k++) {
DBG2((g_log,DLEV,"get_ccids: Sending mDNS query #%d:\n",k))
- if (send_mDNS(ssock)) {
+ if (send_mDNS(sock)) {
DBG2((g_log,0,"get_ccids: send_mDNS() #1 failed\n"))
- closesocket(ssock);
- closesocket(rsock);
+ closesocket(sock);
return NULL;
}
DBG2((g_log,DLEV,"get_ccids: Waiting for mDNS reply #%d:\n",k))
- if (receive_mDNS(rsock, &ids, waittime)) {
+ if (receive_mDNS(sock, &ids, &nids, waittime)) {
DBG2((g_log,0,"get_ccids: receive_mDNS() #%d failed\n",k))
- closesocket(ssock);
- closesocket(rsock);
+ closesocket(sock);
return NULL;
}
- if (ids != NULL)
- DBG2((g_log,DLEV,"get_ccids: Got reply\n"))
+ DBG2((g_log,DLEV,"get_ccids: have %d %s\n",nids, nids == 1 ? "reply" : "replies"))
- waittime *= 2;
+ if (waittime < 500)
+ waittime = 500;
}
-
- closesocket(ssock);
- closesocket(rsock);
+ closesocket(sock);
/* If no ChromCasts found, return an empty list */
if (ids == NULL) {
@@ -655,6 +616,7 @@ ccast_id **get_ccids() {
DBG2((g_log,DLEV," Entry %d:\n",i))
DBG2((g_log,DLEV," Name: %s\n",ids[i]->name))
DBG2((g_log,DLEV," IP: %s\n",ids[i]->ip))
+ DBG2((g_log,DLEV," Type: %s\n",cctype2str(ids[i]->typ)))
}
DBG2((g_log,DLEV,"get_ccids: Returning %d devices\n",i))
@@ -698,46 +660,66 @@ static int read_string_imp(char **rv, int *slen, ORD8 *buf, int off, int size, i
int len;
int d1 = 0;
-//printf("~1 read_string_imp called for off 0x%x rec %d\n",off,rec);
+ DBG((g_log,8,"read_string_imp called for off %d (0x%x) rec %d\n",off,off,rec));
- if (rec > 10) /* Too many recursions */
+ if (rec > 10) { /* Too many recursions */
+ DBG((g_log,8,"read_string_imp too many recursions\n"));
return -1; /* Error */
+ }
- if (off >= size)
+ if (off >= size) {
+ DBG((g_log,8,"read_string_imp off %d >= size %d\n",off,size));
return -1; /* Error */
+ }
for (;;) {
-//printf("~1 top of loop at off 0x%x\n",off);
+ DBG((g_log,8,"top of loop at off %d\n",off));
len = buf[off];
- if (len == 0xc0) { /* Is it an offset marker */
+ if ((len & 0xc0) == 0xc0) { /* Is it an offset marker */
int poff;
-//printf("~1 got pointer\n");
- if ((size - off) < 2)
+
+ DBG((g_log,8,"got pointer\n"));
+ if ((size - off) < 2) {
+ DBG((g_log,8,"read_string_imp size %d - off %d < 2\n",size,off));
return -1;
+ }
poff = read_ORD16_be(buf + off); off += 2;
poff -= 0xc000;
- if (poff < 0 || poff >= size)
+ if (poff < 0 || poff >= size) {
return -1;
+ }
+ DBG((g_log,8,"read_string_imp recursing\n"));
read_string_imp(rv, slen, buf, poff, size, rec+1);
-//if (slen != NULL) printf("~1 after recurse, slen = %d, off = 0x%x\n",*slen,off);
+ if (slen != NULL) {
+ DBG((g_log,8,"after recurse, slen = %d, off = %d (0x%x)\n",*slen,off,off));
+ }
break; /* we're done */
} else {
-//printf("~1 got string length %d\n",len);
+ DBG((g_log,8,"got string length %d\n",len));
+
off++;
- if ((off + len) >= size)
+ if ((off + len) >= size) {
+ DBG((g_log,8,"read_string_imp size off %d + len %d >= size %d\n",off,len,size));
return -1;
+ }
- if (len == 0)
+ if (len == 0) {
+ DBG((g_log,8,"read_string_imp len == 0 - done\n"));
break; /* we're done */
+ }
if (rv != NULL) {
memcpy(*rv, buf + off, len);
-//(*rv)[len] = '\000'; printf("Copied string %p = '%s'\n",*rv,*rv);
+
+#ifdef DEBUG
+ (*rv)[len] = '\000';
+ DBG((g_log,8,"Copied string %p = '%s'\n",*rv,*rv));
+#endif
*rv += len;
}
@@ -745,21 +727,25 @@ static int read_string_imp(char **rv, int *slen, ORD8 *buf, int off, int size, i
if (slen != NULL) {
(*slen) += len;
-//printf("~1 slen now = %d\n",*slen);
+ DBG((g_log,8,"slen now = %d\n",*slen));
}
}
d1 = 1;
- if (slen != NULL)
+ if (slen != NULL) {
(*slen)++;
+ }
if (rv != NULL) {
(*rv)[0] = '.';
(*rv)++;
}
}
-//if (slen != NULL) printf("~1 returning slen = %d\n",*slen);
+ if (slen != NULL) {
+ DBG((g_log,8,"returning slen = %d\n",*slen));
+ }
+
return off;
}
@@ -769,29 +755,31 @@ static int read_string(char **rv, ORD8 *buf, int off, int size) {
int len = 0, toff = off;
char *trv;
-//printf("~1 read_string called for off 0x%x\n",off);
+ DBG((g_log,7,"read_string called for off 0x%x\n",off));
/* See how long it will be */
if ((toff = read_string_imp(NULL, &len, buf, off, size, 0)) < 0) {
-//printf("~1 read_string_imp length returned error\n");
+ DBG((g_log,7,"read_string_imp length returned error\n"));
return toff;
}
-//printf("~1 read_string_imp got length %d\n",len);
+ DBG((g_log,7,"read_string_imp got length %d\n",len));
if (len == 0) {
-//printf("~1 Got zero length string\n");
+ DBG((g_log,7,"Got zero length string\n"));
len++; /* Room for null string */
}
if ((*rv = trv = malloc(len)) == NULL) {
+ DBG((g_log,7,"malloc for string failed\n"));
return -1;
}
-//printf("Malloced %p\n",*rv);
+ DBG((g_log,7,"loced %p\n",*rv));
off = read_string_imp(&trv, NULL, buf, off, size, 0);
if (off >= 0) {
(*rv)[len-1] = '\000';
-//printf("~1 read string ok: %p = '%s'\n",*rv, *rv);
+ DBG((g_log,7,"read string ok: %p = '%s'\n",*rv, *rv));
+ } else {
+ DBG((g_log,7,"reading string failed\n"));
}
-//else printf("~1 reading string failed\n");
return off;
}
@@ -820,9 +808,9 @@ int parse_query(ORD8 *buf, int off, int size) {
return off;
}
-/* Parse an mDNS reply */
+/* Parse an mDNS reply, and set Friendly name (if known) + formal name + IP */
/* Return updated off value or -1 on error */
-int parse_reply(char **pname, char **pip, ORD8 *buf, int off, int size) {
+int parse_reply(char **pname, char **pip, cctype *ptyp, int *pcaflags, ORD8 *buf, int off, int size) {
char *sv;
int rtype, rclass, rdlength;
unsigned int ttl;
@@ -831,21 +819,21 @@ int parse_reply(char **pname, char **pip, ORD8 *buf, int off, int size) {
if ((off = read_string(&sv, buf, off, size)) < 0)
return -1;
- DBG((g_log,0," Got string '%s'\n",sv))
+ DBG((g_log,0," Got string '%s', now off = 0x%x\n",sv,off))
if ((size - off) < 2) {
free(sv);
return -1;
}
rtype = read_ORD16_be(buf + off); off += 2;
- DBG((g_log,0," RTYPE = %d\n",rtype))
+ DBG((g_log,0," RTYPE = %d, now off = 0x%x\n",rtype,off))
if ((size - off) < 2) {
free(sv);
return -1;
}
rclass = read_ORD16_be(buf + off); off += 2;
- DBG((g_log,0," RCLASS = 0x%04x\n",rclass))
+ DBG((g_log,0," RCLASS = 0x%04x, now off = 0x%x\n",rclass,off))
/* rclass top bit is cache flush bit */
if ((rclass & 0x7fff) != DNS_CLASS_IN) {
@@ -857,12 +845,12 @@ int parse_reply(char **pname, char **pip, ORD8 *buf, int off, int size) {
if ((size - off) < 4)
return -1;
ttl = read_ORD32_be(buf + off); off += 4;
- DBG((g_log,0," TTL = %u\n",ttl))
+ DBG((g_log,0," TTL = %u, now off = 0x%x\n",ttl,off))
if ((size - off) < 2)
return -1;
rdlength = read_ORD16_be(buf + off); off += 2;
- DBG((g_log,0," RDLENGTH = %d\n",rdlength))
+ DBG((g_log,0," RDLENGTH = %d, now off = 0x%x\n",rdlength,off))
if ((off + rdlength) > size) {
DBG((g_log,0," response RDLENGTH is longer than remaining buffer (%d)\n",size - off))
@@ -872,7 +860,10 @@ int parse_reply(char **pname, char **pip, ORD8 *buf, int off, int size) {
/* Just decode the replies we need */
if (rtype == DNS_TYPE_TXT) { /* Check it's a ChromeCast & get its name */
- char *cp;
+ char *cp, *fn = NULL;
+ int rdsize = off + rdlength;
+ int caflags = 0;
+
if ((cp = strchr(sv, '.')) == NULL) {
free(sv);
return -1;
@@ -884,12 +875,112 @@ int parse_reply(char **pname, char **pip, ORD8 *buf, int off, int size) {
return -1;
}
- DBG((g_log,0," Chromacast '%s'\n", sv))
- if ((*pname = strdup(sv)) == NULL) {
- DBG((g_log,0,"strdup failed\n"))
- free(sv);
- return -1;
+#ifdef NEVER
+ DBG((g_log,0," TXT data:\n"))
+ adump_bytes(g_log, " ", buf + off, 0, rdlength);
+#endif
+
+ /* Chromecast TXT DATA format:
+
+ Buffer is series of strings, each beginning with a byte length.
+ Each string is id=value, with the following known values:
+
+ id=c17a8e82ee7187d5013e2d12c61bbd40 uuidNoHyphens
+ rm=669B9448366A01CB
+ ve=05 SW version ????
+ md=Chromecast Model ?
+ i.e. Chromecast-Audio
+ i.e. Chromecast-Ultra
+ i.e. Group
+ ic=/setup/icon.png Icon file ??
+ fn=Chromecast6892 Friendly name
+ ca=4101 Capabilities bits ???
+ st=1 Application running ??
+ bs=FA8FCA566645 Application ID ??
+ rs=Pattern generator ready Application state ??
+
+ */
+
+ /* Parse the Chromacast TX Data */
+ for (; off < rdsize; ) {
+ int slen;
+ char *ss;
+
+ /* Read the string length */
+ if ((rdsize - off) < 1)
+ goto done_tx;
+
+ slen = read_ORD8(buf + off); off += 1;
+
+ if ((rdsize - off) < slen)
+ goto done_tx;
+
+ if ((ss = malloc(slen + 1)) == NULL) {
+ DBG((g_log,0,"malloc for sub-string failed\n"));
+ return -1;
+ }
+
+ memcpy(ss, buf + off, slen);
+ ss[slen] = '\000';
+ off += slen;
+
+ DBG((g_log,0," TX Sub-string '%s'\n", ss))
+
+ /* Record info we want: */
+ if (strncmp(ss, "fn=", 3) == 0) { /* Friendly name */
+ if ((fn = malloc(slen -3 +1)) == NULL) {
+ DBG((g_log,0,"malloc for fn-string failed\n"));
+ return -1;
+ }
+ strcpy(fn, ss + 3);
+ }
+
+ if (strncmp(ss, "ca=", 3) == 0) { /* Capability bits ? */
+ caflags = atoi(ss + 3);
+ }
+ free(ss);
}
+
+ done_tx:
+
+ if (fn != NULL) {
+ DBG((g_log,0," Chromacast '%s', fn '%s'\n", sv, fn))
+ } else {
+ DBG((g_log,0," Chromacast '%s'\n", sv))
+ }
+
+ DBG2((g_log,DLEV,"ca bits 0x%x\n", caflags))
+
+ if (strncmp(sv, "Chromecast-Ultra", 16) == 0) {
+ *ptyp = cctyp_Ultra;
+ } else if (strncmp(sv, "Chromecast-Audio", 16) == 0) {
+ *ptyp = cctyp_Audio;
+ } else {
+ // Hmm. A CC1 or non-Google device.
+
+ /* We're guessing that bit 0 of the ca bits == Video capable */
+ /* and bit 1 of the ca bits == Audio capable */
+ if (caflags & 1)
+ *ptyp = cctyp_1;
+ else if (caflags & 4)
+ *ptyp = cctyp_Audio;
+ else
+ *ptyp = cctyp_Other;
+ }
+
+ if (fn != NULL) {
+ *pname = fn;
+ } else {
+ free(fn);
+ if ((*pname = strdup(sv)) == NULL) {
+ DBG((g_log,0,"strdup failed\n"))
+ free(sv);
+ return -1;
+ }
+ }
+
+ off = rdsize;
+
} else if (rtype == DNS_TYPE_A) {
/* Should we check name matches ? */
if ((*pip = malloc(3 * 4 + 3 + 1)) == NULL) {
@@ -900,6 +991,7 @@ int parse_reply(char **pname, char **pip, ORD8 *buf, int off, int size) {
sprintf(*pip, "%d.%d.%d.%d", buf[off], buf[off+1], buf[off+2], buf[off+3]);
DBG((g_log,0," V4 address = %s\n",*pip))
+ off += rdlength;
} else if (rtype == DNS_TYPE_AAAA) { /* The IPV6 address */
/* Should we check name matches ? */
if ((*pip = malloc(8 * 4 + 7 + 1)) == NULL) {
@@ -918,10 +1010,11 @@ int parse_reply(char **pname, char **pip, ORD8 *buf, int off, int size) {
buf[off+14] * 245 + buf[off+15]);
DBG((g_log,0," V6 address = %s\n",*pip))
+ off += rdlength;
} else {
DBG((g_log,0," Skipping reply at 0x%x\n",off))
+ off += rdlength;
}
- off += rdlength;
free(sv);
return off;
@@ -930,7 +1023,7 @@ int parse_reply(char **pname, char **pip, ORD8 *buf, int off, int size) {
/* Parse an mDNS reply into a ChromCast name & IP address */
/* Allocate and return name and IP on finding ChromeCast reply, NULL otherwise */
/* Return nz on failure */
-static int parse_dns(char **pname, char **pip, ORD8 *buf, int size) {
+static int parse_dns(char **pname, char **pip, cctype *ptyp, int *pcaflags, ORD8 *buf, int size) {
int i, off = 0;
int id, flags, qdcount, ancount, nscount, arcount;
@@ -976,7 +1069,7 @@ static int parse_dns(char **pname, char **pip, ORD8 *buf, int size) {
// Parse all the answers (ANCOUNT)
for (i = 0; i < ancount; i++) {
- if ((off = parse_reply(pname, pip, buf, off, size)) < 0) {
+ if ((off = parse_reply(pname, pip, ptyp, pcaflags, buf, off, size)) < 0) {
DBG((g_log,0," ### Parsing answer failed ###\n"))
return 1;
}
@@ -984,7 +1077,7 @@ static int parse_dns(char **pname, char **pip, ORD8 *buf, int size) {
// Parse all the NS records (NSCOUNT)
for (i = 0; i < nscount; i++) {
- if ((off = parse_reply(pname, pip, buf, off, size)) < 0) {
+ if ((off = parse_reply(pname, pip, ptyp, pcaflags, buf, off, size)) < 0) {
DBG((g_log,0," ### Parsing NS record failed ###\n"))
return 1;
}
@@ -992,7 +1085,7 @@ static int parse_dns(char **pname, char **pip, ORD8 *buf, int size) {
// Parse all the addition RR answers (ARCOUNT)
for (i = 0; i < arcount; i++) {
- if ((off = parse_reply(pname, pip, buf, off, size)) < 0) {
+ if ((off = parse_reply(pname, pip, ptyp, pcaflags, buf, off, size)) < 0) {
DBG((g_log,0," ### Parsing additional records failed ###\n"))
return 1;
}
@@ -1032,6 +1125,35 @@ static int parse_dns(char **pname, char **pip, ORD8 *buf, int size) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+*/
+
+/*
+ .ca values:
+
+ Original CC 5 = 0x0005
+ Latest CC1 4101 = 0x1005
+ Latest CC2 4101 = 0x1005
+ Latest CC3 4101 = 0x1005
+ Vizio TV 2053 = 0x0805
+ Toshiba TV 4101 = 0x1005
+ Audio CC 4100 = 0x1004
+ Sound bar 2052 = 0x0804
+
+ Google documents the following Capability strings:
+
+ VIDEO_OUT The receiver supports video output.
+ VIDEO_IN The receiver supports video input (camera).
+ AUDIO_OUT The receiver supports audio output.
+ AUDIO_IN The receiver supports audio input (microphone).
+ MULTIZONE_GROUP The receiver represents a multi-zone group.
+
+ Which may correspond to ca bits 0, 1, 2, 3 respectively ?
+
+*/
+
+/*
+ Original CC 1 dump ?
+
0000: 00 00 84 00 00 00 00 01 00 00 00 05 0b 5f 67 6f ............._go
0010: 6f 67 6c 65 63 61 73 74 04 5f 74 63 70 05 6c 6f oglecast._tcp.lo
0020: 63 61 6c 00 00 0c 00 01 00 00 11 94 00 11 0e 43 cal............C
@@ -1050,6 +1172,207 @@ static int parse_dns(char **pname, char **pip, ORD8 *buf, int size) {
00f0: 09 c0 2e 00 05 00 00 80 00 40 c0 c4 00 2f 80 01 .........@.../..
0100: 00 00 00 78 00 05 c0 c4 00 01 40 ...x......@
+*/
+
+/*
+
+ ChromeCast 1 dump
+
+0000: 00 00 84 00 00 00 00 01 00 00 00 03 0b 5f 67 6f ............._go
+0010: 6f 67 6c 65 63 61 73 74 04 5f 74 63 70 05 6c 6f oglecast._tcp.lo
+0020: 63 61 6c 00 00 0c 00 01 00 00 00 78 00 44 2b 43 cal........x.D+C
+0030: 68 72 6f 6d 65 63 61 73 74 2d 63 31 37 61 65 38 hromecast-c17ae8
+0040: 38 32 65 37 65 31 38 37 35 64 30 31 33 65 64 32 82e7e1875d013ed2
+0050: 31 32 63 31 36 62 62 64 34 30 0b 5f 67 6f 6f 67 12c16bbd40._goog
+0060: 6c 65 63 61 73 74 04 5f 74 63 70 05 6c 6f 63 61 lecast._tcp.loca
+0070: 6c 00 2b 43 68 72 6f 6d 65 63 61 73 74 2d 63 31 l.+Chromecast-c1
+0080: 37 61 65 38 38 32 65 37 65 31 38 37 35 64 30 31 7ae882e7e1875d01
+0090: 33 65 64 32 31 32 63 31 36 62 62 64 34 30 0b 5f 3ed212c16bbd40._
+00a0: 67 6f 6f 67 6c 65 63 61 73 74 04 5f 74 63 70 05 googlecast._tcp.
+00b0: 6c 6f 63 61 6c 00 00 10 80 01 00 00 11 94 00 82 local...........
+00c0: 23 69 64 3d 63 31 37 61 65 38 38 32 65 37 65 31 #id=c17ae882e7e1
+00d0: 38 37 35 64 30 31 33 65 64 32 31 32 63 31 36 62 875d013ed212c16b
+00e0: 62 64 34 30 03 72 6d 3d 05 76 65 3d 30 35 0d 6d bd40.rm=.ve=05.m
+00f0: 64 3d 43 68 72 6f 6d 65 63 61 73 74 12 69 63 3d d=Chromecast.ic=
+0100: 2f 73 65 74 75 70 2f 69 63 6f 6e 2e 70 6e 67 11 /setup/icon.png.
+0110: 66 6e 3d 43 68 72 6f 6d 65 63 61 73 74 36 38 39 fn=Chromecast689
+0120: 32 07 63 61 3d 34 31 30 31 04 73 74 3d 30 0f 62 2.ca=4101.st=0.b
+0130: 73 3d 46 41 38 46 43 41 35 36 36 36 34 35 03 72 s=FA8FCA566645.r
+0140: 73 3d 2b 43 68 72 6f 6d 65 63 61 73 74 2d 63 31 s=+Chromecast-c1
+0150: 37 61 65 38 38 32 65 37 65 31 38 37 35 64 30 31 7ae882e7e1875d01
+0160: 33 65 64 32 31 32 63 31 36 62 62 64 34 30 0b 5f 3ed212c16bbd40._
+0170: 67 6f 6f 67 6c 65 63 61 73 74 04 5f 74 63 70 05 googlecast._tcp.
+0180: 6c 6f 63 61 6c 00 00 21 80 01 00 00 00 78 00 32 local..!.....x.2
+0190: 00 00 00 00 1f 49 24 63 31 37 61 65 38 38 32 2d .....I$c17ae882-
+01a0: 65 37 65 31 2d 38 37 35 64 2d 30 31 33 65 2d 64 e7e1-875d-013e-d
+01b0: 32 31 32 63 31 36 62 62 64 34 30 05 6c 6f 63 61 212c16bbd40.loca
+01c0: 6c 00 24 63 31 37 61 65 38 38 32 2d 65 37 65 31 l.$c17ae882-e7e1
+01d0: 2d 38 37 35 64 2d 30 31 33 65 2d 64 32 31 32 63 -875d-013e-d212c
+01e0: 31 36 62 62 64 34 30 05 6c 6f 63 61 6c 00 00 01 16bbd40.local...
+01f0: 80 01 00 00 00 78 00 04 c0 a8 01 68 .....x.....h
+
+
+ChromeCast 2 dump:
+
+0000: 00 00 84 00 00 00 00 01 00 00 00 03 0b 5f 67 6f ............._go
+0010: 6f 67 6c 65 63 61 73 74 04 5f 74 63 70 05 6c 6f oglecast._tcp.lo
+0020: 63 61 6c 00 00 0c 00 01 00 00 00 78 00 44 2b 43 cal........x.D+C
+0030: 68 72 6f 6d 65 63 61 73 74 2d 38 32 38 30 30 66 hromecast-82800f
+0040: 65 63 33 37 37 36 35 39 38 66 35 38 64 34 61 61 ec3776598f58d4aa
+0050: 63 39 65 36 35 64 30 30 30 61 0b 5f 67 6f 6f 67 c9e65d000a._goog
+0060: 6c 65 63 61 73 74 04 5f 74 63 70 05 6c 6f 63 61 lecast._tcp.loca
+0070: 6c 00 2b 43 68 72 6f 6d 65 63 61 73 74 2d 38 32 l.+Chromecast-82
+0080: 38 30 30 66 65 63 33 37 37 36 35 39 38 66 35 38 800fec3776598f58
+0090: 64 34 61 61 63 39 65 36 35 64 30 30 30 61 0b 5f d4aac9e65d000a._
+00a0: 67 6f 6f 67 6c 65 63 61 73 74 04 5f 74 63 70 05 googlecast._tcp.
+00b0: 6c 6f 63 61 6c 00 00 10 80 01 00 00 11 94 00 a9 local...........
+00c0: 23 69 64 3d 38 32 38 30 30 66 65 63 33 37 37 36 #id=82800fec3776
+00d0: 35 39 38 66 35 38 64 34 61 61 63 39 65 36 35 64 598f58d4aac9e65d
+00e0: 30 30 30 61 13 72 6d 3d 36 36 39 42 39 34 34 38 000a.rm=669B9448
+00f0: 36 33 36 30 41 31 43 42 05 76 65 3d 30 35 0d 6d 6360A1CB.ve=05.m
+0100: 64 3d 43 68 72 6f 6d 65 63 61 73 74 12 69 63 3d d=Chromecast.ic=
+0110: 2f 73 65 74 75 70 2f 69 63 6f 6e 2e 70 6e 67 11 /setup/icon.png.
+0120: 66 6e 3d 43 68 72 6f 6d 65 63 61 73 74 36 35 30 fn=Chromecast650
+0130: 32 07 63 61 3d 34 31 30 31 04 73 74 3d 31 0f 62 2.ca=4101.st=1.b
+0140: 73 3d 46 41 38 46 43 41 39 45 33 45 30 31 1a 72 s=FA8FCA9E3E01.r
+0150: 73 3d 50 61 74 74 65 72 6e 20 67 65 6e 65 72 61 s=Pattern genera
+0160: 74 6f 72 20 72 65 61 64 79 2b 43 68 72 6f 6d 65 tor ready+Chrome
+0170: 63 61 73 74 2d 38 32 38 30 30 66 65 63 33 37 37 cast-82800fec377
+0180: 36 35 39 38 66 35 38 64 34 61 61 63 39 65 36 35 6598f58d4aac9e65
+0190: 64 30 30 30 61 0b 5f 67 6f 6f 67 6c 65 63 61 73 d000a._googlecas
+01a0: 74 04 5f 74 63 70 05 6c 6f 63 61 6c 00 00 21 80 t._tcp.local..!.
+01b0: 01 00 00 00 78 00 32 00 00 00 00 1f 49 24 38 32 ....x.2.....I$82
+01c0: 38 30 30 66 65 63 2d 33 37 37 36 2d 35 39 38 66 800fec-3776-598f
+01d0: 2d 35 38 64 34 2d 61 61 63 39 65 36 35 64 30 30 -58d4-aac9e65d00
+01e0: 30 61 05 6c 6f 63 61 6c 00 24 38 32 38 30 30 66 0a.local.$82800f
+01f0: 65 63 2d 33 37 37 36 2d 35 39 38 66 2d 35 38 64 ec-3776-598f-58d
+0200: 34 2d 61 61 63 39 65 36 35 64 30 30 30 61 05 6c 4-aac9e65d000a.l
+0210: 6f 63 61 6c 00 00 01 80 01 00 00 00 78 00 04 0a ocal........x...
+0220: 00 00 80 ...
+
+ChromeCast 3 (Ultra)
+
+0000: 00 00 84 00 00 00 00 01 00 00 00 03 0b 5f 67 6f ............._go
+0010: 6f 67 6c 65 63 61 73 74 04 5f 74 63 70 05 6c 6f oglecast._tcp.lo
+0020: 63 61 6c 00 00 0c 00 01 00 00 00 78 00 34 31 43 cal........x.41C
+0030: 68 72 6f 6d 65 63 61 73 74 2d 55 6c 74 72 61 2d hromecast-Ultra-
+0040: 32 38 36 65 36 63 63 65 38 34 65 32 38 65 61 33 286e6cce84e28ea3
+0050: 36 63 37 63 33 31 39 32 66 33 35 62 65 30 33 65 6c7c3192f35be03e
+0060: c0 0c c0 2e 00 10 80 01 00 00 11 94 00 8d 23 69 ..............#i
+0070: 64 3d 32 38 36 65 36 63 63 65 38 34 65 32 38 65 d=286e6cce84e28e
+0080: 61 33 36 63 37 63 33 31 39 32 66 33 35 62 65 30 a36c7c3192f35be0
+0090: 33 65 03 72 6d 3d 05 76 65 3d 30 35 13 6d 64 3d 3e.rm=.ve=05.md=
+00a0: 43 68 72 6f 6d 65 63 61 73 74 20 55 6c 74 72 61 Chromecast Ultra
+00b0: 12 69 63 3d 2f 73 65 74 75 70 2f 69 63 6f 6e 2e .ic=/setup/icon.
+00c0: 70 6e 67 16 66 6e 3d 43 68 72 6f 6d 65 63 61 73 png.fn=Chromecas
+00d0: 74 55 6c 74 72 61 36 32 35 30 07 63 61 3d 34 31 tUltra6250.ca=41
+00e0: 30 31 04 73 74 3d 30 0f 62 73 3d 46 41 38 46 43 01.st=0.bs=FA8FC
+00f0: 41 37 30 38 35 42 35 03 72 73 3d c0 2e 00 21 80 A7085B5.rs=...!.
+0100: 01 00 00 00 78 00 2d 00 00 00 00 1f 49 24 32 38 ....x.-.....I$28
+0110: 36 65 36 63 63 65 2d 38 34 65 32 2d 38 65 61 33 6e6cce-84e2-8ea3
+0120: 2d 36 63 37 63 2d 33 31 39 32 66 33 35 62 65 30 -6c7c-3192f35be0
+0130: 33 65 c0 1d c1 0d 00 01 80 01 00 00 00 78 00 04 3e...........x..
+0140: 0a 00 01 1d ....
+
+*/
+
+
+/* Other non-Google devices:
+
+Vizio M60-D1 :- Smart TV
+
+00000000 00 00 84 00 00 00 00 01 00 00 00 03 0b 5f 67 6f |............._go|
+00000010 6f 67 6c 65 63 61 73 74 04 5f 74 63 70 05 6c 6f |oglecast._tcp.lo|
+00000020 63 61 6c 00 00 0c 00 01 00 00 00 78 00 40 27 4d |cal........x.@'M|
+00000030 36 30 2d 44 31 2d 37 63 35 35 36 37 39 31 35 38 |60-D1-7c55679158|
+00000040 38 64 63 64 33 37 63 37 37 32 33 31 61 30 64 64 |8dcd37c77231a0dd|
+00000050 31 35 61 35 30 36 0b 5f 67 6f 6f 67 6c 65 63 61 |15a506._googleca|
+00000060 73 74 04 5f 74 63 70 05 6c 6f 63 61 6c 00 27 4d |st._tcp.local.'M|
+00000070 36 30 2d 44 31 2d 37 63 35 35 36 37 39 31 35 38 |60-D1-7c55679158|
+00000080 38 64 63 64 33 37 63 37 37 32 33 31 61 30 64 64 |8dcd37c77231a0dd|
+00000090 31 35 61 35 30 36 0b 5f 67 6f 6f 67 6c 65 63 61 |15a506._googleca|
+000000a0 73 74 04 5f 74 63 70 05 6c 6f 63 61 6c 00 00 10 |st._tcp.local...|
+000000b0 80 01 00 00 11 94 00 80 23 69 64 3d 37 63 35 35 |........#id=7c55|
+000000c0 36 37 39 31 35 38 38 64 63 64 33 37 63 37 37 32 |6791588dcd37c772|
+000000d0 33 31 61 30 64 64 31 35 61 35 30 36 13 72 6d 3d |31a0dd15a506.rm=|
+000000e0 31 33 39 46 33 32 34 34 38 34 44 46 41 39 32 34 |139F324484DFA924|
+000000f0 05 76 65 3d 30 35 09 6d 64 3d 4d 36 30 2d 44 31 |.ve=05.md=M60-D1|
+00000100 12 69 63 3d 2f 73 65 74 75 70 2f 69 63 6f 6e 2e |.ic=/setup/icon.|
+00000110 70 6e 67 0f 66 6e 3d 56 69 7a 69 6f 20 4d 36 30 |png.fn=Vizio M60|
+00000120 2d 44 31 07 63 61 3d 32 30 35 33 04 73 74 3d 30 |-D1.ca=2053.st=0|
+00000130 03 62 73 3d 03 72 73 3d 27 4d 36 30 2d 44 31 2d |.bs=.rs='M60-D1-|
+00000140 37 63 35 35 36 37 39 31 35 38 38 64 63 64 33 37 |7c556791588dcd37|
+00000150 63 37 37 32 33 31 61 30 64 64 31 35 61 35 30 36 |c77231a0dd15a506|
+00000160 0b 5f 67 6f 6f 67 6c 65 63 61 73 74 04 5f 74 63 |._googlecast._tc|
+00000170 70 05 6c 6f 63 61 6c 00 00 21 80 01 00 00 00 78 |p.local..!.....x|
+00000180 00 32 00 00 00 00 1f 49 24 37 63 35 35 36 37 39 |.2.....I$7c55679|
+00000190 31 2d 35 38 38 64 2d 63 64 33 37 2d 63 37 37 32 |1-588d-cd37-c772|
+000001a0 2d 33 31 61 30 64 64 31 35 61 35 30 36 05 6c 6f |-31a0dd15a506.lo|
+000001b0 63 61 6c 00 24 37 63 35 35 36 37 39 31 2d 35 38 |cal.$7c556791-58|
+000001c0 38 64 2d 63 64 33 37 2d 63 37 37 32 2d 33 31 61 |8d-cd37-c772-31a|
+000001d0 30 64 64 31 35 61 35 30 36 05 6c 6f 63 61 6c 00 |0dd15a506.local.|
+000001e0 00 01 80 01 00 00 00 78 00 04 c0 a8 00 3e |.......x.....>|
+000001ee
+
+SmartCast Sound Bar 3851-D0 :- Sound bar
+
+00000000 00 00 84 00 00 00 00 01 00 00 00 03 0b 5f 67 6f |............._go|
+00000010 6f 67 6c 65 63 61 73 74 04 5f 74 63 70 05 6c 6f |oglecast._tcp.lo|
+00000020 63 61 6c 00 00 0c 00 01 00 00 00 78 00 22 09 53 |cal........x.".S|
+00000030 42 33 38 35 31 2d 44 30 0b 5f 67 6f 6f 67 6c 65 |B3851-D0._google|
+00000040 63 61 73 74 04 5f 74 63 70 05 6c 6f 63 61 6c 00 |cast._tcp.local.|
+00000050 09 53 42 33 38 35 31 2d 44 30 0b 5f 67 6f 6f 67 |.SB3851-D0._goog|
+00000060 6c 65 63 61 73 74 04 5f 74 63 70 05 6c 6f 63 61 |lecast._tcp.loca|
+00000070 6c 00 00 10 80 01 00 00 11 94 00 8a 23 69 64 3d |l...........#id=|
+00000080 64 35 36 63 33 66 30 39 36 66 30 31 30 31 36 66 |d56c3f096f01016f|
+00000090 33 64 37 30 65 62 62 63 36 32 36 34 65 66 33 31 |3d70ebbc6264ef31|
+000000a0 05 76 65 3d 30 34 1e 6d 64 3d 53 6d 61 72 74 43 |.ve=04.md=SmartC|
+000000b0 61 73 74 20 53 6f 75 6e 64 20 42 61 72 20 33 38 |ast Sound Bar 38|
+000000c0 35 31 2d 44 30 12 69 63 3d 2f 73 65 74 75 70 2f |51-D0.ic=/setup/|
+000000d0 69 63 6f 6e 2e 70 6e 67 0c 66 6e 3d 53 42 33 38 |icon.png.fn=SB38|
+000000e0 35 31 2d 44 30 07 63 61 3d 32 30 35 32 04 73 74 |51-D0.ca=2052.st|
+000000f0 3d 30 0f 62 73 3d 46 46 46 46 46 46 46 46 46 46 |=0.bs=FFFFFFFFFF|
+00000100 46 46 03 72 73 3d 09 53 42 33 38 35 31 2d 44 30 |FF.rs=.SB3851-D0|
+00000110 0b 5f 67 6f 6f 67 6c 65 63 61 73 74 04 5f 74 63 |._googlecast._tc|
+00000120 70 05 6c 6f 63 61 6c 00 00 21 80 01 00 00 00 78 |p.local..!.....x|
+00000130 00 17 00 00 00 00 1f 49 09 53 42 33 38 35 31 2d |.......I.SB3851-|
+00000140 44 30 05 6c 6f 63 61 6c 00 09 53 42 33 38 35 31 |D0.local..SB3851|
+00000150 2d 44 30 05 6c 6f 63 61 6c 00 00 01 80 01 00 00 |-D0.local.......|
+00000160 00 78 00 04 c0 a8 00 26 |.x.....&|
+00000168
+
+ZChromecast Toshiba :- TV ?
+
+00000000 00 00 84 00 00 00 00 01 00 00 00 03 0b 5f 67 6f |............._go|
+00000010 6f 67 6c 65 63 61 73 74 04 5f 74 63 70 05 6c 6f |oglecast._tcp.lo|
+00000020 63 61 6c 00 00 0c 00 01 00 00 00 78 00 2e 2b 43 |cal........x..+C|
+00000030 68 72 6f 6d 65 63 61 73 74 2d 64 61 30 33 34 62 |hromecast-da034b|
+00000040 31 39 30 30 34 34 62 63 38 65 35 33 30 31 34 37 |190044bc8e530147|
+00000050 63 37 61 65 33 32 63 35 61 33 c0 0c c0 2e 00 10 |c7ae32c5a3......|
+00000060 80 01 00 00 11 94 00 87 23 69 64 3d 64 61 30 33 |........#id=da03|
+00000070 34 62 31 39 30 30 34 34 62 63 38 65 35 33 30 31 |4b190044bc8e5301|
+00000080 34 37 63 37 61 65 33 32 63 35 61 33 03 72 6d 3d |47c7ae32c5a3.rm=|
+00000090 05 76 65 3d 30 35 0d 6d 64 3d 43 68 72 6f 6d 65 |.ve=05.md=Chrome|
+000000a0 63 61 73 74 12 69 63 3d 2f 73 65 74 75 70 2f 69 |cast.ic=/setup/i|
+000000b0 63 6f 6e 2e 70 6e 67 16 66 6e 3d 5a 43 68 72 6f |con.png.fn=ZChro|
+000000c0 6d 65 63 61 73 74 20 54 6f 73 68 69 62 61 07 63 |mecast Toshiba.c|
+000000d0 61 3d 34 31 30 31 04 73 74 3d 30 0f 62 73 3d 46 |a=4101.st=0.bs=F|
+000000e0 41 38 46 43 41 37 30 32 30 36 32 03 72 73 3d c0 |A8FCA702062.rs=.|
+000000f0 2e 00 21 80 01 00 00 00 78 00 2d 00 00 00 00 1f |..!.....x.-.....|
+00000100 49 24 64 61 30 33 34 62 31 39 2d 30 30 34 34 2d |I$da034b19-0044-|
+00000110 62 63 38 65 2d 35 33 30 31 2d 34 37 63 37 61 65 |bc8e-5301-47c7ae|
+00000120 33 32 63 35 61 33 c0 1d c1 01 00 01 80 01 00 00 |32c5a3..........|
+00000130 00 78 00 04 c0 a8 00 1b |.x......|
+00000138
*/
+/*
+
+ Can get info from Chromecast http server at http://XX.XX.XX.XX:8008/ssdp/device-desc.xml
+
+ Get info about the app running: http://XX.XX.XX.XX:8008/apps/ChromeCast
+
+*/
+
+
diff --git a/ccast/ccmdns.h b/ccast/ccmdns.h
old mode 100644
new mode 100755
index 5144448..7a57808
--- a/ccast/ccmdns.h
+++ b/ccast/ccmdns.h
@@ -20,13 +20,26 @@
* for the purposes of generating Video Test patches.
*/
+/* Chrome cast type */
+typedef enum {
+ cctyp_unkn = 0, /* Unknown */
+ cctyp_1, /* Chromecast 1 or General Video */
+ cctyp_2, /* Chromecast 2 */
+ cctyp_Audio, /* Chromecast Audio or General Audio */
+ cctyp_Ultra, /* Chromecast Ultra */
+ cctyp_Other /* Non Video/Audio output device */
+} cctype;
+
+/* Use cctype2str() to dump type */
+
/* A record of a Chromecast that may be accessed */
struct _ccast_id {
- char *name; /* Chromecast name */
+ char *name; /* Chromecast friendly name */
char *ip; /* IP address as string (ie. "10.0.0.128") */
+ cctype typ; /* Chromecast type (If known) */
}; typedef struct _ccast_id ccast_id;
-/* Get a list of Chromecasts. Return NULL on error */
+/* Get a list of Video out capable Chromecasts. Return NULL on error */
/* Last pointer in array is NULL */
/* Takes 0.5 second to return */
ccast_id **get_ccids(void);
diff --git a/ccast/ccmes.c b/ccast/ccmes.c
old mode 100644
new mode 100755
diff --git a/ccast/ccmes.h b/ccast/ccmes.h
old mode 100644
new mode 100755
diff --git a/ccast/ccpacket.c b/ccast/ccpacket.c
old mode 100644
new mode 100755
diff --git a/ccast/ccpacket.h b/ccast/ccpacket.h
old mode 100644
new mode 100755
diff --git a/ccast/cctest.c b/ccast/cctest.c
old mode 100644
new mode 100755
diff --git a/ccast/chan/cast_channel.pb-c.c b/ccast/chan/cast_channel.pb-c.c
old mode 100644
new mode 100755
diff --git a/ccast/chan/cast_channel.pb-c.h b/ccast/chan/cast_channel.pb-c.h
old mode 100644
new mode 100755
diff --git a/ccast/chan/protobuf-c.c b/ccast/chan/protobuf-c.c
old mode 100644
new mode 100755
diff --git a/ccast/chan/protobuf-c.h b/ccast/chan/protobuf-c.h
old mode 100644
new mode 100755
diff --git a/ccast/dpat.c b/ccast/dpat.c
old mode 100644
new mode 100755
diff --git a/ccast/filt.c b/ccast/filt.c
old mode 100644
new mode 100755
diff --git a/cgats/Jamfile b/cgats/Jamfile
old mode 100644
new mode 100755
diff --git a/cgats/License4.txt b/cgats/License4.txt
old mode 100644
new mode 100755
diff --git a/cgats/Makefile b/cgats/Makefile
old mode 100644
new mode 100755
diff --git a/cgats/Makefile.IBMNT b/cgats/Makefile.IBMNT
old mode 100644
new mode 100755
diff --git a/cgats/Makefile.OSX b/cgats/Makefile.OSX
old mode 100644
new mode 100755
diff --git a/cgats/Makefile.UNIX b/cgats/Makefile.UNIX
old mode 100644
new mode 100755
diff --git a/cgats/Makefile.WNT b/cgats/Makefile.WNT
old mode 100644
new mode 100755
diff --git a/cgats/Readme.txt b/cgats/Readme.txt
old mode 100644
new mode 100755
diff --git a/cgats/afiles b/cgats/afiles
old mode 100644
new mode 100755
diff --git a/cgats/cgats.c b/cgats/cgats.c
old mode 100644
new mode 100755
index 3741a5d..578da10
--- a/cgats/cgats.c
+++ b/cgats/cgats.c
@@ -135,6 +135,7 @@ cgatsAlloc *al /* memory allocator */
p->add_other = add_other;
p->get_oi = get_oi;
p->add_kword = add_kword;
+ p->add_kword_at = add_kword_at;
p->add_field = add_field;
p->add_set = add_set;
p->add_setarr = add_setarr;
diff --git a/cgats/cgats.h b/cgats/cgats.h
old mode 100644
new mode 100755
index bf5c94e..9ef5f7f
--- a/cgats/cgats.h
+++ b/cgats/cgats.h
@@ -132,6 +132,9 @@ struct _cgats {
int (*add_kword)(struct _cgats *p, int table, const char *ksym, const char *kdata, const char *kcom);
/* Add a new keyword/value pair + optional comment to the table */
/* Return index of new keyword, or -1, errc & err on error */
+ int (*add_kword_at)(struct _cgats *p, int table, int pos, const char *ksym,
+ const char *kdata, const char *kcom);
+ /* Replace or append a new keyword/value pair + optional comment */
int (*add_field)(struct _cgats *p, int table, const char *fsym, data_type ftype);
/* Add a new field to the table */
/* Return index of new field, or -1, -2, errc and err on error */
diff --git a/cgats/cgatsstd.c b/cgats/cgatsstd.c
old mode 100644
new mode 100755
diff --git a/cgats/makezip.ksh b/cgats/makezip.ksh
old mode 100644
new mode 100755
diff --git a/cgats/pars.c b/cgats/pars.c
old mode 100644
new mode 100755
index c3038d5..d4d04bf
--- a/cgats/pars.c
+++ b/cgats/pars.c
@@ -17,6 +17,12 @@
* see the License4.txt file in this directory for licensing details.
*/
+/*
+ TTBD:
+
+ Should skip UTF-8 BOM (0xef 0xbb 0xbf)
+
+*/
#define _PARS_C_ /* Turn on implimentation code */
diff --git a/cgats/pars.h b/cgats/pars.h
old mode 100644
new mode 100755
diff --git a/cgats/parsstd.c b/cgats/parsstd.c
old mode 100644
new mode 100755
diff --git a/cgats/test.txt b/cgats/test.txt
old mode 100644
new mode 100755
diff --git a/doc/3dformat.html b/doc/3dformat.html
old mode 100644
new mode 100755
diff --git a/doc/ArgyllCMS_arts_tag.html b/doc/ArgyllCMS_arts_tag.html
old mode 100644
new mode 100755
diff --git a/doc/ArgyllDoc.html b/doc/ArgyllDoc.html
index 8c6f353..8463fcf 100644
--- a/doc/ArgyllDoc.html
+++ b/doc/ArgyllDoc.html
@@ -10,9 +10,9 @@
Argyll Documentation Top
- ArgyllCMS documentation index (V1.9.2)
+ ArgyllCMS documentation index (V2.0.0)
- Date: 17th October 2016
+ Date: 17th November 2017
Author: Graeme Gill
Introduction
ArgyllCMS is an ICC compatible color management system, available as
@@ -35,15 +35,26 @@
general guide to using the tools for typical color management tasks
is also available. A mailing list provides support for more advanced
usage.
-
This is Version 1.9.2, a bug fix update to the last
- releaseV1.9.1. The first public release of icclib was in November
- 1998, and of ArgyllCMS was in October 2000. Code development
- commenced in 1995. See Changes
+ This is Version 2.0.0, a feature and bug fix update to the last
+ major releaseV1.9.2. The first public release of icclib was in
+ November 1998, and of ArgyllCMS was in October 2000. Code
+ development commenced in 1995. See Changes
+
+
+
+
+
+
+
+
+
+
+
Summary for an overview of changes since the last release.
Changes between revisions is detailed in the log.txt file
that accompanies the source code.
The latest source code is available from here.
+ href="http://www.argyllcms.com/#Downloads">here
.
Please
note that instruments are being driven by ArgyllCMS drivers,
@@ -125,6 +136,14 @@
+
+
+
+
+
+
+
+
@@ -247,6 +266,14 @@
+
+
+
+
+
+
+
+
@@ -271,6 +298,14 @@
+
+
+
+
+
+
+
+
- Tele-Spectro-Radiometer
@@ -347,6 +382,14 @@
+
+
+
+
+
+
+
+
@@ -409,6 +452,14 @@
+
+
+
+
+
+
+
+
@@ -539,6 +590,14 @@
+
+
+
+
+
+
+
+
@@ -663,6 +722,14 @@
+
+
+
+
+
+
+
+
@@ -786,6 +853,14 @@
+
+
+
+
+
+
+
+
@@ -911,6 +986,14 @@
+
+
+
+
+
+
+
+
@@ -1034,6 +1117,14 @@
+
+
+
+
+
+
+
+
@@ -1157,6 +1248,14 @@
+
+
+
+
+
+
+
+
@@ -1175,6 +1274,18 @@
style="text-decoration: underline;">ColorMunki Design
or Photo -
spot and "swipe" reflective/emissive spectrometer (UV cut only).
+
+
+
+
+ The i1Studio version of this instrument is also reported to
+ work.
+
+
+
+
+ [ The
+ OEM XEROX PhaserMeter is also reported to work. ]
ColorMunki Create
or Smile
@@ -1341,6 +1452,14 @@
+
+
+
+
+
+
+
+
@@ -1465,6 +1584,14 @@
+
+
+
+
+
+
+
+
@@ -1598,6 +1725,14 @@
+
+
+
+
+
+
+
+
@@ -1724,6 +1859,14 @@
+
+
+
+
+
+
+
+
@@ -1854,6 +1997,14 @@
+
+
+
+
+
+
+
+
@@ -1997,6 +2148,14 @@
+
+
+
+
+
+
+
+
@@ -2021,6 +2180,14 @@
+
+
+
+
+
+
+
+
- display colorimeter
Palette/SwatchMate
@@ -2044,6 +2211,14 @@
+
+
+
+
+
+
+
+
@@ -2065,6 +2240,14 @@
+
+
+
+
+
+
+
+
- reflective colorimeter
@@ -2090,9 +2273,13 @@
directed to the Argyll's author(s) or the Argyll mailing list,
and not to any other
party.
- There is a list of contributed There is a list of contributed ccss (Colorimeter Correction
+ Spectral Sample) files for some displays.
+ There is a list of contributed ccmx (Colorimeter Correction
- Matrix) files for some display/colorimeter combinations.
+ Matrix) files for some display/colorimeter combinations.
+
Copyright, Licensing & Trade Mark:
@@ -2145,6 +2332,14 @@
+
+
+
+
+
+
+
+
@@ -2322,6 +2517,14 @@
+
+
+
+
+
+
+
+
@@ -2443,6 +2646,14 @@
+
+
+
+
+
+
+
+
@@ -2491,8 +2702,9 @@
The axTLS library is Copyright (c) 2008, Cameron Rich, and the
license is detailed in ccast/axTLS/LICENSE file (an "MIT"/"BSD"
like permissive free software license).
- It is not used for any security sensitive purpose, but is used
- purely to communicate with the ChromeCast.
+ It has been modified to permit multiple threads to use it, but is
+ not used for any security sensitive purpose, but is used purely to
+ enable communication with the ChromeCast in a portable fashion.
The X3DOM x3dom.css and
x3dom.js files are Copyright (C) 2009 X3DOM and licensed dual
@@ -2501,8 +2713,8 @@
"ArgyllCMS" is a trade mark. It is permissible to refer to
copies or derivatives of this software as being the same as
- ArgyllCMS if they are materially unchanged, and retain all
- the functionality provided by the software made available at
+ ArgyllCMS if they are materially unchanged, and retain all the
+ functionality provided by the software made available at
www.argyllcms.com. Modified versions of this software that are
materially changed or have missing functionality must be clearly
marked as such, so as not to to be confused with ArgyllCMS.
@@ -2658,6 +2870,14 @@ calibration
+
+
+
+
+
+
+
+
@@ -2683,6 +2903,14 @@ calibration
+
+
+
+
+
+
+
+
@@ -2693,8 +2921,8 @@ calibration
Little Argyll GUI by Russell Cottrell, and for cameras or
- scanners, CoCa by
- Andrew Stawowczyk Long.
+ scanners, CoCa by Andrew
+ Stawowczyk Long.
Others can be found with a suitable search.
@@ -2816,6 +3044,14 @@ href="http://www.google.com/search?hl=en&source=hp&q=argyllcms+GUI&a
+
+
+
+
+
+
+
+
@@ -2954,6 +3190,14 @@ href="http://www.google.com/search?hl=en&source=hp&q=argyllcms+GUI&a
+
+
+
+
+
+
+
+
@@ -3078,6 +3322,14 @@ href="http://www.google.com/search?hl=en&source=hp&q=argyllcms+GUI&a
+
+
+
+
+
+
+
+
@@ -3202,6 +3454,14 @@ href="http://www.google.com/search?hl=en&source=hp&q=argyllcms+GUI&a
+
+
+
+
+
+
+
+
@@ -3329,6 +3589,14 @@ href="http://www.google.com/search?hl=en&source=hp&q=argyllcms+GUI&a
+
+
+
+
+
+
+
+
@@ -3453,6 +3721,14 @@ href="http://www.google.com/search?hl=en&source=hp&q=argyllcms+GUI&a
+
+
+
+
+
+
+
+
@@ -3728,6 +4004,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -3853,6 +4137,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -3978,6 +4270,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -4105,6 +4405,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -4231,6 +4539,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -4356,6 +4672,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -4481,6 +4805,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -4611,6 +4943,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -4740,6 +5080,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -4866,6 +5214,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -4991,6 +5347,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -5055,6 +5419,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -5180,6 +5552,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -5235,6 +5615,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -5361,6 +5749,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -5485,6 +5881,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -5610,6 +6014,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -5736,6 +6148,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -5863,6 +6283,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -5988,6 +6416,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -6112,6 +6548,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -6237,6 +6681,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -6362,6 +6814,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -6487,6 +6947,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -6620,6 +7088,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -6744,6 +7220,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -6869,6 +7353,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -6996,6 +7488,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -7120,6 +7620,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -7244,6 +7752,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -7367,6 +7883,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -7495,6 +8019,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -7618,6 +8150,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -7685,6 +8225,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -7809,6 +8357,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -7934,6 +8490,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -8061,6 +8625,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -8191,6 +8763,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -8322,6 +8902,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -8350,6 +8938,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -8361,7 +8957,7 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
spectral .ti3 or .sp readings into CIE XYZ and D50 L*a*b* readings.
- Apply FWA, plot spectrums.
+ Apply FWA, plot spectrums. Convert to/from XRGA standard.
Main Tools
Alphabetic Listing:
@@ -8477,6 +9073,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -8601,6 +9205,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -8726,6 +9338,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -8851,6 +9471,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -8975,6 +9603,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -9101,6 +9737,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -9225,6 +9869,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -9350,6 +10002,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -9481,6 +10141,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -9606,6 +10274,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -9732,6 +10408,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -9861,6 +10545,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -9986,6 +10678,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -10110,6 +10810,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -10234,6 +10942,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -10358,6 +11074,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -10483,6 +11207,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -10607,6 +11339,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -10731,6 +11471,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -10855,6 +11603,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -10983,6 +11739,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -11012,6 +11776,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -11137,6 +11909,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -11261,6 +12041,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -11386,6 +12174,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -11515,6 +12311,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -11639,6 +12443,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -11764,6 +12576,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -11894,6 +12714,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -12019,6 +12847,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -12145,6 +12981,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -12156,7 +13000,7 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
spectral .ti3 or .sp readings into CIE XYZ and D50 L*a*b* readings.
- Apply FWA, plot spectrums.
+ Apply FWA, plot spectrums. Convert to/from XRGA standard.
specplot
@@ -12271,6 +13115,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -12394,6 +13246,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -12518,6 +13378,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -12642,6 +13510,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -12767,6 +13643,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -12891,6 +13775,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -13016,6 +13908,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -13145,6 +14045,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -13271,6 +14179,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -13396,6 +14312,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -13548,6 +14472,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -13671,6 +14603,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -13794,6 +14734,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -13921,6 +14869,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -14045,6 +15001,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -14168,6 +15132,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -14299,6 +15271,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -14422,6 +15402,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -14545,6 +15533,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -14668,6 +15664,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -14791,6 +15795,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
@@ -14919,6 +15931,14 @@ href="http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial">
+
+
+
+
+
+
+
+
diff --git a/doc/ArgyllFlow.jpg b/doc/ArgyllFlow.jpg
old mode 100644
new mode 100755
diff --git a/doc/ArgyllFlowThumb.jpg b/doc/ArgyllFlowThumb.jpg
old mode 100644
new mode 100755
diff --git a/doc/CMP_DT_003.jpg b/doc/CMP_DT_003.jpg
old mode 100644
new mode 100755
diff --git a/doc/CMP_Digital_Target-4.jpg b/doc/CMP_Digital_Target-4.jpg
old mode 100644
new mode 100755
diff --git a/doc/CMP_Digital_Target-7.jpg b/doc/CMP_Digital_Target-7.jpg
old mode 100644
new mode 100755
diff --git a/doc/CRTspectrum.jpg b/doc/CRTspectrum.jpg
old mode 100644
new mode 100755
diff --git a/doc/ChangesSummary.html b/doc/ChangesSummary.html
index 3549a79..354437d 100644
--- a/doc/ChangesSummary.html
+++ b/doc/ChangesSummary.html
@@ -16,6 +16,88 @@
Summary of Argyll CMS Changes since last release
For a complete
and more detailed list of changes, please see the log.txt file.
+ [V1.9.2 -> V2.0.0] 17th November 2017
+
+ - Added support for "pm" viewing condition (Print evaluation
+ with partial Mid-tone adaptation), and associated m: viewing
+ condition parameter. This is intended to address certain
+ situations involving the use of papers containing FWA/OBE
+ brighteners when viewed in an environment that has a very
+ noticeably warmer white point than the paper itself under the
+ illuminant.
+ - Added support for the X-Rite i1Studio instrument. Note that
+ you may have to un-install and re-install the system drivers on
+ MSWindows, or update the udev 55-Argyll.rules file on Linux.
+ - Slight improvement to i1d3 accuracy, by rounding the frequency
+ mode measurements up by 0.5.
+ - Returned input profile forced Absolute Colorimetric option
+ with -ua flag, after the -u option was changed in V1.5.0.
+
+ - Try and fix problem in triggering calibration when
+ ARGYLL_NOT_INTERACTIVE is set.
+ - Improve compatibility of txt2ti3, and added -D option to mark
+ output as Display but not Normalized to white.
+ - Modified collink to disable Video encoded in/out sync level
+ preservation.
+ - Added support for custom Observer by using a .cmf file as an
+ argument to all tools taking an observer parameter.
+ - Added support for proposed CIE 2012 2 degree & 10 degree
+ observers, based on the CIE (2006) 2-deg LMS cone fundamentals.
+ - Fix problem with dispwin -E option not being shown in usage,
+ and only being applied when a calibration file is used.
+ - Added spotread -u option to display XYZ amd CIE 1976 Yuv
+ values.
+ - Added XRGA conversion support to spec2cie, as well as better
+ support in chartread and txt2ti3 for tracking XRGA standard and
+ polarization filter use.
+ - Fix bug in spec2cie processing emissive .sp files.
+ - Fix problem with i1d3 running direct USB (i.e. Not via HID) on
+ MSWin.
+ - Fixed bug in render/timage -p.
+ - Changed spotread ambient readings (CCT, CRI, TLCI) to show CCT
+ delta E in 1960 Duv units and others in Delta E 2000.
+ - Added ARGYLL_UNTWIST_GAMUT_SURFACE environment variable, that
+ enables extra gamut clip surface processing that may improve the
+ smoothness of device links and B2A tables for poorly behaved
+ devices.
+ - Fixed bug introduced in new colorimetric nearest clipping code
+ in rspl/rev.c in V1.9.0 that caused colprof using some ink limit
+ settings (such as -L0) to crash.
+ - Fixed bug introduced in new colorimetric nearest clipping code
+ in rspl/rev.c in V1.9.0 that caused some (mainly XYZ clut)
+ profiles to clip badly, causing banding.
+ - Improved dispcal -R VideoLUT depth measurement algorithm
+ robustness.
+ - Worked around latest OS X super slow opening serial port
+ problem (1.5 seconds to open a port!)
+ - Added ColorCheckerHalfPassport.cht file.
+ - Fixed bug in ChromeCast mDNS parsing that caused problems with
+ some devices with long names being detected.
+ - Now ignoring Chromecast-Audio and (.ca flags & 1) == 0
+ devices, and showing the friendly chromecast name if available.
+ - Wait longer to find more Chromecasts, even if we've found one.
+ - Fixed colprof bug when handling Display L*a*b* .ti3 data.
+ - Added Wacom i1d3 support.
+ - Changed dispwin to by default ignore Gnome colord, and use its
+ native ucmm for storage of display profiles, since colord
+ support for ArgyllCMS has proven unreliable. This can be
+ re-enabled by setting the ARGYLL_USE_COLORD environment variable
+ (i.e. to "true").
+ - Change X11 root window _ICC_PROFILE_xxx atom setting for
+ Xrandr case to now match the Xinerama order, so that
+ ICC_PROFILE_xxx atoms match, irrespective of which extension
+ applications are using. This improves conformance to "ICC
+ Profiles in X Specification 0.2".
+ - Improved ucmm install/load/delete to better respect
+ systemlocal/user scopes, as well as eliminating need for profile
+ name on delete when ucmm is used.
+ - Improve fast serial port scan to better detect Lumagen
+ Radiance without upsetting it.
+ - Added ARGYLL_EXCLUDE_SERIAL_SCAN environment variable, to
+ allow suppression of fast serial port scan of sensitive devices.
+
+
[V1.9.1 -> V1.9.2] 17th October 2016
- Added CMYKOGB and CMYKRGB 7 channel ink preset, and made
@@ -23,10 +105,7 @@
targen ink selection.
- Fix oeminst for OS X save location.
- - Fix oeminst for OS X Spyder 4 CD calibration file
- location.Improved robustness of ChromeCast discovery, and added
- some minimal diagnostics.
-
+ - Fix oeminst for OS X Spyder 4 CD calibration file location.
[V1.8.3 -> V1.9.1] 28th September 2016
@@ -1119,6 +1198,9 @@
+
+
+
@@ -1173,6 +1255,9 @@
+
+
+
diff --git a/doc/Chroma4.jpg b/doc/Chroma4.jpg
old mode 100644
new mode 100755
diff --git a/doc/ColorHug.jpg b/doc/ColorHug.jpg
old mode 100644
new mode 100755
diff --git a/doc/ColorManagement.html b/doc/ColorManagement.html
old mode 100644
new mode 100755
diff --git a/doc/ColorMunki.jpg b/doc/ColorMunki.jpg
old mode 100644
new mode 100755
diff --git a/doc/ColorMunkiCreate.jpg b/doc/ColorMunkiCreate.jpg
old mode 100644
new mode 100755
diff --git a/doc/Compiling.html b/doc/Compiling.html
old mode 100644
new mode 100755
index 942e15e..4e58f5d
--- a/doc/Compiling.html
+++ b/doc/Compiling.html
@@ -26,7 +26,7 @@
installed:
jam: Program construction tool, similar to make
- [If available]
+ [If available - downloadable from the ArgyllCMS website]
gcc C compiler
Development files for libX11
Development files for libXdmcp
diff --git a/doc/CrushedDisplyBlacks.html b/doc/CrushedDisplyBlacks.html
old mode 100644
new mode 100755
diff --git a/doc/DC.jpg b/doc/DC.jpg
old mode 100644
new mode 100755
diff --git a/doc/DTP20.jpg b/doc/DTP20.jpg
old mode 100644
new mode 100755
diff --git a/doc/DTP22.jpg b/doc/DTP22.jpg
old mode 100644
new mode 100755
diff --git a/doc/DTP41.jpg b/doc/DTP41.jpg
old mode 100644
new mode 100755
diff --git a/doc/DTP51.jpg b/doc/DTP51.jpg
old mode 100644
new mode 100755
diff --git a/doc/DTP92.jpg b/doc/DTP92.jpg
old mode 100644
new mode 100755
diff --git a/doc/DTP94.jpg b/doc/DTP94.jpg
old mode 100644
new mode 100755
diff --git a/doc/DocLicense.txt b/doc/DocLicense.txt
old mode 100644
new mode 100755
diff --git a/doc/EX1.jpg b/doc/EX1.jpg
old mode 100644
new mode 100755
diff --git a/doc/Environment.html b/doc/Environment.html
old mode 100644
new mode 100755
index c4c1aed..a639270
--- a/doc/Environment.html
+++ b/doc/Environment.html
@@ -97,6 +97,12 @@
+
+
+
+
+
+
mode manually will probably fail, because the character and
return get split up.)
@@ -118,6 +124,12 @@
+
+
+
+
+
+
or X3DOM, which will result in .wrl, .x3d
and .x3d.html files respectively. See 3d
@@ -132,6 +144,12 @@
+
+
+
+
+
+
Viewing Format.
@@ -173,6 +191,12 @@ a
+
+
+
+
+
+
delay of 200 msec is allowed between changing a patch color in
software, and that change appearing in the displayed color itself.
For some instuments (ie. i1d3, i1pro, ColorMunki, Klein K10-A)
@@ -200,6 +224,12 @@ environment
+
+
+
+
+
+
variable, ie. ARGYLL_MIN_DISPLAY_UPDATE_DELAY_MS=400 would set a
400 msec minimum delay.
@@ -346,6 +376,12 @@ environment
style="font-weight: bold;"> above
+
+
+
+
+
+
for more details.)
To
+
+
+
+
+
+
allow for strict conformance to the ICC specification when using
non-standard illuminants, setting the ARGYLL_CREATE_OUTPUT_PROFILE_WITH_CHAD
+
+
+
+
+
+
environment
+
+
+
+
+
+
variable causes a non-D50 illuminant white point change to be
hidden in the ChromaticAdapation Tag, and to still allow this to
be useful in a proofing situation, ArgyllCMS will incorporate the
effect of the ChromaticAdapation Tag when Absolute Colorimetric
- Intent is chosen. Note that other CMM's may not do. For full
+ Intent is chosen. Note that other CMM's may not do so. For full
conformance with ICC specifications, the
+
+ ARGYLL_IGNORE_XINERAMA
+
+
+ On an X11 system, if this is set (ie. set it to "yes"),
+ then the presence of the XInerama extension will be ignored, and
+ default X11 Screen numbering will be used to access multiple
+ displays.
+
+ ARGYLL_USE_COLORD
+ By default ArgyllCMS
+ >= V 1.9.4 will use its native ucmm to store
+ display ICC profiles on Linux based systems, but if the ARGYLL_USE_COLORD
+ environment variable is set, it will attempt to use the Gnome colord
+ storage instead.
ARGYLL_DISABLE_I1PRO2_DRIVER
@@ -433,8 +510,18 @@ environment
Eye-One Pro Rev E (aka Eye-One Pro 2) instrument features, but a
Rev E can be operated in legacy mode if the environment variable
ARGYLL_DISABLE_I1PRO2_DRIVER is set (ie. set it to "yes").
+
+
+ ARGYLL_EXCLUDE_SERIAL_SCAN
+ Normally ArgyllCMS will try and identify any device on a
+ fast serial port (i.e. USB or BlueTooth based port). This may
+ disturb devices it doesn't know about, so the
+ ARGYLL_EXCLUDE_SERIAL_SCAN variable can be set to a semi-colon or
+ comma separated list of serial ports that should not be fast
+ scanned. Example:
-
+ "COM2;/dev/tty5" etc.
+
ARGYLL_XRGA
If the ARGYLL_XRGA
@@ -450,7 +537,23 @@ environment
If not set (or set to some other string), then the native
calibration will be used. Note that the values must be upper case.
- XDG_CACHE_HOME
+ ARGYLL_UNTWIST_GAMUT_SURFACE
+
+ Whenever a color device profile value is inverted (i.e.
+ in creating ICC B2A tables, or creating a device link using gamut
+ mapping mode), colors that are out of gamut after gamut mapping,
+ will be clipped to the gamut surface. If the device behavior is
+ poor (i.e. non-monotonic), the gamut surface representation used
+ for clipping may have "shadow" areas that result in non-smooth
+ jumps in clipped output. Setting the ARGYLL_UNTWIST_GAMUT_SURFACE environment variable
+ to a non empty value will invoke an additional step in the gamut
+ surface creation routine, that attempts to minimize such shadowed
+ surface areas. This can improve the smoothness of clipped colors
+ for poorly behaved devices, but may make the output for some
+ devices worse.
+
+ XDG_CACHE_HOME
Argyll tries to follow the
, and uses the XDG_CACHE_HOME environment
variable to place per instrument calibration information, and
diff --git a/doc/FWA.html b/doc/FWA.html
old mode 100644
new mode 100755
diff --git a/doc/FWA_measure.jpg b/doc/FWA_measure.jpg
old mode 100644
new mode 100755
diff --git a/doc/File_Formats.html b/doc/File_Formats.html
old mode 100644
new mode 100755
diff --git a/doc/Fluorescent.jpg b/doc/Fluorescent.jpg
old mode 100644
new mode 100755
diff --git a/doc/HCFR.jpg b/doc/HCFR.jpg
old mode 100644
new mode 100755
diff --git a/doc/HCT.jpg b/doc/HCT.jpg
old mode 100644
new mode 100755
diff --git a/doc/HiResLaser.jpg b/doc/HiResLaser.jpg
old mode 100644
new mode 100755
diff --git a/doc/Huey.jpg b/doc/Huey.jpg
old mode 100644
new mode 100755
diff --git a/doc/Installing.html b/doc/Installing.html
old mode 100644
new mode 100755
diff --git a/doc/Installing_Linux.html b/doc/Installing_Linux.html
old mode 100644
new mode 100755
index dc9a044..8e4795c
--- a/doc/Installing_Linux.html
+++ b/doc/Installing_Linux.html
@@ -1,49 +1,49 @@
-
-
-
-
-
-
- Argyll Installation on Linux
-
-
- Installing the software on Linux with X11
-
-
- You will need to unpack the downloaded file in the location you have
- chosen to hold the executable files. Typically this might be in /usr/local/, or perhaps $HOME/bin/. You would then
- unpack the files using tar -zxf
- archivename.tgz, which will
- create a directory Argyll_VX.X.X,
- where X.X.X is the version number, and the executables will be in Argyll_VX.X.X/bin You will also
- have to configure your $PATH environment variable to give access to
- the executables from your command line environment. The .tgz file
- also contains several useful reference files (such as scanner chart
- recognition templates, sample illumination spectrum etc.) in the ref
- sub-directory, as well as all the current HTML documentation in a
- doc sub-directory. You may want to copy things to more standard
- locations such as /usr/local/bin, /usr/local/argyll/bin etc.,
- depending on the conventions used on your system.
-
- Some systems (Fedora ?) seem to be missing normal X11 libraries like
- libXss.so, so you may have to install libXScrnSaver,
- i.e. "sudo dnf install libXScrnSaver".
-
- Note on the system bell:
-
- When reading strips using the Eye-One Pro or ColorMunki instrument,
- the system bell is used to indicate when the instrument the ready to
- be used, and to provide feedback on any problems. On some Linux
- installations the system bell may be disabled. As well as checking
- the terminal and GUI sound preferences, you may have to enable the
- used of the PC speaker driver, which can be done by adding the
+
+
+
+
+
+
+ Argyll Installation on Linux
+
+
+ Installing the software on Linux with X11
+
+
+ You will need to unpack the downloaded file in the location you have
+ chosen to hold the executable files. Typically this might be in /usr/local/, or perhaps $HOME/bin/. You would then
+ unpack the files using tar -zxf
+ archivename.tgz, which will
+ create a directory Argyll_VX.X.X,
+ where X.X.X is the version number, and the executables will be in Argyll_VX.X.X/bin You will also
+ have to configure your $PATH environment variable to give access to
+ the executables from your command line environment. The .tgz file
+ also contains several useful reference files (such as scanner chart
+ recognition templates, sample illumination spectrum etc.) in the ref
+ sub-directory, as well as all the current HTML documentation in a
+ doc sub-directory. You may want to copy things to more standard
+ locations such as /usr/local/bin, /usr/local/argyll/bin etc.,
+ depending on the conventions used on your system.
+
+ Some systems (Fedora ?) seem to be missing normal X11 libraries like
+ libXss.so, so you may have to install libXScrnSaver,
+ i.e. "sudo dnf install libXScrnSaver".
+
+ Note on the system bell:
+
+ When reading strips using the Eye-One Pro or ColorMunki instrument,
+ the system bell is used to indicate when the instrument the ready to
+ be used, and to provide feedback on any problems. On some Linux
+ installations the system bell may be disabled. As well as checking
+ the terminal and GUI sound preferences, you may have to enable the
+ used of the PC speaker driver, which can be done by adding the
command /sbin/modprobe pcspkr to
@@ -57,8 +57,9 @@
-
- the /etc/rc.local startup
+
+
+ the /etc/rc.local startup
script. You may also have to run xset
@@ -72,213 +73,215 @@
-
- b 100 1000 100 in your local setup, if you are running in
- an X11 environment. You can check that the system bell is operating
- by doing an "echo ^G", where ^G is ctrl-G.
-
- Note on X11 multi-monitor
- setups:
-
- When working with a multi-monitor X11 configuration, note that you
- will only be able to individually calibrate monitors if the
- multi-window extension you are using (if any), supports access to
- the individual screen Video LUT tables that are used for
- calibration. The native X11 multi-screen addressing supports this,
- as does the Xinerama extension, and XRandR V1.2.
-
- The proprietary NVidia TwinView and ATI MergeFB extensions do not
- currently support access to the individual screen Video LUTs, so
- calibration of each screen independently is impossible if either of
- these extensions are running. You can switch to using Xinerama to
- solve this problem, or you can try doing a calibration for the
- screens that do have accessible Video LUTs with these proprietary
- extensions, or ignore calibration and rely purely on display
- profiling. Use the dispwin tool to figure out what works on your
- system. The NVidia ATI binary drivers do not seem to properly
- support XRandR V1.2 either, even though they claim to do so. You may
- have to set the ARGYLL_IGNORE_XRANDR1_2
- environment variable if the XRandR V1.2 extension is faulty.
-
- If these limitations trouble you, then as a valuable customer of
- NVidia or AMD/ATI, perhaps you should contact them and urge them to
- fix the problems with Video LUT access in their proprietary
- multi-monitor extensions and XRandR implementation, bringing their
- support for multi-monitors on X11 up to the same standards as other
- operating systems. Ask them to add full and correct support for the
- XRandR V1.2 extension.
-
- Fixing access to Video LUTs:
-
- Some users have noted that their default X11 installation doesn't
- properly enable access to the video card Video Lookup Tables
- (RAMDAC). The Video LUTs are used for display calibration purposes,
- and a warning will be issues by the dispcal and dispread
- tools if there is a problem with this. Without access to the
- VideoLUTs, you won't be able to use display calibration.
-
- The problem may be because certain X11 extensions aren't being
- loaded by default. You may want to check that you have
-
- Load "extmod"
-
- in the appropriate (or any) section of
- your Xorg.conf file, to allow the XF86Video LUT
- extensions to function correctly.
-
- Another source of problems is if the display isn't configured with a
- suitable visual. Typically for high quality color you need to be
- using at least 24 bits per
- pixel (8 Bits for each of Red, Green and Blue channels), but more
- importantly the number of entries in the the VideoLUTs needs to
- match the depth of the screen. So if the VideoLUTs have 256 entries
- per channel, then the screen must be using 8 bits per channel to
- match. Or 64 entries and 6 bits. Or 4096 entries and 12 bits, etc.
- Running "dispwin -D" may give some clues as to what the nature of
- the problem is. You might have to look into your xorg.conf or XRANDR
- setup, or on some distributions there will be some configuration
- program that will let you choose the display configuration (ie. YaST
- or SaX2 on openSUSE, etc.).
-
- Setting up instrument access:
-
- By default most Linux based systems make devices
- inaccessible to user mode programs, so it is necessary to make some
- modification to your permissions so that Argyll tools are able to
- access the Color Measurement Instruments. In order from newest to
- oldest, the following sub-systems may need to be configured to
- permit this:
-
- No device
- configuration needed when running from the console:
-
- Mandriva 2008.0 default
- installation
-
-
-
Ubuntu 10.04
-
Fedora
- Core 8
-
Mandriva 2008.1
-
OpenSuSE 10.3
-
Ubuntu 7.1
-
Kubuntu 7.1
-
Debian 4.0
-
-
Red Hat 4.0
-
Fedora Core 4
-
Fedora Core 3
-
Fedora Core 2
-
-
-
All
-
-
NOTE: That
mtp-probe
- /
libmtp been known
- to interfere with device access, particularly the Spyder 3 and
- DTP94. Recent versions of the libmtp should ignore any instrument
- marked as COLOR_MEASUREMENT_DEVICE by the
- /etc/udev/rules.d/55-Argyll.rules file, but for older systems you
- probably need to disable libmtp (look in the udev configuration).
-
- The
JETI specbos
1211, 1201,
- 1511, 1501 and the
Klien K10A makes use of the
FTDI Virtual COM
- Port Drivers (VCP), that should come with any recent version
- of Linux. Older versions of Linux may not support the FTDI FT231XS
- chip that the
JETI specbos
1511, 1501 use. You may
- have to add yourself to the
- tty, uucp
- or
dialout group to have permission to open the
- instrument.
-
-
-
-
No
- device configuration needed:
- A few systems have in place a security configuration such that
- anyone logging in at the console of a machine has access to all the
- local devices.
-
-
USB
- instruments access using udev with existing /etc/udev/rules.d or
- /usr/lib/udev/rules.d/69-cd-sensors.rules
- file.
-
-
Recent Fedora based
- systems include Gnome Color Manager, which comes with a udev rule
- for color instruments. You can check this by looking for the
/etc/udev/rules.d or in
/usr/lib/udev/rules.d/69-cd-sensors.rules
- file. If this exists and is up to date enough to include the
- instrument you want to use, then all you have to do is add yourself
- to the
colord group, ie:
-
- sudo usermod -a -G colord $USER
-
- If the
69-cd-sensors.rules file is out of date and does not
- include the latest instruments supported by Argyll, then the
- simplest thing to do is to replace the
69-cd-sensors.rules
- file with the
usb/55-Argyll.rules. You will need
- to do this as root, and set the owner as root, group root,
- permissions 644. You may need to re-plug in your instrument to get
- changes to the udev rules recognised.
-
USB
- instruments access using udev, with no existing /etc/udev/rules.d or /usr/lib/udev/rules.d/69-cd-sensors.rules
- file.
-
- Most recent systems use udev to manage device names and permissions,
- but by default color instruments may not be accessible to normal
- system users.
- To solve this a udev rule file needs to be added that modifies the
- group and permission of any Color Measurement Instruments, and you
- may then need to add yourself to that group.
-
- First check whether other rules are in
/etc/udev/rules.d or in
/usr/lib/udev/rules.d,
- and use the appropriate directory.
- (You may also want to check in that directory whether
- 55-Argyll.rules or some other .rules file that is setup to enable
- color instruments already exists in that directory.)
-
-
Copy the file
usb/55-Argyll.rules from the binary or source
- distribution into
/etc/udev/rules.d/55-Argyll.rules
+
+
+ b 100 1000 100 in your local setup, if you are running in
+ an X11 environment. You can check that the system bell is operating
+ by doing an "echo ^G", where ^G is ctrl-G.
+
+
Note on X11 multi-monitor
+ setups:
+
+ When working with a multi-monitor X11 configuration, note that you
+ will only be able to individually calibrate monitors if the
+ multi-window extension you are using (if any), supports access to
+ the individual screen Video LUT tables that are used for
+ calibration. The native X11 multi-screen addressing supports this,
+ as does the Xinerama extension, and XRandR V1.2.
+
+ The proprietary NVidia TwinView and ATI MergeFB extensions do not
+ currently support access to the individual screen Video LUTs, so
+ calibration of each screen independently is impossible if either of
+ these extensions are running. You can switch to using Xinerama to
+ solve this problem, or you can try doing a calibration for the
+ screens that do have accessible Video LUTs with these proprietary
+ extensions, or ignore calibration and rely purely on display
+ profiling. Use the dispwin tool to figure out what works on your
+ system. The NVidia ATI binary drivers do not seem to properly
+ support XRandR V1.2 either, even though they claim to do so. You may
+ have to set the
ARGYLL_IGNORE_XRANDR1_2
+ environment variable if the XRandR V1.2 extension is faulty.
+
+ If these limitations trouble you, then as a valuable customer of
+ NVidia or AMD/ATI, perhaps you should contact them and urge them to
+ fix the problems with Video LUT access in their proprietary
+ multi-monitor extensions and XRandR implementation, bringing their
+ support for multi-monitors on X11 up to the same standards as other
+ operating systems. Ask them to add full and correct support for the
+ XRandR V1.2 extension.
+
+
Fixing access to Video LUTs:
+
+ Some users have noted that their default X11 installation doesn't
+ properly enable access to the video card Video Lookup Tables
+ (RAMDAC). The Video LUTs are used for display calibration purposes,
+ and a warning will be issues by the
dispcal and
dispread
+ tools if there is a problem with this. Without access to the
+ VideoLUTs, you won't be able to use display calibration.
+
+ The problem may be because certain X11 extensions aren't being
+ loaded by default. You may want to check that you have
+
+
Load "extmod"
+
+ in the appropriate (or any) section of
+ your Xorg.conf file, to allow the XF86Video LUT
+ extensions to function correctly.
+
+ Another source of problems is if the display isn't configured with a
+ suitable visual. Typically for high quality color you need to be
+ using at least
24 bits per
+ pixel (8 Bits for each of Red, Green and Blue channels), but more
+ importantly the number of entries in the the VideoLUTs needs to
+ match the depth of the screen. So if the VideoLUTs have 256 entries
+ per channel, then the screen must be using 8 bits per channel to
+ match. Or 64 entries and 6 bits. Or 4096 entries and 12 bits, etc.
+ Running "dispwin -D" may give some clues as to what the nature of
+ the problem is. You might have to look into your xorg.conf or XRANDR
+ setup, or on some distributions there will be some configuration
+ program that will let you choose the display configuration (ie. YaST
+ or SaX2 on openSUSE, etc.).
+
+
Setting up instrument access:
+
+ By default most Linux based systems make devices
+ inaccessible to user mode programs, so it is necessary to make some
+ modification to your permissions so that Argyll tools are able to
+ access the Color Measurement Instruments. In order from newest to
+ oldest, the following sub-systems may need to be configured to
+ permit this:
+
+
No device
+ configuration needed when running from the console:
+
+ Mandriva 2008.0 default
+ installation
+
+
+
Ubuntu 10.04
+
Fedora
+ Core 8
+
Mandriva 2008.1
+
OpenSuSE 10.3
+
Ubuntu 7.1
+
Kubuntu 7.1
+
Debian 4.0
+
+
Red Hat 4.0
+
Fedora Core 4
+
Fedora Core 3
+
Fedora Core 2
+
+
+
All
+
+
NOTE: That
mtp-probe
+ /
libmtp been known
+ to interfere with device access, particularly the Spyder 3 and
+ DTP94. Recent versions of the libmtp should ignore any instrument
+ marked as COLOR_MEASUREMENT_DEVICE by the
+ /etc/udev/rules.d/55-Argyll.rules file, but for older systems you
+ probably need to disable libmtp (look in the udev configuration).
+
+ The
JETI specbos
1211, 1201,
+ 1511, 1501 and the
Klien K10A makes use of the
FTDI Virtual COM
+ Port Drivers (VCP), that should come with any recent version
+ of Linux. Older versions of Linux may not support the FTDI FT231XS
+ chip that the
JETI specbos
1511, 1501 use. You may
+ have to add yourself to the
+ tty, uucp
+ or
dialout group to have permission to open the
+ instrument.
+
+
+
+
No
+ device configuration needed:
+ A few systems have in place a security configuration such that
+ anyone logging in at the console of a machine has access to all the
+ local devices.
+
+
USB
+ instruments access using udev with existing /etc/udev/rules.d or
+ /usr/lib/udev/rules.d/69-cd-sensors.rules
+ file.
+
+
Recent Fedora based
+ systems include Gnome Color Manager, which comes with a udev rule
+ for color instruments. You can check this by looking for the
/etc/udev/rules.d or in
/usr/lib/udev/rules.d/69-cd-sensors.rules
+ file. If this exists and is up to date enough to include the
+ instrument you want to use, then all you have to do is add yourself
+ to the
colord group, ie:
+
+ sudo usermod -a -G colord $USER
+
+ If the
69-cd-sensors.rules file is out of date and does not
+ include the latest instruments supported by Argyll, then the
+ simplest thing to do is to replace the
69-cd-sensors.rules
+ file with the
usb/55-Argyll.rules. You will need
+ to do this as root, and set the owner as root, group root,
+ permissions 644. You may need to re-plug in your instrument to get
+ changes to the udev rules recognised.
+
USB
+ instruments access using udev, with no existing /etc/udev/rules.d or /usr/lib/udev/rules.d/69-cd-sensors.rules
+ file.
+
+ Most recent systems use udev to manage device names and permissions,
+ but by default color instruments may not be accessible to normal
+ system users.
+ To solve this a udev rule file needs to be added that modifies the
+ group and permission of any Color Measurement Instruments, and you
+ may then need to add yourself to that group.
+
+ First check whether other rules are in
/etc/udev/rules.d or in
/usr/lib/udev/rules.d,
+ and use the appropriate directory.
+ (You may also want to check in that directory whether
+ 55-Argyll.rules or some other .rules file that is setup to enable
+ color instruments already exists in that directory.)
+
+
Copy the file
usb/55-Argyll.rules from the binary or source
+ distribution into
/etc/udev/rules.d/55-Argyll.rules
or
/usr/lib/udev/rules.d/55-Argyll.rules
-
- (as appropriate) with owner root, group root,
- permissions 644.
-
- If you are on an
older system
- that uses a udev that doesn't recognize the syntax used in
- 55-Argyll.rules, or that doesn't have rules to create the libusb
- /dev/bus/usb/00X/00Y device entries, you should install the
usb/45-Argyll.rules file instead
- - See below.
-
- On recent systems the new rules file will be notices as soon as you
- plug the instrument in again.
+
+
+ (as appropriate) with owner root, group root,
+ permissions 644.
+
+ If you are on an
older system
+ that uses a udev that doesn't recognize the syntax used in
+ 55-Argyll.rules, or that doesn't have rules to create the libusb
+ /dev/bus/usb/00X/00Y device entries, you should install the
usb/45-Argyll.rules file instead
+ - See below.
+
+ On recent systems the new rules file will be notices as soon as you
+ plug the instrument in again.
On older systems you may need to run
/sbin/udevtrigger,
@@ -293,62 +296,63 @@
-
-
/sbin/udevcontrol reload_rules or
/sbin/udevstart or reboot to get
- the new file noticed.
-
- (You may want to refer to
this
- document for more guidance on modifying udev rules, as well as
-
this.)
-
-
YOU THEN MAY NEED TO:
-
- If your system is
not using
- the ACL to manage device access for console users (the file
/var/run/ConsoleKit/database
- doesn't exist on your system), then you will
need to add yourself to
- the
colord group, if you
- are not already a member of it. You can do this either by using a
- "Users and Groups" system administration tool, or on the command
- line running as root:
-
- sudo usermod -a -G colord $USER
-
- or
- su root
- usermod -a -G colord $USER
-
- (If the usermod program isn't found as root, it might be in
- /usr/sbin, ie. use /usr/sbin/usermod .... etc.
- If usermod doesn't recognize the -a flag try "usermod -A
- colord $USER".
- If this doesn't work you will have to run "id yourusername" to
- list the current supplemental
- groups, and add them plus colord using just "usermod -G
- group1,group2,... yourusername")
-
- You may find that the
colord group doesn't exist on
- your system, and if so you will need to create it:
-
- sudo groupadd -r colord
-
- and then add yourself to the
colord group.
-
- You may have to log out and then in again for the groups to become
- effective.
-
- You can check whether the instrument is being recognized and set to
- the colord group by comparing the output of
ls -l -R /dev/bus/usb without
- and then with the instrument plugged in.
-
- You can test whether your instrument is accessible by plugging it in
- and then running "spotread -?" and looking for it listed after the
-c option.
+
+
+
/sbin/udevcontrol reload_rules or
/sbin/udevstart or reboot to get
+ the new file noticed.
+
+ (You may want to refer to
this
+ document for more guidance on modifying udev rules, as well as
+
this.)
+
+
YOU THEN MAY NEED TO:
+
+ If your system is
not using
+ the ACL to manage device access for console users (the file
/var/run/ConsoleKit/database
+ doesn't exist on your system), then you will
need to add yourself to
+ the
colord group, if you
+ are not already a member of it. You can do this either by using a
+ "Users and Groups" system administration tool, or on the command
+ line running as root:
+
+ sudo usermod -a -G colord $USER
+
+ or
+ su root
+ usermod -a -G colord $USER
+
+ (If the usermod program isn't found as root, it might be in
+ /usr/sbin, ie. use /usr/sbin/usermod .... etc.
+ If usermod doesn't recognize the -a flag try "usermod -A
+ colord $USER".
+ If this doesn't work you will have to run "id yourusername" to
+ list the current supplemental
+ groups, and add them plus colord using just "usermod -G
+ group1,group2,... yourusername")
+
+ You may find that the
colord group doesn't exist on
+ your system, and if so you will need to create it:
+
+ sudo groupadd -r colord
+
+ and then add yourself to the
colord group.
+
+ You may have to log out and then in again for the groups to become
+ effective.
+
+ You can check whether the instrument is being recognized and set to
+ the colord group by comparing the output of
ls -l -R /dev/bus/usb without
+ and then with the instrument plugged in.
+
+ You can test whether your instrument is accessible by plugging it in
+ and then running "spotread -?" and looking for it listed after the
-c option.
USB
instruments
@@ -364,73 +368,74 @@ instruments
-
- access using hotplug:
-
- Under
much older versions of Linux,
- you should look into the hotplug system configuration for USB
- devices. You know you are running this because the
/etc/hotplug directory exists on
- your system.
-
- Assuming we want to configure for all Argyll supported USB
- instruments, copy the file
usb/Argyll.usermap from the binary
- or source distribution into
/etc/hotplug/usb/Argyll.usermap
- with owner root, group root, permissions 644.
-
-
- (For even older versions, append the lines above to
/etc/hotplug/usb.usermap, and
- you may have to run
update-usb.usermap)
-
- Then copy the file
usb/Argyll from the binary or source
- distribution into
/etc/hotplug/usb/Argyll
- with owner root, group root, permissions 744.
-
-
YOU THEN NEED TO:
-
- You will then
need to add
- yourself to the
colord
- group, if you are not already a member of it. You can do this either
- by using a "Users and Groups" system administration tool, or on the
- command line running as root:
-
- sudo usermod -a -G colord $USER
-
- or
- su root
- usermod -a -G colord $USER
-
-
- (If the usermod program isn't found as root, it might be in
- /usr/sbin, ie. use /usr/sbin/usermod .... etc.
- If usermod doesn't recognize the -a flag try "usermod -A
- colord $USER".
- If this doesn't work you will have to run "id yourusername" to
- list the current suplemental
- groups, and add colord using just "usermod -G
- group1,group2,... yourusername"
- Another option may be to use gpasswd -a $USER colord))
-
- You may find that the
colord
- group doesn't exist on your system, and if so you will need to
- create it:
-
- sudo groupadd -r colord
-
- and then add yourself to the colord group.
-
- You may have to log out and then in again for the groups to become
- effective.
-
- You can test whether your instrument is accessible by plugging it in
- and then running "spotread -?" and looking for it listed after the
-c option.
-
+
+
+ access using hotplug:
+
+ Under
much older versions of Linux,
+ you should look into the hotplug system configuration for USB
+ devices. You know you are running this because the
/etc/hotplug directory exists on
+ your system.
+
+ Assuming we want to configure for all Argyll supported USB
+ instruments, copy the file
usb/Argyll.usermap from the binary
+ or source distribution into
/etc/hotplug/usb/Argyll.usermap
+ with owner root, group root, permissions 644.
+
+
+ (For even older versions, append the lines above to
/etc/hotplug/usb.usermap, and
+ you may have to run
update-usb.usermap)
+
+ Then copy the file
usb/Argyll from the binary or source
+ distribution into
/etc/hotplug/usb/Argyll
+ with owner root, group root, permissions 744.
+
+
YOU THEN NEED TO:
+
+ You will then
need to add
+ yourself to the
colord
+ group, if you are not already a member of it. You can do this either
+ by using a "Users and Groups" system administration tool, or on the
+ command line running as root:
+
+ sudo usermod -a -G colord $USER
+
+ or
+ su root
+ usermod -a -G colord $USER
+
+
+ (If the usermod program isn't found as root, it might be in
+ /usr/sbin, ie. use /usr/sbin/usermod .... etc.
+ If usermod doesn't recognize the -a flag try "usermod -A
+ colord $USER".
+ If this doesn't work you will have to run "id yourusername" to
+ list the current suplemental
+ groups, and add colord using just "usermod -G
+ group1,group2,... yourusername"
+ Another option may be to use gpasswd -a $USER colord))
+
+ You may find that the
colord
+ group doesn't exist on your system, and if so you will need to
+ create it:
+
+ sudo groupadd -r colord
+
+ and then add yourself to the colord group.
+
+ You may have to log out and then in again for the groups to become
+ effective.
+
+ You can test whether your instrument is accessible by plugging it in
+ and then running "spotread -?" and looking for it listed after the
-c option.
+
Serial
instruments
@@ -446,47 +451,49 @@ instruments
-
- access:
-
- If you have a serial instrument then you may find that by default
- you don't have permission to access the serial ports or a Serial to
- USB adapter. Most systems make the serial ports available to any
- user in the
tty,
uucp or
dialout group,
- so the best way of getting access to the serial ports is to add
- yourself to the correct group. (You can identify the correct group
- by looking at the group name shown by
ls -l /dev/ttyS* )
-
- You can add yourself to a group either by using a "Users
- and Groups" system administration tool, or on the command line using
- "usermod":
-
- su root
- usermod -a -G dialout $USER
-
- or
-
- sudo usermod -a -G dialout $USER
-
- (If the usermod program isn't found as root, it might be in
- /usr/sbin, ie. use /usr/sbin/usermod .... etc.
- If usermod doesn't recognize the -a flag try "usermod -A
- dialout $USER".
- If this doesn't work you will have to run "id yourusername" to
- list the current suplemental
- groups, and add a tty, uucp or dialout group using just
- "usermod -G group1,group2,... yourusername"
- Another option may be to use gpasswd -a $USER dialout)
-
- You may have to log out and then in again for the group to become
- effective.
-
-
-
-
-
-
-
-
-
+
+
+ access:
+
+ If you have a serial instrument then you may find that by default
+ you don't have permission to access the serial ports or a Serial to
+ USB adapter. Most systems make the serial ports available to any
+ user in the
tty,
uucp or
dialout group,
+ so the best way of getting access to the serial ports is to add
+ yourself to the correct group. (You can identify the correct group
+ by looking at the group name shown by
ls -l /dev/ttyS* )
+
+ You can add yourself to a group either by using a "Users
+ and Groups" system administration tool, or on the command line using
+ "usermod":
+
+ su root
+ usermod -a -G dialout $USER
+
+ or
+
+ sudo usermod -a -G dialout $USER
+
+ (If the usermod program isn't found as root, it might be in
+ /usr/sbin, ie. use /usr/sbin/usermod .... etc.
+ If usermod doesn't recognize the -a flag try "usermod -A
+ dialout $USER".
+ If this doesn't work you will have to run "id yourusername" to
+ list the current suplemental
+ groups, and add a tty, uucp or dialout group using just
+ "usermod -G group1,group2,... yourusername"
+ Another option may be to use gpasswd -a $USER dialout)
+
+ You may have to log out and then in again, or even re-boot your
+ system for the group to become effective.
+
+
+
+
+
+
+
+
+
diff --git a/doc/Installing_MSWindows.html b/doc/Installing_MSWindows.html
old mode 100644
new mode 100755
diff --git a/doc/Installing_OSX.html b/doc/Installing_OSX.html
old mode 100644
new mode 100755
diff --git a/doc/JETI_1211.jpg b/doc/JETI_1211.jpg
old mode 100644
new mode 100755
diff --git a/doc/JETI_1501.jpg b/doc/JETI_1501.jpg
old mode 100644
new mode 100755
diff --git a/doc/K10A.jpg b/doc/K10A.jpg
old mode 100644
new mode 100755
diff --git a/doc/Kgraph1.jpg b/doc/Kgraph1.jpg
old mode 100644
new mode 100755
diff --git a/doc/Kgraph2.jpg b/doc/Kgraph2.jpg
old mode 100644
new mode 100755
diff --git a/doc/Kgraph3.jpg b/doc/Kgraph3.jpg
old mode 100644
new mode 100755
diff --git a/doc/Kgraph4.jpg b/doc/Kgraph4.jpg
old mode 100644
new mode 100755
diff --git a/doc/Kgraph5.jpg b/doc/Kgraph5.jpg
old mode 100644
new mode 100755
diff --git a/doc/Kgraph6.jpg b/doc/Kgraph6.jpg
old mode 100644
new mode 100755
diff --git a/doc/Kgraph7.jpg b/doc/Kgraph7.jpg
old mode 100644
new mode 100755
diff --git a/doc/Kgraph8.jpg b/doc/Kgraph8.jpg
old mode 100644
new mode 100755
diff --git a/doc/Kparams.jpg b/doc/Kparams.jpg
old mode 100644
new mode 100755
diff --git a/doc/LSDC.jpg b/doc/LSDC.jpg
old mode 100644
new mode 100755
diff --git a/doc/LabSteps.jpg b/doc/LabSteps.jpg
old mode 100644
new mode 100755
diff --git a/doc/License.txt b/doc/License.txt
old mode 100644
new mode 100755
diff --git a/doc/License2.txt b/doc/License2.txt
old mode 100644
new mode 100755
diff --git a/doc/License3.txt b/doc/License3.txt
old mode 100644
new mode 100755
diff --git a/doc/License4.txt b/doc/License4.txt
old mode 100644
new mode 100755
diff --git a/doc/Limitations.html b/doc/Limitations.html
old mode 100644
new mode 100755
diff --git a/doc/MinorTools.html b/doc/MinorTools.html
old mode 100644
new mode 100755
diff --git a/doc/Organisation.html b/doc/Organisation.html
old mode 100644
new mode 100755
diff --git a/doc/Overview.html b/doc/Overview.html
old mode 100644
new mode 100755
diff --git a/doc/Passport.jpg b/doc/Passport.jpg
new file mode 100755
index 0000000..9bfc401
Binary files /dev/null and b/doc/Passport.jpg differ
diff --git a/doc/Performance.html b/doc/Performance.html
old mode 100644
new mode 100755
diff --git a/doc/Q60.jpg b/doc/Q60.jpg
old mode 100644
new mode 100755
diff --git a/doc/QPcard201.jpg b/doc/QPcard201.jpg
old mode 100644
new mode 100755
diff --git a/doc/QPcard202.jpg b/doc/QPcard202.jpg
old mode 100644
new mode 100755
diff --git a/doc/SG.jpg b/doc/SG.jpg
old mode 100644
new mode 100755
diff --git a/doc/SG_footer.txt b/doc/SG_footer.txt
old mode 100644
new mode 100755
diff --git a/doc/SG_header.txt b/doc/SG_header.txt
old mode 100644
new mode 100755
diff --git a/doc/SMCube.jpg b/doc/SMCube.jpg
old mode 100644
new mode 100755
diff --git a/doc/Scenarios.html b/doc/Scenarios.html
old mode 100644
new mode 100755
index 8aa5d64..9a55e88
--- a/doc/Scenarios.html
+++ b/doc/Scenarios.html
@@ -75,7 +75,7 @@
handled when calibration is being used
-
Image dependent gamut
+ Image dependent gamut
mapping using device links
Soft Proofing Link
@@ -179,6 +179,12 @@
+
+
+
+
+
+
@@ -263,6 +269,12 @@
+
+
+
+
+
+
@@ -660,6 +672,12 @@
+
+
+
+
+
+
@@ -736,6 +754,12 @@
+
+
+
+
+
+
@@ -751,6 +775,16 @@
style="font-weight: bold;">ccmx files is here.
+ Another, more general approach to correcting Colorimeters is to
+ store the spectral sensitivities for each individual instrument in
+ the instrument itself, and then combine that with spectral samples
+ for a particular display type to compute a specific instrument +
+ display correction matrix on the fly (i.e. the i1d3 * Spyder 4 &
+ 5 instruments). The display spectral samples can be stored in a Colorimeter Correction Spectral
+ Sample file. A list of contributed ccss files is here.
Calibrating and profiling a display that
doesn't have VideoLUT access.
In some situation there is no access to a displays VideoLUT
@@ -825,7 +859,7 @@
href="cctiff.html#p1">DisplayA.icm
DisplayA.cal
infile.jpg outfile.jpg
-
+
Profiling Scanners and other input devices
such as cameras
@@ -910,6 +944,12 @@
+
+
+
+
+
+
@@ -924,6 +964,12 @@
width="200" height="122">
+ A chart provided for camera profiling is the X-Rite ColorCheckerPassport:
+
+
+
The GretagMacbeth Eye-One Pro Scan Target 1.4 can also be used:
spec2cie
ColorCheckerSG.ti3 ColorCheckerSG.cie
+ For the full ColortChecker Passport chart, the ref/ColorCheckerPassport.cht
+ file should be used, or if just the 24 patches corresponding to
+ the original ColorChecker are in the shot, the ref/ColorCheckerHalfPassport.cht
+ should be used. A user has kindly provided their measured values
+ for this chart, and they are available in ref/ColorCheckerPassport.cie
+ and ref/ColorCheckerHalfPassport.cie respectively.
+
For the Eye-One Pro Scan Target 1.4 chart, the ref/i1_RGB_Scan_1.4.cht
file should be used, and as there is no reference file
@@ -1429,6 +1512,12 @@ href="http://www.xrite.com/documents/apps/public/digital_colorchecker_sg_l_a_b.t
+
+
+
+
+
+
file made from measuring a sample chart is also available.
Alternately you could create your own reference file by
@@ -1503,6 +1592,12 @@ href="http://www.xrite.com/documents/apps/public/digital_colorchecker_sg_l_a_b.t
+
+
+
+
+
+
@@ -1553,10 +1648,11 @@ href="http://www.xrite.com/documents/apps/public/digital_colorchecker_sg_l_a_b.t
linearly additive in behaviour.
If the purpose of the input profile is to use it as a substitute for
- a colorimeter, then the -u flag should be used to avoid
- clipping values above the white point. Unless the shaper/matrix type
- profile is a very good fit, it is probably advisable to use a LUT
- type profile in this situation.
+ a colorimeter, then the -ua flag should be used to force
+ Absolute Colorimetric intent, and avoid clipping colors above the
+ test chart white point. Unless the shaper/matrix type profile is a
+ very good fit, it is probably advisable to use a LUT type profile in
+ this situation.
To create a matrix/shaper profile, the following suffices:
@@ -1576,7 +1672,7 @@ href="http://www.xrite.com/documents/apps/public/digital_colorchecker_sg_l_a_b.t
colprof -v
-D"Scanner A" -qm
- -ax -u -ax -ua scanner
Make sure you check the delta E report at the end of the profile
@@ -1602,7 +1698,7 @@ href="http://www.xrite.com/documents/apps/public/digital_colorchecker_sg_l_a_b.t
href="colprof.html#p1">scanner
-
+
Profiling Printers
The overall process is to create a set of device measurement target
@@ -1902,7 +1998,7 @@ href="http://www.xrite.com/documents/apps/public/digital_colorchecker_sg_l_a_b.t
component images, if the scanner or camera 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 -u
+ the -ua
flag to avoid clipping scanned value whiter than the input
calibration chart.
@@ -1962,6 +2058,12 @@ href="http://www.xrite.com/documents/apps/public/digital_colorchecker_sg_l_a_b.t
+
+
+
+
+
+
@@ -2055,6 +2157,16 @@ href="http://www.xrite.com/documents/apps/public/digital_colorchecker_sg_l_a_b.t
the most different gamuts, and hence need the most gamut mapping to
convert from one colorspace to the other.
+ Note that specifying a very large gamut colorspace as the
+ source gamut (i.e. ProPhoto etc.) is probably NOT
+ what you want to do, since unless the source images have a similar
+ very large gamut to that of the colorspace, they will end up getting
+ over compressed and come out looking dull. Instead use a source
+ profile that has a gamut more representative of the images gamut, or
+ you should provide a gamut using the the -g
+
+ parameter.
+
If you are creating a profile for a specific purpose, intending to
link it to a specific input profile, then you will get the best
results by specifying that source profile as the source gamut.
@@ -2117,6 +2229,12 @@ then
+
+
+
+
+
+
@@ -2264,6 +2382,12 @@ then
+
+
+
+
+
+
@@ -2735,6 +2859,12 @@ chart,
+
+
+
+
+
+
@@ -2807,6 +2937,12 @@ an
+
+
+
+
+
+
@@ -2871,6 +3007,12 @@ an
+
+
+
+
+
+
@@ -2943,6 +3085,12 @@ a
+
+
+
+
+
+
@@ -3039,7 +3187,7 @@ a
represent such a physical quantity.
-
+
Linking Profiles
Two device profiles can be linked together to create a device link
profile, than encapsulates a particular device to device transform.
@@ -3217,7 +3365,7 @@ a
href="collink.html#d">-dmt options, then either leave them out
or substitute values that do match your environment.
-
+
Transforming colorspaces of raster files
Although a device profile or device link profile may be useful with
other programs and systems, Argyll provides the tool infile.jpg outfile.jpg
-
+
Creating Video Calibration 3DLuts
Video calibration typically involves trying to make your actual
display device emulate an ideal video display, one which matches
@@ -3297,6 +3445,12 @@ a
+
+
+
+
+
+
madvr" in dispcal, dispread and dispwin. Leave the MadTPG
"VideoLUT" and "3dluts" buttons in their default (enabled)
@@ -3359,6 +3513,12 @@ a
+
+
+
+
+
+
@@ -3401,6 +3561,12 @@ a
+
+
+
+
+
+
@@ -3485,7 +3651,7 @@ a
that the Video card has automatically or manually been configured to
scale full range RGB values to Video levels for the TV. If the
latter is not possible, then use the -E options on dispcal and
- dispread. (See Signal encoding bellow for more details on
+ dispread. (See Signal encoding below for more details on
this). It may also improve the accuracy of the display profile if
you use the dispread -Z option to
quantize the test values to the precision of the display
@@ -3893,6 +4059,12 @@ a
+
+
+
+
+
+
@@ -3924,6 +4096,12 @@ a
+
+
+
+
+
+
@@ -3962,6 +4140,12 @@ a
+
+
+
+
+
+
@@ -3993,6 +4177,12 @@ a
+
+
+
+
+
+
@@ -4018,7 +4208,7 @@ a
the graphics card VideoLUTs in some other fashion.
-
+
Verifying Video Calibration
Often it is desirable to verify the results of a video
calibration and profile, and the following gives an outline of how
@@ -4060,7 +4250,7 @@ a
options included "-I b:0.2:2.15" then the equivalent fakeread
option "-b 0.2:2.15:TV.icm" should be used, etc.
-
+
A sanity check we can make at this point is to see what the
expected result of the profiling & calibration will be, by
simulating the reproduction of this test set:
@@ -4104,7 +4294,7 @@ a
checkA.ti3
-
+
You can explicitly compare the gamuts of your video space and
your display using the gamut tools:
@@ -4119,7 +4309,7 @@ a
you should use iccgamut
-ir instead of
-ia, so as
to align the white points.
-
+
The main verification check is to actually measure the display
response and compare it against the reference. Make sure the
display is setup as you would for video playback and then use
diff --git a/doc/Smile.jpg b/doc/Smile.jpg
old mode 100644
new mode 100755
diff --git a/doc/Source.html b/doc/Source.html
old mode 100644
new mode 100755
diff --git a/doc/Spyd2.jpg b/doc/Spyd2.jpg
old mode 100644
new mode 100755
diff --git a/doc/Spyd3.jpg b/doc/Spyd3.jpg
old mode 100644
new mode 100755
diff --git a/doc/Spyd3x.jpg b/doc/Spyd3x.jpg
old mode 100644
new mode 100755
diff --git a/doc/Spyd4.jpg b/doc/Spyd4.jpg
old mode 100644
new mode 100755
diff --git a/doc/Spyd5.jpg b/doc/Spyd5.jpg
old mode 100644
new mode 100755
diff --git a/doc/SpyderChecker.jpg b/doc/SpyderChecker.jpg
old mode 100644
new mode 100755
diff --git a/doc/SpyderChecker24.jpg b/doc/SpyderChecker24.jpg
old mode 100644
new mode 100755
diff --git a/doc/VideoEOTFs.html b/doc/VideoEOTFs.html
old mode 100644
new mode 100755
diff --git a/doc/WideGamutColmters.html b/doc/WideGamutColmters.html
old mode 100644
new mode 100755
diff --git a/doc/XRGA.html b/doc/XRGA.html
old mode 100644
new mode 100755
index 295d7b2..778b8bd
--- a/doc/XRGA.html
+++ b/doc/XRGA.html
@@ -27,6 +27,7 @@
href="https://www.xrite.com/documents/literature/en/L7-462_XRGA_WhitePaper_en.pdf">conversion
+
is possible between these different standards. While such a
conversion is not perfect, it reduces the discontinuities between
old instrument families and current X-Rite instruments.
@@ -133,5 +134,8 @@ href="https://www.xrite.com/documents/literature/en/L7-462_XRGA_WhitePaper_en.pd
(The DTP51 returns only colorimetric data, while the conversion
requires spectral data.)
+ You can also convert from one standard to the other using spec2cie.
+