remote_ids.insert (route->remote_control_id());
}
break;
- case MidiTracks:
+ case MidiTracks: // for now aux and buss are same
if (is_midi_track(*it)) {
sorted.push_back (*it);
remote_ids.insert (route->remote_control_id());
break;
case Plugins:
break;
- case Auxes:
+ case Auxes: // for now aux and buss are same
+ if (!is_track(*it)) {
+ sorted.push_back (*it);
+ remote_ids.insert (route->remote_control_id());
+ }
+ break;
+ case Selected: // For example: a group
+ if (selected(*it)) {
+ sorted.push_back (*it);
+ remote_ids.insert (route->remote_control_id());
+ }
break;
}
{
return boost::dynamic_pointer_cast<MidiTrack>(r) != 0;
}
+
+bool
+MackieControlProtocol::selected (boost::shared_ptr<Route> r) const
+{
+ const RouteNotificationList* rl = &_last_selected_routes;
+
+ for (ARDOUR::RouteNotificationList::const_iterator i = rl->begin(); i != rl->end(); ++i) {
+ boost::shared_ptr<ARDOUR::Route> rt = (*i).lock();
+ if (rt == r) {
+ return true;
+ }
+ }
+ return false;
+}
MidiTracks,
Busses,
Auxes,
+ Selected,
Plugins,
};
bool is_track (boost::shared_ptr<ARDOUR::Route>) const;
bool is_audio_track (boost::shared_ptr<ARDOUR::Route>) const;
bool is_midi_track (boost::shared_ptr<ARDOUR::Route>) const;
+ bool selected (boost::shared_ptr<ARDOUR::Route>) const;
void set_view_mode (ViewMode);
void set_flip_mode (FlipMode);
id = Button::Aux;
text = _("Auxes");
break;
+ case MackieControlProtocol::Selected:
+ show_two_char_display ("SE");
+ id = Button::User;
+ text = _("Selected Routes");
+ break;
default:
break;
}
view_mode_buttons.push_back (Button::AudioTracks);
view_mode_buttons.push_back (Button::MidiTracks);
view_mode_buttons.push_back (Button::Aux);
+ view_mode_buttons.push_back (Button::User);
if (id >= 0) {