summaryrefslogtreecommitdiff
path: root/libs/ardour/session_state.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/session_state.cc')
-rw-r--r--libs/ardour/session_state.cc18
1 files changed, 13 insertions, 5 deletions
diff --git a/libs/ardour/session_state.cc b/libs/ardour/session_state.cc
index 9b142a2ef9..32e31580af 100644
--- a/libs/ardour/session_state.cc
+++ b/libs/ardour/session_state.cc
@@ -2296,6 +2296,12 @@ Session::find_all_sources (string path, set<string>& result)
XMLProperty* prop;
+ if ((prop = (*niter)->property (X_("type"))) == 0) {
+ continue;
+ }
+
+ DataType type (prop->value());
+
if ((prop = (*niter)->property (X_("name"))) == 0) {
continue;
}
@@ -2304,12 +2310,14 @@ Session::find_all_sources (string path, set<string>& result)
/* external file, ignore */
continue;
}
+
+ Glib::ustring found_path;
+ bool is_new;
+ uint16_t chan;
- sys::path source_path = _session_dir->sound_path ();
-
- source_path /= prop->value ();
-
- result.insert (source_path.to_string ());
+ if (FileSource::find (type, prop->value(), true, is_new, chan, found_path)) {
+ result.insert (found_path);
+ }
}
return 0;