Various adjustments to user bundle handling, with the general aim of allowing the user to create meaningful bundles with respect to their sound card an outboard setup, and having those user bundles take priority over ardour-generated ones.

git-svn-id: svn://localhost/ardour2/branches/3.0@6050 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Carl Hetherington 2009-11-10 03:16:57 +00:00
parent da03bc931b
commit dbb0b9ca4f
9 changed files with 135 additions and 41 deletions

View file

@ -89,6 +89,7 @@ class Bundle : public sigc::trackable
void connect (boost::shared_ptr<Bundle>, AudioEngine &);
void disconnect (boost::shared_ptr<Bundle>, AudioEngine &);
bool connected_to (boost::shared_ptr<Bundle>, AudioEngine &);
bool has_same_ports (boost::shared_ptr<Bundle>) const;
void set_name (std::string const &);

View file

@ -466,3 +466,26 @@ Bundle::set_name (string const & n)
_name = n;
emit_changed (NameChanged);
}
/** @param b Other bundle.
* @return true if b has the same number of channels as this bundle, and those channels have corresponding ports.
*/
bool
Bundle::has_same_ports (boost::shared_ptr<Bundle> b) const
{
uint32_t const N = nchannels ();
if (b->nchannels() != N) {
return false;
}
/* XXX: probably should sort channel port lists before comparing them */
for (uint32_t i = 0; i < N; ++i) {
if (channel_ports (i) != b->channel_ports (i)) {
return false;
}
}
return true;
}