ardour
Public Types | Public Member Functions | Public Attributes | Static Public Attributes | Protected Attributes | Private Member Functions | List of all members
ARDOUR::Source Class Referenceabstract

#include <source.h>

Inheritance diagram for ARDOUR::Source:
ARDOUR::SessionObject ARDOUR::SessionHandleRef PBD::StatefulDestructible PBD::ScopedConnectionList PBD::Stateful PBD::Destructible ARDOUR::AudioSource ARDOUR::FileSource ARDOUR::MidiSource ARDOUR::PlaylistSource ARDOUR::AudioFileSource ARDOUR::AudioPlaylistSource ARDOUR::AudioFileSource ARDOUR::SMFSource ARDOUR::MidiPlaylistSource ARDOUR::SMFSource ARDOUR::AudioPlaylistSource ARDOUR::MidiPlaylistSource

Public Types

enum  Flag {
  Writable = 0x1, CanRename = 0x2, Broadcast = 0x4, Removable = 0x8,
  RemovableIfEmpty = 0x10, RemoveAtDestroy = 0x20, NoPeakFile = 0x40, Destructive = 0x80,
  Empty = 0x100
}
 
typedef Glib::Threads::Mutex::Lock Lock
 

Public Member Functions

 Source (Session &, DataType type, const std::string &name, Flag flags=Flag(0))
 
 Source (Session &, const XMLNode &)
 
virtual ~Source ()
 
DataType type ()
 
time_t timestamp () const
 
void stamp (time_t when)
 
virtual bool empty () const =0
 
virtual framecnt_t length (framepos_t pos) const =0
 
virtual void update_length (framecnt_t cnt)=0
 
virtual framepos_t natural_position () const
 
void mark_for_remove ()
 
virtual void mark_streaming_write_started (const Lock &lock)
 
virtual void mark_streaming_write_completed (const Lock &lock)=0
 
virtual void session_saved ()
 
XMLNodeget_state ()
 
int set_state (const XMLNode &, int version)
 
bool destructive () const
 
bool writable () const
 
virtual bool set_destructive (bool)
 
virtual bool length_mutable () const
 
bool has_been_analysed () const
 
virtual bool can_be_analysed () const
 
virtual void set_been_analysed (bool yn)
 
virtual bool check_for_analysis_data_on_disk ()
 
std::string get_transients_path () const
 
int load_transients (const std::string &)
 
framepos_t timeline_position () const
 
virtual void set_timeline_position (framepos_t pos)
 
void set_allow_remove_if_empty (bool yn)
 
Glib::Threads::Mutex & mutex ()
 
Flag flags () const
 
virtual void inc_use_count ()
 
virtual void dec_use_count ()
 
int use_count () const
 
bool used () const
 
uint32_t level () const
 
std::string ancestor_name ()
 
void set_ancestor_name (const std::string &name)
 
- Public Member Functions inherited from ARDOUR::SessionObject
 SessionObject (Session &session, const std::string &name)
 
Sessionsession () const
 
std::string name () const
 
virtual bool set_name (const std::string &str)
 
- Public Member Functions inherited from ARDOUR::SessionHandleRef
 SessionHandleRef (ARDOUR::Session &s)
 
virtual ~SessionHandleRef ()
 
- Public Member Functions inherited from PBD::ScopedConnectionList
 ScopedConnectionList ()
 
virtual ~ScopedConnectionList ()
 
void add_connection (const UnscopedConnection &c)
 
void drop_connections ()
 
- Public Member Functions inherited from PBD::Stateful
 Stateful ()
 
virtual ~Stateful ()
 
virtual bool apply_changes (PropertyBase const &)
 
PropertyChange apply_changes (PropertyList const &)
 
const OwnedPropertyListproperties () const
 
void add_property (PropertyBase &s)
 
void add_extra_xml (XMLNode &)
 
XMLNodeextra_xml (const std::string &str, bool add_if_missing=false)
 
void save_extra_xml (const XMLNode &)
 
const PBD::IDid () const
 
bool set_id (const XMLNode &)
 
void set_id (const std::string &)
 
void reset_id ()
 
void clear_changes ()
 
virtual void clear_owned_changes ()
 
PropertyListget_changes_as_properties (Command *) const
 
virtual void rdiff (std::vector< Command * > &) const
 
bool changed () const
 
virtual PropertyListproperty_factory (const XMLNode &) const
 
virtual void suspend_property_changes ()
 
virtual void resume_property_changes ()
 
bool property_changes_suspended () const
 
- Public Member Functions inherited from PBD::Destructible
 Destructible ()
 
virtual ~Destructible ()
 
void drop_references ()
 

Public Attributes

PBD::Signal0< void > AnalysisChanged
 
AnalysisFeatureList transients
 
- Public Attributes inherited from PBD::Stateful
PBD::Signal1< void, const
PropertyChange & > 
PropertyChanged
 
- Public Attributes inherited from PBD::Destructible
PBD::Signal0< void > Destroyed
 
PBD::Signal0< void > DropReferences
 

Static Public Attributes

static PBD::Signal1< void,
Source * > 
SourceCreated
 
- Static Public Attributes inherited from PBD::Stateful
static int current_state_version = 0
 
static int loading_state_version = 0
 

Protected Attributes

DataType _type
 
Flag _flags
 
time_t _timestamp
 
framepos_t _timeline_position
 
bool _analysed
 
Glib::Threads::Mutex _lock
 
Glib::Threads::Mutex _analysis_lock
 
gint _use_count
 
uint32_t _level
 
std::string _ancestor_name
 
- Protected Attributes inherited from ARDOUR::SessionObject
PBD::Property< std::string > _name
 
- Protected Attributes inherited from ARDOUR::SessionHandleRef
ARDOUR::Session_session
 
- Protected Attributes inherited from PBD::Stateful
XMLNode_extra_xml
 
XMLNode_instant_xml
 
PBD::PropertyChange _pending_changed
 
Glib::Threads::Mutex _lock
 
std::string _xml_node_name
 name of node to use for this object in XML More...
 
OwnedPropertyList_properties
 

Private Member Functions

void fix_writable_flags ()
 

Additional Inherited Members

- Static Public Member Functions inherited from ARDOUR::SessionObject
static void make_property_quarks ()
 
- Protected Member Functions inherited from ARDOUR::SessionHandleRef
virtual void session_going_away ()
 
virtual void insanity_check ()
 
- Protected Member Functions inherited from PBD::Stateful
void add_instant_xml (XMLNode &, const std::string &directory_path)
 
XMLNodeinstant_xml (const std::string &str, const std::string &directory_path)
 
void add_properties (XMLNode &)
 
PropertyChange set_values (XMLNode const &)
 
virtual void post_set (const PropertyChange &)
 
virtual void send_change (const PropertyChange &)
 
virtual void mid_thaw (const PropertyChange &)
 

Detailed Description

Definition at line 39 of file source.h.

Member Typedef Documentation

typedef Glib::Threads::Mutex::Lock ARDOUR::Source::Lock

Definition at line 54 of file source.h.

Member Enumeration Documentation

Enumerator
Writable 
CanRename 
Broadcast 
Removable 
RemovableIfEmpty 
RemoveAtDestroy 
NoPeakFile 
Destructive 
Empty 

Definition at line 42 of file source.h.

Constructor & Destructor Documentation

ARDOUR::Source::Source ( Session ,
DataType  type,
const std::string &  name,
Flag  flags = Flag(0) 
)
Source::Source ( Session s,
const XMLNode node 
)

Definition at line 61 of file source.cc.

Source::~Source ( )
virtual

Definition at line 79 of file source.cc.

Member Function Documentation

std::string ARDOUR::Source::ancestor_name ( )
inline

Definition at line 114 of file source.h.

virtual bool ARDOUR::Source::can_be_analysed ( ) const
inlinevirtual
bool Source::check_for_analysis_data_on_disk ( )
virtual

Definition at line 229 of file source.cc.

void Source::dec_use_count ( )
virtual

Definition at line 290 of file source.cc.

bool ARDOUR::Source::destructive ( ) const
inline

Definition at line 82 of file source.h.

virtual bool ARDOUR::Source::empty ( ) const
pure virtual
void Source::fix_writable_flags ( )
private

Definition at line 85 of file source.cc.

Flag ARDOUR::Source::flags ( ) const
inline

Definition at line 106 of file source.h.

XMLNode & Source::get_state ( void  )
virtual

Implements PBD::Stateful.

Definition at line 93 of file source.cc.

string Source::get_transients_path ( ) const

Definition at line 208 of file source.cc.

bool Source::has_been_analysed ( ) const

Definition at line 161 of file source.cc.

void Source::inc_use_count ( )
virtual

Reimplemented in ARDOUR::FileSource.

Definition at line 284 of file source.cc.

virtual framecnt_t ARDOUR::Source::length ( framepos_t  pos) const
pure virtual
virtual bool ARDOUR::Source::length_mutable ( ) const
inlinevirtual

Reimplemented in ARDOUR::MidiSource.

Definition at line 85 of file source.h.

uint32_t ARDOUR::Source::level ( ) const
inline

Definition at line 112 of file source.h.

int Source::load_transients ( const std::string &  )

Definition at line 182 of file source.cc.

void Source::mark_for_remove ( )

Definition at line 249 of file source.cc.

virtual void ARDOUR::Source::mark_streaming_write_completed ( const Lock lock)
pure virtual
virtual void ARDOUR::Source::mark_streaming_write_started ( const Lock lock)
inlinevirtual

Reimplemented in ARDOUR::MidiSource.

Definition at line 74 of file source.h.

Glib::Threads::Mutex& ARDOUR::Source::mutex ( )
inline

Definition at line 105 of file source.h.

virtual framepos_t ARDOUR::Source::natural_position ( ) const
inlinevirtual

Reimplemented in ARDOUR::SndFileSource, and ARDOUR::SrcFileSource.

Definition at line 70 of file source.h.

virtual void ARDOUR::Source::session_saved ( )
inlinevirtual

Reimplemented in ARDOUR::MidiSource.

Definition at line 77 of file source.h.

void Source::set_allow_remove_if_empty ( bool  yn)

Definition at line 270 of file source.cc.

void ARDOUR::Source::set_ancestor_name ( const std::string &  name)
inline

Definition at line 115 of file source.h.

void Source::set_been_analysed ( bool  yn)
virtual

Definition at line 168 of file source.cc.

virtual bool ARDOUR::Source::set_destructive ( bool  )
inlinevirtual

Reimplemented in ARDOUR::SndFileSource.

Definition at line 84 of file source.h.

int Source::set_state ( const XMLNode node,
int  version 
)
virtual

Implements PBD::Stateful.

Definition at line 113 of file source.cc.

void Source::set_timeline_position ( framepos_t  pos)
virtual

Reimplemented in ARDOUR::SndFileSource.

Definition at line 264 of file source.cc.

void ARDOUR::Source::stamp ( time_t  when)
inline

Definition at line 64 of file source.h.

framepos_t ARDOUR::Source::timeline_position ( ) const
inline

Definition at line 100 of file source.h.

time_t ARDOUR::Source::timestamp ( ) const
inline

Definition at line 63 of file source.h.

DataType ARDOUR::Source::type ( )
inline

Definition at line 61 of file source.h.

virtual void ARDOUR::Source::update_length ( framecnt_t  cnt)
pure virtual
int ARDOUR::Source::use_count ( ) const
inline

Definition at line 110 of file source.h.

bool ARDOUR::Source::used ( ) const
inline

Definition at line 111 of file source.h.

bool Source::writable ( ) const

Definition at line 305 of file source.cc.

Member Data Documentation

bool ARDOUR::Source::_analysed
protected

Definition at line 122 of file source.h.

Glib::Threads::Mutex ARDOUR::Source::_analysis_lock
mutableprotected

Definition at line 124 of file source.h.

std::string ARDOUR::Source::_ancestor_name
protected

Definition at line 127 of file source.h.

Flag ARDOUR::Source::_flags
protected

Definition at line 119 of file source.h.

uint32_t ARDOUR::Source::_level
protected

Definition at line 126 of file source.h.

Glib::Threads::Mutex ARDOUR::Source::_lock
mutableprotected

Definition at line 123 of file source.h.

framepos_t ARDOUR::Source::_timeline_position
protected

Definition at line 121 of file source.h.

time_t ARDOUR::Source::_timestamp
protected

Definition at line 120 of file source.h.

DataType ARDOUR::Source::_type
protected

Definition at line 118 of file source.h.

gint ARDOUR::Source::_use_count
protected

Definition at line 125 of file source.h.

PBD::Signal0<void> ARDOUR::Source::AnalysisChanged

Definition at line 94 of file source.h.

PBD::Signal1<void,Source*> ARDOUR::Source::SourceCreated
static

Definition at line 87 of file source.h.

AnalysisFeatureList ARDOUR::Source::transients

Definition at line 96 of file source.h.


The documentation for this class was generated from the following files: