X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fsession_playlists.cc;h=b586ab196ebd318d65f09d9951fe86fa815664ac;hb=cb3a60493620e5965de72d34fe0c0d2cce7ec037;hp=ac3baf20081ae3f9faf0a1fd70af2689a68a52be;hpb=3cd8138a419cb165f56070ace0b21a1e63ec5a43;p=ardour.git diff --git a/libs/ardour/session_playlists.cc b/libs/ardour/session_playlists.cc index ac3baf2008..b586ab196e 100644 --- a/libs/ardour/session_playlists.cc +++ b/libs/ardour/session_playlists.cc @@ -221,11 +221,11 @@ SessionPlaylists::get (vector >& s) const { Glib::Threads::Mutex::Lock lm (lock); - for (List::iterator i = playlists.begin(); i != playlists.end(); ++i) { + for (List::const_iterator i = playlists.begin(); i != playlists.end(); ++i) { s.push_back (*i); } - for (List::iterator i = unused_playlists.begin(); i != unused_playlists.end(); ++i) { + for (List::const_iterator i = unused_playlists.begin(); i != unused_playlists.end(); ++i) { s.push_back (*i); } } @@ -252,7 +252,9 @@ SessionPlaylists::find_equivalent_playlist_regions (boost::shared_ptr re (*i)->get_region_list_equivalent_regions (region, result); } -/** Return the number of playlists (not regions) that contain @a src */ +/** Return the number of playlists (not regions) that contain @a src + * Important: this counts usage in both used and not-used playlists. + */ uint32_t SessionPlaylists::source_use_count (boost::shared_ptr src) const { @@ -264,6 +266,14 @@ SessionPlaylists::source_use_count (boost::shared_ptr src) const break; } } + + for (List::const_iterator p = unused_playlists.begin(); p != unused_playlists.end(); ++p) { + if ((*p)->uses_source (src)) { + ++count; + break; + } + } + return count; } @@ -438,11 +448,11 @@ SessionPlaylists::region_use_count (boost::shared_ptr region) const Glib::Threads::Mutex::Lock lm (lock); uint32_t cnt = 0; - for (List::iterator i = playlists.begin(); i != playlists.end(); ++i) { + for (List::const_iterator i = playlists.begin(); i != playlists.end(); ++i) { cnt += (*i)->region_use_count (region); } - for (List::iterator i = unused_playlists.begin(); i != unused_playlists.end(); ++i) { + for (List::const_iterator i = unused_playlists.begin(); i != unused_playlists.end(); ++i) { cnt += (*i)->region_use_count (region); }