Commit Graph

12652 Commits

Author SHA1 Message Date
Robin Gareus
cfc8a2c263 Push UI theme to backend, LV2 plugin options 2019-08-26 18:58:34 +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
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
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
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
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
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
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
0972e9a513 Skip potential garbage midi-step 2019-08-20 04:46:42 +02:00
Robin Gareus
a1b0991d26 Fix uninitialized argument value
TrimDrag::aborted() -> TrimDrag::finished() -> TrimDrag::motion ()
uses event->button.state
2019-08-20 04:06:31 +02:00
Robin Gareus
994b59c836 Prefer implicit deletion of .pending
Session destruction removes ".pending", no need to explicitly delete
the file.
2019-08-16 01:55:54 +02:00
Robin Gareus
76048c050d Prefer "one track per file" as default 2019-08-15 01:30:17 +02:00
Robin Gareus
e08ab1e30a NO-OP: clang format, comments & whitespace 2019-08-13 01:05:51 +02:00
Robin Gareus
f940cbe794 Remove unused EditorSources selection filter 2019-08-13 00:53:04 +02:00
Robin Gareus
8a9b38e540 Remove remnants of hack from 9f3f3738e7
This fixes multiple selection. The original code using
"selection_countdown" is no longer in place. There's no "counter" to arm.

Shift/Tab name edit works regardless.
"s/m/r" solo/mute/rec shortcuts in the treeview have been discontinued
since a long time as well. Keyboard shortcuts are per window, regardless
of grab_focus()

PS. This change makes it easier for a user to start a drag/drop
operation of multiple regions. That currently assert()s, only
the first selected region is used.
2019-08-13 00:52:21 +02:00
Robin Gareus
12da3016e6 Remove unused EditorRoutes selection filter 2019-08-12 19:31:42 +02:00
Robin Gareus
f4897bb475 Re-order editor sidebar: prioritize "Tracks & Busses" 2019-08-12 18:36:26 +02:00
Robin Gareus
bf2ac2ee72 (RegionList) Tweak column ordering + fix translation naming 2019-08-12 18:36:23 +02:00
Ben Loftis
82ebfa75f3 Source List: Explicitly check whether a file is in the {Audio|MIDI} folder where it should be.
Anywhere else (even somewhere else inside the session folder) should be flagged "weird"
2019-08-12 10:48:08 -05:00
Ben Loftis
ff440276c1 Source List: Source regions can be tagged, too. 2019-08-12 10:48:08 -05:00
Robin Gareus
d67d64ea03 Add Pref to write mixer-screenshot post-export 2019-08-12 16:53:55 +02:00
Robin Gareus
f7a6661969 Consolidate: use PBD method to try hard-linking 2019-08-12 16:42:07 +02:00
Robin Gareus
b48a3a6abb Initialize variable 2019-08-12 14:34:33 +02:00
Robin Gareus
875c66458d Fix middle-click note selection 2019-08-12 04:49:31 +02:00
Robin Gareus
128623e7fb Fix midi-note selection invert
Selecting Notes in a region does not select the region itself.

Invert-selection needs to iterate over midi-regions that contain
the selection.
2019-08-12 02:28:38 +02:00
Robin Gareus
282437ab77 (RegionList) Don't change selection for context-menu 2019-08-12 02:07:03 +02:00
Robin Gareus
7251efce83 Add Lua-Dialog support for FileChooserWidget (save file) 2019-08-12 01:37:35 +02:00
Robin Gareus
9fb403546c Allow to inhibit screensaver/system sleep 2019-08-11 20:39:39 +02:00
Robin Gareus
4b5d16554b Simplify screensaver inhibit API and fix OSX compatibility 2019-08-11 20:39:39 +02:00
Robin Gareus
78d7ef15df Prototype infrastructure to disable screensaver 2019-08-11 02:33:16 +02:00
Robin Gareus
2970ce2f59 Add Lua bindings for Pango Alignment 2019-08-07 17:40:23 +02:00
Len Ovens
6bdf5cb0d7 Gui should allow foldback bus to be mono. 2019-08-06 13:16:44 -07:00
Robin Gareus
d9d96b181c Fix meter metric visibility on narrow strips - #7781
After session load, the meter numerics were always visible,
regardless of strip width.
MixerStrip::set_stuff_from_route() and MixerStrip::set_width_enum()
are called before	Mixer UI is realized and calls show_all().
2019-08-04 02:40:59 +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
d53de79412 Remove cruft 2019-08-03 15:53:15 +02:00
Ben Loftis
d400dd813a (Source List) Handle Session::RemoveSource 2019-08-01 12:11:31 -05:00
Ben Loftis
595959abf7 (Source List) Replace missing initializer; fixes a bug where Sources did not appear on startup. 2019-08-01 12:11:31 -05:00
Ben Loftis
da3d8e5418 (Source List) Implement insert-region action... now uses the Source List. 2019-08-01 12:11:31 -05:00
Ben Loftis
50786b3e5c (Source List) Recover Regions feature: WIP 2019-08-01 12:11:31 -05:00
Ben Loftis
fc981d4399 (Source List) Revert to displaying whole-file Regions instead of Sources.
This preserves the stereo-ness of files that were imported or recorded in stereo.

ToDo  (maybe someday): provide a disclosure triangle that exposes the individual channels in a multichannel region
2019-08-01 12:11:31 -05:00
Ben Loftis
52611e2374 (Source List) No need to show the path when file is internal to session. 2019-08-01 12:11:31 -05:00
Ben Loftis
0b699ac9f7 (Source List) merge fixes 2019-08-01 12:11:31 -05:00
Ben Loftis
e0bdcd7137 (Source List) Clean up the natural_position implementation (gtk2 part). 2019-08-01 12:11:31 -05:00
Ben Loftis
77950c36c5 (Source List) Implement remove_selected_sources when the user clicks Delete key. 2019-08-01 12:11:31 -05:00
Paul Davis
98c509cc48 (Source List) NOOP: whitespace cleanup
remove debug output
2019-08-01 12:11:31 -05:00
Ben Loftis
b409c58ee6 (Source List) Fix drag-n-drop. 2019-08-01 12:11:31 -05:00