Commit graph

211 commits

Author SHA1 Message Date
Paul Davis
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
Robin Gareus
9cbf3ae4ad
Who needs PIs for Plugin GUIs?
Use abstract base class for plugin UIs wherever possible
2022-04-14 16:35:03 +02:00
Mads Kiilerich
a86aa31747
gtkmm: use get_visible() instead of deprecated Gtk::Widget::is_visible() 2022-04-08 20:20:10 +02:00
Ben Loftis
9eb626cc37 Auditioner: hide unnecessary widgets for auditioner synth GUI 2022-02-04 20:18:00 -06:00
Paul Davis
c7b70c6318 new GUI preference item for showing only 1 plugin GUI at a time. Disabled by default 2021-12-05 11:07:27 -07:00
Robin Gareus
cc32201e9c
Keep plugin-preset dialog on top of plugin-UI 2021-09-04 18:42:50 +02:00
Robin Gareus
4c228c2eab
Remove cruft 2021-04-03 14:56:15 +02:00
Robin Gareus
e3c3109618
Unsubscribe from signals when clearing references
This fixes crashes with plugins calling setDirty() when the
UI is closed. `plugin` has already been reset before
the actual window is closed:

`PluginUIWindow::~PluginUIWindow()` runs, and destroys the window,
here `~VST3NSViewPluginUI ()`. This closes the VST3 view, which
triggers a `VST3PI::setDirty`.
At this point in time `~PlugUIBase()` has not yet run, so all
signals are still connected.

setDirty() ends up calling PlugUIBase::update_preset_modified()
which access `plugin` pointer, which is NULL.
2021-03-01 22:11:15 +01:00
Robin Gareus
94af225eaf
Fix window parent when using different workspaces
This affects only windows opened from the mixer window,
in case the mixer is detached and on a different workspace (desktop).

Window::init (and Dialog::init) set transient parent early on,
and it defaults to the main window (with toolbar). It needs to be
unset before presenting the window, in order to show the window
on the same workspace as the eventual transient parent.

This follows 6dc9134 and f3fbf58.
2020-11-18 16:26:36 +01:00
Robin Gareus
0f7850b0b7
Properly emit Plugin::DropReferences (2/2)
This also destroys the shadow plugin used for analysis as soon
as the analysis pane is hidden.
2020-10-05 19:57:17 +02:00
Robin Gareus
1759ba96b6
VST3: Plugin GUI support 2020-09-17 00:10:21 +02:00
Robin Gareus
3f16f60221
VST3: Ardour-GUI basics 2020-09-16 22:49:19 +02:00
Robin Gareus
f8ce5ecbc6
Consolidate Plugin-GUI toolbar layout, consistent layout & spacing 2020-09-16 00:02:52 +02:00
Robin Gareus
1b261fab48
Remove unused LV2 ifdef 2/3
LV2 has been mandatory since 6.0 (04ccd328dc)
2020-09-15 17:35:04 +02:00
Robin Gareus
bdebac8bec
Do not reload plugin preset on preset-save
After saving a plugin-preset we only have to mark it as
not modified and remember the preset.
2020-09-09 17:21:51 +02:00
Robin Gareus
2f1ab39b9c
Remove explicit call to delete preset when saving a preset 2020-06-24 23:59:09 +02:00
Robin Gareus
97f3d9496b
Show latency display/config button for in all plugin UIs 2020-03-14 13:25:51 +01:00
Robin Gareus
c456006f82
Enable some key release event forwarding
This is needed for the virtual MIDI keyboard to trigger note-off events
2019-11-22 22:12:48 +01:00
Robin Gareus
71fa4fa75c
Add a plugin-preset browser window
Previously preset-browser was only used instead of "generic control"
display if a plugin does not have any controls (but presets).

This allows for showing a dedicated window..
2019-10-11 00:03:41 +02:00
Robin Gareus
0fa38c0002
Add API to check for plugin-presets with description 2019-10-10 22:31:19 +02:00
Paul Davis
f470d3e856 remove all use of NO_PLUGIN_STATE #ifdef
We determined several years that we should never ever do this,
and changed the basis for the free/demo copy because of that.
2019-10-02 18:04:40 -06:00
Robin Gareus
24aa61f08c
Use samples_as_time_string API 2019-09-29 02:45:30 +02:00
Robin Gareus
191dea0248
Use latency-icon instead of text 2019-08-27 12:18:44 +02:00
Robin Gareus
e286cce399
Borderless plugin UIs
This removes a border painted in the host's UI theme color around
any plugin UI.
This results in a much nicer look/feel for plugin-UIs that have their
own theme
2019-08-26 16:28:03 +02:00
Robin Gareus
22aa61b674
Use icons for plugin bypass and pinout 2019-08-22 21:03:44 +02:00
Robin Gareus
e9e761565b
Use Icons for plugin preset buttons.
This reduces the preset task-bar's min-width, useful for plugins with
narrow UIs.
2019-08-21 01:27:36 +02:00
Robin Gareus
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
Robin Gareus
feab950ea0
Update Latency UI, subscribe to changes 2019-02-17 03:15:18 +01:00
Robin Gareus
9594e12c52
Add a plugin-preset list/selector GUI
This is currently only used for "Preset only" plugins, generic UI.
And also depends on plugin-presets having a description.
2018-12-20 16:56:49 +01:00
Robin Gareus
c8d08338df
GUI Updates for plugin save/delete operations 2018-12-02 01:38:14 +01:00
Robin Gareus
f7b93ee7b9 Separate Plugin DSP load UI implementation 2018-09-25 00:13:08 +02:00
Robin Gareus
c61a30a866 Plugin Load Info: add a triangle indicator, tweak layout 2018-08-16 02:16:44 +02:00
Robin Gareus
a50ed25181 Tweak labels for plugin-load display 2018-08-16 00:42:23 +02:00
John Emmas
de741d2fc8 Keep MSVC happy by specifying which version of 'floor()' we want (gtk2_ardour) 2018-08-15 14:17:18 +01:00
Robin Gareus
9174858355 Tweak plugin DSP stats UI
* add Clear/Reset button
* increase opacity of min/max bar
* variable log-scale base
* vertically align error-bar
2018-08-15 13:21:49 +02:00
Robin Gareus
61d26e5678 Draw Plugin DSP load bargraph 2018-08-15 05:32:57 +02:00
Robin Gareus
7e78d1c786 Display profile-data in generic plugin-UI. 2018-05-17 22:15:07 +02:00
Paul Davis
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
Robin Gareus
f095cb75fa Fixup key-release events for plugin-uis 2017-09-08 23:35:00 +02:00
Robin Gareus
1f5ebc5485 Remove ArdourPrompter wrapper 2017-07-17 21:06:04 +02:00
Robin Gareus
f6e182b937 Move Gtkmm2ext widgets into libwidget 2017-07-17 21:06:04 +02:00
Robin Gareus
5c92613698 Separate Ardour UI widgets into dedicated library 2017-07-17 21:06:04 +02:00
Thomas Brand
63ea7b6516 NO-OP whitespace (updated GH PR #357) 2017-07-01 19:28:26 +02:00
Robin Gareus
80fa696564 basic Mac VST Cocoa UI support 2016-11-13 16:35:06 +01:00
Robin Gareus
313a32981e tweak strings now that 5.0 is out 2016-08-13 14:51:15 +02:00
Robin Gareus
836f48457d add a "Pin Management" button to the plugin UI-header 2016-08-05 02:35:51 +02:00
Robin Gareus
d0f594ffd0 adjust plugin-UI height when toggling expanders 2016-07-16 02:12:16 +02:00
Paul Davis
cf52d6e4b4 enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h 2016-07-14 14:45:23 -04:00
Robin Gareus
412fcafda0 Plugin GUI activate/enable update (prefer enable) 2016-07-05 23:30:21 +02:00
Robin Gareus
07381f2de6 load presets for all instances 2016-04-22 14:26:33 +02:00