summaryrefslogtreecommitdiff
path: root/libs/surfaces/mackie/mackie_control_protocol.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/surfaces/mackie/mackie_control_protocol.cc')
-rw-r--r--libs/surfaces/mackie/mackie_control_protocol.cc18
1 files changed, 8 insertions, 10 deletions
diff --git a/libs/surfaces/mackie/mackie_control_protocol.cc b/libs/surfaces/mackie/mackie_control_protocol.cc
index a57b622bcc..ad03ec1edc 100644
--- a/libs/surfaces/mackie/mackie_control_protocol.cc
+++ b/libs/surfaces/mackie/mackie_control_protocol.cc
@@ -469,14 +469,14 @@ MackieControlProtocol::set_active (bool yn)
set_device (_device_info.name(), true);
}
- /* set up periodic task for metering and automation
+ /* set up periodic task for timecode display and metering and automation
*/
Glib::RefPtr<Glib::TimeoutSource> periodic_timeout = Glib::TimeoutSource::create (100); // milliseconds
periodic_connection = periodic_timeout->connect (sigc::mem_fun (*this, &MackieControlProtocol::periodic));
periodic_timeout->attach (main_loop()->get_context());
- /* a faster periodic task used to display parameter updates */
+ /* periodic task used to update strip displays */
Glib::RefPtr<Glib::TimeoutSource> redisplay_timeout = Glib::TimeoutSource::create (10); // milliseconds
redisplay_connection = redisplay_timeout->connect (sigc::mem_fun (*this, &MackieControlProtocol::redisplay));
@@ -515,14 +515,14 @@ MackieControlProtocol::periodic ()
return false;
}
- if (needs_ipmidi_restart) {
- ipmidi_restart ();
+ if (!_initialized) {
+ /* wait for higher-frequency redisplay() callback to initialize
+ * us
+ */
return true;
}
- if (!_initialized) {
- initialize();
- }
+ update_timecode_display ();
ARDOUR::microseconds_t now_usecs = ARDOUR::get_microseconds ();
@@ -534,8 +534,6 @@ MackieControlProtocol::periodic ()
}
}
- update_timecode_display ();
-
return true;
}
@@ -561,7 +559,7 @@ MackieControlProtocol::redisplay ()
Glib::Threads::Mutex::Lock lm (surfaces_lock);
for (Surfaces::iterator s = surfaces.begin(); s != surfaces.end(); ++s) {
- (*s)->redisplay (now);
+ (*s)->redisplay (now, false);
}
}