X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Ffile_source.h;h=8cbbfed0d96047708f789a25aa2f2056a6769872;hb=8a128b33d38172ae525ac798c53bc105bc4e2c64;hp=52dca18feb4505741fcfe6f77038fb6d6691fb96;hpb=a6e0b60ae1df3676ba45eeb302108eecfe7a7797;p=ardour.git diff --git a/libs/ardour/ardour/file_source.h b/libs/ardour/ardour/file_source.h index 52dca18feb..8cbbfed0d9 100644 --- a/libs/ardour/ardour/file_source.h +++ b/libs/ardour/ardour/file_source.h @@ -28,7 +28,7 @@ namespace ARDOUR { -class MissingSource : public std::exception +class LIBARDOUR_API MissingSource : public std::exception { public: MissingSource (const std::string& p, DataType t) throw () @@ -42,9 +42,9 @@ class MissingSource : public std::exception }; /** A source associated with a file on disk somewhere */ -class FileSource : virtual public Source { +class LIBARDOUR_API FileSource : virtual public Source { public: - virtual ~FileSource () {} + virtual ~FileSource (); virtual const std::string& path() const { return _path; } @@ -74,6 +74,7 @@ public: void inc_use_count (); bool removable () const; + bool is_stub () const; const std::string& origin() const { return _origin; } @@ -81,6 +82,15 @@ public: static PBD::Signal2 > AmbiguousFileName; + void existence_check (); + virtual void prevent_deletion (); + + /** Rename the file on disk referenced by this source to \param newname + */ + int rename (const std::string& name); + + virtual void release_descriptor () {} + protected: FileSource (Session& session, DataType type, const std::string& path, @@ -102,7 +112,6 @@ protected: std::string _origin; bool _open; - void prevent_deletion (); }; } // namespace ARDOUR