diff options
Diffstat (limited to 'libs/surfaces/mackie/mackie_control_protocol.cc')
-rw-r--r-- | libs/surfaces/mackie/mackie_control_protocol.cc | 18 |
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); } } |