Add API to query backend/driver/device ID

This commit is contained in:
Robin Gareus 2023-05-24 01:53:45 +02:00
parent 159e677d8d
commit c11f8532ca
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04
2 changed files with 26 additions and 0 deletions

View File

@ -134,6 +134,8 @@ class LIBARDOUR_API AudioEngine : public PortManager, public SessionHandlePtr
bool freewheeling() const { return _freewheeling; }
bool running() const { return _running; }
std::string backend_id (bool for_input);
Glib::Threads::Mutex& process_lock() { return _process_lock; }
Glib::Threads::Mutex& latency_lock() { return _latency_lock; }

View File

@ -1778,3 +1778,27 @@ AudioEngine::add_pending_port_deletion (Port* p)
delete p;
}
}
std::string
AudioEngine::backend_id (bool for_input)
{
if (!_backend) {
return "";
}
if (!setup_required ()) {
return "JACK";
}
std::stringstream ss;
ss << _backend->name() << ";" << _backend->driver_name () << ";";
if (_backend->use_separate_input_and_output_devices ()) {
if (for_input) {
ss << _backend->input_device_name ();
} else {
ss << _backend->output_device_name ();
}
} else {
ss << _backend->device_name ();
}
return ss.str ();
}