summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2009-01-25 06:47:11 +0000
committerCarl Hetherington <carl@carlh.net>2009-01-25 06:47:11 +0000
commit49510ba1d7fc1c85e767c05f10f9481998ef94b0 (patch)
treee04210728fb9b5e52864eb8cdc0774e4d0b9d7f2 /libs/ardour/ardour
parenta9d67a2cc97b28795a9112a176ba1f2c1ab470d3 (diff)
Some refactoring. Add port group headers to the port matrix.
git-svn-id: svn://localhost/ardour2/branches/3.0@4443 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/ardour')
-rw-r--r--libs/ardour/ardour/io.h7
-rw-r--r--libs/ardour/ardour/session.h9
-rw-r--r--libs/ardour/ardour/types.h3
3 files changed, 10 insertions, 9 deletions
diff --git a/libs/ardour/ardour/io.h b/libs/ardour/ardour/io.h
index a738519d57..1918a9a41a 100644
--- a/libs/ardour/ardour/io.h
+++ b/libs/ardour/ardour/io.h
@@ -127,8 +127,8 @@ class IO : public SessionObject, public AutomatableControls, public Latent
int connect_input_ports_to_bundle (boost::shared_ptr<Bundle>, void *src);
int connect_output_ports_to_bundle (boost::shared_ptr<Bundle>, void *src);
- std::vector<boost::shared_ptr<Bundle> > bundles_connected_to_inputs ();
- std::vector<boost::shared_ptr<Bundle> > bundles_connected_to_outputs ();
+ BundleList bundles_connected_to_inputs ();
+ BundleList bundles_connected_to_outputs ();
boost::shared_ptr<Bundle> bundle_for_inputs () { return _bundle_for_inputs; }
boost::shared_ptr<Bundle> bundle_for_outputs () { return _bundle_for_outputs; }
@@ -380,9 +380,6 @@ class IO : public SessionObject, public AutomatableControls, public Latent
void create_bundles_for_inputs_and_outputs ();
void setup_bundles_for_inputs_and_outputs ();
-
- void maybe_add_input_bundle_to_list (boost::shared_ptr<Bundle>, std::vector<boost::shared_ptr<Bundle> >*);
- void maybe_add_output_bundle_to_list (boost::shared_ptr<Bundle>, std::vector<boost::shared_ptr<Bundle> >*);
};
} // namespace ARDOUR
diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h
index 2c173a9766..1a88882eb6 100644
--- a/libs/ardour/ardour/session.h
+++ b/libs/ardour/ardour/session.h
@@ -317,6 +317,10 @@ class Session : public PBD::StatefulDestructible
uint32_t ntracks () const;
uint32_t nbusses () const;
+ boost::shared_ptr<BundleList> bundles () {
+ return _bundles.reader ();
+ }
+
struct RoutePublicOrderSorter {
bool operator() (boost::shared_ptr<Route>, boost::shared_ptr<Route> b);
};
@@ -771,7 +775,6 @@ class Session : public PBD::StatefulDestructible
/* I/O bundles */
- void foreach_bundle (sigc::slot<void, boost::shared_ptr<Bundle> >);
void add_bundle (boost::shared_ptr<Bundle>);
void remove_bundle (boost::shared_ptr<Bundle>);
boost::shared_ptr<Bundle> bundle_by_name (string) const;
@@ -1616,9 +1619,7 @@ class Session : public PBD::StatefulDestructible
/* I/O bundles */
- typedef list<boost::shared_ptr<Bundle> > BundleList;
- mutable Glib::Mutex bundle_lock;
- BundleList _bundles;
+ SerializedRCUManager<BundleList> _bundles;
XMLNode* _bundle_xml_node;
int load_bundles (XMLNode const &);
diff --git a/libs/ardour/ardour/types.h b/libs/ardour/ardour/types.h
index 53077387ed..cb058254bf 100644
--- a/libs/ardour/ardour/types.h
+++ b/libs/ardour/ardour/types.h
@@ -419,6 +419,9 @@ namespace ARDOUR {
typedef std::list<nframes64_t> AnalysisFeatureList;
+ class Bundle;
+ typedef std::vector<boost::shared_ptr<Bundle> > BundleList;
+
} // namespace ARDOUR
std::istream& operator>>(std::istream& o, ARDOUR::SampleFormat& sf);