-#include <ardour/buffer_set.h>
-#include <ardour/peak.h>
-#include <ardour/dB.h>
-#include <ardour/session.h>
-#include <ardour/midi_events.h>
+#include "ardour/buffer_set.h"
+#include "ardour/peak.h"
+#include "ardour/dB.h"
+#include "ardour/session.h"
+#include "ardour/midi_buffer.h"
+#include "ardour/audio_buffer.h"
+#include "ardour/runtime_functions.h"
+
+using namespace std;
+
+using namespace ARDOUR;
+
+sigc::signal<void> Metering::Meter;
+Glib::StaticMutex Metering::m_meter_signal_lock;
+
+sigc::connection
+Metering::connect (sigc::slot<void> the_slot)
+{
+ // SignalProcessor::Meter is emitted from another thread so the
+ // Meter signal must be protected.
+ Glib::Mutex::Lock guard (m_meter_signal_lock);
+ return Meter.connect (the_slot);
+}
+
+void
+Metering::disconnect (sigc::connection& c)
+{
+ Glib::Mutex::Lock guard (m_meter_signal_lock);
+ c.disconnect ();
+}