namespace ARDOUR {
class IO;
+ class GainControl;
class Session;
class Route;
class RouteGroup;
class Menu;
}
+enum MeterPointChangeTarget {
+ MeterPointChangeAll,
+ MeterPointChangeGroup,
+ MeterPointChangeSingle
+};
+
class GainMeterBase : virtual public sigc::trackable, ARDOUR::SessionHandlePtr
{
public:
virtual void set_controls (boost::shared_ptr<ARDOUR::Route> route,
boost::shared_ptr<ARDOUR::PeakMeter> meter,
- boost::shared_ptr<ARDOUR::Amp> amp);
+ boost::shared_ptr<ARDOUR::Amp> amp,
+ boost::shared_ptr<ARDOUR::GainControl> control);
void update_gain_sensitive ();
void update_meters ();
+ const ARDOUR::ChanCount meter_channels () const;
+
void effective_gain_display ();
void set_width (Width, int len=0);
void set_meter_strip_name (const char * name);
*/
PBD::Signal1<bool, GdkEventButton *> LevelMeterButtonPress;
+ static std::string astate_string (ARDOUR::AutoState);
+ static std::string short_astate_string (ARDOUR::AutoState);
+ static std::string _astate_string (ARDOUR::AutoState, bool);
+
+ static std::string astyle_string (ARDOUR::AutoStyle);
+ static std::string short_astyle_string (ARDOUR::AutoStyle);
+ static std::string _astyle_string (ARDOUR::AutoStyle, bool);
+
protected:
friend class MixerStrip;
boost::shared_ptr<ARDOUR::Route> _route;
boost::shared_ptr<ARDOUR::PeakMeter> _meter;
boost::shared_ptr<ARDOUR::Amp> _amp;
+ boost::shared_ptr<ARDOUR::GainControl> _control;
std::vector<sigc::connection> connections;
PBD::ScopedConnectionList model_connections;
Gtk::Menu gain_astate_menu;
Gtk::Menu gain_astyle_menu;
+ ArdourButton meter_point_button;
+
+ Gtk::Menu meter_point_menu;
+
+ void set_gain_astate (ARDOUR::AutoState);
+ bool gain_astate_propagate;
+ static sigc::signal<void, ARDOUR::AutoState> ChangeGainAutomationState;
+
gint gain_automation_style_button_event (GdkEventButton *);
gint gain_automation_state_button_event (GdkEventButton *);
gint pan_automation_style_button_event (GdkEventButton *);
void gain_automation_style_changed();
void setup_gain_adjustment ();
-
- std::string astate_string (ARDOUR::AutoState);
- std::string short_astate_string (ARDOUR::AutoState);
- std::string _astate_string (ARDOUR::AutoState, bool);
-
- std::string astyle_string (ARDOUR::AutoStyle);
- std::string short_astyle_string (ARDOUR::AutoStyle);
- std::string _astyle_string (ARDOUR::AutoStyle, bool);
-
Width _width;
void show_gain ();
float max_peak;
- void gain_adjusted ();
+ void fader_moved ();
void gain_changed ();
- void meter_point_clicked ();
+ void meter_point_clicked (ARDOUR::MeterPoint);
void gain_unit_changed ();
virtual void hide_all_meters ();
void set_route_group_meter_point (ARDOUR::Route&, ARDOUR::MeterPoint);
void set_meter_point (ARDOUR::Route&, ARDOUR::MeterPoint);
- gint meter_release (GdkEventButton*);
gint meter_press (GdkEventButton*);
- bool wait_for_release;
ARDOUR::MeterPoint old_meter_point;
+ MeterPointChangeTarget meter_point_change_target;
+
void parameter_changed (const char*);
void reset_peak_display ();
virtual void set_controls (boost::shared_ptr<ARDOUR::Route> route,
boost::shared_ptr<ARDOUR::PeakMeter> meter,
- boost::shared_ptr<ARDOUR::Amp> amp);
+ boost::shared_ptr<ARDOUR::Amp> amp,
+ boost::shared_ptr<ARDOUR::GainControl> control);
int get_gm_width ();
void setup_meters (int len=0);
Gtk::HBox gain_display_box;
Gtk::HBox fader_box;
- Gtk::VBox* fader_vbox;
+ Gtk::VBox fader_vbox;
Gtk::HBox hbox;
Gtk::HBox meter_hbox;
Gtk::Alignment fader_alignment;