Fix internal modules for headless builds
Signed-off-by: falkTX <falktx@falktx.com>
This commit is contained in:
parent
ca25477990
commit
f80cf75e30
11 changed files with 104 additions and 39 deletions
2
dpf
2
dpf
|
|
@ -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();
|
||||||
|
|
||||||
|
if (parametersConnected[i] != connected)
|
||||||
{
|
{
|
||||||
const bool connected = outputs[i].isConnected();
|
parametersConnected[i] = connected;
|
||||||
|
parameters[i].reset();
|
||||||
if (parametersConnected[i] != connected)
|
|
||||||
{
|
|
||||||
parametersConnected[i] = connected;
|
|
||||||
parameters[i].reset();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (connected)
|
|
||||||
outputs[i].setVoltage(parameters[i].process(sampleTime, pcontext->parameters[i]));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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);
|
||||||
|
|
||||||
|
for (uint32_t i=0; i<kModuleParameters; ++i)
|
||||||
{
|
{
|
||||||
const double fall = 1.0 / (double(pcontext->bufferSize) / e.sampleRate);
|
parameters[i].reset();
|
||||||
|
parameters[i].setRiseFall(fall, fall);
|
||||||
for (uint32_t i=0; i<kModuleParameters; ++i)
|
|
||||||
{
|
|
||||||
parameters[i].reset();
|
|
||||||
parameters[i].setRiseFall(fall, fall);
|
|
||||||
}
|
|
||||||
|
|
||||||
sampleTime = e.sampleTime;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sampleTime = e.sampleTime;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -166,8 +160,14 @@ struct HostParametersWidget : ModuleWidget {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
#else
|
#else
|
||||||
typedef ModuleWidget HostParametersWidget;
|
struct HostParametersWidget : ModuleWidget {
|
||||||
|
HostParametersWidget(HostParameters* const module) {
|
||||||
|
setModule(module);
|
||||||
|
|
||||||
|
for (int i=0; i<24; ++i)
|
||||||
|
addOutput(createOutput<PJ301MPort>({}, module, i));
|
||||||
|
}
|
||||||
|
};
|
||||||
#endif
|
#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");
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue