BogaudioModules

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

Matrix88M.cpp (10074B)


      1 
      2 #include "Matrix88M.hpp"
      3 #include "mixer.hpp"
      4 
      5 void Matrix88M::processAlways(const ProcessArgs& args) {
      6 	int position = 0;
      7 	int baseID = 0;
      8 	if (baseConnected()) {
      9 		Matrix88ExpanderMessage* bm = fromBase();
     10 		baseID = bm->baseID;
     11 		position = bm->position;
     12 	}
     13 	setBaseIDAndPosition(baseID, position);
     14 
     15 	if (expanderConnected()) {
     16 		Matrix88ExpanderMessage* te = toExpander();
     17 		te->baseID = _baseID;
     18 		te->position = _position > 0 ? _position + 1 : 0;
     19 	}
     20 }
     21 
     22 struct Matrix88MWidget : MutesMatrixExpanderModuleWidget {
     23 	static constexpr int hp = 20;
     24 
     25 	Matrix88MWidget(Matrix88M* module) {
     26 		setModule(module);
     27 		box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT);
     28 		setPanel(box.size, "Matrix88M");
     29 		createScrews();
     30 
     31 		// generated by svg_widgets.rb
     32 		auto mute11ParamPosition = Vec(18.5, 33.0);
     33 		auto mute21ParamPosition = Vec(18.5, 70.0);
     34 		auto mute31ParamPosition = Vec(18.5, 107.0);
     35 		auto mute41ParamPosition = Vec(18.5, 144.0);
     36 		auto mute51ParamPosition = Vec(18.5, 181.0);
     37 		auto mute61ParamPosition = Vec(18.5, 218.0);
     38 		auto mute71ParamPosition = Vec(18.5, 255.0);
     39 		auto mute81ParamPosition = Vec(18.5, 292.0);
     40 		auto mute12ParamPosition = Vec(53.5, 33.0);
     41 		auto mute22ParamPosition = Vec(53.5, 70.0);
     42 		auto mute32ParamPosition = Vec(53.5, 107.0);
     43 		auto mute42ParamPosition = Vec(53.5, 144.0);
     44 		auto mute52ParamPosition = Vec(53.5, 181.0);
     45 		auto mute62ParamPosition = Vec(53.5, 218.0);
     46 		auto mute72ParamPosition = Vec(53.5, 255.0);
     47 		auto mute82ParamPosition = Vec(53.5, 292.0);
     48 		auto mute13ParamPosition = Vec(88.5, 33.0);
     49 		auto mute23ParamPosition = Vec(88.5, 70.0);
     50 		auto mute33ParamPosition = Vec(88.5, 107.0);
     51 		auto mute43ParamPosition = Vec(88.5, 144.0);
     52 		auto mute53ParamPosition = Vec(88.5, 181.0);
     53 		auto mute63ParamPosition = Vec(88.5, 218.0);
     54 		auto mute73ParamPosition = Vec(88.5, 255.0);
     55 		auto mute83ParamPosition = Vec(88.5, 292.0);
     56 		auto mute14ParamPosition = Vec(123.5, 33.0);
     57 		auto mute24ParamPosition = Vec(123.5, 70.0);
     58 		auto mute34ParamPosition = Vec(123.5, 107.0);
     59 		auto mute44ParamPosition = Vec(123.5, 144.0);
     60 		auto mute54ParamPosition = Vec(123.5, 181.0);
     61 		auto mute64ParamPosition = Vec(123.5, 218.0);
     62 		auto mute74ParamPosition = Vec(123.5, 255.0);
     63 		auto mute84ParamPosition = Vec(123.5, 292.0);
     64 		auto mute15ParamPosition = Vec(158.5, 33.0);
     65 		auto mute25ParamPosition = Vec(158.5, 70.0);
     66 		auto mute35ParamPosition = Vec(158.5, 107.0);
     67 		auto mute45ParamPosition = Vec(158.5, 144.0);
     68 		auto mute55ParamPosition = Vec(158.5, 181.0);
     69 		auto mute65ParamPosition = Vec(158.5, 218.0);
     70 		auto mute75ParamPosition = Vec(158.5, 255.0);
     71 		auto mute85ParamPosition = Vec(158.5, 292.0);
     72 		auto mute16ParamPosition = Vec(193.5, 33.0);
     73 		auto mute26ParamPosition = Vec(193.5, 70.0);
     74 		auto mute36ParamPosition = Vec(193.5, 107.0);
     75 		auto mute46ParamPosition = Vec(193.5, 144.0);
     76 		auto mute56ParamPosition = Vec(193.5, 181.0);
     77 		auto mute66ParamPosition = Vec(193.5, 218.0);
     78 		auto mute76ParamPosition = Vec(193.5, 255.0);
     79 		auto mute86ParamPosition = Vec(193.5, 292.0);
     80 		auto mute17ParamPosition = Vec(228.5, 33.0);
     81 		auto mute27ParamPosition = Vec(228.5, 70.0);
     82 		auto mute37ParamPosition = Vec(228.5, 107.0);
     83 		auto mute47ParamPosition = Vec(228.5, 144.0);
     84 		auto mute57ParamPosition = Vec(228.5, 181.0);
     85 		auto mute67ParamPosition = Vec(228.5, 218.0);
     86 		auto mute77ParamPosition = Vec(228.5, 255.0);
     87 		auto mute87ParamPosition = Vec(228.5, 292.0);
     88 		auto mute18ParamPosition = Vec(263.5, 33.0);
     89 		auto mute28ParamPosition = Vec(263.5, 70.0);
     90 		auto mute38ParamPosition = Vec(263.5, 107.0);
     91 		auto mute48ParamPosition = Vec(263.5, 144.0);
     92 		auto mute58ParamPosition = Vec(263.5, 181.0);
     93 		auto mute68ParamPosition = Vec(263.5, 218.0);
     94 		auto mute78ParamPosition = Vec(263.5, 255.0);
     95 		auto mute88ParamPosition = Vec(263.5, 292.0);
     96 		// end generated by svg_widgets.rb
     97 
     98 		addParam(createParam<SoloMuteButton>(mute11ParamPosition, module, Matrix88M::MUTE11_PARAM));
     99 		addParam(createParam<SoloMuteButton>(mute21ParamPosition, module, Matrix88M::MUTE21_PARAM));
    100 		addParam(createParam<SoloMuteButton>(mute31ParamPosition, module, Matrix88M::MUTE31_PARAM));
    101 		addParam(createParam<SoloMuteButton>(mute41ParamPosition, module, Matrix88M::MUTE41_PARAM));
    102 		addParam(createParam<SoloMuteButton>(mute51ParamPosition, module, Matrix88M::MUTE51_PARAM));
    103 		addParam(createParam<SoloMuteButton>(mute61ParamPosition, module, Matrix88M::MUTE61_PARAM));
    104 		addParam(createParam<SoloMuteButton>(mute71ParamPosition, module, Matrix88M::MUTE71_PARAM));
    105 		addParam(createParam<SoloMuteButton>(mute81ParamPosition, module, Matrix88M::MUTE81_PARAM));
    106 		addParam(createParam<SoloMuteButton>(mute12ParamPosition, module, Matrix88M::MUTE12_PARAM));
    107 		addParam(createParam<SoloMuteButton>(mute22ParamPosition, module, Matrix88M::MUTE22_PARAM));
    108 		addParam(createParam<SoloMuteButton>(mute32ParamPosition, module, Matrix88M::MUTE32_PARAM));
    109 		addParam(createParam<SoloMuteButton>(mute42ParamPosition, module, Matrix88M::MUTE42_PARAM));
    110 		addParam(createParam<SoloMuteButton>(mute52ParamPosition, module, Matrix88M::MUTE52_PARAM));
    111 		addParam(createParam<SoloMuteButton>(mute62ParamPosition, module, Matrix88M::MUTE62_PARAM));
    112 		addParam(createParam<SoloMuteButton>(mute72ParamPosition, module, Matrix88M::MUTE72_PARAM));
    113 		addParam(createParam<SoloMuteButton>(mute82ParamPosition, module, Matrix88M::MUTE82_PARAM));
    114 		addParam(createParam<SoloMuteButton>(mute13ParamPosition, module, Matrix88M::MUTE13_PARAM));
    115 		addParam(createParam<SoloMuteButton>(mute23ParamPosition, module, Matrix88M::MUTE23_PARAM));
    116 		addParam(createParam<SoloMuteButton>(mute33ParamPosition, module, Matrix88M::MUTE33_PARAM));
    117 		addParam(createParam<SoloMuteButton>(mute43ParamPosition, module, Matrix88M::MUTE43_PARAM));
    118 		addParam(createParam<SoloMuteButton>(mute53ParamPosition, module, Matrix88M::MUTE53_PARAM));
    119 		addParam(createParam<SoloMuteButton>(mute63ParamPosition, module, Matrix88M::MUTE63_PARAM));
    120 		addParam(createParam<SoloMuteButton>(mute73ParamPosition, module, Matrix88M::MUTE73_PARAM));
    121 		addParam(createParam<SoloMuteButton>(mute83ParamPosition, module, Matrix88M::MUTE83_PARAM));
    122 		addParam(createParam<SoloMuteButton>(mute14ParamPosition, module, Matrix88M::MUTE14_PARAM));
    123 		addParam(createParam<SoloMuteButton>(mute24ParamPosition, module, Matrix88M::MUTE24_PARAM));
    124 		addParam(createParam<SoloMuteButton>(mute34ParamPosition, module, Matrix88M::MUTE34_PARAM));
    125 		addParam(createParam<SoloMuteButton>(mute44ParamPosition, module, Matrix88M::MUTE44_PARAM));
    126 		addParam(createParam<SoloMuteButton>(mute54ParamPosition, module, Matrix88M::MUTE54_PARAM));
    127 		addParam(createParam<SoloMuteButton>(mute64ParamPosition, module, Matrix88M::MUTE64_PARAM));
    128 		addParam(createParam<SoloMuteButton>(mute74ParamPosition, module, Matrix88M::MUTE74_PARAM));
    129 		addParam(createParam<SoloMuteButton>(mute84ParamPosition, module, Matrix88M::MUTE84_PARAM));
    130 		addParam(createParam<SoloMuteButton>(mute15ParamPosition, module, Matrix88M::MUTE15_PARAM));
    131 		addParam(createParam<SoloMuteButton>(mute25ParamPosition, module, Matrix88M::MUTE25_PARAM));
    132 		addParam(createParam<SoloMuteButton>(mute35ParamPosition, module, Matrix88M::MUTE35_PARAM));
    133 		addParam(createParam<SoloMuteButton>(mute45ParamPosition, module, Matrix88M::MUTE45_PARAM));
    134 		addParam(createParam<SoloMuteButton>(mute55ParamPosition, module, Matrix88M::MUTE55_PARAM));
    135 		addParam(createParam<SoloMuteButton>(mute65ParamPosition, module, Matrix88M::MUTE65_PARAM));
    136 		addParam(createParam<SoloMuteButton>(mute75ParamPosition, module, Matrix88M::MUTE75_PARAM));
    137 		addParam(createParam<SoloMuteButton>(mute85ParamPosition, module, Matrix88M::MUTE85_PARAM));
    138 		addParam(createParam<SoloMuteButton>(mute16ParamPosition, module, Matrix88M::MUTE16_PARAM));
    139 		addParam(createParam<SoloMuteButton>(mute26ParamPosition, module, Matrix88M::MUTE26_PARAM));
    140 		addParam(createParam<SoloMuteButton>(mute36ParamPosition, module, Matrix88M::MUTE36_PARAM));
    141 		addParam(createParam<SoloMuteButton>(mute46ParamPosition, module, Matrix88M::MUTE46_PARAM));
    142 		addParam(createParam<SoloMuteButton>(mute56ParamPosition, module, Matrix88M::MUTE56_PARAM));
    143 		addParam(createParam<SoloMuteButton>(mute66ParamPosition, module, Matrix88M::MUTE66_PARAM));
    144 		addParam(createParam<SoloMuteButton>(mute76ParamPosition, module, Matrix88M::MUTE76_PARAM));
    145 		addParam(createParam<SoloMuteButton>(mute86ParamPosition, module, Matrix88M::MUTE86_PARAM));
    146 		addParam(createParam<SoloMuteButton>(mute17ParamPosition, module, Matrix88M::MUTE17_PARAM));
    147 		addParam(createParam<SoloMuteButton>(mute27ParamPosition, module, Matrix88M::MUTE27_PARAM));
    148 		addParam(createParam<SoloMuteButton>(mute37ParamPosition, module, Matrix88M::MUTE37_PARAM));
    149 		addParam(createParam<SoloMuteButton>(mute47ParamPosition, module, Matrix88M::MUTE47_PARAM));
    150 		addParam(createParam<SoloMuteButton>(mute57ParamPosition, module, Matrix88M::MUTE57_PARAM));
    151 		addParam(createParam<SoloMuteButton>(mute67ParamPosition, module, Matrix88M::MUTE67_PARAM));
    152 		addParam(createParam<SoloMuteButton>(mute77ParamPosition, module, Matrix88M::MUTE77_PARAM));
    153 		addParam(createParam<SoloMuteButton>(mute87ParamPosition, module, Matrix88M::MUTE87_PARAM));
    154 		addParam(createParam<SoloMuteButton>(mute18ParamPosition, module, Matrix88M::MUTE18_PARAM));
    155 		addParam(createParam<SoloMuteButton>(mute28ParamPosition, module, Matrix88M::MUTE28_PARAM));
    156 		addParam(createParam<SoloMuteButton>(mute38ParamPosition, module, Matrix88M::MUTE38_PARAM));
    157 		addParam(createParam<SoloMuteButton>(mute48ParamPosition, module, Matrix88M::MUTE48_PARAM));
    158 		addParam(createParam<SoloMuteButton>(mute58ParamPosition, module, Matrix88M::MUTE58_PARAM));
    159 		addParam(createParam<SoloMuteButton>(mute68ParamPosition, module, Matrix88M::MUTE68_PARAM));
    160 		addParam(createParam<SoloMuteButton>(mute78ParamPosition, module, Matrix88M::MUTE78_PARAM));
    161 		addParam(createParam<SoloMuteButton>(mute88ParamPosition, module, Matrix88M::MUTE88_PARAM));
    162 	}
    163 };
    164 
    165 Model* modelMatrix88M = createModel<Matrix88M, Matrix88MWidget>("Bogaudio-Matrix88M", "MX88M", "Mutes expander for MATRIX88", "Mixer", "Expander", "Polyphonic");