Commit Graph

17155 Commits

Author SHA1 Message Date
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
Todd Naugle
be6d0fa95c Do not use named semaphores on Windows since they are system wide
https://docs.microsoft.com/en-us/dotnet/standard/threading/semaphore-and-semaphoreslim#named-semaphores

Running multiple instances of Ardour or Ardour/Mixbus would fail in very
odd ways since they would signal each other. Unnamed sems are
correct for this use case.
2021-05-27 15:13:40 -05:00
Robin Gareus
e91fd1fce6 Add Lua binding to query plugin-presets and scalepoints 2021-05-27 16:56:24 +02:00
Robin Gareus
a829fa58b3 Fix another C++11ism 2021-05-26 04:14:18 +02:00
Robin Gareus
2cf4568d82 Fix C++11isms in 3fb9f47bf1 2021-05-26 03:55:29 +02:00
Robin Gareus
d839e9cf14 Consistent _nth_ API call 0-based index 2021-05-26 02:33:31 +02:00