more correct semantics for reserved IO name checking
[ardour.git] / libs / ardour / session.cc
index 7eb608ff29da13be308c917c57d4abfb68b733bd..f57731b2454ce9bdc3cbd4c2ab758c4ad5213fcd 100644 (file)
@@ -3758,9 +3758,12 @@ Session::io_name_is_legal (const std::string& name)
 
        for (vector<string>::const_iterator reserved = reserved_io_names.begin(); reserved != reserved_io_names.end(); ++reserved) {
                if (name == *reserved) {
-                       if (route_by_name (*reserved)) {
-                               return false;
+                       if (!route_by_name (*reserved)) {
+                               /* first instance of a reserved name is allowed */
+                               return true;
                        }
+                       /* all other instances of a reserved name are not allowed */
+                       return false;
                }
        }