summaryrefslogtreecommitdiff
path: root/gtk2_ardour/lv2_plugin_ui.cc
AgeCommit message (Collapse)Author
2020-04-15Fix assert when showing embedded LV2 plugin UI -- #8013Robin Gareus
2020-03-17LV2: Implement ui:requestValue featureDavid Robillard
2020-03-14Show latency display/config button for in all plugin UIsRobin Gareus
2020-02-15LV2: disable unofficial LV2UI_Request_ParameterRobin Gareus
This API is not official, and the upcoming official API differs. The source-code is left in-place since most of it will be re-usable as-is, regardless.
2020-01-09Remove unused variableRobin Gareus
2019-10-11Show preset-browser button if annoted presets are availableRobin Gareus
2019-08-03Update GPL boilerplate and (C)Robin Gareus
Copyright-holder and year information is extracted from git log. git history begins in 2005. So (C) from 1998..2005 is lost. Also some (C) assignment of commits where the committer didn't use --author.
2018-12-22Cleanup LV2 file-dialog extensionRobin Gareus
<drobilla> "This function returns immediately"
2018-12-19Remove conditional support for ancient versions of LilvDavid Robillard
This updates the dependency to 0.24.2, which was released in January 2017 and is the most recent version in Debian 9 (stretch).
2018-11-22Extend LV2UI-Request-Parameter File/Path GUIRobin Gareus
This is a bit of a playground implementation, the various `#if 0` code-blocks should be removed.
2018-11-22Fix LV2UI_Request_Parameter Feature URIRobin Gareus
2018-11-21Early prototype for _LV2UI_Request_Parameter extensionRobin Gareus
2018-10-28Only allow LV2 touch events for control inputsRobin Gareus
This fixes a crash when a plugin sends a touch events for non-control ports.
2017-09-18globally change all use of "frame" to refer to audio into "sample".Paul Davis
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode and video in order to keep the legible
2017-09-08PluginUI: only show "Reset" & Automation buttons if there are any controlsRobin Gareus
2017-07-24Remove unused "mark" parameter from stop_touch() APIRobin Gareus
2016-08-05add a "Pin Management" button to the plugin UI-headerRobin Gareus
2016-07-14enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.hPaul Davis
2016-01-03UI port-events are not limited to outputs.Robin Gareus
2016-01-02change Controllable::set_value() API to include grouped control consideration.Paul Davis
This also removes Route::group_gain_control() and associated machinery. Not yet tested with Mackie or other surfaces. More work to done to start using the group capabilities, and also potentially to add or derive more controls as RouteAutomationControls
2015-10-28notify LV2 GUIs about port-changes when loading presetsRobin Gareus
2015-10-21variable name change: make purpose of formerly named "_values" in LV2 plugin ↵Paul Davis
UI code more clear And if this is wrong, then rename it again with the right one
2015-10-21confirm LV2 GUI changesRobin Gareus
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.
2015-10-20do not update LV2 output port displays unless the value has changedPaul Davis
2015-10-20add commentaryPaul Davis
2015-10-20also update LV2 output port displays as part of periodic updatesPaul Davis
2015-10-20Clean up generic and LV2 plugin GUI to deal with ↵Paul Davis
ParameterChanged(Externally) alteration
2015-10-20Revert "rename ParameterChanged signal in Plugin to ↵Paul Davis
ParameterChangedExternally to reflect its intent, and clean up the result." This reverts commit 336b2eb9a4a8634bae84a15e952d20335aa28c12.
2015-10-20rename ParameterChanged signal in Plugin to ParameterChangedExternally to ↵Paul Davis
reflect its intent, and clean up the result. The signal exists to notify listeners that something outside of the host's control (e.g. a plugin's own GUI for AU or VST) has modified a plugin parameter. Previous code had strange feedback loops and ambiguous semantics. Significant modification of LV2 GUI updating was required. Still to be tested for feedback loop issues: AudioUnits
2015-09-13Revert inadvertently pushed commitRobin Gareus
This reverts commit 3a6114c02579db5eaf22c1a44efc3c34f504f99c. The actual solution is http://dev.drobilla.net/ticket/1085
2015-09-13center, don't expand plugin widgetsRobin Gareus
2015-09-06gracefully handle LV2 GUI instantiation failure.Robin Gareus
2015-05-04add plugin parameter reset button - closes #6297Robin Gareus
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