Robin Gareus
b23f260d21
Move glib include out of PBD namespace
...
strictly speaking the include is not needed here since
g_atomic_compat.h includes glib.h. However it is idempotent,
the file does use glib methods, and g_atomic_compat.h may
one day be removed again.
2021-04-16 17:43:31 +02:00
Robin Gareus
a1d53c1d2e
Fix linking unit-tests with lld
...
ld.lld: error: libs/pbd/libpbd.so: undefined reference to dlopen [--no-allow-shlib-undefined]
2021-04-13 23:29:02 +02:00
Robin Gareus
8f5c3fcddb
Fix non-layered record-undo
...
Previously an empty RegionList was used (auto-partition
changes were never collected at rec-stop), furthermore
auto-partitioned regions do not have an old ARDOUR::AutomationList
(fade in/out) property (_have_old is false).
2021-04-12 23:14:13 +02:00
Robin Gareus
bc1d19ab39
Increase process-thread stack size (same value as jack2)
2021-04-09 22:00:11 +02:00
Robin Gareus
ea01ec5988
Correctly detect glib volatile atomic
...
see also https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1919
2021-03-30 15:29:53 +02:00
Robin Gareus
60ff3ef764
Work around ffado port-name idiosyncrasies
2021-03-26 17:18:23 +01:00
Robin Gareus
cc7b8b1bc5
gcc-11 compat, volatile atomic variables (1/2)
...
"While 'atomic' has a volatile qualifier, this is a historical
artifact and the pointer passed to it should not be volatile."
Furthermore "It is very important that all accesses to a
particular integer or pointer be performed using only this API"
(from https://developer.gnome.org/glib/2.68/glib-Atomic-Operations.html )
Hence initialization of atomic variables is changed to also use
this API, instead of directly initializing the value.
This also fixes a few cases where atomic variables were
accessed directly.
see also libs/pbd/pbd/g_atomic_compat.h
2021-03-22 15:30:07 +01:00
Robin Gareus
d08b9eaa8d
Fix debug message: missing newline
2021-03-21 22:31:40 +01:00
John Emmas
15f12bd3a9
A few minor changes to keep VS2019 happy
2021-02-09 10:52:37 +00:00
Robin Gareus
7e74f9eb1e
Keep track of recently touched Controllable
2021-02-09 02:11:04 +01:00
John Emmas
b496a71d2e
Some preliminary changes needed to support building with VS2019
...
(these get me about as far as 'libardour' )
2021-01-30 13:55:25 +00:00
John Emmas
ef7a5e1b00
For 64-bit compilation, MSVC no longer supports inline assembly
2021-01-07 09:22:43 +00:00
Ayan Shafqat
407882d23d
Add support for Intel/AMD's FMA extension
...
By supporting FMA extension, the number of instruction needed
for multiply accumulate to mix channels are reduced. Since,
this extension has been around since middle of 2012, more
computers have this instruction set available.
2021-01-01 21:05:16 +01:00
Robin Gareus
1db219b3d8
Fix compilation with mingw/gcc-8
2020-12-10 20:21:29 +01:00
Robin Gareus
13e6fdb6b3
Ensure ringbuffers are never copy-constructed
2020-12-07 02:54:51 +01:00
Robin Gareus
a974a3135e
Prevent duplicate search paths
...
This fixes an issue with VST3 plugins being listed up multiple times
if a user also explicitly adds standard built-in search paths.
2020-12-02 21:34:52 +01:00
David Robillard
0404876d7b
Fix reliance on deprecated implicit assignment operators
...
Either both, or neither, a copy constructor and assignment operator should be
defined. This fixes Wdeprecated-copy warnings.
2020-12-01 12:03:38 +01:00
Robin Gareus
ff7bd23661
NO-OP: comments
2020-11-10 19:31:25 +01:00
Robin Gareus
512b47c878
micro-optimization (skip atomic test)
2020-11-10 19:31:09 +01:00
Robin Gareus
01cdaa49b4
Fix gcc-4.x/C++98 builds (amend f87de76b9f)
...
This resolves error: invalid use of 'unary *' on pointer to member
error: 'volatile gint RCUManager<std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::shared_ptr<ARDOUR::Port>, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::shared_ptr<ARDOUR::Port> > > > >::active_reads' is protected
2020-11-10 18:41:27 +01:00
Robin Gareus
b1846a578d
NO-OP: whitespace, doxygen formatting and naming
2020-11-10 17:05:22 +01:00
Hector Martin
f87de76b9f
RCU: Fix race condition between writer/reader
...
This uses an atomic counter and spins only on the writer side, which
preserves realtime behavior on the reader side. The spinning yields (by
using the same Boost function from Boost spinlocks) to be
scheduler-friendly.
Fixing this bug also lets us be able to confidently drop garbage early
in the writer if appropriate, so do that and avoid keeping dead wood if
possible.
This reverts commit f95439a502 :
"add spinlock to RCU manager to protect concurrent reader() and update() calls"
2020-11-10 17:05:16 +01:00
John Emmas
5f082e2c9d
Add an extra option when querying Windows registry keys
...
(this option will be needed when 32-bit Ardour is running in 64-bit Windows)
2020-11-09 11:35:35 +00:00
Paul Davis
f95439a502
add spinlock to RCU manager to protect concurrent reader() and update() calls
2020-11-08 11:28:10 -07:00
Robin Gareus
01f9332458
Fix RCU Unit-test on macOS/X
...
Apple's pthread does not implement barriers
2020-11-07 10:37:52 +01:00
Robin Gareus
88fc0ed392
Add RCU unit test
2020-11-05 02:24:54 +01:00
Robin Gareus
cf0904f752
Handle vfork/exec failure
...
Don't call atexit, exit without cleanup.
2020-10-31 22:33:10 +01:00
Robin Gareus
a9bd7b2848
Remove unused compile-time option to not use vfork
2020-10-31 22:30:45 +01:00
Robin Gareus
7896c30508
Fix cmdline parameter escape
2020-10-31 13:42:14 +01:00
Robin Gareus
f509a7e003
Extend convenience API to query windows registry
2020-10-30 13:15:06 +01:00
Robin Gareus
54829492ca
Fix glib/glibmm includes
2020-10-24 04:14:38 +02:00
Robin Gareus
8852069ead
Consolidate code: add library method to query Windows registry
2020-10-24 03:56:47 +02:00
Robin Gareus
1fa05b4764
Generate header before building dependency graph
2020-10-16 02:35:51 +02:00
Robin Gareus
fe8a05d6c9
libpbd signals.h depends on signals_generated.h
...
This fixes building with large concurrency where signals_generated.h
may otherwise be generated to late.
2020-10-15 05:45:51 +02:00
Robin Gareus
547032afac
Fix alignment unit-tests and ARM/NEON alignment
2020-10-15 03:55:42 +02:00
Robin Gareus
e4e94e77c9
Transmitter::Debug implementation 1/2
...
This also sorts switch() and listen_to() statements in order
of severity: debug, info, warning, error, fatal, throw.
2020-10-13 21:58:26 +02:00
Robin Gareus
9a4237ba83
Add debug transmitter
...
This is in preparation to conveniently duplicate debug messages
to Window > Log. For cases where stdout/err is not easily accessible.
2020-10-13 21:27:16 +02:00
Robin Gareus
140e03bb7d
Make windows-console setup code re-usable
2020-09-20 19:57:08 +02:00
mx
262281bc1f
Use soundtouch for vocal audio time stretching (1/2)
2020-08-26 19:04:58 +02:00
Robin Gareus
34159e4594
Fix ARM runtime NEON detection
2020-08-24 22:03:28 +02:00
Robin Gareus
a0a4477c84
Fix aarch64 builds
2020-08-24 21:26:38 +02:00
Ayan Shafqat
1f878636c8
Adding NEON detection during runtime
2020-08-24 02:06:35 +02:00
Emilio Norrmann
d21337a3a4
fixed typo
2020-08-19 19:02:37 +02:00
Robin Gareus
d3685784aa
Fix numeric sort: use decimal or hex (but not octal)
...
This fixes sort order of plugin-presets or parameter
scale-points with leading zeros.
2020-08-09 14:45:39 +02:00
Robin Gareus
c2618903ae
Allow to overload drop_references()
...
This is useful in cases where an object owns child objects
which in turn hold a reference to the parent.
In this case PluginInsert has-a Plugin, which may have a reference
to the insert or the Route.
2020-08-05 22:35:35 +02:00
Ben Loftis
a2f4521e77
Short-circuit gain interpolation if the change is negligibly small
2020-07-21 18:37:32 -05:00
Robin Gareus
fa495b7727
Account for additional TLS on macOS/X
...
On GLIBC systems pbd_stack_size() adds __pthread_get_minstack,
this is no available on mac systems, causing issues with some
libraries used by plugins.
2020-07-21 23:10:01 +02:00
Robin Gareus
6d950d15ba
Use signed int for atomic operations -- #8314
2020-07-16 16:13:21 +02:00
John Emmas
8cea355906
Moving Controllable::set_interface() into a 'cc' file makes it easier to fix our MSVC build issue (with min + max)
2020-06-20 09:38:00 +01:00
Paul Davis
71f088dbbd
move virtual method requiring std::min from header into .cc
...
The method is virtual so it could never have been inlined anyway
2020-06-18 16:26:44 -06:00