diff --git a/libs/ardour/ardour/audio_backend.h b/libs/ardour/ardour/audio_backend.h index d6b57eac41..c36930545d 100644 --- a/libs/ardour/ardour/audio_backend.h +++ b/libs/ardour/ardour/audio_backend.h @@ -161,6 +161,8 @@ public: */ virtual bool is_realtime () const = 0; + virtual int client_real_time_priority () { return PBD_RT_PRI_PROC; } + /* Discovering devices and parameters */ /** Return true if this backend requires the selection of a "driver" diff --git a/libs/ardour/ardour/audioengine.h b/libs/ardour/ardour/audioengine.h index 1e77f5e629..935c008e3f 100644 --- a/libs/ardour/ardour/audioengine.h +++ b/libs/ardour/ardour/audioengine.h @@ -109,22 +109,12 @@ 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 PBD_RT_PRI_PROC; } - int backend_reset_requested(); void request_backend_reset(); void request_device_list_update(); void launch_device_control_app(); + int client_real_time_priority (); bool is_realtime() const; // for the user which hold state_lock to check if reset operation is pending diff --git a/libs/ardour/audioengine.cc b/libs/ardour/audioengine.cc index 6ed04adae6..3fc6054b3e 100644 --- a/libs/ardour/audioengine.cc +++ b/libs/ardour/audioengine.cc @@ -1151,6 +1151,16 @@ AudioEngine::is_realtime() const return _backend->is_realtime(); } +int +AudioEngine::client_real_time_priority () +{ + if (!_backend) { + return PBD_RT_PRI_PROC; + } + + return _backend->client_real_time_priority(); +} + void AudioEngine::transport_start () {