Fix some confusion about relative / non-relative port names. Add some asserts to keep track of what is happening.
git-svn-id: svn://localhost/ardour2/branches/3.0@4424 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
8097c13d38
commit
90ac43a8d8
@ -69,7 +69,7 @@ IOSelector::setup ()
|
||||
char buf[32];
|
||||
snprintf (buf, sizeof(buf), _("out %d"), j + 1);
|
||||
_our_bundle->add_channel (buf);
|
||||
_our_bundle->add_port_to_channel (j, i->name());
|
||||
_our_bundle->add_port_to_channel (j, _session.engine().make_port_name_non_relative (i->name()));
|
||||
++j;
|
||||
}
|
||||
|
||||
@ -82,7 +82,7 @@ IOSelector::setup ()
|
||||
char buf[32];
|
||||
snprintf (buf, sizeof(buf), _("in %d"), j + 1);
|
||||
_our_bundle->add_channel (buf);
|
||||
_our_bundle->add_port_to_channel (j, i->name());
|
||||
_our_bundle->add_port_to_channel (j, _session.engine().make_port_name_non_relative (i->name()));
|
||||
++j;
|
||||
}
|
||||
|
||||
@ -152,9 +152,10 @@ IOSelector::get_state (
|
||||
for (ARDOUR::Bundle::PortList::const_iterator j = other_ports.begin(); j != other_ports.end(); ++j) {
|
||||
|
||||
Port* f = _session.engine().get_port_by_name (*i);
|
||||
if (!f) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/* since we are talking about an IO, our ports should all have an associated Port *,
|
||||
so the above call should never fail */
|
||||
assert (f);
|
||||
|
||||
if (!f->connected_to (*j)) {
|
||||
/* if any one thing is not connected, all bets are off */
|
||||
|
@ -837,6 +837,8 @@ AudioEngine::frames_per_cycle ()
|
||||
Port *
|
||||
AudioEngine::get_port_by_name (const string& portname)
|
||||
{
|
||||
assert (portname.find_first_of (':') != string::npos);
|
||||
|
||||
Glib::Mutex::Lock lm (_process_lock);
|
||||
return get_port_by_name_locked (portname);
|
||||
}
|
||||
|
@ -47,12 +47,13 @@ Bundle::channel_ports (uint32_t c) const
|
||||
|
||||
/** Add an association between one of our channels and a port.
|
||||
* @param ch Channel index.
|
||||
* @param portname port name to associate with.
|
||||
* @param portname full port name to associate with (including prefix).
|
||||
*/
|
||||
void
|
||||
Bundle::add_port_to_channel (uint32_t ch, string portname)
|
||||
{
|
||||
assert (ch < nchannels());
|
||||
assert (portname.find_first_of (':') != string::npos);
|
||||
|
||||
{
|
||||
Glib::Mutex::Lock lm (_channel_mutex);
|
||||
@ -99,10 +100,15 @@ Bundle::operator== (const Bundle& other) const
|
||||
}
|
||||
|
||||
|
||||
/** Set a single port to be associated with a channel, removing any others.
|
||||
* @param ch Channel.
|
||||
* @param portname Full port name, including prefix.
|
||||
*/
|
||||
void
|
||||
Bundle::set_port (uint32_t ch, string portname)
|
||||
{
|
||||
assert (ch < nchannels());
|
||||
assert (portname.find_first_of (':') != string::npos);
|
||||
|
||||
{
|
||||
Glib::Mutex::Lock lm (_channel_mutex);
|
||||
|
@ -2601,7 +2601,7 @@ IO::setup_bundles_for_inputs_and_outputs ()
|
||||
for (uint32_t i = 0; i < ni; ++i) {
|
||||
snprintf (buf, sizeof(buf), _("in %d"), (i + 1));
|
||||
_bundle_for_inputs->add_channel (buf);
|
||||
_bundle_for_inputs->set_port (i, inputs().port(i)->name());
|
||||
_bundle_for_inputs->set_port (i, _session.engine().make_port_name_non_relative (inputs().port(i)->name()));
|
||||
}
|
||||
|
||||
snprintf(buf, sizeof (buf), _("%s out"), _name.c_str());
|
||||
@ -2610,7 +2610,7 @@ IO::setup_bundles_for_inputs_and_outputs ()
|
||||
for (uint32_t i = 0; i < no; ++i) {
|
||||
snprintf (buf, sizeof(buf), _("out %d"), (i + 1));
|
||||
_bundle_for_outputs->add_channel (buf);
|
||||
_bundle_for_outputs->set_port (i, outputs().port(i)->name());
|
||||
_bundle_for_outputs->set_port (i, _session.engine().make_port_name_non_relative (outputs().port(i)->name()));
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user