commit 70b72edde6add4719a6e399f7699ae8db21d3dec
parent 175158e5280096a01cad446778d44acb3c5c406a
Author: Adam M <aemalone@gmail.com>
Date: Thu, 4 Jul 2019 16:45:01 -0500
Add Boly Puttons, change default range for Oh Peas, clean up Knoly Pobs
Diffstat:
10 files changed, 790 insertions(+), 28 deletions(-)
diff --git a/Makefile b/Makefile
@@ -17,6 +17,7 @@ SOURCES += $(wildcard src/ComputerscareSvgPort.cpp)
SOURCES += $(wildcard src/ComputerscareIso.cpp)
SOURCES += $(wildcard src/ComputerscareKnolyPobs.cpp)
+SOURCES += $(wildcard src/ComputerscareBolyPuttons.cpp)
SOURCES += $(wildcard src/ComputerscarePatchSequencer.cpp)
SOURCES += $(wildcard src/ComputerscareLaundrySoup.cpp)
diff --git a/plugin.json b/plugin.json
@@ -15,6 +15,11 @@
"description":"16 knobs with polyphonic output",
"tags":["Poly","Utility"]
},
+ {"slug":"computerscare-bolyputtons",
+ "name":"Boly Puttons",
+ "description":"16 momentary or latch buttons with polyphonic output and optional input",
+ "tags":["Poly","Utility"]
+ },
{"slug":"computerscare-debug",
"name":"Debug",
"description":"Debugger, poly sample & hold, poly volt meter",
diff --git a/res/ComputerscareBolyPuttonsPanel.svg b/res/ComputerscareBolyPuttonsPanel.svg
@@ -0,0 +1,403 @@
+<?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="60"
+ height="380"
+ viewBox="0 0 15.875 100.54167"
+ version="1.1"
+ id="svg8"
+ inkscape:version="0.92.2 5c3e80d, 2017-08-06"
+ sodipodi:docname="ComputerscareBolyPuttonsPanel.svg"
+ style="enable-background:new">
+ <defs
+ id="defs2" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="11.313709"
+ inkscape:cx="28.873505"
+ inkscape:cy="344.99523"
+ inkscape:document-units="mm"
+ inkscape:current-layer="g1669"
+ showgrid="false"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:snap-page="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:window-width="1440"
+ inkscape:window-height="856"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="0"
+ inkscape:snap-global="false"
+ showguides="false"
+ inkscape:lockguides="false" />
+ <metadata
+ id="metadata5">
+ <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,-196.45832)"
+ style="display:none">
+ <path
+ style="opacity:1;vector-effect:none;fill:#f0f0f0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.48607069;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
+ d="M 0,196.45831 H 23.8125 V 296.99999 H 0 Z"
+ id="rect817"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="8.2147436"
+ y="295.57718"
+ id="text1490"
+ transform="rotate(1.4468834)"><tspan
+ sodipodi:role="line"
+ id="tspan1488"
+ x="8.2147436"
+ y="295.57718"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.26458332">computerscare</tspan></text>
+ <text
+ transform="rotate(-5.9989835)"
+ id="text1494"
+ y="288.0314"
+ x="-28.710276"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ xml:space="preserve"><tspan
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.26458332"
+ y="288.0314"
+ x="-28.710276"
+ id="tspan1492"
+ sodipodi:role="line">trg</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="20.711658"
+ y="288.87244"
+ id="text1498"
+ transform="rotate(1.9714728)"><tspan
+ sodipodi:role="line"
+ id="tspan1496"
+ x="20.711658"
+ y="288.87244"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.26458332">in</tspan></text>
+ <text
+ transform="rotate(0.49746114)"
+ id="text1521"
+ y="289.16214"
+ x="20.314623"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ xml:space="preserve"><tspan
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.17499995px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.26458332"
+ y="289.16214"
+ x="20.314623"
+ id="tspan1519"
+ sodipodi:role="line">clr</tspan></text>
+ <text
+ transform="matrix(1.0139335,-0.02825079,0.06854811,0.98434808,0,0)"
+ id="text1645"
+ y="204.61243"
+ x="-10.296249"
+ style="font-style:normal;font-weight:normal;font-size:10.74719143px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26867977"
+ xml:space="preserve"><tspan
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.01535606px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.26867977"
+ y="204.61243"
+ x="-10.296249"
+ id="tspan1643"
+ sodipodi:role="line">debug</tspan></text>
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="bg" />
+ <g
+ style="display:inline"
+ transform="translate(0,-196.45832)"
+ id="g1669"
+ inkscape:groupmode="layer"
+ inkscape:label="Layer 1 copy">
+ <path
+ inkscape:connector-curvature="0"
+ id="path1647"
+ d="M 2.3647136,198.04581 H 15.887339 v 98.95418 H 2.3647136 Z"
+ style="opacity:1;vector-effect:none;fill:#e0e0e0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.26300001;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
+ <path
+ style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.37162125;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 13.773402,196.45833 H -0.01800263 v 13.86979 H 6.7831954 l 5.2596366,-1.91766 1.73057,-2.9436 z"
+ id="rect888"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccc" />
+ <g
+ aria-label="computerscare"
+ transform="matrix(0.579664,-0.0209809,0.12827949,1.4870391,-39.556662,-142.90507)"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ id="text1651">
+ <path
+ d="m 9.6564066,294.11837 -0.022491,0.23707 q -0.1028223,-0.0489 -0.2099211,-0.0673 -0.1055806,-0.0199 -0.2168506,-0.009 -0.2488775,0.0238 -0.4014201,0.19401 -0.1524199,0.16888 -0.1792271,0.45145 -0.026804,0.28254 0.095932,0.42654 0.1228661,0.14262 0.371738,0.11887 0.1112317,-0.0106 0.2224055,-0.0498 0.1127112,-0.0408 0.2267849,-0.11044 l -0.022229,0.23431 q -0.111772,0.0599 -0.2295122,0.0956 -0.1163563,0.0357 -0.2456588,0.048 -0.3517468,0.0335 -0.5381239,-0.16582 -0.1863704,-0.19938 -0.1510635,-0.57153 0.035829,-0.37767 0.2649098,-0.61397 0.2304697,-0.23642 0.5947391,-0.27118 0.1181718,-0.0112 0.2283935,0.003 0.110394,0.0127 0.2114822,0.0509 z"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.26458332"
+ id="path1701"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 10.696255,294.13661 q -0.205776,0.0197 -0.340506,0.19093 -0.134608,0.16992 -0.160888,0.44696 -0.02628,0.27705 0.07673,0.42565 0.104532,0.1471 0.311691,0.12734 0.204372,-0.0195 0.339118,-0.1908 0.134737,-0.1713 0.160888,-0.44696 0.02602,-0.27428 -0.07838,-0.42277 -0.10427,-0.14986 -0.308651,-0.13035 z m 0.0204,-0.21501 q 0.333675,-0.0318 0.503758,0.16499 0.170076,0.19686 0.133987,0.57727 -0.03596,0.37905 -0.246966,0.61361 -0.210875,0.23319 -0.544555,0.26503 -0.335078,0.032 -0.505151,-0.16486 -0.1685548,-0.19836 -0.1325956,-0.5774 0.036091,-0.38042 0.2455756,-0.61348 0.210875,-0.23319 0.545947,-0.26516 z"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.26458332"
+ id="path1703"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 13.143759,294.1394 q 0.109103,-0.20599 0.261143,-0.30389 0.152033,-0.0979 0.358066,-0.0977 0.277351,3.4e-4 0.428154,0.205 0.150801,0.203 0.151243,0.57869 l 0.0013,1.12376 -0.2932,-3.3e-4 -0.0013,-1.1138 q -3.15e-4,-0.26763 -0.0908,-0.39742 -0.0905,-0.12977 -0.275921,-0.13 -0.226635,-2.7e-4 -0.357993,0.15747 -0.131357,0.15777 -0.131036,0.4304 l 0.0012,1.05229 -0.2932,-3.4e-4 -0.0013,-1.1138 q -3.17e-4,-0.2693 -0.0908,-0.39742 -0.0905,-0.12976 -0.279091,-0.13 -0.223465,-2.8e-4 -0.354821,0.15914 -0.131357,0.15777 -0.131039,0.42874 l 0.0012,1.05227 -0.293194,-3.3e-4 -0.0022,-1.86186 0.293199,3.4e-4 3.42e-4,0.28924 q 0.09965,-0.17108 0.239016,-0.25238 0.139373,-0.0812 0.331141,-0.081 0.193354,2.3e-4 0.328188,0.10342 0.136421,0.10314 0.201631,0.29946 z"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.31164581"
+ id="path1705"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 14.742929,294.81667 v 0.81855 h -0.254937 v -2.13044 h 0.254937 v 0.23426 q 0.07993,-0.1378 0.201194,-0.20395 0.122645,-0.0675 0.292144,-0.0675 0.28112,0 0.45613,0.22324 0.176389,0.22324 0.176389,0.58705 0,0.3638 -0.176389,0.58704 -0.17501,0.22324 -0.45613,0.22324 -0.169499,0 -0.292144,-0.0661 -0.121268,-0.0675 -0.201194,-0.20533 z m 0.862652,-0.53881 q 0,-0.27975 -0.115755,-0.43822 -0.114377,-0.15985 -0.315571,-0.15985 -0.201193,0 -0.316949,0.15985 -0.114377,0.15847 -0.114377,0.43822 0,0.27974 0.114377,0.43959 0.115756,0.15847 0.316949,0.15847 0.201194,0 0.315571,-0.15847 0.115755,-0.15985 0.115755,-0.43959 z"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.26458332"
+ id="path1707"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 16.276561,294.97975 -1.52e-4,-0.94031 0.251931,-0.0648 1.5e-4,0.9306 q 3.6e-5,0.22051 0.08495,0.30972 0.08491,0.0878 0.254686,0.0444 0.204008,-0.052 0.321737,-0.21413 0.119098,-0.16225 0.119061,-0.38971 l -1.43e-4,-0.88065 0.251931,-0.0648 2.51e-4,1.55331 -0.25193,0.0648 -3.9e-5,-0.23855 q -0.09172,0.16493 -0.213559,0.26548 -0.120476,0.0987 -0.280672,0.13983 -0.264253,0.0678 -0.401197,-0.0637 -0.136946,-0.13139 -0.136998,-0.45174 z"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.26458332"
+ id="path1709"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 18.344702,293.59556 v 0.43822 h 0.522277 v 0.19706 h -0.522277 v 0.83784 q 0,0.18879 0.05099,0.24254 0.05237,0.0537 0.21084,0.0537 h 0.260449 v 0.21222 H 18.60653 q -0.293522,0 -0.405144,-0.10887 -0.111621,-0.11024 -0.111621,-0.39963 V 294.2308 H 17.90373 v -0.19706 h 0.186035 v -0.43822 z"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.26458332"
+ id="path1711"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 20.508346,294.20141 2.1e-5,0.12482 -1.158332,0.29657 q 0.01648,0.25929 0.156153,0.36223 0.141049,0.1012 0.391609,0.037 0.145134,-0.0376 0.280676,-0.10793 0.136913,-0.0711 0.271081,-0.17758 l 4e-5,0.24133 q -0.135541,0.093 -0.277931,0.15998 -0.14239,0.0669 -0.288893,0.10441 -0.366941,0.094 -0.581938,-0.0673 -0.213628,-0.16169 -0.213688,-0.53061 -6.1e-5,-0.38138 0.202543,-0.65655 0.203972,-0.2769 0.549007,-0.36523 0.309435,-0.0789 0.488832,0.0774 0.180765,0.15485 0.18082,0.50156 z m -0.251942,-0.0103 q -0.0028,-0.2087 -0.116435,-0.30445 -0.112293,-0.0961 -0.298502,-0.0484 -0.210854,0.0537 -0.338169,0.20723 -0.125945,0.15291 -0.145079,0.37694 z"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.26458332"
+ id="path1713"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 21.832517,294.2708 q -0.04272,-0.0248 -0.09371,-0.0358 -0.04961,-0.0124 -0.110243,-0.0124 -0.214974,0 -0.330729,0.14056 -0.114377,0.13918 -0.114377,0.40101 v 0.81304 h -0.254937 v -1.5434 h 0.254937 v 0.23977 q 0.07993,-0.14056 0.208084,-0.20808 0.128157,-0.0689 0.311436,-0.0689 0.02618,0 0.05788,0.004 0.03169,0.003 0.07028,0.01 z"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.26458332"
+ id="path1715"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 23.185447,294.16269 -0.03488,0.23723 q -0.09833,-0.0702 -0.208837,-0.11429 -0.110508,-0.0442 -0.233212,-0.0622 -0.186783,-0.0275 -0.289279,0.016 -0.101136,0.0437 -0.117973,0.15816 -0.01283,0.0873 0.04655,0.14753 0.05959,0.0589 0.254751,0.13358 l 0.08309,0.0317 q 0.258799,0.0966 0.355164,0.21797 0.09793,0.12025 0.07046,0.30705 -0.03127,0.21268 -0.218575,0.31189 -0.185938,0.0994 -0.480428,0.0561 -0.122703,-0.018 -0.252707,-0.0622 -0.128844,-0.0426 -0.269062,-0.11204 l 0.03809,-0.25904 q 0.128445,0.0927 0.258001,0.14937 0.129765,0.0553 0.262013,0.0747 0.17724,0.0261 0.281492,-0.0199 0.104454,-0.0473 0.120693,-0.15775 0.01504,-0.10226 -0.04648,-0.16702 -0.06015,-0.0645 -0.285871,-0.14928 l -0.08424,-0.0333 q -0.225922,-0.0833 -0.314703,-0.19949 -0.08858,-0.11748 -0.06252,-0.29473 0.03167,-0.21541 0.201614,-0.31021 0.169938,-0.0948 0.450794,-0.0535 0.139065,0.0204 0.258757,0.059 0.119693,0.0385 0.217301,0.0946 z"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.26458332"
+ id="path1717"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 24.74878,294.2652 c -0.08645,0.15984 -0.310959,-0.0317 -0.546114,0.002 -0.163883,0.0136 -0.286821,0.0763 -0.368812,0.1882 -0.08207,0.11097 -0.115323,0.2603 -0.09977,0.44799 0.01555,0.18768 0.07297,0.32995 0.172262,0.42682 0.09921,0.096 0.230762,0.13713 0.394645,0.12355 0.07324,-0.006 0.144777,-0.0216 0.2146,-0.0468 0.07066,-0.0261 0.140065,-0.0618 0.208213,-0.10716 l 0.01935,0.23346 c -0.06777,0.0388 -0.138962,0.0696 -0.213589,0.0923 -0.07371,0.0227 -0.153138,0.0376 -0.238284,0.0446 -0.231635,0.0192 -0.421693,-0.0383 -0.570174,-0.17261 -0.14848,-0.13426 -0.232962,-0.32499 -0.253446,-0.57219 -0.02079,-0.25087 0.03153,-0.45386 0.15695,-0.60898 0.126338,-0.1552 0.309444,-0.24274 0.549319,-0.26262 0.07782,-0.007 0.154496,-0.005 0.230021,0.006 0.07545,0.009 0.411602,0.13108 0.483843,0.15738 z"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.26458332"
+ id="path1719"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccccccccccc" />
+ <path
+ d="m 24.81823,294.75924 c -0.297765,0.0229 -0.512808,0.0705 -0.64513,0.14291 -0.132332,0.0724 -0.219561,0.18524 -0.261686,0.33845 -0.03363,0.12213 -0.01763,0.21604 0.04798,0.28174 0.06728,0.0643 0.175023,0.0907 0.323232,0.0794 0.204311,-0.0157 0.386389,-0.0956 0.546234,-0.23957 0.161537,-0.14536 0.273146,-0.33019 0.334829,-0.55448 l 0.02101,-0.0766 z m 0.774145,-0.19853 -0.328455,1.19434 -0.368516,0.0282 0.08737,-0.31774 c -0.119089,0.13356 -0.249784,0.2357 -0.392086,0.30641 -0.141957,0.0694 -0.303742,0.11113 -0.485354,0.12512 -0.229693,0.0177 -0.39618,-0.0281 -0.499459,-0.13726 -0.101626,-0.1105 -0.124676,-0.26669 -0.06915,-0.46856 0.06476,-0.2355 0.197713,-0.41952 0.398859,-0.55206 0.202482,-0.13265 0.471302,-0.21186 0.806461,-0.23762 l 0.516775,-0.0398 0.0092,-0.0335 c 0.04352,-0.15825 0.02102,-0.27605 -0.0675,-0.35341 -0.08684,-0.0787 -0.231074,-0.11031 -0.4327,-0.0948 -0.128187,0.01 -0.256984,0.0338 -0.386391,0.0718 -0.129384,0.038 -0.22788,0.0181 -0.35582,0.0841 l 0.0572,-0.24589 c 0.148221,-0.0589 0.289013,-0.10504 0.422378,-0.13852 0.133697,-0.0347 0.260649,-0.0566 0.380855,-0.0659 0.324493,-0.025 0.54526,0.0349 0.662301,0.17963 0.117059,0.14469 0.131725,0.37653 0.044,0.69552 z"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.36754596"
+ id="path1721"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccccccccccccccccccccccccc" />
+ <path
+ d="m 27.811045,294.03187 q -0.04765,-0.0359 -0.114148,-0.0521 -0.06379,-0.0182 -0.149723,-0.0183 -0.304614,-6.2e-4 -0.541819,0.20246 -0.234523,0.20105 -0.370837,0.57993 l -0.423324,1.17649 -0.361236,-7.4e-4 0.803473,-2.23334 0.361237,7.5e-4 -0.124848,0.34694 q 0.186434,-0.20316 0.403183,-0.30051 0.217505,-0.0995 0.47719,-0.0989 0.0371,8e-5 0.07992,0.006 0.04318,0.005 0.09438,0.0146 z"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.37900135"
+ id="path1723"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 29.712571,294.7854 -0.06094,0.16877 -1.603439,0.13193 c -0.07023,0.23754 -0.110719,0.28611 -0.02315,0.41121 0.08941,0.12391 0.253311,0.18583 0.491653,0.18595 0.138059,6e-5 0.277401,-0.016 0.418108,-0.0485 0.14201,-0.0325 0.508333,-0.14208 0.659478,-0.20707 l -0.117939,0.32633 c -0.147934,0.0525 -0.514377,0.15339 -0.659762,0.18081 -0.145379,0.0275 -0.287764,0.0411 -0.427099,0.041 -0.349049,-1.8e-4 -0.590562,-0.0978 -0.724584,-0.29298 -0.132697,-0.19514 -0.138963,-0.459 -0.01879,-0.79157 0.12432,-0.34382 0.319099,-0.61634 0.584612,-0.81755 0.267249,-0.20244 0.56498,-0.30358 0.893191,-0.30341 0.29435,1.4e-4 0.493835,0.0916 0.598514,0.27415 0.106411,0.18138 0.103144,0.42835 -0.0098,0.74092 z m -0.322894,-0.1014 c 0.06552,-0.18878 0.06466,-0.33947 -0.0028,-0.45204 -0.06612,-0.1126 -0.187772,-0.16891 -0.364898,-0.16901 -0.200575,-10e-5 -0.381115,0.0543 -0.541512,0.16293 -0.159132,0.1087 -0.116464,0.24257 -0.206093,0.4401 z"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.36754596"
+ id="path1725"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccscccsscscscccccsccc" />
+ </g>
+ <g
+ id="g9547"
+ transform="matrix(0.21334155,-0.05917659,0,0.23311691,0.66317883,289.22115)">
+ <g
+ style="display:inline"
+ inkscape:label="Layer 1"
+ id="layer4" />
+ <path
+ id="rect5872"
+ d="m 11.987289,9.3234482 h 7.991524 v 3.9957608 h -7.991524 z"
+ style="opacity:1;fill:#0f0f00;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="rect5874"
+ d="m 14.667374,10.662096 h 3.995763 v 1.331921 h -3.995763 z"
+ style="opacity:1;fill:#ffffff;fill-opacity:0.98571424;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="rect5878"
+ d="m -29.323654,9.3234482 h 7.989551 v 3.9957608 h -7.989551 z"
+ style="opacity:1;fill:#0c0c00;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ transform="scale(-1,1)"
+ inkscape:connector-curvature="0" />
+ <path
+ id="rect5880"
+ d="m 26.64423,10.662096 -3.171232,0.209056 v 1.331921 l 3.171232,-0.209056 z"
+ style="opacity:1;fill:#ffffff;fill-opacity:0.98571424;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="rect5882"
+ d="m 19.995058,14.667374 h 1.331921 v 3.995762 h -1.331921 z"
+ style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="rect5884"
+ d="m 20.888507,17.21991 2.579094,0.32072 v 1.33192 l -2.579094,-0.32072 z"
+ style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="rect5886"
+ d="m 11.954803,20.011301 h 2.696328 v 2.663842 h -2.696328 z"
+ style="opacity:1;fill:#000200;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="rect5888"
+ d="m 27.970341,20.011301 h 2.696327 v 2.663842 h -2.696327 z"
+ style="opacity:1;fill:#000200;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="rect5890"
+ d="m 14.651131,20.011301 h 13.351695 v 1.33192 H 14.651131 Z"
+ style="opacity:1;fill:#000200;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ </g>
+ <path
+ style="fill:none;stroke:#dadada;stroke-width:0.30698216;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 2.7900557,181.68338 0.1810466,-1.94464 -0.2632421,-0.0154 -0.1048935,2.82045 0.6339358,-1.61065 1.5029883,1.40056 -1.8853796,-1.40054 1.7836213,-1.12069 v 0 0"
+ id="path870"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccc" />
+ <path
+ style="fill:none;stroke:#dadada;stroke-width:0.461;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 5.1505587,180.43869 0.2821815,2.32627 0.1612468,-1.95897 1.3705962,0.57138 -0.5643632,1.26516"
+ id="path872"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#dadada;stroke-width:0.45020127;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 8.3746737,179.84092 -0.6970941,2.11575 1.8821541,0.13502 0.2788377,-1.30547 z"
+ id="path874"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#dadada;stroke-width:0.48511115;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 10.459266,179.71619 0.573608,2.94745 -0.229446,-0.10342"
+ id="path876"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#dadada;stroke-width:0.68092787;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 12.694902,179.73387 1.128406,2.34083 1.241248,-1.85498 -1.354089,1.89915 -1.861871,0.97166 -0.05642,0.13247"
+ id="path878"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#dadada;stroke-width:0.38047731;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 2.4766957,183.36951 0.2336598,3.20154 v -3.27963 l 1.6356202,1.01511 -0.444637,0.65145 -1.2844471,-0.14389 v 0"
+ id="path880"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ style="fill:none;stroke:#dadada;stroke-width:0.82099998;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 5.9117535,183.74801 -1.1717131,1.847 0.8201994,0.3144 2.0700265,-0.55018 -0.5127879,-1.436 z"
+ id="path882"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ style="fill:none;stroke:#dadada;stroke-width:0.35956258;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 8.2466977,182.78895 0.5459683,2.43123 1.967422,-0.0877 -0.8005287,-0.95854 -1.4016522,-0.15179"
+ id="path884"
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-x="-1.0897816"
+ inkscape:transform-center-y="-0.51580917"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:none;stroke:#dadada;stroke-width:0.40228334;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 14.165554,183.77819 -2.495352,0.13685 1.722981,0.98938 1.544743,0.76866 -3.56479,-0.43227"
+ id="path886"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#afafaf;fill-opacity:1;stroke:none;stroke-width:0.36093959;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 13.770304,196.46789 2.089789,1.62471 0.0149,11.57492 -2.613391,1.21568 -1.256152,-2.52768 1.742464,-2.84178 z"
+ id="path890"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ style="fill:#626262;fill-opacity:1;stroke:none;stroke-width:0.42375344;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 12.013114,208.34875 -5.3235435,1.97489 -6.69943113,0.01 2.58018153,1.10658 10.7157081,-0.59892 z"
+ id="path892"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ style="fill:none;stroke:#dadada;stroke-width:0.45823276;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 0.65653092,197.27527 c -0.0136473,0.43346 -0.0168363,0.87335 0.15942843,1.29609 0.0250435,0.20907 0.0912968,0.42199 0.17439883,0.61835 0.0740767,0.38032 0.0139221,0.7656 0.0820099,1.14585 -0.0097,0.2362 0.018458,0.47428 -0.044121,0.70862 0.088086,0.21749 -0.12636674,0.43994 -0.02505,0.65565 0.2667008,0.12633 0.6397364,-0.0783 0.9638221,-0.0477 0.4668753,-0.0291 0.9871113,-0.10776 1.2497037,-0.3689 0.2773662,-0.20612 0.6977212,-0.41228 0.6441774,-0.70844 -0.2236735,-0.42332 -0.8971942,-0.68739 -1.5475771,-0.83917 -0.2518322,-0.0788 -0.5128892,-0.15515 -0.8006394,-0.17709 -0.1562923,-0.0166 -0.58901006,-0.0569 -0.2253771,-0.0894 0.7930713,-0.13416 1.5496371,-0.33651 2.3022498,-0.5361 0.3146208,-0.0907 0.5433659,-0.3262 0.3712593,-0.53162 -0.2341884,-0.37789 -0.4745162,-0.76057 -0.8237227,-1.10487 -0.3532772,-0.27518 -0.975027,-0.41494 -1.5339013,-0.33757 -0.3734022,0.0399 -0.4956638,0.38491 -0.90862212,0.31273 l -0.038039,0.003 z"
+ id="path1294"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#dadada;stroke-width:0.66333157;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 5.7843672,199.16241 c -0.4997165,0.008 -0.7234892,0.5894 -0.725154,0.96656 -0.056773,0.43097 -0.015744,1.0865 0.6332436,1.15638 0.5382834,-0.0301 1.0821854,-0.0133 1.6234377,-0.0173 0.3111165,-0.38641 0.4179181,-0.89038 0.2749804,-1.33757 -0.2856993,-0.37239 -0.7693212,-0.62388 -1.2991329,-0.64241 -0.187767,-0.0256 -0.3098008,-0.0617 -0.5073748,-0.12561 z"
+ id="path1302"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#dadada;stroke-width:0.45823276;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 9.0366027,197.89459 c -0.00842,1.12915 0.016866,2.25923 -0.012694,3.38779 -0.00537,0.0409 -0.018264,0.0811 -0.024888,0.12188"
+ id="path1304"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path1308"
+ style="fill:none;stroke:#dadada;stroke-width:0.45823276;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 12.418694,200.61838 c -0.314229,0.20872 -0.670497,0.41215 -1.066851,0.55183 -0.210794,0.091 -0.456502,0.20024 -0.62419,0.22839 m -0.338214,-2.72996 c 0.28554,0.29674 0.635663,0.57287 0.969044,0.8463 0.369625,0.34968 0.749713,0.6846 1.127906,1.02497 0.09437,0.11321 0.02266,-0.19258 0.04504,-0.26641 0,-0.64202 0,-1.28404 0,-1.92605"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#dadada;stroke-width:0.39147678px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 7.776946,203.84606 c 0.323253,-0.56907 1.099348,-1.31136 1.4913679,-1.3653 0.3960782,-0.0911 0.7180197,0.0728 0.6061989,0.57753 -0.1280772,0.41525 -0.5643414,0.84959 -0.9127385,1.10954 -0.3793257,0.30924 -0.763256,0.62844 -1.1364355,0.84563 m -0.027093,-1.48934 c 0.037836,1.89762 0.2534142,3.65377 0.1784411,5.64081"
+ id="path1312"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ style="fill:none;stroke:#dadada;stroke-width:0.50315398px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 8.8764927,205.85583 0.069985,1.58718 c -0.087017,0.52743 0.4888062,-0.0202 0.7303814,-0.30606 0.1852255,-0.71506 0.1142458,-1.27784 0.097536,-1.85936 0.061731,-0.37624 0.095122,0.14784 -0.1389978,-0.334"
+ id="path1314"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ id="path1318"
+ style="fill:none;stroke:#dadada;stroke-width:0.44958332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 10.296923,204.75883 c 0.318991,-0.37082 0.639727,-0.71319 0.957557,-1.10383 l 0.324682,-1.0784 m -1.044542,-0.37303 c 0.291568,1.01786 0.612324,2.04509 0.640702,3.52917 0.111758,0.17335 0.128708,0.58839 0.210882,0.80961"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path1322"
+ style="fill:none;stroke:#dadada;stroke-width:0.38891584px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 12.061073,203.48467 c 0.292525,-0.22686 1.267897,-1.45704 1.368485,-1.4838 m -0.685532,-0.5337 c 0.01616,1.51894 0.03233,3.03786 0.04847,4.55685"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#282828;stroke-width:0.46782875;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 14.514623,202.26947 c -0.240165,0.13682 -0.403128,0.57731 -0.337357,1.17151 -0.0073,0.77749 0.06027,2.06295 0.488448,1.28546 0.304568,-0.80527 0.317171,-2.17378 0.04527,-2.40895 -0.0717,-0.22655 -0.193339,-0.0652 -0.316092,0.0905"
+ id="path1324"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#282828;stroke-width:0.36399999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 14.033208,205.3727 c -0.05426,0.3258 -0.174332,1.6171 -0.154102,1.67281 0.09452,-0.47357 0.155284,-0.55608 0.557997,-1.06103 0.449293,-0.41993 0.594347,0.0635 0.591615,0.38459 0.0094,0.2531 -0.0056,1.04199 0.0027,1.29041"
+ id="path1326"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:none;stroke:#282828;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 15.713332,207.97809 c -0.403474,-0.008 -0.973881,0.11908 -1.339085,0.69561 -0.411739,0.5041 0.276888,0.3953 0.40465,0.60115 0.633791,-0.32012 -0.134122,0.43012 -0.417057,0.3759 -0.216369,-0.0314 -0.691672,0.32763 -0.700459,0.35109"
+ id="path1328"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/res/computerscare-iso-button-small-down.svg b/res/computerscare-iso-button-small-down.svg
@@ -0,0 +1,92 @@
+<?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="7mm"
+ height="7mm"
+ viewBox="0 0 7 7"
+ version="1.1"
+ id="svg837"
+ inkscape:version="0.92.2 5c3e80d, 2017-08-06"
+ sodipodi:docname="computerscare-iso-button-small-down.svg">
+ <defs
+ id="defs831">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="-15.502741 : -0.68761461 : 1"
+ inkscape:vp_y="0 : 1935.9757 : 0"
+ inkscape:vp_z="25.090656 : 9.2983744 : 1"
+ inkscape:persp3d-origin="19.059341 : -5.6235546 : 1"
+ id="perspective1382" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="15.839192"
+ inkscape:cx="11.646149"
+ inkscape:cy="12.208888"
+ inkscape:document-units="mm"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="1440"
+ inkscape:window-height="855"
+ inkscape:window-x="0"
+ inkscape:window-y="1"
+ inkscape:window-maximized="1"
+ inkscape:snap-object-midpoints="false"
+ inkscape:snap-others="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-nodes="false" />
+ <metadata
+ id="metadata834">
+ <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,-290)">
+ <path
+ style="fill:#245559;fill-opacity:1;stroke:#000000;stroke-width:0.17936714px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 6.6808181,290.97403 c -5.6745886,-0.0497 -5.72230161,0.0508 -5.72230161,0.0508 l 0.0167043,5.62316 5.76761466,0.0158 z"
+ id="path1551"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.19468118px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 0.971682,296.6539 Z"
+ id="path2175"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#245559;fill-opacity:1;stroke:#000000;stroke-width:0.19468118px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 1.7393958,296.5995 -0.047277,-4.96564 v 0 l -0.71689745,-0.72599 -0.19883882,3e-4 0.19883915,5.74019 v 0 z"
+ id="path2177"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccc" />
+ <path
+ style="fill:#24c9a6;fill-opacity:1;stroke:#000000;stroke-width:0.19468118px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 0.97522084,290.90787 c 1.90186576,0.0221 3.80373156,0.044 5.70559726,0.0662 l 0.00699,0.62149 -4.9956948,0.0383 z"
+ id="path2181"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ </g>
+</svg>
diff --git a/res/computerscare-iso-button-small-up.svg b/res/computerscare-iso-button-small-up.svg
@@ -0,0 +1,84 @@
+<?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="7mm"
+ height="7mm"
+ viewBox="0 0 7 7"
+ version="1.1"
+ id="svg837"
+ inkscape:version="0.92.2 5c3e80d, 2017-08-06"
+ sodipodi:docname="computerscare-iso-button-small-up.svg">
+ <defs
+ id="defs831">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="-15.502741 : -0.68761461 : 1"
+ inkscape:vp_y="0 : 1935.9757 : 0"
+ inkscape:vp_z="25.090656 : 9.2983744 : 1"
+ inkscape:persp3d-origin="19.059341 : -5.6235546 : 1"
+ id="perspective1382" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="63.356768"
+ inkscape:cx="4.0509685"
+ inkscape:cy="27.076668"
+ inkscape:document-units="mm"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="1440"
+ inkscape:window-height="855"
+ inkscape:window-x="0"
+ inkscape:window-y="1"
+ inkscape:window-maximized="1"
+ inkscape:snap-nodes="false" />
+ <metadata
+ id="metadata834">
+ <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,-290)">
+ <path
+ style="fill:#24c9a6;fill-opacity:1;stroke:#000000;stroke-width:0.18405969px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 0.10147925,295.8682 0.79396217,0.89976 5.94907228,0.1315 -0.098604,-6.01481 C 6.5854509,290.5501 6.480752,290.27243 6.2082133,290.21959"
+ id="path1553"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:#009b00;fill-opacity:1;stroke:#000000;stroke-width:0.18405969px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 6.191267,295.81375 0.6532467,1.08568 v 0 0 0 0"
+ id="path1555"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ style="fill:#24c9a6;fill-opacity:1;stroke:#000000;stroke-width:0.18405969px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 6.1699123,290.2256 c -6.01480776,-0.0494 -6.04767555,-0.0657 -6.04767555,-0.0657 v 0 5.70256 l 6.11341125,0.0164 z"
+ id="path1551"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cscccc" />
+ </g>
+</svg>
diff --git a/src/Computerscare.cpp b/src/Computerscare.cpp
@@ -14,4 +14,5 @@ void init(Plugin *p) {
p->addModel(modelComputerscareOhPeas);
//p->addModel(modelComputerscareIso);
p->addModel(modelComputerscareKnolyPobs);
+ p->addModel(modelComputerscareBolyPuttons);
}
diff --git a/src/Computerscare.hpp b/src/Computerscare.hpp
@@ -32,6 +32,7 @@ extern Model *modelComputerscareLaundrySoup;
extern Model *modelComputerscareOhPeas;
//extern Model *modelComputerscareIso;
extern Model *modelComputerscareKnolyPobs;
+extern Model *modelComputerscareBolyPuttons;
static const NVGcolor COLOR_COMPUTERSCARE_LIGHT_GREEN = nvgRGB(0xC0, 0xE7, 0xDE);
static const NVGcolor COLOR_COMPUTERSCARE_GREEN = nvgRGB(0x24, 0xc9, 0xa6);
@@ -77,6 +78,13 @@ struct IsoButton : SvgSwitch {
addFrame(APP->window->loadSvg(asset::plugin(pluginInstance, "res/computerscare-iso-button-up.svg")));
}
};
+struct SmallIsoButton : SvgSwitch {
+ SmallIsoButton() {
+ addFrame(APP->window->loadSvg(asset::plugin(pluginInstance, "res/computerscare-iso-button-small-up.svg")));
+
+ addFrame(APP->window->loadSvg(asset::plugin(pluginInstance, "res/computerscare-iso-button-small-down.svg")));
+ }
+};
struct ComputerscareIsoThree : app::SvgSwitch {
ComputerscareIsoThree() {
addFrame(APP->window->loadSvg(asset::plugin(pluginInstance, "res/iso-3way-1.svg")));
diff --git a/src/ComputerscareBolyPuttons.cpp b/src/ComputerscareBolyPuttons.cpp
@@ -0,0 +1,189 @@
+#include "Computerscare.hpp"
+
+struct ComputerscareBolyPuttons;
+
+const int numToggles = 16;
+
+struct ComputerscareBolyPuttons : Module {
+ int counter = 0;
+ int outputRangeEnum = 0;
+ float outputRanges[4][2];
+
+ ComputerscareSVGPanel* panelRef;
+ enum ParamIds {
+ TOGGLE,
+ NUM_PARAMS = TOGGLE + numToggles
+
+ };
+ enum InputIds {
+ CHANNEL_INPUT,
+ A_INPUT,
+ B_INPUT,
+ NUM_INPUTS
+ };
+ enum OutputIds {
+ POLY_OUTPUT,
+ NUM_OUTPUTS
+ };
+ enum LightIds {
+ NUM_LIGHTS
+ };
+
+
+ ComputerscareBolyPuttons() {
+
+ config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS);
+
+ for (int i = 0; i < numToggles; i++) {
+ //configParam(KNOB + i, 0.0f, 10.0f, 0.0f);
+ configParam(TOGGLE + i, 0.f, 1.f, 0.f, "Channel " + std::to_string(i + 1) + " Voltage", " Volts");
+ }
+
+ outputRanges[0][0] = 0.f;
+ outputRanges[0][1] = 10.f;
+ outputRanges[1][0] = -5.f;
+ outputRanges[1][1] = 5.f;
+ outputRanges[2][0] = 0.f;
+ outputRanges[2][1] = 5.f;
+ outputRanges[3][0] = 0.f;
+ outputRanges[3][1] = 1.f;
+ outputRanges[4][0] = -1.f;
+ outputRanges[4][1] = 1.f;
+ outputRanges[5][0] = -10.f;
+ outputRanges[5][1] = 10.f;
+ }
+ void process(const ProcessArgs &args) override {
+ float min = outputRanges[outputRangeEnum][0];
+ float max = outputRanges[outputRangeEnum][1];
+ int numAChannels = inputs[A_INPUT].getChannels();
+ int numBChannels = inputs[B_INPUT].getChannels();
+ counter++;
+ if (counter > 5012) {
+ //printf("%f \n",random::uniform());
+ counter = 0;
+ //rect4032
+ //south facing high wall
+ }
+ outputs[POLY_OUTPUT].setChannels(16);
+
+ //if (outputs[SCALED_OUTPUT + i].isConnected() || outputs[QUANTIZED_OUTPUT + i].isConnected()) {
+ // numInputChannels = inputs[CHANNEL_INPUT + i].getChannels();
+
+ for (int i = 0; i < numToggles; i++) {
+ if(inputs[A_INPUT].isConnected()) {
+ min = inputs[A_INPUT].getVoltage(i % numAChannels);
+ }
+
+ if(inputs[B_INPUT].isConnected()) {
+ max = inputs[B_INPUT].getVoltage(i % numBChannels);
+ }
+
+ float spread = max - min;
+ outputs[POLY_OUTPUT].setVoltage(params[TOGGLE + i].getValue()*spread + min, i);
+ }
+ }
+
+};
+
+struct ComputerscareBolyPuttonsWidget : ModuleWidget {
+ ComputerscareBolyPuttonsWidget(ComputerscareBolyPuttons *module) {
+
+ setModule(module);
+ //setPanel(APP->window->loadSvg(asset::plugin(pluginInstance, "res/ComputerscareKnolyPobsPanel.svg")));
+ box.size = Vec(4 * 15, 380);
+ {
+ ComputerscareSVGPanel *panel = new ComputerscareSVGPanel();
+ panel->box.size = box.size;
+ panel->setBackground(APP->window->loadSvg(asset::plugin(pluginInstance, "res/ComputerscareBolyPuttonsPanel.svg")));
+
+ //module->panelRef = panel;
+
+ addChild(panel);
+
+ }
+ float xx;
+ float yy;
+ for (int i = 0; i < numToggles; i++) {
+ xx = 7.4f + 27.3 * (i % 2);
+ yy = 94 + 16.5 * (i - i % 2) + 11.3 * (i % 2);
+ addLabeledButton(std::to_string(i + 1), xx, yy, module, i, (i % 2) * (3 + 10 * (i < 9)) - 2, 0);
+ }
+
+
+ addInput(createInput<InPort>(Vec(9, 58), module, ComputerscareBolyPuttons::A_INPUT));
+ addInput(createInput<PointingUpPentagonPort>(Vec(33, 55), module, ComputerscareBolyPuttons::B_INPUT));
+
+ addOutput(createOutput<PointingUpPentagonPort>(Vec(1, 24), module, ComputerscareBolyPuttons::POLY_OUTPUT));
+ bolyPuttons = module;
+ }
+ void addLabeledButton(std::string label, int x, int y, ComputerscareBolyPuttons *module, int index, float labelDx, float labelDy) {
+
+ smallLetterDisplay = new SmallLetterDisplay();
+ smallLetterDisplay->box.size = Vec(5, 10);
+ smallLetterDisplay->fontSize = 16;
+ smallLetterDisplay->value = label;
+ smallLetterDisplay->textAlign = 1;
+
+ addParam(createParam<SmallIsoButton>(Vec(x, y), module, ComputerscareBolyPuttons::TOGGLE + index));
+
+ smallLetterDisplay->box.pos = Vec(x + labelDx, y - 12 + labelDy);
+
+
+ addChild(smallLetterDisplay);
+
+ }
+ json_t *toJson() override
+ {
+ json_t *rootJ = ModuleWidget::toJson();
+ json_object_set_new(rootJ, "outputRange", json_integer(bolyPuttons->outputRangeEnum));
+ return rootJ;
+ }
+ void fromJson(json_t *rootJ) override
+ {
+ ModuleWidget::fromJson(rootJ);
+ // button states
+
+ json_t *outputRangeEnumJ = json_object_get(rootJ, "outputRange");
+ if (outputRangeEnumJ) { bolyPuttons->outputRangeEnum = json_integer_value(outputRangeEnumJ); }
+
+ }
+ void appendContextMenu(Menu *menu) override;
+ ComputerscareBolyPuttons *bolyPuttons;
+ SmallLetterDisplay* smallLetterDisplay;
+};
+struct OutputRangeItem : MenuItem {
+ ComputerscareBolyPuttons *bolyPuttons;
+ int outputRangeEnum;
+ void onAction(const event::Action &e) override {
+ bolyPuttons->outputRangeEnum = outputRangeEnum;
+ }
+ void step() override {
+ rightText = CHECKMARK(bolyPuttons->outputRangeEnum == outputRangeEnum);
+ MenuItem::step();
+ }
+};
+void ComputerscareBolyPuttonsWidget::appendContextMenu(Menu *menu)
+{
+ ComputerscareBolyPuttons *bolyPuttons = dynamic_cast<ComputerscareBolyPuttons *>(this->module);
+
+ MenuLabel *spacerLabel = new MenuLabel();
+ menu->addChild(spacerLabel);
+
+
+ MenuLabel *modeLabel = new MenuLabel();
+ modeLabel->text = "Output Range";
+ menu->addChild(modeLabel);
+
+ // randomization output bounds
+ menu->addChild(construct<MenuLabel>());
+ menu->addChild(construct<MenuLabel>(&MenuLabel::text, "Output Range"));
+ menu->addChild(construct<OutputRangeItem>(&MenuItem::text, " 0v ... +10v", &OutputRangeItem::bolyPuttons, bolyPuttons, &OutputRangeItem::outputRangeEnum, 0));
+ menu->addChild(construct<OutputRangeItem>(&MenuItem::text, " -5v ... +5v", &OutputRangeItem::bolyPuttons, bolyPuttons, &OutputRangeItem::outputRangeEnum, 1));
+ menu->addChild(construct<OutputRangeItem>(&MenuItem::text, " 0v ... +5v", &OutputRangeItem::bolyPuttons, bolyPuttons, &OutputRangeItem::outputRangeEnum, 2));
+ menu->addChild(construct<OutputRangeItem>(&MenuItem::text, " 0v ... +1v", &OutputRangeItem::bolyPuttons, bolyPuttons, &OutputRangeItem::outputRangeEnum, 3));
+ menu->addChild(construct<OutputRangeItem>(&MenuItem::text, " -1v ... +1v", &OutputRangeItem::bolyPuttons, bolyPuttons, &OutputRangeItem::outputRangeEnum, 4));
+
+ menu->addChild(construct<OutputRangeItem>(&MenuItem::text, "-10v ... +10v", &OutputRangeItem::bolyPuttons, bolyPuttons, &OutputRangeItem::outputRangeEnum, 5));
+
+}
+Model *modelComputerscareBolyPuttons = createModel<ComputerscareBolyPuttons, ComputerscareBolyPuttonsWidget>("computerscare-bolyputtons");
diff --git a/src/ComputerscareKnolyPobs.cpp b/src/ComputerscareKnolyPobs.cpp
@@ -37,7 +37,6 @@ struct ComputerscareKnolyPobs : Module {
configParam(KNOB + i, 0.0f, 10.0f, 0.0f);
configParam(KNOB + i, 0.f, 10.f, 0.f, "Channel " + std::to_string(i + 1) + " Voltage", " Volts");
}
- configParam(TOGGLES, 0.0f, 1.0f, 0.0f);
}
void process(const ProcessArgs &args) override {
@@ -77,7 +76,7 @@ struct ComputerscareKnolyPobsWidget : ModuleWidget {
for (int i = 0; i < numKnobs; i++) {
xx = 1.4f + 24.3 * (i % 2);
yy = 64 + 18.5 * (i - i % 2) + 11.3 * (i % 2);
- addLabeledKnob(std::to_string(i + 1), xx, yy, module, i, 0, (i % 2) * (11 + 5 * (i < 9)) - 4, 0);
+ addLabeledKnob(std::to_string(i + 1), xx, yy, module, i, (i % 2) * (11 + 5 * (i < 9)) - 4, 0);
}
@@ -85,38 +84,18 @@ struct ComputerscareKnolyPobsWidget : ModuleWidget {
addOutput(createOutput<PointingUpPentagonPort>(Vec(28, 24), module, ComputerscareKnolyPobs::POLY_OUTPUT));
}
- void addLabeledKnob(std::string label, int x, int y, ComputerscareKnolyPobs *module, int index, int type, float labelDx, float labelDy) {
+ void addLabeledKnob(std::string label, int x, int y, ComputerscareKnolyPobs *module, int index, float labelDx, float labelDy) {
smallLetterDisplay = new SmallLetterDisplay();
smallLetterDisplay->box.size = Vec(5, 10);
smallLetterDisplay->fontSize = 16;
smallLetterDisplay->value = label;
smallLetterDisplay->textAlign = 1;
- if (type == 0) {
- addParam(createParam<SmoothKnob>(Vec(x, y), module, ComputerscareKnolyPobs::KNOB + index));
- smallLetterDisplay->box.pos = Vec(x + labelDx, y - 12 + labelDy);
- }
- else if (type == 1) {
- addParam(createParam<SmallKnob>(Vec(x, y), module, ComputerscareKnolyPobs::KNOB + index));
- smallLetterDisplay->box.pos = Vec(x + 12 + labelDx, y - 10 + labelDy);
- }
- else if (type == 2) {
- addParam(createParam<BigSmoothKnob>(Vec(x, y), module, ComputerscareKnolyPobs::KNOB + index));
- smallLetterDisplay->box.pos = Vec(x + 22 + labelDx, y - 12 + labelDy);
- }
- else if (type == 3) {
- addParam(createParam<LrgKnob>(Vec(x, y), module, ComputerscareKnolyPobs::KNOB + index));
- smallLetterDisplay->box.pos = Vec(x + 22 + labelDx, y - 12 + labelDy);
- }
- else if (type == 4) {
- addParam(createParam<BigSmoothKnob>(Vec(x, y), module, ComputerscareKnolyPobs::KNOB + index));
- smallLetterDisplay->box.pos = Vec(x + 22 + labelDx, y - 12 + labelDy);
- }
- else {
- addParam(createParam<MediumSnapKnob>(Vec(x, y), module, ComputerscareKnolyPobs::KNOB + index));
- smallLetterDisplay->box.pos = Vec(x + 12, y - 10);
- }
+ addParam(createParam<SmoothKnob>(Vec(x, y), module, ComputerscareKnolyPobs::KNOB + index));
+ smallLetterDisplay->box.pos = Vec(x + labelDx, y - 12 + labelDy);
+
+
addChild(smallLetterDisplay);
}
diff --git a/src/ComputerscareOhPeas.cpp b/src/ComputerscareOhPeas.cpp
@@ -154,7 +154,7 @@ struct ComputerscareOhPeas : Module
{
std::string chi = "Ch. " + std::to_string(i + 1);
configParam( SCALE_TRIM + i, -1.f, 1.f, 0.0f, chi + " Scale CV Amount");
- configParam( SCALE_VAL + i, -5.f, 5.f, 0.0f, chi + " Scale Value");
+ configParam( SCALE_VAL + i, -2.f, 2.f, 1.0f, chi + " Scale Value");
configParam( OFFSET_TRIM + i, -1.f, 1.f, 0.0f, chi + " Offset CV Amount");
configParam( OFFSET_VAL + i, -5.f, 5.f, 0.0f, chi + " Offset Value");