Commit Graph

697 Commits

Author SHA1 Message Date
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
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
Paul Davis
f52781b46b fix thinko when testing for internal seek with negative distance 2019-09-17 17:59:23 -06: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
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
929ecf622b Add lock-free multiple producer multiple reader queue 2019-07-10 20:21:06 +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
e4f18c1771 NO-OP: whitespace & revert samples -> [stack]frames 2019-04-08 00:35:00 +02:00
Robin Gareus
854de91fb0 Fix mingw compile (declare int64_t and int32_t) 2019-03-26 15:35:36 +01:00
Robin Gareus
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
Robin Gareus
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
Robin Gareus
16fe286ed9 Use weak-pointer for Controllable learning 2019-03-23 01:50:45 +01:00
Robin Gareus
1dedadd03f Remove c-pointer Controllable* registry 2019-03-23 01:42:03 +01:00
Robin Gareus
9a1c22d7e1 Remove unusued API Create/Delete Binding 2019-03-23 01:28:23 +01:00
Paul Davis
b53d80a7d4 make PlaybackBuffer<T>'s power-of-two size computation available to others 2019-03-18 07:39:23 -07:00
Robin Gareus
e1ffe7857f Use enum for exec stderr parameter (1/2) 2019-03-05 22:49:15 +01:00
Robin Gareus
7ae1825a3c Remove cruft, unused files 2019-02-28 18:04:42 +01:00
Robin Gareus
c6e2e0a948 Clean up remnants from a half eaten apple 2019-02-28 18:00:08 +01:00
Robin Gareus
35609bcfed Fix some signed/unsigned warnings 2019-02-16 01:10:50 +01:00
Robin Gareus
865a33f7b9 Properly initialize atomic variable 2019-02-08 19:33:23 +01:00
Robin Gareus
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
Robin Gareus
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
Robin Gareus
b3fda6236a Optimize buffer zero-filling 2019-02-06 17:02:20 +01:00
Robin Gareus
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
Robin Gareus
bf728520ca Optimize exponential interpolation. 2019-01-19 12:08:54 +01:00
Robin Gareus
1759d1c9c9 Fix a tiny memory-leak when calling vfork 2018-11-29 02:06:42 +01:00
Robin Gareus
d169864b5b Prepare session-metadata export to external command 2018-11-20 23:56:12 +01:00
Robin Gareus
103ef2ba08 Add API to write raw data to child processes. 2018-11-19 02:26:43 +01:00
Robin Gareus
78a3683233 Consolidate relative sched_get_priority computation 2018-10-11 15:29:50 +02:00
John Emmas
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
Robin Gareus
3534035091 Add a time-profiler with statistics 2018-05-17 22:15:07 +02:00
Robin Gareus
c0dbe8eaaf Move coreaudio_set_realtime_policy into libpbd 2017-10-30 16:31:38 +01:00
Robin Gareus
1aa96dc0a1 Add a RAII SpinLock (using boost's spinlock) 2017-10-26 22:33:46 +02:00
Robin Gareus
5c6e2b5802 Fix g_stat() for 64bit windows/mingw64 2017-10-18 17:54:39 +02:00
Robin Gareus
df83c0381e Prepare support for compression levels (archive + flac) 2017-10-03 02:22:42 +02:00
Paul Davis
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
Robin Gareus
dc83dc7b58 Add TouchChanged signal (and re-indent) 2017-09-18 11:40:52 -04:00