#include <gtkmm2ext/fastmeter.h>
#include <gtkmm2ext/stop_signal.h>
#include <gtkmm2ext/barcontroller.h>
+#include <gtkmm2ext/gtk_ui.h>
#include <midi++/manager.h>
#include <pbd/fastlog.h>
ResetAllPeakDisplays.connect (mem_fun(*this, &GainMeter::reset_peak_display));
ResetGroupPeakDisplays.connect (mem_fun(*this, &GainMeter::reset_group_peak_display));
- ThemeChanged.connect (mem_fun(*this, &GainMeter::redraw_pixmaps));
+ UI::instance()->theme_changed.connect (mem_fun(*this, &GainMeter::on_theme_changed));
}
void
Glib::RefPtr<Gdk::Pixmap>
GainMeter::render_metrics (Gtk::Widget& w)
{
- cerr << "GainMeter::render_metrics() called, red = " << w.get_style()->get_bg(Gtk::STATE_NORMAL).get_red() << endl;//DEBUG
+ //cerr << "GainMeter::render_metrics() called, red = " << w.get_style()->get_bg(Gtk::STATE_NORMAL).get_red() << endl;//DEBUG
Glib::RefPtr<Gdk::Window> win (w.get_window());
Glib::RefPtr<Gdk::GC> fg_gc (w.get_style()->get_fg_gc (Gtk::STATE_NORMAL));
Glib::RefPtr<Gdk::GC> bg_gc (w.get_style()->get_bg_gc (Gtk::STATE_NORMAL));
gint
GainMeter::meter_metrics_expose (GdkEventExpose *ev)
{
+ /* Only draw dB scale if we're metering audio */
+ if (_io->n_inputs().n_audio() + _io->n_outputs().n_audio() == 0)
+ return true;
+
static Glib::RefPtr<Gtk::Style> meter_style;
if (style_changed) {
return true;
}
-int
-GainMeter::redraw_pixmaps(string blah)
+void
+GainMeter::on_theme_changed()
{
style_changed = true;
- return 0;
}
GainMeter::~GainMeter ()
if ((r = dynamic_cast<Route*> (_io.get())) != 0) {
switch (r->meter_point()) {
- case MeterPreFader:
case MeterInput:
- nmeters = r->n_inputs().n_audio();
+ nmeters = r->n_inputs().n_total();
+ break;
+ case MeterPreFader:
+ nmeters = r->pre_fader_streams().n_total();
break;
case MeterPostFader:
- nmeters = r->n_outputs().n_audio();
+ nmeters = r->n_outputs().n_total();
break;
}