diff --git a/gtk2_ardour/ardour_ui_startup.cc b/gtk2_ardour/ardour_ui_startup.cc index 1c66c794ec..9bb1cdb993 100644 --- a/gtk2_ardour/ardour_ui_startup.cc +++ b/gtk2_ardour/ardour_ui_startup.cc @@ -866,7 +866,7 @@ ARDOUR_UI::load_from_application_api (const std::string& path) #else "JACK", #endif - ARDOUR_COMMAND_LINE::backend_client_name, "")) { + ARDOUR_COMMAND_LINE::backend_session_id, "")) { error << _("NSM: The JACK backend is mandatory and can not be loaded.") << endmsg; return; } diff --git a/gtk2_ardour/engine_dialog.cc b/gtk2_ardour/engine_dialog.cc index c570b4a2c3..318b314ad7 100644 --- a/gtk2_ardour/engine_dialog.cc +++ b/gtk2_ardour/engine_dialog.cc @@ -1030,7 +1030,7 @@ EngineControl::backend_changed () string backend_name = backend_combo.get_active_text (); std::shared_ptr backend; - if (!(backend = ARDOUR::AudioEngine::instance ()->set_backend (backend_name, ARDOUR_COMMAND_LINE::backend_client_name, ""))) { + if (!(backend = ARDOUR::AudioEngine::instance ()->set_backend (backend_name, ARDOUR_COMMAND_LINE::backend_session_id, ""))) { /* eh? setting the backend failed... how ? */ /* A: stale config contains a backend that does not exist in current build */ return; @@ -1152,7 +1152,7 @@ EngineControl::get_default_device (const string& current_device_name, using namespace ARDOUR; string default_device_name = - AudioBackend::get_standard_device_name (AudioBackend::DeviceDefault); + AudioBackend::get_default_device_name (); vector::const_iterator i; @@ -1164,7 +1164,7 @@ EngineControl::get_default_device (const string& current_device_name, } string none_device_name = - AudioBackend::get_standard_device_name (AudioBackend::DeviceNone); + AudioBackend::get_none_device_name (); // Use the first device that isn't "None" for (i = available_devices.begin (); i != available_devices.end (); ++i) { @@ -1587,7 +1587,7 @@ EngineControl::input_device_changed () std::shared_ptr backend = ARDOUR::AudioEngine::instance ()->current_backend (); if (backend && backend->match_input_output_devices_or_none ()) { - const std::string& dev_none = ARDOUR::AudioBackend::get_standard_device_name (ARDOUR::AudioBackend::DeviceNone); + const std::string& dev_none = ARDOUR::AudioBackend::get_none_device_name (); if (get_output_device_name () != dev_none && get_input_device_name () != dev_none && get_input_device_name () != get_output_device_name ()) { block_changed_signals (); @@ -1609,7 +1609,7 @@ EngineControl::output_device_changed () DEBUG_ECONTROL ("output_device_changed"); std::shared_ptr backend = ARDOUR::AudioEngine::instance ()->current_backend (); if (backend && backend->match_input_output_devices_or_none ()) { - const std::string& dev_none = ARDOUR::AudioBackend::get_standard_device_name (ARDOUR::AudioBackend::DeviceNone); + const std::string& dev_none = ARDOUR::AudioBackend::get_none_device_name (); if (get_input_device_name () != dev_none && get_input_device_name () != dev_none && get_input_device_name () != get_output_device_name ()) { block_changed_signals (); @@ -2213,7 +2213,7 @@ EngineControl::set_current_state (const State& state) std::shared_ptr backend; - if (!(backend = ARDOUR::AudioEngine::instance ()->set_backend (state->backend, ARDOUR_COMMAND_LINE::backend_client_name, ""))) { + if (!(backend = ARDOUR::AudioEngine::instance ()->set_backend (state->backend, ARDOUR_COMMAND_LINE::backend_session_id, ""))) { DEBUG_ECONTROL (string_compose ("Unable to set backend to %1", state->backend)); // this shouldn't happen as the invalid backend names should have been // removed from the list of states. @@ -2495,7 +2495,7 @@ EngineControl::push_state_to_backend (bool start) error << string_compose (_("Cannot set buffer size to %1"), get_buffer_size ()) << endmsg; return 1; } - if (change_nperiods && backend->set_peridod_size (get_nperiods ())) { + if (change_nperiods && backend->set_period_size (get_nperiods ())) { error << string_compose (_("Cannot set periods to %1"), get_nperiods ()) << endmsg; return 1; } diff --git a/gtk2_ardour/nsm.cc b/gtk2_ardour/nsm.cc index ee0938d4e2..1be285a7ce 100644 --- a/gtk2_ardour/nsm.cc +++ b/gtk2_ardour/nsm.cc @@ -48,7 +48,7 @@ NSM_Client::command_open(const char* name, { int r = ERR_OK; - ARDOUR_COMMAND_LINE::backend_client_name = client_id; + ARDOUR_COMMAND_LINE::backend_session_id = client_id; ARDOUR_COMMAND_LINE::session_name = ""; /* this appears asynchronous, but almost certainly is diff --git a/gtk2_ardour/opts.cc b/gtk2_ardour/opts.cc index 301957c5a2..e733fd1a34 100644 --- a/gtk2_ardour/opts.cc +++ b/gtk2_ardour/opts.cc @@ -41,7 +41,7 @@ using namespace std; string ARDOUR_COMMAND_LINE::session_name = ""; -string ARDOUR_COMMAND_LINE::backend_client_name = PBD::downcase(PROGRAM_NAME); +string ARDOUR_COMMAND_LINE::backend_session_id = PBD::downcase(PROGRAM_NAME); bool ARDOUR_COMMAND_LINE::show_key_actions = false; bool ARDOUR_COMMAND_LINE::show_actions = false; bool ARDOUR_COMMAND_LINE::no_splash = false; @@ -72,7 +72,7 @@ print_help (const char *execname) << _(" -A, --actions Print all possible menu action names\n") << _(" -b, --bindings Display all current key bindings\n") << _(" -B, --bypass-plugins Bypass all plugins in an existing session\n") - << _(" -c, --name Use a specific backend client name, default is ardour\n") + << _(" -c, --name Specify audio backend client session id, default is ardour\n") << _(" -d, --disable-plugins Disable all plugins (safe mode)\n") #ifndef NDEBUG << _(" -D, --debug Set debug flags. Use \"-D list\" to see available options\n") @@ -218,7 +218,7 @@ ARDOUR_COMMAND_LINE::parse_opts (int argc, char *argv[]) break; case 'c': - backend_client_name = optarg; + backend_session_id = optarg; break; case 'k': diff --git a/gtk2_ardour/opts.h b/gtk2_ardour/opts.h index 56e0b2c031..d9f58351a8 100644 --- a/gtk2_ardour/opts.h +++ b/gtk2_ardour/opts.h @@ -29,7 +29,7 @@ extern bool show_key_actions; extern bool show_actions; extern bool no_splash; extern bool just_version; -extern std::string backend_client_name; +extern std::string backend_session_id; extern bool new_session; extern bool try_hw_optimization; extern bool no_connect_ports; diff --git a/headless/load_session.cc b/headless/load_session.cc index f921b83676..247b34bf83 100644 --- a/headless/load_session.cc +++ b/headless/load_session.cc @@ -48,7 +48,7 @@ using namespace PBD; static const char* localedir = LOCALEDIR; -static string backend_client_name; +static string backend_session_id; static CrossThreadChannel xthread (true); static TestReceiver test_receiver; @@ -72,7 +72,7 @@ load_session (string dir, string state) AudioEngine* engine = AudioEngine::create (); - if (!engine->set_backend (backend_name, backend_client_name, "")) { + if (!engine->set_backend (backend_name, backend_session_id, "")) { std::cerr << "Cannot set Audio/MIDI engine backend\n"; exit (EXIT_FAILURE); } @@ -172,7 +172,7 @@ main (int argc, char* argv[]) bool try_hw_optimization = true; - backend_client_name = PBD::downcase (std::string (PROGRAM_NAME)); + backend_session_id = PBD::downcase (std::string (PROGRAM_NAME)); int c; while ((c = getopt_long (argc, argv, optstring, longopts, (int*)0)) != EOF) { @@ -191,7 +191,7 @@ main (int argc, char* argv[]) break; case 'c': - backend_client_name = optarg; + backend_session_id = optarg; break; case 'B': diff --git a/libs/ardour/ardour/audio_backend.h b/libs/ardour/ardour/audio_backend.h index e7cba2ed59..39f768c131 100644 --- a/libs/ardour/ardour/audio_backend.h +++ b/libs/ardour/ardour/audio_backend.h @@ -44,11 +44,11 @@ namespace ARDOUR struct LIBARDOUR_API AudioBackendInfo { const char* name; - /** Using arg1 and arg2, initialize this audiobackend. + /** Using client_name and session_id, initialize this audiobackend. * * Returns zero on success, non-zero otherwise. */ - int (*instantiate) (const std::string& arg1, const std::string& arg2); + int (*instantiate) (const std::string& client_name, const std::string& session_id); /** Release all resources associated with this audiobackend */ int (*deinstantiate) (void); @@ -131,12 +131,8 @@ public: static std::string get_error_string (ErrorCode); - enum StandardDeviceName { - DeviceNone, - DeviceDefault - }; - - static std::string get_standard_device_name (StandardDeviceName); + static std::string get_none_device_name (); + static std::string get_default_device_name (); /** Return the AudioBackendInfo object from which this backend * was constructed. @@ -153,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 */ @@ -232,7 +223,7 @@ public: * of allowing one to be "None". * * ie. Input Device must match Output Device, except if either of them - * is get_standard_device_name (DeviceNone). + * is get_none_device_name (). */ virtual bool match_input_output_devices_or_none () const { @@ -291,7 +282,7 @@ public: /** Set the period size to be used. * must be called before starting the backend. */ - virtual int set_peridod_size (uint32_t) + virtual int set_period_size (uint32_t) { return -1; } diff --git a/libs/ardour/ardour/audioengine.h b/libs/ardour/ardour/audioengine.h index a63913747c..698bc96c2b 100644 --- a/libs/ardour/ardour/audioengine.h +++ b/libs/ardour/ardour/audioengine.h @@ -71,7 +71,7 @@ class LIBARDOUR_API AudioEngine : public PortManager, public SessionHandlePtr int discover_backends(); std::vector available_backends() const; std::string current_backend_name () const; - std::shared_ptr set_backend (const std::string&, const std::string& arg1, const std::string& arg2); + std::shared_ptr set_backend (const std::string& name, const std::string& client_name, const std::string& session_id); std::shared_ptr current_backend() const { return _backend; } bool setup_required () const; bool is_jack () const; diff --git a/libs/ardour/audio_backend.cc b/libs/ardour/audio_backend.cc index 30df66c6ff..1001c550ff 100644 --- a/libs/ardour/audio_backend.cc +++ b/libs/ardour/audio_backend.cc @@ -100,15 +100,15 @@ AudioBackend::get_error_string (ErrorCode error_code) } std::string -AudioBackend::get_standard_device_name (StandardDeviceName device_name) +AudioBackend::get_none_device_name () { - switch (device_name) { - case DeviceNone: - return _("None"); - case DeviceDefault: - return _("Default"); - } - return std::string(); + return _("None"); +} + +std::string +AudioBackend::get_default_device_name () +{ + return _("Default"); } } // namespace ARDOUR diff --git a/libs/ardour/audioengine.cc b/libs/ardour/audioengine.cc index a57e814e93..426cb734fa 100644 --- a/libs/ardour/audioengine.cc +++ b/libs/ardour/audioengine.cc @@ -1014,7 +1014,7 @@ AudioEngine::drop_backend () } std::shared_ptr -AudioEngine::set_backend (const std::string& name, const std::string& arg1, const std::string& arg2) +AudioEngine::set_backend (const std::string& name, const std::string& client_name, const std::string& session_id) { BackendMap::iterator b = _backends.find (name); @@ -1025,7 +1025,7 @@ AudioEngine::set_backend (const std::string& name, const std::string& arg1, cons drop_backend (); try { - if (b->second->instantiate (arg1, arg2)) { + if (b->second->instantiate (client_name, session_id)) { throw failed_constructor (); } @@ -1066,11 +1066,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/ardour/luabindings.cc b/libs/ardour/luabindings.cc index 42503e4a17..1db514647d 100644 --- a/libs/ardour/luabindings.cc +++ b/libs/ardour/luabindings.cc @@ -2970,7 +2970,7 @@ LuaBindings::common (lua_State* L) .addFunction ("set_sample_rate", &AudioBackend::set_sample_rate) .addFunction ("set_buffer_size", &AudioBackend::set_buffer_size) - .addFunction ("set_peridod_size", &AudioBackend::set_peridod_size) + .addFunction ("set_period_size", &AudioBackend::set_period_size) .addFunction ("enumerate_drivers", &AudioBackend::enumerate_drivers) .addFunction ("driver_name", &AudioBackend::driver_name) diff --git a/libs/backends/alsa/alsa_audiobackend.cc b/libs/backends/alsa/alsa_audiobackend.cc index ce61983b3f..3c7d128895 100644 --- a/libs/backends/alsa/alsa_audiobackend.cc +++ b/libs/backends/alsa/alsa_audiobackend.cc @@ -98,12 +98,6 @@ AlsaAudioBackend::name () const return X_("ALSA"); } -bool -AlsaAudioBackend::is_realtime () const -{ - return true; -} - std::vector AlsaAudioBackend::enumerate_devices () const { @@ -128,7 +122,7 @@ AlsaAudioBackend::enumerate_input_devices () const _input_audio_device_status.clear (); std::map devices; get_alsa_audio_device_names (devices, HalfDuplexIn); - _input_audio_device_status.push_back (DeviceStatus (get_standard_device_name (DeviceNone), true)); + _input_audio_device_status.push_back (DeviceStatus (get_none_device_name (), true)); for (std::map::const_iterator i = devices.begin (); i != devices.end (); ++i) { if (_input_audio_device == "") { _input_audio_device = i->first; @@ -144,7 +138,7 @@ AlsaAudioBackend::enumerate_output_devices () const _output_audio_device_status.clear (); std::map devices; get_alsa_audio_device_names (devices, HalfDuplexOut); - _output_audio_device_status.push_back (DeviceStatus (get_standard_device_name (DeviceNone), true)); + _output_audio_device_status.push_back (DeviceStatus (get_none_device_name (), true)); for (std::map::const_iterator i = devices.begin (); i != devices.end (); ++i) { if (_output_audio_device == "") { _output_audio_device = i->first; @@ -158,11 +152,11 @@ std::vector AlsaAudioBackend::available_sample_rates2 (const std::string& input_device, const std::string& output_device) const { std::vector sr; - if (input_device == get_standard_device_name (DeviceNone) && output_device == get_standard_device_name (DeviceNone)) { + if (input_device == get_none_device_name () && output_device == get_none_device_name ()) { return sr; - } else if (input_device == get_standard_device_name (DeviceNone)) { + } else if (input_device == get_none_device_name ()) { sr = available_sample_rates (output_device); - } else if (output_device == get_standard_device_name (DeviceNone)) { + } else if (output_device == get_none_device_name ()) { sr = available_sample_rates (input_device); } else { std::vector sr_in = available_sample_rates (input_device); @@ -177,7 +171,7 @@ AlsaAudioBackend::available_sample_rates (const std::string& device) const { ALSADeviceInfo* nfo = NULL; std::vector sr; - if (device == get_standard_device_name (DeviceNone)) { + if (device == get_none_device_name ()) { return sr; } if (device == _input_audio_device && _input_audio_device_info.valid) { @@ -201,11 +195,11 @@ std::vector AlsaAudioBackend::available_buffer_sizes2 (const std::string& input_device, const std::string& output_device) const { std::vector bs; - if (input_device == get_standard_device_name (DeviceNone) && output_device == get_standard_device_name (DeviceNone)) { + if (input_device == get_none_device_name () && output_device == get_none_device_name ()) { return bs; - } else if (input_device == get_standard_device_name (DeviceNone)) { + } else if (input_device == get_none_device_name ()) { bs = available_buffer_sizes (output_device); - } else if (output_device == get_standard_device_name (DeviceNone)) { + } else if (output_device == get_none_device_name ()) { bs = available_buffer_sizes (input_device); } else { std::vector bs_in = available_buffer_sizes (input_device); @@ -220,7 +214,7 @@ AlsaAudioBackend::available_buffer_sizes (const std::string& device) const { ALSADeviceInfo* nfo = NULL; std::vector bs; - if (device == get_standard_device_name (DeviceNone)) { + if (device == get_none_device_name ()) { return bs; } if (device == _input_audio_device && _input_audio_device_info.valid) { @@ -261,7 +255,7 @@ AlsaAudioBackend::available_period_sizes (const std::string& driver, const std:: ps.push_back (2); ALSADeviceInfo* nfo = NULL; - if (device == get_standard_device_name (DeviceNone)) { + if (device == get_none_device_name ()) { return ps; } @@ -300,7 +294,7 @@ AlsaAudioBackend::set_input_device_name (const std::string& d) } _input_audio_device = d; - if (d == get_standard_device_name (DeviceNone)) { + if (d == get_none_device_name ()) { _input_audio_device_info.valid = false; return 0; } @@ -333,7 +327,7 @@ AlsaAudioBackend::set_output_device_name (const std::string& d) _output_audio_device = d; - if (d == get_standard_device_name (DeviceNone)) { + if (d == get_none_device_name ()) { _output_audio_device_info.valid = false; return 0; } @@ -368,7 +362,7 @@ AlsaAudioBackend::set_device_name (const std::string& d) bool AlsaAudioBackend::can_measure_systemic_latency () const { - return _input_audio_device == _output_audio_device && _input_audio_device != get_standard_device_name (DeviceNone); + return _input_audio_device == _output_audio_device && _input_audio_device != get_none_device_name (); } int @@ -383,7 +377,7 @@ AlsaAudioBackend::set_sample_rate (float sr) } int -AlsaAudioBackend::set_peridod_size (uint32_t n) +AlsaAudioBackend::set_period_size (uint32_t n) { if (n == 0) { return -1; @@ -523,10 +517,10 @@ AlsaAudioBackend::update_systemic_midi_latencies () std::string AlsaAudioBackend::device_name () const { - if (_input_audio_device != get_standard_device_name (DeviceNone)) { + if (_input_audio_device != get_none_device_name ()) { return _input_audio_device; } - if (_output_audio_device != get_standard_device_name (DeviceNone)) { + if (_output_audio_device != get_none_device_name ()) { return _output_audio_device; } return ""; @@ -610,7 +604,7 @@ AlsaAudioBackend::midi_device_info (std::string const name) const } } - assert (_midi_driver_option != get_standard_device_name (DeviceNone)); + assert (_midi_driver_option != get_none_device_name ()); std::map devices; if (_midi_driver_option == _("ALSA raw devices")) { @@ -634,7 +628,7 @@ AlsaAudioBackend::enumerate_midi_options () const if (_midi_options.empty ()) { _midi_options.push_back (_("ALSA raw devices")); _midi_options.push_back (_("ALSA sequencer")); - _midi_options.push_back (get_standard_device_name (DeviceNone)); + _midi_options.push_back (get_none_device_name ()); } return _midi_options; } @@ -660,7 +654,7 @@ AlsaAudioBackend::enumerate_midi_devices () const int AlsaAudioBackend::set_midi_option (const std::string& opt) { - if (opt != get_standard_device_name (DeviceNone) && opt != _("ALSA raw devices") && opt != _("ALSA sequencer")) { + if (opt != get_none_device_name () && opt != _("ALSA raw devices") && opt != _("ALSA sequencer")) { return -1; } if (_run && _midi_driver_option != opt) { @@ -796,7 +790,7 @@ AlsaAudioBackend::_start (bool for_latency_measurement) std::map devices; - if (_input_audio_device == get_standard_device_name (DeviceNone) && _output_audio_device == get_standard_device_name (DeviceNone)) { + if (_input_audio_device == get_none_device_name () && _output_audio_device == get_none_device_name ()) { PBD::error << _("AlsaAudioBackend: At least one of input or output device needs to be set."); return AudioDeviceInvalidError; } @@ -807,7 +801,7 @@ AlsaAudioBackend::_start (bool for_latency_measurement) if (_input_audio_device != _output_audio_device) { std::string input_audio_device (_input_audio_device); std::string output_audio_device (_output_audio_device); - if (_input_audio_device != get_standard_device_name (DeviceNone) && _output_audio_device != get_standard_device_name (DeviceNone)) { + if (_input_audio_device != get_none_device_name () && _output_audio_device != get_none_device_name ()) { /* Different devices for In + Out. * Ideally use input as clock source, and resample output. * But when using separate devices, input is usually one (or more) @@ -816,15 +810,15 @@ AlsaAudioBackend::_start (bool for_latency_measurement) */ if (getenv ("ARDOUR_ALSA_CLK")) { slave_device = _output_audio_device; - output_audio_device = get_standard_device_name (DeviceNone); //XXX + output_audio_device = get_none_device_name (); // XXX slave_duplex = AudioSlave::HalfDuplexOut; } else { slave_device = _input_audio_device; - input_audio_device = get_standard_device_name (DeviceNone); //XXX + input_audio_device = get_none_device_name (); // XXX slave_duplex = AudioSlave::HalfDuplexIn; } } - if (input_audio_device != get_standard_device_name (DeviceNone)) { + if (input_audio_device != get_none_device_name ()) { get_alsa_audio_device_names (devices, HalfDuplexIn); audio_device = input_audio_device; duplex = 1; @@ -1465,7 +1459,7 @@ AlsaAudioBackend::register_system_midi_ports (const std::string device) { std::map devices; - if (_midi_driver_option == get_standard_device_name (DeviceNone)) { + if (_midi_driver_option == get_none_device_name ()) { return 0; } else if (_midi_driver_option == _("ALSA raw devices")) { get_alsa_rawmidi_device_names (devices); @@ -2186,7 +2180,7 @@ AlsaAudioBackend::AudioSlave::update_latencies (uint32_t play, uint32_t capt) static std::shared_ptr _instance; static std::shared_ptr backend_factory (AudioEngine& e); -static int instantiate (const std::string& arg1, const std::string& /* arg2 */); +static int instantiate (const std::string& client_name, const std::string& /* session_id */); static int deinstantiate (); static bool already_configured (); static bool available (); @@ -2210,9 +2204,9 @@ backend_factory (AudioEngine& e) } static int -instantiate (const std::string& arg1, const std::string& /* arg2 */) +instantiate (const std::string& client_name, const std::string& /* session_id */) { - s_instance_name = arg1; + s_instance_name = client_name; return 0; } diff --git a/libs/backends/alsa/alsa_audiobackend.h b/libs/backends/alsa/alsa_audiobackend.h index 322bff1663..e7d8723a4f 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; } @@ -154,7 +153,7 @@ class AlsaAudioBackend : public AudioBackend, public PortEngineSharedImpl int set_output_device_name (const std::string&); int set_sample_rate (float); int set_buffer_size (uint32_t); - int set_peridod_size (uint32_t); + int set_period_size (uint32_t); int set_interleaved (bool yn); int set_systemic_input_latency (uint32_t); int set_systemic_output_latency (uint32_t); diff --git a/libs/backends/coreaudio/coreaudio_backend.cc b/libs/backends/coreaudio/coreaudio_backend.cc index 7d4ee3e706..217dfdefd9 100644 --- a/libs/backends/coreaudio/coreaudio_backend.cc +++ b/libs/backends/coreaudio/coreaudio_backend.cc @@ -148,12 +148,6 @@ CoreAudioBackend::name () const return X_("CoreAudio"); } -bool -CoreAudioBackend::is_realtime () const -{ - return true; -} - std::vector CoreAudioBackend::enumerate_devices () const { @@ -176,7 +170,7 @@ CoreAudioBackend::enumerate_input_devices () const std::map devices; _pcmio->input_device_list(devices); - _input_audio_device_status.push_back (DeviceStatus (get_standard_device_name(DeviceNone), true)); + _input_audio_device_status.push_back (DeviceStatus (get_none_device_name (), true)); for (std::map::const_iterator i = devices.begin (); i != devices.end(); ++i) { if (_input_audio_device == "") _input_audio_device = i->second; _input_audio_device_status.push_back (DeviceStatus (i->second, true)); @@ -192,7 +186,7 @@ CoreAudioBackend::enumerate_output_devices () const std::map devices; _pcmio->output_device_list(devices); - _output_audio_device_status.push_back (DeviceStatus (get_standard_device_name(DeviceNone), true)); + _output_audio_device_status.push_back (DeviceStatus (get_none_device_name (), true)); for (std::map::const_iterator i = devices.begin (); i != devices.end(); ++i) { if (_output_audio_device == "") _output_audio_device = i->second; _output_audio_device_status.push_back (DeviceStatus (i->second, true)); @@ -416,7 +410,7 @@ CoreAudioBackend::enumerate_midi_options () const { if (_midi_options.empty()) { _midi_options.push_back (_("CoreMidi")); - _midi_options.push_back (get_standard_device_name(DeviceNone)); + _midi_options.push_back (get_none_device_name ()); } return _midi_options; } @@ -424,7 +418,7 @@ CoreAudioBackend::enumerate_midi_options () const int CoreAudioBackend::set_midi_option (const std::string& opt) { - if (opt != get_standard_device_name(DeviceNone) && opt != _("CoreMidi")) { + if (opt != get_none_device_name () && opt != _("CoreMidi")) { return -1; } _midi_driver_option = opt; @@ -1534,7 +1528,7 @@ CoreAudioBackend::hw_changed_callback () static std::shared_ptr _instance; static std::shared_ptr backend_factory (AudioEngine& e); -static int instantiate (const std::string& arg1, const std::string& /* arg2 */); +static int instantiate (const std::string& client_name, const std::string& /* session_id */); static int deinstantiate (); static bool already_configured (); static bool available (); @@ -1558,9 +1552,9 @@ backend_factory (AudioEngine& e) } static int -instantiate (const std::string& arg1, const std::string& /* arg2 */) +instantiate (const std::string& client_name, const std::string& /* session_id */) { - s_instance_name = arg1; + s_instance_name = client_name; return 0; } 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 d753681870..609fb5b15d 100644 --- a/libs/backends/dummy/dummy_audiobackend.cc +++ b/libs/backends/dummy/dummy_audiobackend.cc @@ -109,12 +109,6 @@ DummyAudioBackend::name () const return X_("Dummy"); // internal name } -bool -DummyAudioBackend::is_realtime () const -{ - return false; -} - std::vector DummyAudioBackend::enumerate_devices () const { @@ -1021,7 +1015,7 @@ DummyAudioBackend::main_process_thread () static std::shared_ptr _instance; static std::shared_ptr backend_factory (AudioEngine& e); -static int instantiate (const std::string& arg1, const std::string& /* arg2 */); +static int instantiate (const std::string& client_name, const std::string& /* session_id */); static int deinstantiate (); static bool already_configured (); static bool available (); @@ -1045,9 +1039,9 @@ backend_factory (AudioEngine& e) } static int -instantiate (const std::string& arg1, const std::string& /* arg2 */) +instantiate (const std::string& client_name, const std::string& /* session_id */) { - s_instance_name = arg1; + s_instance_name = client_name; return 0; } diff --git a/libs/backends/dummy/dummy_audiobackend.h b/libs/backends/dummy/dummy_audiobackend.h index 610f05ef3d..1ef9a5633a 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_api.cc b/libs/backends/jack/jack_api.cc index 959e3e5838..f3123926c6 100644 --- a/libs/backends/jack/jack_api.cc +++ b/libs/backends/jack/jack_api.cc @@ -25,7 +25,7 @@ static std::shared_ptr backend; static std::shared_ptr jack_connection; static std::shared_ptr backend_factory (AudioEngine& ae); -static int instantiate (const std::string& arg1, const std::string& arg2); +static int instantiate (const std::string& client_name, const std::string& session_id); static int deinstantiate (); static bool already_configured (); static bool available (); @@ -58,10 +58,10 @@ backend_factory (AudioEngine& ae) } static int -instantiate (const std::string& arg1, const std::string& arg2) +instantiate (const std::string& client_name, const std::string& session_id) { try { - jack_connection.reset (new JackConnection (arg1, arg2)); + jack_connection.reset (new JackConnection (client_name, session_id)); backend.reset (); } catch (...) { return -1; diff --git a/libs/backends/jack/jack_audiobackend.cc b/libs/backends/jack/jack_audiobackend.cc index 8f4f1f0a78..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 { @@ -262,7 +255,7 @@ JACKAudioBackend::set_sample_rate (float sr) } int -JACKAudioBackend::set_peridod_size (uint32_t nperiods) +JACKAudioBackend::set_period_size (uint32_t nperiods) { if (!available()) { _target_num_periods = nperiods; @@ -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 21c775e47f..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; } @@ -78,7 +77,7 @@ class JACKAudioBackend : public AudioBackend { int set_device_name (const std::string&); int set_sample_rate (float); int set_buffer_size (uint32_t); - int set_peridod_size (uint32_t); + int set_period_size (uint32_t); int set_interleaved (bool yn); int set_systemic_input_latency (uint32_t); int set_systemic_output_latency (uint32_t); diff --git a/libs/backends/jack/jack_connection.cc b/libs/backends/jack/jack_connection.cc index 207c4add79..540bbd6248 100644 --- a/libs/backends/jack/jack_connection.cc +++ b/libs/backends/jack/jack_connection.cc @@ -50,10 +50,10 @@ static void jack_halted_info_callback (jack_status_t code, const char* reason, v } -JackConnection::JackConnection (const std::string& arg1, const std::string& arg2) +JackConnection::JackConnection (const std::string& client_name, const std::string& session_id) : _jack (0) - , _client_name (arg1) - , session_uuid (arg2) + , _client_name (client_name) + , _session_id (session_id) , _probed_buffer_size (0) , _probed_sample_rate (0) { @@ -116,7 +116,7 @@ JackConnection::open () get_jack_server_dir_paths (dirs); set_path_env_for_jack_autostart (dirs); - if ((_jack = jack_client_open (_client_name.c_str(), JackSessionID, &status, session_uuid.c_str())) == 0) { + if ((_jack = jack_client_open (_client_name.c_str(), JackSessionID, &status, _session_id.c_str())) == 0) { return -1; } diff --git a/libs/backends/jack/jack_connection.h b/libs/backends/jack/jack_connection.h index b9aaab7aa8..164525665a 100644 --- a/libs/backends/jack/jack_connection.h +++ b/libs/backends/jack/jack_connection.h @@ -10,7 +10,7 @@ namespace ARDOUR { class JackConnection { public: - JackConnection (const std::string& client_name, const std::string& session_uuid); + JackConnection (const std::string& client_name, const std::string& session_id); ~JackConnection (); const std::string& client_name() const { return _client_name; } @@ -35,7 +35,7 @@ class JackConnection { private: jack_client_t* volatile _jack; std::string _client_name; - std::string session_uuid; + std::string _session_id; static bool _in_control; uint32_t _probed_buffer_size; // when not in control uint32_t _probed_sample_rate; // when not in control diff --git a/libs/backends/portaudio/portaudio_backend.cc b/libs/backends/portaudio/portaudio_backend.cc index c656e922c2..a2fa6d760a 100644 --- a/libs/backends/portaudio/portaudio_backend.cc +++ b/libs/backends/portaudio/portaudio_backend.cc @@ -116,12 +116,6 @@ PortAudioBackend::name () const return X_("PortAudio"); } -bool -PortAudioBackend::is_realtime () const -{ - return true; -} - bool PortAudioBackend::requires_driver_selection() const { @@ -426,7 +420,7 @@ PortAudioBackend::enumerate_midi_options () const { if (_midi_options.empty()) { _midi_options.push_back (winmme_driver_name); - _midi_options.push_back (get_standard_device_name(DeviceNone)); + _midi_options.push_back (get_none_device_name ()); } return _midi_options; } @@ -434,7 +428,7 @@ PortAudioBackend::enumerate_midi_options () const int PortAudioBackend::set_midi_option (const std::string& opt) { - if (opt != get_standard_device_name(DeviceNone) && opt != winmme_driver_name) { + if (opt != get_none_device_name () && opt != winmme_driver_name) { return -1; } DEBUG_MIDI (string_compose ("Setting midi option to %1\n", opt)); @@ -1218,7 +1212,7 @@ PortAudioBackend::register_system_audio_ports() int PortAudioBackend::register_system_midi_ports (std::string const& device) { - if (_midi_driver_option == get_standard_device_name(DeviceNone)) { + if (_midi_driver_option == get_none_device_name ()) { DEBUG_MIDI("No MIDI backend selected, not system midi ports available\n"); return 0; } @@ -1797,7 +1791,7 @@ PortAudioBackend::process_port_connection_changes () static std::shared_ptr _instance; static std::shared_ptr backend_factory (AudioEngine& e); -static int instantiate (const std::string& arg1, const std::string& /* arg2 */); +static int instantiate (const std::string& client_name, const std::string& /* session_id */); static int deinstantiate (); static bool already_configured (); static bool available (); @@ -1821,9 +1815,9 @@ backend_factory (AudioEngine& e) } static int -instantiate (const std::string& arg1, const std::string& /* arg2 */) +instantiate (const std::string& client_name, const std::string& /* session_id */) { - s_instance_name = arg1; + s_instance_name = client_name; return 0; } diff --git a/libs/backends/portaudio/portaudio_backend.h b/libs/backends/portaudio/portaudio_backend.h index f520d0b46a..384d68733b 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/portaudio/portaudio_io.cc b/libs/backends/portaudio/portaudio_io.cc index d2d6ac4c58..67a949f6e8 100644 --- a/libs/backends/portaudio/portaudio_io.cc +++ b/libs/backends/portaudio/portaudio_io.cc @@ -484,9 +484,9 @@ void PortAudioIO::add_none_devices () { _input_devices.insert(std::pair( - DeviceNone, new paDevice(AudioBackend::get_standard_device_name(AudioBackend::DeviceNone), 0, 0))); + DeviceNone, new paDevice (AudioBackend::get_none_device_name (), 0, 0))); _output_devices.insert(std::pair( - DeviceNone, new paDevice(AudioBackend::get_standard_device_name(AudioBackend::DeviceNone), 0, 0))); + DeviceNone, new paDevice (AudioBackend::get_none_device_name (), 0, 0))); } void @@ -499,12 +499,12 @@ PortAudioIO::add_default_devices () const PaDeviceInfo* nfo_o = Pa_GetDeviceInfo(get_default_output_device()); if (nfo_i && nfo_o) { _input_devices.insert (std::pair (DeviceDefault, - new paDevice(AudioBackend::get_standard_device_name(AudioBackend::DeviceDefault), + new paDevice(AudioBackend::get_default_device_name (), nfo_i->maxInputChannels, nfo_o->maxOutputChannels ))); _output_devices.insert (std::pair (DeviceDefault, - new paDevice(AudioBackend::get_standard_device_name(AudioBackend::DeviceDefault), + new paDevice(AudioBackend::get_default_device_name (), nfo_i->maxInputChannels, nfo_o->maxOutputChannels ))); diff --git a/libs/backends/portaudio/portaudio_io.h b/libs/backends/portaudio/portaudio_io.h index cfd6283d57..1874176d34 100644 --- a/libs/backends/portaudio/portaudio_io.h +++ b/libs/backends/portaudio/portaudio_io.h @@ -34,11 +34,6 @@ public: PortAudioIO (void); ~PortAudioIO (void); - enum StandardDevices { - DeviceNone = -2, - DeviceDefault = -1 - }; - void host_api_list (std::vector&); bool set_host_api (const std::string& host_api_name); std::string get_host_api () const { return _host_api_name; } diff --git a/libs/backends/pulseaudio/pulseaudio_backend.cc b/libs/backends/pulseaudio/pulseaudio_backend.cc index ae8873866b..b9e52b98c9 100644 --- a/libs/backends/pulseaudio/pulseaudio_backend.cc +++ b/libs/backends/pulseaudio/pulseaudio_backend.cc @@ -331,12 +331,6 @@ PulseAudioBackend::name () const return X_("PulseAudio"); } -bool -PulseAudioBackend::is_realtime () const -{ - return true; -} - std::vector PulseAudioBackend::enumerate_devices () const { @@ -481,7 +475,7 @@ std::vector PulseAudioBackend::enumerate_midi_options () const { std::vector midi_options; - midi_options.push_back (get_standard_device_name (DeviceNone)); + midi_options.push_back (get_none_device_name ()); return midi_options; } @@ -500,7 +494,7 @@ PulseAudioBackend::set_midi_option (const std::string& opt) std::string PulseAudioBackend::midi_option () const { - return get_standard_device_name (DeviceNone); + return get_none_device_name (); } /* External control app */ @@ -1089,7 +1083,7 @@ PulseAudioBackend::main_process_thread () static std::shared_ptr _instance; static std::shared_ptr backend_factory (AudioEngine& e); -static int instantiate (const std::string& arg1, const std::string& /* arg2 */); +static int instantiate (const std::string& client_name, const std::string& /* session_id */); static int deinstantiate (); static bool already_configured (); static bool available (); @@ -1113,9 +1107,9 @@ backend_factory (AudioEngine& e) } static int -instantiate (const std::string& arg1, const std::string& /* arg2 */) +instantiate (const std::string& client_name, const std::string& /* session_id */) { - s_instance_name = arg1; + s_instance_name = client_name; return 0; } 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;