+ /* two non-Ardour ports; things are slightly more involved */
+ /* XXX: is this the easiest way to do this? */
+ /* XXX: isn't this very inefficient? */
+
+ jack_client_t* jack = _session->engine().jack ();
+ jack_port_t* jp = jack_port_by_name (jack, i->c_str());
+ if (jp == 0) {
+ return PortMatrixNode::NOT_ASSOCIATED;
+ }
+
+ char const ** c = jack_port_get_all_connections (jack, jp);
+
+ char const ** p = c;
+
+ while (p && *p != 0) {
+ if (strcmp (*p, j->c_str()) == 0) {
+ free (c);
+ return PortMatrixNode::ASSOCIATED;
+ }
+ ++p;
+ }
+
+ free (c);
+ return PortMatrixNode::NOT_ASSOCIATED;