}
if (vec.len[0]) {
+ if (!vec.buf[0]->owns_buffer()) {
+ vec.buf[0]->set_buffer (0, 0, true);
+ }
vec.buf[0]->set (msg, msglen, timestamp);
} else {
+ if (!vec.buf[1]->owns_buffer()) {
+ vec.buf[1]->set_buffer (0, 0, true);
+ }
vec.buf[1]->set (msg, msglen, timestamp);
}
XMLNode& root (Port::get_state ());
if (_jack_output_port) {
-
+
const char** jc = jack_port_get_connections (_jack_output_port);
string connection_string;
if (jc) {
}
free (jc);
}
-
+
if (!connection_string.empty()) {
root.add_property ("outbound", connection_string);
}
+ } else {
+ if (!_outbound_connections.empty()) {
+ root.add_property ("outbound", _outbound_connections);
+ }
}
if (_jack_input_port) {
if (!connection_string.empty()) {
root.add_property ("inbound", connection_string);
}
+ } else {
+ if (!_inbound_connections.empty()) {
+ root.add_property ("inbound", _inbound_connections);
+ }
}
return root;
Port::set_state (node);
const XMLProperty* prop;
- if ((prop = node.property ("outbound")) != 0 && _jack_output_port) {
+ if ((prop = node.property ("inbound")) != 0 && _jack_input_port) {
_inbound_connections = prop->value ();
}
- if ((prop = node.property ("inbound")) != 0 && _jack_input_port) {
+ if ((prop = node.property ("outbound")) != 0 && _jack_output_port) {
_outbound_connections = prop->value();
}
}
split (_inbound_connections, ports, ',');
for (vector<string>::iterator x = ports.begin(); x != ports.end(); ++x) {
if (_jack_client) {
- jack_connect (_jack_client, jack_port_name (_jack_output_port), (*x).c_str());
+ jack_connect (_jack_client, (*x).c_str(), jack_port_name (_jack_input_port));
/* ignore failures */
}
}
split (_outbound_connections, ports, ',');
for (vector<string>::iterator x = ports.begin(); x != ports.end(); ++x) {
if (_jack_client) {
- jack_connect (_jack_client, (*x).c_str(), jack_port_name (_jack_input_port));
+ jack_connect (_jack_client, jack_port_name (_jack_output_port), (*x).c_str());
/* ignore failures */
}
}