MCPcopy Create free account
hub / github.com/VCVRack/Befaco / AtteWidget

Class AtteWidget

src/Atte.cpp:134–185  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

132
133
134struct AtteWidget : ModuleWidget {
135 AtteWidget(Atte* module) {
136 setModule(module);
137 setPanel(createPanel(asset::plugin(pluginInstance, "res/panels/Atte.svg")));
138
139 addChild(createWidget<Knurlie>(Vec(RACK_GRID_WIDTH, 0)));
140 addChild(createWidget<Knurlie>(Vec(RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH)));
141
142 addParam(createParam<CKSSNarrow>(mm2px(Vec(1.168, 10.207)), module, Atte::MODE_A_PARAM));
143 addParam(createParamCentered<BefacoTinyKnob>(mm2px(Vec(12.2, 13.8)), module, Atte::GAIN_A_PARAM));
144 addParam(createParam<CKSSNarrow>(mm2px(Vec(1.168, 26.174)), module, Atte::MODE_B_PARAM));
145 addParam(createParamCentered<BefacoTinyKnobLightGrey>(mm2px(Vec(12.2, 29.767)), module, Atte::GAIN_B_PARAM));
146 addParam(createParam<CKSSNarrow>(mm2px(Vec(1.168, 42.14)), module, Atte::MODE_C_PARAM));
147 addParam(createParamCentered<BefacoTinyKnobDarkGrey>(mm2px(Vec(12.2, 45.733)), module, Atte::GAIN_C_PARAM));
148 addParam(createParam<CKSSNarrow>(mm2px(Vec(1.168, 58.107)), module, Atte::MODE_D_PARAM));
149 addParam(createParamCentered<BefacoTinyKnobBlack>(mm2px(Vec(12.2, 61.7)), module, Atte::GAIN_D_PARAM));
150
151 addInput(createInputCentered<BefacoInputPort>(mm2px(Vec(5.0, 76.6)), module, Atte::A_INPUT));
152 addInput(createInputCentered<BefacoInputPort>(mm2px(Vec(5.0, 88.9)), module, Atte::B_INPUT));
153 addInput(createInputCentered<BefacoInputPort>(mm2px(Vec(5.0, 101.2)), module, Atte::C_INPUT));
154 addInput(createInputCentered<BefacoInputPort>(mm2px(Vec(5.0, 113.5)), module, Atte::D_INPUT));
155
156 addOutput(createOutputCentered<BefacoOutputPort>(mm2px(Vec(14.978, 76.6)), module, Atte::A_OUTPUT));
157 addOutput(createOutputCentered<BefacoOutputPort>(mm2px(Vec(14.978, 88.9)), module, Atte::B_OUTPUT));
158 addOutput(createOutputCentered<BefacoOutputPort>(mm2px(Vec(14.978, 101.2)), module, Atte::C_OUTPUT));
159 addOutput(createOutputCentered<BefacoOutputPort>(mm2px(Vec(14.978, 113.5)), module, Atte::D_OUTPUT));
160
161 addChild(createLightCentered<SmallLight<RedGreenBlueLight>>(mm2px(Vec(2.9, 20.85)), module, Atte::A_LIGHT));
162 addChild(createLightCentered<SmallLight<RedGreenBlueLight>>(mm2px(Vec(2.9, 36.817)), module, Atte::B_LIGHT));
163 addChild(createLightCentered<SmallLight<RedGreenBlueLight>>(mm2px(Vec(2.9, 52.783)), module, Atte::C_LIGHT));
164 addChild(createLightCentered<SmallLight<RedGreenBlueLight>>(mm2px(Vec(2.9, 68.75)), module, Atte::D_LIGHT));
165 }
166
167 void appendContextMenu(Menu* menu) override {
168
169 Atte* module = dynamic_cast<Atte*>(this->module);
170 assert(module);
171
172 // user can pick +1V, +5V or +10V for the normalled voltage
173 menu->addChild(createIndexPtrSubmenuItem("Normalled voltage", {"+1V", "+5V", "+10V"}, &module->normalledVoltageIdx));
174 }
175
176 void step() override {
177 Atte* module = dynamic_cast<Atte*>(this->module);
178
179 if (module) {
180 module->getInputInfo(Atte::A_INPUT)->description = "Normalled to +" + string::f("%.0gV", module->normalledVoltages[module->normalledVoltageIdx]);
181 }
182
183 ModuleWidget::step();
184 }
185};
186
187
188Model* modelAtte = createModel<Atte, AtteWidget>("Atte");

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected