Matrix88Cv.hpp (4452B)
1 #pragma once 2 3 #include "Matrix88_shared.hpp" 4 5 namespace bogaudio { 6 7 typedef ChainableExpanderModule<Matrix88ExpanderMessage, Matrix88Element, 1, BGModule> Matrix88CvBase; 8 9 struct Matrix88Cv : Matrix88CvBase { 10 enum ParamsIds { 11 NUM_PARAMS 12 }; 13 14 enum InputsIds { 15 CV11_INPUT, 16 CV21_INPUT, 17 CV31_INPUT, 18 CV41_INPUT, 19 CV51_INPUT, 20 CV61_INPUT, 21 CV71_INPUT, 22 CV81_INPUT, 23 CV12_INPUT, 24 CV22_INPUT, 25 CV32_INPUT, 26 CV42_INPUT, 27 CV52_INPUT, 28 CV62_INPUT, 29 CV72_INPUT, 30 CV82_INPUT, 31 CV13_INPUT, 32 CV23_INPUT, 33 CV33_INPUT, 34 CV43_INPUT, 35 CV53_INPUT, 36 CV63_INPUT, 37 CV73_INPUT, 38 CV83_INPUT, 39 CV14_INPUT, 40 CV24_INPUT, 41 CV34_INPUT, 42 CV44_INPUT, 43 CV54_INPUT, 44 CV64_INPUT, 45 CV74_INPUT, 46 CV84_INPUT, 47 CV15_INPUT, 48 CV25_INPUT, 49 CV35_INPUT, 50 CV45_INPUT, 51 CV55_INPUT, 52 CV65_INPUT, 53 CV75_INPUT, 54 CV85_INPUT, 55 CV16_INPUT, 56 CV26_INPUT, 57 CV36_INPUT, 58 CV46_INPUT, 59 CV56_INPUT, 60 CV66_INPUT, 61 CV76_INPUT, 62 CV86_INPUT, 63 CV17_INPUT, 64 CV27_INPUT, 65 CV37_INPUT, 66 CV47_INPUT, 67 CV57_INPUT, 68 CV67_INPUT, 69 CV77_INPUT, 70 CV87_INPUT, 71 CV18_INPUT, 72 CV28_INPUT, 73 CV38_INPUT, 74 CV48_INPUT, 75 CV58_INPUT, 76 CV68_INPUT, 77 CV78_INPUT, 78 CV88_INPUT, 79 NUM_INPUTS 80 }; 81 82 enum OutputsIds { 83 NUM_OUTPUTS 84 }; 85 86 Input** _cvs = NULL; 87 88 Matrix88Cv() { 89 config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS); 90 91 configInput(CV11_INPUT, "Level 1A CV"); 92 configInput(CV21_INPUT, "Level 2A CV"); 93 configInput(CV31_INPUT, "Level 3A CV"); 94 configInput(CV41_INPUT, "Level 4A CV"); 95 configInput(CV51_INPUT, "Level 5A CV"); 96 configInput(CV61_INPUT, "Level 6A CV"); 97 configInput(CV71_INPUT, "Level 7A CV"); 98 configInput(CV81_INPUT, "Level 8A CV"); 99 configInput(CV12_INPUT, "Level 1B CV"); 100 configInput(CV22_INPUT, "Level 2B CV"); 101 configInput(CV32_INPUT, "Level 3B CV"); 102 configInput(CV42_INPUT, "Level 4B CV"); 103 configInput(CV52_INPUT, "Level 5B CV"); 104 configInput(CV62_INPUT, "Level 6B CV"); 105 configInput(CV72_INPUT, "Level 7B CV"); 106 configInput(CV82_INPUT, "Level 8B CV"); 107 configInput(CV13_INPUT, "Level 1C CV"); 108 configInput(CV23_INPUT, "Level 2C CV"); 109 configInput(CV33_INPUT, "Level 3C CV"); 110 configInput(CV43_INPUT, "Level 4C CV"); 111 configInput(CV53_INPUT, "Level 5C CV"); 112 configInput(CV63_INPUT, "Level 6C CV"); 113 configInput(CV73_INPUT, "Level 7C CV"); 114 configInput(CV83_INPUT, "Level 8C CV"); 115 configInput(CV14_INPUT, "Level 1D CV"); 116 configInput(CV24_INPUT, "Level 2D CV"); 117 configInput(CV34_INPUT, "Level 3D CV"); 118 configInput(CV44_INPUT, "Level 4D CV"); 119 configInput(CV54_INPUT, "Level 5D CV"); 120 configInput(CV64_INPUT, "Level 6D CV"); 121 configInput(CV74_INPUT, "Level 7D CV"); 122 configInput(CV84_INPUT, "Level 8D CV"); 123 configInput(CV15_INPUT, "Level 1E CV"); 124 configInput(CV25_INPUT, "Level 2E CV"); 125 configInput(CV35_INPUT, "Level 3E CV"); 126 configInput(CV45_INPUT, "Level 4E CV"); 127 configInput(CV55_INPUT, "Level 5E CV"); 128 configInput(CV65_INPUT, "Level 6E CV"); 129 configInput(CV75_INPUT, "Level 7E CV"); 130 configInput(CV85_INPUT, "Level 8E CV"); 131 configInput(CV16_INPUT, "Level 1F CV"); 132 configInput(CV26_INPUT, "Level 2F CV"); 133 configInput(CV36_INPUT, "Level 3F CV"); 134 configInput(CV46_INPUT, "Level 4F CV"); 135 configInput(CV56_INPUT, "Level 5F CV"); 136 configInput(CV66_INPUT, "Level 6F CV"); 137 configInput(CV76_INPUT, "Level 7F CV"); 138 configInput(CV86_INPUT, "Level 8F CV"); 139 configInput(CV17_INPUT, "Level 1G CV"); 140 configInput(CV27_INPUT, "Level 2G CV"); 141 configInput(CV37_INPUT, "Level 3G CV"); 142 configInput(CV47_INPUT, "Level 4G CV"); 143 configInput(CV57_INPUT, "Level 5G CV"); 144 configInput(CV67_INPUT, "Level 6G CV"); 145 configInput(CV77_INPUT, "Level 7G CV"); 146 configInput(CV87_INPUT, "Level 8G CV"); 147 configInput(CV18_INPUT, "Level 1H CV"); 148 configInput(CV28_INPUT, "Level 2H CV"); 149 configInput(CV38_INPUT, "Level 3H CV"); 150 configInput(CV48_INPUT, "Level 4H CV"); 151 configInput(CV58_INPUT, "Level 5H CV"); 152 configInput(CV68_INPUT, "Level 6H CV"); 153 configInput(CV78_INPUT, "Level 7H CV"); 154 configInput(CV88_INPUT, "Level 8H CV"); 155 156 _cvs = new Input*[64]; 157 for (int i = 0; i < 64; ++i) { 158 _cvs[i] = &inputs[CV11_INPUT + i]; 159 } 160 setLocalElements({new Matrix88Element(NULL, _cvs, NULL)}); 161 setBaseModelPredicate([](Model* m) { return m == modelMatrix88 || m == modelMatrix88M; }); 162 setExpanderModelPredicate([](Model* m) { return m == modelMatrix88M; }); 163 } 164 virtual ~Matrix88Cv() { 165 delete[] _cvs; 166 } 167 168 void processAlways(const ProcessArgs& args) override; 169 }; 170 171 } // namespace bogaudio