summaryrefslogtreecommitdiffstats
path: root/src/JackDriver.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2007-07-25 01:06:22 +0000
committerDavid Robillard <d@drobilla.net>2007-07-25 01:06:22 +0000
commit5837be3b45c83bd5743735de8cf451c5bdf3541d (patch)
tree3a0331f2a5391726efbb7b6362004a06050f50f1 /src/JackDriver.cpp
parent35b1c7c0683a72978f646c883f411e1eabd595ae (diff)
downloadpatchage-5837be3b45c83bd5743735de8cf451c5bdf3541d.tar.gz
patchage-5837be3b45c83bd5743735de8cf451c5bdf3541d.tar.bz2
patchage-5837be3b45c83bd5743735de8cf451c5bdf3541d.zip
Avoid some canvas text measuring overhead in Patchage (module resizing).
Fix duplex Alsa Sequencer ports (fix ticket 12). git-svn-id: http://svn.drobilla.net/lad/patchage@617 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/JackDriver.cpp')
-rw-r--r--src/JackDriver.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/JackDriver.cpp b/src/JackDriver.cpp
index 5572769..761c1c2 100644
--- a/src/JackDriver.cpp
+++ b/src/JackDriver.cpp
@@ -18,6 +18,7 @@
#include <cassert>
#include <cstring>
#include <string>
+#include <set>
#include <iostream>
#include "config.h"
#include <jack/jack.h>
@@ -202,6 +203,8 @@ JackDriver::refresh()
string port1_name;
string client2_name;
string port2_name;
+
+ set<SharedPtr<PatchageModule> > resized_modules;
// Add all ports
if (ports)
@@ -258,7 +261,7 @@ JackDriver::refresh()
m->add_port(create_port(m, port));
}
- m->resize();
+ resized_modules.insert(m);
}
// Add all connections
@@ -320,6 +323,10 @@ JackDriver::refresh()
free(connected_ports);
}
}
+
+ for (set<SharedPtr<PatchageModule> >::const_iterator i = resized_modules.begin();
+ i != resized_modules.end(); ++i)
+ (*i)->resize();
free(ports);
}