summaryrefslogtreecommitdiff
path: root/libs/surfaces/push2/track_mix.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2016-09-23 18:18:27 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2016-09-27 14:59:32 -0500
commit7a0e2ceec003e598ca8987315b4d01bc2013511b (patch)
tree921d2a04448095938589fdbe8f59c4ef33169ddc /libs/surfaces/push2/track_mix.cc
parent879b09d9202210f45e984f6dd1c529f3209b1b96 (diff)
first pass (incomplete) at canvas meters (in push2 context)
Diffstat (limited to 'libs/surfaces/push2/track_mix.cc')
-rw-r--r--libs/surfaces/push2/track_mix.cc24
1 files changed, 24 insertions, 0 deletions
diff --git a/libs/surfaces/push2/track_mix.cc b/libs/surfaces/push2/track_mix.cc
index 495147cdc7..72f2954d09 100644
--- a/libs/surfaces/push2/track_mix.cc
+++ b/libs/surfaces/push2/track_mix.cc
@@ -35,11 +35,13 @@
#include "ardour/async_midi_port.h"
#include "ardour/audioengine.h"
#include "ardour/debug.h"
+#include "ardour/dsp_filter.h"
#include "ardour/filesystem_paths.h"
#include "ardour/midiport_manager.h"
#include "ardour/midi_track.h"
#include "ardour/midi_port.h"
#include "ardour/monitor_control.h"
+#include "ardour/meter.h"
#include "ardour/session.h"
#include "ardour/solo_isolate_control.h"
#include "ardour/solo_safe_control.h"
@@ -55,6 +57,7 @@
#include "canvas.h"
#include "knob.h"
#include "menu.h"
+#include "meter.h"
#include "push2.h"
#include "track_mix.h"
#include "utils.h"
@@ -137,6 +140,9 @@ TrackMixLayout::TrackMixLayout (Push2& p, Session& s)
name_text->set_font_description (fd);
name_text->set_position (Duple (10 + (4*Push2Canvas::inter_button_spacing()), 2));
+ meter = new Meter (this, 24, 32, Meter::Horizontal, 200);
+ meter->set_position (Duple (10 + (4 * Push2Canvas::inter_button_spacing()), 50));
+
ControlProtocol::StripableSelectionChanged.connect (selection_connection, invalidator (*this), boost::bind (&TrackMixLayout::selection_changed, this), &p2);
}
@@ -155,6 +161,7 @@ TrackMixLayout::selection_changed ()
set_stripable (s);
}
}
+
void
TrackMixLayout::show ()
{
@@ -492,3 +499,20 @@ TrackMixLayout::strip_vpot_touch (int n, bool touching)
}
}
}
+
+void
+TrackMixLayout::update_meters ()
+{
+ if (!stripable) {
+ return;
+ }
+
+ boost::shared_ptr<PeakMeter> peak_meter = stripable->peak_meter ();
+
+ if (!peak_meter) {
+ return;
+ }
+
+ const float mpeak = peak_meter->meter_level (0, MeterPeak);
+ meter->set (DSP::log_meter (mpeak));
+}