summaryrefslogtreecommitdiff
path: root/libs/ardour/meter.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2015-04-28 22:18:30 +0200
committerRobin Gareus <robin@gareus.org>2015-04-29 00:35:35 +0200
commitf410705c3a3fb53777aa83ee25c470bbee12f1d5 (patch)
tree8926e4ccb6e8a82604469aa5b8e0cdf9fec6cd11 /libs/ardour/meter.cc
parent1df7b4ffb627c2b1ffb1eb32fecf5af0ad8ca2ad (diff)
delegate signal emission to dedicated thread.
This works around abysmal performance (~.15ms) of boost::function and boost::bind (in PBD::Signal). The overall load is probably higher but the realtime thread remains unaffected.
Diffstat (limited to 'libs/ardour/meter.cc')
-rw-r--r--libs/ardour/meter.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/libs/ardour/meter.cc b/libs/ardour/meter.cc
index e5fabfc291..dffefd4a58 100644
--- a/libs/ardour/meter.cc
+++ b/libs/ardour/meter.cc
@@ -209,7 +209,12 @@ PeakMeter::reflect_inputs (const ChanCount& in)
current_meters = in;
reset_max();
- ConfigurationChanged (in, in); /* EMIT SIGNAL */
+ // ConfigurationChanged() postponed
+}
+
+void
+PeakMeter::emit_configuration_changed () {
+ ConfigurationChanged (current_meters, current_meters); /* EMIT SIGNAL */
}
void