summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/session_playlist.h
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2009-12-03 21:52:10 +0000
committerCarl Hetherington <carl@carlh.net>2009-12-03 21:52:10 +0000
commitee9455af40adaaf48010784330f457f471b2546e (patch)
tree187facb02c3a19b350ae9e3c3308d532331dfbd3 /libs/ardour/ardour/session_playlist.h
parent03c74e45a871f2e09fb1ee855f830c94d1cdb163 (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.h9
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);
}