Add toolbar widgets for monitor mute and dim

Another one from Andy's wish-list
http://mixbus.harrisonconsoles.com/forum/thread-8935-page-2.html
This commit is contained in:
Robin Gareus 2020-09-17 22:37:12 +02:00
parent d5496de98a
commit 5dc3f2a320
No known key found for this signature in database
GPG key ID: A090BCE02CF57F04
5 changed files with 88 additions and 11 deletions

View file

@ -504,11 +504,16 @@ private:
ArdourWidgets::ArdourVSpacer recpunch_spacer;
ArdourWidgets::ArdourVSpacer monitoring_spacer;
ArdourWidgets::ArdourVSpacer latency_spacer;
ArdourWidgets::ArdourVSpacer monitor_spacer;
ArdourWidgets::ArdourButton monitor_in_button;
ArdourWidgets::ArdourButton monitor_disk_button;
ArdourWidgets::ArdourButton auto_input_button;
ArdourWidgets::ArdourButton monitor_dim_button;
ArdourWidgets::ArdourButton monitor_mono_button;
ArdourWidgets::ArdourButton monitor_mute_button;
Gtk::Label punch_label;
Gtk::Label layered_label;

View file

@ -250,6 +250,19 @@ ARDOUR_UI::repack_transport_hbox ()
io_latency_value.hide ();
latency_spacer.hide ();
}
bool show_mnfo = UIConfiguration::instance().get_show_toolbar_monitor_info ();
if (show_mnfo) {
monitor_dim_button.show ();
monitor_mono_button.show ();
monitor_mute_button.show ();
monitor_spacer.show ();
} else {
monitor_dim_button.hide ();
monitor_mono_button.hide ();
monitor_mute_button.hide ();
monitor_spacer.hide ();
}
}
void
@ -319,6 +332,13 @@ ARDOUR_UI::setup_transport ()
act = ActionManager::get_action ("Transport", "SessionMonitorDisk");
monitor_disk_button.set_related_action (act);
act = ActionManager::get_action (X_("Monitor Section"), X_("monitor-dim-all"));
monitor_dim_button.set_related_action (act);
act = ActionManager::get_action (X_("Monitor Section"), X_("monitor-mono"));
monitor_mono_button.set_related_action (act);
act = ActionManager::get_action (X_("Monitor Section"), X_("monitor-cut-all"));
monitor_mute_button.set_related_action (act);
act = ActionManager::get_action ("Main", "ToggleLatencyCompensation");
latency_disable_button.set_related_action (act);
@ -375,6 +395,18 @@ ARDOUR_UI::setup_transport ()
latency_disable_button.set_name ("latency button");
monitor_dim_button.set_name ("monitor section dim");
monitor_mono_button.set_name ("monitor section mono");
monitor_mute_button.set_name ("mute button");
monitor_dim_button.set_layout_font (UIConfiguration::instance().get_SmallerFont());
monitor_mono_button.set_layout_font (UIConfiguration::instance().get_SmallerFont());
monitor_mute_button.set_layout_font (UIConfiguration::instance().get_SmallerFont());
monitor_dim_button.set_elements (ArdourButton::Element(ArdourButton::Body|ArdourButton::Text));
monitor_mono_button.set_elements (ArdourButton::Element(ArdourButton::Body|ArdourButton::Text));
monitor_mute_button.set_elements (ArdourButton::Element(ArdourButton::Body|ArdourButton::Text));
sync_button.set_name ("transport active option button");
/* and widget text */
@ -391,6 +423,10 @@ ARDOUR_UI::setup_transport ()
latency_disable_button.set_text (_("Disable PDC"));
io_latency_label.set_text (_("I/O Latency:"));
monitor_dim_button.set_text (_("Dim All"));
monitor_mono_button.set_text (_("Mono"));
monitor_mute_button.set_text (_("Mute All"));
punch_label.set_text (_("Punch:"));
layered_label.set_text (_("Rec:"));
@ -414,15 +450,25 @@ ARDOUR_UI::setup_transport ()
Gtkmm2ext::UI::instance()->set_tip (monitor_in_button, _("Force all tracks to monitor Input, unless they are explicitly set to monitor Disk"));
Gtkmm2ext::UI::instance()->set_tip (monitor_disk_button, _("Force all tracks to monitor Disk playback, unless they are explicitly set to Input"));
/* monitor section */
Gtkmm2ext::UI::instance()->set_tip (monitor_dim_button, _("Monitor section dim output"));
Gtkmm2ext::UI::instance()->set_tip (monitor_mono_button, _("Monitor section mono output"));
Gtkmm2ext::UI::instance()->set_tip (monitor_mute_button, _("Monitor section mute output"));
/* transport control size-group */
Glib::RefPtr<SizeGroup> punch_button_size_group = SizeGroup::create (Gtk::SIZE_GROUP_HORIZONTAL);
punch_button_size_group->add_widget (punch_in_button);
punch_button_size_group->add_widget (punch_out_button);
Glib::RefPtr<SizeGroup> monitoring_button_size_group = SizeGroup::create (Gtk::SIZE_GROUP_HORIZONTAL);
monitoring_button_size_group->add_widget (monitor_in_button);
monitoring_button_size_group->add_widget (monitor_disk_button);
Glib::RefPtr<SizeGroup> monitor_button_size_group = SizeGroup::create (Gtk::SIZE_GROUP_HORIZONTAL);
monitor_button_size_group->add_widget (monitor_in_button);
monitor_button_size_group->add_widget (monitor_disk_button);
monitor_button_size_group->add_widget (monitor_dim_button);
monitor_button_size_group->add_widget (monitor_mono_button);
monitor_button_size_group->add_widget (monitor_mute_button);
/* and now the layout... */
@ -455,6 +501,15 @@ ARDOUR_UI::setup_transport ()
alert_box->pack_start (auditioning_alert_button, true, true);
alert_box->pack_start (feedback_alert_button, true, true);
/* monitor section sub-group */
VBox* monitor_box = manage (new VBox);
monitor_box->set_homogeneous (true);
monitor_box->set_spacing (1);
monitor_box->set_border_width (0);
monitor_box->pack_start (monitor_mono_button, true, true);
monitor_box->pack_start (monitor_dim_button, true, true);
monitor_box->pack_start (monitor_mute_button, true, true);
/* clock button size groups */
Glib::RefPtr<SizeGroup> button_height_size_group = SizeGroup::create (Gtk::SIZE_GROUP_VERTICAL);
button_height_size_group->add_widget (follow_edits_button);
@ -585,6 +640,12 @@ ARDOUR_UI::setup_transport ()
transport_table.attach (*alert_box, TCOL, 0, 2, SHRINK, EXPAND|FILL, hpadding, 0);
++col;
transport_table.attach (monitor_spacer, TCOL, 0, 2 , SHRINK, EXPAND|FILL, 3, 0);
++col;
transport_table.attach (*monitor_box, TCOL, 0, 2 , SHRINK, EXPAND|FILL, 3, 0);
++col;
/* editor-meter, mini-timeline and selection clock are options in the transport_hbox */
transport_hbox.set_spacing (3);
transport_table.attach (transport_hbox, TCOL, 0, 2, EXPAND|FILL, EXPAND|FILL, hpadding, 0);

View file

@ -440,6 +440,8 @@ ARDOUR_UI::parameter_changed (std::string p)
repack_transport_hbox ();
} else if (p == "show-toolbar-latency") {
repack_transport_hbox ();
} else if (p == "show-toolbar-monitor-info") {
repack_transport_hbox ();
} else if (p == "show-editor-meter") {
repack_transport_hbox ();
} else if (p == "show-secondary-clock") {

View file

@ -4122,7 +4122,7 @@ RCOptionEditor::RCOptionEditor ()
add_option (_("Appearance/Toolbar"),
new BoolOption (
"show-toolbar-monitoring",
_("Display Monitor Options"),
_("Display Monitoring Options"),
sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::get_show_toolbar_monitoring),
sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::set_show_toolbar_monitoring)
));
@ -4135,14 +4135,6 @@ RCOptionEditor::RCOptionEditor ()
sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::set_show_toolbar_latency)
));
add_option (_("Appearance/Toolbar"),
new BoolOption (
"show-toolbar-selclock",
_("Display Selection Clock"),
sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::get_show_toolbar_selclock),
sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::set_show_toolbar_selclock)
));
if (!ARDOUR::Profile->get_small_screen()) {
add_option (_("Appearance/Toolbar"),
new BoolOption (
@ -4153,6 +4145,22 @@ RCOptionEditor::RCOptionEditor ()
));
}
add_option (_("Appearance/Toolbar"),
new BoolOption (
"show-toolbar-selclock",
_("Display Selection Clock"),
sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::get_show_toolbar_selclock),
sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::set_show_toolbar_selclock)
));
add_option (_("Appearance/Toolbar"),
new BoolOption (
"show-toolbar-monitor-info",
_("Display Monitor Section Info"),
sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::get_show_toolbar_monitor_info),
sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::set_show_toolbar_monitor_info)
));
add_option (_("Appearance/Toolbar"),
new BoolOption (
"show-mini-timeline",

View file

@ -90,6 +90,7 @@ UI_CONFIG_VARIABLE (bool, show_toolbar_recpunch, "show-toolbar-recpunch", true)
UI_CONFIG_VARIABLE (bool, show_toolbar_monitoring, "show-toolbar-monitoring", false)
UI_CONFIG_VARIABLE (bool, show_toolbar_selclock, "show-toolbar-selclock", false)
UI_CONFIG_VARIABLE (bool, show_toolbar_latency, "show-toolbar-latency", false)
UI_CONFIG_VARIABLE (bool, show_toolbar_monitor_info, "show-toolbar-monitor-info", false)
UI_CONFIG_VARIABLE (bool, show_mini_timeline, "show-mini-timeline", true)
UI_CONFIG_VARIABLE (bool, show_secondary_clock, "show-secondary-clock", true)
UI_CONFIG_VARIABLE (double, waveform_clip_level, "waveform-clip-level", -0.0933967) /* units of dB */