class Menu;
}
-class LevelMeterBase : public sigc::trackable, public ARDOUR::SessionHandlePtr
+class LevelMeterBase : public ARDOUR::SessionHandlePtr, virtual public sigc::trackable
{
public:
- LevelMeterBase (ARDOUR::Session*,
+ LevelMeterBase (ARDOUR::Session*, PBD::EventLoop::InvalidationRecord* ir,
Gtkmm2ext::FastMeter::Orientation o = Gtkmm2ext::FastMeter::Vertical);
- ~LevelMeterBase ();
+ virtual ~LevelMeterBase ();
virtual void set_meter (ARDOUR::PeakMeter* meter);
void clear_meters (bool reset_highlight = true);
void hide_meters ();
void setup_meters (int len=0, int width=3, int thin=2);
+ void set_max_audio_meter_count (uint32_t cnt = 0);
void set_type (ARDOUR::MeterType);
ARDOUR::MeterType get_type () { return meter_type; }
/** Emitted in the GUI thread when a button is pressed over the meter */
PBD::Signal1<bool, GdkEventButton *> ButtonPress;
+ PBD::Signal1<bool, GdkEventButton *> ButtonRelease;
PBD::Signal1<void, ARDOUR::MeterType> MeterTypeChanged;
protected:
virtual void mtr_remove(Gtk::Widget &w) = 0;
private:
+ PBD::EventLoop::InvalidationRecord* parent_invalidator;
ARDOUR::PeakMeter* _meter;
Gtkmm2ext::FastMeter::Orientation _meter_orientation;
float max_peak;
ARDOUR::MeterType meter_type;
ARDOUR::MeterType visible_meter_type;
+ uint32_t midi_count;
+ uint32_t meter_count;
+ uint32_t max_visible_meters;
PBD::ScopedConnection _configuration_connection;
PBD::ScopedConnection _meter_type_connection;
void configuration_changed (ARDOUR::ChanCount in, ARDOUR::ChanCount out);
void meter_type_changed (ARDOUR::MeterType);
- void on_theme_changed ();
- bool style_changed;
bool color_changed;
void color_handler ();
};