- myactions.register_radio_action (solo_actions, solo_group, "solo-use-in-place", _("In-place solo"),
- sigc::mem_fun (*this, &MonitorSection::solo_use_in_place));
- myactions.register_radio_action (solo_actions, solo_group, "solo-use-afl", _("After Fade Listen (AFL) solo"),
- sigc::mem_fun (*this, &MonitorSection::solo_use_afl));
- myactions.register_radio_action (solo_actions, solo_group, "solo-use-pfl", _("Pre Fade Listen (PFL) solo"),
- sigc::mem_fun (*this, &MonitorSection::solo_use_pfl));
-
- myactions.register_toggle_action (monitor_actions, "toggle-monitor-processor-box", _("Toggle Monitor Section Processor Box"),
- sigc::mem_fun(*this, &MonitorSection::update_processor_box));
-}
-
-void
-MonitorSection::connect_actions ()
-{
- Glib::RefPtr<Action> act;
- Glib::RefPtr<ToggleAction> tact;
-
-#define MON_TOG(NAME, FUNC) \
- act = ActionManager::get_action (X_("Monitor"), NAME); \
- tact = Glib::RefPtr<ToggleAction>::cast_dynamic (act); \
- assert (tact); \
- tact->signal_toggled().connect (sigc::mem_fun (*this, &MonitorSection::FUNC)); \
-
- MON_TOG("monitor-mono", mono);
- MON_TOG("monitor-cut-all", cut_all);
- MON_TOG("monitor-dim-all", dim_all);
-
- MON_TOG("toggle-exclusive-solo", toggle_exclusive_solo);
- tact->set_active (Config->get_exclusive_solo());
-
- MON_TOG("toggle-mute-overrides-solo", toggle_mute_overrides_solo);
- tact->set_active (Config->get_solo_mute_override());
-#undef MON_TOG
-
-#define MON_BIND(NAME, FUNC, ARG) \
- act = ActionManager::get_action (X_("Monitor"), NAME); \
- tact = Glib::RefPtr<ToggleAction>::cast_dynamic (act); \
- assert (tact); \
- tact->signal_toggled().connect (sigc::bind (sigc::mem_fun (*this, &MonitorSection::FUNC), ARG));
-
- for (uint32_t chn = 0; chn < 16; ++chn) {
- std::string action_name = string_compose (X_("monitor-cut-%1"), chn);
- MON_BIND(action_name.c_str(), cut_channel, chn);
- action_name = string_compose (X_("monitor-dim-%1"), chn);
- MON_BIND(action_name.c_str(), dim_channel, chn);
- action_name = string_compose (X_("monitor-solo-%1"), chn);
- MON_BIND(action_name.c_str(), solo_channel, chn);
- action_name = string_compose (X_("monitor-invert-%1"), chn);
- MON_BIND(action_name.c_str(), invert_channel, chn);
- }
-#undef MON_BIND
+ ActionManager::register_radio_action (solo_actions, solo_group, "solo-use-in-place", _("In-place solo"),
+ sigc::bind (sigc::ptr_fun (MonitorSection::action_proxy0), SoloUseInPlace));
+ ActionManager::register_radio_action (solo_actions, solo_group, "solo-use-afl", _("After Fade Listen (AFL) solo"),
+ sigc::bind (sigc::ptr_fun (MonitorSection::action_proxy0), SoloUseAFL));
+ ActionManager::register_radio_action (solo_actions, solo_group, "solo-use-pfl", _("Pre Fade Listen (PFL) solo"),
+ sigc::bind (sigc::ptr_fun (MonitorSection::action_proxy0), SoloUsePFL));