summaryrefslogtreecommitdiff
path: root/gtk2_ardour/lv2_plugin_ui.cc
AgeCommit message (Collapse)Author
2015-03-07Fix LV2 preset deletion and clash between plugins.David Robillard
Before this, LV2 preset deletion in Ardour was doubly broken: the wrong file was being removed, and removing the correct file would only result in a broken preset. This change uses a new version of Lilv which has a more sophisticated mechanism for preset deletion. Also, fix "clashing" presets saved with the same name for different plugins, by prefixing the plugin name to the bundle (this is now a recommendation in the LV2 preset specification).
2015-02-21fix embedded plugin UI keyboard handlingRobin Gareus
When the GUI is opened the first time all is fine, focus is on the embedded widget. However once a user presses one of the preset buttons (Add, Save,...) there is no possibility to return focus to the embedded widget. Ardour always 'sees' it as focus=GtkButton and passes the event to the editor.
2015-02-19fix memory leak in case LV2 GUI fails.Robin Gareus
2015-02-13Fix LV2 UIs with spacey paths (e.g. Pianoteq).David Robillard
2015-01-01Move Timers/Timeouts from ARDOUR_UI into functions in timers.h and use ↵Tim Mayberry
PBD::Timers
2014-11-02Automation of LV2 plugin properties.David Robillard
Work towards ParameterDescriptor being used more universally to describe control characteristics.
2014-10-31Fix spelling error.David Robillard
2013-11-05keep processing LV2 Ringbuffer once it is allocatedRobin Gareus
Discard messages in LV2PluginUI::write_to_ui() if the ringbuffer exists but the UI is not active. This fixes "[ERROR]: Error writing from plugin to UI" messages if the UI was once active but has been closed since. This is a hotfix solution, eventually the LV2 backend should be updated and a function LV2Plugin::disable_ui_emmission() implemented.
2013-09-02LV2 extUI handling - amend to previous commit.Robin Gareus
2013-09-02LV2 external UI handling - revert to <= 3.3. behaviourRobin Gareus
Don't ever clean up external UI plugins that use the LV2plug.in URI. only free the memory of the last instance when the plugin is removed or ardour closes.
2013-08-29update external plugin UI handlingRobin Gareus
amend to 4cdb018 and 1d972d0 override ui_closed() behavior for lv2ui:external Keep UI around and do not re-instantiate, but simply show it again. (this is against the original specs but was agreed upon by various authors and the previous behavior or Ardour.) kx:external-ui are cleaned up after ui_closed().
2013-08-25add LV2 support for kx:external-ui#Robin Gareus
the ABI of http://kxstudio.sf.net/ns/lv2ext/external-ui# is identical to http://lv2plug.in/ns/extensions/ui#external It just adds a distinction between #Host and #Widget for cosmetic reasons. Sadly some newer plugins are released with only support for kxstudio URI :(
2013-08-25free memory of external plugins on GUI close (major mem leak).Robin Gareus
There is at least one known plugin that has a problem with this (custom thread race condition) but it also crashes in other hosts: http://www.drumgizmo.org/wiki/doku.php?id=bugs&do=showcaselink&showid=8&project=drumgizmo tested to be working with various nedko, falktx and x42 plugins
2013-08-03fix gtk "child->parent == NULL" assertsRobin Gareus
2013-07-11update plugin UIs at reasonable rate (25Hz)Robin Gareus
2012-11-17Sent precise transport information to LV2 plugins via events.David Robillard
We send the full transport state (frame position, BBT time, transport speed, meter) to the plugin: * At the start of a cycle whenever a relocate or transport speed change has occurred * On every occurrence of a meter change within a cycle This means the plugin gets a sample accurate meter/tempo map, even if the meter changes in the middle of a cycle. However, this is not quite right yet: things can get wonky if the tempo map is edited while rolling, since this code will not detect the change and fail to update the plugin at the start of the cycle. Other changes: * Factor out TempoMetric::set_metric() and simplify some tempo functions * Clean up LV2 URID stuff git-svn-id: svn://localhost/ardour2/branches/3.0@13513 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-08-28LV2: Send messages from one UI to all replicated instances.Robin Gareus
Addresses issue mentioned in previous commit. git-svn-id: svn://localhost/ardour2/branches/3.0@13149 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-08-21Create and realize LV2 UI container before instantiating (required for ↵David Robillard
proper embedding in some situations). git-svn-id: svn://localhost/ardour2/branches/3.0@13140 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-08-10add -Wpointer-arith -Wcast-qual -Wcast-align and others to compile flags, ↵Paul Davis
and fix const cast warnings generated by new flags git-svn-id: svn://localhost/ardour2/branches/3.0@13124 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-19patch for handling LV2 presets from colinf (#4698)Paul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@12785 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-24Remove over 500 unnecessary includes (including 54 of session.h).David Robillard
It's slightly possible that this causes trivial build failures on different configurations, but otherwise shouldn't cause any problems (i.e. no actual changes other than include/naming/namespace stuff). I deliberately avoided removing libardour-config.h since this can mysteriously break things, though a few of those do seem to be unnecessary. This commit only targets includes of ardour/*.h. There is also a very large number of unnecessary includes of stuff in gtk2_ardour; tackling that should also give a big improvement in build time when things are modified. git-svn-id: svn://localhost/ardour2/branches/3.0@12420 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-24Gracefully handle LV2 UIs that fail to return a widget.David Robillard
git-svn-id: svn://localhost/ardour2/branches/3.0@12416 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-24Fix crashes when closing LV2 plugin UIs.David Robillard
git-svn-id: svn://localhost/ardour2/branches/3.0@12085 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-23Fix crash when closing LV2 UIs.David Robillard
git-svn-id: svn://localhost/ardour2/branches/3.0@12067 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-20Remove support for old and/or experimental LV2 stuff.David Robillard
Ardour 3 now simply depends on the latest version of Lilv, which depends on the LV2 package (which contains all the LV2 headers). git-svn-id: svn://localhost/ardour2/branches/3.0@12041 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-12A bit of crash proofiness for insane plugin UIs.David Robillard
Plugin UI touch confirmed working with suil r4173 and distrho JUCE plugin "TAL Filter II". git-svn-id: svn://localhost/ardour2/branches/3.0@11935 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-11Implement ui:portIndex and ui:touch features.David Robillard
Touch should allow custom plugin UIs to work properly with automation as the generic UI does. IIRC this was requested for mixbus, however, no current plugin UI I am aware of implements it, so it is completely untested. git-svn-id: svn://localhost/ardour2/branches/3.0@11888 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-03-27Patch from Nick to fix crash on closing a LV2 pluginCarl Hetherington
(#4794). git-svn-id: svn://localhost/ardour2/branches/3.0@11764 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-03-25Update to latest LV2 atom extension.David Robillard
Implement proper support for fixed size LV2 plugin UIs. git-svn-id: svn://localhost/ardour2/branches/3.0@11757 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-03-04Make lv2ui_instantiate and lv2ui_free a little more symmetrical, so that ↵Carl Hetherington
there aren't GTK errors on reopening a LV2 plugin UI because of trying to repack already packed widgets (#4733). git-svn-id: svn://localhost/ardour2/branches/3.0@11589 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-02-25Sshh.David Robillard
git-svn-id: svn://localhost/ardour2/branches/3.0@11523 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-02-25Fix real-time violation, only send UI updates if explicitly requested by UI.David Robillard
git-svn-id: svn://localhost/ardour2/branches/3.0@11522 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-02-25Use FastScreenUpdate for UI message updating, and only if plugin has message ↵David Robillard
output ports. git-svn-id: svn://localhost/ardour2/branches/3.0@11521 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-02-25Tidy.David Robillard
git-svn-id: svn://localhost/ardour2/branches/3.0@11520 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-02-25Full round-trip message communication between LV2 UIs and plugins.David Robillard
Still a little bit rough around the edges, but it works. This can be tested with the eg-sampler plugin from LV2 svn (whose UI can load different samples). git-svn-id: svn://localhost/ardour2/branches/3.0@11519 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-31do not crash if an LV2 plugin calls the UI write callback with a port number ↵Paul Davis
that ardour has decided is not an automatable parameter. deeper questions surround this commit git-svn-id: svn://localhost/ardour2/branches/3.0@11398 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-18Show generic plugin UI toolbar (for presets etc.) on LV2 UIs (except external).David Robillard
git-svn-id: svn://localhost/ardour2/branches/3.0@11019 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-10-03Remove LV2 support via SLV2 (Lilv only now).David Robillard
git-svn-id: svn://localhost/ardour2/branches/3.0@10184 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-07-10fix crash for slv-based build when destroying an LV2 plugin GUI; assuming ↵Paul Davis
for now that that lilv does this better git-svn-id: svn://localhost/ardour2/branches/3.0@9831 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-06-14remove lv2 GUI debugging, after confirming that LinuxDSP plugins close on ↵Paul Davis
plugin deletion or session exit git-svn-id: svn://localhost/ardour2/branches/3.0@9727 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-06-13more debugging external LV2 GUI cleanupPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@9724 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-06-13debugging external LV2 GUI cleanupPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@9723 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-05-31Create and destroy (non-external) LV2 plugin UIs as window is shown/hidden.David Robillard
Fixes ticket #4067 (not to mention avoids having every UI that has ever been shown loaded in memory until exit time...) git-svn-id: svn://localhost/ardour2/branches/3.0@9638 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-05-15Support compilation with (old) SLV2, or (new) Lilv and (optionally) Suil.David Robillard
Fix ticket #0004041. git-svn-id: svn://localhost/ardour2/branches/3.0@9516 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-05-14Completely localist use of SLV2 to lv2_plugin.cc and lv2_plugin_ui.cc.David Robillard
git-svn-id: svn://localhost/ardour2/branches/3.0@9514 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-05-14Make LV2World local to lv2_plugin.ccDavid Robillard
git-svn-id: svn://localhost/ardour2/branches/3.0@9513 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-28Fix external UIs (e.g. Calf git).David Robillard
git-svn-id: svn://localhost/ardour2/branches/3.0@9442 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-28Update for new Suil API.David Robillard
git-svn-id: svn://localhost/ardour2/branches/3.0@9437 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-24reverse debugging stuffPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@9424 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-24better temporary debugging for slv2/calf issuePaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@9419 d708f5d6-7413-0410-9779-e7cbd77b26cf