prevent changing slave while slave is active

fix potential segfault: clock asking for slave's timecode
when the slave is not a Timecode-slave.

git-svn-id: svn://localhost/ardour2/branches/3.0@13455 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Robin Gareus 2012-11-12 16:49:11 +00:00
parent ad4d781477
commit c528c1178a
2 changed files with 16 additions and 1 deletions

View File

@ -69,6 +69,17 @@ when the pull up/down setting is non-zero."));
}
}
/* activating a slave is a session-property.
* The slave type is a RC property.
* When the slave is active is must not be reconfigured.
* This is a UI limitation, imposed by audio-clock and
* status displays which combine RC-config & session-properties.
*
* Notficy RCOptionEditor by emitting a signal if the active
* status changed:
*/
Config->ParameterChanged("sync-source");
ActionManager::toggle_config_state_foo ("Transport", "ToggleExternalSync", sigc::mem_fun (_session->config, &SessionConfiguration::set_external_sync), sigc::mem_fun (_session->config, &SessionConfiguration::get_external_sync));
}
}

View File

@ -1152,10 +1152,10 @@ RCOptionEditor::RCOptionEditor ()
_("Specify the Peak Volume of the generated LTC signal in dbFS. A good value is 0dBu ^= -18dbFS in an EBU calibrated system"));
add_option (_("Transport"), _ltc_volume_slider);
parameter_changed ("send-ltc");
#endif
parameter_changed ("sync-source");
parameter_changed ("send-ltc");
/* EDITOR */
@ -1795,6 +1795,10 @@ RCOptionEditor::parameter_changed (string const & p)
_solo_control_is_listen_control->set_sensitive (s);
_listen_position->set_sensitive (s);
} else if (p == "sync-source") {
_sync_source->set_sensitive (true);
if (_session) {
_sync_source->set_sensitive (_session->config.get_external_sync());
}
switch(Config->get_sync_source()) {
case ARDOUR::MTC:
case ARDOUR::LTC: