#include "plugin.hpp" struct Streams : Module { enum ParamIds { BUTTON_1_PARAM, BUTTON_2_PARAM, SHAPE_1_PARAM, SHAPE_2_PARAM, MOD_1_PARAM, MOD_2_PARAM, METER_PARAM, KNOB_1_PARAM, LEVEL_MOD_1_PARAM, LEVEL_MOD_2_PARAM, KNOB_2_PARAM, NUM_PARAMS }; enum InputIds { EXCITE_1_INPUT, IN_1_INPUT, IN_2_INPUT, EXCITE_2_INPUT, LEVEL_1_INPUT, LEVEL_2_INPUT, NUM_INPUTS }; enum OutputIds { OUT_1_OUTPUT, OUT_2_OUTPUT, NUM_OUTPUTS }; enum LightIds { METER_1_LIGHT, CIRCLE2329_LIGHT, CIRCLE2323_LIGHT, CIRCLE2331_LIGHT, CIRCLE2325_LIGHT, CIRCLE2333_LIGHT, CIRCLE2327_LIGHT, CIRCLE2335_LIGHT, NUM_LIGHTS }; Streams() { config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); configParam(BUTTON_1_PARAM, 0.f, 1.f, 0.f, ""); configParam(BUTTON_2_PARAM, 0.f, 1.f, 0.f, ""); configParam(SHAPE_1_PARAM, 0.f, 1.f, 0.5f, ""); configParam(SHAPE_2_PARAM, 0.f, 1.f, 0.5f, ""); configParam(MOD_1_PARAM, 0.f, 1.f, 0.5f, ""); configParam(MOD_2_PARAM, 0.f, 1.f, 0.5f, ""); configParam(METER_PARAM, 0.f, 1.f, 0.f, ""); configParam(KNOB_1_PARAM, 0.f, 1.f, 0.5f, ""); configParam(LEVEL_MOD_1_PARAM, 0.f, 1.f, 0.5f, ""); configParam(LEVEL_MOD_2_PARAM, 0.f, 1.f, 0.5f, ""); configParam(KNOB_2_PARAM, 0.f, 1.f, 0.5f, ""); } void process(const ProcessArgs& args) override { lights[METER_1_LIGHT].setBrightness(1); lights[CIRCLE2329_LIGHT].setBrightness(1); lights[CIRCLE2323_LIGHT].setBrightness(1); lights[CIRCLE2331_LIGHT].setBrightness(1); lights[CIRCLE2325_LIGHT].setBrightness(1); lights[CIRCLE2333_LIGHT].setBrightness(1); lights[CIRCLE2327_LIGHT].setBrightness(1); lights[CIRCLE2335_LIGHT].setBrightness(1); } }; struct StreamsWidget : ModuleWidget { StreamsWidget(Streams* module) { setModule(module); setPanel(APP->window->loadSvg(asset::plugin(pluginInstance, "res/Streams.svg"))); addChild(createWidget(Vec(RACK_GRID_WIDTH, 0))); addChild(createWidget(Vec(box.size.x - 2 * RACK_GRID_WIDTH, 0))); addChild(createWidget(Vec(RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH))); addChild(createWidget(Vec(box.size.x - 2 * RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH))); addParam(createParamCentered(mm2px(Vec(24.715, 15.025)), module, Streams::BUTTON_1_PARAM)); addParam(createParamCentered(mm2px(Vec(36.135, 15.025)), module, Streams::BUTTON_2_PARAM)); addParam(createParamCentered(mm2px(Vec(11.065, 21.055)), module, Streams::SHAPE_1_PARAM)); addParam(createParamCentered(mm2px(Vec(49.785, 21.055)), module, Streams::SHAPE_2_PARAM)); addParam(createParamCentered(mm2px(Vec(11.065, 44.555)), module, Streams::MOD_1_PARAM)); addParam(createParamCentered(mm2px(Vec(49.785, 44.555)), module, Streams::MOD_2_PARAM)); addParam(createParamCentered(mm2px(Vec(30.425, 46.775)), module, Streams::METER_PARAM)); addParam(createParamCentered(mm2px(Vec(30.425, 60.745)), module, Streams::KNOB_1_PARAM)); addParam(createParamCentered(mm2px(Vec(11.065, 68.045)), module, Streams::LEVEL_MOD_1_PARAM)); addParam(createParamCentered(mm2px(Vec(49.785, 68.045)), module, Streams::LEVEL_MOD_2_PARAM)); addParam(createParamCentered(mm2px(Vec(30.425, 75.345)), module, Streams::KNOB_2_PARAM)); addInput(createInputCentered(mm2px(Vec(8.506, 96.615)), module, Streams::EXCITE_1_INPUT)); addInput(createInputCentered(mm2px(Vec(23.116, 96.615)), module, Streams::IN_1_INPUT)); addInput(createInputCentered(mm2px(Vec(37.726, 96.615)), module, Streams::IN_2_INPUT)); addInput(createInputCentered(mm2px(Vec(52.335, 96.615)), module, Streams::EXCITE_2_INPUT)); addInput(createInputCentered(mm2px(Vec(8.506, 111.225)), module, Streams::LEVEL_1_INPUT)); addInput(createInputCentered(mm2px(Vec(52.335, 111.225)), module, Streams::LEVEL_2_INPUT)); addOutput(createOutputCentered(mm2px(Vec(23.116, 111.225)), module, Streams::OUT_1_OUTPUT)); addOutput(createOutputCentered(mm2px(Vec(37.726, 111.225)), module, Streams::OUT_2_OUTPUT)); addChild(createLightCentered>(mm2px(Vec(24.715, 22.005)), module, Streams::METER_1_LIGHT)); addChild(createLightCentered>(mm2px(Vec(36.135, 22.005)), module, Streams::CIRCLE2329_LIGHT)); addChild(createLightCentered>(mm2px(Vec(24.715, 27.725)), module, Streams::CIRCLE2323_LIGHT)); addChild(createLightCentered>(mm2px(Vec(36.135, 27.725)), module, Streams::CIRCLE2331_LIGHT)); addChild(createLightCentered>(mm2px(Vec(24.715, 33.445)), module, Streams::CIRCLE2325_LIGHT)); addChild(createLightCentered>(mm2px(Vec(36.135, 33.445)), module, Streams::CIRCLE2333_LIGHT)); addChild(createLightCentered>(mm2px(Vec(24.715, 39.166)), module, Streams::CIRCLE2327_LIGHT)); addChild(createLightCentered>(mm2px(Vec(36.135, 39.166)), module, Streams::CIRCLE2335_LIGHT)); } }; Model* modelStreams = createModel("Streams");