confirm LV2 GUI changes

If a parameter change is initiated by the UI, the host sends a
notifications to confirm (echo) or invalidates (replaces) the value.
(automation: touch, playback,...).

Stateless LV2 GUIs without internal data-model depend on this.
This commit is contained in:
Robin Gareus 2015-10-21 01:57:16 +02:00
parent 4953d09893
commit 270ec425f8
1 changed files with 4 additions and 3 deletions

View File

@ -55,9 +55,9 @@ LV2PluginUI::write_from_ui(void* controller,
}
boost::shared_ptr<AutomationControl> ac = me->_controllables[port_index];
/* Cache our local copy of the last value received from the GUI */
me->_values[port_index] = *(const float*) buffer;
/* Now update the control itself */
me->_updates.insert (port_index);
if (ac) {
ac->set_value(*(const float*)buffer);
}
@ -207,6 +207,7 @@ LV2PluginUI::output_update()
float val = _lv2->get_parameter (*i);
/* push current value to the GUI */
suil_instance_port_event ((SuilInstance*)_inst, (*i), 4, 0, &val);
_values[(*i)] = val;
}
_updates.clear ();