Commit graph

28089 commits

Author SHA1 Message Date
Len Ovens
4f22bcea24 Add strip GUI first try for foldback bus 2019-08-26 17:48:22 -07:00
Robin Gareus
b01f6ead8b
Reduce girth of "plus" icon 2019-08-27 00:00:29 +02:00
Robin Gareus
b4addaaa0a
Tweak icon_strip_width icon lines to align to pixels 2019-08-26 23:34:20 +02:00
Robin Gareus
2dbeaaffa6
Add sample-rate as float option parameter for LV2 plugins and UIs 2019-08-26 23:30:21 +02:00
Robin Gareus
5e46108e95
Fix LV2 option size 2019-08-26 23:12:46 +02:00
Robin Gareus
646aded4f2
Add some scaleable "Latency" icon 2019-08-26 22:44:11 +02:00
Robin Gareus
cfc8a2c263
Push UI theme to backend, LV2 plugin options 2019-08-26 18:58:34 +02:00
Robin Gareus
80e30ea0d1
LV2 options for UI theme
Inform plugins about host theme (fg, bg colors) and UI scale-factor.
The latter follows an implementation already present in Carla and DPF.
These extension use proposed official URLs.
2019-08-26 18:57:47 +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
09a71b4392
Allow Icon + Text on ArdourButton
Allow placing an icon left of some text in Ardour-button.
This also tweaks some spacing and alignment of Icons when
a LED toggle indicator is used.
2019-08-26 16:04:22 +02:00
Robin Gareus
e6e407f573
Tweak icon line widths
Scale line-width of all icons, some were left at 1px regardless
of scaling factor.
2019-08-26 16:01:19 +02:00
Robin Gareus
4538bcc7f4
Add/fix some TimeAxisView Lua bindings 2019-08-24 21:44:27 +02:00
Robin Gareus
1f05baa881
Tweak deletion, emit CatchDeletion() only once
Parent class d'tor runs after derived class d'tor. By the time
~TimeAxisView() is called, the actual object has already been
deleted and dyanamic_cast<RouteTimeAxisView*> or
dynamic_cast<AutomationTimeAxisView*> will fail.

CatchDeletion() needs to be emitted from the actual d'tor of the object.

There are currently three non-virtual TAVs:
 * RouteTimeAxisView
 * AutomationTimeAxisView
 * VCATimeAxisView

The first two already directly emit CatchDeletion(), there's no need to
call it again from ~TimeAxisView().
2019-08-24 18:42:51 +02:00
Robin Gareus
7859340191
Consolidate code, skip editor/mixer update check 2019-08-24 18:37:28 +02:00
Robin Gareus
629289dc4a
Fix crash when selected automation-lane is removed
When a plugin is deleted, automation-lanes of the given plugin
are removed, but previously a pointed to the deleted lane remained
in the selection.

This caused crashes later when the track selection is used. e.g.
during sensitize_the_right_region_actions()

Note that ~TimeAxisView() also emits CatchDeletion (this);
however "this" fails to be dynamic_cast<AutomationTimeAxisView*>
because that d'tor has already been completed.
2019-08-24 18:24:21 +02:00
Robin Gareus
9ce5184993
NO-OP: comment 2019-08-24 17:11:22 +02:00
Robin Gareus
3f19db4180
Mitigate issues of expensive plugin analysis -- #7795
Plugin analysis uses a GUI thread instance of a given plugin to
perform a IR analysis.

Some plugins can be rather CPU expensive to analyze.
e.g. a-hi/lo-filter when interpolating is recalculating biquad
coefficients every 64samples during the 8k IR analysis. This can take
a significant amount of time on older CPUs.

Furthermore live-signal collection happens in the rt-thread,
using cross-thread signals. Signal collection is  periodically initiated
from the same timeout signal as analysis.

Analysis is was done using default thread priority, which is higher
than the GUI redraw priority (PRIORITY_HIGH_IDLE).

So it was possible to contiguously initiate analysis, loading the CPU
and preventing redraws.
2019-08-24 17:11:10 +02:00
Robin Gareus
ab62c8a926
Towards fixing luadoc, manual page creation 2019-08-24 03:32:47 +02:00
Robin Gareus
89f0e70b82
Fix memory-leak in case of Vamp plugin setup error 2019-08-24 03:31:49 +02:00
Robin Gareus
1ea3435de6
Add missing Lua bindings for function arguments
PortEngine was accidentally removed in 1339d42c78
2019-08-24 03:31:45 +02:00
Robin Gareus
02cc959d93
Add missing headers for lua-doc 2019-08-24 01:35:38 +02:00
Robin Gareus
9c785749ba
Lua binding to change region name 2019-08-24 01:35:14 +02:00
Robin Gareus
69688d24c4
Another fix for input only ALSA-slave devices 2019-08-24 00:15:10 +02:00
Robin Gareus
f7968f15dd
LCXL: Fix uninitialized pointer function
See also 026b74e25d. FilterFunction must point to a valid function.
2019-08-24 00:01:28 +02:00
Robin Gareus
2920bd0253
Region selection cannot change without a session
Without a session, there are no regions. Besides,
there is an unconditional call using _session directly
after the if (_session) clause, which would segfault...
2019-08-23 23:54:34 +02:00
Robin Gareus
37d51037b9
Add tool to render ArdourIcon set 2019-08-23 21:09:38 +02:00
Robin Gareus
000d331ea1
NO-OP: cleanup
* remove unused code
* replace "default" to check for switch() enum completeness
2019-08-23 15:50:26 +02:00
Robin Gareus
f1c29a9324
Re-order enum, use "NoIcon" as sentinel 2019-08-23 15:49:25 +02:00
Robin Gareus
88a0429188
ArdorIcon is for display only, remove registration
These enum values are not used serialized in any state, and can
be removed.
2019-08-23 15:46:39 +02:00
Robin Gareus
9836bd786f
Some hints for clang static analysis 2019-08-23 05:15:17 +02:00
Robin Gareus
e5927d689c
Fix for half-duplex ALSA-slave devices 2019-08-23 04:39:51 +02:00
Robin Gareus
8fadf44978
Fix possible segfault when ALSA MIDI port registration fails 2019-08-23 04:39:12 +02:00
Robin Gareus
d52cf0f739
Tweak graph display, check direct sends
->feeds() follows connections "track -> master -> monitor"
(to detect feedback). Use direct_feeds_according_to_reality()
to correctly show sends-only.
2019-08-23 02:12:47 +02:00
Robin Gareus
b858b3b692
Detect monitor-send by instance, not name 2019-08-23 01:05:57 +02:00
Robin Gareus
22aa61b674
Use icons for plugin bypass and pinout 2019-08-22 21:03:44 +02:00
Robin Gareus
a0d53b81b9
Update plugin-ui related icons 2019-08-22 21:03:07 +02:00
Robin Gareus
026b74e25d
Fix potential call of uninitialized pointer function
_template_number can be set via sysex to an arbitrary number, this
can lead to calling a filter-function at an undefined address, usually
a segfault.
2019-08-21 03:53:46 +02:00
Robin Gareus
c38c91ddbd
Initialize variable, fix branch condition 2019-08-21 03:09:32 +02:00
Robin Gareus
e6c9bcfd07
Prefer to use API defined return status 2019-08-21 03:06:28 +02:00
Robin Gareus
df60eca33c
Initialize uninitialized variable
This fixes a potentially undefined branch if the USB device list is empty.
dev is NULL, the loop is never entered, 'r' isn't set.
if (!dev && !r) is undefined.
2019-08-21 03:05:17 +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
dfa93e0b17
Tweak Ardourbutton: support (VectorIcon | Indicator) 2019-08-21 01:25:34 +02:00
Robin Gareus
1d8a6076ab
Add more vector-icons, plugin toolbar related
This allows to replace "Add", "Save", "Delete", "Reset", "Bypass"
text with icons.
2019-08-21 01:24:49 +02:00
Robin Gareus
a5e2012ead
Consistent preset layout
Use the same order as AU, VST, LV2 GUIs. Show the "modified" asterisk
left of the preset-dropdown. This avoids a blank space between the
dropdown and the Add, Save, Delete buttons.
2019-08-20 23:45:49 +02:00
Robin Gareus
2d4eb7d505
Replace OOM segfault with abort :) 2019-08-20 05:07:16 +02:00
Robin Gareus
3ccaaf1ea5
There's always a previous tempo/meter section 2019-08-20 04:53:00 +02:00
Robin Gareus
0972e9a513
Skip potential garbage midi-step 2019-08-20 04:46:42 +02:00
Robin Gareus
114b5088c7
There is always at least a tempo and meter section 2019-08-20 04:29:06 +02:00
Robin Gareus
6227dd5b04
Shuttle Surface: Fix uninitialized argument in case of incomplete state 2019-08-20 04:18:43 +02:00
Robin Gareus
f5330d763a
NO-OP: whitespace 2019-08-20 04:15:11 +02:00