diff --git a/libs/surfaces/mackie/mackie_control_protocol.cc b/libs/surfaces/mackie/mackie_control_protocol.cc index ed05dc3e60..581d68b89e 100644 --- a/libs/surfaces/mackie/mackie_control_protocol.cc +++ b/libs/surfaces/mackie/mackie_control_protocol.cc @@ -40,6 +40,7 @@ #include "pbd/memento_command.h" #include "pbd/convert.h" +#include "ardour/audio_track.h" #include "ardour/automation_control.h" #include "ardour/async_midi_port.h" #include "ardour/dB.h" @@ -287,8 +288,16 @@ MackieControlProtocol::get_sorted_routes() remote_ids.insert (route->remote_control_id()); break; case AudioTracks: + if (is_audio_track(*it)) { + sorted.push_back (*it); + remote_ids.insert (route->remote_control_id()); + } break; case Busses: + if (!is_track(*it)) { + sorted.push_back (*it); + remote_ids.insert (route->remote_control_id()); + } break; case MidiTracks: if (is_midi_track(*it)) { @@ -1993,6 +2002,18 @@ MackieControlProtocol::connection_handler (boost::weak_ptr wp1, st } } +bool +MackieControlProtocol::is_track (boost::shared_ptr r) const +{ + return boost::dynamic_pointer_cast(r) != 0; +} + +bool +MackieControlProtocol::is_audio_track (boost::shared_ptr r) const +{ + return boost::dynamic_pointer_cast(r) != 0; +} + bool MackieControlProtocol::is_midi_track (boost::shared_ptr r) const { diff --git a/libs/surfaces/mackie/mackie_control_protocol.h b/libs/surfaces/mackie/mackie_control_protocol.h index e45d038d91..abdd96bf90 100644 --- a/libs/surfaces/mackie/mackie_control_protocol.h +++ b/libs/surfaces/mackie/mackie_control_protocol.h @@ -146,6 +146,8 @@ class MackieControlProtocol bool zoom_mode () const { return modifier_state() & MODIFIER_ZOOM; } bool metering_active () const { return _metering_active; } + bool is_track (boost::shared_ptr) const; + bool is_audio_track (boost::shared_ptr) const; bool is_midi_track (boost::shared_ptr) const; void set_view_mode (ViewMode);