X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Ffile_source.h;h=0f3b9bce669388690c33d58f77854fcb09651e00;hb=8f8e32881cccf4e5aecbb8f9a7751414ff4e2d78;hp=37a7e67d2ef4c35a460ba151941c84f15ce41c14;hpb=7f18913e6de848dddcb4a76841992dd2d6796d52;p=ardour.git diff --git a/libs/ardour/ardour/file_source.h b/libs/ardour/ardour/file_source.h index 37a7e67d2e..0f3b9bce66 100644 --- a/libs/ardour/ardour/file_source.h +++ b/libs/ardour/ardour/file_source.h @@ -46,7 +46,7 @@ class LIBARDOUR_API FileSource : virtual public Source { public: virtual ~FileSource (); - virtual const std::string& path() const { return _path; } + const std::string& path() const { return _path; } virtual bool safe_file_extension (const std::string& path) const = 0; @@ -56,9 +56,12 @@ public: void mark_immutable_except_write(); void mark_nonremovable (); - const std::string& take_id () const { return _take_id; } + const std::string& take_id () const { return _take_id; } bool within_session () const { return _within_session; } uint16_t channel() const { return _channel; } + float gain() const { return _gain; } + + virtual void set_gain (float g, bool temporarily = false) { _gain = g; } int set_state (const XMLNode&, int version); @@ -79,13 +82,20 @@ 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; void existence_check (); virtual void prevent_deletion (); -protected: + /** Rename the file on disk referenced by this source to \param newname + */ + int rename (const std::string& name); + + virtual void close () = 0; + + protected: FileSource (Session& session, DataType type, const std::string& path, const std::string& origin, @@ -104,8 +114,7 @@ protected: uint16_t _channel; bool _within_session; std::string _origin; - bool _open; - + float _gain; }; } // namespace ARDOUR