+ int set_state (const XMLNode&, int version);
+
+ bool destructive() const { return (_flags & Destructive); }
+ bool writable () const { return (_flags & Writable); }
+ virtual bool set_destructive (bool /*yn*/) { return false; }
+ virtual bool length_mutable() const { return false; }
+
+ static PBD::Signal1<void,Source*> SourceCreated;
+ PBD::Signal1<void,boost::shared_ptr<Source> > Switched;
+
+ bool has_been_analysed() const;
+ virtual bool can_be_analysed() const { return false; }
+ virtual void set_been_analysed (bool yn);
+ virtual bool check_for_analysis_data_on_disk();
+
+ PBD::Signal0<void> AnalysisChanged;
+
+ AnalysisFeatureList transients;
+ std::string get_transients_path() const;
+ int load_transients (const std::string&);
+
+ sframes_t timeline_position() const { return _timeline_position; }
+ virtual void set_timeline_position (sframes_t pos);
+
+ void set_allow_remove_if_empty (bool yn);