summaryrefslogtreecommitdiffstats
path: root/src/JackDriver.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2006-10-14 05:51:23 +0000
committerDavid Robillard <d@drobilla.net>2006-10-14 05:51:23 +0000
commit5cb3a78c84c5f82421825ee6de507f2cdad5f654 (patch)
treee8a17b6132c123fd4932baebc6ab7712925a3dbd /src/JackDriver.cpp
parent56e5e5dca5591a6901facb6d1b7a12a04a265de3 (diff)
downloadpatchage-5cb3a78c84c5f82421825ee6de507f2cdad5f654.tar.gz
patchage-5cb3a78c84c5f82421825ee6de507f2cdad5f654.tar.bz2
patchage-5cb3a78c84c5f82421825ee6de507f2cdad5f654.zip
Fixed Patchage dynamic reconnection.
git-svn-id: http://svn.drobilla.net/lad/patchage@166 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/JackDriver.cpp')
-rw-r--r--src/JackDriver.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/JackDriver.cpp b/src/JackDriver.cpp
index 8bfea6f..eef6b2f 100644
--- a/src/JackDriver.cpp
+++ b/src/JackDriver.cpp
@@ -75,12 +75,12 @@ JackDriver::attach(bool launch_daemon)
void
JackDriver::detach()
{
- if (m_client != NULL) {
+ if (m_client) {
jack_deactivate(m_client);
jack_client_close(m_client);
m_client = NULL;
- signal_detached.emit();
destroy_all_ports();
+ signal_detached.emit();
m_app->status_message("[JACK] Detached");
}
}
@@ -97,12 +97,12 @@ JackDriver::destroy_all_ports()
for (PortVector::iterator p = ports.begin(); p != ports.end(); ++p) {
boost::shared_ptr<PatchagePort> port = boost::dynamic_pointer_cast<PatchagePort>(*p);
if (port && port->type() == JACK_AUDIO || port->type() == JACK_MIDI) {
- port.reset();
+ m->second->remove_port(port);
}
}
if (m->second->ports().empty())
- m->second.reset();
+ m_app->canvas()->remove_module(m->second->name());
}
}
@@ -144,8 +144,8 @@ JackDriver::refresh()
if (m_client == NULL) {
// Shutdown
if (m_is_dirty) {
- signal_detached.emit();
destroy_all_ports();
+ signal_detached.emit();
}
m_is_dirty = false;
m_mutex.unlock();