summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libs/surfaces/mackie/mackie_control_protocol.cc6
-rw-r--r--libs/surfaces/mackie/mackie_control_protocol.h6
-rw-r--r--libs/surfaces/mackie/mcp_buttons.cc8
-rw-r--r--libs/surfaces/mackie/strip.cc12
4 files changed, 18 insertions, 14 deletions
diff --git a/libs/surfaces/mackie/mackie_control_protocol.cc b/libs/surfaces/mackie/mackie_control_protocol.cc
index cfa6524f70..95c6aa8ca0 100644
--- a/libs/surfaces/mackie/mackie_control_protocol.cc
+++ b/libs/surfaces/mackie/mackie_control_protocol.cc
@@ -101,7 +101,7 @@ MackieControlProtocol::MackieControlProtocol (Session& session)
, _gui (0)
, _zoom_mode (false)
, _scrub_mode (false)
- , _flip_mode (false)
+ , _flip_mode (Normal)
, _view_mode (Mixer)
, _current_selected_track (-1)
, _modifier_state (0)
@@ -1271,11 +1271,11 @@ MackieControlProtocol::set_view_mode (ViewMode m)
}
void
-MackieControlProtocol::set_flip_mode (bool yn)
+MackieControlProtocol::set_flip_mode (FlipMode fm)
{
Glib::Threads::Mutex::Lock lm (surfaces_lock);
- _flip_mode = yn;
+ _flip_mode = fm;
for (Surfaces::iterator s = surfaces.begin(); s != surfaces.end(); ++s) {
(*s)->update_flip_mode_display ();
diff --git a/libs/surfaces/mackie/mackie_control_protocol.h b/libs/surfaces/mackie/mackie_control_protocol.h
index 710745f157..ffc06a32eb 100644
--- a/libs/surfaces/mackie/mackie_control_protocol.h
+++ b/libs/surfaces/mackie/mackie_control_protocol.h
@@ -123,13 +123,13 @@ class MackieControlProtocol
void set_device (const std::string&, bool allow_activation = true);
void set_profile (const std::string&);
- bool flip_mode () const { return _flip_mode; }
+ FlipMode flip_mode () const { return _flip_mode; }
ViewMode view_mode () const { return _view_mode; }
bool zoom_mode () const { return _zoom_mode; }
bool metering_active () const { return _metering_active; }
void set_view_mode (ViewMode);
- void set_flip_mode (bool);
+ void set_flip_mode (FlipMode);
XMLNode& get_state ();
int set_state (const XMLNode&, int version);
@@ -278,7 +278,7 @@ class MackieControlProtocol
void* _gui;
bool _zoom_mode;
bool _scrub_mode;
- bool _flip_mode;
+ FlipMode _flip_mode;
ViewMode _view_mode;
int _current_selected_track;
int _modifier_state;
diff --git a/libs/surfaces/mackie/mcp_buttons.cc b/libs/surfaces/mackie/mcp_buttons.cc
index 286e87a0fb..792813bf33 100644
--- a/libs/surfaces/mackie/mcp_buttons.cc
+++ b/libs/surfaces/mackie/mcp_buttons.cc
@@ -814,8 +814,12 @@ MackieControlProtocol::dyn_release (Button &)
LedState
MackieControlProtocol::flip_press (Button &)
{
- set_flip_mode (!_flip_mode);
- return (_flip_mode ? on : off);
+ if (_flip_mode != Normal) {
+ set_flip_mode (Normal);
+ } else {
+ set_flip_mode (Mirror);
+ }
+ return ((_flip_mode != Normal) ? on : off);
}
LedState
MackieControlProtocol::flip_release (Button &)
diff --git a/libs/surfaces/mackie/strip.cc b/libs/surfaces/mackie/strip.cc
index fd8e956ba1..d758aadaa2 100644
--- a/libs/surfaces/mackie/strip.cc
+++ b/libs/surfaces/mackie/strip.cc
@@ -291,7 +291,7 @@ Strip::notify_gain_changed (bool force_update)
Control* control;
- if (_surface->mcp().flip_mode()) {
+ if (_surface->mcp().flip_mode() != Normal) {
control = _vpot;
} else {
control = _fader;
@@ -304,7 +304,7 @@ Strip::notify_gain_changed (bool force_update)
if (force_update || normalized_position != _last_gain_position_written) {
- if (_surface->mcp().flip_mode()) {
+ if (_surface->mcp().flip_mode() != Normal) {
if (!control->in_use()) {
_surface->write (_vpot->set (normalized_position, true, Pot::wrap));
}
@@ -407,7 +407,7 @@ Strip::notify_panner_width_changed (bool force_update)
if (force_update || pos != _last_pan_azi_position_written) {
- if (_surface->mcp().flip_mode()) {
+ if (_surface->mcp().flip_mode() != Normal) {
if (control == _fader) {
if (!control->in_use()) {
@@ -944,7 +944,7 @@ Strip::next_pot_mode ()
{
vector<Evoral::Parameter>::iterator i;
- if (_surface->mcp().flip_mode()) {
+ if (_surface->mcp().flip_mode() != Normal) {
/* do not change vpot mode while in flipped mode */
DEBUG_TRACE (DEBUG::MackieControl, "not stepping pot mode - in flip mode\n");
_surface->write (display (1, "Flip"));
@@ -997,7 +997,7 @@ Strip::set_vpot_parameter (Evoral::Parameter p)
case PanAzimuthAutomation:
pannable = _route->pannable ();
if (pannable) {
- if (_surface->mcp().flip_mode()) {
+ if (_surface->mcp().flip_mode() != Normal) {
/* gain to vpot, pan azi to fader */
_vpot->set_control (_route->gain_control());
control_by_parameter[GainAutomation] = _vpot;
@@ -1025,7 +1025,7 @@ Strip::set_vpot_parameter (Evoral::Parameter p)
case PanWidthAutomation:
pannable = _route->pannable ();
if (pannable) {
- if (_surface->mcp().flip_mode()) {
+ if (_surface->mcp().flip_mode() != Normal) {
/* gain to vpot, pan width to fader */
_vpot->set_control (_route->gain_control());
control_by_parameter[GainAutomation] = _vpot;