diff options
author | Richard Hughes <richard@hughsie.com> | 2020-03-03 16:26:35 +0000 |
---|---|---|
committer | Richard Hughes <richard@hughsie.com> | 2020-03-03 17:08:06 +0000 |
commit | 5a1bf35e30ff689c727222fae1f31b0d4be4ae9d (patch) | |
tree | 1c500841dd397851c687fdbb7a4b695988e8c724 | |
parent | ae0d44f5c7f4c2db9ab84d24451f9b3d4ae36dbc (diff) | |
download | gnome-color-manager-5a1bf35e30ff689c727222fae1f31b0d4be4ae9d.tar.gz |
Remove the calibration tools
This is not maintained, and does not work well.
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 <frederic.bellaiche@gmail.com></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 <frederic.bellaiche@gmail.com></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 Binary files differdeleted file mode 100644 index 9ee918e..0000000 --- a/data/targets/CMP-DigitalTarget3.png +++ /dev/null diff --git a/data/targets/CMP_DT_003.png b/data/targets/CMP_DT_003.png Binary files differdeleted file mode 100644 index 458857d..0000000 --- a/data/targets/CMP_DT_003.png +++ /dev/null diff --git a/data/targets/ColorChecker24.png b/data/targets/ColorChecker24.png Binary files differdeleted file mode 100644 index 29f0738..0000000 --- a/data/targets/ColorChecker24.png +++ /dev/null diff --git a/data/targets/ColorCheckerDC.png b/data/targets/ColorCheckerDC.png Binary files differdeleted file mode 100644 index e0ea204..0000000 --- a/data/targets/ColorCheckerDC.png +++ /dev/null diff --git a/data/targets/ColorCheckerSG.png b/data/targets/ColorCheckerSG.png Binary files differdeleted file mode 100644 index 688a1f3..0000000 --- a/data/targets/ColorCheckerSG.png +++ /dev/null diff --git a/data/targets/IT872.png b/data/targets/IT872.png Binary files differdeleted file mode 100644 index 02c5463..0000000 --- a/data/targets/IT872.png +++ /dev/null diff --git a/data/targets/LaserSoftDCPro.png b/data/targets/LaserSoftDCPro.png Binary files differdeleted file mode 100644 index 38def09..0000000 --- a/data/targets/LaserSoftDCPro.png +++ /dev/null diff --git a/data/targets/QPcard_201.png b/data/targets/QPcard_201.png Binary files differdeleted file mode 100644 index 13b2f9b..0000000 --- a/data/targets/QPcard_201.png +++ /dev/null diff --git a/data/targets/QPcard_202.png b/data/targets/QPcard_202.png Binary files differdeleted file mode 100644 index 8a0229a..0000000 --- a/data/targets/QPcard_202.png +++ /dev/null diff --git a/data/targets/i1_RGB_Scan_14.png b/data/targets/i1_RGB_Scan_14.png Binary files differdeleted file mode 100644 index 148d515..0000000 --- a/data/targets/i1_RGB_Scan_14.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index e8ec031..0000000 --- a/data/targets/unknown.png +++ /dev/null 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", ©right, - "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", ©right, - "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 ) |