Add Audio Tracks and Busses too.
authorLen Ovens <len@ovenwerks.net>
Mon, 19 Oct 2015 02:55:56 +0000 (19:55 -0700)
committerLen Ovens <len@ovenwerks.net>
Mon, 19 Oct 2015 02:55:56 +0000 (19:55 -0700)
libs/surfaces/mackie/mackie_control_protocol.cc
libs/surfaces/mackie/mackie_control_protocol.h

index ed05dc3e606c8c002886a3e954faec3928b9f0ee..581d68b89e411b521070e5a9b3bc9fa19a6d9748 100644 (file)
@@ -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<ARDOUR::Port> wp1, st
        }
 }
 
+bool
+MackieControlProtocol::is_track (boost::shared_ptr<Route> r) const
+{
+       return boost::dynamic_pointer_cast<Track>(r) != 0;
+}
+
+bool
+MackieControlProtocol::is_audio_track (boost::shared_ptr<Route> r) const
+{
+       return boost::dynamic_pointer_cast<AudioTrack>(r) != 0;
+}
+
 bool
 MackieControlProtocol::is_midi_track (boost::shared_ptr<Route> r) const
 {
index e45d038d91ff75fefdef093d0a01286c41672b7b..abdd96bf9077fa9d0345189a735175a0cf9fec67 100644 (file)
@@ -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<ARDOUR::Route>) const;
+       bool is_audio_track (boost::shared_ptr<ARDOUR::Route>) const;
        bool is_midi_track (boost::shared_ptr<ARDOUR::Route>) const;
 
        void set_view_mode (ViewMode);