ardour.git
4 years agoFix processor box for no crash on click
Len Ovens [Fri, 22 Feb 2019 21:39:17 +0000 (13:39 -0800)]
Fix processor box for no crash on click

4 years agoStart adding processor box
Len Ovens [Fri, 25 Jan 2019 20:22:49 +0000 (12:22 -0800)]
Start adding processor box

4 years agofix last foldback commit.
Len Ovens [Sat, 19 Jan 2019 00:02:32 +0000 (16:02 -0800)]
fix last foldback commit.

4 years agoAdd strip GUI first try for foldback bus
Len Ovens [Fri, 18 Jan 2019 18:22:54 +0000 (10:22 -0800)]
Add strip GUI first try for foldback bus

4 years agoReduce girth of "plus" icon
Robin Gareus [Mon, 26 Aug 2019 22:00:29 +0000 (00:00 +0200)]
Reduce girth of "plus" icon

4 years agoTweak icon_strip_width icon lines to align to pixels
Robin Gareus [Mon, 26 Aug 2019 21:34:20 +0000 (23:34 +0200)]
Tweak icon_strip_width icon lines to align to pixels

4 years agoAdd sample-rate as float option parameter for LV2 plugins and UIs
Robin Gareus [Mon, 26 Aug 2019 21:30:21 +0000 (23:30 +0200)]
Add sample-rate as float option parameter for LV2 plugins and UIs

4 years agoFix LV2 option size
Robin Gareus [Mon, 26 Aug 2019 21:12:46 +0000 (23:12 +0200)]
Fix LV2 option size

4 years agoAdd some scaleable "Latency" icon
Robin Gareus [Mon, 26 Aug 2019 20:44:11 +0000 (22:44 +0200)]
Add some scaleable "Latency" icon

4 years agoPush UI theme to backend, LV2 plugin options
Robin Gareus [Mon, 26 Aug 2019 16:58:34 +0000 (18:58 +0200)]
Push UI theme to backend, LV2 plugin options

4 years agoLV2 options for UI theme
Robin Gareus [Mon, 26 Aug 2019 16:57:47 +0000 (18:57 +0200)]
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.

4 years agoBorderless plugin UIs
Robin Gareus [Mon, 26 Aug 2019 14:28:03 +0000 (16:28 +0200)]
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

4 years agoAllow Icon + Text on ArdourButton
Robin Gareus [Mon, 26 Aug 2019 14:04:22 +0000 (16:04 +0200)]
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.

4 years agoTweak icon line widths
Robin Gareus [Mon, 26 Aug 2019 14:01:19 +0000 (16:01 +0200)]
Tweak icon line widths

Scale line-width of all icons, some were left at 1px regardless
of scaling factor.

4 years agoAdd/fix some TimeAxisView Lua bindings
Robin Gareus [Sat, 24 Aug 2019 19:44:27 +0000 (21:44 +0200)]
Add/fix some TimeAxisView Lua bindings

4 years agoTweak deletion, emit CatchDeletion() only once
Robin Gareus [Sat, 24 Aug 2019 16:42:51 +0000 (18:42 +0200)]
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().

4 years agoConsolidate code, skip editor/mixer update check
Robin Gareus [Sat, 24 Aug 2019 16:37:28 +0000 (18:37 +0200)]
Consolidate code, skip editor/mixer update check

4 years agoFix crash when selected automation-lane is removed
Robin Gareus [Sat, 24 Aug 2019 16:21:08 +0000 (18:21 +0200)]
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.

4 years agoNO-OP: comment
Robin Gareus [Sat, 24 Aug 2019 15:11:22 +0000 (17:11 +0200)]
NO-OP: comment

4 years agoMitigate issues of expensive plugin analysis -- #7795
Robin Gareus [Sat, 24 Aug 2019 15:11:10 +0000 (17:11 +0200)]
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.

4 years agoTowards fixing luadoc, manual page creation
Robin Gareus [Sat, 24 Aug 2019 00:38:14 +0000 (02:38 +0200)]
Towards fixing luadoc, manual page creation

4 years agoFix memory-leak in case of Vamp plugin setup error
Robin Gareus [Sat, 24 Aug 2019 01:30:53 +0000 (03:30 +0200)]
Fix memory-leak in case of Vamp plugin setup error

4 years agoAdd missing Lua bindings for function arguments
Robin Gareus [Sat, 24 Aug 2019 00:54:25 +0000 (02:54 +0200)]
Add missing Lua bindings for function arguments

PortEngine was accidentally removed in 1339d42c787

4 years agoAdd missing headers for lua-doc
Robin Gareus [Fri, 23 Aug 2019 23:35:38 +0000 (01:35 +0200)]
Add missing headers for lua-doc

4 years agoLua binding to change region name
Robin Gareus [Fri, 23 Aug 2019 23:35:04 +0000 (01:35 +0200)]
Lua binding to change region name

4 years agoAnother fix for input only ALSA-slave devices
Robin Gareus [Fri, 23 Aug 2019 22:15:10 +0000 (00:15 +0200)]
Another fix for input only ALSA-slave devices

4 years agoLCXL: Fix uninitialized pointer function
Robin Gareus [Fri, 23 Aug 2019 22:01:06 +0000 (00:01 +0200)]
LCXL: Fix uninitialized pointer function

See also 026b74e25d3. FilterFunction must point to a valid function.

4 years agoRegion selection cannot change without a session
Robin Gareus [Fri, 23 Aug 2019 21:54:34 +0000 (23:54 +0200)]
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...

4 years agoAdd tool to render ArdourIcon set
Robin Gareus [Fri, 23 Aug 2019 14:41:23 +0000 (16:41 +0200)]
Add tool to render ArdourIcon set

4 years agoNO-OP: cleanup
Robin Gareus [Fri, 23 Aug 2019 13:50:26 +0000 (15:50 +0200)]
NO-OP: cleanup

* remove unused code
* replace "default" to check for switch() enum completeness

4 years agoRe-order enum, use "NoIcon" as sentinel
Robin Gareus [Fri, 23 Aug 2019 13:49:25 +0000 (15:49 +0200)]
Re-order enum, use "NoIcon" as sentinel

4 years agoArdorIcon is for display only, remove registration
Robin Gareus [Fri, 23 Aug 2019 13:46:39 +0000 (15:46 +0200)]
ArdorIcon is for display only, remove registration

These enum values are not used serialized in any state, and can
be removed.

4 years agoSome hints for clang static analysis
Robin Gareus [Fri, 23 Aug 2019 03:15:17 +0000 (05:15 +0200)]
Some hints for clang static analysis

4 years agoFix for half-duplex ALSA-slave devices
Robin Gareus [Fri, 23 Aug 2019 02:39:51 +0000 (04:39 +0200)]
Fix for half-duplex ALSA-slave devices

4 years agoFix possible segfault when ALSA MIDI port registration fails
Robin Gareus [Fri, 23 Aug 2019 02:39:12 +0000 (04:39 +0200)]
Fix possible segfault when ALSA MIDI port registration fails

4 years agoTweak graph display, check direct sends
Robin Gareus [Fri, 23 Aug 2019 00:12:47 +0000 (02:12 +0200)]
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.

4 years agoDetect monitor-send by instance, not name
Robin Gareus [Thu, 22 Aug 2019 23:05:57 +0000 (01:05 +0200)]
Detect monitor-send by instance, not name

4 years agoUse icons for plugin bypass and pinout
Robin Gareus [Thu, 22 Aug 2019 19:03:44 +0000 (21:03 +0200)]
Use icons for plugin bypass and pinout

4 years agoUpdate plugin-ui related icons
Robin Gareus [Thu, 22 Aug 2019 19:03:07 +0000 (21:03 +0200)]
Update plugin-ui related icons

4 years agoFix potential call of uninitialized pointer function
Robin Gareus [Wed, 21 Aug 2019 01:51:23 +0000 (03:51 +0200)]
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.

4 years agoInitialize variable, fix branch condition
Robin Gareus [Wed, 21 Aug 2019 01:09:32 +0000 (03:09 +0200)]
Initialize variable, fix branch condition

4 years agoPrefer to use API defined return status
Robin Gareus [Wed, 21 Aug 2019 01:06:28 +0000 (03:06 +0200)]
Prefer to use API defined return status

4 years agoInitialize uninitialized variable
Robin Gareus [Wed, 21 Aug 2019 01:05:17 +0000 (03:05 +0200)]
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.

4 years agoUse Icons for plugin preset buttons.
Robin Gareus [Tue, 20 Aug 2019 23:27:36 +0000 (01:27 +0200)]
Use Icons for plugin preset buttons.

This reduces the preset task-bar's min-width, useful for plugins with
narrow UIs.

4 years agoTweak Ardourbutton: support (VectorIcon | Indicator)
Robin Gareus [Tue, 20 Aug 2019 23:25:34 +0000 (01:25 +0200)]
Tweak Ardourbutton: support (VectorIcon | Indicator)

4 years agoAdd more vector-icons, plugin toolbar related
Robin Gareus [Tue, 20 Aug 2019 23:24:49 +0000 (01:24 +0200)]
Add more vector-icons, plugin toolbar related

This allows to replace "Add", "Save", "Delete", "Reset", "Bypass"
text with icons.

4 years agoConsistent preset layout
Robin Gareus [Tue, 20 Aug 2019 21:45:49 +0000 (23:45 +0200)]
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.

4 years agoReplace OOM segfault with abort :)
Robin Gareus [Tue, 20 Aug 2019 03:07:16 +0000 (05:07 +0200)]
Replace OOM segfault with abort :)

4 years agoThere's always a previous tempo/meter section
Robin Gareus [Tue, 20 Aug 2019 02:53:00 +0000 (04:53 +0200)]
There's always a previous tempo/meter section

4 years agoSkip potential garbage midi-step
Robin Gareus [Tue, 20 Aug 2019 02:38:59 +0000 (04:38 +0200)]
Skip potential garbage midi-step

4 years agoThere is always at least a tempo and meter section
Robin Gareus [Tue, 20 Aug 2019 02:29:06 +0000 (04:29 +0200)]
There is always at least a tempo and meter section

4 years agoShuttle Surface: Fix uninitialized argument in case of incomplete state
Robin Gareus [Tue, 20 Aug 2019 02:17:59 +0000 (04:17 +0200)]
Shuttle Surface: Fix uninitialized argument in case of incomplete state

4 years agoNO-OP: whitespace
Robin Gareus [Tue, 20 Aug 2019 02:15:11 +0000 (04:15 +0200)]
NO-OP: whitespace

4 years agoSkip invalid plugin-tag spec
Robin Gareus [Tue, 20 Aug 2019 02:15:01 +0000 (04:15 +0200)]
Skip invalid plugin-tag spec

4 years agoFix potential ambiguous state-restore
Robin Gareus [Tue, 20 Aug 2019 02:11:32 +0000 (04:11 +0200)]
Fix potential ambiguous state-restore

Don't allow uninitialized argument values in case of corrupt XML
state.

4 years agoFix uninitialized argument value
Robin Gareus [Tue, 20 Aug 2019 02:06:31 +0000 (04:06 +0200)]
Fix uninitialized argument value

TrimDrag::aborted() -> TrimDrag::finished() -> TrimDrag::motion ()
uses event->button.state

4 years agoBundle x42-tuner, drop rule-based midifilter
Robin Gareus [Tue, 20 Aug 2019 01:44:02 +0000 (03:44 +0200)]
Bundle x42-tuner, drop rule-based midifilter

4 years agoFix prev commit, state-restore of plugins
Robin Gareus [Tue, 20 Aug 2019 00:06:55 +0000 (02:06 +0200)]
Fix prev commit, state-restore of plugins

4 years agoLV2 extension to override strict-i/o per plugin
Ben Loftis [Mon, 19 Aug 2019 18:19:38 +0000 (13:19 -0500)]
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.

4 years agoRemove explicit pulse version check (debian/wheezy builds)
Robin Gareus [Fri, 16 Aug 2019 22:18:39 +0000 (00:18 +0200)]
Remove explicit pulse version check (debian/wheezy builds)

4 years agoSuffix complete hw: ID to make ALSA card names unique
Robin Gareus [Fri, 16 Aug 2019 18:00:29 +0000 (20:00 +0200)]
Suffix complete hw: ID to make ALSA card names unique

4 years agoFurther tweaks to .pending file removal
Robin Gareus [Fri, 16 Aug 2019 03:31:50 +0000 (05:31 +0200)]
Further tweaks to .pending file removal

* only delete it after successful save
* show unlink notification in debug-builds

4 years agoPrefer implicit deletion of .pending
Robin Gareus [Thu, 15 Aug 2019 23:55:54 +0000 (01:55 +0200)]
Prefer implicit deletion of .pending

Session destruction removes ".pending", no need to explicitly delete
the file.

4 years agoFix periodic backup saves
Robin Gareus [Thu, 15 Aug 2019 23:54:21 +0000 (01:54 +0200)]
Fix periodic backup saves

Retain ".pending" files until explicit save or session destruction.
Previously every transport-stop deleted them :(

4 years agoFix C++98 compat
Robin Gareus [Thu, 15 Aug 2019 23:51:51 +0000 (01:51 +0200)]
Fix C++98 compat

4 years agoPrefer "one track per file" as default
Robin Gareus [Wed, 14 Aug 2019 23:30:17 +0000 (01:30 +0200)]
Prefer "one track per file" as default

4 years agoDon't print usage to stdout for invalid parameters
Robin Gareus [Wed, 14 Aug 2019 23:07:41 +0000 (01:07 +0200)]
Don't print usage to stdout for invalid parameters

4 years agoTweak .clang-format
Robin Gareus [Mon, 12 Aug 2019 23:06:12 +0000 (01:06 +0200)]
Tweak .clang-format

4 years agoNO-OP: clang format, comments & whitespace
Robin Gareus [Mon, 12 Aug 2019 22:56:48 +0000 (00:56 +0200)]
NO-OP: clang format, comments & whitespace

4 years agoRemove unused EditorSources selection filter
Robin Gareus [Mon, 12 Aug 2019 22:53:04 +0000 (00:53 +0200)]
Remove unused EditorSources selection filter

4 years agoRemove remnants of hack from 9f3f3738e7444ee3
Robin Gareus [Mon, 12 Aug 2019 22:49:45 +0000 (00:49 +0200)]
Remove remnants of hack from 9f3f3738e7444ee3

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.

4 years agoFix transient removal -- #7785
Robin Gareus [Mon, 12 Aug 2019 22:38:57 +0000 (00:38 +0200)]
Fix transient removal -- #7785

Incorrect iterators were used for user-transients.

4 years agoRemove unused EditorRoutes selection filter
Robin Gareus [Mon, 12 Aug 2019 17:31:42 +0000 (19:31 +0200)]
Remove unused EditorRoutes selection filter

4 years agoRe-order editor sidebar: prioritize "Tracks & Busses"
Robin Gareus [Mon, 12 Aug 2019 16:28:19 +0000 (18:28 +0200)]
Re-order editor sidebar: prioritize "Tracks & Busses"

4 years ago(RegionList) Tweak column ordering + fix translation naming
Robin Gareus [Mon, 12 Aug 2019 15:59:48 +0000 (17:59 +0200)]
(RegionList) Tweak column ordering + fix translation naming

4 years agoSource List: Explicitly check whether a file is in the {Audio|MIDI} folder where...
Ben Loftis [Thu, 1 Aug 2019 21:04:55 +0000 (16:04 -0500)]
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"

4 years agoSource List: Source regions can be tagged, too.
Ben Loftis [Thu, 1 Aug 2019 20:27:21 +0000 (15:27 -0500)]
Source List: Source regions can be tagged, too.

4 years agoAdd Pref to write mixer-screenshot post-export
Robin Gareus [Mon, 12 Aug 2019 14:53:55 +0000 (16:53 +0200)]
Add Pref to write mixer-screenshot post-export

4 years agoConsolidate: use PBD method to try hard-linking
Robin Gareus [Mon, 12 Aug 2019 14:42:07 +0000 (16:42 +0200)]
Consolidate: use PBD method to try hard-linking

4 years agoAdd PBD API to hard-link files
Robin Gareus [Mon, 12 Aug 2019 14:41:25 +0000 (16:41 +0200)]
Add PBD API to hard-link files

4 years agoAllow export get_path() without format
Robin Gareus [Mon, 12 Aug 2019 13:44:16 +0000 (15:44 +0200)]
Allow export get_path() without format

This is in preparation for post-export screenshots:
A possibility to get a file-path, independent of the format.

4 years agoNO-OP: whitespace
Robin Gareus [Mon, 12 Aug 2019 13:39:28 +0000 (15:39 +0200)]
NO-OP: whitespace

4 years agoNO-OP: mark private variables, remove cruft
Robin Gareus [Mon, 12 Aug 2019 13:29:39 +0000 (15:29 +0200)]
NO-OP: mark private variables, remove cruft

4 years agoInitialize some more uninitialized variables
Robin Gareus [Mon, 12 Aug 2019 13:18:00 +0000 (15:18 +0200)]
Initialize some more uninitialized variables

4 years agoPrefer std::vector<> over C-style malloc/free**
Robin Gareus [Mon, 12 Aug 2019 13:02:24 +0000 (15:02 +0200)]
Prefer std::vector<> over C-style malloc/free**

This fixes a potential out of bounds read `if (_dbtp_plugin[c])`
if c is larger than the allocated channel count.

4 years agoInitialize variable
Robin Gareus [Mon, 12 Aug 2019 12:34:33 +0000 (14:34 +0200)]
Initialize variable

4 years agoInitialize variable
Robin Gareus [Mon, 12 Aug 2019 12:34:17 +0000 (14:34 +0200)]
Initialize variable

4 years agoFix middle-click note selection
Robin Gareus [Mon, 12 Aug 2019 02:49:31 +0000 (04:49 +0200)]
Fix middle-click note selection

4 years agoFix midi-note selection invert
Robin Gareus [Mon, 12 Aug 2019 00:28:38 +0000 (02:28 +0200)]
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.

4 years ago(RegionList) Don't change selection for context-menu
Robin Gareus [Mon, 12 Aug 2019 00:07:03 +0000 (02:07 +0200)]
(RegionList) Don't change selection for context-menu

4 years agoAdd Action to save mixer screenshot
Robin Gareus [Sun, 11 Aug 2019 23:39:48 +0000 (01:39 +0200)]
Add Action to save mixer screenshot

4 years agoAdd Lua-Dialog support for FileChooserWidget (save file)
Robin Gareus [Sun, 11 Aug 2019 23:06:14 +0000 (01:06 +0200)]
Add Lua-Dialog support for FileChooserWidget (save file)

4 years agoAdd Lua bindings for convenient Glib methods
Robin Gareus [Sun, 11 Aug 2019 23:00:42 +0000 (01:00 +0200)]
Add Lua bindings for convenient Glib methods

4 years agoFix auto capture alignment when bouncing metronome
Robin Gareus [Sun, 11 Aug 2019 18:37:36 +0000 (20:37 +0200)]
Fix auto capture alignment when bouncing metronome

4 years agoAllow to inhibit screensaver/system sleep
Robin Gareus [Sun, 11 Aug 2019 18:37:07 +0000 (20:37 +0200)]
Allow to inhibit screensaver/system sleep

4 years agoAdd types/enum for screensaver mode
Robin Gareus [Sun, 11 Aug 2019 17:04:42 +0000 (19:04 +0200)]
Add types/enum for screensaver mode

4 years agoSimplify screensaver inhibit API and fix OSX compatibility
Robin Gareus [Sun, 11 Aug 2019 17:04:02 +0000 (19:04 +0200)]
Simplify screensaver inhibit API and fix OSX compatibility

4 years agoAdd/remove source(s) in our MSVC project (gtk2_ardour)
John Emmas [Sun, 11 Aug 2019 09:56:01 +0000 (10:56 +0100)]
Add/remove source(s) in our MSVC project (gtk2_ardour)

4 years agoPrototype infrastructure to disable screensaver
Robin Gareus [Sat, 10 Aug 2019 21:20:39 +0000 (23:20 +0200)]
Prototype infrastructure to disable screensaver

4 years agoptformat: Update to upstream 8d29d79 (drop fades && fix offsets)
Damien Zammit [Sat, 10 Aug 2019 02:34:45 +0000 (12:34 +1000)]
ptformat: Update to upstream 8d29d79 (drop fades && fix offsets)