Added Midi Tracks View mode.
authorLen Ovens <len@ovenwerks.net>
Mon, 19 Oct 2015 01:13:16 +0000 (18:13 -0700)
committerLen Ovens <len@ovenwerks.net>
Mon, 19 Oct 2015 01:13:16 +0000 (18:13 -0700)
libs/surfaces/mackie/mackie_control_protocol.cc
libs/surfaces/mackie/mackie_control_protocol.h
libs/surfaces/mackie/mcp_buttons.cc
libs/surfaces/mackie/strip.h

index f0c4bb8f805992749b32900a121f42d31f9652dc..ed05dc3e606c8c002886a3e954faec3928b9f0ee 100644 (file)
@@ -46,6 +46,7 @@
 #include "ardour/debug.h"
 #include "ardour/location.h"
 #include "ardour/meter.h"
+#include "ardour/midi_track.h"
 #include "ardour/panner.h"
 #include "ardour/panner_shell.h"
 #include "ardour/route.h"
@@ -282,12 +283,18 @@ MackieControlProtocol::get_sorted_routes()
 
                switch (_view_mode) {
                case Mixer:
+                       sorted.push_back (*it);
+                       remote_ids.insert (route->remote_control_id());
                        break;
                case AudioTracks:
                        break;
                case Busses:
                        break;
                case MidiTracks:
+                       if (is_midi_track(*it)) {
+                               sorted.push_back (*it);
+                               remote_ids.insert (route->remote_control_id());
+                       }
                        break;
                case Plugins:
                        break;
@@ -295,8 +302,6 @@ MackieControlProtocol::get_sorted_routes()
                        break;
                }
 
-               sorted.push_back (*it);
-               remote_ids.insert (route->remote_control_id());
        }
 
        sort (sorted.begin(), sorted.end(), RouteByRemoteId());
@@ -1987,3 +1992,9 @@ MackieControlProtocol::connection_handler (boost::weak_ptr<ARDOUR::Port> wp1, st
                }
        }
 }
+
+bool
+MackieControlProtocol::is_midi_track (boost::shared_ptr<Route> r) const
+{
+       return boost::dynamic_pointer_cast<MidiTrack>(r) != 0;
+}
index 6e58f0794649348a0ef73ff11e4c1d30871ac575..e45d038d91ff75fefdef093d0a01286c41672b7b 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_midi_track (boost::shared_ptr<ARDOUR::Route>) const;
+
        void set_view_mode (ViewMode);
        void set_flip_mode (FlipMode);
        void set_pot_mode (PotMode);
index 0fc11d507e9d84dc272118fb52aacc81a4b3dc69..379dc6ef74d76bd29aede68d6a57824dbe12a2e1 100644 (file)
@@ -858,6 +858,7 @@ Mackie::LedState
 MackieControlProtocol::miditracks_release (Mackie::Button&)
 {
        set_view_mode (MidiTracks);
+       refresh_current_bank();
        return none;
 }
 Mackie::LedState
@@ -879,6 +880,7 @@ Mackie::LedState
 MackieControlProtocol::audiotracks_release (Mackie::Button&)
 {
        set_view_mode (AudioTracks);
+       refresh_current_bank();
        return none;
 }
 Mackie::LedState
@@ -900,6 +902,7 @@ Mackie::LedState
 MackieControlProtocol::aux_release (Mackie::Button&)
 {
        set_view_mode (Auxes);
+       refresh_current_bank();
        return none;
 }
 Mackie::LedState
@@ -911,6 +914,7 @@ Mackie::LedState
 MackieControlProtocol::busses_release (Mackie::Button&)
 {
        set_view_mode (Busses);
+       refresh_current_bank();
        return none;
 }
 Mackie::LedState
@@ -997,6 +1001,7 @@ Mackie::LedState
 MackieControlProtocol::view_press (Mackie::Button&)
 {
        set_view_mode (Mixer);
+       refresh_current_bank();
        return none;
 }
 Mackie::LedState
index 39d5bc340fe6208b06f594bdcedb430e46eb3599..d87633943571c36a4eec5062078186a8e84a49ae 100644 (file)
@@ -60,7 +60,7 @@ public:
        void set_route (boost::shared_ptr<ARDOUR::Route>, bool with_messages = true);
 
        // call all signal handlers manually
-       void notify_all();
+       void notify_all ();
 
        void handle_button (Button&, ButtonState bs);
        void handle_fader (Fader&, float position);
@@ -154,7 +154,7 @@ private:
 
        void reset_saved_values ();
 
-       bool is_midi_track() const;
+       bool is_midi_track () const;
 
        typedef std::map<Evoral::Parameter,Control*> ControlParameterMap;
        ControlParameterMap control_by_parameter;