summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Hughes <richard@hughsie.com>2020-03-03 16:26:35 +0000
committerRichard Hughes <richard@hughsie.com>2020-03-03 17:08:06 +0000
commit5a1bf35e30ff689c727222fae1f31b0d4be4ae9d (patch)
tree1c500841dd397851c687fdbb7a4b695988e8c724
parentae0d44f5c7f4c2db9ab84d24451f9b3d4ae36dbc (diff)
downloadgnome-color-manager-5a1bf35e30ff689c727222fae1f31b0d4be4ae9d.tar.gz
Remove the calibration tools
This is not maintained, and does not work well.
-rw-r--r--contrib/gnome-color-manager.spec.in19
-rw-r--r--data/figures/calibration-long.svg2165
-rw-r--r--data/figures/calibration-normal.svg1474
-rw-r--r--data/figures/calibration-short.svg1029
-rw-r--r--data/figures/clock.svg1082
-rw-r--r--data/figures/meson.build12
-rw-r--r--data/figures/scan-target-bad.svg765
-rw-r--r--data/figures/scan-target-good.svg765
-rw-r--r--data/figures/scan-target.svg758
-rw-r--r--data/gcm-calibrate.desktop.in14
-rw-r--r--data/icons/meson.build8
-rw-r--r--data/icons/scalable/crt.svg1333
-rw-r--r--data/icons/scalable/lcd.svg276
-rw-r--r--data/icons/scalable/projector.svg687
-rw-r--r--data/meson.build3
-rw-r--r--data/targets/CMP-DigitalTarget3.pngbin44514 -> 0 bytes
-rw-r--r--data/targets/CMP_DT_003.pngbin39273 -> 0 bytes
-rw-r--r--data/targets/ColorChecker24.pngbin32929 -> 0 bytes
-rw-r--r--data/targets/ColorCheckerDC.pngbin41637 -> 0 bytes
-rw-r--r--data/targets/ColorCheckerSG.pngbin35945 -> 0 bytes
-rw-r--r--data/targets/IT872.pngbin31624 -> 0 bytes
-rw-r--r--data/targets/LaserSoftDCPro.pngbin37582 -> 0 bytes
-rw-r--r--data/targets/QPcard_201.pngbin14875 -> 0 bytes
-rw-r--r--data/targets/QPcard_202.pngbin36886 -> 0 bytes
-rw-r--r--data/targets/i1_RGB_Scan_14.pngbin35079 -> 0 bytes
-rw-r--r--data/targets/meson.build15
-rw-r--r--data/targets/unknown.pngbin2160 -> 0 bytes
-rw-r--r--data/ti1/README.txt6
-rw-r--r--data/ti1/display-long.ti1333
-rw-r--r--data/ti1/display-normal.ti1205
-rw-r--r--data/ti1/display-short.ti1141
-rw-r--r--data/ti1/meson.build10
-rw-r--r--data/ti1/printer-long.ti1661
-rw-r--r--data/ti1/printer-normal.ti1465
-rw-r--r--data/ti1/printer-short.ti1269
-rw-r--r--man/gcm-calibrate.sgml75
-rw-r--r--man/meson.build7
-rw-r--r--meson.build25
-rw-r--r--meson_options.txt2
-rw-r--r--src/gcm-brightness.c202
-rw-r--r--src/gcm-brightness.h48
-rw-r--r--src/gcm-calibrate-argyll.c2368
-rw-r--r--src/gcm-calibrate-argyll.h57
-rw-r--r--src/gcm-calibrate-main.c2233
-rw-r--r--src/gcm-calibrate.c1378
-rw-r--r--src/gcm-calibrate.h173
-rw-r--r--src/gcm-exif.c421
-rw-r--r--src/gcm-exif.h62
-rw-r--r--src/gcm-helper-exiv.cpp99
-rw-r--r--src/gcm-print.c281
-rw-r--r--src/gcm-print.h54
-rw-r--r--src/gcm-self-test.c181
-rw-r--r--src/gcm-utils.c199
-rw-r--r--src/gcm-utils.h9
-rw-r--r--src/meson.build82
55 files changed, 10 insertions, 20441 deletions
diff --git a/contrib/gnome-color-manager.spec.in b/contrib/gnome-color-manager.spec.in
index 2386ff3..6e94573 100644
--- a/contrib/gnome-color-manager.spec.in
+++ b/contrib/gnome-color-manager.spec.in
@@ -16,23 +16,14 @@ BuildRequires: gtk3-devel >= 3.0.0
BuildRequires: gnome-doc-utils >= 0.3.2
BuildRequires: desktop-file-utils
BuildRequires: gettext
-BuildRequires: vte3-devel
BuildRequires: gnome-doc-utils
BuildRequires: lcms2-devel
-BuildRequires: libtiff-devel
-BuildRequires: libexif-devel
-BuildRequires: exiv2-devel
-BuildRequires: libcanberra-devel
BuildRequires: glib2-devel >= 2.25.9-2
BuildRequires: docbook-utils
BuildRequires: colord-devel >= 0.1.12
-BuildRequires: colord-gtk-devel >= 0.1.22
BuildRequires: itstool
BuildRequires: meson
-Requires(post): /usr/bin/gtk-update-icon-cache
-Requires(postun): /usr/bin/gtk-update-icon-cache
-
# obsolete sub-package
Obsoletes: gnome-color-manager-devel <= 3.1.1
@@ -80,19 +71,9 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || :
%files -f %{name}.lang
%defattr(-,root,root,-)
%doc AUTHORS COPYING
-%{_bindir}/gcm-calibrate
-%{_libexecdir}/gcm-helper-exiv
%dir %{_datadir}/gnome-color-manager
-%dir %{_datadir}/gnome-color-manager/targets
-%dir %{_datadir}/gnome-color-manager/icons
%dir %{_datadir}/gnome-color-manager/figures
-%dir %{_datadir}/gnome-color-manager/ti1
-%{_datadir}/gnome-color-manager/targets/*
-%{_datadir}/gnome-color-manager/icons/*
%{_datadir}/gnome-color-manager/figures/*
-%{_datadir}/gnome-color-manager/ti1/*
-%{_datadir}/man/man1/gcm-calibrate.1.gz
-%{_datadir}/applications/gcm-calibrate.desktop
%files utils
%{_datadir}/icons/hicolor/*/*/*.png
diff --git a/data/figures/calibration-long.svg b/data/figures/calibration-long.svg
deleted file mode 100644
index 674ec9d..0000000
--- a/data/figures/calibration-long.svg
+++ /dev/null
@@ -1,2165 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="48px"
- height="48px"
- id="svg4198"
- sodipodi:version="0.32"
- inkscape:version="0.47 r22583"
- sodipodi:docname="calibration-long.svg"
- inkscape:output_extension="org.inkscape.output.svg.inkscape"
- version="1.1"
- inkscape:export-filename="/home/hughsie/Desktop/calibration-long.png"
- inkscape:export-xdpi="2231.25"
- inkscape:export-ydpi="2231.25">
- <defs
- id="defs4200">
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 24 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="48 : 24 : 1"
- inkscape:persp3d-origin="24 : 16 : 1"
- id="perspective45" />
- <linearGradient
- id="linearGradient15218">
- <stop
- style="stop-color:#f0f0ef;stop-opacity:1.0000000;"
- offset="0.0000000"
- id="stop15220" />
- <stop
- id="stop2269"
- offset="0.59928656"
- style="stop-color:#e8e8e8;stop-opacity:1;" />
- <stop
- id="stop2267"
- offset="0.82758623"
- style="stop-color:#ffffff;stop-opacity:1;" />
- <stop
- style="stop-color:#d8d8d3;stop-opacity:1.0000000;"
- offset="1.0000000"
- id="stop15222" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient2259">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop2261" />
- <stop
- style="stop-color:#ffffff;stop-opacity:0;"
- offset="1"
- id="stop2263" />
- </linearGradient>
- <linearGradient
- id="linearGradient2224">
- <stop
- style="stop-color:#7c7c7c;stop-opacity:1;"
- offset="0"
- id="stop2226" />
- <stop
- style="stop-color:#b8b8b8;stop-opacity:1;"
- offset="1"
- id="stop2228" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient2251">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop2253" />
- <stop
- style="stop-color:#ffffff;stop-opacity:0;"
- offset="1"
- id="stop2255" />
- </linearGradient>
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3057" />
- <linearGradient
- id="linearGradient5681">
- <stop
- style="stop-color:#460546;stop-opacity:1;"
- offset="0"
- id="stop5683" />
- <stop
- id="stop5689"
- offset="1"
- style="stop-color:#462546;stop-opacity:0.49803922;" />
- </linearGradient>
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 526.18109 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="744.09448 : 526.18109 : 1"
- inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
- id="perspective10" />
- <inkscape:perspective
- id="perspective2886"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3684"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3706"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3728"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3750"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3783"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3807"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3840"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3868"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3868-3"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3899"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3921"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3943"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3967"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3991"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective4013"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective4035"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective4075"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective2857"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3645"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3667"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3689"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3689-5"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3689-3"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3689-2"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3689-0"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3758"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3816"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3917"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3942"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <linearGradient
- id="linearGradient2224-4">
- <stop
- id="stop2226-8"
- offset="0"
- style="stop-color:#7c7c7c;stop-opacity:1;" />
- <stop
- id="stop2228-1"
- offset="1"
- style="stop-color:#b8b8b8;stop-opacity:1;" />
- </linearGradient>
- <linearGradient
- gradientTransform="translate(6.161836,4.033411)"
- gradientUnits="userSpaceOnUse"
- y2="42.0625"
- x2="39.0625"
- y1="39.15625"
- x1="36.8125"
- id="linearGradient2222"
- xlink:href="#linearGradient2216"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient2216"
- inkscape:collect="always">
- <stop
- id="stop2218"
- offset="0"
- style="stop-color:#000000;stop-opacity:1;" />
- <stop
- id="stop2220"
- offset="1"
- style="stop-color:#000000;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- gradientTransform="matrix(0.993566,0.000000,0.000000,1.000000,6.219859,4.033411)"
- gradientUnits="userSpaceOnUse"
- y2="42.007351"
- x2="30.811172"
- y1="26.696676"
- x1="26.076092"
- id="linearGradient2265"
- xlink:href="#linearGradient2259-5"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient2259-5"
- inkscape:collect="always">
- <stop
- id="stop2261-9"
- offset="0"
- style="stop-color:#ffffff;stop-opacity:1;" />
- <stop
- id="stop2263-8"
- offset="1"
- style="stop-color:#ffffff;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- gradientTransform="matrix(1.060837,0.000000,0.000000,0.987595,4.641161,4.108291)"
- gradientUnits="userSpaceOnUse"
- y2="39.498238"
- x2="35.785294"
- y1="18.992140"
- x1="22.308331"
- id="linearGradient15224"
- xlink:href="#linearGradient15218-5"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient15218-5">
- <stop
- id="stop15220-6"
- offset="0"
- style="stop-color:#f8f8f7;stop-opacity:1;" />
- <stop
- style="stop-color:#e8e8e8;stop-opacity:1;"
- offset="0.59928656"
- id="stop2269-1" />
- <stop
- id="stop15222-1"
- offset="1"
- style="stop-color:#e2e2de;stop-opacity:1;" />
- </linearGradient>
- <radialGradient
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.000000,0.000000,0.000000,0.651376,4.638648e-15,10.75754)"
- r="15.571428"
- fy="30.857143"
- fx="22.571428"
- cy="30.857143"
- cx="22.571428"
- id="radialGradient3564"
- xlink:href="#linearGradient3558"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient3558"
- inkscape:collect="always">
- <stop
- id="stop3560"
- offset="0"
- style="stop-color:#000000;stop-opacity:1;" />
- <stop
- id="stop3562"
- offset="1"
- style="stop-color:#000000;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- id="linearGradient5048">
- <stop
- id="stop5050"
- offset="0"
- style="stop-color:black;stop-opacity:0;" />
- <stop
- style="stop-color:black;stop-opacity:1;"
- offset="0.5"
- id="stop5056" />
- <stop
- id="stop5052"
- offset="1"
- style="stop-color:black;stop-opacity:0;" />
- </linearGradient>
- <inkscape:perspective
- id="perspective49"
- inkscape:persp3d-origin="24 : 16 : 1"
- inkscape:vp_z="48 : 24 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 24 : 1"
- sodipodi:type="inkscape:persp3d" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2251"
- id="linearGradient3342"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(6.161836,3.658411)"
- x1="33.396004"
- y1="36.921333"
- x2="34.170048"
- y2="38.070381" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2224"
- id="linearGradient3345"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(6.161836,4.033411)"
- x1="35.996582"
- y1="40.458221"
- x2="33.664921"
- y2="37.770721" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2259"
- id="linearGradient3348"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.999421,0,0,1,5.991319,4.033411)"
- x1="26.076092"
- y1="26.696676"
- x2="30.811172"
- y2="42.007351" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient15218"
- id="linearGradient3351"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.067236,0,0,0.989276,4.391684,4.035227)"
- x1="22.308331"
- y1="18.992140"
- x2="35.785294"
- y2="39.498238" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2259"
- id="linearGradient3359"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.0000097,0,0,0.99886092,-7.0309244,-4.958964)"
- x1="26.076092"
- y1="26.696676"
- x2="30.811172"
- y2="42.007351" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient15218"
- id="linearGradient3362"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.0673051,0,0,0.98820336,-8.6112329,-4.9577752)"
- x1="22.308331"
- y1="18.992140"
- x2="35.785294"
- y2="39.498238" />
- <inkscape:perspective
- id="perspective3373"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- </defs>
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#bebebe"
- borderopacity="1.0000000"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="32.000001"
- inkscape:cx="19.224377"
- inkscape:cy="30.806618"
- inkscape:current-layer="layer1"
- showgrid="false"
- inkscape:grid-bbox="true"
- inkscape:document-units="px"
- inkscape:window-width="1680"
- inkscape:window-height="1025"
- inkscape:window-x="1680"
- inkscape:window-y="0"
- inkscape:showpageshadow="false"
- inkscape:window-maximized="1" />
- <metadata
- id="metadata4203">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title>Edit Copy</dc:title>
- <dc:date>2005-10-15</dc:date>
- <dc:creator>
- <cc:Agent>
- <dc:title>Andreas Nilsson</dc:title>
- </cc:Agent>
- </dc:creator>
- <dc:subject>
- <rdf:Bag>
- <rdf:li>edit</rdf:li>
- <rdf:li>copy</rdf:li>
- </rdf:Bag>
- </dc:subject>
- <cc:license
- rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
- <dc:contributor>
- <cc:Agent>
- <dc:title>Jakub Steiner</dc:title>
- </cc:Agent>
- </dc:contributor>
- </cc:Work>
- <cc:License
- rdf:about="http://creativecommons.org/licenses/publicdomain/">
- <cc:permits
- rdf:resource="http://creativecommons.org/ns#Reproduction" />
- <cc:permits
- rdf:resource="http://creativecommons.org/ns#Distribution" />
- <cc:permits
- rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
- </cc:License>
- </rdf:RDF>
- </metadata>
- <g
- id="layer1"
- inkscape:label="Layer 1"
- inkscape:groupmode="layer">
- <rect
- style="opacity:0.5;fill:url(#linearGradient3362);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1.00000012;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
- id="rect4238"
- width="30.998234"
- height="35.998852"
- x="1.5007538"
- y="1.5008441"
- rx="0.56650811"
- ry="0.56650835" />
- <rect
- style="opacity:0.5;fill:none;stroke:url(#linearGradient3359);stroke-width:1.00000036;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
- id="rect4240"
- width="29.014429"
- height="34.001987"
- x="2.4863098"
- y="2.4991238"
- rx="0"
- ry="0" />
- <rect
- style="fill:none;stroke:url(#linearGradient3348);stroke-width:1.00000083;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
- id="rect15244"
- width="28.997349"
- height="34.040764"
- x="15.502951"
- y="11.5"
- rx="0"
- ry="0" />
- <rect
- style="fill:#b6ff3a;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-41-2"
- width="3.8646226"
- height="3.8646226"
- x="11.02425"
- y="-15.184527"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#ffffff;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-8-3"
- width="3.8646226"
- height="3.8646226"
- x="21.651962"
- y="-11.319903"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="opacity:0.58264465;fill:#40003e;fill-opacity:1;stroke:none"
- id="rect2863-2-6"
- width="3.8646226"
- height="3.8646226"
- x="25.588638"
- y="-11.319903"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)"
- inkscape:export-xdpi="2231.25"
- inkscape:export-ydpi="2231.25" />
- <rect
- style="fill:#8a23ff;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863"
- width="3.8646226"
- height="3.8646226"
- x="6.8375778"
- y="-7.4552789"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-4"
- width="0.32205188"
- height="3.8646226"
- x="10.702199"
- y="-7.4552789"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d10000;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-4-4"
- width="0.24153894"
- height="3.8646226"
- x="6.5960379"
- y="-7.4552789"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#000000;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-41"
- width="3.8646226"
- height="3.8646226"
- x="11.02425"
- y="-7.4552789"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d100b7;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-4-5"
- width="0.32205188"
- height="3.8646226"
- x="14.888874"
- y="-7.4552789"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#a8a8a8;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-49"
- width="3.8646226"
- height="3.8646226"
- x="15.210926"
- y="-7.4552789"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-4-8"
- width="0.32205188"
- height="3.8646226"
- x="19.07555"
- y="-7.4552789"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#9beb6f;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-8"
- width="3.8646226"
- height="3.8646226"
- x="19.3976"
- y="-7.4552789"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-4-52"
- width="0.32205188"
- height="3.8646226"
- x="23.262222"
- y="-7.4552789"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#a7b719;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-2"
- width="3.8646226"
- height="3.8646226"
- x="23.584274"
- y="-7.4552789"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-4-7"
- width="0.32205188"
- height="3.8646226"
- x="27.448895"
- y="-7.4552789"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#c9c9c9;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-3"
- width="3.8646226"
- height="3.8646226"
- x="27.770948"
- y="-7.4552789"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-4-46"
- width="0.32205188"
- height="3.8646226"
- x="31.635574"
- y="-7.4552789"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#f47d2c;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-492"
- width="3.8646226"
- height="3.8646226"
- x="9.0919399"
- y="-11.319903"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-4-74"
- width="0.32205188"
- height="3.8646226"
- x="12.956562"
- y="-11.319903"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d6d6d6;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-41-5"
- width="3.8646226"
- height="3.8646226"
- x="13.278615"
- y="-11.319903"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-4-5-2"
- width="0.32205188"
- height="3.8646226"
- x="17.143238"
- y="-11.319903"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#3f9650;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-49-4"
- width="3.8646226"
- height="3.8646226"
- x="17.46529"
- y="-11.319903"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-4-8-4"
- width="0.32205188"
- height="3.8646226"
- x="21.329912"
- y="-11.319903"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-4-52-8"
- width="0.32205188"
- height="3.8646226"
- x="25.516586"
- y="-11.319903"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-4-7-0"
- width="0.32205188"
- height="3.8646226"
- x="29.70326"
- y="-11.319903"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#f7f7f7;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-3-8"
- width="3.8646226"
- height="3.8646226"
- x="30.025312"
- y="-11.319903"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d100b7;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-4-46-9"
- width="0.32205188"
- height="3.8646226"
- x="33.889935"
- y="-11.319903"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#fcff81;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-31"
- width="3.8646226"
- height="3.8646226"
- x="6.8375778"
- y="-15.184527"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-4-83"
- width="0.32205188"
- height="3.8646226"
- x="10.702199"
- y="-15.184527"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-4-4-4"
- width="0.24153894"
- height="3.8646226"
- x="6.5960379"
- y="-15.184527"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d10000;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-4-5-24"
- width="0.32205188"
- height="3.8646226"
- x="14.888874"
- y="-15.184527"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#b40faa;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-49-5"
- width="3.8646226"
- height="3.8646226"
- x="15.210926"
- y="-15.184527"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-4-8-1"
- width="0.32205188"
- height="3.8646226"
- x="19.07555"
- y="-15.184527"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#1b021a;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-8-7"
- width="3.8646226"
- height="3.8646226"
- x="19.3976"
- y="-15.184527"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d100b7;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-4-52-5"
- width="0.32205188"
- height="3.8646226"
- x="23.262222"
- y="-15.184527"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#bcbcbc;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-2-7"
- width="3.8646226"
- height="3.8646226"
- x="23.584274"
- y="-15.184527"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d10000;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-4-7-1"
- width="0.32205188"
- height="3.8646226"
- x="27.448895"
- y="-15.184527"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#9a41ff;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-3-6"
- width="3.8646226"
- height="3.8646226"
- x="27.770948"
- y="-15.184527"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-4-46-98"
- width="0.32205188"
- height="3.8646226"
- x="31.635574"
- y="-15.184527"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#b9cc8b;fill-opacity:1;stroke:none"
- id="rect2863-492-1"
- width="3.8646226"
- height="3.8646226"
- x="9.0919399"
- y="-19.049145"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#008eff;fill-opacity:1;stroke:none"
- id="rect2863-4-74-3"
- width="0.32205188"
- height="3.8646226"
- x="12.956562"
- y="-19.049145"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#841000;fill-opacity:1;stroke:none"
- id="rect2863-41-5-3"
- width="3.8646226"
- height="3.8646226"
- x="13.278615"
- y="-19.049145"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-5-2-7"
- width="0.32205188"
- height="3.8646226"
- x="17.143238"
- y="-19.049145"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:none;stroke:none"
- id="rect2863-49-4-9"
- width="3.8646226"
- height="3.8646226"
- x="17.46529"
- y="-19.049145"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d100b7;fill-opacity:1;stroke:none"
- id="rect2863-4-8-4-8"
- width="0.32205188"
- height="3.8646226"
- x="21.329912"
- y="-19.049145"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#191742;fill-opacity:1;stroke:none"
- id="rect2863-8-3-6"
- width="3.8646226"
- height="3.8646226"
- x="21.651962"
- y="-19.049145"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d100b7;fill-opacity:1;stroke:none"
- id="rect2863-4-52-8-7"
- width="0.32205188"
- height="3.8646226"
- x="25.516586"
- y="-19.049145"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#50ff03;fill-opacity:1;stroke:none"
- id="rect2863-2-6-0"
- width="3.8646226"
- height="3.8646226"
- x="25.838638"
- y="-19.049145"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-7-0-4"
- width="0.32205188"
- height="3.8646226"
- x="29.70326"
- y="-19.049145"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:none;stroke:none"
- id="rect2863-3-8-8"
- width="3.8646226"
- height="3.8646226"
- x="30.025312"
- y="-19.049145"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-46-9-4"
- width="0.32205188"
- height="3.8646226"
- x="33.889935"
- y="-19.049145"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <text
- xml:space="preserve"
- style="font-size:1.99568260000000008px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;opacity:0.58264463"
- x="5.0981379"
- y="6.0473475"
- id="text3905"
- transform="scale(1.0327955,0.96824589)"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3907"
- x="5.0981379"
- y="6.0473475">A</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:1.99568260000000008px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;opacity:0.58264463"
- x="8.8846188"
- y="6.0473475"
- id="text3905-0"
- transform="scale(1.0327955,0.96824589)"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3907-5"
- x="8.8846188"
- y="6.0473475">B</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:1.99568260000000008px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;opacity:0.58264463"
- x="12.654138"
- y="5.9364762"
- id="text3905-6"
- transform="scale(1.0327955,0.96824589)"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3907-0"
- x="12.654138"
- y="5.9364762">C</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:1.99568260000000008px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;opacity:0.58264463"
- x="16.659309"
- y="5.9919114"
- id="text3905-0-6"
- transform="scale(1.0327955,0.96824589)"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3907-5-4"
- x="16.659309"
- y="5.9919114">D</tspan></text>
- <rect
- style="fill:#8a23ff;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-0"
- width="3.8646226"
- height="3.8646226"
- x="6.8299465"
- y="-22.801247"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-4-9"
- width="0.32205188"
- height="3.8646226"
- x="10.69457"
- y="-22.801247"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d10000;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-4-4-25"
- width="0.24153894"
- height="3.8646226"
- x="6.5884085"
- y="-22.801247"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#000000;fill-opacity:1;stroke:none"
- id="rect2863-41-4"
- width="3.8646226"
- height="3.8646226"
- x="11.016623"
- y="-22.801247"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#f47d2c;fill-opacity:1;stroke:none"
- id="rect2863-492-5"
- width="3.8646226"
- height="3.8646226"
- x="9.0843105"
- y="-26.665878"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#fcff81;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-31-0"
- width="3.8646226"
- height="3.8646226"
- x="6.8299465"
- y="-30.530491"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-4-83-5"
- width="0.32205188"
- height="3.8646226"
- x="10.69457"
- y="-30.530491"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none;opacity:0.58264463"
- id="rect2863-4-4-4-1"
- width="0.24153894"
- height="3.8646226"
- x="6.5884085"
- y="-30.530491"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#b6ff3a;fill-opacity:1;stroke:none"
- id="rect2863-41-2-1"
- width="3.8646226"
- height="3.8646226"
- x="11.016623"
- y="-30.530491"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <path
- sodipodi:nodetypes="ccccccccc"
- id="rect12413"
- d="m 15.072946,10.500852 29.856385,0 c 0.31574,0 0.569926,0.253093 0.569926,0.567472 l 0,27.167362 c 0,2.476452 -6.87981,8.303087 -9.267932,8.303087 l -21.158379,0 c -0.31574,0 -0.569926,-0.253092 -0.569926,-0.567473 l 0,-34.902976 c 0,-0.314379 0.254186,-0.567472 0.569926,-0.567472 z"
- style="fill:url(#linearGradient3351);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0" />
- <path
- sodipodi:nodetypes="cccc"
- id="path2247"
- d="m 37.671355,44.345464 c 1.369779,-0.683829 4.428249,-2.146465 5.72763,-4.027469 -1.596094,0.680055 -2.94781,0.209496 -5.702334,0.190405 0,0 0.162322,3.062094 -0.0253,3.837064 z"
- style="opacity:0.36931817;color:#000000;fill:none;stroke:url(#linearGradient3342);stroke-width:0.99999982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
- <text
- xml:space="preserve"
- style="font-size:1.99568260000000008px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;opacity:0.58264463"
- x="20.190678"
- y="5.9563146"
- id="text3905-08"
- transform="scale(1.0327955,0.96824589)"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3907-1"
- x="20.190678"
- y="5.9563146">E</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:1.99568260000000008px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;opacity:0.58264463"
- x="23.795259"
- y="5.9840317"
- id="text3905-0-3"
- transform="scale(1.0327955,0.96824589)"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3907-5-1"
- x="23.795259"
- y="5.9840317">F</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:1.99568260000000008px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;opacity:0.58264463"
- x="27.512802"
- y="6.0394678"
- id="text3905-6-1"
- transform="scale(1.0327955,0.96824589)"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3907-0-0"
- x="27.512802"
- y="6.0394678">G</tspan></text>
- <rect
- style="color:#000000;fill:#999999;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
- id="rect4248-4-7"
- width="22.966719"
- height="1.5311146"
- x="-41.59132"
- y="18.061903"
- transform="scale(-1,1)" />
- <rect
- y="22.655247"
- x="-41.59132"
- height="1.5311146"
- width="22.966719"
- id="rect4250-4-6"
- style="color:#000000;fill:#999999;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
- transform="scale(-1,1)" />
- <rect
- y="31.841934"
- x="-41.59132"
- height="1.5311146"
- width="22.966719"
- id="rect4254-4-4"
- style="color:#000000;fill:#999999;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
- transform="scale(-1,1)" />
- <rect
- style="color:#000000;fill:#999999;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
- id="rect4256-7-3"
- width="22.966719"
- height="1.5311146"
- x="-41.59132"
- y="36.435276"
- transform="scale(-1,1)" />
- <rect
- style="fill:#8a23ff;fill-opacity:1;stroke:none"
- id="rect2863-03"
- width="3.8646226"
- height="3.8646226"
- x="15.824669"
- y="-20.644701"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none"
- id="rect2863-4-0"
- width="0.32205188"
- height="3.8646226"
- x="19.689291"
- y="-20.644701"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d10000;fill-opacity:1;stroke:none"
- id="rect2863-4-4-9"
- width="0.24153894"
- height="3.8646226"
- x="15.58313"
- y="-20.644701"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#000000;fill-opacity:1;stroke:none"
- id="rect2863-41-25"
- width="3.8646226"
- height="3.8646226"
- x="20.011341"
- y="-20.644701"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d100b7;fill-opacity:1;stroke:none"
- id="rect2863-4-5-4"
- width="0.32205188"
- height="3.8646226"
- x="23.875965"
- y="-20.644701"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#a8a8a8;fill-opacity:1;stroke:none"
- id="rect2863-49-0"
- width="3.8646226"
- height="3.8646226"
- x="24.198017"
- y="-20.644701"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-8-5"
- width="0.32205188"
- height="3.8646226"
- x="28.062641"
- y="-20.644701"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#9beb6f;fill-opacity:1;stroke:none"
- id="rect2863-8-94"
- width="3.8646226"
- height="3.8646226"
- x="28.384693"
- y="-20.644701"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-52-6"
- width="0.32205188"
- height="3.8646226"
- x="32.249313"
- y="-20.644701"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#a7b719;fill-opacity:1;stroke:none"
- id="rect2863-2-9"
- width="3.8646226"
- height="3.8646226"
- x="32.571365"
- y="-20.644701"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-7-2"
- width="0.32205188"
- height="3.8646226"
- x="36.435986"
- y="-20.644701"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#c9c9c9;fill-opacity:1;stroke:none"
- id="rect2863-3-2"
- width="3.8646226"
- height="3.8646226"
- x="36.758041"
- y="-20.644701"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-46-4"
- width="0.32205188"
- height="3.8646226"
- x="40.622665"
- y="-20.644701"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#f47d2c;fill-opacity:1;stroke:none"
- id="rect2863-492-7"
- width="3.8646226"
- height="3.8646226"
- x="18.079031"
- y="-24.509325"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-74-7"
- width="0.32205188"
- height="3.8646226"
- x="21.943653"
- y="-24.509325"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-4-2-5"
- width="0.32205188"
- height="3.8646226"
- x="17.756981"
- y="-24.509325"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d6d6d6;fill-opacity:1;stroke:none"
- id="rect2863-41-5-4"
- width="3.8646226"
- height="3.8646226"
- x="22.265707"
- y="-24.509325"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-5-2-8"
- width="0.32205188"
- height="3.8646226"
- x="26.130329"
- y="-24.509325"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#3f9650;fill-opacity:1;stroke:none"
- id="rect2863-49-4-1"
- width="3.8646226"
- height="3.8646226"
- x="26.452381"
- y="-24.509325"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-8-4-2"
- width="0.32205188"
- height="3.8646226"
- x="30.317005"
- y="-24.509325"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#ffffff;fill-opacity:1;stroke:none"
- id="rect2863-8-3-8"
- width="3.8646226"
- height="3.8646226"
- x="30.639053"
- y="-24.509325"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none"
- id="rect2863-4-52-8-9"
- width="0.32205188"
- height="3.8646226"
- x="34.503677"
- y="-24.509325"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#40003e;fill-opacity:1;stroke:none"
- id="rect2863-2-6-3"
- width="3.8646226"
- height="3.8646226"
- x="34.825729"
- y="-24.509325"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none"
- id="rect2863-4-7-0-6"
- width="0.32205188"
- height="3.8646226"
- x="38.690353"
- y="-24.509325"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#f7f7f7;fill-opacity:1;stroke:none"
- id="rect2863-3-8-80"
- width="3.8646226"
- height="3.8646226"
- x="39.012405"
- y="-24.509325"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d100b7;fill-opacity:1;stroke:none"
- id="rect2863-4-46-9-2"
- width="0.32205188"
- height="3.8646226"
- x="42.877026"
- y="-24.509325"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#fcff81;fill-opacity:1;stroke:none"
- id="rect2863-31-1"
- width="3.8646226"
- height="3.8646226"
- x="15.824669"
- y="-28.373949"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-83-0"
- width="0.32205188"
- height="3.8646226"
- x="19.689291"
- y="-28.373949"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-4-4-5"
- width="0.24153894"
- height="3.8646226"
- x="15.58313"
- y="-28.373949"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#b6ff3a;fill-opacity:1;stroke:none"
- id="rect2863-41-2-11"
- width="3.8646226"
- height="3.8646226"
- x="20.011341"
- y="-28.373949"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d10000;fill-opacity:1;stroke:none"
- id="rect2863-4-5-24-08"
- width="0.32205188"
- height="3.8646226"
- x="23.875965"
- y="-28.373949"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#b40faa;fill-opacity:1;stroke:none"
- id="rect2863-49-5-5"
- width="3.8646226"
- height="3.8646226"
- x="24.198017"
- y="-28.373949"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none"
- id="rect2863-4-8-1-0"
- width="0.32205188"
- height="3.8646226"
- x="28.062641"
- y="-28.373949"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#1b021a;fill-opacity:1;stroke:none"
- id="rect2863-8-7-6"
- width="3.8646226"
- height="3.8646226"
- x="28.384693"
- y="-28.373949"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d100b7;fill-opacity:1;stroke:none"
- id="rect2863-4-52-5-4"
- width="0.32205188"
- height="3.8646226"
- x="32.249313"
- y="-28.373949"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#bcbcbc;fill-opacity:1;stroke:none"
- id="rect2863-2-7-6"
- width="3.8646226"
- height="3.8646226"
- x="32.571365"
- y="-28.373949"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d10000;fill-opacity:1;stroke:none"
- id="rect2863-4-7-1-2"
- width="0.32205188"
- height="3.8646226"
- x="36.435986"
- y="-28.373949"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#9a41ff;fill-opacity:1;stroke:none"
- id="rect2863-3-6-5"
- width="3.8646226"
- height="3.8646226"
- x="36.758041"
- y="-28.373949"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none"
- id="rect2863-4-46-98-8"
- width="0.32205188"
- height="3.8646226"
- x="40.622665"
- y="-28.373949"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#b9cc8b;fill-opacity:1;stroke:none"
- id="rect2863-492-1-6"
- width="3.8646226"
- height="3.8646226"
- x="18.079031"
- y="-32.238575"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#008eff;fill-opacity:1;stroke:none"
- id="rect2863-4-74-3-2"
- width="0.32205188"
- height="3.8646226"
- x="21.943653"
- y="-32.238575"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-4-2-3-8"
- width="0.32205188"
- height="3.8646226"
- x="17.756981"
- y="-32.238575"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#841000;fill-opacity:1;stroke:none"
- id="rect2863-41-5-3-4"
- width="3.8646226"
- height="3.8646226"
- x="22.265707"
- y="-32.238575"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-5-2-7-7"
- width="0.32205188"
- height="3.8646226"
- x="26.130329"
- y="-32.238575"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:none;stroke:none"
- id="rect2863-49-4-9-2"
- width="3.8646226"
- height="3.8646226"
- x="26.452381"
- y="-32.238575"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d100b7;fill-opacity:1;stroke:none"
- id="rect2863-4-8-4-8-4"
- width="0.32205188"
- height="3.8646226"
- x="30.317005"
- y="-32.238575"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#191742;fill-opacity:1;stroke:none"
- id="rect2863-8-3-6-0"
- width="3.8646226"
- height="3.8646226"
- x="30.639053"
- y="-32.238575"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d100b7;fill-opacity:1;stroke:none"
- id="rect2863-4-52-8-7-6"
- width="0.32205188"
- height="3.8646226"
- x="34.503677"
- y="-32.238575"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#50ff03;fill-opacity:1;stroke:none"
- id="rect2863-2-6-0-2"
- width="3.8646226"
- height="3.8646226"
- x="34.825729"
- y="-32.238575"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-7-0-4-9"
- width="0.32205188"
- height="3.8646226"
- x="38.690353"
- y="-32.238575"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:none;stroke:none"
- id="rect2863-3-8-8-9"
- width="3.8646226"
- height="3.8646226"
- x="39.012405"
- y="-32.238575"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-46-9-4-0"
- width="0.32205188"
- height="3.8646226"
- x="42.877026"
- y="-32.238575"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <text
- xml:space="preserve"
- style="font-size:1.9956826px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- x="17.868742"
- y="15.329174"
- id="text3905-8"
- transform="scale(1.0327955,0.96824589)"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3907-13"
- x="17.868742"
- y="15.329174">H</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:1.9956826px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- x="21.655226"
- y="15.329174"
- id="text3905-0-1"
- transform="scale(1.0327955,0.96824589)"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3907-5-10"
- x="21.655226"
- y="15.329174">I</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:1.9956826px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- x="25.424742"
- y="15.218304"
- id="text3905-6-3"
- transform="scale(1.0327955,0.96824589)"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3907-0-4"
- x="25.424742"
- y="15.218304">J</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:1.9956826px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- x="29.429922"
- y="15.273739"
- id="text3905-0-6-0"
- transform="scale(1.0327955,0.96824589)"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3907-5-4-3"
- x="29.429922"
- y="15.273739">K</tspan></text>
- <rect
- style="fill:#8a23ff;fill-opacity:1;stroke:none"
- id="rect2863-0-9"
- width="3.8646226"
- height="3.8646226"
- x="15.817038"
- y="-35.990673"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none"
- id="rect2863-4-9-1"
- width="0.32205188"
- height="3.8646226"
- x="19.681662"
- y="-35.990673"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d10000;fill-opacity:1;stroke:none"
- id="rect2863-4-4-25-9"
- width="0.24153894"
- height="3.8646226"
- x="15.5755"
- y="-35.990673"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#000000;fill-opacity:1;stroke:none"
- id="rect2863-41-4-6"
- width="3.8646226"
- height="3.8646226"
- x="20.003714"
- y="-35.990673"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d100b7;fill-opacity:1;stroke:none"
- id="rect2863-4-5-0-9"
- width="0.32205188"
- height="3.8646226"
- x="23.868336"
- y="-35.990673"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#a8a8a8;fill-opacity:1;stroke:none"
- id="rect2863-49-59-3"
- width="3.8646226"
- height="3.8646226"
- x="24.190388"
- y="-35.990673"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-8-46-3"
- width="0.32205188"
- height="3.8646226"
- x="28.055012"
- y="-35.990673"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#9beb6f;fill-opacity:1;stroke:none"
- id="rect2863-8-9-8"
- width="3.8646226"
- height="3.8646226"
- x="28.37706"
- y="-35.990673"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-52-2-0"
- width="0.32205188"
- height="3.8646226"
- x="32.241684"
- y="-35.990673"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#a7b719;fill-opacity:1;stroke:none"
- id="rect2863-2-2-5"
- width="3.8646226"
- height="3.8646226"
- x="32.563736"
- y="-35.990673"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-7-4-6"
- width="0.32205188"
- height="3.8646226"
- x="36.42836"
- y="-35.990673"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#c9c9c9;fill-opacity:1;stroke:none"
- id="rect2863-3-7-6"
- width="3.8646226"
- height="3.8646226"
- x="36.750408"
- y="-35.990673"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-46-7-4"
- width="0.32205188"
- height="3.8646226"
- x="40.615032"
- y="-35.990673"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#f47d2c;fill-opacity:1;stroke:none"
- id="rect2863-492-5-0"
- width="3.8646226"
- height="3.8646226"
- x="18.071402"
- y="-39.855305"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-74-4-0"
- width="0.32205188"
- height="3.8646226"
- x="21.936024"
- y="-39.855305"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-4-2-8-4"
- width="0.32205188"
- height="3.8646226"
- x="17.74935"
- y="-39.855305"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d6d6d6;fill-opacity:1;stroke:none"
- id="rect2863-41-5-1-6"
- width="3.8646226"
- height="3.8646226"
- x="22.258078"
- y="-39.855305"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-5-2-2-2"
- width="0.32205188"
- height="3.8646226"
- x="26.1227"
- y="-39.855305"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#3f9650;fill-opacity:1;stroke:none"
- id="rect2863-49-4-8-6"
- width="3.8646226"
- height="3.8646226"
- x="26.444752"
- y="-39.855305"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-8-4-9-7"
- width="0.32205188"
- height="3.8646226"
- x="30.309372"
- y="-39.855305"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#ffffff;fill-opacity:1;stroke:none"
- id="rect2863-8-3-3-5"
- width="3.8646226"
- height="3.8646226"
- x="30.631428"
- y="-39.855305"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none"
- id="rect2863-4-52-8-6-6"
- width="0.32205188"
- height="3.8646226"
- x="34.496048"
- y="-39.855305"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#40003e;fill-opacity:1;stroke:none"
- id="rect2863-2-6-8-9"
- width="3.8646226"
- height="3.8646226"
- x="34.8181"
- y="-39.855305"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none"
- id="rect2863-4-7-0-0-8"
- width="0.32205188"
- height="3.8646226"
- x="38.68272"
- y="-39.855305"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#f7f7f7;fill-opacity:1;stroke:none"
- id="rect2863-3-8-2-7"
- width="3.8646226"
- height="3.8646226"
- x="39.004772"
- y="-39.855305"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#fcff81;fill-opacity:1;stroke:none"
- id="rect2863-31-0-8"
- width="3.8646226"
- height="3.8646226"
- x="15.817038"
- y="-43.719913"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-83-5-2"
- width="0.32205188"
- height="3.8646226"
- x="19.681662"
- y="-43.719913"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-4-4-1-9"
- width="0.24153894"
- height="3.8646226"
- x="15.5755"
- y="-43.719913"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#b6ff3a;fill-opacity:1;stroke:none"
- id="rect2863-41-2-1-9"
- width="3.8646226"
- height="3.8646226"
- x="20.003714"
- y="-43.719913"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d10000;fill-opacity:1;stroke:none"
- id="rect2863-4-5-24-0-6"
- width="0.32205188"
- height="3.8646226"
- x="23.868336"
- y="-43.719913"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#b40faa;fill-opacity:1;stroke:none"
- id="rect2863-49-5-8-0"
- width="3.8646226"
- height="3.8646226"
- x="24.190388"
- y="-43.719913"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none"
- id="rect2863-4-8-1-5-2"
- width="0.32205188"
- height="3.8646226"
- x="28.055012"
- y="-43.719913"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#1b021a;fill-opacity:1;stroke:none"
- id="rect2863-8-7-0-7"
- width="3.8646226"
- height="3.8646226"
- x="28.37706"
- y="-43.719913"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d100b7;fill-opacity:1;stroke:none"
- id="rect2863-4-52-5-6-6"
- width="0.32205188"
- height="3.8646226"
- x="32.241684"
- y="-43.719913"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#bcbcbc;fill-opacity:1;stroke:none"
- id="rect2863-2-7-4-1"
- width="3.8646226"
- height="3.8646226"
- x="32.563736"
- y="-43.719913"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d10000;fill-opacity:1;stroke:none"
- id="rect2863-4-7-1-6-3"
- width="0.32205188"
- height="3.8646226"
- x="36.42836"
- y="-43.719913"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#9a41ff;fill-opacity:1;stroke:none"
- id="rect2863-3-6-2-2"
- width="3.8646226"
- height="3.8646226"
- x="36.750408"
- y="-43.719913"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none"
- id="rect2863-4-46-98-5-1"
- width="0.32205188"
- height="3.8646226"
- x="40.615032"
- y="-43.719913"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <path
- style="color:#000000;fill:url(#linearGradient3345);fill-opacity:1;fill-rule:evenodd;stroke:#868a84;stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
- d="m 36.220918,46.536966 c 2.030418,0.329898 9.588793,-4.529929 9.284411,-8.497844 -1.563262,2.423097 -4.758522,1.286738 -8.86728,1.445748 0,0 0.395369,6.552096 -0.417131,7.052096 z"
- id="path2210"
- sodipodi:nodetypes="cccc" />
- <text
- xml:space="preserve"
- style="font-size:1.9956826px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- x="32.961285"
- y="15.238142"
- id="text3905-08-5"
- transform="scale(1.0327955,0.96824589)"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3907-1-9"
- x="32.961285"
- y="15.238142">L</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:1.9956826px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- x="36.565861"
- y="15.265858"
- id="text3905-0-3-9"
- transform="scale(1.0327955,0.96824589)"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3907-5-1-1"
- x="36.565861"
- y="15.265858">M</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:1.9956826px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- x="40.283405"
- y="15.321295"
- id="text3905-6-1-4"
- transform="scale(1.0327955,0.96824589)"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3907-0-0-9"
- x="40.283405"
- y="15.321295">N</tspan></text>
- </g>
-</svg>
diff --git a/data/figures/calibration-normal.svg b/data/figures/calibration-normal.svg
deleted file mode 100644
index ad6f350..0000000
--- a/data/figures/calibration-normal.svg
+++ /dev/null
@@ -1,1474 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="48px"
- height="48px"
- id="svg4198"
- sodipodi:version="0.32"
- inkscape:version="0.47 r22583"
- sodipodi:docname="format-justify-fill.svg"
- inkscape:output_extension="org.inkscape.output.svg.inkscape"
- version="1.1">
- <defs
- id="defs4200">
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 24 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="48 : 24 : 1"
- inkscape:persp3d-origin="24 : 16 : 1"
- id="perspective49" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5060"
- id="radialGradient5031"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
- cx="605.71429"
- cy="486.64789"
- fx="605.71429"
- fy="486.64789"
- r="117.14286" />
- <linearGradient
- inkscape:collect="always"
- id="linearGradient5060">
- <stop
- style="stop-color:black;stop-opacity:1;"
- offset="0"
- id="stop5062" />
- <stop
- style="stop-color:black;stop-opacity:0;"
- offset="1"
- id="stop5064" />
- </linearGradient>
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5060"
- id="radialGradient5029"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
- cx="605.71429"
- cy="486.64789"
- fx="605.71429"
- fy="486.64789"
- r="117.14286" />
- <linearGradient
- id="linearGradient5048">
- <stop
- style="stop-color:black;stop-opacity:0;"
- offset="0"
- id="stop5050" />
- <stop
- id="stop5056"
- offset="0.5"
- style="stop-color:black;stop-opacity:1;" />
- <stop
- style="stop-color:black;stop-opacity:0;"
- offset="1"
- id="stop5052" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5048"
- id="linearGradient5027"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
- x1="302.85715"
- y1="366.64789"
- x2="302.85715"
- y2="609.50507" />
- <linearGradient
- inkscape:collect="always"
- id="linearGradient3558">
- <stop
- style="stop-color:#000000;stop-opacity:1;"
- offset="0"
- id="stop3560" />
- <stop
- style="stop-color:#000000;stop-opacity:0;"
- offset="1"
- id="stop3562" />
- </linearGradient>
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3558"
- id="radialGradient3564"
- cx="22.571428"
- cy="30.857143"
- fx="22.571428"
- fy="30.857143"
- r="15.571428"
- gradientTransform="matrix(1.000000,0.000000,0.000000,0.651376,4.638648e-15,10.75754)"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- id="linearGradient15218">
- <stop
- style="stop-color:#f8f8f7;stop-opacity:1;"
- offset="0"
- id="stop15220" />
- <stop
- id="stop2269"
- offset="0.59928656"
- style="stop-color:#e8e8e8;stop-opacity:1;" />
- <stop
- style="stop-color:#e2e2de;stop-opacity:1;"
- offset="1"
- id="stop15222" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient15218"
- id="linearGradient15224"
- x1="22.308331"
- y1="18.992140"
- x2="35.785294"
- y2="39.498238"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.060837,0.000000,0.000000,0.987595,4.641161,4.108291)" />
- <linearGradient
- inkscape:collect="always"
- id="linearGradient2259">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop2261" />
- <stop
- style="stop-color:#ffffff;stop-opacity:0;"
- offset="1"
- id="stop2263" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2259"
- id="linearGradient2265"
- x1="26.076092"
- y1="26.696676"
- x2="30.811172"
- y2="42.007351"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.993566,0.000000,0.000000,1.000000,6.219859,4.033411)" />
- <linearGradient
- inkscape:collect="always"
- id="linearGradient2216">
- <stop
- style="stop-color:#000000;stop-opacity:1;"
- offset="0"
- id="stop2218" />
- <stop
- style="stop-color:#000000;stop-opacity:0;"
- offset="1"
- id="stop2220" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2216"
- id="linearGradient2222"
- x1="36.8125"
- y1="39.15625"
- x2="39.0625"
- y2="42.0625"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(6.161836,4.033411)" />
- <linearGradient
- id="linearGradient2224">
- <stop
- style="stop-color:#7c7c7c;stop-opacity:1;"
- offset="0"
- id="stop2226" />
- <stop
- style="stop-color:#b8b8b8;stop-opacity:1;"
- offset="1"
- id="stop2228" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient15218"
- id="linearGradient2240"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.342704,0.000000,0.000000,1.235378,-8.219611,-6.577189)"
- x1="20.794008"
- y1="18.378813"
- x2="35.596001"
- y2="39.60046" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3942" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3917" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3816" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3758" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3689-0" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3689-2" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3689-3" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3689-5" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3689" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3667" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3645" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective2857" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective4075" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective4035" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective4013" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3991" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3967" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3943" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3921" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3899" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3868-3" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3868" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3840" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3807" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3783" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3750" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3728" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3706" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3684" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective2886" />
- <inkscape:perspective
- id="perspective10"
- inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
- inkscape:vp_z="744.09448 : 526.18109 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 526.18109 : 1"
- sodipodi:type="inkscape:persp3d" />
- <linearGradient
- id="linearGradient5681">
- <stop
- id="stop5683"
- offset="0"
- style="stop-color:#460546;stop-opacity:1;" />
- <stop
- style="stop-color:#462546;stop-opacity:0.49803922;"
- offset="1"
- id="stop5689" />
- </linearGradient>
- <inkscape:perspective
- id="perspective3057"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- </defs>
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#bebebe"
- borderopacity="1.0000000"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="5.6568542"
- inkscape:cx="61.527284"
- inkscape:cy="4.841854"
- inkscape:current-layer="layer1"
- showgrid="true"
- inkscape:grid-bbox="true"
- inkscape:document-units="px"
- inkscape:window-width="1280"
- inkscape:window-height="818"
- inkscape:window-x="1855"
- inkscape:window-y="125"
- inkscape:showpageshadow="false"
- inkscape:window-maximized="0" />
- <metadata
- id="metadata4203">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title>Justify Center</dc:title>
- <dc:date>2005-10-29</dc:date>
- <dc:creator>
- <cc:Agent>
- <dc:title>Andreas Nilsson</dc:title>
- </cc:Agent>
- </dc:creator>
- <dc:subject>
- <rdf:Bag>
- <rdf:li>justify</rdf:li>
- <rdf:li>center</rdf:li>
- <rdf:li>format</rdf:li>
- </rdf:Bag>
- </dc:subject>
- <cc:license
- rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
- </cc:Work>
- <cc:License
- rdf:about="http://creativecommons.org/licenses/publicdomain/">
- <cc:permits
- rdf:resource="http://creativecommons.org/ns#Reproduction" />
- <cc:permits
- rdf:resource="http://creativecommons.org/ns#Distribution" />
- <cc:permits
- rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
- </cc:License>
- </rdf:RDF>
- </metadata>
- <g
- id="layer1"
- inkscape:label="Layer 1"
- inkscape:groupmode="layer">
- <g
- style="display:inline"
- id="g5022"
- transform="matrix(2.330573e-2,0,0,1.227058e-2,44.47891,44.41691)">
- <rect
- y="-150.69685"
- x="-1559.2523"
- height="478.35718"
- width="1339.6335"
- id="rect4173"
- style="opacity:0.40206185;color:black;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
- <path
- sodipodi:nodetypes="cccc"
- id="path5058"
- d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
- style="opacity:0.40206185;color:black;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
- <path
- style="opacity:0.40206185;color:black;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
- d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
- id="path5018"
- sodipodi:nodetypes="cccc" />
- </g>
- <rect
- style="opacity:1;fill:url(#linearGradient2240);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect4238"
- width="38.996792"
- height="45.003101"
- x="4.5016017"
- y="1.4968988"
- rx="0.56650788"
- ry="0.56650823" />
- <rect
- style="opacity:1;color:#000000;fill:#999999;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
- id="rect4248"
- width="30"
- height="2"
- x="-39"
- y="10"
- transform="scale(-1.000000,1.000000)" />
- <rect
- y="16"
- x="-39"
- height="2"
- width="30"
- id="rect4250"
- style="opacity:1;color:#000000;fill:#999999;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
- transform="scale(-1.000000,1.000000)" />
- <rect
- y="28"
- x="-39"
- height="2"
- width="30"
- id="rect4254"
- style="opacity:1;color:#000000;fill:#999999;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
- transform="scale(-1.000000,1.000000)" />
- <rect
- style="opacity:1;color:#000000;fill:#999999;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
- id="rect4256"
- width="30"
- height="2"
- x="-39"
- y="34"
- transform="scale(-1.000000,1.000000)" />
- <rect
- style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.99999982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect2245"
- width="37.025566"
- height="43.022316"
- x="5.4997125"
- y="2.4997177"
- rx="0"
- ry="0" />
- <rect
- style="fill:#8a23ff;fill-opacity:1;stroke:none"
- id="rect2863"
- width="5.0481167"
- height="5.0481167"
- x="7.0776396"
- y="-11.638739"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none"
- id="rect2863-4"
- width="0.42067638"
- height="5.0481167"
- x="12.125756"
- y="-11.638739"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d10000;fill-opacity:1;stroke:none"
- id="rect2863-4-4"
- width="0.31550732"
- height="5.0481167"
- x="6.7621322"
- y="-11.638739"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#000000;fill-opacity:1;stroke:none"
- id="rect2863-41"
- width="5.0481167"
- height="5.0481167"
- x="12.546432"
- y="-11.638739"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d100b7;fill-opacity:1;stroke:none"
- id="rect2863-4-5"
- width="0.42067638"
- height="5.0481167"
- x="17.594549"
- y="-11.638739"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#a8a8a8;fill-opacity:1;stroke:none"
- id="rect2863-49"
- width="5.0481167"
- height="5.0481167"
- x="18.015224"
- y="-11.638739"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-8"
- width="0.42067638"
- height="5.0481167"
- x="23.063343"
- y="-11.638739"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#9beb6f;fill-opacity:1;stroke:none"
- id="rect2863-8"
- width="5.0481167"
- height="5.0481167"
- x="23.484018"
- y="-11.638739"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-52"
- width="0.42067638"
- height="5.0481167"
- x="28.532135"
- y="-11.638739"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#a7b719;fill-opacity:1;stroke:none"
- id="rect2863-2"
- width="5.0481167"
- height="5.0481167"
- x="28.952812"
- y="-11.638739"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-7"
- width="0.42067638"
- height="5.0481167"
- x="34.000927"
- y="-11.638739"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#c9c9c9;fill-opacity:1;stroke:none"
- id="rect2863-3"
- width="5.0481167"
- height="5.0481167"
- x="34.421604"
- y="-11.638739"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-46"
- width="0.42067638"
- height="5.0481167"
- x="39.469723"
- y="-11.638739"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#f47d2c;fill-opacity:1;stroke:none"
- id="rect2863-492"
- width="5.0481167"
- height="5.0481167"
- x="10.022374"
- y="-16.686855"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-74"
- width="0.42067638"
- height="5.0481167"
- x="15.070491"
- y="-16.686855"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-4-2"
- width="0.42067638"
- height="5.0481167"
- x="9.6016979"
- y="-16.686855"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d6d6d6;fill-opacity:1;stroke:none"
- id="rect2863-41-5"
- width="5.0481167"
- height="5.0481167"
- x="15.491167"
- y="-16.686855"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-5-2"
- width="0.42067638"
- height="5.0481167"
- x="20.539284"
- y="-16.686855"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#3f9650;fill-opacity:1;stroke:none"
- id="rect2863-49-4"
- width="5.0481167"
- height="5.0481167"
- x="20.959961"
- y="-16.686855"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-8-4"
- width="0.42067638"
- height="5.0481167"
- x="26.008078"
- y="-16.686855"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#ffffff;fill-opacity:1;stroke:none"
- id="rect2863-8-3"
- width="5.0481167"
- height="5.0481167"
- x="26.428753"
- y="-16.686855"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none"
- id="rect2863-4-52-8"
- width="0.42067638"
- height="5.0481167"
- x="31.47687"
- y="-16.686855"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#40003e;fill-opacity:1;stroke:none"
- id="rect2863-2-6"
- width="5.0481167"
- height="5.0481167"
- x="31.897547"
- y="-16.686855"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none"
- id="rect2863-4-7-0"
- width="0.42067638"
- height="5.0481167"
- x="36.945663"
- y="-16.686855"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#f7f7f7;fill-opacity:1;stroke:none"
- id="rect2863-3-8"
- width="5.0481167"
- height="5.0481167"
- x="37.366341"
- y="-16.686855"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d100b7;fill-opacity:1;stroke:none"
- id="rect2863-4-46-9"
- width="0.42067638"
- height="5.0481167"
- x="42.414455"
- y="-16.686855"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#fcff81;fill-opacity:1;stroke:none"
- id="rect2863-31"
- width="5.0481167"
- height="5.0481167"
- x="7.0776396"
- y="-21.734972"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-83"
- width="0.42067638"
- height="5.0481167"
- x="12.125756"
- y="-21.734972"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-4-4"
- width="0.31550732"
- height="5.0481167"
- x="6.7621322"
- y="-21.734972"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#b6ff3a;fill-opacity:1;stroke:none"
- id="rect2863-41-2"
- width="5.0481167"
- height="5.0481167"
- x="12.546432"
- y="-21.734972"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d10000;fill-opacity:1;stroke:none"
- id="rect2863-4-5-24"
- width="0.42067638"
- height="5.0481167"
- x="17.594549"
- y="-21.734972"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#b40faa;fill-opacity:1;stroke:none"
- id="rect2863-49-5"
- width="5.0481167"
- height="5.0481167"
- x="18.015224"
- y="-21.734972"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none"
- id="rect2863-4-8-1"
- width="0.42067638"
- height="5.0481167"
- x="23.063343"
- y="-21.734972"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#1b021a;fill-opacity:1;stroke:none"
- id="rect2863-8-7"
- width="5.0481167"
- height="5.0481167"
- x="23.484018"
- y="-21.734972"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d100b7;fill-opacity:1;stroke:none"
- id="rect2863-4-52-5"
- width="0.42067638"
- height="5.0481167"
- x="28.532135"
- y="-21.734972"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#bcbcbc;fill-opacity:1;stroke:none"
- id="rect2863-2-7"
- width="5.0481167"
- height="5.0481167"
- x="28.952812"
- y="-21.734972"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d10000;fill-opacity:1;stroke:none"
- id="rect2863-4-7-1"
- width="0.42067638"
- height="5.0481167"
- x="34.000927"
- y="-21.734972"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#9a41ff;fill-opacity:1;stroke:none"
- id="rect2863-3-6"
- width="5.0481167"
- height="5.0481167"
- x="34.421604"
- y="-21.734972"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none"
- id="rect2863-4-46-98"
- width="0.42067638"
- height="5.0481167"
- x="39.469723"
- y="-21.734972"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#b9cc8b;fill-opacity:1;stroke:none"
- id="rect2863-492-1"
- width="5.0481167"
- height="5.0481167"
- x="10.022374"
- y="-26.783089"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#008eff;fill-opacity:1;stroke:none"
- id="rect2863-4-74-3"
- width="0.42067638"
- height="5.0481167"
- x="15.070491"
- y="-26.783089"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-4-2-3"
- width="0.42067638"
- height="5.0481167"
- x="9.6016979"
- y="-26.783089"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#841000;fill-opacity:1;stroke:none"
- id="rect2863-41-5-3"
- width="5.0481167"
- height="5.0481167"
- x="15.491167"
- y="-26.783089"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-5-2-7"
- width="0.42067638"
- height="5.0481167"
- x="20.539284"
- y="-26.783089"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:none;stroke:none"
- id="rect2863-49-4-9"
- width="5.0481167"
- height="5.0481167"
- x="20.959961"
- y="-26.783089"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d100b7;fill-opacity:1;stroke:none"
- id="rect2863-4-8-4-8"
- width="0.42067638"
- height="5.0481167"
- x="26.008078"
- y="-26.783089"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#191742;fill-opacity:1;stroke:none"
- id="rect2863-8-3-6"
- width="5.0481167"
- height="5.0481167"
- x="26.428753"
- y="-26.783089"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d100b7;fill-opacity:1;stroke:none"
- id="rect2863-4-52-8-7"
- width="0.42067638"
- height="5.0481167"
- x="31.47687"
- y="-26.783089"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#50ff03;fill-opacity:1;stroke:none"
- id="rect2863-2-6-0"
- width="5.0481167"
- height="5.0481167"
- x="31.897547"
- y="-26.783089"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-7-0-4"
- width="0.42067638"
- height="5.0481167"
- x="36.945663"
- y="-26.783089"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:none;stroke:none"
- id="rect2863-3-8-8"
- width="5.0481167"
- height="5.0481167"
- x="37.366341"
- y="-26.783089"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-46-9-4"
- width="0.42067638"
- height="5.0481167"
- x="42.414455"
- y="-26.783089"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <text
- xml:space="preserve"
- style="font-size:2.60683632px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- x="8.4994059"
- y="5.9846129"
- id="text3905"
- transform="scale(1.0327955,0.96824589)"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3907"
- x="8.4994059"
- y="5.9846129">A</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:2.60683632px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- x="13.445456"
- y="5.9846129"
- id="text3905-0"
- transform="scale(1.0327955,0.96824589)"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3907-5"
- x="13.445456"
- y="5.9846129">B</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:2.60683632px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- x="18.369339"
- y="5.8397889"
- id="text3905-6"
- transform="scale(1.0327955,0.96824589)"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3907-0"
- x="18.369339"
- y="5.8397889">C</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:2.60683632px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- x="23.601044"
- y="5.9122009"
- id="text3905-0-6"
- transform="scale(1.0327955,0.96824589)"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3907-5-4"
- x="23.601044"
- y="5.9122009">D</tspan></text>
- <rect
- style="fill:#8a23ff;fill-opacity:1;stroke:none"
- id="rect2863-0"
- width="5.0481167"
- height="5.0481167"
- x="7.0676732"
- y="-31.684227"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none"
- id="rect2863-4-9"
- width="0.42067638"
- height="5.0481167"
- x="12.11579"
- y="-31.684227"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d10000;fill-opacity:1;stroke:none"
- id="rect2863-4-4-25"
- width="0.31550732"
- height="5.0481167"
- x="6.7521663"
- y="-31.684227"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#000000;fill-opacity:1;stroke:none"
- id="rect2863-41-4"
- width="5.0481167"
- height="5.0481167"
- x="12.536467"
- y="-31.684227"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d100b7;fill-opacity:1;stroke:none"
- id="rect2863-4-5-0"
- width="0.42067638"
- height="5.0481167"
- x="17.584583"
- y="-31.684227"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#a8a8a8;fill-opacity:1;stroke:none"
- id="rect2863-49-59"
- width="5.0481167"
- height="5.0481167"
- x="18.005259"
- y="-31.684227"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-8-46"
- width="0.42067638"
- height="5.0481167"
- x="23.053375"
- y="-31.684227"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#9beb6f;fill-opacity:1;stroke:none"
- id="rect2863-8-9"
- width="5.0481167"
- height="5.0481167"
- x="23.474052"
- y="-31.684227"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-52-2"
- width="0.42067638"
- height="5.0481167"
- x="28.522169"
- y="-31.684227"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#a7b719;fill-opacity:1;stroke:none"
- id="rect2863-2-2"
- width="5.0481167"
- height="5.0481167"
- x="28.942844"
- y="-31.684227"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-7-4"
- width="0.42067638"
- height="5.0481167"
- x="33.990963"
- y="-31.684227"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#c9c9c9;fill-opacity:1;stroke:none"
- id="rect2863-3-7"
- width="5.0481167"
- height="5.0481167"
- x="34.411636"
- y="-31.684227"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-46-7"
- width="0.42067638"
- height="5.0481167"
- x="39.459755"
- y="-31.684227"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#f47d2c;fill-opacity:1;stroke:none"
- id="rect2863-492-5"
- width="5.0481167"
- height="5.0481167"
- x="10.012408"
- y="-36.732342"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-74-4"
- width="0.42067638"
- height="5.0481167"
- x="15.060525"
- y="-36.732342"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-4-2-8"
- width="0.42067638"
- height="5.0481167"
- x="9.591732"
- y="-36.732342"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d6d6d6;fill-opacity:1;stroke:none"
- id="rect2863-41-5-1"
- width="5.0481167"
- height="5.0481167"
- x="15.481201"
- y="-36.732342"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-5-2-2"
- width="0.42067638"
- height="5.0481167"
- x="20.529318"
- y="-36.732342"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#3f9650;fill-opacity:1;stroke:none"
- id="rect2863-49-4-8"
- width="5.0481167"
- height="5.0481167"
- x="20.949993"
- y="-36.732342"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-8-4-9"
- width="0.42067638"
- height="5.0481167"
- x="25.99811"
- y="-36.732342"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#ffffff;fill-opacity:1;stroke:none"
- id="rect2863-8-3-3"
- width="5.0481167"
- height="5.0481167"
- x="26.418787"
- y="-36.732342"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none"
- id="rect2863-4-52-8-6"
- width="0.42067638"
- height="5.0481167"
- x="31.466904"
- y="-36.732342"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#40003e;fill-opacity:1;stroke:none"
- id="rect2863-2-6-8"
- width="5.0481167"
- height="5.0481167"
- x="31.887579"
- y="-36.732342"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none"
- id="rect2863-4-7-0-0"
- width="0.42067638"
- height="5.0481167"
- x="36.935696"
- y="-36.732342"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#f7f7f7;fill-opacity:1;stroke:none"
- id="rect2863-3-8-2"
- width="5.0481167"
- height="5.0481167"
- x="37.356373"
- y="-36.732342"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d100b7;fill-opacity:1;stroke:none"
- id="rect2863-4-46-9-1"
- width="0.42067638"
- height="5.0481167"
- x="42.404488"
- y="-36.732342"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#fcff81;fill-opacity:1;stroke:none"
- id="rect2863-31-0"
- width="5.0481167"
- height="5.0481167"
- x="7.0676732"
- y="-41.78046"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-83-5"
- width="0.42067638"
- height="5.0481167"
- x="12.11579"
- y="-41.78046"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-4-4-1"
- width="0.31550732"
- height="5.0481167"
- x="6.7521663"
- y="-41.78046"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#b6ff3a;fill-opacity:1;stroke:none"
- id="rect2863-41-2-1"
- width="5.0481167"
- height="5.0481167"
- x="12.536467"
- y="-41.78046"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d10000;fill-opacity:1;stroke:none"
- id="rect2863-4-5-24-0"
- width="0.42067638"
- height="5.0481167"
- x="17.584583"
- y="-41.78046"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#b40faa;fill-opacity:1;stroke:none"
- id="rect2863-49-5-8"
- width="5.0481167"
- height="5.0481167"
- x="18.005259"
- y="-41.78046"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none"
- id="rect2863-4-8-1-5"
- width="0.42067638"
- height="5.0481167"
- x="23.053375"
- y="-41.78046"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#1b021a;fill-opacity:1;stroke:none"
- id="rect2863-8-7-0"
- width="5.0481167"
- height="5.0481167"
- x="23.474052"
- y="-41.78046"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d100b7;fill-opacity:1;stroke:none"
- id="rect2863-4-52-5-6"
- width="0.42067638"
- height="5.0481167"
- x="28.522169"
- y="-41.78046"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#bcbcbc;fill-opacity:1;stroke:none"
- id="rect2863-2-7-4"
- width="5.0481167"
- height="5.0481167"
- x="28.942844"
- y="-41.78046"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#d10000;fill-opacity:1;stroke:none"
- id="rect2863-4-7-1-6"
- width="0.42067638"
- height="5.0481167"
- x="33.990963"
- y="-41.78046"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#9a41ff;fill-opacity:1;stroke:none"
- id="rect2863-3-6-2"
- width="5.0481167"
- height="5.0481167"
- x="34.411636"
- y="-41.78046"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none"
- id="rect2863-4-46-98-5"
- width="0.42067638"
- height="5.0481167"
- x="39.459755"
- y="-41.78046"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <text
- xml:space="preserve"
- style="font-size:2.60683632px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- x="28.213852"
- y="5.8657017"
- id="text3905-08"
- transform="scale(1.0327955,0.96824589)"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3907-1"
- x="28.213852"
- y="5.8657017">E</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:2.60683632px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- x="32.922295"
- y="5.9019079"
- id="text3905-0-3"
- transform="scale(1.0327955,0.96824589)"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3907-5-1"
- x="32.922295"
- y="5.9019079">F</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:2.60683632px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- x="37.77829"
- y="5.9743199"
- id="text3905-6-1"
- transform="scale(1.0327955,0.96824589)"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3907-0-0"
- x="37.77829"
- y="5.9743199">G</tspan></text>
- </g>
-</svg>
diff --git a/data/figures/calibration-short.svg b/data/figures/calibration-short.svg
deleted file mode 100644
index c74c3f5..0000000
--- a/data/figures/calibration-short.svg
+++ /dev/null
@@ -1,1029 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="48px"
- height="48px"
- id="svg4198"
- sodipodi:version="0.32"
- inkscape:version="0.47 r22583"
- sodipodi:docname="format-indent-less.svg"
- inkscape:output_extension="org.inkscape.output.svg.inkscape"
- version="1.1">
- <defs
- id="defs4200">
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 24 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="48 : 24 : 1"
- inkscape:persp3d-origin="24 : 16 : 1"
- id="perspective56" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5060"
- id="radialGradient5031"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
- cx="605.71429"
- cy="486.64789"
- fx="605.71429"
- fy="486.64789"
- r="117.14286" />
- <linearGradient
- inkscape:collect="always"
- id="linearGradient5060">
- <stop
- style="stop-color:black;stop-opacity:1;"
- offset="0"
- id="stop5062" />
- <stop
- style="stop-color:black;stop-opacity:0;"
- offset="1"
- id="stop5064" />
- </linearGradient>
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5060"
- id="radialGradient5029"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
- cx="605.71429"
- cy="486.64789"
- fx="605.71429"
- fy="486.64789"
- r="117.14286" />
- <linearGradient
- id="linearGradient5048">
- <stop
- style="stop-color:black;stop-opacity:0;"
- offset="0"
- id="stop5050" />
- <stop
- id="stop5056"
- offset="0.5"
- style="stop-color:black;stop-opacity:1;" />
- <stop
- style="stop-color:black;stop-opacity:0;"
- offset="1"
- id="stop5052" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5048"
- id="linearGradient5027"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
- x1="302.85715"
- y1="366.64789"
- x2="302.85715"
- y2="609.50507" />
- <linearGradient
- id="linearGradient5157">
- <stop
- style="stop-color:#555753"
- offset="0"
- id="stop5159" />
- <stop
- style="stop-color:#555753;stop-opacity:0;"
- offset="1"
- id="stop5161" />
- </linearGradient>
- <linearGradient
- id="linearGradient2591">
- <stop
- style="stop-color:#9db029;stop-opacity:1;"
- offset="0"
- id="stop2593" />
- <stop
- style="stop-color:#869623;stop-opacity:1.0000000;"
- offset="1.0000000"
- id="stop2595" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient3558">
- <stop
- style="stop-color:#000000;stop-opacity:1;"
- offset="0"
- id="stop3560" />
- <stop
- style="stop-color:#000000;stop-opacity:0;"
- offset="1"
- id="stop3562" />
- </linearGradient>
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3558"
- id="radialGradient3564"
- cx="22.571428"
- cy="30.857143"
- fx="22.571428"
- fy="30.857143"
- r="15.571428"
- gradientTransform="matrix(1.000000,0.000000,0.000000,0.651376,4.638648e-15,10.75754)"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- id="linearGradient15218">
- <stop
- style="stop-color:#f8f8f7;stop-opacity:1;"
- offset="0"
- id="stop15220" />
- <stop
- id="stop2269"
- offset="0.59928656"
- style="stop-color:#e8e8e8;stop-opacity:1;" />
- <stop
- style="stop-color:#e2e2de;stop-opacity:1;"
- offset="1"
- id="stop15222" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient15218"
- id="linearGradient15224"
- x1="22.308331"
- y1="18.992140"
- x2="35.785294"
- y2="39.498238"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.060837,0.000000,0.000000,0.987595,4.641161,4.108291)" />
- <linearGradient
- inkscape:collect="always"
- id="linearGradient2259">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop2261" />
- <stop
- style="stop-color:#ffffff;stop-opacity:0;"
- offset="1"
- id="stop2263" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2259"
- id="linearGradient2265"
- x1="26.076092"
- y1="26.696676"
- x2="30.811172"
- y2="42.007351"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.993566,0.000000,0.000000,1.000000,6.219859,4.033411)" />
- <linearGradient
- inkscape:collect="always"
- id="linearGradient2216">
- <stop
- style="stop-color:#000000;stop-opacity:1;"
- offset="0"
- id="stop2218" />
- <stop
- style="stop-color:#000000;stop-opacity:0;"
- offset="1"
- id="stop2220" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2216"
- id="linearGradient2222"
- x1="36.8125"
- y1="39.15625"
- x2="39.0625"
- y2="42.0625"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(6.161836,4.033411)" />
- <linearGradient
- id="linearGradient2224">
- <stop
- style="stop-color:#7c7c7c;stop-opacity:1;"
- offset="0"
- id="stop2226" />
- <stop
- style="stop-color:#b8b8b8;stop-opacity:1;"
- offset="1"
- id="stop2228" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient15218"
- id="linearGradient2240"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.342704,0.000000,0.000000,1.235378,-8.219611,-6.577189)"
- x1="20.794008"
- y1="18.378813"
- x2="35.596001"
- y2="39.60046" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3942" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3917" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3816" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3758" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3689-0" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3689-2" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3689-3" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3689-5" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3689" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3667" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3645" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective2857" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective4075" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective4035" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective4013" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3991" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3967" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3943" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3921" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3899" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3868-3" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3868" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3840" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3807" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3783" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3750" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3728" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3706" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective3684" />
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- id="perspective2886" />
- <inkscape:perspective
- id="perspective10"
- inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
- inkscape:vp_z="744.09448 : 526.18109 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 526.18109 : 1"
- sodipodi:type="inkscape:persp3d" />
- <linearGradient
- id="linearGradient5681">
- <stop
- id="stop5683"
- offset="0"
- style="stop-color:#460546;stop-opacity:1;" />
- <stop
- style="stop-color:#462546;stop-opacity:0.49803922;"
- offset="1"
- id="stop5689" />
- </linearGradient>
- </defs>
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#bebebe"
- borderopacity="0.28627451"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="3.9999998"
- inkscape:cx="80.199782"
- inkscape:cy="30.815081"
- inkscape:current-layer="layer1"
- showgrid="false"
- inkscape:grid-bbox="true"
- inkscape:document-units="px"
- inkscape:window-width="872"
- inkscape:window-height="818"
- inkscape:window-x="1801"
- inkscape:window-y="116"
- inkscape:showpageshadow="false"
- fill="#555753"
- inkscape:window-maximized="0" />
- <metadata
- id="metadata4203">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title>Unindent</dc:title>
- <dc:date />
- <dc:creator>
- <cc:Agent>
- <dc:title>Jakub Steiner</dc:title>
- </cc:Agent>
- </dc:creator>
- <dc:subject>
- <rdf:Bag>
- <rdf:li>indent</rdf:li>
- <rdf:li>less</rdf:li>
- <rdf:li>unindent</rdf:li>
- </rdf:Bag>
- </dc:subject>
- <cc:license
- rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
- <dc:contributor>
- <cc:Agent>
- <dc:title>Andreas Nilsson</dc:title>
- </cc:Agent>
- </dc:contributor>
- </cc:Work>
- <cc:License
- rdf:about="http://creativecommons.org/licenses/publicdomain/">
- <cc:permits
- rdf:resource="http://creativecommons.org/ns#Reproduction" />
- <cc:permits
- rdf:resource="http://creativecommons.org/ns#Distribution" />
- <cc:permits
- rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
- </cc:License>
- </rdf:RDF>
- </metadata>
- <g
- id="layer1"
- inkscape:label="Layer 1"
- inkscape:groupmode="layer">
- <g
- style="display:inline"
- id="g5022"
- transform="matrix(2.330573e-2,0,0,1.227058e-2,44.47891,44.41691)">
- <rect
- y="-150.69685"
- x="-1559.2523"
- height="478.35718"
- width="1339.6335"
- id="rect4173"
- style="opacity:0.40206185;color:black;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
- <path
- sodipodi:nodetypes="cccc"
- id="path5058"
- d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
- style="opacity:0.40206185;color:black;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
- <path
- style="opacity:0.40206185;color:black;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
- d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
- id="path5018"
- sodipodi:nodetypes="cccc" />
- </g>
- <rect
- style="opacity:1;fill:url(#linearGradient2240);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect4238"
- width="38.996792"
- height="45.003101"
- x="4.5016017"
- y="1.4968988"
- rx="0.56650788"
- ry="0.56650823" />
- <rect
- style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.99999982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect2245"
- width="37.025566"
- height="43.022316"
- x="5.4997125"
- y="2.4997177"
- rx="0"
- ry="0" />
- <g
- transform="matrix(0.07341887,0,0,0.07341887,5.2035414,-47.324736)"
- id="layer1-9"
- inkscape:label="Layer 1">
- <rect
- ry="0"
- y="882.36218"
- x="60"
- height="60"
- width="60"
- id="rect2863"
- style="fill:#8a23ff;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="882.36218"
- x="120"
- height="60"
- width="5"
- id="rect2863-4"
- style="fill:#ffc600;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="882.36218"
- x="56.25"
- height="60"
- width="3.7500002"
- id="rect2863-4-4"
- style="fill:#d10000;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="882.36218"
- x="125"
- height="60"
- width="60"
- id="rect2863-41"
- style="fill:#000000;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="882.36218"
- x="185"
- height="60"
- width="5"
- id="rect2863-4-5"
- style="fill:#d100b7;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="882.36218"
- x="190"
- height="60"
- width="60"
- id="rect2863-49"
- style="fill:#a8a8a8;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="882.36218"
- x="250"
- height="60"
- width="5"
- id="rect2863-4-8"
- style="fill:#00009d;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="882.36218"
- x="255"
- height="60"
- width="60"
- id="rect2863-8"
- style="fill:#9beb6f;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="882.36218"
- x="315"
- height="60"
- width="5"
- id="rect2863-4-52"
- style="fill:#00009d;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="882.36218"
- x="320"
- height="60"
- width="60"
- id="rect2863-2"
- style="fill:#a7b719;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="882.36218"
- x="380"
- height="60"
- width="5"
- id="rect2863-4-7"
- style="fill:#00009d;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="882.36218"
- x="385"
- height="60"
- width="60"
- id="rect2863-3"
- style="fill:#c9c9c9;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="882.36218"
- x="445"
- height="60"
- width="5"
- id="rect2863-4-46"
- style="fill:#00009d;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="822.36218"
- x="95"
- height="60"
- width="60"
- id="rect2863-492"
- style="fill:#f47d2c;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="822.36218"
- x="155"
- height="60"
- width="5"
- id="rect2863-4-74"
- style="fill:#00009d;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="822.36218"
- x="90"
- height="60"
- width="5"
- id="rect2863-4-4-2"
- style="fill:#00009d;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="822.36218"
- x="160"
- height="60"
- width="60"
- id="rect2863-41-5"
- style="fill:#d6d6d6;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="822.36218"
- x="220"
- height="60"
- width="5"
- id="rect2863-4-5-2"
- style="fill:#00009d;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="822.36218"
- x="225"
- height="60"
- width="60"
- id="rect2863-49-4"
- style="fill:#3f9650;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="822.36218"
- x="285"
- height="60"
- width="5"
- id="rect2863-4-8-4"
- style="fill:#00009d;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="822.36218"
- x="290"
- height="60"
- width="60"
- id="rect2863-8-3"
- style="fill:#ffffff;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="822.36218"
- x="350"
- height="60"
- width="5"
- id="rect2863-4-52-8"
- style="fill:#ffc600;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="822.36218"
- x="355"
- height="60"
- width="60"
- id="rect2863-2-6"
- style="fill:#40003e;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="822.36218"
- x="415"
- height="60"
- width="5"
- id="rect2863-4-7-0"
- style="fill:#ffc600;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="822.36218"
- x="420"
- height="60"
- width="60"
- id="rect2863-3-8"
- style="fill:#f7f7f7;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="822.36218"
- x="480"
- height="60"
- width="5"
- id="rect2863-4-46-9"
- style="fill:#d100b7;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="762.36218"
- x="60"
- height="60"
- width="60"
- id="rect2863-31"
- style="fill:#fcff81;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="762.36218"
- x="120"
- height="60"
- width="5"
- id="rect2863-4-83"
- style="fill:#00009d;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="762.36218"
- x="56.25"
- height="60"
- width="3.7500002"
- id="rect2863-4-4-4"
- style="fill:#00009d;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="762.36218"
- x="125"
- height="60"
- width="60"
- id="rect2863-41-2"
- style="fill:#b6ff3a;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="762.36218"
- x="185"
- height="60"
- width="5"
- id="rect2863-4-5-24"
- style="fill:#d10000;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="762.36218"
- x="190"
- height="60"
- width="60"
- id="rect2863-49-5"
- style="fill:#b40faa;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="762.36218"
- x="250"
- height="60"
- width="5"
- id="rect2863-4-8-1"
- style="fill:#ffc600;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="762.36218"
- x="255"
- height="60"
- width="60"
- id="rect2863-8-7"
- style="fill:#1b021a;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="762.36218"
- x="315"
- height="60"
- width="5"
- id="rect2863-4-52-5"
- style="fill:#d100b7;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="762.36218"
- x="320"
- height="60"
- width="60"
- id="rect2863-2-7"
- style="fill:#bcbcbc;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="762.36218"
- x="380"
- height="60"
- width="5"
- id="rect2863-4-7-1"
- style="fill:#d10000;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="762.36218"
- x="385"
- height="60"
- width="60"
- id="rect2863-3-6"
- style="fill:#9a41ff;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="762.36218"
- x="445"
- height="60"
- width="5"
- id="rect2863-4-46-98"
- style="fill:#ffc600;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="702.36218"
- x="95"
- height="60"
- width="60"
- id="rect2863-492-1"
- style="fill:#b9cc8b;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="702.36218"
- x="155"
- height="60"
- width="5"
- id="rect2863-4-74-3"
- style="fill:#008eff;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="702.36218"
- x="90"
- height="60"
- width="5"
- id="rect2863-4-4-2-3"
- style="fill:#00009d;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="702.36218"
- x="160"
- height="60"
- width="60"
- id="rect2863-41-5-3"
- style="fill:#841000;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="702.36218"
- x="220"
- height="60"
- width="5"
- id="rect2863-4-5-2-7"
- style="fill:#00009d;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="702.36218"
- x="225"
- height="60"
- width="60"
- id="rect2863-49-4-9"
- style="fill:none;stroke:none" />
- <rect
- ry="0"
- y="702.36218"
- x="285"
- height="60"
- width="5"
- id="rect2863-4-8-4-8"
- style="fill:#d100b7;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="702.36218"
- x="290"
- height="60"
- width="60"
- id="rect2863-8-3-6"
- style="fill:#191742;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="702.36218"
- x="350"
- height="60"
- width="5"
- id="rect2863-4-52-8-7"
- style="fill:#d100b7;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="702.36218"
- x="355"
- height="60"
- width="60"
- id="rect2863-2-6-0"
- style="fill:#50ff03;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="702.36218"
- x="415"
- height="60"
- width="5"
- id="rect2863-4-7-0-4"
- style="fill:#00009d;fill-opacity:1;stroke:none" />
- <rect
- ry="0"
- y="702.36218"
- x="420"
- height="60"
- width="60"
- id="rect2863-3-8-8"
- style="fill:none;stroke:none" />
- <rect
- ry="0"
- y="702.36218"
- x="480"
- height="60"
- width="5"
- id="rect2863-4-46-9-4"
- style="fill:#00009d;fill-opacity:1;stroke:none" />
- <text
- sodipodi:linespacing="125%"
- transform="matrix(0,-1.0327955,0.96824589,0,0,0)"
- id="text3905"
- y="46.217602"
- x="-887.26385"
- style="font-size:30.98386765px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- xml:space="preserve"><tspan
- y="46.217602"
- x="-887.26385"
- id="tspan3907"
- sodipodi:role="line">A</tspan></text>
- <text
- sodipodi:linespacing="125%"
- transform="matrix(0,-1.0327955,0.96824589,0,0,0)"
- id="text3905-0"
- y="46.217602"
- x="-828.47699"
- style="font-size:30.98386765px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- xml:space="preserve"><tspan
- y="46.217602"
- x="-828.47699"
- id="tspan3907-5"
- sodipodi:role="line">B</tspan></text>
- <text
- sodipodi:linespacing="125%"
- transform="matrix(0,-1.0327955,0.96824589,0,0,0)"
- id="text3905-6"
- y="42.34462"
- x="-770.76044"
- style="font-size:30.98386765px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- xml:space="preserve"><tspan
- y="42.34462"
- x="-770.76044"
- id="tspan3907-0"
- sodipodi:role="line">C</tspan></text>
- <text
- sodipodi:linespacing="125%"
- transform="matrix(0,-1.0327955,0.96824589,0,0,0)"
- id="text3905-0-6"
- y="42.34462"
- x="-712.61273"
- style="font-size:30.98386765px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- xml:space="preserve"><tspan
- y="42.34462"
- x="-712.61273"
- id="tspan3907-5-4"
- sodipodi:role="line">D</tspan></text>
- </g>
- </g>
-</svg>
diff --git a/data/figures/clock.svg b/data/figures/clock.svg
deleted file mode 100644
index 6ebd01c..0000000
--- a/data/figures/clock.svg
+++ /dev/null
@@ -1,1082 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="604"
- height="600"
- id="svg2"
- version="1.1"
- inkscape:version="0.47 r22583"
- sodipodi:docname="clock.svg">
- <defs
- id="defs4">
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 526.18109 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="744.09448 : 526.18109 : 1"
- inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
- id="perspective10" />
- <inkscape:perspective
- id="perspective2826"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3614"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3636"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3658"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3680"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3702"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3772"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3796"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3853"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3875"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3897"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3919"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3941"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3963"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3985"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective4007"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective4029"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective4058"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective4187"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective4224"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective4261"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective4298"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective4335"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective4335-2"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective4335-0"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective4335-1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective4429"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective4429-4"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective4429-1"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective4626"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective4648"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- </defs>
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="0.35"
- inkscape:cx="1074.4793"
- inkscape:cy="270.77688"
- inkscape:document-units="px"
- inkscape:current-layer="layer1"
- showgrid="true"
- inkscape:window-width="1680"
- inkscape:window-height="975"
- inkscape:window-x="0"
- inkscape:window-y="25"
- inkscape:window-maximized="1"
- inkscape:snap-center="false"
- inkscape:snap-bbox="false"
- inkscape:snap-global="false">
- <inkscape:grid
- type="xygrid"
- id="grid2816"
- empspacing="5"
- visible="true"
- enabled="true"
- snapvisiblegridlinesonly="true" />
- </sodipodi:namedview>
- <metadata
- id="metadata7">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:label="Layer 1"
- inkscape:groupmode="layer"
- id="layer1"
- transform="translate(0,-452.36218)">
- <g
- id="g4664"
- transform="translate(48,-18)">
- <path
- transform="matrix(0.98724488,0,0,0.9642857,-104.69385,416.1558)"
- d="m 640,372.36218 c 0,154.63973 -125.36027,280 -280,280 -154.63973,0 -280,-125.36027 -280,-280 0,-154.63973 125.36027,-279.999997 280,-279.999997 154.63973,0 280,125.360267 280,279.999997 z"
- sodipodi:ry="280"
- sodipodi:rx="280"
- sodipodi:cy="372.36218"
- sodipodi:cx="360"
- id="path2832"
- style="fill:#0068ff;fill-opacity:1;stroke:none"
- sodipodi:type="arc" />
- <path
- transform="matrix(0.94255646,0,0,0.9260204,-88.60605,429.69006)"
- d="m 640,372.36218 c 0,154.63973 -125.36027,280 -280,280 -154.63973,0 -280,-125.36027 -280,-280 0,-154.63973 125.36027,-279.999997 280,-279.999997 154.63973,0 280,125.360267 280,279.999997 z"
- sodipodi:ry="280"
- sodipodi:rx="280"
- sodipodi:cy="372.36218"
- sodipodi:cx="360"
- id="path2832-2"
- style="fill:#75a6ff;fill-opacity:1;stroke:none"
- sodipodi:type="arc" />
- <path
- transform="matrix(0.87244895,0,0,0.85714286,-63.188758,456.05174)"
- d="m 640,372.36218 c 0,154.63973 -125.36027,280 -280,280 -154.63973,0 -280,-125.36027 -280,-280 0,-154.63973 125.36027,-279.999997 280,-279.999997 154.63973,0 280,125.360267 280,279.999997 z"
- sodipodi:ry="280"
- sodipodi:rx="280"
- sodipodi:cy="372.36218"
- sodipodi:cx="360"
- id="path2832-2-2"
- style="fill:#0068ff;fill-opacity:1;stroke:none"
- sodipodi:type="arc" />
- <path
- transform="matrix(0.83609691,0,0,0.82142857,-50.280602,469.35039)"
- d="m 640,372.36218 c 0,154.63973 -125.36027,280 -280,280 -154.63973,0 -280,-125.36027 -280,-280 0,-154.63973 125.36027,-279.999997 280,-279.999997 154.63973,0 280,125.360267 280,279.999997 z"
- sodipodi:ry="280"
- sodipodi:rx="280"
- sodipodi:cy="372.36218"
- sodipodi:cx="360"
- id="path2832-2-2-3"
- style="fill:#f8ffff;fill-opacity:1;stroke:#75a6ff;stroke-width:8.6023159;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- sodipodi:type="arc" />
- <rect
- rx="12.306122"
- inkscape:transform-center-y="13.785767"
- transform="matrix(-0.96979983,0.24390223,-0.24390223,-0.96979983,0,0)"
- inkscape:transform-center-x="54.814769"
- ry="4.4724798"
- y="-824.47882"
- x="-61.352955"
- height="20"
- width="130"
- id="rect3762"
- style="fill:#000000;fill-opacity:1;stroke:#0000ff;stroke-width:5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
- <g
- transform="translate(-114.28571,402.85714)"
- style="fill:#00a5ff;fill-opacity:1"
- id="g4556">
- <rect
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="rect3716"
- width="10"
- height="45"
- x="360"
- y="147.36218"
- ry="1.5118583"
- inkscape:transform-center-y="-202.5" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(0.45454545,0,0,0.45454545,201.36364,90.379373)"
- inkscape:transform-center-y="-210.45455" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-6"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(0.43905719,-0.11764502,0.11764502,0.43905719,133.95689,142.33991)"
- inkscape:transform-center-y="-203.28349"
- inkscape:transform-center-x="54.469646" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-3"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(0.45052053,-0.06035576,0.06035576,0.45052053,165.37018,114.60435)"
- inkscape:transform-center-y="-208.59101"
- inkscape:transform-center-x="27.944717" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-9"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(0.42060441,-0.17234702,0.17234702,0.42060441,106.66484,173.48004)"
- inkscape:transform-center-y="-194.73985"
- inkscape:transform-center-x="79.796671" />
- <rect
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="rect3716-4-5"
- width="10"
- height="45"
- x="134.87885"
- y="-727.61871"
- ry="1.5118583"
- inkscape:transform-center-y="-202.5"
- transform="matrix(-0.5,0.8660254,-0.8660254,-0.5,0,0)" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-1-4"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(-0.22727273,0.39364791,-0.39364791,-0.22727273,691.36362,371.72615)"
- inkscape:transform-center-y="-210.45455" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-6-9-2"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(-0.11764502,0.43905719,-0.43905719,-0.11764502,680.06785,287.36992)"
- inkscape:transform-center-y="-203.28349"
- inkscape:transform-center-x="54.469646" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-3-1-3"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(-0.17299064,0.4203401,-0.4203401,-0.17299064,688.3809,328.44241)"
- inkscape:transform-center-y="-208.59101"
- inkscape:transform-center-x="27.944717" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-9-7-4"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(-0.06104531,0.45042761,-0.45042761,-0.06104531,666.74573,248.16425)"
- inkscape:transform-center-y="-194.73985"
- inkscape:transform-center-x="79.796671" />
- <rect
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="rect3716-4-5-8"
- width="10"
- height="45"
- x="-134.91818"
- y="-729.9751"
- ry="1.5118583"
- inkscape:transform-center-y="-202.5"
- transform="matrix(-0.8660254,0.5,-0.5,-0.8660254,0,0)" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-1-4-6"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(-0.39364791,0.22727273,-0.22727273,-0.39364791,647.70465,534.74828)"
- inkscape:transform-center-y="-210.45455" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-6-9-2-0"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(-0.32141217,0.32141217,-0.32141217,-0.32141217,680.10034,456.04576)"
- inkscape:transform-center-y="-203.28349"
- inkscape:transform-center-x="54.469646" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-3-1-3-4"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(-0.35998434,0.27752989,-0.27752989,-0.35998434,666.76341,495.7721)"
- inkscape:transform-center-y="-208.59101"
- inkscape:transform-center-x="27.944717" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-9-7-4-6"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(-0.27808059,0.3595591,-0.3595591,-0.27808059,688.16588,415.43159)"
- inkscape:transform-center-y="-194.73985"
- inkscape:transform-center-x="79.796671" />
- <rect
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="rect3716-4-5-8-1"
- width="10"
- height="45"
- x="-370.44992"
- y="-597.34961"
- ry="1.5118583"
- inkscape:transform-center-y="-202.5"
- transform="scale(-1,-1)" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-1-4-6-4"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(-0.45454545,0,0,-0.45454545,529.08628,654.33245)"
- inkscape:transform-center-y="-210.45455" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-6-9-2-0-5"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(-0.43905719,0.11764502,-0.11764502,-0.43905719,596.49303,602.37191)"
- inkscape:transform-center-y="-203.28349"
- inkscape:transform-center-x="54.469646" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-3-1-3-4-3"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(-0.45052053,0.06035576,-0.06035576,-0.45052053,565.07974,630.10747)"
- inkscape:transform-center-y="-208.59101"
- inkscape:transform-center-x="27.944717" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-9-7-4-6-6"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(-0.42060441,0.17234702,-0.17234702,-0.42060441,623.78508,571.23178)"
- inkscape:transform-center-y="-194.73985"
- inkscape:transform-center-x="79.796671" />
- <rect
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="rect3716-4-5-8-1-2"
- width="10"
- height="45"
- x="-507.23489"
- y="-364.89636"
- ry="1.5118583"
- inkscape:transform-center-y="-202.5"
- transform="matrix(-0.8660254,-0.5,0.5,-0.8660254,0,0)" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-1-4-6-4-7"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(-0.39364791,-0.22727273,0.22727273,-0.39364791,365.72184,698.29373)"
- inkscape:transform-center-y="-210.45455" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-6-9-2-0-5-0"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(-0.43905719,-0.11764502,0.11764502,-0.43905719,450.07807,686.99796)"
- inkscape:transform-center-y="-203.28349"
- inkscape:transform-center-x="54.469646" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-3-1-3-4-3-7"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(-0.4203401,-0.17299064,0.17299064,-0.4203401,409.00558,695.31101)"
- inkscape:transform-center-y="-208.59101"
- inkscape:transform-center-x="27.944717" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-9-7-4-6-6-4"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(-0.45042761,-0.06104531,0.06104531,-0.45042761,489.28374,673.67584)"
- inkscape:transform-center-y="-194.73985"
- inkscape:transform-center-x="79.796671" />
- <rect
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="rect3716-4-5-8-1-2-1"
- width="10"
- height="45"
- x="-510.22"
- y="-94.829269"
- ry="1.5118583"
- inkscape:transform-center-y="-202.5"
- transform="matrix(-0.5,-0.8660254,0.8660254,-0.5,0,0)" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-1-4-6-4-7-8"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(-0.22727273,-0.39364791,0.39364791,-0.22727273,202.95506,655.15264)"
- inkscape:transform-center-y="-210.45455" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-6-9-2-0-5-0-6"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(-0.32141217,-0.32141217,0.32141217,-0.32141217,281.65758,687.54833)"
- inkscape:transform-center-y="-203.28349"
- inkscape:transform-center-x="54.469646" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-3-1-3-4-3-7-2"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(-0.27752989,-0.35998434,0.35998434,-0.27752989,241.93124,674.2114)"
- inkscape:transform-center-y="-208.59101"
- inkscape:transform-center-x="27.944717" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-9-7-4-6-6-4-9"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(-0.3595591,-0.27808059,0.27808059,-0.3595591,322.27175,695.61387)"
- inkscape:transform-center-y="-194.73985"
- inkscape:transform-center-x="79.796671" />
- <rect
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="rect3716-4-5-8-1-2-3"
- width="10"
- height="45"
- x="-377.27127"
- y="140"
- ry="1.5118583"
- inkscape:transform-center-y="-202.5"
- transform="matrix(0,-1,1,0,0,0)" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-1-4-6-4-7-2"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(0,-0.45454545,0.45454545,0,83.017189,535.90763)"
- inkscape:transform-center-y="-210.45455" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-6-9-2-0-5-0-7"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(-0.11764502,-0.43905719,0.43905719,-0.11764502,134.97773,603.31438)"
- inkscape:transform-center-y="-203.28349"
- inkscape:transform-center-x="54.469646" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-3-1-3-4-3-7-0"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(-0.06035576,-0.45052053,0.45052053,-0.06035576,107.24217,571.90109)"
- inkscape:transform-center-y="-208.59101"
- inkscape:transform-center-x="27.944717" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-9-7-4-6-6-4-4"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(-0.17234702,-0.42060441,0.42060441,-0.17234702,166.11786,630.60643)"
- inkscape:transform-center-y="-194.73985"
- inkscape:transform-center-x="79.796671" />
- <rect
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="rect3716-4-5-8-1-2-8"
- width="10"
- height="45"
- x="-144.87885"
- y="277.61871"
- ry="1.5118583"
- inkscape:transform-center-y="-202.5"
- transform="matrix(0.5,-0.8660254,0.8660254,0.5,0,0)" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-1-4-6-4-7-0"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(0.22727273,-0.39364791,0.39364791,0.22727273,39.318703,373.16983)"
- inkscape:transform-center-y="-210.45455" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-6-9-2-0-5-0-0"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(0.11764502,-0.43905719,0.43905719,0.11764502,50.614472,457.52606)"
- inkscape:transform-center-y="-203.28349"
- inkscape:transform-center-x="54.469646" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-3-1-3-4-3-7-7"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(0.17299064,-0.4203401,0.4203401,0.17299064,42.301418,416.45357)"
- inkscape:transform-center-y="-208.59101"
- inkscape:transform-center-x="27.944717" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-9-7-4-6-6-4-0"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(0.06104531,-0.45042761,0.45042761,0.06104531,63.936591,496.73173)"
- inkscape:transform-center-y="-194.73985"
- inkscape:transform-center-x="79.796671" />
- <rect
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="rect3716-4-5-8-1-2-7"
- width="10"
- height="45"
- x="125.17072"
- y="280.22"
- ry="1.5118583"
- inkscape:transform-center-y="-202.5"
- transform="matrix(0.8660254,-0.5,0.5,0.8660254,0,0)" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-1-4-6-4-7-4"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(0.39364791,-0.22727273,0.22727273,0.39364791,82.636503,210.06189)"
- inkscape:transform-center-y="-210.45455" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-6-9-2-0-5-0-9"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(0.32141217,-0.32141217,0.32141217,0.32141217,50.240814,288.76441)"
- inkscape:transform-center-y="-203.28349"
- inkscape:transform-center-x="54.469646" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-3-1-3-4-3-7-07"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(0.35998434,-0.27752989,0.27752989,0.35998434,63.577741,249.03807)"
- inkscape:transform-center-y="-208.59101"
- inkscape:transform-center-x="27.944717" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-9-7-4-6-6-4-8"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(0.27808059,-0.3595591,0.3595591,0.27808059,42.175271,329.37858)"
- inkscape:transform-center-y="-194.73985"
- inkscape:transform-center-x="79.796671" />
- <rect
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="rect3716-4-4"
- width="10"
- height="45"
- x="497.28036"
- y="-85.024895"
- ry="1.5118583"
- inkscape:transform-center-y="-202.5"
- transform="matrix(0.8660254,0.5,-0.5,0.8660254,0,0)" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-1-0"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(0.39364791,0.22727273,-0.22727273,0.39364791,364.27816,46.339723)"
- inkscape:transform-center-y="-210.45455" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-6-9-7"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(0.43905719,0.11764502,-0.11764502,0.43905719,279.92193,57.635492)"
- inkscape:transform-center-y="-203.28349"
- inkscape:transform-center-x="54.469646" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-3-1-5"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(0.4203401,0.17299064,-0.17299064,0.4203401,320.99442,49.322438)"
- inkscape:transform-center-y="-208.59101"
- inkscape:transform-center-x="27.944717" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-9-7-6"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(0.45042761,0.06104531,-0.06104531,0.45042761,240.71626,70.957611)"
- inkscape:transform-center-y="-194.73985"
- inkscape:transform-center-x="79.796671" />
- <rect
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="rect3716-4-3"
- width="10"
- height="45"
- x="499.89639"
- y="-354.96362"
- ry="1.5118583"
- inkscape:transform-center-y="-202.5"
- transform="matrix(0.5,0.8660254,-0.8660254,0.5,0,0)" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-1-45"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(0.22727273,0.39364791,-0.39364791,0.22727273,527.3861,89.566623)"
- inkscape:transform-center-y="-210.45455" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-6-9-6"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(0.32141217,0.32141217,-0.32141217,0.32141217,448.68358,57.170934)"
- inkscape:transform-center-y="-203.28349"
- inkscape:transform-center-x="54.469646" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-3-1-54"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(0.27752989,0.35998434,-0.35998434,0.27752989,488.40992,70.507861)"
- inkscape:transform-center-y="-208.59101"
- inkscape:transform-center-x="27.944717" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-9-7-9"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(0.3595591,0.27808059,-0.27808059,0.3595591,408.06941,49.105391)"
- inkscape:transform-center-y="-194.73985"
- inkscape:transform-center-x="79.796671" />
- <rect
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="rect3716-4-56"
- width="10"
- height="45"
- x="367.36218"
- y="-590"
- ry="1.5118583"
- inkscape:transform-center-y="-202.5"
- transform="matrix(0,1,-1,0,0,0)" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-1-04"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(0,0.45454545,-0.45454545,0,646.98281,208.72582)"
- inkscape:transform-center-y="-210.45455" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-6-9-1"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(0.11764502,0.43905719,-0.43905719,0.11764502,595.02227,141.31907)"
- inkscape:transform-center-y="-203.28349"
- inkscape:transform-center-x="54.469646" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-3-1-8"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(0.06035576,0.45052053,-0.45052053,0.06035576,622.75783,172.73236)"
- inkscape:transform-center-y="-208.59101"
- inkscape:transform-center-x="27.944717" />
- <path
- sodipodi:type="arc"
- style="fill:#00a5ff;fill-opacity:1;stroke:none"
- id="path3786-9-7-42"
- sodipodi:cx="360"
- sodipodi:cy="157.36218"
- sodipodi:rx="10"
- sodipodi:ry="10"
- d="m 370,157.36218 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52284 4.47715,-10 10,-10 5.52285,0 10,4.47716 10,10 z"
- transform="matrix(0.17234702,0.42060441,-0.42060441,0.17234702,563.88214,114.02702)"
- inkscape:transform-center-y="-194.73985"
- inkscape:transform-center-x="79.796671" />
- </g>
- <rect
- rx="12.978579"
- inkscape:transform-center-y="-70.751411"
- transform="matrix(0.7066992,-0.70751413,0.70751413,0.7066992,0,0)"
- inkscape:transform-center-x="-70.669924"
- ry="7.2575359"
- y="715.8313"
- x="-381.91174"
- height="20"
- width="230"
- id="rect3762-0"
- style="fill:#000000;fill-opacity:1;stroke:#0000ff;stroke-width:5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
- <rect
- rx="13.278619"
- inkscape:transform-center-y="85.281898"
- transform="matrix(0.55244594,0.83354873,-0.78630047,0.6178443,0,0)"
- inkscape:transform-center-x="-56.521735"
- ry="3.9863305"
- y="214.39511"
- x="751.7356"
- height="8.8174219"
- width="236.8828"
- id="rect3762-0-4"
- style="fill:#00ffff;fill-opacity:1;stroke:none" />
- <rect
- rx="10.526052"
- inkscape:transform-center-y="23.271051"
- transform="matrix(0.55244594,0.83354873,-0.78630047,0.6178443,0,0)"
- inkscape:transform-center-x="-15.423206"
- ry="8.7343025"
- y="204.75136"
- x="691.64435"
- height="32.137718"
- width="68.668678"
- id="rect3762-0-4-0"
- style="fill:#00ffff;fill-opacity:1;stroke:none" />
- <path
- transform="translate(-114.28571,402.85714)"
- d="m 396.07143,372.71933 c 0,17.16028 -13.91115,31.07143 -31.07143,31.07143 -17.16028,0 -31.07143,-13.91115 -31.07143,-31.07143 0,-17.16028 13.91115,-31.07143 31.07143,-31.07143 17.16028,0 31.07143,13.91115 31.07143,31.07143 z"
- sodipodi:ry="31.071428"
- sodipodi:rx="31.071428"
- sodipodi:cy="372.71933"
- sodipodi:cx="365"
- id="path4662"
- style="fill:#00bcff;fill-opacity:1;stroke:none"
- sodipodi:type="arc" />
- </g>
- </g>
-</svg>
diff --git a/data/figures/meson.build b/data/figures/meson.build
index 695429a..bb4d490 100644
--- a/data/figures/meson.build
+++ b/data/figures/meson.build
@@ -6,15 +6,3 @@ install_data([
],
install_dir : join_paths(prefixed_datadir, 'gnome-color-manager/figures')
)
-
-install_data([
- 'calibration-long.svg',
- 'calibration-normal.svg',
- 'calibration-short.svg',
- 'clock.svg',
- 'scan-target-bad.svg',
- 'scan-target-good.svg',
- 'scan-target.svg',
- ],
- install_dir : join_paths(prefixed_datadir, 'gnome-color-manager/icons')
-)
diff --git a/data/figures/scan-target-bad.svg b/data/figures/scan-target-bad.svg
deleted file mode 100644
index 8f3ac1e..0000000
--- a/data/figures/scan-target-bad.svg
+++ /dev/null
@@ -1,765 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="480"
- height="260"
- id="svg2"
- version="1.1"
- inkscape:version="0.47 r22583"
- sodipodi:docname="argyll-target.svg">
- <defs
- id="defs4">
- <linearGradient
- id="linearGradient5681">
- <stop
- style="stop-color:#460546;stop-opacity:1;"
- offset="0"
- id="stop5683" />
- <stop
- id="stop5689"
- offset="1"
- style="stop-color:#462546;stop-opacity:0.49803922;" />
- </linearGradient>
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 526.18109 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="744.09448 : 526.18109 : 1"
- inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
- id="perspective10" />
- <inkscape:perspective
- id="perspective2886"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3684"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3706"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3728"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3750"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3783"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3807"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3840"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3868"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3868-3"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3899"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3921"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3943"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3967"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3991"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective4013"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective4035"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective4075"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective2857"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3645"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3667"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3689"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3689-5"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3689-3"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3689-2"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3689-0"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3758"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3816"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3917"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3942"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- </defs>
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="0.79469228"
- inkscape:cx="384.59743"
- inkscape:cy="-83.914951"
- inkscape:document-units="px"
- inkscape:current-layer="layer1"
- showgrid="true"
- inkscape:snap-from-guide="false"
- inkscape:window-width="1680"
- inkscape:window-height="975"
- inkscape:window-x="0"
- inkscape:window-y="25"
- inkscape:window-maximized="1">
- <inkscape:grid
- type="xygrid"
- id="grid2816"
- empspacing="5"
- visible="true"
- enabled="true"
- snapvisiblegridlinesonly="true" />
- </sodipodi:namedview>
- <metadata
- id="metadata7">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:label="Layer 1"
- inkscape:groupmode="layer"
- id="layer1"
- transform="translate(-10,-692.36218)">
- <rect
- style="fill:#8a23ff;fill-opacity:1;stroke:none"
- id="rect2863"
- width="60"
- height="60"
- x="60"
- y="882.36218"
- ry="0" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none"
- id="rect2863-4"
- width="5"
- height="60"
- x="120"
- y="882.36218"
- ry="0" />
- <rect
- style="fill:#d10000;fill-opacity:1;stroke:none"
- id="rect2863-4-4"
- width="3.7500002"
- height="60"
- x="56.25"
- y="882.36218"
- ry="0" />
- <rect
- style="fill:#000000;fill-opacity:1;stroke:none"
- id="rect2863-41"
- width="60"
- height="60"
- x="125"
- y="882.36218"
- ry="0" />
- <rect
- style="fill:#d100b7;fill-opacity:1;stroke:none"
- id="rect2863-4-5"
- width="5"
- height="60"
- x="185"
- y="882.36218"
- ry="0" />
- <rect
- style="fill:#a8a8a8;fill-opacity:1;stroke:none"
- id="rect2863-49"
- width="60"
- height="60"
- x="190"
- y="882.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-8"
- width="5"
- height="60"
- x="250"
- y="882.36218"
- ry="0" />
- <rect
- style="fill:#9beb6f;fill-opacity:1;stroke:none"
- id="rect2863-8"
- width="60"
- height="60"
- x="255"
- y="882.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-52"
- width="5"
- height="60"
- x="315"
- y="882.36218"
- ry="0" />
- <rect
- style="fill:#a7b719;fill-opacity:1;stroke:none"
- id="rect2863-2"
- width="60"
- height="60"
- x="320"
- y="882.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-7"
- width="5"
- height="60"
- x="380"
- y="882.36218"
- ry="0" />
- <rect
- style="fill:#c9c9c9;fill-opacity:1;stroke:none"
- id="rect2863-3"
- width="60"
- height="60"
- x="385"
- y="882.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-46"
- width="5"
- height="60"
- x="445"
- y="882.36218"
- ry="0" />
- <rect
- style="fill:#f47d2c;fill-opacity:1;stroke:none"
- id="rect2863-492"
- width="60"
- height="60"
- x="95"
- y="822.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-74"
- width="5"
- height="60"
- x="155"
- y="822.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-4-2"
- width="5"
- height="60"
- x="90"
- y="822.36218"
- ry="0" />
- <rect
- style="fill:#d6d6d6;fill-opacity:1;stroke:none"
- id="rect2863-41-5"
- width="60"
- height="60"
- x="160"
- y="822.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-5-2"
- width="5"
- height="60"
- x="220"
- y="822.36218"
- ry="0" />
- <rect
- style="fill:#3f9650;fill-opacity:1;stroke:none"
- id="rect2863-49-4"
- width="60"
- height="60"
- x="225"
- y="822.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-8-4"
- width="5"
- height="60"
- x="285"
- y="822.36218"
- ry="0" />
- <rect
- style="fill:#ffffff;fill-opacity:1;stroke:none"
- id="rect2863-8-3"
- width="60"
- height="60"
- x="290"
- y="822.36218"
- ry="0" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none"
- id="rect2863-4-52-8"
- width="5"
- height="60"
- x="350"
- y="822.36218"
- ry="0" />
- <rect
- style="fill:#40003e;fill-opacity:1;stroke:none"
- id="rect2863-2-6"
- width="60"
- height="60"
- x="355"
- y="822.36218"
- ry="0" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none"
- id="rect2863-4-7-0"
- width="5"
- height="60"
- x="415"
- y="822.36218"
- ry="0" />
- <rect
- style="fill:#f7f7f7;fill-opacity:1;stroke:none"
- id="rect2863-3-8"
- width="60"
- height="60"
- x="420"
- y="822.36218"
- ry="0" />
- <rect
- style="fill:#d100b7;fill-opacity:1;stroke:none"
- id="rect2863-4-46-9"
- width="5"
- height="60"
- x="480"
- y="822.36218"
- ry="0" />
- <rect
- style="fill:#fcff81;fill-opacity:1;stroke:none"
- id="rect2863-31"
- width="60"
- height="60"
- x="60"
- y="762.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-83"
- width="5"
- height="60"
- x="120"
- y="762.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-4-4"
- width="3.7500002"
- height="60"
- x="56.25"
- y="762.36218"
- ry="0" />
- <rect
- style="fill:#b6ff3a;fill-opacity:1;stroke:none"
- id="rect2863-41-2"
- width="60"
- height="60"
- x="125"
- y="762.36218"
- ry="0" />
- <rect
- style="fill:#d10000;fill-opacity:1;stroke:none"
- id="rect2863-4-5-24"
- width="5"
- height="60"
- x="185"
- y="762.36218"
- ry="0" />
- <rect
- style="fill:#b40faa;fill-opacity:1;stroke:none"
- id="rect2863-49-5"
- width="60"
- height="60"
- x="190"
- y="762.36218"
- ry="0" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none"
- id="rect2863-4-8-1"
- width="5"
- height="60"
- x="250"
- y="762.36218"
- ry="0" />
- <rect
- style="fill:#1b021a;fill-opacity:1;stroke:none"
- id="rect2863-8-7"
- width="60"
- height="60"
- x="255"
- y="762.36218"
- ry="0" />
- <rect
- style="fill:#d100b7;fill-opacity:1;stroke:none"
- id="rect2863-4-52-5"
- width="5"
- height="60"
- x="315"
- y="762.36218"
- ry="0" />
- <rect
- style="fill:#bcbcbc;fill-opacity:1;stroke:none"
- id="rect2863-2-7"
- width="60"
- height="60"
- x="320"
- y="762.36218"
- ry="0" />
- <rect
- style="fill:#d10000;fill-opacity:1;stroke:none"
- id="rect2863-4-7-1"
- width="5"
- height="60"
- x="380"
- y="762.36218"
- ry="0" />
- <rect
- style="fill:#9a41ff;fill-opacity:1;stroke:none"
- id="rect2863-3-6"
- width="60"
- height="60"
- x="385"
- y="762.36218"
- ry="0" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none"
- id="rect2863-4-46-98"
- width="5"
- height="60"
- x="445"
- y="762.36218"
- ry="0" />
- <rect
- style="fill:#b9cc8b;fill-opacity:1;stroke:none"
- id="rect2863-492-1"
- width="60"
- height="60"
- x="95"
- y="702.36218"
- ry="0" />
- <rect
- style="fill:#008eff;fill-opacity:1;stroke:none"
- id="rect2863-4-74-3"
- width="5"
- height="60"
- x="155"
- y="702.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-4-2-3"
- width="5"
- height="60"
- x="90"
- y="702.36218"
- ry="0" />
- <rect
- style="fill:#841000;fill-opacity:1;stroke:none"
- id="rect2863-41-5-3"
- width="60"
- height="60"
- x="160"
- y="702.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-5-2-7"
- width="5"
- height="60"
- x="220"
- y="702.36218"
- ry="0" />
- <rect
- style="fill:none;stroke:none"
- id="rect2863-49-4-9"
- width="60"
- height="60"
- x="225"
- y="702.36218"
- ry="0" />
- <rect
- style="fill:#d100b7;fill-opacity:1;stroke:none"
- id="rect2863-4-8-4-8"
- width="5"
- height="60"
- x="285"
- y="702.36218"
- ry="0" />
- <rect
- style="fill:#191742;fill-opacity:1;stroke:none"
- id="rect2863-8-3-6"
- width="60"
- height="60"
- x="290"
- y="702.36218"
- ry="0" />
- <rect
- style="fill:#d100b7;fill-opacity:1;stroke:none"
- id="rect2863-4-52-8-7"
- width="5"
- height="60"
- x="350"
- y="702.36218"
- ry="0" />
- <rect
- style="fill:#50ff03;fill-opacity:1;stroke:none"
- id="rect2863-2-6-0"
- width="60"
- height="60"
- x="355"
- y="702.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-7-0-4"
- width="5"
- height="60"
- x="415"
- y="702.36218"
- ry="0" />
- <rect
- style="fill:none;stroke:none"
- id="rect2863-3-8-8"
- width="60"
- height="60"
- x="420"
- y="702.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-46-9-4"
- width="5"
- height="60"
- x="480"
- y="702.36218"
- ry="0" />
- <text
- xml:space="preserve"
- style="font-size:30.98386765px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- x="-887.26385"
- y="46.217602"
- id="text3905"
- transform="matrix(0,-1.0327955,0.96824589,0,0,0)"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3907"
- x="-887.26385"
- y="46.217602">A</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:30.98386765px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- x="-828.47699"
- y="46.217602"
- id="text3905-0"
- transform="matrix(0,-1.0327955,0.96824589,0,0,0)"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3907-5"
- x="-828.47699"
- y="46.217602">B</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:30.98386765px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- x="-770.76044"
- y="42.34462"
- id="text3905-6"
- transform="matrix(0,-1.0327955,0.96824589,0,0,0)"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3907-0"
- x="-770.76044"
- y="42.34462">C</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:30.98386765px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- x="-712.61273"
- y="42.34462"
- id="text3905-0-6"
- transform="matrix(0,-1.0327955,0.96824589,0,0,0)"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3907-5-4"
- x="-712.61273"
- y="42.34462">D</tspan></text>
- <rect
- style="fill:#ff0303;fill-opacity:1;stroke:#000000;stroke-width:5.03194904;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- id="rect3967"
- width="395"
- height="60"
- x="55"
- y="762.36218" />
- </g>
-</svg>
diff --git a/data/figures/scan-target-good.svg b/data/figures/scan-target-good.svg
deleted file mode 100644
index 7e12007..0000000
--- a/data/figures/scan-target-good.svg
+++ /dev/null
@@ -1,765 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="480"
- height="260"
- id="svg2"
- version="1.1"
- inkscape:version="0.47 r22583"
- sodipodi:docname="argyll-target-bad.svg">
- <defs
- id="defs4">
- <linearGradient
- id="linearGradient5681">
- <stop
- style="stop-color:#460546;stop-opacity:1;"
- offset="0"
- id="stop5683" />
- <stop
- id="stop5689"
- offset="1"
- style="stop-color:#462546;stop-opacity:0.49803922;" />
- </linearGradient>
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 526.18109 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="744.09448 : 526.18109 : 1"
- inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
- id="perspective10" />
- <inkscape:perspective
- id="perspective2886"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3684"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3706"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3728"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3750"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3783"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3807"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3840"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3868"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3868-3"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3899"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3921"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3943"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3967"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3991"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective4013"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective4035"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective4075"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective2857"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3645"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3667"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3689"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3689-5"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3689-3"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3689-2"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3689-0"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3758"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3816"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3917"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3942"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- </defs>
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="0.79469228"
- inkscape:cx="384.59743"
- inkscape:cy="-83.914951"
- inkscape:document-units="px"
- inkscape:current-layer="layer1"
- showgrid="true"
- inkscape:snap-from-guide="false"
- inkscape:window-width="1680"
- inkscape:window-height="975"
- inkscape:window-x="0"
- inkscape:window-y="25"
- inkscape:window-maximized="1">
- <inkscape:grid
- type="xygrid"
- id="grid2816"
- empspacing="5"
- visible="true"
- enabled="true"
- snapvisiblegridlinesonly="true" />
- </sodipodi:namedview>
- <metadata
- id="metadata7">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:label="Layer 1"
- inkscape:groupmode="layer"
- id="layer1"
- transform="translate(-10,-692.36218)">
- <rect
- style="fill:#8a23ff;fill-opacity:1;stroke:none"
- id="rect2863"
- width="60"
- height="60"
- x="60"
- y="882.36218"
- ry="0" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none"
- id="rect2863-4"
- width="5"
- height="60"
- x="120"
- y="882.36218"
- ry="0" />
- <rect
- style="fill:#d10000;fill-opacity:1;stroke:none"
- id="rect2863-4-4"
- width="3.7500002"
- height="60"
- x="56.25"
- y="882.36218"
- ry="0" />
- <rect
- style="fill:#000000;fill-opacity:1;stroke:none"
- id="rect2863-41"
- width="60"
- height="60"
- x="125"
- y="882.36218"
- ry="0" />
- <rect
- style="fill:#d100b7;fill-opacity:1;stroke:none"
- id="rect2863-4-5"
- width="5"
- height="60"
- x="185"
- y="882.36218"
- ry="0" />
- <rect
- style="fill:#a8a8a8;fill-opacity:1;stroke:none"
- id="rect2863-49"
- width="60"
- height="60"
- x="190"
- y="882.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-8"
- width="5"
- height="60"
- x="250"
- y="882.36218"
- ry="0" />
- <rect
- style="fill:#9beb6f;fill-opacity:1;stroke:none"
- id="rect2863-8"
- width="60"
- height="60"
- x="255"
- y="882.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-52"
- width="5"
- height="60"
- x="315"
- y="882.36218"
- ry="0" />
- <rect
- style="fill:#a7b719;fill-opacity:1;stroke:none"
- id="rect2863-2"
- width="60"
- height="60"
- x="320"
- y="882.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-7"
- width="5"
- height="60"
- x="380"
- y="882.36218"
- ry="0" />
- <rect
- style="fill:#c9c9c9;fill-opacity:1;stroke:none"
- id="rect2863-3"
- width="60"
- height="60"
- x="385"
- y="882.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-46"
- width="5"
- height="60"
- x="445"
- y="882.36218"
- ry="0" />
- <rect
- style="fill:#f47d2c;fill-opacity:1;stroke:none"
- id="rect2863-492"
- width="60"
- height="60"
- x="95"
- y="822.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-74"
- width="5"
- height="60"
- x="155"
- y="822.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-4-2"
- width="5"
- height="60"
- x="90"
- y="822.36218"
- ry="0" />
- <rect
- style="fill:#d6d6d6;fill-opacity:1;stroke:none"
- id="rect2863-41-5"
- width="60"
- height="60"
- x="160"
- y="822.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-5-2"
- width="5"
- height="60"
- x="220"
- y="822.36218"
- ry="0" />
- <rect
- style="fill:#3f9650;fill-opacity:1;stroke:none"
- id="rect2863-49-4"
- width="60"
- height="60"
- x="225"
- y="822.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-8-4"
- width="5"
- height="60"
- x="285"
- y="822.36218"
- ry="0" />
- <rect
- style="fill:#ffffff;fill-opacity:1;stroke:none"
- id="rect2863-8-3"
- width="60"
- height="60"
- x="290"
- y="822.36218"
- ry="0" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none"
- id="rect2863-4-52-8"
- width="5"
- height="60"
- x="350"
- y="822.36218"
- ry="0" />
- <rect
- style="fill:#40003e;fill-opacity:1;stroke:none"
- id="rect2863-2-6"
- width="60"
- height="60"
- x="355"
- y="822.36218"
- ry="0" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none"
- id="rect2863-4-7-0"
- width="5"
- height="60"
- x="415"
- y="822.36218"
- ry="0" />
- <rect
- style="fill:#f7f7f7;fill-opacity:1;stroke:none"
- id="rect2863-3-8"
- width="60"
- height="60"
- x="420"
- y="822.36218"
- ry="0" />
- <rect
- style="fill:#d100b7;fill-opacity:1;stroke:none"
- id="rect2863-4-46-9"
- width="5"
- height="60"
- x="480"
- y="822.36218"
- ry="0" />
- <rect
- style="fill:#fcff81;fill-opacity:1;stroke:none"
- id="rect2863-31"
- width="60"
- height="60"
- x="60"
- y="762.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-83"
- width="5"
- height="60"
- x="120"
- y="762.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-4-4"
- width="3.7500002"
- height="60"
- x="56.25"
- y="762.36218"
- ry="0" />
- <rect
- style="fill:#b6ff3a;fill-opacity:1;stroke:none"
- id="rect2863-41-2"
- width="60"
- height="60"
- x="125"
- y="762.36218"
- ry="0" />
- <rect
- style="fill:#d10000;fill-opacity:1;stroke:none"
- id="rect2863-4-5-24"
- width="5"
- height="60"
- x="185"
- y="762.36218"
- ry="0" />
- <rect
- style="fill:#b40faa;fill-opacity:1;stroke:none"
- id="rect2863-49-5"
- width="60"
- height="60"
- x="190"
- y="762.36218"
- ry="0" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none"
- id="rect2863-4-8-1"
- width="5"
- height="60"
- x="250"
- y="762.36218"
- ry="0" />
- <rect
- style="fill:#1b021a;fill-opacity:1;stroke:none"
- id="rect2863-8-7"
- width="60"
- height="60"
- x="255"
- y="762.36218"
- ry="0" />
- <rect
- style="fill:#d100b7;fill-opacity:1;stroke:none"
- id="rect2863-4-52-5"
- width="5"
- height="60"
- x="315"
- y="762.36218"
- ry="0" />
- <rect
- style="fill:#bcbcbc;fill-opacity:1;stroke:none"
- id="rect2863-2-7"
- width="60"
- height="60"
- x="320"
- y="762.36218"
- ry="0" />
- <rect
- style="fill:#d10000;fill-opacity:1;stroke:none"
- id="rect2863-4-7-1"
- width="5"
- height="60"
- x="380"
- y="762.36218"
- ry="0" />
- <rect
- style="fill:#9a41ff;fill-opacity:1;stroke:none"
- id="rect2863-3-6"
- width="60"
- height="60"
- x="385"
- y="762.36218"
- ry="0" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none"
- id="rect2863-4-46-98"
- width="5"
- height="60"
- x="445"
- y="762.36218"
- ry="0" />
- <rect
- style="fill:#b9cc8b;fill-opacity:1;stroke:none"
- id="rect2863-492-1"
- width="60"
- height="60"
- x="95"
- y="702.36218"
- ry="0" />
- <rect
- style="fill:#008eff;fill-opacity:1;stroke:none"
- id="rect2863-4-74-3"
- width="5"
- height="60"
- x="155"
- y="702.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-4-2-3"
- width="5"
- height="60"
- x="90"
- y="702.36218"
- ry="0" />
- <rect
- style="fill:#841000;fill-opacity:1;stroke:none"
- id="rect2863-41-5-3"
- width="60"
- height="60"
- x="160"
- y="702.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-5-2-7"
- width="5"
- height="60"
- x="220"
- y="702.36218"
- ry="0" />
- <rect
- style="fill:none;stroke:none"
- id="rect2863-49-4-9"
- width="60"
- height="60"
- x="225"
- y="702.36218"
- ry="0" />
- <rect
- style="fill:#d100b7;fill-opacity:1;stroke:none"
- id="rect2863-4-8-4-8"
- width="5"
- height="60"
- x="285"
- y="702.36218"
- ry="0" />
- <rect
- style="fill:#191742;fill-opacity:1;stroke:none"
- id="rect2863-8-3-6"
- width="60"
- height="60"
- x="290"
- y="702.36218"
- ry="0" />
- <rect
- style="fill:#d100b7;fill-opacity:1;stroke:none"
- id="rect2863-4-52-8-7"
- width="5"
- height="60"
- x="350"
- y="702.36218"
- ry="0" />
- <rect
- style="fill:#50ff03;fill-opacity:1;stroke:none"
- id="rect2863-2-6-0"
- width="60"
- height="60"
- x="355"
- y="702.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-7-0-4"
- width="5"
- height="60"
- x="415"
- y="702.36218"
- ry="0" />
- <rect
- style="fill:none;stroke:none"
- id="rect2863-3-8-8"
- width="60"
- height="60"
- x="420"
- y="702.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-46-9-4"
- width="5"
- height="60"
- x="480"
- y="702.36218"
- ry="0" />
- <text
- xml:space="preserve"
- style="font-size:30.98386765px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- x="-887.26385"
- y="46.217602"
- id="text3905"
- transform="matrix(0,-1.0327955,0.96824589,0,0,0)"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3907"
- x="-887.26385"
- y="46.217602">A</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:30.98386765px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- x="-828.47699"
- y="46.217602"
- id="text3905-0"
- transform="matrix(0,-1.0327955,0.96824589,0,0,0)"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3907-5"
- x="-828.47699"
- y="46.217602">B</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:30.98386765px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- x="-770.76044"
- y="42.34462"
- id="text3905-6"
- transform="matrix(0,-1.0327955,0.96824589,0,0,0)"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3907-0"
- x="-770.76044"
- y="42.34462">C</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:30.98386765px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- x="-712.61273"
- y="42.34462"
- id="text3905-0-6"
- transform="matrix(0,-1.0327955,0.96824589,0,0,0)"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3907-5-4"
- x="-712.61273"
- y="42.34462">D</tspan></text>
- <rect
- style="fill:#1aff03;fill-opacity:1;stroke:#000000;stroke-width:5.03194903999999976;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- id="rect3967"
- width="395"
- height="60"
- x="55"
- y="762.36218" />
- </g>
-</svg>
diff --git a/data/figures/scan-target.svg b/data/figures/scan-target.svg
deleted file mode 100644
index 4cf1995..0000000
--- a/data/figures/scan-target.svg
+++ /dev/null
@@ -1,758 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="480"
- height="260"
- id="svg2"
- version="1.1"
- inkscape:version="0.47 r22583"
- sodipodi:docname="argyll-target-bad.svg">
- <defs
- id="defs4">
- <linearGradient
- id="linearGradient5681">
- <stop
- style="stop-color:#460546;stop-opacity:1;"
- offset="0"
- id="stop5683" />
- <stop
- id="stop5689"
- offset="1"
- style="stop-color:#462546;stop-opacity:0.49803922;" />
- </linearGradient>
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 526.18109 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="744.09448 : 526.18109 : 1"
- inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
- id="perspective10" />
- <inkscape:perspective
- id="perspective2886"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3684"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3706"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3728"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3750"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3783"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3807"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3840"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3868"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3868-3"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3899"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3921"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3943"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3967"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3991"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective4013"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective4035"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective4075"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective2857"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3645"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3667"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3689"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3689-5"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3689-3"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3689-2"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3689-0"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3758"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3816"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3917"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3942"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- </defs>
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="0.79469228"
- inkscape:cx="384.59743"
- inkscape:cy="-86.431648"
- inkscape:document-units="px"
- inkscape:current-layer="layer1"
- showgrid="true"
- inkscape:snap-from-guide="false"
- inkscape:window-width="1680"
- inkscape:window-height="975"
- inkscape:window-x="0"
- inkscape:window-y="25"
- inkscape:window-maximized="1">
- <inkscape:grid
- type="xygrid"
- id="grid2816"
- empspacing="5"
- visible="true"
- enabled="true"
- snapvisiblegridlinesonly="true" />
- </sodipodi:namedview>
- <metadata
- id="metadata7">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:label="Layer 1"
- inkscape:groupmode="layer"
- id="layer1"
- transform="translate(-10,-692.36218)">
- <rect
- style="fill:#8a23ff;fill-opacity:1;stroke:none"
- id="rect2863"
- width="60"
- height="60"
- x="60"
- y="882.36218"
- ry="0" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none"
- id="rect2863-4"
- width="5"
- height="60"
- x="120"
- y="882.36218"
- ry="0" />
- <rect
- style="fill:#d10000;fill-opacity:1;stroke:none"
- id="rect2863-4-4"
- width="3.7500002"
- height="60"
- x="56.25"
- y="882.36218"
- ry="0" />
- <rect
- style="fill:#000000;fill-opacity:1;stroke:none"
- id="rect2863-41"
- width="60"
- height="60"
- x="125"
- y="882.36218"
- ry="0" />
- <rect
- style="fill:#d100b7;fill-opacity:1;stroke:none"
- id="rect2863-4-5"
- width="5"
- height="60"
- x="185"
- y="882.36218"
- ry="0" />
- <rect
- style="fill:#a8a8a8;fill-opacity:1;stroke:none"
- id="rect2863-49"
- width="60"
- height="60"
- x="190"
- y="882.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-8"
- width="5"
- height="60"
- x="250"
- y="882.36218"
- ry="0" />
- <rect
- style="fill:#9beb6f;fill-opacity:1;stroke:none"
- id="rect2863-8"
- width="60"
- height="60"
- x="255"
- y="882.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-52"
- width="5"
- height="60"
- x="315"
- y="882.36218"
- ry="0" />
- <rect
- style="fill:#a7b719;fill-opacity:1;stroke:none"
- id="rect2863-2"
- width="60"
- height="60"
- x="320"
- y="882.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-7"
- width="5"
- height="60"
- x="380"
- y="882.36218"
- ry="0" />
- <rect
- style="fill:#c9c9c9;fill-opacity:1;stroke:none"
- id="rect2863-3"
- width="60"
- height="60"
- x="385"
- y="882.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-46"
- width="5"
- height="60"
- x="445"
- y="882.36218"
- ry="0" />
- <rect
- style="fill:#f47d2c;fill-opacity:1;stroke:none"
- id="rect2863-492"
- width="60"
- height="60"
- x="95"
- y="822.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-74"
- width="5"
- height="60"
- x="155"
- y="822.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-4-2"
- width="5"
- height="60"
- x="90"
- y="822.36218"
- ry="0" />
- <rect
- style="fill:#d6d6d6;fill-opacity:1;stroke:none"
- id="rect2863-41-5"
- width="60"
- height="60"
- x="160"
- y="822.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-5-2"
- width="5"
- height="60"
- x="220"
- y="822.36218"
- ry="0" />
- <rect
- style="fill:#3f9650;fill-opacity:1;stroke:none"
- id="rect2863-49-4"
- width="60"
- height="60"
- x="225"
- y="822.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-8-4"
- width="5"
- height="60"
- x="285"
- y="822.36218"
- ry="0" />
- <rect
- style="fill:#ffffff;fill-opacity:1;stroke:none"
- id="rect2863-8-3"
- width="60"
- height="60"
- x="290"
- y="822.36218"
- ry="0" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none"
- id="rect2863-4-52-8"
- width="5"
- height="60"
- x="350"
- y="822.36218"
- ry="0" />
- <rect
- style="fill:#40003e;fill-opacity:1;stroke:none"
- id="rect2863-2-6"
- width="60"
- height="60"
- x="355"
- y="822.36218"
- ry="0" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none"
- id="rect2863-4-7-0"
- width="5"
- height="60"
- x="415"
- y="822.36218"
- ry="0" />
- <rect
- style="fill:#f7f7f7;fill-opacity:1;stroke:none"
- id="rect2863-3-8"
- width="60"
- height="60"
- x="420"
- y="822.36218"
- ry="0" />
- <rect
- style="fill:#d100b7;fill-opacity:1;stroke:none"
- id="rect2863-4-46-9"
- width="5"
- height="60"
- x="480"
- y="822.36218"
- ry="0" />
- <rect
- style="fill:#fcff81;fill-opacity:1;stroke:none"
- id="rect2863-31"
- width="60"
- height="60"
- x="60"
- y="762.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-83"
- width="5"
- height="60"
- x="120"
- y="762.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-4-4"
- width="3.7500002"
- height="60"
- x="56.25"
- y="762.36218"
- ry="0" />
- <rect
- style="fill:#b6ff3a;fill-opacity:1;stroke:none"
- id="rect2863-41-2"
- width="60"
- height="60"
- x="125"
- y="762.36218"
- ry="0" />
- <rect
- style="fill:#d10000;fill-opacity:1;stroke:none"
- id="rect2863-4-5-24"
- width="5"
- height="60"
- x="185"
- y="762.36218"
- ry="0" />
- <rect
- style="fill:#b40faa;fill-opacity:1;stroke:none"
- id="rect2863-49-5"
- width="60"
- height="60"
- x="190"
- y="762.36218"
- ry="0" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none"
- id="rect2863-4-8-1"
- width="5"
- height="60"
- x="250"
- y="762.36218"
- ry="0" />
- <rect
- style="fill:#1b021a;fill-opacity:1;stroke:none"
- id="rect2863-8-7"
- width="60"
- height="60"
- x="255"
- y="762.36218"
- ry="0" />
- <rect
- style="fill:#d100b7;fill-opacity:1;stroke:none"
- id="rect2863-4-52-5"
- width="5"
- height="60"
- x="315"
- y="762.36218"
- ry="0" />
- <rect
- style="fill:#bcbcbc;fill-opacity:1;stroke:none"
- id="rect2863-2-7"
- width="60"
- height="60"
- x="320"
- y="762.36218"
- ry="0" />
- <rect
- style="fill:#d10000;fill-opacity:1;stroke:none"
- id="rect2863-4-7-1"
- width="5"
- height="60"
- x="380"
- y="762.36218"
- ry="0" />
- <rect
- style="fill:#9a41ff;fill-opacity:1;stroke:none"
- id="rect2863-3-6"
- width="60"
- height="60"
- x="385"
- y="762.36218"
- ry="0" />
- <rect
- style="fill:#ffc600;fill-opacity:1;stroke:none"
- id="rect2863-4-46-98"
- width="5"
- height="60"
- x="445"
- y="762.36218"
- ry="0" />
- <rect
- style="fill:#b9cc8b;fill-opacity:1;stroke:none"
- id="rect2863-492-1"
- width="60"
- height="60"
- x="95"
- y="702.36218"
- ry="0" />
- <rect
- style="fill:#008eff;fill-opacity:1;stroke:none"
- id="rect2863-4-74-3"
- width="5"
- height="60"
- x="155"
- y="702.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-4-2-3"
- width="5"
- height="60"
- x="90"
- y="702.36218"
- ry="0" />
- <rect
- style="fill:#841000;fill-opacity:1;stroke:none"
- id="rect2863-41-5-3"
- width="60"
- height="60"
- x="160"
- y="702.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-5-2-7"
- width="5"
- height="60"
- x="220"
- y="702.36218"
- ry="0" />
- <rect
- style="fill:none;stroke:none"
- id="rect2863-49-4-9"
- width="60"
- height="60"
- x="225"
- y="702.36218"
- ry="0" />
- <rect
- style="fill:#d100b7;fill-opacity:1;stroke:none"
- id="rect2863-4-8-4-8"
- width="5"
- height="60"
- x="285"
- y="702.36218"
- ry="0" />
- <rect
- style="fill:#191742;fill-opacity:1;stroke:none"
- id="rect2863-8-3-6"
- width="60"
- height="60"
- x="290"
- y="702.36218"
- ry="0" />
- <rect
- style="fill:#d100b7;fill-opacity:1;stroke:none"
- id="rect2863-4-52-8-7"
- width="5"
- height="60"
- x="350"
- y="702.36218"
- ry="0" />
- <rect
- style="fill:#50ff03;fill-opacity:1;stroke:none"
- id="rect2863-2-6-0"
- width="60"
- height="60"
- x="355"
- y="702.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-7-0-4"
- width="5"
- height="60"
- x="415"
- y="702.36218"
- ry="0" />
- <rect
- style="fill:none;stroke:none"
- id="rect2863-3-8-8"
- width="60"
- height="60"
- x="420"
- y="702.36218"
- ry="0" />
- <rect
- style="fill:#00009d;fill-opacity:1;stroke:none"
- id="rect2863-4-46-9-4"
- width="5"
- height="60"
- x="480"
- y="702.36218"
- ry="0" />
- <text
- xml:space="preserve"
- style="font-size:30.98386765px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- x="-887.26385"
- y="46.217602"
- id="text3905"
- transform="matrix(0,-1.0327955,0.96824589,0,0,0)"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3907"
- x="-887.26385"
- y="46.217602">A</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:30.98386765px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- x="-828.47699"
- y="46.217602"
- id="text3905-0"
- transform="matrix(0,-1.0327955,0.96824589,0,0,0)"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3907-5"
- x="-828.47699"
- y="46.217602">B</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:30.98386765px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- x="-770.76044"
- y="42.34462"
- id="text3905-6"
- transform="matrix(0,-1.0327955,0.96824589,0,0,0)"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3907-0"
- x="-770.76044"
- y="42.34462">C</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:30.98386765px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- x="-712.61273"
- y="42.34462"
- id="text3905-0-6"
- transform="matrix(0,-1.0327955,0.96824589,0,0,0)"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3907-5-4"
- x="-712.61273"
- y="42.34462">D</tspan></text>
- </g>
-</svg>
diff --git a/data/gcm-calibrate.desktop.in b/data/gcm-calibrate.desktop.in
deleted file mode 100644
index d770a38..0000000
--- a/data/gcm-calibrate.desktop.in
+++ /dev/null
@@ -1,14 +0,0 @@
-[Desktop Entry]
-Name=Color
-Comment=Color Calibration
-# Translators: Do NOT translate or transliterate this text (this is an icon file name)!
-Icon=gnome-color-manager
-Exec=gcm-calibrate
-Terminal=false
-Type=Application
-Categories=Settings;
-StartupNotify=true
-NoDisplay=true
-X-GNOME-Bugzilla-Bugzilla=GNOME
-X-GNOME-Bugzilla-Product=gnome-color-manager
-X-GNOME-Bugzilla-Component=gnome-color-manager
diff --git a/data/icons/meson.build b/data/icons/meson.build
index f1b05b3..eac6c37 100644
--- a/data/icons/meson.build
+++ b/data/icons/meson.build
@@ -14,11 +14,3 @@ install_data([
],
install_dir : join_paths(prefixed_datadir, 'icons/hicolor/scalable/apps')
)
-
-install_data([
- 'scalable/lcd.svg',
- 'scalable/crt.svg',
- 'scalable/projector.svg',
- ],
- install_dir : join_paths(prefixed_datadir, 'gnome-color-manager/icons/icons')
-)
diff --git a/data/icons/scalable/crt.svg b/data/icons/scalable/crt.svg
deleted file mode 100644
index 03d19b5..0000000
--- a/data/icons/scalable/crt.svg
+++ /dev/null
@@ -1,1333 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="48"
- height="48"
- id="svg2"
- sodipodi:version="0.32"
- inkscape:version="0.47 r22583"
- version="1.0"
- sodipodi:docname="crt.svg"
- inkscape:export-filename="/home/bellaich/computer-apple-imac-g3.png"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90"
- inkscape:output_extension="org.inkscape.output.svg.inkscape">
- <defs
- id="defs4">
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 24 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="48 : 24 : 1"
- inkscape:persp3d-origin="24 : 16 : 1"
- id="perspective183" />
- <linearGradient
- id="linearGradient3443">
- <stop
- id="stop3445"
- offset="0"
- style="stop-color:#3465a4;stop-opacity:0;" />
- <stop
- style="stop-color:#3465a4;stop-opacity:1;"
- offset="0.46043167"
- id="stop3449" />
- <stop
- id="stop3447"
- offset="1"
- style="stop-color:#3465a4;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient3636">
- <stop
- style="stop-color:#babdb6;stop-opacity:1;"
- offset="0"
- id="stop3638" />
- <stop
- style="stop-color:#babdb6;stop-opacity:0;"
- offset="1"
- id="stop3640" />
- </linearGradient>
- <linearGradient
- id="linearGradient3413">
- <stop
- style="stop-color:#000000;stop-opacity:1;"
- offset="0"
- id="stop3415" />
- <stop
- style="stop-color:#000000;stop-opacity:0;"
- offset="1"
- id="stop3417" />
- </linearGradient>
- <linearGradient
- id="linearGradient2829"
- inkscape:collect="always">
- <stop
- id="stop2831"
- offset="0"
- style="stop-color:#babdb6" />
- <stop
- id="stop2833"
- offset="1"
- style="stop-color:#eeeeec" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient2823">
- <stop
- style="stop-color:#babdb6"
- offset="0"
- id="stop2825" />
- <stop
- style="stop-color:#888a85"
- offset="1"
- id="stop2827" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient2795">
- <stop
- style="stop-color:#000000;stop-opacity:1;"
- offset="0"
- id="stop2797" />
- <stop
- style="stop-color:#000000;stop-opacity:0;"
- offset="1"
- id="stop2799" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient2295">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop2297" />
- <stop
- style="stop-color:#ffffff;stop-opacity:0;"
- offset="1"
- id="stop2299" />
- </linearGradient>
- <linearGradient
- id="linearGradient4663">
- <stop
- style="stop-color:#000000;stop-opacity:1;"
- offset="0"
- id="stop4665" />
- <stop
- style="stop-color:#2e3436"
- offset="1"
- id="stop4667" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient4218">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop4220" />
- <stop
- style="stop-color:#ffffff;stop-opacity:0;"
- offset="1"
- id="stop4222" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient4087">
- <stop
- style="stop-color:#555753"
- offset="0"
- id="stop4089" />
- <stop
- style="stop-color:#2e3436;stop-opacity:0;"
- offset="1"
- id="stop4091" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient4079">
- <stop
- style="stop-color:#555753"
- offset="0"
- id="stop4081" />
- <stop
- style="stop-color:#555753;stop-opacity:0;"
- offset="1"
- id="stop4083" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient4065">
- <stop
- style="stop-color:#d3d7cf"
- offset="0"
- id="stop4067" />
- <stop
- style="stop-color:#555753"
- offset="1"
- id="stop4069" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient4039">
- <stop
- style="stop-color:#8f5902;stop-opacity:1;"
- offset="0"
- id="stop4041" />
- <stop
- style="stop-color:#2e3436"
- offset="1"
- id="stop4043" />
- </linearGradient>
- <linearGradient
- id="linearGradient2283">
- <stop
- style="stop-color:#555753"
- offset="0"
- id="stop2285" />
- <stop
- style="stop-color:#2e3436"
- offset="1"
- id="stop2287" />
- </linearGradient>
- <linearGradient
- id="linearGradient2275">
- <stop
- style="stop-color:#555753"
- offset="0"
- id="stop2277" />
- <stop
- style="stop-color:#2e3436"
- offset="1"
- id="stop2279" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient2207">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop2209" />
- <stop
- style="stop-color:#ffffff;stop-opacity:0;"
- offset="1"
- id="stop2211" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2207"
- id="linearGradient2213"
- x1="192.61819"
- y1="44.316147"
- x2="192.61819"
- y2="69.140022"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.999602,0,0,0.961422,-189.9119,-24.92669)" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2275"
- id="linearGradient2281"
- x1="219.625"
- y1="61.282185"
- x2="219.625"
- y2="57.31184"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.999057,0,0,1.151023,-189.7906,-35.17189)" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2283"
- id="linearGradient2289"
- x1="217.75"
- y1="60.957611"
- x2="217.75"
- y2="57.287102"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.999057,0,0,1.151023,-189.7906,-35.17189)" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2829"
- id="linearGradient4053"
- x1="198.25261"
- y1="29.854406"
- x2="218.1942"
- y2="54.870758"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.002741,0,0,0.998021,-190.5863,-25.88717)" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4065"
- id="radialGradient4071"
- cx="210.76491"
- cy="61.016609"
- fx="210.76491"
- fy="61.016609"
- r="21"
- gradientTransform="matrix(0.899437,-1.184496e-5,1.489071e-16,8.969057e-2,-168.5196,30.65516)"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4079"
- id="linearGradient4085"
- x1="206.4698"
- y1="63.914768"
- x2="206.50735"
- y2="64.954399"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1,0,0,0.975295,-190,-26.63779)" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4087"
- id="linearGradient4093"
- x1="221.39929"
- y1="64.193214"
- x2="221.39929"
- y2="64.947449"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1,0,0,0.975295,-190,-26.63779)" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4218"
- id="linearGradient4224"
- x1="207.71683"
- y1="62"
- x2="207.71683"
- y2="56.877113"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1,0,0,0.998304,-190,-26.89582)" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4039"
- id="radialGradient2290"
- cx="216.68404"
- cy="44.082699"
- fx="216.68404"
- fy="44.082699"
- r="21.006207"
- gradientTransform="matrix(1.281123,6.153955e-5,-5.723318e-17,0.699738,-250.1619,-15.06885)"
- gradientUnits="userSpaceOnUse" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2295"
- id="radialGradient2303"
- cx="197.48041"
- cy="16.234577"
- fx="197.48041"
- fy="16.234577"
- r="20"
- gradientTransform="matrix(2.433191,0.47803,-0.122315,0.689847,-471.9676,-103.8799)"
- gradientUnits="userSpaceOnUse" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2795"
- id="radialGradient2801"
- cx="23.96336"
- cy="40.374615"
- fx="23.96336"
- fy="40.374615"
- r="23.5"
- gradientTransform="matrix(1,-2.301335e-6,-6.522924e-8,0.297873,3.664127e-2,28.97356)"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- id="linearGradient1476">
- <stop
- style="stop-color:#000000;stop-opacity:0.46601942;"
- offset="0"
- id="stop1478" />
- <stop
- style="stop-color:#000000;stop-opacity:0;"
- offset="1"
- id="stop1480" />
- </linearGradient>
- <linearGradient
- id="linearGradient1482">
- <stop
- style="stop-color:#e2e3e0;stop-opacity:1;"
- offset="0"
- id="stop1484" />
- <stop
- id="stop1488"
- offset="0.17857143"
- style="stop-color:#e0e0de;stop-opacity:1;" />
- <stop
- style="stop-color:#ffffff;stop-opacity:0;"
- offset="1"
- id="stop1486" />
- </linearGradient>
- <linearGradient
- id="linearGradient3635">
- <stop
- id="stop3637"
- offset="0"
- style="stop-color:#707370;stop-opacity:1;" />
- <stop
- id="stop3639"
- offset="1"
- style="stop-color:#242524;stop-opacity:1;" />
- </linearGradient>
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2795"
- id="radialGradient2644"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1,-2.301335e-6,-6.522924e-8,0.297873,3.664127e-2,28.97356)"
- cx="23.96336"
- cy="40.374615"
- fx="23.96336"
- fy="40.374615"
- r="23.5" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2829"
- id="linearGradient2646"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1,0,0,1.132922,0,-4.981072)"
- x1="42.75"
- y1="37"
- x2="5"
- y2="43.125" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2823"
- id="linearGradient2648"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1,0,0,1.132922,0,-4.981072)"
- x1="7.9987206"
- y1="35.039005"
- x2="7.5"
- y2="45" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4663"
- id="linearGradient2650"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1,0,0,1.243227,-190,-42.67891)"
- x1="196.88957"
- y1="63.996719"
- x2="196.88957"
- y2="67.691895" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3635"
- id="radialGradient2655"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.620985,5.750583e-7,-7.015418e-8,0.197752,-14.59314,35.92447)"
- cx="23.499994"
- cy="26.000002"
- fx="23.499994"
- fy="26.000002"
- r="19.5" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient1482"
- id="linearGradient2663"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(-3.535975,8.56603)"
- x1="35.781757"
- y1="21.261322"
- x2="35.262543"
- y2="16.452835" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient1476"
- id="linearGradient2666"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(-3.016282,9.06603)"
- x1="38.308968"
- y1="24.675686"
- x2="37.037182"
- y2="20.529673" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3413"
- id="linearGradient3419"
- x1="33.506878"
- y1="37.9375"
- x2="33.625"
- y2="37.173367"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- gradientUnits="userSpaceOnUse"
- y2="15.773952"
- x2="16.103117"
- y1="46.273952"
- x1="56.785713"
- id="linearGradient3416"
- xlink:href="#linearGradient3410"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient14318">
- <stop
- id="stop14320"
- offset="0"
- style="stop-color:#000000;stop-opacity:1;" />
- <stop
- id="stop14322"
- offset="1"
- style="stop-color:#000000;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- id="linearGradient11400">
- <stop
- id="stop11402"
- offset="0"
- style="stop-color:#000000;stop-opacity:1;" />
- <stop
- id="stop11404"
- offset="1"
- style="stop-color:#000000;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- id="linearGradient7022">
- <stop
- id="stop7024"
- offset="0.0000000"
- style="stop-color:#f7f7f9;stop-opacity:1.0000000;" />
- <stop
- id="stop7026"
- offset="1.0000000"
- style="stop-color:#f4f4f6;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- id="linearGradient13580">
- <stop
- id="stop13582"
- offset="0"
- style="stop-color:#ffffff;stop-opacity:1;" />
- <stop
- id="stop13584"
- offset="1"
- style="stop-color:#ffffff;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- id="linearGradient6240"
- inkscape:collect="always">
- <stop
- id="stop6242"
- offset="0"
- style="stop-color:#ffffff;stop-opacity:1;" />
- <stop
- id="stop6244"
- offset="1"
- style="stop-color:#ffffff;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- id="linearGradient4807">
- <stop
- id="stop4809"
- offset="0"
- style="stop-color:#527da8;stop-opacity:1;" />
- <stop
- id="stop4811"
- offset="1.0000000"
- style="stop-color:#7e9fc1;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- id="linearGradient5541">
- <stop
- id="stop5543"
- offset="0"
- style="stop-color:#3b5a7a;stop-opacity:1;" />
- <stop
- id="stop5545"
- offset="1.0000000"
- style="stop-color:#4e77a1;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- id="linearGradient5833">
- <stop
- id="stop5835"
- offset="0"
- style="stop-color:#afafb2;stop-opacity:1;" />
- <stop
- id="stop5837"
- offset="1.0000000"
- style="stop-color:#8e8e93;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- id="linearGradient5137">
- <stop
- id="stop5139"
- offset="0"
- style="stop-color:#eeeeec;stop-opacity:1;" />
- <stop
- id="stop5141"
- offset="1"
- style="stop-color:#e6e6e3;stop-opacity:1;" />
- </linearGradient>
- <linearGradient
- id="linearGradient5225"
- inkscape:collect="always">
- <stop
- id="stop5227"
- offset="0"
- style="stop-color:black;stop-opacity:1;" />
- <stop
- id="stop5229"
- offset="1"
- style="stop-color:black;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- id="linearGradient5233">
- <stop
- id="stop5235"
- offset="0"
- style="stop-color:#729fcf;stop-opacity:1;" />
- <stop
- id="stop5237"
- offset="1"
- style="stop-color:#326194;stop-opacity:1;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6240"
- id="linearGradient2391"
- gradientUnits="userSpaceOnUse"
- x1="20.156862"
- y1="5.0996137"
- x2="20.156862"
- y2="26.039215"
- gradientTransform="matrix(1.073996,0,0,1.166451,-1.776354,-2.714491)" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient11400"
- id="linearGradient2394"
- gradientUnits="userSpaceOnUse"
- x1="23.154902"
- y1="34.572548"
- x2="23.529411"
- y2="40.219608"
- gradientTransform="matrix(0.631476,0,0,0.631476,8.845503,12.69276)" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5233"
- id="radialGradient2398"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.323844,0,0,0.907957,-7.774233,-0.201515)"
- cx="24.006104"
- cy="32.997028"
- fx="24.006104"
- fy="32.997028"
- r="19.00016" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5137"
- id="linearGradient2401"
- gradientUnits="userSpaceOnUse"
- x1="17.247635"
- y1="6.3760414"
- x2="39.904388"
- y2="38.876041"
- gradientTransform="translate(0,-5.188372e-2)" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5137"
- id="linearGradient2404"
- gradientUnits="userSpaceOnUse"
- x1="31.743324"
- y1="37.842293"
- x2="31.86105"
- y2="43.82579"
- gradientTransform="matrix(0.631476,0,0,0.631476,8.845503,12.69277)" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5225"
- id="radialGradient2408"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1,0,0,0.24763,0,32.1168)"
- cx="23.9375"
- cy="42.6875"
- fx="23.9375"
- fy="42.6875"
- r="23.75956" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6240"
- id="linearGradient2402"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.074254,0,0,1.146339,-1.782555,-2.568394)"
- x1="20.156862"
- y1="5.0996137"
- x2="20.156862"
- y2="26.039215" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5233"
- id="radialGradient2405"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.324163,0,0,0.892302,-7.78188,-9.874578e-2)"
- cx="24.006104"
- cy="32.997028"
- fx="24.006104"
- fy="32.997028"
- r="19.00016" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5137"
- id="linearGradient2408"
- gradientUnits="userSpaceOnUse"
- x1="17.247635"
- y1="6.3760414"
- x2="39.904388"
- y2="38.876041"
- gradientTransform="translate(0,-5.188372e-2)" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient11400"
- id="linearGradient2411"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.631476,0,0,0.631476,8.663914,14.05016)"
- x1="23.394852"
- y1="34.343899"
- x2="23.529411"
- y2="40.219608" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5137"
- id="linearGradient2417"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.631476,0,0,0.631476,8.765948,14.41003)"
- x1="31.743324"
- y1="37.842293"
- x2="31.86105"
- y2="43.82579" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5225"
- id="radialGradient2419"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1,0,0,0.24763,0,32.1168)"
- cx="23.9375"
- cy="42.6875"
- fx="23.9375"
- fy="42.6875"
- r="23.75956" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6240"
- id="linearGradient2416"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.111229,0,0,1.040078,-2.670251,1.025561)"
- x1="20.156862"
- y1="5.0996137"
- x2="20.156862"
- y2="26.039215" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5233"
- id="radialGradient2420"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.369739,0,0,0.809589,-8.876064,-38.30817)"
- cx="24.006104"
- cy="32.997028"
- fx="24.006104"
- fy="32.997028"
- r="19.00016" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5137"
- id="linearGradient2423"
- gradientUnits="userSpaceOnUse"
- x1="17.247635"
- y1="6.3760414"
- x2="39.904388"
- y2="38.876041"
- gradientTransform="matrix(1.000767,0,0,0.907837,-1.8481e-2,3.298531)" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient11400"
- id="linearGradient2426"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.631476,0,0,0.631476,8.663914,14.10204)"
- x1="23.394852"
- y1="34.343899"
- x2="23.529411"
- y2="40.219608" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5137"
- id="linearGradient2431"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.631476,0,0,0.631476,8.765948,14.46191)"
- x1="31.743324"
- y1="37.842293"
- x2="31.86105"
- y2="43.82579" />
- <linearGradient
- id="linearGradient3410"
- inkscape:collect="always">
- <stop
- id="stop3412"
- offset="0"
- style="stop-color:#888a85;stop-opacity:1;" />
- <stop
- id="stop3414"
- offset="1"
- style="stop-color:#888a85;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- id="linearGradient3418">
- <stop
- style="stop-color:#eeeeec;stop-opacity:1;"
- offset="0"
- id="stop3420" />
- <stop
- style="stop-color:#d3d3ce;stop-opacity:1;"
- offset="1"
- id="stop3422" />
- </linearGradient>
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5225"
- id="radialGradient2996"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1,0,0,0.24763,0,32.1168)"
- cx="23.9375"
- cy="42.6875"
- fx="23.9375"
- fy="42.6875"
- r="23.75956" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3635"
- id="radialGradient3666"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.620985,5.750583e-7,-7.015418e-8,0.197752,-14.59314,35.92447)"
- cx="23.499994"
- cy="26.000002"
- fx="23.499994"
- fy="26.000002"
- r="19.5" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2795"
- id="radialGradient3674"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1,-2.301335e-6,-6.522924e-8,0.297873,3.664127e-2,28.97356)"
- cx="23.96336"
- cy="40.374615"
- fx="23.96336"
- fy="40.374615"
- r="23.5" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2829"
- id="linearGradient3676"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1,0,0,1.132922,0,-4.981072)"
- x1="42.75"
- y1="37"
- x2="5"
- y2="43.125" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2823"
- id="linearGradient3678"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1,0,0,1.132922,0,-4.981072)"
- x1="7.9987206"
- y1="35.039005"
- x2="7.5"
- y2="45" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4663"
- id="linearGradient3680"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1,0,0,1.243227,-190,-42.67891)"
- x1="196.88957"
- y1="63.996719"
- x2="196.88957"
- y2="67.691895" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4663"
- id="linearGradient3683"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.809375,0,0,1.243227,-152.95625,-42.55038)"
- x1="196.88957"
- y1="63.996719"
- x2="196.88957"
- y2="67.691895" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2829"
- id="linearGradient3687"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1,0,0,1.132922,6.25e-2,-4.852542)"
- x1="42.75"
- y1="37"
- x2="5"
- y2="43.125" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2823"
- id="linearGradient3689"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1,0,0,1.132922,6.25e-2,-4.852542)"
- x1="7.9987206"
- y1="35.039005"
- x2="7.5"
- y2="45" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4663"
- id="linearGradient3694"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1,0,0,1.243227,-190.0625,-42.55038)"
- x1="196.88957"
- y1="63.996719"
- x2="196.88957"
- y2="67.691895" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3443"
- id="linearGradient3441"
- x1="23.5625"
- y1="1.890625"
- x2="23.5625"
- y2="36.640625"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.0005781,0,0,0.95372728,-0.01362199,0.05929104)" />
- <linearGradient
- y2="43.82579"
- x2="31.86105"
- y1="37.842293"
- x1="31.743324"
- gradientTransform="matrix(0.631476,0,0,0.631476,8.765948,14.46191)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient2465"
- xlink:href="#linearGradient5137-5"
- inkscape:collect="always" />
- <linearGradient
- y2="40.219608"
- x2="23.529411"
- y1="34.343899"
- x1="23.394852"
- gradientTransform="matrix(0.6487616,0,0,0.631476,8.2441099,14.10204)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient2461"
- xlink:href="#linearGradient11400-8"
- inkscape:collect="always" />
- <linearGradient
- y2="38.876041"
- x2="39.904388"
- y1="6.3760414"
- x1="17.247635"
- gradientTransform="matrix(1.000767,0,0,0.8784906,-0.018481,4.3395375)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient2458"
- xlink:href="#linearGradient5137-5"
- inkscape:collect="always" />
- <radialGradient
- r="19.00016"
- fy="32.997028"
- fx="24.006104"
- cy="32.997028"
- cx="24.006104"
- gradientTransform="matrix(1.369739,0,0,0.7774677,-8.876064,-38.087502)"
- gradientUnits="userSpaceOnUse"
- id="radialGradient2455"
- xlink:href="#linearGradient5233-4"
- inkscape:collect="always" />
- <linearGradient
- y2="26.039215"
- x2="20.156862"
- y1="5.0996137"
- x1="20.156862"
- gradientTransform="matrix(1.111229,0,0,0.9846432,-2.662933,1.1228544)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient2452"
- xlink:href="#linearGradient6240-8"
- inkscape:collect="always" />
- <radialGradient
- r="23.75956"
- fy="42.6875"
- fx="23.9375"
- cy="42.6875"
- cx="23.9375"
- gradientTransform="matrix(1,0,0,0.24763,0,32.1168)"
- gradientUnits="userSpaceOnUse"
- id="radialGradient2422"
- xlink:href="#linearGradient5225-5"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient11400-8">
- <stop
- id="stop11402-9"
- offset="0"
- style="stop-color:#000000;stop-opacity:1;" />
- <stop
- id="stop11404-6"
- offset="1"
- style="stop-color:#000000;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- id="linearGradient6240-8"
- inkscape:collect="always">
- <stop
- id="stop6242-3"
- offset="0"
- style="stop-color:#ffffff;stop-opacity:1;" />
- <stop
- id="stop6244-1"
- offset="1"
- style="stop-color:#ffffff;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- id="linearGradient5137-5">
- <stop
- id="stop5139-3"
- offset="0"
- style="stop-color:#eeeeec;stop-opacity:1;" />
- <stop
- id="stop5141-8"
- offset="1"
- style="stop-color:#e6e6e3;stop-opacity:1;" />
- </linearGradient>
- <linearGradient
- id="linearGradient5225-5"
- inkscape:collect="always">
- <stop
- id="stop5227-9"
- offset="0"
- style="stop-color:black;stop-opacity:1;" />
- <stop
- id="stop5229-7"
- offset="1"
- style="stop-color:black;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- id="linearGradient5233-4">
- <stop
- id="stop5235-1"
- offset="0"
- style="stop-color:#729fcf;stop-opacity:1;" />
- <stop
- id="stop5237-8"
- offset="1"
- style="stop-color:#326194;stop-opacity:1;" />
- </linearGradient>
- <inkscape:perspective
- id="perspective3099"
- inkscape:persp3d-origin="24 : 16 : 1"
- inkscape:vp_z="48 : 24 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 24 : 1"
- sodipodi:type="inkscape:persp3d" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6240-8"
- id="linearGradient3144"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.111229,0,0,0.9846432,54.381851,-6.1072351)"
- x1="20.156862"
- y1="5.0996137"
- x2="20.156862"
- y2="26.039215" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5233-4"
- id="radialGradient3147"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.369739,0,0,0.7774677,48.16872,-30.857413)"
- cx="24.006104"
- cy="32.997028"
- fx="24.006104"
- fy="32.997028"
- r="19.00016" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5137-5"
- id="linearGradient3150"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.000767,0,0,0.8784906,57.026303,-2.890552)"
- x1="17.247635"
- y1="6.3760414"
- x2="39.904388"
- y2="38.876041" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient11400-8"
- id="linearGradient3153"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.6487616,0,0,0.631476,65.288894,6.8719505)"
- x1="23.394852"
- y1="34.343899"
- x2="23.529411"
- y2="40.219608" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5137-5"
- id="linearGradient3157"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.631476,0,0,0.631476,65.810732,7.2318205)"
- x1="31.743324"
- y1="37.842293"
- x2="31.86105"
- y2="43.82579" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3418"
- id="linearGradient3040"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.90136539,0,0,0.90619042,2.0508349,1.0578076)"
- x1="23.133226"
- y1="0.91343939"
- x2="23.20853"
- y2="35.906151" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3636"
- id="linearGradient3042"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1,0,0,0.84361425,0,0.23946568)"
- x1="29.122169"
- y1="37.5"
- x2="29.127831"
- y2="24.640625" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5233"
- id="radialGradient3044"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.0521022,0,0,0.6710582,-1.745305,-31.037336)"
- cx="24.006104"
- cy="32.997028"
- fx="24.006104"
- fy="32.997028"
- r="19.00016" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6240"
- id="linearGradient3046"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.8434771,0,0,0.8587859,3.3872535,-0.8650825)"
- x1="20.156862"
- y1="5.0996137"
- x2="20.156862"
- y2="26.039215" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3443"
- id="linearGradient3048"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.0015741,0,0,0.87664212,-0.03708903,0.15740589)"
- x1="23.5625"
- y1="1.890625"
- x2="23.5625"
- y2="36.640625" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5225-5"
- id="radialGradient3050"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1,0,0,0.24763,0,32.1168)"
- cx="23.9375"
- cy="42.6875"
- fx="23.9375"
- fy="42.6875"
- r="23.75956" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5137-5"
- id="linearGradient3052"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.631476,0,0,0.44104579,8.771023,18.861709)"
- x1="31.743324"
- y1="37.842293"
- x2="31.86105"
- y2="43.82579" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient11400-8"
- id="linearGradient3054"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.6487616,0,0,0.44104579,8.249185,18.610363)"
- x1="23.394852"
- y1="34.343899"
- x2="23.529411"
- y2="40.219608" />
- </defs>
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#4e4e4e"
- borderopacity="0.62352941"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="8"
- inkscape:cx="63.841428"
- inkscape:cy="26.881276"
- inkscape:document-units="px"
- inkscape:current-layer="layer2"
- showgrid="true"
- stroke="#555753"
- fill="#eeeeec"
- inkscape:grid-points="true"
- inkscape:grid-bbox="false"
- inkscape:window-width="1350"
- inkscape:window-height="972"
- inkscape:window-x="322"
- inkscape:window-y="25"
- showguides="true"
- inkscape:guide-bbox="true"
- inkscape:showpageshadow="true"
- inkscape:window-maximized="0">
- <inkscape:grid
- type="xygrid"
- id="grid2863" />
- <inkscape:grid
- id="GridFromPre046Settings"
- type="xygrid"
- originx="0px"
- originy="0px"
- spacingx="0.5px"
- spacingy="0.5px"
- color="#0000ff"
- empcolor="#0000ff"
- opacity="0.2"
- empopacity="0.4"
- empspacing="2" />
- </sodipodi:namedview>
- <metadata
- id="metadata7">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title>iMac G3</dc:title>
- <dc:date>May 2007</dc:date>
- <dc:creator>
- <cc:Agent>
- <dc:title>F.Bellaiche &lt;frederic.bellaiche@gmail.com&gt;</dc:title>
- </cc:Agent>
- </dc:creator>
- <dc:contributor>
- <cc:Agent>
- <dc:title />
- </cc:Agent>
- </dc:contributor>
- <cc:license
- rdf:resource="GNU GPL" />
- <dc:subject>
- <rdf:Bag />
- </dc:subject>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:groupmode="layer"
- id="layer1"
- inkscape:label="Shadow" />
- <g
- inkscape:groupmode="layer"
- id="layer2"
- inkscape:label="Lavoro"
- style="display:inline">
- <g
- id="g2611"
- inkscape:label="Shadow"
- transform="translate(0,15.06603)" />
- <g
- id="g2613"
- inkscape:label="Lavoro"
- style="display:inline"
- transform="translate(0,15.06603)" />
- <g
- id="g3025"
- transform="translate(0.036732,3.973193)">
- <path
- id="path3623"
- d="M 23.5625,1.5006679 C 8.8698171,1.5056429 5.5626407,1.8565996 4.68994,6.4235433 4.2488586,8.7317737 3.9826363,8.7304826 3.6258156,17.479387 3.2689237,26.230039 3.7762935,33.128077 7.2563578,33.12808 l 16.3061422,0.0275 16.306142,-0.0275 c 3.480065,-3e-6 3.987434,-6.898041 3.630542,-15.648693 C 43.142364,8.7304826 42.876141,8.7317737 42.43506,6.4235433 41.56236,1.8565996 38.255183,1.5056429 23.5625,1.5006679 z"
- style="fill:url(#linearGradient3040);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.93883574;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
- <path
- style="fill:url(#linearGradient3042);fill-opacity:1;fill-rule:evenodd;stroke:none"
- d="M 23.5625,1.53125 C 8.892246,1.536019 5.590119,1.8724388 4.71875,6.2502172 4.278342,8.4628394 4.012526,8.4616018 3.65625,16.848121 3.299903,25.236317 3.806498,31.848635 7.28125,31.848637 L 23.5625,31.875 39.84375,31.848637 c 3.474752,-2e-6 3.981347,-6.61232 3.625,-15.000516 C 43.112474,8.4616018 42.846658,8.4628394 42.40625,6.2502172 41.534882,1.8724388 38.232754,1.536019 23.5625,1.53125 z"
- id="path3634" />
- <rect
- ry="0.62248665"
- transform="scale(1,-1)"
- y="-26.42725"
- x="8.5744448"
- height="20.89134"
- width="29.896999"
- id="rect9208"
- style="fill:url(#radialGradient3044);fill-opacity:1;fill-rule:evenodd;stroke:#204a87;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
- <rect
- y="6.0554562"
- x="9.1930199"
- height="1.0714285"
- width="28.768129"
- id="rect3424"
- style="opacity:0.83606561;color:#000000;fill:#eeeeec;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <path
- sodipodi:nodetypes="ccccc"
- id="path4073"
- d="m 9.196384,6.0321461 0,15.4648809 c 13.87052,-1.163008 17.489643,-8.684402 28.766884,-9.47022 l 0,-6.0216031 -28.766884,0.026942 z"
- style="opacity:0.75;fill:url(#linearGradient3046);fill-opacity:1;fill-rule:evenodd;stroke:none" />
- <path
- sodipodi:nodetypes="csscccssc"
- style="fill:none;stroke:#eeeeec;stroke-width:0.93619782;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- d="M 23.494651,2.5082325 C 9.6209302,2.5129065 6.4980944,2.8426203 5.6740376,7.1331348 5.2575418,9.3016525 5.0061586,9.3004389 4.6692268,17.519786 4.3322282,25.740777 4.3096471,32.221289 7.5957342,32.221291 l 15.8989168,0.02584 15.836206,-0.02584 c 3.286087,-2e-6 3.326215,-6.480514 2.989216,-14.701505 C 41.98314,9.3004389 41.731759,9.3016525 41.315262,7.1331348 40.491205,2.8426203 37.36837,2.5129065 23.494651,2.5082325 z"
- id="path3653" />
- <path
- style="fill:none;stroke:url(#linearGradient3048);stroke-width:0.93702823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- d="M 23.5625,1.4997641 C 8.869154,1.5047198 5.5618292,1.8543106 4.6890886,6.403481 4.2479874,8.7027283 3.9817529,8.7014423 3.6249162,17.416298 3.2680083,26.132895 3.7754008,33.004088 7.2556222,33.00409 L 23.5625,33.031482 39.869378,33.00409 c 3.480221,-2e-6 3.987614,-6.871195 3.630706,-15.587792 C 43.143247,8.7014423 42.877013,8.7027283 42.435911,6.403481 41.563172,1.8543106 38.255846,1.5047198 23.5625,1.4997641 z"
- id="path3661" />
- <rect
- ry="0"
- rx="0"
- y="28"
- x="20.125"
- height="1"
- width="6.875"
- id="rect2865"
- style="opacity:0.73360656;color:#000000;fill:#2e3436;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <path
- transform="matrix(1.0101197,0,0,0.93480525,-0.17974107,-3.4044992)"
- d="m 47.69706,42.6875 c 0,3.249411 -10.637518,5.883578 -23.75956,5.883578 -13.122042,0 -23.75955963,-2.634167 -23.75955963,-5.883578 0,-3.249411 10.63751763,-5.883578 23.75955963,-5.883578 13.122042,0 23.75956,2.634167 23.75956,5.883578 z"
- sodipodi:ry="5.8835783"
- sodipodi:rx="23.75956"
- sodipodi:cy="42.6875"
- sodipodi:cx="23.9375"
- id="path13582"
- style="opacity:0.29775277;fill:url(#radialGradient3050);fill-opacity:1;fill-rule:evenodd;stroke:none"
- sodipodi:type="arc" />
- <path
- sodipodi:nodetypes="csccscc"
- id="path9222"
- d="m 17.848795,33.51053 c 0,0 0.768429,3.199399 -2.435179,3.21983 -1.534661,0.0097 -1.220314,1.779687 -1.220314,1.779687 l 19.478808,-0.01384 c 0,0 0.264233,-1.718034 -1.276982,-1.738177 -3.149467,-0.04064 -2.406258,-3.275177 -2.406258,-3.275177 l -12.140075,0.02767 z"
- style="color:#000000;fill:url(#linearGradient3052);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.83572501;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
- <path
- sodipodi:nodetypes="ccccc"
- id="path10672"
- d="m 17.37865,33.764514 c 0.05428,0.958193 -0.08005,2.165989 -0.956053,2.502854 l 15.165102,0.431072 c -0.615688,-0.515419 -1.459342,-2.034539 -1.215103,-2.940845 l -12.993946,0.0069 z"
- style="opacity:0.6;fill:url(#linearGradient3054);fill-opacity:1;fill-rule:evenodd;stroke:none" />
- <path
- sodipodi:nodetypes="cc"
- id="path6575"
- d="m 15.080813,37.163373 c 4.235116,8.39e-4 17.553005,0 17.553005,0"
- style="fill:none;stroke:#8d8d8f;stroke-width:0.52774042px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:0.43902438" />
- <path
- style="fill:none;stroke:#ffffff;stroke-width:0.52774042px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
- d="m 15.115999,37.607892 c 4.103745,8.38e-4 17.57334,0 17.57334,0"
- id="path8029"
- sodipodi:nodetypes="cc" />
- </g>
- </g>
- <g
- inkscape:groupmode="layer"
- id="layer3"
- inkscape:label="finiture"
- style="display:inline" />
-</svg>
diff --git a/data/icons/scalable/lcd.svg b/data/icons/scalable/lcd.svg
deleted file mode 100644
index e684407..0000000
--- a/data/icons/scalable/lcd.svg
+++ /dev/null
@@ -1,276 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://web.resource.org/cc/"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="48px"
- height="48px"
- id="svg2275"
- sodipodi:version="0.32"
- inkscape:version="0.45.1"
- sodipodi:docbase="/home/bellaich/Desktop/cantos/tango/devices/video-display-apple-cinema/scalable"
- sodipodi:docname="video-display-apple-cinema.svg"
- inkscape:export-filename="/home/bellaich/video-apple-cinema.png"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90"
- inkscape:output_extension="org.inkscape.output.svg.inkscape">
- <defs
- id="defs2277">
- <linearGradient
- id="linearGradient5233">
- <stop
- style="stop-color:#729fcf;stop-opacity:1;"
- offset="0"
- id="stop5235" />
- <stop
- style="stop-color:#326194;stop-opacity:1;"
- offset="1"
- id="stop5237" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient5225">
- <stop
- style="stop-color:black;stop-opacity:1;"
- offset="0"
- id="stop5227" />
- <stop
- style="stop-color:black;stop-opacity:0;"
- offset="1"
- id="stop5229" />
- </linearGradient>
- <linearGradient
- id="linearGradient5137">
- <stop
- style="stop-color:#eeeeec;stop-opacity:1;"
- offset="0"
- id="stop5139" />
- <stop
- style="stop-color:#e6e6e3;stop-opacity:1;"
- offset="1"
- id="stop5141" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient6240">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop6242" />
- <stop
- style="stop-color:#ffffff;stop-opacity:0;"
- offset="1"
- id="stop6244" />
- </linearGradient>
- <linearGradient
- id="linearGradient11400">
- <stop
- style="stop-color:#000000;stop-opacity:1;"
- offset="0"
- id="stop11402" />
- <stop
- style="stop-color:#000000;stop-opacity:0;"
- offset="1"
- id="stop11404" />
- </linearGradient>
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5225"
- id="radialGradient2422"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1,0,0,0.24763,0,32.1168)"
- cx="23.9375"
- cy="42.6875"
- fx="23.9375"
- fy="42.6875"
- r="23.75956" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6240"
- id="linearGradient2452"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.111229,0,0,0.9846432,-2.662933,1.1228544)"
- x1="20.156862"
- y1="5.0996137"
- x2="20.156862"
- y2="26.039215" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5233"
- id="radialGradient2455"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.369739,0,0,0.7774677,-8.876064,-38.087502)"
- cx="24.006104"
- cy="32.997028"
- fx="24.006104"
- fy="32.997028"
- r="19.00016" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5137"
- id="linearGradient2458"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.000767,0,0,0.8784906,-1.8481e-2,4.3395375)"
- x1="17.247635"
- y1="6.3760414"
- x2="39.904388"
- y2="38.876041" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient11400"
- id="linearGradient2461"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.6487616,0,0,0.631476,8.2441099,14.10204)"
- x1="23.394852"
- y1="34.343899"
- x2="23.529411"
- y2="40.219608" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5137"
- id="linearGradient2465"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.631476,0,0,0.631476,8.765948,14.46191)"
- x1="31.743324"
- y1="37.842293"
- x2="31.86105"
- y2="43.82579" />
- </defs>
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="9.8994949"
- inkscape:cx="26.267618"
- inkscape:cy="17.045665"
- inkscape:current-layer="layer1"
- showgrid="true"
- inkscape:grid-bbox="true"
- inkscape:document-units="px"
- inkscape:window-width="1240"
- inkscape:window-height="916"
- inkscape:window-x="559"
- inkscape:window-y="297" />
- <metadata
- id="metadata2280">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title>Apple Cinema Display</dc:title>
- <dc:date>May 2007</dc:date>
- <dc:creator>
- <cc:Agent>
- <dc:title>F.Bellaiche &lt;frederic.bellaiche@gmail.com&gt;</dc:title>
- </cc:Agent>
- </dc:creator>
- <cc:license
- rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
- </cc:Work>
- <cc:License
- rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
- <cc:permits
- rdf:resource="http://web.resource.org/cc/Reproduction" />
- <cc:permits
- rdf:resource="http://web.resource.org/cc/Distribution" />
- <cc:requires
- rdf:resource="http://web.resource.org/cc/Notice" />
- <cc:permits
- rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
- <cc:requires
- rdf:resource="http://web.resource.org/cc/ShareAlike" />
- <cc:requires
- rdf:resource="http://web.resource.org/cc/SourceCode" />
- </cc:License>
- </rdf:RDF>
- </metadata>
- <g
- id="layer1"
- inkscape:label="Layer 1"
- inkscape:groupmode="layer">
- <path
- sodipodi:type="arc"
- style="opacity:0.29775277;fill:url(#radialGradient2422);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- id="path13582"
- sodipodi:cx="23.9375"
- sodipodi:cy="42.6875"
- sodipodi:rx="23.75956"
- sodipodi:ry="5.8835783"
- d="M 47.69706 42.6875 A 23.75956 5.8835783 0 1 1 0.17794037,42.6875 A 23.75956 5.8835783 0 1 1 47.69706 42.6875 z"
- transform="matrix(0.968245,0,0,0.563611,0.81756,18.2569)" />
- <path
- style="color:black;fill:url(#linearGradient2465);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
- d="M 17.84372,35.435647 C 17.84372,35.435647 18.612149,40.01645 15.408541,40.045703 C 13.87388,40.059535 14.188227,42.593804 14.188227,42.593804 L 33.667035,42.573993 C 33.667035,42.573993 33.931268,40.114164 32.390053,40.085325 C 29.240586,40.027142 29.983795,35.396025 29.983795,35.396025 L 17.84372,35.435647 z "
- id="path9222"
- sodipodi:nodetypes="csccscc" />
- <rect
- style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- id="rect4784"
- width="48"
- height="48"
- x="0"
- y="2.8164769e-07" />
- <path
- style="opacity:0.6;fill:url(#linearGradient2461);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 17.373575,35.799294 C 17.427852,37.171206 17.293528,38.900491 16.417522,39.382805 L 31.582624,40 C 30.966936,39.262039 30.123282,37.087009 30.367521,35.789388 L 17.373575,35.799294 z"
- id="path10672"
- sodipodi:nodetypes="ccccc" />
- <path
- style="fill:url(#linearGradient2458);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- d="M 2.5502509,5.5670814 L 45.477782,5.6102094 C 46.59462,5.5658389 46.535772,5.5865656 46.535772,6.4973938 L 46.445638,34.576807 C 46.445638,35.486455 46.321256,35.502343 45.218162,35.502343 L 2.6570045,35.416589 C 1.4768282,35.391294 1.4961485,35.647591 1.4803028,34.308208 L 1.4954913,6.4408243 C 1.4449449,5.6368334 1.4200836,5.5670814 2.5502509,5.5670814 z"
- id="rect5040"
- sodipodi:nodetypes="ccccccccc" />
- <rect
- style="fill:url(#radialGradient2455);fill-opacity:1;fill-rule:evenodd;stroke:#204a87;stroke-width:0.87205034;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- id="rect9208"
- width="38.923107"
- height="24.204069"
- x="4.5592856"
- y="-32.746395"
- transform="scale(1,-1)" />
- <path
- style="opacity:0.75;fill:url(#linearGradient2452);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 4.9902369,9.030891 L 4.9902369,26.762192 C 23.263792,25.428741 28.031763,16.805068 42.888831,15.904085 L 42.888832,9 L 4.9902369,9.030891 z"
- id="path4073"
- sodipodi:nodetypes="ccccc" />
- <path
- style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#8d8d8f;stroke-width:0.6314761px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:0.43902438"
- d="M 15.075738,40.665678 C 19.310854,40.666922 32.628743,40.665678 32.628743,40.665678"
- id="path6575"
- sodipodi:nodetypes="cc" />
- <path
- sodipodi:nodetypes="cc"
- id="path8029"
- d="M 15.110924,41.302127 C 19.214669,41.30337 32.684264,41.302127 32.684264,41.302127"
- style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.63147616px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
- <g
- inkscape:label="Layer 1"
- id="g2955"
- transform="matrix(0.2619393,0,0,0.2619393,17.679341,25.852497)">
- <g
- transform="matrix(1.32084,0,0,1.32084,35.186413,-8.2715219)"
- id="g3396">
- <path
- style="opacity:1;color:#000000;fill:#babdb6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- d="M -8.5,29.03125 C -8.75875,29.03125 -9.0062158,29.104622 -9.21875,29.21875 C -8.9443885,29.36002 -8.75,29.642092 -8.75,29.96875 C -8.75,30.436261 -9.1206071,30.84375 -9.59375,30.84375 C -9.7276585,30.84375 -9.8558066,30.772929 -9.96875,30.71875 C -9.8688377,31.441335 -9.2585795,32.000001 -8.5,32 C -7.672,32 -7.0000002,31.349392 -7,30.53125 C -7,29.713107 -7.6720002,29.03125 -8.5,29.03125 z"
- id="path2776" />
- <path
- style="fill:#babdb6"
- d="M -8.4636306,28.866012 C -8.4857306,28.808419 -8.4599746,28.6477 -8.4059546,28.506104 C -8.3108716,28.256879 -8.0527346,28.01859 -7.7871386,27.934868 C -7.6717666,27.8985 -7.6569206,27.898174 -7.6238186,27.931275 C -7.5925996,27.962494 -7.5912416,27.986153 -7.6142866,28.097168 C -7.6923926,28.473394 -8.0150676,28.809042 -8.3738506,28.887266 C -8.4322726,28.900004 -8.4524166,28.895235 -8.4636306,28.866012 z"
- id="path3357"
- sodipodi:nodetypes="csssssc" />
- </g>
- </g>
- </g>
-</svg>
diff --git a/data/icons/scalable/projector.svg b/data/icons/scalable/projector.svg
deleted file mode 100644
index 0da898e..0000000
--- a/data/icons/scalable/projector.svg
+++ /dev/null
@@ -1,687 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="48"
- height="48"
- id="svg2"
- version="1.1"
- inkscape:version="0.47 r22583"
- sodipodi:docname="projector.svg"
- style="display:inline"
- inkscape:export-filename="C:\Dokumente und Einstellungen\spktkpkt\Desktop\projector.png"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90">
- <title
- id="title2915">projector</title>
- <defs
- id="defs4">
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 24 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="48 : 24 : 1"
- inkscape:persp3d-origin="24 : 16 : 1"
- id="perspective109" />
- <linearGradient
- id="linearGradient3976"
- inkscape:collect="always">
- <stop
- id="stop3978"
- offset="0"
- style="stop-color:#2e3436;stop-opacity:1" />
- <stop
- id="stop3980"
- offset="1"
- style="stop-color:#eeeeec;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- id="linearGradient3962">
- <stop
- style="stop-color:#000000;stop-opacity:1;"
- offset="0"
- id="stop3964" />
- <stop
- style="stop-color:#888a85;stop-opacity:1;"
- offset="1"
- id="stop3966" />
- </linearGradient>
- <linearGradient
- id="linearGradient3940">
- <stop
- style="stop-color:#000000;stop-opacity:1;"
- offset="0"
- id="stop3942" />
- <stop
- style="stop-color:#2e3436;stop-opacity:1;"
- offset="1"
- id="stop3944" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient3922">
- <stop
- style="stop-color:#000000;stop-opacity:1;"
- offset="0"
- id="stop3924" />
- <stop
- style="stop-color:#000000;stop-opacity:0;"
- offset="1"
- id="stop3926" />
- </linearGradient>
- <linearGradient
- id="linearGradient3910">
- <stop
- style="stop-color:#000000;stop-opacity:0;"
- offset="0"
- id="stop3912" />
- <stop
- id="stop3918"
- offset="0.5"
- style="stop-color:#000000;stop-opacity:1;" />
- <stop
- style="stop-color:#000000;stop-opacity:0;"
- offset="1"
- id="stop3914" />
- </linearGradient>
- <linearGradient
- id="linearGradient3873">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop3875" />
- <stop
- id="stop3881"
- offset="0.5"
- style="stop-color:#ffffff;stop-opacity:1;" />
- <stop
- style="stop-color:#ffffff;stop-opacity:0;"
- offset="1"
- id="stop3877" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient3844">
- <stop
- style="stop-color:#555753;stop-opacity:1"
- offset="0"
- id="stop3846" />
- <stop
- style="stop-color:#d3d7cf;stop-opacity:1"
- offset="1"
- id="stop3848" />
- </linearGradient>
- <linearGradient
- id="linearGradient3760">
- <stop
- style="stop-color:#eeeeec;stop-opacity:1"
- offset="0"
- id="stop3762" />
- <stop
- style="stop-color:#888a85;stop-opacity:1"
- offset="1"
- id="stop3764" />
- </linearGradient>
- <linearGradient
- id="linearGradient3750">
- <stop
- style="stop-color:#eff0ee;stop-opacity:1;"
- offset="0"
- id="stop3752" />
- <stop
- style="stop-color:#d3d7cf;stop-opacity:1;"
- offset="1"
- id="stop3754" />
- </linearGradient>
- <linearGradient
- id="linearGradient3730">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop3732" />
- <stop
- style="stop-color:#555753;stop-opacity:1"
- offset="1"
- id="stop3734" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient3722">
- <stop
- style="stop-color:#000000;stop-opacity:1;"
- offset="0"
- id="stop3724" />
- <stop
- style="stop-color:#000000;stop-opacity:0;"
- offset="1"
- id="stop3726" />
- </linearGradient>
- <linearGradient
- id="linearGradient3710">
- <stop
- style="stop-color:#204a87;stop-opacity:1"
- offset="0"
- id="stop3712" />
- <stop
- id="stop3720"
- offset="0.40306121"
- style="stop-color:#ad7fa8;stop-opacity:1" />
- <stop
- id="stop3718"
- offset="0.70408159"
- style="stop-color:#729fcf;stop-opacity:1" />
- <stop
- style="stop-color:#75507b;stop-opacity:1"
- offset="1"
- id="stop3714" />
- </linearGradient>
- <linearGradient
- id="linearGradient3698">
- <stop
- style="stop-color:#000000;stop-opacity:1;"
- offset="0"
- id="stop3700" />
- <stop
- style="stop-color:#ffffff;stop-opacity:0;"
- offset="1"
- id="stop3702" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient3690">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop3692" />
- <stop
- style="stop-color:#ffffff;stop-opacity:0;"
- offset="1"
- id="stop3694" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient3682">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop3684" />
- <stop
- style="stop-color:#ffffff;stop-opacity:0;"
- offset="1"
- id="stop3686" />
- </linearGradient>
- <linearGradient
- id="linearGradient3650">
- <stop
- style="stop-color:#ffffff;stop-opacity:0;"
- offset="0"
- id="stop3652" />
- <stop
- id="stop3664"
- offset="0.5"
- style="stop-color:#ffffff;stop-opacity:1;" />
- <stop
- style="stop-color:#ffffff;stop-opacity:0;"
- offset="1"
- id="stop3654" />
- </linearGradient>
- <linearGradient
- id="linearGradient3620">
- <stop
- style="stop-color:#ffffff;stop-opacity:0.70634921"
- offset="0"
- id="stop3622" />
- <stop
- style="stop-color:#eeeeec;stop-opacity:0"
- offset="1"
- id="stop3624" />
- </linearGradient>
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3620"
- id="radialGradient3626"
- cx="37.86552"
- cy="37.558033"
- fx="37.86552"
- fy="37.558033"
- r="4.7767859"
- gradientTransform="matrix(2.1753245,-0.94626063,0.18650695,0.38962057,-50.229759,58.736978)"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3650"
- id="linearGradient3662"
- x1="-5"
- y1="1033.3622"
- x2="53"
- y2="1033.3622"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(0,-4.9999309)" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3682"
- id="radialGradient3688"
- cx="36.026787"
- cy="31.75"
- fx="36.026787"
- fy="31.75"
- r="0.84821427"
- gradientTransform="matrix(1,0,0,0.73684212,0,8.3552627)"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3690"
- id="linearGradient3696"
- x1="35.178574"
- y1="31.75"
- x2="36.875"
- y2="31.75"
- gradientUnits="userSpaceOnUse" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3698"
- id="radialGradient3704"
- cx="37.723213"
- cy="34.558739"
- fx="37.723213"
- fy="34.558739"
- r="4.7767859"
- gradientTransform="matrix(1.3333334,-1.2006666e-7,1.259541e-7,1.2710093,-12.57441,-9.7637765)"
- gradientUnits="userSpaceOnUse" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3710"
- id="radialGradient3716"
- cx="36.992073"
- cy="32.211014"
- fx="36.992073"
- fy="32.211014"
- r="4.7767859"
- gradientTransform="matrix(1.4591836,3.6251185e-7,-3.6034015e-7,1.3180413,-16.986143,-10.153337)"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3722"
- id="linearGradient3728"
- x1="35.29493"
- y1="30.664221"
- x2="40.407391"
- y2="39.44611"
- gradientUnits="userSpaceOnUse" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3730"
- id="radialGradient3736"
- cx="34.467476"
- cy="27.349129"
- fx="34.467476"
- fy="27.349129"
- r="5.2431703"
- gradientTransform="matrix(1.2499266,-0.44594349,0.26790799,0.68237448,-16.90523,25.339575)"
- gradientUnits="userSpaceOnUse" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3750"
- id="radialGradient3756"
- cx="19.267862"
- cy="1021.5743"
- fx="19.267862"
- fy="1021.5743"
- r="23.000002"
- gradientTransform="matrix(0.99958261,-0.02888967,0.00776397,0.26863352,-7.9234344,750.079)"
- gradientUnits="userSpaceOnUse" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3760"
- id="radialGradient3766"
- cx="44.50893"
- cy="31.48947"
- fx="44.50893"
- fy="31.48947"
- r="1.2163708"
- gradientTransform="matrix(1.3212596,2.3236956e-6,-2.2013572e-6,1.3946896,-14.298853,-12.413656)"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3844"
- id="linearGradient3850"
- x1="37"
- y1="1029.3622"
- x2="37"
- y2="1032.3622"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(0,-6)" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3844"
- id="linearGradient3863"
- gradientUnits="userSpaceOnUse"
- x1="37"
- y1="1029.3622"
- x2="37"
- y2="1032.3622"
- gradientTransform="matrix(-1,0,0,1.5,50,-524.1811)" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3873"
- id="radialGradient3879"
- cx="19.999998"
- cy="1012.8622"
- fx="19.999998"
- fy="1012.8622"
- r="22"
- gradientTransform="matrix(1.848639,-0.30810559,0.22727205,1.3636365,-247.16804,-353.65157)"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3910"
- id="linearGradient3916"
- x1="24"
- y1="1041.3622"
- x2="24"
- y2="1047.3622"
- gradientUnits="userSpaceOnUse" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3922"
- id="radialGradient3928"
- cx="7.5"
- cy="40.5"
- fx="7.5"
- fy="40.5"
- r="2.5"
- gradientUnits="userSpaceOnUse" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3922"
- id="radialGradient3933"
- gradientUnits="userSpaceOnUse"
- cx="7.5"
- cy="40.5"
- fx="7.5"
- fy="40.5"
- r="2.5"
- gradientTransform="matrix(-1.2,0,0,1.2,51,995.7622)" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3940"
- id="radialGradient3946"
- cx="24"
- cy="1041.8622"
- fx="24"
- fy="1041.8622"
- r="22.000001"
- gradientTransform="matrix(1,0,0,0.1590909,0,870.1114)"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3962"
- id="linearGradient3968"
- x1="7"
- y1="1031.3622"
- x2="7"
- y2="1041.3622"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(0,-2068.7244)" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3976"
- id="linearGradient3974"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(-3.7777777,0,0,1,161.88889,-9)"
- x1="37"
- y1="1029.3622"
- x2="37"
- y2="1032.3622" />
- </defs>
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="7.919596"
- inkscape:cx="-1.0068549"
- inkscape:cy="8.6235952"
- inkscape:document-units="px"
- inkscape:current-layer="layer1"
- showgrid="true"
- borderlayer="true"
- inkscape:showpageshadow="false"
- inkscape:snap-bbox="true"
- inkscape:snap-nodes="true"
- inkscape:object-paths="false"
- inkscape:window-width="1680"
- inkscape:window-height="1025"
- inkscape:window-x="1680"
- inkscape:window-y="0"
- inkscape:window-maximized="1">
- <inkscape:grid
- type="xygrid"
- id="grid2830"
- empspacing="5"
- visible="true"
- enabled="true"
- snapvisiblegridlinesonly="true" />
- </sodipodi:namedview>
- <metadata
- id="metadata7">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title>projector</dc:title>
- <dc:date>2010-02-15</dc:date>
- <dc:creator>
- <cc:Agent>
- <dc:title>Sebastian Kraft</dc:title>
- </cc:Agent>
- </dc:creator>
- <dc:subject>
- <rdf:Bag>
- <rdf:li>device</rdf:li>
- <rdf:li>projector</rdf:li>
- </rdf:Bag>
- </dc:subject>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:label="Ebene 1"
- inkscape:groupmode="layer"
- id="layer1"
- transform="translate(0,-1004.3622)">
- <g
- id="g3935"
- style="opacity:0.47999998"
- transform="translate(0,-6)">
- <rect
- y="1041.3622"
- x="6"
- height="6"
- width="36"
- id="rect3908"
- style="color:#000000;fill:url(#linearGradient3916);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <path
- sodipodi:nodetypes="cscc"
- id="path3920"
- d="M 7.5,43 C 6.1192881,43 5,41.880712 5,40.5 5,39.119288 6.1192881,38 7.5,38 c 0,0 0,5 0,5 z"
- style="color:#000000;fill:url(#radialGradient3928);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- transform="matrix(1.2,0,0,1.2,-3,995.7622)" />
- <path
- style="color:#000000;fill:url(#radialGradient3933);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- d="m 42,1047.3622 c 1.656854,0 3,-1.3431 3,-3 0,-1.6569 -1.343146,-3 -3,-3 0,0 0,6 0,6 z"
- id="path3931"
- sodipodi:nodetypes="cscc" />
- </g>
- <path
- style="color:#000000;fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient3946);stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- d="m 2.4999999,1032.8622 43.0000011,0 -4.195122,6 -34.6097571,0 -4.195122,-6 z"
- id="rect3607"
- sodipodi:nodetypes="ccccc" />
- <path
- style="color:#000000;fill:url(#radialGradient3756);fill-opacity:1;fill-rule:nonzero;stroke:#888a85;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- d="m 1.5000001,1026.8622 5.250001,-6 34.5000019,0 5.250001,6 0,10 -45.0000039,0 0,-10 z"
- id="rect2832"
- sodipodi:nodetypes="ccccccc" />
- <rect
- y="1028.3622"
- x="21"
- height="6.0000172"
- width="1"
- id="rect3859"
- style="color:#000000;fill:#babdb6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <rect
- style="color:#000000;fill:#babdb6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect3836"
- width="42"
- height="1.0000174"
- x="3"
- y="1034.3622" />
- <rect
- y="-1034.3622"
- x="3"
- height="6"
- width="18"
- id="rect3834"
- style="color:#000000;fill:url(#linearGradient3968);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- transform="scale(1,-1)" />
- <rect
- style="opacity:0.8;color:#000000;fill:url(#linearGradient3662);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect3638"
- width="42"
- height="0.99994826"
- x="3"
- y="1027.3623" />
- <path
- sodipodi:type="arc"
- style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient3766);stroke-width:0.82559872;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="path3758"
- sodipodi:cx="44.107143"
- sodipodi:cy="31.080357"
- sodipodi:rx="0.8035714"
- sodipodi:ry="0.84821427"
- d="m 44.910715,31.080357 a 0.8035714,0.84821427 0 1 1 -1.607143,0 0.8035714,0.84821427 0 1 1 1.607143,0 z"
- transform="matrix(1.2444445,0,0,1.1789258,-11.388892,992.22075)" />
- <rect
- y="1026.3623"
- x="3"
- height="0.99994826"
- width="42"
- id="rect3640"
- style="opacity:0.8;color:#000000;fill:#babdb6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <path
- sodipodi:nodetypes="ccccc"
- id="path3861"
- d="m 18,1021.3622 -9,0 -2,3 12,0 -1,-3 z"
- style="color:#000000;fill:url(#linearGradient3863);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <path
- style="color:#000000;fill:url(#linearGradient3974);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- d="m 41,1021.3622 -34,0 0,2 34,0 0,-2 z"
- id="path3970"
- sodipodi:nodetypes="ccccc" />
- <path
- sodipodi:nodetypes="ccccccc"
- id="path3612"
- d="m 2.5,1027.1122 4.75,-5.25 33.5,0 4.75,5.25 0,8.75 -43,0 0,-8.75 z"
- style="color:#000000;fill:none;stroke:url(#radialGradient3879);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <path
- sodipodi:type="arc"
- style="color:#000000;fill:url(#linearGradient3728);fill-opacity:1;stroke:url(#radialGradient3736);stroke-width:0.9327687;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="path3614"
- sodipodi:cx="37.723213"
- sodipodi:cy="34.160713"
- sodipodi:rx="4.7767859"
- sodipodi:ry="4.5535712"
- d="m 42.499999,34.160713 a 4.7767859,4.5535712 0 1 1 -9.553572,0 4.7767859,4.5535712 0 1 1 9.553572,0 z"
- transform="matrix(1.0467287,0,0,1.0980395,-1.9859717,994.3524)" />
- <path
- sodipodi:type="arc"
- style="color:#000000;fill:#2e3436;fill-opacity:1;stroke:none;stroke-width:1.33252525;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="path3676"
- sodipodi:cx="37.723213"
- sodipodi:cy="34.160713"
- sodipodi:rx="4.7767859"
- sodipodi:ry="4.5535712"
- d="m 42.499999,34.160713 a 4.7767859,4.5535712 0 1 1 -9.553572,0 4.7767859,4.5535712 0 1 1 9.553572,0 z"
- transform="matrix(0.73271025,0,0,0.7686232,9.859815,1005.6055)" />
- <path
- sodipodi:type="arc"
- style="color:#000000;fill:url(#radialGradient3716);fill-opacity:1;stroke:none;stroke-width:1.33252525;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="path3706"
- sodipodi:cx="37.723213"
- sodipodi:cy="34.160713"
- sodipodi:rx="4.7767859"
- sodipodi:ry="4.5535712"
- d="m 42.499999,34.160713 a 4.7767859,4.5535712 0 1 1 -9.553572,0 4.7767859,4.5535712 0 1 1 9.553572,0 z"
- transform="matrix(0.7327103,0,0,0.76863115,9.8598129,1005.6052)" />
- <path
- transform="matrix(0.62803737,0,0,0.65883318,13.308412,1008.856)"
- d="m 42.499999,34.160713 a 4.7767859,4.5535712 0 1 1 -9.553572,0 4.7767859,4.5535712 0 1 1 9.553572,0 z"
- sodipodi:ry="4.5535712"
- sodipodi:rx="4.7767859"
- sodipodi:cy="34.160713"
- sodipodi:cx="37.723213"
- id="path3666"
- style="color:#000000;fill:url(#radialGradient3704);fill-opacity:1;stroke:none;stroke-width:1.33252525;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- sodipodi:type="arc" />
- <path
- transform="matrix(0.94205604,0,0,0.98823454,1.9626191,998.1034)"
- d="m 42.499999,34.160713 a 4.7767859,4.5535712 0 1 1 -9.553572,0 4.7767859,4.5535712 0 1 1 9.553572,0 z"
- sodipodi:ry="4.5535712"
- sodipodi:rx="4.7767859"
- sodipodi:cy="34.160713"
- sodipodi:cx="37.723213"
- id="path3616"
- style="color:#000000;fill:url(#radialGradient3626);fill-opacity:1;stroke:none;stroke-width:1.33252525;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- sodipodi:type="arc" />
- <path
- sodipodi:type="arc"
- style="color:#000000;fill:url(#linearGradient3696);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="path3678"
- sodipodi:cx="36.026787"
- sodipodi:cy="31.75"
- sodipodi:rx="0.84821427"
- sodipodi:ry="0.625"
- d="m 36.875001,31.75 a 0.84821427,0.625 0 1 1 -1.696428,0 0.84821427,0.625 0 1 1 1.696428,0 z"
- transform="matrix(-1.1789485,0,0,0.8,78.473727,1004.4622)" />
- <path
- transform="matrix(1.7684216,0,0,1.6,-25.210548,982.5622)"
- d="m 36.875001,31.75 a 0.84821427,0.625 0 1 1 -1.696428,0 0.84821427,0.625 0 1 1 1.696428,0 z"
- sodipodi:ry="0.625"
- sodipodi:rx="0.84821427"
- sodipodi:cy="31.75"
- sodipodi:cx="36.026787"
- id="path3680"
- style="color:#000000;fill:url(#radialGradient3688);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- sodipodi:type="arc" />
- <path
- style="color:#000000;fill:#000000;fill-opacity:0.28240739;stroke:none;stroke-width:0.9327687;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- d="m 42.9375,1032.6122 c -0.368733,2.6795 -2.656675,4.75 -5.4375,4.75 -1.502962,0 -2.851011,-0.6167 -3.84375,-1.5937 0.854618,1.5312 2.465608,2.5937 4.34375,2.5937 2.761424,0 5,-2.2386 5,-5 0,-0.2589 -0.02456,-0.5017 -0.0625,-0.75 z"
- id="path3738" />
- <path
- style="color:#000000;fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- d="m 3,1029.3622 0,1 1,0 0,-1 -1,0 z m 2,0 0,1 1,0 0,-1 -1,0 z m 2,0 0,1 1,0 0,-1 -1,0 z m 2,0 0,1 1,0 0,-1 -1,0 z m 2,0 0,1 1,0 0,-1 -1,0 z m 2,0 0,1 1,0 0,-1 -1,0 z m 2,0 0,1 1,0 0,-1 -1,0 z m 2,0 0,1 1,0 0,-1 -1,0 z m 2,0 0,1 1,0 0,-1 -1,0 z m -16,2 0,1 1,0 0,-1 -1,0 z m 2,0 0,1 1,0 0,-1 -1,0 z m 2,0 0,1 1,0 0,-1 -1,0 z m 2,0 0,1 1,0 0,-1 -1,0 z m 2,0 0,1 1,0 0,-1 -1,0 z m 2,0 0,1 1,0 0,-1 -1,0 z m 2,0 0,1 1,0 0,-1 -1,0 z m 2,0 0,1 1,0 0,-1 -1,0 z m 2,0 0,1 1,0 0,-1 -1,0 z m -16,2 0,1 1,0 0,-1 -1,0 z m 2,0 0,1 1,0 0,-1 -1,0 z m 2,0 0,1 1,0 0,-1 -1,0 z m 2,0 0,1 1,0 0,-1 -1,0 z m 2,0 0,1 1,0 0,-1 -1,0 z m 2,0 0,1 1,0 0,-1 -1,0 z m 2,0 0,1 1,0 0,-1 -1,0 z m 2,0 0,1 1,0 0,-1 -1,0 z m 2,0 0,1 1,0 0,-1 -1,0 z"
- id="rect3796" />
- <path
- style="color:#000000;fill:url(#linearGradient3850);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- d="m 32,1024.3622 9,0 2,2 -12,0 1,-2 z"
- id="rect3842"
- sodipodi:nodetypes="ccccc" />
- <path
- id="path3960"
- d="m 21,1028.3622 0,1 -1,0 0,-1 1,0 z m -2,0 0,1 -1,0 0,-1 1,0 z m -2,0 0,1 -1,0 0,-1 1,0 z m -2,0 0,1 -1,0 0,-1 1,0 z m -2,0 0,1 -1,0 0,-1 1,0 z m -2,0 0,1 -1,0 0,-1 1,0 z m -2,0 0,1 -1,0 0,-1 1,0 z m -2,0 0,1 -1,0 0,-1 1,0 z m -2,0 0,1 -1,0 0,-1 1,0 z m 16,2 0,1 -1,0 0,-1 1,0 z m -2,0 0,1 -1,0 0,-1 1,0 z m -2,0 0,1 -1,0 0,-1 1,0 z m -2,0 0,1 -1,0 0,-1 1,0 z m -2,0 0,1 -1,0 0,-1 1,0 z m -2,0 0,1 -1,0 0,-1 1,0 z m -2,0 0,1 -1,0 0,-1 1,0 z m -2,0 0,1 -1,0 0,-1 1,0 z m -2,0 0,1 -1,0 0,-1 1,0 z m 16,2 0,1 -1,0 0,-1 1,0 z m -2,0 0,1 -1,0 0,-1 1,0 z m -2,0 0,1 -1,0 0,-1 1,0 z m -2,0 0,1 -1,0 0,-1 1,0 z m -2,0 0,1 -1,0 0,-1 1,0 z m -2,0 0,1 -1,0 0,-1 1,0 z m -2,0 0,1 -1,0 0,-1 1,0 z m -2,0 0,1 -1,0 0,-1 1,0 z m -2,0 0,1 -1,0 0,-1 1,0 z"
- style="color:#000000;fill:#2e3436;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- </g>
-</svg>
diff --git a/data/meson.build b/data/meson.build
index 069395c..35b9ba5 100644
--- a/data/meson.build
+++ b/data/meson.build
@@ -1,13 +1,10 @@
subdir('appdata')
subdir('figures')
subdir('icons')
-subdir('targets')
-subdir('ti1')
desktop_files = [
'org.gnome.ColorProfileViewer.desktop',
'gcm-picker.desktop',
- 'gcm-calibrate.desktop',
'gcm-import.desktop',
]
foreach desktop_file: desktop_files
diff --git a/data/targets/CMP-DigitalTarget3.png b/data/targets/CMP-DigitalTarget3.png
deleted file mode 100644
index 9ee918e..0000000
--- a/data/targets/CMP-DigitalTarget3.png
+++ /dev/null
Binary files differ
diff --git a/data/targets/CMP_DT_003.png b/data/targets/CMP_DT_003.png
deleted file mode 100644
index 458857d..0000000
--- a/data/targets/CMP_DT_003.png
+++ /dev/null
Binary files differ
diff --git a/data/targets/ColorChecker24.png b/data/targets/ColorChecker24.png
deleted file mode 100644
index 29f0738..0000000
--- a/data/targets/ColorChecker24.png
+++ /dev/null
Binary files differ
diff --git a/data/targets/ColorCheckerDC.png b/data/targets/ColorCheckerDC.png
deleted file mode 100644
index e0ea204..0000000
--- a/data/targets/ColorCheckerDC.png
+++ /dev/null
Binary files differ
diff --git a/data/targets/ColorCheckerSG.png b/data/targets/ColorCheckerSG.png
deleted file mode 100644
index 688a1f3..0000000
--- a/data/targets/ColorCheckerSG.png
+++ /dev/null
Binary files differ
diff --git a/data/targets/IT872.png b/data/targets/IT872.png
deleted file mode 100644
index 02c5463..0000000
--- a/data/targets/IT872.png
+++ /dev/null
Binary files differ
diff --git a/data/targets/LaserSoftDCPro.png b/data/targets/LaserSoftDCPro.png
deleted file mode 100644
index 38def09..0000000
--- a/data/targets/LaserSoftDCPro.png
+++ /dev/null
Binary files differ
diff --git a/data/targets/QPcard_201.png b/data/targets/QPcard_201.png
deleted file mode 100644
index 13b2f9b..0000000
--- a/data/targets/QPcard_201.png
+++ /dev/null
Binary files differ
diff --git a/data/targets/QPcard_202.png b/data/targets/QPcard_202.png
deleted file mode 100644
index 8a0229a..0000000
--- a/data/targets/QPcard_202.png
+++ /dev/null
Binary files differ
diff --git a/data/targets/i1_RGB_Scan_14.png b/data/targets/i1_RGB_Scan_14.png
deleted file mode 100644
index 148d515..0000000
--- a/data/targets/i1_RGB_Scan_14.png
+++ /dev/null
Binary files differ
diff --git a/data/targets/meson.build b/data/targets/meson.build
deleted file mode 100644
index 50d33f4..0000000
--- a/data/targets/meson.build
+++ /dev/null
@@ -1,15 +0,0 @@
-install_data([
- 'CMP-DigitalTarget3.png',
- 'CMP_DT_003.png',
- 'ColorChecker24.png',
- 'ColorCheckerDC.png',
- 'ColorCheckerSG.png',
- 'i1_RGB_Scan_14.png',
- 'IT872.png',
- 'LaserSoftDCPro.png',
- 'QPcard_201.png',
- 'QPcard_202.png',
- 'unknown.png',
- ],
- install_dir : join_paths(prefixed_datadir, 'gnome-color-manager/targets')
-)
diff --git a/data/targets/unknown.png b/data/targets/unknown.png
deleted file mode 100644
index e8ec031..0000000
--- a/data/targets/unknown.png
+++ /dev/null
Binary files differ
diff --git a/data/ti1/README.txt b/data/ti1/README.txt
deleted file mode 100644
index 49e0b6a..0000000
--- a/data/ti1/README.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-targen -d3 -G -e4 -s5 -g17 -f64 display-short
-targen -d3 -G -e4 -s5 -g17 -f128 display-normal
-targen -d3 -G -e4 -s5 -g17 -f256 display-long
-targen -d2 -G -f196 printer-short
-targen -d2 -G -f392 printer-normal
-targen -d2 -G -f588 printer-long
diff --git a/data/ti1/display-long.ti1 b/data/ti1/display-long.ti1
deleted file mode 100644
index dc7a458..0000000
--- a/data/ti1/display-long.ti1
+++ /dev/null
@@ -1,333 +0,0 @@
-CTI1
-
-DESCRIPTOR "Argyll Calibration Target chart information 1"
-ORIGINATOR "Argyll targen"
-CREATED "Fri Jan 27 22:19:16 2012"
-KEYWORD "APPROX_WHITE_POINT"
-APPROX_WHITE_POINT "95.106486 100.000000 108.844025"
-KEYWORD "COLOR_REP"
-COLOR_REP "RGB"
-KEYWORD "WHITE_COLOR_PATCHES"
-WHITE_COLOR_PATCHES "4"
-KEYWORD "SINGLE_DIM_STEPS"
-SINGLE_DIM_STEPS "5"
-KEYWORD "COMP_GREY_STEPS"
-COMP_GREY_STEPS "17"
-KEYWORD "ERROR_OPTIMISED_PATCHES"
-ERROR_OPTIMISED_PATCHES "224"
-
-NUMBER_OF_FIELDS 7
-BEGIN_DATA_FORMAT
-SAMPLE_ID RGB_R RGB_G RGB_B XYZ_X XYZ_Y XYZ_Z
-END_DATA_FORMAT
-
-NUMBER_OF_SETS 256
-BEGIN_DATA
-1 100.00 100.00 100.00 95.106 100.00 108.84
-2 100.00 100.00 100.00 95.106 100.00 108.84
-3 100.00 100.00 100.00 95.106 100.00 108.84
-4 100.00 100.00 100.00 95.106 100.00 108.84
-5 0.0000 0.0000 0.0000 1.0000 1.0000 1.0000
-6 25.000 0.0000 0.0000 3.0773 2.0711 1.0973
-7 50.000 0.0000 0.0000 9.7393 5.5060 1.4095
-8 75.000 0.0000 0.0000 22.335 12.000 1.9997
-9 100.00 0.0000 0.0000 41.830 22.052 2.9132
-10 0.0000 25.000 0.0000 2.8013 4.6021 1.6004
-11 0.0000 50.000 0.0000 8.5782 16.154 3.5261
-12 0.0000 75.000 0.0000 19.500 37.995 7.1667
-13 0.0000 100.00 0.0000 36.405 71.801 12.802
-14 0.0000 0.0000 25.000 1.9092 1.3636 5.7889
-15 0.0000 0.0000 50.000 4.8252 2.5298 21.147
-16 0.0000 0.0000 75.000 10.338 4.7346 50.184
-17 0.0000 0.0000 100.00 18.871 8.1473 95.129
-18 6.2500 6.2500 6.2500 1.4852 1.5104 1.5560
-19 12.500 12.500 12.500 2.3504 2.4206 2.5475
-20 18.750 18.750 18.750 3.7614 3.9049 4.1645
-21 25.000 25.000 25.000 5.7878 6.0367 6.4867
-22 31.250 31.250 31.250 8.4891 8.8786 9.5824
-23 37.500 37.500 37.500 11.918 12.486 13.512
-24 43.750 43.750 43.750 16.121 16.908 18.329
-25 50.000 50.000 50.000 21.143 22.190 24.083
-26 56.250 56.250 56.250 27.022 28.375 30.821
-27 62.500 62.500 62.500 33.797 35.503 38.585
-28 68.750 68.750 68.750 41.503 43.609 47.415
-29 75.000 75.000 75.000 50.173 52.730 57.351
-30 81.250 81.250 81.250 59.838 62.898 68.427
-31 87.500 87.500 87.500 70.530 74.146 80.680
-32 93.750 93.750 93.750 82.277 86.503 94.142
-33 100.00 0.0000 100.00 59.701 29.199 97.042
-34 100.00 100.00 0.0000 77.235 92.853 14.715
-35 0.0000 100.00 100.00 54.276 78.948 106.93
-36 50.535 0.0000 100.00 27.814 12.758 95.548
-37 0.0000 73.225 100.00 36.407 43.215 100.97
-38 0.0000 100.00 23.892 37.237 72.133 17.184
-39 0.0000 26.086 100.00 20.830 12.065 95.782
-40 100.00 0.0000 47.712 45.288 23.435 21.124
-41 100.00 71.704 0.0000 58.564 55.515 8.4912
-42 65.340 100.00 0.0000 52.103 79.894 13.537
-43 100.00 23.991 100.00 61.363 32.522 97.596
-44 100.00 100.00 28.697 78.432 93.331 21.017
-45 48.245 100.00 100.00 62.367 83.119 107.31
-46 0.0000 100.00 77.393 46.423 75.807 65.568
-47 45.279 100.00 54.073 47.999 77.254 37.012
-48 100.00 24.338 0.0000 43.539 25.469 3.4829
-49 100.00 73.005 100.00 77.120 64.032 102.85
-50 38.029 63.645 100.00 36.593 36.346 99.639
-51 0.0000 43.389 52.449 10.832 13.874 25.211
-52 100.00 100.00 50.593 81.159 94.422 35.383
-53 0.0000 49.639 100.00 26.331 23.066 97.616
-54 60.023 0.0000 43.617 16.870 8.8527 16.637
-55 100.00 40.386 46.158 49.851 32.940 21.475
-56 49.387 38.501 0.0000 13.850 14.068 2.8457
-57 0.0000 100.00 51.451 40.475 73.428 34.236
-58 100.00 0.0000 75.497 51.307 25.842 52.829
-59 29.710 100.00 0.0000 39.337 73.312 12.939
-60 24.989 0.0000 100.00 20.947 9.2174 95.226
-61 41.044 0.0000 79.607 17.401 8.2219 57.481
-62 25.476 100.00 100.00 56.432 80.059 107.03
-63 100.00 60.845 83.851 65.455 50.107 69.967
-64 78.238 46.280 0.0000 30.868 25.922 4.2375
-65 75.370 20.041 100.00 41.619 21.622 96.532
-66 49.224 22.074 100.00 28.734 15.331 95.996
-67 23.290 100.00 35.296 40.041 73.464 22.512
-68 69.042 100.00 43.225 56.943 82.066 28.374
-69 0.0000 74.660 20.837 19.952 37.877 10.472
-70 100.00 81.626 18.915 64.731 66.994 13.176
-71 100.00 50.401 0.0000 49.541 37.471 5.4834
-72 21.840 0.0000 45.840 5.7703 3.0926 17.786
-73 0.0000 25.494 39.135 5.1397 5.6505 13.568
-74 47.365 82.813 0.0000 31.882 51.214 9.0663
-75 100.00 20.817 55.404 47.875 26.492 28.515
-76 100.00 47.351 100.00 66.440 42.676 99.289
-77 0.0000 22.840 59.418 8.0824 6.2484 30.853
-78 100.00 100.00 78.193 87.487 96.953 68.712
-79 100.00 61.042 60.899 59.426 47.829 37.799
-80 79.801 0.0000 53.208 29.894 15.392 25.205
-81 57.012 50.730 100.00 38.318 29.780 98.280
-82 76.369 100.00 100.00 76.492 90.402 107.97
-83 39.179 41.088 100.00 29.043 20.781 97.032
-84 79.784 78.893 0.0000 46.226 55.070 9.0551
-85 20.468 0.0000 19.294 2.9651 1.9492 3.9793
-86 66.031 22.836 0.0000 18.578 12.304 2.2561
-87 100.00 0.0000 22.624 42.579 22.351 6.8552
-88 46.414 58.932 70.117 27.323 29.733 47.289
-89 18.935 78.683 100.00 40.688 49.964 102.05
-90 26.097 100.00 70.396 46.774 76.209 55.610
-91 22.553 88.622 46.728 32.929 57.037 27.467
-92 100.00 23.398 79.962 54.192 29.528 60.218
-93 0.0000 63.333 75.349 23.141 30.180 54.933
-94 77.171 100.00 68.570 66.794 86.585 54.145
-95 52.384 63.194 37.768 25.416 32.110 16.752
-96 0.0000 83.775 39.914 27.078 49.368 21.355
-97 38.731 29.446 51.771 12.691 10.256 23.795
-98 100.00 60.691 38.897 55.635 46.076 18.560
-99 81.773 51.033 86.219 47.592 35.301 72.124
-100 74.769 0.0000 100.00 40.059 19.072 96.122
-101 67.026 10.797 32.908 19.591 10.997 10.239
-102 0.0000 43.034 77.930 16.667 16.053 56.422
-103 21.595 74.791 0.0000 20.949 38.571 7.2017
-104 20.074 50.459 100.00 27.961 24.306 97.769
-105 29.922 19.732 0.0000 5.1173 4.8188 1.5203
-106 0.0000 24.860 19.218 3.3304 4.7819 4.4854
-107 23.635 19.020 75.755 13.478 7.9123 51.741
-108 60.594 0.0000 73.356 23.178 11.407 48.431
-109 83.262 82.557 100.00 68.789 67.939 104.04
-110 63.655 23.392 22.129 18.116 12.089 5.9990
-111 35.538 60.949 24.310 17.770 26.873 9.6230
-112 58.690 0.0000 20.045 13.985 7.6264 4.7101
-113 100.00 81.155 82.364 75.429 70.810 70.955
-114 32.879 58.931 81.556 26.716 29.046 64.134
-115 0.0000 20.000 80.616 13.151 7.7345 59.216
-116 61.043 13.107 87.770 28.356 14.383 71.849
-117 100.00 20.156 27.211 44.095 24.861 8.9743
-118 87.028 66.530 47.868 48.450 46.089 25.459
-119 100.00 84.218 61.929 71.931 72.482 43.061
-120 53.627 100.00 78.980 57.063 81.239 68.502
-121 30.754 51.455 37.077 14.233 19.556 14.500
-122 57.557 36.572 52.391 21.003 16.609 25.149
-123 74.130 40.532 100.00 44.494 28.538 97.715
-124 63.455 62.849 0.0000 28.206 33.566 5.8533
-125 100.00 58.997 18.298 53.199 43.986 9.1759
-126 37.947 31.493 84.548 20.939 14.115 66.547
-127 100.00 42.806 73.657 56.229 36.499 51.962
-128 57.845 87.985 34.867 41.272 60.870 19.776
-129 42.006 0.0000 54.517 11.632 5.9481 25.591
-130 0.0000 48.080 24.670 8.8500 15.281 7.9868
-131 45.603 87.878 82.145 46.035 62.098 70.461
-132 19.401 38.350 0.0000 6.5818 10.267 2.4949
-133 29.808 67.876 68.013 26.272 35.143 45.629
-134 45.155 100.00 21.233 44.087 75.684 16.621
-135 84.964 94.414 42.611 63.017 78.776 26.979
-136 0.0000 83.798 85.820 37.368 53.507 75.479
-137 12.592 47.911 43.097 11.286 16.239 17.979
-138 50.107 48.538 27.071 17.952 20.167 9.3875
-139 15.166 75.880 34.135 22.510 40.076 16.349
-140 76.425 43.980 40.535 31.448 24.955 16.823
-141 41.342 83.362 100.00 48.140 58.045 103.22
-142 23.386 23.709 100.00 22.318 12.334 95.756
-143 88.998 30.690 50.283 38.934 24.142 23.769
-144 48.775 40.749 66.720 21.372 17.932 40.924
-145 52.315 77.437 52.428 34.752 47.405 30.404
-146 67.852 55.652 33.066 29.229 29.564 13.398
-147 15.519 54.778 79.564 21.749 24.177 60.264
-148 77.932 100.00 19.785 60.232 84.019 16.944
-149 39.733 0.0000 25.097 7.2652 4.1244 6.0763
-150 81.866 38.937 16.605 31.830 23.444 5.9099
-151 41.052 12.829 15.516 7.6334 5.1647 3.4044
-152 87.489 14.246 88.570 45.365 23.246 74.106
-153 37.555 88.217 62.956 38.726 59.265 43.440
-154 71.551 58.446 49.326 34.568 33.679 25.014
-155 21.023 0.0000 74.609 11.715 5.4571 49.682
-156 11.559 60.059 29.472 14.080 24.372 11.442
-157 22.385 82.013 72.177 33.853 50.499 53.760
-158 0.0000 62.525 47.074 16.709 27.040 22.808
-159 20.471 97.242 20.629 36.264 68.418 15.445
-160 79.586 0.0000 24.261 26.226 13.908 6.6570
-161 100.00 80.122 40.769 65.754 65.939 23.084
-162 78.443 61.891 100.00 54.537 44.458 100.26
-163 12.083 32.382 80.443 15.510 11.715 59.583
-164 62.413 39.230 20.835 20.341 17.600 6.5366
-165 84.947 63.131 9.0163 41.986 40.838 7.3336
-166 19.693 34.359 47.205 9.1160 9.8754 20.001
-167 61.485 78.733 100.00 53.222 56.470 102.65
-168 100.00 38.914 20.340 46.880 31.173 7.6097
-169 80.272 0.0000 79.935 36.615 18.117 58.898
-170 71.346 12.220 11.967 20.812 11.913 3.3140
-171 26.147 44.599 20.185 9.7991 14.264 6.2529
-172 60.140 65.338 86.942 40.699 40.165 74.699
-173 51.660 72.890 22.938 28.506 40.854 11.274
-174 21.563 63.925 43.772 18.403 28.888 20.537
-175 60.568 92.081 17.506 44.099 66.740 13.843
-176 88.010 70.175 26.451 48.531 49.060 13.103
-177 37.694 76.390 39.433 27.368 42.937 19.786
-178 45.340 48.555 83.439 27.056 23.620 66.183
-179 0.0000 79.496 62.341 28.271 45.626 40.647
-180 32.508 56.311 0.0000 14.336 22.440 4.4362
-181 10.225 11.701 31.064 3.2842 2.6914 8.5717
-182 87.095 9.2811 37.630 33.258 17.860 13.505
-183 84.278 81.928 52.706 55.562 62.109 32.403
-184 46.661 72.629 83.467 37.620 44.064 69.619
-185 71.071 29.096 46.150 25.576 16.917 19.654
-186 17.390 25.437 60.025 9.6049 7.5438 31.682
-187 12.738 57.576 11.440 12.129 22.002 5.6300
-188 66.828 58.525 16.400 28.590 31.026 7.4953
-189 17.119 88.834 6.6036 29.181 55.692 10.591
-190 57.324 35.491 89.932 30.477 20.008 76.764
-191 53.004 16.505 41.456 14.302 8.7834 15.228
-192 86.723 51.295 28.858 39.785 32.745 11.429
-193 67.067 90.243 87.032 58.727 70.883 79.839
-194 38.160 33.394 11.057 9.3515 10.073 3.4117
-195 15.966 18.198 44.766 5.8928 4.6328 17.254
-196 81.154 16.229 51.405 31.320 17.348 23.852
-197 56.383 27.378 74.020 23.573 14.791 50.010
-198 47.100 65.672 6.3779 22.544 32.527 6.4468
-199 63.091 84.716 70.188 47.901 60.343 52.208
-200 73.027 48.725 64.095 34.853 28.330 39.013
-201 61.689 91.770 55.403 48.741 68.301 36.539
-202 46.081 75.143 67.697 34.342 44.905 46.684
-203 42.438 49.043 11.211 14.632 18.791 4.8410
-204 88.823 13.687 13.774 33.101 18.396 4.2513
-205 9.9214 61.879 61.314 19.446 27.734 36.491
-206 13.250 12.101 89.387 15.984 7.8375 74.173
-207 90.702 36.209 89.422 51.407 31.052 76.852
-208 86.693 58.812 70.780 49.542 41.098 49.203
-209 83.747 27.321 4.0192 30.531 19.408 3.2893
-210 31.134 37.939 67.290 15.767 14.012 41.180
-211 87.359 48.974 54.808 42.973 32.856 29.418
-212 68.716 75.272 47.558 40.638 48.720 26.125
-213 40.131 93.745 39.888 39.398 65.902 23.881
-214 88.525 91.169 9.0164 60.829 74.431 12.826
-215 15.688 96.797 59.397 40.315 69.425 41.327
-216 20.761 24.891 7.3239 4.3501 5.3647 2.2619
-217 34.945 82.403 22.182 28.659 49.089 12.603
-218 49.375 17.333 59.361 15.965 9.4070 30.986
-219 12.831 92.914 84.036 43.630 66.056 74.507
-220 63.175 45.680 5.5890 21.890 21.021 4.1847
-221 50.711 22.276 6.4789 11.546 8.5620 2.4102
-222 9.2658 37.916 13.402 5.8563 9.7093 3.9372
-223 90.032 11.302 66.102 40.656 21.270 39.783
-224 8.6762 47.829 89.090 21.969 20.440 75.745
-225 46.492 23.236 28.195 11.188 8.4363 7.9527
-226 12.254 44.378 65.080 14.242 15.744 38.853
-227 88.117 73.531 65.353 56.224 54.947 44.542
-228 70.748 71.579 30.493 37.751 44.531 14.560
-229 80.340 84.963 26.654 51.401 63.198 15.762
-230 86.851 93.156 74.736 70.070 80.274 61.235
-231 22.570 40.053 89.421 21.287 16.857 75.696
-232 64.782 50.194 79.492 34.683 28.478 60.300
-233 23.427 70.904 89.828 33.161 40.184 80.325
-234 83.094 27.931 31.128 31.506 19.898 10.438
-235 29.627 89.582 85.933 44.178 62.738 77.099
-236 40.828 91.838 9.3788 36.011 62.344 11.849
-237 11.477 67.774 82.890 27.958 35.456 67.502
-238 64.951 11.119 56.320 21.866 11.808 27.964
-239 18.102 76.158 55.848 26.133 41.809 33.058
-240 10.634 35.122 31.593 6.4882 8.9797 9.8753
-241 67.595 77.649 12.049 38.160 49.807 9.7289
-242 70.842 31.993 62.902 29.058 19.123 36.138
-243 30.541 12.420 60.454 10.392 5.9189 31.799
-244 42.033 17.031 74.475 17.088 9.5243 49.991
-245 74.040 31.888 81.428 35.894 22.051 62.093
-246 79.057 68.104 86.402 52.762 48.350 74.691
-247 58.358 37.213 36.308 19.218 16.168 13.129
-248 87.781 32.148 68.137 41.912 25.653 43.134
-249 35.318 11.770 38.391 7.8183 4.9464 12.820
-250 8.6803 87.288 22.344 28.077 53.488 13.536
-251 25.141 70.634 15.809 19.667 34.597 8.5178
-252 37.823 65.931 52.535 23.967 32.959 28.282
-253 73.180 13.875 71.462 30.185 15.978 46.304
-254 10.871 8.5634 62.253 7.9218 4.2717 33.635
-255 29.141 51.644 57.921 17.217 20.815 31.592
-256 34.630 12.286 90.928 19.909 9.8166 77.211
-END_DATA
-CTI1
-
-DESCRIPTOR "Argyll Calibration Target chart information 1"
-ORIGINATOR "Argyll targen"
-KEYWORD "DENSITY_EXTREME_VALUES"
-DENSITY_EXTREME_VALUES "8"
-CREATED "January 27, 2012"
-
-KEYWORD "INDEX"
-NUMBER_OF_FIELDS 7
-BEGIN_DATA_FORMAT
-INDEX RGB_R RGB_G RGB_B XYZ_X XYZ_Y XYZ_Z
-END_DATA_FORMAT
-
-NUMBER_OF_SETS 8
-BEGIN_DATA
-0 100.00 100.00 100.00 95.106 100.00 108.84
-1 0.0000 47.361 100.00 25.613 21.629 97.376
-2 100.00 0.0000 79.351 52.426 26.290 58.722
-3 0.0000 0.0000 58.997 6.4858 3.1940 29.894
-4 100.00 66.659 0.0000 56.059 50.505 7.6561
-5 0.0000 35.601 0.0000 4.6856 8.3702 2.2286
-6 84.444 0.0000 0.0000 28.843 15.356 2.3047
-7 0.0000 0.0000 0.0000 1.0000 1.0000 1.0000
-END_DATA
-CTI1
-
-DESCRIPTOR "Argyll Calibration Target chart information 1"
-ORIGINATOR "Argyll targen"
-KEYWORD "DEVICE_COMBINATION_VALUES"
-DEVICE_COMBINATION_VALUES "9"
-CREATED "January 27, 2012"
-
-KEYWORD "INDEX"
-NUMBER_OF_FIELDS 7
-BEGIN_DATA_FORMAT
-INDEX RGB_R RGB_G RGB_B XYZ_X XYZ_Y XYZ_Z
-END_DATA_FORMAT
-
-NUMBER_OF_SETS 9
-BEGIN_DATA
-0 100.00 100.00 100.00 95.106 100.00 108.84
-1 0.0000 100.00 100.00 54.276 78.948 106.93
-2 100.00 0.0000 100.00 59.701 29.199 97.042
-3 0.0000 0.0000 100.00 18.871 8.1473 95.129
-4 100.00 100.00 0.0000 77.235 92.853 14.715
-5 0.0000 100.00 0.0000 36.405 71.801 12.802
-6 100.00 0.0000 0.0000 41.830 22.052 2.9132
-7 0.0000 0.0000 0.0000 1.0000 1.0000 1.0000
-8 50.000 50.000 50.000 21.143 22.190 24.083
-END_DATA
diff --git a/data/ti1/display-normal.ti1 b/data/ti1/display-normal.ti1
deleted file mode 100644
index f28d585..0000000
--- a/data/ti1/display-normal.ti1
+++ /dev/null
@@ -1,205 +0,0 @@
-CTI1
-
-DESCRIPTOR "Argyll Calibration Target chart information 1"
-ORIGINATOR "Argyll targen"
-CREATED "Fri Jan 27 22:19:10 2012"
-KEYWORD "APPROX_WHITE_POINT"
-APPROX_WHITE_POINT "95.106486 100.000000 108.844025"
-KEYWORD "COLOR_REP"
-COLOR_REP "RGB"
-KEYWORD "WHITE_COLOR_PATCHES"
-WHITE_COLOR_PATCHES "4"
-KEYWORD "SINGLE_DIM_STEPS"
-SINGLE_DIM_STEPS "5"
-KEYWORD "COMP_GREY_STEPS"
-COMP_GREY_STEPS "17"
-KEYWORD "ERROR_OPTIMISED_PATCHES"
-ERROR_OPTIMISED_PATCHES "96"
-
-NUMBER_OF_FIELDS 7
-BEGIN_DATA_FORMAT
-SAMPLE_ID RGB_R RGB_G RGB_B XYZ_X XYZ_Y XYZ_Z
-END_DATA_FORMAT
-
-NUMBER_OF_SETS 128
-BEGIN_DATA
-1 100.00 100.00 100.00 95.106 100.00 108.84
-2 100.00 100.00 100.00 95.106 100.00 108.84
-3 100.00 100.00 100.00 95.106 100.00 108.84
-4 100.00 100.00 100.00 95.106 100.00 108.84
-5 0.0000 0.0000 0.0000 1.0000 1.0000 1.0000
-6 25.000 0.0000 0.0000 3.0773 2.0711 1.0973
-7 50.000 0.0000 0.0000 9.7393 5.5060 1.4095
-8 75.000 0.0000 0.0000 22.335 12.000 1.9997
-9 100.00 0.0000 0.0000 41.830 22.052 2.9132
-10 0.0000 25.000 0.0000 2.8013 4.6021 1.6004
-11 0.0000 50.000 0.0000 8.5782 16.154 3.5261
-12 0.0000 75.000 0.0000 19.500 37.995 7.1667
-13 0.0000 100.00 0.0000 36.405 71.801 12.802
-14 0.0000 0.0000 25.000 1.9092 1.3636 5.7889
-15 0.0000 0.0000 50.000 4.8252 2.5298 21.147
-16 0.0000 0.0000 75.000 10.338 4.7346 50.184
-17 0.0000 0.0000 100.00 18.871 8.1473 95.129
-18 6.2500 6.2500 6.2500 1.4852 1.5104 1.5560
-19 12.500 12.500 12.500 2.3504 2.4206 2.5475
-20 18.750 18.750 18.750 3.7614 3.9049 4.1645
-21 25.000 25.000 25.000 5.7878 6.0367 6.4867
-22 31.250 31.250 31.250 8.4891 8.8786 9.5824
-23 37.500 37.500 37.500 11.918 12.486 13.512
-24 43.750 43.750 43.750 16.121 16.908 18.329
-25 50.000 50.000 50.000 21.143 22.190 24.083
-26 56.250 56.250 56.250 27.022 28.375 30.821
-27 62.500 62.500 62.500 33.797 35.503 38.585
-28 68.750 68.750 68.750 41.503 43.609 47.415
-29 75.000 75.000 75.000 50.173 52.730 57.351
-30 81.250 81.250 81.250 59.838 62.898 68.427
-31 87.500 87.500 87.500 70.530 74.146 80.680
-32 93.750 93.750 93.750 82.277 86.503 94.142
-33 100.00 0.0000 100.00 59.701 29.199 97.042
-34 100.00 100.00 0.0000 77.235 92.853 14.715
-35 0.0000 100.00 100.00 54.276 78.948 106.93
-36 56.443 0.0000 100.00 30.246 14.012 95.662
-37 0.0000 75.498 100.00 37.647 45.694 101.39
-38 0.0000 100.00 26.381 37.416 72.205 18.128
-39 0.0000 25.655 100.00 20.767 11.938 95.761
-40 100.00 0.0000 35.566 43.687 22.795 12.692
-41 100.00 70.260 0.0000 57.823 54.033 8.2442
-42 62.821 100.00 0.0000 50.797 79.221 13.476
-43 100.00 30.809 100.00 62.438 34.673 97.955
-44 100.00 100.00 32.331 78.760 93.462 22.745
-45 70.830 100.00 100.00 73.054 88.630 107.81
-46 0.0000 100.00 74.843 45.700 75.518 61.757
-47 54.953 100.00 74.442 56.318 81.005 61.675
-48 32.734 22.681 100.00 23.934 12.969 95.793
-49 0.0000 66.437 35.458 16.968 29.981 15.425
-50 66.820 0.0000 70.548 25.643 12.764 44.681
-51 100.00 33.152 70.557 53.159 31.671 46.892
-52 50.337 65.593 0.0000 23.596 33.026 5.9919
-53 0.0000 66.187 63.216 21.393 31.563 39.309
-54 100.00 33.589 0.0000 45.097 28.586 4.0023
-55 100.00 69.930 100.00 75.527 60.847 102.32
-56 100.00 100.00 66.820 84.456 95.740 52.746
-57 64.312 73.518 100.00 51.721 51.344 101.74
-58 0.0000 50.723 100.00 26.688 23.779 97.735
-59 100.00 0.0000 69.233 49.643 25.177 44.062
-60 32.837 100.00 0.0000 40.002 73.655 12.970
-61 0.0000 100.00 52.093 40.586 73.473 34.822
-62 100.00 51.861 38.028 52.168 39.309 16.892
-63 34.683 0.0000 39.606 7.3517 4.0059 13.437
-64 45.860 100.00 31.834 45.138 76.132 20.921
-65 67.183 0.0000 36.304 19.634 10.383 11.988
-66 0.0000 29.388 51.706 7.6006 7.6187 23.495
-67 73.437 100.00 53.956 61.272 84.100 37.523
-68 70.117 27.096 100.00 39.343 21.839 96.694
-69 33.697 68.410 100.00 37.735 40.241 100.33
-70 100.00 75.849 32.203 62.314 60.595 17.203
-71 36.262 30.584 0.0000 8.1130 8.6696 2.1058
-72 68.603 29.177 32.788 22.510 15.547 10.902
-73 0.0000 39.327 29.255 6.7828 10.574 9.0649
-74 32.088 0.0000 78.236 14.694 6.8736 55.225
-75 37.090 100.00 100.00 58.906 81.335 107.15
-76 22.279 49.339 90.567 24.297 22.289 78.711
-77 100.00 26.485 35.768 45.728 26.841 13.481
-78 68.651 38.923 0.0000 22.958 18.913 3.3013
-79 17.157 50.140 40.495 12.079 17.746 16.425
-80 0.0000 41.728 75.271 15.558 15.052 52.298
-81 18.702 89.209 85.150 41.937 61.228 75.568
-82 24.644 64.027 0.0000 16.034 28.066 5.4328
-83 75.877 65.926 42.892 39.534 41.155 21.155
-84 66.372 52.588 83.595 37.619 31.050 67.323
-85 100.00 73.393 72.260 68.050 60.736 54.050
-86 50.553 65.034 32.994 25.011 33.190 14.282
-87 31.854 4.9309 95.933 20.778 9.5203 86.859
-88 30.240 67.698 48.789 22.392 33.464 25.159
-89 78.717 95.220 25.845 57.423 76.991 17.787
-90 75.386 69.775 0.0000 38.329 43.619 7.2606
-91 68.285 28.474 77.870 30.801 18.654 56.087
-92 25.467 29.579 78.163 15.917 11.246 55.892
-93 48.951 14.000 51.430 14.030 8.1615 23.013
-94 82.832 90.378 65.733 62.767 73.811 48.304
-95 28.214 92.108 63.264 39.418 63.670 44.614
-96 14.603 68.182 79.167 27.264 35.525 61.541
-97 88.360 49.828 54.550 43.984 33.792 29.294
-98 41.710 50.327 72.770 23.342 22.916 49.817
-99 38.939 80.987 17.165 28.548 47.767 10.914
-100 55.881 86.018 87.163 50.388 62.305 78.854
-101 22.906 66.481 25.490 17.841 30.566 10.773
-102 69.423 40.117 58.003 28.976 21.838 31.256
-103 15.240 45.683 60.148 13.787 16.191 33.266
-104 50.377 77.606 61.775 35.922 47.941 40.045
-105 65.975 49.612 26.169 25.485 24.568 9.4768
-106 74.166 8.5755 90.302 36.269 17.962 76.751
-107 86.936 18.673 77.211 41.726 22.376 55.226
-108 84.045 52.376 10.345 37.116 32.037 6.0788
-109 38.289 70.674 78.261 32.423 40.061 60.735
-110 24.782 11.583 56.951 8.5674 4.9796 27.989
-111 47.857 17.191 19.510 10.402 7.0969 4.6422
-112 84.084 70.853 19.781 45.450 48.035 10.776
-113 77.030 11.244 19.702 24.651 13.762 5.2332
-114 16.943 47.232 15.528 9.0700 15.065 5.2426
-115 47.493 44.887 97.834 31.834 23.850 92.928
-116 46.578 20.155 75.869 19.272 11.078 52.216
-117 17.269 85.384 41.485 29.348 52.056 22.808
-118 91.901 15.411 54.601 40.067 21.688 27.214
-119 85.468 32.038 17.850 33.053 21.871 5.8512
-120 90.105 50.404 88.294 54.422 38.431 76.062
-121 59.947 81.844 24.195 37.335 53.031 13.600
-122 44.071 46.216 16.939 14.496 17.402 5.7371
-123 17.337 87.868 17.830 28.923 54.535 12.369
-124 35.143 31.981 58.370 13.450 11.184 30.403
-125 54.621 87.941 45.474 41.165 60.615 26.743
-126 4.4984 20.939 79.102 12.942 7.8378 56.848
-127 70.905 18.824 52.105 25.051 14.470 24.261
-128 11.481 17.383 37.797 4.5211 3.9131 12.428
-END_DATA
-CTI1
-
-DESCRIPTOR "Argyll Calibration Target chart information 1"
-ORIGINATOR "Argyll targen"
-KEYWORD "DENSITY_EXTREME_VALUES"
-DENSITY_EXTREME_VALUES "8"
-CREATED "January 27, 2012"
-
-KEYWORD "INDEX"
-NUMBER_OF_FIELDS 7
-BEGIN_DATA_FORMAT
-INDEX RGB_R RGB_G RGB_B XYZ_X XYZ_Y XYZ_Z
-END_DATA_FORMAT
-
-NUMBER_OF_SETS 8
-BEGIN_DATA
-0 100.00 100.00 100.00 95.106 100.00 108.84
-1 0.0000 47.361 100.00 25.613 21.629 97.376
-2 100.00 0.0000 79.351 52.426 26.290 58.722
-3 0.0000 0.0000 58.997 6.4858 3.1940 29.894
-4 100.00 66.659 0.0000 56.059 50.505 7.6561
-5 0.0000 35.601 0.0000 4.6856 8.3702 2.2286
-6 84.444 0.0000 0.0000 28.843 15.356 2.3047
-7 0.0000 0.0000 0.0000 1.0000 1.0000 1.0000
-END_DATA
-CTI1
-
-DESCRIPTOR "Argyll Calibration Target chart information 1"
-ORIGINATOR "Argyll targen"
-KEYWORD "DEVICE_COMBINATION_VALUES"
-DEVICE_COMBINATION_VALUES "9"
-CREATED "January 27, 2012"
-
-KEYWORD "INDEX"
-NUMBER_OF_FIELDS 7
-BEGIN_DATA_FORMAT
-INDEX RGB_R RGB_G RGB_B XYZ_X XYZ_Y XYZ_Z
-END_DATA_FORMAT
-
-NUMBER_OF_SETS 9
-BEGIN_DATA
-0 100.00 100.00 100.00 95.106 100.00 108.84
-1 0.0000 100.00 100.00 54.276 78.948 106.93
-2 100.00 0.0000 100.00 59.701 29.199 97.042
-3 0.0000 0.0000 100.00 18.871 8.1473 95.129
-4 100.00 100.00 0.0000 77.235 92.853 14.715
-5 0.0000 100.00 0.0000 36.405 71.801 12.802
-6 100.00 0.0000 0.0000 41.830 22.052 2.9132
-7 0.0000 0.0000 0.0000 1.0000 1.0000 1.0000
-8 50.000 50.000 50.000 21.143 22.190 24.083
-END_DATA
diff --git a/data/ti1/display-short.ti1 b/data/ti1/display-short.ti1
deleted file mode 100644
index 3ea0010..0000000
--- a/data/ti1/display-short.ti1
+++ /dev/null
@@ -1,141 +0,0 @@
-CTI1
-
-DESCRIPTOR "Argyll Calibration Target chart information 1"
-ORIGINATOR "Argyll targen"
-CREATED "Fri Jan 27 22:19:00 2012"
-KEYWORD "APPROX_WHITE_POINT"
-APPROX_WHITE_POINT "95.106486 100.000000 108.844025"
-KEYWORD "COLOR_REP"
-COLOR_REP "RGB"
-KEYWORD "WHITE_COLOR_PATCHES"
-WHITE_COLOR_PATCHES "4"
-KEYWORD "SINGLE_DIM_STEPS"
-SINGLE_DIM_STEPS "5"
-KEYWORD "COMP_GREY_STEPS"
-COMP_GREY_STEPS "17"
-KEYWORD "ERROR_OPTIMISED_PATCHES"
-ERROR_OPTIMISED_PATCHES "32"
-
-NUMBER_OF_FIELDS 7
-BEGIN_DATA_FORMAT
-SAMPLE_ID RGB_R RGB_G RGB_B XYZ_X XYZ_Y XYZ_Z
-END_DATA_FORMAT
-
-NUMBER_OF_SETS 64
-BEGIN_DATA
-1 100.00 100.00 100.00 95.106 100.00 108.84
-2 100.00 100.00 100.00 95.106 100.00 108.84
-3 100.00 100.00 100.00 95.106 100.00 108.84
-4 100.00 100.00 100.00 95.106 100.00 108.84
-5 0.0000 0.0000 0.0000 1.0000 1.0000 1.0000
-6 25.000 0.0000 0.0000 3.0773 2.0711 1.0973
-7 50.000 0.0000 0.0000 9.7393 5.5060 1.4095
-8 75.000 0.0000 0.0000 22.335 12.000 1.9997
-9 100.00 0.0000 0.0000 41.830 22.052 2.9132
-10 0.0000 25.000 0.0000 2.8013 4.6021 1.6004
-11 0.0000 50.000 0.0000 8.5782 16.154 3.5261
-12 0.0000 75.000 0.0000 19.500 37.995 7.1667
-13 0.0000 100.00 0.0000 36.405 71.801 12.802
-14 0.0000 0.0000 25.000 1.9092 1.3636 5.7889
-15 0.0000 0.0000 50.000 4.8252 2.5298 21.147
-16 0.0000 0.0000 75.000 10.338 4.7346 50.184
-17 0.0000 0.0000 100.00 18.871 8.1473 95.129
-18 6.2500 6.2500 6.2500 1.4852 1.5104 1.5560
-19 12.500 12.500 12.500 2.3504 2.4206 2.5475
-20 18.750 18.750 18.750 3.7614 3.9049 4.1645
-21 25.000 25.000 25.000 5.7878 6.0367 6.4867
-22 31.250 31.250 31.250 8.4891 8.8786 9.5824
-23 37.500 37.500 37.500 11.918 12.486 13.512
-24 43.750 43.750 43.750 16.121 16.908 18.329
-25 50.000 50.000 50.000 21.143 22.190 24.083
-26 56.250 56.250 56.250 27.022 28.375 30.821
-27 62.500 62.500 62.500 33.797 35.503 38.585
-28 68.750 68.750 68.750 41.503 43.609 47.415
-29 75.000 75.000 75.000 50.173 52.730 57.351
-30 81.250 81.250 81.250 59.838 62.898 68.427
-31 87.500 87.500 87.500 70.530 74.146 80.680
-32 93.750 93.750 93.750 82.277 86.503 94.142
-33 100.00 0.0000 100.00 59.701 29.199 97.042
-34 100.00 100.00 0.0000 77.235 92.853 14.715
-35 0.0000 100.00 100.00 54.276 78.948 106.93
-36 54.227 0.0000 100.00 29.294 13.521 95.617
-37 0.0000 67.814 100.00 33.652 37.706 100.06
-38 0.0000 100.00 34.283 38.126 72.489 21.863
-39 0.0000 34.855 100.00 22.398 15.201 96.305
-40 100.00 0.0000 53.821 46.318 23.847 26.551
-41 100.00 55.006 0.0000 51.154 40.697 6.0211
-42 56.429 100.00 0.0000 47.774 77.662 13.335
-43 100.00 42.757 100.00 65.119 40.033 98.848
-44 100.00 100.00 56.832 82.290 94.874 41.336
-45 42.451 100.00 100.00 60.429 82.120 107.22
-46 0.0000 100.00 67.815 43.866 74.784 52.100
-47 58.183 100.00 44.674 51.565 79.270 29.186
-48 42.409 33.398 100.00 28.240 17.771 96.493
-49 0.0000 63.335 42.399 16.392 27.482 19.383
-50 54.780 0.0000 52.865 15.972 8.2206 24.234
-51 100.00 46.703 55.499 53.171 37.054 30.369
-52 55.807 54.103 0.0000 21.090 24.705 4.5177
-53 0.0000 36.169 56.382 9.7761 10.604 28.432
-54 45.803 70.663 100.00 42.305 44.269 100.87
-55 99.231 23.678 26.672 43.773 25.338 8.8633
-56 27.345 72.335 11.447 20.767 36.491 7.9731
-57 27.483 78.209 75.536 33.314 46.720 57.864
-58 94.030 74.092 26.520 55.528 55.716 14.047
-59 25.852 29.218 73.777 14.679 10.660 49.333
-60 64.983 25.469 23.618 19.191 13.058 6.6339
-61 84.070 24.167 72.320 38.860 22.026 48.199
-62 66.623 77.218 13.019 37.411 49.049 9.7966
-63 29.388 82.697 43.101 29.682 49.650 23.463
-64 27.732 0.39212 49.211 7.2589 3.8155 20.590
-END_DATA
-CTI1
-
-DESCRIPTOR "Argyll Calibration Target chart information 1"
-ORIGINATOR "Argyll targen"
-KEYWORD "DENSITY_EXTREME_VALUES"
-DENSITY_EXTREME_VALUES "8"
-CREATED "January 27, 2012"
-
-KEYWORD "INDEX"
-NUMBER_OF_FIELDS 7
-BEGIN_DATA_FORMAT
-INDEX RGB_R RGB_G RGB_B XYZ_X XYZ_Y XYZ_Z
-END_DATA_FORMAT
-
-NUMBER_OF_SETS 8
-BEGIN_DATA
-0 100.00 100.00 100.00 95.106 100.00 108.84
-1 0.0000 47.361 100.00 25.613 21.629 97.376
-2 100.00 0.0000 79.351 52.426 26.290 58.722
-3 0.0000 0.0000 58.997 6.4858 3.1940 29.894
-4 100.00 66.659 0.0000 56.059 50.505 7.6561
-5 0.0000 35.601 0.0000 4.6856 8.3702 2.2286
-6 84.444 0.0000 0.0000 28.843 15.356 2.3047
-7 0.0000 0.0000 0.0000 1.0000 1.0000 1.0000
-END_DATA
-CTI1
-
-DESCRIPTOR "Argyll Calibration Target chart information 1"
-ORIGINATOR "Argyll targen"
-KEYWORD "DEVICE_COMBINATION_VALUES"
-DEVICE_COMBINATION_VALUES "9"
-CREATED "January 27, 2012"
-
-KEYWORD "INDEX"
-NUMBER_OF_FIELDS 7
-BEGIN_DATA_FORMAT
-INDEX RGB_R RGB_G RGB_B XYZ_X XYZ_Y XYZ_Z
-END_DATA_FORMAT
-
-NUMBER_OF_SETS 9
-BEGIN_DATA
-0 100.00 100.00 100.00 95.106 100.00 108.84
-1 0.0000 100.00 100.00 54.276 78.948 106.93
-2 100.00 0.0000 100.00 59.701 29.199 97.042
-3 0.0000 0.0000 100.00 18.871 8.1473 95.129
-4 100.00 100.00 0.0000 77.235 92.853 14.715
-5 0.0000 100.00 0.0000 36.405 71.801 12.802
-6 100.00 0.0000 0.0000 41.830 22.052 2.9132
-7 0.0000 0.0000 0.0000 1.0000 1.0000 1.0000
-8 50.000 50.000 50.000 21.143 22.190 24.083
-END_DATA
diff --git a/data/ti1/meson.build b/data/ti1/meson.build
deleted file mode 100644
index c16ceed..0000000
--- a/data/ti1/meson.build
+++ /dev/null
@@ -1,10 +0,0 @@
-install_data([
- 'display-long.ti1',
- 'display-normal.ti1',
- 'display-short.ti1',
- 'printer-long.ti1',
- 'printer-normal.ti1',
- 'printer-short.ti1',
- ],
- install_dir : join_paths(prefixed_datadir, 'gnome-color-manager/ti1')
-)
diff --git a/data/ti1/printer-long.ti1 b/data/ti1/printer-long.ti1
deleted file mode 100644
index 096cf56..0000000
--- a/data/ti1/printer-long.ti1
+++ /dev/null
@@ -1,661 +0,0 @@
-CTI1
-
-DESCRIPTOR "Argyll Calibration Target chart information 1"
-ORIGINATOR "Argyll targen"
-CREATED "Sat Mar 17 18:18:00 2012"
-KEYWORD "APPROX_WHITE_POINT"
-APPROX_WHITE_POINT "95.106486 100.000000 108.844025"
-KEYWORD "COLOR_REP"
-COLOR_REP "iRGB"
-KEYWORD "WHITE_COLOR_PATCHES"
-WHITE_COLOR_PATCHES "4"
-KEYWORD "ERROR_OPTIMISED_PATCHES"
-ERROR_OPTIMISED_PATCHES "584"
-
-NUMBER_OF_FIELDS 7
-BEGIN_DATA_FORMAT
-SAMPLE_ID RGB_R RGB_G RGB_B XYZ_X XYZ_Y XYZ_Z
-END_DATA_FORMAT
-
-NUMBER_OF_SETS 588
-BEGIN_DATA
-1 100.00 100.00 100.00 95.106 100.00 108.84
-2 100.00 100.00 100.00 95.106 100.00 108.84
-3 100.00 100.00 100.00 95.106 100.00 108.84
-4 100.00 100.00 100.00 95.106 100.00 108.84
-5 0.0000 0.0000 0.0000 1.0000 1.0000 1.0000
-6 0.0000 100.00 0.0000 36.405 71.801 12.802
-7 0.0000 0.0000 100.00 18.871 8.1473 95.129
-8 100.00 0.0000 0.0000 41.830 22.052 2.9132
-9 0.0000 100.00 100.00 54.276 78.948 106.93
-10 100.00 100.00 0.0000 77.235 92.853 14.715
-11 100.00 0.0000 100.00 59.701 29.199 97.042
-12 0.0000 36.016 100.00 22.647 15.697 96.387
-13 0.0000 32.452 0.0000 4.0438 7.0868 2.0146
-14 0.0000 0.0000 28.660 2.1934 1.4773 7.2856
-15 100.00 0.0000 36.165 43.752 22.821 13.038
-16 100.00 52.557 100.00 68.144 46.083 99.857
-17 100.00 50.383 0.0000 49.534 37.458 5.4813
-18 65.177 0.0000 0.0000 16.611 9.0493 1.7315
-19 100.00 100.00 51.434 81.302 94.479 36.134
-20 0.0000 100.00 33.331 38.028 72.450 21.351
-21 49.693 100.00 100.00 62.900 83.394 107.33
-22 68.009 100.00 0.0000 53.560 80.646 13.606
-23 66.998 0.0000 100.00 35.465 16.703 95.907
-24 0.0000 83.723 0.0000 24.681 48.356 8.8939
-25 0.0000 69.233 51.392 20.536 33.573 27.540
-26 48.596 57.271 0.0000 19.401 25.601 4.7795
-27 70.377 0.0000 70.841 27.733 13.833 45.172
-28 0.0000 0.0000 57.077 6.1021 3.0405 27.873
-29 100.00 30.555 71.509 52.917 30.792 48.030
-30 30.551 100.00 66.212 46.584 76.230 50.216
-31 23.815 35.985 100.00 24.529 16.658 96.474
-32 34.550 100.00 0.0000 40.399 73.860 12.989
-33 31.166 0.0000 0.0000 4.2315 2.6661 1.1514
-34 0.0000 100.00 50.086 40.245 73.336 33.025
-35 33.268 0.0000 100.00 22.565 10.052 95.302
-36 100.00 0.0000 58.733 47.262 24.225 31.525
-37 0.0000 53.884 100.00 27.785 25.973 98.100
-38 42.889 0.0000 55.925 12.168 6.1941 26.996
-39 100.00 52.181 60.811 56.006 41.020 36.567
-40 61.504 60.888 100.00 44.254 38.523 99.655
-41 0.0000 49.589 0.0000 8.4443 15.886 3.4814
-42 100.00 100.00 84.761 89.525 97.768 79.448
-43 0.0000 32.177 41.833 6.6017 8.0254 15.747
-44 84.265 100.00 100.00 81.986 93.235 108.23
-45 51.235 100.00 47.537 49.049 77.923 31.302
-46 100.00 35.892 100.00 63.450 36.695 98.292
-47 100.00 81.683 0.0000 64.233 66.851 10.381
-48 37.937 36.471 27.493 10.827 11.692 8.3019
-49 69.254 31.766 0.0000 21.774 16.035 2.8081
-50 100.00 69.051 100.00 75.088 59.969 102.17
-51 100.00 34.131 0.0000 45.207 28.806 4.0390
-52 0.0000 42.195 54.851 10.945 13.404 27.392
-53 0.0000 100.00 67.411 43.768 74.745 51.583
-54 17.734 83.154 100.00 43.273 55.339 102.95
-55 64.687 0.0000 22.604 17.100 9.2149 5.6545
-56 100.00 100.00 16.671 77.658 93.022 16.942
-57 100.00 64.218 31.375 56.365 48.823 14.833
-58 0.0000 18.013 100.00 19.836 10.077 95.451
-59 47.777 30.639 0.0000 11.629 10.497 2.2734
-60 48.387 100.00 66.547 51.702 78.860 50.870
-61 100.00 37.242 42.871 48.629 31.248 18.748
-62 50.673 56.282 43.075 22.576 26.352 19.321
-63 62.713 30.541 100.00 35.897 20.917 96.697
-64 38.208 100.00 31.646 42.791 74.924 20.719
-65 0.0000 84.207 100.00 42.862 56.122 103.13
-66 100.00 71.034 81.704 69.532 59.347 67.970
-67 32.536 54.199 100.00 31.428 28.020 98.304
-68 0.0000 0.0000 86.047 13.714 6.0849 67.967
-69 0.0000 64.328 17.870 14.630 27.489 7.9110
-70 0.0000 30.469 63.636 10.157 8.9434 36.028
-71 14.818 0.0000 70.407 9.8935 4.6475 43.753
-72 88.909 0.0000 48.710 35.891 18.572 21.507
-73 84.155 65.722 0.0000 42.417 42.820 6.8910
-74 0.0000 81.787 67.448 30.838 48.875 47.317
-75 21.583 0.0000 30.021 3.8725 2.3295 7.9767
-76 83.041 100.00 62.381 69.419 88.105 46.725
-77 100.00 0.0000 80.719 52.840 26.456 60.904
-78 28.721 53.231 0.0000 12.419 19.771 4.0219
-79 0.0000 100.00 17.446 36.864 71.984 15.221
-80 84.091 100.00 45.529 67.113 87.272 30.564
-81 16.491 100.00 100.00 55.224 79.436 106.98
-82 42.579 18.766 55.315 12.997 8.1790 26.730
-83 79.356 0.0000 11.563 25.437 13.573 3.3226
-84 65.474 74.029 100.00 52.609 52.211 101.86
-85 16.380 0.0000 100.00 19.807 8.6300 95.173
-86 100.00 18.143 33.299 44.428 24.655 11.772
-87 0.0000 67.713 80.836 26.778 34.878 64.091
-88 20.344 41.385 69.796 15.405 15.010 44.646
-89 48.151 48.180 79.996 26.842 23.458 60.541
-90 46.467 58.843 54.629 23.905 28.311 29.371
-91 100.00 0.0000 17.699 42.302 22.241 5.3967
-92 16.920 100.00 0.0000 37.398 72.312 12.848
-93 0.0000 82.423 17.467 24.322 46.900 11.045
-94 79.482 27.195 37.860 29.541 18.630 13.989
-95 43.084 67.847 100.00 40.018 41.012 100.36
-96 31.797 16.211 0.0000 5.1634 4.3290 1.4233
-97 60.937 100.00 29.469 51.125 79.244 20.081
-98 100.00 17.223 100.00 60.590 30.977 97.338
-99 100.00 66.747 65.038 62.901 53.308 43.490
-100 60.036 100.00 83.002 61.151 83.204 75.157
-101 81.011 0.0000 23.616 27.173 14.401 6.4723
-102 100.00 35.545 22.461 46.242 29.693 8.0250
-103 41.869 0.0000 86.741 19.922 9.2589 69.473
-104 45.240 84.647 22.313 33.050 53.467 13.260
-105 14.769 41.335 0.0000 6.8214 11.485 2.7173
-106 75.182 0.0000 55.915 27.328 14.011 27.696
-107 61.052 46.189 0.0000 20.902 20.743 3.7628
-108 84.418 100.00 0.0000 64.228 86.146 14.106
-109 70.632 24.432 46.338 24.630 15.364 19.551
-110 47.058 0.0000 0.0000 8.6684 4.9539 1.3593
-111 76.099 89.064 7.6509 50.388 66.859 11.744
-112 34.492 69.736 0.0000 20.709 34.505 6.4294
-113 30.613 73.369 46.427 24.990 39.132 24.191
-114 15.089 100.00 57.772 42.453 74.313 40.434
-115 0.0000 18.818 82.199 13.515 7.6785 61.758
-116 67.342 100.00 100.00 71.060 87.602 107.72
-117 75.109 69.496 77.013 47.920 47.211 59.393
-118 32.879 17.162 100.00 23.360 11.772 95.592
-119 0.0000 18.855 14.278 2.3713 3.2278 3.0434
-120 85.965 24.121 0.0000 31.665 19.303 2.9180
-121 68.008 53.613 17.305 27.423 27.656 7.1261
-122 42.388 80.374 68.803 36.442 50.445 49.070
-123 0.0000 100.00 83.823 48.391 76.594 75.930
-124 0.0000 0.0000 14.243 1.3202 1.1280 2.6863
-125 100.00 85.950 100.00 84.826 79.442 105.42
-126 100.00 100.00 68.786 84.936 95.932 55.275
-127 84.201 0.0000 100.00 46.534 22.410 96.425
-128 100.00 57.005 81.338 63.111 46.689 65.268
-129 64.431 66.374 54.652 34.953 38.887 30.853
-130 81.326 64.611 100.00 57.732 47.890 100.75
-131 41.628 34.142 100.00 28.153 17.949 96.532
-132 0.0000 46.614 29.271 8.7609 14.527 9.7311
-133 0.0000 69.061 100.00 34.263 38.927 100.26
-134 15.556 0.0000 0.0000 1.8536 1.4401 1.0400
-135 68.452 81.137 0.0000 40.472 54.103 9.1714
-136 100.00 25.189 51.697 47.770 27.352 25.180
-137 18.751 100.00 80.236 48.466 76.763 70.073
-138 0.0000 34.703 84.236 16.614 12.836 65.997
-139 73.317 14.384 0.0000 21.925 12.747 2.1653
-140 81.978 46.256 0.0000 33.454 27.245 4.3567
-141 42.941 0.0000 27.301 8.3875 4.6838 6.9975
-142 51.994 100.00 0.0000 45.917 76.705 13.248
-143 61.499 40.713 54.182 24.169 19.667 27.256
-144 31.013 79.314 62.061 31.301 47.035 40.438
-145 100.00 16.452 0.0000 42.648 23.688 3.1859
-146 0.0000 66.712 0.0000 15.254 29.503 5.7512
-147 84.158 86.033 59.204 59.338 67.809 39.806
-148 0.0000 0.0000 71.581 9.4143 4.3652 45.319
-149 76.802 67.715 25.910 39.208 42.453 12.104
-150 34.163 0.0000 42.229 7.5654 4.0771 15.210
-151 68.323 23.849 89.133 33.741 18.727 74.873
-152 100.00 82.574 25.719 65.748 68.343 15.630
-153 49.680 0.0000 100.00 27.490 12.591 95.533
-154 87.729 48.656 62.423 44.702 33.419 37.520
-155 83.949 0.0000 0.0000 28.476 15.167 2.2875
-156 80.341 100.00 81.648 72.593 89.153 73.471
-157 22.958 42.765 52.489 12.428 14.444 25.273
-158 100.00 69.010 15.744 57.579 52.934 10.046
-159 20.144 11.685 46.670 6.1220 3.9342 18.583
-160 20.768 60.284 16.726 14.273 24.707 7.1073
-161 15.112 49.085 100.00 26.964 23.127 97.594
-162 40.904 24.674 81.335 19.643 11.922 60.843
-163 68.109 78.215 71.311 46.878 53.852 52.528
-164 70.062 0.0000 40.139 21.720 11.406 14.457
-165 0.0000 0.0000 42.726 3.7303 2.0919 15.381
-166 53.838 72.357 0.0000 28.336 40.437 7.1727
-167 84.363 100.00 24.754 65.080 86.482 18.801
-168 74.506 27.810 63.400 30.675 18.860 36.584
-169 51.163 65.472 14.125 24.174 33.205 7.6502
-170 18.568 11.080 32.663 4.1507 3.0635 9.3949
-171 51.909 15.745 33.825 12.908 8.0686 10.509
-172 66.736 72.267 33.872 36.157 44.205 16.285
-173 20.100 66.745 100.00 34.505 37.386 99.949
-174 34.576 54.675 76.824 24.056 25.404 56.156
-175 50.688 24.392 24.318 12.579 9.4179 6.5298
-176 16.070 21.433 100.00 21.112 11.286 95.617
-177 100.00 82.879 56.917 70.048 70.368 37.337
-178 37.569 100.00 83.683 53.101 79.028 75.917
-179 84.902 27.195 80.787 42.343 24.199 61.132
-180 12.195 50.822 40.217 11.814 17.949 16.293
-181 32.335 100.00 49.172 43.579 75.073 32.399
-182 15.474 80.926 0.0000 23.784 45.307 8.3526
-183 72.234 55.511 46.795 33.445 31.461 22.557
-184 43.328 68.690 47.385 26.042 36.089 24.315
-185 100.00 84.259 86.367 78.675 75.221 78.451
-186 0.0000 15.752 0.0000 1.7569 2.5135 1.2523
-187 100.00 29.411 86.366 57.142 32.161 71.272
-188 52.087 0.0000 74.667 19.795 9.6211 50.145
-189 21.845 72.723 30.595 21.230 36.902 14.006
-190 21.175 19.811 22.706 4.4110 4.3803 5.4239
-191 0.0000 81.221 34.016 24.811 45.908 17.289
-192 46.469 59.812 78.253 29.934 31.353 59.173
-193 100.00 42.645 80.490 58.158 37.201 62.331
-194 37.690 44.698 48.215 15.279 16.792 21.837
-195 22.162 100.00 17.517 38.511 72.833 15.316
-196 100.00 100.00 34.880 79.018 93.566 24.106
-197 53.024 16.297 0.0000 11.730 7.7263 1.7332
-198 0.0000 83.381 83.775 36.434 52.708 71.869
-199 66.748 29.480 73.503 28.887 18.060 49.623
-200 0.0000 61.043 64.170 19.316 27.065 39.676
-201 60.281 78.575 59.159 40.193 51.044 37.529
-202 15.865 19.725 0.0000 3.0261 3.7396 1.4221
-203 84.563 48.533 100.00 53.908 36.759 98.807
-204 6.3439 31.184 32.690 5.5797 7.3446 10.160
-205 0.0000 15.611 62.588 7.9925 4.9882 34.155
-206 77.768 15.225 100.00 42.721 21.502 96.451
-207 32.736 19.442 71.134 13.983 8.3838 45.242
-208 66.293 46.650 78.032 33.940 26.490 57.683
-209 41.714 28.393 68.205 16.806 11.719 41.854
-210 83.865 41.226 15.145 33.785 25.305 5.8331
-211 68.509 46.600 100.00 42.819 30.158 98.116
-212 21.899 92.529 63.040 38.637 63.725 44.404
-213 100.00 14.418 84.503 54.684 28.229 67.417
-214 92.614 73.220 48.118 56.357 55.156 26.998
-215 17.063 71.069 91.262 32.935 40.134 83.006
-216 0.0000 43.857 14.117 7.0339 12.562 4.5668
-217 35.610 81.957 100.00 45.696 55.478 102.85
-218 26.973 59.600 68.629 22.190 27.533 45.172
-219 100.00 51.466 39.252 52.180 39.098 17.622
-220 68.642 61.753 0.0000 30.528 34.058 5.8260
-221 100.00 64.990 0.0000 55.282 48.952 7.3971
-222 52.871 84.494 100.00 52.911 61.577 103.65
-223 44.128 41.929 68.526 20.516 17.892 43.266
-224 10.563 26.576 89.167 17.258 10.806 74.275
-225 51.408 0.0000 14.904 10.627 5.9238 3.2597
-226 32.496 55.809 25.508 15.089 22.437 9.3555
-227 44.902 91.051 32.888 38.135 62.441 19.183
-228 31.612 0.0000 15.761 4.7090 2.8682 3.1701
-229 17.824 100.00 34.686 39.259 73.068 22.136
-230 59.183 22.898 8.4366 15.277 10.597 2.8282
-231 69.608 100.00 16.231 54.873 81.276 15.771
-232 32.189 100.00 100.00 57.728 80.728 107.09
-233 53.797 0.0000 38.362 13.418 7.1513 12.933
-234 100.00 84.458 71.896 74.480 73.748 55.720
-235 91.893 59.838 15.294 46.275 40.941 8.2261
-236 0.0000 16.521 29.608 3.0987 3.1580 7.9874
-237 92.989 58.247 91.374 60.749 45.805 82.848
-238 83.319 0.0000 83.936 40.036 19.736 65.586
-239 63.463 24.621 56.548 22.465 14.084 28.603
-240 66.752 68.144 88.236 45.857 44.747 77.626
-241 47.136 31.979 34.011 13.342 11.551 11.258
-242 75.759 27.967 8.9114 25.222 16.812 3.5649
-243 40.233 43.570 0.0000 12.131 15.109 3.1371
-244 49.823 47.254 34.017 18.075 19.566 12.560
-245 69.055 100.00 42.678 56.876 82.040 27.980
-246 71.221 87.263 100.00 63.880 69.941 104.69
-247 100.00 19.551 16.614 43.374 24.466 5.5012
-248 27.771 31.724 0.0000 6.4650 8.1302 2.0885
-249 20.701 91.359 45.585 34.418 60.670 27.194
-250 0.0000 51.244 44.414 11.958 18.168 19.283
-251 84.350 84.539 0.0000 52.977 63.721 10.370
-252 22.605 21.390 40.130 6.4293 5.4987 14.117
-253 32.517 78.623 75.958 34.693 47.776 58.620
-254 34.482 39.425 91.650 24.203 18.039 79.936
-255 100.00 88.761 10.500 69.042 76.159 12.938
-256 15.287 0.0000 43.126 4.6127 2.5406 15.708
-257 59.456 13.650 22.661 15.089 9.0523 5.7483
-258 12.512 63.750 65.892 21.477 29.879 42.194
-259 44.197 33.410 56.349 15.897 12.903 28.520
-260 55.908 93.768 14.891 43.078 68.057 13.541
-261 89.299 10.653 60.394 38.754 20.380 33.030
-262 90.103 91.695 90.960 76.728 81.538 88.123
-263 0.0000 84.482 49.999 28.993 50.858 29.203
-264 61.559 7.2710 46.432 18.246 9.8456 18.896
-265 9.4946 93.287 89.452 45.494 67.211 84.198
-266 46.313 100.00 15.896 44.204 75.776 15.194
-267 34.056 55.779 51.455 18.559 23.848 25.824
-268 63.657 58.772 80.595 37.567 34.580 63.078
-269 73.869 46.684 38.232 30.318 25.568 15.517
-270 82.201 61.210 84.327 51.139 42.936 70.144
-271 20.369 24.153 11.395 4.3030 5.1762 2.7870
-272 48.502 41.830 22.183 15.076 15.849 6.9025
-273 81.117 83.409 45.079 52.977 62.295 26.142
-274 83.424 31.085 100.00 48.750 27.689 97.328
-275 83.131 16.507 50.902 32.676 18.094 23.476
-276 54.300 16.385 100.00 30.136 15.161 95.889
-277 100.00 10.622 49.198 45.914 24.309 22.499
-278 37.334 70.201 35.460 23.501 36.079 16.259
-279 64.189 0.0000 85.429 28.602 13.785 67.594
-280 0.0000 64.615 35.363 16.115 28.290 15.090
-281 0.0000 47.755 70.835 16.083 18.012 46.584
-282 48.118 96.221 56.661 46.503 72.022 38.636
-283 20.404 0.0000 84.968 14.761 6.6660 66.155
-284 50.234 90.368 75.911 47.559 65.654 61.324
-285 79.782 54.390 55.552 39.410 33.750 30.509
-286 91.240 91.868 73.604 72.320 80.081 59.451
-287 56.137 69.238 45.464 30.838 38.997 23.106
-288 27.711 90.067 27.764 32.594 58.605 16.326
-289 27.361 78.381 16.983 24.341 43.290 10.227
-290 74.877 47.418 24.642 29.900 25.831 8.9043
-291 16.100 62.836 0.0000 14.394 26.437 5.2046
-292 22.073 0.0000 57.231 7.7626 3.8932 28.108
-293 100.00 64.264 49.196 58.645 49.768 26.741
-294 83.487 41.461 53.595 37.659 26.919 27.386
-295 7.3871 23.706 72.271 11.482 7.8196 46.830
-296 12.530 81.831 56.554 29.082 48.284 34.862
-297 77.002 56.930 32.762 35.248 33.394 13.663
-298 55.617 8.0785 6.4665 12.369 7.2341 2.1092
-299 29.841 38.505 38.271 10.464 12.073 13.982
-300 53.041 16.258 74.543 20.945 11.407 50.250
-301 90.120 16.017 75.560 43.522 22.983 52.780
-302 15.802 24.908 60.111 9.3820 7.3146 31.744
-303 10.291 46.770 78.269 18.264 18.453 57.322
-304 71.540 78.499 18.373 41.194 52.074 11.389
-305 74.118 10.563 27.322 23.249 12.920 7.8135
-306 66.083 100.00 64.166 59.102 82.740 48.324
-307 10.500 41.344 32.939 8.0704 11.949 11.046
-308 49.795 48.552 100.00 34.645 26.836 97.906
-309 89.239 28.035 23.378 35.598 22.103 7.4322
-310 87.605 0.0000 34.027 32.943 17.274 11.339
-311 96.672 10.531 13.514 39.484 21.380 4.4404
-312 7.7967 10.405 16.057 2.0561 2.0590 3.2214
-313 0.0000 31.536 22.233 4.5942 7.0297 5.7684
-314 61.058 47.042 42.293 23.833 22.325 17.921
-315 56.309 18.900 45.896 16.552 10.215 18.637
-316 68.447 64.938 14.979 32.178 36.963 8.1322
-317 22.097 88.047 82.716 40.796 59.547 71.187
-318 85.241 82.702 100.00 70.346 68.876 104.14
-319 85.883 43.515 41.578 38.125 28.191 17.804
-320 71.240 35.894 17.927 24.253 18.497 5.6833
-321 74.904 93.929 71.933 61.491 76.783 57.040
-322 23.153 59.727 33.211 15.565 24.895 13.292
-323 34.345 0.0000 71.518 13.343 6.3928 45.417
-324 28.199 28.168 33.048 7.5174 7.5648 10.286
-325 2.5426 72.677 10.104 18.507 35.599 7.7107
-326 100.00 14.342 66.914 49.715 26.233 41.277
-327 52.000 75.507 72.675 37.999 46.943 53.549
-328 37.497 25.554 7.1970 7.7279 7.2473 2.4334
-329 100.00 81.555 41.283 66.693 67.709 23.725
-330 47.527 46.003 56.474 20.152 19.699 29.734
-331 12.353 22.293 47.823 6.4904 5.5677 19.810
-332 88.845 49.857 82.624 51.359 36.800 66.089
-333 58.410 90.050 52.443 45.416 64.837 33.221
-334 29.188 92.116 14.893 33.559 61.356 12.750
-335 73.971 39.987 84.226 38.503 25.912 67.351
-336 29.381 82.560 38.835 29.045 49.259 20.535
-337 68.150 52.301 57.709 31.815 28.682 32.121
-338 58.703 38.049 80.311 28.517 20.213 60.327
-339 77.863 80.330 31.889 47.261 56.704 17.087
-340 0.0000 18.764 47.135 5.4086 4.4274 19.088
-341 59.060 0.0000 56.621 18.576 9.4824 27.994
-342 46.068 58.508 66.369 26.110 28.962 42.365
-343 30.776 71.055 94.482 36.257 41.699 89.357
-344 74.234 19.838 78.286 33.284 18.170 56.504
-345 62.715 57.875 28.494 26.938 29.702 11.358
-346 77.209 74.565 56.751 47.066 51.270 34.691
-347 34.447 38.018 76.541 18.970 15.409 54.069
-348 24.714 62.752 45.428 18.592 28.186 21.636
-349 40.315 85.971 83.183 43.435 58.826 71.688
-350 88.349 74.293 22.653 50.696 53.418 12.434
-351 68.182 80.942 85.589 52.762 58.809 75.290
-352 9.1671 93.968 24.736 32.988 63.012 15.954
-353 25.790 7.4931 76.372 13.166 6.4928 52.401
-354 83.276 80.297 88.528 63.097 63.442 80.856
-355 57.567 33.764 5.7562 16.262 13.761 3.0951
-356 29.299 32.227 18.310 7.3531 8.6711 4.7770
-357 94.030 48.961 50.351 47.629 35.341 25.532
-358 78.833 66.870 45.484 42.303 43.200 23.328
-359 64.571 12.888 93.680 32.236 16.117 83.054
-360 58.978 35.808 64.828 24.007 17.618 38.396
-361 0.0000 52.316 85.350 21.843 22.709 69.537
-362 11.303 67.574 39.383 18.460 31.501 18.015
-363 30.721 85.258 0.0000 28.809 51.954 9.3709
-364 7.5737 73.423 64.477 25.586 39.087 42.034
-365 37.821 7.1083 34.236 7.7539 4.6048 10.334
-366 44.276 86.497 45.383 36.323 56.679 26.168
-367 16.508 38.142 13.905 6.5126 10.124 4.0810
-368 25.693 47.140 79.436 20.488 19.725 59.269
-369 27.457 9.2071 21.525 4.4948 3.1876 4.8037
-370 33.133 12.961 45.366 8.3061 5.2094 17.695
-371 52.062 9.3277 62.300 17.042 9.0297 34.127
-372 26.322 56.313 90.000 27.186 27.439 78.497
-373 90.698 8.8071 91.272 48.536 24.264 79.140
-374 68.752 44.168 66.016 31.409 24.482 40.783
-375 16.770 87.664 9.9285 28.423 54.107 10.735
-376 43.563 56.339 19.532 17.891 24.224 7.5600
-377 54.915 80.267 14.320 33.575 49.725 10.384
-378 57.412 91.198 65.860 48.525 67.327 47.959
-379 14.961 12.265 64.222 8.9027 5.0404 36.035
-380 63.117 87.771 40.917 44.374 62.170 23.582
-381 100.00 50.541 16.932 50.022 37.737 7.7896
-382 23.587 31.349 82.121 17.134 12.204 62.313
-383 86.161 30.586 49.409 36.560 22.906 22.900
-384 72.893 66.344 63.752 41.606 42.080 40.905
-385 89.167 0.0000 68.911 40.213 20.324 43.198
-386 15.079 0.0000 16.576 2.2265 1.5840 3.2424
-387 12.321 21.239 32.349 4.4119 4.5319 9.5046
-388 100.00 37.889 60.133 51.748 32.734 34.443
-389 27.449 87.318 93.550 44.897 60.497 90.700
-390 50.498 86.069 0.0000 35.132 56.003 9.8196
-391 15.818 15.967 84.958 15.009 7.9449 66.370
-392 22.347 71.383 55.820 24.097 36.935 32.196
-393 90.143 12.201 41.069 36.265 19.616 15.899
-394 54.159 68.493 82.962 38.216 41.262 68.202
-395 23.468 44.706 26.135 9.7859 14.257 8.2997
-396 87.377 6.7792 13.593 31.570 17.029 4.0328
-397 63.532 58.319 68.622 34.009 32.860 45.569
-398 23.144 48.142 9.9805 9.9487 15.957 4.3521
-399 13.100 36.703 43.829 8.4438 10.333 17.522
-400 53.341 79.625 39.727 34.551 49.424 20.850
-401 66.298 20.811 34.406 20.209 12.579 11.310
-402 76.802 51.520 74.144 40.686 32.410 52.688
-403 95.356 40.872 11.048 42.782 29.826 5.4623
-404 45.462 24.792 94.189 25.492 14.454 84.087
-405 80.300 87.801 19.227 52.775 66.757 13.847
-406 75.131 92.724 89.752 66.228 77.278 85.602
-407 36.225 59.454 9.2357 16.619 25.440 5.7268
-408 88.307 60.670 28.037 44.499 40.448 12.310
-409 47.819 8.7414 47.379 12.633 7.0339 19.407
-410 64.635 13.498 62.601 23.154 12.558 34.833
-411 53.660 31.177 48.297 17.540 13.279 21.108
-412 16.233 10.119 7.3166 2.3960 2.2431 1.7615
-413 38.369 58.863 39.184 19.058 26.097 16.813
-414 66.588 23.088 17.766 19.387 12.714 4.7818
-415 56.622 36.513 91.745 31.036 20.553 80.243
-416 52.682 28.640 74.968 22.477 14.499 51.383
-417 32.800 14.707 83.834 17.248 8.9859 64.539
-418 88.073 21.915 92.063 47.822 25.498 80.919
-419 29.181 26.348 91.967 20.603 12.364 79.635
-420 36.402 66.884 59.956 25.471 34.235 35.923
-421 13.484 78.079 44.487 24.885 43.015 23.453
-422 17.541 86.090 71.612 35.699 55.342 53.817
-423 9.4753 35.282 73.473 13.913 11.995 49.198
-424 29.303 65.988 79.934 28.536 34.600 62.504
-425 40.403 82.969 4.0965 29.802 50.281 9.2929
-426 53.138 58.724 90.339 35.923 33.331 79.805
-427 90.042 89.908 33.902 62.680 73.888 20.634
-428 23.445 30.514 49.122 9.1976 8.7843 21.371
-429 15.820 57.769 84.110 24.336 27.037 68.117
-430 77.407 10.661 40.397 26.714 14.560 14.974
-431 45.484 18.509 12.650 9.4047 6.8085 3.0500
-432 42.933 12.886 90.963 22.252 11.084 77.398
-433 30.870 85.830 51.596 33.310 54.356 31.064
-434 78.963 71.981 9.5449 41.987 47.163 8.6263
-435 55.361 53.937 18.099 21.328 24.682 7.0761
-436 87.317 71.882 35.895 49.744 50.886 17.983
-437 68.663 76.887 46.769 41.394 50.471 25.787
-438 8.1029 92.715 43.874 34.007 61.938 26.170
-439 59.016 71.841 23.326 31.142 41.391 11.372
-440 42.444 9.9711 70.956 15.756 8.1780 44.868
-441 11.221 77.644 77.714 31.594 45.275 60.945
-442 36.237 31.039 45.935 11.376 10.105 18.918
-443 33.557 49.341 62.595 18.373 20.164 36.546
-444 64.059 90.306 76.228 53.802 68.799 62.072
-445 45.480 37.148 84.871 24.481 17.658 67.598
-446 81.948 59.396 67.108 45.344 39.391 44.292
-447 71.281 91.905 53.065 53.629 71.015 34.558
-448 52.654 6.2338 86.895 23.957 11.603 69.985
-449 61.013 44.865 29.133 21.730 20.455 10.130
-450 90.404 49.696 23.649 41.772 33.027 9.3104
-451 89.988 76.177 60.790 58.155 58.222 39.751
-452 31.951 9.1431 60.255 10.456 5.6702 31.528
-453 49.022 98.037 86.022 55.925 78.079 79.597
-454 87.155 40.808 29.693 37.088 26.742 10.788
-455 12.151 33.408 99.191 22.334 14.766 94.509
-456 83.167 39.515 76.654 42.293 27.961 55.433
-457 9.6707 8.3110 92.857 16.761 7.7789 80.660
-458 21.379 56.317 55.862 17.217 23.366 29.982
-459 55.902 88.844 30.496 40.567 61.427 17.674
-460 54.156 50.026 67.673 26.406 24.500 43.132
-461 37.687 20.899 23.253 7.8496 6.3308 5.8058
-462 8.8887 83.455 92.956 39.993 54.247 88.598
-463 42.360 90.790 94.829 51.401 67.356 94.199
-464 13.069 37.243 86.024 18.387 14.504 69.307
-465 36.917 46.112 17.415 12.408 16.277 5.7479
-466 89.054 11.884 2.6493 32.895 18.135 2.8197
-467 31.034 36.594 59.774 13.752 12.714 32.188
-468 47.964 8.9945 23.145 10.074 6.0364 5.5947
-469 9.6436 29.635 7.0724 4.0250 6.3013 2.4322
-470 20.263 20.551 74.351 12.778 7.8444 49.714
-471 59.511 57.758 6.8688 24.253 28.373 5.6055
-472 9.5057 92.837 64.008 37.851 63.627 45.565
-473 40.522 90.493 12.866 35.070 60.424 12.087
-474 53.396 22.621 63.491 19.009 11.740 35.930
-475 94.974 50.164 71.830 53.428 38.378 49.909
-476 5.4658 92.370 9.6478 30.916 60.287 11.757
-477 95.825 33.009 32.704 42.773 27.036 12.009
-478 82.544 86.100 79.062 63.184 69.282 66.000
-479 90.867 25.800 11.540 35.996 21.863 4.3627
-480 33.513 92.413 74.574 43.569 65.811 59.605
-481 40.213 68.782 72.861 30.494 37.833 52.448
-482 61.650 42.648 12.462 20.450 18.996 4.7869
-483 6.9774 8.5712 34.115 3.2275 2.3691 10.075
-484 93.414 74.730 92.581 69.331 61.733 87.774
-485 23.569 45.042 91.362 23.463 19.883 79.785
-486 39.386 90.672 63.437 41.039 62.976 44.597
-487 57.005 53.734 53.367 25.890 26.473 27.705
-488 54.786 82.020 83.737 46.228 56.494 72.021
-489 10.243 25.305 17.933 3.7526 5.1013 4.1787
-490 4.8516 30.587 52.707 8.1408 8.1886 24.493
-491 8.5118 54.953 10.541 10.819 19.848 5.1407
-492 24.480 30.690 69.437 13.573 10.603 43.417
-493 11.102 56.972 26.355 12.559 21.784 9.6937
-494 75.918 71.320 93.928 54.959 51.568 89.186
-495 92.258 89.708 19.823 63.261 74.107 14.883
-496 14.407 71.886 12.715 18.838 35.143 8.0343
-497 88.343 64.168 57.700 50.131 45.137 34.324
-498 18.726 32.109 27.438 6.2670 8.0093 7.8085
-499 36.209 80.266 29.027 28.166 46.831 14.835
-500 72.124 37.231 48.994 28.258 20.636 22.547
-501 61.095 68.817 72.443 38.447 41.973 52.242
-502 26.730 98.019 89.281 51.021 75.402 85.175
-503 46.807 79.053 56.208 34.329 48.505 34.279
-504 78.777 58.120 12.261 35.582 34.410 6.9297
-505 74.293 92.975 33.661 53.553 72.441 20.707
-506 42.888 22.196 39.532 11.034 8.0265 13.971
-507 87.889 57.330 40.881 44.163 38.115 18.925
-508 77.439 17.596 16.804 25.272 14.837 4.6416
-509 80.248 39.593 64.567 37.123 25.684 38.948
-510 63.713 9.8242 74.533 25.400 13.028 50.313
-511 24.621 69.899 6.7779 18.928 33.696 6.9039
-512 40.033 61.398 89.766 32.288 33.123 78.892
-513 90.141 39.433 90.868 52.210 32.515 79.779
-514 5.5126 70.847 91.049 31.917 39.448 82.526
-515 72.848 46.737 8.5305 27.685 24.467 4.8637
-516 88.327 24.361 59.453 39.106 22.543 32.402
-517 13.229 82.264 21.119 25.063 47.113 12.072
-518 88.232 31.173 69.768 42.491 25.634 45.233
-519 35.466 94.281 40.257 38.596 66.074 24.199
-520 72.841 34.206 94.578 40.125 24.387 86.001
-521 30.293 14.833 31.606 6.1860 4.5158 9.0361
-522 21.889 72.818 69.122 27.708 39.575 47.849
-523 37.043 47.248 34.126 14.028 17.475 12.428
-524 50.462 59.675 31.101 22.468 28.446 12.551
-525 56.731 74.790 93.716 46.309 49.862 88.897
-526 63.972 61.660 40.434 30.386 33.645 18.489
-527 65.832 87.483 23.831 43.936 61.848 14.824
-528 63.808 90.085 6.3625 43.928 64.586 11.507
-529 59.782 48.263 91.421 35.504 27.524 80.738
-530 93.110 93.185 59.436 71.459 81.448 42.050
-531 10.382 48.820 55.190 13.372 17.512 28.388
-532 2.8920 58.076 53.384 16.000 23.806 27.726
-533 49.151 46.808 8.2256 16.130 18.542 4.2906
-534 93.756 6.9800 26.110 37.470 20.003 7.9410
-535 38.591 8.3551 8.7054 6.4469 4.1940 2.0913
-536 91.148 66.633 72.284 56.902 49.927 52.584
-537 34.987 68.029 22.117 20.701 33.167 9.9274
-538 31.969 39.652 8.1835 9.1551 12.043 3.3984
-539 78.407 10.507 8.6555 25.094 13.975 2.9909
-540 47.991 40.957 43.305 16.754 16.137 17.823
-541 12.283 84.888 33.833 27.673 50.817 17.988
-542 56.514 21.604 85.427 26.272 14.597 67.871
-543 9.7603 59.673 94.650 28.310 29.795 87.809
-544 9.7730 46.301 21.010 8.4665 14.306 6.5799
-545 48.866 71.715 30.440 27.404 39.302 14.070
-546 86.380 16.915 26.845 32.210 18.247 8.1735
-547 71.500 13.343 52.757 25.040 13.739 24.721
-548 93.003 89.436 47.410 66.526 75.182 29.749
-549 87.778 55.773 3.8553 41.047 35.904 5.9079
-550 25.941 8.7685 92.389 18.457 8.7056 79.848
-551 74.207 84.031 63.990 52.273 62.116 44.493
-552 41.144 50.016 91.147 28.823 24.925 80.070
-553 86.054 96.986 11.444 63.302 82.112 14.539
-554 24.209 48.076 41.785 12.517 16.971 17.129
-555 79.108 12.475 68.637 33.212 17.474 42.660
-556 76.313 27.113 24.990 26.203 17.029 7.5296
-557 71.793 35.565 32.936 25.613 18.966 11.475
-558 46.891 32.361 13.594 11.932 11.094 3.9217
-559 86.246 77.037 72.362 58.463 58.784 54.320
-560 74.013 53.358 90.585 44.718 34.839 80.091
-561 61.458 6.9095 32.508 16.462 9.1026 9.8329
-562 8.4797 69.317 26.760 17.879 32.615 11.667
-563 6.7292 92.246 74.909 40.023 63.792 59.888
-564 7.7767 9.0525 74.826 10.877 5.4707 50.045
-565 9.3720 8.0443 53.197 6.0028 3.4544 24.149
-566 17.172 51.441 66.747 17.281 20.522 41.673
-567 86.330 37.073 3.4154 34.322 24.127 3.9569
-568 53.572 66.841 62.893 31.780 37.385 39.509
-569 91.873 24.954 40.664 38.938 22.940 16.126
-570 41.719 72.611 10.846 24.343 38.554 8.0864
-571 25.594 77.488 85.835 35.721 46.977 74.331
-572 6.6088 56.324 70.639 19.214 24.018 47.314
-573 65.565 73.572 7.4040 34.655 44.641 8.2563
-574 43.121 75.234 88.207 39.437 46.911 78.331
-575 61.054 91.028 91.474 57.717 71.007 88.061
-576 65.998 8.0663 12.576 17.567 9.8944 3.2025
-577 12.020 65.470 77.351 25.227 32.625 58.286
-578 59.890 32.426 37.498 19.066 14.585 13.539
-579 27.168 14.843 11.299 4.3483 3.7126 2.4863
-580 11.672 64.409 50.127 18.556 29.178 25.679
-581 0.0000 19.885 91.263 16.682 9.1267 77.879
-582 29.537 22.607 57.862 10.635 7.5572 29.318
-583 12.006 38.494 60.388 11.661 12.269 32.885
-584 88.543 72.206 82.217 60.457 55.553 68.557
-585 7.7339 46.428 91.054 22.188 19.841 79.263
-586 91.245 77.019 9.4237 53.962 57.427 9.9600
-587 76.113 9.9628 87.862 36.730 18.404 72.349
-588 59.530 33.232 22.746 17.736 14.285 6.6473
-END_DATA
-CTI1
-
-DESCRIPTOR "Argyll Calibration Target chart information 1"
-ORIGINATOR "Argyll targen"
-KEYWORD "DENSITY_EXTREME_VALUES"
-DENSITY_EXTREME_VALUES "8"
-CREATED "March 17, 2012"
-
-KEYWORD "INDEX"
-NUMBER_OF_FIELDS 7
-BEGIN_DATA_FORMAT
-INDEX RGB_R RGB_G RGB_B XYZ_X XYZ_Y XYZ_Z
-END_DATA_FORMAT
-
-NUMBER_OF_SETS 8
-BEGIN_DATA
-0 100.00 100.00 100.00 95.106 100.00 108.84
-1 0.0000 47.361 100.00 25.613 21.629 97.376
-2 100.00 0.0000 79.351 52.426 26.290 58.722
-3 0.0000 0.0000 58.997 6.4858 3.1940 29.894
-4 100.00 66.659 0.0000 56.059 50.505 7.6561
-5 0.0000 35.601 0.0000 4.6856 8.3702 2.2286
-6 84.444 0.0000 0.0000 28.843 15.356 2.3047
-7 0.0000 0.0000 0.0000 1.0000 1.0000 1.0000
-END_DATA
-CTI1
-
-DESCRIPTOR "Argyll Calibration Target chart information 1"
-ORIGINATOR "Argyll targen"
-KEYWORD "DEVICE_COMBINATION_VALUES"
-DEVICE_COMBINATION_VALUES "9"
-CREATED "March 17, 2012"
-
-KEYWORD "INDEX"
-NUMBER_OF_FIELDS 7
-BEGIN_DATA_FORMAT
-INDEX RGB_R RGB_G RGB_B XYZ_X XYZ_Y XYZ_Z
-END_DATA_FORMAT
-
-NUMBER_OF_SETS 9
-BEGIN_DATA
-0 100.00 100.00 100.00 95.106 100.00 108.84
-1 0.0000 100.00 100.00 54.276 78.948 106.93
-2 100.00 0.0000 100.00 59.701 29.199 97.042
-3 0.0000 0.0000 100.00 18.871 8.1473 95.129
-4 100.00 100.00 0.0000 77.235 92.853 14.715
-5 0.0000 100.00 0.0000 36.405 71.801 12.802
-6 100.00 0.0000 0.0000 41.830 22.052 2.9132
-7 0.0000 0.0000 0.0000 1.0000 1.0000 1.0000
-8 50.000 50.000 50.000 21.143 22.190 24.083
-END_DATA
diff --git a/data/ti1/printer-normal.ti1 b/data/ti1/printer-normal.ti1
deleted file mode 100644
index eb0f082..0000000
--- a/data/ti1/printer-normal.ti1
+++ /dev/null
@@ -1,465 +0,0 @@
-CTI1
-
-DESCRIPTOR "Argyll Calibration Target chart information 1"
-ORIGINATOR "Argyll targen"
-CREATED "Sat Mar 17 18:17:55 2012"
-KEYWORD "APPROX_WHITE_POINT"
-APPROX_WHITE_POINT "95.106486 100.000000 108.844025"
-KEYWORD "COLOR_REP"
-COLOR_REP "iRGB"
-KEYWORD "WHITE_COLOR_PATCHES"
-WHITE_COLOR_PATCHES "4"
-KEYWORD "ERROR_OPTIMISED_PATCHES"
-ERROR_OPTIMISED_PATCHES "388"
-
-NUMBER_OF_FIELDS 7
-BEGIN_DATA_FORMAT
-SAMPLE_ID RGB_R RGB_G RGB_B XYZ_X XYZ_Y XYZ_Z
-END_DATA_FORMAT
-
-NUMBER_OF_SETS 392
-BEGIN_DATA
-1 100.00 100.00 100.00 95.106 100.00 108.84
-2 100.00 100.00 100.00 95.106 100.00 108.84
-3 100.00 100.00 100.00 95.106 100.00 108.84
-4 100.00 100.00 100.00 95.106 100.00 108.84
-5 0.0000 0.0000 0.0000 1.0000 1.0000 1.0000
-6 0.0000 100.00 0.0000 36.405 71.801 12.802
-7 0.0000 0.0000 100.00 18.871 8.1473 95.129
-8 100.00 0.0000 0.0000 41.830 22.052 2.9132
-9 0.0000 100.00 100.00 54.276 78.948 106.93
-10 100.00 100.00 0.0000 77.235 92.853 14.715
-11 100.00 0.0000 100.00 59.701 29.199 97.042
-12 0.0000 41.425 100.00 23.937 18.277 96.817
-13 0.0000 24.128 0.0000 2.6801 4.3598 1.5601
-14 0.0000 0.0000 24.842 1.8980 1.3591 5.7297
-15 100.00 0.0000 39.849 44.186 22.994 15.320
-16 100.00 53.955 100.00 68.641 47.076 100.02
-17 100.00 49.607 0.0000 49.280 36.950 5.3966
-18 61.342 0.0000 0.0000 14.655 8.0407 1.6399
-19 100.00 100.00 40.414 79.662 93.823 27.497
-20 0.0000 100.00 41.109 38.921 72.807 26.053
-21 53.275 100.00 100.00 64.305 84.118 107.40
-22 61.732 100.00 0.0000 50.252 78.940 13.451
-23 61.601 0.0000 100.00 32.653 15.254 95.775
-24 0.0000 75.872 0.0000 19.985 38.964 7.3282
-25 0.0000 62.192 59.293 18.752 27.626 34.282
-26 43.525 66.627 0.0000 21.702 32.768 6.0418
-27 79.071 0.0000 82.331 36.527 17.986 62.753
-28 100.00 61.829 39.418 56.181 47.067 19.056
-29 0.0000 0.0000 73.667 9.9714 4.5880 48.253
-30 33.477 100.00 64.884 46.913 76.436 48.611
-31 37.589 36.801 100.00 27.581 18.499 96.668
-32 41.307 100.00 0.0000 42.212 74.794 13.074
-33 21.100 0.0000 0.0000 2.4959 1.7713 1.0701
-34 0.0000 100.00 60.177 42.135 74.092 42.981
-35 38.911 0.0000 100.00 23.990 10.786 95.369
-36 100.00 0.0000 60.699 47.670 24.388 33.671
-37 38.399 0.0000 56.258 10.921 5.5437 27.270
-38 0.0000 62.230 100.00 31.093 32.588 99.203
-39 58.470 41.111 100.00 36.145 24.451 97.366
-40 0.0000 34.669 38.498 6.6789 8.8516 13.701
-41 0.0000 50.065 0.0000 8.5994 16.197 3.5332
-42 100.00 100.00 82.351 88.752 97.459 75.376
-43 64.442 100.00 21.849 52.330 79.930 17.201
-44 78.640 100.00 100.00 78.000 91.180 108.04
-45 36.945 54.230 61.223 20.582 23.823 35.574
-46 76.313 0.0000 15.513 23.551 12.585 3.9976
-47 100.00 43.496 43.136 50.236 34.403 19.463
-48 100.00 28.225 100.00 61.994 33.784 97.806
-49 100.00 74.428 0.0000 60.016 58.419 8.9753
-50 51.071 20.608 0.0000 11.390 8.1977 1.8422
-51 100.00 80.033 100.00 81.100 71.991 104.18
-52 100.00 27.551 0.0000 44.014 26.420 3.6413
-53 66.162 100.00 66.452 59.676 82.974 51.126
-54 0.0000 0.0000 51.092 5.0083 2.6031 22.112
-55 19.033 81.862 100.00 42.616 53.803 102.69
-56 39.613 49.973 0.0000 13.884 18.877 3.7722
-57 0.0000 37.567 79.779 15.847 13.534 58.861
-58 0.0000 100.00 80.396 47.317 76.164 70.273
-59 100.00 100.00 19.944 77.824 93.088 17.815
-60 23.067 100.00 18.835 38.709 72.927 15.670
-61 100.00 68.126 83.517 68.650 56.667 70.502
-62 26.414 100.00 100.00 56.592 80.142 107.04
-63 0.0000 21.852 100.00 20.258 10.921 95.591
-64 50.915 0.0000 16.717 10.514 5.8563 3.6645
-65 83.225 0.0000 30.404 29.290 15.431 9.3463
-66 100.00 42.041 21.636 47.744 32.778 8.2731
-67 74.223 100.00 83.277 69.059 87.271 75.986
-68 83.863 55.172 0.0000 37.798 33.901 5.4128
-69 0.0000 60.902 18.814 13.182 24.517 7.6644
-70 43.955 18.922 100.00 26.554 13.677 95.792
-71 57.100 79.651 100.00 51.708 56.497 102.73
-72 33.010 14.150 0.0000 5.2624 4.1284 1.3794
-73 74.251 88.468 26.132 49.671 65.780 16.143
-74 72.543 53.922 10.019 29.912 29.136 5.8501
-75 0.0000 78.770 80.964 32.733 46.723 66.271
-76 33.603 28.668 25.070 8.0511 8.0407 6.7804
-77 65.178 64.144 61.310 35.649 37.568 37.531
-78 100.00 80.532 57.310 68.677 67.504 37.260
-79 18.225 60.595 0.0000 13.662 24.634 4.8952
-80 100.00 0.0000 81.509 53.084 26.553 62.189
-81 64.667 60.730 100.00 45.796 39.219 99.709
-82 100.00 21.106 70.047 51.146 27.854 45.577
-83 100.00 40.544 61.584 52.699 34.143 36.282
-84 70.888 23.935 63.349 27.883 16.573 36.230
-85 40.767 63.017 16.715 19.637 29.209 7.6912
-86 59.976 100.00 41.785 52.004 79.542 27.127
-87 16.316 40.682 0.0000 6.8046 11.228 2.6686
-88 0.0000 100.00 20.934 37.050 72.058 16.199
-89 22.837 63.094 100.00 33.212 34.240 99.410
-90 85.701 19.394 100.00 48.763 25.202 96.847
-91 58.110 0.0000 65.551 20.044 10.019 38.017
-92 82.023 0.0000 0.0000 27.078 14.446 2.2220
-93 49.033 30.836 41.232 14.652 11.816 15.642
-94 32.055 79.610 0.0000 25.568 45.050 8.2089
-95 100.00 80.939 36.644 65.752 66.729 20.635
-96 18.731 0.0000 100.00 20.067 8.7639 95.185
-97 17.878 0.0000 38.504 4.2887 2.4422 12.594
-98 27.953 26.285 64.652 12.294 8.9986 37.137
-99 81.472 71.703 0.0000 43.419 47.705 7.7814
-100 14.358 76.233 36.820 22.925 40.550 17.941
-101 0.0000 81.690 19.883 23.992 46.041 11.551
-102 84.091 100.00 67.799 71.444 89.004 53.372
-103 11.602 0.0000 13.974 1.8280 1.3911 2.6559
-104 36.523 60.875 32.209 18.639 27.199 13.060
-105 0.0000 55.343 38.454 12.634 20.768 15.660
-106 60.696 0.0000 48.354 17.899 9.3015 20.368
-107 100.00 0.0000 19.646 42.402 22.281 5.9265
-108 0.0000 16.616 80.824 12.875 7.0816 59.440
-109 18.989 100.00 0.0000 37.632 72.433 12.859
-110 17.046 0.0000 82.530 13.579 6.1472 62.004
-111 100.00 62.757 61.779 60.353 49.380 39.040
-112 59.860 74.151 85.936 44.652 48.807 74.391
-113 55.719 77.867 56.742 37.216 48.953 34.754
-114 33.058 89.021 75.941 41.446 61.107 60.812
-115 37.352 100.00 41.876 43.719 75.269 26.802
-116 0.0000 15.900 38.321 3.9392 3.4067 12.684
-117 43.650 57.645 100.00 35.729 32.170 98.878
-118 100.00 21.092 51.242 47.160 26.258 24.592
-119 21.900 24.322 0.0000 4.3129 5.2411 1.6442
-120 46.959 100.00 81.593 55.319 80.248 72.571
-121 100.00 62.465 18.238 54.652 46.896 9.6453
-122 84.337 66.845 100.00 60.951 51.091 101.20
-123 59.048 27.456 13.429 16.016 11.928 3.8357
-124 73.379 35.146 53.622 29.359 20.433 26.597
-125 80.679 0.0000 47.252 29.513 15.310 20.013
-126 43.996 100.00 20.863 43.686 75.480 16.488
-127 0.0000 37.857 18.022 5.6772 9.5734 4.9637
-128 80.505 37.951 0.0000 30.217 22.315 3.5757
-129 71.669 24.569 83.591 33.928 19.184 65.219
-130 35.291 45.388 30.374 12.669 15.994 10.316
-131 50.100 82.578 0.0000 32.736 51.436 9.0641
-132 71.805 49.346 67.381 35.080 28.652 43.106
-133 0.0000 82.719 100.00 41.918 54.234 102.81
-134 81.292 100.00 0.0000 61.963 84.978 13.999
-135 66.911 57.870 35.707 29.836 31.113 15.108
-136 20.339 61.061 79.586 24.783 29.425 61.151
-137 17.730 28.602 37.735 6.5360 7.1061 12.900
-138 0.0000 21.468 58.978 7.8226 5.8733 30.321
-139 84.484 76.816 61.422 54.384 56.798 40.383
-140 100.00 83.141 15.881 65.530 68.825 12.726
-141 16.251 36.821 57.318 11.026 11.441 29.483
-142 17.025 100.00 60.186 43.140 74.610 43.038
-143 46.708 44.463 53.835 18.926 18.463 26.968
-144 100.00 51.816 77.575 60.088 42.452 58.687
-145 76.085 83.765 100.00 64.610 66.916 104.06
-146 0.0000 57.547 79.674 21.984 25.855 60.750
-147 53.330 27.718 89.156 27.038 16.113 74.765
-148 56.090 0.0000 82.989 23.939 11.472 63.250
-149 31.957 28.900 41.182 9.3310 8.5718 15.261
-150 81.578 42.859 100.00 50.077 32.318 98.151
-151 57.788 23.193 72.434 23.172 13.741 47.585
-152 100.00 100.00 60.633 83.061 95.183 45.400
-153 0.0000 81.618 60.290 29.116 48.020 38.758
-154 40.790 0.0000 0.0000 6.6540 3.9152 1.2649
-155 10.363 69.205 68.839 24.610 35.231 46.803
-156 47.604 72.550 29.860 27.335 39.921 13.923
-157 81.604 22.270 44.939 31.258 18.384 18.703
-158 69.822 20.094 0.0000 20.370 12.742 2.2464
-159 80.924 0.0000 100.00 44.170 21.191 96.314
-160 50.774 47.161 71.464 25.099 22.371 47.808
-161 100.00 18.860 14.291 43.202 24.281 4.9594
-162 40.534 0.0000 37.319 8.6315 4.6974 12.072
-163 32.898 46.978 81.065 22.352 20.556 61.929
-164 21.202 100.00 82.478 49.472 77.201 73.744
-165 88.894 76.488 84.380 63.761 60.642 72.987
-166 10.669 11.749 0.0000 1.9116 2.1507 1.1741
-167 0.0000 42.018 58.168 11.539 13.567 30.751
-168 41.044 21.011 48.297 11.565 7.9464 20.392
-169 14.312 80.404 0.0000 23.359 44.618 8.2419
-170 66.450 78.926 0.0000 38.035 50.876 8.6769
-171 24.023 63.682 61.999 21.900 30.154 37.604
-172 84.705 79.977 42.829 53.146 59.277 23.890
-173 67.274 85.234 65.367 49.279 61.689 46.226
-174 48.258 33.735 26.828 13.437 12.184 7.9852
-175 82.321 48.147 39.727 36.617 29.460 16.887
-176 100.00 21.909 32.909 44.805 25.472 11.706
-177 33.390 75.463 32.843 25.053 41.057 15.720
-178 82.601 100.00 21.034 63.549 85.721 17.471
-179 22.471 31.254 12.594 5.7656 7.6099 3.3862
-180 100.00 36.718 85.124 58.169 34.875 69.581
-181 0.0000 17.128 18.243 2.3783 2.9588 3.9187
-182 40.493 14.727 28.508 8.4201 5.6869 7.7038
-183 85.113 22.414 80.834 41.844 22.943 60.990
-184 38.294 81.810 100.00 46.302 55.655 102.85
-185 38.376 33.065 0.0000 9.1351 9.8891 2.2874
-186 19.518 0.0000 59.736 7.9291 3.9205 30.756
-187 20.626 22.177 100.00 21.730 11.739 95.672
-188 4.6710 66.645 31.968 16.861 30.112 13.595
-189 35.448 72.732 49.609 26.247 39.218 26.764
-190 19.636 43.539 100.00 25.808 20.080 97.067
-191 36.604 0.0000 79.122 16.031 7.5322 56.658
-192 0.0000 78.164 40.059 23.675 42.533 20.310
-193 89.004 34.679 92.104 50.669 30.074 81.730
-194 21.148 49.958 8.9792 10.219 16.962 4.3930
-195 18.657 15.185 15.671 3.2750 3.1819 3.2860
-196 82.236 37.095 25.441 32.186 22.930 8.5242
-197 10.765 25.717 49.408 7.0919 6.5365 21.292
-198 10.095 71.462 85.104 30.426 39.387 71.880
-199 87.484 94.474 84.826 74.582 83.696 77.629
-200 45.601 74.578 65.947 33.449 44.032 44.363
-201 80.750 62.835 59.451 44.241 41.180 35.726
-202 65.741 22.397 100.00 36.238 19.260 96.359
-203 91.235 59.409 93.044 60.365 46.232 86.148
-204 49.386 8.1837 46.000 12.969 7.1919 18.323
-205 55.856 60.517 27.228 24.688 30.146 11.024
-206 80.271 0.0000 64.848 32.599 16.511 37.754
-207 24.063 41.867 41.034 10.614 13.356 16.017
-208 34.972 60.214 74.717 25.722 29.546 53.752
-209 18.941 100.00 37.506 39.700 73.259 23.783
-210 82.786 63.523 19.276 40.968 40.524 9.4187
-211 12.808 89.898 66.564 36.577 59.784 48.007
-212 62.821 58.817 0.0000 26.187 30.008 5.2729
-213 53.736 62.291 92.930 38.597 36.813 85.255
-214 38.328 89.011 14.643 33.485 58.065 12.065
-215 30.640 30.486 87.747 20.089 13.281 72.031
-216 20.983 17.191 82.789 15.021 8.1957 62.754
-217 49.588 100.00 58.718 50.419 78.398 41.799
-218 87.308 16.246 25.315 32.750 18.450 7.5819
-219 59.388 74.877 14.322 32.472 44.545 9.4424
-220 100.00 83.915 78.469 75.967 73.786 65.273
-221 89.012 87.202 0.0000 58.316 69.077 11.122
-222 13.653 26.437 88.492 17.236 10.790 73.043
-223 72.604 68.295 89.915 49.899 46.872 80.895
-224 11.472 12.438 32.036 3.5089 2.8683 9.0732
-225 79.560 100.00 44.607 63.749 85.553 29.708
-226 10.304 89.944 28.432 30.442 57.362 16.486
-227 33.621 41.561 11.232 10.092 13.233 4.0107
-228 64.952 58.672 77.085 37.159 34.430 57.603
-229 61.386 40.555 0.0000 19.520 17.737 3.2553
-230 32.807 72.954 72.392 30.610 41.080 52.413
-231 47.112 60.930 42.712 23.082 29.384 19.620
-232 30.894 36.749 54.169 12.663 12.331 26.434
-233 54.387 12.353 23.593 12.800 7.7295 5.9335
-234 74.068 92.109 55.081 55.846 72.334 36.626
-235 30.392 0.0000 20.420 4.6856 2.8291 4.3847
-236 12.125 22.829 63.855 9.5961 6.9161 35.925
-237 66.490 9.3363 80.870 28.693 14.474 60.107
-238 73.121 73.818 34.398 40.746 47.792 17.021
-239 38.246 21.587 76.889 17.164 10.203 53.683
-240 89.477 90.967 31.918 62.775 75.067 19.829
-241 62.717 29.338 28.407 18.990 13.818 8.6728
-242 100.00 16.032 88.384 56.118 29.016 74.317
-243 20.281 34.097 77.539 15.818 12.479 55.178
-244 18.979 50.923 55.345 14.879 19.306 28.808
-245 91.299 32.878 36.880 39.339 25.176 14.145
-246 20.147 79.954 75.576 33.221 48.201 58.215
-247 41.880 45.998 91.303 27.848 22.560 79.960
-248 79.626 26.978 14.699 27.829 17.902 4.6225
-249 46.102 83.784 89.056 45.799 57.713 81.622
-250 79.362 36.894 71.029 37.455 24.732 47.019
-251 92.255 52.970 29.172 44.827 36.200 11.970
-252 46.973 34.183 77.092 21.958 15.685 54.795
-253 59.918 78.228 36.598 36.268 49.129 18.763
-254 41.139 87.659 61.041 38.936 58.859 41.166
-255 61.025 27.539 48.846 20.319 13.779 21.516
-256 59.956 66.934 47.347 31.745 37.769 24.307
-257 21.955 5.8969 27.966 3.9195 2.6257 7.1156
-258 9.7044 42.326 32.665 8.2502 12.427 10.988
-259 87.297 46.595 83.392 49.366 34.229 66.977
-260 86.752 85.256 13.872 55.564 65.710 12.221
-261 80.608 63.021 40.810 41.122 40.051 19.412
-262 59.686 72.766 71.157 39.452 45.529 51.103
-263 21.032 64.989 25.685 16.896 29.048 10.604
-264 24.919 51.952 91.606 25.944 24.387 80.985
-265 87.843 16.325 0.0000 32.242 18.306 2.6951
-266 62.572 0.0000 30.848 16.651 8.9094 8.9640
-267 48.328 89.912 33.173 38.545 61.456 19.119
-268 76.937 82.424 86.750 59.400 63.543 77.887
-269 86.209 23.172 61.532 37.743 21.553 34.579
-270 88.780 48.629 13.404 39.598 31.460 6.3588
-271 19.252 55.044 37.037 13.616 21.129 14.812
-272 68.878 65.770 22.759 33.214 38.020 10.418
-273 25.272 90.013 9.4380 31.173 57.927 11.259
-274 30.129 54.371 18.791 13.633 20.944 6.9448
-275 79.683 48.444 54.261 37.082 29.580 28.565
-276 58.113 47.445 84.789 32.192 25.704 68.605
-277 54.383 62.384 10.433 23.968 31.058 6.5956
-278 21.267 47.872 70.734 17.612 18.857 46.531
-279 80.297 12.762 12.144 26.631 14.968 3.6278
-280 9.9440 24.072 10.058 3.2589 4.6260 2.5284
-281 48.826 9.7018 74.557 18.856 9.6434 50.039
-282 41.016 23.946 12.499 8.6320 7.3623 3.1704
-283 55.037 95.255 72.098 52.019 73.368 57.108
-284 73.437 51.183 89.903 43.363 33.050 78.549
-285 7.4595 97.093 89.559 48.292 72.912 85.349
-286 79.999 85.036 72.730 58.899 66.244 56.252
-287 39.119 11.883 91.457 21.236 10.439 78.260
-288 21.534 68.107 46.997 20.826 32.983 23.677
-289 37.632 66.877 92.310 35.007 38.080 84.496
-290 68.744 37.779 79.698 33.441 22.680 59.570
-291 27.969 10.665 69.139 11.777 6.2384 42.277
-292 73.294 10.286 54.039 26.164 14.001 25.920
-293 24.067 79.663 61.321 30.077 46.731 39.605
-294 8.6875 8.2580 44.614 4.5915 2.9011 16.874
-295 91.381 11.102 37.168 36.731 19.809 13.418
-296 58.903 86.611 23.511 39.858 58.880 14.353
-297 70.568 38.448 12.824 24.219 19.365 4.7252
-298 26.825 73.910 87.320 34.435 43.292 76.304
-299 42.419 13.137 61.901 13.793 7.7104 33.587
-300 71.461 76.068 53.442 43.667 50.827 31.540
-301 93.421 53.416 51.227 48.762 38.140 26.788
-302 91.090 87.296 94.518 75.782 76.357 94.036
-303 44.294 64.832 56.371 26.080 33.213 31.926
-304 63.093 40.843 41.689 23.037 19.358 16.970
-305 11.368 62.742 93.299 29.213 32.250 85.585
-306 90.425 91.798 51.068 66.653 77.656 33.332
-307 30.648 8.5265 44.321 7.3545 4.3493 16.789
-308 6.6765 42.988 8.6409 6.8532 12.134 3.5944
-309 44.895 76.462 14.846 27.594 43.340 9.5762
-310 66.094 11.053 12.588 17.777 10.237 3.2596
-311 88.818 34.817 52.246 39.930 25.809 25.795
-312 72.036 35.102 93.006 39.235 24.273 82.948
-313 29.057 66.511 8.5833 18.104 30.815 6.6005
-314 46.067 72.807 80.359 36.540 43.759 64.526
-315 59.872 37.472 63.642 24.529 18.468 37.117
-316 74.511 70.383 72.614 46.767 47.420 53.095
-317 11.838 14.574 73.310 11.070 6.1452 47.988
-318 9.5047 49.609 87.377 21.991 21.358 72.828
-319 69.914 13.299 39.745 22.148 12.470 14.382
-320 46.318 31.046 59.273 16.734 12.598 31.466
-321 61.559 93.247 90.687 59.286 74.228 87.119
-322 37.750 97.088 91.754 53.608 75.556 89.687
-323 7.0873 9.0184 90.810 15.912 7.4776 76.748
-324 8.7755 63.020 9.0623 14.057 26.365 6.0169
-325 75.339 50.372 26.604 31.280 27.922 9.9925
-326 52.329 10.377 8.3873 11.159 6.7800 2.3020
-327 12.355 87.424 92.947 42.819 59.558 89.455
-328 52.626 57.458 62.571 27.264 29.041 37.763
-329 88.727 49.597 66.743 46.780 34.823 42.875
-330 6.8330 36.656 90.192 19.293 14.609 76.794
-331 88.398 10.718 71.888 40.762 21.106 47.322
-332 27.919 8.1474 88.804 17.501 8.3168 73.119
-333 61.296 45.103 26.098 21.694 20.566 8.8759
-334 9.9493 51.590 22.937 10.284 17.734 7.7703
-335 46.277 47.871 21.444 15.972 18.881 7.2029
-336 8.3599 89.750 9.3520 29.178 56.625 11.101
-337 9.8057 75.392 51.526 24.196 40.266 28.760
-338 8.8275 59.092 48.659 15.852 24.427 23.650
-339 54.547 16.337 36.658 14.343 8.8496 12.178
-340 89.249 73.471 28.263 51.375 53.061 14.480
-341 33.942 90.319 28.895 34.166 59.668 16.938
-342 57.300 15.818 57.502 18.704 10.660 29.118
-343 55.908 12.739 92.165 27.515 13.732 79.913
-344 91.209 8.3831 93.376 49.703 24.747 83.205
-345 93.724 29.860 19.437 39.371 24.532 6.4612
-346 59.908 48.904 53.644 25.642 23.911 27.485
-347 93.190 7.5534 9.6331 36.192 19.475 3.5992
-348 28.450 90.759 53.218 36.479 60.955 33.663
-349 92.180 31.752 73.216 46.699 27.859 50.169
-350 51.478 48.312 39.365 19.641 20.789 15.874
-351 7.3946 41.157 47.836 9.7365 12.518 20.991
-352 7.6374 34.270 68.746 12.371 11.028 42.656
-353 92.498 89.323 67.465 69.989 76.392 50.589
-354 91.061 10.155 54.283 38.950 20.578 26.750
-355 11.381 74.331 16.223 20.038 37.681 9.1887
-356 91.535 69.514 49.862 53.824 50.974 27.798
-357 22.732 38.976 24.896 8.0815 11.157 7.3155
-358 55.513 91.602 9.8992 41.160 64.747 12.114
-359 67.948 88.016 79.268 55.200 67.065 66.315
-360 70.179 8.7961 67.747 27.133 14.047 41.171
-361 73.073 89.493 9.2809 48.814 66.484 11.960
-362 25.799 79.103 20.191 24.657 44.063 11.224
-363 10.498 26.580 25.136 4.3939 5.6614 6.5389
-364 33.992 54.030 46.836 17.151 22.250 21.670
-365 93.353 70.248 71.034 60.184 54.285 51.534
-366 7.5724 88.067 77.919 37.987 58.288 63.435
-367 71.457 16.936 25.884 21.986 12.987 7.3136
-368 25.896 18.542 33.274 5.8620 4.8301 9.9631
-369 48.403 37.206 11.194 13.403 13.367 3.8561
-370 65.290 83.816 99.006 57.882 63.541 101.66
-371 7.5899 52.185 67.289 16.920 20.699 42.410
-372 10.784 90.082 47.581 32.834 58.476 28.438
-373 91.650 65.839 7.6558 48.464 46.004 7.8208
-374 48.426 59.806 79.324 30.942 31.833 60.881
-375 27.172 87.391 90.052 43.626 60.062 84.025
-376 69.672 57.217 49.330 32.979 32.140 24.805
-377 22.213 17.284 52.948 7.8761 5.3719 24.188
-378 45.416 82.569 45.771 34.222 51.828 25.641
-379 48.555 84.905 75.698 43.178 57.918 59.746
-380 34.563 39.669 68.173 17.169 15.324 42.489
-381 32.486 11.790 13.713 5.2791 3.8563 2.8982
-382 57.174 90.674 51.295 45.095 65.347 32.293
-383 74.960 32.675 36.939 27.405 18.964 13.609
-384 73.765 74.684 12.575 40.143 48.351 9.4363
-385 39.585 40.241 42.380 13.755 14.337 16.971
-386 91.251 34.697 7.2049 37.776 25.134 4.3044
-387 69.919 90.457 39.584 49.767 67.728 23.489
-388 5.5777 8.6818 62.061 7.6016 4.1200 33.403
-389 57.950 49.094 11.038 20.544 21.864 5.0952
-390 81.866 59.213 78.015 48.121 40.376 59.591
-391 74.809 10.104 92.050 37.382 18.581 80.108
-392 24.513 86.002 40.250 30.563 53.304 22.152
-END_DATA
-CTI1
-
-DESCRIPTOR "Argyll Calibration Target chart information 1"
-ORIGINATOR "Argyll targen"
-KEYWORD "DENSITY_EXTREME_VALUES"
-DENSITY_EXTREME_VALUES "8"
-CREATED "March 17, 2012"
-
-KEYWORD "INDEX"
-NUMBER_OF_FIELDS 7
-BEGIN_DATA_FORMAT
-INDEX RGB_R RGB_G RGB_B XYZ_X XYZ_Y XYZ_Z
-END_DATA_FORMAT
-
-NUMBER_OF_SETS 8
-BEGIN_DATA
-0 100.00 100.00 100.00 95.106 100.00 108.84
-1 0.0000 47.361 100.00 25.613 21.629 97.376
-2 100.00 0.0000 79.351 52.426 26.290 58.722
-3 0.0000 0.0000 58.997 6.4858 3.1940 29.894
-4 100.00 66.659 0.0000 56.059 50.505 7.6561
-5 0.0000 35.601 0.0000 4.6856 8.3702 2.2286
-6 84.444 0.0000 0.0000 28.843 15.356 2.3047
-7 0.0000 0.0000 0.0000 1.0000 1.0000 1.0000
-END_DATA
-CTI1
-
-DESCRIPTOR "Argyll Calibration Target chart information 1"
-ORIGINATOR "Argyll targen"
-KEYWORD "DEVICE_COMBINATION_VALUES"
-DEVICE_COMBINATION_VALUES "9"
-CREATED "March 17, 2012"
-
-KEYWORD "INDEX"
-NUMBER_OF_FIELDS 7
-BEGIN_DATA_FORMAT
-INDEX RGB_R RGB_G RGB_B XYZ_X XYZ_Y XYZ_Z
-END_DATA_FORMAT
-
-NUMBER_OF_SETS 9
-BEGIN_DATA
-0 100.00 100.00 100.00 95.106 100.00 108.84
-1 0.0000 100.00 100.00 54.276 78.948 106.93
-2 100.00 0.0000 100.00 59.701 29.199 97.042
-3 0.0000 0.0000 100.00 18.871 8.1473 95.129
-4 100.00 100.00 0.0000 77.235 92.853 14.715
-5 0.0000 100.00 0.0000 36.405 71.801 12.802
-6 100.00 0.0000 0.0000 41.830 22.052 2.9132
-7 0.0000 0.0000 0.0000 1.0000 1.0000 1.0000
-8 50.000 50.000 50.000 21.143 22.190 24.083
-END_DATA
diff --git a/data/ti1/printer-short.ti1 b/data/ti1/printer-short.ti1
deleted file mode 100644
index f48eeb1..0000000
--- a/data/ti1/printer-short.ti1
+++ /dev/null
@@ -1,269 +0,0 @@
-CTI1
-
-DESCRIPTOR "Argyll Calibration Target chart information 1"
-ORIGINATOR "Argyll targen"
-CREATED "Sat Mar 17 18:17:53 2012"
-KEYWORD "APPROX_WHITE_POINT"
-APPROX_WHITE_POINT "95.106486 100.000000 108.844025"
-KEYWORD "COLOR_REP"
-COLOR_REP "iRGB"
-KEYWORD "WHITE_COLOR_PATCHES"
-WHITE_COLOR_PATCHES "4"
-KEYWORD "ERROR_OPTIMISED_PATCHES"
-ERROR_OPTIMISED_PATCHES "192"
-
-NUMBER_OF_FIELDS 7
-BEGIN_DATA_FORMAT
-SAMPLE_ID RGB_R RGB_G RGB_B XYZ_X XYZ_Y XYZ_Z
-END_DATA_FORMAT
-
-NUMBER_OF_SETS 196
-BEGIN_DATA
-1 100.00 100.00 100.00 95.106 100.00 108.84
-2 100.00 100.00 100.00 95.106 100.00 108.84
-3 100.00 100.00 100.00 95.106 100.00 108.84
-4 100.00 100.00 100.00 95.106 100.00 108.84
-5 0.0000 0.0000 0.0000 1.0000 1.0000 1.0000
-6 0.0000 100.00 0.0000 36.405 71.801 12.802
-7 0.0000 0.0000 100.00 18.871 8.1473 95.129
-8 100.00 0.0000 0.0000 41.830 22.052 2.9132
-9 0.0000 100.00 100.00 54.276 78.948 106.93
-10 100.00 100.00 0.0000 77.235 92.853 14.715
-11 100.00 0.0000 100.00 59.701 29.199 97.042
-12 0.0000 53.567 100.00 27.671 25.745 98.062
-13 0.0000 26.198 0.0000 2.9758 4.9509 1.6586
-14 0.0000 0.0000 36.968 3.0123 1.8048 11.599
-15 100.00 0.0000 23.988 42.669 22.388 7.3296
-16 100.00 50.042 100.00 67.293 44.382 99.573
-17 100.00 64.516 0.0000 55.065 48.519 7.3250
-18 70.146 0.0000 0.0000 19.376 10.475 1.8611
-19 100.00 100.00 51.516 81.316 94.485 36.209
-20 0.0000 100.00 32.605 37.957 72.421 20.973
-21 37.656 100.00 100.00 59.055 81.412 107.15
-22 75.434 100.00 0.0000 58.017 82.944 13.815
-23 66.146 0.0000 100.00 35.001 16.464 95.885
-24 0.0000 76.004 28.465 21.236 39.583 13.553
-25 55.697 74.485 0.0000 30.267 43.127 7.5902
-26 50.538 0.0000 75.030 19.290 9.3495 50.648
-27 100.00 26.786 68.523 51.530 29.235 43.818
-28 65.153 100.00 51.884 56.148 81.501 35.361
-29 55.152 50.589 100.00 37.458 29.266 98.227
-30 0.0000 0.0000 68.911 8.7316 4.0921 41.723
-31 0.0000 51.364 0.0000 9.0328 17.063 3.6776
-32 100.00 0.0000 76.348 51.548 25.939 54.098
-33 0.0000 17.771 51.653 6.0453 4.5233 22.931
-34 51.200 100.00 0.0000 45.605 76.544 13.233
-35 35.510 0.0000 0.0000 5.2277 3.1798 1.1981
-36 0.0000 100.00 65.230 43.251 74.538 48.857
-37 29.347 0.0000 100.00 21.731 9.6220 95.263
-38 100.00 51.851 75.173 59.415 42.202 55.084
-39 0.0000 74.951 100.00 37.344 45.088 101.29
-40 49.803 35.883 26.990 14.470 13.383 8.2284
-41 0.0000 52.706 77.461 19.533 22.003 56.702
-42 64.294 0.0000 49.967 19.967 10.338 21.829
-43 0.0000 76.708 0.0000 20.456 39.907 7.4854
-44 77.850 58.092 100.00 52.570 41.114 99.718
-45 33.947 59.502 100.00 33.796 32.277 99.001
-46 100.00 100.00 77.388 87.252 96.859 67.474
-47 49.055 100.00 75.896 54.381 79.960 63.703
-48 73.173 100.00 100.00 74.467 89.358 107.88
-49 100.00 77.272 19.765 62.187 61.834 12.554
-50 74.961 25.075 0.0000 24.122 15.611 2.6025
-51 100.00 48.027 21.633 49.465 36.220 8.8458
-52 17.852 0.0000 17.438 2.5532 1.7477 3.4682
-53 100.00 26.186 100.00 61.675 33.147 97.700
-54 47.420 80.634 62.433 36.770 51.021 41.346
-55 100.00 77.565 100.00 79.648 69.087 103.69
-56 100.00 0.0000 50.132 45.677 23.591 23.176
-57 26.495 34.019 58.657 12.101 11.075 30.757
-58 48.753 22.821 0.0000 10.783 8.2818 1.8903
-59 28.472 100.00 53.729 43.567 74.976 36.479
-60 100.00 28.991 0.0000 44.250 26.891 3.7198
-61 0.0000 63.374 50.307 17.599 27.993 25.657
-62 26.180 100.00 0.0000 38.681 72.974 12.908
-63 72.481 37.889 60.227 30.705 21.881 33.560
-64 25.028 31.697 100.00 23.854 15.021 96.193
-65 100.00 45.884 49.210 51.825 36.126 24.479
-66 76.968 100.00 73.637 67.976 87.042 61.071
-67 100.00 100.00 26.845 78.282 93.271 20.229
-68 20.337 100.00 83.304 49.619 77.247 75.120
-69 26.229 45.799 0.0000 9.5575 14.723 3.1982
-70 54.115 72.610 31.857 30.064 41.355 15.014
-71 78.499 50.940 0.0000 32.519 28.961 4.7372
-72 0.0000 34.074 32.198 5.8773 8.3346 10.085
-73 0.0000 78.472 72.492 30.128 45.402 53.411
-74 0.0000 24.783 100.00 20.642 11.688 95.719
-75 24.947 0.0000 69.673 10.992 5.2354 42.829
-76 100.00 76.033 72.256 69.497 63.632 54.527
-77 76.105 0.0000 73.329 31.924 15.917 48.803
-78 100.00 71.738 47.110 61.946 56.896 26.218
-79 0.0000 40.155 56.673 10.766 12.493 29.040
-80 42.250 65.181 47.202 24.009 32.567 23.594
-81 31.751 0.0000 44.151 7.2846 3.9017 16.579
-82 100.00 23.540 33.364 45.058 25.905 12.014
-83 76.385 30.530 18.711 26.436 18.042 5.6885
-84 82.195 53.911 77.591 46.200 36.383 58.272
-85 83.047 78.323 0.0000 48.203 55.593 9.0521
-86 65.744 78.737 100.00 55.413 57.604 102.75
-87 14.632 63.534 37.625 16.648 27.815 16.297
-88 60.235 67.720 50.357 32.739 38.785 26.987
-89 61.608 54.863 30.424 25.403 27.186 11.829
-90 59.776 9.5487 35.156 16.043 9.0371 11.260
-91 52.095 42.490 70.157 23.944 19.833 45.608
-92 12.137 24.508 39.882 5.6500 5.6955 14.033
-93 47.651 19.903 100.00 27.910 14.532 95.885
-94 0.0000 51.131 21.857 9.6545 17.186 7.3402
-95 76.166 0.0000 27.104 24.151 12.813 7.6553
-96 31.008 69.964 27.895 21.171 34.782 12.384
-97 16.083 92.798 63.346 38.201 63.783 44.795
-98 33.171 60.360 72.379 24.724 29.194 50.409
-99 0.0000 25.648 76.768 12.732 8.7231 53.448
-100 61.306 33.464 85.886 30.540 19.579 69.405
-101 74.920 100.00 28.775 58.892 83.256 20.136
-102 67.549 32.862 34.756 22.792 16.667 12.155
-103 25.367 100.00 24.984 39.451 73.266 17.685
-104 85.084 88.853 56.369 61.366 71.743 37.503
-105 29.610 80.115 100.00 43.231 52.538 102.41
-106 34.763 12.477 20.885 6.1938 4.3553 4.7405
-107 34.878 17.719 52.939 10.339 6.7034 24.306
-108 59.728 45.119 46.483 23.222 21.097 20.847
-109 14.286 37.855 15.039 6.2768 9.8978 4.2851
-110 74.178 25.031 100.00 41.493 22.491 96.706
-111 86.592 87.717 81.828 68.124 73.337 70.947
-112 51.883 48.954 0.0000 17.708 20.359 3.8569
-113 87.927 30.378 52.331 38.382 23.733 25.554
-114 49.051 0.0000 22.757 10.142 5.6261 5.3795
-115 26.159 77.060 65.853 29.919 44.275 44.480
-116 86.022 51.745 58.894 43.657 34.476 33.865
-117 41.934 39.131 47.871 14.969 14.466 21.120
-118 71.642 19.224 67.182 28.657 16.030 40.755
-119 81.688 20.580 33.036 29.670 17.434 11.018
-120 50.184 67.286 92.725 39.391 40.613 85.552
-121 36.207 29.401 79.080 18.406 12.453 57.417
-122 43.822 17.892 36.364 10.481 7.0777 11.867
-123 28.106 73.191 0.0000 21.140 37.383 6.9622
-124 22.297 17.716 0.0000 3.5982 3.7284 1.3898
-125 66.124 70.836 82.649 45.015 46.522 68.340
-126 50.186 100.00 31.484 46.659 76.920 20.820
-127 25.852 76.654 83.141 34.412 45.695 69.558
-128 65.903 84.730 60.991 47.228 60.258 40.944
-129 78.567 66.011 42.581 41.308 42.134 21.028
-130 0.0000 15.041 20.727 2.3304 2.6479 4.5661
-131 4.8100 71.328 85.506 30.228 39.166 72.542
-132 35.290 52.253 33.778 15.179 20.492 12.763
-133 51.206 22.896 67.120 19.012 11.695 40.347
-134 15.125 47.559 57.614 13.823 17.105 30.736
-135 10.319 39.501 84.446 18.198 15.257 66.738
-136 81.713 6.9512 45.282 30.157 15.987 18.560
-137 62.970 87.621 14.743 42.048 61.070 12.215
-138 12.777 85.086 15.177 26.524 50.567 11.099
-139 17.882 89.335 38.893 31.751 57.283 21.979
-140 95.799 26.397 17.815 40.519 24.298 5.9174
-141 11.085 6.0108 82.367 13.177 6.2037 61.768
-142 29.883 28.112 35.239 8.0623 7.8061 11.490
-143 4.3386 85.682 50.672 30.024 52.536 30.061
-144 49.886 67.799 74.135 33.569 38.667 54.258
-145 16.865 43.862 36.790 9.6990 13.744 13.446
-146 59.327 12.821 12.741 14.483 8.7080 3.1658
-147 69.591 66.639 14.728 33.612 38.878 8.3729
-148 36.485 87.947 75.907 41.527 60.059 60.555
-149 65.403 89.049 82.346 55.463 68.142 71.461
-150 90.037 18.822 80.325 45.116 24.039 60.214
-151 16.790 56.924 98.774 29.404 28.548 95.921
-152 10.556 88.801 89.505 42.389 60.872 83.237
-153 15.937 62.420 16.033 14.589 26.222 7.2198
-154 91.892 71.933 59.977 57.241 54.353 38.156
-155 70.461 82.527 37.890 44.606 57.264 20.671
-156 87.949 43.744 10.747 37.406 28.189 5.3821
-157 87.546 62.757 24.550 44.531 41.823 11.187
-158 49.639 88.011 91.841 50.841 64.331 87.833
-159 85.626 10.077 94.631 45.854 22.836 85.505
-160 84.380 10.462 10.741 29.376 16.173 3.4847
-161 27.019 46.295 79.052 20.349 19.289 58.591
-162 10.107 8.7408 8.8913 1.8555 1.8535 1.9055
-163 31.642 80.740 48.743 29.779 47.812 27.501
-164 81.992 41.860 97.275 49.018 31.503 92.347
-165 45.352 63.427 13.401 21.120 30.258 7.0997
-166 18.365 21.171 21.948 4.1643 4.4872 5.2075
-167 49.094 4.6114 56.733 14.563 7.5997 27.956
-168 64.466 51.595 83.124 36.110 29.781 66.368
-169 27.819 55.293 50.431 16.895 22.740 24.789
-170 89.503 67.964 87.345 60.756 52.334 76.708
-171 85.603 48.733 36.627 38.854 30.930 15.131
-172 42.627 43.853 87.887 26.261 20.968 73.441
-173 75.186 71.925 67.086 46.587 48.668 45.990
-174 41.905 85.099 7.4367 31.670 53.261 10.081
-175 32.601 12.141 78.928 15.497 7.9820 56.469
-176 82.970 85.467 98.942 70.012 71.383 102.40
-177 13.996 65.278 60.713 21.136 30.866 36.335
-178 85.207 86.524 16.907 55.351 66.826 13.118
-179 89.000 88.107 37.454 60.987 71.124 22.219
-180 18.230 26.932 73.372 13.116 9.3165 48.580
-181 16.378 15.440 59.391 8.2330 5.1696 30.607
-182 60.766 24.357 49.805 19.879 12.835 22.175
-183 36.386 46.124 16.143 12.216 16.190 5.4338
-184 15.929 6.0013 43.039 4.8369 2.9149 15.705
-185 47.794 91.059 47.658 41.004 63.712 29.081
-186 67.228 15.089 85.440 30.935 16.028 67.924
-187 63.989 43.317 14.088 21.873 19.992 5.2135
-188 20.455 15.509 94.772 18.966 9.5261 84.631
-189 17.127 61.783 82.704 25.672 30.229 66.304
-190 86.561 36.748 80.308 45.264 28.407 61.022
-191 36.881 28.636 12.671 8.1975 8.1838 3.3829
-192 92.326 13.060 59.551 41.208 21.895 32.272
-193 38.075 87.562 25.028 33.002 56.280 14.762
-194 43.560 53.598 59.134 21.825 24.177 33.283
-195 68.475 56.009 59.424 33.689 31.604 34.404
-196 47.378 9.1158 87.863 22.417 10.959 71.668
-END_DATA
-CTI1
-
-DESCRIPTOR "Argyll Calibration Target chart information 1"
-ORIGINATOR "Argyll targen"
-KEYWORD "DENSITY_EXTREME_VALUES"
-DENSITY_EXTREME_VALUES "8"
-CREATED "March 17, 2012"
-
-KEYWORD "INDEX"
-NUMBER_OF_FIELDS 7
-BEGIN_DATA_FORMAT
-INDEX RGB_R RGB_G RGB_B XYZ_X XYZ_Y XYZ_Z
-END_DATA_FORMAT
-
-NUMBER_OF_SETS 8
-BEGIN_DATA
-0 100.00 100.00 100.00 95.106 100.00 108.84
-1 0.0000 47.361 100.00 25.613 21.629 97.376
-2 100.00 0.0000 79.351 52.426 26.290 58.722
-3 0.0000 0.0000 58.997 6.4858 3.1940 29.894
-4 100.00 66.659 0.0000 56.059 50.505 7.6561
-5 0.0000 35.601 0.0000 4.6856 8.3702 2.2286
-6 84.444 0.0000 0.0000 28.843 15.356 2.3047
-7 0.0000 0.0000 0.0000 1.0000 1.0000 1.0000
-END_DATA
-CTI1
-
-DESCRIPTOR "Argyll Calibration Target chart information 1"
-ORIGINATOR "Argyll targen"
-KEYWORD "DEVICE_COMBINATION_VALUES"
-DEVICE_COMBINATION_VALUES "9"
-CREATED "March 17, 2012"
-
-KEYWORD "INDEX"
-NUMBER_OF_FIELDS 7
-BEGIN_DATA_FORMAT
-INDEX RGB_R RGB_G RGB_B XYZ_X XYZ_Y XYZ_Z
-END_DATA_FORMAT
-
-NUMBER_OF_SETS 9
-BEGIN_DATA
-0 100.00 100.00 100.00 95.106 100.00 108.84
-1 0.0000 100.00 100.00 54.276 78.948 106.93
-2 100.00 0.0000 100.00 59.701 29.199 97.042
-3 0.0000 0.0000 100.00 18.871 8.1473 95.129
-4 100.00 100.00 0.0000 77.235 92.853 14.715
-5 0.0000 100.00 0.0000 36.405 71.801 12.802
-6 100.00 0.0000 0.0000 41.830 22.052 2.9132
-7 0.0000 0.0000 0.0000 1.0000 1.0000 1.0000
-8 50.000 50.000 50.000 21.143 22.190 24.083
-END_DATA
diff --git a/man/gcm-calibrate.sgml b/man/gcm-calibrate.sgml
deleted file mode 100644
index b2c722c..0000000
--- a/man/gcm-calibrate.sgml
+++ /dev/null
@@ -1,75 +0,0 @@
-<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
- <!-- Please adjust the date whenever revising the manpage. -->
- <!ENTITY date "<date>11 April,2008</date>">
- <!ENTITY package "gcm-calibrate">
- <!ENTITY gnu "<acronym>GNU</acronym>">
- <!ENTITY gpl "&gnu; <acronym>GPL</acronym>">
-]>
-
-<refentry>
- <refentryinfo>
- <address>
- <email>richard@hughsie.com</email>;
- </address>
- <author>
- <firstname>Richard</firstname>
- <surname>Hughes</surname>
- </author>
- <copyright>
- <year>2011</year>
- <holder>Richard Hughes</holder>
- </copyright>
- &date;
- </refentryinfo>
- <refmeta>
- <refentrytitle>gcm-calibrate</refentrytitle>
- <manvolnum>1</manvolnum>
- </refmeta>
- <refnamediv>
- <refname>&package;</refname>
- <refpurpose>GNOME Color Manager Calibrator Tool</refpurpose>
- </refnamediv>
- <refsynopsisdiv>
- <cmdsynopsis>
- <command>&package;</command>
- <arg><option>--verbose</option></arg>
- </cmdsynopsis>
- </refsynopsisdiv>
- <refsect1>
- <title>DESCRIPTION</title>
- <para>
- This manual page documents briefly the <command>&package;</command> command.
- </para>
- <para>
- <command>&package;</command> allows you calibrate devices.
- </para>
- </refsect1>
- <refsect1>
- <title>SEE ALSO</title>
- <para>gcm-viewer</para>
- <para>gnome-control-center</para>
- </refsect1>
- <refsect1>
- <title>AUTHOR</title>
- <para>This manual page was written by Richard Hughes <email>richard@hughsie.com</email>.
- </para>
- </refsect1>
-</refentry>
-
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:2
-sgml-indent-data:t
-sgml-parent-document:nil
-sgml-default-dtd-file:nil
-sgml-exposed-tags:nil
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-End:
--->
-
diff --git a/man/meson.build b/man/meson.build
index 594fbb7..f88299e 100644
--- a/man/meson.build
+++ b/man/meson.build
@@ -1,12 +1,5 @@
docbook2man = find_program('docbook2man', required : false)
if docbook2man.found()
- custom_target('gcm-calibrate-man',
- output : 'gcm-calibrate.1',
- input : 'gcm-calibrate.sgml',
- command : [docbook2man, '@INPUT@', '--output', 'man'],
- install : true,
- install_dir : join_paths(prefixed_mandir, 'man1'),
- )
custom_target('gcm-import-man',
output : 'gcm-import.1',
input : 'gcm-import.sgml',
diff --git a/meson.build b/meson.build
index 17da36f..958a30b 100644
--- a/meson.build
+++ b/meson.build
@@ -1,4 +1,4 @@
-project('gnome-color-manager', 'c', 'cpp',
+project('gnome-color-manager', 'c',
version : '3.32.0',
license : 'GPL-2.0+',
default_options : ['warning_level=1'],
@@ -39,6 +39,8 @@ test_args = [
'-Wno-strict-aliasing',
'-Wno-suggest-attribute=format',
'-Wno-unused-parameter',
+ '-Wno-cast-function-type',
+ '-Wno-deprecated-declarations',
'-Wold-style-definition',
'-Woverride-init',
'-Wpacked',
@@ -84,29 +86,10 @@ prefixed_pkgdatadir = join_paths(get_option('prefix'), get_option('datadir'), 'g
libgio = dependency('gio-2.0', version : '>= 2.25.9')
libgtk = dependency('gtk+-3.0', version : '>= 2.91.0')
-libexif = dependency('libexif')
-libtiff = dependency('libtiff-4')
-colord = dependency('colord', version : '>= 1.3.1')
-libcolord_gtk = dependency('colord-gtk', version : '>= 0.1.20')
-libcanberra = dependency('libcanberra-gtk3', version : '>= 0.10')
+libcolord = dependency('colord', version : '>= 1.3.1')
libm = cc.find_library('m', required: false)
liblcms = dependency('lcms2', version : '>= 2.2')
-libvte = dependency('vte-2.91', version : '>= 0.25.1', required : false)
-if libvte.found()
- conf.set('HAVE_VTE', '1')
-endif
-
-if get_option('exiv')
- libexiv = dependency('exiv2')
- conf.set('HAVE_EXIV', '1')
-endif
-
-if get_option('packagekit')
- libexiv = dependency('exiv2')
- conf.set('HAVE_PACKAGEKIT', '1')
-endif
-
gnome = import('gnome')
i18n = import('i18n')
diff --git a/meson_options.txt b/meson_options.txt
index 1c2cf1c..75f9530 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -1,3 +1 @@
option('tests', type : 'boolean', value : true, description : 'enable tests')
-option('exiv', type : 'boolean', value : true, description : 'enable EXIV support for RAW support')
-option('packagekit', type : 'boolean', value : true, description : 'enable PackageKit integration')
diff --git a/src/gcm-brightness.c b/src/gcm-brightness.c
deleted file mode 100644
index 2eb5f17..0000000
--- a/src/gcm-brightness.c
+++ /dev/null
@@ -1,202 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * Copyright (C) 2009-2011 Richard Hughes <richard@hughsie.com>
- *
- * Licensed under the GNU General Public License Version 2
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#include "config.h"
-
-#include <glib-object.h>
-#include <gio/gio.h>
-
-#include "gcm-brightness.h"
-
-static void gcm_brightness_finalize (GObject *object);
-
-typedef struct
-{
- guint percentage;
- GDBusConnection *connection;
-} GcmBrightnessPrivate;
-
-enum {
- PROP_0,
- PROP_PERCENTAGE,
- PROP_LAST
-};
-
-G_DEFINE_TYPE_WITH_PRIVATE (GcmBrightness, gcm_brightness, G_TYPE_OBJECT)
-#define GET_PRIVATE(o) (gcm_brightness_get_instance_private (o))
-
-#define GPM_DBUS_SERVICE "org.gnome.SettingsDaemon"
-#define GPM_DBUS_INTERFACE_BACKLIGHT "org.gnome.SettingsDaemon.Power.Screen"
-#define GPM_DBUS_PATH_BACKLIGHT "/org/gnome/SettingsDaemon/Power"
-
-gboolean
-gcm_brightness_set_percentage (GcmBrightness *brightness, guint percentage, GError **error)
-{
- GcmBrightnessPrivate *priv = GET_PRIVATE (brightness);
- gboolean ret = FALSE;
- GVariant *response = NULL;
-
- g_return_val_if_fail (GCM_IS_BRIGHTNESS (brightness), FALSE);
- g_return_val_if_fail (percentage <= 100, FALSE);
-
- /* get a session bus connection */
- if (priv->connection == NULL) {
- priv->connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, error);
- if (priv->connection == NULL)
- goto out;
- }
-
- /* execute sync method */
- response = g_dbus_connection_call_sync (priv->connection,
- GPM_DBUS_SERVICE,
- GPM_DBUS_PATH_BACKLIGHT,
- GPM_DBUS_INTERFACE_BACKLIGHT,
- "SetPercentage",
- g_variant_new ("(u)", percentage),
- NULL,
- G_DBUS_CALL_FLAGS_NONE,
- -1, NULL, error);
- if (response == NULL)
- goto out;
-
- /* success */
- ret = TRUE;
-out:
- if (response != NULL)
- g_variant_unref (response);
- return ret;
-}
-
-gboolean
-gcm_brightness_get_percentage (GcmBrightness *brightness, guint *percentage, GError **error)
-{
- GcmBrightnessPrivate *priv = GET_PRIVATE (brightness);
- gboolean ret = FALSE;
- GVariant *response = NULL;
-
- g_return_val_if_fail (GCM_IS_BRIGHTNESS (brightness), FALSE);
-
- /* get a session bus connection */
- if (priv->connection == NULL) {
- priv->connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, error);
- if (priv->connection == NULL)
- goto out;
- }
-
- /* execute sync method */
- response = g_dbus_connection_call_sync (priv->connection,
- GPM_DBUS_SERVICE,
- GPM_DBUS_PATH_BACKLIGHT,
- GPM_DBUS_INTERFACE_BACKLIGHT,
- "GetPercentage",
- NULL,
- G_VARIANT_TYPE ("(u)"),
- G_DBUS_CALL_FLAGS_NONE,
- -1, NULL, error);
- if (response == NULL)
- goto out;
-
- /* get the brightness */
- g_variant_get (response, "(u)", &priv->percentage);
-
- /* copy if set */
- if (percentage != NULL)
- *percentage = priv->percentage;
-
- /* success */
- ret = TRUE;
-out:
- if (response != NULL)
- g_variant_unref (response);
- return ret;
-}
-
-static void
-gcm_brightness_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
-{
- GcmBrightness *brightness = GCM_BRIGHTNESS (object);
- GcmBrightnessPrivate *priv = GET_PRIVATE (brightness);
-
- switch (prop_id) {
- case PROP_PERCENTAGE:
- g_value_set_uint (value, priv->percentage);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-gcm_brightness_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
-{
- switch (prop_id) {
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-gcm_brightness_class_init (GcmBrightnessClass *klass)
-{
- GParamSpec *pspec;
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
- object_class->finalize = gcm_brightness_finalize;
- object_class->get_property = gcm_brightness_get_property;
- object_class->set_property = gcm_brightness_set_property;
-
- /**
- * GcmBrightness:percentage:
- */
- pspec = g_param_spec_uint ("percentage", NULL, NULL,
- 0, 100, 0,
- G_PARAM_READABLE);
- g_object_class_install_property (object_class, PROP_PERCENTAGE, pspec);
-}
-
-static void
-gcm_brightness_init (GcmBrightness *brightness)
-{
- GcmBrightnessPrivate *priv = GET_PRIVATE (brightness);
- priv->percentage = 0;
-}
-
-static void
-gcm_brightness_finalize (GObject *object)
-{
- GcmBrightness *brightness = GCM_BRIGHTNESS (object);
- GcmBrightnessPrivate *priv = GET_PRIVATE (brightness);
-
- if (priv->connection != NULL)
- g_object_unref (priv->connection);
-
- G_OBJECT_CLASS (gcm_brightness_parent_class)->finalize (object);
-}
-
-GcmBrightness *
-gcm_brightness_new (void)
-{
- GcmBrightness *brightness;
- brightness = g_object_new (GCM_TYPE_BRIGHTNESS, NULL);
- return GCM_BRIGHTNESS (brightness);
-}
-
diff --git a/src/gcm-brightness.h b/src/gcm-brightness.h
deleted file mode 100644
index 4f875d0..0000000
--- a/src/gcm-brightness.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * Copyright (C) 2009-2015 Richard Hughes <richard@hughsie.com>
- *
- * Licensed under the GNU General Public License Version 2
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#ifndef __GCM_BRIGHTNESS_H
-#define __GCM_BRIGHTNESS_H
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-#define GCM_TYPE_BRIGHTNESS (gcm_brightness_get_type ())
-G_DECLARE_DERIVABLE_TYPE (GcmBrightness, gcm_brightness, GCM, BRIGHTNESS, GObject)
-
-struct _GcmBrightnessClass
-{
- GObjectClass parent_class;
-};
-
-GcmBrightness *gcm_brightness_new (void);
-gboolean gcm_brightness_set_percentage (GcmBrightness *brightness,
- guint percentage,
- GError **error);
-gboolean gcm_brightness_get_percentage (GcmBrightness *brightness,
- guint *percentage,
- GError **error);
-
-G_END_DECLS
-
-#endif /* __GCM_BRIGHTNESS_H */
-
diff --git a/src/gcm-calibrate-argyll.c b/src/gcm-calibrate-argyll.c
deleted file mode 100644
index 19bd925..0000000
--- a/src/gcm-calibrate-argyll.c
+++ /dev/null
@@ -1,2368 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * Copyright (C) 2009-2015 Richard Hughes <richard@hughsie.com>
- *
- * Licensed under the GNU General Public License Version 2
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#include "config.h"
-
-#include <glib/gi18n.h>
-#include <glib/gstdio.h>
-#include <math.h>
-#include <string.h>
-#include <gio/gio.h>
-#include <stdlib.h>
-#include <colord.h>
-#include <gtk/gtk.h>
-#ifdef HAVE_VTE
-#include <vte/vte.h>
-#endif
-#include <canberra-gtk.h>
-
-#include "gcm-calibrate.h"
-#include "gcm-calibrate-argyll.h"
-#include "gcm-utils.h"
-#include "gcm-print.h"
-
-#define FIXED_ARGYLL
-
-//#define USE_DOUBLE_DENSITY
-
-static void gcm_calibrate_argyll_finalize (GObject *object);
-
-#define GCM_CALIBRATE_ARGYLL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GCM_TYPE_CALIBRATE_ARGYLL, GcmCalibrateArgyllPrivate))
-
-typedef enum {
- GCM_CALIBRATE_ARGYLL_STATE_IDLE,
- GCM_CALIBRATE_ARGYLL_STATE_WAITING_FOR_STDIN,
- GCM_CALIBRATE_ARGYLL_STATE_WAITING_FOR_LOOP,
- GCM_CALIBRATE_ARGYLL_STATE_RUNNING,
- GCM_CALIBRATE_ARGYLL_STATE_LAST
-} GcmCalibrateArgyllState;
-
-struct _GcmCalibrateArgyllPrivate
-{
- GMainLoop *loop;
- GtkWidget *terminal;
- pid_t child_pid;
- GtkResponseType response;
- glong vte_previous_row;
- glong vte_previous_col;
- gboolean already_on_window;
- gboolean done_calibrate;
- GcmCalibrateArgyllState state;
- CdDevice *device;
- GcmPrint *print;
- const gchar *argyllcms_ok;
- gboolean done_spot_read;
- guint keypress_id;
-};
-
-G_DEFINE_TYPE (GcmCalibrateArgyll, gcm_calibrate_argyll, GCM_TYPE_CALIBRATE)
-
-static const gchar *
-gcm_calibrate_argyll_get_quality_arg (GcmCalibrateArgyll *calibrate_argyll)
-{
- GcmCalibrateReferenceKind reference_kind;
- GcmCalibratePrecision precision;
-
- /* get kind */
- g_object_get (calibrate_argyll,
- "reference-kind", &reference_kind,
- "precision", &precision,
- NULL);
-
- /* these have such low patch count, we only can do low quality */
- if (reference_kind == GCM_CALIBRATE_REFERENCE_KIND_COLOR_CHECKER ||
- reference_kind == GCM_CALIBRATE_REFERENCE_KIND_QPCARD_201)
- return "-ql";
-
- /* get the default precision */
- if (precision == GCM_CALIBRATE_PRECISION_SHORT)
- return "-ql";
- if (precision == GCM_CALIBRATE_PRECISION_NORMAL)
- return "-qm";
- if (precision == GCM_CALIBRATE_PRECISION_LONG)
- return "-qh";
- return "-qm";
-}
-
-static gchar *
-gcm_calibrate_argyll_get_tool_filename (const gchar *command,
- GError **error)
-{
- gchar *filename;
-
- /* try the original argyllcms filename installed in /usr/local/bin */
- filename = g_strdup_printf ("/usr/local/bin/%s", command);
- if (g_file_test (filename, G_FILE_TEST_EXISTS))
- return filename;
-
- /* try the debian filename installed in /usr/bin */
- g_free (filename);
- filename = g_strdup_printf ("/usr/bin/argyll-%s", command);
- if (g_file_test (filename, G_FILE_TEST_EXISTS))
- return filename;
-
- /* try the original argyllcms filename installed in /usr/bin */
- g_free (filename);
- filename = g_strdup_printf ("/usr/bin/%s", command);
- if (g_file_test (filename, G_FILE_TEST_EXISTS))
- return filename;
-
- /* eek */
- g_free (filename);
- g_set_error (error,
- GCM_CALIBRATE_ERROR,
- GCM_CALIBRATE_ERROR_INTERNAL,
- "failed to get filename for %s", command);
- return NULL;
-}
-
-static guint
-gcm_calibrate_argyll_get_display (const gchar *output_name,
- GError **error)
-{
- gboolean ret = FALSE;
- g_autofree gchar *command = NULL;
- const gchar *data;
- g_autofree gchar *data_stderr = NULL;
- g_autofree gchar *data_stdout = NULL;
- g_auto(GStrv) split = NULL;
- gint exit_status;
- guint display = G_MAXUINT;
- guint i;
- const gchar *argv[] = { "dispcal", NULL };
-
- /* get correct name of the command */
- command = gcm_calibrate_argyll_get_tool_filename ("dispcal", error);
- if (command == NULL)
- return G_MAXUINT;
-
- /* execute it and capture stderr */
- argv[0] = command;
- ret = g_spawn_sync (NULL,
- (gchar **) argv,
- NULL,
- 0,
- NULL, NULL,
- &data_stdout,
- &data_stderr,
- &exit_status,
- error);
- if (!ret)
- return G_MAXUINT;
-
- /* recent versions of dispcal switched to stderr output */
- if (data_stdout != NULL && data_stdout[0] != '\0') {
- data = data_stdout;
- } else if (data_stderr != NULL && data_stderr[0] != '\0') {
- data = data_stderr;
- } else {
- g_set_error_literal (error,
- GCM_CALIBRATE_ERROR,
- GCM_CALIBRATE_ERROR_INTERNAL,
- "no sensible output from dispcal");
- return G_MAXUINT;
- }
-
- /* split it into lines */
- split = g_strsplit (data, "\n", -1);
- for (i = 0; split[i] != NULL; i++) {
- g_autofree gchar *name = NULL;
- if (g_strstr_len (split[i], -1, "XRandR 1.2 is faulty") != NULL) {
- g_set_error_literal (error,
- GCM_CALIBRATE_ERROR,
- GCM_CALIBRATE_ERROR_INTERNAL,
- "failed to match display as RandR is faulty");
- return G_MAXUINT;
- }
- if (strlen (split[i]) < 27)
- continue;
- name = g_strdup (split[i]);
- g_strdelimit (name, " ", '\0');
- if (g_strcmp0 (output_name, &name[26]) == 0) {
- display = atoi (&name[4]);
- g_debug ("found %s mapped to %u", output_name, display);
- }
- }
-
- /* nothing found */
- if (display == G_MAXUINT) {
- g_set_error_literal (error,
- GCM_CALIBRATE_ERROR,
- GCM_CALIBRATE_ERROR_INTERNAL,
- "failed to match display");
- return G_MAXUINT;
- }
- return display;
-}
-
-static gchar
-gcm_calibrate_argyll_get_display_kind (GcmCalibrateArgyll *calibrate_argyll)
-{
- GcmCalibrateDisplayKind device_kind;
-
- g_object_get (calibrate_argyll,
- "display-kind", &device_kind,
- NULL);
-
- if (device_kind == GCM_CALIBRATE_DEVICE_KIND_LCD_CCFL)
- return 'l';
- if (device_kind == GCM_CALIBRATE_DEVICE_KIND_LCD_LED_WHITE)
- return 'e';
- if (device_kind == GCM_CALIBRATE_DEVICE_KIND_LCD_LED_RGB)
- return 'b';
- if (device_kind == GCM_CALIBRATE_DEVICE_KIND_LCD_LED_RGB_WIDE)
- return 'B';
- if (device_kind == GCM_CALIBRATE_DEVICE_KIND_LCD_CCFL_WIDE)
- return 'L';
- if (device_kind == GCM_CALIBRATE_DEVICE_KIND_CRT)
- return 'c';
- if (device_kind == GCM_CALIBRATE_DEVICE_KIND_PROJECTOR)
- return 'p';
- return '\0';
-}
-
-static const gchar *
-gcm_calibrate_argyll_get_sensor_test_window_size (GcmCalibrateArgyll *calibrate_argyll)
-{
- CdSensorKind sensor_kind;
-
- g_object_get (calibrate_argyll,
- "sensor-kind", &sensor_kind,
- NULL);
-
- if (sensor_kind == CD_SENSOR_KIND_COLOR_MUNKI_PHOTO)
- return "0.5,0.5,0.8,1.5";
- if (sensor_kind == CD_SENSOR_KIND_I1_DISPLAY3)
- return "0.5,0.5,0.6,1.0";
- if (sensor_kind == CD_SENSOR_KIND_I1_DISPLAY2)
- return "0.5,0.4,0.9,1.2";
- if (sensor_kind == CD_SENSOR_KIND_COLOR_MUNKI_SMILE)
- return "0.5,0.4,0.9,1.2";
- if (sensor_kind == CD_SENSOR_KIND_COLORHUG)
- return "0.5,0.5,0.6,0.8";
-
- return "0.5,0.5,1.0,1.0";
-}
-
-static void
-gcm_calibrate_argyll_debug_argv (const gchar *program, gchar **argv)
-{
- g_autofree gchar *join = NULL;
- join = g_strjoinv (" ", argv);
- g_debug ("running %s %s", program, join);
-}
-
-static gboolean
-gcm_calibrate_argyll_fork_command (GcmCalibrateArgyll *calibrate_argyll,
- gchar **argv,
- GError **error)
-{
- gboolean ret = FALSE;
-#ifdef HAVE_VTE
- const gchar *envp[] = { "ARGYLL_NOT_INTERACTIVE",
- "ENABLE_COLORHUG=1",
- NULL };
- const gchar *working_directory;
- GcmCalibrateArgyllPrivate *priv = calibrate_argyll->priv;
-
- /* clear */
- priv->state = GCM_CALIBRATE_ARGYLL_STATE_IDLE;
- vte_terminal_reset (VTE_TERMINAL(priv->terminal), TRUE, FALSE);
-
- /* try to run */
- working_directory = gcm_calibrate_get_working_path (GCM_CALIBRATE (calibrate_argyll));
- ret = vte_terminal_spawn_sync (VTE_TERMINAL(priv->terminal),
- VTE_PTY_DEFAULT,
- working_directory,
- argv, (gchar**)envp,
-#ifdef FIXED_ARGYLL
- 0,
-#else
- G_SPAWN_FILE_AND_ARGV_ZERO,
-#endif
- NULL, NULL,
- &priv->child_pid,
- NULL,
- error);
- if (!ret)
- return FALSE;
-
- /* we're running */
- priv->state = GCM_CALIBRATE_ARGYLL_STATE_RUNNING;
-#else
- g_set_error_literal (error,
- GCM_CALIBRATE_ERROR,
- GCM_CALIBRATE_ERROR_INTERNAL,
- "no VTE support");
-#endif
- return ret;
-}
-
-static gboolean
-gcm_calibrate_argyll_display_neutralise (GcmCalibrateArgyll *calibrate_argyll,
- GError **error)
-{
- gboolean ret = TRUE;
- GcmCalibrateArgyllPrivate *priv = calibrate_argyll->priv;
- gchar kind;
- g_autofree gchar *command = NULL;
- g_auto(GStrv) argv = NULL;
- g_autoptr(GPtrArray) array = NULL;
- g_autofree gchar *basename = NULL;
- const gchar *output_name;
- guint display;
- guint target_whitepoint;
- CdSensorKind sensor_kind;
-
- g_object_get (calibrate_argyll,
- "sensor-kind", &sensor_kind,
- NULL);
-
- /* get shared data */
- g_object_get (calibrate_argyll,
- "basename", &basename,
- "target-whitepoint", &target_whitepoint,
- NULL);
-
- /* get correct name of the command */
- command = gcm_calibrate_argyll_get_tool_filename ("dispcal", error);
- if (command == NULL)
- return FALSE;
-
- /* match up the output name with the device number defined by dispcal */
- output_name = cd_device_get_metadata_item (priv->device,
- CD_DEVICE_METADATA_XRANDR_NAME);
- display = gcm_calibrate_argyll_get_display (output_name, error);
- if (display == G_MAXUINT)
- return FALSE;
-
- /* get l-cd or c-rt */
- kind = gcm_calibrate_argyll_get_display_kind (calibrate_argyll);
-
- gcm_calibrate_set_title (GCM_CALIBRATE (calibrate_argyll),
- /* TRANSLATORS: title, default paramters needed to calibrate_argyll */
- _("Getting default parameters"),
- GCM_CALIBRATE_UI_STATUS);
-
- gcm_calibrate_set_message (GCM_CALIBRATE (calibrate_argyll),
- /* TRANSLATORS: dialog message */
- _("This pre-calibrates the screen by sending colored and gray patches to your screen and measuring them with the hardware device."),
- GCM_CALIBRATE_UI_STATUS);
-
- /* argument array */
- array = g_ptr_array_new_with_free_func (g_free);
-
- /* setup the command */
-#ifdef FIXED_ARGYLL
- g_ptr_array_add (array, g_strdup (command));
-#endif
- g_ptr_array_add (array, g_strdup ("-v"));
- g_ptr_array_add (array, g_strdup (gcm_calibrate_argyll_get_quality_arg (calibrate_argyll)));
- g_ptr_array_add (array, g_strdup ("-m"));
- if (target_whitepoint > 0)
- g_ptr_array_add (array, g_strdup_printf ("-t%u", target_whitepoint));
- g_ptr_array_add (array, g_strdup_printf ("-d%u", display));
- g_ptr_array_add (array, g_strdup_printf ("-y%c", kind));
- if (sensor_kind == CD_SENSOR_KIND_COLOR_MUNKI_PHOTO) {
- g_ptr_array_add (array, g_strdup ("-H"));
- }
- g_ptr_array_add (array, g_strdup_printf ("-P %s", gcm_calibrate_argyll_get_sensor_test_window_size (calibrate_argyll)));
- g_ptr_array_add (array, g_strdup (basename));
- argv = gcm_utils_ptr_array_to_strv (array);
- gcm_calibrate_argyll_debug_argv (command, argv);
-
- /* start up the command */
- ret = gcm_calibrate_argyll_fork_command (calibrate_argyll, argv, error);
- if (!ret)
- return FALSE;
-
- /* wait until finished */
- g_main_loop_run (priv->loop);
-
- /* get result */
- if (priv->response == GTK_RESPONSE_CANCEL) {
- g_set_error_literal (error,
- GCM_CALIBRATE_ERROR,
- GCM_CALIBRATE_ERROR_USER_ABORT,
- "Calibration was cancelled");
- return FALSE;
- }
-#ifdef HAVE_VTE
- if (priv->response == GTK_RESPONSE_REJECT) {
- g_autofree gchar *vte_text = NULL;
- vte_text = vte_terminal_get_text (VTE_TERMINAL(priv->terminal), NULL, NULL, NULL);
- g_set_error (error,
- GCM_CALIBRATE_ERROR,
- GCM_CALIBRATE_ERROR_INTERNAL,
- "Command failed to run successfully: %s", vte_text);
- return FALSE;
- }
-#endif
- return TRUE;
-}
-
-static gboolean
-gcm_calibrate_argyll_display_read_chart (GcmCalibrateArgyll *calibrate_argyll,
- GError **error)
-{
- gboolean ret = TRUE;
- GcmCalibrateArgyllPrivate *priv = calibrate_argyll->priv;
- g_autofree gchar *command = NULL;
- g_auto(GStrv) argv = NULL;
- g_autoptr(GPtrArray) array = NULL;
- g_autofree gchar *basename = NULL;
-
- /* get shared data */
- g_object_get (calibrate_argyll,
- "basename", &basename,
- NULL);
-
- /* get correct name of the command */
- command = gcm_calibrate_argyll_get_tool_filename ("chartread", error);
- if (command == NULL)
- return FALSE;
-
- gcm_calibrate_set_title (GCM_CALIBRATE (calibrate_argyll),
- /* TRANSLATORS: title, patches are specific colours used in calibration */
- _("Reading the patches"),
- GCM_CALIBRATE_UI_STATUS);
-
- gcm_calibrate_set_message (GCM_CALIBRATE (calibrate_argyll),
- /* TRANSLATORS: dialog message */
- _("Reading the patches using the color measuring instrument."),
- GCM_CALIBRATE_UI_STATUS);
-
- /* argument array */
- array = g_ptr_array_new_with_free_func (g_free);
-
- /* setup the command */
-#ifdef FIXED_ARGYLL
- g_ptr_array_add (array, g_strdup (command));
-#endif
- g_ptr_array_add (array, g_strdup ("-v"));
- if (priv->done_calibrate)
- g_ptr_array_add (array, g_strdup ("-N"));
- g_ptr_array_add (array, g_strdup (basename));
- argv = gcm_utils_ptr_array_to_strv (array);
- gcm_calibrate_argyll_debug_argv (command, argv);
-
- /* start up the command */
- ret = gcm_calibrate_argyll_fork_command (calibrate_argyll, argv, error);
- if (!ret)
- return FALSE;
-
- /* wait until finished */
- g_main_loop_run (priv->loop);
-
- /* get result */
- if (priv->response == GTK_RESPONSE_CANCEL) {
- g_set_error_literal (error,
- GCM_CALIBRATE_ERROR,
- GCM_CALIBRATE_ERROR_USER_ABORT,
- "calibration was cancelled");
- return FALSE;
- }
-#ifdef HAVE_VTE
- if (priv->response == GTK_RESPONSE_REJECT) {
- g_autofree gchar *vte_text = NULL;
- vte_text = vte_terminal_get_text (VTE_TERMINAL(priv->terminal), NULL, NULL, NULL);
- g_set_error (error,
- GCM_CALIBRATE_ERROR,
- GCM_CALIBRATE_ERROR_INTERNAL,
- "command failed to run successfully: %s", vte_text);
- return FALSE;
- }
-#endif
- return TRUE;
-}
-
-static gboolean
-gcm_calibrate_argyll_display_draw_and_measure (GcmCalibrateArgyll *calibrate_argyll,
- GError **error)
-{
- gboolean ret = TRUE;
- GcmCalibrateArgyllPrivate *priv = calibrate_argyll->priv;
- gchar kind;
- g_autofree gchar *command = NULL;
- g_auto(GStrv) argv = NULL;
- g_autoptr(GPtrArray) array = NULL;
- g_autofree gchar *basename = NULL;
- const gchar *output_name;
- guint display;
- CdSensorKind sensor_kind;
-
- g_object_get (calibrate_argyll,
- "sensor-kind", &sensor_kind,
- NULL);
-
- /* get shared data */
- g_object_get (calibrate_argyll,
- "basename", &basename,
- NULL);
-
- /* get correct name of the command */
- command = gcm_calibrate_argyll_get_tool_filename ("dispread", error);
- if (command == NULL)
- return FALSE;
-
- /* match up the output name with the device number defined by dispcal */
- output_name = cd_device_get_metadata_item (priv->device,
- CD_DEVICE_METADATA_XRANDR_NAME);
- display = gcm_calibrate_argyll_get_display (output_name, error);
- if (display == G_MAXUINT)
- return FALSE;
-
- /* get l-cd or c-rt */
- kind = gcm_calibrate_argyll_get_display_kind (calibrate_argyll);
-
- gcm_calibrate_set_title (GCM_CALIBRATE (calibrate_argyll),
- /* TRANSLATORS: title, drawing means painting to the screen */
- _("Drawing the patches"),
- GCM_CALIBRATE_UI_STATUS);
-
- gcm_calibrate_set_message (GCM_CALIBRATE (calibrate_argyll),
- /* TRANSLATORS: dialog message */
- _("Drawing the generated patches to the screen, which will then be measured by the hardware device."),
- GCM_CALIBRATE_UI_STATUS);
-
- /* argument array */
- array = g_ptr_array_new_with_free_func (g_free);
-
- /* setup the command */
-#ifdef FIXED_ARGYLL
- g_ptr_array_add (array, g_strdup (command));
-#endif
- g_ptr_array_add (array, g_strdup ("-v"));
- g_ptr_array_add (array, g_strdup_printf ("-d%u", display));
- g_ptr_array_add (array, g_strdup_printf ("-y%c", kind));
- g_ptr_array_add (array, g_strdup ("-k"));
- g_ptr_array_add (array, g_strdup_printf ("%s.cal", basename));
- if (sensor_kind == CD_SENSOR_KIND_COLOR_MUNKI_PHOTO) {
- g_ptr_array_add (array, g_strdup ("-H"));
- g_ptr_array_add (array, g_strdup ("-N"));
- }
- g_ptr_array_add (array, g_strdup_printf ("-P %s", gcm_calibrate_argyll_get_sensor_test_window_size (calibrate_argyll)));
- g_ptr_array_add (array, g_strdup (basename));
- argv = gcm_utils_ptr_array_to_strv (array);
- gcm_calibrate_argyll_debug_argv (command, argv);
-
- /* start up the command */
- ret = gcm_calibrate_argyll_fork_command (calibrate_argyll, argv, error);
- if (!ret)
- return FALSE;
-
- /* wait until finished */
- g_main_loop_run (priv->loop);
-
- /* get result */
- if (priv->response == GTK_RESPONSE_CANCEL) {
- g_set_error_literal (error,
- GCM_CALIBRATE_ERROR,
- GCM_CALIBRATE_ERROR_USER_ABORT,
- "calibration was cancelled");
- return FALSE;
- }
-#ifdef HAVE_VTE
- if (priv->response == GTK_RESPONSE_REJECT) {
- g_autofree gchar *vte_text = NULL;
- vte_text = vte_terminal_get_text (VTE_TERMINAL(priv->terminal), NULL, NULL, NULL);
- g_set_error (error,
- GCM_CALIBRATE_ERROR,
- GCM_CALIBRATE_ERROR_INTERNAL,
- "command failed to run successfully: %s", vte_text);
- return FALSE;
- }
-#endif
- return TRUE;
-}
-
-static gboolean
-gcm_calibrate_argyll_display_generate_profile (GcmCalibrateArgyll *calibrate_argyll,
- GError **error)
-{
- gboolean ret = TRUE;
- GcmCalibrateArgyllPrivate *priv = calibrate_argyll->priv;
- g_auto(GStrv) argv = NULL;
- g_autofree gchar *copyright = NULL;
- g_autofree gchar *description = NULL;
- g_autofree gchar *manufacturer = NULL;
- g_autofree gchar *model = NULL;
- g_autofree gchar *command = NULL;
- g_autofree gchar *basename = NULL;
- g_autoptr(GPtrArray) array = NULL;
-
- /* get shared data */
- g_object_get (calibrate_argyll,
- "basename", &basename,
- "copyright", &copyright,
- "description", &description,
- "model", &model,
- "manufacturer", &manufacturer,
- NULL);
-
- /* get correct name of the command */
- command = gcm_calibrate_argyll_get_tool_filename ("colprof", error);
- if (command == NULL)
- return FALSE;
-
- gcm_calibrate_set_title (GCM_CALIBRATE (calibrate_argyll),
- /* TRANSLATORS: title, a profile is a ICC file */
- _("Generating the profile"),
- GCM_CALIBRATE_UI_STATUS);
-
- gcm_calibrate_set_message (GCM_CALIBRATE (calibrate_argyll),
- /* TRANSLATORS: dialog message */
- _("Generating the ICC color profile that can be used with this screen."),
- GCM_CALIBRATE_UI_STATUS);
-
- /* argument array */
- array = g_ptr_array_new_with_free_func (g_free);
-
- /* setup the command */
-#ifdef FIXED_ARGYLL
- g_ptr_array_add (array, g_strdup (command));
-#endif
- g_ptr_array_add (array, g_strdup ("-v"));
- g_ptr_array_add (array, g_strdup_printf ("-A%s", manufacturer));
- g_ptr_array_add (array, g_strdup_printf ("-M%s", model));
- g_ptr_array_add (array, g_strdup_printf ("-D%s", description));
- g_ptr_array_add (array, g_strdup_printf ("-C%s", copyright));
- g_ptr_array_add (array, g_strdup (gcm_calibrate_argyll_get_quality_arg (calibrate_argyll)));
- g_ptr_array_add (array, g_strdup ("-aG"));
- g_ptr_array_add (array, g_strdup ("-Zp"));
- g_ptr_array_add (array, g_strdup (basename));
- argv = gcm_utils_ptr_array_to_strv (array);
- gcm_calibrate_argyll_debug_argv (command, argv);
-
- /* start up the command */
- ret = gcm_calibrate_argyll_fork_command (calibrate_argyll, argv, error);
- if (!ret)
- return FALSE;
-
- /* wait until finished */
- g_main_loop_run (priv->loop);
-
- /* get result */
- if (priv->response == GTK_RESPONSE_CANCEL) {
- g_set_error_literal (error,
- GCM_CALIBRATE_ERROR,
- GCM_CALIBRATE_ERROR_USER_ABORT,
- "calibration was cancelled");
- return FALSE;
- }
-#ifdef HAVE_VTE
- if (priv->response == GTK_RESPONSE_REJECT) {
- gchar *vte_text;
- vte_text = vte_terminal_get_text (VTE_TERMINAL(priv->terminal), NULL, NULL, NULL);
- g_set_error (error,
- GCM_CALIBRATE_ERROR,
- GCM_CALIBRATE_ERROR_INTERNAL,
- "command failed to run successfully: %s", vte_text);
- g_free (vte_text);
- return FALSE;
- }
-#endif
- return TRUE;
-}
-
-static const gchar *
-gcm_calibrate_argyll_reference_kind_to_filename (GcmCalibrateReferenceKind kind)
-{
- if (kind == GCM_CALIBRATE_REFERENCE_KIND_CMP_DIGITAL_TARGET_3)
- return "CMP_Digital_Target-3.cht";
- if (kind == GCM_CALIBRATE_REFERENCE_KIND_CMP_DT_003)
- return "CMP_DT_003.cht";
- if (kind == GCM_CALIBRATE_REFERENCE_KIND_COLOR_CHECKER)
- return "ColorChecker.cht";
- if (kind == GCM_CALIBRATE_REFERENCE_KIND_COLOR_CHECKER_DC)
- return "ColorCheckerDC.cht";
- if (kind == GCM_CALIBRATE_REFERENCE_KIND_COLOR_CHECKER_SG)
- return "ColorCheckerSG.cht";
- if (kind == GCM_CALIBRATE_REFERENCE_KIND_HUTCHCOLOR)
- return "Hutchcolor.cht";
- if (kind == GCM_CALIBRATE_REFERENCE_KIND_I1_RGB_SCAN_1_4)
- return "i1_RGB_Scan_1.4.cht";
- if (kind == GCM_CALIBRATE_REFERENCE_KIND_IT8)
- return "it8.cht";
- if (kind == GCM_CALIBRATE_REFERENCE_KIND_LASER_SOFT_DC_PRO)
- return "LaserSoftDCPro.cht";
- if (kind == GCM_CALIBRATE_REFERENCE_KIND_QPCARD_201)
- return "QPcard_201.cht";
- g_assert_not_reached ();
- return NULL;
-}
-
-static gboolean
-gcm_utils_mkdir_and_copy (GFile *source,
- GFile *destination,
- GError **error)
-{
- g_autoptr(GFile) parent = NULL;
-
- g_return_val_if_fail (source != NULL, FALSE);
- g_return_val_if_fail (destination != NULL, FALSE);
-
- /* create directory */
- parent = g_file_get_parent (destination);
- if (!g_file_query_exists (parent, NULL)) {
- if (!g_file_make_directory_with_parents (parent, NULL, error))
- return FALSE;
- }
-
- /* do the copy */
- return g_file_copy (source,
- destination,
- G_FILE_COPY_OVERWRITE,
- NULL,
- NULL,
- NULL,
- error);
-}
-
-static gboolean
-gcm_calibrate_argyll_device_copy (GcmCalibrateArgyll *calibrate_argyll,
- GError **error)
-{
- g_autofree gchar *device = NULL;
- g_autofree gchar *destination_cht = NULL;
- g_autofree gchar *destination_ref = NULL;
- g_autofree gchar *filename = NULL;
- g_autofree gchar *basename = NULL;
- g_autofree gchar *filename_cht = NULL;
- g_autofree gchar *filename_source = NULL;
- g_autofree gchar *filename_reference = NULL;
- g_autoptr(GFile) file_cht = NULL;
- g_autoptr(GFile) file_source = NULL;
- g_autoptr(GFile) file_reference = NULL;
- g_autoptr(GFile) dest_cht = NULL;
- g_autoptr(GFile) dest_source = NULL;
- g_autoptr(GFile) dest_reference = NULL;
- const gchar *working_path;
- const gchar *filename_tmp;
- GcmCalibrateReferenceKind reference_kind;
-
- /* get shared data */
- g_object_get (calibrate_argyll,
- "basename", &basename,
- "reference-kind", &reference_kind,
- "filename-source", &filename_source,
- "filename-reference", &filename_reference,
- NULL);
- working_path = gcm_calibrate_get_working_path (GCM_CALIBRATE (calibrate_argyll));
-
- gcm_calibrate_set_title (GCM_CALIBRATE (calibrate_argyll),
- /* TRANSLATORS: title, a profile is a ICC file */
- _("Copying files"),
- GCM_CALIBRATE_UI_STATUS);
-
- gcm_calibrate_set_message (GCM_CALIBRATE (calibrate_argyll),
- /* TRANSLATORS: dialog message */
- _("Copying source image, chart data and CIE reference values."),
- GCM_CALIBRATE_UI_STATUS);
-
- /* build filenames */
- filename = g_strdup_printf ("%s.tif", basename);
- device = g_build_filename (working_path, filename, NULL);
- destination_cht = g_build_filename (working_path, "scanin.cht", NULL);
- destination_ref = g_build_filename (working_path, "scanin-ref.txt", NULL);
-
- /* copy all files to /tmp as argyllcms doesn't cope well with paths */
- filename_tmp = gcm_calibrate_argyll_reference_kind_to_filename (reference_kind);
- filename_cht = g_build_filename ("/usr/share/color/argyll/ref", filename_tmp, NULL);
-
- /* do the copies */
- file_cht = g_file_new_for_path (filename_cht);
- dest_cht = g_file_new_for_path (destination_cht);
- if (!gcm_utils_mkdir_and_copy (file_cht, dest_cht, error))
- return FALSE;
- file_source = g_file_new_for_path (filename_source);
- dest_source = g_file_new_for_path (device);
- if (!gcm_utils_mkdir_and_copy (file_source, dest_source, error))
- return FALSE;
- file_reference = g_file_new_for_path (filename_reference);
- dest_reference = g_file_new_for_path (destination_ref);
- if (!gcm_utils_mkdir_and_copy (file_reference, dest_reference, error))
- return FALSE;
- return TRUE;
-}
-
-static gboolean
-gcm_calibrate_argyll_device_measure (GcmCalibrateArgyll *calibrate_argyll,
- GError **error)
-{
- gboolean ret = TRUE;
- GcmCalibrateArgyllPrivate *priv = calibrate_argyll->priv;
- g_auto(GStrv) argv = NULL;
- g_autoptr(GPtrArray) array = NULL;
- g_autofree gchar *filename = NULL;
- g_autofree gchar *command = NULL;
- g_autofree gchar *basename = NULL;
-
- /* get shared data */
- g_object_get (calibrate_argyll,
- "basename", &basename,
- NULL);
-
- gcm_calibrate_set_title (GCM_CALIBRATE (calibrate_argyll),
- /* TRANSLATORS: title, drawing means painting to the screen */
- _("Measuring the patches"),
- GCM_CALIBRATE_UI_STATUS);
-
- gcm_calibrate_set_message (GCM_CALIBRATE (calibrate_argyll),
- /* TRANSLATORS: dialog message */
- _("Detecting the reference patches and measuring them."),
- GCM_CALIBRATE_UI_STATUS);
-
- /* get correct name of the command */
- command = gcm_calibrate_argyll_get_tool_filename ("scanin", error);
- if (command == NULL)
- return FALSE;
-
- /* argument array */
- array = g_ptr_array_new_with_free_func (g_free);
- filename = g_strdup_printf ("%s.tif", basename);
-
- /* setup the command */
-#ifdef FIXED_ARGYLL
- g_ptr_array_add (array, g_strdup (command));
-#endif
- g_ptr_array_add (array, g_strdup ("-v"));
- g_ptr_array_add (array, g_strdup ("-p"));
- g_ptr_array_add (array, g_strdup ("-a"));
- g_ptr_array_add (array, g_strdup (filename));
- g_ptr_array_add (array, g_strdup ("scanin.cht"));
- g_ptr_array_add (array, g_strdup ("scanin-ref.txt"));
- argv = gcm_utils_ptr_array_to_strv (array);
- gcm_calibrate_argyll_debug_argv (command, argv);
-
- /* start up the command */
- ret = gcm_calibrate_argyll_fork_command (calibrate_argyll, argv, error);
- if (!ret)
- return FALSE;
-
- /* wait until finished */
- g_main_loop_run (priv->loop);
-
- /* get result */
- if (priv->response == GTK_RESPONSE_CANCEL) {
- g_set_error_literal (error,
- GCM_CALIBRATE_ERROR,
- GCM_CALIBRATE_ERROR_USER_ABORT,
- "calibration was cancelled");
- return FALSE;
- }
-#ifdef HAVE_VTE
- if (priv->response == GTK_RESPONSE_REJECT) {
- g_autofree gchar *vte_text = NULL;
- vte_text = vte_terminal_get_text (VTE_TERMINAL(priv->terminal), NULL, NULL, NULL);
- g_set_error (error,
- GCM_CALIBRATE_ERROR,
- GCM_CALIBRATE_ERROR_INTERNAL,
- "command failed to run successfully: %s", vte_text);
- return FALSE;
- }
-#endif
- return TRUE;
-}
-
-static gboolean
-gcm_calibrate_argyll_device_generate_profile (GcmCalibrateArgyll *calibrate_argyll,
- GError **error)
-{
- gboolean ret = TRUE;
- GcmCalibrateArgyllPrivate *priv = calibrate_argyll->priv;
- g_auto(GStrv) argv = NULL;
- g_autoptr(GPtrArray) array = NULL;
- g_autofree gchar *command = NULL;
- g_autofree gchar *basename = NULL;
- g_autofree gchar *copyright = NULL;
- g_autofree gchar *description = NULL;
- g_autofree gchar *manufacturer = NULL;
- g_autofree gchar *model = NULL;
- GcmCalibrateReferenceKind reference_kind;
-
- /* get shared data */
- g_object_get (calibrate_argyll,
- "basename", &basename,
- "copyright", &copyright,
- "description", &description,
- "model", &model,
- "manufacturer", &manufacturer,
- "reference-kind", &reference_kind,
- NULL);
-
- /* get correct name of the command */
- command = gcm_calibrate_argyll_get_tool_filename ("colprof", error);
- if (command == NULL)
- return FALSE;
-
- gcm_calibrate_set_title (GCM_CALIBRATE (calibrate_argyll),
- /* TRANSLATORS: title, a profile is a ICC file */
- _("Generating the profile"),
- GCM_CALIBRATE_UI_STATUS);
-
- gcm_calibrate_set_message (GCM_CALIBRATE (calibrate_argyll),
- /* TRANSLATORS: dialog message */
- _("Generating the ICC color profile that can be used with this device."),
- GCM_CALIBRATE_UI_STATUS);
-
- /* argument array */
- array = g_ptr_array_new_with_free_func (g_free);
-
- /* setup the command */
-#ifdef FIXED_ARGYLL
- g_ptr_array_add (array, g_strdup (command));
-#endif
- g_ptr_array_add (array, g_strdup ("-v"));
- g_ptr_array_add (array, g_strdup_printf ("-A%s", manufacturer));
- g_ptr_array_add (array, g_strdup_printf ("-M%s", model));
- g_ptr_array_add (array, g_strdup_printf ("-D%s", description));
- g_ptr_array_add (array, g_strdup_printf ("-C%s", copyright));
- g_ptr_array_add (array, g_strdup (gcm_calibrate_argyll_get_quality_arg (calibrate_argyll)));
-
- /* check whether the target is a low patch count target and generate low quality single shaper profile */
- if (reference_kind == GCM_CALIBRATE_REFERENCE_KIND_COLOR_CHECKER ||
- reference_kind == GCM_CALIBRATE_REFERENCE_KIND_QPCARD_201)
- g_ptr_array_add (array, g_strdup ("-aG"));
-
- g_ptr_array_add (array, g_strdup (basename));
- argv = gcm_utils_ptr_array_to_strv (array);
- gcm_calibrate_argyll_debug_argv (command, argv);
-
- /* start up the command */
- ret = gcm_calibrate_argyll_fork_command (calibrate_argyll, argv, error);
- if (!ret)
- return FALSE;
-
- /* wait until finished */
- g_main_loop_run (priv->loop);
-
- /* get result */
- if (priv->response == GTK_RESPONSE_CANCEL) {
- g_set_error_literal (error,
- GCM_CALIBRATE_ERROR,
- GCM_CALIBRATE_ERROR_USER_ABORT,
- "calibration was cancelled");
- return FALSE;
- }
-#ifdef HAVE_VTE
- if (priv->response == GTK_RESPONSE_REJECT) {
- gchar *vte_text;
- vte_text = vte_terminal_get_text (VTE_TERMINAL(priv->terminal), NULL, NULL, NULL);
- g_set_error (error,
- GCM_CALIBRATE_ERROR,
- GCM_CALIBRATE_ERROR_INTERNAL,
- "command failed to run successfully: %s", vte_text);
- g_free (vte_text);
- return FALSE;
- }
-#endif
- return TRUE;
-}
-
-static gboolean
-gcm_calibrate_argyll_set_filename_result (GcmCalibrateArgyll *calibrate_argyll,
- GError **error)
-{
- g_autofree gchar *filename = NULL;
- g_autofree gchar *basename = NULL;
- const gchar *working_path;
-
- /* get shared data */
- g_object_get (calibrate_argyll,
- "basename", &basename,
- NULL);
- working_path = gcm_calibrate_get_working_path (GCM_CALIBRATE (calibrate_argyll));
-
- /* we can't have finished with success */
- if (basename == NULL) {
- g_set_error_literal (error,
- GCM_CALIBRATE_ERROR,
- GCM_CALIBRATE_ERROR_INTERNAL,
- "profile was not generated");
- return FALSE;
- }
-
- /* get the finished icc file */
- filename = g_strdup_printf ("%s/%s.icc", working_path, basename);
-
- /* we never finished all the steps */
- if (!g_file_test (filename, G_FILE_TEST_EXISTS)) {
- g_set_error_literal (error,
- GCM_CALIBRATE_ERROR,
- GCM_CALIBRATE_ERROR_INTERNAL,
- "could not find completed profile");
- return FALSE;
- }
-
- /* success */
- g_object_set (calibrate_argyll,
- "filename-result", filename,
- NULL);
- return TRUE;
-}
-
-static gboolean
-gcm_calibrate_argyll_remove_temp_files (GcmCalibrateArgyll *calibrate_argyll,
- GError **error)
-{
- gchar *filename_tmp;
- guint i;
- const gchar *exts[] = {"cal", "ti1", "ti3", "tif", NULL};
- const gchar *filenames[] = {"scanin.cht", "scanin-ref.txt", NULL};
- g_autofree gchar *basename = NULL;
- const gchar *working_path;
-
- /* get shared data */
- g_object_get (calibrate_argyll,
- "basename", &basename,
- NULL);
- working_path = gcm_calibrate_get_working_path (GCM_CALIBRATE (calibrate_argyll));
-
- /* remove all the temp files */
- if (basename != NULL) {
- for (i = 0; exts[i] != NULL; i++) {
- filename_tmp = g_strdup_printf ("%s/%s.%s", working_path, basename, exts[i]);
- if (g_file_test (filename_tmp, G_FILE_TEST_IS_REGULAR)) {
- g_debug ("removing %s", filename_tmp);
- g_unlink (filename_tmp);
- }
- g_free (filename_tmp);
- }
- }
-
- /* remove all the temp files */
- for (i = 0; filenames[i] != NULL; i++) {
- filename_tmp = g_strdup_printf ("%s/%s", working_path, filenames[i]);
- if (g_file_test (filename_tmp, G_FILE_TEST_IS_REGULAR)) {
- g_debug ("removing %s", filename_tmp);
- g_unlink (filename_tmp);
- }
- g_free (filename_tmp);
- }
-
- /* success */
- return TRUE;
-}
-
-static gboolean
-gcm_calibrate_argyll_display (GcmCalibrate *calibrate,
- CdDevice *device,
- CdSensor *sensor,
- GtkWindow *window,
- GError **error)
-{
- GcmCalibrateArgyll *calibrate_argyll = GCM_CALIBRATE_ARGYLL(calibrate);
- GcmCalibrateArgyllPrivate *priv = calibrate_argyll->priv;
-
- priv->device = g_object_ref (device);
-
-{
- GtkWidget *vbox;
- GtkWidget *expander;
-
- /* pack terminal into expander */
- expander = gtk_expander_new (NULL);
- gtk_container_add (GTK_CONTAINER (expander),
- calibrate_argyll->priv->terminal);
- gtk_expander_set_expanded (GTK_EXPANDER (expander), FALSE);
-
- /* pack the expander in the content area */
- vbox = gcm_calibrate_get_content_widget (GCM_CALIBRATE (calibrate_argyll));
- gtk_box_pack_start (GTK_BOX (vbox),
- expander,
- FALSE, FALSE, 0);
-
- /* show both */
- gtk_widget_show_all (expander);
-}
-
- /* step 1 */
- if (!gcm_calibrate_argyll_display_neutralise (calibrate_argyll, error))
- return FALSE;
-
- /* set progress */
- gcm_calibrate_set_progress (calibrate, 30);
-
- /* step 3 */
- if (!gcm_calibrate_argyll_display_draw_and_measure (calibrate_argyll, error))
- return FALSE;
-
- /* set progress */
- gcm_calibrate_set_progress (calibrate, 40);
-
- /* step 4 */
- if (!gcm_calibrate_argyll_display_generate_profile (calibrate_argyll, error))
- return FALSE;
-
- /* set progress */
- gcm_calibrate_set_progress (calibrate, 80);
-
- /* step 5 */
- if (!gcm_calibrate_argyll_remove_temp_files (calibrate_argyll, error))
- return FALSE;
-
- /* step 6 */
- if (!gcm_calibrate_argyll_set_filename_result (calibrate_argyll, error))
- return FALSE;
- return TRUE;
-}
-
-static void
-gcm_calibrate_argyll_interaction (GcmCalibrate *calibrate, GtkResponseType response)
-{
- GcmCalibrateArgyll *calibrate_argyll = GCM_CALIBRATE_ARGYLL(calibrate);
- GcmCalibrateArgyllPrivate *priv = calibrate_argyll->priv;
-
- /* save our state */
- priv->response = response;
-
- /* ok */
- if (response == GTK_RESPONSE_OK) {
-
- /* send input if waiting */
- if (priv->state == GCM_CALIBRATE_ARGYLL_STATE_WAITING_FOR_STDIN) {
- g_debug ("sending '%s' to argyll", priv->argyllcms_ok);
-#ifdef HAVE_VTE
- vte_terminal_feed_child (VTE_TERMINAL(priv->terminal), priv->argyllcms_ok, 1);
-#endif
- priv->state = GCM_CALIBRATE_ARGYLL_STATE_RUNNING;
- }
-
- /* clear loop if waiting */
- if (priv->state == GCM_CALIBRATE_ARGYLL_STATE_WAITING_FOR_LOOP) {
- g_main_loop_quit (priv->loop);
- priv->state = GCM_CALIBRATE_ARGYLL_STATE_RUNNING;
- }
- return;
- }
-
- /* cancel */
- if (response == GTK_RESPONSE_CANCEL) {
-
- /* send input if waiting */
- if (priv->state == GCM_CALIBRATE_ARGYLL_STATE_WAITING_FOR_STDIN) {
- g_debug ("sending 'Q' to argyll");
-#ifdef HAVE_VTE
- vte_terminal_feed_child (VTE_TERMINAL(priv->terminal), "Q", 1);
-#endif
- priv->state = GCM_CALIBRATE_ARGYLL_STATE_RUNNING;
- }
-
- /* clear loop if waiting */
- if (priv->state == GCM_CALIBRATE_ARGYLL_STATE_WAITING_FOR_LOOP) {
- g_main_loop_quit (priv->loop);
- priv->state = GCM_CALIBRATE_ARGYLL_STATE_RUNNING;
- }
-
- /* stop loop */
- if (g_main_loop_is_running (priv->loop))
- g_main_loop_quit (priv->loop);
- return;
- }
-}
-
-static const gchar *
-gcm_calibrate_argyll_get_sensor_target (GcmCalibrateArgyll *calibrate_argyll)
-{
- CdSensorKind sensor_kind;
-
- g_object_get (calibrate_argyll,
- "sensor-kind", &sensor_kind,
- NULL);
-
- if (sensor_kind == CD_SENSOR_KIND_DTP20)
- return "20";
- if (sensor_kind == CD_SENSOR_KIND_DTP22)
- return "22";
- if (sensor_kind == CD_SENSOR_KIND_DTP41)
- return "41";
- if (sensor_kind == CD_SENSOR_KIND_DTP51)
- return "51";
- if (sensor_kind == CD_SENSOR_KIND_SPECTRO_SCAN)
- return "SS";
- if (sensor_kind == CD_SENSOR_KIND_I1_PRO)
- return "i1";
- if (sensor_kind == CD_SENSOR_KIND_COLOR_MUNKI_PHOTO)
- return "CM";
- return NULL;
-}
-
-static gboolean
-gcm_calibrate_argyll_printer_generate_targets (GcmCalibrateArgyll *calibrate_argyll,
- gdouble width,
- gdouble height,
- GError **error)
-{
- gboolean ret = TRUE;
- GcmCalibrateArgyllPrivate *priv = calibrate_argyll->priv;
- g_autofree gchar *command = NULL;
- g_auto(GStrv) argv = NULL;
- g_autoptr(GPtrArray) array = NULL;
- g_autofree gchar *basename = NULL;
- CdSensorKind sensor_kind;
-
- /* get shared data */
- g_object_get (calibrate_argyll,
- "basename", &basename,
- "sensor-kind", &sensor_kind,
- NULL);
-
- /* get correct name of the command */
- command = gcm_calibrate_argyll_get_tool_filename ("printtarg", error);
- if (command == NULL)
- return FALSE;
-
- gcm_calibrate_set_title (GCM_CALIBRATE (calibrate_argyll),
- /* TRANSLATORS: title, patches are specific colors used in calibration */
- _("Printing patches"),
- GCM_CALIBRATE_UI_STATUS);
-
- gcm_calibrate_set_message (GCM_CALIBRATE (calibrate_argyll),
- /* TRANSLATORS: dialog message */
- _("Rendering the patches for the selected paper and ink."),
- GCM_CALIBRATE_UI_STATUS);
-
- /* argument array */
- array = g_ptr_array_new_with_free_func (g_free);
-
- /* setup the command */
-#ifdef FIXED_ARGYLL
- g_ptr_array_add (array, g_strdup (command));
-#endif
- g_ptr_array_add (array, g_strdup ("-v"));
-
- /* target instrument */
- g_ptr_array_add (array, g_strdup_printf ("-i%s", gcm_calibrate_argyll_get_sensor_target (calibrate_argyll)));
-
-#ifdef USE_DOUBLE_DENSITY
- /* use double density */
- if (sensor_kind == CD_SENSOR_KIND_COLOR_MUNKI_PHOTO ||
- sensor_kind == CD_SENSOR_KIND_SPECTRO_SCAN) {
- g_ptr_array_add (array, g_strdup ("-h"));
- }
-#endif
-
- /* 8 bit TIFF 300 dpi */
- g_ptr_array_add (array, g_strdup ("-t300"));
-
- /* paper size */
- g_ptr_array_add (array, g_strdup_printf ("-p%ix%i", (gint) width, (gint) height));
-
- g_ptr_array_add (array, g_strdup (basename));
- argv = gcm_utils_ptr_array_to_strv (array);
- gcm_calibrate_argyll_debug_argv (command, argv);
-
- /* start up the command */
- ret = gcm_calibrate_argyll_fork_command (calibrate_argyll, argv, error);
- if (!ret)
- return FALSE;
-
- /* wait until finished */
- g_main_loop_run (priv->loop);
-
- /* get result */
- if (priv->response == GTK_RESPONSE_CANCEL) {
- g_set_error_literal (error,
- GCM_CALIBRATE_ERROR,
- GCM_CALIBRATE_ERROR_USER_ABORT,
- "target generation was cancelled");
- return FALSE;
- }
-#ifdef HAVE_VTE
- if (priv->response == GTK_RESPONSE_REJECT) {
- g_autofree gchar *vte_text = NULL;
- vte_text = vte_terminal_get_text (VTE_TERMINAL(priv->terminal), NULL, NULL, NULL);
- g_set_error (error,
- GCM_CALIBRATE_ERROR,
- GCM_CALIBRATE_ERROR_INTERNAL,
- "command failed to run successfully: %s", vte_text);
- return FALSE;
- }
-#endif
- return TRUE;
-}
-
-static gboolean
-gcm_calibrate_argyll_get_enabled (GcmCalibrate *calibrate)
-{
- g_autofree gchar *command = NULL;
- g_autoptr(GError) error = NULL;
-
- /* get correct name of the command */
- command = gcm_calibrate_argyll_get_tool_filename ("dispcal", &error);
- if (command == NULL) {
- g_debug ("Failed to find dispcal: %s", error->message);
- return FALSE;
- }
- return TRUE;
-}
-
-static GPtrArray *
-gcm_calibrate_argyll_render_cb (GcmPrint *print,
- GtkPageSetup *page_setup,
- GcmCalibrate *calibrate,
- GError **error)
-{
- gboolean ret = TRUE;
- g_autoptr(GPtrArray) array = NULL;
- gdouble width, height;
- GtkPaperSize *paper_size;
- g_autoptr(GDir) dir = NULL;
- const gchar *filename;
- g_autofree gchar *basename = NULL;
- gchar *filename_tmp;
- const gchar *working_path;
-
- /* get shared data */
- g_object_get (calibrate,
- "basename", &basename,
- NULL);
- working_path = gcm_calibrate_get_working_path (calibrate);
-
- paper_size = gtk_page_setup_get_paper_size (page_setup);
- width = gtk_paper_size_get_width (paper_size, GTK_UNIT_MM);
- height = gtk_paper_size_get_height (paper_size, GTK_UNIT_MM);
-
- /* generate the tiff files */
- ret = gcm_calibrate_argyll_printer_generate_targets (GCM_CALIBRATE_ARGYLL (calibrate),
- width,
- height,
- error);
- if (!ret)
- return NULL;
-
- /* list files */
- dir = g_dir_open (working_path, 0, error);
- if (dir == NULL)
- return NULL;
-
- /* read in each file */
- array = g_ptr_array_new_with_free_func (g_free);
- filename = g_dir_read_name (dir);
- while (filename != NULL) {
- if (g_str_has_prefix (filename, basename) &&
- g_str_has_suffix (filename, ".tif")) {
- filename_tmp = g_build_filename (working_path, filename, NULL);
- g_debug ("add print page %s", filename_tmp);
- g_ptr_array_add (array, filename_tmp);
- }
- filename = g_dir_read_name (dir);
- }
- return array;
-}
-
-static gboolean
-gcm_calibrate_argyll_set_device_from_ti2 (GcmCalibrate *calibrate,
- const gchar *filename,
- GError **error)
-{
- g_autofree gchar *contents = NULL;
- g_autofree gchar *device = NULL;
- const gchar *device_ptr = NULL;
- g_auto(GStrv) lines = NULL;
- gint i;
-
- /* get the contents of the file */
- if (!g_file_get_contents (filename, &contents, NULL, error))
- return FALSE;
-
- /* find the data */
- lines = g_strsplit (contents, "\n", -1);
- for (i = 0; lines[i] != NULL; i++) {
- if (g_str_has_prefix (lines[i], "TARGET_INSTRUMENT")) {
- device = g_strdup (lines[i] + 18);
- g_strdelimit (device, "\"", ' ');
- g_strstrip (device);
- break;
- }
- }
-
- /* set the calibration model */
- if (device == NULL) {
- g_set_error (error,
- GCM_CALIBRATE_ERROR,
- GCM_CALIBRATE_ERROR_NO_DATA,
- "cannot find TARGET_INSTRUMENT in %s", filename);
- return FALSE;
- }
-
- /* remove vendor prefix */
- if (g_str_has_prefix (device, "X-Rite "))
- device_ptr = device + 7;
-
- /* set for calibration */
- g_debug ("setting instrument to '%s'", device_ptr);
- g_object_set (calibrate,
- "device", device_ptr,
- NULL);
- return TRUE;
-}
-
-static GtkPaperSize *
-gcm_calibrate_argyll_get_paper_size (GcmCalibrate *calibrate, GtkWindow *window)
-{
- g_autoptr(GtkPrintSettings) settings = NULL;
- GtkPageSetup *page_setup;
-
- /* find out the paper size */
- settings = gtk_print_settings_new ();
- page_setup = gtk_print_run_page_setup_dialog (window, NULL, settings);
- if (page_setup == NULL)
- return NULL;
-
- /* get paper size */
- return gtk_page_setup_get_paper_size (page_setup);
-}
-
-static gboolean
-gcm_calibrate_argyll_printer_convert_jpeg (GcmCalibrateArgyll *calibrate_argyll,
- GError **error)
-{
- g_autoptr(GDir) dir = NULL;
- const gchar *filename;
- guint len;
- gboolean ret = TRUE;
- const gchar *working_path;
-
- /* need to ask if we are printing now, or using old data */
- working_path = gcm_calibrate_get_working_path (GCM_CALIBRATE (calibrate_argyll));
- dir = g_dir_open (working_path, 0, error);
- if (dir == NULL)
- return FALSE;
-
- filename = g_dir_read_name (dir);
- while (filename != NULL) {
- if (g_str_has_suffix (filename, ".tif")) {
- g_autoptr(GdkPixbuf) pixbuf = NULL;
- g_autofree gchar *filename_tiff = NULL;
- g_autofree gchar *filename_jpg = NULL;
-
- /* get both files */
- filename_tiff = g_build_filename (working_path, filename, NULL);
- filename_jpg = g_strdup (filename_tiff);
-
- /* replace ending */
- len = strlen (filename_jpg);
- g_strlcpy (filename_jpg+len-4, ".jpg", 5);
-
- /* convert from tiff to jpg */
- g_debug ("convert %s to %s", filename_tiff, filename_jpg);
- pixbuf = gdk_pixbuf_new_from_file (filename_tiff, error);
- if (pixbuf == NULL)
- return FALSE;
-
- /* try to save new file */
- ret = gdk_pixbuf_save (pixbuf,
- filename_jpg,
- "jpeg",
- error,
- "quality",
- "100",
- NULL);
- if (!ret)
- return FALSE;
- }
- filename = g_dir_read_name (dir);
- }
- return TRUE;
-}
-
-static gboolean
-gcm_calibrate_argyll_printer (GcmCalibrate *calibrate,
- CdDevice *device,
- CdSensor *sensor,
- GtkWindow *window,
- GError **error)
-{
- gboolean ret;
- const gchar *working_path;
- GtkPaperSize *paper_size;
- gdouble width, height;
- GcmCalibratePrintKind print_kind;
- GcmCalibrateArgyll *calibrate_argyll = GCM_CALIBRATE_ARGYLL(calibrate);
- GcmCalibrateArgyllPrivate *priv = calibrate_argyll->priv;
- g_autofree gchar *basename = NULL;
- g_autofree gchar *cmdline = NULL;
- g_autofree gchar *filename = NULL;
-
- /* need to ask if we are printing now, or using old data */
- g_object_get (calibrate,
- "basename", &basename,
- "print-kind", &print_kind,
- NULL);
- g_assert (print_kind != GCM_CALIBRATE_PRINT_KIND_UNKNOWN);
- working_path = gcm_calibrate_get_working_path (GCM_CALIBRATE (calibrate_argyll));
-
- /* print */
- if (print_kind == GCM_CALIBRATE_PRINT_KIND_LOCAL) {
- ret = gcm_print_with_render_callback (priv->print,
- window,
- (GcmPrintRenderCb) gcm_calibrate_argyll_render_cb,
- calibrate,
- error);
- if (!ret)
- return FALSE;
- }
-
- /* page setup, and then we're done */
- if (print_kind == GCM_CALIBRATE_PRINT_KIND_GENERATE) {
- const gchar *argv[] = { BINDIR "/nautilus", "", NULL };
-
- /* get the paper size */
- paper_size = gcm_calibrate_argyll_get_paper_size (calibrate, window);
- width = gtk_paper_size_get_width (paper_size, GTK_UNIT_MM);
- height = gtk_paper_size_get_height (paper_size, GTK_UNIT_MM);
-
- /* generate the tiff files */
- ret = gcm_calibrate_argyll_printer_generate_targets (GCM_CALIBRATE_ARGYLL (calibrate),
- width,
- height,
- error);
- if (!ret)
- return FALSE;
-
- /* convert to jpegs */
- ret = gcm_calibrate_argyll_printer_convert_jpeg (GCM_CALIBRATE_ARGYLL (calibrate),
- error);
- if (!ret)
- return FALSE;
-
- g_debug ("we need to open the directory we're using: %s", working_path);
- argv[1] = working_path;
- ret = g_spawn_async (NULL,
- (gchar **) argv,
- NULL,
- 0,
- NULL, NULL,
- NULL,
- error);
- return FALSE;
- }
-
- /* wait */
- if (print_kind == GCM_CALIBRATE_PRINT_KIND_LOCAL) {
- gcm_calibrate_set_title (GCM_CALIBRATE (calibrate_argyll),
- /* TRANSLATORS: title, patches are specific colours used in calibration */
- _("Wait for the ink to dry"),
- GCM_CALIBRATE_UI_STATUS);
-
- gcm_calibrate_set_message (GCM_CALIBRATE (calibrate_argyll),
- /* TRANSLATORS: dialog message */
- _("Please wait a few minutes for the ink to dry. Profiling damp ink will produce a poor profile and may damage your color measuring instrument."),
- GCM_CALIBRATE_UI_STATUS);
-
- }
-
- /* set progress */
- gcm_calibrate_set_progress (calibrate, 30);
-
- /* we need to read the ti2 file to set the device used for calibration */
- if (print_kind == GCM_CALIBRATE_PRINT_KIND_ANALYZE) {
- filename = g_strdup_printf ("%s/%s.ti2", working_path, basename);
- ret = g_file_test (filename, G_FILE_TEST_EXISTS);
- if (!ret) {
- g_set_error (error,
- GCM_CALIBRATE_ERROR,
- GCM_CALIBRATE_ERROR_NO_DATA,
- "cannot find %s", filename);
- return FALSE;
- }
- ret = gcm_calibrate_argyll_set_device_from_ti2 (calibrate, filename, error);
- if (!ret)
- return FALSE;
- }
-
- /* set progress */
- gcm_calibrate_set_progress (calibrate, 60);
-
- /* step 3 */
- ret = gcm_calibrate_argyll_display_read_chart (calibrate_argyll, error);
- if (!ret)
- return FALSE;
-
- /* set progress */
- gcm_calibrate_set_progress (calibrate, 80);
-
- /* step 4 */
- ret = gcm_calibrate_argyll_device_generate_profile (calibrate_argyll,
- error);
- if (!ret)
- return FALSE;
-
- /* only delete state if we are doing a local printer */
- if (print_kind == GCM_CALIBRATE_PRINT_KIND_LOCAL) {
- /* step 5 */
- ret = gcm_calibrate_argyll_remove_temp_files (calibrate_argyll,
- error);
- if (!ret)
- return FALSE;
- }
-
- /* step 6 */
- ret = gcm_calibrate_argyll_set_filename_result (calibrate_argyll,
- error);
- if (!ret)
- return FALSE;
- return TRUE;
-}
-
-static GdkPixbuf *
-gcm_calibrate_argyll_pixbuf_remove_alpha (const GdkPixbuf *pixbuf)
-{
- GdkPixbuf *new_pixbuf = NULL;
- gint x, y;
- guchar *src, *dest;
-
- /* already no alpha */
- if (!gdk_pixbuf_get_has_alpha (pixbuf))
- return gdk_pixbuf_copy (pixbuf);
-
- /* create new image, and copy RGB */
- new_pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8,
- gdk_pixbuf_get_width (pixbuf),
- gdk_pixbuf_get_height (pixbuf));
- for (y = 0; y < gdk_pixbuf_get_height (pixbuf); y++) {
- src = gdk_pixbuf_get_pixels (pixbuf) + y * gdk_pixbuf_get_rowstride (pixbuf);
- dest = gdk_pixbuf_get_pixels (new_pixbuf) + y * gdk_pixbuf_get_rowstride (new_pixbuf);
-
- /* copy RGB from RGBA */
- for (x = 0; x < gdk_pixbuf_get_width (pixbuf); x++) {
- dest[0] = src[0];
- dest[1] = src[1];
- dest[2] = src[2];
- src += 4;
- dest += 3;
- }
- }
- return new_pixbuf;
-}
-
-static gboolean
-gcm_calibrate_argyll_check_and_remove_alpha (GcmCalibrateArgyll *calibrate_argyll,
- GError **error)
-{
- const gchar *working_path;
- g_autofree gchar *basename = NULL;
- g_autofree gchar *filename = NULL;
- g_autofree gchar *reference_image = NULL;
- g_autoptr(GdkPixbuf) pixbuf_new = NULL;
- g_autoptr(GdkPixbuf) pixbuf = NULL;
-
- /* get shared data */
- g_object_get (calibrate_argyll,
- "basename", &basename,
- NULL);
- working_path = gcm_calibrate_get_working_path (GCM_CALIBRATE (calibrate_argyll));
-
- /* get copied filename */
- filename = g_strdup_printf ("%s.tif", basename);
- reference_image = g_build_filename (working_path, filename, NULL);
-
- /* check to see if the file has any alpha channel */
- pixbuf = gdk_pixbuf_new_from_file (reference_image, error);
- if (pixbuf == NULL)
- return FALSE;
-
- /* plain RGB */
- if (!gdk_pixbuf_get_has_alpha (pixbuf))
- return TRUE;
-
- /* remove the alpha channel */
- pixbuf_new = gcm_calibrate_argyll_pixbuf_remove_alpha (pixbuf);
- if (pixbuf_new == NULL) {
- g_set_error_literal (error,
- GCM_CALIBRATE_ERROR,
- GCM_CALIBRATE_ERROR_INTERNAL,
- "failed to remove alpha channel");
- return FALSE;
- }
-
- /* save */
- return gdk_pixbuf_save (pixbuf_new, reference_image, "tiff", error, NULL);
-}
-
-static gboolean
-gcm_calibrate_argyll_device (GcmCalibrate *calibrate,
- CdDevice *device,
- CdSensor *sensor,
- GtkWindow *window,
- GError **error)
-{
- GcmCalibrateArgyll *calibrate_argyll = GCM_CALIBRATE_ARGYLL(calibrate);
-
- gcm_calibrate_set_title (GCM_CALIBRATE (calibrate_argyll),
- /* TRANSLATORS: title, instrument refers to a calibration device */
- _("Set up instrument"),
- GCM_CALIBRATE_UI_STATUS);
-
- gcm_calibrate_set_message (GCM_CALIBRATE (calibrate_argyll),
- /* TRANSLATORS: dialog message */
- _("Setting up the instrument for use…"),
- GCM_CALIBRATE_UI_STATUS);
-
-
- /* step 1 */
- if (!gcm_calibrate_argyll_device_copy (calibrate_argyll, error))
- return FALSE;
-
- /* step 1.5 */
- if (!gcm_calibrate_argyll_check_and_remove_alpha (calibrate_argyll, error))
- return FALSE;
-
- /* set progress */
- gcm_calibrate_set_progress (calibrate, 10);
-
- /* step 2 */
- if (!gcm_calibrate_argyll_device_measure (calibrate_argyll, error))
- return FALSE;
-
- /* set progress */
- gcm_calibrate_set_progress (calibrate, 70);
-
- /* step 3 */
- if (!gcm_calibrate_argyll_device_generate_profile (calibrate_argyll, error))
- return FALSE;
-
- /* set progress */
- gcm_calibrate_set_progress (calibrate, 80);
-
- /* step 4 */
- if (!gcm_calibrate_argyll_remove_temp_files (calibrate_argyll, error))
- return FALSE;
-
- /* set progress */
- gcm_calibrate_set_progress (calibrate, 90);
-
- /* step 5 */
- if (!gcm_calibrate_argyll_set_filename_result (calibrate_argyll, error))
- return FALSE;
- return TRUE;
-}
-
-#ifdef HAVE_VTE
-
-static void gcm_calibrate_argyll_flush_vte (GcmCalibrateArgyll *calibrate_argyll);
-
-static void
-gcm_calibrate_argyll_exit_cb (VteTerminal *terminal,
- gint exit_status,
- GcmCalibrateArgyll *calibrate_argyll)
-{
- GcmCalibrateArgyllPrivate *priv = calibrate_argyll->priv;
-
- /* flush the VTE output */
- gcm_calibrate_argyll_flush_vte (calibrate_argyll);
-
- g_debug ("child exit-status is %i", exit_status);
- if (exit_status == 0)
- priv->response = GTK_RESPONSE_ACCEPT;
- else
- priv->response = GTK_RESPONSE_REJECT;
-
- priv->child_pid = -1;
- if (g_main_loop_is_running (priv->loop)) {
- priv->state = GCM_CALIBRATE_ARGYLL_STATE_IDLE;
- g_main_loop_quit (priv->loop);
- }
-}
-
-static gboolean
-gcm_calibrate_argyll_timeout_cb (GcmCalibrateArgyll *calibrate_argyll)
-{
- vte_terminal_feed_child (VTE_TERMINAL(calibrate_argyll->priv->terminal), "\n", 1);
- return FALSE;
-}
-
-static void
-gcm_calibrate_argyll_interaction_attach (GcmCalibrateArgyll *calibrate_argyll)
-{
- GcmCalibrateArgyllPrivate *priv = calibrate_argyll->priv;
-
- /* different tools assume the device is not on the screen */
- if (priv->already_on_window) {
- g_debug ("VTE: already on screen so faking keypress");
- priv->keypress_id = g_timeout_add_seconds (1,
- (GSourceFunc) gcm_calibrate_argyll_timeout_cb,
- calibrate_argyll);
- g_source_set_name_by_id (priv->keypress_id, "[GcmCalibrateArgyll] keypress faker");
- return;
- }
-
- /* tell the user to attach the sensor */
- gcm_calibrate_interaction_attach (GCM_CALIBRATE (calibrate_argyll));
-
- /* block for a response */
- g_debug ("blocking waiting for user input");
- priv->argyllcms_ok = "\n";
- priv->state = GCM_CALIBRATE_ARGYLL_STATE_WAITING_FOR_STDIN,
-
- /* save as we know the device is on the screen now */
- priv->already_on_window = TRUE;
-}
-
-static void
-gcm_calibrate_argyll_interaction_calibrate (GcmCalibrateArgyll *calibrate_argyll)
-{
- GcmCalibrateArgyllPrivate *priv = calibrate_argyll->priv;
-
- /* standard dialog */
- gcm_calibrate_interaction_calibrate (GCM_CALIBRATE (calibrate_argyll));
-
- /* block for a response */
- g_debug ("blocking waiting for user input");
-
- /* assume it's no longer on the window */
- priv->already_on_window = FALSE;
-
- /* assume it was done correctly */
- priv->done_calibrate = TRUE;
- priv->argyllcms_ok = "\n";
- priv->state = GCM_CALIBRATE_ARGYLL_STATE_WAITING_FOR_STDIN;
-}
-
-static void
-gcm_calibrate_argyll_interaction_surface (GcmCalibrateArgyll *calibrate_argyll)
-{
- GcmCalibrateArgyllPrivate *priv = calibrate_argyll->priv;
-
- /* standard dialog */
- gcm_calibrate_interaction_screen (GCM_CALIBRATE (calibrate_argyll));
-
- /* block for a response */
- g_debug ("blocking waiting for user input");
-
- /* assume it's no longer on the window */
- priv->already_on_window = FALSE;
-
- /* set state */
- priv->argyllcms_ok = "\n";
- priv->state = GCM_CALIBRATE_ARGYLL_STATE_WAITING_FOR_STDIN;
-}
-
-static gboolean
-gcm_calibrate_argyll_process_output_cmd (GcmCalibrateArgyll *calibrate_argyll,
- const gchar *line)
-{
- gchar *found;
- GcmCalibrateArgyllPrivate *priv = calibrate_argyll->priv;
- g_autofree gchar *title_str = NULL;
- g_auto(GStrv) split = NULL;
- g_autoptr(GString) string = NULL;
-
- /* attach device */
- if (g_strcmp0 (line, "Place instrument on test window.") == 0) {
- g_debug ("VTE: interaction required: %s", line);
- gcm_calibrate_argyll_interaction_attach (calibrate_argyll);
- return TRUE;
- }
-
- /* set to calibrate */
- if (g_strcmp0 (line, "Set instrument sensor to calibration position,") == 0) {
- g_debug ("VTE: interaction required, set to calibrate");
- gcm_calibrate_argyll_interaction_calibrate (calibrate_argyll);
- return TRUE;
- }
-
- /* set to calibrate */
- if (g_strcmp0 (line, "(Sensor should be in surface position)") == 0) {
- g_debug ("VTE: interaction required, set to surface");
- gcm_calibrate_argyll_interaction_surface (calibrate_argyll);
- return TRUE;
- }
-
- /* something went wrong with a measurement */
- if (g_strstr_len (line, -1, "Measurement misread") != NULL) {
- gcm_calibrate_set_title (GCM_CALIBRATE (calibrate_argyll),
- /* TRANSLATORS: title, the calibration failed */
- _("Calibration error"),
- GCM_CALIBRATE_UI_ERROR);
-
- gcm_calibrate_set_message (GCM_CALIBRATE (calibrate_argyll),
- /* TRANSLATORS: message, the sample was not read correctly */
- _("The sample could not be read at this time."),
- GCM_CALIBRATE_UI_ERROR);
-
-
- /* set state */
- priv->argyllcms_ok = "\n";
- priv->state = GCM_CALIBRATE_ARGYLL_STATE_WAITING_FOR_STDIN;
- gcm_calibrate_interaction_required (GCM_CALIBRATE (calibrate_argyll), _("Retry"));
-
- /* play sound from the naming spec */
- ca_context_play (ca_gtk_context_get (), 0,
- CA_PROP_EVENT_ID, "dialog-warning",
- /* TRANSLATORS: this is the application name for libcanberra */
- CA_PROP_APPLICATION_NAME, _("GNOME Color Manager"),
- CA_PROP_EVENT_DESCRIPTION, "unspecified error", NULL);
- return TRUE;
- }
-
- /* lines we're ignoring */
- if (g_strcmp0 (line, "Q") == 0 ||
- g_strcmp0 (line, "Sample read stopped at user request!") == 0 ||
- g_strcmp0 (line, "Hit Esc or Q to give up, any other key to retry:") == 0 ||
- g_strcmp0 (line, "Correct position then hit Esc or Q to give up, any other key to retry:") == 0 ||
- g_strcmp0 (line, "Calibration complete") == 0 ||
- g_strcmp0 (line, "Spot read failed due to the sensor being in the wrong position") == 0 ||
- g_strcmp0 (line, "and then hit any key to continue,") == 0 ||
- g_strcmp0 (line, "or hit Esc or Q to abort:") == 0 ||
- g_strcmp0 (line, "The instrument can be removed from the screen.") == 0 ||
- g_strstr_len (line, -1, "User Aborted") != NULL ||
- g_str_has_prefix (line, "Perspective correction factors") ||
- g_str_has_suffix (line, "key to continue:")) {
- g_debug ("VTE: ignore: %s", line);
- return TRUE;
- }
-
- /* spot read result */
- found = g_strstr_len (line, -1, "Result is XYZ");
- if (found != NULL) {
- g_autoptr(CdColorXYZ) xyz = NULL;
- g_warning ("line=%s", line);
- split = g_strsplit (line, " ", -1);
- xyz = cd_color_xyz_new ();
- g_object_set (xyz,
- "cie-x", g_ascii_strtod (split[4], NULL),
- "cie-y", g_ascii_strtod (split[5], NULL),
- "cie-z", g_ascii_strtod (split[6], NULL),
- NULL);
- g_object_set (calibrate_argyll,
- "xyz", xyz,
- NULL);
- priv->done_spot_read = TRUE;
- return TRUE;
- }
-
- /* error */
- found = g_strstr_len (line, -1, "Error - ");
- if (found != NULL) {
-
- gcm_calibrate_set_title (GCM_CALIBRATE (calibrate_argyll),
- /* TRANSLATORS: title, the calibration failed */
- _("Calibration error"),
- GCM_CALIBRATE_UI_ERROR);
-
- if (g_strstr_len (line, -1, "No PLD firmware pattern is available") != NULL) {
- gcm_calibrate_set_message (GCM_CALIBRATE (calibrate_argyll),
- /* TRANSLATORS: message, no firmware is available */
- _("No firmware is installed for this instrument."),
- GCM_CALIBRATE_UI_ERROR);
- } else if (g_strstr_len (line, -1, "Pattern match wasn't good enough") != NULL) {
- gcm_calibrate_set_message (GCM_CALIBRATE (calibrate_argyll),
- /* TRANSLATORS: message, the image wasn't good enough */
- _("The pattern match wasn’t good enough. Ensure you have the correct type of target selected."),
- GCM_CALIBRATE_UI_ERROR);
- } else if (g_strstr_len (line, -1, "Aprox. fwd matrix unexpectedly singular") != NULL ||
- g_strstr_len (line, -1, "Inverting aprox. fwd matrix failed") != NULL) {
- gcm_calibrate_set_message (GCM_CALIBRATE (calibrate_argyll),
- /* TRANSLATORS: message, the sensor got no readings */
- _("The measuring instrument got no valid readings. Please ensure the aperture is fully open."),
- GCM_CALIBRATE_UI_ERROR);
- } else if (g_strstr_len (line, -1, "Device or resource busy") != NULL) {
- gcm_calibrate_set_message (GCM_CALIBRATE (calibrate_argyll),
- /* TRANSLATORS: message, the colorimeter has got confused */
- _("The measuring instrument is busy and is not starting up. Please remove the USB plug and re-insert before trying to use this device."),
- GCM_CALIBRATE_UI_ERROR);
- } else {
- gcm_calibrate_set_message (GCM_CALIBRATE (calibrate_argyll),
- found + 8,
- GCM_CALIBRATE_UI_ERROR);
- }
-
-
- g_debug ("VTE: error: %s", found+8);
-
- /* set state */
- priv->state = GCM_CALIBRATE_ARGYLL_STATE_WAITING_FOR_LOOP;
-
- /* play sound from the naming spec */
- ca_context_play (ca_gtk_context_get (), 0,
- CA_PROP_EVENT_ID, "dialog-warning",
- /* TRANSLATORS: this is the application name for libcanberra */
- CA_PROP_APPLICATION_NAME, _("GNOME Color Manager"),
- CA_PROP_EVENT_DESCRIPTION, "hardware error", NULL);
-
- /* wait until finished */
- g_main_loop_run (priv->loop);
- return TRUE;
- }
-
- /* all done */
- found = g_strstr_len (line, -1, "(All rows read)");
- if (found != NULL) {
- gcm_calibrate_set_image (GCM_CALIBRATE (calibrate_argyll), "scan-target-good.svg");
- vte_terminal_feed_child (VTE_TERMINAL(priv->terminal), "d", 1);
- return TRUE;
- }
-
- /* reading strip */
- if (g_str_has_prefix (line, "Strip read failed due to misread")) {
- gcm_calibrate_set_title (GCM_CALIBRATE (calibrate_argyll),
- /* TRANSLATORS: dialog title */
- _("Reading target"),
- GCM_CALIBRATE_UI_ERROR);
-
- gcm_calibrate_set_message (GCM_CALIBRATE (calibrate_argyll),
- /* TRANSLATORS: message, no firmware is available */
- _("Failed to read the strip correctly."),
- GCM_CALIBRATE_UI_ERROR);
-
- /* set state */
- priv->argyllcms_ok = "\n";
- priv->state = GCM_CALIBRATE_ARGYLL_STATE_WAITING_FOR_STDIN;
- gcm_calibrate_interaction_required (GCM_CALIBRATE (calibrate_argyll), _("Retry"));
-
- /* play sound from the naming spec */
- ca_context_play (ca_gtk_context_get (), 0,
- CA_PROP_EVENT_ID, "dialog-warning",
- /* TRANSLATORS: this is the application name for libcanberra */
- CA_PROP_APPLICATION_NAME, _("GNOME Color Manager"),
- CA_PROP_EVENT_DESCRIPTION, "failed to read strip", NULL);
- return TRUE;
- }
-
- /* reading sample */
- if (g_str_has_prefix (line, "Sample read failed due to misread")) {
- gcm_calibrate_set_title (GCM_CALIBRATE (calibrate_argyll),
- /* TRANSLATORS: dialog title */
- _("Reading sample"),
- GCM_CALIBRATE_UI_ERROR);
-
- gcm_calibrate_set_message (GCM_CALIBRATE (calibrate_argyll),
- /* TRANSLATORS: message, the sample read failed due to misread */
- _("Failed to read the color sample correctly."),
- GCM_CALIBRATE_UI_ERROR);
-
- /* set state */
- priv->argyllcms_ok = "\n";
- priv->state = GCM_CALIBRATE_ARGYLL_STATE_WAITING_FOR_STDIN;
- gcm_calibrate_interaction_required (GCM_CALIBRATE (calibrate_argyll), _("Retry"));
-
- /* play sound from the naming spec */
- ca_context_play (ca_gtk_context_get (), 0,
- CA_PROP_EVENT_ID, "dialog-warning",
- /* TRANSLATORS: this is the application name for libcanberra */
- CA_PROP_APPLICATION_NAME, _("GNOME Color Manager"),
- CA_PROP_EVENT_DESCRIPTION, "failed to read sample", NULL);
- return TRUE;
- }
-
- /* reading strip */
- if (g_str_has_prefix (line, "(Warning) Seem to have read strip pass ")) {
-
- /* find the strip we read, and the one we wanted */
- split = g_strsplit (line, " ", -1);
- g_strdelimit (split[10], "!", '\0');
-
- /* TRANSLATORS: dialog title, where %s is a letter like 'A' */
- title_str = g_strdup_printf (_("Read strip %s rather than %s!"), split[7], split[10]);
-
- string = g_string_new ("");
-
- /* TRANSLATORS: dialog message, just follow the hardware instructions */
- g_string_append (string, _("It looks like you’ve measured the wrong strip."));
- g_string_append (string, "\n\n");
-
- /* TRANSLATORS: dialog message, just follow the hardware instructions */
- g_string_append (string, _("If you’ve really measured the right one, it’s okay, it could just be unusual paper."));
- g_string_append (string, "\n\n");
-
- /* push new messages into the UI */
- gcm_calibrate_set_image (GCM_CALIBRATE (calibrate_argyll), "scan-target-bad.svg");
-
- /* set state */
- priv->argyllcms_ok = "\n";
- priv->state = GCM_CALIBRATE_ARGYLL_STATE_WAITING_FOR_STDIN;
- gcm_calibrate_interaction_required (GCM_CALIBRATE (calibrate_argyll), _("Retry"));
- return TRUE;
- }
-
- /* reading spot */
- if (g_str_has_prefix (line, "Place instrument on spot to be measured")) {
- if (!priv->done_spot_read)
- vte_terminal_feed_child (VTE_TERMINAL(priv->terminal), " ", 1);
- return TRUE;
- }
-
- /* reading strip */
- if (g_str_has_prefix (line, "Spot read failed due to misread")) {
-
- gcm_calibrate_set_title (GCM_CALIBRATE (calibrate_argyll),
- /* TRANSLATORS: title, the calibration failed */
- _("Device Error"),
- GCM_CALIBRATE_UI_ERROR);
-
- gcm_calibrate_set_message (GCM_CALIBRATE (calibrate_argyll),
- /* TRANSLATORS: message, the sample was not read correctly */
- _("The device could not measure the color spot correctly."),
- GCM_CALIBRATE_UI_ERROR);
-
- /* set state */
- priv->argyllcms_ok = " ";
- priv->state = GCM_CALIBRATE_ARGYLL_STATE_WAITING_FOR_STDIN;
- gcm_calibrate_interaction_required (GCM_CALIBRATE (calibrate_argyll), _("Retry"));
- return TRUE;
- }
-
- /* reading strip */
- if (g_str_has_prefix (line, "Ready to read strip pass ")) {
-
- /* TRANSLATORS: dialog title, where %s is a letter like 'A' */
- title_str = g_strdup_printf (_("Ready to read strip %s"), line+25);
-
- string = g_string_new ("");
-
- /* TRANSLATORS: dialog message, just follow the hardware instructions */
- g_string_append (string, _("Place the colorimeter on the area of white next to the letter and click and hold the measure switch."));
- g_string_append (string, "\n\n");
-
- /* TRANSLATORS: dialog message, just follow the hardware instructions */
- g_string_append (string, _("Slowly scan the target line from left to right and release the switch when you get to the end of the page."));
- g_string_append (string, "\n\n");
-
- /* TRANSLATORS: dialog message, the sensor has to be above the line */
- g_string_append (string, _("Ensure the center of the device is properly aligned with the row you are trying to measure."));
- g_string_append (string, "\n\n");
-
- /* TRANSLATORS: dialog message, just follow the hardware instructions */
- g_string_append (string, _("If you make a mistake, just release the switch, and you’ll get a chance to try again."));
-
- /* push new messages into the UI */
- gcm_calibrate_set_image (GCM_CALIBRATE (calibrate_argyll), "scan-target.svg");
- return TRUE;
- }
-
- /* update the percentage bar */
- if (g_str_has_prefix (line, "patch ")) {
- guint total;
- guint current;
- split = g_strsplit (line, " ", -1);
- if (g_strv_length (split) != 4) {
- g_warning ("invalid update format: %s", line);
- return TRUE;
- }
- current = atoi (split[1]);
- total = atoi (split[3]);
- if (total > 0) {
- gcm_calibrate_set_progress (GCM_CALIBRATE (calibrate_argyll),
- current * 100 / total);
- }
- return TRUE;
- }
-
- /* report a warning so friendly people report bugs */
- g_warning ("VTE: could not screenscrape: '%s'", line);
- return TRUE;
-}
-#endif
-
-#ifdef HAVE_VTE
-static gboolean
-gcm_calibrate_argyll_selection_func_cb (VteTerminal *terminal,
- glong column,
- glong row,
- gpointer data)
-{
- /* just select everything */
- return TRUE;
-}
-
-static void
-gcm_calibrate_argyll_flush_vte (GcmCalibrateArgyll *calibrate_argyll)
-{
- guint i;
- glong row;
- glong col;
- gboolean ret;
- GcmCalibrateArgyllPrivate *priv = calibrate_argyll->priv;
- VteTerminal *terminal = VTE_TERMINAL (priv->terminal);
- g_autofree gchar *output = NULL;
- g_auto(GStrv) split = NULL;
-
- /* select the text we've got since last time */
- vte_terminal_get_cursor_position (terminal, &col, &row);
- output = vte_terminal_get_text_range (terminal,
- priv->vte_previous_row,
- priv->vte_previous_col,
- row, col,
- gcm_calibrate_argyll_selection_func_cb,
- calibrate_argyll,
- NULL);
- split = g_strsplit (output, "\n", -1);
- for (i = 0; split[i] != NULL; i++) {
- g_strchomp (split[i]);
- if (split[i][0] == '\0')
- continue;
- ret = gcm_calibrate_argyll_process_output_cmd (calibrate_argyll, split[i]);
- if (!ret)
- break;
- }
-
- /* save, so we don't re-process old text */
- priv->vte_previous_row = row;
- priv->vte_previous_col = col;
-}
-
-static void
-gcm_calibrate_argyll_cursor_moved_cb (VteTerminal *terminal,
- GcmCalibrateArgyll *calibrate_argyll)
-{
- gcm_calibrate_argyll_flush_vte (calibrate_argyll);
-}
-
-#endif
-
-static void
-gcm_calibrate_argyll_status_changed_cb (GcmPrint *print,
- GtkPrintStatus status,
- GcmCalibrateArgyll *calibrate_argyll)
-{
- gcm_calibrate_set_title (GCM_CALIBRATE (calibrate_argyll),
- /* TRANSLATORS: title, printing reference files to media */
- _("Printing"),
- GCM_CALIBRATE_UI_STATUS);
-
- switch (status) {
- case GTK_PRINT_STATUS_INITIAL:
- case GTK_PRINT_STATUS_PREPARING:
- case GTK_PRINT_STATUS_GENERATING_DATA:
- gcm_calibrate_set_message (GCM_CALIBRATE (calibrate_argyll),
- /* TRANSLATORS: dialog message */
- _("Preparing the data for the printer."),
- GCM_CALIBRATE_UI_STATUS);
- break;
- case GTK_PRINT_STATUS_SENDING_DATA:
- case GTK_PRINT_STATUS_PENDING:
- case GTK_PRINT_STATUS_PENDING_ISSUE:
- gcm_calibrate_set_message (GCM_CALIBRATE (calibrate_argyll),
- /* TRANSLATORS: dialog message */
- _("Sending the targets to the printer."),
- GCM_CALIBRATE_UI_STATUS);
- break;
- case GTK_PRINT_STATUS_PRINTING:
- gcm_calibrate_set_message (GCM_CALIBRATE (calibrate_argyll),
- /* TRANSLATORS: dialog message */
- _("Printing the targets…"),
- GCM_CALIBRATE_UI_STATUS);
- break;
- case GTK_PRINT_STATUS_FINISHED:
- gcm_calibrate_set_message (GCM_CALIBRATE (calibrate_argyll),
- /* TRANSLATORS: dialog message */
- _("The printing has finished."),
- GCM_CALIBRATE_UI_STATUS);
- break;
- case GTK_PRINT_STATUS_FINISHED_ABORTED:
- gcm_calibrate_set_message (GCM_CALIBRATE (calibrate_argyll),
- /* TRANSLATORS: dialog message */
- _("The print was aborted."),
- GCM_CALIBRATE_UI_STATUS);
- break;
- default:
- break;
- }
-}
-
-static void
-gcm_calibrate_argyll_class_init (GcmCalibrateArgyllClass *klass)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
- GcmCalibrateClass *parent_class = GCM_CALIBRATE_CLASS (klass);
- object_class->finalize = gcm_calibrate_argyll_finalize;
-
- /* setup klass links */
- parent_class->calibrate_display = gcm_calibrate_argyll_display;
- parent_class->calibrate_device = gcm_calibrate_argyll_device;
- parent_class->calibrate_printer = gcm_calibrate_argyll_printer;
- parent_class->get_enabled = gcm_calibrate_argyll_get_enabled;
- parent_class->interaction = gcm_calibrate_argyll_interaction;
-
- g_type_class_add_private (klass, sizeof (GcmCalibrateArgyllPrivate));
-}
-
-static void
-gcm_calibrate_argyll_init (GcmCalibrateArgyll *calibrate_argyll)
-{
- calibrate_argyll->priv = GCM_CALIBRATE_ARGYLL_GET_PRIVATE (calibrate_argyll);
- calibrate_argyll->priv->child_pid = -1;
- calibrate_argyll->priv->loop = g_main_loop_new (NULL, FALSE);
- calibrate_argyll->priv->vte_previous_row = 0;
- calibrate_argyll->priv->vte_previous_col = 0;
- calibrate_argyll->priv->already_on_window = FALSE;
- calibrate_argyll->priv->done_calibrate = FALSE;
- calibrate_argyll->priv->state = GCM_CALIBRATE_ARGYLL_STATE_IDLE;
- calibrate_argyll->priv->print = gcm_print_new ();
- g_signal_connect (calibrate_argyll->priv->print, "status-changed",
- G_CALLBACK (gcm_calibrate_argyll_status_changed_cb), calibrate_argyll);
-
- /* add vte widget */
-#ifdef HAVE_VTE
- calibrate_argyll->priv->terminal = vte_terminal_new ();
- vte_terminal_set_size (VTE_TERMINAL(calibrate_argyll->priv->terminal), 80, 10);
- g_signal_connect (calibrate_argyll->priv->terminal, "child-exited",
- G_CALLBACK (gcm_calibrate_argyll_exit_cb), calibrate_argyll);
- g_signal_connect (calibrate_argyll->priv->terminal, "cursor-moved",
- G_CALLBACK (gcm_calibrate_argyll_cursor_moved_cb), calibrate_argyll);
-#endif
-}
-
-static void
-gcm_calibrate_argyll_finalize (GObject *object)
-{
- GcmCalibrateArgyll *calibrate_argyll = GCM_CALIBRATE_ARGYLL (object);
- GcmCalibrateArgyllPrivate *priv = calibrate_argyll->priv;
-
- /* process running */
- if (priv->child_pid != -1) {
- g_debug ("killing child");
- kill (priv->child_pid, SIGKILL);
-
- /* wait until child has quit */
- g_main_loop_run (priv->loop);
- }
-
-#ifdef HAVE_VTE
- /* we don't care if the VTE widget redraws now */
- g_signal_handlers_disconnect_by_func (calibrate_argyll->priv->terminal,
- G_CALLBACK (gcm_calibrate_argyll_exit_cb),
- calibrate_argyll);
- g_signal_handlers_disconnect_by_func (calibrate_argyll->priv->terminal,
- G_CALLBACK (gcm_calibrate_argyll_cursor_moved_cb),
- calibrate_argyll);
-#endif
-
- if (priv->keypress_id != 0)
- g_source_remove (priv->keypress_id);
-
- g_main_loop_unref (priv->loop);
- g_object_unref (priv->print);
-
- G_OBJECT_CLASS (gcm_calibrate_argyll_parent_class)->finalize (object);
-}
-
-GcmCalibrate *
-gcm_calibrate_argyll_new (void)
-{
- GcmCalibrateArgyll *calibrate_argyll;
- calibrate_argyll = g_object_new (GCM_TYPE_CALIBRATE_ARGYLL, NULL);
- return GCM_CALIBRATE (calibrate_argyll);
-}
-
diff --git a/src/gcm-calibrate-argyll.h b/src/gcm-calibrate-argyll.h
deleted file mode 100644
index e1c84e5..0000000
--- a/src/gcm-calibrate-argyll.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * Copyright (C) 2009-2010 Richard Hughes <richard@hughsie.com>
- *
- * Licensed under the GNU General Public License Version 2
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#ifndef __GCM_CALIBRATE_ARGYLL_H
-#define __GCM_CALIBRATE_ARGYLL_H
-
-#include <glib-object.h>
-#include <gtk/gtk.h>
-
-#include "gcm-calibrate.h"
-
-G_BEGIN_DECLS
-
-#define GCM_TYPE_CALIBRATE_ARGYLL (gcm_calibrate_argyll_get_type ())
-#define GCM_CALIBRATE_ARGYLL(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GCM_TYPE_CALIBRATE_ARGYLL, GcmCalibrateArgyll))
-#define GCM_IS_CALIBRATE_ARGYLL(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GCM_TYPE_CALIBRATE_ARGYLL))
-
-typedef struct _GcmCalibrateArgyllPrivate GcmCalibrateArgyllPrivate;
-typedef struct _GcmCalibrateArgyll GcmCalibrateArgyll;
-typedef struct _GcmCalibrateArgyllClass GcmCalibrateArgyllClass;
-
-struct _GcmCalibrateArgyll
-{
- GcmCalibrate parent;
- GcmCalibrateArgyllPrivate *priv;
-};
-
-struct _GcmCalibrateArgyllClass
-{
- GcmCalibrateClass parent_class;
-};
-
-GType gcm_calibrate_argyll_get_type (void);
-GcmCalibrate *gcm_calibrate_argyll_new (void);
-
-G_END_DECLS
-
-#endif /* __GCM_CALIBRATE_ARGYLL_H */
-
diff --git a/src/gcm-calibrate-main.c b/src/gcm-calibrate-main.c
deleted file mode 100644
index 91e7b36..0000000
--- a/src/gcm-calibrate-main.c
+++ /dev/null
@@ -1,2233 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * Copyright (C) 2009-2015 Richard Hughes <richard@hughsie.com>
- *
- * Licensed under the GNU General Public License Version 2
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#include "config.h"
-
-#include <glib/gi18n.h>
-#include <gtk/gtk.h>
-#include <gdk/gdkx.h>
-#include <glib/gstdio.h>
-#include <locale.h>
-#include <canberra-gtk.h>
-#include <colord.h>
-#include <lcms2.h>
-#include <stdlib.h>
-
-#include "gcm-utils.h"
-#include "gcm-debug.h"
-#include "gcm-calibrate.h"
-#include "gcm-calibrate-argyll.h"
-
-typedef enum {
- GCM_CALIBRATE_PAGE_INTRO,
- GCM_CALIBRATE_PAGE_DISPLAY_KIND,
- GCM_CALIBRATE_PAGE_DISPLAY_TEMPERATURE,
- GCM_CALIBRATE_PAGE_DISPLAY_CONFIG,
- GCM_CALIBRATE_PAGE_INSTALL_ARGYLLCMS,
- GCM_CALIBRATE_PAGE_INSTALL_TARGETS,
- GCM_CALIBRATE_PAGE_PRECISION,
- GCM_CALIBRATE_PAGE_PRINT_KIND,
- GCM_CALIBRATE_PAGE_TARGET_KIND,
- GCM_CALIBRATE_PAGE_SENSOR,
- GCM_CALIBRATE_PAGE_ACTION,
- GCM_CALIBRATE_PAGE_FAILURE,
- GCM_CALIBRATE_PAGE_TITLE,
- GCM_CALIBRATE_PAGE_LAST
-} GcmCalibratePage;
-
-typedef struct {
- GtkApplication *application;
- CdClient *client;
- GcmCalibrate *calibrate;
- CdDevice *device;
- CdDeviceKind device_kind;
- GCancellable *cancellable;
- gchar *device_id;
- guint xid;
- GtkWindow *main_window;
- GPtrArray *pages;
- gboolean internal_lcd;
- GtkWidget *reference_preview;
- GtkWidget *action_title;
- GtkWidget *action_message;
- GtkWidget *action_image;
- GtkWidget *action_progress;
- gboolean has_pending_interaction;
- gboolean started_calibration;
- GcmCalibratePage current_page;
- gint inhibit_cookie;
-} GcmCalibratePriv;
-
-static void
-gcm_window_set_parent_xid (GtkWindow *window, guint32 xid)
-{
- GdkDisplay *display;
- GdkWindow *parent_window;
- GdkWindow *our_window;
-
- display = gdk_display_get_default ();
- parent_window = gdk_x11_window_foreign_new_for_display (display, xid);
- if (parent_window == NULL) {
- g_warning ("failed to get parent window");
- return;
- }
-
- gtk_widget_realize (GTK_WIDGET (window));
- our_window = gtk_widget_get_window (GTK_WIDGET (window));
- if (our_window == NULL) {
- g_warning ("failed to get our window");
- return;
- }
-
- /* set this above our parent */
- gtk_window_set_modal (window, TRUE);
- gdk_window_set_transient_for (our_window, parent_window);
- gtk_window_set_title (window, "");
-}
-
-static void
-gcm_calib_activate_cb (GApplication *application, GcmCalibratePriv *priv)
-{
- gtk_window_present (priv->main_window);
-}
-
-static void
-gcm_calib_confirm_quit_cb (GtkDialog *dialog,
- gint response_id,
- GcmCalibratePriv *priv)
-{
- if (response_id != GTK_RESPONSE_CLOSE) {
- gtk_widget_destroy (GTK_WIDGET (dialog));
- return;
- }
- gcm_calibrate_interaction (priv->calibrate, GTK_RESPONSE_CANCEL);
- g_application_release (G_APPLICATION (priv->application));
-}
-
-static void
-gcm_calib_confirm_quit (GcmCalibratePriv *priv)
-{
- GtkWidget *dialog;
-
- /* do not ask for confirmation on the initial page */
- if (priv->current_page == GCM_CALIBRATE_PAGE_INTRO)
- g_application_release (G_APPLICATION (priv->application));
-
- dialog = gtk_message_dialog_new (GTK_WINDOW (priv->main_window),
- GTK_DIALOG_MODAL,
- GTK_MESSAGE_QUESTION,
- GTK_BUTTONS_NONE,
- "%s", _("Calibration is not complete"));
- gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog),
- "%s",
- _("Are you sure you want to cancel the calibration?"));
- gtk_dialog_add_button (GTK_DIALOG (dialog),
- /* TRANSLATORS: button text */
- _("Continue calibration"),
- GTK_RESPONSE_CANCEL);
- gtk_dialog_add_button (GTK_DIALOG (dialog),
- /* TRANSLATORS: button text */
- _("Cancel and close"),
- GTK_RESPONSE_CLOSE);
- g_signal_connect (dialog, "response",
- G_CALLBACK (gcm_calib_confirm_quit_cb),
- priv);
- gtk_widget_show (dialog);
-}
-
-static gboolean
-gcm_calib_delete_event_cb (GtkWidget *widget, GdkEvent *event, GcmCalibratePriv *priv)
-{
- gcm_calib_confirm_quit (priv);
- return FALSE;
-}
-
-static void
-gcm_calib_assistant_cancel_cb (GtkAssistant *assistant, GcmCalibratePriv *priv)
-{
- gcm_calib_confirm_quit (priv);
-}
-
-static void
-gcm_calib_assistant_close_cb (GtkAssistant *assistant, GcmCalibratePriv *priv)
-{
- g_application_release (G_APPLICATION (priv->application));
-}
-
-static void
-gcm_calib_play_sound (GcmCalibratePriv *priv)
-{
- /* play sound from the naming spec */
- ca_context_play (ca_gtk_context_get (), 0,
- CA_PROP_EVENT_ID, "complete",
- /* TRANSLATORS: this is the application name for libcanberra */
- CA_PROP_APPLICATION_NAME, _("GNOME Color Manager"),
- /* TRANSLATORS: this is the sound description */
- CA_PROP_EVENT_DESCRIPTION, _("Profiling completed"),
- NULL);
-}
-
-
-static GtkWidget *
-gcm_calib_get_vbox_for_page (GcmCalibratePriv *priv,
- GcmCalibratePage page)
-{
- guint i;
- GtkWidget *tmp;
- GcmCalibratePage page_tmp;
-
- for (i = 0; i < priv->pages->len; i++) {
- tmp = g_ptr_array_index (priv->pages, i);
- page_tmp = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (tmp),
- "GcmCalibrateMain::Index"));
- if (page_tmp == page)
- return tmp;
- }
- return NULL;
-}
-
-static wchar_t *
-utf8_to_wchar_t (const char *src)
-{
- gsize len;
- gsize converted;
- wchar_t *buf = NULL;
-
- len = mbstowcs (NULL, src, 0);
- if (len == (gsize) -1) {
- g_warning ("Invalid UTF-8 in string %s", src);
- goto out;
- }
- len += 1;
- buf = g_malloc (sizeof (wchar_t) * len);
- converted = mbstowcs (buf, src, len - 1);
- g_assert (converted != (gsize) -1);
- buf[converted] = '\0';
-out:
- return buf;
-}
-
-static cmsBool
-_cmsDictAddEntryAscii (cmsHANDLE dict,
- const gchar *key,
- const gchar *value)
-{
- g_autofree wchar_t *mb_key = NULL;
- g_autofree wchar_t *mb_value = NULL;
-
- mb_key = utf8_to_wchar_t (key);
- if (mb_key == NULL)
- return FALSE;
- mb_value = utf8_to_wchar_t (value);
- if (mb_value == NULL)
- return FALSE;
- return cmsDictAddEntry (dict, mb_key, mb_value, NULL, NULL);
-}
-
-static gboolean
-gcm_calib_set_extra_metadata (GcmCalibratePriv *priv,
- const gchar *filename,
- GError **error)
-{
- cmsHANDLE dict = NULL;
- cmsHPROFILE lcms_profile;
- gboolean ret = TRUE;
- gsize len;
- guint percentage;
- CdSensor *sensor;
- g_autofree gchar *data = NULL;
- g_autofree gchar *screen_brightness_str = NULL;
-
- /* parse */
- ret = g_file_get_contents (filename, &data, &len, error);
- if (!ret)
- goto out;
- lcms_profile = cmsOpenProfileFromMem (data, len);
- if (lcms_profile == NULL) {
- g_set_error_literal (error, 1, 0,
- "failed to open profile");
- ret = FALSE;
- goto out;
- }
-
- /* just create a new dict */
- dict = cmsDictAlloc (NULL);
- _cmsDictAddEntryAscii (dict,
- CD_PROFILE_METADATA_CMF_PRODUCT,
- PACKAGE_NAME);
- _cmsDictAddEntryAscii (dict,
- CD_PROFILE_METADATA_CMF_BINARY,
- "gcm-calibrate");
- _cmsDictAddEntryAscii (dict,
- CD_PROFILE_METADATA_CMF_VERSION,
- PACKAGE_VERSION);
- _cmsDictAddEntryAscii (dict,
- CD_PROFILE_METADATA_DATA_SOURCE,
- CD_PROFILE_METADATA_DATA_SOURCE_CALIB);
- sensor = gcm_calibrate_get_sensor (priv->calibrate);
- if (sensor != NULL) {
- _cmsDictAddEntryAscii (dict,
- CD_PROFILE_METADATA_MEASUREMENT_DEVICE,
- cd_sensor_kind_to_string (cd_sensor_get_kind (sensor)));
- }
- _cmsDictAddEntryAscii (dict,
- CD_PROFILE_METADATA_MAPPING_DEVICE_ID,
- cd_device_get_id (priv->device));
-
- /* add the calibration brightness if an internal panel */
- percentage = gcm_calibrate_get_screen_brightness (priv->calibrate);
- if (percentage > 0) {
- screen_brightness_str = g_strdup_printf ("%u", percentage);
- _cmsDictAddEntryAscii (dict,
- CD_PROFILE_METADATA_SCREEN_BRIGHTNESS,
- screen_brightness_str);
- }
-
- /* just write dict */
- ret = cmsWriteTag (lcms_profile, cmsSigMetaTag, dict);
- if (!ret) {
- g_set_error_literal (error, 1, 0,
- "cannot write metadata");
- goto out;
- }
-
- /* write profile id */
- ret = cmsMD5computeID (lcms_profile);
- if (!ret) {
- g_set_error_literal (error, 1, 0,
- "failed to write profile id");
- goto out;
- }
-
- /* save, TODO: get error */
- cmsSaveProfileToFile (lcms_profile, filename);
- ret = TRUE;
-out:
- if (dict != NULL)
- cmsDictFree (dict);
- return ret;
-}
-
-static void
-gcm_calib_set_sensor_options_cb (GObject *object,
- GAsyncResult *res,
- gpointer user_data)
-{
- CdSensor *sensor = CD_SENSOR (object);
- gboolean ret;
- g_autoptr(GError) error = NULL;
-
- /* get return value */
- ret = cd_sensor_set_options_finish (sensor, res, &error);
- if (!ret) {
- g_warning ("Failed to set sensor option: %s",
- error->message);
- }
-}
-
-static void
-gcm_calib_set_sensor_options (GcmCalibratePriv *priv,
- const gchar *filename)
-{
- CdSensor *sensor;
- gboolean ret;
- gsize len;
- g_autofree gchar *data = NULL;
- g_autofree gchar *sha1 = NULL;
- g_autoptr(GError) error = NULL;
- g_autoptr(GHashTable) hash = NULL;
-
- /* get ChSensor */
- sensor = gcm_calibrate_get_sensor (priv->calibrate);
- if (sensor == NULL)
- return;
-
- /* set the remote profile hash */
- hash = g_hash_table_new_full (g_str_hash,
- g_str_equal,
- g_free,
- (GDestroyNotify) g_variant_unref);
- ret = g_file_get_contents (filename, &data, &len, &error);
- if (!ret) {
- g_warning ("Failed to get SHA1 hash: %s",
- error->message);
- return;
- }
- sha1 = g_compute_checksum_for_data (G_CHECKSUM_SHA1,
- (const guchar *) data,
- len);
- g_hash_table_insert (hash,
- g_strdup ("remote-profile-hash"),
- g_variant_ref_sink (g_variant_new_string (sha1)));
- cd_sensor_set_options (sensor, hash, NULL,
- gcm_calib_set_sensor_options_cb,
- priv);
-}
-
-static gboolean
-gcm_calib_start_idle_cb (gpointer user_data)
-{
- g_autoptr(CdProfile) profile = NULL;
- const gchar *filename;
- gboolean ret;
- GcmCalibratePriv *priv = (GcmCalibratePriv *) user_data;
- gint inhibit_cookie;
- GtkAssistant *assistant = GTK_ASSISTANT (priv->main_window);
- GtkWidget *vbox;
- g_autoptr(GError) error = NULL;
- g_autoptr(GFile) file = NULL;
-
- /* inhibit */
- inhibit_cookie = gtk_application_inhibit (priv->application,
- priv->main_window,
- GTK_APPLICATION_INHIBIT_LOGOUT |
- GTK_APPLICATION_INHIBIT_SWITCH |
- GTK_APPLICATION_INHIBIT_SUSPEND |
- GTK_APPLICATION_INHIBIT_IDLE,
- "Calibration in progress");
-
- /* actually do the action */
- priv->started_calibration = TRUE;
- ret = gcm_calibrate_device (priv->calibrate,
- priv->device,
- priv->main_window,
- &error);
- if (!ret) {
- gcm_calibrate_set_title (priv->calibrate,
- _("Failed to calibrate"),
- GCM_CALIBRATE_UI_ERROR);
- gcm_calibrate_set_message (priv->calibrate,
- error->message,
- GCM_CALIBRATE_UI_ERROR);
- gcm_calibrate_set_image (priv->calibrate, NULL);
-
- g_warning ("failed to calibrate: %s",
- error->message);
-
- /* mark this box as the end */
- vbox = gcm_calib_get_vbox_for_page (priv, GCM_CALIBRATE_PAGE_ACTION);
- gtk_assistant_set_page_type (assistant, vbox, GTK_ASSISTANT_PAGE_SUMMARY);
- gtk_assistant_set_page_complete (assistant, vbox, TRUE);
- goto out;
- }
-
- /* get profile */
- filename = gcm_calibrate_get_filename_result (priv->calibrate);
- if (filename == NULL) {
- g_warning ("failed to get filename from calibration");
- goto out;
- }
-
- /* set some private properties */
- ret = gcm_calib_set_extra_metadata (priv, filename, &error);
- if (!ret) {
- g_warning ("failed to set extra metadata: %s",
- error->message);
- goto out;
- }
-
- /* inform the sensor about the last successful profile */
- gcm_calib_set_sensor_options (priv, filename);
-
- /* copy the ICC file to the proper location */
- file = g_file_new_for_path (filename);
- profile = cd_client_import_profile_sync (priv->client,
- file,
- priv->cancellable,
- &error);
- if (profile == NULL) {
- g_warning ("failed to find calibration profile: %s",
- error->message);
- goto out;
- }
- ret = cd_device_add_profile_sync (priv->device,
- CD_DEVICE_RELATION_HARD,
- profile,
- priv->cancellable,
- &error);
- if (!ret) {
- g_warning ("failed to add %s to %s: %s",
- cd_profile_get_object_path (profile),
- cd_device_get_object_path (priv->device),
- error->message);
- goto out;
- }
-
- /* remove temporary file */
- g_unlink (filename);
-
- /* allow forward */
- vbox = gcm_calib_get_vbox_for_page (priv,
- GCM_CALIBRATE_PAGE_ACTION);
- gtk_assistant_set_page_complete (assistant,
- vbox, TRUE);
-
- /* set to summary page */
- gtk_assistant_set_current_page (assistant,
- gtk_assistant_get_n_pages (assistant) - 1);
-out:
- if (inhibit_cookie != 0) {
- gtk_application_uninhibit (priv->application,
- priv->inhibit_cookie);
- }
- return FALSE;
-}
-
-static gint
-gcm_calib_assistant_page_forward_cb (gint current_page, gpointer user_data)
-{
- GtkWidget *vbox;
- GcmCalibratePriv *priv = (GcmCalibratePriv *) user_data;
-
- /* shouldn't happen... */
- if (priv->current_page != GCM_CALIBRATE_PAGE_ACTION)
- return current_page + 1;
-
- if (!priv->has_pending_interaction)
- return current_page;
-
- /* continue calibration */
- gcm_calibrate_interaction (priv->calibrate, GTK_RESPONSE_OK);
- priv->has_pending_interaction = FALSE;
-
- /* no longer allow forward */
- vbox = gcm_calib_get_vbox_for_page (priv,
- GCM_CALIBRATE_PAGE_ACTION);
-
- gtk_assistant_set_page_complete (GTK_ASSISTANT (priv->main_window),
- vbox, FALSE);
- return current_page;
-}
-
-static gboolean
-gcm_calib_assistant_prepare_cb (GtkAssistant *assistant,
- GtkWidget *page_widget,
- GcmCalibratePriv *priv)
-{
- priv->current_page = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (page_widget),
- "GcmCalibrateMain::Index"));
- switch (priv->current_page) {
- case GCM_CALIBRATE_PAGE_LAST:
- gcm_calib_play_sound (priv);
- break;
- case GCM_CALIBRATE_PAGE_ACTION:
- g_debug ("lights! camera! action!");
- if (!priv->started_calibration)
- g_idle_add (gcm_calib_start_idle_cb, priv);
- break;
- default:
- break;
- }
-
- /* ensure we cancel argyllcms if the user clicks back */
- if (priv->current_page != GCM_CALIBRATE_PAGE_ACTION &&
- priv->started_calibration) {
- gcm_calibrate_interaction (priv->calibrate,
- GTK_RESPONSE_CANCEL);
- priv->started_calibration = FALSE;
- }
-
- /* forward on the action page just unsticks the calibration */
- if (priv->current_page == GCM_CALIBRATE_PAGE_ACTION) {
- gtk_assistant_set_forward_page_func (assistant,
- gcm_calib_assistant_page_forward_cb,
- priv,
- NULL);
- } else {
- gtk_assistant_set_forward_page_func (assistant,
- NULL, NULL, NULL);
- }
-
- /* use the default on each page */
- switch (priv->current_page) {
- case GCM_CALIBRATE_PAGE_INSTALL_ARGYLLCMS:
- case GCM_CALIBRATE_PAGE_SENSOR:
- case GCM_CALIBRATE_PAGE_ACTION:
- break;
- default:
- gtk_assistant_set_page_complete (assistant, page_widget, TRUE);
- break;
- }
- return FALSE;
-}
-
-static GtkWidget *
-gcm_calib_add_page_title (GcmCalibratePriv *priv, const gchar *text)
-{
- GtkWidget *label;
- GtkWidget *hbox;
- GtkWidget *vbox;
- g_autofree gchar *markup = NULL;
-
- markup = g_strdup_printf ("<span size=\"large\" font_weight=\"bold\">%s</span>", text);
- label = gtk_label_new (NULL);
- gtk_label_set_markup (GTK_LABEL (label), markup);
-
- /* make left aligned */
- hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
- gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0);
-
- /* header */
- vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 20);
- gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
- return vbox;
-}
-
-static gboolean
-gcm_calib_label_activate_link_cb (GtkLabel *label,
- gchar *uri,
- GcmCalibratePriv *priv)
-{
- gboolean ret;
- g_autoptr(GError) error = NULL;
- const gchar *argv[] = { BINDIR "/gnome-control-center color",
- "color",
- NULL };
- ret = g_spawn_async (NULL,
- (gchar **) argv,
- NULL,
- 0,
- NULL, NULL,
- NULL,
- &error);
- if (!ret) {
- g_warning ("failed to launch the control center: %s",
- error->message);
- }
- return ret;
-}
-
-static GtkWidget *
-gcm_calib_add_page_para (GtkWidget *vbox, const gchar *text)
-{
- GtkWidget *label;
- GtkWidget *hbox;
-
- label = gtk_label_new (NULL);
- g_signal_connect (label, "activate-link",
- G_CALLBACK (gcm_calib_label_activate_link_cb),
- NULL);
- gtk_label_set_markup (GTK_LABEL (label), text);
- gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
- gtk_label_set_width_chars (GTK_LABEL (label), 40);
- gtk_label_set_xalign (GTK_LABEL (label), 0.f);
- gtk_label_set_yalign (GTK_LABEL (label), 0.f);
-
- /* make left aligned */
- hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
- gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0);
- gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
- return label;
-}
-
-static void
-gcm_calib_add_page_bullet (GtkWidget *vbox, const gchar *text)
-{
- g_autofree gchar *markup = NULL;
- markup = g_strdup_printf ("• %s", text);
- gcm_calib_add_page_para (vbox, markup);
-}
-
-static void
-gcm_calib_setup_page_intro (GcmCalibratePriv *priv)
-{
- GtkWidget *vbox;
- GtkWidget *content;
- GtkAssistant *assistant = GTK_ASSISTANT (priv->main_window);
-
- /* TRANSLATORS: this is intro page text */
- switch (priv->device_kind) {
- case CD_DEVICE_KIND_CAMERA:
- case CD_DEVICE_KIND_WEBCAM:
- /* TRANSLATORS: this is the page title */
- vbox = gcm_calib_add_page_title (priv, _("Calibrate your camera"));
- break;
- case CD_DEVICE_KIND_DISPLAY:
- /* TRANSLATORS: this is the page title */
- vbox = gcm_calib_add_page_title (priv, _("Calibrate your display"));
- break;
- case CD_DEVICE_KIND_PRINTER:
- /* TRANSLATORS: this is the page title */
- vbox = gcm_calib_add_page_title (priv, _("Calibrate your printer"));
- break;
- default:
- /* TRANSLATORS: this is the page title */
- vbox = gcm_calib_add_page_title (priv, _("Calibrate your device"));
- break;
- }
-
- /* main contents */
- content = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
- gtk_box_pack_start (GTK_BOX (vbox), content, FALSE, FALSE, 0);
-
- /* TRANSLATORS: this is intro page text */
- switch (priv->device_kind) {
- case CD_DEVICE_KIND_DISPLAY:
- /* TRANSLATORS: this is the final intro page text */
- gcm_calib_add_page_para (content, _("Any existing screen correction will be temporarily turned off and the brightness set to maximum."));
- break;
- default:
- break;
- }
-
- /* TRANSLATORS: this is the final intro page text */
- gcm_calib_add_page_para (content, _("You can cancel this process at any stage by pressing the cancel button."));
-
- /* add to assistant */
- gtk_assistant_append_page (assistant, vbox);
- gtk_assistant_set_page_type (assistant, vbox, GTK_ASSISTANT_PAGE_INTRO);
- /* TRANSLATORS: this is the calibration wizard page title */
- gtk_assistant_set_page_title (assistant, vbox, _("Introduction"));
- gtk_assistant_set_page_complete (assistant, vbox, FALSE);
- g_ptr_array_add (priv->pages, vbox);
- g_object_set_data (G_OBJECT (vbox),
- "GcmCalibrateMain::Index",
- GUINT_TO_POINTER (GCM_CALIBRATE_PAGE_INTRO));
-
- /* show page */
- gtk_widget_show_all (vbox);
-}
-
-static gboolean
-gcm_calibrate_is_livecd (void)
-{
-#ifdef __linux__
- g_autofree gchar *data = NULL;
- g_autoptr(GError) error = NULL;
-
- /* get the kernel commandline */
- if (!g_file_get_contents ("/proc/cmdline", &data, NULL, &error)) {
- g_warning ("failed to get kernel command line: %s",
- error->message);
- return FALSE;
- }
- return (g_strstr_len (data, -1, "liveimg") != NULL ||
- g_strstr_len (data, -1, "casper") != NULL);
-#else
- return FALSE;
-#endif
-}
-
-static void
-gcm_calib_show_profile_button_clicked_cb (GtkButton *button,
- GcmCalibratePriv *priv)
-{
- const gchar *argv[] = { BINDIR "/nautilus", "", NULL };
- gboolean ret;
- g_autofree gchar *path = NULL;
- g_autoptr(GError) error = NULL;
-
- /* just hardcode nautilus to open the folder */
- path = g_build_filename (g_get_user_data_dir (), "icc", NULL);
- argv[1] = path;
- ret = g_spawn_async (NULL,
- (gchar **) argv,
- NULL,
- 0,
- NULL, NULL,
- NULL,
- &error);
- if (!ret) {
- g_warning ("failed to show profile: %s", error->message);
- return;
- }
-}
-
-static GtkWidget *
-gcm_calib_get_show_profile_button (GcmCalibratePriv *priv)
-{
- GtkStyleContext *context;
- GtkWidget *button;
- GtkWidget *image;
- GtkWidget *label;
- GtkWidget *vbox;
-
- /* add button to show profile */
- button = gtk_button_new ();
- vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
- image = gtk_image_new_from_icon_name ("folder-publicshare-symbolic",
- GTK_ICON_SIZE_DIALOG);
-
- /* make image have a gray foreground */
- context = gtk_widget_get_style_context (image);
- gtk_style_context_add_class (context, GTK_STYLE_CLASS_IMAGE);
-
- gtk_box_pack_start (GTK_BOX (vbox), image, FALSE, FALSE, 0);
- label = gtk_label_new (_("Show File"));
- gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
- gtk_container_add (GTK_CONTAINER (button), vbox);
- gtk_widget_set_tooltip_text (button, _("Click here to show the profile"));
- g_signal_connect (button, "clicked",
- G_CALLBACK (gcm_calib_show_profile_button_clicked_cb),
- priv);
- gtk_container_set_border_width (GTK_CONTAINER (vbox), 15);
- gtk_widget_set_halign (button, GTK_ALIGN_CENTER);
- gtk_widget_show_all (button);
- return button;
-}
-
-static void
-gcm_calib_setup_page_summary (GcmCalibratePriv *priv)
-{
- gboolean ret;
- GtkWidget *vbox;
- GtkWidget *content;
- GtkWidget *image;
- GtkAssistant *assistant = GTK_ASSISTANT (priv->main_window);
-
- /* TRANSLATORS: this is the page title */
- vbox = gcm_calib_add_page_title (priv, _("All done!"));
-
- /* main contents */
- content = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
- gtk_box_pack_start (GTK_BOX (vbox), content, FALSE, FALSE, 0);
-
- switch (priv->device_kind) {
- case CD_DEVICE_KIND_CAMERA:
- case CD_DEVICE_KIND_WEBCAM:
- /* TRANSLATORS: this is the final summary */
- gcm_calib_add_page_para (content, _("The camera has been calibrated successfully."));
- break;
- case CD_DEVICE_KIND_DISPLAY:
- /* TRANSLATORS: this is the final summary */
- gcm_calib_add_page_para (content, _("The display has been calibrated successfully."));
- break;
- case CD_DEVICE_KIND_PRINTER:
- /* TRANSLATORS: this is the final summary */
- gcm_calib_add_page_para (content, _("The printer has been calibrated successfully."));
- break;
- default:
- /* TRANSLATORS: this is the final summary */
- gcm_calib_add_page_para (content, _("The device has been calibrated successfully."));
- break;
- }
-
- /* only display the backlink if not launched from the control center itself */
- if (priv->xid == 0) {
- /* TRANSLATORS: this is the final summary */
- gcm_calib_add_page_para (content, _("To view details about the new profile or to undo the calibration visit the <a href=\"control-center://color\">control center</a>."));
- }
-
- /* show the user the profile to copy off the live system */
- ret = gcm_calibrate_is_livecd ();
- if (ret) {
- /* show button to copy profile */
- image = gcm_calib_get_show_profile_button (priv);
- gtk_box_pack_start (GTK_BOX (content), image, FALSE, FALSE, 30);
- gcm_calib_add_page_para (content, _("You can use the profile with <a href=\"import-linux\">Linux</a>, <a href=\"import-osx\">Apple OS X</a> and <a href=\"import-windows\">Microsoft Windows</a> systems."));
- } else {
- /* add image for success */
- image = gtk_image_new ();
- gtk_image_set_from_icon_name (GTK_IMAGE (image), "face-smile", GTK_ICON_SIZE_DIALOG);
- gtk_box_pack_start (GTK_BOX (content), image, FALSE, FALSE, 0);
- }
-
- /* add to assistant */
- gtk_assistant_append_page (assistant, vbox);
- gtk_assistant_set_page_type (assistant, vbox, GTK_ASSISTANT_PAGE_SUMMARY);
- /* TRANSLATORS: this is the calibration wizard page title */
- gtk_assistant_set_page_title (assistant, vbox, _("Summary"));
- gtk_assistant_set_page_complete (assistant, vbox, FALSE);
- g_ptr_array_add (priv->pages, vbox);
- g_object_set_data (G_OBJECT (vbox),
- "GcmCalibrateMain::Index",
- GUINT_TO_POINTER (GCM_CALIBRATE_PAGE_LAST));
-
- /* show page */
- gtk_widget_show_all (vbox);
-}
-
-static void
-gcm_calib_setup_page_action (GcmCalibratePriv *priv)
-{
- GtkWidget *vbox;
- GtkWidget *content;
- GList *list;
- GList *list2;
- GtkAssistant *assistant = GTK_ASSISTANT (priv->main_window);
-
- /* TRANSLATORS: this is the page title */
- vbox = gcm_calib_add_page_title (priv, _("Performing calibration"));
-
- /* grab title */
- list = gtk_container_get_children (GTK_CONTAINER (vbox));
- list2 = gtk_container_get_children (GTK_CONTAINER (list->data));
- priv->action_title = list2->data;
- g_list_free (list);
- g_list_free (list2);
-
- /* main contents */
- content = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
- gtk_box_pack_start (GTK_BOX (vbox), content, FALSE, FALSE, 0);
-
- priv->action_message = gcm_calib_add_page_para (content, _("Calibration is about to start"));
-
- /* add image for success */
- priv->action_image = gtk_image_new ();
- gtk_image_set_from_icon_name (GTK_IMAGE (priv->action_image), "face-frown", GTK_ICON_SIZE_DIALOG);
- gtk_box_pack_start (GTK_BOX (content), priv->action_image, FALSE, FALSE, 0);
-
- /* add progress marker */
- priv->action_progress = gtk_progress_bar_new ();
- gtk_box_pack_start (GTK_BOX (content), priv->action_progress, FALSE, FALSE, 0);
-
- /* add content widget */
- gcm_calibrate_set_content_widget (priv->calibrate, vbox);
-
- /* add to assistant */
- gtk_assistant_append_page (assistant, vbox);
- gtk_assistant_set_page_type (assistant, vbox, GTK_ASSISTANT_PAGE_CONTENT);
- /* TRANSLATORS: this is the calibration wizard page title */
- gtk_assistant_set_page_title (assistant, vbox, _("Action"));
- gtk_assistant_set_page_complete (assistant, vbox, FALSE);
- g_ptr_array_add (priv->pages, vbox);
- g_object_set_data (G_OBJECT (vbox),
- "GcmCalibrateMain::Index",
- GUINT_TO_POINTER (GCM_CALIBRATE_PAGE_ACTION));
-
- /* show page */
- gtk_widget_show_all (vbox);
- gtk_widget_hide (priv->action_image);
-}
-
-static void
-gcm_calib_setup_page_display_configure_wait (GcmCalibratePriv *priv)
-{
- GtkWidget *vbox;
- GtkWidget *content;
- GtkAssistant *assistant = GTK_ASSISTANT (priv->main_window);
-
- /* TRANSLATORS: dialog message, preface */
- vbox = gcm_calib_add_page_title (priv, _("Calibration checklist"));
-
- /* main contents */
- content = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
- gtk_box_pack_start (GTK_BOX (vbox), content, FALSE, FALSE, 0);
-
- /* TRANSLATORS: this is intro page text */
- gcm_calib_add_page_para (content, _("Before calibrating the display, it is recommended to configure your display with the following settings to get optimal results."));
-
- /* TRANSLATORS: dialog message, preface */
-if(0) gcm_calib_add_page_para (content, _("You may want to consult the owner’s manual for your display on how to achieve these settings."));
-
- /* TRANSLATORS: dialog message, bullet item */
-if(0) gcm_calib_add_page_bullet (content, _("Reset your display to the factory defaults."));
-
- /* TRANSLATORS: dialog message, bullet item */
-if(0) gcm_calib_add_page_bullet (content, _("Disable dynamic contrast if your display has this feature."));
-
- /* TRANSLATORS: dialog message, bullet item */
-if(0) gcm_calib_add_page_bullet (content, _("Configure your display with custom color settings and ensure the RGB channels are set to the same values."));
-
- /* TRANSLATORS: dialog message, addition to bullet item */
-if(0) gcm_calib_add_page_para (content, _("If custom color is not available then use a 6500K color temperature."));
-
- /* TRANSLATORS: dialog message, bullet item */
-if(0) gcm_calib_add_page_bullet (content, _("Adjust the display brightness to a comfortable level for prolonged viewing."));
-
- gcm_calib_add_page_para (content, "");
-
- /* TRANSLATORS: dialog message, suffix */
- gcm_calib_add_page_para (content, _("For best results, the display should have been powered for at least 15 minutes before starting the calibration."));
-
- /* add to assistant */
- gtk_assistant_append_page (assistant, vbox);
- gtk_assistant_set_page_type (assistant, vbox, GTK_ASSISTANT_PAGE_CONTENT);
- /* TRANSLATORS: this is the calibration wizard page title */
- gtk_assistant_set_page_title (assistant, vbox, _("Check Settings"));
- gtk_assistant_set_page_complete (assistant, vbox, FALSE);
- g_ptr_array_add (priv->pages, vbox);
- g_object_set_data (G_OBJECT (vbox),
- "GcmCalibrateMain::Index",
- GUINT_TO_POINTER (GCM_CALIBRATE_PAGE_DISPLAY_CONFIG));
-
- /* show page */
- gtk_widget_show_all (vbox);
-}
-
-static void
-gcm_calib_button_clicked_install_argyllcms_cb (GtkButton *button, GcmCalibratePriv *priv)
-{
- gboolean ret;
- GtkWidget *vbox;
- GtkAssistant *assistant = GTK_ASSISTANT (priv->main_window);
-
- ret = gcm_utils_install_package (GCM_PREFS_PACKAGE_NAME_ARGYLLCMS,
- priv->main_window);
- /* we can continue now */
- if (TRUE || ret) {
- vbox = gcm_calib_get_vbox_for_page (priv,
- GCM_CALIBRATE_PAGE_INSTALL_ARGYLLCMS);
- gtk_assistant_set_page_complete (assistant, vbox, TRUE);
- gtk_assistant_next_page (assistant);
-
- /* we ddn't need to re-install now */
- gtk_widget_hide (vbox);
- }
-}
-
-static void
-gcm_calib_setup_page_install_argyllcms (GcmCalibratePriv *priv)
-{
- GtkWidget *vbox;
- GtkWidget *content;
- GtkWidget *button;
- GtkAssistant *assistant = GTK_ASSISTANT (priv->main_window);
- g_autoptr(GString) string = NULL;
-
- string = g_string_new ("");
-
- g_string_append_printf (string, "%s\n",
- /* TRANSLATORS: dialog message saying the argyllcms is not installed */
- _("Calibration and profiling software is not installed."));
- g_string_append_printf (string, "%s",
- /* TRANSLATORS: dialog message saying the color targets are not installed */
- _("These tools are required to build color profiles for devices."));
-
- /* TRANSLATORS: this is the page title */
- vbox = gcm_calib_add_page_title (priv, _("More software is required!"));
-
- /* main contents */
- content = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
- gtk_box_pack_start (GTK_BOX (vbox), content, FALSE, FALSE, 0);
-
- /* TRANSLATORS: this is intro page text */
- gcm_calib_add_page_para (content, string->str);
-
- button = gtk_button_new_with_label (_("Install required software"));
- g_signal_connect (button, "clicked",
- G_CALLBACK (gcm_calib_button_clicked_install_argyllcms_cb),
- priv);
- gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
-
- /* add to assistant */
- gtk_assistant_append_page (assistant, vbox);
- gtk_assistant_set_page_type (assistant, vbox, GTK_ASSISTANT_PAGE_CONTENT);
- /* TRANSLATORS: this is the calibration wizard page title */
- gtk_assistant_set_page_title (assistant, vbox, _("Install Tools"));
- gtk_assistant_set_page_complete (assistant, vbox, FALSE);
- g_ptr_array_add (priv->pages, vbox);
- g_object_set_data (G_OBJECT (vbox),
- "GcmCalibrateMain::Index",
- GUINT_TO_POINTER (GCM_CALIBRATE_PAGE_INSTALL_ARGYLLCMS));
-
- /* show page */
- gtk_widget_show_all (vbox);
-}
-
-static void
-gcm_calib_button_clicked_install_targets_cb (GtkButton *button, GcmCalibratePriv *priv)
-{
- gboolean ret;
- GtkWidget *vbox;
- GtkAssistant *assistant = GTK_ASSISTANT (priv->main_window);
-
- ret = gcm_utils_install_package (GCM_PREFS_PACKAGE_NAME_SHARED_COLOR_TARGETS,
- priv->main_window);
- /* we can continue now */
- if (ret) {
- vbox = gcm_calib_get_vbox_for_page (priv,
- GCM_CALIBRATE_PAGE_INSTALL_TARGETS);
- gtk_assistant_next_page (assistant);
-
- /* we ddn't need to re-install now */
- gtk_widget_hide (vbox);
- }
-}
-
-static void
-gcm_calib_setup_page_install_targets (GcmCalibratePriv *priv)
-{
- GtkWidget *vbox;
- GtkWidget *content;
- GtkWidget *button;
- GtkAssistant *assistant = GTK_ASSISTANT (priv->main_window);
- g_autoptr(GString) string = NULL;
-
- string = g_string_new ("");
-
- /* TRANSLATORS: dialog message saying the color targets are not installed */
- g_string_append_printf (string, "%s\n", _("Common color target files are not installed on this computer."));
- /* TRANSLATORS: dialog message saying the color targets are not installed */
- g_string_append_printf (string, "%s\n\n", _("Color target files are needed to convert the image to a color profile."));
- /* TRANSLATORS: dialog message, asking if it's okay to install them */
- g_string_append_printf (string, "%s\n\n", _("Do you want them to be installed?"));
- /* TRANSLATORS: dialog message, if the user has the target file on a CDROM then there's no need for this package */
- g_string_append_printf (string, "%s", _("If you already have the correct file, you can skip this step."));
-
- /* TRANSLATORS: this is the page title */
- vbox = gcm_calib_add_page_title (priv, _("Optional data files available"));
-
- /* main contents */
- content = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
- gtk_box_pack_start (GTK_BOX (vbox), content, FALSE, FALSE, 0);
-
- /* TRANSLATORS: this is intro page text */
- gcm_calib_add_page_para (content, string->str);
-
- button = gtk_button_new_with_label (_("Install Now"));
- g_signal_connect (button, "clicked",
- G_CALLBACK (gcm_calib_button_clicked_install_targets_cb),
- priv);
- gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
-
- /* add to assistant */
- gtk_assistant_append_page (assistant, vbox);
- gtk_assistant_set_page_type (assistant, vbox, GTK_ASSISTANT_PAGE_CONTENT);
- gtk_assistant_set_page_complete (assistant, vbox, FALSE);
- /* TRANSLATORS: this is the calibration wizard page title */
- gtk_assistant_set_page_title (assistant, vbox, _("Install Targets"));
- g_ptr_array_add (priv->pages, vbox);
- g_object_set_data (G_OBJECT (vbox),
- "GcmCalibrateMain::Index",
- GUINT_TO_POINTER (GCM_CALIBRATE_PAGE_INSTALL_TARGETS));
-
- /* show page */
- gtk_widget_show_all (vbox);
-}
-
-
-static const gchar *
-gcm_calib_reference_kind_to_localised_string (GcmCalibrateReferenceKind kind)
-{
- if (kind == GCM_CALIBRATE_REFERENCE_KIND_CMP_DIGITAL_TARGET_3) {
- /* TRANSLATORS: this is probably a brand name */
- return _("CMP Digital Target 3");
- }
- if (kind == GCM_CALIBRATE_REFERENCE_KIND_CMP_DT_003) {
- /* TRANSLATORS: this is probably a brand name */
- return _("CMP DT 003");
- }
- if (kind == GCM_CALIBRATE_REFERENCE_KIND_COLOR_CHECKER) {
- /* TRANSLATORS: this is probably a brand name */
- return _("ColorChecker");
- }
- if (kind == GCM_CALIBRATE_REFERENCE_KIND_COLOR_CHECKER_DC) {
- /* TRANSLATORS: this is probably a brand name */
- return _("ColorChecker DC");
- }
- if (kind == GCM_CALIBRATE_REFERENCE_KIND_COLOR_CHECKER_SG) {
- /* TRANSLATORS: this is probably a brand name */
- return _("ColorChecker SG");
- }
- if (kind == GCM_CALIBRATE_REFERENCE_KIND_HUTCHCOLOR) {
- /* TRANSLATORS: this is probably a brand name */
- return _("Hutchcolor");
- }
- if (kind == GCM_CALIBRATE_REFERENCE_KIND_I1_RGB_SCAN_1_4) {
- /* TRANSLATORS: this is probably a brand name */
- return _("i1 RGB Scan 1.4");
- }
- if (kind == GCM_CALIBRATE_REFERENCE_KIND_IT8) {
- /* TRANSLATORS: this is probably a brand name */
- return _("IT8.7/2");
- }
- if (kind == GCM_CALIBRATE_REFERENCE_KIND_LASER_SOFT_DC_PRO) {
- /* TRANSLATORS: this is probably a brand name */
- return _("Laser Soft DC Pro");
- }
- if (kind == GCM_CALIBRATE_REFERENCE_KIND_QPCARD_201) {
- /* TRANSLATORS: this is probably a brand name */
- return _("QPcard 201");
- }
- return NULL;
-}
-
-static const gchar *
-gcm_calib_reference_kind_to_image_filename (GcmCalibrateReferenceKind kind)
-{
- if (kind == GCM_CALIBRATE_REFERENCE_KIND_CMP_DIGITAL_TARGET_3)
- return "CMP-DigitalTarget3.png";
- if (kind == GCM_CALIBRATE_REFERENCE_KIND_CMP_DT_003)
- return "CMP_DT_003.png";
- if (kind == GCM_CALIBRATE_REFERENCE_KIND_COLOR_CHECKER)
- return "ColorChecker24.png";
- if (kind == GCM_CALIBRATE_REFERENCE_KIND_COLOR_CHECKER_DC)
- return "ColorCheckerDC.png";
- if (kind == GCM_CALIBRATE_REFERENCE_KIND_COLOR_CHECKER_SG)
- return "ColorCheckerSG.png";
- if (kind == GCM_CALIBRATE_REFERENCE_KIND_HUTCHCOLOR)
- return NULL;
- if (kind == GCM_CALIBRATE_REFERENCE_KIND_I1_RGB_SCAN_1_4)
- return "i1_RGB_Scan_14.png";
- if (kind == GCM_CALIBRATE_REFERENCE_KIND_IT8)
- return "IT872.png";
- if (kind == GCM_CALIBRATE_REFERENCE_KIND_LASER_SOFT_DC_PRO)
- return "LaserSoftDCPro.png";
- if (kind == GCM_CALIBRATE_REFERENCE_KIND_QPCARD_201)
- return "QPcard_201.png";
- return NULL;
-}
-
-static void
-gcm_calib_reference_kind_combobox_cb (GtkComboBox *combo_box,
- GcmCalibratePriv *priv)
-{
- const gchar *filename;
- GcmCalibrateReferenceKind reference_kind;
- g_autofree gchar *path = NULL;
-
- /* not sorted so we can just use the index */
- reference_kind = gtk_combo_box_get_active (GTK_COMBO_BOX (combo_box));
- g_object_set (priv->calibrate,
- "reference-kind", reference_kind,
- NULL);
- filename = gcm_calib_reference_kind_to_image_filename (reference_kind);
-
- /* fallback */
- if (filename == NULL)
- filename = "unknown.png";
-
- path = g_build_filename (PKGDATADIR, "targets", filename, NULL);
- gtk_image_set_from_file (GTK_IMAGE (priv->reference_preview), path);
-}
-
-static void
-gcm_calib_setup_page_target_kind (GcmCalibratePriv *priv)
-{
- GtkWidget *vbox;
- GtkWidget *content;
- GtkWidget *combo;
- guint i;
- GtkAssistant *assistant = GTK_ASSISTANT (priv->main_window);
- g_autoptr(GString) string = NULL;
-
- string = g_string_new ("");
-
- /* TRANSLATORS: dialog message, preface. A calibration target looks like
- * this: http://www.colorreference.de/targets/target.jpg */
- g_string_append_printf (string, "%s\n", _("Before profiling the device, you have to manually capture an image of a calibration target and save it as a TIFF image file."));
-
- /* scanner specific options */
- if (priv->device_kind == CD_DEVICE_KIND_SCANNER) {
- /* TRANSLATORS: dialog message, preface */
- g_string_append_printf (string, "%s\n", _("Ensure that the contrast and brightness are not changed and color correction profiles have not been applied."));
-
- /* TRANSLATORS: dialog message, suffix */
- g_string_append_printf (string, "%s\n", _("The device sensor should have been cleaned prior to scanning and the output file resolution should be at least 200dpi."));
- }
-
- /* camera specific options */
- if (priv->device_kind == CD_DEVICE_KIND_CAMERA) {
- /* TRANSLATORS: dialog message, preface */
- g_string_append_printf (string, "%s\n", _("Ensure that the white-balance has not been modified by the camera and that the lens is clean."));
- }
-
- /* TRANSLATORS: this is the message body for the chart selection */
- g_string_append_printf (string, "\n%s", _("Please select the calibration target type."));
-
- /* TRANSLATORS: this is the page title */
- vbox = gcm_calib_add_page_title (priv, _("What target type do you have?"));
-
- /* main contents */
- content = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
- gtk_box_pack_start (GTK_BOX (vbox), content, FALSE, FALSE, 0);
-
- /* TRANSLATORS: this is intro page text */
- gcm_calib_add_page_para (content, string->str);
-
- /* pack in a preview image */
- priv->reference_preview = gtk_image_new ();
- gtk_box_pack_start (GTK_BOX (vbox), priv->reference_preview, FALSE, FALSE, 0);
-
- combo = gtk_combo_box_text_new ();
- for (i = 0; i < GCM_CALIBRATE_REFERENCE_KIND_UNKNOWN; i++) {
- gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo),
- gcm_calib_reference_kind_to_localised_string (i));
- }
- g_signal_connect (combo, "changed",
- G_CALLBACK (gcm_calib_reference_kind_combobox_cb),
- priv);
-
- /* use IT8 by default */
- gtk_combo_box_set_active (GTK_COMBO_BOX (combo), GCM_CALIBRATE_REFERENCE_KIND_IT8);
-
- gtk_box_pack_start (GTK_BOX (vbox), combo, FALSE, FALSE, 0);
-
- /* add to assistant */
- gtk_assistant_append_page (assistant, vbox);
- gtk_assistant_set_page_type (assistant, vbox, GTK_ASSISTANT_PAGE_CONTENT);
- gtk_assistant_set_page_complete (assistant, vbox, FALSE);
- /* TRANSLATORS: this is the calibration wizard page title */
- gtk_assistant_set_page_title (assistant, vbox, _("Select Target"));
- g_ptr_array_add (priv->pages, vbox);
- g_object_set_data (G_OBJECT (vbox),
- "GcmCalibrateMain::Index",
- GUINT_TO_POINTER (GCM_CALIBRATE_PAGE_TARGET_KIND));
-
- /* show page */
- gtk_widget_show_all (vbox);
-}
-
-static void
-gcm_calib_display_kind_toggled_cb (GtkToggleButton *togglebutton,
- GcmCalibratePriv *priv)
-{
- GcmCalibrateDisplayKind display_kind;
-
- if (!gtk_toggle_button_get_active (togglebutton))
- return;
- display_kind = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (togglebutton),
- "GcmCalib::display-kind"));
- g_object_set (priv->calibrate,
- "display-kind", display_kind,
- NULL);
-}
-
-static void
-gcm_calib_setup_page_display_kind (GcmCalibratePriv *priv)
-{
- GtkWidget *vbox;
- GtkWidget *content;
- GtkWidget *widget;
- GSList *list;
- GtkAssistant *assistant = GTK_ASSISTANT (priv->main_window);
-
- /* TRANSLATORS: this is the page title */
- vbox = gcm_calib_add_page_title (priv, _("Choose your display type"));
-
- /* main contents */
- content = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
- gtk_box_pack_start (GTK_BOX (vbox), content, FALSE, FALSE, 0);
-
- /* TRANSLATORS: this is intro page text */
- gcm_calib_add_page_para (content, _("Select the monitor type that is attached to your computer."));
-
- widget = gtk_radio_button_new_with_label (NULL, _("LCD (CCFL backlight)"));
- g_object_set_data (G_OBJECT (widget),
- "GcmCalib::display-kind",
- GUINT_TO_POINTER (GCM_CALIBRATE_DEVICE_KIND_LCD_CCFL));
- g_signal_connect (widget, "toggled",
- G_CALLBACK (gcm_calib_display_kind_toggled_cb), priv);
- gtk_box_pack_start (GTK_BOX (content), widget, FALSE, FALSE, 0);
-
- list = gtk_radio_button_get_group (GTK_RADIO_BUTTON (widget));
- widget = gtk_radio_button_new_with_label (list, _("LCD (White LED backlight)"));
- g_object_set_data (G_OBJECT (widget),
- "GcmCalib::display-kind",
- GUINT_TO_POINTER (GCM_CALIBRATE_DEVICE_KIND_LCD_LED_WHITE));
- g_signal_connect (widget, "toggled",
- G_CALLBACK (gcm_calib_display_kind_toggled_cb), priv);
- gtk_box_pack_start (GTK_BOX (content), widget, FALSE, FALSE, 0);
-
- list = gtk_radio_button_get_group (GTK_RADIO_BUTTON (widget));
- widget = gtk_radio_button_new_with_label (list, _("LCD (RGB LED backlight)"));
- g_object_set_data (G_OBJECT (widget),
- "GcmCalib::display-kind",
- GUINT_TO_POINTER (GCM_CALIBRATE_DEVICE_KIND_LCD_LED_RGB));
- g_signal_connect (widget, "toggled",
- G_CALLBACK (gcm_calib_display_kind_toggled_cb), priv);
- gtk_box_pack_start (GTK_BOX (content), widget, FALSE, FALSE, 0);
-
- list = gtk_radio_button_get_group (GTK_RADIO_BUTTON (widget));
- widget = gtk_radio_button_new_with_label (list, _("LCD (Wide Gamut RGB LED backlight)"));
- g_object_set_data (G_OBJECT (widget),
- "GcmCalib::display-kind",
- GUINT_TO_POINTER (GCM_CALIBRATE_DEVICE_KIND_LCD_LED_RGB_WIDE));
- g_signal_connect (widget, "toggled",
- G_CALLBACK (gcm_calib_display_kind_toggled_cb), priv);
- gtk_box_pack_start (GTK_BOX (content), widget, FALSE, FALSE, 0);
-
- list = gtk_radio_button_get_group (GTK_RADIO_BUTTON (widget));
- widget = gtk_radio_button_new_with_label (list, _("LCD (Wide Gamut CCFL backlight)"));
- g_object_set_data (G_OBJECT (widget),
- "GcmCalib::display-kind",
- GUINT_TO_POINTER (GCM_CALIBRATE_DEVICE_KIND_LCD_CCFL_WIDE));
- g_signal_connect (widget, "toggled",
- G_CALLBACK (gcm_calib_display_kind_toggled_cb), priv);
- gtk_box_pack_start (GTK_BOX (content), widget, FALSE, FALSE, 0);
-
- list = gtk_radio_button_get_group (GTK_RADIO_BUTTON (widget));
- widget = gtk_radio_button_new_with_label (list, _("CRT"));
- g_object_set_data (G_OBJECT (widget),
- "GcmCalib::display-kind",
- GUINT_TO_POINTER (GCM_CALIBRATE_DEVICE_KIND_CRT));
- g_signal_connect (widget, "toggled",
- G_CALLBACK (gcm_calib_display_kind_toggled_cb), priv);
- gtk_box_pack_start (GTK_BOX (content), widget, FALSE, FALSE, 0);
-
- list = gtk_radio_button_get_group (GTK_RADIO_BUTTON (widget));
- widget = gtk_radio_button_new_with_label (list, _("Plasma"));
- g_object_set_data (G_OBJECT (widget),
- "GcmCalib::display-kind",
- GUINT_TO_POINTER (GCM_CALIBRATE_DEVICE_KIND_CRT));
- g_signal_connect (widget, "toggled",
- G_CALLBACK (gcm_calib_display_kind_toggled_cb), priv);
- gtk_box_pack_start (GTK_BOX (content), widget, FALSE, FALSE, 0);
-
- list = gtk_radio_button_get_group (GTK_RADIO_BUTTON (widget));
- widget = gtk_radio_button_new_with_label (list, _("Projector"));
- g_object_set_data (G_OBJECT (widget),
- "GcmCalib::display-kind",
- GUINT_TO_POINTER (GCM_CALIBRATE_DEVICE_KIND_PROJECTOR));
- g_signal_connect (widget, "toggled",
- G_CALLBACK (gcm_calib_display_kind_toggled_cb), priv);
- gtk_box_pack_start (GTK_BOX (content), widget, FALSE, FALSE, 0);
-
- /* add to assistant */
- gtk_assistant_append_page (assistant, vbox);
- gtk_assistant_set_page_type (assistant, vbox, GTK_ASSISTANT_PAGE_CONTENT);
- /* TRANSLATORS: this is the calibration wizard page title */
- gtk_assistant_set_page_title (assistant, vbox, _("Choose Display Type"));
- gtk_assistant_set_page_complete (assistant, vbox, FALSE);
- g_ptr_array_add (priv->pages, vbox);
- g_object_set_data (G_OBJECT (vbox),
- "GcmCalibrateMain::Index",
- GUINT_TO_POINTER (GCM_CALIBRATE_PAGE_DISPLAY_KIND));
-
- /* show page */
- gtk_widget_show_all (vbox);
-}
-
-static void
-gcm_calib_display_temp_toggled_cb (GtkToggleButton *togglebutton,
- GcmCalibratePriv *priv)
-{
- guint display_temp;
- if (!gtk_toggle_button_get_active (togglebutton))
- return;
- display_temp = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (togglebutton),
- "GcmCalib::display-temp"));
- g_object_set (priv->calibrate,
- "target-whitepoint", display_temp,
- NULL);
-}
-
-static void
-gcm_calib_setup_page_display_temp (GcmCalibratePriv *priv)
-{
- GtkWidget *vbox;
- GtkWidget *content;
- GtkWidget *widget;
- GSList *list;
- GtkAssistant *assistant = GTK_ASSISTANT (priv->main_window);
-
- /* TRANSLATORS: this is the page title */
- vbox = gcm_calib_add_page_title (priv, _("Choose your display target white point"));
-
- /* main contents */
- content = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
- gtk_box_pack_start (GTK_BOX (vbox), content, FALSE, FALSE, 0);
-
- /* TRANSLATORS: this is intro page text */
- gcm_calib_add_page_para (content, _("Most displays should be calibrated to a CIE D65 illuminant for general usage."));
-
- widget = gtk_radio_button_new_with_label (NULL, _("CIE D50 (Printing and publishing)"));
- g_object_set_data (G_OBJECT (widget),
- "GcmCalib::display-temp",
- GUINT_TO_POINTER (5000));
- g_signal_connect (widget, "toggled",
- G_CALLBACK (gcm_calib_display_temp_toggled_cb), priv);
- gtk_box_pack_start (GTK_BOX (content), widget, FALSE, FALSE, 0);
-
- list = gtk_radio_button_get_group (GTK_RADIO_BUTTON (widget));
- widget = gtk_radio_button_new_with_label (list, _("CIE D55"));
- g_object_set_data (G_OBJECT (widget),
- "GcmCalib::display-temp",
- GUINT_TO_POINTER (5500));
- g_signal_connect (widget, "toggled",
- G_CALLBACK (gcm_calib_display_temp_toggled_cb), priv);
- gtk_box_pack_start (GTK_BOX (content), widget, FALSE, FALSE, 0);
-
- list = gtk_radio_button_get_group (GTK_RADIO_BUTTON (widget));
- widget = gtk_radio_button_new_with_label (list, _("CIE D65 (Photography and graphics)"));
- g_object_set_data (G_OBJECT (widget),
- "GcmCalib::display-temp",
- GUINT_TO_POINTER (6500));
- g_signal_connect (widget, "toggled",
- G_CALLBACK (gcm_calib_display_temp_toggled_cb), priv);
- gtk_box_pack_start (GTK_BOX (content), widget, FALSE, FALSE, 0);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE);
-
- list = gtk_radio_button_get_group (GTK_RADIO_BUTTON (widget));
- widget = gtk_radio_button_new_with_label (list, _("CIE D75"));
- g_object_set_data (G_OBJECT (widget),
- "GcmCalib::display-temp",
- GUINT_TO_POINTER (7500));
- g_signal_connect (widget, "toggled",
- G_CALLBACK (gcm_calib_display_temp_toggled_cb), priv);
- gtk_box_pack_start (GTK_BOX (content), widget, FALSE, FALSE, 0);
-
- list = gtk_radio_button_get_group (GTK_RADIO_BUTTON (widget));
- widget = gtk_radio_button_new_with_label (list, _("Native (Already set manually)"));
- g_object_set_data (G_OBJECT (widget),
- "GcmCalib::display-temp",
- GUINT_TO_POINTER (0));
- g_signal_connect (widget, "toggled",
- G_CALLBACK (gcm_calib_display_temp_toggled_cb), priv);
- gtk_box_pack_start (GTK_BOX (content), widget, FALSE, FALSE, 0);
-
- /* add to assistant */
- gtk_assistant_append_page (assistant, vbox);
- gtk_assistant_set_page_type (assistant, vbox, GTK_ASSISTANT_PAGE_CONTENT);
- /* TRANSLATORS: this is the calibration wizard page title */
- gtk_assistant_set_page_title (assistant, vbox, _("Choose Display Whitepoint"));
- gtk_assistant_set_page_complete (assistant, vbox, FALSE);
- g_ptr_array_add (priv->pages, vbox);
- g_object_set_data (G_OBJECT (vbox),
- "GcmCalibrateMain::Index",
- GUINT_TO_POINTER (GCM_CALIBRATE_PAGE_DISPLAY_TEMPERATURE));
-
- /* show page */
- gtk_widget_show_all (vbox);
-}
-
-static void
-gcm_calib_print_kind_toggled_cb (GtkToggleButton *togglebutton,
- GcmCalibratePriv *priv)
-{
- GcmCalibratePrintKind print_kind;
- if (!gtk_toggle_button_get_active (togglebutton))
- return;
- print_kind = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (togglebutton),
- "GcmCalib::print-kind"));
- g_object_set (priv->calibrate,
- "print-kind", print_kind,
- NULL);
-}
-
-static void
-gcm_calib_setup_page_print_kind (GcmCalibratePriv *priv)
-{
- GtkWidget *vbox;
- GtkWidget *content;
- GtkWidget *widget;
- GSList *list;
- GtkAssistant *assistant = GTK_ASSISTANT (priv->main_window);
-
- /* TRANSLATORS: this is the page title */
- vbox = gcm_calib_add_page_title (priv, _("Choose profiling mode"));
-
- /* main contents */
- content = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
- gtk_box_pack_start (GTK_BOX (vbox), content, FALSE, FALSE, 0);
-
- /* TRANSLATORS: this is intro page text */
- gcm_calib_add_page_para (content, _("Please indicate if you want to profile a local printer, generate some test patches, or profile using existing test patches."));
-
- widget = gtk_radio_button_new_with_label (NULL, "Local printer");
- g_object_set_data (G_OBJECT (widget),
- "GcmCalib::print-kind",
- GUINT_TO_POINTER (GCM_CALIBRATE_PRINT_KIND_LOCAL));
- g_signal_connect (widget, "toggled",
- G_CALLBACK (gcm_calib_print_kind_toggled_cb), priv);
- gtk_box_pack_start (GTK_BOX (content), widget, FALSE, FALSE, 0);
-
- list = gtk_radio_button_get_group (GTK_RADIO_BUTTON (widget));
- widget = gtk_radio_button_new_with_label (list, "Generate patches for remote printer");
- g_object_set_data (G_OBJECT (widget),
- "GcmCalib::print-kind",
- GUINT_TO_POINTER (GCM_CALIBRATE_PRINT_KIND_GENERATE));
- g_signal_connect (widget, "toggled",
- G_CALLBACK (gcm_calib_print_kind_toggled_cb), priv);
- gtk_box_pack_start (GTK_BOX (content), widget, FALSE, FALSE, 0);
-
- list = gtk_radio_button_get_group (GTK_RADIO_BUTTON (widget));
- widget = gtk_radio_button_new_with_label (list, "Generate profile from existing test patches");
- g_object_set_data (G_OBJECT (widget),
- "GcmCalib::print-kind",
- GUINT_TO_POINTER (GCM_CALIBRATE_PRINT_KIND_ANALYZE));
- g_signal_connect (widget, "toggled",
- G_CALLBACK (gcm_calib_print_kind_toggled_cb), priv);
- gtk_box_pack_start (GTK_BOX (content), widget, FALSE, FALSE, 0);
-
- /* sync the default */
- g_object_set (priv->calibrate,
- "print-kind", GCM_CALIBRATE_PRINT_KIND_LOCAL,
- NULL);
-
- /* add to assistant */
- gtk_assistant_append_page (assistant, vbox);
- gtk_assistant_set_page_type (assistant, vbox, GTK_ASSISTANT_PAGE_CONTENT);
- /* TRANSLATORS: this is the calibration wizard page title */
- gtk_assistant_set_page_title (assistant, vbox, _("Calibration Mode"));
- gtk_assistant_set_page_complete (assistant, vbox, FALSE);
- g_ptr_array_add (priv->pages, vbox);
- g_object_set_data (G_OBJECT (vbox),
- "GcmCalibrateMain::Index",
- GUINT_TO_POINTER (GCM_CALIBRATE_PAGE_PRINT_KIND));
-
- /* show page */
- gtk_widget_show_all (vbox);
-}
-
-static void
-gcm_calib_precision_toggled_cb (GtkToggleButton *togglebutton,
- GcmCalibratePriv *priv)
-{
- GcmCalibratePrecision precision;
- if (!gtk_toggle_button_get_active (togglebutton))
- return;
- precision = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (togglebutton),
- "GcmCalib::precision"));
- g_object_set (priv->calibrate,
- "precision", precision,
- NULL);
-}
-
-static void
-gcm_calib_setup_page_precision (GcmCalibratePriv *priv)
-{
- GtkWidget *vbox;
- GtkWidget *content;
- GtkWidget *widget;
- GSList *list;
- GString *labels[3];
- guint i;
- guint values_printer[] = { 6, 4, 2}; /* sheets */
- guint values_display[] = { 60, 40, 20}; /* minutes */
- GtkAssistant *assistant = GTK_ASSISTANT (priv->main_window);
-
- /* TRANSLATORS: this is the page title */
- vbox = gcm_calib_add_page_title (priv, _("Choose calibration quality"));
-
- /* main contents */
- content = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
- gtk_box_pack_start (GTK_BOX (vbox), content, FALSE, FALSE, 0);
-
- /* TRANSLATORS: this is intro page text */
- gcm_calib_add_page_para (content, _("Higher quality calibration requires many color samples and more time."));
-
-#if 0
- /* TRANSLATORS: this is the message body for the chart selection */
- g_string_append (string, _("A higher precision profile provides higher accuracy in color matching but requires more time for reading the color patches."));
-
- /* TRANSLATORS: this is the message body for the chart selection */
- g_string_append_printf (string, "\n%s", _("For a typical workflow, a normal precision profile is sufficient."));
-
- /* printer specific options */
- if (priv->device_kind == CD_DEVICE_KIND_PRINTER) {
- /* TRANSLATORS: dialog message, preface */
- g_string_append_printf (string, "\n%s", _("The high precision profile also requires more paper and printer ink."));
- }
-#endif
-
- /* TRANSLATORS: radio options for calibration precision */
- labels[0] = g_string_new (_("Accurate"));
- labels[1] = g_string_new (_("Normal"));
- labels[2] = g_string_new (_("Quick"));
- switch (priv->device_kind) {
- case CD_DEVICE_KIND_PRINTER:
- for (i = 0; i < 3; i++) {
- g_string_append (labels[i], " ");
- g_string_append_printf (labels[i], ngettext (
- /* TRANSLATORS: radio options for calibration precision */
- "(about %u sheet of paper)",
- "(about %u sheets of paper)",
- values_printer[i]),
- values_printer[i]);
- }
- break;
- case CD_DEVICE_KIND_DISPLAY:
- for (i = 0; i < 3; i++) {
- g_string_append (labels[i], " ");
- g_string_append_printf (labels[i], ngettext (
- /* TRANSLATORS: radio options for calibration precision */
- "(about %u minute)",
- "(about %u minutes)",
- values_display[i]),
- values_display[i]);
- }
- break;
- default:
- break;
- }
-
- widget = gtk_radio_button_new_with_label (NULL, labels[0]->str);
- g_object_set_data (G_OBJECT (widget),
- "GcmCalib::precision",
- GUINT_TO_POINTER (GCM_CALIBRATE_PRECISION_LONG));
- g_signal_connect (widget, "toggled",
- G_CALLBACK (gcm_calib_precision_toggled_cb), priv);
- gtk_box_pack_start (GTK_BOX (content), widget, FALSE, FALSE, 0);
-
- list = gtk_radio_button_get_group (GTK_RADIO_BUTTON (widget));
- widget = gtk_radio_button_new_with_label (list, labels[1]->str);
- g_object_set_data (G_OBJECT (widget),
- "GcmCalib::precision",
- GUINT_TO_POINTER (GCM_CALIBRATE_PRECISION_NORMAL));
- g_signal_connect (widget, "toggled",
- G_CALLBACK (gcm_calib_precision_toggled_cb), priv);
- gtk_box_pack_start (GTK_BOX (content), widget, FALSE, FALSE, 0);
-
- list = gtk_radio_button_get_group (GTK_RADIO_BUTTON (widget));
- widget = gtk_radio_button_new_with_label (list, labels[2]->str);
- g_object_set_data (G_OBJECT (widget),
- "GcmCalib::precision",
- GUINT_TO_POINTER (GCM_CALIBRATE_PRECISION_SHORT));
- g_signal_connect (widget, "toggled",
- G_CALLBACK (gcm_calib_precision_toggled_cb), priv);
- gtk_box_pack_start (GTK_BOX (content), widget, FALSE, FALSE, 0);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE);
-
- /* add to assistant */
- gtk_assistant_append_page (assistant, vbox);
- gtk_assistant_set_page_type (assistant, vbox, GTK_ASSISTANT_PAGE_CONTENT);
- /* TRANSLATORS: this is the calibration wizard page title */
- gtk_assistant_set_page_title (assistant, vbox, _("Calibration Quality"));
- gtk_assistant_set_page_complete (assistant, vbox, FALSE);
- g_ptr_array_add (priv->pages, vbox);
- g_object_set_data (G_OBJECT (vbox),
- "GcmCalibrateMain::Index",
- GUINT_TO_POINTER (GCM_CALIBRATE_PAGE_PRECISION));
-
- for (i = 0; i < 3; i++)
- g_string_free (labels[i], TRUE);
-
- /* show page */
- gtk_widget_show_all (vbox);
-}
-
-static void
-gcm_calib_text_changed_cb (GtkEntry *entry,
- GcmCalibratePriv *priv)
-{
- g_object_set (priv->calibrate,
- "description", gtk_entry_get_text (entry),
- NULL);
-}
-
-static void
-gcm_calib_setup_page_profile_title (GcmCalibratePriv *priv)
-{
- GtkWidget *vbox;
- GtkWidget *content;
- GtkWidget *widget;
- g_autofree gchar *tmp = NULL;
- GtkAssistant *assistant = GTK_ASSISTANT (priv->main_window);
-
- /* TRANSLATORS: this is the page title */
- vbox = gcm_calib_add_page_title (priv, _("Profile title"));
-
- /* main contents */
- content = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
- gtk_box_pack_start (GTK_BOX (vbox), content, FALSE, FALSE, 0);
-
- /* TRANSLATORS: this is intro page text */
- gcm_calib_add_page_para (content, _("Choose a title to identify the profile on your system."));
-
- widget = gtk_entry_new ();
- gtk_box_pack_start (GTK_BOX (content), widget, FALSE, FALSE, 0);
- gtk_entry_set_max_length (GTK_ENTRY (widget), 128);
-
- /* set the current title */
- g_object_get (priv->calibrate,
- "description", &tmp,
- NULL);
- gtk_entry_set_text (GTK_ENTRY (widget), tmp);
-
- /* watch for changes */
- g_signal_connect (GTK_EDITABLE (widget), "changed",
- G_CALLBACK (gcm_calib_text_changed_cb), priv);
-
- /* add to assistant */
- gtk_assistant_append_page (assistant, vbox);
- gtk_assistant_set_page_type (assistant, vbox, GTK_ASSISTANT_PAGE_CONTENT);
- /* TRANSLATORS: this is the calibration wizard page title */
- gtk_assistant_set_page_title (assistant, vbox, _("Profile Title"));
- gtk_assistant_set_page_complete (assistant, vbox, TRUE);
- g_ptr_array_add (priv->pages, vbox);
- g_object_set_data (G_OBJECT (vbox),
- "GcmCalibrateMain::Index",
- GUINT_TO_POINTER (GCM_CALIBRATE_PAGE_TITLE));
-
- /* show page */
- gtk_widget_show_all (vbox);
-}
-
-static void
-gcm_calib_setup_page_sensor (GcmCalibratePriv *priv)
-{
- GtkWidget *vbox;
- GtkWidget *content;
- GtkAssistant *assistant = GTK_ASSISTANT (priv->main_window);
-
- /* TRANSLATORS: this is the page title */
- vbox = gcm_calib_add_page_title (priv, _("Insert sensor hardware"));
-
- /* main contents */
- content = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
- gtk_box_pack_start (GTK_BOX (vbox), content, FALSE, FALSE, 0);
-
- /* TRANSLATORS: this is intro page text */
- gcm_calib_add_page_para (content, _("You need to insert sensor hardware to continue."));
-
- /* add to assistant */
- gtk_assistant_append_page (assistant, vbox);
- gtk_assistant_set_page_type (assistant, vbox, GTK_ASSISTANT_PAGE_CONTENT);
- /* TRANSLATORS: this is the calibration wizard page title */
- gtk_assistant_set_page_title (assistant, vbox, _("Sensor Check"));
- gtk_assistant_set_page_complete (assistant, vbox, FALSE);
- g_ptr_array_add (priv->pages, vbox);
- g_object_set_data (G_OBJECT (vbox),
- "GcmCalibrateMain::Index",
- GUINT_TO_POINTER (GCM_CALIBRATE_PAGE_SENSOR));
-
- /* show page */
- gtk_widget_show_all (vbox);
-}
-
-static void
-gcm_calib_setup_page_failure (GcmCalibratePriv *priv)
-{
- GtkWidget *vbox;
- GtkWidget *content;
- GtkAssistant *assistant = GTK_ASSISTANT (priv->main_window);
-
- /* TRANSLATORS: this is the page title */
- vbox = gcm_calib_add_page_title (priv, _("Failed to calibrate"));
-
- /* main contents */
- content = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
- gtk_box_pack_start (GTK_BOX (vbox), content, FALSE, FALSE, 0);
-
- /* TRANSLATORS: this is intro page text */
- gcm_calib_add_page_para (content, _("The device could not be found. Ensure it is plugged in and turned on."));
-
- /* add to assistant */
- gtk_assistant_append_page (assistant, vbox);
- gtk_assistant_set_page_type (assistant, vbox, GTK_ASSISTANT_PAGE_SUMMARY);
- /* TRANSLATORS: this is the calibration wizard page title */
- gtk_assistant_set_page_title (assistant, vbox, _("Summary"));
- gtk_assistant_set_page_complete (assistant, vbox, TRUE);
- g_ptr_array_add (priv->pages, vbox);
- g_object_set_data (G_OBJECT (vbox),
- "GcmCalibrateMain::Index",
- GUINT_TO_POINTER (GCM_CALIBRATE_PAGE_FAILURE));
-
- /* show page */
- gtk_widget_show_all (vbox);
-}
-
-static void
-gcm_calib_got_sensor (GcmCalibratePriv *priv, CdSensor *sensor)
-{
- gboolean is_lowend = FALSE;
- GtkWidget *vbox;
- g_autoptr(GError) error = NULL;
-
- /* connect to sensor */
- if (!cd_sensor_connect_sync (sensor, NULL, &error)) {
- g_warning ("failed to connect to sensor: %s",
- error->message);
- return;
- }
- gcm_calibrate_set_sensor (priv->calibrate, sensor);
-
- /* hide the prompt for the user to insert a sensor */
- vbox = gcm_calib_get_vbox_for_page (priv,
- GCM_CALIBRATE_PAGE_SENSOR);
- gtk_widget_hide (vbox);
-
- /* if the device is a simple colorimeter, hide the temperature
- * chooser. Only expensive accurate spectrophotometers are
- * accurate enough to do a good job without a color cast */
- if (cd_sensor_get_kind (sensor) == CD_SENSOR_KIND_COLORHUG) {
- is_lowend = TRUE;
- }
- if (priv->device_kind == CD_DEVICE_KIND_DISPLAY) {
- vbox = gcm_calib_get_vbox_for_page (priv,
- GCM_CALIBRATE_PAGE_DISPLAY_TEMPERATURE);
- gtk_widget_set_visible (vbox, !is_lowend);
- }
-}
-
-static void
-gcm_calib_get_sensors_cb (GObject *object,
- GAsyncResult *res,
- gpointer user_data)
-{
- CdClient *client = CD_CLIENT (object);
- CdSensor *sensor_tmp;
- GcmCalibratePriv *priv = (GcmCalibratePriv *) user_data;
- g_autoptr(GError) error = NULL;
- g_autoptr(GPtrArray) sensors = NULL;
-
- /* get the result */
- sensors = cd_client_get_sensors_finish (client, res, &error);
- if (sensors == NULL) {
- g_warning ("failed to get sensors: %s",
- error->message);
- return;
- }
-
- /* we've got a sensor */
- if (sensors->len != 0) {
- sensor_tmp = g_ptr_array_index (sensors, 0);
- gcm_calib_got_sensor (priv, sensor_tmp);
- }
-}
-
-static void
-gcm_calib_add_pages (GcmCalibratePriv *priv)
-{
- gboolean ret;
- const gchar *xrandr_name;
-
- /* device not found */
- if (priv->device_kind == CD_DEVICE_KIND_UNKNOWN) {
- gcm_calib_setup_page_failure (priv);
- gtk_widget_show_all (GTK_WIDGET (priv->main_window));
- return;
- }
-
- gcm_calib_setup_page_intro (priv);
-
- if (priv->device_kind == CD_DEVICE_KIND_DISPLAY ||
- priv->device_kind == CD_DEVICE_KIND_PRINTER)
- gcm_calib_setup_page_sensor (priv);
-
- /* find whether argyllcms is installed using a tool which should exist */
- ret = gcm_calibrate_get_enabled (priv->calibrate);
- if (!ret)
- gcm_calib_setup_page_install_argyllcms (priv);
-
- xrandr_name = cd_device_get_metadata_item (priv->device,
- CD_DEVICE_METADATA_XRANDR_NAME);
- if (xrandr_name != NULL)
- priv->internal_lcd = gcm_utils_output_is_lcd_internal (xrandr_name);
- if (!priv->internal_lcd && priv->device_kind == CD_DEVICE_KIND_DISPLAY)
- gcm_calib_setup_page_display_configure_wait (priv);
-
- gcm_calib_setup_page_precision (priv);
-
- if (priv->device_kind == CD_DEVICE_KIND_DISPLAY) {
- gcm_calib_setup_page_display_kind (priv);
- gcm_calib_setup_page_display_temp (priv);
- } else if (priv->device_kind == CD_DEVICE_KIND_PRINTER) {
- gcm_calib_setup_page_print_kind (priv);
- } else {
- gcm_calib_setup_page_target_kind (priv);
- ret = g_file_test ("/usr/share/shared-color-targets", G_FILE_TEST_IS_DIR);
- if (!ret)
- gcm_calib_setup_page_install_targets (priv);
- }
-
- gcm_calib_setup_page_profile_title (priv);
- gcm_calib_setup_page_action (priv);
-
- gcm_calib_setup_page_summary (priv);
-
- /* see if we can hide the sensor check */
- cd_client_get_sensors (priv->client,
- NULL,
- gcm_calib_get_sensors_cb,
- priv);
-}
-
-static void
-gcm_calib_sensor_added_cb (CdClient *client, CdSensor *sensor, GcmCalibratePriv *priv)
-{
- g_debug ("sensor inserted");
- gcm_calib_got_sensor (priv, sensor);
- gtk_assistant_next_page (GTK_ASSISTANT (priv->main_window));
-}
-
-static void
-gcm_calib_startup_cb (GApplication *application, GcmCalibratePriv *priv)
-{
- const gint window_width = 640;
- const gint window_height = 440;
- const gchar *description;
- const gchar *manufacturer;
- const gchar *model;
- const gchar *native_device;
- const gchar *serial;
- gboolean ret;
- g_autofree gchar *copyright = NULL;
- g_autoptr(GDateTime) dt = NULL;
- g_autoptr(GError) error = NULL;
-
- /* add application specific icons to search path */
- gtk_icon_theme_append_search_path (gtk_icon_theme_get_default (),
- PKGDATADIR G_DIR_SEPARATOR_S "icons");
-
- /* connect to colord */
- priv->client = cd_client_new ();
- g_signal_connect (priv->client, "sensor-added",
- G_CALLBACK (gcm_calib_sensor_added_cb), priv);
- ret = cd_client_connect_sync (priv->client,
- NULL,
- &error);
- if (!ret) {
- g_warning ("failed to connect to colord: %s", error->message);
- goto out;
- }
-
- /* show main UI */
- priv->main_window = GTK_WINDOW (gtk_assistant_new ());
- gtk_window_set_default_size (priv->main_window, window_width, window_height);
- gtk_window_set_resizable (priv->main_window, TRUE);
- gtk_window_set_title (priv->main_window, "");
- gtk_container_set_border_width (GTK_CONTAINER (priv->main_window), 12);
- g_signal_connect (priv->main_window, "delete_event",
- G_CALLBACK (gcm_calib_delete_event_cb), priv);
- g_signal_connect (priv->main_window, "close",
- G_CALLBACK (gcm_calib_assistant_close_cb), priv);
- g_signal_connect (priv->main_window, "cancel",
- G_CALLBACK (gcm_calib_assistant_cancel_cb), priv);
- g_signal_connect (priv->main_window, "prepare",
- G_CALLBACK (gcm_calib_assistant_prepare_cb), priv);
- gtk_application_add_window (priv->application,
- priv->main_window);
-
- /* set the parent window if it is specified */
- if (priv->xid != 0) {
- g_debug ("Setting xid %u", priv->xid);
- gcm_window_set_parent_xid (GTK_WINDOW (priv->main_window), priv->xid);
- }
-
- /* select a specific profile only */
- priv->device = cd_client_find_device_sync (priv->client,
- priv->device_id,
- NULL,
- &error);
- if (priv->device == NULL) {
- g_warning ("failed to get device %s: %s",
- priv->device_id,
- error->message);
- goto out;
- }
-
- /* connect to the device */
- ret = cd_device_connect_sync (priv->device,
- NULL,
- &error);
- if (!ret) {
- g_warning ("failed to connect to device: %s",
- error->message);
- goto out;
- }
-
- /* get the device properties */
- priv->device_kind = cd_device_get_kind (priv->device);
-
- /* for display calibration move the window to lower right area to
- * limit argyll from obscuring the window (too much) */
- if (priv->device_kind == CD_DEVICE_KIND_DISPLAY) {
- gtk_window_set_gravity (priv->main_window, GDK_GRAVITY_SOUTH_EAST);
- gtk_window_move (priv->main_window, gdk_screen_width() - window_width,
- gdk_screen_height() - window_height);
- }
-
- /* set, with fallbacks */
- serial = cd_device_get_serial (priv->device);
- if (serial == NULL) {
- /* TRANSLATORS: this is saved in the profile */
- serial = _("Unknown serial");
- }
- model = cd_device_get_model (priv->device);
- if (model == NULL) {
- /* TRANSLATORS: this is saved in the profile */
- model = _("Unknown model");
- }
- description = cd_device_get_model (priv->device);
- if (description == NULL) {
- /* TRANSLATORS: this is saved in the profile */
- description = _("Unknown description");
- }
- manufacturer = cd_device_get_vendor (priv->device);
- if (manufacturer == NULL) {
- /* TRANSLATORS: this is saved in the profile */
- manufacturer = _("Unknown manufacturer");
- }
-
- dt = g_date_time_new_now_local ();
- /* TRANSLATORS: this is the copyright string, where it might be
- * "Copyright (c) 2009 Edward Scissorhands"
- * BIG RED FLASHING NOTE: YOU NEED TO USE ASCII ONLY */
- copyright = g_strdup_printf ("%s %04i %s", _("Copyright (c)"),
- g_date_time_get_year (dt),
- g_get_real_name ());
-
- /* set the proper values */
- g_object_set (priv->calibrate,
- "device-kind", priv->device_kind,
- "model", model,
- "description", description,
- "manufacturer", manufacturer,
- "serial", serial,
- "copyright", copyright,
- NULL);
-
- /* display specific properties */
- if (priv->device_kind == CD_DEVICE_KIND_DISPLAY) {
- native_device = cd_device_get_metadata_item (priv->device,
- CD_DEVICE_METADATA_XRANDR_NAME);
- if (native_device == NULL) {
- g_warning ("failed to get output");
- goto out;
- }
- g_object_set (priv->calibrate,
- "output-name", native_device,
- NULL);
- }
-out:
- /* add different pages depending on the device kind */
- gcm_calib_add_pages (priv);
- gtk_assistant_set_current_page (GTK_ASSISTANT (priv->main_window), 0);
-}
-
-static void
-gcm_calib_title_changed_cb (GcmCalibrate *calibrate,
- const gchar *title,
- GcmCalibratePriv *priv)
-{
- g_autofree gchar *markup = NULL;
- markup = g_strdup_printf ("<span size=\"large\" font_weight=\"bold\">%s</span>", title);
- gtk_label_set_markup (GTK_LABEL (priv->action_title), markup);
-}
-
-static void
-gcm_calib_message_changed_cb (GcmCalibrate *calibrate,
- const gchar *title,
- GcmCalibratePriv *priv)
-{
- gtk_label_set_label (GTK_LABEL (priv->action_message), title);
-}
-
-static void
-gcm_calib_progress_changed_cb (GcmCalibrate *calibrate,
- guint percentage,
- GcmCalibratePriv *priv)
-{
- gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (priv->action_progress),
- percentage / 100.0f);
-}
-
-static void
-gcm_calib_image_changed_cb (GcmCalibrate *calibrate,
- const gchar *filename,
- GcmCalibratePriv *priv)
-{
- g_autoptr(GError) error = NULL;
-
- if (filename != NULL) {
- g_autoptr(GdkPixbuf) pixbuf = NULL;
- pixbuf = gdk_pixbuf_new_from_file_at_size (filename, 200, 400, &error);
- if (pixbuf == NULL) {
- g_warning ("failed to load image: %s", error->message);
- gtk_widget_hide (priv->action_image);
- } else {
- gtk_image_set_from_pixbuf (GTK_IMAGE (priv->action_image), pixbuf);
- gtk_widget_show (priv->action_image);
- }
- } else {
- gtk_widget_hide (priv->action_image);
- }
-}
-
-static void
-gcm_calib_interaction_required_cb (GcmCalibrate *calibrate,
- const gchar *button_text,
- GcmCalibratePriv *priv)
-{
- GtkWidget *vbox;
- vbox = gcm_calib_get_vbox_for_page (priv,
- GCM_CALIBRATE_PAGE_ACTION);
- gtk_assistant_set_page_complete (GTK_ASSISTANT (priv->main_window),
- vbox, TRUE);
- priv->has_pending_interaction = TRUE;
-}
-
-int
-main (int argc, char **argv)
-{
- gchar *device_id = NULL;
- GcmCalibratePriv *priv;
- GOptionContext *context;
- guint xid = 0;
- int status = 0;
-
- const GOptionEntry options[] = {
- { "parent-window", 'p', 0, G_OPTION_ARG_INT, &xid,
- /* TRANSLATORS: we can make this modal (stay on top of) another window */
- _("Set the parent window to make this modal"), NULL },
- { "device", 'd', 0, G_OPTION_ARG_STRING, &device_id,
- /* TRANSLATORS: show just the one profile, rather than all */
- _("Set the specific device to calibrate"), NULL },
- { NULL}
- };
-
- setlocale (LC_ALL, "");
-
- bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
- bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
- textdomain (GETTEXT_PACKAGE);
-
- gtk_init (&argc, &argv);
-
- context = g_option_context_new ("gnome-color-manager calibration tool");
- g_option_context_add_main_entries (context, options, NULL);
- g_option_context_add_group (context, gcm_debug_get_option_group ());
- g_option_context_add_group (context, gtk_get_option_group (TRUE));
- g_option_context_parse (context, &argc, &argv, NULL);
- g_option_context_free (context);
-
- priv = g_new0 (GcmCalibratePriv, 1);
- priv->pages = g_ptr_array_new ();
- priv->xid = xid;
- priv->device_id = device_id;
- priv->calibrate = gcm_calibrate_argyll_new ();
- g_object_set (priv->calibrate,
- "precision", GCM_CALIBRATE_PRECISION_LONG,
- NULL);
- priv->device_kind = CD_DEVICE_KIND_UNKNOWN;
- g_signal_connect (priv->calibrate, "title-changed",
- G_CALLBACK (gcm_calib_title_changed_cb), priv);
- g_signal_connect (priv->calibrate, "message-changed",
- G_CALLBACK (gcm_calib_message_changed_cb), priv);
- g_signal_connect (priv->calibrate, "image-changed",
- G_CALLBACK (gcm_calib_image_changed_cb), priv);
- g_signal_connect (priv->calibrate, "progress-changed",
- G_CALLBACK (gcm_calib_progress_changed_cb), priv);
- g_signal_connect (priv->calibrate, "interaction-required",
- G_CALLBACK (gcm_calib_interaction_required_cb), priv);
-
- /* nothing specified */
- if (priv->device_id == NULL) {
- g_print ("%s\n", _("No device was specified!"));
- goto out;
- }
-
- /* ensure single instance */
- priv->application = gtk_application_new ("org.gnome.ColorManager.Calibration", 0);
- g_signal_connect (priv->application, "startup",
- G_CALLBACK (gcm_calib_startup_cb), priv);
- g_signal_connect (priv->application, "activate",
- G_CALLBACK (gcm_calib_activate_cb), priv);
-
- /* wait */
- status = g_application_run (G_APPLICATION (priv->application), argc, argv);
-
- g_ptr_array_unref (priv->pages);
- g_object_unref (priv->application);
- g_object_unref (priv->calibrate);
- if (priv->client != NULL)
- g_object_unref (priv->client);
- if (priv->device_id != NULL)
- g_free (priv->device_id);
- if (priv->device != NULL)
- g_object_unref (priv->device);
- g_free (priv);
-out:
- return status;
-}
diff --git a/src/gcm-calibrate.c b/src/gcm-calibrate.c
deleted file mode 100644
index 44a49cb..0000000
--- a/src/gcm-calibrate.c
+++ /dev/null
@@ -1,1378 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * Copyright (C) 2009-2015 Richard Hughes <richard@hughsie.com>
- *
- * Licensed under the GNU General Public License Version 2
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#include "config.h"
-
-#include <glib/gi18n.h>
-#include <gtk/gtk.h>
-#include <math.h>
-#include <colord-gtk.h>
-#include <canberra-gtk.h>
-
-#include "gcm-calibrate.h"
-#include "gcm-utils.h"
-#include "gcm-brightness.h"
-#include "gcm-exif.h"
-
-static void gcm_calibrate_finalize (GObject *object);
-
-#define GCM_CALIBRATE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GCM_TYPE_CALIBRATE, GcmCalibratePrivate))
-
-typedef struct
-{
- GcmBrightness *brightness;
- GcmCalibrateDisplayKind display_kind;
- GcmCalibratePrintKind print_kind;
- GcmCalibratePrecision precision;
- GcmCalibrateReferenceKind reference_kind;
- CdSensor *sensor;
- CdDeviceKind device_kind;
- gchar *output_name;
- gchar *filename_source;
- gchar *filename_reference;
- gchar *filename_result;
- gchar *basename;
- gchar *copyright;
- gchar *manufacturer;
- gchar *model;
- gchar *description;
- gchar *serial;
- gchar *device;
- gchar *working_path;
- guint old_brightness;
- guint new_brightness;
- guint target_whitepoint;
- GtkWidget *content_widget;
- GtkWindow *sample_window;
- gchar *old_message;
- gchar *old_title;
- gboolean sensor_on_screen;
-} GcmCalibratePrivate;
-
-enum {
- PROP_0,
- PROP_BASENAME,
- PROP_COPYRIGHT,
- PROP_MODEL,
- PROP_DESCRIPTION,
- PROP_SERIAL,
- PROP_DEVICE,
- PROP_MANUFACTURER,
- PROP_REFERENCE_KIND,
- PROP_DISPLAY_KIND,
- PROP_PRINT_KIND,
- PROP_DEVICE_KIND,
- PROP_SENSOR_KIND,
- PROP_OUTPUT_NAME,
- PROP_FILENAME_SOURCE,
- PROP_FILENAME_REFERENCE,
- PROP_FILENAME_RESULT,
- PROP_WORKING_PATH,
- PROP_PRECISION,
- PROP_TARGET_WHITEPOINT,
- PROP_LAST
-};
-
-enum {
- SIGNAL_TITLE_CHANGED,
- SIGNAL_MESSAGE_CHANGED,
- SIGNAL_IMAGE_CHANGED,
- SIGNAL_PROGRESS_CHANGED,
- SIGNAL_INTERACTION_REQUIRED,
- SIGNAL_LAST
-};
-
-static guint signals[SIGNAL_LAST] = { 0 };
-
-G_DEFINE_TYPE_WITH_PRIVATE (GcmCalibrate, gcm_calibrate, G_TYPE_OBJECT)
-#define GET_PRIVATE(o) (gcm_calibrate_get_instance_private (o))
-
-void
-gcm_calibrate_set_content_widget (GcmCalibrate *calibrate, GtkWidget *widget)
-{
- GcmCalibratePrivate *priv = GET_PRIVATE (calibrate);
- priv->content_widget = widget;
-}
-
-GtkWidget *
-gcm_calibrate_get_content_widget (GcmCalibrate *calibrate)
-{
- GcmCalibratePrivate *priv = GET_PRIVATE (calibrate);
- return priv->content_widget;
-}
-
-static gboolean
-gcm_calibrate_mkdir_with_parents (const gchar *filename, GError **error)
-{
- g_autoptr(GFile) file = NULL;
-
- /* ensure desination exists */
- if (!g_file_test (filename, G_FILE_TEST_EXISTS)) {
- file = g_file_new_for_path (filename);
- if (!g_file_make_directory_with_parents (file, NULL, error))
- return FALSE;
- }
- return TRUE;
-}
-
-static gchar *
-gcm_calibrate_get_time (void)
-{
- gchar *text;
- time_t c_time;
-
- /* get the time now */
- time (&c_time);
- text = g_new0 (gchar, 255);
-
- /* format text */
- strftime (text, 254, "%H-%M-%S", localtime (&c_time));
- return text;
-}
-
-const gchar *
-gcm_calibrate_get_filename_result (GcmCalibrate *calibrate)
-{
- GcmCalibratePrivate *priv = GET_PRIVATE (calibrate);
- return priv->filename_result;
-}
-
-const gchar *
-gcm_calibrate_get_working_path (GcmCalibrate *calibrate)
-{
- GcmCalibratePrivate *priv = GET_PRIVATE (calibrate);
- return priv->working_path;
-}
-
-const gchar *
-gcm_calibrate_get_basename (GcmCalibrate *calibrate)
-{
- GcmCalibratePrivate *priv = GET_PRIVATE (calibrate);
- return priv->basename;
-}
-
-guint
-gcm_calibrate_get_screen_brightness (GcmCalibrate *calibrate)
-{
- GcmCalibratePrivate *priv = GET_PRIVATE (calibrate);
- return priv->new_brightness;
-}
-
-static void
-gcm_calibrate_set_basename (GcmCalibrate *calibrate)
-{
- g_autofree gchar *serial = NULL;
- g_autofree gchar *manufacturer = NULL;
- g_autofree gchar *model = NULL;
- g_autofree gchar *timespec = NULL;
- GDate *date = NULL;
- g_autoptr(GString) basename = NULL;
-
- /* get device properties */
- g_object_get (calibrate,
- "serial", &serial,
- "manufacturer", &manufacturer,
- "model", &model,
- NULL);
-
- /* create date and set it to now */
- date = g_date_new ();
- g_date_set_time_t (date, time (NULL));
- timespec = gcm_calibrate_get_time ();
-
- /* form basename */
- basename = g_string_new ("GCM");
- if (manufacturer != NULL)
- g_string_append_printf (basename, " - %s", manufacturer);
- if (model != NULL)
- g_string_append_printf (basename, " - %s", model);
- if (serial != NULL)
- g_string_append_printf (basename, " - %s", serial);
- g_string_append_printf (basename, " (%04i-%02i-%02i)", date->year, date->month, date->day);
-
- /* Use time as we can calibrate more than once per day */
- g_string_append_printf (basename, " [%s]", timespec);
-
- /* save this */
- g_object_set (calibrate, "basename", basename->str, NULL);
-
- g_date_free (date);
-}
-
-gboolean
-gcm_calibrate_set_from_exif (GcmCalibrate *calibrate, const gchar *filename, GError **error)
-{
- const gchar *manufacturer;
- const gchar *model;
- const gchar *serial;
- g_autofree gchar *description = NULL;
- g_autoptr(GcmExif) exif;
- g_autoptr(GFile) file = NULL;
-
- /* parse file */
- exif = gcm_exif_new ();
- file = g_file_new_for_path (filename);
- if (!gcm_exif_parse (exif, file, error))
- return FALSE;
-
- /* get data */
- manufacturer = gcm_exif_get_manufacturer (exif);
- model = gcm_exif_get_model (exif);
- serial = gcm_exif_get_serial (exif);
-
- /* do the best we can */
- description = g_strdup_printf ("%s - %s", manufacturer, model);
-
- /* only set what we've got, don't nuke perfectly good device data */
- if (model != NULL)
- g_object_set (calibrate, "model", model, NULL);
- if (description != NULL)
- g_object_set (calibrate, "description", description, NULL);
- if (manufacturer != NULL)
- g_object_set (calibrate, "manufacturer", manufacturer, NULL);
- if (serial != NULL)
- g_object_set (calibrate, "serial", serial, NULL);
- return TRUE;
-}
-
-void
-gcm_calibrate_set_sensor (GcmCalibrate *calibrate, CdSensor *sensor)
-{
- GcmCalibratePrivate *priv = GET_PRIVATE (calibrate);
- priv->sensor = g_object_ref (sensor);
-}
-
-CdSensor *
-gcm_calibrate_get_sensor (GcmCalibrate *calibrate)
-{
- GcmCalibratePrivate *priv = GET_PRIVATE (calibrate);
- /* do not refcount */
- return priv->sensor;
-}
-
-static gboolean
-gcm_calibrate_set_working_path (GcmCalibrate *calibrate, GError **error)
-{
- g_autofree gchar *timespec = NULL;
- g_autofree gchar *folder = NULL;
- GcmCalibratePrivate *priv = GET_PRIVATE (calibrate);
-
- /* remove old value */
- g_free (priv->working_path);
-
- /* use the basename and the timespec */
- timespec = gcm_calibrate_get_time ();
- folder = g_strjoin (" - ", priv->basename, timespec, NULL);
- priv->working_path = g_build_filename (g_get_user_config_dir (), "gnome-color-manager", "calibration", folder, NULL);
- return gcm_calibrate_mkdir_with_parents (priv->working_path, error);
-}
-
-void
-gcm_calibrate_interaction (GcmCalibrate *calibrate, GtkResponseType response)
-{
- GcmCalibratePrivate *priv = GET_PRIVATE (calibrate);
- GcmCalibrateClass *klass = GCM_CALIBRATE_GET_CLASS (calibrate);
-
- /* restore old status */
- if (response == GTK_RESPONSE_OK) {
- if (priv->old_title != NULL) {
- gcm_calibrate_set_title (calibrate,
- priv->old_title,
- GCM_CALIBRATE_UI_POST_INTERACTION);
- }
- if (priv->old_message != NULL) {
- gcm_calibrate_set_message (calibrate,
- priv->old_message,
- GCM_CALIBRATE_UI_POST_INTERACTION);
- }
-
- /* ensure the picture is cleared */
- gcm_calibrate_set_image (calibrate, NULL);
- }
-
- /* coldplug source */
- if (klass->interaction == NULL)
- return;
-
- /* proxy */
- klass->interaction (calibrate, response);
-}
-
-static gboolean
-gcm_calibrate_copy_file (const gchar *src,
- const gchar *dest,
- GError **error)
-{
- g_autoptr(GFile) file_src;
- g_autoptr(GFile) file_dest;
-
- g_debug ("copying from %s to %s", src, dest);
- file_src = g_file_new_for_path (src);
- file_dest = g_file_new_for_path (dest);
- return g_file_copy (file_src,
- file_dest,
- G_FILE_COPY_NONE,
- NULL,
- NULL,
- NULL,
- error);
-}
-
-void
-gcm_calibrate_interaction_attach (GcmCalibrate *calibrate)
-{
- GcmCalibratePrivate *priv = GET_PRIVATE (calibrate);
- const gchar *filename;
- g_autoptr(GString) message = NULL;
-
- gcm_calibrate_set_title (calibrate,
- /* TRANSLATORS: title, instrument is a hardware color calibration sensor */
- _("Please attach instrument"),
- GCM_CALIBRATE_UI_INTERACTION);
-
- /* different messages with or without image */
- message = g_string_new ("");
- filename = cd_sensor_get_metadata_item (priv->sensor,
- CD_SENSOR_METADATA_IMAGE_ATTACH);
- if (filename != NULL) {
- /* TRANSLATORS: dialog message, ask user to attach device, and there's an example image */
- g_string_append (message, _("Please attach the measuring instrument to the center of the screen on the gray square like the image below."));
- } else {
- /* TRANSLATORS: dialog message, ask user to attach device */
- g_string_append (message, _("Please attach the measuring instrument to the center of the screen on the gray square."));
- }
-
- /* this hardware doesn't suck :) */
- if (cd_sensor_get_kind (priv->sensor) == CD_SENSOR_KIND_COLORHUG) {
- g_string_append (message, "\n\n");
- /* TRANSLATORS: dialog message, ask user to attach device */
- g_string_append (message, _("You will need to hold the device on the screen for the duration of the calibration."));
- }
-
- gcm_calibrate_set_message (calibrate,
- message->str,
- GCM_CALIBRATE_UI_INTERACTION);
- gcm_calibrate_set_image (calibrate, filename);
- gcm_calibrate_interaction_required (calibrate, _("Continue"));
-
- /* play sound from the naming spec */
- ca_context_play (ca_gtk_context_get (), 0,
- CA_PROP_EVENT_ID, "dialog-information",
- /* TRANSLATORS: this is the application name for libcanberra */
- CA_PROP_APPLICATION_NAME, _("GNOME Color Manager"),
- CA_PROP_EVENT_DESCRIPTION, "interaction required", NULL);
-}
-
-void
-gcm_calibrate_interaction_screen (GcmCalibrate *calibrate)
-{
- GcmCalibratePrivate *priv = GET_PRIVATE (calibrate);
- const gchar *filename;
-
- gcm_calibrate_set_title (calibrate,
- /* TRANSLATORS: title, instrument is a hardware color calibration sensor */
- _("Please configure instrument"),
- GCM_CALIBRATE_UI_INTERACTION);
-
- /* get the image, if we have one */
- filename = cd_sensor_get_metadata_item (priv->sensor,
- CD_SENSOR_METADATA_IMAGE_CALIBRATE);
- gcm_calibrate_set_image (calibrate, filename);
- gcm_calibrate_interaction_required (calibrate, _("Continue"));
- if (filename != NULL) {
- gcm_calibrate_set_message (calibrate,
- /* TRANSLATORS: this is when the user has to change a setting on the sensor, and we're showing a picture */
- _("Please set the measuring instrument to screen mode like the image below."),
- GCM_CALIBRATE_UI_INTERACTION);
- } else {
- gcm_calibrate_set_message (calibrate,
- /* TRANSLATORS: this is when the user has to change a setting on the sensor */
- _("Please set the measuring instrument to screen mode."),
- GCM_CALIBRATE_UI_INTERACTION);
- }
-
- /* play sound from the naming spec */
- ca_context_play (ca_gtk_context_get (), 0,
- CA_PROP_EVENT_ID, "dialog-information",
- /* TRANSLATORS: this is the application name for libcanberra */
- CA_PROP_APPLICATION_NAME, _("GNOME Color Manager"),
- CA_PROP_EVENT_DESCRIPTION, "correct hardware state", NULL);
-}
-
-void
-gcm_calibrate_interaction_calibrate (GcmCalibrate *calibrate)
-{
- GcmCalibratePrivate *priv = GET_PRIVATE (calibrate);
- const gchar *filename;
-
- gcm_calibrate_set_title (calibrate,
- /* TRANSLATORS: title, instrument is a hardware color calibration sensor */
- _("Please configure instrument"),
- GCM_CALIBRATE_UI_INTERACTION);
-
- /* block for a response */
- g_debug ("blocking waiting for user input");
-
- /* get the image, if we have one */
- filename = cd_sensor_get_metadata_item (priv->sensor,
- CD_SENSOR_METADATA_IMAGE_CALIBRATE);
- gcm_calibrate_set_image (calibrate, filename);
- gcm_calibrate_interaction_required (calibrate, _("Continue"));
- if (filename != NULL) {
- gcm_calibrate_set_message (calibrate,
- /* TRANSLATORS: this is when the user has to change a setting on the sensor, and we're showing a picture */
- _("Please set the measuring instrument to calibration mode like the image below."),
- GCM_CALIBRATE_UI_INTERACTION);
- } else {
- gcm_calibrate_set_message (calibrate,
- /* TRANSLATORS: this is when the user has to change a setting on the sensor */
- _("Please set the measuring instrument to calibration mode."),
- GCM_CALIBRATE_UI_INTERACTION);
- }
-
- /* play sound from the naming spec */
- ca_context_play (ca_gtk_context_get (), 0,
- CA_PROP_EVENT_ID, "dialog-information",
- /* TRANSLATORS: this is the application name for libcanberra */
- CA_PROP_APPLICATION_NAME, _("GNOME Color Manager"),
- CA_PROP_EVENT_DESCRIPTION, "setup calibration tool", NULL);
-}
-
-static void
-gcm_calibrate_set_brightness (GcmCalibrate *calibrate, CdDevice *device)
-{
- GcmCalibratePrivate *priv = GET_PRIVATE (calibrate);
- const gchar *xrandr_name;
- gboolean ret;
- g_autoptr(GError) error = NULL;
-
- /* is this a laptop */
- xrandr_name = cd_device_get_metadata_item (device,
- CD_DEVICE_METADATA_XRANDR_NAME);
- if (xrandr_name == NULL)
- return;
- ret = gcm_utils_output_is_lcd_internal (xrandr_name);
- if (!ret)
- return;
-
- /* set the brightness to max */
- ret = gcm_brightness_get_percentage (priv->brightness,
- &priv->old_brightness,
- &error);
- if (!ret) {
- g_warning ("failed to get brightness: %s",
- error->message);
- g_clear_error (&error);
- }
- /* FIXME: allow the user to set this */
- priv->new_brightness = 100;
- ret = gcm_brightness_set_percentage (priv->brightness,
- priv->new_brightness,
- &error);
- if (!ret) {
- g_warning ("failed to set brightness: %s",
- error->message);
- }
-}
-
-static void
-gcm_calibrate_unset_brightness (GcmCalibrate *calibrate, CdDevice *device)
-{
- GcmCalibratePrivate *priv = GET_PRIVATE (calibrate);
- const gchar *xrandr_name;
- gboolean ret;
- g_autoptr(GError) error = NULL;
-
- /* is this a laptop */
- xrandr_name = cd_device_get_metadata_item (device,
- CD_DEVICE_METADATA_XRANDR_NAME);
- if (xrandr_name == NULL)
- return;
- if (!gcm_utils_output_is_lcd_internal (xrandr_name))
- return;
-
- /* never set */
- if (priv->old_brightness == G_MAXUINT)
- return;
-
- /* reset the brightness to what it was before */
- ret = gcm_brightness_set_percentage (priv->brightness,
- priv->old_brightness,
- &error);
- if (!ret)
- g_warning ("failed to set brightness: %s", error->message);
-}
-
-static gboolean
-gcm_calibrate_display (GcmCalibrate *calibrate,
- CdDevice *device,
- GtkWindow *window,
- GError **error)
-{
- const gchar *filename_tmp;
- gboolean ret = TRUE;
- g_autofree gchar *cal_fn = NULL;
- g_autofree gchar *ti1_dest_fn = NULL;
- g_autofree gchar *ti1_src_fn = NULL;
- g_autofree gchar *ti3_fn = NULL;
- GcmCalibrateClass *klass = GCM_CALIBRATE_GET_CLASS (calibrate);
- GcmCalibratePrivate *priv = GET_PRIVATE (calibrate);
-
- /* set brightness */
- gcm_calibrate_set_brightness (calibrate, device);
-
- /* get a ti1 file suitable for the calibration */
- ti1_dest_fn = g_strdup_printf ("%s/%s.ti1",
- priv->working_path,
- priv->basename);
-
- /* copy a pre-generated file into the working path */
- switch (priv->precision) {
- case GCM_CALIBRATE_PRECISION_SHORT:
- filename_tmp = "display-short.ti1";
- break;
- case GCM_CALIBRATE_PRECISION_NORMAL:
- filename_tmp = "display-normal.ti1";
- break;
- case GCM_CALIBRATE_PRECISION_LONG:
- filename_tmp = "display-long.ti1";
- break;
- default:
- g_assert_not_reached ();
- }
- ti1_src_fn = g_build_filename (PKGDATADIR, "ti1", filename_tmp, NULL);
- ret = gcm_calibrate_copy_file (ti1_src_fn, ti1_dest_fn, error);
- if (!ret)
- goto out;
-
- /* coldplug source */
- if (klass->calibrate_display == NULL) {
- ret = FALSE;
- g_set_error_literal (error,
- GCM_CALIBRATE_ERROR,
- GCM_CALIBRATE_ERROR_INTERNAL,
- "no klass support");
- goto out;
- }
-
- /* proxy */
- ret = klass->calibrate_display (calibrate, device, priv->sensor, window, error);
- if (!ret)
- goto out;
-out:
- /* unset brightness */
- gcm_calibrate_unset_brightness (calibrate, device);
- return ret;
-}
-
-static gchar *
-gcm_calibrate_camera_get_reference_image (const gchar *directory, GtkWindow *window)
-{
- gchar *filename = NULL;
- GtkWidget *dialog;
- GtkFileFilter *filter;
-
- /* TRANSLATORS: dialog for file->open dialog. A calibration target image is the
- * aquired image of the calibration target, e.g. an image file that looks
- * a bit like this: http://www.colorreference.de/targets/target.jpg */
- dialog = gtk_file_chooser_dialog_new (_("Select calibration target image"), window,
- GTK_FILE_CHOOSER_ACTION_OPEN,
- _("_Cancel"), GTK_RESPONSE_CANCEL,
- _("_Open"), GTK_RESPONSE_ACCEPT,
- NULL);
- gtk_window_set_icon_name (GTK_WINDOW (dialog), GCM_STOCK_ICON);
- gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER(dialog), directory);
- gtk_file_chooser_set_create_folders (GTK_FILE_CHOOSER(dialog), FALSE);
-
- /* setup the filter */
- filter = gtk_file_filter_new ();
- gtk_file_filter_add_mime_type (filter, "image/tiff");
- /* TRANSLATORS: filter name on the file->open dialog */
- gtk_file_filter_set_name (filter, _("Supported images files"));
- gtk_file_chooser_add_filter (GTK_FILE_CHOOSER(dialog), filter);
-
- /* setup the all files filter */
- filter = gtk_file_filter_new ();
- gtk_file_filter_add_pattern (filter, "*");
- /* TRANSLATORS: filter name on the file->open dialog */
- gtk_file_filter_set_name (filter, _("All files"));
- gtk_file_chooser_add_filter (GTK_FILE_CHOOSER(dialog), filter);
-
- /* did user choose file */
- if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
- filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER(dialog));
-
- /* we're done */
- gtk_widget_destroy (dialog);
-
- /* or NULL for missing */
- return filename;
-}
-
-static gchar *
-gcm_calibrate_camera_get_reference_data (const gchar *directory, GtkWindow *window)
-{
- gchar *filename = NULL;
- GtkWidget *dialog;
- GtkFileFilter *filter;
-
- /* TRANSLATORS: dialog for file->open dialog */
- dialog = gtk_file_chooser_dialog_new (_("Select CIE reference values file"), window,
- GTK_FILE_CHOOSER_ACTION_OPEN,
- _("_Cancel"), GTK_RESPONSE_CANCEL,
- _("_Open"), GTK_RESPONSE_ACCEPT,
- NULL);
- gtk_window_set_icon_name (GTK_WINDOW (dialog), GCM_STOCK_ICON);
- gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER(dialog), directory);
- gtk_file_chooser_set_create_folders (GTK_FILE_CHOOSER(dialog), FALSE);
-
- /* setup the filter */
- filter = gtk_file_filter_new ();
- gtk_file_filter_add_mime_type (filter, "application/x-it87");
-
- /* we can remove this when we depend on a new shared-mime-info */
- gtk_file_filter_add_pattern (filter, "*.cie");
- gtk_file_filter_add_pattern (filter, "*.CIE");
- gtk_file_filter_add_pattern (filter, "*.txt");
- gtk_file_filter_add_pattern (filter, "*.TXT");
- gtk_file_filter_add_pattern (filter, "*.it8");
- gtk_file_filter_add_pattern (filter, "*.IT8");
-
- /* TRANSLATORS: filter name on the file->open dialog */
- gtk_file_filter_set_name (filter, _("CIE values"));
- gtk_file_chooser_add_filter (GTK_FILE_CHOOSER(dialog), filter);
-
- /* setup the all files filter */
- filter = gtk_file_filter_new ();
- gtk_file_filter_add_pattern (filter, "*");
- /* TRANSLATORS: filter name on the file->open dialog */
- gtk_file_filter_set_name (filter, _("All files"));
- gtk_file_chooser_add_filter (GTK_FILE_CHOOSER(dialog), filter);
-
- /* did user choose file */
- if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
- filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER(dialog));
-
- /* we're done */
- gtk_widget_destroy (dialog);
-
- /* or NULL for missing */
- return filename;
-}
-
-static gchar *
-gcm_calibrate_get_device_for_it8_file (const gchar *filename)
-{
- gchar *device = NULL;
- guint i;
- g_autofree gchar *contents = NULL;
- g_auto(GStrv) lines = NULL;
- g_autoptr(GError) error = NULL;
-
- /* get contents */
- if (!g_file_get_contents (filename, &contents, NULL, &error)) {
- g_warning ("failed to get contents: %s", error->message);
- return NULL;
- }
-
- /* split */
- lines = g_strsplit (contents, "\n", 15);
- for (i = 0; lines[i] != NULL; i++) {
- if (!g_str_has_prefix (lines[i], "ORIGINATOR"))
- continue;
-
- /* copy, without the header or double quotes */
- device = g_strdup (lines[i]+12);
- g_strdelimit (device, "\"", '\0');
- break;
- }
- return device;
-}
-
-static gchar *
-gcm_calibrate_file_chooser_get_working_path (GcmCalibrate *calibrate, GtkWindow *window)
-{
- GtkWidget *dialog;
- g_autofree gchar *current_folder = NULL;
- gchar *working_path = NULL;
-
- /* start in the correct place */
- current_folder = g_build_filename (g_get_user_config_dir (), "gnome-color-manager", "calibration", NULL);
-
- /* TRANSLATORS: dialog for file->open dialog */
- dialog = gtk_file_chooser_dialog_new (_("Select ICC Profile File"), window,
- GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
- _("_Cancel"), GTK_RESPONSE_CANCEL,
- _("_Open"), GTK_RESPONSE_ACCEPT,
- NULL);
- gtk_window_set_icon_name (GTK_WINDOW (dialog), GCM_STOCK_ICON);
- gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER(dialog), current_folder);
- gtk_file_chooser_set_create_folders (GTK_FILE_CHOOSER(dialog), FALSE);
- gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER(dialog), FALSE);
-
- /* did user choose file */
- if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
- working_path = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER(dialog));
-
- /* we're done */
- gtk_widget_destroy (dialog);
-
- /* or NULL for missing */
- return working_path;
-}
-
-static gboolean
-gcm_calibrate_printer (GcmCalibrate *calibrate, CdDevice *device, GtkWindow *window, GError **error)
-{
- gchar *ptr;
- GtkWindow *window_tmp = NULL;
- g_autofree gchar *precision = NULL;
- const gchar *filename_tmp;
- g_autofree gchar *ti1_dest_fn = NULL;
- g_autofree gchar *ti1_src_fn = NULL;
- GcmCalibrateClass *klass = GCM_CALIBRATE_GET_CLASS (calibrate);
- GcmCalibratePrivate *priv = GET_PRIVATE (calibrate);
-
- /* get a ti1 file suitable for the calibration */
- ti1_dest_fn = g_strdup_printf ("%s/%s.ti1",
- priv->working_path,
- priv->basename);
-
- /* copy a pre-generated file into the working path */
- switch (priv->precision) {
- case GCM_CALIBRATE_PRECISION_SHORT:
- filename_tmp = "printer-short.ti1";
- break;
- case GCM_CALIBRATE_PRECISION_NORMAL:
- filename_tmp = "printer-normal.ti1";
- break;
- case GCM_CALIBRATE_PRECISION_LONG:
- filename_tmp = "printer-long.ti1";
- break;
- default:
- g_assert_not_reached ();
- }
- ti1_src_fn = g_build_filename (PKGDATADIR, "ti1", filename_tmp, NULL);
- if (!gcm_calibrate_copy_file (ti1_src_fn, ti1_dest_fn, error))
- return FALSE;
-
- /* copy */
- if (priv->print_kind == GCM_CALIBRATE_PRINT_KIND_ANALYZE) {
-
- /* remove previously set value (if any) */
- g_free (priv->working_path);
- priv->working_path = NULL;
-
- /* get from the user */
- priv->working_path = gcm_calibrate_file_chooser_get_working_path (calibrate, window_tmp);
- if (priv->working_path == NULL) {
- g_set_error_literal (error,
- GCM_CALIBRATE_ERROR,
- GCM_CALIBRATE_ERROR_USER_ABORT,
- "user did not choose folder");
- return FALSE;
- }
-
- /* reprogram the basename */
- g_free (priv->basename);
- priv->basename = g_path_get_basename (priv->working_path);
-
- /* remove the timespec */
- ptr = g_strrstr (priv->basename, " - ");
- if (ptr != NULL)
- ptr[0] = '\0';
- }
-
- /* coldplug source */
- if (klass->calibrate_printer == NULL) {
- g_set_error_literal (error,
- GCM_CALIBRATE_ERROR,
- GCM_CALIBRATE_ERROR_INTERNAL,
- "no klass support");
- return FALSE;
- }
-
- /* proxy */
- return klass->calibrate_printer (calibrate, device, priv->sensor, window, error);
-}
-
-gboolean
-gcm_calibrate_get_enabled (GcmCalibrate *calibrate)
-{
- GcmCalibrateClass *klass = GCM_CALIBRATE_GET_CLASS (calibrate);
- if (klass->get_enabled != NULL)
- return klass->get_enabled (calibrate);
- return TRUE;
-}
-
-static const gchar *
-gcm_calibrate_get_reference_cie (GcmCalibrateReferenceKind kind)
-{
- if (kind == GCM_CALIBRATE_REFERENCE_KIND_CMP_DIGITAL_TARGET_3)
- return "CMP_Digital_Target-3.cie";
- if (kind == GCM_CALIBRATE_REFERENCE_KIND_COLOR_CHECKER)
- return "ColorChecker.cie";
- if (kind == GCM_CALIBRATE_REFERENCE_KIND_QPCARD_201)
- return "QPcard_201.cie";
- return NULL;
-}
-
-static gboolean
-gcm_calibrate_camera (GcmCalibrate *calibrate, CdDevice *device, GtkWindow *window, GError **error)
-{
- gboolean ret = FALSE;
- gboolean has_shared_targets = TRUE;
- g_autofree gchar *reference_image = NULL;
- g_autofree gchar *reference_data = NULL;
- g_autofree gchar *device_str = NULL;
- const gchar *directory;
- const gchar *tmp;
- g_autoptr(GString) string = NULL;
- GtkWindow *window_tmp = NULL;
- g_autofree gchar *precision = NULL;
- GcmCalibratePrivate *priv = GET_PRIVATE (calibrate);
- GcmCalibrateClass *klass = GCM_CALIBRATE_GET_CLASS (calibrate);
-
- string = g_string_new ("");
-
- /* get scanned image */
- directory = g_get_home_dir ();
- reference_image = gcm_calibrate_camera_get_reference_image (directory, window_tmp);
- if (reference_image == NULL) {
- g_set_error_literal (error,
- GCM_CALIBRATE_ERROR,
- GCM_CALIBRATE_ERROR_USER_ABORT,
- "could not get calibration target image");
- return FALSE;
- }
-
- /* use the exif data if there is any present */
- ret = gcm_calibrate_set_from_exif (calibrate, reference_image, NULL);
- if (!ret)
- g_debug ("no EXIF data, so using device attributes");
-
- /* get reference data */
- tmp = gcm_calibrate_get_reference_cie (priv->reference_kind);
- if (tmp != NULL) {
- /* some references don't have custom CIE files available
- * to them and instead rely on a fixed reference */
- reference_data = g_build_filename ("/usr/share/color/argyll/ref",
- tmp,
- NULL);
- } else {
- /* ask the user to find the profile */
- directory = has_shared_targets ? "/usr/share/color/targets" : "/media";
- reference_data = gcm_calibrate_camera_get_reference_data (directory, window_tmp);
- if (reference_data == NULL) {
- g_set_error_literal (error,
- GCM_CALIBRATE_ERROR,
- GCM_CALIBRATE_ERROR_USER_ABORT,
- "could not get reference target");
- return FALSE;
- }
- }
-
- /* use the ORIGINATOR in the it8 file */
- device_str = gcm_calibrate_get_device_for_it8_file (reference_data);
- if (device_str == NULL)
- device_str = g_strdup ("IT8.7");
-
- /* set the calibration parameters */
- g_object_set (calibrate,
- "filename-source", reference_image,
- "filename-reference", reference_data,
- "device", device,
- NULL);
-
- /* coldplug source */
- if (klass->calibrate_device == NULL) {
- g_set_error_literal (error,
- GCM_CALIBRATE_ERROR,
- GCM_CALIBRATE_ERROR_INTERNAL,
- "no klass support");
- return FALSE;
- }
-
- /* proxy */
- return klass->calibrate_device (calibrate, device, priv->sensor, window, error);
-}
-
-gboolean
-gcm_calibrate_device (GcmCalibrate *calibrate,
- CdDevice *device,
- GtkWindow *window,
- GError **error)
-{
- gboolean ret = TRUE;
-
- /* set up some initial parameters */
- gcm_calibrate_set_basename (calibrate);
- ret = gcm_calibrate_set_working_path (calibrate, error);
- if (!ret)
- goto out;
-
- /* mark device to be profiled in colord */
- ret = cd_device_profiling_inhibit_sync (device,
- NULL,
- error);
- if (!ret)
- goto out;
-
- /* set progress */
- gcm_calibrate_set_progress (calibrate, 0);
-
- switch (cd_device_get_kind (device)) {
- case CD_DEVICE_KIND_DISPLAY:
- ret = gcm_calibrate_display (calibrate,
- device,
- window,
- error);
- if (!ret) {
- /* we don't care about the success or error */
- cd_device_profiling_uninhibit_sync (device,
- NULL,
- NULL);
- goto out;
- }
- break;
- case CD_DEVICE_KIND_PRINTER:
- ret = gcm_calibrate_printer (calibrate,
- device,
- window,
- error);
- if (!ret) {
- /* we don't care about the success or error */
- cd_device_profiling_uninhibit_sync (device,
- NULL,
- NULL);
- goto out;
- }
- break;
- default:
- ret = gcm_calibrate_camera (calibrate,
- device,
- window,
- error);
- if (!ret) {
- /* we don't care about the success or error */
- cd_device_profiling_uninhibit_sync (device,
- NULL,
- NULL);
- goto out;
- }
- break;
- }
-
- /* device back to normal */
- ret = cd_device_profiling_uninhibit_sync (device,
- NULL,
- error);
- if (!ret)
- goto out;
-
- /* set progress */
- gcm_calibrate_set_progress (calibrate, 100);
-out:
- return ret;
-}
-
-void
-gcm_calibrate_set_title (GcmCalibrate *calibrate,
- const gchar *title,
- GcmCalibrateUiType ui_type)
-{
- GcmCalibratePrivate *priv = GET_PRIVATE (calibrate);
- g_signal_emit (calibrate, signals[SIGNAL_TITLE_CHANGED], 0, title);
- if (ui_type == GCM_CALIBRATE_UI_STATUS && title != NULL) {
- g_free (priv->old_title);
- priv->old_title = g_strdup (title);
- }
-}
-
-void
-gcm_calibrate_set_message (GcmCalibrate *calibrate,
- const gchar *message,
- GcmCalibrateUiType ui_type)
-{
- GcmCalibratePrivate *priv = GET_PRIVATE (calibrate);
- g_signal_emit (calibrate, signals[SIGNAL_MESSAGE_CHANGED], 0, message);
- if (ui_type == GCM_CALIBRATE_UI_STATUS && message != NULL) {
- g_free (priv->old_message);
- priv->old_message = g_strdup (message);
- }
-}
-
-void
-gcm_calibrate_set_image (GcmCalibrate *calibrate,
- const gchar *filename)
-{
- g_signal_emit (calibrate, signals[SIGNAL_IMAGE_CHANGED], 0, filename);
-}
-
-void
-gcm_calibrate_set_progress (GcmCalibrate *calibrate, guint percentage)
-{
- g_signal_emit (calibrate, signals[SIGNAL_PROGRESS_CHANGED], 0, percentage);
-}
-
-void
-gcm_calibrate_interaction_required (GcmCalibrate *calibrate, const gchar *button_text)
-{
- g_signal_emit (calibrate, signals[SIGNAL_INTERACTION_REQUIRED], 0, button_text);
-}
-
-static void
-gcm_calibrate_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
-{
- GcmCalibrate *calibrate = GCM_CALIBRATE (object);
- GcmCalibratePrivate *priv = GET_PRIVATE (calibrate);
-
- switch (prop_id) {
- case PROP_REFERENCE_KIND:
- g_value_set_uint (value, priv->reference_kind);
- break;
- case PROP_DEVICE_KIND:
- g_value_set_uint (value, priv->device_kind);
- break;
- case PROP_PRINT_KIND:
- g_value_set_uint (value, priv->print_kind);
- break;
- case PROP_DISPLAY_KIND:
- g_value_set_uint (value, priv->display_kind);
- break;
- case PROP_SENSOR_KIND:
- g_assert (priv->sensor != NULL);
- g_value_set_uint (value, cd_sensor_get_kind (priv->sensor));
- break;
- case PROP_OUTPUT_NAME:
- g_value_set_string (value, priv->output_name);
- break;
- case PROP_FILENAME_SOURCE:
- g_value_set_string (value, priv->filename_source);
- break;
- case PROP_FILENAME_REFERENCE:
- g_value_set_string (value, priv->filename_reference);
- break;
- case PROP_FILENAME_RESULT:
- g_value_set_string (value, priv->filename_result);
- break;
- case PROP_BASENAME:
- g_value_set_string (value, priv->basename);
- break;
- case PROP_COPYRIGHT:
- g_value_set_string (value, priv->copyright);
- break;
- case PROP_MODEL:
- g_value_set_string (value, priv->model);
- break;
- case PROP_DESCRIPTION:
- g_value_set_string (value, priv->description);
- break;
- case PROP_SERIAL:
- g_value_set_string (value, priv->serial);
- break;
- case PROP_DEVICE:
- g_value_set_string (value, priv->device);
- break;
- case PROP_MANUFACTURER:
- g_value_set_string (value, priv->manufacturer);
- break;
- case PROP_WORKING_PATH:
- g_value_set_string (value, priv->working_path);
- break;
- case PROP_PRECISION:
- g_value_set_uint (value, priv->precision);
- break;
- case PROP_TARGET_WHITEPOINT:
- g_value_set_uint (value, priv->target_whitepoint);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-
-static void
-gcm_calibrate_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
-{
- GcmCalibrate *calibrate = GCM_CALIBRATE (object);
- GcmCalibratePrivate *priv = GET_PRIVATE (calibrate);
-
- switch (prop_id) {
- case PROP_OUTPUT_NAME:
- g_free (priv->output_name);
- priv->output_name = g_strdup (g_value_get_string (value));
- break;
- case PROP_FILENAME_SOURCE:
- g_free (priv->filename_source);
- priv->filename_source = g_strdup (g_value_get_string (value));
- break;
- case PROP_FILENAME_REFERENCE:
- g_free (priv->filename_reference);
- priv->filename_reference = g_strdup (g_value_get_string (value));
- break;
- case PROP_FILENAME_RESULT:
- g_free (priv->filename_result);
- priv->filename_result = g_strdup (g_value_get_string (value));
- break;
- case PROP_BASENAME:
- g_free (priv->basename);
- priv->basename = g_strdup (g_value_get_string (value));
- gcm_utils_ensure_sensible_filename (priv->basename);
- break;
- case PROP_COPYRIGHT:
- g_free (priv->copyright);
- priv->copyright = g_strdup (g_value_get_string (value));
- break;
- case PROP_MODEL:
- g_free (priv->model);
- priv->model = g_strdup (g_value_get_string (value));
- break;
- case PROP_DESCRIPTION:
- g_free (priv->description);
- priv->description = g_strdup (g_value_get_string (value));
- break;
- case PROP_SERIAL:
- g_free (priv->serial);
- priv->serial = g_strdup (g_value_get_string (value));
- break;
- case PROP_DEVICE:
- g_free (priv->device);
- priv->device = g_strdup (g_value_get_string (value));
- break;
- case PROP_MANUFACTURER:
- g_free (priv->manufacturer);
- priv->manufacturer = g_strdup (g_value_get_string (value));
- break;
- case PROP_DEVICE_KIND:
- priv->device_kind = g_value_get_uint (value);
- break;
- case PROP_PRECISION:
- priv->precision = g_value_get_uint (value);
- break;
- case PROP_DISPLAY_KIND:
- priv->display_kind = g_value_get_uint (value);
- break;
- case PROP_PRINT_KIND:
- priv->print_kind = g_value_get_uint (value);
- break;
- case PROP_REFERENCE_KIND:
- priv->reference_kind = g_value_get_uint (value);
- break;
- case PROP_WORKING_PATH:
- g_free (priv->working_path);
- priv->working_path = g_strdup (g_value_get_string (value));
- break;
- case PROP_TARGET_WHITEPOINT:
- priv->target_whitepoint = g_value_get_uint (value);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-gcm_calibrate_class_init (GcmCalibrateClass *klass)
-{
- GParamSpec *pspec;
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
- object_class->finalize = gcm_calibrate_finalize;
- object_class->get_property = gcm_calibrate_get_property;
- object_class->set_property = gcm_calibrate_set_property;
-
- pspec = g_param_spec_uint ("reference-kind", NULL, NULL,
- 0, G_MAXUINT, 0,
- G_PARAM_READWRITE);
- g_object_class_install_property (object_class, PROP_REFERENCE_KIND, pspec);
-
- pspec = g_param_spec_uint ("display-kind", NULL, NULL,
- 0, G_MAXUINT, 0,
- G_PARAM_READWRITE);
- g_object_class_install_property (object_class, PROP_DISPLAY_KIND, pspec);
-
- pspec = g_param_spec_uint ("print-kind", NULL, NULL,
- 0, G_MAXUINT, 0,
- G_PARAM_READWRITE);
- g_object_class_install_property (object_class, PROP_PRINT_KIND, pspec);
-
- pspec = g_param_spec_uint ("device-kind", NULL, NULL,
- 0, G_MAXUINT, 0,
- G_PARAM_READWRITE);
- g_object_class_install_property (object_class, PROP_DEVICE_KIND, pspec);
-
- pspec = g_param_spec_uint ("sensor-kind", NULL, NULL,
- 0, G_MAXUINT, 0,
- G_PARAM_READABLE);
- g_object_class_install_property (object_class, PROP_SENSOR_KIND, pspec);
-
- pspec = g_param_spec_string ("output-name", NULL, NULL,
- NULL,
- G_PARAM_READWRITE);
- g_object_class_install_property (object_class, PROP_OUTPUT_NAME, pspec);
-
- pspec = g_param_spec_string ("filename-source", NULL, NULL,
- NULL,
- G_PARAM_READWRITE);
- g_object_class_install_property (object_class, PROP_FILENAME_SOURCE, pspec);
-
- pspec = g_param_spec_string ("filename-reference", NULL, NULL,
- NULL,
- G_PARAM_READWRITE);
- g_object_class_install_property (object_class, PROP_FILENAME_REFERENCE, pspec);
-
- pspec = g_param_spec_string ("filename-result", NULL, NULL,
- NULL,
- G_PARAM_READWRITE);
- g_object_class_install_property (object_class, PROP_FILENAME_RESULT, pspec);
-
- pspec = g_param_spec_string ("basename", NULL, NULL,
- NULL,
- G_PARAM_READWRITE);
- g_object_class_install_property (object_class, PROP_BASENAME, pspec);
-
- pspec = g_param_spec_string ("copyright", NULL, NULL,
- NULL,
- G_PARAM_READWRITE);
- g_object_class_install_property (object_class, PROP_COPYRIGHT, pspec);
-
- pspec = g_param_spec_string ("model", NULL, NULL,
- NULL,
- G_PARAM_READWRITE);
- g_object_class_install_property (object_class, PROP_MODEL, pspec);
-
- pspec = g_param_spec_string ("description", NULL, NULL,
- NULL,
- G_PARAM_READWRITE);
- g_object_class_install_property (object_class, PROP_DESCRIPTION, pspec);
-
- pspec = g_param_spec_string ("serial", NULL, NULL,
- NULL,
- G_PARAM_READWRITE);
- g_object_class_install_property (object_class, PROP_SERIAL, pspec);
-
- pspec = g_param_spec_string ("device", NULL, NULL,
- NULL,
- G_PARAM_READWRITE);
- g_object_class_install_property (object_class, PROP_DEVICE, pspec);
-
- pspec = g_param_spec_string ("manufacturer", NULL, NULL,
- NULL,
- G_PARAM_READWRITE);
- g_object_class_install_property (object_class, PROP_MANUFACTURER, pspec);
-
- pspec = g_param_spec_string ("working-path", NULL, NULL,
- NULL,
- G_PARAM_READWRITE);
- g_object_class_install_property (object_class, PROP_WORKING_PATH, pspec);
-
- pspec = g_param_spec_uint ("precision", NULL, NULL,
- 0, G_MAXUINT, 0,
- G_PARAM_READWRITE);
- g_object_class_install_property (object_class, PROP_PRECISION, pspec);
-
- pspec = g_param_spec_uint ("target-whitepoint", NULL, NULL,
- 0, G_MAXUINT, 0,
- G_PARAM_READWRITE);
- g_object_class_install_property (object_class, PROP_TARGET_WHITEPOINT, pspec);
-
- signals[SIGNAL_TITLE_CHANGED] =
- g_signal_new ("title-changed",
- G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GcmCalibrateClass, title_changed),
- NULL, NULL, g_cclosure_marshal_VOID__STRING,
- G_TYPE_NONE, 1, G_TYPE_STRING);
- signals[SIGNAL_MESSAGE_CHANGED] =
- g_signal_new ("message-changed",
- G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GcmCalibrateClass, message_changed),
- NULL, NULL, g_cclosure_marshal_VOID__STRING,
- G_TYPE_NONE, 1, G_TYPE_STRING);
- signals[SIGNAL_IMAGE_CHANGED] =
- g_signal_new ("image-changed",
- G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GcmCalibrateClass, image_changed),
- NULL, NULL, g_cclosure_marshal_VOID__STRING,
- G_TYPE_NONE, 1, G_TYPE_STRING);
- signals[SIGNAL_PROGRESS_CHANGED] =
- g_signal_new ("progress-changed",
- G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GcmCalibrateClass, progress_changed),
- NULL, NULL, g_cclosure_marshal_VOID__UINT,
- G_TYPE_NONE, 1, G_TYPE_UINT);
- signals[SIGNAL_INTERACTION_REQUIRED] =
- g_signal_new ("interaction-required",
- G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GcmCalibrateClass, interaction_required),
- NULL, NULL, g_cclosure_marshal_VOID__STRING,
- G_TYPE_NONE, 1, G_TYPE_STRING);
-}
-
-static void
-gcm_calibrate_init (GcmCalibrate *calibrate)
-{
- GcmCalibratePrivate *priv = GET_PRIVATE (calibrate);
- priv->print_kind = GCM_CALIBRATE_PRINT_KIND_UNKNOWN;
- priv->reference_kind = GCM_CALIBRATE_REFERENCE_KIND_UNKNOWN;
- priv->precision = GCM_CALIBRATE_PRECISION_UNKNOWN;
- priv->sample_window = cd_sample_window_new ();
- priv->old_brightness = G_MAXUINT;
- priv->brightness = gcm_brightness_new ();
-
- // FIXME: this has to be per-run specific
- priv->working_path = g_strdup ("/tmp");
-}
-
-static void
-gcm_calibrate_finalize (GObject *object)
-{
- GcmCalibrate *calibrate = GCM_CALIBRATE (object);
- GcmCalibratePrivate *priv = GET_PRIVATE (calibrate);
-
- g_free (priv->filename_source);
- g_free (priv->filename_reference);
- g_free (priv->filename_result);
- g_free (priv->output_name);
- g_free (priv->basename);
- g_free (priv->manufacturer);
- g_free (priv->model);
- g_free (priv->description);
- g_free (priv->device);
- g_free (priv->serial);
- g_free (priv->working_path);
- g_free (priv->old_title);
- g_free (priv->old_message);
- gtk_widget_destroy (GTK_WIDGET (priv->sample_window));
- g_object_unref (priv->brightness);
- if (priv->sensor != NULL)
- g_object_unref (priv->sensor);
-
- G_OBJECT_CLASS (gcm_calibrate_parent_class)->finalize (object);
-}
-
-GcmCalibrate *
-gcm_calibrate_new (void)
-{
- GcmCalibrate *calibrate;
- calibrate = g_object_new (GCM_TYPE_CALIBRATE, NULL);
- return GCM_CALIBRATE (calibrate);
-}
diff --git a/src/gcm-calibrate.h b/src/gcm-calibrate.h
deleted file mode 100644
index fc6b1b4..0000000
--- a/src/gcm-calibrate.h
+++ /dev/null
@@ -1,173 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * Copyright (C) 2009-2015 Richard Hughes <richard@hughsie.com>
- *
- * Licensed under the GNU General Public License Version 2
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#ifndef __GCM_CALIBRATE_H
-#define __GCM_CALIBRATE_H
-
-#include <glib-object.h>
-#include <gtk/gtk.h>
-#include <colord.h>
-
-G_BEGIN_DECLS
-
-#define GCM_TYPE_CALIBRATE (gcm_calibrate_get_type ())
-G_DECLARE_DERIVABLE_TYPE (GcmCalibrate, gcm_calibrate, GCM, CALIBRATE, GObject)
-
-struct _GcmCalibrateClass
-{
- GObjectClass parent_class;
- /* vtable */
- gboolean (*calibrate_display) (GcmCalibrate *calibrate,
- CdDevice *device,
- CdSensor *sensor,
- GtkWindow *window,
- GError **error);
- gboolean (*calibrate_device) (GcmCalibrate *calibrate,
- CdDevice *device,
- CdSensor *sensor,
- GtkWindow *window,
- GError **error);
- gboolean (*calibrate_printer) (GcmCalibrate *calibrate,
- CdDevice *device,
- CdSensor *sensor,
- GtkWindow *window,
- GError **error);
- gboolean (*get_enabled) (GcmCalibrate *calibrate);
- void (*interaction) (GcmCalibrate *calibrate,
- GtkResponseType response);
-
- /* signal */
- void (* title_changed) (GcmCalibrate *calibrate,
- const gchar *title);
- void (* message_changed) (GcmCalibrate *calibrate,
- const gchar *message);
- void (* image_changed) (GcmCalibrate *calibrate,
- const gchar *filename);
- void (* progress_changed) (GcmCalibrate *calibrate,
- guint percentage);
- void (* interaction_required) (GcmCalibrate *calibrate,
- const gchar *button_text);
-};
-
-typedef enum {
- GCM_CALIBRATE_ERROR_USER_ABORT,
- GCM_CALIBRATE_ERROR_NO_SUPPORT,
- GCM_CALIBRATE_ERROR_NO_DATA,
- GCM_CALIBRATE_ERROR_INTERNAL
-} GcmCalibrateError;
-
-/* dummy */
-#define GCM_CALIBRATE_ERROR 1
-
-typedef enum {
- GCM_CALIBRATE_REFERENCE_KIND_CMP_DIGITAL_TARGET_3,
- GCM_CALIBRATE_REFERENCE_KIND_CMP_DT_003,
- GCM_CALIBRATE_REFERENCE_KIND_COLOR_CHECKER,
- GCM_CALIBRATE_REFERENCE_KIND_COLOR_CHECKER_DC,
- GCM_CALIBRATE_REFERENCE_KIND_COLOR_CHECKER_SG,
- GCM_CALIBRATE_REFERENCE_KIND_HUTCHCOLOR,
- GCM_CALIBRATE_REFERENCE_KIND_I1_RGB_SCAN_1_4,
- GCM_CALIBRATE_REFERENCE_KIND_IT8,
- GCM_CALIBRATE_REFERENCE_KIND_LASER_SOFT_DC_PRO,
- GCM_CALIBRATE_REFERENCE_KIND_QPCARD_201,
- GCM_CALIBRATE_REFERENCE_KIND_UNKNOWN
-} GcmCalibrateReferenceKind;
-
-typedef enum {
- GCM_CALIBRATE_DEVICE_KIND_LCD_CCFL,
- GCM_CALIBRATE_DEVICE_KIND_LCD_LED_WHITE,
- GCM_CALIBRATE_DEVICE_KIND_LCD_LED_RGB,
- GCM_CALIBRATE_DEVICE_KIND_LCD_LED_RGB_WIDE,
- GCM_CALIBRATE_DEVICE_KIND_LCD_CCFL_WIDE,
- GCM_CALIBRATE_DEVICE_KIND_CRT,
- GCM_CALIBRATE_DEVICE_KIND_PROJECTOR,
- GCM_CALIBRATE_DEVICE_KIND_UNKNOWN
-} GcmCalibrateDisplayKind;
-
-typedef enum {
- GCM_CALIBRATE_PRINT_KIND_LOCAL,
- GCM_CALIBRATE_PRINT_KIND_GENERATE,
- GCM_CALIBRATE_PRINT_KIND_ANALYZE,
- GCM_CALIBRATE_PRINT_KIND_UNKNOWN
-} GcmCalibratePrintKind;
-
-typedef enum {
- GCM_CALIBRATE_PRECISION_SHORT,
- GCM_CALIBRATE_PRECISION_NORMAL,
- GCM_CALIBRATE_PRECISION_LONG,
- GCM_CALIBRATE_PRECISION_UNKNOWN
-} GcmCalibratePrecision;
-
-typedef enum {
- GCM_CALIBRATE_UI_INTERACTION,
- GCM_CALIBRATE_UI_STATUS,
- GCM_CALIBRATE_UI_ERROR,
- GCM_CALIBRATE_UI_POST_INTERACTION,
- GCM_CALIBRATE_UI_UNKNOWN
-} GcmCalibrateUiType;
-
-GcmCalibrate *gcm_calibrate_new (void);
-
-/* designed for gcm-calibrate to call */
-gboolean gcm_calibrate_device (GcmCalibrate *calibrate,
- CdDevice *device,
- GtkWindow *window,
- GError **error);
-void gcm_calibrate_set_content_widget (GcmCalibrate *calibrate,
- GtkWidget *widget);
-void gcm_calibrate_interaction (GcmCalibrate *calibrate,
- GtkResponseType response);
-
-/* designed for super-classes to call */
-void gcm_calibrate_set_sensor (GcmCalibrate *calibrate,
- CdSensor *sensor);
-CdSensor *gcm_calibrate_get_sensor (GcmCalibrate *calibrate);
-void gcm_calibrate_set_title (GcmCalibrate *calibrate,
- const gchar *title,
- GcmCalibrateUiType ui_type);
-void gcm_calibrate_set_message (GcmCalibrate *calibrate,
- const gchar *message,
- GcmCalibrateUiType ui_type);
-void gcm_calibrate_set_image (GcmCalibrate *calibrate,
- const gchar *filename);
-void gcm_calibrate_set_progress (GcmCalibrate *calibrate,
- guint percentage);
-void gcm_calibrate_interaction_required (GcmCalibrate *calibrate,
- const gchar *button_text);
-GtkWidget *gcm_calibrate_get_content_widget (GcmCalibrate *calibrate);
-void gcm_calibrate_interaction_attach (GcmCalibrate *calibrate);
-void gcm_calibrate_interaction_calibrate (GcmCalibrate *calibrate);
-void gcm_calibrate_interaction_screen (GcmCalibrate *calibrate);
-
-/* JUNK */
-gboolean gcm_calibrate_set_from_exif (GcmCalibrate *calibrate,
- const gchar *filename,
- GError **error);
-const gchar *gcm_calibrate_get_filename_result (GcmCalibrate *calibrate);
-const gchar *gcm_calibrate_get_working_path (GcmCalibrate *calibrate);
-const gchar *gcm_calibrate_get_basename (GcmCalibrate *calibrate);
-guint gcm_calibrate_get_screen_brightness (GcmCalibrate *calibrate);
-gboolean gcm_calibrate_get_enabled (GcmCalibrate *calibrate);
-
-G_END_DECLS
-
-#endif /* __GCM_CALIBRATE_H */
-
diff --git a/src/gcm-exif.c b/src/gcm-exif.c
deleted file mode 100644
index 316ed2c..0000000
--- a/src/gcm-exif.c
+++ /dev/null
@@ -1,421 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * Copyright (C) 2010-2015 Richard Hughes <richard@hughsie.com>
- *
- * Licensed under the GNU General Public License Version 2
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#include "config.h"
-
-#include <glib-object.h>
-#include <tiff.h>
-#include <tiffio.h>
-#include <libexif/exif-data.h>
-
-#include "gcm-exif.h"
-
-static void gcm_exif_finalize (GObject *object);
-
-typedef struct
-{
- gchar *manufacturer;
- gchar *model;
- gchar *serial;
- CdDeviceKind device_kind;
-} GcmExifPrivate;
-
-enum {
- PROP_0,
- PROP_MANUFACTURER,
- PROP_MODEL,
- PROP_SERIAL,
- PROP_DEVICE_KIND,
- PROP_LAST
-};
-
-G_DEFINE_TYPE_WITH_PRIVATE (GcmExif, gcm_exif, G_TYPE_OBJECT)
-#define GET_PRIVATE(o) (gcm_exif_get_instance_private (o))
-
-static gboolean
-gcm_exif_parse_tiff (GcmExif *exif, const gchar *filename, GError **error)
-{
- gboolean ret = TRUE;
- const gchar *manufacturer = NULL;
- const gchar *model = NULL;
- const gchar *serial = NULL;
- const gchar *temp = NULL;
- CdDeviceKind device_kind = CD_DEVICE_KIND_UNKNOWN;
- TIFF *libtiff;
- GcmExifPrivate *priv = GET_PRIVATE (exif);
-
- /* open file */
- libtiff = TIFFOpen (filename, "r");
- TIFFGetField (libtiff,TIFFTAG_MAKE, &manufacturer);
- TIFFGetField (libtiff,TIFFTAG_MODEL, &model);
- TIFFGetField (libtiff,TIFFTAG_CAMERASERIALNUMBER, &serial);
-
- /* we failed to get data */
- if (manufacturer == NULL || model == NULL) {
- g_set_error (error,
- GCM_EXIF_ERROR,
- GCM_EXIF_ERROR_NO_DATA,
- "Failed to get EXIF data from TIFF");
- ret = FALSE;
- goto out;
- }
-
- /* these are all camera specific values */
- TIFFGetField (libtiff,EXIFTAG_FNUMBER, &temp);
- if (temp != NULL)
- device_kind = CD_DEVICE_KIND_CAMERA;
- TIFFGetField (libtiff,TIFFTAG_LENSINFO, &temp);
- if (temp != NULL)
- device_kind = CD_DEVICE_KIND_CAMERA;
-
- /* crappy fallback */
- if (g_str_has_prefix (manufacturer, "NIKON"))
- device_kind = CD_DEVICE_KIND_CAMERA;
-
- /* free old versions */
- g_free (priv->manufacturer);
- g_free (priv->model);
- g_free (priv->serial);
-
- /* create copies for ourselves */
- priv->manufacturer = g_strdup (manufacturer);
- priv->model = g_strdup (model);
- priv->serial = g_strdup (serial);
- priv->device_kind = device_kind;
-out:
- TIFFClose (libtiff);
- return ret;
-}
-
-static gboolean
-gcm_exif_parse_jpeg (GcmExif *exif, const gchar *filename, GError **error)
-{
- gboolean ret = TRUE;
- GcmExifPrivate *priv = GET_PRIVATE (exif);
- ExifData *ed = NULL;
- ExifEntry *entry;
- CdDeviceKind device_kind = CD_DEVICE_KIND_UNKNOWN;
- gchar make[1024] = { '\0' };
- gchar model[1024] = { '\0' };
-
- /* load EXIF file */
- ed = exif_data_new_from_file (filename);
- if (ed == NULL) {
- g_set_error (error,
- GCM_EXIF_ERROR,
- GCM_EXIF_ERROR_NO_DATA,
- "File not readable or no EXIF data in file");
- ret = FALSE;
- goto out;
- }
-
- /* get make */
- entry = exif_content_get_entry (ed->ifd[EXIF_IFD_0], EXIF_TAG_MAKE);
- if (entry != NULL) {
- exif_entry_get_value (entry, make, sizeof (make));
- g_strchomp (make);
- }
-
- /* get model */
- entry = exif_content_get_entry (ed->ifd[EXIF_IFD_0], EXIF_TAG_MODEL);
- if (entry != NULL) {
- exif_entry_get_value (entry, model, sizeof (model));
- g_strchomp (model);
- }
-
- /* these are all camera specific values */
- entry = exif_content_get_entry (ed->ifd[EXIF_IFD_EXIF], EXIF_TAG_FNUMBER);
- if (entry != NULL)
- device_kind = CD_DEVICE_KIND_CAMERA;
- entry = exif_content_get_entry (ed->ifd[EXIF_IFD_EXIF], EXIF_TAG_SHUTTER_SPEED_VALUE);
- if (entry != NULL)
- device_kind = CD_DEVICE_KIND_CAMERA;
- entry = exif_content_get_entry (ed->ifd[EXIF_IFD_EXIF], EXIF_TAG_FLASH);
- if (entry != NULL)
- device_kind = CD_DEVICE_KIND_CAMERA;
-
- /* we failed to get data */
- if (make == NULL || model == NULL) {
- g_set_error (error,
- GCM_EXIF_ERROR,
- GCM_EXIF_ERROR_NO_DATA,
- "Failed to get EXIF data from JPEG");
- ret = FALSE;
- goto out;
- }
-
- /* free old versions */
- g_free (priv->manufacturer);
- g_free (priv->model);
- g_free (priv->serial);
-
- /* create copies for ourselves */
- priv->manufacturer = g_strdup (make);
- priv->model = g_strdup (model);
- priv->serial = NULL;
- priv->device_kind = device_kind;
-out:
- if (ed != NULL)
- exif_data_unref (ed);
- return ret;
-}
-
-#ifdef HAVE_EXIV
-static gboolean
-gcm_exif_parse_exiv (GcmExif *exif, const gchar *filename, GError **error)
-{
- GcmExifPrivate *priv = GET_PRIVATE (exif);
- gboolean ret;
- gint exit_status = 0;
- g_autofree gchar *standard_output = NULL;
- g_auto(GStrv) split = NULL;
- const gchar *argv[] = { LIBEXECDIR "/gcm-helper-exiv",
- filename,
- NULL };
-
- ret = g_spawn_sync (NULL,
- (gchar **) argv,
- NULL,
- G_SPAWN_STDERR_TO_DEV_NULL,
- NULL, NULL,
- &standard_output,
- NULL,
- &exit_status,
- error);
- if (!ret)
- return FALSE;
-
- /* failed to sniff */
- if (exit_status != 0) {
- g_set_error (error, GCM_EXIF_ERROR, GCM_EXIF_ERROR_NO_SUPPORT,
- "Failed to run: %s", standard_output);
- return FALSE;
- }
-
- /* get data */
- split = g_strsplit (standard_output, "\n", -1);
- if (g_strv_length (split) != 4) {
- g_set_error (error, GCM_EXIF_ERROR, GCM_EXIF_ERROR_NO_SUPPORT,
- "Unexpected output: %s", standard_output);
- return FALSE;
- }
-
- /* free old versions */
- g_free (priv->manufacturer);
- g_free (priv->model);
- g_free (priv->serial);
-
- /* create copies for ourselves */
- if (split[0][0] != '\0')
- priv->manufacturer = g_strdup (split[0]);
- else
- priv->manufacturer = NULL;
- if (split[1][0] != '\0')
- priv->model = g_strdup (split[1]);
- else
- priv->model = NULL;
- if (split[2][0] != '\0')
- priv->serial = g_strdup (split[2]);
- else
- priv->serial = NULL;
- priv->device_kind = CD_DEVICE_KIND_CAMERA;
- return TRUE;
-}
-#endif
-
-gboolean
-gcm_exif_parse (GcmExif *exif, GFile *file, GError **error)
-{
- g_autofree gchar *filename = NULL;
- g_autoptr(GFileInfo) info = NULL;
- const gchar *content_type;
-
- g_return_val_if_fail (GCM_IS_EXIF (exif), FALSE);
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
-
- /* check exists */
- info = g_file_query_info (file, G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE,
- G_FILE_QUERY_INFO_NONE, NULL, error);
- if (info == NULL)
- return FALSE;;
-
- /* get EXIF data in different ways depending on content type */
- content_type = g_file_info_get_attribute_string (info, G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE);
- if (g_strcmp0 (content_type, "image/tiff") == 0) {
- filename = g_file_get_path (file);
- return gcm_exif_parse_tiff (exif, filename, error);
- }
- if (g_strcmp0 (content_type, "image/jpeg") == 0) {
- filename = g_file_get_path (file);
- return gcm_exif_parse_jpeg (exif, filename, error);
- }
-
-#ifdef HAVE_EXIV
- if (g_strcmp0 (content_type, "image/x-adobe-dng") == 0 ||
- g_strcmp0 (content_type, "image/x-canon-crw") == 0 ||
- g_strcmp0 (content_type, "image/x-fuji-raf") == 0 ||
- g_strcmp0 (content_type, "image/x-kde-raw") == 0 ||
- g_strcmp0 (content_type, "image/x-kodak-kdc") == 0 ||
- g_strcmp0 (content_type, "image/x-minolta-mrw") == 0 ||
- g_strcmp0 (content_type, "image/x-nikon-nef") == 0 ||
- g_strcmp0 (content_type, "image/x-olympus-orf") == 0 ||
- g_strcmp0 (content_type, "image/x-panasonic-raw") == 0 ||
- g_strcmp0 (content_type, "image/x-pentax-pef") == 0 ||
- g_strcmp0 (content_type, "image/x-sigma-x3f") == 0 ||
- g_strcmp0 (content_type, "image/x-sony-arw") == 0) {
- filename = g_file_get_path (file);
- return gcm_exif_parse_exiv (exif, filename, error);
- }
-#endif
-
- /* no support */
- g_set_error (error,
- GCM_EXIF_ERROR,
- GCM_EXIF_ERROR_NO_SUPPORT,
- "No support for %s content type", content_type);
- return FALSE;
-}
-
-const gchar *
-gcm_exif_get_manufacturer (GcmExif *exif)
-{
- GcmExifPrivate *priv = GET_PRIVATE (exif);
- return priv->manufacturer;
-}
-
-const gchar *
-gcm_exif_get_model (GcmExif *exif)
-{
- GcmExifPrivate *priv = GET_PRIVATE (exif);
- return priv->model;
-}
-
-const gchar *
-gcm_exif_get_serial (GcmExif *exif)
-{
- GcmExifPrivate *priv = GET_PRIVATE (exif);
- return priv->serial;
-}
-
-CdDeviceKind
-gcm_exif_get_device_kind (GcmExif *exif)
-{
- GcmExifPrivate *priv = GET_PRIVATE (exif);
- return priv->device_kind;
-}
-
-static void
-gcm_exif_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
-{
- GcmExif *exif = GCM_EXIF (object);
- GcmExifPrivate *priv = GET_PRIVATE (exif);
-
- switch (prop_id) {
- case PROP_MANUFACTURER:
- g_value_set_string (value, priv->manufacturer);
- break;
- case PROP_MODEL:
- g_value_set_string (value, priv->model);
- break;
- case PROP_SERIAL:
- g_value_set_string (value, priv->serial);
- break;
- case PROP_DEVICE_KIND:
- g_value_set_uint (value, priv->device_kind);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-gcm_exif_class_init (GcmExifClass *klass)
-{
- GParamSpec *pspec;
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
- object_class->finalize = gcm_exif_finalize;
- object_class->get_property = gcm_exif_get_property;
-
- /**
- * GcmExif:manufacturer:
- */
- pspec = g_param_spec_string ("manufacturer", NULL, NULL,
- NULL,
- G_PARAM_READABLE);
- g_object_class_install_property (object_class, PROP_MANUFACTURER, pspec);
-
- /**
- * GcmExif:model:
- */
- pspec = g_param_spec_string ("model", NULL, NULL,
- NULL,
- G_PARAM_READABLE);
- g_object_class_install_property (object_class, PROP_MODEL, pspec);
-
- /**
- * GcmExif:serial:
- */
- pspec = g_param_spec_string ("serial", NULL, NULL,
- NULL,
- G_PARAM_READABLE);
- g_object_class_install_property (object_class, PROP_SERIAL, pspec);
-
- /**
- * GcmExif:device-kind:
- */
- pspec = g_param_spec_uint ("device-kind", NULL, NULL,
- 0, G_MAXUINT, CD_DEVICE_KIND_UNKNOWN,
- G_PARAM_READABLE);
- g_object_class_install_property (object_class, PROP_DEVICE_KIND, pspec);
-}
-
-static void
-gcm_exif_init (GcmExif *exif)
-{
- GcmExifPrivate *priv = GET_PRIVATE (exif);
- priv->manufacturer = NULL;
- priv->model = NULL;
- priv->serial = NULL;
- priv->device_kind = CD_DEVICE_KIND_CAMERA;
-}
-
-static void
-gcm_exif_finalize (GObject *object)
-{
- GcmExif *exif = GCM_EXIF (object);
- GcmExifPrivate *priv = GET_PRIVATE (exif);
-
- g_free (priv->manufacturer);
- g_free (priv->model);
- g_free (priv->serial);
-
- G_OBJECT_CLASS (gcm_exif_parent_class)->finalize (object);
-}
-
-GcmExif *
-gcm_exif_new (void)
-{
- GcmExif *exif;
- exif = g_object_new (GCM_TYPE_EXIF, NULL);
- return GCM_EXIF (exif);
-}
-
diff --git a/src/gcm-exif.h b/src/gcm-exif.h
deleted file mode 100644
index 4c133c3..0000000
--- a/src/gcm-exif.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * Copyright (C) 2010-2015 Richard Hughes <richard@hughsie.com>
- *
- * Licensed under the GNU General Public License Version 2
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#ifndef __GCM_EXIF_H
-#define __GCM_EXIF_H
-
-#include <glib-object.h>
-#include <gio/gio.h>
-#include <colord.h>
-
-G_BEGIN_DECLS
-
-#define GCM_TYPE_EXIF (gcm_exif_get_type ())
-G_DECLARE_DERIVABLE_TYPE (GcmExif, gcm_exif, GCM, EXIF, GObject)
-
-struct _GcmExifClass
-{
- GObjectClass parent_class;
-};
-
-typedef enum
-{
- GCM_EXIF_ERROR_NO_DATA,
- GCM_EXIF_ERROR_NO_SUPPORT,
- GCM_EXIF_ERROR_INTERNAL
-} GcmExifError;
-
-/* dummy */
-#define GCM_EXIF_ERROR 1
-
-GcmExif *gcm_exif_new (void);
-
-const gchar *gcm_exif_get_manufacturer (GcmExif *exif);
-const gchar *gcm_exif_get_model (GcmExif *exif);
-const gchar *gcm_exif_get_serial (GcmExif *exif);
-CdDeviceKind gcm_exif_get_device_kind (GcmExif *exif);
-gboolean gcm_exif_parse (GcmExif *exif,
- GFile *file,
- GError **error);
-
-G_END_DECLS
-
-#endif /* __GCM_EXIF_H */
-
diff --git a/src/gcm-helper-exiv.cpp b/src/gcm-helper-exiv.cpp
deleted file mode 100644
index 7ec6994..0000000
--- a/src/gcm-helper-exiv.cpp
+++ /dev/null
@@ -1,99 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * Copyright (C) 2010 Richard Hughes <richard@hughsie.com>
- *
- * Licensed under the GNU General Public License Version 2
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#include <exiv2/image.hpp>
-#include <exiv2/exif.hpp>
-
-#if EXIV2_MAJOR_VERSION >= 1 || (EXIV2_MAJOR_VERSION == 0 && EXIV2_MINOR_VERSION >= 27)
-#define HAVE_EXIV2_ERROR_CODE
-#include <exiv2/error.hpp>
-#endif
-
-#include <iostream>
-#include <iomanip>
-
-int
-main (int argc, char* const argv[])
-{
- Exiv2::Image::AutoPtr image;
- Exiv2::ExifData exifData;
- std::string filename;
- std::string make;
- std::string model;
- std::string serial;
- int i;
- int retval = 0;
- const char *temp[] = {
- "Exif.Canon.SerialNumber",
- "Exif.Fujifilm.SerialNumber",
- "Exif.Nikon3.SerialNO",
- "Exif.Nikon3.SerialNumber",
- "Exif.OlympusEq.InternalSerialNumber",
- "Exif.OlympusEq.SerialNumber",
- "Exif.Olympus.SerialNumber2",
- "Exif.Sigma.SerialNumber",
- NULL };
-
- try {
- /* open file */
- if (argc == 2)
- filename = argv[1];
- if (filename.empty())
-#ifdef HAVE_EXIV2_ERROR_CODE
- throw Exiv2::Error(Exiv2::kerErrorMessage, "No filename specified");
-#else
- throw Exiv2::Error(1, "No filename specified");
-#endif
- image = Exiv2::ImageFactory::open(filename);
- image->readMetadata();
-
- /* get exif data */
- exifData = image->exifData();
- if (exifData.empty()) {
- std::string error(argv[1]);
- error += ": No Exif data found in the file";
-#ifdef HAVE_EXIV2_ERROR_CODE
- throw Exiv2::Error(Exiv2::kerErrorMessage, error);
-#else
- throw Exiv2::Error(1, error);
-#endif
- }
-
- /* try to find make, model and serial number */
- make = exifData["Exif.Image.Make"].toString();
- model = exifData["Exif.Image.Model"].toString();
- for (i=0; temp[i] != NULL; i++) {
- if (exifData[temp[i]].idx())
- serial = exifData[temp[i]].toString();
- if (!serial.empty())
- break;
- }
- std::cout << model << "\n";
- std::cout << make << "\n";
- std::cout << serial << "\n";
- } catch (Exiv2::AnyError& e) {
- std::cout << "Failed to load: " << e << "\n";
- retval = -1;
- }
- return retval;
-}
-
-
diff --git a/src/gcm-print.c b/src/gcm-print.c
deleted file mode 100644
index ac48c56..0000000
--- a/src/gcm-print.c
+++ /dev/null
@@ -1,281 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * Copyright (C) 2010 Richard Hughes <richard@hughsie.com>
- *
- * Licensed under the GNU General Public License Version 2
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#include "config.h"
-
-#include <glib/gi18n.h>
-#include <gtk/gtk.h>
-
-#include "gcm-print.h"
-
-static void gcm_print_finalize (GObject *object);
-
-typedef struct
-{
- GtkPrintSettings *settings;
-} GcmPrintPrivate;
-
-enum {
- SIGNAL_STATUS_CHANGED,
- SIGNAL_LAST
-};
-
-static guint signals[SIGNAL_LAST] = { 0 };
-
-G_DEFINE_TYPE_WITH_PRIVATE (GcmPrint, gcm_print, G_TYPE_OBJECT)
-#define GET_PRIVATE(o) (gcm_print_get_instance_private (o))
-
-/* temporary object so we can pass state */
-typedef struct {
- GcmPrint *print;
- GPtrArray *filenames;
- GcmPrintRenderCb render_callback;
- gpointer user_data;
- GMainLoop *loop;
- gboolean aborted;
- GError *error;
-} GcmPrintTask;
-
-static void
-gcm_print_class_init (GcmPrintClass *klass)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
- object_class->finalize = gcm_print_finalize;
-
- /**
- * GcmPrint::status-changed:
- **/
- signals[SIGNAL_STATUS_CHANGED] =
- g_signal_new ("status-changed",
- G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GcmPrintClass, status_changed),
- NULL, NULL, g_cclosure_marshal_VOID__UINT,
- G_TYPE_NONE, 1, G_TYPE_UINT);
-}
-
-/**
- * gcm_print_begin_print_cb:
- *
- * Emitted after the user has finished changing print settings in the dialog,
- * before the actual rendering starts.
- **/
-static void
-gcm_print_begin_print_cb (GtkPrintOperation *operation, GtkPrintContext *context, GcmPrintTask *task)
-{
- GtkPageSetup *page_setup;
-
- /* get the page details */
- page_setup = gtk_print_context_get_page_setup (context);
-
- /* get the list of files */
- task->filenames = task->render_callback (task->print, page_setup, task->user_data, &task->error);
- if (task->filenames == NULL) {
- gtk_print_operation_cancel (operation);
- return;
- }
-
- /* setting the page count */
- g_debug ("setting %u pages", task->filenames->len);
- gtk_print_operation_set_n_pages (operation, task->filenames->len);
-}
-
-static void
-gcm_print_draw_page_cb (GtkPrintOperation *operation, GtkPrintContext *context, gint page_nr, GcmPrintTask *task)
-{
- cairo_t *cr;
- gdouble width = 0.0f;
- gdouble height = 0.0f;
- const gchar *filename;
- cairo_surface_t *surface = NULL;
- gdouble scale;
- g_autoptr(GdkPixbuf) pixbuf = NULL;
-
- /* get the size of the page in _pixels_ */
- width = gtk_print_context_get_width (context);
- height = gtk_print_context_get_height (context);
- cr = gtk_print_context_get_cairo_context (context);
-
- /* load pixbuf, which we've already prepared */
- filename = g_ptr_array_index (task->filenames, page_nr);
- pixbuf = gdk_pixbuf_new_from_file (filename, &task->error);
- if (pixbuf == NULL) {
- gtk_print_operation_cancel (operation);
- goto out;
- }
-
- /* create a surface of the pixmap */
- surface = gdk_cairo_surface_create_from_pixbuf (pixbuf, 1, NULL);
-
- /* scale image to fill the page, but preserve aspect */
- scale = MIN (width / gdk_pixbuf_get_width (pixbuf), height / gdk_pixbuf_get_height (pixbuf));
- g_debug ("surface=%.0fx%.0f, pixbuf=%ix%i (scale=%f)", width, height, gdk_pixbuf_get_width (pixbuf), gdk_pixbuf_get_height (pixbuf), scale);
- cairo_scale (cr, scale, scale);
-
- /* blit to the context */
- cairo_set_source_surface (cr, surface, 0, 0);
- cairo_paint (cr);
-out:
- if (surface != NULL)
- cairo_surface_destroy (surface);
-}
-
-static gboolean
-gcm_print_loop_quit_idle_cb (GcmPrintTask *task)
-{
- g_main_loop_quit (task->loop);
- return FALSE;
-}
-
-static void
-gcm_print_status_changed_cb (GtkPrintOperation *operation, GcmPrintTask *task)
-{
- GtkPrintStatus status;
-
- /* signal the status change */
- status = gtk_print_operation_get_status (operation);
- g_debug ("emit: status-changed: %u", status);
- g_signal_emit (task->print, signals[SIGNAL_STATUS_CHANGED], 0, status);
-
- /* done? */
- if (status == GTK_PRINT_STATUS_FINISHED) {
- g_debug ("printing finished");
- g_idle_add ((GSourceFunc) gcm_print_loop_quit_idle_cb, task);
- } else if (status == GTK_PRINT_STATUS_FINISHED_ABORTED) {
- task->aborted = TRUE;
-
- /* we failed, and didn't set an error */
- if (task->error == NULL)
- g_set_error (&task->error, 1, 0, "printing was aborted, and no error was set");
-
- g_debug ("printing aborted");
- g_idle_add ((GSourceFunc) gcm_print_loop_quit_idle_cb, task);
- }
-}
-
-static void
-gcm_print_done_cb (GtkPrintOperation *operation, GtkPrintOperationResult result, GcmPrintTask *task)
-{
- g_debug ("we're done rendering...");
-}
-
-gboolean
-gcm_print_with_render_callback (GcmPrint *print, GtkWindow *window, GcmPrintRenderCb render_callback, gpointer user_data, GError **error)
-{
- GcmPrintPrivate *priv = GET_PRIVATE (print);
- gboolean ret = TRUE;
- GcmPrintTask *task;
- GtkPrintOperationResult res;
- g_autoptr(GtkPrintOperation) operation = NULL;
-
- /* create temp object */
- task = g_new0 (GcmPrintTask, 1);
- task->print = g_object_ref (print);
- task->render_callback = render_callback;
- task->user_data = user_data;
- task->loop = g_main_loop_new (NULL, FALSE);
-
- /* create new instance */
- operation = gtk_print_operation_new ();
- gtk_print_operation_set_print_settings (operation, priv->settings);
- g_signal_connect (operation, "begin-print", G_CALLBACK (gcm_print_begin_print_cb), task);
- g_signal_connect (operation, "draw-page", G_CALLBACK (gcm_print_draw_page_cb), task);
- g_signal_connect (operation, "status-changed", G_CALLBACK (gcm_print_status_changed_cb), task);
- g_signal_connect (operation, "done", G_CALLBACK (gcm_print_done_cb), task);
-
- /* we want this to be as big as possible, modulo page margins */
- gtk_print_operation_set_use_full_page (operation, FALSE);
-
- /* don't show status, we've got it covered */
- gtk_print_operation_set_show_progress (operation, FALSE);
-
- /* don't support selection */
- gtk_print_operation_set_support_selection (operation, FALSE);
-
- /* track status even when spooled */
- gtk_print_operation_set_track_print_status (operation, TRUE);
-
- /* we want to be able to use custom page sizes */
- gtk_print_operation_set_embed_page_setup (operation, TRUE);
-
- /* do the print UI */
- res = gtk_print_operation_run (operation,
- GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG,
- window, error);
-
- /* all okay, so save future settings */
- if (res == GTK_PRINT_OPERATION_RESULT_APPLY) {
- g_object_unref (priv->settings);
- priv->settings = g_object_ref (gtk_print_operation_get_print_settings (operation));
- }
-
- /* rely on error being set */
- if (res == GTK_PRINT_OPERATION_RESULT_ERROR) {
- ret = FALSE;
- goto out;
- }
-
- /* wait for finished or abort */
- g_main_loop_run (task->loop);
-
- /* pass on error */
- if (task->error != NULL) {
- g_set_error_literal (error, 1, 0, task->error->message);
- ret = FALSE;
- }
-out:
- if (task->filenames != NULL)
- g_ptr_array_unref (task->filenames);
- if (task->print != NULL)
- g_object_unref (task->print);
- if (task->loop != NULL)
- g_main_loop_unref (task->loop);
- if (task->error != NULL)
- g_error_free (task->error);
- g_free (task);
- return ret;
-}
-
-static void
-gcm_print_init (GcmPrint *print)
-{
- GcmPrintPrivate *priv = GET_PRIVATE (print);
- priv->settings = gtk_print_settings_new ();
-}
-
-static void
-gcm_print_finalize (GObject *object)
-{
- GcmPrint *print = GCM_PRINT (object);
- GcmPrintPrivate *priv = GET_PRIVATE (print);
-
- g_object_unref (priv->settings);
-
- G_OBJECT_CLASS (gcm_print_parent_class)->finalize (object);
-}
-
-GcmPrint *
-gcm_print_new (void)
-{
- GcmPrint *print;
- print = g_object_new (GCM_TYPE_PRINT, NULL);
- return GCM_PRINT (print);
-}
-
diff --git a/src/gcm-print.h b/src/gcm-print.h
deleted file mode 100644
index 3adce6c..0000000
--- a/src/gcm-print.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * Copyright (C) 2010 Richard Hughes <richard@hughsie.com>
- *
- * Licensed under the GNU General Public License Version 2
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#ifndef __GCM_PRINT_H
-#define __GCM_PRINT_H
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-#define GCM_TYPE_PRINT (gcm_print_get_type ())
-G_DECLARE_DERIVABLE_TYPE (GcmPrint, gcm_print, GCM, PRINT, GObject)
-
-struct _GcmPrintClass
-{
- GObjectClass parent_class;
- void (* status_changed) (GtkPrintStatus status);
-};
-
-
-typedef GPtrArray *(*GcmPrintRenderCb) (GcmPrint *print,
- GtkPageSetup *page_setup,
- gpointer user_data,
- GError **error);
-
-GcmPrint *gcm_print_new (void);
-gboolean gcm_print_with_render_callback (GcmPrint *print,
- GtkWindow *window,
- GcmPrintRenderCb render_callback,
- gpointer user_data,
- GError **error);
-
-G_END_DECLS
-
-#endif /* __GCM_PRINT_H */
-
diff --git a/src/gcm-self-test.c b/src/gcm-self-test.c
index 9c9843b..adf271b 100644
--- a/src/gcm-self-test.c
+++ b/src/gcm-self-test.c
@@ -26,74 +26,13 @@
#include <glib/gstdio.h>
#include <stdlib.h>
-#include "gcm-brightness.h"
-#include "gcm-calibrate.h"
#include "gcm-cie-widget.h"
#include "gcm-debug.h"
-#include "gcm-exif.h"
#include "gcm-gamma-widget.h"
-#include "gcm-print.h"
#include "gcm-trc-widget.h"
#include "gcm-utils.h"
static void
-gcm_test_brightness_func (void)
-{
- g_autoptr(GcmBrightness) brightness = NULL;
- gboolean ret;
- g_autoptr(GError) error = NULL;
- guint orig_percentage;
- guint percentage;
-
- brightness = gcm_brightness_new ();
- g_assert (brightness != NULL);
-
- ret = gcm_brightness_get_percentage (brightness, &orig_percentage, &error);
- g_assert_no_error (error);
- g_assert (ret);
-
- ret = gcm_brightness_set_percentage (brightness, 10, &error);
- g_assert_no_error (error);
- g_assert (ret);
-
- ret = gcm_brightness_get_percentage (brightness, &percentage, &error);
- g_assert_no_error (error);
- g_assert (ret);
- g_assert_cmpint (percentage, >, 5);
- g_assert_cmpint (percentage, <, 15);
-
- ret = gcm_brightness_set_percentage (brightness, orig_percentage, &error);
- g_assert_no_error (error);
- g_assert (ret);
-}
-
-static void
-gcm_test_calibrate_func (void)
-{
- gboolean ret;
- g_autoptr(GError) error = NULL;
- g_autoptr(GcmCalibrate) calibrate = NULL;
- g_autofree gchar *model = NULL;
- g_autofree gchar *manufacturer = NULL;
-
- calibrate = gcm_calibrate_new ();
- g_assert (calibrate != NULL);
-
- /* calibrate display manually */
- ret = gcm_calibrate_set_from_exif (GCM_CALIBRATE(calibrate), TESTDATADIR "/test.tif", &error);
- g_assert_no_error (error);
- g_assert (ret);
-
- /* get device properties */
- g_object_get (calibrate,
- "manufacturer", &manufacturer,
- "model", &model,
- NULL);
- g_assert_cmpstr (model, ==, "NIKON D60");
- g_assert_cmpstr (manufacturer, ==, "NIKON CORPORATION");
-}
-
-static void
gcm_test_cie_widget_func (void)
{
GtkWidget *widget;
@@ -158,60 +97,6 @@ gcm_test_cie_widget_func (void)
}
static void
-gcm_test_exif_func (void)
-{
- gboolean ret;
- g_autoptr(GError) error = NULL;
- GFile *file;
- g_autoptr(GcmExif) exif = NULL;
-
- exif = gcm_exif_new ();
- g_assert (exif != NULL);
-
- /* TIFF */
- file = g_file_new_for_path (TESTDATADIR "/test.tif");
- ret = gcm_exif_parse (exif, file, &error);
- g_object_unref (file);
- g_assert_no_error (error);
- g_assert (ret);
- g_assert_cmpstr (gcm_exif_get_model (exif), ==, "NIKON D60");
- g_assert_cmpstr (gcm_exif_get_manufacturer (exif), ==, "NIKON CORPORATION");
- g_assert_cmpstr (gcm_exif_get_serial (exif), ==, NULL);
- g_assert_cmpint (gcm_exif_get_device_kind (exif), ==, CD_DEVICE_KIND_CAMERA);
-
- /* JPG */
- file = g_file_new_for_path (TESTDATADIR "/test.jpg");
- ret = gcm_exif_parse (exif, file, &error);
- g_object_unref (file);
- g_assert_no_error (error);
- g_assert (ret);
- g_assert_cmpstr (gcm_exif_get_model (exif), ==, "NIKON D60");
- g_assert_cmpstr (gcm_exif_get_manufacturer (exif), ==, "NIKON CORPORATION");
- g_assert_cmpstr (gcm_exif_get_serial (exif), ==, NULL);
- g_assert_cmpint (gcm_exif_get_device_kind (exif), ==, CD_DEVICE_KIND_CAMERA);
-
- /* RAW */
-#if 0
- file = g_file_new_for_path (TESTDATADIR "/test.kdc");
- ret = gcm_exif_parse (exif, file, &error);
- g_object_unref (file);
- g_assert_no_error (error);
- g_assert (ret);
- g_assert_cmpstr (gcm_exif_get_model (exif), ==, "Eastman Kodak Company");
- g_assert_cmpstr (gcm_exif_get_manufacturer (exif), ==, "Kodak Digital Science DC50 Zoom Camera");
- g_assert_cmpstr (gcm_exif_get_serial (exif), ==, NULL);
- g_assert_cmpint (gcm_exif_get_device_kind (exif), ==, CD_DEVICE_KIND_CAMERA);
-#endif
-
- /* PNG */
- file = g_file_new_for_path (TESTDATADIR "/test.png");
- ret = gcm_exif_parse (exif, file, &error);
- g_object_unref (file);
- g_assert_error (error, GCM_EXIF_ERROR, GCM_EXIF_ERROR_NO_SUPPORT);
- g_assert (!ret);
-}
-
-static void
gcm_test_gamma_widget_func (void)
{
GtkWidget *widget;
@@ -249,30 +134,6 @@ gcm_test_gamma_widget_func (void)
gtk_widget_destroy (dialog);
}
-static GPtrArray *
-gcm_print_test_render_cb (GcmPrint *print, GtkPageSetup *page_setup, gpointer user_data, GError **error)
-{
- GPtrArray *filenames;
- filenames = g_ptr_array_new_with_free_func (g_free);
- g_ptr_array_add (filenames, g_strdup (TESTDATADIR "/image-widget-nonembed.png"));
- g_ptr_array_add (filenames, g_strdup (TESTDATADIR "/image-widget-good.png"));
- return filenames;
-}
-
-static void
-gcm_test_print_func (void)
-{
- gboolean ret;
- g_autoptr(GError) error = NULL;
- g_autoptr(GcmPrint) print = NULL;
-
- print = gcm_print_new ();
-
- ret = gcm_print_with_render_callback (print, NULL, gcm_print_test_render_cb, NULL, &error);
- g_assert_no_error (error);
- g_assert (ret);
-}
-
static void
gcm_test_trc_widget_func (void)
{
@@ -319,45 +180,11 @@ gcm_test_trc_widget_func (void)
static void
gcm_test_utils_func (void)
{
- gboolean ret;
- gchar *text;
- gchar *filename;
- g_autoptr(GFile) file = NULL;
- g_autoptr(GFile) dest = NULL;
-
+ g_autofree gchar *text = NULL;
text = gcm_utils_linkify ("http://www.dave.org is text http://www.hughsie.com that needs to be linked to http://www.bbc.co.uk really");
g_assert_cmpstr (text, ==, "<a href=\"http://www.dave.org\">http://www.dave.org</a> is text "
"<a href=\"http://www.hughsie.com\">http://www.hughsie.com</a> that needs to be linked to "
"<a href=\"http://www.bbc.co.uk\">http://www.bbc.co.uk</a> really");
- g_free (text);
-
- file = g_file_new_for_path ("dave.icc");
- dest = gcm_utils_get_profile_destination (file);
- filename = g_file_get_path (dest);
- g_assert (g_str_has_suffix (filename, "/.local/share/icc/dave.icc"));
- g_free (filename);
-
- ret = gcm_utils_output_is_lcd_internal ("LVDS1");
- g_assert (ret);
-
- ret = gcm_utils_output_is_lcd_internal ("DVI1");
- g_assert (!ret);
-
- ret = gcm_utils_output_is_lcd ("LVDS1");
- g_assert (ret);
-
- ret = gcm_utils_output_is_lcd ("DVI1");
- g_assert (ret);
-
- filename = g_strdup ("Hello\n\rWorld!");
- gcm_utils_alphanum_lcase (filename);
- g_assert_cmpstr (filename, ==, "hello__world_");
- g_free (filename);
-
- filename = g_strdup ("Hel lo\n\rWo-(r)ld!");
- gcm_utils_ensure_sensible_filename (filename);
- g_assert_cmpstr (filename, ==, "Hel lo__Wo-(r)ld_");
- g_free (filename);
}
int
@@ -369,18 +196,12 @@ main (int argc, char **argv)
/* setup manually as we have no GMainContext */
gcm_debug_setup (g_getenv ("VERBOSE") != NULL);
- g_test_add_func ("/color/calibrate", gcm_test_calibrate_func);
- g_test_add_func ("/color/exif", gcm_test_exif_func);
g_test_add_func ("/color/utils", gcm_test_utils_func);
if (g_test_thorough ()) {
- g_test_add_func ("/color/brightness", gcm_test_brightness_func);
g_test_add_func ("/color/trc", gcm_test_trc_widget_func);
g_test_add_func ("/color/cie", gcm_test_cie_widget_func);
g_test_add_func ("/color/gamma_widget", gcm_test_gamma_widget_func);
}
- if (g_test_slow ()) {
- g_test_add_func ("/color/print", gcm_test_print_func);
- }
return g_test_run ();
}
diff --git a/src/gcm-utils.c b/src/gcm-utils.c
index e7718b0..afbb936 100644
--- a/src/gcm-utils.c
+++ b/src/gcm-utils.c
@@ -78,205 +78,6 @@ gcm_utils_linkify (const gchar *hostile_text)
return g_string_free (string, FALSE);
}
-gboolean
-gcm_utils_install_package (const gchar *package_name, GtkWindow *window)
-{
- GDBusConnection *connection;
- guint32 xid = 0;
- g_autoptr(GError) error = NULL;
- g_auto(GStrv) packages = NULL;
- g_autoptr(GVariant) args = NULL;
- g_autoptr(GVariantBuilder) builder = NULL;
- g_autoptr(GVariant) response = NULL;
-
- g_return_val_if_fail (package_name != NULL, FALSE);
-
-#ifndef HAVE_PACKAGEKIT
- g_warning ("cannot install %s: this package was not compiled with --packagekit", package_name);
- return FALSE;
-#endif
-
- /* get xid of this window */
- if (window != NULL)
- xid = gdk_x11_window_get_xid (gtk_widget_get_window (GTK_WIDGET(window)));
-
- /* we're expecting an array of packages */
- packages = g_strsplit (package_name, "|", 1);
-
- /* get a session bus connection */
- connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
- if (connection == NULL) {
- /* TRANSLATORS: no DBus session bus */
- g_print ("%s %s\n", _("Failed to connect to session bus:"), error->message);
- return FALSE;
- }
-
- /* create arguments */
- builder = g_variant_builder_new (G_VARIANT_TYPE ("(uass)"));
- g_variant_builder_add_value (builder, g_variant_new_uint32 (xid));
- g_variant_builder_add_value (builder, g_variant_new_strv ((const gchar * const *)packages, -1));
- g_variant_builder_add_value (builder, g_variant_new_string ("hide-confirm-search,hide-finished"));
- args = g_variant_builder_end (builder);
-
- /* execute sync method */
- response = g_dbus_connection_call_sync (connection,
- PK_DBUS_SERVICE,
- PK_DBUS_PATH,
- PK_DBUS_INTERFACE_MODIFY,
- "InstallPackageNames",
- args,
- NULL,
- G_DBUS_CALL_FLAGS_NONE,
- G_MAXINT, NULL, &error);
- if (response == NULL) {
- /* TRANSLATORS: the DBus method failed */
- g_warning ("%s %s\n", _("The request failed:"), error->message);
- return FALSE;
- }
-
- /* success */
- return TRUE;
-}
-
-/**
- * gcm_utils_output_is_lcd_internal:
- * @output_name: the output name
- *
- * Return value: %TRUE is the output is an internal LCD panel
- **/
-gboolean
-gcm_utils_output_is_lcd_internal (const gchar *output_name)
-{
- g_return_val_if_fail (output_name != NULL, FALSE);
- if (g_strstr_len (output_name, -1, "LVDS") != NULL)
- return TRUE;
- if (g_strstr_len (output_name, -1, "lvds") != NULL)
- return TRUE;
- return FALSE;
-}
-
-/**
- * gcm_utils_output_is_lcd:
- * @output_name: the output name
- *
- * Return value: %TRUE is the output is an internal or external LCD panel
- **/
-gboolean
-gcm_utils_output_is_lcd (const gchar *output_name)
-{
- g_return_val_if_fail (output_name != NULL, FALSE);
- if (gcm_utils_output_is_lcd_internal (output_name))
- return TRUE;
- if (g_strstr_len (output_name, -1, "DVI") != NULL)
- return TRUE;
- if (g_strstr_len (output_name, -1, "dvi") != NULL)
- return TRUE;
- return FALSE;
-}
-
-GFile *
-gcm_utils_get_profile_destination (GFile *file)
-{
- g_autofree gchar *basename = NULL;
- g_autofree gchar *destination = NULL;
-
- g_return_val_if_fail (file != NULL, NULL);
-
- /* get destination filename for this source file */
- basename = g_file_get_basename (file);
- destination = g_build_filename (g_get_user_data_dir (), "icc", basename, NULL);
- return g_file_new_for_path (destination);
-}
-
-/**
- * gcm_utils_ptr_array_to_strv:
- * @array: the GPtrArray of strings
- *
- * Form a composite string array of strings.
- * The data in the GPtrArray is copied.
- *
- * Return value: the string array, or %NULL if invalid
- **/
-gchar **
-gcm_utils_ptr_array_to_strv (GPtrArray *array)
-{
- gchar **value;
- const gchar *value_temp;
- guint i;
-
- g_return_val_if_fail (array != NULL, NULL);
-
- /* copy the array to a strv */
- value = g_new0 (gchar *, array->len + 1);
- for (i = 0; i < array->len; i++) {
- value_temp = (const gchar *) g_ptr_array_index (array, i);
- value[i] = g_strdup (value_temp);
- }
-
- return value;
-}
-
-gboolean
-gcm_gnome_help (const gchar *link_id)
-{
- g_autoptr(GError) error = NULL;
- g_autofree gchar *uri = NULL;
-
- if (link_id)
- uri = g_strconcat ("help:gnome-color-manager?", link_id, NULL);
- else
- uri = g_strdup ("help:gnome-color-manager");
- g_debug ("opening uri %s", uri);
-
- gtk_show_uri (NULL, uri, GDK_CURRENT_TIME, &error);
-
- if (error != NULL) {
- GtkWidget *d;
- d = gtk_message_dialog_new (NULL, GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "%s", error->message);
- gtk_dialog_run (GTK_DIALOG(d));
- gtk_widget_destroy (d);
- return FALSE;
- }
- return TRUE;
-}
-
-void
-gcm_utils_alphanum_lcase (gchar *data)
-{
- guint i;
-
- g_return_if_fail (data != NULL);
-
- /* replace unsafe chars, and make lowercase */
- for (i = 0; data[i] != '\0'; i++) {
- if (!g_ascii_isalnum (data[i]))
- data[i] = '_';
- data[i] = g_ascii_tolower (data[i]);
- }
-}
-
-void
-gcm_utils_ensure_sensible_filename (gchar *data)
-{
- guint i;
-
- g_return_if_fail (data != NULL);
-
- /* replace unsafe chars, and make lowercase */
- for (i = 0; data[i] != '\0'; i++) {
- if (data[i] != ' ' &&
- data[i] != '-' &&
- data[i] != '(' &&
- data[i] != ')' &&
- data[i] != '[' &&
- data[i] != ']' &&
- data[i] != ',' &&
- !g_ascii_isalnum (data[i]))
- data[i] = '_';
- }
-}
-
const gchar *
cd_colorspace_to_localised_string (CdColorspace colorspace)
{
diff --git a/src/gcm-utils.h b/src/gcm-utils.h
index 08cd760..393f447 100644
--- a/src/gcm-utils.h
+++ b/src/gcm-utils.h
@@ -36,15 +36,6 @@
#define GCM_PREFS_PACKAGE_NAME_COLOR_PROFILES "shared-color-profiles"
#define GCM_PREFS_PACKAGE_NAME_COLOR_PROFILES_EXTRA "shared-color-profiles-extra"
-GFile *gcm_utils_get_profile_destination (GFile *file);
-gchar **gcm_utils_ptr_array_to_strv (GPtrArray *array);
-gboolean gcm_gnome_help (const gchar *link_id);
-gboolean gcm_utils_output_is_lcd_internal (const gchar *output_name);
-gboolean gcm_utils_output_is_lcd (const gchar *output_name);
-void gcm_utils_alphanum_lcase (gchar *string);
-void gcm_utils_ensure_sensible_filename (gchar *string);
-gboolean gcm_utils_install_package (const gchar *package_name,
- GtkWindow *window);
gchar *gcm_utils_linkify (const gchar *text);
const gchar *cd_colorspace_to_localised_string (CdColorspace colorspace);
gboolean gcm_utils_image_convert (GtkImage *image,
diff --git a/src/meson.build b/src/meson.build
index 7f9fcaf..08e5cc7 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -14,69 +14,14 @@ gcm_viewer_resources = gnome.compile_resources(
c_name : 'gcm',
)
-if get_option('exiv')
- executable(
- 'gcm-helper-exiv',
- sources : [
- 'gcm-helper-exiv.cpp',
- ],
- include_directories : [
- include_directories('..'),
- ],
- dependencies : [
- libgio,
- libexiv,
- ],
- c_args : cargs,
- install : true,
- install_dir : prefixed_libexecdir,
- )
-endif
-
shared_srcs = [
'gcm-cie-widget.c',
'gcm-debug.c',
- 'gcm-exif.c',
- 'gcm-print.c',
'gcm-trc-widget.c',
'gcm-utils.c',
]
executable(
- 'gcm-calibrate',
- sources : [
- 'gcm-brightness.c',
- 'gcm-brightness.h',
- 'gcm-calibrate-argyll.c',
- 'gcm-calibrate-argyll.h',
- 'gcm-calibrate.c',
- 'gcm-calibrate.h',
- 'gcm-cell-renderer-profile-text.c',
- 'gcm-cell-renderer-profile-text.h',
- 'gcm-gamma-widget.c',
- 'gcm-gamma-widget.h',
- 'gcm-calibrate-main.c',
- shared_srcs
- ],
- include_directories : [
- include_directories('..'),
- ],
- dependencies : [
- libcanberra,
- libtiff,
- libcolord_gtk,
- libm,
- libexif,
- libgio,
- libgtk,
- liblcms,
- libvte,
- ],
- c_args : cargs,
- install : true,
-)
-
-executable(
'gcm-inspect',
sources : [
'gcm-inspect.c',
@@ -86,10 +31,8 @@ executable(
include_directories('..'),
],
dependencies : [
- libtiff,
- libcolord_gtk,
+ libcolord,
libm,
- libexif,
libgio,
libgtk,
],
@@ -107,10 +50,8 @@ executable(
include_directories('..'),
],
dependencies : [
- libtiff,
- libcolord_gtk,
+ libcolord,
libm,
- libexif,
libgio,
libgtk,
],
@@ -129,11 +70,9 @@ executable(
include_directories('..'),
],
dependencies : [
- libtiff,
liblcms,
- libcolord_gtk,
+ libcolord,
libm,
- libexif,
libgio,
libgtk,
],
@@ -154,12 +93,9 @@ executable(
include_directories('..'),
],
dependencies : [
- libcanberra,
- libtiff,
- libcolord_gtk,
+ libcolord,
libm,
liblcms,
- libexif,
libgio,
libgtk,
],
@@ -173,9 +109,6 @@ if get_option('tests')
'gcm-self-test',
sources : [
shared_srcs,
- 'gcm-brightness.c',
- 'gcm-calibrate-argyll.c',
- 'gcm-calibrate.c',
'gcm-gamma-widget.c',
'gcm-self-test.c',
],
@@ -183,15 +116,10 @@ if get_option('tests')
include_directories('..'),
],
dependencies : [
- libcolord_gtk,
- libexif,
+ libcolord,
libgio,
libgtk,
- libcanberra,
- libexif,
libm,
- libtiff,
- libvte,
],
c_args : cargs
)