int
AudioEngine::connect (const string& source, const string& destination)
{
- /* caller must hold process lock */
-
int ret;
if (!_running) {
string d = make_port_name_non_relative (destination);
- Port* src = get_port_by_name_locked (s);
- Port* dst = get_port_by_name_locked (d);
+ Port* src = get_port_by_name (s);
+ Port* dst = get_port_by_name (d);
if (src) {
ret = src->connect (d);
int
AudioEngine::disconnect (const string& source, const string& destination)
{
- /* caller must hold process lock */
-
int ret;
if (!_running) {
string s = make_port_name_non_relative (source);
string d = make_port_name_non_relative (destination);
- Port* src = get_port_by_name_locked (s);
- Port* dst = get_port_by_name_locked (d);
+ Port* src = get_port_by_name (s);
+ Port* dst = get_port_by_name (d);
if (src) {
ret = src->disconnect (d);
AudioEngine::get_port_by_name (const string& portname)
{
string s;
- if (portname.find_first_of (':') == string::npos) {
- s = make_port_name_non_relative (portname);
- } else {
- s = portname;
- }
-
- Glib::Mutex::Lock lm (_process_lock);
- return get_port_by_name_locked (s);
-}
-
-Port *
-AudioEngine::get_port_by_name_locked (const string& portname)
-{
- /* caller must hold process lock */
if (!_running) {
if (!_has_run) {
- fatal << _("get_port_by_name_locked() called before engine was started") << endmsg;
+ fatal << _("get_port_by_name() called before engine was started") << endmsg;
/*NOTREACHED*/
} else {
return 0;
}
}
+ if (portname.find_first_of (':') == string::npos) {
+ s = make_port_name_non_relative (portname);
+ } else {
+ s = portname;
+ }
+
if (portname.substr (0, jack_client_name.length ()) != jack_client_name) {
/* not an ardour: port */
return 0;
{
Glib::Mutex::Lock lm (state_lock);
- if (!(input_change_pending.type & change.type)) {
- input_change_pending.type = IOChange::Type (input_change_pending.type | change.type);
- _session.request_input_change_handling ();
- }
+ if (change.type & IOChange::ConfigurationChanged) {
+ if (!(input_change_pending.type & change.type)) {
+ input_change_pending.type = IOChange::Type (input_change_pending.type | change.type);
+ _session.request_input_change_handling ();
+ }
+ }
}
void
int
IO::disconnect (Port* our_port, string other_port, void* src)
{
- assert (!AudioEngine::instance()->process_lock().trylock());
-
if (other_port.length() == 0 || our_port == 0) {
return 0;
}
-
{
Glib::Mutex::Lock lm (io_lock);
int
IO::connect (Port* our_port, string other_port, void* src)
{
- assert (!AudioEngine::instance()->process_lock().trylock());
-
if (other_port.length() == 0 || our_port == 0) {
return 0;
}
int
IO::disconnect (void* src)
{
- BLOCK_PROCESS_CALLBACK ();
-
{
Glib::Mutex::Lock lm (io_lock);
int
Port::connect (std::string const & other)
{
- /* caller must hold process lock */
-
std::string const other_shrt = _engine->make_port_name_non_relative (other);
std::string const this_shrt = _engine->make_port_name_non_relative (_name);
int
Port::disconnect (std::string const & other)
{
- /* caller must hold process lock */
-
std::string const other_shrt = _engine->make_port_name_non_relative (other);
std::string const this_shrt = _engine->make_port_name_non_relative (_name);