consolidate BundleAdded/Remove signal
[ardour.git] / libs / ardour / ardour / file_source.h
index f1b42aa2ae213656497b6ada956bea84b7b767b2..ac073d934ccc4dd38b0652bae43fb793bb55613a 100644 (file)
@@ -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,7 +42,7 @@ 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 ();
 
@@ -80,11 +80,16 @@ public:
 
        virtual void set_path (const std::string&);
        
-       static PBD::Signal3<int,std::string,std::string,std::vector<std::string> > AmbiguousFileName;
+       static PBD::Signal2<int,std::string,std::vector<std::string> > AmbiguousFileName;
 
+       void existence_check ();
        virtual void prevent_deletion ();
 
-       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,
@@ -105,8 +110,6 @@ protected:
        uint16_t    _channel;
        bool        _within_session;
        std::string _origin;
-       bool        _open;
-
 };
 
 } // namespace ARDOUR