13
0

session: add signal to indicate batch updates

…to tell the UI to not redraw.
This commit is contained in:
Robin Gareus 2015-04-30 17:58:33 +02:00
parent af884b4174
commit ae38128f88
2 changed files with 8 additions and 2 deletions

View File

@ -183,6 +183,9 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop
static PBD::Signal1<void,std::string> Dialog;
PBD::Signal0<void> BatchUpdateStart;
PBD::Signal0<void> BatchUpdateEnd;
int ensure_subdirs ();
std::string automation_dir () const; ///< Automation data
@ -1272,7 +1275,7 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop
void *do_work();
/* Signal Forwarding */
void emit_route_signals () const;
void emit_route_signals ();
void emit_thread_run ();
static void *emit_thread (void *);
void emit_thread_start ();

View File

@ -1254,12 +1254,15 @@ Session::compute_stop_limit () const
*/
void
Session::emit_route_signals () const
Session::emit_route_signals ()
{
// TODO use RAII to allow using these signals in other places
BatchUpdateStart(); /* EMIT SIGNAL */
boost::shared_ptr<RouteList> r = routes.reader ();
for (RouteList::const_iterator ci = r->begin(); ci != r->end(); ++ci) {
(*ci)->emit_pending_signals ();
}
BatchUpdateEnd(); /* EMIT SIGNAL */
}
void