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
24252b92c6
move at-exit messages about pool utilization to DEBUG_TRACE
2019-11-06 09:27:49 -07:00
01f65f557f
Fix build -- 'printf' was not declared in this scope
2019-11-03 14:15:11 +01:00
cd2618246a
make it more likely that debug messages are printed without x-thread interruption
2019-11-02 16:32:18 -06:00
7852047dca
Fix XML-writer edge-case (empty content)
2019-11-01 15:39:44 +01:00
43eb64d23b
add new debug bit (DebugTimestamps) that adds timestamps to all debug messages
2019-10-28 16:52:18 -06:00
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
feb5d1261e
Fix use of doxygen documented parameters in running text
2019-09-30 06:30:11 +02:00
ee54b13d6d
Fix some more doxygen warnings
2019-09-30 05:33:44 +02:00
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
5395a557d2
Another try at C++11/boost spinlock initialization
2019-09-26 02:48:17 +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
bd229936ec
add finite state machine to control/manage transport state
2019-09-17 18:26:03 -06:00
f52781b46b
fix thinko when testing for internal seek with negative distance
2019-09-17 17:59:23 -06:00
1d49696379
Reduce stdout/stderr clutter, prefer DEBUG_TRACE
2019-09-05 19:29:19 +02:00
ffbf40c3d1
Add PBD API to hard-link files
2019-08-12 16:41:25 +02:00
0301c47f6b
Update core library GPL boilerplate and (C) from git log
2019-08-03 15:53:17 +02:00
4a52a9b3b0
Fix C++11 NSDMI
2019-07-31 04:48:52 +02:00
bf5da033dc
Another try at fixing our 'spinlock_t' compatibility
2019-07-29 16:56:45 +01:00
82bdb48dab
Partially undo 6d4b94df13
for MSVC and C++98 compat
2019-07-29 04:45:29 +02:00
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
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
63fee3b0c8
Prevent spinlock copy construction
2019-07-28 15:02:04 +02:00
d00650c2fd
Another attempt at improving spinlock init
2019-07-28 15:01:40 +02:00
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
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
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
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
929ecf622b
Add lock-free multiple producer multiple reader queue
2019-07-10 20:21:06 +02:00
e76e18af96
Use exit-status macros for compatibility 2/3
2019-07-04 22:21:35 +02:00
94036cc7c0
Correct a typo that crept in somewhere
2019-04-14 19:34:37 +01:00
2f91bdfa53
NO-OP: <tab> after <space> fixes in libs
2019-04-13 19:19:29 +02:00
6631d97ac0
Mixbus likes hyperthreading on Mac
2019-04-12 18:30:52 +02:00
e4f18c1771
NO-OP: whitespace & revert samples -> [stack]frames
2019-04-08 00:35:00 +02:00
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
854de91fb0
Fix mingw compile (declare int64_t and int32_t)
2019-03-26 15:35:36 +01:00
da114c5a4d
Remove static Destroyed(*), prefer StatefulDestructable API
...
This also add a debug-dump method to show remaining registered
Controllables.
2019-03-23 16:15:23 +01:00
087fd57d37
Re-add Controllable registry
...
To facilitate a central registry with weak/shared pointer lookup,
enable_shared_from_this<ARDOUR::AutomationControl>
was migrated to
enable_shared_from_this<PBD::Controllable>
The main (and only) user is generic-midi surface's state interface :(
2019-03-23 04:23:43 +01:00
16fe286ed9
Use weak-pointer for Controllable learning
2019-03-23 01:50:45 +01:00
1dedadd03f
Remove c-pointer Controllable* registry
2019-03-23 01:42:03 +01:00
9a1c22d7e1
Remove unusued API Create/Delete Binding
2019-03-23 01:28:23 +01:00
b53d80a7d4
make PlaybackBuffer<T>'s power-of-two size computation available to others
2019-03-18 07:39:23 -07:00
15cd1163fc
Pass stderr mode properly to vfork wrapper
2019-03-07 23:51:04 +01:00
8b5437301b
Close stderr of child processes on MacOS
...
This fixes a bug on some modern mac systems. Related to
setup_logging() changing stderr to use ASL and write to com.apple.console.
When a forked application writes to stderr while ASL is used,
the child is terminated for some reason.
2019-03-05 22:52:53 +01:00
e1ffe7857f
Use enum for exec stderr parameter (1/2)
2019-03-05 22:49:15 +01:00
c83ba53399
Remove ancient, unmaintained xcode project files
2019-02-28 18:12:44 +01:00
7ae1825a3c
Remove cruft, unused files
2019-02-28 18:04:42 +01:00
c6e2e0a948
Clean up remnants from a half eaten apple
2019-02-28 18:00:08 +01:00
7048d86d6c
Remove unused define
2019-02-26 03:49:02 +01:00
6920e5d653
Prefer vfork() over system() when opening an URI
...
see also https://github.com/surge-synthesizer/surge/issues/657
2019-02-26 03:47:36 +01:00
35609bcfed
Fix some signed/unsigned warnings
2019-02-16 01:10:50 +01:00
865a33f7b9
Properly initialize atomic variable
2019-02-08 19:33:23 +01:00
a6e7abb7fa
Accommodate newly introduced source(s) in our MSVC project (libpbd)
2019-02-08 10:17:57 +00:00
3c96ba1de6
Allow reading future data without read-commit
...
This is in preparation for de-click, fade-out. A disk-reader
can keep going, reading buffered data (if any) without changing the
read-index.
2019-02-07 01:31:15 +01:00
6975b5ca54
Prepare buffer for seeking
...
Keep track of safe reservation:
Data has been read (or was skipped) previously can be read again
up to the allocated "reservation" (which is never overwritten).
2019-02-06 19:00:15 +01:00
b3fda6236a
Optimize buffer zero-filling
2019-02-06 17:02:20 +01:00
007c4ffdc0
Towards a new disk-reader ringbuffer
...
This is mainly a NO-OP, introducing a new PlaybackBuffer type
and preparing for its use.
At this point in time, the buffer is just a power-of-two sized
ringbuffer and the disk-reader's read-logic is still unchanged.
Eventually the read and write sample position that are currently
private to the disk-reader can be migrated to be owned by the buffer.
Also Diskreader::read() positions can be matched to read-position ..
+/- buffer reservation and de-click can read w/o committing the read.
2019-02-05 23:29:31 +01:00
28f211c5d2
NO-OP: whitespace
2019-01-23 12:59:17 +01:00
87602e7fb3
system-exec read: allow 1 byte for null termination -- #7715
2019-01-23 12:44:10 +01:00
bf728520ca
Optimize exponential interpolation.
2019-01-19 12:08:54 +01:00
55bc0eec91
adjustments for latest boost shared_ptr debug patch
2018-12-19 17:19:51 -05:00
1759d1c9c9
Fix a tiny memory-leak when calling vfork
2018-11-29 02:06:42 +01:00
d169864b5b
Prepare session-metadata export to external command
2018-11-20 23:56:12 +01:00
d18b247a05
Fix Windows and Mac Builds
...
* missing include for locale_to_utf8 (amend 4c6ff5f7e7
)
* avoid void* arithemtic (amend 103ef2ba
)
2018-11-19 12:54:07 +01:00
103ef2ba08
Add API to write raw data to child processes.
2018-11-19 02:26:43 +01:00
7c3fd2fe79
Glib throws a const FileError exception
2018-10-26 13:40:03 +02:00
8ed33f1bc7
remove use of hardcoded -fPIC compiler flag, and use compiler flag dict instead
2018-10-14 22:06:11 -04:00
78a3683233
Consolidate relative sched_get_priority computation
2018-10-11 15:29:50 +02:00
9506a294c7
Adapt our remaining MSVC projects for 'boost::atomic' (in case it later gets extended to the other libs)
...
Stage 1 of 3 (more to follow)
2018-09-30 08:56:12 +01:00
497a3fbaa1
Fix --no-nls (2/5), prefer #if in libs
...
This is for consistency with system-wide gettext.h which is used
by some 3rd party libs. system-wide gettext uses `#if ENABLE_NLS`,
not #ifdef
2018-09-21 19:03:33 +02:00
79f01bc889
Initial changes needed for building Mixbus (with MSVC) as version 5
...
(Mixbus itself will probably need extra changes)
2018-09-10 07:14:59 +01:00
fb4ff01a18
better debug message with correct namespace for EventLoop::invalidate_request()
2018-08-07 10:44:56 -04:00
07466440c4
Move a couple of #undef's
...
'pbd/timing.h' now includes a call to 'std::numeric_limits<>::max()'
2018-05-19 09:28:30 +01:00
3534035091
Add a time-profiler with statistics
2018-05-17 22:15:07 +02:00
b9c9777b9a
When building with MSVC, allow for the fact that Mixbus and Ardour can be using different versions of the SESSION_FILE format
2018-02-15 09:03:32 +00:00
3856d525fb
Fix "open folder" for non-ASCII paths on Windows
2017-11-27 00:42:55 +01:00
c0dbe8eaaf
Move coreaudio_set_realtime_policy into libpbd
2017-10-30 16:31:38 +01:00
6e017eff22
Accommodate newly added/removed source(s) in our MSVC project (libpbd)
2017-10-27 13:08:32 +01:00
1aa96dc0a1
Add a RAII SpinLock (using boost's spinlock)
2017-10-26 22:33:46 +02:00
5c6e2b5802
Fix g_stat() for 64bit windows/mingw64
2017-10-18 17:54:39 +02:00
df83c0381e
Prepare support for compression levels (archive + flac)
2017-10-03 02:22:42 +02:00
bcdb3aec3a
Check in a few MSVC projects to accommodate the change from libtimecode to libtemporal
...
This is mostly to see if there'll be any problems when merging these changes into Mixbus. I'm guessing there'll be some conflicts in these projects (and a lot more to follow...)
2017-09-28 12:27:56 +01:00
506a29e2d3
Don't recurse into MacVST bundle-folders during plugin-scan
2017-09-21 20:02:11 +02:00
30b087ab3d
globally change all use of "frame" to refer to audio into "sample".
...
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode
and video in order to keep the legible
2017-09-18 12:39:17 -04:00
dc83dc7b58
Add TouchChanged signal (and re-indent)
2017-09-18 11:40:52 -04:00
7258c6334d
Namespace PBD::RingBuffer
...
class RingBuffer<> is a very generic name and should not pollute the
global namespace.
2017-09-16 16:37:29 +02:00
7d88091229
Avoid assert() when loading xml: Throw an XMLerror if attribute_value fails.
2017-08-30 10:23:34 -05:00
467c801ce8
Abstract definition of rt-scheduler policy
...
pthread-w32 does not support pthread_setschedparam() with
SCHED_FIFO and bails out. While pthread_create() simply ignores the policy
and sets the priority regadless.
This only affects ctrl-surface event-loops & AutomationWatch on Windows.
2017-08-29 20:35:36 +02:00
229c9584bf
Add a PBD API to set pthread priority
2017-08-29 17:25:23 +02:00
8374e23014
Add API to set thread-priority (for ctrl-surfaces)
2017-08-05 01:28:11 +02:00
cec84d242d
NO-OP: whitespace
2017-08-04 16:26:37 +02:00
1ed9564ffd
Graph profiling: allow to override max DSP thread count & calc avg.
2017-08-04 16:26:26 +02:00
ea48c56061
NO-OP: name-change (_list and _lock are also used in other places)
...
Derived classes need to explicitly specify namespace and class
to avoid ambiguities (even for private members)
2017-07-30 02:42:55 +02:00
bde3edf1c8
Make start_touch() truly idempotent
...
Also don't allow outsiders to call Controllable::set_touching()
2017-07-25 20:15:12 +02:00
ddf55c0d88
PBD::init() failing is fatal in main(), don't silently exit.
2017-07-03 14:45:41 +02:00
6f986173f3
Controllable focus notification API
...
This allows to inform control-surfaces about the current GUI
control-element. "Link" control-surface interaction to GUI focus.
2017-07-02 18:19:13 +02:00
6180c5a5fc
Accommodate newly introduced source(s) in our MSVC project (libpbd)
2017-06-22 17:59:16 +01:00
6ab970efa3
Remove LocaleGuard from PBD::Controllable state methods
...
These are no longer necessary as float <=> string conversion is handled by
locale independent PBD::to_string/string_to via XMLNode::get/set_property
2017-06-22 10:48:38 +10:00
940be0cbb9
compilation requires <stdint.h>
2017-06-21 14:19:21 -04:00
ce059e2d66
Remove internal_to_user/user_to_internal API
...
Also GainControl can just use the AutomationControl's implementation of
get_user_string()
2017-06-21 18:13:46 +02:00