diff options
author | Len Ovens <len@ovenwerks.net> | 2015-10-18 18:13:16 -0700 |
---|---|---|
committer | Len Ovens <len@ovenwerks.net> | 2015-10-18 18:13:16 -0700 |
commit | 0185c9f25ab835612f4101fc3fddf97760c10491 (patch) | |
tree | 9c3e35baeb0018bac5d72e2c1b49c059c4d81b1d /libs/surfaces | |
parent | bd6b4025dec1c2873e10196c829d1cbc7784d5bb (diff) |
Added Midi Tracks View mode.
Diffstat (limited to 'libs/surfaces')
-rw-r--r-- | libs/surfaces/mackie/mackie_control_protocol.cc | 15 | ||||
-rw-r--r-- | libs/surfaces/mackie/mackie_control_protocol.h | 2 | ||||
-rw-r--r-- | libs/surfaces/mackie/mcp_buttons.cc | 5 | ||||
-rw-r--r-- | libs/surfaces/mackie/strip.h | 4 |
4 files changed, 22 insertions, 4 deletions
diff --git a/libs/surfaces/mackie/mackie_control_protocol.cc b/libs/surfaces/mackie/mackie_control_protocol.cc index f0c4bb8f80..ed05dc3e60 100644 --- a/libs/surfaces/mackie/mackie_control_protocol.cc +++ b/libs/surfaces/mackie/mackie_control_protocol.cc @@ -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; +} diff --git a/libs/surfaces/mackie/mackie_control_protocol.h b/libs/surfaces/mackie/mackie_control_protocol.h index 6e58f07946..e45d038d91 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_midi_track (boost::shared_ptr<ARDOUR::Route>) const; + void set_view_mode (ViewMode); void set_flip_mode (FlipMode); void set_pot_mode (PotMode); diff --git a/libs/surfaces/mackie/mcp_buttons.cc b/libs/surfaces/mackie/mcp_buttons.cc index 0fc11d507e..379dc6ef74 100644 --- a/libs/surfaces/mackie/mcp_buttons.cc +++ b/libs/surfaces/mackie/mcp_buttons.cc @@ -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 diff --git a/libs/surfaces/mackie/strip.h b/libs/surfaces/mackie/strip.h index 39d5bc340f..d876339435 100644 --- a/libs/surfaces/mackie/strip.h +++ b/libs/surfaces/mackie/strip.h @@ -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; |