summaryrefslogtreecommitdiff
path: root/libs/surfaces
diff options
context:
space:
mode:
authorLen Ovens <len@ovenwerks.net>2015-10-18 18:13:16 -0700
committerLen Ovens <len@ovenwerks.net>2015-10-18 18:13:16 -0700
commit0185c9f25ab835612f4101fc3fddf97760c10491 (patch)
tree9c3e35baeb0018bac5d72e2c1b49c059c4d81b1d /libs/surfaces
parentbd6b4025dec1c2873e10196c829d1cbc7784d5bb (diff)
Added Midi Tracks View mode.
Diffstat (limited to 'libs/surfaces')
-rw-r--r--libs/surfaces/mackie/mackie_control_protocol.cc15
-rw-r--r--libs/surfaces/mackie/mackie_control_protocol.h2
-rw-r--r--libs/surfaces/mackie/mcp_buttons.cc5
-rw-r--r--libs/surfaces/mackie/strip.h4
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;