summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2014-09-08 01:25:56 +0200
committerRobin Gareus <robin@gareus.org>2014-09-08 01:25:56 +0200
commitb1da9af8de8cc648d88fbc944c68f1d9f6d1b8c9 (patch)
treef6204bc0e71b68f1053816131c139c33b9123082
parentdc318e6e74d17e03e92c28618d03703a4034a843 (diff)
ALSA|Dummy: ignore port unregistration when engine is stopped
When changing Engine parameters, ardour first stops the engine and only later when re-etablishing ports unregisters/re-registers them. ALSA: silently ignore port unregs and silently accept registrations Dummy: print a PBD::info message,
-rw-r--r--libs/backends/alsa/alsa_audiobackend.cc4
-rw-r--r--libs/backends/dummy/dummy_audiobackend.cc9
2 files changed, 9 insertions, 4 deletions
diff --git a/libs/backends/alsa/alsa_audiobackend.cc b/libs/backends/alsa/alsa_audiobackend.cc
index 834ea41e49..936fc990ce 100644
--- a/libs/backends/alsa/alsa_audiobackend.cc
+++ b/libs/backends/alsa/alsa_audiobackend.cc
@@ -914,8 +914,8 @@ AlsaAudioBackend::add_port (
void
AlsaAudioBackend::unregister_port (PortEngine::PortHandle port_handle)
{
- if (!valid_port (port_handle)) {
- PBD::error << _("AlsaBackend::unregister_port: Invalid Port.") << endmsg;
+ if (!_run) {
+ return;
}
AlsaPort* port = static_cast<AlsaPort*>(port_handle);
std::vector<AlsaPort*>::iterator i = std::find (_ports.begin (), _ports.end (), static_cast<AlsaPort*>(port_handle));
diff --git a/libs/backends/dummy/dummy_audiobackend.cc b/libs/backends/dummy/dummy_audiobackend.cc
index e8a21df292..10df74d676 100644
--- a/libs/backends/dummy/dummy_audiobackend.cc
+++ b/libs/backends/dummy/dummy_audiobackend.cc
@@ -595,6 +595,9 @@ DummyAudioBackend::register_port (
{
if (name.size () == 0) { return 0; }
if (flags & IsPhysical) { return 0; }
+ if (!_running) {
+ PBD::info << _("DummyBackend::register_port: Engine is not running.") << endmsg;
+ }
return add_port (_instance_name + ":" + name, type, flags);
}
@@ -631,8 +634,10 @@ DummyAudioBackend::add_port (
void
DummyAudioBackend::unregister_port (PortEngine::PortHandle port_handle)
{
- if (!valid_port (port_handle)) {
- PBD::error << _("DummyBackend::unregister_port: Invalid Port.") << endmsg;
+ if (!_running) {
+ PBD::info << _("DummyBackend::unregister_port: Engine is not running.") << endmsg;
+ assert (!valid_port (port_handle));
+ return;
}
DummyPort* port = static_cast<DummyPort*>(port_handle);
std::vector<DummyPort*>::iterator i = std::find (_ports.begin (), _ports.end (), static_cast<DummyPort*>(port_handle));