Browse Source

Muxlicer: made clock options static variable (rather than function which was daft)

tags/v2.1.0
hemmer 3 years ago
parent
commit
2fa45f0392
1 changed files with 7 additions and 10 deletions
  1. +7
    -10
      src/Muxlicer.cpp

+ 7
- 10
src/Muxlicer.cpp View File

@@ -178,11 +178,9 @@ struct MultDivClock {
}
};

static std::vector<int> getClockOptions() {
return std::vector<int> {-16, -8, -4, -3, -2, 1, 2, 3, 4, 8, 16};
}
static const std::vector<int> clockOptions = {-16, -8, -4, -3, -2, 1, 2, 3, 4, 8, 16};

std::string getClockOptionString(const int clockOption) {
inline std::string getClockOptionString(const int clockOption) {
return (clockOption < 0) ? ("x 1/" + std::to_string(-clockOption)) : ("x " + std::to_string(clockOption));
}

@@ -282,7 +280,7 @@ struct Muxlicer : Module {
struct TapTempoKnobParamQuantity : ParamQuantity {
std::string getDisplayValueString() override {
if (module != nullptr) {
const std::vector<int> clockOptions = getClockOptions();
const int clockOptionIndex = clamp(int(ParamQuantity::getValue()), 0, clockOptions.size());
return getClockOptionString(clockOptions[clockOptionIndex]);
}
@@ -297,7 +295,7 @@ struct Muxlicer : Module {
configParam(Muxlicer::PLAY_PARAM, STATE_PLAY_ONCE, STATE_PLAY, STATE_STOPPED, "Play switch");
configParam(Muxlicer::ADDRESS_PARAM, -1.f, 7.f, -1.f, "Address");
configParam(Muxlicer::GATE_MODE_PARAM, -1.f, 8.f, 0.f, "Gate mode");
const int numClockOptions = getClockOptions().size();
const int numClockOptions = clockOptions.size();
configParam<TapTempoKnobParamQuantity>(Muxlicer::TAP_TEMPO_PARAM, 0, numClockOptions - 1, numClockOptions / 2, "Main clock mult/div");

for (int i = 0; i < SEQUENCE_LENGTH; ++i) {
@@ -328,8 +326,7 @@ struct Muxlicer : Module {
externalClockPulseReceived = true;
tapped = false;
}

const std::vector<int> clockOptions = getClockOptions();
const int clockOptionFromDial = clockOptions[int(params[TAP_TEMPO_PARAM].getValue())];
mainClockMultDiv.multDiv = clockOptionFromDial;

@@ -745,7 +742,7 @@ struct MuxlicerWidget : ModuleWidget {
Menu* createChildMenu() override {
Menu* menu = new Menu;

for (int clockOption : getClockOptions()) {
for (int clockOption : clockOptions) {
std::string optionString = getClockOptionString(clockOption);
OutputClockScalingChildItem* clockItem = createMenuItem<OutputClockScalingChildItem>(optionString,
CHECKMARK(module->outputClockMultDiv.multDiv == clockOption));
@@ -775,7 +772,7 @@ struct MuxlicerWidget : ModuleWidget {
Menu* menu = new Menu;

int i = 0;
for (int clockOption : getClockOptions()) {
for (int clockOption : clockOptions) {
std::string optionString = getClockOptionString(clockOption);
MainClockScalingChildItem* clockItem = createMenuItem<MainClockScalingChildItem>(optionString,
CHECKMARK(module->mainClockMultDiv.multDiv == clockOption));


Loading…
Cancel
Save