+ gain_astate_menu.items().clear ();
+
+ gain_astate_menu.items().push_back (MenuElem (S_("Automation|Manual"),
+ sigc::bind (sigc::mem_fun (*(amp.get()), &Automatable::set_parameter_automation_state),
+ Evoral::Parameter(GainAutomation), (AutoState) ARDOUR::Off)));
+ gain_astate_menu.items().push_back (MenuElem (_("Play"),
+ sigc::bind (sigc::mem_fun (*(amp.get()), &Automatable::set_parameter_automation_state),
+ Evoral::Parameter(GainAutomation), (AutoState) Play)));
+ gain_astate_menu.items().push_back (MenuElem (_("Write"),
+ sigc::bind (sigc::mem_fun (*(amp.get()), &Automatable::set_parameter_automation_state),
+ Evoral::Parameter(GainAutomation), (AutoState) Write)));
+ gain_astate_menu.items().push_back (MenuElem (_("Touch"),
+ sigc::bind (sigc::mem_fun (*(amp.get()), &Automatable::set_parameter_automation_state),
+ Evoral::Parameter(GainAutomation), (AutoState) Touch)));
+
+ connections.push_back (gain_automation_style_button.signal_button_press_event().connect (sigc::mem_fun(*this, &GainMeterBase::gain_automation_style_button_event), false));
+ connections.push_back (gain_automation_state_button.signal_button_press_event().connect (sigc::mem_fun(*this, &GainMeterBase::gain_automation_state_button_event), false));
+
+ boost::shared_ptr<AutomationControl> gc = amp->gain_control();
+
+ gc->alist()->automation_state_changed.connect (model_connections, invalidator (*this), boost::bind (&GainMeter::gain_automation_state_changed, this), gui_context());
+ gc->alist()->automation_style_changed.connect (model_connections, invalidator (*this), boost::bind (&GainMeter::gain_automation_style_changed, this), gui_context());
+
+ gain_automation_state_changed ();
+ }