Commit graph

17160 commits

Author SHA1 Message Date
Paul Davis
76bd2a77d7 add DSP/processing statistics to Routes and Processors 2021-06-10 10:11:40 -06:00
Paul Davis
6b07926b03 remove debug output 2021-06-10 10:11:40 -06:00
Paul Davis
0dddd75429 change StoringTimer to be thread safe and use fixed char strings to identify timing points
This may not be at all useful, but the existing implementation was completely useless because of a lack
of thread safety
2021-06-10 10:11:40 -06:00
Robin Gareus
7ce43739e8
Tweak sched priorities use given and 4 levels below. 2021-06-10 14:38:45 +02:00
Robin Gareus
8c0ef7bd62
Add support for CPU DMA latency requests 2021-06-10 04:30:06 +02:00
Robin Gareus
2e574a011a
Amend 6e82f3669f, set BaseUI thread priority early on
This is conceptually clearned compared to doing it as
part of the session.
2021-06-10 04:30:03 +02:00
Robin Gareus
6e82f3669f
Correctly set ctrl-surface thread priority 2021-06-10 03:17:55 +02:00
Robin Gareus
89a0040f1b
Allow to override rt priority for internal backends 2021-06-10 03:17:53 +02:00
Robin Gareus
2c8916310a
Consistent env variable naming (see also 6801c2cac2) 2021-06-10 03:17:49 +02:00
Robin Gareus
444af7b3e8
Fix client_real_time_priority() calls (backend vs engine) 2021-06-10 03:17:45 +02:00
Robin Gareus
0e570d15ae
Amend 3a7ea6b, do not kill child after 10 sec w/o output
This fixes video-timeline issues (harvid has no output), as well
as ALSA device reservation and xjadeo (when idle).
2021-06-08 23:23:31 +02:00
Robin Gareus
445d5a75d0
NO-OP: use reference instead of iterator 2021-06-08 19:26:40 +02:00
Robin Gareus
23e3b6f6a8
Amend previous commit (remove debug instrumentation) 2021-06-08 16:49:55 +02:00
Robin Gareus
e8130c1f1b
Optimize input-metering
Rely on previously collected I/O port-list, skip expensive call
to get_physical_inputs() and rely on RCU port list alone.
Also skip port_is_mine() test in optimized builds.
2021-06-08 16:43:26 +02:00
Paul Davis
b75a37abdb fix arguemnts to transport call in shared control surface code for transport_play() 2021-06-08 08:32:19 -06:00
Ben Loftis
f4d4dddbeb Paste Mode: overwrite-paste, naive implementation using rec-mode (for testing) 2021-06-08 08:33:48 -05:00
Ben Loftis
1c9bb9ab41 Playlist UI tweaks: refactor PlaylistSelector (life-cycle, code-cleanup)
* You can now show a selector for each track, rather than one global dialog
* Removed the 'cancel' button: it was too easy to unintentionally revert your selection
* Correctly sort and name new playlists when they are added or renamed from the P menu
* Fix problem where list contents disappeared when changing desktops (on_unmap_event)
2021-06-08 08:33:48 -05:00
Ben Loftis
c2fb85e37e Cruft removal: behavior of Region List has changed; these functions are deprecated (libardour) 2021-06-08 08:33:48 -05:00
Robin Gareus
b0db646029
Refactor input port monitoring
* avoid memory allocation (remove std:set<>&)
* skip nested loop using port-names as IDs

However this adds a bit of extra cost in case input ports are
monitored: get_port_by_name() and get_buffer()
2021-06-08 14:34:57 +02:00
Robin Gareus
bed992d55f
Minimize false sharing of MPMC queue variables 2021-06-07 23:40:29 +02:00
Robin Gareus
5cec55da2e
Micro-optimization: std::atomic<> vs glib
glib atomic operations include a complete act as a full
compiler and (where appropriate) hardware memory barrier.

std::atomic<> allows dedicated acquire and release barrier
semantics which are not available with glib.
2021-06-07 20:44:29 +02:00
Robin Gareus
1eb6b82b9f
Prevent L1 cache line evicion in MPMC queue
This reduces cache coherence overhead of the queue
2021-06-07 16:05:42 +02:00
Robin Gareus
ecb992de64
Remove custom generic plugin UIs (a-eq) 2/2 2021-06-04 01:43:29 +02:00
Robin Gareus
bc4ef3ff3d
Update weakjack, alternative macOS libjack paths
see also https://github.com/x42/weakjack/pull/13
2021-06-02 17:42:01 +02:00
Ben Loftis
6cf1083cb6 Playlist UI tweaks: add function playlists_for_pgroup() (libardour) 2021-06-01 17:55:09 -05:00
Robin Gareus
63629c0a91
NO-OP: whitespace 2021-06-01 19:40:21 +02:00
Ben Loftis
0e86e3337c Playlist UI tweaks: relax requirement that playlists names must be unique (libardour part) 2021-06-01 09:39:50 -05:00
Ben Loftis
932b07b7b0 Playlist UI tweaks: assign a pgroup when a playist is first recorded to
* this solves the problem where the first 'take' was not grouped because
 the user has not explicitly created a take for the group yet
2021-06-01 09:39:50 -05:00
Ben Loftis
28aa22e11a Playlist UI tweaks: Add pgroup_id field to playlists, to associate playlists created in the same operation (libardour) 2021-06-01 09:39:50 -05:00
Ben Loftis
f6d2229c47 Playlist UI tweaks: Update PlaylistSelector (libardour part)
* Add an option to use a playlist without stealing its ownership. (libardour)
* Tracks emit PlaylistAdded when a new playlist is created either by copying or by creating a new empty pl
2021-06-01 09:15:54 -05:00
Ben Loftis
7b2854b2fb Prefer storing playlist-IDs for frozen tracks; but if none is provided then search by name
* no version-check should be necessary because when opening an old session,
 playlists can be looked-up by discrete names and will be tracked by ID thereafter
2021-06-01 09:14:07 -05:00
David Robillard
71a414b4b0 Remove unused function (Wunused-function) 2021-05-30 20:09:35 -04:00
David Robillard
8d471e6761 Remove extraneous parentheses (Wparentheses-equality) 2021-05-30 20:09:35 -04:00
David Robillard
74e21e942e Remove unused variables (Wunused-variable) 2021-05-30 20:09:35 -04:00
David Robillard
1b4aaea92a Remove unused private fields (Wunused-private-field) 2021-05-30 20:09:35 -04:00
Robin Gareus
c57c230dfc
Fix loading old session w/missing playlist #8727 2021-05-30 18:54:45 +02:00
Robin Gareus
df0571892f Coreaudio: fix duplicates in device list
This is an edge-case only, some devices may
dis and reconnect with different IDs.
2021-05-29 17:54:39 +02:00
Damien Zammit
bdb5aec1cc ptimport: Fix crash when imported session has zero audio tracks 2021-05-29 12:54:10 +10:00
Paul Davis
3d15b61e37 fix Playlist::remove_gaps() for ExternalOverlap regions; add per-gap callback 2021-05-28 17:43:33 -06:00
Paul Davis
c8c506f702 fix bug in Locations::ripple() 2021-05-28 17:43:33 -06:00
Paul Davis
9766132a53 libardour: add Locations::ripple() 2021-05-28 17:43:33 -06:00
Robin Gareus
37acb07752 Fix previous commit 2021-05-28 22:51:12 +02:00
Robin Gareus
0f25086446
Misc fixes pertaining to plugin-scanning 2021-05-28 22:03:10 +02:00
Robin Gareus
79b50aebcd
Ignore all export xruns while not rolling
This fixes false positives with some backends, notably JACK2.
2021-05-28 21:22:10 +02:00
Paul Davis
fecce7c333 libardour: initial implementation of Playlist::remove_gaps()
This is probably a little naive and may need extending to cover cross-track scenarios
2021-05-28 12:35:30 -06:00
Paul Davis
3e56eedf11 libardour: add X_() macros around several Source XMLNode state property names 2021-05-27 17:17:40 -06:00
Paul Davis
d4bc60a388 libardour: infrastructure for cue-marker-only source undo/redo 2021-05-27 17:17:40 -06:00
Paul Davis
83100de133 NOOP: rearrange arg decl to follow conventions 2021-05-27 17:17:40 -06:00
Paul Davis
ca44f54ed6 libardour: small changes to cue marker API to return bool from Source modification methods 2021-05-27 17:17:40 -06:00
Todd Naugle
1a1e67f595 Use Posix style return values for sem wait when on windows.
0 on success, -1 on error
2021-05-27 15:17:15 -05:00