ardour.git
4 years agoFix Region-list column layout.
Ben Loftis [Sun, 29 Sep 2019 14:14:09 +0000 (09:14 -0500)]
Fix Region-list column layout.

4 years agoTheme latency-disable-button
Robin Gareus [Sat, 28 Sep 2019 23:57:15 +0000 (01:57 +0200)]
Theme latency-disable-button

4 years agoAdd Latency Control Toolbar Widgets
Robin Gareus [Sat, 28 Sep 2019 23:23:48 +0000 (01:23 +0200)]
Add Latency Control Toolbar Widgets

4 years agoUse samples_as_time_string API
Robin Gareus [Sun, 29 Sep 2019 00:43:06 +0000 (02:43 +0200)]
Use samples_as_time_string API

4 years agoHelper function to format sample-count as duration
Robin Gareus [Sat, 28 Sep 2019 23:24:23 +0000 (01:24 +0200)]
Helper function to format sample-count as duration

4 years agoEmit signal when session latency was updated
Robin Gareus [Sat, 28 Sep 2019 20:29:50 +0000 (22:29 +0200)]
Emit signal when session latency was updated

4 years agoAdd Lua bindings related to latency compensation
Robin Gareus [Sat, 28 Sep 2019 19:02:45 +0000 (21:02 +0200)]
Add Lua bindings related to latency compensation

4 years agoAdd Signal to indicate global delay compensation status
Robin Gareus [Sat, 28 Sep 2019 18:53:50 +0000 (20:53 +0200)]
Add Signal to indicate global delay compensation status

4 years agoUpddate path for doxygen doc
Robin Gareus [Sat, 28 Sep 2019 23:24:47 +0000 (01:24 +0200)]
Upddate path for doxygen doc

4 years agoCtrl+shift is a pretty strong convention for Invert-Selection; plus we try to reserve...
Ben Loftis [Fri, 27 Sep 2019 14:38:53 +0000 (09:38 -0500)]
Ctrl+shift is a pretty strong convention for Invert-Selection; plus we try to reserve Shift+ for View menu actions.

4 years agoRestore "A"utomation button
Robin Gareus [Fri, 27 Sep 2019 14:06:29 +0000 (16:06 +0200)]
Restore "A"utomation button

This reverts some "not tracks" parts that were
accidentally removed in 468731c

4 years agoHandle case where an audio-port is added to a MIDI only delayline
Robin Gareus [Fri, 27 Sep 2019 12:50:40 +0000 (14:50 +0200)]
Handle case where an audio-port is added to a MIDI only delayline

4 years agoRe-layout engine dialog, improve "Autostart" button position
Robin Gareus [Fri, 27 Sep 2019 11:58:28 +0000 (13:58 +0200)]
Re-layout engine dialog, improve "Autostart" button position

4 years agoAmend 973e9ad1: fix "black" regions when selecing them
Robin Gareus [Fri, 27 Sep 2019 02:32:54 +0000 (04:32 +0200)]
Amend 973e9ad1: fix "black" regions when selecing them

4 years agorename BufferSet::get* to BufferSet::get_available*
Paul Davis [Fri, 27 Sep 2019 00:39:46 +0000 (18:39 -0600)]
rename BufferSet::get* to BufferSet::get_available*

This tries to make it clear what the BufferSet limit semantics really are

4 years agoDon't try to process MIDI input in a DiskWriter if it has no _midi_buf
Paul Davis [Fri, 27 Sep 2019 00:39:01 +0000 (18:39 -0600)]
Don't try to process MIDI input in a DiskWriter if it has no _midi_buf

... which implies it has no MIDI input port(s) either.

This fixes behaviour caused by BufferSet::get...() returning a valid MidiBuffer because it was
based on using the _available count within the BufferSet, even though the _count value
indicated there was no buffer available (to match the I/O configuration of the Route).

4 years agoAdd use-these-engine-settings-from-now-on checkbox
Robin Gareus [Thu, 26 Sep 2019 19:12:37 +0000 (21:12 +0200)]
Add use-these-engine-settings-from-now-on checkbox

Functional, but this needs a layout fix, still.

4 years agoTry auto-start engine by default
Robin Gareus [Thu, 26 Sep 2019 18:15:09 +0000 (20:15 +0200)]
Try auto-start engine by default

Ardour auto-connects to JACK already if jackd is running. Let
other users benefit from a similar experience.

4 years agoFix cursor icon over region-bar (use trim)
Robin Gareus [Thu, 26 Sep 2019 17:44:22 +0000 (19:44 +0200)]
Fix cursor icon over region-bar (use trim)

4 years agoTheme-manager: sort colors by name (not hue)
Robin Gareus [Thu, 26 Sep 2019 17:39:13 +0000 (19:39 +0200)]
Theme-manager: sort colors by name (not hue)

4 years agoRweak selection+color semantics
Robin Gareus [Thu, 26 Sep 2019 17:35:31 +0000 (19:35 +0200)]
Rweak selection+color semantics

4 years agoTweak semantics for coloring regions
Robin Gareus [Thu, 26 Sep 2019 16:57:35 +0000 (18:57 +0200)]
Tweak semantics for coloring regions

* Shade muted regions only when they are not selected, nor
  being dragged.
* Selecting and Dragging a region adds alpha, so that
  underlying regions and the grid become visible.
* record-red trumps.

4 years agoBackport sensible ui-config defaults for Mixbus
Robin Gareus [Thu, 26 Sep 2019 16:40:17 +0000 (18:40 +0200)]
Backport sensible ui-config defaults for Mixbus

4 years agoMore i18n include order fixes
Robin Gareus [Thu, 26 Sep 2019 04:11:30 +0000 (06:11 +0200)]
More i18n include order fixes

4 years agoFix builds:
Robin Gareus [Thu, 26 Sep 2019 04:08:59 +0000 (06:08 +0200)]
Fix builds:

i18n needs to be included last, and ui_session uses localtime_r

4 years agoAnother try at C++11/boost spinlock initialization
Robin Gareus [Thu, 26 Sep 2019 00:47:16 +0000 (02:47 +0200)]
Another try at C++11/boost spinlock initialization

4 years agoput back editor track header fader+meters inadvertently removed in previous commit
Paul Davis [Wed, 25 Sep 2019 19:24:02 +0000 (13:24 -0600)]
put back editor track header fader+meters inadvertently removed in previous commit

4 years agogoodbye Profile->...trx
Paul Davis [Wed, 25 Sep 2019 19:02:31 +0000 (13:02 -0600)]
goodbye Profile->...trx

4 years agogoodbye USE_TRACKS_CODE_FEATURES and is_tracks_build
Paul Davis [Wed, 25 Sep 2019 18:16:13 +0000 (12:16 -0600)]
goodbye USE_TRACKS_CODE_FEATURES and is_tracks_build

4 years agoRemove ui-config mixbus ifdef's
Robin Gareus [Wed, 25 Sep 2019 14:31:52 +0000 (16:31 +0200)]
Remove ui-config mixbus ifdef's

4 years agoSome reasonable default config changes
Robin Gareus [Wed, 25 Sep 2019 13:27:02 +0000 (15:27 +0200)]
Some reasonable default config changes

4 years agoPrint LADSPA ID with debug message
Robin Gareus [Wed, 25 Sep 2019 13:16:34 +0000 (15:16 +0200)]
Print LADSPA ID with debug message

4 years agoCleanup configuration stage
Robin Gareus [Wed, 25 Sep 2019 12:13:51 +0000 (14:13 +0200)]
Cleanup configuration stage

* use print() only for errors
* use write_config_text() for normal operation
* fail if lld was requested, but not found

4 years agoConsolidate and extend "well-known" controls:
Robin Gareus [Wed, 25 Sep 2019 12:00:34 +0000 (14:00 +0200)]
Consolidate and extend "well-known" controls:

* Add new common strip controls (inspired from Mixbus)
* Remove duplicate documentation, document virtual API only.
* "azimuth" not "azi"

4 years agoFaderport: use well-known-controls API
Robin Gareus [Wed, 25 Sep 2019 10:03:06 +0000 (12:03 +0200)]
Faderport: use well-known-controls API

4 years agoadd configure-time option to use lld as the linker (on linux)
Paul Davis [Tue, 24 Sep 2019 23:36:22 +0000 (17:36 -0600)]
add configure-time option to use lld as the linker (on linux)

this cuts about 15 seconds off the total linker time on a 16 core ryzen threadripper

4 years agoMixbus backports -- part one of many
Robin Gareus [Tue, 24 Sep 2019 20:10:02 +0000 (22:10 +0200)]
Mixbus backports -- part one of many

Changes that are not explicitly #ifdef'ed should go to ardour-git.

4 years agoPrepare for plugin-control groups
Robin Gareus [Tue, 24 Sep 2019 17:48:31 +0000 (19:48 +0200)]
Prepare for plugin-control groups

This is in preparation to allow groups of "well known" controls,
the parameter ID of which is not known a-priori.

4 years agoAdd/remove source(s) in our MSVC project (gtk2_ardour)
John Emmas [Tue, 24 Sep 2019 09:20:23 +0000 (10:20 +0100)]
Add/remove source(s) in our MSVC project (gtk2_ardour)

4 years agoAdd/remove source(s) in our MSVC project (libardour)
John Emmas [Tue, 24 Sep 2019 09:19:38 +0000 (10:19 +0100)]
Add/remove source(s) in our MSVC project (libardour)

4 years agoInclude a header file needed for Windows VST support
John Emmas [Tue, 24 Sep 2019 09:17:32 +0000 (10:17 +0100)]
Include a header file needed for Windows VST support

4 years agosplit apart ardour_ui.cc into a series of distinct source modules.
Paul Davis [Mon, 23 Sep 2019 20:49:06 +0000 (14:49 -0600)]
split apart ardour_ui.cc into a series of distinct source modules.

Should be a 100% no-op - no code was altered, just moved

4 years agofix problem with ArdourDialog::on_delete_event() not being called when appropriate...
Paul Davis [Mon, 23 Sep 2019 03:45:30 +0000 (21:45 -0600)]
fix problem with ArdourDialog::on_delete_event() not being called when appropriate during app startup

The dialog is run using gtk_dialog_run() which uses on_response() to deal with delete/close events unlike a regular
top level event loop.

Probably even better would be run run the dialog from the top level event loop, but this is a bit complex

4 years agoremove empty methods and signal connections
Paul Davis [Mon, 23 Sep 2019 01:21:18 +0000 (19:21 -0600)]
remove empty methods and signal connections

4 years agovarious changes to transportFSM, mostly to try to keep track of whether to roll-after...
Paul Davis [Sun, 22 Sep 2019 18:19:28 +0000 (12:19 -0600)]
various changes to transportFSM, mostly to try to keep track of whether to roll-after-locate (more) accurately

4 years agochange the way we clear post transport work as the butler and post-butler methods...
Paul Davis [Sun, 22 Sep 2019 18:18:36 +0000 (12:18 -0600)]
change the way we clear post transport work as the butler and post-butler methods get things done

This avoids the blanket "set_post_transport_work (PostTransportWork(0));" that never really looked right

4 years agoimprove debug output
Paul Davis [Sun, 22 Sep 2019 17:50:51 +0000 (11:50 -0600)]
improve debug output

4 years agomove all bundle-related session methods into their own file
Paul Davis [Sun, 22 Sep 2019 17:50:44 +0000 (11:50 -0600)]
move all bundle-related session methods into their own file

4 years agoadd direct access API for transportFSM and session transport speed
Paul Davis [Sun, 22 Sep 2019 17:49:59 +0000 (11:49 -0600)]
add direct access API for transportFSM and session transport speed

4 years agoremove unused PostTransportDuration and enumeration-writing for Adjust(Playback|Captu...
Paul Davis [Sun, 22 Sep 2019 17:49:19 +0000 (11:49 -0600)]
remove unused PostTransportDuration and enumeration-writing for Adjust(Playback|Capture)Buffering

4 years agoUI goto_start() action no longer forces roll-after-locate
Paul Davis [Sun, 22 Sep 2019 17:44:06 +0000 (11:44 -0600)]
UI goto_start() action no longer forces roll-after-locate

4 years agocorrect problem with some locates that would keep rolling after they are finished
Paul Davis [Fri, 20 Sep 2019 22:52:13 +0000 (16:52 -0600)]
correct problem with some locates that would keep rolling after they are finished

4 years agosplit session-bundled-related methods to their own file
Paul Davis [Fri, 20 Sep 2019 20:31:19 +0000 (14:31 -0600)]
split session-bundled-related methods to their own file

4 years agoadd const and tweak variable name
Paul Davis [Fri, 20 Sep 2019 20:12:08 +0000 (14:12 -0600)]
add const and tweak variable name

4 years agotransport master deletion is no longer in parallel with process()
Paul Davis [Fri, 20 Sep 2019 20:11:53 +0000 (14:11 -0600)]
transport master deletion is no longer in parallel with process()

4 years agouse internal seek to implement DiskReader::seek() when possible.
Paul Davis [Fri, 20 Sep 2019 20:11:07 +0000 (14:11 -0600)]
use internal seek to implement DiskReader::seek() when possible.

This still needs a check that the amount of readable data left in the buffe is adequate.

4 years agoNO-OP: whitespace
Robin Gareus [Sun, 22 Sep 2019 02:58:32 +0000 (04:58 +0200)]
NO-OP: whitespace

4 years agoOptimize Audio-buffer summing
Robin Gareus [Sun, 22 Sep 2019 02:54:28 +0000 (04:54 +0200)]
Optimize Audio-buffer summing

* skip silent buffers
* use vectorized copy
* prefer memset for zero-gain

4 years agoRemove unused method
Robin Gareus [Sun, 22 Sep 2019 02:52:26 +0000 (04:52 +0200)]
Remove unused method

4 years agoProperly initialize BusSendEnable min/max
Robin Gareus [Sun, 22 Sep 2019 02:15:36 +0000 (04:15 +0200)]
Properly initialize BusSendEnable min/max

4 years agoNO-OP: cleanup code
Robin Gareus [Sun, 22 Sep 2019 02:15:01 +0000 (04:15 +0200)]
NO-OP: cleanup code

4 years agoFix latency-measurement port-name display
Robin Gareus [Fri, 20 Sep 2019 21:30:05 +0000 (23:30 +0200)]
Fix latency-measurement port-name display

In case there are no pretty-names, a blank text was displayed

4 years agoAdd abstract API for latency compensated sends
Robin Gareus [Fri, 20 Sep 2019 18:25:04 +0000 (20:25 +0200)]
Add abstract API for latency compensated sends

This is in preparation for MixbusSends that are not derived from
Delivery : IOProcessor.

4 years agodo not abort in the event that we cannot internal-seek to align with the playhead.
Paul Davis [Fri, 20 Sep 2019 19:02:46 +0000 (13:02 -0600)]
do not abort in the event that we cannot internal-seek to align with the playhead.

There are no good options here, but treating it like a regular underrun seems as good as anything

4 years agobetter initial value
Paul Davis [Fri, 20 Sep 2019 18:36:23 +0000 (12:36 -0600)]
better initial value

4 years agoremove debug output
Paul Davis [Fri, 20 Sep 2019 18:19:25 +0000 (12:19 -0600)]
remove debug output

4 years agofix crash when doing rapid (ongoing-locate-interrupting) locates
Paul Davis [Fri, 20 Sep 2019 18:18:49 +0000 (12:18 -0600)]
fix crash when doing rapid (ongoing-locate-interrupting) locates

4 years agomove TransportFSM::enqueue() into .cc file
Paul Davis [Fri, 20 Sep 2019 18:17:22 +0000 (12:17 -0600)]
move TransportFSM::enqueue() into .cc file

4 years agoat transport stop, reset FSM's idea of the last locate target (also removes const...
Paul Davis [Fri, 20 Sep 2019 18:16:50 +0000 (12:16 -0600)]
at transport stop, reset FSM's idea of the last locate target (also removes const from method)

4 years agofix commented out decision on whether or not to hide/show sysexes in MIDI regions
Paul Davis [Fri, 20 Sep 2019 18:11:33 +0000 (12:11 -0600)]
fix commented out decision on whether or not to hide/show sysexes in MIDI regions

4 years agoHandle an unused edge-case
Robin Gareus [Fri, 20 Sep 2019 17:40:29 +0000 (19:40 +0200)]
Handle an unused edge-case

In practice PanControllable::owner cannot be NULL, but in theory it
could be (and might be for Mixbus6 internal panning).

4 years agoFix Latency Measurement without device re-start
Robin Gareus [Fri, 20 Sep 2019 17:38:34 +0000 (19:38 +0200)]
Fix Latency Measurement without device re-start

This handles a case when the engine was started normally
(not for latency measurement), and measurement is performed later.
This resulted in a duplicate backend start

4 years agoconst-ify TransportFSM
Paul Davis [Fri, 20 Sep 2019 15:44:15 +0000 (09:44 -0600)]
const-ify TransportFSM

4 years agorename TransportFSM::FSMEvent to TransportFSM::Event (c/o the Department of Redundanc...
Paul Davis [Fri, 20 Sep 2019 15:38:09 +0000 (09:38 -0600)]
rename TransportFSM::FSMEvent to TransportFSM::Event (c/o the Department of Redundancy Department)

4 years agoadd an important comment about transportFSM being single-thread and synchronous
Paul Davis [Fri, 20 Sep 2019 15:35:08 +0000 (09:35 -0600)]
add an important comment about transportFSM being single-thread and synchronous

4 years agouse boost::intrusive to manage FSM events (this is all RT code)
Paul Davis [Fri, 20 Sep 2019 15:33:24 +0000 (09:33 -0600)]
use boost::intrusive to manage FSM events (this is all RT code)

4 years agoexpand comment
Paul Davis [Fri, 20 Sep 2019 14:21:14 +0000 (08:21 -0600)]
expand comment

4 years agoRemove my BOOST_MPL declarations (as BOOST_MPL seems to have been removed more generally)
John Emmas [Fri, 20 Sep 2019 10:32:58 +0000 (11:32 +0100)]
Remove my BOOST_MPL declarations (as BOOST_MPL seems to have been removed more generally)

4 years agoremove compiler flags required only by boost::msm and a large transition table
Paul Davis [Fri, 20 Sep 2019 04:34:02 +0000 (22:34 -0600)]
remove compiler flags required only by boost::msm and a large transition table

4 years agoreplace boost::msm - based FSM for transport with one written in "plain C++"
Paul Davis [Fri, 20 Sep 2019 04:33:43 +0000 (22:33 -0600)]
replace boost::msm - based FSM for transport with one written in "plain C++"

Still need to use boost::intrusive to managed qeued/deferred containers

4 years agoFix LV2 state:loadDefaultState
Robin Gareus [Wed, 18 Sep 2019 16:40:02 +0000 (18:40 +0200)]
Fix LV2 state:loadDefaultState

lilv_state_restore() needs to be called unconditionally (regardless
if a plugin actually has a state-interface) to set port and properties.
It has to be called after ports are enumerated and supported
properties are loaded.

4 years agodon't bother following playhead priority during session loading
Paul Davis [Wed, 18 Sep 2019 16:08:32 +0000 (10:08 -0600)]
don't bother following playhead priority during session loading

4 years agodeepen stack trace when checking non-RT RT calls
Paul Davis [Wed, 18 Sep 2019 16:08:20 +0000 (10:08 -0600)]
deepen stack trace when checking non-RT RT calls

4 years agoAdd missing break (VST-key forwarding)
Robin Gareus [Wed, 18 Sep 2019 15:28:35 +0000 (17:28 +0200)]
Add missing break (VST-key forwarding)

4 years agoNO-OP: fix some Wimplicit-fallthrough, see prev commit
Robin Gareus [Wed, 18 Sep 2019 15:27:56 +0000 (17:27 +0200)]
NO-OP: fix some Wimplicit-fallthrough, see prev commit

4 years agoNO-OP: fix some Wimplicit-fallthrough
Robin Gareus [Wed, 18 Sep 2019 15:27:09 +0000 (17:27 +0200)]
NO-OP: fix some Wimplicit-fallthrough

gcc can recognize various regexps in comments. Since C++17 provides
[[fallthrough]], using /* fallthrough */ consistently seems
appropriate until we switch to C++17.

see also https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html

4 years agoIntroduce the BOOST_MPL stuff (though it all seems a bit flaky with MSVC...)
John Emmas [Wed, 18 Sep 2019 14:08:26 +0000 (15:08 +0100)]
Introduce the BOOST_MPL stuff (though it all seems a bit flaky with MSVC...)

4 years agoRemove a (no longer needed) source file from our MSVC project (evoral)
John Emmas [Wed, 18 Sep 2019 14:05:16 +0000 (15:05 +0100)]
Remove a (no longer needed) source file from our MSVC project (evoral)

4 years agoAdd/remove source(s) in our MSVC project (libardour)
John Emmas [Wed, 18 Sep 2019 14:03:51 +0000 (15:03 +0100)]
Add/remove source(s) in our MSVC project (libardour)

4 years agoFix OSX builds: undef Apples's odd nil macro
Robin Gareus [Wed, 18 Sep 2019 04:23:40 +0000 (06:23 +0200)]
Fix OSX builds: undef Apples's odd nil macro

4 years agoConsistent use of abort() /* NOTREACHED */
Robin Gareus [Wed, 18 Sep 2019 03:57:26 +0000 (05:57 +0200)]
Consistent use of abort() /* NOTREACHED */

This fixes some static analysis warnings:
PBD::fatal transmitter needs to be connected to a function
that aborts. This is usually the case with GUI

4 years agoFix Wdeprecated, dynamic exception
Robin Gareus [Wed, 18 Sep 2019 02:43:09 +0000 (04:43 +0200)]
Fix Wdeprecated, dynamic exception

Dynamic exception specifications are deprecated in C++11,
and were removed in C++17.

4 years agoRemove old unused source file
Robin Gareus [Wed, 18 Sep 2019 02:37:12 +0000 (04:37 +0200)]
Remove old unused source file

4 years agoAdd missing i18n include (after 7f3f2018334)
Robin Gareus [Wed, 18 Sep 2019 02:32:51 +0000 (04:32 +0200)]
Add missing i18n include (after 7f3f2018334)

4 years agoRe-order includes
Robin Gareus [Wed, 18 Sep 2019 02:14:31 +0000 (04:14 +0200)]
Re-order includes

* external, system-wide first <>
* next "pbd/*"
...

4 years agoRemove "i18n.h" include from header - fix builds
Robin Gareus [Wed, 18 Sep 2019 02:09:26 +0000 (04:09 +0200)]
Remove "i18n.h" include from header - fix builds

i18n alsways needs to be included last. This fixes an ambiguity of "_"

boost/function_types/detail/class_transform.hpp:23:26:
 error: ‘boost::mpl::placeholders::_’ has not been declared
 using mpl::placeholders::_;

4 years agodeepen stacktrace to show where non-process calls to supposedly process-stack-only...
Paul Davis [Wed, 18 Sep 2019 01:16:53 +0000 (19:16 -0600)]
deepen stacktrace to show where non-process calls to supposedly process-stack-only methods are called

4 years agoadd finite state machine to control/manage transport state
Paul Davis [Wed, 18 Sep 2019 00:26:03 +0000 (18:26 -0600)]
add finite state machine to control/manage transport state

4 years agocorrect mistakenly left-in debugging condition that removed parallelism for PortManag...
Paul Davis [Wed, 18 Sep 2019 00:20:51 +0000 (18:20 -0600)]
correct mistakenly left-in debugging condition that removed parallelism for PortManager::cycle_start()

4 years agominor tweaks to use initialization rather than assignment
Paul Davis [Wed, 27 Mar 2019 16:58:12 +0000 (09:58 -0700)]
minor tweaks to use initialization rather than assignment