Matrix44.hpp (2614B)
1 #pragma once 2 3 #include "Matrix44_shared.hpp" 4 5 namespace bogaudio { 6 7 typedef ChainableExpandableModule<Matrix44ExpanderMessage, Matrix44Element, 1, KnobMatrixModule> Matrix44Base; 8 9 struct Matrix44 : Matrix44Base { 10 enum ParamsIds { 11 MIX11_PARAM, 12 MIX21_PARAM, 13 MIX31_PARAM, 14 MIX41_PARAM, 15 MIX12_PARAM, 16 MIX22_PARAM, 17 MIX32_PARAM, 18 MIX42_PARAM, 19 MIX13_PARAM, 20 MIX23_PARAM, 21 MIX33_PARAM, 22 MIX43_PARAM, 23 MIX14_PARAM, 24 MIX24_PARAM, 25 MIX34_PARAM, 26 MIX44_PARAM, 27 NUM_PARAMS 28 }; 29 30 enum InputsIds { 31 IN1_INPUT, 32 IN2_INPUT, 33 IN3_INPUT, 34 IN4_INPUT, 35 NUM_INPUTS 36 }; 37 38 enum OutputsIds { 39 OUT1_OUTPUT, 40 OUT2_OUTPUT, 41 OUT3_OUTPUT, 42 OUT4_OUTPUT, 43 NUM_OUTPUTS 44 }; 45 46 Matrix44() { 47 config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS); 48 configMatrixModule(4, 4, MIX11_PARAM, IN1_INPUT, OUT1_OUTPUT); 49 configParam(MIX11_PARAM, -1.0f, 1.0f, 0.0f, "Mix 1A", "%", 0.0f, 100.0f); 50 configParam(MIX21_PARAM, -1.0f, 1.0f, 0.0f, "Mix 2A", "%", 0.0f, 100.0f); 51 configParam(MIX31_PARAM, -1.0f, 1.0f, 0.0f, "Mix 3A", "%", 0.0f, 100.0f); 52 configParam(MIX41_PARAM, -1.0f, 1.0f, 0.0f, "Mix 4A", "%", 0.0f, 100.0f); 53 configParam(MIX12_PARAM, -1.0f, 1.0f, 0.0f, "Mix 1B", "%", 0.0f, 100.0f); 54 configParam(MIX22_PARAM, -1.0f, 1.0f, 0.0f, "Mix 2B", "%", 0.0f, 100.0f); 55 configParam(MIX32_PARAM, -1.0f, 1.0f, 0.0f, "Mix 3B", "%", 0.0f, 100.0f); 56 configParam(MIX42_PARAM, -1.0f, 1.0f, 0.0f, "Mix 4B", "%", 0.0f, 100.0f); 57 configParam(MIX13_PARAM, -1.0f, 1.0f, 0.0f, "Mix 1C", "%", 0.0f, 100.0f); 58 configParam(MIX23_PARAM, -1.0f, 1.0f, 0.0f, "Mix 2C", "%", 0.0f, 100.0f); 59 configParam(MIX33_PARAM, -1.0f, 1.0f, 0.0f, "Mix 3C", "%", 0.0f, 100.0f); 60 configParam(MIX43_PARAM, -1.0f, 1.0f, 0.0f, "Mix 4C", "%", 0.0f, 100.0f); 61 configParam(MIX14_PARAM, -1.0f, 1.0f, 0.0f, "Mix 1D", "%", 0.0f, 100.0f); 62 configParam(MIX24_PARAM, -1.0f, 1.0f, 0.0f, "Mix 2D", "%", 0.0f, 100.0f); 63 configParam(MIX34_PARAM, -1.0f, 1.0f, 0.0f, "Mix 3D", "%", 0.0f, 100.0f); 64 configParam(MIX44_PARAM, -1.0f, 1.0f, 0.0f, "Mix 4D", "%", 0.0f, 100.0f); 65 66 configInput(IN1_INPUT, "Signal 1"); 67 configInput(IN2_INPUT, "Signal 2"); 68 configInput(IN3_INPUT, "Signal 3"); 69 configInput(IN4_INPUT, "Signal 4"); 70 71 configOutput(OUT1_OUTPUT, "Signal A"); 72 configOutput(OUT2_OUTPUT, "Signal B"); 73 configOutput(OUT3_OUTPUT, "Signal C"); 74 configOutput(OUT4_OUTPUT, "Signal D"); 75 76 77 setLocalElements({new Matrix44Element(NULL, NULL, NULL)}); 78 registerBase(); 79 setExpanderModelPredicate([](Model* m) { return m == modelMatrix44Cvm; }); 80 } 81 82 void elementsChanged() override; 83 void processAlways(const ProcessArgs& args) override; 84 }; 85 86 } // namespace bogaudio