Commit Graph

1713 Commits

Author SHA1 Message Date
Paul Davis
df3a4ed9c6 move call to xmlKeepBlanksDefault(0) to before the creation of an XML parser context
the value is used by the parser context; the old code called it only after the *first* parser context
was created. therefore the first XMLTree::read() call has its behavior determined by libxml2's default
for this value, rather than by our explicit choice (do not treat whitespace as a note). All subequent
read() calls will use our value.

This variable inside libxml2 is actually per-thread, which just increases the stakes for calling
xmlKeepBlanksDefault() at the right time
2020-01-05 17:58:54 -07:00
Paul Davis
560994c97a repeat baf0cdcbef but for BaseUI, thus covering all control protocols 2020-01-05 11:40:59 -07:00
Paul Davis
1ced4067aa ensure that xmlKeepBlankDefault() is called early in instance-life, from PBD::init()
See comment for details on why
2019-12-31 12:06:14 -07:00
John Emmas
75aaae9963 Fix two more cases of of C99 strtoll() 2019-12-31 10:11:18 +00:00
Robin Gareus
def4be7285 Fix MSVC builds, use C89 strtol() instead of C99 strtoll()
For the case at hand (plugin scale-points) it's highly unlikely to
encounter numbers > INT_MAX.
2019-12-30 19:05:51 +01:00
Paul Davis
60ccbcf9cc use a local version (copy) of the G_SOURCE_FUNC macro, since it is not available in the GTK+ version we use for the official build stack 2019-12-30 09:49:23 -07:00
Robin Gareus
04a409df6f Add a numerically_less compare operator
This is similar to sort(1) --human-numeric-sort,
as opposed to naturally_less() negative numbers, hex-prefixes
and SI metric prefixes are taken into account.
2019-12-29 19:47:48 +01:00
Paul Davis
514c05a44e truncate unnecessarily verbose debug set/bits output 2019-12-14 10:40:07 -07:00
Robin Gareus
93180ceea9 Add Inline Control Port Property
This allows to indicate that a control should by default be displayed
inline in the mixer-strip.

Previously that was hard-coded for and enabled for send-level
controls only.
2019-12-14 15:50:56 +01:00
Paul Davis
c3e3930f14 revert to single buffer for disk playback, and 5.x-style overwrite
Also address issues with MIDI and also atomicity of _pending_overwrite
2019-12-10 09:29:22 -07:00
David Robillard
8ec3e5fb54 Fix deprecated-copy warnings
It's long been a guideline (and IIRC a Weff-c++ warning) that either all, or
none, of the copy methods should be defined, but this became a standard warning
in GCC9.  Presumably to account for a later language change though I'm not sure
which.

I don't remember why the ChanMapping copy constructor can't just be a simple
copy (it's just a map of POD), but figure it's safer to just copy what that
does.
2019-12-09 23:25:59 +01:00
David Robillard
21e9c41d96 Fix catch of polymorphic type by value 2019-12-09 22:58:08 +01:00
John Emmas
09d34abaa9 MSVC project changes needed to support the new 'mp3 import' stuff 2019-12-08 15:04:02 +00:00
Paul Davis
8d05f6d4b7 initial conversion to double buffering inside DiskReader
Second buffer is not used (or allocated) yet.
2019-12-07 10:30:38 -07:00
Robin Gareus
b157e1a09a Remove invalid error message
This clause is in NO_VFORK, vfork_exec_wrapper is irrelevant there
2019-11-09 06:30:46 +01:00
Robin Gareus
a8a699133e Fix child-process communication (video monitor in particular)
103ef2ba08 introduced an API to write raw data (const void*)
to a child process, along with the previous API to
write (std::string const&)

VideoMonitor uses write_to_stdin("fixed text"), and g++
interprets this to use the (const void*) API instead
of the std::string, which breaks communication.
2019-11-09 06:28:55 +01:00
Paul Davis
24252b92c6 move at-exit messages about pool utilization to DEBUG_TRACE 2019-11-06 09:27:49 -07:00
Robin Gareus
01f65f557f Fix build -- 'printf' was not declared in this scope 2019-11-03 14:15:11 +01:00
Paul Davis
cd2618246a make it more likely that debug messages are printed without x-thread interruption 2019-11-02 16:32:18 -06:00
Robin Gareus
7852047dca Fix XML-writer edge-case (empty content) 2019-11-01 15:39:44 +01:00
Paul Davis
43eb64d23b add new debug bit (DebugTimestamps) that adds timestamps to all debug messages 2019-10-28 16:52:18 -06:00
Robin Gareus
c663a2d8ef Invert Pan-Azimuth (up means left)
It's a well established convention that pan y-axis automation,
or vertical uses (top) +1 for left.

This special cases rotary knobs (and horizontal sliders) to retain
a clockwise movement (or movement to the right) for panning to the
right.
2019-10-07 05:07:55 +02:00
Robin Gareus
feb5d1261e Fix use of doxygen documented parameters in running text 2019-09-30 06:30:11 +02:00
Robin Gareus
ee54b13d6d Fix some more doxygen warnings 2019-09-30 05:33:44 +02:00
Robin Gareus
959a37144b Fix a few hundred doxygen warnings..
There are still over a hundred left, but this addresses many already.
In particular @param references to undocumented parameters.
Most notably in audio_backend.h
2019-09-30 04:45:59 +02:00
Robin Gareus
5395a557d2 Another try at C++11/boost spinlock initialization 2019-09-26 02:48:17 +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
Paul Davis
bd229936ec add finite state machine to control/manage transport state 2019-09-17 18:26:03 -06:00
Paul Davis
f52781b46b fix thinko when testing for internal seek with negative distance 2019-09-17 17:59:23 -06:00
Robin Gareus
1d49696379 Reduce stdout/stderr clutter, prefer DEBUG_TRACE 2019-09-05 19:29:19 +02:00
Robin Gareus
ffbf40c3d1 Add PBD API to hard-link files 2019-08-12 16:41:25 +02:00
Robin Gareus
0301c47f6b Update core library GPL boilerplate and (C) from git log 2019-08-03 15:53:17 +02:00
Robin Gareus
4a52a9b3b0 Fix C++11 NSDMI 2019-07-31 04:48:52 +02:00
John Emmas
bf5da033dc Another try at fixing our 'spinlock_t' compatibility 2019-07-29 16:56:45 +01:00
Robin Gareus
82bdb48dab Partially undo 6d4b94df13 for MSVC and C++98 compat 2019-07-29 04:45:29 +02:00
Robin Gareus
6d4b94df13 Reduce compiler warnings when boost uses std-atomics
This works around for compilers with non-static-data-member
initialization.

spinlock_t is-a struct { lockType _; } and BOOST_DETAIL_SPINLOCK_INIT
initializes the first member of the struct.
All defines of BOOST_DETAIL_SPINLOCK_INIT include c-style curly braces
to initialize the struct's data member.

However, modern C++ compiler interpret the braces differently resulting
in copy constriction of the initializer.
2019-07-28 20:10:09 +02:00
Robin Gareus
684b364a8a Yet another spinlock init hack for g++8 std::atomics
Perhaps we should rather implement this ourselves,
using <boost/atomic.hpp>
2019-07-28 18:39:26 +02:00
Robin Gareus
63fee3b0c8 Prevent spinlock copy construction 2019-07-28 15:02:04 +02:00
Robin Gareus
d00650c2fd Another attempt at improving spinlock init 2019-07-28 15:01:40 +02:00
Robin Gareus
d382b756c2 Follow up d8ae3fd
Depending on implementation, d8ae3fd may only construct the spinlock
once to `sl_init`. Later it is only copy-constructed and that leads to
compile and/or runtmime errors.

e.g. gcc-8.3 fails to compile
error: use of deleted function ‘boost::detail::spinlock::spinlock(const boost::detail::spinlock&)’
2019-07-28 14:57:51 +02:00
John Emmas
d8ae3fd3a6 MSVC requires an already initialized object to initialize our boost::detail::spinlock (rather than the simpler #define)
Hopefully this'll work for the other builds too.
2019-07-27 12:31:15 +01:00
Robin Gareus
8a8468c5f1 Correctly initialize spintlock_t
Depending on underlying implementation, boost::detail::spinlock
needs to be explicitly initialized
2019-07-26 21:40:39 +02:00
Robin Gareus
78fc6d6651 Prefix all env variable with "ARDOUR_"
In particular "CONCURRENCY" can be problematic. But in general
it's good practice to use a namespace prefix for app-specifics.
2019-07-26 16:44:29 +02:00
Robin Gareus
929ecf622b Add lock-free multiple producer multiple reader queue 2019-07-10 20:21:06 +02:00
Robin Gareus
e76e18af96 Use exit-status macros for compatibility 2/3 2019-07-04 22:21:35 +02:00
John Emmas
94036cc7c0 Correct a typo that crept in somewhere 2019-04-14 19:34:37 +01:00
Robin Gareus
2f91bdfa53 NO-OP: <tab> after <space> fixes in libs 2019-04-13 19:19:29 +02:00
Robin Gareus
6631d97ac0 Mixbus likes hyperthreading on Mac 2019-04-12 18:30:52 +02:00
Robin Gareus
e4f18c1771 NO-OP: whitespace & revert samples -> [stack]frames 2019-04-08 00:35:00 +02:00
Robin Gareus
86138d18f9 Remove extra quotes from meta-data
Arguments are passed as argp[] array to execve() and don't need to be
enclosed by quotes.
2019-03-26 22:12:48 +01:00