mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-11 09:06:33 +01:00
Couple of bug fixes which show up when undoing solo state. Also a few comments.
git-svn-id: svn://localhost/ardour2/branches/3.0@4331 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
e8ab0cb95a
commit
be655cc5af
2 changed files with 11 additions and 8 deletions
|
|
@ -775,22 +775,24 @@ Panner::reset (uint32_t nouts, uint32_t npans)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nouts < 2) {
|
if (nouts < 2) {
|
||||||
|
/* no need for panning with less than 2 outputs */
|
||||||
goto send_changed;
|
goto send_changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (nouts) {
|
switch (nouts) {
|
||||||
case 0:
|
case 0:
|
||||||
|
/* XXX: this can never happen */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
|
/* XXX: this can never happen */
|
||||||
fatal << _("programming error:")
|
fatal << _("programming error:")
|
||||||
<< X_("Panner::reset() called with a single output")
|
<< X_("Panner::reset() called with a single output")
|
||||||
<< endmsg;
|
<< endmsg;
|
||||||
/*NOTREACHED*/
|
/*NOTREACHED*/
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2:
|
case 2: // line
|
||||||
/* line */
|
|
||||||
outputs.push_back (Output (0, 0));
|
outputs.push_back (Output (0, 0));
|
||||||
outputs.push_back (Output (1.0, 0));
|
outputs.push_back (Output (1.0, 0));
|
||||||
|
|
||||||
|
|
@ -899,6 +901,8 @@ Panner::remove (uint32_t which)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** Remove all our StreamPanners */
|
||||||
void
|
void
|
||||||
Panner::clear_panners ()
|
Panner::clear_panners ()
|
||||||
{
|
{
|
||||||
|
|
@ -1060,7 +1064,7 @@ Panner::set_state (const XMLNode& node)
|
||||||
|
|
||||||
/* note that we assume that all the stream panners
|
/* note that we assume that all the stream panners
|
||||||
are of the same type. pretty good
|
are of the same type. pretty good
|
||||||
assumption, but its still an assumption.
|
assumption, but it's still an assumption.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
sp = pan_plugins[i].factory (*this, Evoral::Parameter(PanAutomation, 0, num_panners));
|
sp = pan_plugins[i].factory (*this, Evoral::Parameter(PanAutomation, 0, num_panners));
|
||||||
|
|
@ -1090,7 +1094,7 @@ Panner::set_state (const XMLNode& node)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
reset(num_panners, outputs.size());
|
reset (outputs.size (), num_panners);
|
||||||
/* don't try to do old-school automation loading if it wasn't marked as existing */
|
/* don't try to do old-school automation loading if it wasn't marked as existing */
|
||||||
|
|
||||||
if ((prop = node.property (X_("automation")))) {
|
if ((prop = node.property (X_("automation")))) {
|
||||||
|
|
|
||||||
|
|
@ -129,9 +129,7 @@ Route::~Route ()
|
||||||
free ((void*)(i->first));
|
free ((void*)(i->first));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_control_outs) {
|
|
||||||
delete _control_outs;
|
delete _control_outs;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
@ -2325,6 +2323,7 @@ Route::_set_state (const XMLNode& node, bool call_base)
|
||||||
string coutname = _name;
|
string coutname = _name;
|
||||||
coutname += _("[control]");
|
coutname += _("[control]");
|
||||||
|
|
||||||
|
delete _control_outs;
|
||||||
_control_outs = new IO (_session, coutname);
|
_control_outs = new IO (_session, coutname);
|
||||||
_control_outs->set_state (**(child->children().begin()));
|
_control_outs->set_state (**(child->children().begin()));
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue