13
0
Commit Graph

14957 Commits

Author SHA1 Message Date
e0069fe0f5 various changes to transportFSM, mostly to try to keep track of whether to roll-after-locate (more) accurately 2019-09-22 12:23:54 -06:00
21ba7fb844 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
2019-09-22 12:23:54 -06:00
2a221ae21b improve debug output 2019-09-22 12:23:54 -06:00
0b033a320d move all bundle-related session methods into their own file 2019-09-22 12:23:54 -06:00
86b23c0f19 add direct access API for transportFSM and session transport speed 2019-09-22 12:23:54 -06:00
9f8b8d192b remove unused PostTransportDuration and enumeration-writing for Adjust(Playback|Capture)Buffering 2019-09-22 12:23:54 -06:00
228fbd3192 correct problem with some locates that would keep rolling after they are finished 2019-09-22 12:23:54 -06:00
d7c91b5322 split session-bundled-related methods to their own file 2019-09-22 12:23:54 -06:00
ba9e6ab869 add const and tweak variable name 2019-09-22 12:23:54 -06:00
0869f63866 transport master deletion is no longer in parallel with process() 2019-09-22 12:23:54 -06:00
057ce33563 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.
2019-09-22 12:23:54 -06:00
99c072660b
NO-OP: whitespace 2019-09-22 04:58:32 +02:00
0e68d3f742
Optimize Audio-buffer summing
* skip silent buffers
* use vectorized copy
* prefer memset for zero-gain
2019-09-22 04:54:28 +02:00
a1c48e0a80
Remove unused method 2019-09-22 04:52:26 +02:00
3ae46256c8
Properly initialize BusSendEnable min/max 2019-09-22 04:15:36 +02:00
7dc52e009f
NO-OP: cleanup code 2019-09-22 04:15:01 +02:00
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
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
bddde1337e better initial value 2019-09-20 12:36:23 -06:00
7383fbbe48 remove debug output 2019-09-20 12:26:49 -06:00
b374eb7658 fix crash when doing rapid (ongoing-locate-interrupting) locates 2019-09-20 12:26:49 -06:00
84f8e23027 move TransportFSM::enqueue() into .cc file 2019-09-20 12:26:49 -06:00
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
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
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
4d2ccdd905 const-ify TransportFSM 2019-09-20 09:44:15 -06:00
30a1cffcdc rename TransportFSM::FSMEvent to TransportFSM::Event (c/o the Department of Redundancy Department) 2019-09-20 09:38:17 -06:00
6b12264d40 add an important comment about transportFSM being single-thread and synchronous 2019-09-20 09:38:17 -06:00
b075c67e51 use boost::intrusive to manage FSM events (this is all RT code) 2019-09-20 09:38:17 -06:00
ea8ec74565 expand comment 2019-09-20 09:38:17 -06:00
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
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
401ace0c67 don't bother following playhead priority during session loading 2019-09-18 10:08:42 -06:00
beafb5b572 deepen stack trace when checking non-RT RT calls 2019-09-18 10:08:42 -06:00
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
37194ec805 Introduce the BOOST_MPL stuff (though it all seems a bit flaky with MSVC...) 2019-09-18 15:08:26 +01:00
cb3afb6981 Remove a (no longer needed) source file from our MSVC project (evoral) 2019-09-18 15:05:16 +01:00
00a8e7c9e0 Add/remove source(s) in our MSVC project (libardour) 2019-09-18 15:03:51 +01:00
b2ff2b86fa
Fix OSX builds: undef Apples's odd nil macro 2019-09-18 06:23:40 +02:00
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
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
bf806cde66
Remove old unused source file 2019-09-18 04:37:12 +02:00
1b20e1ef1d
Re-order includes
* external, system-wide first <>
* next "pbd/*"
...
2019-09-18 04:15:02 +02:00
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
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
bd229936ec add finite state machine to control/manage transport state 2019-09-17 18:26:03 -06:00
fc3e7623e7 correct mistakenly left-in debugging condition that removed parallelism for PortManager::cycle_start() 2019-09-17 18:20:51 -06:00
b648b3a4b4 minor tweaks to use initialization rather than assignment 2019-09-17 18:04:03 -06:00
192a8b7ec0 remove unused local variable 2019-09-17 18:00:37 -06:00
f52781b46b fix thinko when testing for internal seek with negative distance 2019-09-17 17:59:23 -06:00