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

#include <file_source.h>

Inheritance diagram for ARDOUR::FileSource:
ARDOUR::Source ARDOUR::SessionObject ARDOUR::SessionHandleRef PBD::StatefulDestructible PBD::ScopedConnectionList PBD::Stateful PBD::Destructible ARDOUR::AudioFileSource ARDOUR::SMFSource ARDOUR::CoreAudioSource ARDOUR::SilentFileSource ARDOUR::SndFileSource ARDOUR::SrcFileSource

Public Member Functions

virtual ~FileSource ()
 
const std::string & path () const
 
virtual bool safe_file_extension (const std::string &path) const =0
 
int move_to_trash (const std::string &trash_dir_name)
 
void mark_take (const std::string &id)
 
void mark_immutable ()
 
void mark_immutable_except_write ()
 
void mark_nonremovable ()
 
const std::string & take_id () const
 
bool within_session () const
 
uint16_t channel () const
 
int set_state (const XMLNode &, int version)
 
int set_source_name (const std::string &newname, bool destructive)
 
void inc_use_count ()
 
bool removable () const
 
bool is_stub () const
 
const std::string & origin () const
 
virtual void set_path (const std::string &)
 
void existence_check ()
 
virtual void prevent_deletion ()
 
int rename (const std::string &name)
 
virtual void close ()=0
 
- Public Member Functions inherited from ARDOUR::Source
 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 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 ()
 

Static Public Member Functions

static bool find (Session &, DataType type, const std::string &path, bool must_exist, bool &is_new, uint16_t &chan, std::string &found_path)
 
static bool find_2X (Session &, DataType type, const std::string &path, bool must_exist, bool &is_new, uint16_t &chan, std::string &found_path)
 
- Static Public Member Functions inherited from ARDOUR::SessionObject
static void make_property_quarks ()
 

Static Public Attributes

static PBD::Signal2< int,
std::string, std::vector
< std::string > > 
AmbiguousFileName
 
- Static Public Attributes inherited from ARDOUR::Source
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 Member Functions

 FileSource (Session &session, DataType type, const std::string &path, const std::string &origin, Source::Flag flags=Source::Flag(0))
 
 FileSource (Session &session, const XMLNode &node, bool must_exist)
 
virtual int init (const std::string &idstr, bool must_exist)
 
virtual int move_dependents_to_trash ()
 
void set_within_session_from_path (const std::string &)
 
- 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 &)
 

Protected Attributes

std::string _path
 
std::string _take_id
 
bool _file_is_new
 
uint16_t _channel
 
bool _within_session
 
std::string _origin
 
- Protected Attributes inherited from ARDOUR::Source
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
 

Additional Inherited Members

- Public Types inherited from ARDOUR::Source
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 Attributes inherited from ARDOUR::Source
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
 

Detailed Description

A source associated with a file on disk somewhere

Definition at line 45 of file file_source.h.

Constructor & Destructor Documentation

FileSource::~FileSource ( )
virtual

Definition at line 80 of file file_source.cc.

ARDOUR::FileSource::FileSource ( Session session,
DataType  type,
const std::string &  path,
const std::string &  origin,
Source::Flag  flags = Source::Flag(0) 
)
protected
FileSource::FileSource ( Session session,
const XMLNode node,
bool  must_exist 
)
protected

Definition at line 66 of file file_source.cc.

Member Function Documentation

uint16_t ARDOUR::FileSource::channel ( ) const
inline

Definition at line 61 of file file_source.h.

virtual void ARDOUR::FileSource::close ( )
pure virtual
void FileSource::existence_check ( )

Definition at line 85 of file file_source.cc.

bool FileSource::find ( Session ,
DataType  type,
const std::string &  path,
bool  must_exist,
bool &  is_new,
uint16_t &  chan,
std::string &  found_path 
)
static

Find the actual source file based on filename.

If the source is within the session tree, filename should be a simple filename (no slashes). If the source is external, filename should be a full path. In either case, found_path is set to the complete absolute path of the source file.

Returns
true iff the file was found.

Definition at line 237 of file file_source.cc.

bool FileSource::find_2X ( Session ,
DataType  type,
const std::string &  path,
bool  must_exist,
bool &  is_new,
uint16_t &  chan,
std::string &  found_path 
)
static

Find the actual source file based on filename.

If the source is within the session tree, filename should be a simple filename (no slashes). If the source is external, filename should be a full path. In either case, found_path is set to the complete absolute path of the source file.

Returns
true iff the file was found.

Definition at line 354 of file file_source.cc.

void FileSource::inc_use_count ( )
virtual

Reimplemented from ARDOUR::Source.

Definition at line 558 of file file_source.cc.

int FileSource::init ( const std::string &  idstr,
bool  must_exist 
)
protectedvirtual

Reimplemented in ARDOUR::AudioFileSource.

Definition at line 113 of file file_source.cc.

bool FileSource::is_stub ( ) const

Definition at line 564 of file file_source.cc.

void FileSource::mark_immutable ( )

Definition at line 515 of file file_source.cc.

void FileSource::mark_immutable_except_write ( )

Definition at line 524 of file file_source.cc.

void FileSource::mark_nonremovable ( )

Definition at line 533 of file file_source.cc.

void FileSource::mark_take ( const std::string &  id)

Definition at line 159 of file file_source.cc.

virtual int ARDOUR::FileSource::move_dependents_to_trash ( )
inlineprotectedvirtual

Reimplemented in ARDOUR::AudioFileSource.

Definition at line 104 of file file_source.h.

int FileSource::move_to_trash ( const std::string &  trash_dir_name)

Definition at line 167 of file file_source.cc.

const std::string& ARDOUR::FileSource::origin ( ) const
inline

Definition at line 79 of file file_source.h.

const std::string& ARDOUR::FileSource::path ( ) const
inline

Definition at line 49 of file file_source.h.

void FileSource::prevent_deletion ( )
virtual

Reimplemented in ARDOUR::SMFSource.

Definition at line 93 of file file_source.cc.

bool FileSource::removable ( ) const

Definition at line 103 of file file_source.cc.

int FileSource::rename ( const std::string &  name)

Rename the file on disk referenced by this source to

Parameters
newname

Definition at line 582 of file file_source.cc.

virtual bool ARDOUR::FileSource::safe_file_extension ( const std::string &  path) const
pure virtual
void FileSource::set_path ( const std::string &  newpath)
virtual

Reimplemented in ARDOUR::SndFileSource, ARDOUR::SMFSource, and ARDOUR::CoreAudioSource.

Definition at line 545 of file file_source.cc.

int ARDOUR::FileSource::set_source_name ( const std::string &  newname,
bool  destructive 
)
int FileSource::set_state ( const XMLNode node,
int  version 
)
virtual

Implements PBD::Stateful.

Reimplemented in ARDOUR::SMFSource.

Definition at line 141 of file file_source.cc.

void FileSource::set_within_session_from_path ( const std::string &  path)
protected

Definition at line 539 of file file_source.cc.

const std::string& ARDOUR::FileSource::take_id ( ) const
inline

Definition at line 59 of file file_source.h.

bool ARDOUR::FileSource::within_session ( ) const
inline

Definition at line 60 of file file_source.h.

Member Data Documentation

uint16_t ARDOUR::FileSource::_channel
protected

Definition at line 110 of file file_source.h.

bool ARDOUR::FileSource::_file_is_new
protected

Definition at line 109 of file file_source.h.

std::string ARDOUR::FileSource::_origin
protected

Definition at line 112 of file file_source.h.

std::string ARDOUR::FileSource::_path
protected

Definition at line 107 of file file_source.h.

std::string ARDOUR::FileSource::_take_id
protected

Definition at line 108 of file file_source.h.

bool ARDOUR::FileSource::_within_session
protected

Definition at line 111 of file file_source.h.

PBD::Signal2< int, std::string, std::vector< std::string > > FileSource::AmbiguousFileName
static

Definition at line 83 of file file_source.h.


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