Fake parameter change when clicking host parameter module
This commit is contained in:
parent
75aad04bb8
commit
28d3ca2d68
4 changed files with 42 additions and 1 deletions
|
|
@ -81,6 +81,20 @@ struct HostParameters : Module {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#ifndef HEADLESS
|
||||||
|
struct CardinalParameterPJ301MPort : PJ301MPort {
|
||||||
|
void onDragStart(const DragStartEvent& e) override {
|
||||||
|
if (CardinalPluginContext* const pcontext = reinterpret_cast<CardinalPluginContext*>(APP))
|
||||||
|
handleHostParameterDrag(pcontext, portId, true);
|
||||||
|
PJ301MPort::onDragStart(e);
|
||||||
|
}
|
||||||
|
void onDragEnd(const DragEndEvent& e) override {
|
||||||
|
if (CardinalPluginContext* const pcontext = reinterpret_cast<CardinalPluginContext*>(APP))
|
||||||
|
handleHostParameterDrag(pcontext, portId, false);
|
||||||
|
PJ301MPort::onDragEnd(e);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
struct HostParametersWidget : ModuleWidget {
|
struct HostParametersWidget : ModuleWidget {
|
||||||
static constexpr const float startX = 10.0f;
|
static constexpr const float startX = 10.0f;
|
||||||
static constexpr const float startY = 90.0f;
|
static constexpr const float startY = 90.0f;
|
||||||
|
|
@ -101,7 +115,7 @@ struct HostParametersWidget : ModuleWidget {
|
||||||
{
|
{
|
||||||
const float x = startX + int(i / 6) * paddingH;
|
const float x = startX + int(i / 6) * paddingH;
|
||||||
const float y = startY + int(i % 6) * paddingV;
|
const float y = startY + int(i % 6) * paddingV;
|
||||||
addOutput(createOutput<PJ301MPort>(Vec(x, y), module, i));
|
addOutput(createOutput<CardinalParameterPJ301MPort>(Vec(x, y), module, i));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -139,5 +153,9 @@ struct HostParametersWidget : ModuleWidget {
|
||||||
ModuleWidget::draw(args);
|
ModuleWidget::draw(args);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
#else
|
||||||
|
typedef ModuleWidget HostParametersWidget;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
Model* modelHostParameters = createModel<HostParameters, HostParametersWidget>("HostParameters");
|
Model* modelHostParameters = createModel<HostParameters, HostParametersWidget>("HostParameters");
|
||||||
|
|
|
||||||
|
|
@ -60,6 +60,10 @@ struct CardinalPluginContext : rack::Context {
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#ifndef HEADLESS
|
||||||
|
void handleHostParameterDrag(CardinalPluginContext* pcontext, uint index, bool started);
|
||||||
|
#endif
|
||||||
|
|
||||||
END_NAMESPACE_DISTRHO
|
END_NAMESPACE_DISTRHO
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
|
@ -180,6 +180,21 @@ void CardinalPluginContext::removeIdleCallback(IdleCallback* const cb)
|
||||||
ui->removeIdleCallback(cb);
|
ui->removeIdleCallback(cb);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void handleHostParameterDrag(CardinalPluginContext* pcontext, uint index, bool started)
|
||||||
|
{
|
||||||
|
DISTRHO_SAFE_ASSERT_RETURN(pcontext->ui != nullptr,);
|
||||||
|
|
||||||
|
if (started)
|
||||||
|
{
|
||||||
|
pcontext->ui->editParameter(index, true);
|
||||||
|
pcontext->ui->setParameterValue(index, pcontext->parameters[index]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pcontext->ui->editParameter(index, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class CardinalUI : public CardinalBaseUI,
|
class CardinalUI : public CardinalBaseUI,
|
||||||
|
|
|
||||||
|
|
@ -95,6 +95,10 @@ struct CardinalPluginContext : rack::Context {
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#ifndef HEADLESS
|
||||||
|
void handleHostParameterDrag(CardinalPluginContext* pcontext, uint index, bool started);
|
||||||
|
#endif
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
struct CardinalAudioDevice;
|
struct CardinalAudioDevice;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue