|
Ardour
9.0-pre0-1950-g391fe97693
|
#include <audiosource.h>
Public Member Functions | |
| AudioSource (Session &, const std::string &name) | |
| AudioSource (Session &, const XMLNode &) | |
| virtual | ~AudioSource () |
| samplecnt_t | readable_length_samples () const |
| virtual uint32_t | n_channels () const |
| void | update_length (timepos_t const &dur) |
| virtual samplecnt_t | available_peaks (double zoom) const |
| virtual samplecnt_t | read (Sample *dst, samplepos_t start, samplecnt_t cnt, int channel=0) const |
| virtual samplecnt_t | write (Sample const *src, samplecnt_t cnt) |
| virtual float | sample_rate () const =0 |
| virtual void | mark_streaming_write_completed (const WriterLock &lock, Temporal::timecnt_t const &duration) |
| virtual bool | can_truncate_peaks () const |
| int | read_peaks (PeakData *peaks, samplecnt_t npeaks, samplepos_t start, samplecnt_t cnt, double samples_per_visual_peak) const |
| int | build_peaks () |
| bool | peaks_ready (std::function< void()> callWhenReady, PBD::ScopedConnection **connection_created_if_not_ready, PBD::EventLoop *event_loop) const |
| XMLNode & | get_state () const |
| int | set_state (const XMLNode &, int version) |
| int | rename_peakfile (std::string newpath) |
| void | touch_peakfile () |
| virtual int | setup_peakfile () |
| int | close_peakfile () |
| int | prepare_for_peakfile_writes () |
| void | done_with_peakfile_writes (bool done=true) |
| virtual bool | clamped_at_unity () const =0 |
| void | estimate_tempo () |
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 timepos_t | length () const |
| virtual bool | empty () const |
| void | set_take_id (std::string id) |
| const std::string & | take_id () const |
| void | mark_for_remove () |
| virtual void | mark_streaming_write_started (const WriterLock &lock) |
| virtual void | session_saved () |
| XMLNode & | get_state () const |
| int | set_state (XMLNode const &, int version) |
| bool | writable () const |
| 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 &) |
| size_t | n_captured_xruns () const |
| XrunPositions const & | captured_xruns () const |
| void | set_captured_xruns (XrunPositions const &xruns) |
| void | set_captured_marks (CueMarkers const &marks) |
| CueMarkers const & | cue_markers () const |
| bool | add_cue_marker (CueMarker const &) |
| 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 &) |
| bool | clear_cue_markers () |
| virtual timepos_t | natural_position () const |
| virtual void | set_natural_position (timepos_t const &pos) |
| bool | have_natural_position () const |
| timecnt_t | time_since_capture_start (timepos_t const &pos) |
| void | set_allow_remove_if_empty (bool yn) |
| Glib::Threads::RWLock & | 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) |
| void | set_captured_for (std::string str) |
| std::string | captured_for () const |
| bool | get_segment_descriptor (TimelineRange const &, SegmentDescriptor &) |
| int | set_segment_descriptor (SegmentDescriptor const &, bool replace=false) |
| void | copy_segment_descriptors (Source const &other) |
Public Member Functions inherited from ARDOUR::SessionObject | |
| SessionObject (Session &session, const std::string &name) | |
| Session & | session () 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 () | |
| ScopedConnectionList (const ScopedConnectionList &)=delete | |
| ScopedConnectionList & | operator= (const ScopedConnectionList &)=delete |
| virtual | ~ScopedConnectionList () |
| void | add_connection (const UnscopedConnection &c) |
| void | drop_connections () |
| std::list< ScopedConnectionList * >::size_type | size () const |
Public Member Functions inherited from PBD::Stateful | |
| Stateful () | |
| virtual | ~Stateful () |
| virtual bool | apply_change (PropertyBase const &) |
| PropertyChange | apply_changes (PropertyList const &) |
| const OwnedPropertyList & | properties () const |
| void | add_property (PropertyBase &s) |
| void | add_extra_xml (XMLNode &) |
| XMLNode * | extra_xml (const std::string &str, bool add_if_missing=false) |
| void | save_extra_xml (const XMLNode &) |
| const PBD::ID & | id () const |
| bool | set_id (const XMLNode &) |
| void | set_id (const std::string &) |
| void | reset_id () |
| void | clear_changes () |
| virtual void | clear_owned_changes () |
| PropertyList * | get_changes_as_properties (PBD::Command *) const |
| virtual void | rdiff (std::vector< PBD::Command * > &) const |
| bool | changed () const |
| virtual PropertyList * | property_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 | |
| virtual | ~Destructible () |
| virtual void | drop_references () |
Public Member Functions inherited from ARDOUR::AudioReadable | |
| virtual | ~AudioReadable () |
Static Public Member Functions | |
| static void | set_build_missing_peakfiles (bool yn) |
| static void | set_build_peakfiles (bool yn) |
| static bool | get_build_peakfiles () |
Static Public Member Functions inherited from ARDOUR::SessionObject | |
| static void | make_property_quarks () |
Static Public Member Functions inherited from ARDOUR::AudioReadable | |
| static std::vector< std::shared_ptr< AudioReadable > > | load (Session &, std::string const &) |
Public Attributes | |
| PBD::Signal< void()> | PeaksReady |
| PBD::Signal< void(samplepos_t, samplepos_t)> | PeakRangeReady |
Public Attributes inherited from ARDOUR::Source | |
| PBD::Signal< void()> | AnalysisChanged |
| AnalysisFeatureList | transients |
| PBD::Signal< void()> | CueMarkersChanged |
Public Attributes inherited from PBD::Stateful | |
| PBD::Signal< void(const PropertyChange &)> | PropertyChanged |
Public Attributes inherited from PBD::Destructible | |
| PBD::Signal< void()> | Destroyed |
| PBD::Signal< void()> | DropReferences |
Protected Member Functions | |
| int | initialize_peakfile (const std::string &path, const bool in_session=false) |
| int | build_peaks_from_scratch () |
| int | compute_and_write_peaks (Sample const *buf, samplecnt_t first_sample, samplecnt_t cnt, bool force, bool intermediate_peaks_ready_signal) |
| void | truncate_peakfile () |
| virtual samplecnt_t | read_unlocked (Sample *dst, samplepos_t start, samplecnt_t cnt) const =0 |
| virtual samplecnt_t | write_unlocked (Sample const *dst, samplecnt_t cnt)=0 |
| virtual std::string | construct_peak_filepath (const std::string &audio_path, const bool in_session=false, const bool old_peak_name=false) const =0 |
| virtual int | read_peaks_with_fpp (PeakData *peaks, samplecnt_t npeaks, samplepos_t start, samplecnt_t cnt, double samples_per_visual_peak, samplecnt_t fpp) const |
| int | compute_and_write_peaks (Sample const *buf, samplecnt_t first_sample, samplecnt_t cnt, bool force, bool intermediate_peaks_ready_signal, samplecnt_t samples_per_peak) |
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) |
| XMLNode * | instant_xml (const std::string &str, const std::string &directory_path) |
| void | add_properties (XMLNode &) const |
| PropertyChange | set_values (XMLNode const &) |
| virtual void | post_set (const PropertyChange &) |
| virtual void | send_change (const PropertyChange &) |
| virtual void | mid_thaw (const PropertyChange &) |
| bool | regenerate_xml_or_string_ids () const |
Protected Attributes | |
| std::string | _peakpath |
| off_t | _peak_byte_max |
Protected Attributes inherited from ARDOUR::Source | |
| DataType | _type |
| Flag | _flags |
| time_t | _timestamp |
| std::string | _take_id |
| timepos_t | _natural_position |
| bool | _have_natural_position |
| bool | _analysed |
| std::atomic< int > | _use_count |
| uint32_t | _level |
| std::string | _ancestor_name |
| std::string | _captured_for |
| timepos_t | _length |
| XrunPositions | _xruns |
| CueMarkers | _cue_markers |
| SegmentDescriptors | segment_descriptors |
| Glib::Threads::RWLock | _lock |
| Glib::Threads::Mutex | _analysis_lock |
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 |
Static Protected Attributes | |
| static bool | _build_missing_peakfiles |
| static bool | _build_peakfiles |
| static std::vector< std::shared_ptr< Sample[]> > | _mixdown_buffers |
| static std::vector< std::shared_ptr< gain_t[]> > | _gain_buffers |
| static Glib::Threads::Mutex | _level_buffer_lock |
Private Attributes | |
| bool | _peaks_built |
| Glib::Threads::Mutex | _peaks_ready_lock |
| Glib::Threads::Mutex | _initialize_peaks_lock |
| int | _peakfile_fd |
| samplecnt_t | peak_leftover_cnt |
| samplecnt_t | peak_leftover_size |
| Sample * | peak_leftovers |
| samplepos_t | peak_leftover_sample |
| bool | _first_run |
| double | _last_scale |
| off_t | _last_map_off |
| size_t | _last_raw_map_length |
| std::unique_ptr< PeakData[]> | peak_cache |
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 , RF64_RIFF = 0x200 , Missing = 0x400 } |
| typedef Glib::Threads::RWLock::ReaderLock | ReaderLock |
| typedef Glib::Threads::RWLock::WriterLock | WriterLock |
Static Public Attributes inherited from ARDOUR::Source | |
| static PBD::Signal< void(Source *)> | SourceCreated |
Static Public Attributes inherited from PBD::Stateful | |
| static int | current_state_version |
| static int | loading_state_version |
Protected Types inherited from ARDOUR::Source | |
| typedef std::vector< SegmentDescriptor > | SegmentDescriptors |
Definition at line 39 of file audiosource.h.
| ARDOUR::AudioSource::AudioSource | ( | Session & | , |
| const std::string & | name | ||
| ) |
|
virtual |
|
virtual |
| int ARDOUR::AudioSource::build_peaks | ( | ) |
|
protected |
|
inlinevirtual |
Reimplemented in ARDOUR::AudioFileSource, and ARDOUR::AudioPlaylistSource.
Definition at line 60 of file audiosource.h.
|
pure virtual |
Implemented in ARDOUR::SrcFileSource, ARDOUR::SndFileSource, ARDOUR::SilentFileSource, ARDOUR::Mp3FileSource, ARDOUR::FFMPEGFileSource, ARDOUR::CoreAudioSource, and ARDOUR::AudioPlaylistSource.
| int ARDOUR::AudioSource::close_peakfile | ( | ) |
|
protected |
|
protected |
|
protectedpure virtual |
Implemented in ARDOUR::AudioFileSource, and ARDOUR::AudioPlaylistSource.
| void ARDOUR::AudioSource::done_with_peakfile_writes | ( | bool | done = true | ) |
| void ARDOUR::AudioSource::estimate_tempo | ( | ) |
|
inlinestatic |
Definition at line 85 of file audiosource.h.
|
virtual |
Implements PBD::Stateful.
|
protected |
|
virtual |
Implements ARDOUR::Source.
Reimplemented in ARDOUR::AudioFileSource.
|
inlinevirtual |
Implements ARDOUR::AudioReadable.
Reimplemented in ARDOUR::AudioPlaylistSource.
Definition at line 47 of file audiosource.h.
| bool ARDOUR::AudioSource::peaks_ready | ( | std::function< void()> | callWhenReady, |
| PBD::ScopedConnection ** | connection_created_if_not_ready, | ||
| PBD::EventLoop * | event_loop | ||
| ) | const |
| int ARDOUR::AudioSource::prepare_for_peakfile_writes | ( | ) |
|
virtual |
Implements ARDOUR::AudioReadable.
| int ARDOUR::AudioSource::read_peaks | ( | PeakData * | peaks, |
| samplecnt_t | npeaks, | ||
| samplepos_t | start, | ||
| samplecnt_t | cnt, | ||
| double | samples_per_visual_peak | ||
| ) | const |
|
protectedvirtual |
Reimplemented in ARDOUR::SrcFileSource, and ARDOUR::SilentFileSource.
|
protectedpure virtual |
|
inlinevirtual |
Implements ARDOUR::AudioReadable.
Reimplemented in ARDOUR::SrcFileSource.
Definition at line 46 of file audiosource.h.
| int ARDOUR::AudioSource::rename_peakfile | ( | std::string | newpath | ) |
|
pure virtual |
|
inlinestatic |
Definition at line 77 of file audiosource.h.
|
inlinestatic |
Definition at line 81 of file audiosource.h.
|
virtual |
Implements PBD::Stateful.
|
inlinevirtual |
Reimplemented in ARDOUR::AudioFileSource, and ARDOUR::AudioPlaylistSource.
Definition at line 89 of file audiosource.h.
| void ARDOUR::AudioSource::touch_peakfile | ( | ) |
|
protected |
|
virtual |
Reimplemented from ARDOUR::Source.
|
virtual |
|
protectedpure virtual |
|
staticprotected |
Definition at line 101 of file audiosource.h.
|
staticprotected |
Definition at line 102 of file audiosource.h.
|
mutableprivate |
Definition at line 153 of file audiosource.h.
|
staticprotected |
Definition at line 111 of file audiosource.h.
|
private |
Definition at line 145 of file audiosource.h.
|
mutableprivate |
Definition at line 155 of file audiosource.h.
|
mutableprivate |
Definition at line 156 of file audiosource.h.
|
mutableprivate |
Definition at line 154 of file audiosource.h.
|
staticprotected |
Definition at line 112 of file audiosource.h.
|
staticprotected |
Definition at line 110 of file audiosource.h.
|
mutableprotected |
Definition at line 122 of file audiosource.h.
|
private |
Definition at line 147 of file audiosource.h.
|
protected |
Definition at line 114 of file audiosource.h.
|
private |
Definition at line 137 of file audiosource.h.
|
mutableprivate |
This mutex is used to protect both the _peaks_built variable and also the emission (and handling) of the PeaksReady signal. Holding the lock when emitting PeaksReady means that _peaks_built cannot be changed during the handling of the signal.
Definition at line 144 of file audiosource.h.
|
mutableprivate |
Definition at line 157 of file audiosource.h.
|
private |
Definition at line 148 of file audiosource.h.
|
private |
Definition at line 151 of file audiosource.h.
|
private |
Definition at line 149 of file audiosource.h.
|
private |
Definition at line 150 of file audiosource.h.
|
mutable |
Definition at line 69 of file audiosource.h.
|
mutable |
Definition at line 68 of file audiosource.h.