| @@ -31,10 +31,11 @@ void _8vert::step() { | |||
| } | |||
| _8vertWidget::_8vertWidget() { | |||
| _8vert *module = new _8vert(); | |||
| setModule(module); | |||
| box.size = Vec(8 * RACK_GRID_WIDTH, RACK_GRID_HEIGHT); | |||
| struct _8vertWidget : ModuleWidget { | |||
| _8vertWidget(_8vert *module); | |||
| }; | |||
| _8vertWidget::_8vertWidget(_8vert *module) : ModuleWidget(module) { | |||
| setPanel(SVG::load(assetPlugin(plugin, "res/8vert.svg"))); | |||
| addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||
| @@ -78,3 +79,6 @@ _8vertWidget::_8vertWidget() { | |||
| addChild(ModuleLightWidget::create<TinyLight<GreenRedLight>>(Vec(107.702, 281.076), module, 12)); | |||
| addChild(ModuleLightWidget::create<TinyLight<GreenRedLight>>(Vec(107.702, 319.521), module, 14)); | |||
| } | |||
| Model *model_8vertWidget = Model::create<_8vert, _8vertWidget>("Fundamental", "8vert", "8vert", ATTENUATOR_TAG); | |||
| @@ -102,17 +102,12 @@ void ADSR::step() { | |||
| } | |||
| ADSRWidget::ADSRWidget() { | |||
| ADSR *module = new ADSR(); | |||
| setModule(module); | |||
| box.size = Vec(15*8, 380); | |||
| { | |||
| SVGPanel *panel = new SVGPanel(); | |||
| panel->box.size = box.size; | |||
| panel->setBackground(SVG::load(assetPlugin(plugin, "res/ADSR.svg"))); | |||
| addChild(panel); | |||
| } | |||
| struct ADSRWidget : ModuleWidget { | |||
| ADSRWidget(ADSR *module); | |||
| }; | |||
| ADSRWidget::ADSRWidget(ADSR *module) : ModuleWidget(module) { | |||
| setPanel(SVG::load(assetPlugin(plugin, "res/ADSR.svg"))); | |||
| addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||
| addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 0))); | |||
| @@ -138,3 +133,6 @@ ADSRWidget::ADSRWidget() { | |||
| addChild(ModuleLightWidget::create<SmallLight<RedLight>>(Vec(94, 175), module, ADSR::SUSTAIN_LIGHT)); | |||
| addChild(ModuleLightWidget::create<SmallLight<RedLight>>(Vec(94, 242), module, ADSR::RELEASE_LIGHT)); | |||
| } | |||
| Model *modelADSRWidget = Model::create<ADSR, ADSRWidget>("Fundamental", "ADSR", "ADSR", ENVELOPE_GENERATOR_TAG); | |||
| @@ -107,17 +107,12 @@ void Delay::step() { | |||
| } | |||
| DelayWidget::DelayWidget() { | |||
| Delay *module = new Delay(); | |||
| setModule(module); | |||
| box.size = Vec(15*8, 380); | |||
| { | |||
| SVGPanel *panel = new SVGPanel(); | |||
| panel->box.size = box.size; | |||
| panel->setBackground(SVG::load(assetPlugin(plugin, "res/Delay.svg"))); | |||
| addChild(panel); | |||
| } | |||
| struct DelayWidget : ModuleWidget { | |||
| DelayWidget(Delay *module); | |||
| }; | |||
| DelayWidget::DelayWidget(Delay *module) : ModuleWidget(module) { | |||
| setPanel(SVG::load(assetPlugin(plugin, "res/Delay.svg"))); | |||
| addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||
| addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 0))); | |||
| @@ -136,3 +131,6 @@ DelayWidget::DelayWidget() { | |||
| addInput(Port::create<PJ301MPort>(Vec(14, 320), Port::INPUT, module, Delay::IN_INPUT)); | |||
| addOutput(Port::create<PJ301MPort>(Vec(73, 320), Port::OUTPUT, module, Delay::OUT_OUTPUT)); | |||
| } | |||
| Model *modelDelayWidget = Model::create<Delay, DelayWidget>("Fundamental", "Delay", "Delay", DELAY_TAG); | |||
| @@ -8,20 +8,20 @@ void init(rack::Plugin *p) { | |||
| p->slug = TOSTRING(SLUG); | |||
| p->version = TOSTRING(VERSION); | |||
| p->addModel(createModel<VCOWidget>("Fundamental", "VCO", "VCO-1", OSCILLATOR_TAG)); | |||
| p->addModel(createModel<VCO2Widget>("Fundamental", "VCO2", "VCO-2", OSCILLATOR_TAG)); | |||
| p->addModel(createModel<VCFWidget>("Fundamental", "VCF", "VCF", FILTER_TAG)); | |||
| p->addModel(createModel<VCAWidget>("Fundamental", "VCA", "VCA", AMPLIFIER_TAG)); | |||
| p->addModel(createModel<LFOWidget>("Fundamental", "LFO", "LFO-1", LFO_TAG)); | |||
| p->addModel(createModel<LFO2Widget>("Fundamental", "LFO2", "LFO-2", LFO_TAG)); | |||
| p->addModel(createModel<DelayWidget>("Fundamental", "Delay", "Delay", DELAY_TAG)); | |||
| p->addModel(createModel<ADSRWidget>("Fundamental", "ADSR", "ADSR", ENVELOPE_GENERATOR_TAG)); | |||
| p->addModel(createModel<VCMixerWidget>("Fundamental", "VCMixer", "VC Mixer", MIXER_TAG, AMPLIFIER_TAG)); | |||
| p->addModel(createModel<_8vertWidget>("Fundamental", "8vert", "8vert", ATTENUATOR_TAG)); | |||
| p->addModel(createModel<UnityWidget>("Fundamental", "Unity", "Unity", MIXER_TAG, UTILITY_TAG)); | |||
| p->addModel(createModel<MutesWidget>("Fundamental", "Mutes", "Mutes", SWITCH_TAG)); | |||
| p->addModel(createModel<ScopeWidget>("Fundamental", "Scope", "Scope", VISUAL_TAG)); | |||
| p->addModel(createModel<SEQ3Widget>("Fundamental", "SEQ3", "SEQ-3", SEQUENCER_TAG)); | |||
| p->addModel(createModel<SequentialSwitch1Widget>("Fundamental", "SequentialSwitch1", "Sequential Switch 1", UTILITY_TAG)); | |||
| p->addModel(createModel<SequentialSwitch2Widget>("Fundamental", "SequentialSwitch2", "Sequential Switch 2", UTILITY_TAG)); | |||
| p->addModel(modelVCOWidget); | |||
| p->addModel(modelVCO2Widget); | |||
| p->addModel(modelVCFWidget); | |||
| p->addModel(modelVCAWidget); | |||
| p->addModel(modelLFOWidget); | |||
| p->addModel(modelLFO2Widget); | |||
| p->addModel(modelDelayWidget); | |||
| p->addModel(modelADSRWidget); | |||
| p->addModel(modelVCMixerWidget); | |||
| p->addModel(model_8vertWidget); | |||
| p->addModel(modelUnityWidget); | |||
| p->addModel(modelMutesWidget); | |||
| p->addModel(modelScopeWidget); | |||
| p->addModel(modelSEQ3Widget); | |||
| p->addModel(modelSequentialSwitch1Widget); | |||
| p->addModel(modelSequentialSwitch2Widget); | |||
| } | |||
| @@ -6,72 +6,21 @@ using namespace rack; | |||
| extern Plugin *plugin; | |||
| //////////////////// | |||
| // module widgets | |||
| //////////////////// | |||
| extern Model *modelVCOWidget; | |||
| extern Model *modelVCO2Widget; | |||
| extern Model *modelVCFWidget; | |||
| extern Model *modelVCAWidget; | |||
| extern Model *modelLFOWidget; | |||
| extern Model *modelLFO2Widget; | |||
| extern Model *modelDelayWidget; | |||
| extern Model *modelADSRWidget; | |||
| extern Model *modelVCMixerWidget; | |||
| extern Model *model_8vertWidget; | |||
| extern Model *modelUnityWidget; | |||
| extern Model *modelMutesWidget; | |||
| extern Model *modelScopeWidget; | |||
| extern Model *modelSEQ3Widget; | |||
| extern Model *modelSequentialSwitch1Widget; | |||
| extern Model *modelSequentialSwitch2Widget; | |||
| struct VCOWidget : ModuleWidget { | |||
| VCOWidget(); | |||
| }; | |||
| struct VCO2Widget : ModuleWidget { | |||
| VCO2Widget(); | |||
| }; | |||
| struct VCFWidget : ModuleWidget { | |||
| VCFWidget(); | |||
| }; | |||
| struct VCAWidget : ModuleWidget { | |||
| VCAWidget(); | |||
| }; | |||
| struct LFOWidget : ModuleWidget { | |||
| LFOWidget(); | |||
| }; | |||
| struct LFO2Widget : ModuleWidget { | |||
| LFO2Widget(); | |||
| }; | |||
| struct DelayWidget : ModuleWidget { | |||
| DelayWidget(); | |||
| }; | |||
| struct ADSRWidget : ModuleWidget { | |||
| ADSRWidget(); | |||
| }; | |||
| struct VCMixerWidget : ModuleWidget { | |||
| VCMixerWidget(); | |||
| }; | |||
| struct _8vertWidget : ModuleWidget { | |||
| _8vertWidget(); | |||
| }; | |||
| struct UnityWidget : ModuleWidget { | |||
| UnityWidget(); | |||
| Menu *createContextMenu() override; | |||
| }; | |||
| struct MutesWidget : ModuleWidget { | |||
| MutesWidget(); | |||
| }; | |||
| struct ScopeWidget : ModuleWidget { | |||
| ScopeWidget(); | |||
| }; | |||
| struct SEQ3Widget : ModuleWidget { | |||
| SEQ3Widget(); | |||
| Menu *createContextMenu() override; | |||
| }; | |||
| struct SequentialSwitch1Widget : ModuleWidget { | |||
| SequentialSwitch1Widget(); | |||
| }; | |||
| struct SequentialSwitch2Widget : ModuleWidget { | |||
| SequentialSwitch2Widget(); | |||
| }; | |||
| @@ -120,17 +120,12 @@ void LFO::step() { | |||
| } | |||
| LFOWidget::LFOWidget() { | |||
| LFO *module = new LFO(); | |||
| setModule(module); | |||
| box.size = Vec(15*10, 380); | |||
| { | |||
| SVGPanel *panel = new SVGPanel(); | |||
| panel->box.size = box.size; | |||
| panel->setBackground(SVG::load(assetPlugin(plugin, "res/LFO-1.svg"))); | |||
| addChild(panel); | |||
| } | |||
| struct LFOWidget : ModuleWidget { | |||
| LFOWidget(LFO *module); | |||
| }; | |||
| LFOWidget::LFOWidget(LFO *module) : ModuleWidget(module) { | |||
| setPanel(SVG::load(assetPlugin(plugin, "res/LFO-1.svg"))); | |||
| addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||
| addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 0))); | |||
| @@ -160,6 +155,8 @@ LFOWidget::LFOWidget() { | |||
| } | |||
| Model *modelLFOWidget = Model::create<LFO, LFOWidget>("Fundamental", "LFO", "LFO-1", LFO_TAG); | |||
| struct LFO2 : Module { | |||
| enum ParamIds { | |||
| @@ -216,17 +213,12 @@ void LFO2::step() { | |||
| } | |||
| LFO2Widget::LFO2Widget() { | |||
| LFO2 *module = new LFO2(); | |||
| setModule(module); | |||
| box.size = Vec(15*6, 380); | |||
| struct LFO2Widget : ModuleWidget { | |||
| LFO2Widget(LFO2 *module); | |||
| }; | |||
| { | |||
| SVGPanel *panel = new SVGPanel(); | |||
| panel->box.size = box.size; | |||
| panel->setBackground(SVG::load(assetPlugin(plugin, "res/LFO-2.svg"))); | |||
| addChild(panel); | |||
| } | |||
| LFO2Widget::LFO2Widget(LFO2 *module) : ModuleWidget(module) { | |||
| setPanel(SVG::load(assetPlugin(plugin, "res/LFO-2.svg"))); | |||
| addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||
| addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 0))); | |||
| @@ -248,3 +240,6 @@ LFO2Widget::LFO2Widget() { | |||
| addChild(ModuleLightWidget::create<SmallLight<GreenRedLight>>(Vec(68, 42.5f), module, LFO2::PHASE_POS_LIGHT)); | |||
| } | |||
| Model *modelLFO2Widget = Model::create<LFO2, LFO2Widget>("Fundamental", "LFO2", "LFO-2", LFO_TAG); | |||
| @@ -86,9 +86,12 @@ struct MuteLight : BASE { | |||
| } | |||
| }; | |||
| MutesWidget::MutesWidget() { | |||
| Mutes *module = new Mutes(); | |||
| setModule(module); | |||
| struct MutesWidget : ModuleWidget { | |||
| MutesWidget(Mutes *module); | |||
| }; | |||
| MutesWidget::MutesWidget(Mutes *module) : ModuleWidget(module) { | |||
| setPanel(SVG::load(assetPlugin(plugin, "res/Mutes.svg"))); | |||
| addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||
| @@ -140,3 +143,6 @@ MutesWidget::MutesWidget() { | |||
| addChild(ModuleLightWidget::create<MuteLight<GreenLight>>(mm2px(Vec(17.32, 98.915)), module, Mutes::MUTE_LIGHT + 8)); | |||
| addChild(ModuleLightWidget::create<MuteLight<GreenLight>>(mm2px(Vec(17.32, 108.915)), module, Mutes::MUTE_LIGHT + 9)); | |||
| } | |||
| Model *modelMutesWidget = Model::create<Mutes, MutesWidget>("Fundamental", "Mutes", "Mutes", SWITCH_TAG); | |||
| @@ -211,17 +211,13 @@ void SEQ3::step() { | |||
| } | |||
| SEQ3Widget::SEQ3Widget() { | |||
| SEQ3 *module = new SEQ3(); | |||
| setModule(module); | |||
| box.size = Vec(15*22, 380); | |||
| { | |||
| SVGPanel *panel = new SVGPanel(); | |||
| panel->box.size = box.size; | |||
| panel->setBackground(SVG::load(assetPlugin(plugin, "res/SEQ3.svg"))); | |||
| addChild(panel); | |||
| } | |||
| struct SEQ3Widget : ModuleWidget { | |||
| SEQ3Widget(SEQ3 *module); | |||
| Menu *createContextMenu() override; | |||
| }; | |||
| SEQ3Widget::SEQ3Widget(SEQ3 *module) : ModuleWidget(module) { | |||
| setPanel(SVG::load(assetPlugin(plugin, "res/SEQ3.svg"))); | |||
| addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||
| addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 0))); | |||
| @@ -303,3 +299,6 @@ Menu *SEQ3Widget::createContextMenu() { | |||
| return menu; | |||
| } | |||
| Model *modelSEQ3Widget = Model::create<SEQ3, SEQ3Widget>("Fundamental", "SEQ3", "SEQ-3", SEQUENCER_TAG); | |||
| @@ -299,17 +299,12 @@ struct ScopeDisplay : TransparentWidget { | |||
| }; | |||
| ScopeWidget::ScopeWidget() { | |||
| Scope *module = new Scope(); | |||
| setModule(module); | |||
| box.size = Vec(15*13, 380); | |||
| struct ScopeWidget : ModuleWidget { | |||
| ScopeWidget(Scope *module); | |||
| }; | |||
| { | |||
| SVGPanel *panel = new SVGPanel(); | |||
| panel->box.size = box.size; | |||
| panel->setBackground(SVG::load(assetPlugin(plugin, "res/Scope.svg"))); | |||
| addChild(panel); | |||
| } | |||
| ScopeWidget::ScopeWidget(Scope *module) : ModuleWidget(module) { | |||
| setPanel(SVG::load(assetPlugin(plugin, "res/Scope.svg"))); | |||
| addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||
| addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 0))); | |||
| @@ -342,3 +337,6 @@ ScopeWidget::ScopeWidget() { | |||
| addChild(ModuleLightWidget::create<SmallLight<GreenLight>>(Vec(150, 251), module, Scope::INTERNAL_LIGHT)); | |||
| addChild(ModuleLightWidget::create<SmallLight<GreenLight>>(Vec(150, 296), module, Scope::EXTERNAL_LIGHT)); | |||
| } | |||
| Model *modelScopeWidget = Model::create<Scope, ScopeWidget>("Fundamental", "Scope", "Scope", VISUAL_TAG); | |||
| @@ -75,10 +75,12 @@ struct SequentialSwitch : Module { | |||
| }; | |||
| SequentialSwitch1Widget::SequentialSwitch1Widget() { | |||
| struct SequentialSwitch1Widget : ModuleWidget { | |||
| SequentialSwitch1Widget(SequentialSwitch<1> *module); | |||
| }; | |||
| SequentialSwitch1Widget::SequentialSwitch1Widget(SequentialSwitch<1> *module) : ModuleWidget(module) { | |||
| typedef SequentialSwitch<1> TSequentialSwitch; | |||
| TSequentialSwitch *module = new TSequentialSwitch(); | |||
| setModule(module); | |||
| setPanel(SVG::load(assetPlugin(plugin, "res/SequentialSwitch1.svg"))); | |||
| addChild(Widget::create<ScrewSilver>(Vec(RACK_GRID_WIDTH, 0))); | |||
| @@ -102,10 +104,15 @@ SequentialSwitch1Widget::SequentialSwitch1Widget() { | |||
| } | |||
| SequentialSwitch2Widget::SequentialSwitch2Widget() { | |||
| Model *modelSequentialSwitch1Widget = Model::create<SequentialSwitch<1>, SequentialSwitch1Widget>("Fundamental", "SequentialSwitch1", "Sequential Switch 1", UTILITY_TAG); | |||
| struct SequentialSwitch2Widget : ModuleWidget { | |||
| SequentialSwitch2Widget(SequentialSwitch<2> *module); | |||
| }; | |||
| SequentialSwitch2Widget::SequentialSwitch2Widget(SequentialSwitch<2> *module) : ModuleWidget(module) { | |||
| typedef SequentialSwitch<2> TSequentialSwitch; | |||
| TSequentialSwitch *module = new TSequentialSwitch(); | |||
| setModule(module); | |||
| setPanel(SVG::load(assetPlugin(plugin, "res/SequentialSwitch2.svg"))); | |||
| addChild(Widget::create<ScrewSilver>(Vec(RACK_GRID_WIDTH, 0))); | |||
| @@ -127,3 +134,6 @@ SequentialSwitch2Widget::SequentialSwitch2Widget() { | |||
| addChild(ModuleLightWidget::create<TinyLight<GreenLight>>(mm2px(Vec(10.7321, 82.6285)), module, TSequentialSwitch::CHANNEL_LIGHT + 2)); | |||
| addChild(ModuleLightWidget::create<TinyLight<GreenLight>>(mm2px(Vec(10.7321, 92.6276)), module, TSequentialSwitch::CHANNEL_LIGHT + 3)); | |||
| } | |||
| Model *modelSequentialSwitch2Widget = Model::create<SequentialSwitch<2>, SequentialSwitch2Widget>("Fundamental", "SequentialSwitch2", "Sequential Switch 2", UTILITY_TAG); | |||
| @@ -90,9 +90,12 @@ void Unity::step() { | |||
| } | |||
| UnityWidget::UnityWidget() { | |||
| Unity *module = new Unity(); | |||
| setModule(module); | |||
| struct UnityWidget : ModuleWidget { | |||
| UnityWidget(Unity *module); | |||
| Menu *createContextMenu() override; | |||
| }; | |||
| UnityWidget::UnityWidget(Unity *module) : ModuleWidget(module) { | |||
| setPanel(SVG::load(assetPlugin(plugin, "res/Unity.svg"))); | |||
| addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||
| @@ -160,3 +163,6 @@ Menu *UnityWidget::createContextMenu() { | |||
| return menu; | |||
| } | |||
| Model *modelUnityWidget = Model::create<Unity, UnityWidget>("Fundamental", "Unity", "Unity", MIXER_TAG, UTILITY_TAG); | |||
| @@ -43,17 +43,12 @@ void VCA::step() { | |||
| } | |||
| VCAWidget::VCAWidget() { | |||
| VCA *module = new VCA(); | |||
| setModule(module); | |||
| box.size = Vec(15*6, 380); | |||
| struct VCAWidget : ModuleWidget { | |||
| VCAWidget(VCA *module); | |||
| }; | |||
| { | |||
| SVGPanel *panel = new SVGPanel(); | |||
| panel->box.size = box.size; | |||
| panel->setBackground(SVG::load(assetPlugin(plugin, "res/VCA.svg"))); | |||
| addChild(panel); | |||
| } | |||
| VCAWidget::VCAWidget(VCA *module) : ModuleWidget(module) { | |||
| setPanel(SVG::load(assetPlugin(plugin, "res/VCA.svg"))); | |||
| addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||
| addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 0))); | |||
| @@ -73,3 +68,6 @@ VCAWidget::VCAWidget() { | |||
| addOutput(Port::create<PJ301MPort>(Vec(54, 156), Port::OUTPUT, module, VCA::OUT1_OUTPUT)); | |||
| addOutput(Port::create<PJ301MPort>(Vec(54, 320), Port::OUTPUT, module, VCA::OUT2_OUTPUT)); | |||
| } | |||
| Model *modelVCAWidget = Model::create<VCA, VCAWidget>("Fundamental", "VCA", "VCA", AMPLIFIER_TAG); | |||
| @@ -144,17 +144,12 @@ void VCF::step() { | |||
| } | |||
| VCFWidget::VCFWidget() { | |||
| VCF *module = new VCF(); | |||
| setModule(module); | |||
| box.size = Vec(15*8, 380); | |||
| { | |||
| SVGPanel *panel = new SVGPanel(); | |||
| panel->box.size = box.size; | |||
| panel->setBackground(SVG::load(assetPlugin(plugin, "res/VCF.svg"))); | |||
| addChild(panel); | |||
| } | |||
| struct VCFWidget : ModuleWidget { | |||
| VCFWidget(VCF *module); | |||
| }; | |||
| VCFWidget::VCFWidget(VCF *module) : ModuleWidget(module) { | |||
| setPanel(SVG::load(assetPlugin(plugin, "res/VCF.svg"))); | |||
| addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||
| addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 0))); | |||
| @@ -175,3 +170,6 @@ VCFWidget::VCFWidget() { | |||
| addOutput(Port::create<PJ301MPort>(Vec(48, 320), Port::OUTPUT, module, VCF::LPF_OUTPUT)); | |||
| addOutput(Port::create<PJ301MPort>(Vec(85, 320), Port::OUTPUT, module, VCF::HPF_OUTPUT)); | |||
| } | |||
| Model *modelVCFWidget = Model::create<VCF, VCFWidget>("Fundamental", "VCF", "VCF", FILTER_TAG); | |||
| @@ -46,17 +46,12 @@ void VCMixer::step() { | |||
| } | |||
| VCMixerWidget::VCMixerWidget() { | |||
| VCMixer *module = new VCMixer(); | |||
| setModule(module); | |||
| box.size = Vec(15*10, 380); | |||
| struct VCMixerWidget : ModuleWidget { | |||
| VCMixerWidget(VCMixer *module); | |||
| }; | |||
| { | |||
| SVGPanel *panel = new SVGPanel(); | |||
| panel->box.size = box.size; | |||
| panel->setBackground(SVG::load(assetPlugin(plugin, "res/VCMixer.svg"))); | |||
| addChild(panel); | |||
| } | |||
| VCMixerWidget::VCMixerWidget(VCMixer *module) : ModuleWidget(module) { | |||
| setPanel(SVG::load(assetPlugin(plugin, "res/VCMixer.svg"))); | |||
| addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||
| addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 0))); | |||
| @@ -81,3 +76,6 @@ VCMixerWidget::VCMixerWidget() { | |||
| addOutput(Port::create<PJ301MPort>(Vec(110, 225), Port::OUTPUT, module, VCMixer::CH2_OUTPUT)); | |||
| addOutput(Port::create<PJ301MPort>(Vec(110, 306), Port::OUTPUT, module, VCMixer::CH3_OUTPUT)); | |||
| } | |||
| Model *modelVCMixerWidget = Model::create<VCMixer, VCMixerWidget>("Fundamental", "VCMixer", "VC Mixer", MIXER_TAG, AMPLIFIER_TAG); | |||