summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2018-10-11 01:36:10 +0200
committerRobin Gareus <robin@gareus.org>2018-10-11 15:29:40 +0200
commit94e6164bc37abb977db082dd655adb096fc31989 (patch)
tree0bf9ac50fc93405328233bccad9d3db407b37160
parent5c47ce32ec9096ba84c1302c8bee6c47b996f142 (diff)
Add API to query backend realtime thread priority
-rw-r--r--libs/ardour/ardour/audioengine.h11
-rw-r--r--libs/backends/jack/jack_audiobackend.cc7
-rw-r--r--libs/backends/jack/jack_audiobackend.h1
3 files changed, 19 insertions, 0 deletions
diff --git a/libs/ardour/ardour/audioengine.h b/libs/ardour/ardour/audioengine.h
index 6e7cdf7496..4548ad7391 100644
--- a/libs/ardour/ardour/audioengine.h
+++ b/libs/ardour/ardour/audioengine.h
@@ -106,6 +106,17 @@ class LIBARDOUR_API AudioEngine : public PortManager, public SessionHandlePtr
bool in_process_thread ();
uint32_t process_thread_count ();
+ /* internal backends
+ * -20 : main thread
+ * -21 : additional I/O threads e.g. MIDI
+ * -22 : client/process threads
+ *
+ * search for
+ * - pbd_realtime_pthread_create
+ * - pbd_set_thread_priority
+ */
+ virtual int client_real_time_priority () { return -22; }
+
int backend_reset_requested();
void request_backend_reset();
void request_device_list_update();
diff --git a/libs/backends/jack/jack_audiobackend.cc b/libs/backends/jack/jack_audiobackend.cc
index 616964c3f2..4258b9c23a 100644
--- a/libs/backends/jack/jack_audiobackend.cc
+++ b/libs/backends/jack/jack_audiobackend.cc
@@ -926,6 +926,13 @@ JACKAudioBackend::process_thread_count ()
return _jack_threads.size();
}
+int
+JACKAudioBackend::client_real_time_priority ()
+{
+ GET_PRIVATE_JACK_POINTER_RET (_priv_jack, 0);
+ return jack_client_real_time_priority (_priv_jack);
+}
+
void*
JACKAudioBackend::_start_process_thread (void* arg)
{
diff --git a/libs/backends/jack/jack_audiobackend.h b/libs/backends/jack/jack_audiobackend.h
index 7d6d1bd977..e14396ea24 100644
--- a/libs/backends/jack/jack_audiobackend.h
+++ b/libs/backends/jack/jack_audiobackend.h
@@ -110,6 +110,7 @@ class JACKAudioBackend : public AudioBackend {
int join_process_threads ();
bool in_process_thread ();
uint32_t process_thread_count ();
+ int client_real_time_priority ();
void transport_start ();
void transport_stop ();