From d8e3b00b5aa08313ed6ea21da0c9f074dba1db14 Mon Sep 17 00:00:00 2001 From: Andrew Belt Date: Wed, 20 Feb 2019 03:49:20 -0500 Subject: [PATCH] Refactor Mutes --- src/Mutes.cpp | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/Mutes.cpp b/src/Mutes.cpp index 4168458..0d68ded 100644 --- a/src/Mutes.cpp +++ b/src/Mutes.cpp @@ -32,8 +32,11 @@ struct Mutes : Module { } void process(const ProcessArgs &args) override { + const float zero[16] = {}; float out[16] = {}; int channels = 1; + + // Iterate rows for (int i = 0; i < 10; i++) { // Process trigger if (muteTrigger[i].process(params[MUTE_PARAM + i].getValue() > 0.f)) @@ -46,17 +49,14 @@ struct Mutes : Module { channels = inputs[IN_INPUT + i].getChannels(); } - // Set output and light - outputs[OUT_OUTPUT + i].setChannels(channels); - if (state[i]) { - outputs[OUT_OUTPUT + i].setVoltages(out); - lights[MUTE_LIGHT + i].setBrightness(0.9f); - } - else { - for (int c = 0; c < channels; c++) - outputs[OUT_OUTPUT + i].setVoltage(0.f); - lights[MUTE_LIGHT + i].setBrightness(0.f); + // Set output + if (outputs[OUT_OUTPUT + i].isConnected()) { + outputs[OUT_OUTPUT + i].setChannels(channels); + outputs[OUT_OUTPUT + i].setVoltages(state[i] ? out : zero); } + + // Set light + lights[MUTE_LIGHT + i].setBrightness(state[i] ? 0.9f : 0.f); } } @@ -73,6 +73,7 @@ struct Mutes : Module { json_t *dataToJson() override { json_t *rootJ = json_object(); + // states json_t *statesJ = json_array(); for (int i = 0; i < 10; i++) { @@ -80,6 +81,7 @@ struct Mutes : Module { json_array_append_new(statesJ, stateJ); } json_object_set_new(rootJ, "states", statesJ); + return rootJ; }