summaryrefslogtreecommitdiff
path: root/gtk2_ardour/route_redirect_selection.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2006-07-27 16:52:14 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2006-07-27 16:52:14 +0000
commitcc2767caf32486365a33814149e75c6e588e8603 (patch)
tree9d41c606a20ba2e2bb43be653e42050d38293a2e /gtk2_ardour/route_redirect_selection.cc
parentd23fec7b9a0f076256dbd71faae254a78efbe37a (diff)
added RCU handling of Session route list, and major use of shared_ptr<T> everywhere else. plus a few bug fixes for issues discovered with -Wextra
git-svn-id: svn://localhost/ardour2/trunk@707 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/route_redirect_selection.cc')
-rw-r--r--gtk2_ardour/route_redirect_selection.cc55
1 files changed, 24 insertions, 31 deletions
diff --git a/gtk2_ardour/route_redirect_selection.cc b/gtk2_ardour/route_redirect_selection.cc
index 6d315e0aae..76f202dd92 100644
--- a/gtk2_ardour/route_redirect_selection.cc
+++ b/gtk2_ardour/route_redirect_selection.cc
@@ -61,17 +61,6 @@ RouteRedirectSelection::clear ()
void
RouteRedirectSelection::clear_redirects ()
{
- for (RedirectSelection::iterator i = redirects.begin(); i != redirects.end(); ) {
- RedirectSelection::iterator tmp;
-
- tmp = i;
- ++tmp;
-
- delete *i;
-
- i = tmp;
- }
-
redirects.clear ();
RedirectsChanged ();
}
@@ -84,29 +73,32 @@ RouteRedirectSelection::clear_routes ()
}
void
-RouteRedirectSelection::add (Redirect* r)
+RouteRedirectSelection::add (boost::shared_ptr<Redirect> r)
{
if (find (redirects.begin(), redirects.end(), r) == redirects.end()) {
redirects.push_back (r);
-
- void (RouteRedirectSelection::*pmf)(Redirect*) = &RouteRedirectSelection::remove;
- r->GoingAway.connect (mem_fun(*this, pmf));
+
+ // XXX SHAREDPTR FIXME
+ // void (RouteRedirectSelection::*pmf)(Redirect*) = &RouteRedirectSelection::remove;
+ // r->GoingAway.connect (mem_fun(*this, pmf));
RedirectsChanged();
}
}
void
-RouteRedirectSelection::add (const vector<Redirect*>& rlist)
+RouteRedirectSelection::add (const vector<boost::shared_ptr<Redirect> >& rlist)
{
bool changed = false;
- for (vector<Redirect*>::const_iterator i = rlist.begin(); i != rlist.end(); ++i) {
+ for (vector<boost::shared_ptr<Redirect> >::const_iterator i = rlist.begin(); i != rlist.end(); ++i) {
if (find (redirects.begin(), redirects.end(), *i) == redirects.end()) {
redirects.push_back (*i);
- void (RouteRedirectSelection::*pmf)(Redirect*) = &RouteRedirectSelection::remove;
- (*i)->GoingAway.connect (mem_fun(*this, pmf));
+ // XXX SHAREDPTR FIXME
+
+ //void (RouteRedirectSelection::*pmf)(Redirect*) = &RouteRedirectSelection::remove;
+ // (*i)->GoingAway.connect (mem_fun(*this, pmf));
changed = true;
}
}
@@ -117,9 +109,9 @@ RouteRedirectSelection::add (const vector<Redirect*>& rlist)
}
void
-RouteRedirectSelection::remove (Redirect* r)
+RouteRedirectSelection::remove (boost::shared_ptr<Redirect> r)
{
- list<Redirect*>::iterator i;
+ list<boost::shared_ptr<Redirect> >::iterator i;
if ((i = find (redirects.begin(), redirects.end(), r)) != redirects.end()) {
redirects.erase (i);
RedirectsChanged ();
@@ -127,36 +119,37 @@ RouteRedirectSelection::remove (Redirect* r)
}
void
-RouteRedirectSelection::set (Redirect *r)
+RouteRedirectSelection::set (boost::shared_ptr<Redirect> r)
{
clear_redirects ();
add (r);
}
void
-RouteRedirectSelection::set (const vector<Redirect*>& rlist)
+RouteRedirectSelection::set (const vector<boost::shared_ptr<Redirect> >& rlist)
{
clear_redirects ();
add (rlist);
}
void
-RouteRedirectSelection::add (Route* r)
+RouteRedirectSelection::add (boost::shared_ptr<Route> r)
{
if (find (routes.begin(), routes.end(), r) == routes.end()) {
routes.push_back (r);
- void (RouteRedirectSelection::*pmf)(Route*) = &RouteRedirectSelection::remove;
- r->GoingAway.connect (bind (mem_fun(*this, pmf), r));
+ // XXX SHAREDPTR FIXME
+ // void (RouteRedirectSelection::*pmf)(Route*) = &RouteRedirectSelection::remove;
+ // r->GoingAway.connect (bind (mem_fun(*this, pmf), r));
RoutesChanged();
}
}
void
-RouteRedirectSelection::remove (Route* r)
+RouteRedirectSelection::remove (boost::shared_ptr<Route> r)
{
- list<Route*>::iterator i;
+ list<boost::shared_ptr<Route> >::iterator i;
if ((i = find (routes.begin(), routes.end(), r)) != routes.end()) {
routes.erase (i);
RoutesChanged ();
@@ -164,16 +157,16 @@ RouteRedirectSelection::remove (Route* r)
}
void
-RouteRedirectSelection::set (Route *r)
+RouteRedirectSelection::set (boost::shared_ptr<Route> r)
{
clear_routes ();
add (r);
}
bool
-RouteRedirectSelection::selected (Route* ms)
+RouteRedirectSelection::selected (boost::shared_ptr<Route> r)
{
- return find (routes.begin(), routes.end(), ms) != routes.end();
+ return find (routes.begin(), routes.end(), r) != routes.end();
}
bool