BogaudioModules

BogaudioModules for VCV Rack
Log | Files | Refs | README | LICENSE

commit 0b877235a79c4b0eeaf249cceffbfa118cee7a62
parent bb10c50f69f47df39f588778190ea7d765f5f574
Author: Matt Demanett <matt@demanett.net>
Date:   Sat, 11 Apr 2020 00:04:06 -0400

SWITCH*: add option to have switch click toggle between on and off, rather than through inverted; fix switch right-click to not toggle. #108

Diffstat:
Msrc/Switch1616.cpp | 514++++++++++++++++++++++++++++++++++++++++----------------------------------------
Msrc/Switch1616.hpp | 4++--
Msrc/Switch44.cpp | 34+++++++++++++++++-----------------
Msrc/Switch44.hpp | 4++--
Msrc/Switch88.cpp | 130++++++++++++++++++++++++++++++++++++++++----------------------------------------
Msrc/Switch88.hpp | 4++--
Msrc/matrix_base.cpp | 17+++++++++++++++++
Msrc/matrix_base.hpp | 33+++++++++++++++++++++++++++++++++
Msrc/widgets.cpp | 7+++++--
Msrc/widgets.hpp | 2++
10 files changed, 402 insertions(+), 347 deletions(-)

diff --git a/src/Switch1616.cpp b/src/Switch1616.cpp @@ -1,7 +1,7 @@ #include "Switch1616.hpp" -struct Switch1616Widget : MatrixBaseModuleWidget { +struct Switch1616Widget : SwitchMatrixModuleWidget { static constexpr int hp = 22; Switch1616Widget(Switch1616* module) { @@ -313,262 +313,262 @@ struct Switch1616Widget : MatrixBaseModuleWidget { auto out16OutputPosition = Vec(296.5, 306.0); // end generated by svg_widgets.rb - addParam(createParam<InvertingIndicatorButton9>(mix11ParamPosition, module, Switch1616::MIX_1_1_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix12ParamPosition, module, Switch1616::MIX_1_2_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix13ParamPosition, module, Switch1616::MIX_1_3_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix14ParamPosition, module, Switch1616::MIX_1_4_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix15ParamPosition, module, Switch1616::MIX_1_5_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix16ParamPosition, module, Switch1616::MIX_1_6_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix17ParamPosition, module, Switch1616::MIX_1_7_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix18ParamPosition, module, Switch1616::MIX_1_8_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix19ParamPosition, module, Switch1616::MIX_1_9_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix110ParamPosition, module, Switch1616::MIX_1_10_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1_11ParamPosition, module, Switch1616::MIX_1_11_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1_12ParamPosition, module, Switch1616::MIX_1_12_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1_13ParamPosition, module, Switch1616::MIX_1_13_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1_14ParamPosition, module, Switch1616::MIX_1_14_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1_15ParamPosition, module, Switch1616::MIX_1_15_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1_16ParamPosition, module, Switch1616::MIX_1_16_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix21ParamPosition, module, Switch1616::MIX_2_1_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix22ParamPosition, module, Switch1616::MIX_2_2_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix23ParamPosition, module, Switch1616::MIX_2_3_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix24ParamPosition, module, Switch1616::MIX_2_4_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix25ParamPosition, module, Switch1616::MIX_2_5_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix26ParamPosition, module, Switch1616::MIX_2_6_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix27ParamPosition, module, Switch1616::MIX_2_7_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix28ParamPosition, module, Switch1616::MIX_2_8_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix29ParamPosition, module, Switch1616::MIX_2_9_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix210ParamPosition, module, Switch1616::MIX_2_10_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix211ParamPosition, module, Switch1616::MIX_2_11_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix212ParamPosition, module, Switch1616::MIX_2_12_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix213ParamPosition, module, Switch1616::MIX_2_13_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix214ParamPosition, module, Switch1616::MIX_2_14_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix215ParamPosition, module, Switch1616::MIX_2_15_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix216ParamPosition, module, Switch1616::MIX_2_16_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix31ParamPosition, module, Switch1616::MIX_3_1_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix32ParamPosition, module, Switch1616::MIX_3_2_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix33ParamPosition, module, Switch1616::MIX_3_3_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix34ParamPosition, module, Switch1616::MIX_3_4_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix35ParamPosition, module, Switch1616::MIX_3_5_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix36ParamPosition, module, Switch1616::MIX_3_6_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix37ParamPosition, module, Switch1616::MIX_3_7_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix38ParamPosition, module, Switch1616::MIX_3_8_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix39ParamPosition, module, Switch1616::MIX_3_9_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix310ParamPosition, module, Switch1616::MIX_3_10_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix311ParamPosition, module, Switch1616::MIX_3_11_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix312ParamPosition, module, Switch1616::MIX_3_12_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix313ParamPosition, module, Switch1616::MIX_3_13_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix314ParamPosition, module, Switch1616::MIX_3_14_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix315ParamPosition, module, Switch1616::MIX_3_15_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix316ParamPosition, module, Switch1616::MIX_3_16_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix41ParamPosition, module, Switch1616::MIX_4_1_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix42ParamPosition, module, Switch1616::MIX_4_2_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix43ParamPosition, module, Switch1616::MIX_4_3_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix44ParamPosition, module, Switch1616::MIX_4_4_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix45ParamPosition, module, Switch1616::MIX_4_5_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix46ParamPosition, module, Switch1616::MIX_4_6_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix47ParamPosition, module, Switch1616::MIX_4_7_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix48ParamPosition, module, Switch1616::MIX_4_8_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix49ParamPosition, module, Switch1616::MIX_4_9_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix410ParamPosition, module, Switch1616::MIX_4_10_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix411ParamPosition, module, Switch1616::MIX_4_11_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix412ParamPosition, module, Switch1616::MIX_4_12_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix413ParamPosition, module, Switch1616::MIX_4_13_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix414ParamPosition, module, Switch1616::MIX_4_14_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix415ParamPosition, module, Switch1616::MIX_4_15_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix416ParamPosition, module, Switch1616::MIX_4_16_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix51ParamPosition, module, Switch1616::MIX_5_1_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix52ParamPosition, module, Switch1616::MIX_5_2_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix53ParamPosition, module, Switch1616::MIX_5_3_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix54ParamPosition, module, Switch1616::MIX_5_4_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix55ParamPosition, module, Switch1616::MIX_5_5_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix56ParamPosition, module, Switch1616::MIX_5_6_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix57ParamPosition, module, Switch1616::MIX_5_7_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix58ParamPosition, module, Switch1616::MIX_5_8_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix59ParamPosition, module, Switch1616::MIX_5_9_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix510ParamPosition, module, Switch1616::MIX_5_10_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix511ParamPosition, module, Switch1616::MIX_5_11_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix512ParamPosition, module, Switch1616::MIX_5_12_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix513ParamPosition, module, Switch1616::MIX_5_13_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix514ParamPosition, module, Switch1616::MIX_5_14_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix515ParamPosition, module, Switch1616::MIX_5_15_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix516ParamPosition, module, Switch1616::MIX_5_16_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix61ParamPosition, module, Switch1616::MIX_6_1_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix62ParamPosition, module, Switch1616::MIX_6_2_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix63ParamPosition, module, Switch1616::MIX_6_3_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix64ParamPosition, module, Switch1616::MIX_6_4_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix65ParamPosition, module, Switch1616::MIX_6_5_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix66ParamPosition, module, Switch1616::MIX_6_6_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix67ParamPosition, module, Switch1616::MIX_6_7_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix68ParamPosition, module, Switch1616::MIX_6_8_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix69ParamPosition, module, Switch1616::MIX_6_9_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix610ParamPosition, module, Switch1616::MIX_6_10_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix611ParamPosition, module, Switch1616::MIX_6_11_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix612ParamPosition, module, Switch1616::MIX_6_12_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix613ParamPosition, module, Switch1616::MIX_6_13_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix614ParamPosition, module, Switch1616::MIX_6_14_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix615ParamPosition, module, Switch1616::MIX_6_15_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix616ParamPosition, module, Switch1616::MIX_6_16_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix71ParamPosition, module, Switch1616::MIX_7_1_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix72ParamPosition, module, Switch1616::MIX_7_2_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix73ParamPosition, module, Switch1616::MIX_7_3_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix74ParamPosition, module, Switch1616::MIX_7_4_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix75ParamPosition, module, Switch1616::MIX_7_5_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix76ParamPosition, module, Switch1616::MIX_7_6_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix77ParamPosition, module, Switch1616::MIX_7_7_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix78ParamPosition, module, Switch1616::MIX_7_8_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix79ParamPosition, module, Switch1616::MIX_7_9_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix710ParamPosition, module, Switch1616::MIX_7_10_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix711ParamPosition, module, Switch1616::MIX_7_11_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix712ParamPosition, module, Switch1616::MIX_7_12_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix713ParamPosition, module, Switch1616::MIX_7_13_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix714ParamPosition, module, Switch1616::MIX_7_14_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix715ParamPosition, module, Switch1616::MIX_7_15_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix716ParamPosition, module, Switch1616::MIX_7_16_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix81ParamPosition, module, Switch1616::MIX_8_1_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix82ParamPosition, module, Switch1616::MIX_8_2_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix83ParamPosition, module, Switch1616::MIX_8_3_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix84ParamPosition, module, Switch1616::MIX_8_4_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix85ParamPosition, module, Switch1616::MIX_8_5_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix86ParamPosition, module, Switch1616::MIX_8_6_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix87ParamPosition, module, Switch1616::MIX_8_7_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix88ParamPosition, module, Switch1616::MIX_8_8_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix89ParamPosition, module, Switch1616::MIX_8_9_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix810ParamPosition, module, Switch1616::MIX_8_10_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix811ParamPosition, module, Switch1616::MIX_8_11_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix812ParamPosition, module, Switch1616::MIX_8_12_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix813ParamPosition, module, Switch1616::MIX_8_13_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix814ParamPosition, module, Switch1616::MIX_8_14_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix815ParamPosition, module, Switch1616::MIX_8_15_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix816ParamPosition, module, Switch1616::MIX_8_16_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix91ParamPosition, module, Switch1616::MIX_9_1_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix92ParamPosition, module, Switch1616::MIX_9_2_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix93ParamPosition, module, Switch1616::MIX_9_3_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix94ParamPosition, module, Switch1616::MIX_9_4_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix95ParamPosition, module, Switch1616::MIX_9_5_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix96ParamPosition, module, Switch1616::MIX_9_6_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix97ParamPosition, module, Switch1616::MIX_9_7_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix98ParamPosition, module, Switch1616::MIX_9_8_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix99ParamPosition, module, Switch1616::MIX_9_9_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix910ParamPosition, module, Switch1616::MIX_9_10_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix911ParamPosition, module, Switch1616::MIX_9_11_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix912ParamPosition, module, Switch1616::MIX_9_12_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix913ParamPosition, module, Switch1616::MIX_9_13_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix914ParamPosition, module, Switch1616::MIX_9_14_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix915ParamPosition, module, Switch1616::MIX_9_15_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix916ParamPosition, module, Switch1616::MIX_9_16_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix101ParamPosition, module, Switch1616::MIX_10_1_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix102ParamPosition, module, Switch1616::MIX_10_2_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix103ParamPosition, module, Switch1616::MIX_10_3_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix104ParamPosition, module, Switch1616::MIX_10_4_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix105ParamPosition, module, Switch1616::MIX_10_5_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix106ParamPosition, module, Switch1616::MIX_10_6_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix107ParamPosition, module, Switch1616::MIX_10_7_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix108ParamPosition, module, Switch1616::MIX_10_8_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix109ParamPosition, module, Switch1616::MIX_10_9_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1010ParamPosition, module, Switch1616::MIX_10_10_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1011ParamPosition, module, Switch1616::MIX_10_11_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1012ParamPosition, module, Switch1616::MIX_10_12_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1013ParamPosition, module, Switch1616::MIX_10_13_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1014ParamPosition, module, Switch1616::MIX_10_14_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1015ParamPosition, module, Switch1616::MIX_10_15_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1016ParamPosition, module, Switch1616::MIX_10_16_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix111ParamPosition, module, Switch1616::MIX_11_1_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix112ParamPosition, module, Switch1616::MIX_11_2_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix113ParamPosition, module, Switch1616::MIX_11_3_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix114ParamPosition, module, Switch1616::MIX_11_4_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix115ParamPosition, module, Switch1616::MIX_11_5_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix116ParamPosition, module, Switch1616::MIX_11_6_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix117ParamPosition, module, Switch1616::MIX_11_7_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix118ParamPosition, module, Switch1616::MIX_11_8_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix119ParamPosition, module, Switch1616::MIX_11_9_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1110ParamPosition, module, Switch1616::MIX_11_10_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1111ParamPosition, module, Switch1616::MIX_11_11_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1112ParamPosition, module, Switch1616::MIX_11_12_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1113ParamPosition, module, Switch1616::MIX_11_13_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1114ParamPosition, module, Switch1616::MIX_11_14_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1115ParamPosition, module, Switch1616::MIX_11_15_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1116ParamPosition, module, Switch1616::MIX_11_16_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix121ParamPosition, module, Switch1616::MIX_12_1_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix122ParamPosition, module, Switch1616::MIX_12_2_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix123ParamPosition, module, Switch1616::MIX_12_3_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix124ParamPosition, module, Switch1616::MIX_12_4_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix125ParamPosition, module, Switch1616::MIX_12_5_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix126ParamPosition, module, Switch1616::MIX_12_6_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix127ParamPosition, module, Switch1616::MIX_12_7_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix128ParamPosition, module, Switch1616::MIX_12_8_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix129ParamPosition, module, Switch1616::MIX_12_9_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1210ParamPosition, module, Switch1616::MIX_12_10_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1211ParamPosition, module, Switch1616::MIX_12_11_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1212ParamPosition, module, Switch1616::MIX_12_12_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1213ParamPosition, module, Switch1616::MIX_12_13_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1214ParamPosition, module, Switch1616::MIX_12_14_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1215ParamPosition, module, Switch1616::MIX_12_15_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1216ParamPosition, module, Switch1616::MIX_12_16_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix131ParamPosition, module, Switch1616::MIX_13_1_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix132ParamPosition, module, Switch1616::MIX_13_2_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix133ParamPosition, module, Switch1616::MIX_13_3_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix134ParamPosition, module, Switch1616::MIX_13_4_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix135ParamPosition, module, Switch1616::MIX_13_5_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix136ParamPosition, module, Switch1616::MIX_13_6_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix137ParamPosition, module, Switch1616::MIX_13_7_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix138ParamPosition, module, Switch1616::MIX_13_8_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix139ParamPosition, module, Switch1616::MIX_13_9_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1310ParamPosition, module, Switch1616::MIX_13_10_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1311ParamPosition, module, Switch1616::MIX_13_11_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1312ParamPosition, module, Switch1616::MIX_13_12_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1313ParamPosition, module, Switch1616::MIX_13_13_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1314ParamPosition, module, Switch1616::MIX_13_14_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1315ParamPosition, module, Switch1616::MIX_13_15_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1316ParamPosition, module, Switch1616::MIX_13_16_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix141ParamPosition, module, Switch1616::MIX_14_1_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix142ParamPosition, module, Switch1616::MIX_14_2_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix143ParamPosition, module, Switch1616::MIX_14_3_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix144ParamPosition, module, Switch1616::MIX_14_4_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix145ParamPosition, module, Switch1616::MIX_14_5_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix146ParamPosition, module, Switch1616::MIX_14_6_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix147ParamPosition, module, Switch1616::MIX_14_7_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix148ParamPosition, module, Switch1616::MIX_14_8_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix149ParamPosition, module, Switch1616::MIX_14_9_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1410ParamPosition, module, Switch1616::MIX_14_10_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1411ParamPosition, module, Switch1616::MIX_14_11_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1412ParamPosition, module, Switch1616::MIX_14_12_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1413ParamPosition, module, Switch1616::MIX_14_13_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1414ParamPosition, module, Switch1616::MIX_14_14_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1415ParamPosition, module, Switch1616::MIX_14_15_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1416ParamPosition, module, Switch1616::MIX_14_16_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix151ParamPosition, module, Switch1616::MIX_15_1_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix152ParamPosition, module, Switch1616::MIX_15_2_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix153ParamPosition, module, Switch1616::MIX_15_3_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix154ParamPosition, module, Switch1616::MIX_15_4_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix155ParamPosition, module, Switch1616::MIX_15_5_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix156ParamPosition, module, Switch1616::MIX_15_6_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix157ParamPosition, module, Switch1616::MIX_15_7_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix158ParamPosition, module, Switch1616::MIX_15_8_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix159ParamPosition, module, Switch1616::MIX_15_9_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1510ParamPosition, module, Switch1616::MIX_15_10_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1511ParamPosition, module, Switch1616::MIX_15_11_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1512ParamPosition, module, Switch1616::MIX_15_12_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1513ParamPosition, module, Switch1616::MIX_15_13_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1514ParamPosition, module, Switch1616::MIX_15_14_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1515ParamPosition, module, Switch1616::MIX_15_15_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1516ParamPosition, module, Switch1616::MIX_15_16_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix161ParamPosition, module, Switch1616::MIX_16_1_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix162ParamPosition, module, Switch1616::MIX_16_2_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix163ParamPosition, module, Switch1616::MIX_16_3_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix164ParamPosition, module, Switch1616::MIX_16_4_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix165ParamPosition, module, Switch1616::MIX_16_5_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix166ParamPosition, module, Switch1616::MIX_16_6_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix167ParamPosition, module, Switch1616::MIX_16_7_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix168ParamPosition, module, Switch1616::MIX_16_8_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix169ParamPosition, module, Switch1616::MIX_16_9_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1610ParamPosition, module, Switch1616::MIX_16_10_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1611ParamPosition, module, Switch1616::MIX_16_11_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1612ParamPosition, module, Switch1616::MIX_16_12_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1613ParamPosition, module, Switch1616::MIX_16_13_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1614ParamPosition, module, Switch1616::MIX_16_14_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1615ParamPosition, module, Switch1616::MIX_16_15_PARAM)); - addParam(createParam<InvertingIndicatorButton9>(mix1616ParamPosition, module, Switch1616::MIX_16_16_PARAM)); + createSwitch<InvertingIndicatorButton9>(mix11ParamPosition, module, Switch1616::MIX_1_1_PARAM); + createSwitch<InvertingIndicatorButton9>(mix12ParamPosition, module, Switch1616::MIX_1_2_PARAM); + createSwitch<InvertingIndicatorButton9>(mix13ParamPosition, module, Switch1616::MIX_1_3_PARAM); + createSwitch<InvertingIndicatorButton9>(mix14ParamPosition, module, Switch1616::MIX_1_4_PARAM); + createSwitch<InvertingIndicatorButton9>(mix15ParamPosition, module, Switch1616::MIX_1_5_PARAM); + createSwitch<InvertingIndicatorButton9>(mix16ParamPosition, module, Switch1616::MIX_1_6_PARAM); + createSwitch<InvertingIndicatorButton9>(mix17ParamPosition, module, Switch1616::MIX_1_7_PARAM); + createSwitch<InvertingIndicatorButton9>(mix18ParamPosition, module, Switch1616::MIX_1_8_PARAM); + createSwitch<InvertingIndicatorButton9>(mix19ParamPosition, module, Switch1616::MIX_1_9_PARAM); + createSwitch<InvertingIndicatorButton9>(mix110ParamPosition, module, Switch1616::MIX_1_10_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1_11ParamPosition, module, Switch1616::MIX_1_11_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1_12ParamPosition, module, Switch1616::MIX_1_12_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1_13ParamPosition, module, Switch1616::MIX_1_13_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1_14ParamPosition, module, Switch1616::MIX_1_14_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1_15ParamPosition, module, Switch1616::MIX_1_15_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1_16ParamPosition, module, Switch1616::MIX_1_16_PARAM); + createSwitch<InvertingIndicatorButton9>(mix21ParamPosition, module, Switch1616::MIX_2_1_PARAM); + createSwitch<InvertingIndicatorButton9>(mix22ParamPosition, module, Switch1616::MIX_2_2_PARAM); + createSwitch<InvertingIndicatorButton9>(mix23ParamPosition, module, Switch1616::MIX_2_3_PARAM); + createSwitch<InvertingIndicatorButton9>(mix24ParamPosition, module, Switch1616::MIX_2_4_PARAM); + createSwitch<InvertingIndicatorButton9>(mix25ParamPosition, module, Switch1616::MIX_2_5_PARAM); + createSwitch<InvertingIndicatorButton9>(mix26ParamPosition, module, Switch1616::MIX_2_6_PARAM); + createSwitch<InvertingIndicatorButton9>(mix27ParamPosition, module, Switch1616::MIX_2_7_PARAM); + createSwitch<InvertingIndicatorButton9>(mix28ParamPosition, module, Switch1616::MIX_2_8_PARAM); + createSwitch<InvertingIndicatorButton9>(mix29ParamPosition, module, Switch1616::MIX_2_9_PARAM); + createSwitch<InvertingIndicatorButton9>(mix210ParamPosition, module, Switch1616::MIX_2_10_PARAM); + createSwitch<InvertingIndicatorButton9>(mix211ParamPosition, module, Switch1616::MIX_2_11_PARAM); + createSwitch<InvertingIndicatorButton9>(mix212ParamPosition, module, Switch1616::MIX_2_12_PARAM); + createSwitch<InvertingIndicatorButton9>(mix213ParamPosition, module, Switch1616::MIX_2_13_PARAM); + createSwitch<InvertingIndicatorButton9>(mix214ParamPosition, module, Switch1616::MIX_2_14_PARAM); + createSwitch<InvertingIndicatorButton9>(mix215ParamPosition, module, Switch1616::MIX_2_15_PARAM); + createSwitch<InvertingIndicatorButton9>(mix216ParamPosition, module, Switch1616::MIX_2_16_PARAM); + createSwitch<InvertingIndicatorButton9>(mix31ParamPosition, module, Switch1616::MIX_3_1_PARAM); + createSwitch<InvertingIndicatorButton9>(mix32ParamPosition, module, Switch1616::MIX_3_2_PARAM); + createSwitch<InvertingIndicatorButton9>(mix33ParamPosition, module, Switch1616::MIX_3_3_PARAM); + createSwitch<InvertingIndicatorButton9>(mix34ParamPosition, module, Switch1616::MIX_3_4_PARAM); + createSwitch<InvertingIndicatorButton9>(mix35ParamPosition, module, Switch1616::MIX_3_5_PARAM); + createSwitch<InvertingIndicatorButton9>(mix36ParamPosition, module, Switch1616::MIX_3_6_PARAM); + createSwitch<InvertingIndicatorButton9>(mix37ParamPosition, module, Switch1616::MIX_3_7_PARAM); + createSwitch<InvertingIndicatorButton9>(mix38ParamPosition, module, Switch1616::MIX_3_8_PARAM); + createSwitch<InvertingIndicatorButton9>(mix39ParamPosition, module, Switch1616::MIX_3_9_PARAM); + createSwitch<InvertingIndicatorButton9>(mix310ParamPosition, module, Switch1616::MIX_3_10_PARAM); + createSwitch<InvertingIndicatorButton9>(mix311ParamPosition, module, Switch1616::MIX_3_11_PARAM); + createSwitch<InvertingIndicatorButton9>(mix312ParamPosition, module, Switch1616::MIX_3_12_PARAM); + createSwitch<InvertingIndicatorButton9>(mix313ParamPosition, module, Switch1616::MIX_3_13_PARAM); + createSwitch<InvertingIndicatorButton9>(mix314ParamPosition, module, Switch1616::MIX_3_14_PARAM); + createSwitch<InvertingIndicatorButton9>(mix315ParamPosition, module, Switch1616::MIX_3_15_PARAM); + createSwitch<InvertingIndicatorButton9>(mix316ParamPosition, module, Switch1616::MIX_3_16_PARAM); + createSwitch<InvertingIndicatorButton9>(mix41ParamPosition, module, Switch1616::MIX_4_1_PARAM); + createSwitch<InvertingIndicatorButton9>(mix42ParamPosition, module, Switch1616::MIX_4_2_PARAM); + createSwitch<InvertingIndicatorButton9>(mix43ParamPosition, module, Switch1616::MIX_4_3_PARAM); + createSwitch<InvertingIndicatorButton9>(mix44ParamPosition, module, Switch1616::MIX_4_4_PARAM); + createSwitch<InvertingIndicatorButton9>(mix45ParamPosition, module, Switch1616::MIX_4_5_PARAM); + createSwitch<InvertingIndicatorButton9>(mix46ParamPosition, module, Switch1616::MIX_4_6_PARAM); + createSwitch<InvertingIndicatorButton9>(mix47ParamPosition, module, Switch1616::MIX_4_7_PARAM); + createSwitch<InvertingIndicatorButton9>(mix48ParamPosition, module, Switch1616::MIX_4_8_PARAM); + createSwitch<InvertingIndicatorButton9>(mix49ParamPosition, module, Switch1616::MIX_4_9_PARAM); + createSwitch<InvertingIndicatorButton9>(mix410ParamPosition, module, Switch1616::MIX_4_10_PARAM); + createSwitch<InvertingIndicatorButton9>(mix411ParamPosition, module, Switch1616::MIX_4_11_PARAM); + createSwitch<InvertingIndicatorButton9>(mix412ParamPosition, module, Switch1616::MIX_4_12_PARAM); + createSwitch<InvertingIndicatorButton9>(mix413ParamPosition, module, Switch1616::MIX_4_13_PARAM); + createSwitch<InvertingIndicatorButton9>(mix414ParamPosition, module, Switch1616::MIX_4_14_PARAM); + createSwitch<InvertingIndicatorButton9>(mix415ParamPosition, module, Switch1616::MIX_4_15_PARAM); + createSwitch<InvertingIndicatorButton9>(mix416ParamPosition, module, Switch1616::MIX_4_16_PARAM); + createSwitch<InvertingIndicatorButton9>(mix51ParamPosition, module, Switch1616::MIX_5_1_PARAM); + createSwitch<InvertingIndicatorButton9>(mix52ParamPosition, module, Switch1616::MIX_5_2_PARAM); + createSwitch<InvertingIndicatorButton9>(mix53ParamPosition, module, Switch1616::MIX_5_3_PARAM); + createSwitch<InvertingIndicatorButton9>(mix54ParamPosition, module, Switch1616::MIX_5_4_PARAM); + createSwitch<InvertingIndicatorButton9>(mix55ParamPosition, module, Switch1616::MIX_5_5_PARAM); + createSwitch<InvertingIndicatorButton9>(mix56ParamPosition, module, Switch1616::MIX_5_6_PARAM); + createSwitch<InvertingIndicatorButton9>(mix57ParamPosition, module, Switch1616::MIX_5_7_PARAM); + createSwitch<InvertingIndicatorButton9>(mix58ParamPosition, module, Switch1616::MIX_5_8_PARAM); + createSwitch<InvertingIndicatorButton9>(mix59ParamPosition, module, Switch1616::MIX_5_9_PARAM); + createSwitch<InvertingIndicatorButton9>(mix510ParamPosition, module, Switch1616::MIX_5_10_PARAM); + createSwitch<InvertingIndicatorButton9>(mix511ParamPosition, module, Switch1616::MIX_5_11_PARAM); + createSwitch<InvertingIndicatorButton9>(mix512ParamPosition, module, Switch1616::MIX_5_12_PARAM); + createSwitch<InvertingIndicatorButton9>(mix513ParamPosition, module, Switch1616::MIX_5_13_PARAM); + createSwitch<InvertingIndicatorButton9>(mix514ParamPosition, module, Switch1616::MIX_5_14_PARAM); + createSwitch<InvertingIndicatorButton9>(mix515ParamPosition, module, Switch1616::MIX_5_15_PARAM); + createSwitch<InvertingIndicatorButton9>(mix516ParamPosition, module, Switch1616::MIX_5_16_PARAM); + createSwitch<InvertingIndicatorButton9>(mix61ParamPosition, module, Switch1616::MIX_6_1_PARAM); + createSwitch<InvertingIndicatorButton9>(mix62ParamPosition, module, Switch1616::MIX_6_2_PARAM); + createSwitch<InvertingIndicatorButton9>(mix63ParamPosition, module, Switch1616::MIX_6_3_PARAM); + createSwitch<InvertingIndicatorButton9>(mix64ParamPosition, module, Switch1616::MIX_6_4_PARAM); + createSwitch<InvertingIndicatorButton9>(mix65ParamPosition, module, Switch1616::MIX_6_5_PARAM); + createSwitch<InvertingIndicatorButton9>(mix66ParamPosition, module, Switch1616::MIX_6_6_PARAM); + createSwitch<InvertingIndicatorButton9>(mix67ParamPosition, module, Switch1616::MIX_6_7_PARAM); + createSwitch<InvertingIndicatorButton9>(mix68ParamPosition, module, Switch1616::MIX_6_8_PARAM); + createSwitch<InvertingIndicatorButton9>(mix69ParamPosition, module, Switch1616::MIX_6_9_PARAM); + createSwitch<InvertingIndicatorButton9>(mix610ParamPosition, module, Switch1616::MIX_6_10_PARAM); + createSwitch<InvertingIndicatorButton9>(mix611ParamPosition, module, Switch1616::MIX_6_11_PARAM); + createSwitch<InvertingIndicatorButton9>(mix612ParamPosition, module, Switch1616::MIX_6_12_PARAM); + createSwitch<InvertingIndicatorButton9>(mix613ParamPosition, module, Switch1616::MIX_6_13_PARAM); + createSwitch<InvertingIndicatorButton9>(mix614ParamPosition, module, Switch1616::MIX_6_14_PARAM); + createSwitch<InvertingIndicatorButton9>(mix615ParamPosition, module, Switch1616::MIX_6_15_PARAM); + createSwitch<InvertingIndicatorButton9>(mix616ParamPosition, module, Switch1616::MIX_6_16_PARAM); + createSwitch<InvertingIndicatorButton9>(mix71ParamPosition, module, Switch1616::MIX_7_1_PARAM); + createSwitch<InvertingIndicatorButton9>(mix72ParamPosition, module, Switch1616::MIX_7_2_PARAM); + createSwitch<InvertingIndicatorButton9>(mix73ParamPosition, module, Switch1616::MIX_7_3_PARAM); + createSwitch<InvertingIndicatorButton9>(mix74ParamPosition, module, Switch1616::MIX_7_4_PARAM); + createSwitch<InvertingIndicatorButton9>(mix75ParamPosition, module, Switch1616::MIX_7_5_PARAM); + createSwitch<InvertingIndicatorButton9>(mix76ParamPosition, module, Switch1616::MIX_7_6_PARAM); + createSwitch<InvertingIndicatorButton9>(mix77ParamPosition, module, Switch1616::MIX_7_7_PARAM); + createSwitch<InvertingIndicatorButton9>(mix78ParamPosition, module, Switch1616::MIX_7_8_PARAM); + createSwitch<InvertingIndicatorButton9>(mix79ParamPosition, module, Switch1616::MIX_7_9_PARAM); + createSwitch<InvertingIndicatorButton9>(mix710ParamPosition, module, Switch1616::MIX_7_10_PARAM); + createSwitch<InvertingIndicatorButton9>(mix711ParamPosition, module, Switch1616::MIX_7_11_PARAM); + createSwitch<InvertingIndicatorButton9>(mix712ParamPosition, module, Switch1616::MIX_7_12_PARAM); + createSwitch<InvertingIndicatorButton9>(mix713ParamPosition, module, Switch1616::MIX_7_13_PARAM); + createSwitch<InvertingIndicatorButton9>(mix714ParamPosition, module, Switch1616::MIX_7_14_PARAM); + createSwitch<InvertingIndicatorButton9>(mix715ParamPosition, module, Switch1616::MIX_7_15_PARAM); + createSwitch<InvertingIndicatorButton9>(mix716ParamPosition, module, Switch1616::MIX_7_16_PARAM); + createSwitch<InvertingIndicatorButton9>(mix81ParamPosition, module, Switch1616::MIX_8_1_PARAM); + createSwitch<InvertingIndicatorButton9>(mix82ParamPosition, module, Switch1616::MIX_8_2_PARAM); + createSwitch<InvertingIndicatorButton9>(mix83ParamPosition, module, Switch1616::MIX_8_3_PARAM); + createSwitch<InvertingIndicatorButton9>(mix84ParamPosition, module, Switch1616::MIX_8_4_PARAM); + createSwitch<InvertingIndicatorButton9>(mix85ParamPosition, module, Switch1616::MIX_8_5_PARAM); + createSwitch<InvertingIndicatorButton9>(mix86ParamPosition, module, Switch1616::MIX_8_6_PARAM); + createSwitch<InvertingIndicatorButton9>(mix87ParamPosition, module, Switch1616::MIX_8_7_PARAM); + createSwitch<InvertingIndicatorButton9>(mix88ParamPosition, module, Switch1616::MIX_8_8_PARAM); + createSwitch<InvertingIndicatorButton9>(mix89ParamPosition, module, Switch1616::MIX_8_9_PARAM); + createSwitch<InvertingIndicatorButton9>(mix810ParamPosition, module, Switch1616::MIX_8_10_PARAM); + createSwitch<InvertingIndicatorButton9>(mix811ParamPosition, module, Switch1616::MIX_8_11_PARAM); + createSwitch<InvertingIndicatorButton9>(mix812ParamPosition, module, Switch1616::MIX_8_12_PARAM); + createSwitch<InvertingIndicatorButton9>(mix813ParamPosition, module, Switch1616::MIX_8_13_PARAM); + createSwitch<InvertingIndicatorButton9>(mix814ParamPosition, module, Switch1616::MIX_8_14_PARAM); + createSwitch<InvertingIndicatorButton9>(mix815ParamPosition, module, Switch1616::MIX_8_15_PARAM); + createSwitch<InvertingIndicatorButton9>(mix816ParamPosition, module, Switch1616::MIX_8_16_PARAM); + createSwitch<InvertingIndicatorButton9>(mix91ParamPosition, module, Switch1616::MIX_9_1_PARAM); + createSwitch<InvertingIndicatorButton9>(mix92ParamPosition, module, Switch1616::MIX_9_2_PARAM); + createSwitch<InvertingIndicatorButton9>(mix93ParamPosition, module, Switch1616::MIX_9_3_PARAM); + createSwitch<InvertingIndicatorButton9>(mix94ParamPosition, module, Switch1616::MIX_9_4_PARAM); + createSwitch<InvertingIndicatorButton9>(mix95ParamPosition, module, Switch1616::MIX_9_5_PARAM); + createSwitch<InvertingIndicatorButton9>(mix96ParamPosition, module, Switch1616::MIX_9_6_PARAM); + createSwitch<InvertingIndicatorButton9>(mix97ParamPosition, module, Switch1616::MIX_9_7_PARAM); + createSwitch<InvertingIndicatorButton9>(mix98ParamPosition, module, Switch1616::MIX_9_8_PARAM); + createSwitch<InvertingIndicatorButton9>(mix99ParamPosition, module, Switch1616::MIX_9_9_PARAM); + createSwitch<InvertingIndicatorButton9>(mix910ParamPosition, module, Switch1616::MIX_9_10_PARAM); + createSwitch<InvertingIndicatorButton9>(mix911ParamPosition, module, Switch1616::MIX_9_11_PARAM); + createSwitch<InvertingIndicatorButton9>(mix912ParamPosition, module, Switch1616::MIX_9_12_PARAM); + createSwitch<InvertingIndicatorButton9>(mix913ParamPosition, module, Switch1616::MIX_9_13_PARAM); + createSwitch<InvertingIndicatorButton9>(mix914ParamPosition, module, Switch1616::MIX_9_14_PARAM); + createSwitch<InvertingIndicatorButton9>(mix915ParamPosition, module, Switch1616::MIX_9_15_PARAM); + createSwitch<InvertingIndicatorButton9>(mix916ParamPosition, module, Switch1616::MIX_9_16_PARAM); + createSwitch<InvertingIndicatorButton9>(mix101ParamPosition, module, Switch1616::MIX_10_1_PARAM); + createSwitch<InvertingIndicatorButton9>(mix102ParamPosition, module, Switch1616::MIX_10_2_PARAM); + createSwitch<InvertingIndicatorButton9>(mix103ParamPosition, module, Switch1616::MIX_10_3_PARAM); + createSwitch<InvertingIndicatorButton9>(mix104ParamPosition, module, Switch1616::MIX_10_4_PARAM); + createSwitch<InvertingIndicatorButton9>(mix105ParamPosition, module, Switch1616::MIX_10_5_PARAM); + createSwitch<InvertingIndicatorButton9>(mix106ParamPosition, module, Switch1616::MIX_10_6_PARAM); + createSwitch<InvertingIndicatorButton9>(mix107ParamPosition, module, Switch1616::MIX_10_7_PARAM); + createSwitch<InvertingIndicatorButton9>(mix108ParamPosition, module, Switch1616::MIX_10_8_PARAM); + createSwitch<InvertingIndicatorButton9>(mix109ParamPosition, module, Switch1616::MIX_10_9_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1010ParamPosition, module, Switch1616::MIX_10_10_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1011ParamPosition, module, Switch1616::MIX_10_11_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1012ParamPosition, module, Switch1616::MIX_10_12_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1013ParamPosition, module, Switch1616::MIX_10_13_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1014ParamPosition, module, Switch1616::MIX_10_14_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1015ParamPosition, module, Switch1616::MIX_10_15_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1016ParamPosition, module, Switch1616::MIX_10_16_PARAM); + createSwitch<InvertingIndicatorButton9>(mix111ParamPosition, module, Switch1616::MIX_11_1_PARAM); + createSwitch<InvertingIndicatorButton9>(mix112ParamPosition, module, Switch1616::MIX_11_2_PARAM); + createSwitch<InvertingIndicatorButton9>(mix113ParamPosition, module, Switch1616::MIX_11_3_PARAM); + createSwitch<InvertingIndicatorButton9>(mix114ParamPosition, module, Switch1616::MIX_11_4_PARAM); + createSwitch<InvertingIndicatorButton9>(mix115ParamPosition, module, Switch1616::MIX_11_5_PARAM); + createSwitch<InvertingIndicatorButton9>(mix116ParamPosition, module, Switch1616::MIX_11_6_PARAM); + createSwitch<InvertingIndicatorButton9>(mix117ParamPosition, module, Switch1616::MIX_11_7_PARAM); + createSwitch<InvertingIndicatorButton9>(mix118ParamPosition, module, Switch1616::MIX_11_8_PARAM); + createSwitch<InvertingIndicatorButton9>(mix119ParamPosition, module, Switch1616::MIX_11_9_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1110ParamPosition, module, Switch1616::MIX_11_10_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1111ParamPosition, module, Switch1616::MIX_11_11_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1112ParamPosition, module, Switch1616::MIX_11_12_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1113ParamPosition, module, Switch1616::MIX_11_13_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1114ParamPosition, module, Switch1616::MIX_11_14_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1115ParamPosition, module, Switch1616::MIX_11_15_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1116ParamPosition, module, Switch1616::MIX_11_16_PARAM); + createSwitch<InvertingIndicatorButton9>(mix121ParamPosition, module, Switch1616::MIX_12_1_PARAM); + createSwitch<InvertingIndicatorButton9>(mix122ParamPosition, module, Switch1616::MIX_12_2_PARAM); + createSwitch<InvertingIndicatorButton9>(mix123ParamPosition, module, Switch1616::MIX_12_3_PARAM); + createSwitch<InvertingIndicatorButton9>(mix124ParamPosition, module, Switch1616::MIX_12_4_PARAM); + createSwitch<InvertingIndicatorButton9>(mix125ParamPosition, module, Switch1616::MIX_12_5_PARAM); + createSwitch<InvertingIndicatorButton9>(mix126ParamPosition, module, Switch1616::MIX_12_6_PARAM); + createSwitch<InvertingIndicatorButton9>(mix127ParamPosition, module, Switch1616::MIX_12_7_PARAM); + createSwitch<InvertingIndicatorButton9>(mix128ParamPosition, module, Switch1616::MIX_12_8_PARAM); + createSwitch<InvertingIndicatorButton9>(mix129ParamPosition, module, Switch1616::MIX_12_9_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1210ParamPosition, module, Switch1616::MIX_12_10_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1211ParamPosition, module, Switch1616::MIX_12_11_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1212ParamPosition, module, Switch1616::MIX_12_12_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1213ParamPosition, module, Switch1616::MIX_12_13_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1214ParamPosition, module, Switch1616::MIX_12_14_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1215ParamPosition, module, Switch1616::MIX_12_15_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1216ParamPosition, module, Switch1616::MIX_12_16_PARAM); + createSwitch<InvertingIndicatorButton9>(mix131ParamPosition, module, Switch1616::MIX_13_1_PARAM); + createSwitch<InvertingIndicatorButton9>(mix132ParamPosition, module, Switch1616::MIX_13_2_PARAM); + createSwitch<InvertingIndicatorButton9>(mix133ParamPosition, module, Switch1616::MIX_13_3_PARAM); + createSwitch<InvertingIndicatorButton9>(mix134ParamPosition, module, Switch1616::MIX_13_4_PARAM); + createSwitch<InvertingIndicatorButton9>(mix135ParamPosition, module, Switch1616::MIX_13_5_PARAM); + createSwitch<InvertingIndicatorButton9>(mix136ParamPosition, module, Switch1616::MIX_13_6_PARAM); + createSwitch<InvertingIndicatorButton9>(mix137ParamPosition, module, Switch1616::MIX_13_7_PARAM); + createSwitch<InvertingIndicatorButton9>(mix138ParamPosition, module, Switch1616::MIX_13_8_PARAM); + createSwitch<InvertingIndicatorButton9>(mix139ParamPosition, module, Switch1616::MIX_13_9_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1310ParamPosition, module, Switch1616::MIX_13_10_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1311ParamPosition, module, Switch1616::MIX_13_11_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1312ParamPosition, module, Switch1616::MIX_13_12_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1313ParamPosition, module, Switch1616::MIX_13_13_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1314ParamPosition, module, Switch1616::MIX_13_14_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1315ParamPosition, module, Switch1616::MIX_13_15_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1316ParamPosition, module, Switch1616::MIX_13_16_PARAM); + createSwitch<InvertingIndicatorButton9>(mix141ParamPosition, module, Switch1616::MIX_14_1_PARAM); + createSwitch<InvertingIndicatorButton9>(mix142ParamPosition, module, Switch1616::MIX_14_2_PARAM); + createSwitch<InvertingIndicatorButton9>(mix143ParamPosition, module, Switch1616::MIX_14_3_PARAM); + createSwitch<InvertingIndicatorButton9>(mix144ParamPosition, module, Switch1616::MIX_14_4_PARAM); + createSwitch<InvertingIndicatorButton9>(mix145ParamPosition, module, Switch1616::MIX_14_5_PARAM); + createSwitch<InvertingIndicatorButton9>(mix146ParamPosition, module, Switch1616::MIX_14_6_PARAM); + createSwitch<InvertingIndicatorButton9>(mix147ParamPosition, module, Switch1616::MIX_14_7_PARAM); + createSwitch<InvertingIndicatorButton9>(mix148ParamPosition, module, Switch1616::MIX_14_8_PARAM); + createSwitch<InvertingIndicatorButton9>(mix149ParamPosition, module, Switch1616::MIX_14_9_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1410ParamPosition, module, Switch1616::MIX_14_10_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1411ParamPosition, module, Switch1616::MIX_14_11_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1412ParamPosition, module, Switch1616::MIX_14_12_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1413ParamPosition, module, Switch1616::MIX_14_13_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1414ParamPosition, module, Switch1616::MIX_14_14_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1415ParamPosition, module, Switch1616::MIX_14_15_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1416ParamPosition, module, Switch1616::MIX_14_16_PARAM); + createSwitch<InvertingIndicatorButton9>(mix151ParamPosition, module, Switch1616::MIX_15_1_PARAM); + createSwitch<InvertingIndicatorButton9>(mix152ParamPosition, module, Switch1616::MIX_15_2_PARAM); + createSwitch<InvertingIndicatorButton9>(mix153ParamPosition, module, Switch1616::MIX_15_3_PARAM); + createSwitch<InvertingIndicatorButton9>(mix154ParamPosition, module, Switch1616::MIX_15_4_PARAM); + createSwitch<InvertingIndicatorButton9>(mix155ParamPosition, module, Switch1616::MIX_15_5_PARAM); + createSwitch<InvertingIndicatorButton9>(mix156ParamPosition, module, Switch1616::MIX_15_6_PARAM); + createSwitch<InvertingIndicatorButton9>(mix157ParamPosition, module, Switch1616::MIX_15_7_PARAM); + createSwitch<InvertingIndicatorButton9>(mix158ParamPosition, module, Switch1616::MIX_15_8_PARAM); + createSwitch<InvertingIndicatorButton9>(mix159ParamPosition, module, Switch1616::MIX_15_9_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1510ParamPosition, module, Switch1616::MIX_15_10_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1511ParamPosition, module, Switch1616::MIX_15_11_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1512ParamPosition, module, Switch1616::MIX_15_12_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1513ParamPosition, module, Switch1616::MIX_15_13_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1514ParamPosition, module, Switch1616::MIX_15_14_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1515ParamPosition, module, Switch1616::MIX_15_15_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1516ParamPosition, module, Switch1616::MIX_15_16_PARAM); + createSwitch<InvertingIndicatorButton9>(mix161ParamPosition, module, Switch1616::MIX_16_1_PARAM); + createSwitch<InvertingIndicatorButton9>(mix162ParamPosition, module, Switch1616::MIX_16_2_PARAM); + createSwitch<InvertingIndicatorButton9>(mix163ParamPosition, module, Switch1616::MIX_16_3_PARAM); + createSwitch<InvertingIndicatorButton9>(mix164ParamPosition, module, Switch1616::MIX_16_4_PARAM); + createSwitch<InvertingIndicatorButton9>(mix165ParamPosition, module, Switch1616::MIX_16_5_PARAM); + createSwitch<InvertingIndicatorButton9>(mix166ParamPosition, module, Switch1616::MIX_16_6_PARAM); + createSwitch<InvertingIndicatorButton9>(mix167ParamPosition, module, Switch1616::MIX_16_7_PARAM); + createSwitch<InvertingIndicatorButton9>(mix168ParamPosition, module, Switch1616::MIX_16_8_PARAM); + createSwitch<InvertingIndicatorButton9>(mix169ParamPosition, module, Switch1616::MIX_16_9_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1610ParamPosition, module, Switch1616::MIX_16_10_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1611ParamPosition, module, Switch1616::MIX_16_11_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1612ParamPosition, module, Switch1616::MIX_16_12_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1613ParamPosition, module, Switch1616::MIX_16_13_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1614ParamPosition, module, Switch1616::MIX_16_14_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1615ParamPosition, module, Switch1616::MIX_16_15_PARAM); + createSwitch<InvertingIndicatorButton9>(mix1616ParamPosition, module, Switch1616::MIX_16_16_PARAM); addInput(createInput<Port24>(in2InputPosition, module, Switch1616::IN2_INPUT)); addInput(createInput<Port24>(in4InputPosition, module, Switch1616::IN4_INPUT)); diff --git a/src/Switch1616.hpp b/src/Switch1616.hpp @@ -7,7 +7,7 @@ extern Model* modelSwitch1616; namespace bogaudio { -struct Switch1616 : MatrixModule { +struct Switch1616 : SwitchMatrixModule { enum ParamsIds { MIX_1_1_PARAM, MIX_1_2_PARAM, @@ -308,7 +308,7 @@ struct Switch1616 : MatrixModule { NUM_OUTPUTS }; - Switch1616() : MatrixModule(16, MIX_1_1_PARAM, IN1_INPUT, OUT1_OUTPUT) { + Switch1616() : SwitchMatrixModule(16, MIX_1_1_PARAM, IN1_INPUT, OUT1_OUTPUT) { config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS); configParam(MIX_1_1_PARAM, -1.0f, 1.0f, 0.0f, "Mix 1A", "%", 0.0f, 100.0f); diff --git a/src/Switch44.cpp b/src/Switch44.cpp @@ -1,7 +1,7 @@ #include "Switch44.hpp" -struct Switch44Widget : MatrixBaseModuleWidget { +struct Switch44Widget : SwitchMatrixModuleWidget { static constexpr int hp = 10; Switch44Widget(Switch44* module) { @@ -49,22 +49,22 @@ struct Switch44Widget : MatrixBaseModuleWidget { auto out4OutputPosition = Vec(111.0, 318.0); // end generated by svg_widgets.rb - addParam(createParam<InvertingIndicatorButton18>(mix11ParamPosition, module, Switch44::MIX11_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix21ParamPosition, module, Switch44::MIX21_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix31ParamPosition, module, Switch44::MIX31_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix41ParamPosition, module, Switch44::MIX41_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix12ParamPosition, module, Switch44::MIX12_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix22ParamPosition, module, Switch44::MIX22_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix32ParamPosition, module, Switch44::MIX32_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix42ParamPosition, module, Switch44::MIX42_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix13ParamPosition, module, Switch44::MIX13_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix23ParamPosition, module, Switch44::MIX23_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix33ParamPosition, module, Switch44::MIX33_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix43ParamPosition, module, Switch44::MIX43_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix14ParamPosition, module, Switch44::MIX14_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix24ParamPosition, module, Switch44::MIX24_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix34ParamPosition, module, Switch44::MIX34_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix44ParamPosition, module, Switch44::MIX44_PARAM)); + createSwitch<InvertingIndicatorButton18>(mix11ParamPosition, module, Switch44::MIX11_PARAM); + createSwitch<InvertingIndicatorButton18>(mix21ParamPosition, module, Switch44::MIX21_PARAM); + createSwitch<InvertingIndicatorButton18>(mix31ParamPosition, module, Switch44::MIX31_PARAM); + createSwitch<InvertingIndicatorButton18>(mix41ParamPosition, module, Switch44::MIX41_PARAM); + createSwitch<InvertingIndicatorButton18>(mix12ParamPosition, module, Switch44::MIX12_PARAM); + createSwitch<InvertingIndicatorButton18>(mix22ParamPosition, module, Switch44::MIX22_PARAM); + createSwitch<InvertingIndicatorButton18>(mix32ParamPosition, module, Switch44::MIX32_PARAM); + createSwitch<InvertingIndicatorButton18>(mix42ParamPosition, module, Switch44::MIX42_PARAM); + createSwitch<InvertingIndicatorButton18>(mix13ParamPosition, module, Switch44::MIX13_PARAM); + createSwitch<InvertingIndicatorButton18>(mix23ParamPosition, module, Switch44::MIX23_PARAM); + createSwitch<InvertingIndicatorButton18>(mix33ParamPosition, module, Switch44::MIX33_PARAM); + createSwitch<InvertingIndicatorButton18>(mix43ParamPosition, module, Switch44::MIX43_PARAM); + createSwitch<InvertingIndicatorButton18>(mix14ParamPosition, module, Switch44::MIX14_PARAM); + createSwitch<InvertingIndicatorButton18>(mix24ParamPosition, module, Switch44::MIX24_PARAM); + createSwitch<InvertingIndicatorButton18>(mix34ParamPosition, module, Switch44::MIX34_PARAM); + createSwitch<InvertingIndicatorButton18>(mix44ParamPosition, module, Switch44::MIX44_PARAM); addInput(createInput<Port24>(in1InputPosition, module, Switch44::IN1_INPUT)); addInput(createInput<Port24>(in2InputPosition, module, Switch44::IN2_INPUT)); diff --git a/src/Switch44.hpp b/src/Switch44.hpp @@ -7,7 +7,7 @@ extern Model* modelSwitch44; namespace bogaudio { -struct Switch44 : MatrixModule { +struct Switch44 : SwitchMatrixModule { enum ParamsIds { MIX11_PARAM, MIX21_PARAM, @@ -44,7 +44,7 @@ struct Switch44 : MatrixModule { NUM_OUTPUTS }; - Switch44() : MatrixModule(4, MIX11_PARAM, IN1_INPUT, OUT1_OUTPUT) { + Switch44() : SwitchMatrixModule(4, MIX11_PARAM, IN1_INPUT, OUT1_OUTPUT) { config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS); configParam(MIX11_PARAM, -1.0f, 1.0f, 0.0f, "Mix 1A", "%", 0.0f, 100.0f); configParam(MIX21_PARAM, -1.0f, 1.0f, 0.0f, "Mix 2A", "%", 0.0f, 100.0f); diff --git a/src/Switch88.cpp b/src/Switch88.cpp @@ -1,7 +1,7 @@ #include "Switch88.hpp" -struct Switch88Widget : MatrixBaseModuleWidget { +struct Switch88Widget : SwitchMatrixModuleWidget { static constexpr int hp = 22; Switch88Widget(Switch88* module) { @@ -105,70 +105,70 @@ struct Switch88Widget : MatrixBaseModuleWidget { auto out8OutputPosition = Vec(296.5, 328.0); // end generated by svg_widgets.rb - addParam(createParam<InvertingIndicatorButton18>(mix11ParamPosition, module, Switch88::MIX11_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix21ParamPosition, module, Switch88::MIX21_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix31ParamPosition, module, Switch88::MIX31_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix41ParamPosition, module, Switch88::MIX41_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix51ParamPosition, module, Switch88::MIX51_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix61ParamPosition, module, Switch88::MIX61_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix71ParamPosition, module, Switch88::MIX71_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix81ParamPosition, module, Switch88::MIX81_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix12ParamPosition, module, Switch88::MIX12_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix22ParamPosition, module, Switch88::MIX22_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix32ParamPosition, module, Switch88::MIX32_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix42ParamPosition, module, Switch88::MIX42_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix52ParamPosition, module, Switch88::MIX52_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix62ParamPosition, module, Switch88::MIX62_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix72ParamPosition, module, Switch88::MIX72_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix82ParamPosition, module, Switch88::MIX82_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix13ParamPosition, module, Switch88::MIX13_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix23ParamPosition, module, Switch88::MIX23_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix33ParamPosition, module, Switch88::MIX33_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix43ParamPosition, module, Switch88::MIX43_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix53ParamPosition, module, Switch88::MIX53_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix63ParamPosition, module, Switch88::MIX63_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix73ParamPosition, module, Switch88::MIX73_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix83ParamPosition, module, Switch88::MIX83_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix14ParamPosition, module, Switch88::MIX14_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix24ParamPosition, module, Switch88::MIX24_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix34ParamPosition, module, Switch88::MIX34_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix44ParamPosition, module, Switch88::MIX44_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix54ParamPosition, module, Switch88::MIX54_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix64ParamPosition, module, Switch88::MIX64_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix74ParamPosition, module, Switch88::MIX74_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix84ParamPosition, module, Switch88::MIX84_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix15ParamPosition, module, Switch88::MIX15_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix25ParamPosition, module, Switch88::MIX25_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix35ParamPosition, module, Switch88::MIX35_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix45ParamPosition, module, Switch88::MIX45_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix55ParamPosition, module, Switch88::MIX55_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix65ParamPosition, module, Switch88::MIX65_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix75ParamPosition, module, Switch88::MIX75_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix85ParamPosition, module, Switch88::MIX85_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix16ParamPosition, module, Switch88::MIX16_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix26ParamPosition, module, Switch88::MIX26_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix36ParamPosition, module, Switch88::MIX36_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix46ParamPosition, module, Switch88::MIX46_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix56ParamPosition, module, Switch88::MIX56_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix66ParamPosition, module, Switch88::MIX66_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix76ParamPosition, module, Switch88::MIX76_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix86ParamPosition, module, Switch88::MIX86_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix17ParamPosition, module, Switch88::MIX17_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix27ParamPosition, module, Switch88::MIX27_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix37ParamPosition, module, Switch88::MIX37_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix47ParamPosition, module, Switch88::MIX47_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix57ParamPosition, module, Switch88::MIX57_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix67ParamPosition, module, Switch88::MIX67_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix77ParamPosition, module, Switch88::MIX77_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix87ParamPosition, module, Switch88::MIX87_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix18ParamPosition, module, Switch88::MIX18_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix28ParamPosition, module, Switch88::MIX28_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix38ParamPosition, module, Switch88::MIX38_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix48ParamPosition, module, Switch88::MIX48_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix58ParamPosition, module, Switch88::MIX58_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix68ParamPosition, module, Switch88::MIX68_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix78ParamPosition, module, Switch88::MIX78_PARAM)); - addParam(createParam<InvertingIndicatorButton18>(mix88ParamPosition, module, Switch88::MIX88_PARAM)); + createSwitch<InvertingIndicatorButton18>(mix11ParamPosition, module, Switch88::MIX11_PARAM); + createSwitch<InvertingIndicatorButton18>(mix21ParamPosition, module, Switch88::MIX21_PARAM); + createSwitch<InvertingIndicatorButton18>(mix31ParamPosition, module, Switch88::MIX31_PARAM); + createSwitch<InvertingIndicatorButton18>(mix41ParamPosition, module, Switch88::MIX41_PARAM); + createSwitch<InvertingIndicatorButton18>(mix51ParamPosition, module, Switch88::MIX51_PARAM); + createSwitch<InvertingIndicatorButton18>(mix61ParamPosition, module, Switch88::MIX61_PARAM); + createSwitch<InvertingIndicatorButton18>(mix71ParamPosition, module, Switch88::MIX71_PARAM); + createSwitch<InvertingIndicatorButton18>(mix81ParamPosition, module, Switch88::MIX81_PARAM); + createSwitch<InvertingIndicatorButton18>(mix12ParamPosition, module, Switch88::MIX12_PARAM); + createSwitch<InvertingIndicatorButton18>(mix22ParamPosition, module, Switch88::MIX22_PARAM); + createSwitch<InvertingIndicatorButton18>(mix32ParamPosition, module, Switch88::MIX32_PARAM); + createSwitch<InvertingIndicatorButton18>(mix42ParamPosition, module, Switch88::MIX42_PARAM); + createSwitch<InvertingIndicatorButton18>(mix52ParamPosition, module, Switch88::MIX52_PARAM); + createSwitch<InvertingIndicatorButton18>(mix62ParamPosition, module, Switch88::MIX62_PARAM); + createSwitch<InvertingIndicatorButton18>(mix72ParamPosition, module, Switch88::MIX72_PARAM); + createSwitch<InvertingIndicatorButton18>(mix82ParamPosition, module, Switch88::MIX82_PARAM); + createSwitch<InvertingIndicatorButton18>(mix13ParamPosition, module, Switch88::MIX13_PARAM); + createSwitch<InvertingIndicatorButton18>(mix23ParamPosition, module, Switch88::MIX23_PARAM); + createSwitch<InvertingIndicatorButton18>(mix33ParamPosition, module, Switch88::MIX33_PARAM); + createSwitch<InvertingIndicatorButton18>(mix43ParamPosition, module, Switch88::MIX43_PARAM); + createSwitch<InvertingIndicatorButton18>(mix53ParamPosition, module, Switch88::MIX53_PARAM); + createSwitch<InvertingIndicatorButton18>(mix63ParamPosition, module, Switch88::MIX63_PARAM); + createSwitch<InvertingIndicatorButton18>(mix73ParamPosition, module, Switch88::MIX73_PARAM); + createSwitch<InvertingIndicatorButton18>(mix83ParamPosition, module, Switch88::MIX83_PARAM); + createSwitch<InvertingIndicatorButton18>(mix14ParamPosition, module, Switch88::MIX14_PARAM); + createSwitch<InvertingIndicatorButton18>(mix24ParamPosition, module, Switch88::MIX24_PARAM); + createSwitch<InvertingIndicatorButton18>(mix34ParamPosition, module, Switch88::MIX34_PARAM); + createSwitch<InvertingIndicatorButton18>(mix44ParamPosition, module, Switch88::MIX44_PARAM); + createSwitch<InvertingIndicatorButton18>(mix54ParamPosition, module, Switch88::MIX54_PARAM); + createSwitch<InvertingIndicatorButton18>(mix64ParamPosition, module, Switch88::MIX64_PARAM); + createSwitch<InvertingIndicatorButton18>(mix74ParamPosition, module, Switch88::MIX74_PARAM); + createSwitch<InvertingIndicatorButton18>(mix84ParamPosition, module, Switch88::MIX84_PARAM); + createSwitch<InvertingIndicatorButton18>(mix15ParamPosition, module, Switch88::MIX15_PARAM); + createSwitch<InvertingIndicatorButton18>(mix25ParamPosition, module, Switch88::MIX25_PARAM); + createSwitch<InvertingIndicatorButton18>(mix35ParamPosition, module, Switch88::MIX35_PARAM); + createSwitch<InvertingIndicatorButton18>(mix45ParamPosition, module, Switch88::MIX45_PARAM); + createSwitch<InvertingIndicatorButton18>(mix55ParamPosition, module, Switch88::MIX55_PARAM); + createSwitch<InvertingIndicatorButton18>(mix65ParamPosition, module, Switch88::MIX65_PARAM); + createSwitch<InvertingIndicatorButton18>(mix75ParamPosition, module, Switch88::MIX75_PARAM); + createSwitch<InvertingIndicatorButton18>(mix85ParamPosition, module, Switch88::MIX85_PARAM); + createSwitch<InvertingIndicatorButton18>(mix16ParamPosition, module, Switch88::MIX16_PARAM); + createSwitch<InvertingIndicatorButton18>(mix26ParamPosition, module, Switch88::MIX26_PARAM); + createSwitch<InvertingIndicatorButton18>(mix36ParamPosition, module, Switch88::MIX36_PARAM); + createSwitch<InvertingIndicatorButton18>(mix46ParamPosition, module, Switch88::MIX46_PARAM); + createSwitch<InvertingIndicatorButton18>(mix56ParamPosition, module, Switch88::MIX56_PARAM); + createSwitch<InvertingIndicatorButton18>(mix66ParamPosition, module, Switch88::MIX66_PARAM); + createSwitch<InvertingIndicatorButton18>(mix76ParamPosition, module, Switch88::MIX76_PARAM); + createSwitch<InvertingIndicatorButton18>(mix86ParamPosition, module, Switch88::MIX86_PARAM); + createSwitch<InvertingIndicatorButton18>(mix17ParamPosition, module, Switch88::MIX17_PARAM); + createSwitch<InvertingIndicatorButton18>(mix27ParamPosition, module, Switch88::MIX27_PARAM); + createSwitch<InvertingIndicatorButton18>(mix37ParamPosition, module, Switch88::MIX37_PARAM); + createSwitch<InvertingIndicatorButton18>(mix47ParamPosition, module, Switch88::MIX47_PARAM); + createSwitch<InvertingIndicatorButton18>(mix57ParamPosition, module, Switch88::MIX57_PARAM); + createSwitch<InvertingIndicatorButton18>(mix67ParamPosition, module, Switch88::MIX67_PARAM); + createSwitch<InvertingIndicatorButton18>(mix77ParamPosition, module, Switch88::MIX77_PARAM); + createSwitch<InvertingIndicatorButton18>(mix87ParamPosition, module, Switch88::MIX87_PARAM); + createSwitch<InvertingIndicatorButton18>(mix18ParamPosition, module, Switch88::MIX18_PARAM); + createSwitch<InvertingIndicatorButton18>(mix28ParamPosition, module, Switch88::MIX28_PARAM); + createSwitch<InvertingIndicatorButton18>(mix38ParamPosition, module, Switch88::MIX38_PARAM); + createSwitch<InvertingIndicatorButton18>(mix48ParamPosition, module, Switch88::MIX48_PARAM); + createSwitch<InvertingIndicatorButton18>(mix58ParamPosition, module, Switch88::MIX58_PARAM); + createSwitch<InvertingIndicatorButton18>(mix68ParamPosition, module, Switch88::MIX68_PARAM); + createSwitch<InvertingIndicatorButton18>(mix78ParamPosition, module, Switch88::MIX78_PARAM); + createSwitch<InvertingIndicatorButton18>(mix88ParamPosition, module, Switch88::MIX88_PARAM); addInput(createInput<Port24>(in1InputPosition, module, Switch88::IN1_INPUT)); addInput(createInput<Port24>(in2InputPosition, module, Switch88::IN2_INPUT)); diff --git a/src/Switch88.hpp b/src/Switch88.hpp @@ -7,7 +7,7 @@ extern Model* modelSwitch88; namespace bogaudio { -struct Switch88 : MatrixModule { +struct Switch88 : SwitchMatrixModule { enum ParamsIds { MIX11_PARAM, MIX21_PARAM, @@ -100,7 +100,7 @@ struct Switch88 : MatrixModule { NUM_OUTPUTS }; - Switch88() : MatrixModule(8, MIX11_PARAM, IN1_INPUT, OUT1_OUTPUT) { + Switch88() : SwitchMatrixModule(8, MIX11_PARAM, IN1_INPUT, OUT1_OUTPUT) { config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS); configParam(MIX11_PARAM, -1.0f, 1.0f, 0.0f, "Mix 1A", "%", 0.0f, 100.0f); configParam(MIX21_PARAM, -1.0f, 1.0f, 0.0f, "Mix 2A", "%", 0.0f, 100.0f); diff --git a/src/matrix_base.cpp b/src/matrix_base.cpp @@ -70,3 +70,20 @@ void KnobMatrixModule::dataFromJson(json_t* root) { _indicatorKnobs = json_is_true(k); } } + + +#define CLICK_TO_INVERT "click_to_invert" + +json_t* SwitchMatrixModule::dataToJson() { + json_t* root = MatrixBaseModule::dataToJson(); + json_object_set_new(root, CLICK_TO_INVERT, json_boolean(_clickToInvert)); + return root; +} + +void SwitchMatrixModule::dataFromJson(json_t* root) { + MatrixBaseModule::dataFromJson(root); + json_t* c = json_object_get(root, CLICK_TO_INVERT); + if (c) { + _clickToInvert = json_is_true(c); + } +} diff --git a/src/matrix_base.hpp b/src/matrix_base.hpp @@ -80,6 +80,7 @@ struct KnobMatrixModule : MatrixModule { struct KnobMatrixModuleWidget : MatrixBaseModuleWidget { std::vector<IndicatorKnob19*> _knobs; + void createKnob(math::Vec& position, KnobMatrixModule* module, int id) { IndicatorKnob19* knob = dynamic_cast<IndicatorKnob19*>(createParam<IndicatorKnob19>(position, module, id)); if (module) { @@ -107,4 +108,36 @@ struct KnobMatrixModuleWidget : MatrixBaseModuleWidget { } }; +struct SwitchMatrixModule : MatrixModule { + bool _clickToInvert = true; + + SwitchMatrixModule(int n, int firstParamID, int firstInputID, int firstOutputID) + : MatrixModule(n, firstParamID, firstInputID, firstOutputID) + {} + + json_t* dataToJson() override; + void dataFromJson(json_t* root) override; +}; + +struct SwitchMatrixModuleWidget : MatrixBaseModuleWidget { + template<class W> void createSwitch(math::Vec& position, SwitchMatrixModule* module, int id) { + auto s = dynamic_cast<W*>(createParam<W>(position, module, id)); + if (module) { + s->setClickToInvertCallback([module]() { return module->_clickToInvert; }); + } + addParam(s); + } + + void appendContextMenu(Menu* menu) override { + SwitchMatrixModule* m = dynamic_cast<SwitchMatrixModule*>(module); + assert(m); + MatrixBaseModuleWidget::appendContextMenu(menu); + menu->addChild(new OptionMenuItem( + "Click to invert", + [m]() { return m->_clickToInvert; }, + [m]() { m->_clickToInvert = !m->_clickToInvert; } + )); + } +}; + } // namespace bogaudio diff --git a/src/widgets.cpp b/src/widgets.cpp @@ -393,7 +393,7 @@ void InvertingIndicatorButton::onHover(const event::Hover& e) { void InvertingIndicatorButton::onButton(const event::Button& e) { ParamWidget::onButton(e); - if (!paramQuantity || !(e.action == GLFW_PRESS && (e.mods & RACK_MOD_MASK) == 0)) { + if (!paramQuantity || !(e.action == GLFW_PRESS && (e.mods & RACK_MOD_MASK) == 0) || e.button == GLFW_MOUSE_BUTTON_RIGHT) { return; } @@ -404,9 +404,12 @@ void InvertingIndicatorButton::onButton(const event::Button& e) { else if (value < 1.0f) { paramQuantity->setValue(1.0f); } - else { + else if (!clickToInvertCB || clickToInvertCB()) { paramQuantity->setValue(-1.0f); } + else { + paramQuantity->setValue(0.0f); + } } void InvertingIndicatorButton::onChange(const event::Change& e) { diff --git a/src/widgets.hpp b/src/widgets.hpp @@ -132,9 +132,11 @@ struct InvertingIndicatorButton : ParamWidget { widget::FramebufferWidget* fb; CircularShadow* shadow; IIBWidget* w; + std::function<bool()> clickToInvertCB; InvertingIndicatorButton(int dim); + inline void setClickToInvertCallback(std::function<bool()> fn) { clickToInvertCB = fn; } void reset() override; void randomize() override; void onHover(const event::Hover& e) override;