Commit graph

32014 commits

Author SHA1 Message Date
Paul Davis
4bc8697efc revert to master version of RCU 2021-06-10 15:25:47 -06:00
Paul Davis
96a434b0a7 return to all-automation-run rather than just active 2021-06-10 15:25:13 -06:00
Paul Davis
ecc64ab766 JACK audio/MIDI backend: finalize (?) transition from looking up jack ports via port handle to lookup by name
Add an additional callback for the JACK registration/unregistration callback so we can keep _jack_ports current
2021-06-10 15:24:14 -06:00
Paul Davis
439bf215de force automation_run() calls in Route::process_output_buffers() to do "active only" 2021-06-10 10:11:40 -06:00
Paul Davis
a2a3ae5ea6 scope engine dsp timing to input metering 2021-06-10 10:11:40 -06:00
Paul Davis
6884a09b7b make PBD::TimingStats throw away the first 1000 timing values, to avoid startup costs 2021-06-10 10:11:40 -06:00
Paul Davis
5f1ffb0aa5 remove "active readers" attempt to make RCU properly thread-safe, to test impact on timing 2021-06-10 10:11:40 -06:00
Paul Davis
3f142bfd0d add session-level DSP timing 2021-06-10 10:11:40 -06:00
Paul Davis
fa6d8cbe3c add required header now that it was removed from pbd/rcu.h 2021-06-10 10:11:40 -06:00
Paul Davis
af2a1e324e reimplement PBD::RCUManager and friends using std::atomic<> instead of glib 2021-06-10 10:11:40 -06:00
Paul Davis
7b3fa14231 fix compiler warning (entirely justified) about use of strncpy() 2021-06-10 10:11:40 -06:00
Paul Davis
ec7b756d90 add action to dump DSP stats to stdout 2021-06-10 10:11:40 -06:00
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
f37ad624f6
Fix crash on session-reload or close (amend 1c9bb9ab41)
RouteUI is also used in the recorder-ui and meterbridge,
not all of which call RouteUI::init() since only the abstraction
itself is required.
2021-06-10 05:14:58 +02:00
Robin Gareus
bd275fa66f
Add example udev file for /dev/cpu_dma_latency permissions 2021-06-10 04:40:22 +02:00
Robin Gareus
88e85fcd17
Add preference option to set CPU DMA Latency 2021-06-10 04:30:10 +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
40e4a5a20d
Lua Session windows stdio
Allow stdio, but do not open cmd.exe terminal when started.
This allows for scripted sessions.
2021-06-09 02:43:31 +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
Ben Loftis
cc104d3fd3 Playlist UI tweaks: bugfix: mapover_groupd_routes should include the basis route (but only once) 2021-06-08 12:43:26 -05: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
Paul Davis
c46410a1b0 MIDI region extend-selection should select all after start of selection, not all after end of selection 2021-06-08 08:31:41 -06:00
Paul Davis
11cb981e30 add extend_selection() to MIDI region bindings; expose invert-selection also 2021-06-08 07:40:54 -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
7cc92d8f27 Playlist UI tweaks: add global playlist buttons to Rec page (tentative, for testing) 2021-06-08 08:33:48 -05:00
Ben Loftis
e63dc0eb29 Playlist UI tweaks: move pgroup_id out of the menu text, and into a column of the playlist selector 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
285101d88c Cruft removal: behavior of Region List no longer needs these functions (gtk part) 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
Ben Loftis
1665d0e1bc Playlist UI tweaks: add Actions and menu items for global plist functions 2021-06-08 08:33:48 -05:00
Ben Loftis
a8395718bc Playlist UI tweaks: rationalize playlist functions in Editor::
* new global playlist functions for {all | rec-armed | selected} tracks.
* new API passes (bool copy) arg instead of separate functions for copy_X.
* consistently use mapover_X functions to consolidate code
* update Lua bindings to match
2021-06-08 08:33:48 -05:00
Ben Loftis
cf999ecaa9 Playlist UI tweaks: clarify purpose of get_region{view}s_corresponding_to 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
Paul Davis
4484b60b13 Revert "extend API of ARDOUR_UI_UTILS::emulate_key_event() to allow it to pass modifiers too"
No need to extend/change this API, since relay_key_press() can already take a window argument.

This reverts commit 2e0fa8943a.
2021-06-06 08:11:26 -06:00
Paul Davis
66264eb68f use existing API for key forwarding 2021-06-06 08:11:13 -06:00
Paul Davis
b03c8e7849 add key forwarding to playlist selector dialog 2021-06-06 08:06:11 -06:00