217 Commits

Author SHA1 Message Date
Paul Davis
38cfd12bac NoCamelCase method names (gui) 2025-07-12 10:51:54 -06:00
Robin Gareus
000c25edcc Update gtkmm -> ytkmm header location (omnibus commit) 2025-02-01 15:25:14 +01:00
Robin Gareus
74c4ca3e52 Reduce reliance on boost - the hard part
the rest from `tools/convert_boost.sh`.

* replace boost::function, boost::bind with std::function and std::bind.

This required some manual fixes, notably std::placeholders,
some static_casts<>, and boost::function::clear -> = {}.
2024-10-19 03:47:21 +02:00
Robin Gareus
aa5dbdd770 GUI combined Latency/TailTime widget 2024-08-31 02:55:04 +02:00
Robin Gareus
5d175786e8 Remove debug messages, cleanup output (1/2) 2024-05-08 00:56:43 +02:00
Robin Gareus
8f1d188bf3 NO-OP: clang-format
This addresses various indentation problems caused by
`boost::` -> `std::` and other whitespace issues.
2023-05-31 16:53:38 +02:00
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