summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLen Ovens <len@ovenwerks.net>2015-10-12 13:52:10 -0700
committerLen Ovens <len@ovenwerks.net>2015-10-12 13:52:10 -0700
commit8e83ca5753e6c507e6c9cfff381706538a9b199c (patch)
tree598b2f7e9562eb9881a0b0672c4a1253678c3837
parent1eb1391cfd1bdb8f63923c639fab8bb54063dcfa (diff)
Only flip if not already in desired state. Fixes fader jerk on banking.
-rw-r--r--libs/surfaces/mackie/mackie_control_protocol.cc16
1 files changed, 12 insertions, 4 deletions
diff --git a/libs/surfaces/mackie/mackie_control_protocol.cc b/libs/surfaces/mackie/mackie_control_protocol.cc
index 9f9f33b633..9f98f1d05b 100644
--- a/libs/surfaces/mackie/mackie_control_protocol.cc
+++ b/libs/surfaces/mackie/mackie_control_protocol.cc
@@ -1522,12 +1522,20 @@ MackieControlProtocol::set_view_mode (ViewMode m)
void
MackieControlProtocol::set_flip_mode (FlipMode fm)
{
- Glib::Threads::Mutex::Lock lm (surfaces_lock);
+ if (_flip_mode != fm) {
+ if (fm == Normal) {
+ update_global_button (Button::Flip, off);
+ } else {
+ update_global_button (Button::Flip, on);
+ }
+
+ Glib::Threads::Mutex::Lock lm (surfaces_lock);
- _flip_mode = fm;
+ _flip_mode = fm;
- for (Surfaces::iterator s = surfaces.begin(); s != surfaces.end(); ++s) {
- (*s)->update_flip_mode_display ();
+ for (Surfaces::iterator s = surfaces.begin(); s != surfaces.end(); ++s) {
+ (*s)->update_flip_mode_display ();
+ }
}
}