X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fbackends%2Fjack%2Fjack_api.cc;h=b63b1c1f69f8d0580623b351c395374b71ad2f4c;hb=c8c6bca6587450ff64303dbc994a4cd28d6ce7aa;hp=836acfda11a54b1b818f6d2d17b8b2bc6ffdbc3b;hpb=7a30e63eaad66ded1c47f5cdb2e0f28c3b0a1d4a;p=ardour.git diff --git a/libs/backends/jack/jack_api.cc b/libs/backends/jack/jack_api.cc index 836acfda11..b63b1c1f69 100644 --- a/libs/backends/jack/jack_api.cc +++ b/libs/backends/jack/jack_api.cc @@ -25,6 +25,21 @@ using namespace ARDOUR; static boost::shared_ptr backend; static boost::shared_ptr jack_connection; +static boost::shared_ptr backend_factory (AudioEngine& ae); +static int instantiate (const std::string& arg1, const std::string& arg2); +static int deinstantiate (); +static bool already_configured (); +static bool available (); + +static ARDOUR::AudioBackendInfo _descriptor = { + "JACK", + instantiate, + deinstantiate, + backend_factory, + already_configured, + available +}; + static boost::shared_ptr backend_factory (AudioEngine& ae) { @@ -33,7 +48,7 @@ backend_factory (AudioEngine& ae) } if (!backend) { - backend.reset (new JACKAudioBackend (ae, jack_connection)); + backend.reset (new JACKAudioBackend (ae, _descriptor, jack_connection)); } return backend; @@ -51,7 +66,7 @@ instantiate (const std::string& arg1, const std::string& arg2) return 0; } -static int +static int deinstantiate () { backend.reset (); @@ -63,16 +78,14 @@ deinstantiate () static bool already_configured () { - return JackConnection::server_running (); + return !JackConnection::in_control (); } -static ARDOUR::AudioBackendInfo _descriptor = { - "JACK", - instantiate, - deinstantiate, - backend_factory, - already_configured, -}; +static bool +available () +{ + return have_libjack() ? false : true; +} extern "C" ARDOURBACKEND_API ARDOUR::AudioBackendInfo* descriptor() { return &_descriptor; }