Signed-off-by: falkTX <falktx@falktx.com>tags/22.02
@@ -1 +1 @@ | |||||
Subproject commit f56d13280baee304ebcb6eb92aaaa0409f8674a9 | |||||
Subproject commit e9f41ad9979d35d7f747ec25652e5ff25da8e853 |
@@ -619,7 +619,14 @@ struct AudioFileWidget : ModuleWidget { | |||||
DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(AudioFileWidget) | DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(AudioFileWidget) | ||||
}; | }; | ||||
#else | #else | ||||
typedef ModuleWidget AudioFileWidget; | |||||
struct AudioFileWidget : ModuleWidget { | |||||
AudioFileWidget(CarlaInternalPluginModule* const module) { | |||||
setModule(module); | |||||
addOutput(createOutput<PJ301MPort>({}, module, 0)); | |||||
addOutput(createOutput<PJ301MPort>({}, module, 1)); | |||||
} | |||||
}; | |||||
#endif | #endif | ||||
// -------------------------------------------------------------------------------------------------------------------- | // -------------------------------------------------------------------------------------------------------------------- | ||||
@@ -652,7 +652,17 @@ static void host_ui_closed(NativeHostHandle handle) | |||||
} | } | ||||
#else | #else | ||||
static void host_ui_closed(NativeHostHandle) {} | static void host_ui_closed(NativeHostHandle) {} | ||||
typedef ModuleWidget CarlaModuleWidget; | |||||
struct CarlaModuleWidget : ModuleWidget { | |||||
CarlaModuleWidget(CarlaModule* const module) { | |||||
setModule(module); | |||||
for (uint i=0; i<CarlaModule::NUM_INPUTS; ++i) | |||||
addInput(createInput<PJ301MPort>({}, module, i)); | |||||
for (uint i=0; i<CarlaModule::NUM_OUTPUTS; ++i) | |||||
addOutput(createOutput<PJ301MPort>({}), module, i)); | |||||
} | |||||
}; | |||||
#endif | #endif | ||||
@@ -775,7 +775,17 @@ struct HostMIDICCWidget : ModuleWidget { | |||||
} | } | ||||
}; | }; | ||||
#else | #else | ||||
typedef ModuleWidget HostMIDICCWidget; | |||||
struct HostMIDICCWidget : ModuleWidget { | |||||
HostMIDICCWidget(HostMIDICC* const module) { | |||||
setModule(module); | |||||
for (int i=0; i<18; ++i) | |||||
{ | |||||
addInput(createInput<PJ301MPort>({}, module, i)); | |||||
addOutput(createOutput<PJ301MPort>({}, module, i)); | |||||
} | |||||
} | |||||
}; | |||||
#endif | #endif | ||||
// -------------------------------------------------------------------------------------------------------------------- | // -------------------------------------------------------------------------------------------------------------------- | ||||
@@ -689,7 +689,17 @@ struct HostMIDIGateWidget : ModuleWidget { | |||||
} | } | ||||
}; | }; | ||||
#else | #else | ||||
typedef ModuleWidget HostMIDIGateWidget; | |||||
struct HostMIDIGateWidget : ModuleWidget { | |||||
HostMIDIGateWidget(HostMIDIGate* const module) { | |||||
setModule(module); | |||||
for (int i=0; i<18; ++i) | |||||
{ | |||||
addInput(createInput<PJ301MPort>({}, module, i)); | |||||
addOutput(createOutput<PJ301MPort>({}, module, i)); | |||||
} | |||||
} | |||||
}; | |||||
#endif | #endif | ||||
// -------------------------------------------------------------------------------------------------------------------- | // -------------------------------------------------------------------------------------------------------------------- | ||||
@@ -734,7 +734,11 @@ struct HostMIDIMapWidget : ModuleWidget { | |||||
} | } | ||||
}; | }; | ||||
#else | #else | ||||
typedef ModuleWidget HostMIDIMapWidget; | |||||
struct HostMIDIMapWidget : ModuleWidget { | |||||
HostMIDIMapWidget(HostMIDIMap* const module) { | |||||
setModule(module); | |||||
} | |||||
}; | |||||
#endif | #endif | ||||
// -------------------------------------------------------------------------------------------------------------------- | // -------------------------------------------------------------------------------------------------------------------- | ||||
@@ -35,19 +35,19 @@ struct HostParameters : Module { | |||||
NUM_LIGHTS | NUM_LIGHTS | ||||
}; | }; | ||||
CardinalPluginContext* const pcontext; | |||||
rack::dsp::SlewLimiter parameters[kModuleParameters]; | rack::dsp::SlewLimiter parameters[kModuleParameters]; | ||||
bool parametersConnected[kModuleParameters] = {}; | bool parametersConnected[kModuleParameters] = {}; | ||||
float sampleTime = 0.0f; | float sampleTime = 0.0f; | ||||
HostParameters() | HostParameters() | ||||
: pcontext(static_cast<CardinalPluginContext*>(APP)) | |||||
{ | { | ||||
config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); | |||||
const CardinalPluginContext* const pcontext = static_cast<CardinalPluginContext*>(APP); | |||||
if (pcontext == nullptr) | if (pcontext == nullptr) | ||||
throw rack::Exception("Plugin context is null."); | throw rack::Exception("Plugin context is null."); | ||||
config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); | |||||
const float fsampleRate = static_cast<float>(pcontext->sampleRate); | const float fsampleRate = static_cast<float>(pcontext->sampleRate); | ||||
SampleRateChangeEvent e = { | SampleRateChangeEvent e = { | ||||
fsampleRate, | fsampleRate, | ||||
@@ -58,38 +58,32 @@ struct HostParameters : Module { | |||||
void process(const ProcessArgs&) override | void process(const ProcessArgs&) override | ||||
{ | { | ||||
if (const CardinalPluginContext* const pcontext = static_cast<CardinalPluginContext*>(APP)) | |||||
for (uint32_t i=0; i<kModuleParameters; ++i) | |||||
{ | { | ||||
for (uint32_t i=0; i<kModuleParameters; ++i) | |||||
{ | |||||
const bool connected = outputs[i].isConnected(); | |||||
const bool connected = outputs[i].isConnected(); | |||||
if (parametersConnected[i] != connected) | |||||
{ | |||||
parametersConnected[i] = connected; | |||||
parameters[i].reset(); | |||||
} | |||||
if (connected) | |||||
outputs[i].setVoltage(parameters[i].process(sampleTime, pcontext->parameters[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 | void onSampleRateChange(const SampleRateChangeEvent& e) override | ||||
{ | { | ||||
if (const CardinalPluginContext* const pcontext = static_cast<CardinalPluginContext*>(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<kModuleParameters; ++i) | |||||
{ | |||||
parameters[i].reset(); | |||||
parameters[i].setRiseFall(fall, fall); | |||||
} | |||||
sampleTime = e.sampleTime; | |||||
for (uint32_t i=0; i<kModuleParameters; ++i) | |||||
{ | |||||
parameters[i].reset(); | |||||
parameters[i].setRiseFall(fall, fall); | |||||
} | } | ||||
sampleTime = e.sampleTime; | |||||
} | } | ||||
}; | }; | ||||
@@ -166,8 +160,14 @@ struct HostParametersWidget : ModuleWidget { | |||||
} | } | ||||
}; | }; | ||||
#else | #else | ||||
typedef ModuleWidget HostParametersWidget; | |||||
#endif | |||||
struct HostParametersWidget : ModuleWidget { | |||||
HostParametersWidget(HostParameters* const module) { | |||||
setModule(module); | |||||
for (int i=0; i<24; ++i) | |||||
addOutput(createOutput<PJ301MPort>({}, module, i)); | |||||
} | |||||
}; | |||||
#endif | |||||
Model* modelHostParameters = createModel<HostParameters, HostParametersWidget>("HostParameters"); | Model* modelHostParameters = createModel<HostParameters, HostParametersWidget>("HostParameters"); |
@@ -184,8 +184,6 @@ struct HostTimeWidget : ModuleWidget { | |||||
nvgRoundedRect(vg, startX - 1.0f, y - 2.0f, box.size.x - (startX + 1) * 2, 28.0f, 4); | nvgRoundedRect(vg, startX - 1.0f, y - 2.0f, box.size.x - (startX + 1) * 2, 28.0f, 4); | ||||
nvgFillColor(vg, nvgRGB(0xd0, 0xd0, 0xd0)); | nvgFillColor(vg, nvgRGB(0xd0, 0xd0, 0xd0)); | ||||
nvgFill(vg); | nvgFill(vg); | ||||
// nvgStrokeColor(vg, nvgRGBA(0x4a, 0x4a, 0x4a, 0xc0)); | |||||
// nvgStroke(vg); | |||||
nvgBeginPath(vg); | nvgBeginPath(vg); | ||||
nvgFillColor(vg, color::BLACK); | nvgFillColor(vg, color::BLACK); | ||||
nvgText(vg, startX + 36, y + 16, text, nullptr); | nvgText(vg, startX + 36, y + 16, text, nullptr); | ||||
@@ -1714,7 +1714,23 @@ struct IldaeilModuleWidget : ModuleWidget { | |||||
static void host_ui_parameter_changed(NativeHostHandle, uint32_t, float) {} | 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 const char* host_ui_open_file(NativeHostHandle, bool, const char*, const char*) { return nullptr; } | ||||
static void projectLoadedFromDSP(void*) {} | static void projectLoadedFromDSP(void*) {} | ||||
typedef ModuleWidget IldaeilModuleWidget; | |||||
struct IldaeilModuleWidget : ModuleWidget { | |||||
IldaeilModuleWidget(HostParameters* const module) { | |||||
setModule(module); | |||||
addInput(createInput<PJ301MPort>(Vec(3, 54), module, IldaeilModule::INPUT1)); | |||||
addInput(createInput<PJ301MPort>(Vec(3, 54 + 30), module, IldaeilModule::INPUT2)); | |||||
addOutput(createOutput<PJ301MPort>(Vec(3, 54 + 60), module, IldaeilModule::OUTPUT1)); | |||||
addOutput(createOutput<PJ301MPort>(Vec(3, 54 + 90), module, IldaeilModule::OUTPUT2)); | |||||
addInput(createInput<PJ301MPort>(Vec(3, 54 + 135), module, IldaeilModule::PITCH_INPUT)); | |||||
addInput(createInput<PJ301MPort>(Vec(3, 54 + 165), module, IldaeilModule::GATE_INPUT)); | |||||
addInput(createInput<PJ301MPort>(Vec(3, 54 + 195), module, IldaeilModule::VEL_INPUT)); | |||||
addInput(createInput<PJ301MPort>(Vec(3, 54 + 225), module, IldaeilModule::AFT_INPUT)); | |||||
addInput(createInput<PJ301MPort>(Vec(3, 54 + 255), module, IldaeilModule::PW_INPUT)); | |||||
addInput(createInput<PJ301MPort>(Vec(3, 54 + 285), module, IldaeilModule::MW_INPUT)); | |||||
} | |||||
}; | |||||
#endif | #endif | ||||
// -------------------------------------------------------------------------------------------------------------------- | // -------------------------------------------------------------------------------------------------------------------- | ||||
@@ -380,7 +380,11 @@ struct TextEditorModuleWidget : ModuleWidget { | |||||
DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(TextEditorModuleWidget) | DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(TextEditorModuleWidget) | ||||
}; | }; | ||||
#else | #else | ||||
typedef ModuleWidget TextEditorModuleWidget; | |||||
struct TextEditorModuleWidget : ModuleWidget { | |||||
TextEditorModuleWidget(TextEditorModule* const module) { | |||||
setModule(module); | |||||
} | |||||
}; | |||||
#endif | #endif | ||||
// -------------------------------------------------------------------------------------------------------------------- | // -------------------------------------------------------------------------------------------------------------------- | ||||
@@ -160,7 +160,13 @@ struct glBarsWidget : ModuleWidget { | |||||
} | } | ||||
}; | }; | ||||
#else | #else | ||||
typedef ModuleWidget glBarsWidget; | |||||
struct glBarsWidget : ModuleWidget { | |||||
glBarsWidget(glBarsModule* const module) { | |||||
setModule(module); | |||||
addInput(createInput<PJ301MPort>({}, module, glBarsModule::IN1_INPUT)); | |||||
} | |||||
}; | |||||
#endif | #endif | ||||
Model* modelGlBars = createModel<glBarsModule, glBarsWidget>("glBars"); | Model* modelGlBars = createModel<glBarsModule, glBarsWidget>("glBars"); |