ardour.git
4 years agoFix some more doxygen warnings
Robin Gareus [Mon, 30 Sep 2019 03:33:44 +0000 (05:33 +0200)]
Fix some more doxygen warnings

4 years agoNO-OP: whitespace (use tab to indent)
Robin Gareus [Mon, 30 Sep 2019 02:52:20 +0000 (04:52 +0200)]
NO-OP: whitespace (use tab to indent)

4 years agoFix a few hundred doxygen warnings..
Robin Gareus [Mon, 30 Sep 2019 02:45:59 +0000 (04:45 +0200)]
Fix a few hundred doxygen warnings..

There are still over a hundred left, but this addresses many already.
In particular @param references to undocumented parameters.
Most notably in audio_backend.h

4 years agoUpdate Doxygen config:
Robin Gareus [Mon, 30 Sep 2019 02:39:37 +0000 (04:39 +0200)]
Update Doxygen config:

* process only header files (API is supposed to be documented there)
  (this resolves various inheritance and ambiguities, as well)
* Set pre-processor defines as a normal Ardour compile would
* Expand Macros (fixes issues with visibility defines)

4 years agoFix a duplicate layout parent issue
Robin Gareus [Sun, 29 Sep 2019 20:42:02 +0000 (22:42 +0200)]
Fix a duplicate layout parent issue

4 years agoNO-OP: whitespace
Robin Gareus [Sun, 29 Sep 2019 19:22:30 +0000 (21:22 +0200)]
NO-OP: whitespace

4 years agoFix External Send GUI
Robin Gareus [Sun, 29 Sep 2019 19:03:27 +0000 (21:03 +0200)]
Fix External Send GUI

panners.set_panner() was inadvertently removed in 31815b5f2

4 years agoFix gtk-table-packing error (redundant packing)
Ben Loftis [Sun, 29 Sep 2019 16:30:18 +0000 (11:30 -0500)]
Fix gtk-table-packing error (redundant packing)

4 years agoArdour::IO is not latent by itself
Robin Gareus [Sun, 29 Sep 2019 16:24:54 +0000 (18:24 +0200)]
Ardour::IO is not latent by itself

4 years agoRemove unused modal LatencyGUI Dialog
Robin Gareus [Sun, 29 Sep 2019 16:23:18 +0000 (18:23 +0200)]
Remove unused modal LatencyGUI Dialog

4 years agoRemove defunct Route "Adjust Latency" GUI
Robin Gareus [Sun, 29 Sep 2019 16:22:55 +0000 (18:22 +0200)]
Remove defunct Route "Adjust Latency" GUI

This was based on Ardour-5 style "set custom latency of the IO", and
inform, override JACK-port latency compensation.

Ardour6: IO itself is no longer in control. This is abstracted by
IOProcessor.

In any case, this is to be superseded by bundling a-virtual-latency,
and allowing track playback offset (that has no additional
thru-latency for cue-monitoring).

4 years agoFix port-insert default latency
Robin Gareus [Sun, 29 Sep 2019 16:16:01 +0000 (18:16 +0200)]
Fix port-insert default latency

4 years agoShow pre-release dialog also for source-tree self-builds
Robin Gareus [Sun, 29 Sep 2019 16:10:39 +0000 (18:10 +0200)]
Show pre-release dialog also for source-tree self-builds

4 years agoNew region opacity rules. (final part of 973e9a)
Ben Loftis [Sun, 29 Sep 2019 15:58:53 +0000 (10:58 -0500)]
New region opacity rules.  (final part of 973e9a)

4 years agoAllow the Cut tool to appear in Mixbus.
Ben Loftis [Sun, 29 Sep 2019 15:11:43 +0000 (10:11 -0500)]
Allow the Cut tool to appear in Mixbus.

4 years agoAmend 4f41367836: fix show/hide latency label
Robin Gareus [Sun, 29 Sep 2019 14:59:18 +0000 (16:59 +0200)]
Amend 4f41367836: fix show/hide latency label

4 years agoFix issues when delay-buffers are re-allocated
Robin Gareus [Sun, 29 Sep 2019 14:10:51 +0000 (16:10 +0200)]
Fix issues when delay-buffers are re-allocated

Previously buffers were dropped, and data was not copied to
newly allocated buffers. As side-effect the read-offset was not
adjusted either.

The distance between read and write-pointer needs to be maintained
(delay does not change). This needs to be accounted for, when the
buffer increases while read->write wraps around the old (smaller)
buffer. Previously this triggered an assert (in line 180)

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