Add Volume Ctrl position to processor-box context menu
This makes it easier to discover the option, compared to hiding it in the context menu of the slider itself.
This commit is contained in:
parent
b290191d75
commit
6224bd7e7a
|
@ -688,6 +688,7 @@
|
||||||
<menuitem action='disk-io-postfader'/>
|
<menuitem action='disk-io-postfader'/>
|
||||||
<menuitem action='disk-io-custom'/>
|
<menuitem action='disk-io-custom'/>
|
||||||
</menu>
|
</menu>
|
||||||
|
<menuitem action='custom-volume-pos'/>
|
||||||
<separator/>
|
<separator/>
|
||||||
<menuitem action='clear'/>
|
<menuitem action='clear'/>
|
||||||
<menuitem action='clear_pre'/>
|
<menuitem action='clear_pre'/>
|
||||||
|
|
|
@ -613,13 +613,12 @@ MixerStrip::set_route (boost::shared_ptr<Route> rt)
|
||||||
|
|
||||||
_loudess_analysis_button = manage (new ArdourButton (S_("Loudness|LAN")));
|
_loudess_analysis_button = manage (new ArdourButton (S_("Loudness|LAN")));
|
||||||
_loudess_analysis_button->signal_clicked.connect (mem_fun (*this, &MixerStrip::loudess_analysis_button_clicked));
|
_loudess_analysis_button->signal_clicked.connect (mem_fun (*this, &MixerStrip::loudess_analysis_button_clicked));
|
||||||
_loudess_analysis_button->signal_button_press_event().connect (mem_fun (*this, &MixerStrip::loudess_analysis_button_pressed), false);
|
_volume_controller->signal_button_press_event().connect (mem_fun (*this, &MixerStrip::volume_controller_button_pressed), false);
|
||||||
_volume_controller->signal_button_press_event().connect (mem_fun (*this, &MixerStrip::loudess_analysis_button_pressed), false);
|
|
||||||
|
|
||||||
set_tooltip (*_volume_controller, _("Master output volume"));
|
set_tooltip (*_volume_controller, _("Master output volume"));
|
||||||
set_tooltip (_loudess_analysis_button, _("Measure loudness of the session, normalize master output volume"));
|
set_tooltip (_loudess_analysis_button, _("Measure loudness of the session, normalize master output volume"));
|
||||||
|
|
||||||
master_volume_table.attach (*_loudess_analysis_button, 0, 1, 0, 1);
|
master_volume_table.attach (*_loudess_analysis_button, 0, 2, 0, 1);
|
||||||
master_volume_table.attach (*_volume_controller, 0, 2, 1, 2);
|
master_volume_table.attach (*_volume_controller, 0, 2, 1, 2);
|
||||||
|
|
||||||
_loudess_analysis_button->show ();
|
_loudess_analysis_button->show ();
|
||||||
|
@ -1997,7 +1996,7 @@ MixerStrip::loudess_analysis_button_clicked ()
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
MixerStrip::loudess_analysis_button_pressed (GdkEventButton* ev)
|
MixerStrip::volume_controller_button_pressed (GdkEventButton* ev)
|
||||||
{
|
{
|
||||||
using namespace Menu_Helpers;
|
using namespace Menu_Helpers;
|
||||||
if (Keyboard::is_context_menu_event (ev)) {
|
if (Keyboard::is_context_menu_event (ev)) {
|
||||||
|
@ -2006,7 +2005,7 @@ MixerStrip::loudess_analysis_button_pressed (GdkEventButton* ev)
|
||||||
_master_volume_menu->set_name ("ArdourContextMenu");
|
_master_volume_menu->set_name ("ArdourContextMenu");
|
||||||
MenuList& items = _master_volume_menu->items();
|
MenuList& items = _master_volume_menu->items();
|
||||||
items.clear ();
|
items.clear ();
|
||||||
items.push_back (CheckMenuElem (_("Custom Loudness Gain Processor Position")));
|
items.push_back (CheckMenuElem (_("Custom Volume Ctrl. Pos.")));
|
||||||
Gtk::CheckMenuItem* cmi = static_cast<Gtk::CheckMenuItem*> (&items.back());
|
Gtk::CheckMenuItem* cmi = static_cast<Gtk::CheckMenuItem*> (&items.back());
|
||||||
cmi->set_active (!_route->volume_applies_to_output ());
|
cmi->set_active (!_route->volume_applies_to_output ());
|
||||||
cmi->signal_toggled().connect (sigc::bind (sigc::mem_fun (_route.get(), &Route::set_volume_applies_to_output), !_route->volume_applies_to_output ()));
|
cmi->signal_toggled().connect (sigc::bind (sigc::mem_fun (_route.get(), &Route::set_volume_applies_to_output), !_route->volume_applies_to_output ()));
|
||||||
|
|
|
@ -239,7 +239,7 @@ private:
|
||||||
void setup_comment_button ();
|
void setup_comment_button ();
|
||||||
|
|
||||||
void loudess_analysis_button_clicked ();
|
void loudess_analysis_button_clicked ();
|
||||||
bool loudess_analysis_button_pressed (GdkEventButton*);
|
bool volume_controller_button_pressed (GdkEventButton*);
|
||||||
|
|
||||||
ArdourWidgets::ArdourButton group_button;
|
ArdourWidgets::ArdourButton group_button;
|
||||||
RouteGroupMenu* group_menu;
|
RouteGroupMenu* group_menu;
|
||||||
|
|
|
@ -116,7 +116,7 @@ using namespace Gtkmm2ext;
|
||||||
using namespace ArdourWidgets;
|
using namespace ArdourWidgets;
|
||||||
|
|
||||||
ProcessorBox* ProcessorBox::_current_processor_box = 0;
|
ProcessorBox* ProcessorBox::_current_processor_box = 0;
|
||||||
bool ProcessorBox::_ignore_disk_io_change = false;
|
bool ProcessorBox::_ignore_rb_change = false;
|
||||||
|
|
||||||
RefPtr<Action> ProcessorBox::paste_action;
|
RefPtr<Action> ProcessorBox::paste_action;
|
||||||
RefPtr<Action> ProcessorBox::cut_action;
|
RefPtr<Action> ProcessorBox::cut_action;
|
||||||
|
@ -2345,7 +2345,7 @@ ProcessorBox::show_processor_menu (int arg)
|
||||||
manage_pins_action->set_sensitive (pi != 0);
|
manage_pins_action->set_sensitive (pi != 0);
|
||||||
if (boost::dynamic_pointer_cast<Track>(_route)) {
|
if (boost::dynamic_pointer_cast<Track>(_route)) {
|
||||||
disk_io_action->set_sensitive (true);
|
disk_io_action->set_sensitive (true);
|
||||||
PBD::Unwinder<bool> uw (_ignore_disk_io_change, true);
|
PBD::Unwinder<bool> uw (_ignore_rb_change, true);
|
||||||
ActionManager::get_toggle_action (X_("ProcessorMenu"), "disk-io-prefader")->set_active (_route->disk_io_point () == DiskIOPreFader);
|
ActionManager::get_toggle_action (X_("ProcessorMenu"), "disk-io-prefader")->set_active (_route->disk_io_point () == DiskIOPreFader);
|
||||||
ActionManager::get_toggle_action (X_("ProcessorMenu"), "disk-io-postfader")->set_active (_route->disk_io_point () == DiskIOPostFader);
|
ActionManager::get_toggle_action (X_("ProcessorMenu"), "disk-io-postfader")->set_active (_route->disk_io_point () == DiskIOPostFader);
|
||||||
ActionManager::get_toggle_action (X_("ProcessorMenu"), "disk-io-custom")->set_active (_route->disk_io_point () == DiskIOCustom);
|
ActionManager::get_toggle_action (X_("ProcessorMenu"), "disk-io-custom")->set_active (_route->disk_io_point () == DiskIOCustom);
|
||||||
|
@ -2353,6 +2353,15 @@ ProcessorBox::show_processor_menu (int arg)
|
||||||
disk_io_action->set_sensitive (false);
|
disk_io_action->set_sensitive (false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RefPtr<ToggleAction> volume_pos_action = ActionManager::get_toggle_action (X_("ProcessorMenu"), "custom-volume-pos");
|
||||||
|
if (_route->is_master () && Config->get_use_master_volume ()) {
|
||||||
|
PBD::Unwinder<bool> uw (_ignore_rb_change, true);
|
||||||
|
volume_pos_action->set_sensitive (true);
|
||||||
|
volume_pos_action->set_active (!_route->volume_applies_to_output ());
|
||||||
|
} else {
|
||||||
|
volume_pos_action->set_sensitive (false);
|
||||||
|
}
|
||||||
|
|
||||||
/* allow editing with an Ardour-generated UI for plugin inserts with editors */
|
/* allow editing with an Ardour-generated UI for plugin inserts with editors */
|
||||||
edit_action->set_sensitive (pi && pi->plugin()->has_editor ());
|
edit_action->set_sensitive (pi && pi->plugin()->has_editor ());
|
||||||
|
|
||||||
|
@ -3641,6 +3650,12 @@ ProcessorBox::set_disk_io_position (DiskIOPoint diop)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ProcessorBox::toggle_custom_loudness_pos ()
|
||||||
|
{
|
||||||
|
_route->set_volume_applies_to_output (!_route->volume_applies_to_output ());
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ProcessorBox::clear_processors ()
|
ProcessorBox::clear_processors ()
|
||||||
{
|
{
|
||||||
|
@ -3932,6 +3947,9 @@ ProcessorBox::register_actions ()
|
||||||
ActionManager::register_toggle_action (processor_box_actions, X_("disk-io-postfader"), _("Post-Fader"), sigc::bind (sigc::ptr_fun (ProcessorBox::rb_set_disk_io_position), DiskIOPostFader));
|
ActionManager::register_toggle_action (processor_box_actions, X_("disk-io-postfader"), _("Post-Fader"), sigc::bind (sigc::ptr_fun (ProcessorBox::rb_set_disk_io_position), DiskIOPostFader));
|
||||||
ActionManager::register_toggle_action (processor_box_actions, X_("disk-io-custom"), _("Custom"), sigc::bind (sigc::ptr_fun (ProcessorBox::rb_set_disk_io_position), DiskIOCustom));
|
ActionManager::register_toggle_action (processor_box_actions, X_("disk-io-custom"), _("Custom"), sigc::bind (sigc::ptr_fun (ProcessorBox::rb_set_disk_io_position), DiskIOCustom));
|
||||||
|
|
||||||
|
/* Loudness Volume Control */
|
||||||
|
ActionManager::register_toggle_action (processor_box_actions, X_("custom-volume-pos"), _("Custom Volume Ctrl. Pos."), sigc::ptr_fun (ProcessorBox::rb_toggle_custom_loudness_pos));
|
||||||
|
|
||||||
/* show editors */
|
/* show editors */
|
||||||
edit_action = ActionManager::register_action (
|
edit_action = ActionManager::register_action (
|
||||||
processor_box_actions, X_("edit"), _("Edit..."),
|
processor_box_actions, X_("edit"), _("Edit..."),
|
||||||
|
@ -3966,16 +3984,22 @@ ProcessorBox::rb_ab_plugins ()
|
||||||
void
|
void
|
||||||
ProcessorBox::rb_set_disk_io_position (DiskIOPoint diop)
|
ProcessorBox::rb_set_disk_io_position (DiskIOPoint diop)
|
||||||
{
|
{
|
||||||
if (_current_processor_box == 0) {
|
if (_current_processor_box == 0 || _ignore_rb_change) {
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (_ignore_disk_io_change) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
_current_processor_box->set_disk_io_position (diop);
|
_current_processor_box->set_disk_io_position (diop);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ProcessorBox::rb_toggle_custom_loudness_pos ()
|
||||||
|
{
|
||||||
|
if (_current_processor_box == 0 || _ignore_rb_change) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
_current_processor_box->toggle_custom_loudness_pos ();
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ProcessorBox::rb_manage_pins ()
|
ProcessorBox::rb_manage_pins ()
|
||||||
{
|
{
|
||||||
|
|
|
@ -564,6 +564,7 @@ private:
|
||||||
void get_selected_processors (ProcSelection&) const;
|
void get_selected_processors (ProcSelection&) const;
|
||||||
|
|
||||||
void set_disk_io_position (ARDOUR::DiskIOPoint);
|
void set_disk_io_position (ARDOUR::DiskIOPoint);
|
||||||
|
void toggle_custom_loudness_pos ();
|
||||||
|
|
||||||
bool can_cut() const;
|
bool can_cut() const;
|
||||||
bool stub_processor_selected() const;
|
bool stub_processor_selected() const;
|
||||||
|
@ -611,6 +612,7 @@ private:
|
||||||
static void rb_ab_plugins ();
|
static void rb_ab_plugins ();
|
||||||
static void rb_manage_pins ();
|
static void rb_manage_pins ();
|
||||||
static void rb_set_disk_io_position (ARDOUR::DiskIOPoint);
|
static void rb_set_disk_io_position (ARDOUR::DiskIOPoint);
|
||||||
|
static void rb_toggle_custom_loudness_pos ();
|
||||||
static void rb_edit ();
|
static void rb_edit ();
|
||||||
static void rb_edit_generic ();
|
static void rb_edit_generic ();
|
||||||
|
|
||||||
|
@ -634,7 +636,7 @@ private:
|
||||||
XMLNode* entry_gui_object_state (ProcessorEntry *);
|
XMLNode* entry_gui_object_state (ProcessorEntry *);
|
||||||
PBD::ScopedConnection amp_config_connection;
|
PBD::ScopedConnection amp_config_connection;
|
||||||
|
|
||||||
static bool _ignore_disk_io_change;
|
static bool _ignore_rb_change;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* __ardour_gtk_processor_box__ */
|
#endif /* __ardour_gtk_processor_box__ */
|
||||||
|
|
Loading…
Reference in New Issue
Block a user