Added "Selected" view mode to Mackie Control.

This commit is contained in:
Len Ovens
2015-10-20 18:54:56 -07:00
parent f84798ff75
commit 81f6ad0d0c
4 changed files with 36 additions and 2 deletions

View File

@@ -299,7 +299,7 @@ MackieControlProtocol::get_sorted_routes()
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());
@@ -307,7 +307,17 @@ MackieControlProtocol::get_sorted_routes()
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;
}
@@ -2019,3 +2029,17 @@ MackieControlProtocol::is_midi_track (boost::shared_ptr<Route> r) const
{
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;
}

View File

@@ -107,6 +107,7 @@ class MackieControlProtocol
MidiTracks,
Busses,
Auxes,
Selected,
Plugins,
};
@@ -149,6 +150,7 @@ class MackieControlProtocol
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);

View File

@@ -935,6 +935,8 @@ MackieControlProtocol::user_press (Mackie::Button&)
Mackie::LedState
MackieControlProtocol::user_release (Mackie::Button&)
{
set_view_mode (Selected);
refresh_current_bank();
return none;
}
Mackie::LedState

View File

@@ -1062,6 +1062,11 @@ Surface::update_view_mode_display ()
id = Button::Aux;
text = _("Auxes");
break;
case MackieControlProtocol::Selected:
show_two_char_display ("SE");
id = Button::User;
text = _("Selected Routes");
break;
default:
break;
}
@@ -1073,6 +1078,7 @@ Surface::update_view_mode_display ()
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) {