/*
- Copyright (C) 2003 Paul Davis
+ Copyright (C) 2003 Paul Davis
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
*/
-#include <pbd/failed_constructor.h>
-#include <pbd/error.h>
+#include "pbd/failed_constructor.h"
+#include "pbd/error.h"
-#include <ardour/session.h>
-#include <ardour/utils.h>
-#include <ardour/playlist.h>
-#include <ardour/named_selection.h>
+#include "ardour/session.h"
+#include "ardour/utils.h"
+#include "ardour/playlist.h"
+#include "ardour/named_selection.h"
+#include "ardour/session_playlists.h"
#include "i18n.h"
+using namespace std;
using namespace ARDOUR;
using namespace PBD;
-sigc::signal<void,NamedSelection*> NamedSelection::NamedSelectionCreated;
+PBD::Signal1<void,NamedSelection*> NamedSelection::NamedSelectionCreated;
typedef std::list<boost::shared_ptr<Playlist> > PlaylistList;
-NamedSelection::NamedSelection (string n, PlaylistList& l)
+NamedSelection::NamedSelection (string n, PlaylistList& l)
: name (n)
{
playlists = l;
(*i)->set_name (new_name);
(*i)->use();
}
-
- NamedSelectionCreated (this);
}
NamedSelection::NamedSelection (Session& session, const XMLNode& node)
}
name = property->value();
-
+
if ((lists_node = find_named_node (node, "Playlists")) == 0) {
return;
}
plnode = *niter;
if ((property = plnode->property ("name")) != 0) {
- if ((playlist = session.playlist_by_name (property->value())) != 0) {
+ if ((playlist = session.playlists->by_name (property->value())) != 0) {
playlist->use();
playlists.push_back (playlist);
} else {
NamedSelection::~NamedSelection ()
{
for (PlaylistList::iterator i = playlists.begin(); i != playlists.end(); ++i) {
+ /* XXX who really owns these? us or the session? */
+ (*i)->drop_references ();
(*i)->release ();
- (*i)->GoingAway ();
}
}
int
-NamedSelection::set_state (const XMLNode& node)
+NamedSelection::set_state (const XMLNode& /*node*/, int /*version*/)
{
return 0;
}
plnode->add_property ("name", (*i)->name());
child->add_child_nocopy (*plnode);
}
-
+
return *root;
}