- Glib::Mutex playlist_lock;
- typedef std::map<boost::shared_ptr<ARDOUR::Playlist>, uint32_t > PlaylistMap;
- PlaylistMap _playlists;
+ 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);
+
+ Glib::Mutex& mutex() { return _lock; }
+ Flag flags() const { return _flags; }
+
+ protected:
+ DataType _type;
+ Flag _flags;
+ time_t _timestamp;
+ sframes_t _timeline_position;
+ bool _analysed;
+ mutable Glib::Mutex _lock;
+ mutable Glib::Mutex _analysis_lock;
+ Glib::Mutex _playlist_lock;