Commit graph

15135 commits

Author SHA1 Message Date
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
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
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
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
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
Paul Davis
37d9ec34c8 add ::usable() method to TransportMaster objects to allow GUI to show their usability after backend/engine changes 2019-09-17 16:54:10 -06:00
Robin Gareus
65ec8fe65a
Clarify splash-screen boot messages
Parsing MIDNAM is what takes the most time.

"Reset Remote Controls" message is misleading (it means MMC), not
control-surfaces, which a user may have none.
2019-09-16 23:08:01 +02:00
Robin Gareus
9c752c249d
Add new icons: hide, prev/next 2019-09-12 23:36:25 +02:00
Robin Gareus
8a313daa13
Who needs semicolons? 2019-09-11 03:00:26 +02:00
Robin Gareus
9f668ceed2
AU: fix optional buffers
The spec [1] says:
 "If the mData pointers are null, the audio unit can
  provide pointers to its own buffers. In this case,
  the audio unit must keep those buffers valid for
  the duration of the calling thread’s I/O cycle."

A plugin *can* do this, but it does not need to. An extra
NULL test is required.

furthermore [2] specifies

 "mDataByteSize -  The number of bytes in the buffer pointed
  at by the mData field."

In case the host does not provide any buffers, this is obviously zero.


[1] https://developer.apple.com/documentation/audiotoolbox/1438430-audiounitrender?language=objc
[2] https://developer.apple.com/documentation/coreaudiotypes/audiobuffer?language=objc
2019-09-11 02:56:08 +02:00
Robin Gareus
8dc0c84ba4
AU: don't consider in-place if there are no inputs 2019-09-11 02:56:04 +02:00
Robin Gareus
d18f6dcbab
MXCSR is a 32bit unsigned int register
https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_setcsr
2019-09-10 16:59:04 +02:00
Robin Gareus
ed937c383f
Fix ARM compilation 2019-09-10 04:09:22 +02:00
Robin Gareus
38b36d2ea5
Engage thread-safe fftw planner in libardour
This way initialization happens constently, and independent from the GUI,
for session-utils, lua, headless..
2019-09-10 03:06:21 +02:00
Robin Gareus
68c13940e3
Implement denormal protection for ARM 2019-09-09 18:54:58 +02:00
Robin Gareus
4abb907a82
Use ProcessThread::init () to set up denormal protection
Modifying the MXCSR register only affects the current thread.
2019-09-09 18:48:16 +02:00
Robin Gareus
07b685c371
Remove NO-OP; ProcessThread::init() does nothing 2019-09-09 18:44:24 +02:00
Robin Gareus
7afb068fa6
When muting MIDI, silence all playing notes
All-note-off event (CC 123) needs to be accompanied
with raising the sustain-pedal (CC 64).
2019-09-09 17:10:04 +02:00
Robin Gareus
cd6e074e92
Fix MIDI velocity scale for muted sends and manual faders
Do not send continuous stream of note-evens with zero velocity
after muting a MIDI track or after a fade to silence completed
(and all-notes-off has been sent).

NB. Automated Faders are left untouched (no panic is sent for -infdB gain),
Note-on events with zero velocity are sent.
2019-09-09 05:01:26 +02:00
Robin Gareus
bbe605c0fa
Send NoteOff on when muting MIDI, drop note events when silent 2019-09-09 04:15:20 +02:00
Robin Gareus
66ceb2b3c7
NO-OP: whitespace 2019-09-06 20:43:20 +02:00
Robin Gareus
33c251a623
Fix MSVC compilation
This resolves a circular dependency:
libardour calls methods from libardour_cp and vice versa.
Since 9bb2f2bb libardour is also calling active() and that method
needs to be forced to use late binding. -- compare to b9bbea7174
2019-09-06 20:35:49 +02:00