diff --git a/libs/ardour/ardour/audio_backend.h b/libs/ardour/ardour/audio_backend.h index 96e1f056de..85de704dd9 100644 --- a/libs/ardour/ardour/audio_backend.h +++ b/libs/ardour/ardour/audio_backend.h @@ -149,15 +149,10 @@ public: */ virtual std::string name () const = 0; - /** Return true if the callback from the underlying mechanism/API - * (CoreAudio, JACK, ASIO etc.) occurs in a thread subject to realtime - * constraints. Return false otherwise. - */ - virtual bool is_realtime () const = 0; - - /** Return true if the backed is JACK */ + /** Return true if the backend is JACK */ virtual bool is_jack () const { return false; } + /** Return the priority to be set with pbd_set_engine_rt_priority. */ virtual int client_real_time_priority () { return 0; } /* Discovering devices and parameters */ diff --git a/libs/ardour/audioengine.cc b/libs/ardour/audioengine.cc index 99bb95f12b..fd8cf65753 100644 --- a/libs/ardour/audioengine.cc +++ b/libs/ardour/audioengine.cc @@ -1067,11 +1067,7 @@ AudioEngine::start (bool for_latency) return -1; } - if (_backend->is_realtime ()) { - pbd_set_engine_rt_priority (_backend->client_real_time_priority ()); - } else { - pbd_set_engine_rt_priority (0); - } + pbd_set_engine_rt_priority (_backend->client_real_time_priority ()); _running = true; diff --git a/libs/backends/alsa/alsa_audiobackend.cc b/libs/backends/alsa/alsa_audiobackend.cc index 14c23b8c06..0234e47f9d 100644 --- a/libs/backends/alsa/alsa_audiobackend.cc +++ b/libs/backends/alsa/alsa_audiobackend.cc @@ -99,12 +99,6 @@ AlsaAudioBackend::name () const return X_("ALSA"); } -bool -AlsaAudioBackend::is_realtime () const -{ - return true; -} - std::vector AlsaAudioBackend::enumerate_devices () const { diff --git a/libs/backends/alsa/alsa_audiobackend.h b/libs/backends/alsa/alsa_audiobackend.h index 84907aa358..3b9df0c702 100644 --- a/libs/backends/alsa/alsa_audiobackend.h +++ b/libs/backends/alsa/alsa_audiobackend.h @@ -125,7 +125,6 @@ class AlsaAudioBackend : public AudioBackend, public PortEngineSharedImpl /* AUDIOBACKEND API */ std::string name () const; - bool is_realtime () const; bool use_separate_input_and_output_devices () const { return true; } bool match_input_output_devices_or_none () const { return false; } diff --git a/libs/backends/coreaudio/coreaudio_backend.cc b/libs/backends/coreaudio/coreaudio_backend.cc index 747ebb1878..0d14d24703 100644 --- a/libs/backends/coreaudio/coreaudio_backend.cc +++ b/libs/backends/coreaudio/coreaudio_backend.cc @@ -149,12 +149,6 @@ CoreAudioBackend::name () const return X_("CoreAudio"); } -bool -CoreAudioBackend::is_realtime () const -{ - return true; -} - std::vector CoreAudioBackend::enumerate_devices () const { diff --git a/libs/backends/coreaudio/coreaudio_backend.h b/libs/backends/coreaudio/coreaudio_backend.h index 8aa6bbccc5..e32ac82d55 100644 --- a/libs/backends/coreaudio/coreaudio_backend.h +++ b/libs/backends/coreaudio/coreaudio_backend.h @@ -160,7 +160,6 @@ class CoreAudioBackend : public AudioBackend, public PortEngineSharedImpl { /* AUDIOBACKEND API */ std::string name () const; - bool is_realtime () const; bool use_separate_input_and_output_devices () const { return true; } std::vector enumerate_devices () const; diff --git a/libs/backends/dummy/dummy_audiobackend.cc b/libs/backends/dummy/dummy_audiobackend.cc index 60b30b6460..6507d22a59 100644 --- a/libs/backends/dummy/dummy_audiobackend.cc +++ b/libs/backends/dummy/dummy_audiobackend.cc @@ -110,12 +110,6 @@ DummyAudioBackend::name () const return X_("Dummy"); // internal name } -bool -DummyAudioBackend::is_realtime () const -{ - return false; -} - std::vector DummyAudioBackend::enumerate_devices () const { diff --git a/libs/backends/dummy/dummy_audiobackend.h b/libs/backends/dummy/dummy_audiobackend.h index bde876e87c..d2cb1a3b2d 100644 --- a/libs/backends/dummy/dummy_audiobackend.h +++ b/libs/backends/dummy/dummy_audiobackend.h @@ -194,7 +194,6 @@ class DummyAudioBackend : public AudioBackend, public PortEngineSharedImpl /* AUDIOBACKEND API */ std::string name () const; - bool is_realtime () const; bool requires_driver_selection() const { return true; } std::string driver_name () const; diff --git a/libs/backends/jack/jack_audiobackend.cc b/libs/backends/jack/jack_audiobackend.cc index 97b0f00e3c..d62ceac193 100644 --- a/libs/backends/jack/jack_audiobackend.cc +++ b/libs/backends/jack/jack_audiobackend.cc @@ -105,13 +105,6 @@ JACKAudioBackend::available() const return (private_handle() != 0); } -bool -JACKAudioBackend::is_realtime () const -{ - GET_PRIVATE_JACK_POINTER_RET (_priv_jack,false); - return jack_is_realtime (_priv_jack); -} - bool JACKAudioBackend::requires_driver_selection() const { @@ -882,6 +875,8 @@ int JACKAudioBackend::client_real_time_priority () { GET_PRIVATE_JACK_POINTER_RET (_priv_jack, 0); + if (!jack_is_realtime (_priv_jack)) + return 0; return jack_client_real_time_priority (_priv_jack); } diff --git a/libs/backends/jack/jack_audiobackend.h b/libs/backends/jack/jack_audiobackend.h index 822424f87f..54e8178435 100644 --- a/libs/backends/jack/jack_audiobackend.h +++ b/libs/backends/jack/jack_audiobackend.h @@ -58,7 +58,6 @@ class JACKAudioBackend : public AudioBackend { std::string name() const; void* private_handle() const; - bool is_realtime () const; bool is_jack () const { return true; } diff --git a/libs/backends/portaudio/portaudio_backend.cc b/libs/backends/portaudio/portaudio_backend.cc index 3dce7a5d78..5c0fb2ee0a 100644 --- a/libs/backends/portaudio/portaudio_backend.cc +++ b/libs/backends/portaudio/portaudio_backend.cc @@ -118,12 +118,6 @@ PortAudioBackend::name () const return X_("PortAudio"); } -bool -PortAudioBackend::is_realtime () const -{ - return true; -} - bool PortAudioBackend::requires_driver_selection() const { diff --git a/libs/backends/portaudio/portaudio_backend.h b/libs/backends/portaudio/portaudio_backend.h index 4c82e87a76..5a927b224a 100644 --- a/libs/backends/portaudio/portaudio_backend.h +++ b/libs/backends/portaudio/portaudio_backend.h @@ -99,7 +99,6 @@ class PortAudioBackend : public AudioBackend, public PortEngineSharedImpl { /* AUDIOBACKEND API */ std::string name () const; - bool is_realtime () const; bool requires_driver_selection() const; std::string driver_name () const; diff --git a/libs/backends/pulseaudio/pulseaudio_backend.cc b/libs/backends/pulseaudio/pulseaudio_backend.cc index 708798ae9c..d3273eb4c9 100644 --- a/libs/backends/pulseaudio/pulseaudio_backend.cc +++ b/libs/backends/pulseaudio/pulseaudio_backend.cc @@ -332,12 +332,6 @@ PulseAudioBackend::name () const return X_("PulseAudio"); } -bool -PulseAudioBackend::is_realtime () const -{ - return true; -} - std::vector PulseAudioBackend::enumerate_devices () const { diff --git a/libs/backends/pulseaudio/pulseaudio_backend.h b/libs/backends/pulseaudio/pulseaudio_backend.h index 1e8c981990..4190706be3 100644 --- a/libs/backends/pulseaudio/pulseaudio_backend.h +++ b/libs/backends/pulseaudio/pulseaudio_backend.h @@ -102,7 +102,6 @@ public: /* AUDIOBACKEND API */ std::string name () const; - bool is_realtime () const; std::vector enumerate_devices () const; std::vector available_sample_rates (const std::string& device) const;