summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2008-01-09 02:39:37 +0000
committerDavid Robillard <d@drobilla.net>2008-01-09 02:39:37 +0000
commit982e2e0d0d0aebadf5e1878e6f812a65d3da6d34 (patch)
tree478afcf9e0644a8ed9c979f9655ae5e00faf6654
parent4eee416f717d25948548652144ae4ac7317323f6 (diff)
downloadpatchage-982e2e0d0d0aebadf5e1878e6f812a65d3da6d34.tar.gz
patchage-982e2e0d0d0aebadf5e1878e6f812a65d3da6d34.tar.bz2
patchage-982e2e0d0d0aebadf5e1878e6f812a65d3da6d34.zip
Patchage refresh performance improvements
git-svn-id: http://svn.drobilla.net/lad/patchage@1041 a436a847-0d15-0410-975c-d299462d15a1
-rw-r--r--configure.ac2
-rw-r--r--src/AlsaDriver.cpp10
-rw-r--r--src/JackDriver.cpp8
-rw-r--r--src/Patchage.cpp6
4 files changed, 7 insertions, 19 deletions
diff --git a/configure.ac b/configure.ac
index 74950a6..01f1e0d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,5 @@
AC_PREREQ(2.59)
-AC_INIT([patchage],[0.4.0],[dave@drobilla.net])
+AC_INIT([patchage],[0.4.1],[dave@drobilla.net])
AC_CONFIG_AUX_DIR([config])
diff --git a/src/AlsaDriver.cpp b/src/AlsaDriver.cpp
index 24cb850..0e92b2b 100644
--- a/src/AlsaDriver.cpp
+++ b/src/AlsaDriver.cpp
@@ -131,8 +131,6 @@ AlsaDriver::refresh_ports()
bool is_duplex = false;
bool is_application = true;
- set<SharedPtr<PatchageModule> > resized_modules;
-
while (snd_seq_query_next_client (_seq, cinfo) >= 0) {
snd_seq_port_info_set_client(pinfo, snd_seq_client_info_get_client(cinfo));
snd_seq_port_info_set_port(pinfo, -1);
@@ -196,7 +194,6 @@ AlsaDriver::refresh_ports()
m->add_port(create_port(m, port_name, true, addr));
m->add_port(create_port(m, port_name, false, addr));
}
- resized_modules.insert(m);
}
} else { // non-application input/output ports (hw interface, etc) go on separate modules
@@ -225,7 +222,6 @@ AlsaDriver::refresh_ports()
if (!m->get_port(port_name)) {
m->add_port(create_port(m, port_name, is_input, addr));
- resized_modules.insert(m);
}
} else { // two ports to add
@@ -249,7 +245,6 @@ AlsaDriver::refresh_ports()
if (!m->get_port(port_name)) {
m->add_port(create_port(m, port_name, true, addr));
- resized_modules.insert(m);
}
type = Output;
@@ -270,16 +265,11 @@ AlsaDriver::refresh_ports()
if (!m->get_port(port_name)) {
m->add_port(create_port(m, port_name, false, addr));
- resized_modules.insert(m);
}
}
}
}
}
-
- for (set<SharedPtr<PatchageModule> >::const_iterator i = resized_modules.begin();
- i != resized_modules.end(); ++i)
- (*i)->resize();
}
diff --git a/src/JackDriver.cpp b/src/JackDriver.cpp
index 03284d9..7a3e66d 100644
--- a/src/JackDriver.cpp
+++ b/src/JackDriver.cpp
@@ -206,8 +206,6 @@ JackDriver::refresh()
string client2_name;
string port2_name;
- set<SharedPtr<PatchageModule> > resized_modules;
-
// Add all ports
if (ports)
for (int i=0; ports[i]; ++i) {
@@ -262,8 +260,6 @@ JackDriver::refresh()
if (!m->get_port(jack_port_short_name(port))) {
m->add_port(create_port(m, port));
}
-
- resized_modules.insert(m);
}
// Add all connections
@@ -325,10 +321,6 @@ JackDriver::refresh()
free(connected_ports);
}
}
-
- for (set<SharedPtr<PatchageModule> >::const_iterator i = resized_modules.begin();
- i != resized_modules.end(); ++i)
- (*i)->resize();
free(ports);
}
diff --git a/src/Patchage.cpp b/src/Patchage.cpp
index bf8fa25..45ad7b9 100644
--- a/src/Patchage.cpp
+++ b/src/Patchage.cpp
@@ -396,6 +396,12 @@ Patchage::refresh()
if (_alsa_driver)
_alsa_driver->refresh();
#endif
+
+ for (ItemList::iterator i = _canvas->items().begin(); i != _canvas->items().end(); ++i) {
+ SharedPtr<Module> module = PtrCast<Module>(*i);
+ if (module)
+ module->resize();
+ }
}
}