diff options
author | Carl Hetherington <carl@carlh.net> | 2009-12-03 21:52:10 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2009-12-03 21:52:10 +0000 |
commit | ee9455af40adaaf48010784330f457f471b2546e (patch) | |
tree | 187facb02c3a19b350ae9e3c3308d532331dfbd3 /libs/ardour/ardour/session_playlist.h | |
parent | 03c74e45a871f2e09fb1ee855f830c94d1cdb163 (diff) |
Move some (most) playlist-related code and data into a separate object
(SessionPlaylists). Main point being to ensure that, when a Session
is destroyed (especially as a result of its constructor throwing an
exception) SessionPlaylists::track is disconnected from its signal
at the same time as the list of playlists is destroyed. Otherwise
problems abound.
git-svn-id: svn://localhost/ardour2/branches/3.0@6270 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/ardour/session_playlist.h')
-rw-r--r-- | libs/ardour/ardour/session_playlist.h | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/libs/ardour/ardour/session_playlist.h b/libs/ardour/ardour/session_playlist.h index f924fe4bbc..7f5d1e89ce 100644 --- a/libs/ardour/ardour/session_playlist.h +++ b/libs/ardour/ardour/session_playlist.h @@ -22,19 +22,20 @@ #include "ardour/session.h" #include "ardour/playlist.h" +#include "ardour/session_playlists.h" namespace ARDOUR { template<class T> void -Session::foreach_playlist (T *obj, void (T::*func)(boost::shared_ptr<Playlist>)) +SessionPlaylists::foreach (T *obj, void (T::*func)(boost::shared_ptr<Playlist>)) { - Glib::Mutex::Lock lm (playlist_lock); - for (PlaylistList::iterator i = playlists.begin(); i != playlists.end(); i++) { + Glib::Mutex::Lock lm (lock); + for (List::iterator i = playlists.begin(); i != playlists.end(); i++) { if (!(*i)->hidden()) { (obj->*func) (*i); } } - for (PlaylistList::iterator i = unused_playlists.begin(); i != unused_playlists.end(); i++) { + for (List::iterator i = unused_playlists.begin(); i != unused_playlists.end(); i++) { if (!(*i)->hidden()) { (obj->*func) (*i); } |