30 #include <glibmm/threads.h>
44 public std::enable_shared_from_this<ARDOUR::Source>
52 RemovableIfEmpty = 0x10,
53 RemoveAtDestroy = 0x20,
73 void stamp (time_t when) { _timestamp = when; }
81 const std::string&
take_id ()
const {
return _take_id; }
140 Glib::Threads::RWLock&
mutex() {
return _lock; }
146 bool used()
const {
return use_count() > 0; }
148 uint32_t
level()
const {
return _level; }
178 mutable Glib::Threads::RWLock
_lock;
size_t n_captured_xruns() const
virtual timepos_t length() const
Source(Session &, DataType type, const std::string &name, Flag flags=Flag(0))
std::vector< SegmentDescriptor > SegmentDescriptors
AnalysisFeatureList transients
const std::string & take_id() const
std::atomic< int > _use_count
virtual void set_been_analysed(bool yn)
void set_ancestor_name(const std::string &name)
bool has_been_analysed() const
Glib::Threads::Mutex _analysis_lock
bool move_cue_marker(CueMarker const &, timepos_t const &source_relative_position)
bool remove_cue_marker(CueMarker const &)
bool rename_cue_marker(CueMarker &, std::string const &)
timecnt_t time_since_capture_start(timepos_t const &pos)
XMLNode & get_state() const
int set_state(XMLNode const &, int version)
void set_allow_remove_if_empty(bool yn)
bool have_natural_position() const
virtual bool can_be_analysed() const
void fix_writable_flags()
PBD::Signal< void()> AnalysisChanged
void set_captured_for(std::string str)
timepos_t _natural_position
std::string ancestor_name()
bool get_segment_descriptor(TimelineRange const &, SegmentDescriptor &)
Glib::Threads::RWLock _lock
void set_captured_marks(CueMarkers const &marks)
std::string _ancestor_name
Glib::Threads::RWLock::ReaderLock ReaderLock
void set_captured_xruns(XrunPositions const &xruns)
CueMarkers const & cue_markers() const
virtual bool empty() const
virtual void inc_use_count()
int set_cue_state(XMLNode const &, int)
int set_segment_descriptor(SegmentDescriptor const &)
static PBD::Signal< void(Source *)> SourceCreated
virtual void set_natural_position(timepos_t const &pos)
Glib::Threads::RWLock::WriterLock WriterLock
bool _have_natural_position
virtual timepos_t natural_position() const
Source(Session &, const XMLNode &)
virtual void mark_streaming_write_completed(const WriterLock &lock, Temporal::timecnt_t const &duration)=0
virtual bool check_for_analysis_data_on_disk()
virtual void update_length(timepos_t const &dur)
XMLNode & get_cue_state() const
virtual void dec_use_count()
bool add_cue_marker(CueMarker const &)
SegmentDescriptors segment_descriptors
std::string _captured_for
virtual bool length_mutable() const
void set_take_id(std::string id)
PBD::Signal< void()> CueMarkersChanged
virtual void session_saved()
int load_transients(const std::string &)
std::string get_transients_path() const
XrunPositions const & captured_xruns() const
virtual void mark_streaming_write_started(const WriterLock &lock)
std::string captured_for() const
Glib::Threads::RWLock & mutex()
GtkImageIconNameData name
std::list< samplepos_t > AnalysisFeatureList
std::set< CueMarker > CueMarkers
std::vector< samplepos_t > XrunPositions