AddrSeqX.cpp (3333B)
1 2 #include "AddrSeqX.hpp" 3 4 void AddrSeqX::processAlways(const ProcessArgs& args) { 5 int position = 0; 6 int baseID = 0; 7 if (baseConnected()) { 8 AddrSeqExpanderMessage* bm = fromBase(); 9 baseID = bm->baseID; 10 position = bm->position; 11 _rangeOffset = bm->rangeOffset; 12 _rangeScale = bm->rangeScale; 13 } 14 setBaseIDAndPosition(baseID, position); 15 if (_position < 1) { 16 for (int i = 0; i < 4; ++i) { 17 _localElements[i]->light.value = 0.0f; 18 } 19 } 20 21 if (expanderConnected()) { 22 AddrSeqExpanderMessage* te = toExpander(); 23 te->baseID = _baseID; 24 te->position = _position > 0 ? _position + 1 : 0; 25 te->rangeOffset = _rangeOffset; 26 te->rangeScale = _rangeScale; 27 } 28 } 29 30 struct AddrSeqXWidget : BGModuleWidget { 31 static constexpr int hp = 3; 32 33 AddrSeqXWidget(AddrSeqX* module) { 34 setModule(module); 35 box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); 36 setPanel(box.size, "AddrSeqX"); 37 createScrews(); 38 39 // generated by svg_widgets.rb 40 auto out1ParamPosition = Vec(14.5, 36.0); 41 auto out2ParamPosition = Vec(14.5, 77.3); 42 auto out3ParamPosition = Vec(14.5, 118.6); 43 auto out4ParamPosition = Vec(14.5, 159.9); 44 auto out5ParamPosition = Vec(14.5, 201.1); 45 auto out6ParamPosition = Vec(14.5, 242.4); 46 auto out7ParamPosition = Vec(14.5, 283.7); 47 auto out8ParamPosition = Vec(14.5, 325.0); 48 49 auto out1LightPosition = Vec(22.5, 58.5); 50 auto out2LightPosition = Vec(22.5, 99.8); 51 auto out3LightPosition = Vec(22.5, 141.1); 52 auto out4LightPosition = Vec(22.5, 182.4); 53 auto out5LightPosition = Vec(22.5, 223.6); 54 auto out6LightPosition = Vec(22.5, 264.9); 55 auto out7LightPosition = Vec(22.5, 306.2); 56 auto out8LightPosition = Vec(22.5, 347.5); 57 // end generated by svg_widgets.rb 58 59 addParam(createParam<Knob16>(out1ParamPosition, module, AddrSeqX::OUT1_PARAM)); 60 addParam(createParam<Knob16>(out2ParamPosition, module, AddrSeqX::OUT2_PARAM)); 61 addParam(createParam<Knob16>(out3ParamPosition, module, AddrSeqX::OUT3_PARAM)); 62 addParam(createParam<Knob16>(out4ParamPosition, module, AddrSeqX::OUT4_PARAM)); 63 addParam(createParam<Knob16>(out5ParamPosition, module, AddrSeqX::OUT5_PARAM)); 64 addParam(createParam<Knob16>(out6ParamPosition, module, AddrSeqX::OUT6_PARAM)); 65 addParam(createParam<Knob16>(out7ParamPosition, module, AddrSeqX::OUT7_PARAM)); 66 addParam(createParam<Knob16>(out8ParamPosition, module, AddrSeqX::OUT8_PARAM)); 67 68 addChild(createLight<BGSmallLight<GreenLight>>(out1LightPosition, module, AddrSeqX::OUT1_LIGHT)); 69 addChild(createLight<BGSmallLight<GreenLight>>(out2LightPosition, module, AddrSeqX::OUT2_LIGHT)); 70 addChild(createLight<BGSmallLight<GreenLight>>(out3LightPosition, module, AddrSeqX::OUT3_LIGHT)); 71 addChild(createLight<BGSmallLight<GreenLight>>(out4LightPosition, module, AddrSeqX::OUT4_LIGHT)); 72 addChild(createLight<BGSmallLight<GreenLight>>(out5LightPosition, module, AddrSeqX::OUT5_LIGHT)); 73 addChild(createLight<BGSmallLight<GreenLight>>(out6LightPosition, module, AddrSeqX::OUT6_LIGHT)); 74 addChild(createLight<BGSmallLight<GreenLight>>(out7LightPosition, module, AddrSeqX::OUT7_LIGHT)); 75 addChild(createLight<BGSmallLight<GreenLight>>(out8LightPosition, module, AddrSeqX::OUT8_LIGHT)); 76 } 77 }; 78 79 Model* modelAddrSeqX = createModel<AddrSeqX, AddrSeqXWidget>("Bogaudio-AddrSeqX", "ASX", "8-step chainable expander for ADDR-SEQ", "Sequencer", "Expander", "Polyphonic");