Initial modgui implementation
Signed-off-by: falkTX <falktx@falktx.com>
This commit is contained in:
parent
d04a1f8731
commit
4a65aee7c7
10 changed files with 545 additions and 3 deletions
15
src/MOD/CardinalFX.lv2/modgui.ttl
Normal file
15
src/MOD/CardinalFX.lv2/modgui.ttl
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
|
||||||
|
@prefix mod: <http://moddevices.com/ns/mod#> .
|
||||||
|
@prefix modgui: <http://moddevices.com/ns/modgui#> .
|
||||||
|
|
||||||
|
<https://distrho.kx.studio/plugins/cardinal#fx>
|
||||||
|
mod:brand "DISTRHO" ;
|
||||||
|
mod:label "CardinalFX" ;
|
||||||
|
modgui:gui [
|
||||||
|
modgui:resourcesDirectory <modgui> ;
|
||||||
|
modgui:iconTemplate <modgui/icon.html> ;
|
||||||
|
modgui:javascript <modgui/javascript.js> ;
|
||||||
|
modgui:stylesheet <modgui/stylesheet.css> ;
|
||||||
|
modgui:screenshot <modgui/screenshot.png> ;
|
||||||
|
modgui:thumbnail <modgui/thumbnail.png> ;
|
||||||
|
] .
|
99
src/MOD/CardinalFX.lv2/modgui/distrho.svg
Normal file
99
src/MOD/CardinalFX.lv2/modgui/distrho.svg
Normal file
|
@ -0,0 +1,99 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Creator: CorelDRAW -->
|
||||||
|
|
||||||
|
<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"
|
||||||
|
xml:space="preserve"
|
||||||
|
width="13.038269"
|
||||||
|
height="13.038269"
|
||||||
|
style="fill-rule:evenodd"
|
||||||
|
viewBox="0 0 1.0504196 1.050423"
|
||||||
|
id="svg2"
|
||||||
|
version="1.1"
|
||||||
|
inkscape:version="0.48.3.1 r9886"
|
||||||
|
sodipodi:docname="distrho.svg"><metadata
|
||||||
|
id="metadata32"><rdf:RDF><cc:Work
|
||||||
|
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="1298"
|
||||||
|
inkscape:window-height="646"
|
||||||
|
id="namedview30"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="8.8790964"
|
||||||
|
inkscape:cx="22.667459"
|
||||||
|
inkscape:cy="6.4311119"
|
||||||
|
inkscape:window-x="1792"
|
||||||
|
inkscape:window-y="239"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
inkscape:current-layer="Layer_x0020_1"
|
||||||
|
fit-margin-top="0"
|
||||||
|
fit-margin-left="0"
|
||||||
|
fit-margin-right="0"
|
||||||
|
fit-margin-bottom="0" />
|
||||||
|
<defs
|
||||||
|
id="defs4">
|
||||||
|
<style
|
||||||
|
type="text/css"
|
||||||
|
id="style6">
|
||||||
|
|
||||||
|
.str0 {stroke:#565656;stroke-width:0.0966867}
|
||||||
|
.str1 {stroke:#4F4F4F;stroke-width:0.193345}
|
||||||
|
.fil0 {fill:none}
|
||||||
|
.fil2 {fill:#2B2A29}
|
||||||
|
.fil1 {fill:#6B6B6B}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</defs>
|
||||||
|
<g
|
||||||
|
id="Layer_x0020_1"
|
||||||
|
transform="translate(-1.6191379e-5,-0.08553947)">
|
||||||
|
<metadata
|
||||||
|
id="CorelCorpID_0Corel-Layer" />
|
||||||
|
<circle
|
||||||
|
class="fil0 str0"
|
||||||
|
cx="0.525226"
|
||||||
|
cy="0.61075097"
|
||||||
|
r="0.15916"
|
||||||
|
id="circle10"
|
||||||
|
style="fill:none;stroke:#ffffff;stroke-width:0.09668670000000000;stroke-opacity:1"
|
||||||
|
sodipodi:cx="0.525226"
|
||||||
|
sodipodi:cy="0.61075097"
|
||||||
|
sodipodi:rx="0.15916"
|
||||||
|
sodipodi:ry="0.15916"
|
||||||
|
d="m 0.684386,0.61075097 c 0,0.0879016 -0.0712584,0.15916001 -0.15916,0.15916001 -0.0879016,0 -0.15916001,-0.0712584 -0.15916001,-0.15916001 0,-0.0879016 0.0712584,-0.15916 0.15916001,-0.15916 0.0879016,0 0.15916,0.0712584 0.15916,0.15916 z" />
|
||||||
|
<circle
|
||||||
|
class="fil0 str1"
|
||||||
|
cx="0.525226"
|
||||||
|
cy="0.61075097"
|
||||||
|
r="0.42853901"
|
||||||
|
id="circle12"
|
||||||
|
style="fill:none;stroke:#ffffff;stroke-width:0.19334499999999999;stroke-opacity:1"
|
||||||
|
sodipodi:cx="0.525226"
|
||||||
|
sodipodi:cy="0.61075097"
|
||||||
|
sodipodi:rx="0.42853901"
|
||||||
|
sodipodi:ry="0.42853901"
|
||||||
|
d="m 0.953765,0.61075097 c 0,0.23667556 -0.19186344,0.42853903 -0.428539,0.42853903 -0.23667556,0 -0.42853901,-0.19186347 -0.42853901,-0.42853903 0,-0.23667556 0.19186345,-0.428539 0.42853901,-0.428539 0.23667556,0 0.428539,0.19186344 0.428539,0.428539 z" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3 KiB |
169
src/MOD/CardinalFX.lv2/modgui/icon.html
Normal file
169
src/MOD/CardinalFX.lv2/modgui/icon.html
Normal file
|
@ -0,0 +1,169 @@
|
||||||
|
<div class="cardinal-fx mod-pedal">
|
||||||
|
<div class="cardinal-fx border"></div>
|
||||||
|
<div mod-role="drag-handle" class="mod-drag-handle"></div>
|
||||||
|
<div class="cardinal-fx-top clearfix">
|
||||||
|
<div class="cardinal-fx-top-left">
|
||||||
|
<div class="spacer"></div>
|
||||||
|
<div class="distrho-logo"></div>
|
||||||
|
<div class="cardinal-text">DISTRHO Cardinal - Mini -</div>
|
||||||
|
<div class="spacer"></div>
|
||||||
|
</div>
|
||||||
|
<div class="cardinal-fx-top-right">
|
||||||
|
<div class="mod-control-group cardinal-patch-comment">
|
||||||
|
<div class="mod-string-content" mod-role="input-parameter" mod-parameter-uri="https://distrho.kx.studio/plugins/cardinal#fx#comment" mod-widget="string">
|
||||||
|
<textarea autocomplete=off spellcheck=false class="mod-string-value" mod-role="input-parameter-value" mod-parameter-uri="https://distrho.kx.studio/plugins/cardinal#fx#comment"></textarea>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="cardinal-patch-screeenshot">
|
||||||
|
<div class="screenshot">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="cardinal-fx-bottom clearfix">
|
||||||
|
<div class="mod-control-group cardinal-fx-knob-page-selector">
|
||||||
|
<span class="page-1 selected">1 - 8</span>
|
||||||
|
<span class="page-2">9 - 16</span>
|
||||||
|
<span class="page-3">17 - 24</span>
|
||||||
|
<div class="mod-switch">
|
||||||
|
<div class="mod-control-group mod-switch-image mod-port transport" mod-role="bypass" mod-widget="film"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="mod-control-group cardinal-fx-knobs cardinal-fx-knob-page-1 clearfix">
|
||||||
|
<div class="mod-knob">
|
||||||
|
<span class="title">PARAM 1</span>
|
||||||
|
<div class="mod-control-group mod-knob-image mod-port" mod-role="input-control-port" mod-port-symbol="param_1" mod-widget="film"></div>
|
||||||
|
</div>
|
||||||
|
<div class="mod-knob">
|
||||||
|
<span class="title">PARAM 2</span>
|
||||||
|
<div class="mod-control-group mod-knob-image mod-port" mod-role="input-control-port" mod-port-symbol="param_2" mod-widget="film"></div>
|
||||||
|
</div>
|
||||||
|
<div class="mod-knob">
|
||||||
|
<span class="title">PARAM 3</span>
|
||||||
|
<div class="mod-control-group mod-knob-image mod-port" mod-role="input-control-port" mod-port-symbol="param_3" mod-widget="film"></div>
|
||||||
|
</div>
|
||||||
|
<div class="mod-knob">
|
||||||
|
<span class="title">PARAM 4</span>
|
||||||
|
<div class="mod-control-group mod-knob-image mod-port" mod-role="input-control-port" mod-port-symbol="param_4" mod-widget="film"></div>
|
||||||
|
</div>
|
||||||
|
<div class="mod-knob">
|
||||||
|
<span class="title">PARAM 5</span>
|
||||||
|
<div class="mod-control-group mod-knob-image mod-port" mod-role="input-control-port" mod-port-symbol="param_5" mod-widget="film"></div>
|
||||||
|
</div>
|
||||||
|
<div class="mod-knob">
|
||||||
|
<span class="title">PARAM 6</span>
|
||||||
|
<div class="mod-control-group mod-knob-image mod-port" mod-role="input-control-port" mod-port-symbol="param_6" mod-widget="film"></div>
|
||||||
|
</div>
|
||||||
|
<div class="mod-knob">
|
||||||
|
<span class="title">PARAM 7</span>
|
||||||
|
<div class="mod-control-group mod-knob-image mod-port" mod-role="input-control-port" mod-port-symbol="param_7" mod-widget="film"></div>
|
||||||
|
</div>
|
||||||
|
<div class="mod-knob">
|
||||||
|
<span class="title">PARAM 8</span>
|
||||||
|
<div class="mod-control-group mod-knob-image mod-port" mod-role="input-control-port" mod-port-symbol="param_8" mod-widget="film"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="mod-control-group cardinal-fx-knobs cardinal-fx-knob-page-2 clearfix">
|
||||||
|
<div class="mod-knob">
|
||||||
|
<span class="title">PARAM 9</span>
|
||||||
|
<div class="mod-control-group mod-knob-image mod-port" mod-role="input-control-port" mod-port-symbol="param_9" mod-widget="film"></div>
|
||||||
|
</div>
|
||||||
|
<div class="mod-knob">
|
||||||
|
<span class="title">PARAM 10</span>
|
||||||
|
<div class="mod-control-group mod-knob-image mod-port" mod-role="input-control-port" mod-port-symbol="param_10" mod-widget="film"></div>
|
||||||
|
</div>
|
||||||
|
<div class="mod-knob">
|
||||||
|
<span class="title">PARAM 11</span>
|
||||||
|
<div class="mod-control-group mod-knob-image mod-port" mod-role="input-control-port" mod-port-symbol="param_11" mod-widget="film"></div>
|
||||||
|
</div>
|
||||||
|
<div class="mod-knob">
|
||||||
|
<span class="title">PARAM 12</span>
|
||||||
|
<div class="mod-control-group mod-knob-image mod-port" mod-role="input-control-port" mod-port-symbol="param_12" mod-widget="film"></div>
|
||||||
|
</div>
|
||||||
|
<div class="mod-knob">
|
||||||
|
<span class="title">PARAM 13</span>
|
||||||
|
<div class="mod-control-group mod-knob-image mod-port" mod-role="input-control-port" mod-port-symbol="param_13" mod-widget="film"></div>
|
||||||
|
</div>
|
||||||
|
<div class="mod-knob">
|
||||||
|
<span class="title">PARAM 14</span>
|
||||||
|
<div class="mod-control-group mod-knob-image mod-port" mod-role="input-control-port" mod-port-symbol="param_14" mod-widget="film"></div>
|
||||||
|
</div>
|
||||||
|
<div class="mod-knob">
|
||||||
|
<span class="title">PARAM 15</span>
|
||||||
|
<div class="mod-control-group mod-knob-image mod-port" mod-role="input-control-port" mod-port-symbol="param_15" mod-widget="film"></div>
|
||||||
|
</div>
|
||||||
|
<div class="mod-knob">
|
||||||
|
<span class="title">PARAM 16</span>
|
||||||
|
<div class="mod-control-group mod-knob-image mod-port" mod-role="input-control-port" mod-port-symbol="param_16" mod-widget="film"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="mod-control-group cardinal-fx-knobs cardinal-fx-knob-page-3 clearfix">
|
||||||
|
<div class="mod-knob">
|
||||||
|
<span class="title">PARAM 17</span>
|
||||||
|
<div class="mod-control-group mod-knob-image mod-port" mod-role="input-control-port" mod-port-symbol="param_17" mod-widget="film"></div>
|
||||||
|
</div>
|
||||||
|
<div class="mod-knob">
|
||||||
|
<span class="title">PARAM 18</span>
|
||||||
|
<div class="mod-control-group mod-knob-image mod-port" mod-role="input-control-port" mod-port-symbol="param_18" mod-widget="film"></div>
|
||||||
|
</div>
|
||||||
|
<div class="mod-knob">
|
||||||
|
<span class="title">PARAM 19</span>
|
||||||
|
<div class="mod-control-group mod-knob-image mod-port" mod-role="input-control-port" mod-port-symbol="param_19" mod-widget="film"></div>
|
||||||
|
</div>
|
||||||
|
<div class="mod-knob">
|
||||||
|
<span class="title">PARAM 20</span>
|
||||||
|
<div class="mod-control-group mod-knob-image mod-port" mod-role="input-control-port" mod-port-symbol="param_20" mod-widget="film"></div>
|
||||||
|
</div>
|
||||||
|
<div class="mod-knob">
|
||||||
|
<span class="title">PARAM 21</span>
|
||||||
|
<div class="mod-control-group mod-knob-image mod-port" mod-role="input-control-port" mod-port-symbol="param_21" mod-widget="film"></div>
|
||||||
|
</div>
|
||||||
|
<div class="mod-knob">
|
||||||
|
<span class="title">PARAM 22</span>
|
||||||
|
<div class="mod-control-group mod-knob-image mod-port" mod-role="input-control-port" mod-port-symbol="param_22" mod-widget="film"></div>
|
||||||
|
</div>
|
||||||
|
<div class="mod-knob">
|
||||||
|
<span class="title">PARAM 23</span>
|
||||||
|
<div class="mod-control-group mod-knob-image mod-port" mod-role="input-control-port" mod-port-symbol="param_23" mod-widget="film"></div>
|
||||||
|
</div>
|
||||||
|
<div class="mod-knob">
|
||||||
|
<span class="title">PARAM 24</span>
|
||||||
|
<div class="mod-control-group mod-knob-image mod-port" mod-role="input-control-port" mod-port-symbol="param_24" mod-widget="film"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="mod-pedal-input">
|
||||||
|
{{#effect.ports.audio.input}}
|
||||||
|
<div class="mod-input mod-input-disconnected" title="{{name}}" mod-role="input-audio-port" mod-port-symbol="{{symbol}}">
|
||||||
|
<div class="mod-pedal-input-image"></div>
|
||||||
|
</div>
|
||||||
|
{{/effect.ports.audio.input}}
|
||||||
|
{{#effect.ports.midi.input}}
|
||||||
|
<div class="mod-input mod-input-disconnected" title="{{name}}" mod-role="input-midi-port" mod-port-symbol="{{symbol}}">
|
||||||
|
<div class="mod-pedal-input-image"></div>
|
||||||
|
</div>
|
||||||
|
{{/effect.ports.midi.input}}
|
||||||
|
{{#effect.ports.cv.input}}
|
||||||
|
<div class="mod-input mod-input-disconnected" title="{{name}}" mod-role="input-cv-port" mod-port-symbol="{{symbol}}">
|
||||||
|
<div class="mod-pedal-input-image"></div>
|
||||||
|
</div>
|
||||||
|
{{/effect.ports.cv.input}}
|
||||||
|
</div>
|
||||||
|
<div class="mod-pedal-output">
|
||||||
|
{{#effect.ports.audio.output}}
|
||||||
|
<div class="mod-output mod-output-disconnected" title="{{name}}" mod-role="output-audio-port" mod-port-symbol="{{symbol}}">
|
||||||
|
<div class="mod-pedal-output-image"></div>
|
||||||
|
</div>
|
||||||
|
{{/effect.ports.audio.output}}
|
||||||
|
{{#effect.ports.midi.output}}
|
||||||
|
<div class="mod-output mod-output-disconnected" title="{{name}}" mod-role="output-midi-port" mod-port-symbol="{{symbol}}">
|
||||||
|
<div class="mod-pedal-output-image"></div>
|
||||||
|
</div>
|
||||||
|
{{/effect.ports.midi.output}}
|
||||||
|
{{#effect.ports.cv.output}}
|
||||||
|
<div class="mod-output mod-output-disconnected" title="{{name}}" mod-role="output-cv-port" mod-port-symbol="{{symbol}}">
|
||||||
|
<div class="mod-pedal-output-image"></div>
|
||||||
|
</div>
|
||||||
|
{{/effect.ports.cv.output}}
|
||||||
|
</div>
|
||||||
|
</div>
|
41
src/MOD/CardinalFX.lv2/modgui/javascript.js
Normal file
41
src/MOD/CardinalFX.lv2/modgui/javascript.js
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
function (event) {
|
||||||
|
|
||||||
|
if (event.type == 'start') {
|
||||||
|
event.icon.find('.cardinal-fx-knob-page-selector .page-1').click(function() {
|
||||||
|
event.icon.find('.cardinal-fx-knob-page-2').css({'display':'none'});
|
||||||
|
event.icon.find('.cardinal-fx-knob-page-3').css({'display':'none'});
|
||||||
|
event.icon.find('.cardinal-fx-knob-page-1').css({'display':'flex'});
|
||||||
|
event.icon.find('.cardinal-fx-knob-page-selector > span').removeClass('selected');
|
||||||
|
$(this).addClass('selected');
|
||||||
|
});
|
||||||
|
event.icon.find('.cardinal-fx-knob-page-selector .page-2').click(function() {
|
||||||
|
event.icon.find('.cardinal-fx-knob-page-1').css({'display':'none'});
|
||||||
|
event.icon.find('.cardinal-fx-knob-page-3').css({'display':'none'});
|
||||||
|
event.icon.find('.cardinal-fx-knob-page-2').css({'display':'flex'});
|
||||||
|
event.icon.find('.cardinal-fx-knob-page-selector > span').removeClass('selected');
|
||||||
|
$(this).addClass('selected');
|
||||||
|
});
|
||||||
|
event.icon.find('.cardinal-fx-knob-page-selector .page-3').click(function() {
|
||||||
|
event.icon.find('.cardinal-fx-knob-page-1').css({'display':'none'});
|
||||||
|
event.icon.find('.cardinal-fx-knob-page-2').css({'display':'none'});
|
||||||
|
event.icon.find('.cardinal-fx-knob-page-3').css({'display':'flex'});
|
||||||
|
event.icon.find('.cardinal-fx-knob-page-selector > span').removeClass('selected');
|
||||||
|
$(this).addClass('selected');
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event.type == 'change') {
|
||||||
|
if (event.uri === "https://distrho.kx.studio/plugins/cardinal#fx#screenshot") {
|
||||||
|
if (event.value) {
|
||||||
|
event.icon.find('.screenshot').css({'background-image':'url(data:image/png;base64,'+event.value+')'});
|
||||||
|
event.icon.find('.cardinal-fx.mod-pedal .cardinal-patch-comment').hide();
|
||||||
|
event.icon.find('.cardinal-fx.mod-pedal .cardinal-patch-screeenshot').show();
|
||||||
|
} else {
|
||||||
|
event.icon.find('.cardinal-fx.mod-pedal .cardinal-patch-screeenshot').hide();
|
||||||
|
event.icon.find('.cardinal-fx.mod-pedal .cardinal-patch-comment').show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
BIN
src/MOD/CardinalFX.lv2/modgui/orange-knob.png
Normal file
BIN
src/MOD/CardinalFX.lv2/modgui/orange-knob.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 217 KiB |
BIN
src/MOD/CardinalFX.lv2/modgui/screenshot.png
Normal file
BIN
src/MOD/CardinalFX.lv2/modgui/screenshot.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 61 KiB |
204
src/MOD/CardinalFX.lv2/modgui/stylesheet.css
Normal file
204
src/MOD/CardinalFX.lv2/modgui/stylesheet.css
Normal file
|
@ -0,0 +1,204 @@
|
||||||
|
/* main pedal */
|
||||||
|
.cardinal-fx.mod-pedal {
|
||||||
|
background: #333333;
|
||||||
|
background: linear-gradient(to bottom, #181919, #333333);
|
||||||
|
color: white;
|
||||||
|
width: 480px;
|
||||||
|
height: 420px;
|
||||||
|
font-size: 20px;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
.cardinal-fx.mod-pedal .border {
|
||||||
|
border: 2px solid #4c4d4d;
|
||||||
|
width: 480px;
|
||||||
|
height: 420px;
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cardinal-fx.mod-pedal .mod-control-group {
|
||||||
|
position: relative;
|
||||||
|
z-index: 35;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* top and bottom area split */
|
||||||
|
.cardinal-fx.mod-pedal .cardinal-fx-top {
|
||||||
|
width: 100%;
|
||||||
|
height: 240px;
|
||||||
|
position: absolute;
|
||||||
|
top: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cardinal-fx.mod-pedal .cardinal-fx-bottom {
|
||||||
|
width: 100%;
|
||||||
|
height: 180px;
|
||||||
|
position: absolute;
|
||||||
|
top: 240px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* top area split */
|
||||||
|
.cardinal-fx.mod-pedal .cardinal-fx-top-left {
|
||||||
|
width: 120px;
|
||||||
|
height: 240px;
|
||||||
|
position: absolute;
|
||||||
|
top: 0px;
|
||||||
|
left: 0px;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: space-around;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cardinal-fx.mod-pedal .cardinal-fx-top-right {
|
||||||
|
width: 350px;
|
||||||
|
height: 240px;
|
||||||
|
position: absolute;
|
||||||
|
top: 0px;
|
||||||
|
left: 120px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cardinal-fx.mod-pedal .cardinal-patch-comment,
|
||||||
|
.cardinal-fx.mod-pedal .cardinal-patch-screeenshot {
|
||||||
|
width: 340px;
|
||||||
|
height: 210px;
|
||||||
|
margin: 20px 20px 10px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* bottom section split */
|
||||||
|
.cardinal-fx.mod-pedal .cardinal-fx-knob-page-selector {
|
||||||
|
width: 107px; /* NOTE intentional over bounds */
|
||||||
|
height: 170px;
|
||||||
|
position: absolute;
|
||||||
|
top: 0px;
|
||||||
|
left: 0px;
|
||||||
|
text-align: center;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
padding-left: 6px;
|
||||||
|
z-index: 36;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cardinal-fx.mod-pedal .cardinal-fx-knobs {
|
||||||
|
width: 365px;
|
||||||
|
height: 170px;
|
||||||
|
position: absolute;
|
||||||
|
top: 0px;
|
||||||
|
left: 105px;
|
||||||
|
padding: 0px 10px;
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
justify-content: center;
|
||||||
|
text-align: center;
|
||||||
|
background-color: #181919;
|
||||||
|
border: 2px solid #4c4d4d;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* widgets */
|
||||||
|
.cardinal-fx.mod-pedal .mod-switch-image {
|
||||||
|
background-image: url(/resources/switch.png{{{ns}}});
|
||||||
|
background-position: left center;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-size: auto 50px;
|
||||||
|
font-weight: bold;
|
||||||
|
width: 100px;
|
||||||
|
height: 50px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.cardinal-fx.mod-pedal .mod-switch-image.off {
|
||||||
|
background-position: right center !important;
|
||||||
|
}
|
||||||
|
.cardinal-fx.mod-pedal .mod-switch-image.on {
|
||||||
|
background-position: left center !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cardinal-fx.mod-pedal .title {
|
||||||
|
font-size: 15px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cardinal-fx.mod-pedal .mod-knob {
|
||||||
|
padding: 0px 5px;
|
||||||
|
width: 85px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cardinal-fx.mod-pedal .mod-knob-image {
|
||||||
|
background-image: url(/resources/orange-knob.png{{{ns}}});
|
||||||
|
background-position: left center;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-size: auto 52px;
|
||||||
|
font-weight: bold;
|
||||||
|
height: 52px;
|
||||||
|
width: 52px;
|
||||||
|
margin: 0 auto;
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cardinal-fx.mod-pedal .distrho-logo {
|
||||||
|
background-image: url(/resources/distrho.svg{{{ns}}});
|
||||||
|
background-size: cover;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
height: 48px;
|
||||||
|
width: 48px;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cardinal-fx.mod-pedal .cardinal-text {
|
||||||
|
font-size: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cardinal-fx.mod-pedal .mod-string-value {
|
||||||
|
border: 1px solid #4c4d4d;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cardinal-fx.mod-pedal .mod-string-content,
|
||||||
|
.cardinal-fx.mod-pedal .mod-string-value {
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cardinal-fx.mod-pedal textarea {
|
||||||
|
background: black;
|
||||||
|
color: white;
|
||||||
|
resize: none;
|
||||||
|
white-space: pre-wrap;
|
||||||
|
}
|
||||||
|
.cardinal-fx.mod-pedal textarea::selection {
|
||||||
|
background: #4c4d4d;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cardinal-fx.mod-pedal .screenshot {
|
||||||
|
/* 1x1px black png */
|
||||||
|
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQIW2NgYGD4DwABBAEAwS2OUAAAAABJRU5ErkJggg==);
|
||||||
|
background-position: center;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-size: contain;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cardinal-fx.mod-pedal .cardinal-fx-knob-page-selector > span {
|
||||||
|
cursor: pointer;
|
||||||
|
background-color: #4c4d4d;
|
||||||
|
border: solid #181919;
|
||||||
|
border-width: 2px 0px 2px 2px;
|
||||||
|
margin: 2px 0px 2px 2px;
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
|
.cardinal-fx.mod-pedal .cardinal-fx-knob-page-selector > span:first-child {
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
.cardinal-fx.mod-pedal .cardinal-fx-knob-page-selector > span.selected {
|
||||||
|
background-color: #181919;
|
||||||
|
border: solid #4c4d4d;
|
||||||
|
border-width: 2px 0px 2px 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* initial state */
|
||||||
|
/*.cardinal-fx.mod-pedal .cardinal-patch-comment,*/
|
||||||
|
.cardinal-fx.mod-pedal .cardinal-patch-screeenshot,
|
||||||
|
.cardinal-fx.mod-pedal .cardinal-fx-knob-page-2,
|
||||||
|
.cardinal-fx.mod-pedal .cardinal-fx-knob-page-3 {
|
||||||
|
display: none;
|
||||||
|
}
|
BIN
src/MOD/CardinalFX.lv2/modgui/switch.png
Normal file
BIN
src/MOD/CardinalFX.lv2/modgui/switch.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.4 KiB |
BIN
src/MOD/CardinalFX.lv2/modgui/thumbnail.png
Normal file
BIN
src/MOD/CardinalFX.lv2/modgui/thumbnail.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.6 KiB |
|
@ -152,6 +152,10 @@ ifeq ($(HEADLESS),true)
|
||||||
BASE_FLAGS += -DHEADLESS
|
BASE_FLAGS += -DHEADLESS
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(MOD_BUILD),true)
|
||||||
|
BASE_FLAGS += -DDISTRHO_PLUGIN_USES_MODGUI=1 -DDISTRHO_PLUGIN_MINIMUM_BUFFER_SIZE=0xffff
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(WASM),true)
|
ifeq ($(WASM),true)
|
||||||
BASE_FLAGS += -DNANOVG_GLES2=1
|
BASE_FLAGS += -DNANOVG_GLES2=1
|
||||||
BASE_FLAGS += -msse -msse2 -msse3 -msimd128
|
BASE_FLAGS += -msse -msse2 -msse3 -msimd128
|
||||||
|
@ -256,7 +260,13 @@ CORE_RESOURCES = $(subst ../Rack/res/,,$(wildcard ../Rack/res/ComponentLibrary/
|
||||||
CORE_RESOURCES += template.vcv
|
CORE_RESOURCES += template.vcv
|
||||||
|
|
||||||
LV2_RESOURCES = $(CORE_RESOURCES:%=$(TARGET_DIR)/$(NAME).lv2/resources/%)
|
LV2_RESOURCES = $(CORE_RESOURCES:%=$(TARGET_DIR)/$(NAME).lv2/resources/%)
|
||||||
VST3_RESOURCES += $(CORE_RESOURCES:%=$(TARGET_DIR)/$(NAME).vst3/Contents/Resources/%)
|
VST3_RESOURCES = $(CORE_RESOURCES:%=$(TARGET_DIR)/$(NAME).vst3/Contents/Resources/%)
|
||||||
|
|
||||||
|
# Install modgui resources if MOD build
|
||||||
|
ifeq ($(MOD_BUILD),true)
|
||||||
|
LV2_RESOURCES += $(TARGET_DIR)/$(NAME).lv2/modgui.ttl
|
||||||
|
LV2_RESOURCES += $(TARGET_DIR)/$(NAME).lv2/modgui
|
||||||
|
endif
|
||||||
|
|
||||||
# Cardinal main variant should not use rtaudio fallback (it has CV ports)
|
# Cardinal main variant should not use rtaudio fallback (it has CV ports)
|
||||||
ifeq ($(CARDINAL_VARIANT),main)
|
ifeq ($(CARDINAL_VARIANT),main)
|
||||||
|
@ -266,9 +276,9 @@ endif
|
||||||
# Cardinal main variant is not available as VST2 due to lack of CV ports
|
# Cardinal main variant is not available as VST2 due to lack of CV ports
|
||||||
ifneq ($(CARDINAL_VARIANT),main)
|
ifneq ($(CARDINAL_VARIANT),main)
|
||||||
ifeq ($(MACOS),true)
|
ifeq ($(MACOS),true)
|
||||||
VST2_RESOURCES += $(CORE_RESOURCES:%=$(TARGET_DIR)/$(NAME).vst/Contents/Resources/%)
|
VST2_RESOURCES = $(CORE_RESOURCES:%=$(TARGET_DIR)/$(NAME).vst/Contents/Resources/%)
|
||||||
else
|
else
|
||||||
VST2_RESOURCES += $(CORE_RESOURCES:%=$(TARGET_DIR)/$(NAME).vst/resources/%)
|
VST2_RESOURCES = $(CORE_RESOURCES:%=$(TARGET_DIR)/$(NAME).vst/resources/%)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -290,6 +300,10 @@ ifeq ($(MOD_BUILD),true)
|
||||||
$(TARGET_DIR)/$(NAME).lv2/resources/%.svg: ../Rack/res/%.svg ../../deps/svg2stub.py
|
$(TARGET_DIR)/$(NAME).lv2/resources/%.svg: ../Rack/res/%.svg ../../deps/svg2stub.py
|
||||||
-@mkdir -p "$(shell dirname $@)"
|
-@mkdir -p "$(shell dirname $@)"
|
||||||
$(SILENT)python3 ../../deps/svg2stub.py $< $@
|
$(SILENT)python3 ../../deps/svg2stub.py $< $@
|
||||||
|
|
||||||
|
$(TARGET_DIR)/$(NAME).lv2/mod%: ../MOD/$(NAME).lv2/mod%
|
||||||
|
-@mkdir -p "$(shell dirname $@)"
|
||||||
|
$(SILENT)ln -sf $(abspath $<) $@
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(TARGET_DIR)/$(NAME).vst/resources/%: ../Rack/res/%
|
$(TARGET_DIR)/$(NAME).vst/resources/%: ../Rack/res/%
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue