X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Flevel_meter.h;h=6b3c33cac514ff113c6889e25801824a527f0195;hb=6e0330a304e06311502f82ac1ebc969121695aa5;hp=240cc4b7853e4361f05423730afe41797798503c;hpb=997e4b1f9cd7ccfc704b7c035051da7f60d831e7;p=ardour.git diff --git a/gtk2_ardour/level_meter.h b/gtk2_ardour/level_meter.h index 240cc4b785..6b3c33cac5 100644 --- a/gtk2_ardour/level_meter.h +++ b/gtk2_ardour/level_meter.h @@ -21,7 +21,6 @@ #define __ardour_gtk_track_meter_h__ #include -#include #include #include @@ -31,7 +30,9 @@ #include #include -#include +#include "ardour/types.h" +#include "ardour/chan_count.h" +#include "ardour/session_handle.h" #include #include @@ -40,64 +41,65 @@ #include "enums.h" namespace ARDOUR { - class IO; class Session; - class Route; - class RouteGroup; + class PeakMeter; } namespace Gtkmm2ext { class FastMeter; - class BarController; } namespace Gtk { class Menu; } -class LevelMeter : public Gtk::HBox +class LevelMeter : public Gtk::HBox, public ARDOUR::SessionHandlePtr { public: - LevelMeter (boost::shared_ptr, ARDOUR::Session&); + LevelMeter (ARDOUR::Session*); ~LevelMeter (); + virtual void set_meter (ARDOUR::PeakMeter* meter); + void update_gain_sensitive (); - void update_meters (); + float update_meters (); void update_meters_falloff (); void clear_meters (); void hide_meters (); - void setup_meters (int len=0); + void setup_meters (int len=0, int width=3); private: - - //friend class MixerStrip; - boost::shared_ptr _io; - ARDOUR::Session& _session; - + ARDOUR::PeakMeter* _meter; + Width _width; struct MeterInfo { Gtkmm2ext::FastMeter *meter; - gint16 width; - int length; - bool packed; - - MeterInfo() { + gint16 width; + int length; + bool packed; + + MeterInfo() { meter = 0; width = 0; - length = 0; + length = 0; packed = false; } }; - static const guint16 regular_meter_width = 3; - static const guint16 thin_meter_width = 2; - vector meters; + guint16 regular_meter_width; + int meter_length; + static const guint16 thin_meter_width = 2; + std::vector meters; + float max_peak; + + PBD::ScopedConnection _configuration_connection; + PBD::ScopedConnection _parameter_connection; - //Gtk::HBox meter_packer; - void hide_all_meters (); + gint meter_button_release (GdkEventButton*, uint32_t); - void parameter_changed (const char*); + void parameter_changed (std::string); + void configuration_changed (ARDOUR::ChanCount in, ARDOUR::ChanCount out); void on_theme_changed (); bool style_changed;