13
0
Commit Graph

27881 Commits

Author SHA1 Message Date
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
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
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
4538bcc7f4
Add/fix some TimeAxisView Lua bindings 2019-08-24 21:44:27 +02:00
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
7859340191
Consolidate code, skip editor/mixer update check 2019-08-24 18:37:28 +02:00
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
9ce5184993
NO-OP: comment 2019-08-24 17:11:22 +02:00
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
ab62c8a926
Towards fixing luadoc, manual page creation 2019-08-24 03:32:47 +02:00
89f0e70b82
Fix memory-leak in case of Vamp plugin setup error 2019-08-24 03:31:49 +02:00
1ea3435de6
Add missing Lua bindings for function arguments
PortEngine was accidentally removed in 1339d42c78
2019-08-24 03:31:45 +02:00
02cc959d93
Add missing headers for lua-doc 2019-08-24 01:35:38 +02:00
9c785749ba
Lua binding to change region name 2019-08-24 01:35:14 +02:00
69688d24c4
Another fix for input only ALSA-slave devices 2019-08-24 00:15:10 +02:00
f7968f15dd
LCXL: Fix uninitialized pointer function
See also 026b74e25d. FilterFunction must point to a valid function.
2019-08-24 00:01:28 +02:00
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
37d51037b9
Add tool to render ArdourIcon set 2019-08-23 21:09:38 +02:00
000d331ea1
NO-OP: cleanup
* remove unused code
* replace "default" to check for switch() enum completeness
2019-08-23 15:50:26 +02:00
f1c29a9324
Re-order enum, use "NoIcon" as sentinel 2019-08-23 15:49:25 +02:00
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
9836bd786f
Some hints for clang static analysis 2019-08-23 05:15:17 +02:00
e5927d689c
Fix for half-duplex ALSA-slave devices 2019-08-23 04:39:51 +02:00
8fadf44978
Fix possible segfault when ALSA MIDI port registration fails 2019-08-23 04:39:12 +02:00
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
b858b3b692
Detect monitor-send by instance, not name 2019-08-23 01:05:57 +02:00
22aa61b674
Use icons for plugin bypass and pinout 2019-08-22 21:03:44 +02:00
a0d53b81b9
Update plugin-ui related icons 2019-08-22 21:03:07 +02:00
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
c38c91ddbd
Initialize variable, fix branch condition 2019-08-21 03:09:32 +02:00
e6c9bcfd07
Prefer to use API defined return status 2019-08-21 03:06:28 +02:00
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
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
dfa93e0b17
Tweak Ardourbutton: support (VectorIcon | Indicator) 2019-08-21 01:25:34 +02:00
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
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
2d4eb7d505
Replace OOM segfault with abort :) 2019-08-20 05:07:16 +02:00
3ccaaf1ea5
There's always a previous tempo/meter section 2019-08-20 04:53:00 +02:00
0972e9a513
Skip potential garbage midi-step 2019-08-20 04:46:42 +02:00
114b5088c7
There is always at least a tempo and meter section 2019-08-20 04:29:06 +02:00
6227dd5b04
Shuttle Surface: Fix uninitialized argument in case of incomplete state 2019-08-20 04:18:43 +02:00
f5330d763a
NO-OP: whitespace 2019-08-20 04:15:11 +02:00
73d0b6894a
Skip invalid plugin-tag spec 2019-08-20 04:15:01 +02:00
bb27d10fd4
Fix potential ambiguous state-restore
Don't allow uninitialized argument values in case of corrupt XML
state.
2019-08-20 04:11:32 +02:00
a1b0991d26
Fix uninitialized argument value
TrimDrag::aborted() -> TrimDrag::finished() -> TrimDrag::motion ()
uses event->button.state
2019-08-20 04:06:31 +02:00
2dae4fc5e1
Bundle x42-tuner, drop rule-based midifilter 2019-08-20 03:44:02 +02:00
05e0cc4035
Fix prev commit, state-restore of plugins 2019-08-20 02:06:55 +02:00
031847f88e
LV2 extension to override strict-i/o per plugin
This allows mono to stereo plugins to override the default
routing and forces both outputs to be connected.
2019-08-19 23:28:04 +02:00
8775087ea6
Remove explicit pulse version check (debian/wheezy builds) 2019-08-17 00:18:39 +02:00
531fa74eb1
Suffix complete hw: ID to make ALSA card names unique 2019-08-16 20:00:29 +02:00