Commit Graph

118 Commits

Author SHA1 Message Date
0b48d421d5
Add LV2 header include compatibility (1/2) 2023-05-06 16:20:01 +02:00
b35518e212 switch from boost::{shared,weak}_ptr to std::{shared,weak}_ptr
This is mostly a simple lexical search+replace but the absence of operator< for
std::weak_ptr<T> leads to some complications, particularly with Evoral::Sequence
and ExportPortChannel.
2023-03-24 14:19:15 -06:00
9cbf3ae4ad
Who needs PIs for Plugin GUIs?
Use abstract base class for plugin UIs wherever possible
2022-04-14 16:35:03 +02:00
9eb626cc37 Auditioner: hide unnecessary widgets for auditioner synth GUI 2022-02-04 20:18:00 -06:00
04e8dbb342 another day of slow timeline type conversion 2021-08-13 12:51:29 -06:00
5c579ed52d
Remove unused #include<> (1/2)
PBD::stacktrace() is not used nor needed by default.
It should be used sparingly.
2021-05-05 17:43:28 +02:00
f8ce5ecbc6
Consolidate Plugin-GUI toolbar layout, consistent layout & spacing 2020-09-16 00:02:52 +02:00
9fac6139ea
Fix assert when showing embedded LV2 plugin UI -- #8013 2020-04-15 04:19:23 +02:00
45026100aa LV2: Implement ui:requestValue feature 2020-03-17 16:55:35 +01:00
97f3d9496b
Show latency display/config button for in all plugin UIs 2020-03-14 13:25:51 +01:00
2ac90f5598
LV2: disable unofficial LV2UI_Request_Parameter
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-02-15 14:15:29 +01:00
0771717dd5
Remove unused variable 2020-01-09 18:21:48 +01:00
7a66b22428
Show preset-browser button if annoted presets are available 2019-10-11 00:13:07 +02:00
4050ca5633
Update GPL boilerplate and (C)
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.
2019-08-03 15:53:15 +02:00
4b9d96ff8e
Cleanup LV2 file-dialog extension
<drobilla> "This function returns immediately"
2018-12-22 00:34:31 +01:00
79c9c62154 Remove conditional support for ancient versions of Lilv
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-12-19 20:08:47 -05:00
e297951b30 Extend LV2UI-Request-Parameter File/Path GUI
This is a bit of a playground implementation, the various `#if 0`
code-blocks should be removed.
2018-11-22 15:02:35 +01:00
abf1f286d4 Fix LV2UI_Request_Parameter Feature URI 2018-11-22 06:12:54 +01:00
07beca2852 Early prototype for _LV2UI_Request_Parameter extension 2018-11-21 02:27:18 +01:00
b30ab9802a Only allow LV2 touch events for control inputs
This fixes a crash when a plugin sends a touch events for non-control ports.
2018-10-28 20:34:21 +01:00
30b087ab3d globally change all use of "frame" to refer to audio into "sample".
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-18 12:39:17 -04:00
64be124fe0 PluginUI: only show "Reset" & Automation buttons if there are any controls 2017-09-08 23:35:00 +02:00
fde0e293a3 Remove unused "mark" parameter from stop_touch() API 2017-07-24 01:59:18 +02:00
836f48457d add a "Pin Management" button to the plugin UI-header 2016-08-05 02:35:51 +02:00
cf52d6e4b4 enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h 2016-07-14 14:45:23 -04:00
e343434b60 UI port-events are not limited to outputs. 2016-01-03 20:28:16 +01:00
9e3299f97d change Controllable::set_value() API to include grouped control consideration.
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
2016-01-02 04:58:30 -05:00
5dd5bf0f70 notify LV2 GUIs about port-changes when loading presets 2015-10-28 04:06:14 +01:00
0880a166c4 variable name change: make purpose of formerly named "_values" in LV2 plugin UI code more clear
And if this is wrong, then rename it again with the right one
2015-10-21 08:10:25 -04:00
270ec425f8 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.
2015-10-21 01:57:16 +02:00
47bbffc5d8 do not update LV2 output port displays unless the value has changed 2015-10-20 11:39:56 -04:00
1d4494961b add commentary 2015-10-20 11:31:18 -04:00
8533b8244f also update LV2 output port displays as part of periodic updates 2015-10-20 11:28:53 -04:00
ac008dac02 Clean up generic and LV2 plugin GUI to deal with ParameterChanged(Externally) alteration 2015-10-20 10:23:49 -04:00
7804a524dc Revert "rename ParameterChanged signal in Plugin to ParameterChangedExternally to reflect its intent, and clean up the result."
This reverts commit 336b2eb9a4.
2015-10-20 10:23:49 -04:00
336b2eb9a4 rename ParameterChanged signal in Plugin to ParameterChangedExternally to 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-10-20 09:07:58 -04:00
aabc5108f3 Revert inadvertently pushed commit
This reverts commit 3a6114c025.
The actual solution is http://dev.drobilla.net/ticket/1085
2015-09-13 04:10:14 +02:00
3a6114c025 center, don't expand plugin widgets 2015-09-13 04:09:24 +02:00
ebe15849d4 gracefully handle LV2 GUI instantiation failure. 2015-09-06 19:32:13 +02:00
d1334074af add plugin parameter reset button - closes #6297 2015-05-04 20:52:48 +02:00
de078a04e2 Fix LV2 preset deletion and clash between plugins.
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-03-07 14:54:03 -05:00
a0eeb80885 fix embedded plugin UI keyboard handling
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-21 03:16:04 +01:00
12ad41675d fix memory leak in case LV2 GUI fails. 2015-02-19 20:39:26 +01:00
5b3ff655f1 Fix LV2 UIs with spacey paths (e.g. Pianoteq). 2015-02-13 22:00:38 -05:00
b5c9a92a58 Move Timers/Timeouts from ARDOUR_UI into functions in timers.h and use PBD::Timers 2015-01-01 19:04:14 +07:00
8a128b33d3 Automation of LV2 plugin properties.
Work towards ParameterDescriptor being used more universally to describe control characteristics.
2014-11-02 02:10:24 -05:00
0a60077a61 Fix spelling error. 2014-10-31 20:46:09 -04:00
c01e37171e keep processing LV2 Ringbuffer once it is allocated
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-11-05 02:06:20 +01:00
01e0f51223 LV2 extUI handling - amend to previous commit. 2013-09-02 16:57:46 +02:00
c05ad01b2d LV2 external UI handling - revert to <= 3.3. behaviour
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-09-02 16:21:12 +02:00