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
cbb7f6d863
use const int rather than macro
2019-09-17 17:57:43 -06:00
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
ea30642ae3
resize audio port _data buffer based on current buffer size
2019-09-17 17:14:39 -06:00
455039255b
manually correct cherry-pick of cdbabe40ed4e
2019-09-17 17:06:08 -06:00
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
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
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
9c752c249d
Add new icons: hide, prev/next
2019-09-12 23:36:25 +02:00
8a313daa13
Who needs semicolons?
2019-09-11 03:00:26 +02:00
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
8dc0c84ba4
AU: don't consider in-place if there are no inputs
2019-09-11 02:56:04 +02:00
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
ed937c383f
Fix ARM compilation
2019-09-10 04:09:22 +02:00
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
68c13940e3
Implement denormal protection for ARM
2019-09-09 18:54:58 +02:00
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
07b685c371
Remove NO-OP; ProcessThread::init() does nothing
2019-09-09 18:44:24 +02:00
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
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
bbe605c0fa
Send NoteOff on when muting MIDI, drop note events when silent
2019-09-09 04:15:20 +02:00
66ceb2b3c7
NO-OP: whitespace
2019-09-06 20:43:20 +02:00
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
72d9a93baa
Improve Lua unit-test report
2019-09-06 18:36:32 +02:00
6328f92665
Fix LuaProc script-parse return status
2019-09-06 15:39:54 +02:00
9052b29add
Remove ancient unit-test data
...
Evoral MIDI automation interpolation is tested separately,
there is no need to evaluate a complete old session
2019-09-06 03:09:39 +02:00
9630b148bc
Update template test session
2019-09-06 02:58:34 +02:00
212b445628
Shuttle Surface: handle libusb_init() failure
...
USB stack may not be available on some systems, e.g. unit-test VM.
When libusb_init(0) fails to create default context, further calls
into the libusb API will cause segfaults.
2019-09-06 01:37:00 +02:00
beccc53bb6
Unit-test: parameter ranges outside [0..1]
...
More updates after 3d15499cda
* set parameter-range for MIDI sequences
* set parameter-range for cubic spline
2019-09-05 22:42:08 +02:00