don't force rename of reserved route/IO names if the name isn't taken yet
authorPaul Davis <paul@linuxaudiosystems.com>
Sun, 8 Nov 2015 03:15:59 +0000 (22:15 -0500)
committerPaul Davis <paul@linuxaudiosystems.com>
Sun, 8 Nov 2015 03:16:07 +0000 (22:16 -0500)
libs/ardour/session.cc

index a3b82d9d4ba281bf2ed54bd7ae29db9b53e150f6..900be1afbc8e1e13814a2e883b0ab2c2716268b9 100644 (file)
@@ -2214,9 +2214,14 @@ Session::find_route_name (string const & base, uint32_t& id, string& name, bool
 
        for (vector<string>::const_iterator reserved = reserved_io_names.begin(); reserved != reserved_io_names.end(); ++reserved) {
                if (base == *reserved) {
-                       definitely_add_number = true;
-                       if (id < 1) {
-                               id = 1;
+                       /* Check if this reserved name already exists, and if
+                          so, disallow it without a numeric suffix.
+                       */
+                       if (route_by_name (*reserved)) {
+                               definitely_add_number = true;
+                               if (id < 1) {
+                                       id = 1;
+                               }
                        }
                        break;
                }
@@ -3753,7 +3758,11 @@ 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) {
-                       return false;
+                       if (route_by_name (*reserved)) {
+                               return false;
+                       } else {
+                               return true;
+                       }
                }
        }