namespace ARDOUR {
class Session;
-class Playlist;
class Source : public SessionObject, public boost::noncopyable
{
virtual void session_saved() {}
XMLNode& get_state ();
- int set_state (const XMLNode&, int version = 3000);
-
+ 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; }
- void use () { _in_use++; }
- void disuse () { if (_in_use) { _in_use--; } }
-
- void add_playlist (boost::shared_ptr<ARDOUR::Playlist>);
- void remove_playlist (boost::weak_ptr<ARDOUR::Playlist>);
-
- uint32_t used() const;
-
static sigc::signal<void,Source*> SourceCreated;
sigc::signal<void,boost::shared_ptr<Source> > Switched;
mutable Glib::Mutex _analysis_lock;
Glib::Mutex _playlist_lock;
- typedef std::map<boost::shared_ptr<ARDOUR::Playlist>, uint32_t > PlaylistMap;
- PlaylistMap _playlists;
-
private:
- uint32_t _in_use;
void fix_writable_flags ();
};