[Summary] Blocked redundant skip marker (during skip ranges consolidation) updates which used to lead to unnecessary overhead and redundant session events

Conflicts:
	libs/ardour/ardour/session.h
	libs/ardour/session.cc
This commit is contained in:
GZharun 2015-02-07 21:36:47 +02:00 committed by Paul Davis
parent 48fdb28153
commit 297ebd33bb
2 changed files with 10 additions and 6 deletions

View File

@ -1196,9 +1196,7 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop
void sync_locations_to_skips ();
void _sync_locations_to_skips ();
PBD::ScopedConnectionList loop_update_connections;
PBD::ScopedConnectionList mark_update_connections;
PBD::ScopedConnectionList skip_update_connections;
bool _ignore_skips_updates;
PBD::ScopedConnectionList punch_connections;
void auto_punch_start_changed (Location *);

View File

@ -208,6 +208,7 @@ Session::Session (AudioEngine &eng,
, _post_transport_work (0)
, cumulative_rf_motion (0)
, rf_scale (1.0)
, _ignore_skips_updates (false)
, _locations (new Locations (*this))
, step_speed (0)
, outbound_mtc_timecode_frame (0)
@ -1325,11 +1326,16 @@ Session::update_marks (Location*)
void
Session::update_skips (Location* loc, bool consolidate)
{
if (_ignore_skips_updates) {
return;
}
Locations::LocationList skips;
if (consolidate) {
consolidate_skips (loc);
}
if (consolidate) {
PBD::Unwinder<bool> uw (_ignore_skips_updates, true);
consolidate_skips (loc);
}
sync_locations_to_skips ();