summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2013-11-09 13:16:08 +0100
committerRobin Gareus <robin@gareus.org>2013-11-09 13:16:08 +0100
commit982c38dda1515b96b4b1aadfeff70fa2fad960a1 (patch)
tree9f15a8a033e75230d4f02fe51e4c07cbc548734f
parent8c2cc85e8fd1ac55761c2f53aebbe98b8f22a40a (diff)
allow to include In/Disk button on Meterbridge
-rw-r--r--gtk2_ardour/meter_strip.cc28
-rw-r--r--gtk2_ardour/meter_strip.h2
-rw-r--r--gtk2_ardour/session_option_editor.cc7
-rw-r--r--libs/ardour/ardour/session_configuration_vars.h1
4 files changed, 38 insertions, 0 deletions
diff --git a/gtk2_ardour/meter_strip.cc b/gtk2_ardour/meter_strip.cc
index 703870ecef..886374c61a 100644
--- a/gtk2_ardour/meter_strip.cc
+++ b/gtk2_ardour/meter_strip.cc
@@ -177,6 +177,11 @@ MeterStrip::MeterStrip (Session* sess, boost::shared_ptr<ARDOUR::Route> rt)
namebx.set_size_request(18, 52);
namebx.pack_start(name_label, true, false, 3);
+ mon_in_box.pack_start(*monitor_input_button, true, false);
+ btnbox.pack_start(mon_in_box, false, false, 1);
+ mon_disk_box.pack_start(*monitor_disk_button, true, false);
+ btnbox.pack_start(mon_disk_box, false, false, 1);
+
recbox.pack_start(*rec_enable_button, true, false);
btnbox.pack_start(recbox, false, false, 1);
mutebox.pack_start(*mute_button, true, false);
@@ -193,9 +198,17 @@ MeterStrip::MeterStrip (Session* sess, boost::shared_ptr<ARDOUR::Route> rt)
solo_button->set_corner_radius(2);
solo_button->set_size_request(16, 16);
+ monitor_input_button->set_corner_radius(2);
+ monitor_input_button->set_size_request(16, 16);
+
+ monitor_disk_button->set_corner_radius(2);
+ monitor_disk_button->set_size_request(16, 16);
+
mutebox.set_size_request(16, 16);
solobox.set_size_request(16, 16);
recbox.set_size_request(16, 16);
+ mon_in_box.set_size_request(16, 16);
+ mon_disk_box.set_size_request(16, 16);
spacer.set_size_request(-1,0);
update_button_box();
@@ -232,6 +245,8 @@ MeterStrip::MeterStrip (Session* sess, boost::shared_ptr<ARDOUR::Route> rt)
mtr_container.show();
mtr_hsep.show();
nfo_vbox.show();
+ monitor_input_button->show();
+ monitor_disk_button->show();
_route->shared_peak_meter()->ConfigurationChanged.connect (
route_connections, invalidator (*this), boost::bind (&MeterStrip::meter_configuration_changed, this, _1), gui_context()
@@ -339,6 +354,8 @@ MeterStrip::set_button_names()
}
}
+ monitor_input_button->set_text (_("I"));
+ monitor_disk_button->set_text (_("D"));
}
void
@@ -651,6 +668,14 @@ MeterStrip::update_button_box ()
} else {
recbox.hide();
}
+ if (_session->config.get_show_monitor_on_meterbridge()) {
+ height += 18 + 18;
+ mon_in_box.show();
+ mon_disk_box.show();
+ } else {
+ mon_in_box.hide();
+ mon_disk_box.hide();
+ }
btnbox.set_size_request(16, height);
check_resize();
}
@@ -684,6 +709,9 @@ MeterStrip::parameter_changed (std::string const & p)
else if (p == "show-name-on-meterbridge") {
update_name_box();
}
+ else if (p == "show-monitor-on-meterbridge") {
+ update_button_box();
+ }
else if (p == "meterbridge-label-height") {
queue_resize();
}
diff --git a/gtk2_ardour/meter_strip.h b/gtk2_ardour/meter_strip.h
index e817f7d5c6..e1bae71326 100644
--- a/gtk2_ardour/meter_strip.h
+++ b/gtk2_ardour/meter_strip.h
@@ -108,6 +108,8 @@ class MeterStrip : public Gtk::VBox, public RouteUI
Gtk::HBox mutebox;
Gtk::HBox solobox;
Gtk::HBox recbox;
+ Gtk::HBox mon_in_box;
+ Gtk::HBox mon_disk_box;
Gtk::Alignment meter_align;
Gtk::Alignment peak_align;
diff --git a/gtk2_ardour/session_option_editor.cc b/gtk2_ardour/session_option_editor.cc
index 60f575fb16..f243973013 100644
--- a/gtk2_ardour/session_option_editor.cc
+++ b/gtk2_ardour/session_option_editor.cc
@@ -318,6 +318,13 @@ SessionOptionEditor::SessionOptionEditor (Session* s)
sigc::mem_fun (*_session_config, &SessionConfiguration::set_show_solo_on_meterbridge)
));
+ add_option (_("Meterbridge"), new BoolOption (
+ "show-monitor-on-meterbridge",
+ _("Monitor Buttons"),
+ sigc::mem_fun (*_session_config, &SessionConfiguration::get_show_monitor_on_meterbridge),
+ sigc::mem_fun (*_session_config, &SessionConfiguration::set_show_monitor_on_meterbridge)
+ ));
+
add_option (_("Meterbridge"), new OptionEditorHeading (_("Name Labels")));
add_option (_("Meterbridge"), new BoolOption (
diff --git a/libs/ardour/ardour/session_configuration_vars.h b/libs/ardour/ardour/session_configuration_vars.h
index 5e93c01b79..6349692e77 100644
--- a/libs/ardour/ardour/session_configuration_vars.h
+++ b/libs/ardour/ardour/session_configuration_vars.h
@@ -63,5 +63,6 @@ CONFIG_VARIABLE (bool, show_midi_on_meterbridge, "show-midi-on-meterbridge", tru
CONFIG_VARIABLE (bool, show_rec_on_meterbridge, "show-rec-on-meterbridge", true)
CONFIG_VARIABLE (bool, show_mute_on_meterbridge, "show-mute-on-meterbridge", false)
CONFIG_VARIABLE (bool, show_solo_on_meterbridge, "show-solo-on-meterbridge", false)
+CONFIG_VARIABLE (bool, show_monitor_on_meterbridge, "show-monitor-on-meterbridge", false)
CONFIG_VARIABLE (bool, show_name_on_meterbridge, "show-name-on-meterbridge", true)
CONFIG_VARIABLE (uint32_t, meterbridge_label_height, "meterbridge-label-height", 0)