From 8b59bf47dfa9f9d04d4542fa3c4513ebe1d2c704 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Thu, 6 Apr 2023 01:42:03 +0200 Subject: [PATCH] Add a dedicated PlaylistSet type This is to consolidate various locations that use `typedef std::set>` throughout the codebase. --- libs/ardour/ardour/session_playlist.h | 4 +- libs/ardour/ardour/session_playlists.h | 6 +- libs/ardour/ardour/types.h | 2 + libs/ardour/playlist.cc | 1 + libs/ardour/session.cc | 2 +- libs/ardour/session_playlists.cc | 83 +++++++++++++------------- libs/ardour/session_state.cc | 5 +- 7 files changed, 52 insertions(+), 51 deletions(-) diff --git a/libs/ardour/ardour/session_playlist.h b/libs/ardour/ardour/session_playlist.h index d21799154f..869cf0650e 100644 --- a/libs/ardour/ardour/session_playlist.h +++ b/libs/ardour/ardour/session_playlist.h @@ -31,12 +31,12 @@ template void SessionPlaylists::foreach (T *obj, void (T::*func)(std::shared_ptr)) { Glib::Threads::Mutex::Lock lm (lock); - for (List::iterator i = playlists.begin(); i != playlists.end(); i++) { + for (PlaylistSet::iterator i = playlists.begin(); i != playlists.end(); i++) { if (!(*i)->hidden()) { (obj->*func) (*i); } } - for (List::iterator i = unused_playlists.begin(); i != unused_playlists.end(); i++) { + for (PlaylistSet::iterator i = unused_playlists.begin(); i != unused_playlists.end(); i++) { if (!(*i)->hidden()) { (obj->*func) (*i); } diff --git a/libs/ardour/ardour/session_playlists.h b/libs/ardour/ardour/session_playlists.h index 84225eed4d..242c78c2c0 100644 --- a/libs/ardour/ardour/session_playlists.h +++ b/libs/ardour/ardour/session_playlists.h @@ -92,9 +92,9 @@ private: std::shared_ptr XMLPlaylistFactory (Session &, const XMLNode&); mutable Glib::Threads::Mutex lock; - typedef std::set > List; - List playlists; - List unused_playlists; + + PlaylistSet playlists; + PlaylistSet unused_playlists; }; } diff --git a/libs/ardour/ardour/types.h b/libs/ardour/ardour/types.h index 1cbb3e762d..8197015c9a 100644 --- a/libs/ardour/ardour/types.h +++ b/libs/ardour/ardour/types.h @@ -73,6 +73,7 @@ class AudioSource; class GraphNode; class Route; class Region; +class Playlist; class Stripable; class VCA; class AutomationControl; @@ -101,6 +102,7 @@ typedef std::list > AudioIntervalResul typedef std::map,AudioIntervalResult> AudioIntervalMap; typedef std::list > RegionList; +typedef std::set > PlaylistSet; struct IOChange { diff --git a/libs/ardour/playlist.cc b/libs/ardour/playlist.cc index 445caedbbe..c0b229121a 100644 --- a/libs/ardour/playlist.cc +++ b/libs/ardour/playlist.cc @@ -1162,6 +1162,7 @@ Playlist::partition_internal (timepos_t const & start, timepos_t const & end, bo /* keep track of any dead space at end (for pasting into Ripple or RippleAll mode) */ const timecnt_t wanted_length = start.distance (end); _end_space = wanted_length - _get_extent().first.distance (_get_extent().second); + cout << "PL: " << name() << " END SPACE: " << _end_space << " WANTED LEN: " << wanted_length << " EXT: " << _get_extent().first << " to " << get_extent().second << "\n"; } std::shared_ptr diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index 8af4a90c42..be2106049c 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -5104,7 +5104,7 @@ bool Session::playlist_is_active (std::shared_ptr playlist) { Glib::Threads::Mutex::Lock lm (_playlists->lock); - for (SessionPlaylists::List::iterator i = _playlists->playlists.begin(); i != _playlists->playlists.end(); i++) { + for (PlaylistSet::iterator i = _playlists->playlists.begin(); i != _playlists->playlists.end(); i++) { if ( (*i) == playlist ) { return true; } diff --git a/libs/ardour/session_playlists.cc b/libs/ardour/session_playlists.cc index 8398b65fc2..bb72255bd2 100644 --- a/libs/ardour/session_playlists.cc +++ b/libs/ardour/session_playlists.cc @@ -39,8 +39,8 @@ SessionPlaylists::~SessionPlaylists () { DEBUG_TRACE (DEBUG::Destruction, "delete playlists\n"); - for (List::iterator i = playlists.begin(); i != playlists.end(); ) { - SessionPlaylists::List::iterator tmp; + for (PlaylistSet::iterator i = playlists.begin(); i != playlists.end(); ) { + PlaylistSet::iterator tmp; tmp = i; ++tmp; @@ -53,8 +53,8 @@ SessionPlaylists::~SessionPlaylists () } DEBUG_TRACE (DEBUG::Destruction, "delete unused playlists\n"); - for (List::iterator i = unused_playlists.begin(); i != unused_playlists.end(); ) { - List::iterator tmp; + for (PlaylistSet::iterator i = unused_playlists.begin(); i != unused_playlists.end(); ) { + PlaylistSet::iterator tmp; tmp = i; ++tmp; @@ -102,7 +102,7 @@ SessionPlaylists::remove (std::shared_ptr playlist) { Glib::Threads::Mutex::Lock lm (lock); - List::iterator i; + PlaylistSet::iterator i; i = find (playlists.begin(), playlists.end(), playlist); if (i != playlists.end()) { @@ -123,7 +123,7 @@ SessionPlaylists::update_tracking () * 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(); ) { + for (PlaylistSet::iterator i = playlists.begin(); i != playlists.end(); ) { if ((*i)->hidden () || (*i)->used ()) { ++i; continue; @@ -134,7 +134,7 @@ SessionPlaylists::update_tracking () assert (unused_playlists.find (*i) == unused_playlists.end()); unused_playlists.insert (*i); - List::iterator rm = i; + PlaylistSet::iterator rm = i; ++i; playlists.erase (rm); } @@ -149,7 +149,7 @@ SessionPlaylists::track (bool inuse, std::weak_ptr wpl) return; } - List::iterator x; + PlaylistSet::iterator x; if (pl->hidden()) { /* its not supposed to be visible */ @@ -196,7 +196,7 @@ SessionPlaylists::for_pgroup (string pgroup_id, const PBD::ID& id) Glib::Threads::Mutex::Lock lm (lock); - for (List::iterator i = playlists.begin(); i != playlists.end(); ++i) { + for (PlaylistSet::iterator i = playlists.begin(); i != playlists.end(); ++i) { if ((*i)->pgroup_id() == pgroup_id) { if ((*i)->get_orig_track_id() == id) { return* i; @@ -204,7 +204,7 @@ SessionPlaylists::for_pgroup (string pgroup_id, const PBD::ID& id) } } - for (List::iterator i = unused_playlists.begin(); i != unused_playlists.end(); ++i) { + for (PlaylistSet::iterator i = unused_playlists.begin(); i != unused_playlists.end(); ++i) { if ((*i)->pgroup_id() == pgroup_id) { if ((*i)->get_orig_track_id() == id) { return* i; @@ -227,13 +227,13 @@ SessionPlaylists::playlists_for_pgroup (std::string pgroup) Glib::Threads::Mutex::Lock lm (lock); - for (List::iterator i = playlists.begin(); i != playlists.end(); ++i) { + for (PlaylistSet::iterator i = playlists.begin(); i != playlists.end(); ++i) { if ((*i)->pgroup_id().compare(pgroup)==0) { pl_tr.push_back (*i); } } - for (List::iterator i = unused_playlists.begin(); i != unused_playlists.end(); ++i) { + for (PlaylistSet::iterator i = unused_playlists.begin(); i != unused_playlists.end(); ++i) { if ((*i)->pgroup_id().compare(pgroup)==0) { pl_tr.push_back (*i); } @@ -247,13 +247,13 @@ SessionPlaylists::by_name (string name) { Glib::Threads::Mutex::Lock lm (lock); - for (List::iterator i = playlists.begin(); i != playlists.end(); ++i) { + for (PlaylistSet::iterator i = playlists.begin(); i != playlists.end(); ++i) { if ((*i)->name() == name) { return* i; } } - for (List::iterator i = unused_playlists.begin(); i != unused_playlists.end(); ++i) { + for (PlaylistSet::iterator i = unused_playlists.begin(); i != unused_playlists.end(); ++i) { if ((*i)->name() == name) { return* i; } @@ -267,13 +267,13 @@ SessionPlaylists::by_id (const PBD::ID& id) { Glib::Threads::Mutex::Lock lm (lock); - for (List::iterator i = playlists.begin(); i != playlists.end(); ++i) { + for (PlaylistSet::iterator i = playlists.begin(); i != playlists.end(); ++i) { if ((*i)->id() == id) { return* i; } } - for (List::iterator i = unused_playlists.begin(); i != unused_playlists.end(); ++i) { + for (PlaylistSet::iterator i = unused_playlists.begin(); i != unused_playlists.end(); ++i) { if ((*i)->id() == id) { return* i; } @@ -287,13 +287,13 @@ SessionPlaylists::unassigned (std::list > & list) { Glib::Threads::Mutex::Lock lm (lock); - for (List::iterator i = playlists.begin(); i != playlists.end(); ++i) { + for (PlaylistSet::iterator i = playlists.begin(); i != playlists.end(); ++i) { if (!(*i)->get_orig_track_id().to_s().compare ("0")) { list.push_back (*i); } } - for (List::iterator i = unused_playlists.begin(); i != unused_playlists.end(); ++i) { + for (PlaylistSet::iterator i = unused_playlists.begin(); i != unused_playlists.end(); ++i) { if (!(*i)->get_orig_track_id().to_s().compare ("0")) { list.push_back (*i); } @@ -305,13 +305,13 @@ SessionPlaylists::update_orig_2X (PBD::ID old_orig, PBD::ID new_orig) { Glib::Threads::Mutex::Lock lm (lock); - for (List::iterator i = playlists.begin(); i != playlists.end(); ++i) { + for (PlaylistSet::iterator i = playlists.begin(); i != playlists.end(); ++i) { if ((*i)->get_orig_track_id() == old_orig) { (*i)->set_orig_track_id (new_orig); } } - for (List::iterator i = unused_playlists.begin(); i != unused_playlists.end(); ++i) { + for (PlaylistSet::iterator i = unused_playlists.begin(); i != unused_playlists.end(); ++i) { if ((*i)->get_orig_track_id() == old_orig) { (*i)->set_orig_track_id (new_orig); } @@ -323,11 +323,11 @@ SessionPlaylists::get (vector >& s) const { Glib::Threads::Mutex::Lock lm (lock); - for (List::const_iterator i = playlists.begin(); i != playlists.end(); ++i) { + for (PlaylistSet::const_iterator i = playlists.begin(); i != playlists.end(); ++i) { s.push_back (*i); } - for (List::const_iterator i = unused_playlists.begin(); i != unused_playlists.end(); ++i) { + for (PlaylistSet::const_iterator i = unused_playlists.begin(); i != unused_playlists.end(); ++i) { s.push_back (*i); } } @@ -337,11 +337,11 @@ SessionPlaylists::destroy_region (std::shared_ptr r) { Glib::Threads::Mutex::Lock lm (lock); - for (List::iterator i = playlists.begin(); i != playlists.end(); ++i) { + for (PlaylistSet::iterator i = playlists.begin(); i != playlists.end(); ++i) { (*i)->destroy_region (r); } - for (List::iterator i = unused_playlists.begin(); i != unused_playlists.end(); ++i) { + for (PlaylistSet::iterator i = unused_playlists.begin(); i != unused_playlists.end(); ++i) { (*i)->destroy_region (r); } } @@ -358,14 +358,14 @@ SessionPlaylists::source_use_count (std::shared_ptr src) const * between compound regions. */ - for (List::const_iterator p = playlists.begin(); p != playlists.end(); ++p) { + for (PlaylistSet::const_iterator p = playlists.begin(); p != playlists.end(); ++p) { if ((*p)->uses_source (src)) { ++count; break; } } - for (List::const_iterator p = unused_playlists.begin(); p != unused_playlists.end(); ++p) { + for (PlaylistSet::const_iterator p = unused_playlists.begin(); p != unused_playlists.end(); ++p) { if ((*p)->uses_source (src)) { ++count; break; @@ -380,7 +380,7 @@ SessionPlaylists::sync_all_regions_with_regions () { Glib::Threads::Mutex::Lock lm (lock); - for (List::const_iterator p = playlists.begin(); p != playlists.end(); ++p) { + for (PlaylistSet::const_iterator p = playlists.begin(); p != playlists.end(); ++p) { (*p)->sync_all_regions_with_regions (); } } @@ -388,11 +388,11 @@ SessionPlaylists::sync_all_regions_with_regions () void SessionPlaylists::update_after_tempo_map_change () { - for (List::iterator i = playlists.begin(); i != playlists.end(); ++i) { + for (PlaylistSet::iterator i = playlists.begin(); i != playlists.end(); ++i) { (*i)->update_after_tempo_map_change (); } - for (List::iterator i = unused_playlists.begin(); i != unused_playlists.end(); ++i) { + for (PlaylistSet::iterator i = unused_playlists.begin(); i != unused_playlists.end(); ++i) { (*i)->update_after_tempo_map_change (); } } @@ -406,13 +406,12 @@ struct id_compare } }; -typedef std::set > List; typedef std::set, id_compare> IDSortedList; static void -get_id_sorted_playlists (const List& playlists, IDSortedList& id_sorted_playlists) +get_id_sorted_playlists (const PlaylistSet& playlists, IDSortedList& id_sorted_playlists) { - for (List::const_iterator i = playlists.begin(); i != playlists.end(); ++i) { + for (PlaylistSet::const_iterator i = playlists.begin(); i != playlists.end(); ++i) { id_sorted_playlists.insert(*i); } } @@ -469,7 +468,7 @@ SessionPlaylists::maybe_delete_unused (boost::function c; - for (List::iterator i = playlists.begin(); i != playlists.end(); ++i) { + for (PlaylistSet::iterator i = playlists.begin(); i != playlists.end(); ++i) { c = (*i)->find_crossfade (id); if (c) { return c; } } - for (List::iterator i = unused_playlists.begin(); i != unused_playlists.end(); ++i) { + for (PlaylistSet::iterator i = unused_playlists.begin(); i != unused_playlists.end(); ++i) { c = (*i)->find_crossfade (id); if (c) { return c; @@ -606,11 +605,11 @@ SessionPlaylists::region_use_count (std::shared_ptr region) const Glib::Threads::Mutex::Lock lm (lock); uint32_t cnt = 0; - for (List::const_iterator i = playlists.begin(); i != playlists.end(); ++i) { - cnt += (*i)->region_use_count (region); + for (PlaylistSet::const_iterator i = playlists.begin(); i != playlists.end(); ++i) { + cnt += (*i)->region_use_count (region); } - for (List::const_iterator i = unused_playlists.begin(); i != unused_playlists.end(); ++i) { + for (PlaylistSet::const_iterator i = unused_playlists.begin(); i != unused_playlists.end(); ++i) { cnt += (*i)->region_use_count (region); } @@ -624,7 +623,7 @@ SessionPlaylists::get_used () const Glib::Threads::Mutex::Lock lm (lock); - for (List::const_iterator i = playlists.begin(); i != playlists.end(); ++i) { + for (PlaylistSet::const_iterator i = playlists.begin(); i != playlists.end(); ++i) { pl.push_back (*i); } @@ -638,7 +637,7 @@ SessionPlaylists::get_unused () const Glib::Threads::Mutex::Lock lm (lock); - for (List::const_iterator i = unused_playlists.begin(); i != unused_playlists.end(); ++i) { + for (PlaylistSet::const_iterator i = unused_playlists.begin(); i != unused_playlists.end(); ++i) { pl.push_back (*i); } @@ -670,7 +669,7 @@ void SessionPlaylists::foreach (boost::function)> functor, bool incl_unused) { Glib::Threads::Mutex::Lock lm (lock); - for (List::iterator i = playlists.begin(); i != playlists.end(); i++) { + for (PlaylistSet::iterator i = playlists.begin(); i != playlists.end(); i++) { if (!(*i)->hidden()) { functor (*i); } @@ -678,7 +677,7 @@ SessionPlaylists::foreach (boost::function) if (!incl_unused) { return; } - for (List::iterator i = unused_playlists.begin(); i != unused_playlists.end(); i++) { + for (PlaylistSet::iterator i = unused_playlists.begin(); i != unused_playlists.end(); i++) { if (!(*i)->hidden()) { functor (*i); } diff --git a/libs/ardour/session_state.cc b/libs/ardour/session_state.cc index 33e1bb3bba..cd546c6554 100644 --- a/libs/ardour/session_state.cc +++ b/libs/ardour/session_state.cc @@ -1094,7 +1094,6 @@ Session::get_template () return state (true, NormalSave); } -typedef std::set > PlaylistSet; typedef std::set > SourceSet; bool @@ -1113,8 +1112,8 @@ Session::export_track_state (std::shared_ptr rl, const string& path) XMLNode* node = new XMLNode("TrackState"); // XXX XMLNode* child; - PlaylistSet playlists; // SessionPlaylists - SourceSet sources; + PlaylistSet playlists; // SessionPlaylists + SourceSet sources; // these will work with new_route_from_template() // TODO: LV2 plugin-state-dir needs to be relative (on load?)