add more DEBUG::Solo output ; fix assignment of remote control ID's from XML (#5079)
git-svn-id: svn://localhost/ardour2/branches/3.0@13542 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
0b55529ec4
commit
f0247ebe6a
|
@ -603,6 +603,8 @@ class Route : public SessionObject, public Automatable, public RouteGroupMember,
|
|||
bool _last_custom_meter_was_at_end;
|
||||
|
||||
void reset_instrument_info ();
|
||||
|
||||
void set_remote_control_id_internal (uint32_t id, bool notify_class_listeners = true);
|
||||
};
|
||||
|
||||
} // namespace ARDOUR
|
||||
|
|
|
@ -202,12 +202,13 @@ Route::set_remote_control_id (uint32_t id, bool notify_class_listeners)
|
|||
if (Config->get_remote_model() != UserOrdered) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (id < 1) {
|
||||
error << _("Remote Control ID's start at one, not zero") << endmsg;
|
||||
return;
|
||||
}
|
||||
|
||||
set_remote_control_id_internal (id, notify_class_listeners);
|
||||
}
|
||||
|
||||
void
|
||||
Route::set_remote_control_id_internal (uint32_t id, bool notify_class_listeners)
|
||||
{
|
||||
/* force IDs for master/monitor busses and prevent
|
||||
any other route from accidentally getting these IDs
|
||||
(i.e. legacy sessions)
|
||||
|
@ -221,6 +222,11 @@ Route::set_remote_control_id (uint32_t id, bool notify_class_listeners)
|
|||
id = MonitorBusRemoteControlID;
|
||||
}
|
||||
|
||||
if (id < 1) {
|
||||
error << _("Remote Control ID's start at one, not zero") << endmsg;
|
||||
return;
|
||||
}
|
||||
|
||||
/* don't allow it to collide */
|
||||
|
||||
if (!is_master () && !is_monitor() &&
|
||||
|
@ -661,6 +667,7 @@ void
|
|||
Route::set_solo (bool yn, void *src)
|
||||
{
|
||||
if (_solo_safe) {
|
||||
DEBUG_TRACE (DEBUG::Solo, string_compose ("%1 ignore solo change due to solo-safe\n", name()));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -669,6 +676,9 @@ Route::set_solo (bool yn, void *src)
|
|||
return;
|
||||
}
|
||||
|
||||
DEBUG_TRACE (DEBUG::Solo, string_compose ("%1: set solo => %2, src: %3 grp ? %4 currently self-soloed ? %5\n",
|
||||
name(), yn, src, (src == _route_group), self_soloed()));
|
||||
|
||||
if (self_soloed() != yn) {
|
||||
set_self_solo (yn);
|
||||
set_mute_master_solo ();
|
||||
|
@ -680,6 +690,7 @@ Route::set_solo (bool yn, void *src)
|
|||
void
|
||||
Route::set_self_solo (bool yn)
|
||||
{
|
||||
DEBUG_TRACE (DEBUG::Solo, string_compose ("%1: set SELF solo => %2\n", name(), yn));
|
||||
_self_solo = yn;
|
||||
}
|
||||
|
||||
|
@ -687,9 +698,13 @@ void
|
|||
Route::mod_solo_by_others_upstream (int32_t delta)
|
||||
{
|
||||
if (_solo_safe) {
|
||||
DEBUG_TRACE (DEBUG::Solo, string_compose ("%1 ignore solo-by-upstream due to solo-safe\n", name()));
|
||||
return;
|
||||
}
|
||||
|
||||
DEBUG_TRACE (DEBUG::Solo, string_compose ("%1 mod solo-by-upstream by %2, current up = %3 down = %4\n",
|
||||
name(), delta, _soloed_by_others_upstream, _soloed_by_others_downstream));
|
||||
|
||||
uint32_t old_sbu = _soloed_by_others_upstream;
|
||||
|
||||
if (delta < 0) {
|
||||
|
@ -743,9 +758,13 @@ void
|
|||
Route::mod_solo_by_others_downstream (int32_t delta)
|
||||
{
|
||||
if (_solo_safe) {
|
||||
DEBUG_TRACE (DEBUG::Solo, string_compose ("%1 ignore solo-by-downstream due to solo safe\n", name()));
|
||||
return;
|
||||
}
|
||||
|
||||
DEBUG_TRACE (DEBUG::Solo, string_compose ("%1 mod solo-by-downstream by %2, current up = %3 down = %4\n",
|
||||
name(), delta, _soloed_by_others_upstream, _soloed_by_others_downstream));
|
||||
|
||||
if (delta < 0) {
|
||||
if (_soloed_by_others_downstream >= (uint32_t) abs (delta)) {
|
||||
_soloed_by_others_downstream += delta;
|
||||
|
@ -2166,7 +2185,7 @@ Route::set_state (const XMLNode& node, int version)
|
|||
if ((prop = child->property (X_("id"))) != 0) {
|
||||
int32_t x;
|
||||
sscanf (prop->value().c_str(), "%d", &x);
|
||||
set_remote_control_id (x);
|
||||
set_remote_control_id_internal (x);
|
||||
}
|
||||
|
||||
} else if (child->name() == X_("MuteMaster")) {
|
||||
|
@ -2427,7 +2446,7 @@ Route::set_state_2X (const XMLNode& node, int version)
|
|||
if ((prop = child->property (X_("id"))) != 0) {
|
||||
int32_t x;
|
||||
sscanf (prop->value().c_str(), "%d", &x);
|
||||
set_remote_control_id (x);
|
||||
set_remote_control_id_internal (x);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -2549,14 +2549,17 @@ Session::route_solo_changed (bool self_solo_change, void* /*src*/, boost::weak_p
|
|||
DEBUG_TRACE (DEBUG::Solo, string_compose ("check feed from %1\n", (*i)->name()));
|
||||
|
||||
if ((*i)->feeds (route, &via_sends_only)) {
|
||||
DEBUG_TRACE (DEBUG::Solo, string_compose ("\tthere is a feed from %1\n", (*i)->name()));
|
||||
if (!via_sends_only) {
|
||||
if (!route->soloed_by_others_upstream()) {
|
||||
(*i)->mod_solo_by_others_downstream (delta);
|
||||
}
|
||||
} else {
|
||||
DEBUG_TRACE (DEBUG::Solo, string_compose ("\tthere is a send-only feed from %1\n", (*i)->name()));
|
||||
}
|
||||
in_signal_flow = true;
|
||||
} else {
|
||||
DEBUG_TRACE (DEBUG::Solo, "\tno feed from\n");
|
||||
DEBUG_TRACE (DEBUG::Solo, string_compose ("\tno feed from %1\n", (*i)->name()));
|
||||
}
|
||||
|
||||
DEBUG_TRACE (DEBUG::Solo, string_compose ("check feed to %1\n", (*i)->name()));
|
||||
|
@ -2577,7 +2580,11 @@ Session::route_solo_changed (bool self_solo_change, void* /*src*/, boost::weak_p
|
|||
if (!route->soloed_by_others_downstream()) {
|
||||
DEBUG_TRACE (DEBUG::Solo, string_compose ("\tmod %1 by %2\n", (*i)->name(), delta));
|
||||
(*i)->mod_solo_by_others_upstream (delta);
|
||||
} else {
|
||||
DEBUG_TRACE (DEBUG::Solo, "\talready soloed by others downstream\n");
|
||||
}
|
||||
} else {
|
||||
DEBUG_TRACE (DEBUG::Solo, string_compose ("\tfeed to %1 ignored, sends-only\n", (*i)->name()));
|
||||
}
|
||||
in_signal_flow = true;
|
||||
} else {
|
||||
|
@ -2599,7 +2606,7 @@ Session::route_solo_changed (bool self_solo_change, void* /*src*/, boost::weak_p
|
|||
*/
|
||||
|
||||
for (RouteList::iterator i = uninvolved.begin(); i != uninvolved.end(); ++i) {
|
||||
DEBUG_TRACE (DEBUG::Solo, string_compose ("mute change for %1\n", (*i)->name()));
|
||||
DEBUG_TRACE (DEBUG::Solo, string_compose ("mute change for %1, which neither feeds or is fed by %2\n", (*i)->name(), route->name()));
|
||||
(*i)->mute_changed (this);
|
||||
}
|
||||
|
||||
|
@ -2649,6 +2656,9 @@ Session::update_route_solo_state (boost::shared_ptr<RouteList> r)
|
|||
_solo_isolated_cnt = isolated;
|
||||
IsolatedChanged (); /* EMIT SIGNAL */
|
||||
}
|
||||
|
||||
DEBUG_TRACE (DEBUG::Solo, string_compose ("solo state updated by session, soloed? %1 listeners %2 isolated %3\n",
|
||||
something_soloed, listeners, isolated));
|
||||
}
|
||||
|
||||
boost::shared_ptr<RouteList>
|
||||
|
|
Loading…
Reference in New Issue