Robin Gareus
0e68d3f742
Optimize Audio-buffer summing
...
* skip silent buffers
* use vectorized copy
* prefer memset for zero-gain
2019-09-22 04:54:28 +02:00
Robin Gareus
a1c48e0a80
Remove unused method
2019-09-22 04:52:26 +02:00
Robin Gareus
3ae46256c8
Properly initialize BusSendEnable min/max
2019-09-22 04:15:36 +02:00
Robin Gareus
7dc52e009f
NO-OP: cleanup code
2019-09-22 04:15:01 +02:00
Robin Gareus
799e535b2a
Fix latency-measurement port-name display
...
In case there are no pretty-names, a blank text was displayed
2019-09-20 23:30:05 +02:00
Robin Gareus
e8822e76d6
Add abstract API for latency compensated sends
...
This is in preparation for MixbusSends that are not derived from
Delivery : IOProcessor.
2019-09-20 21:27:16 +02:00
Paul Davis
361727716f
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
2019-09-20 13:02:46 -06:00
Paul Davis
bddde1337e
better initial value
2019-09-20 12:36:23 -06:00
Paul Davis
7383fbbe48
remove debug output
2019-09-20 12:26:49 -06:00
Paul Davis
b374eb7658
fix crash when doing rapid (ongoing-locate-interrupting) locates
2019-09-20 12:26:49 -06:00
Paul Davis
84f8e23027
move TransportFSM::enqueue() into .cc file
2019-09-20 12:26:49 -06:00
Paul Davis
b04788407a
at transport stop, reset FSM's idea of the last locate target (also removes const from method)
2019-09-20 12:26:49 -06:00
Paul Davis
5b90bad68c
fix commented out decision on whether or not to hide/show sysexes in MIDI regions
2019-09-20 12:26:49 -06:00
Robin Gareus
3f9d79e7ab
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).
2019-09-20 19:41:06 +02:00
Robin Gareus
467795f467
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
2019-09-20 19:41:05 +02:00
Paul Davis
4d2ccdd905
const-ify TransportFSM
2019-09-20 09:44:15 -06:00
Paul Davis
30a1cffcdc
rename TransportFSM::FSMEvent to TransportFSM::Event (c/o the Department of Redundancy Department)
2019-09-20 09:38:17 -06:00
Paul Davis
6b12264d40
add an important comment about transportFSM being single-thread and synchronous
2019-09-20 09:38:17 -06:00
Paul Davis
b075c67e51
use boost::intrusive to manage FSM events (this is all RT code)
2019-09-20 09:38:17 -06:00
Paul Davis
ea8ec74565
expand comment
2019-09-20 09:38:17 -06:00
John Emmas
d986049ed8
Remove my BOOST_MPL declarations (as BOOST_MPL seems to have been removed more generally)
2019-09-20 11:32:58 +01:00
Paul Davis
4992c69108
remove compiler flags required only by boost::msm and a large transition table
2019-09-19 22:34:18 -06:00
Paul Davis
61afcb8e2b
replace boost::msm - based FSM for transport with one written in "plain C++"
...
Still need to use boost::intrusive to managed qeued/deferred containers
2019-09-19 22:34:18 -06:00
Robin Gareus
e698a1b2fa
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.
2019-09-18 18:42:34 +02:00
Paul Davis
401ace0c67
don't bother following playhead priority during session loading
2019-09-18 10:08:42 -06:00
Paul Davis
beafb5b572
deepen stack trace when checking non-RT RT calls
2019-09-18 10:08:42 -06:00
Robin Gareus
b3981b0206
Add missing break (VST-key forwarding)
2019-09-18 17:38:01 +02:00
Robin Gareus
ca4b6bb7e9
NO-OP: fix some Wimplicit-fallthrough, see prev commit
2019-09-18 17:38:01 +02:00
Robin Gareus
e0d5c1426c
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
2019-09-18 17:37:54 +02:00
John Emmas
37194ec805
Introduce the BOOST_MPL stuff (though it all seems a bit flaky with MSVC...)
2019-09-18 15:08:26 +01:00
John Emmas
cb3afb6981
Remove a (no longer needed) source file from our MSVC project (evoral)
2019-09-18 15:05:16 +01:00
John Emmas
00a8e7c9e0
Add/remove source(s) in our MSVC project (libardour)
2019-09-18 15:03:51 +01:00
Robin Gareus
b2ff2b86fa
Fix OSX builds: undef Apples's odd nil macro
2019-09-18 06:23:40 +02:00
Robin Gareus
52021bc3ca
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
2019-09-18 05:57:26 +02:00
Robin Gareus
60bce78c7e
Fix Wdeprecated, dynamic exception
...
Dynamic exception specifications are deprecated in C++11,
and were removed in C++17.
2019-09-18 04:43:09 +02:00
Robin Gareus
bf806cde66
Remove old unused source file
2019-09-18 04:37:12 +02:00
Robin Gareus
ce7d2a4f2a
Add missing i18n include (after 7f3f201833)
2019-09-18 04:32:51 +02:00
Robin Gareus
1b20e1ef1d
Re-order includes
...
* external, system-wide first <>
* next "pbd/*"
...
2019-09-18 04:15:02 +02:00
Robin Gareus
7f3f201833
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::_;
2019-09-18 04:15:02 +02:00
Paul Davis
ad8f21763e
deepen stacktrace to show where non-process calls to supposedly process-stack-only methods are called
2019-09-17 19:16:53 -06:00
Paul Davis
bd229936ec
add finite state machine to control/manage transport state
2019-09-17 18:26:03 -06:00
Paul Davis
fc3e7623e7
correct mistakenly left-in debugging condition that removed parallelism for PortManager::cycle_start()
2019-09-17 18:20:51 -06:00
Paul Davis
b648b3a4b4
minor tweaks to use initialization rather than assignment
2019-09-17 18:04:03 -06:00
Paul Davis
192a8b7ec0
remove unused local variable
2019-09-17 18:00:37 -06:00
Paul Davis
f52781b46b
fix thinko when testing for internal seek with negative distance
2019-09-17 17:59:23 -06:00
Paul Davis
cbb7f6d863
use const int rather than macro
2019-09-17 17:57:43 -06:00
Paul Davis
b84c99639f
parametize the maximum transport speed.
...
No GUI to adjust this at this, nor is any planned. This just makes it easier if
we ever feel we can change this.
2019-09-17 17:19:15 -06:00
Paul Davis
ea30642ae3
resize audio port _data buffer based on current buffer size
2019-09-17 17:14:39 -06:00
Paul Davis
455039255b
manually correct cherry-pick of cdbabe40ed4e
2019-09-17 17:06:08 -06:00
Paul Davis
5e9f4f2572
add new port flag to identify those owned by a transport master
...
These ports are handled without SRC
2019-09-17 17:00:32 -06:00