X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fmixer_strip.cc;h=5ce4caa3af1b74866a95e2073aa5fab38ccc17e8;hb=e549e8f82c151db4ba6cd95ed5045c530453900f;hp=e4d9b4058a596f8043d03d9977a95889ff78e1b4;hpb=186a9599b641c7618f76852ed7ad0fe6ee8fa702;p=ardour.git diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc index e4d9b4058a..5ce4caa3af 100644 --- a/gtk2_ardour/mixer_strip.cc +++ b/gtk2_ardour/mixer_strip.cc @@ -87,6 +87,7 @@ MixerStrip::MixerStrip (Mixer_UI& mx, Session* sess, bool in_mixer) , panners (sess) , button_table (3, 1) , solo_led_table (2, 2) + , top_button_table (1, 2) , middle_button_table (1, 2) , bottom_button_table (1, 2) , meter_point_label (_("pre")) @@ -184,6 +185,9 @@ MixerStrip::init () mute_button->set_name ("MixerMuteButton"); solo_button->set_name ("MixerSoloButton"); + monitor_input_button->set_name ("MixerMonitorInputButton"); + monitor_disk_button->set_name ("MixerMonitorInputButton"); + solo_isolated_led = manage (new LED); solo_isolated_led->show (); solo_isolated_led->set_diameter (6); @@ -217,8 +221,14 @@ MixerStrip::init () solo_led_table.attach (*solo_isolated_led, 1, 2, 0, 1, Gtk::FILL, Gtk::FILL); solo_led_table.attach (*_safe_label, 0, 1, 1, 2, Gtk::FILL, Gtk::FILL); solo_led_table.attach (*solo_safe_led, 1, 2, 1, 2, Gtk::FILL, Gtk::FILL); - solo_led_table.show (); + + top_button_table.set_homogeneous (true); + top_button_table.set_spacings (0); + top_button_table.attach (*monitor_input_button, 0, 1, 0, 1); + top_button_table.attach (*monitor_disk_button, 1, 2, 0, 1); + top_button_table.show (); + below_panner_box.set_border_width (2); below_panner_box.set_spacing (2); below_panner_box.pack_end (solo_led_table, false, false); @@ -271,6 +281,7 @@ MixerStrip::init () global_vpacker.pack_start (button_table, Gtk::PACK_SHRINK); global_vpacker.pack_start (processor_box, true, true); global_vpacker.pack_start (panners, Gtk::PACK_SHRINK); + global_vpacker.pack_start (top_button_table, Gtk::PACK_SHRINK); global_vpacker.pack_start (below_panner_box, Gtk::PACK_SHRINK); global_vpacker.pack_start (middle_button_table, Gtk::PACK_SHRINK); global_vpacker.pack_start (gpm, Gtk::PACK_SHRINK); @@ -334,7 +345,7 @@ MixerStrip::init () SwitchIO.connect (sigc::mem_fun (*this, &MixerStrip::switch_io)); AudioEngine::instance()->PortConnectedOrDisconnected.connect ( - *this, invalidator (*this), boost::bind (&MixerStrip::port_connected_or_disconnected, this, _1, _2), gui_context () + *this, invalidator (*this), boost::bind (&MixerStrip::port_connected_or_disconnected, this, _1, _3), gui_context () ); } @@ -396,6 +407,14 @@ MixerStrip::set_route (boost::shared_ptr rt) global_vpacker.pack_start (*spacer, false, false); } + if (is_track()) { + monitor_input_button->show (); + monitor_disk_button->show (); + } else { + monitor_input_button->hide(); + monitor_disk_button->hide (); + } + if (is_midi_track()) { if (midi_input_enable_button == 0) { Image* img = manage (new Image (get_icon (X_("midi_socket_small")))); @@ -1643,6 +1662,8 @@ MixerStrip::drop_send () rec_enable_button->set_sensitive (true); solo_isolated_led->set_sensitive (true); solo_safe_led->set_sensitive (true); + monitor_input_button->set_sensitive (true); + monitor_disk_button->set_sensitive (true); } void @@ -1679,6 +1700,8 @@ MixerStrip::show_send (boost::shared_ptr send) rec_enable_button->set_sensitive (false); solo_isolated_led->set_sensitive (false); solo_safe_led->set_sensitive (false); + monitor_input_button->set_sensitive (false); + monitor_disk_button->set_sensitive (false); if (boost::dynamic_pointer_cast(send)) { output_button.set_sensitive (false); @@ -1714,6 +1737,8 @@ MixerStrip::set_button_names () case Wide: rec_enable_button_label.set_text (_("Rec")); mute_button_label.set_text (_("Mute")); + monitor_input_button_label.set_text (_("In")); + monitor_disk_button_label.set_text (_("Disk")); if (_route && _route->solo_safe()) { solo_button_label.set_text (X_("!")); } else { @@ -1735,6 +1760,8 @@ MixerStrip::set_button_names () default: rec_enable_button_label.set_text (_("R")); mute_button_label.set_text (_("M")); + monitor_input_button_label.set_text (_("I")); + monitor_disk_button_label.set_text (_("D")); if (_route && _route->solo_safe()) { solo_button_label.set_text (X_("!")); if (!Config->get_solo_control_is_listen_control()) { @@ -1880,7 +1907,7 @@ MixerStrip::hide_things () } bool -MixerStrip::input_active_button_press (GdkEventButton* ev) +MixerStrip::input_active_button_press (GdkEventButton*) { /* nothing happens on press */ return true;