diff --git a/libs/ardour/ardour/file_source.h b/libs/ardour/ardour/file_source.h index 00fb74b426..9b4c2ccffc 100644 --- a/libs/ardour/ardour/file_source.h +++ b/libs/ardour/ardour/file_source.h @@ -79,6 +79,7 @@ public: const std::string& origin() const { return _origin; } virtual void set_path (const std::string&); + void replace_file (const std::string&); static PBD::Signal2 > AmbiguousFileName; diff --git a/libs/ardour/file_source.cc b/libs/ardour/file_source.cc index 32f8a1b124..726b223273 100644 --- a/libs/ardour/file_source.cc +++ b/libs/ardour/file_source.cc @@ -556,6 +556,15 @@ FileSource::set_path (const std::string& newpath) } } + +void +FileSource::replace_file (const std::string& newpath) +{ + close (); + _path = newpath; + _name = Glib::path_get_basename (newpath); +} + void FileSource::inc_use_count () {