void remove (boost::shared_ptr<Playlist>);
void remove_weak (boost::weak_ptr<Playlist>);
void track (bool, boost::weak_ptr<Playlist>);
+ void update_tracking ();
void find_equivalent_playlist_regions (boost::shared_ptr<Region>, std::vector<boost::shared_ptr<Region> >& result);
void update_after_tempo_map_change ();
}
}
+void
+SessionPlaylists::update_tracking ()
+{
+ /* This is intended to be called during session-load, after loading
+ * playlists and re-assigning them to tracks (refcnt is up to date).
+ * Check playlist refcnt, move unused playlist to unused_playlists
+ * array (which may be the case when loading old sessions)
+ */
+ for (List::iterator i = playlists.begin(); i != playlists.end(); ) {
+ if ((*i)->hidden () || (*i)->used ()) {
+ ++i;
+ continue;
+ }
+
+ warning << _("Session State: Unused playlist was listed as used.") << endmsg;
+
+ assert (unused_playlists.find (*i) == unused_playlists.end());
+ unused_playlists.insert (*i);
+
+ List::iterator rm = i;
+ ++i;
+ playlists.erase (rm);
+ }
+}
void
SessionPlaylists::track (bool inuse, boost::weak_ptr<Playlist> wpl)
goto out;
}
+ /* Now that we Tracks have been loaded and playlists are assigned */
+ _playlists->update_tracking ();
+
/* Now that we have Routes and masters loaded, connect them if appropriate */
Slavable::Assign (_vca_manager); /* EMIT SIGNAL */