AddrSeqX.hpp (2116B)
1 #pragma once 2 3 #include "AddrSeq_shared.hpp" 4 5 namespace bogaudio { 6 7 typedef ChainableExpanderModule<AddrSeqExpanderMessage, AddrSeqStep, 8, BGModule> AddrSeqXBase; 8 9 struct AddrSeqX : AddrSeqXBase, OutputRange { 10 enum ParamsIds { 11 OUT1_PARAM, 12 OUT2_PARAM, 13 OUT3_PARAM, 14 OUT4_PARAM, 15 OUT5_PARAM, 16 OUT6_PARAM, 17 OUT7_PARAM, 18 OUT8_PARAM, 19 NUM_PARAMS 20 }; 21 22 enum InputsIds { 23 NUM_INPUTS 24 }; 25 26 enum OutputsIds { 27 NUM_OUTPUTS 28 }; 29 30 enum LightsIds { 31 OUT1_LIGHT, 32 OUT2_LIGHT, 33 OUT3_LIGHT, 34 OUT4_LIGHT, 35 OUT5_LIGHT, 36 OUT6_LIGHT, 37 OUT7_LIGHT, 38 OUT8_LIGHT, 39 NUM_LIGHTS 40 }; 41 42 AddrSeqX() { 43 config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); 44 configParam<OutputRangeParamQuantity>(OUT1_PARAM, -1.0f, 1.0f, 0.0f, "Step 1", " V"); 45 configParam<OutputRangeParamQuantity>(OUT2_PARAM, -1.0f, 1.0f, 0.0f, "Step 2", " V"); 46 configParam<OutputRangeParamQuantity>(OUT3_PARAM, -1.0f, 1.0f, 0.0f, "Step 3", " V"); 47 configParam<OutputRangeParamQuantity>(OUT4_PARAM, -1.0f, 1.0f, 0.0f, "Step 4", " V"); 48 configParam<OutputRangeParamQuantity>(OUT5_PARAM, -1.0f, 1.0f, 0.0f, "Step 5", " V"); 49 configParam<OutputRangeParamQuantity>(OUT6_PARAM, -1.0f, 1.0f, 0.0f, "Step 6", " V"); 50 configParam<OutputRangeParamQuantity>(OUT7_PARAM, -1.0f, 1.0f, 0.0f, "Step 7", " V"); 51 configParam<OutputRangeParamQuantity>(OUT8_PARAM, -1.0f, 1.0f, 0.0f, "Step 8", " V"); 52 53 setLocalElements({ 54 new AddrSeqStep(params[OUT1_PARAM], lights[OUT1_LIGHT]), 55 new AddrSeqStep(params[OUT2_PARAM], lights[OUT2_LIGHT]), 56 new AddrSeqStep(params[OUT3_PARAM], lights[OUT3_LIGHT]), 57 new AddrSeqStep(params[OUT4_PARAM], lights[OUT4_LIGHT]), 58 new AddrSeqStep(params[OUT5_PARAM], lights[OUT5_LIGHT]), 59 new AddrSeqStep(params[OUT6_PARAM], lights[OUT6_LIGHT]), 60 new AddrSeqStep(params[OUT7_PARAM], lights[OUT7_LIGHT]), 61 new AddrSeqStep(params[OUT8_PARAM], lights[OUT8_LIGHT]) 62 }); 63 setBaseModelPredicate([](Model* m) { return m == modelAddrSeq || m == modelAddrSeqX; }); 64 setExpanderModelPredicate([](Model* m) { return m == modelAddrSeqX; }); 65 } 66 67 void processAlways(const ProcessArgs& args) override; 68 }; 69 70 } // namespace bogaudio