- if (port_has_prefix (p, "system:") ||
- port_has_prefix (p, "alsa_pcm") ||
- port_has_prefix (p, "ardour:")) {
- extra_system.push_back (p);
- } else {
- extra_other.push_back (p);
+ /* special hack: ignore MIDI ports labelled Midi-Through. these
+ are basically useless and mess things up for default
+ connections.
+ */
+
+ if (p.find ("Midi-Through") != string::npos) {
+ ++s;
+ continue;
+ }
+
+ /* special hack: ignore our monitor inputs (which show up here because
+ we excluded them earlier.
+ */
+
+ string lp = p;
+ boost::to_lower (lp);
+
+ if ((lp.find (N_(":monitor")) != string::npos) &&
+ (lp.find (lpn) != string::npos)) {
+ ++s;
+ continue;
+ }
+
+ /* can't use the audio engine for this as we
+ * are looking at ports not owned by the
+ * application, and the audio engine/port
+ * manager doesn't seem them.
+ */
+
+ PortEngine::PortHandle ph = AudioEngine::instance()->port_engine().get_port_by_name (p);
+ if (ph) {
+ DataType t (AudioEngine::instance()->port_engine().port_data_type (ph));
+ if (t != DataType::NIL) {
+ if (port_has_prefix (p, N_("system:")) ||
+ port_has_prefix (p, N_("alsa_pcm:")) ||
+ port_has_prefix (p, N_("alsa_midi:"))) {
+ extra_system[t].push_back (p);
+ } else if (port_has_prefix (p, lpnc)) {
+ /* Hide scene ports from non-Tracks Live builds */
+ if (!ARDOUR::Profile->get_trx()) {
+ if (p.find (_("Scene ")) != string::npos) {
+ ++s;
+ continue;
+ }
+ }
+ extra_program[t].push_back (p);
+ } else {
+ extra_other[t].push_back (p);
+ }
+ }