- ChannelButtonSet* cbs = _channel_buttons[n];
- cbs->cut.set_active (_monitor->cut (n));
- cbs->dim.set_active (_monitor->dimmed (n));
- cbs->solo.set_active (_monitor->soloed (n));
- cbs->invert.set_active (_monitor->inverted (n));
+
+ char action_name[32];
+
+ snprintf (action_name, sizeof (action_name), "monitor-cut-%u", n+1);
+ act = ActionManager::get_action (X_("Monitor"), action_name);
+ if (act) {
+ Glib::RefPtr<ToggleAction> tact = Glib::RefPtr<ToggleAction>::cast_dynamic (act);
+ if (tact) {
+ tact->set_active (_monitor->cut (n));
+ }
+ }
+
+ snprintf (action_name, sizeof (action_name), "monitor-dim-%u", n+1);
+ act = ActionManager::get_action (X_("Monitor"), action_name);
+ if (act) {
+ Glib::RefPtr<ToggleAction> tact = Glib::RefPtr<ToggleAction>::cast_dynamic (act);
+ if (tact) {
+ tact->set_active (_monitor->dimmed (n));
+ }
+ }
+
+ snprintf (action_name, sizeof (action_name), "monitor-solo-%u", n+1);
+ act = ActionManager::get_action (X_("Monitor"), action_name);
+ if (act) {
+ Glib::RefPtr<ToggleAction> tact = Glib::RefPtr<ToggleAction>::cast_dynamic (act);
+ if (tact) {
+ tact->set_active (_monitor->soloed (n));
+ }
+ }
+
+ snprintf (action_name, sizeof (action_name), "monitor-invert-%u", n+1);
+ act = ActionManager::get_action (X_("Monitor"), action_name);
+ if (act) {
+ Glib::RefPtr<ToggleAction> tact = Glib::RefPtr<ToggleAction>::cast_dynamic (act);
+ if (tact) {
+ tact->set_active (_monitor->inverted (n));
+ }
+ }