diff --git a/dpf b/dpf index f56d132..e9f41ad 160000 --- a/dpf +++ b/dpf @@ -1 +1 @@ -Subproject commit f56d13280baee304ebcb6eb92aaaa0409f8674a9 +Subproject commit e9f41ad9979d35d7f747ec25652e5ff25da8e853 diff --git a/plugins/Cardinal/src/AudioFile.cpp b/plugins/Cardinal/src/AudioFile.cpp index 88dde5c..e10e51b 100644 --- a/plugins/Cardinal/src/AudioFile.cpp +++ b/plugins/Cardinal/src/AudioFile.cpp @@ -619,7 +619,14 @@ struct AudioFileWidget : ModuleWidget { DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(AudioFileWidget) }; #else -typedef ModuleWidget AudioFileWidget; +struct AudioFileWidget : ModuleWidget { + AudioFileWidget(CarlaInternalPluginModule* const module) { + setModule(module); + + addOutput(createOutput({}, module, 0)); + addOutput(createOutput({}, module, 1)); + } +}; #endif // -------------------------------------------------------------------------------------------------------------------- diff --git a/plugins/Cardinal/src/Carla.cpp b/plugins/Cardinal/src/Carla.cpp index 6f375ea..4832602 100644 --- a/plugins/Cardinal/src/Carla.cpp +++ b/plugins/Cardinal/src/Carla.cpp @@ -652,7 +652,17 @@ static void host_ui_closed(NativeHostHandle handle) } #else static void host_ui_closed(NativeHostHandle) {} -typedef ModuleWidget CarlaModuleWidget; +struct CarlaModuleWidget : ModuleWidget { + CarlaModuleWidget(CarlaModule* const module) { + setModule(module); + + for (uint i=0; i({}, module, i)); + + for (uint i=0; i({}), module, i)); + } +}; #endif diff --git a/plugins/Cardinal/src/HostMIDI-CC.cpp b/plugins/Cardinal/src/HostMIDI-CC.cpp index 87daf14..cf60dcf 100644 --- a/plugins/Cardinal/src/HostMIDI-CC.cpp +++ b/plugins/Cardinal/src/HostMIDI-CC.cpp @@ -775,7 +775,17 @@ struct HostMIDICCWidget : ModuleWidget { } }; #else -typedef ModuleWidget HostMIDICCWidget; +struct HostMIDICCWidget : ModuleWidget { + HostMIDICCWidget(HostMIDICC* const module) { + setModule(module); + + for (int i=0; i<18; ++i) + { + addInput(createInput({}, module, i)); + addOutput(createOutput({}, module, i)); + } + } +}; #endif // -------------------------------------------------------------------------------------------------------------------- diff --git a/plugins/Cardinal/src/HostMIDI-Gate.cpp b/plugins/Cardinal/src/HostMIDI-Gate.cpp index ec574b6..97b0dad 100644 --- a/plugins/Cardinal/src/HostMIDI-Gate.cpp +++ b/plugins/Cardinal/src/HostMIDI-Gate.cpp @@ -689,7 +689,17 @@ struct HostMIDIGateWidget : ModuleWidget { } }; #else -typedef ModuleWidget HostMIDIGateWidget; +struct HostMIDIGateWidget : ModuleWidget { + HostMIDIGateWidget(HostMIDIGate* const module) { + setModule(module); + + for (int i=0; i<18; ++i) + { + addInput(createInput({}, module, i)); + addOutput(createOutput({}, module, i)); + } + } +}; #endif // -------------------------------------------------------------------------------------------------------------------- diff --git a/plugins/Cardinal/src/HostMIDI-Map.cpp b/plugins/Cardinal/src/HostMIDI-Map.cpp index 92e70ee..7f59b01 100644 --- a/plugins/Cardinal/src/HostMIDI-Map.cpp +++ b/plugins/Cardinal/src/HostMIDI-Map.cpp @@ -734,7 +734,11 @@ struct HostMIDIMapWidget : ModuleWidget { } }; #else -typedef ModuleWidget HostMIDIMapWidget; +struct HostMIDIMapWidget : ModuleWidget { + HostMIDIMapWidget(HostMIDIMap* const module) { + setModule(module); + } +}; #endif // -------------------------------------------------------------------------------------------------------------------- diff --git a/plugins/Cardinal/src/HostParameters.cpp b/plugins/Cardinal/src/HostParameters.cpp index aaf442b..8b7c7c9 100644 --- a/plugins/Cardinal/src/HostParameters.cpp +++ b/plugins/Cardinal/src/HostParameters.cpp @@ -35,19 +35,19 @@ struct HostParameters : Module { NUM_LIGHTS }; + CardinalPluginContext* const pcontext; rack::dsp::SlewLimiter parameters[kModuleParameters]; bool parametersConnected[kModuleParameters] = {}; float sampleTime = 0.0f; HostParameters() + : pcontext(static_cast(APP)) { - config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); - - const CardinalPluginContext* const pcontext = static_cast(APP); - if (pcontext == nullptr) throw rack::Exception("Plugin context is null."); + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); + const float fsampleRate = static_cast(pcontext->sampleRate); SampleRateChangeEvent e = { fsampleRate, @@ -58,38 +58,32 @@ struct HostParameters : Module { void process(const ProcessArgs&) override { - if (const CardinalPluginContext* const pcontext = static_cast(APP)) + for (uint32_t i=0; iparameters[i])); + if (parametersConnected[i] != connected) + { + parametersConnected[i] = connected; + parameters[i].reset(); } + + if (connected) + outputs[i].setVoltage(parameters[i].process(sampleTime, pcontext->parameters[i])); } } void onSampleRateChange(const SampleRateChangeEvent& e) override { - if (const CardinalPluginContext* const pcontext = static_cast(APP)) - { - const double fall = 1.0 / (double(pcontext->bufferSize) / e.sampleRate); + const double fall = 1.0 / (double(pcontext->bufferSize) / e.sampleRate); - for (uint32_t i=0; i({}, module, i)); + } +}; +#endif Model* modelHostParameters = createModel("HostParameters"); diff --git a/plugins/Cardinal/src/HostTime.cpp b/plugins/Cardinal/src/HostTime.cpp index 5b3b0a4..bafcc7a 100644 --- a/plugins/Cardinal/src/HostTime.cpp +++ b/plugins/Cardinal/src/HostTime.cpp @@ -184,8 +184,6 @@ struct HostTimeWidget : ModuleWidget { nvgRoundedRect(vg, startX - 1.0f, y - 2.0f, box.size.x - (startX + 1) * 2, 28.0f, 4); nvgFillColor(vg, nvgRGB(0xd0, 0xd0, 0xd0)); nvgFill(vg); -// nvgStrokeColor(vg, nvgRGBA(0x4a, 0x4a, 0x4a, 0xc0)); -// nvgStroke(vg); nvgBeginPath(vg); nvgFillColor(vg, color::BLACK); nvgText(vg, startX + 36, y + 16, text, nullptr); diff --git a/plugins/Cardinal/src/Ildaeil.cpp b/plugins/Cardinal/src/Ildaeil.cpp index 8330406..264108e 100644 --- a/plugins/Cardinal/src/Ildaeil.cpp +++ b/plugins/Cardinal/src/Ildaeil.cpp @@ -1714,7 +1714,23 @@ struct IldaeilModuleWidget : ModuleWidget { static void host_ui_parameter_changed(NativeHostHandle, uint32_t, float) {} static const char* host_ui_open_file(NativeHostHandle, bool, const char*, const char*) { return nullptr; } static void projectLoadedFromDSP(void*) {} -typedef ModuleWidget IldaeilModuleWidget; +struct IldaeilModuleWidget : ModuleWidget { + IldaeilModuleWidget(HostParameters* const module) { + setModule(module); + + addInput(createInput(Vec(3, 54), module, IldaeilModule::INPUT1)); + addInput(createInput(Vec(3, 54 + 30), module, IldaeilModule::INPUT2)); + addOutput(createOutput(Vec(3, 54 + 60), module, IldaeilModule::OUTPUT1)); + addOutput(createOutput(Vec(3, 54 + 90), module, IldaeilModule::OUTPUT2)); + + addInput(createInput(Vec(3, 54 + 135), module, IldaeilModule::PITCH_INPUT)); + addInput(createInput(Vec(3, 54 + 165), module, IldaeilModule::GATE_INPUT)); + addInput(createInput(Vec(3, 54 + 195), module, IldaeilModule::VEL_INPUT)); + addInput(createInput(Vec(3, 54 + 225), module, IldaeilModule::AFT_INPUT)); + addInput(createInput(Vec(3, 54 + 255), module, IldaeilModule::PW_INPUT)); + addInput(createInput(Vec(3, 54 + 285), module, IldaeilModule::MW_INPUT)); + } +}; #endif // -------------------------------------------------------------------------------------------------------------------- diff --git a/plugins/Cardinal/src/TextEditor.cpp b/plugins/Cardinal/src/TextEditor.cpp index 518d0dd..3602f13 100644 --- a/plugins/Cardinal/src/TextEditor.cpp +++ b/plugins/Cardinal/src/TextEditor.cpp @@ -380,7 +380,11 @@ struct TextEditorModuleWidget : ModuleWidget { DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(TextEditorModuleWidget) }; #else -typedef ModuleWidget TextEditorModuleWidget; +struct TextEditorModuleWidget : ModuleWidget { + TextEditorModuleWidget(TextEditorModule* const module) { + setModule(module); + } +}; #endif // -------------------------------------------------------------------------------------------------------------------- diff --git a/plugins/Cardinal/src/glBars.cpp b/plugins/Cardinal/src/glBars.cpp index d150160..2ebfc45 100644 --- a/plugins/Cardinal/src/glBars.cpp +++ b/plugins/Cardinal/src/glBars.cpp @@ -160,7 +160,13 @@ struct glBarsWidget : ModuleWidget { } }; #else -typedef ModuleWidget glBarsWidget; +struct glBarsWidget : ModuleWidget { + glBarsWidget(glBarsModule* const module) { + setModule(module); + + addInput(createInput({}, module, glBarsModule::IN1_INPUT)); + } +}; #endif Model* modelGlBars = createModel("glBars");