midi_input_enable_button does not need to be dynamically allocated

This commit is contained in:
Ben Loftis 2022-02-01 12:26:41 -06:00
parent 6fc4ab87de
commit a100d46249
2 changed files with 17 additions and 28 deletions

View File

@ -122,7 +122,6 @@ MixerStrip::MixerStrip (Mixer_UI& mx, Session* sess, bool in_mixer)
, input_button (true)
, output_button (false)
, monitor_section_button (0)
, midi_input_enable_button (0)
, _tmaster_widget (-1, 16)
, _comment_button (_("Comments"))
, trim_control (ArdourKnob::default_elements, ArdourKnob::Flags (ArdourKnob::Detent | ArdourKnob::ArcToZero))
@ -161,7 +160,6 @@ MixerStrip::MixerStrip (Mixer_UI& mx, Session* sess, boost::shared_ptr<Route> rt
, input_button (true)
, output_button (false)
, monitor_section_button (0)
, midi_input_enable_button (0)
, _tmaster_widget (-1, 16)
, _comment_button (_("Comments"))
, trim_control (ArdourKnob::default_elements, ArdourKnob::Flags (ArdourKnob::Detent | ArdourKnob::ArcToZero))
@ -656,27 +654,23 @@ MixerStrip::set_route (boost::shared_ptr<Route> rt)
update_trim_control();
if (is_midi_track()) {
if (midi_input_enable_button == 0) {
midi_input_enable_button = manage (new ArdourButton);
midi_input_enable_button->set_name ("midi input button");
midi_input_enable_button->set_elements ((ArdourButton::Element)(ArdourButton::Edge|ArdourButton::Body|ArdourButton::VectorIcon));
midi_input_enable_button->set_icon (ArdourIcon::DinMidi);
midi_input_enable_button->signal_button_press_event().connect (sigc::mem_fun (*this, &MixerStrip::input_active_button_press), false);
midi_input_enable_button->signal_button_release_event().connect (sigc::mem_fun (*this, &MixerStrip::input_active_button_release), false);
set_tooltip (midi_input_enable_button, _("Enable/Disable MIDI input"));
} else {
input_button_box.remove (*midi_input_enable_button);
}
midi_input_enable_button.set_name ("midi input button");
midi_input_enable_button.set_elements ((ArdourButton::Element)(ArdourButton::Edge|ArdourButton::Body|ArdourButton::VectorIcon));
midi_input_enable_button.set_icon (ArdourIcon::DinMidi);
midi_input_enable_button.signal_button_press_event().connect (sigc::mem_fun (*this, &MixerStrip::input_active_button_press), false);
midi_input_enable_button.signal_button_release_event().connect (sigc::mem_fun (*this, &MixerStrip::input_active_button_release), false);
set_tooltip (midi_input_enable_button, _("Enable/Disable MIDI input"));
input_button_box.pack_start (midi_input_enable_button, false, false);
/* get current state */
midi_input_status_changed ();
input_button_box.pack_start (*midi_input_enable_button, false, false);
/* follow changes */
midi_track()->InputActiveChanged.connect (route_connections, invalidator (*this), boost::bind (&MixerStrip::midi_input_status_changed, this), gui_context());
} else {
if (midi_input_enable_button) {
/* removal from the container will delete it */
input_button_box.remove (*midi_input_enable_button);
midi_input_enable_button = 0;
if (midi_input_enable_button.get_parent()) {
input_button_box.remove (midi_input_enable_button);
}
}
@ -1771,11 +1765,9 @@ MixerStrip::input_active_button_release (GdkEventButton* ev)
void
MixerStrip::midi_input_status_changed ()
{
if (midi_input_enable_button) {
boost::shared_ptr<MidiTrack> mt = midi_track ();
assert (mt);
midi_input_enable_button->set_active (mt->input_active ());
}
boost::shared_ptr<MidiTrack> mt = midi_track ();
assert (mt);
midi_input_enable_button.set_active (mt->input_active ());
}
string
@ -1882,10 +1874,7 @@ MixerStrip::update_sensitivity ()
_comment_button.set_sensitive (en && !send);
trim_control.set_sensitive (en && !send);
control_slave_ui.set_sensitive (en && !send);
if (midi_input_enable_button) {
midi_input_enable_button->set_sensitive (en && !send);
}
midi_input_enable_button.set_sensitive (en && !send);
output_button.set_sensitive (en && !aux);

View File

@ -216,7 +216,7 @@ private:
void comment_button_resized (Gtk::Allocation&);
ArdourWidgets::ArdourButton* midi_input_enable_button;
ArdourWidgets::ArdourButton midi_input_enable_button;
Gtk::HBox input_button_box;
std::string longest_label;