summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/NodeModule.cpp26
-rw-r--r--src/gui/ingen_gui_lv2.cpp4
2 files changed, 17 insertions, 13 deletions
diff --git a/src/gui/NodeModule.cpp b/src/gui/NodeModule.cpp
index 75e4b7c7..068642b1 100644
--- a/src/gui/NodeModule.cpp
+++ b/src/gui/NodeModule.cpp
@@ -165,19 +165,23 @@ NodeModule::show_human_names(bool b)
void
NodeModule::port_activity(uint32_t index, const Raul::Atom& value)
{
- if (!_plugin_ui)
- return;
-
const URIs& uris = app().uris();
+ if (!_plugin_ui) {
+ return;
+ }
- // FIXME: Well, this sucks...
- LV2_Atom* atom = (LV2_Atom*)malloc(sizeof(LV2_Atom) + value.size());
- atom->type = value.type();
- atom->size = value.size();
- memcpy(LV2_ATOM_BODY(atom), value.get_body(), value.size());
- _plugin_ui->port_event(
- index, lv2_atom_total_size(atom), uris.atom_eventTransfer, atom);
- free(atom);
+ if (value.type() == uris.atom_Float) {
+ _plugin_ui->port_event(index, sizeof(float), 0, value.ptr<float>());
+ } else {
+ // FIXME: Well, this sucks...
+ LV2_Atom* atom = (LV2_Atom*)malloc(sizeof(LV2_Atom) + value.size());
+ atom->type = value.type();
+ atom->size = value.size();
+ memcpy(LV2_ATOM_BODY(atom), value.get_body(), value.size());
+ _plugin_ui->port_event(
+ index, lv2_atom_total_size(atom), uris.atom_eventTransfer, atom);
+ free(atom);
+ }
}
void
diff --git a/src/gui/ingen_gui_lv2.cpp b/src/gui/ingen_gui_lv2.cpp
index 061f2276..489fbf39 100644
--- a/src/gui/ingen_gui_lv2.cpp
+++ b/src/gui/ingen_gui_lv2.cpp
@@ -176,8 +176,8 @@ port_event(LV2UI_Handle handle,
uint32_t format,
const void* buffer)
{
- Ingen::IngenLV2UI* ui = (Ingen::IngenLV2UI*)handle;
- const LV2_Atom* atom = (const LV2_Atom*)buffer;
+ Ingen::IngenLV2UI* ui = (Ingen::IngenLV2UI*)handle;
+ const LV2_Atom* atom = (const LV2_Atom*)buffer;
ui->reader->write(atom);
}