TestExpander.cpp (2789B)
1 2 #include "TestExpander.hpp" 3 4 int TestExpanderBase::channels() { 5 return inputs[IN_INPUT].getChannels(); 6 } 7 8 void TestExpanderBase::processAll(const ProcessArgs& args) { 9 outputs[OUT_OUTPUT].setChannels(_channels); 10 lights[COM_LIGHT].value = expanderConnected(); 11 } 12 13 void TestExpanderBase::processChannel(const ProcessArgs& args, int c) { 14 if (expanderConnected()) { 15 toExpander()->sample[c] = inputs[IN_INPUT].getPolyVoltage(c); 16 outputs[OUT_OUTPUT].setVoltage(fromExpander()->sample[c], c); 17 } 18 else { 19 outputs[OUT_OUTPUT].setVoltage(inputs[IN_INPUT].getPolyVoltage(c), c); 20 } 21 } 22 23 struct TestExpanderBaseWidget : BGModuleWidget { 24 static constexpr int hp = 3; 25 26 TestExpanderBaseWidget(TestExpanderBase* module) { 27 setModule(module); 28 box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); 29 setPanel(box.size, "TestExpanderBase"); 30 createScrews(); 31 32 // generated by svg_widgets.rb 33 auto inInputPosition = Vec(10.5, 263.0); 34 35 auto outOutputPosition = Vec(10.5, 301.0); 36 37 auto comLightPosition = Vec(10.0, 245.5); 38 // end generated by svg_widgets.rb 39 40 addInput(createInput<Port24>(inInputPosition, module, TestExpanderBase::IN_INPUT)); 41 42 addOutput(createOutput<Port24>(outOutputPosition, module, TestExpanderBase::OUT_OUTPUT)); 43 44 addChild(createLight<BGSmallLight<GreenLight>>(comLightPosition, module, TestExpanderBase::COM_LIGHT)); 45 } 46 }; 47 48 Model* modelTestExpanderBase = createModel<TestExpanderBase, TestExpanderBaseWidget>("Bogaudio-TestExpanderBase", "TEB", "expanders test base module"); 49 50 51 void TestExpanderExtension::processAll(const ProcessArgs& args) { 52 outputs[OUT_OUTPUT].setChannels(_channels); 53 lights[COM_LIGHT].value = baseConnected(); 54 } 55 56 void TestExpanderExtension::processChannel(const ProcessArgs& args, int c) { 57 if (baseConnected()) { 58 float sample = fromBase()->sample[c]; 59 toBase()->sample[c] = -sample; 60 outputs[OUT_OUTPUT].setVoltage(sample, c); 61 } 62 else { 63 outputs[OUT_OUTPUT].setVoltage(0.0f, c); 64 } 65 } 66 67 struct TestExpanderExtensionWidget : BGModuleWidget { 68 static constexpr int hp = 3; 69 70 TestExpanderExtensionWidget(TestExpanderExtension* module) { 71 setModule(module); 72 box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); 73 setPanel(box.size, "TestExpanderExtension"); 74 createScrews(); 75 76 // generated by svg_widgets.rb 77 auto outOutputPosition = Vec(10.5, 301.0); 78 79 auto comLightPosition = Vec(10.0, 280.5); 80 // end generated by svg_widgets.rb 81 82 addOutput(createOutput<Port24>(outOutputPosition, module, TestExpanderExtension::OUT_OUTPUT)); 83 84 addChild(createLight<BGSmallLight<GreenLight>>(comLightPosition, module, TestExpanderExtension::COM_LIGHT)); 85 } 86 }; 87 88 Model* modelTestExpanderExtension = createModel<TestExpanderExtension, TestExpanderExtensionWidget>("Bogaudio-TestExpanderExtension", "TEE", "expanders test expander module");