summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/route.h
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/ardour/route.h')
-rw-r--r--libs/ardour/ardour/route.h26
1 files changed, 14 insertions, 12 deletions
diff --git a/libs/ardour/ardour/route.h b/libs/ardour/ardour/route.h
index d30138640a..c85f34f1fa 100644
--- a/libs/ardour/ardour/route.h
+++ b/libs/ardour/ardour/route.h
@@ -27,6 +27,8 @@
#include <map>
#include <string>
+#include <boost/shared_ptr.hpp>
+
#include <pbd/fastlog.h>
#include <glibmm/thread.h>
#include <pbd/xml++.h>
@@ -57,13 +59,13 @@ class Route : public IO
{
protected:
- typedef list<Redirect *> RedirectList;
+ typedef list<boost::shared_ptr<Redirect> > RedirectList;
public:
enum Flag {
Hidden = 0x1,
MasterOut = 0x2,
- ControlOut = 0x4,
+ ControlOut = 0x4
};
@@ -141,19 +143,19 @@ class Route : public IO
void flush_redirects ();
- template<class T> void foreach_redirect (T *obj, void (T::*func)(Redirect *)) {
+ template<class T> void foreach_redirect (T *obj, void (T::*func)(boost::shared_ptr<Redirect>)) {
Glib::RWLock::ReaderLock lm (redirect_lock);
for (RedirectList::iterator i = _redirects.begin(); i != _redirects.end(); ++i) {
(obj->*func) (*i);
}
}
- Redirect *nth_redirect (uint32_t n) {
+ boost::shared_ptr<Redirect> nth_redirect (uint32_t n) {
Glib::RWLock::ReaderLock lm (redirect_lock);
RedirectList::iterator i;
for (i = _redirects.begin(); i != _redirects.end() && n; ++i, --n);
if (i == _redirects.end()) {
- return 0;
+ return boost::shared_ptr<Redirect> ();
} else {
return *i;
}
@@ -161,9 +163,9 @@ class Route : public IO
uint32_t max_redirect_outs () const { return redirect_max_outs; }
- int add_redirect (Redirect *, void *src, uint32_t* err_streams = 0);
+ int add_redirect (boost::shared_ptr<Redirect>, void *src, uint32_t* err_streams = 0);
int add_redirects (const RedirectList&, void *src, uint32_t* err_streams = 0);
- int remove_redirect (Redirect *, void *src, uint32_t* err_streams = 0);
+ int remove_redirect (boost::shared_ptr<Redirect>, void *src, uint32_t* err_streams = 0);
int copy_redirects (const Route&, Placement, uint32_t* err_streams = 0);
int sort_redirects (uint32_t* err_streams = 0);
@@ -212,8 +214,8 @@ class Route : public IO
int set_control_outs (const vector<std::string>& ports);
IO* control_outs() { return _control_outs; }
- bool feeds (Route *);
- set<Route *> fed_by;
+ bool feeds (boost::shared_ptr<Route>);
+ set<boost::shared_ptr<Route> > fed_by;
struct ToggleControllable : public PBD::Controllable {
enum ToggleType {
@@ -339,12 +341,12 @@ class Route : public IO
/* plugin count handling */
struct InsertCount {
- ARDOUR::Insert& insert;
+ boost::shared_ptr<ARDOUR::Insert> insert;
int32_t cnt;
int32_t in;
int32_t out;
- InsertCount (ARDOUR::Insert& ins) : insert (ins), cnt (-1) {}
+ InsertCount (boost::shared_ptr<ARDOUR::Insert> ins) : insert (ins), cnt (-1) {}
};
int32_t apply_some_plugin_counts (std::list<InsertCount>& iclist);
@@ -355,6 +357,6 @@ class Route : public IO
void redirect_active_proxy (Redirect*, void*);
};
-}; /* namespace ARDOUR*/
+} // namespace ARDOUR
#endif /* __ardour_route_h__ */