Ardour  9.0-pre0-582-g084a23a80d
ARDOUR::DiskWriter Class Reference

#include <disk_writer.h>

Inheritance diagram for ARDOUR::DiskWriter:
[legend]

Classes

struct  WriterChannelInfo
 

Public Member Functions

 DiskWriter (Session &, Track &, std::string const &name, DiskIOProcessor::Flag f=DiskIOProcessor::Flag(0))
 
 ~DiskWriter ()
 
bool set_name (std::string const &str)
 
std::string display_name () const
 
bool recordable () const
 
void run (BufferSet &, samplepos_t, samplepos_t, double speed, pframes_t, bool)
 
void non_realtime_locate (samplepos_t)
 
void realtime_handle_transport_stopped ()
 
int set_state (const XMLNode &, int version)
 
bool set_write_source_name (const std::string &str)
 
std::string write_source_name () const
 
std::shared_ptr< AudioFileSourceaudio_write_source (uint32_t n=0)
 
std::shared_ptr< SMFSourcemidi_write_source () const
 
std::string steal_write_source_name ()
 
int use_new_write_source (DataType, uint32_t n=0)
 
void reset_write_sources (bool mark_write_complete)
 
AlignStyle alignment_style () const
 
void set_align_style (AlignStyle, bool force=false)
 
bool configure_io (ChanCount in, ChanCount out)
 
std::list< std::shared_ptr< Source > > & last_capture_sources ()
 
bool record_enabled () const
 
bool record_safe () const
 
void set_record_enabled (bool yn)
 
void set_record_safe (bool yn)
 
void mark_capture_xrun ()
 
samplepos_t current_capture_start () const
 
samplepos_t current_capture_end () const
 
samplepos_t get_capture_start_sample (uint32_t n=0) const
 
samplecnt_t get_captured_samples (uint32_t n=0) const
 
float buffer_load () const
 
int seek (samplepos_t sample, bool complete_refill)
 
void set_note_mode (NoteMode m)
 
void transport_looped (samplepos_t transport_sample)
 
void transport_stopped_wallclock (struct tm &, time_t, bool abort)
 
void adjust_buffering ()
 
std::shared_ptr< MidiBufferget_gui_feed_buffer () const
 
- Public Member Functions inherited from ARDOUR::DiskIOProcessor
 DiskIOProcessor (Session &, Track &, const std::string &name, Flag f, Temporal::TimeDomainProvider const &)
 
virtual ~DiskIOProcessor ()
 
int set_block_size (pframes_t)
 
bool can_support_io_configuration (const ChanCount &in, ChanCount &out)
 
void set_flag (Flag f)
 
void unset_flag (Flag f)
 
bool hidden () const
 
bool recordable () const
 
virtual void punch_in ()
 
virtual void punch_out ()
 
bool slaved () const
 
void set_slaved (bool yn)
 
int add_channel (uint32_t how_many)
 
int remove_channel (uint32_t how_many)
 
bool need_butler () const
 
std::shared_ptr< Playlistget_playlist (DataType dt) const
 
std::shared_ptr< MidiPlaylistmidi_playlist () const
 
std::shared_ptr< AudioPlaylistaudio_playlist () const
 
virtual void playlist_modified ()
 
- Public Member Functions inherited from ARDOUR::Processor
 Processor (Session &, const std::string &name, Temporal::TimeDomainProvider const &)
 
 Processor (const Processor &other)
 
virtual ~Processor ()
 
virtual bool display_to_user () const
 
virtual void set_display_to_user (bool)
 
bool active () const
 ardour hard bypass More...
 
virtual bool enabled () const
 processor enabled/bypass More...
 
virtual bool bypassable () const
 enable is not automated or locked More...
 
virtual bool does_routing () const
 
bool get_next_ab_is_active () const
 
void set_next_ab_is_active (bool yn)
 
virtual samplecnt_t signal_latency () const
 
virtual void set_input_latency (samplecnt_t cnt)
 
samplecnt_t input_latency () const
 
virtual void set_output_latency (samplecnt_t cnt)
 
samplecnt_t output_latency () const
 
virtual void set_capture_offset (samplecnt_t cnt)
 
samplecnt_t capture_offset () const
 
virtual void set_playback_offset (samplecnt_t cnt)
 
samplecnt_t playback_offset () const
 
virtual bool requires_fixed_sized_buffers () const
 
virtual void silence (samplecnt_t nframes, samplepos_t start_sample)
 
virtual void activate ()
 
virtual void deactivate ()
 
virtual void flush ()
 
virtual void enable (bool yn)
 
virtual ChanCount input_streams () const
 
virtual ChanCount output_streams () const
 
virtual void realtime_locate (bool)
 
virtual void set_loop (Location *loc)
 
virtual void monitoring_changed ()
 
XMLNodeget_state () const
 
int set_state (const XMLNode &, int version)
 
virtual void set_pre_fader (bool)
 
virtual bool get_pre_fader () const
 
ProcessorWindowProxywindow_proxy () const
 
void set_window_proxy (ProcessorWindowProxy *wp)
 
PluginPinWindowProxypinmgr_proxy () const
 
void set_pingmgr_proxy (PluginPinWindowProxy *wp)
 
virtual void set_owner (SessionObject *)
 
SessionObjectowner () const
 
- Public Member Functions inherited from ARDOUR::SessionObject
 SessionObject (Session &session, const std::string &name)
 
Sessionsession () const
 
std::string name () const
 
- 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
 
ScopedConnectionListoperator= (const ScopedConnectionList &)=delete
 
virtual ~ScopedConnectionList ()
 
void add_connection (const UnscopedConnection &c)
 
void drop_connections ()
 
- Public Member Functions inherited from PBD::Stateful
 Stateful ()
 
virtual ~Stateful ()
 
virtual bool apply_change (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 (PBD::Command *) const
 
virtual void rdiff (std::vector< PBD::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
virtual ~Destructible ()
 
virtual void drop_references ()
 
- Public Member Functions inherited from ARDOUR::Automatable
 Automatable (Session &, Temporal::TimeDomainProvider const &)
 
 Automatable (const Automatable &other)
 
virtual ~Automatable ()
 
virtual void automatables (PBD::ControllableSet &) const
 
std::shared_ptr< Evoral::Controlcontrol_factory (const Evoral::Parameter &id)
 
std::shared_ptr< AutomationControlautomation_control (PBD::ID const &id) const
 
virtual std::shared_ptr< AutomationControlautomation_control_recurse (PBD::ID const &id) const
 
std::shared_ptr< AutomationControlautomation_control (const Evoral::Parameter &id)
 
std::shared_ptr< AutomationControlautomation_control (const Evoral::Parameter &id, bool create_if_missing)
 
std::shared_ptr< const AutomationControlautomation_control (const Evoral::Parameter &id) const
 
virtual void add_control (std::shared_ptr< Evoral::Control >)
 
virtual bool find_next_event (Temporal::timepos_t const &start, Temporal::timepos_t const &end, Evoral::ControlEvent &ev, bool only_active=true) const
 
void clear_controls ()
 
virtual void non_realtime_transport_stop (samplepos_t now, bool flush)
 
virtual void automation_run (samplepos_t, pframes_t, bool only_active=false)
 
virtual std::string describe_parameter (Evoral::Parameter param)
 
AutoState get_parameter_automation_state (Evoral::Parameter param)
 
virtual void set_parameter_automation_state (Evoral::Parameter param, AutoState)
 
void protect_automation ()
 
const std::set< Evoral::Parameter > & what_can_be_automated () const
 
std::vector< Evoral::Parameterall_automatable_params () const
 
void what_has_existing_automation (std::set< Evoral::Parameter > &) const
 
int set_automation_xml_state (const XMLNode &, Evoral::Parameter default_param)
 
XMLNodeget_automation_xml_state () const
 
void start_domain_bounce (Temporal::DomainBounceInfo &)
 
void finish_domain_bounce (Temporal::DomainBounceInfo &)
 
- Public Member Functions inherited from Evoral::ControlSet
 ControlSet ()
 
 ControlSet (const ControlSet &)
 
virtual ~ControlSet ()
 
std::shared_ptr< Controlcontrol (const Parameter &id, bool create_if_missing=false)
 
std::shared_ptr< const Controlcontrol (const Parameter &id) const
 
Controlscontrols ()
 
const Controlscontrols () const
 
virtual bool controls_empty () const
 
void what_has_data (std::set< Parameter > &) const
 
Glib::Threads::Mutex & control_lock () const
 
void start_domain_bounce (Temporal::DomainBounceInfo &)
 
void finish_domain_bounce (Temporal::DomainBounceInfo &)
 
- Public Member Functions inherited from Temporal::TimeDomainSwapper
virtual ~TimeDomainSwapper ()
 
- Public Member Functions inherited from ARDOUR::Slavable
 Slavable ()
 
virtual ~Slavable ()
 
XMLNodeget_state () const
 
int set_state (XMLNode const &, int)
 
virtual void assign (std::shared_ptr< VCA >)
 
void unassign (std::shared_ptr< VCA >)
 
std::vector< std::shared_ptr< VCA > > masters (VCAManager *) const
 
bool assigned_to (VCAManager *, std::shared_ptr< VCA >) const
 
- Public Member Functions inherited from Temporal::TimeDomainProvider
 TimeDomainProvider ()
 
 TimeDomainProvider (TimeDomain td)
 
 TimeDomainProvider (TimeDomain td, TimeDomainProvider const &p)
 
 TimeDomainProvider (TimeDomainProvider const &other)
 
 TimeDomainProvider (TimeDomainProvider const &parnt, bool)
 
virtual ~TimeDomainProvider ()
 
XMLNodeget_state () const
 
int set_state (const XMLNode &, int version)
 
TimeDomainProvideroperator= (TimeDomainProvider const &other)
 
TimeDomain time_domain () const
 
bool has_own_time_domain () const
 
void clear_time_domain ()
 
void set_time_domain (TimeDomain td)
 
TimeDomainProvider const * time_domain_parent () const
 
bool has_time_domain_parent () const
 
void clear_time_domain_parent ()
 
void set_time_domain_parent (TimeDomainProvider const &p)
 
virtual void time_domain_changed ()
 
- Public Member Functions inherited from ARDOUR::Latent
 Latent ()
 
 Latent (Latent const &)
 
virtual ~Latent ()
 
samplecnt_t effective_latency () const
 
samplecnt_t user_latency () const
 
void unset_user_latency ()
 
virtual void set_user_latency (samplecnt_t val)
 
- Public Member Functions inherited from ARDOUR::HasLatency
virtual ~HasLatency ()
 

Static Public Member Functions

static samplecnt_t chunk_samples ()
 
static samplecnt_t default_chunk_samples ()
 
static void set_chunk_samples (samplecnt_t n)
 
- Static Public Member Functions inherited from ARDOUR::DiskIOProcessor
static void set_buffering_parameters (BufferingPreset bp)
 
- Static Public Member Functions inherited from ARDOUR::SessionObject
static void make_property_quarks ()
 
- Static Public Member Functions inherited from ARDOUR::Automatable
static void find_next_ac_event (std::shared_ptr< AutomationControl >, Temporal::timepos_t const &start, Temporal::timepos_t const &end, Evoral::ControlEvent &ev)
 
static void find_prev_ac_event (std::shared_ptr< AutomationControl >, Temporal::timepos_t const &start, Temporal::timepos_t const &end, Evoral::ControlEvent &ev)
 
- Static Public Member Functions inherited from ARDOUR::Latent
static void force_zero_latency (bool en)
 
static bool zero_latency ()
 

Public Attributes

PBD::Signal< void()> AlignmentStyleChanged
 
PBD::Signal< void(std::weak_ptr< MidiSource >)> DataRecorded
 
PBD::Signal< void()> RecordEnableChanged
 
PBD::Signal< void()> RecordSafeChanged
 
- Public Attributes inherited from ARDOUR::DiskIOProcessor
PBD::Signal< void()> SpeedChanged
 
PBD::Signal< void()> ReverseChanged
 
- Public Attributes inherited from ARDOUR::Processor
PBD::Signal< void()> ActiveChanged
 
PBD::Signal< void()> BypassableChanged
 
PBD::Signal< void(ChanCount, ChanCount)> ConfigurationChanged
 
PBD::Signal< void()> ToggleUI
 
PBD::Signal< void()> ShowUI
 
PBD::Signal< void()> HideUI
 
- 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
 
- Public Attributes inherited from ARDOUR::Automatable
PBD::Signal< void()> AutomationStateChanged
 
- Public Attributes inherited from ARDOUR::Slavable
PBD::Signal< void(std::shared_ptr< VCA >, bool)> AssignmentChange
 
- Public Attributes inherited from Temporal::TimeDomainProvider
PBD::Signal< void()> TimeDomainChanged
 
- Public Attributes inherited from ARDOUR::Latent
PBD::Signal< void()> LatencyChanged
 

Static Public Attributes

static PBD::Signal< void()> Overrun
 
- Static Public Attributes inherited from ARDOUR::DiskIOProcessor
static const std::string state_node_name
 
- Static Public Attributes inherited from ARDOUR::Processor
static const std::string state_node_name
 
- Static Public Attributes inherited from PBD::Stateful
static int current_state_version
 
static int loading_state_version
 
- Static Public Attributes inherited from ARDOUR::Automatable
static bool skip_saving_automation
 
static const std::string xml_node_name
 
- Static Public Attributes inherited from ARDOUR::Slavable
static std::string xml_node_name
 
static PBD::Signal< void(VCAManager *)> Assign
 
- Static Public Attributes inherited from ARDOUR::Latent
static PBD::Signal< void()> DisableSwitchChanged
 

Protected Member Functions

virtual XMLNodestate () const
 
int use_playlist (DataType, std::shared_ptr< Playlist >)
 
int do_flush (RunContext context, bool force=false)
 
void configuration_changed ()
 
- Protected Member Functions inherited from ARDOUR::DiskIOProcessor
void init ()
 
int remove_channel_from (std::shared_ptr< ChannelList >, uint32_t how_many)
 
virtual void playlist_changed (const PBD::PropertyChange &)
 
virtual void playlist_deleted (std::weak_ptr< Playlist >)
 
virtual void playlist_ranges_moved (std::list< Temporal::RangeMove > const &, bool)
 
- Protected Member Functions inherited from ARDOUR::Processor
virtual int set_state_2X (const XMLNode &, int version)
 
bool check_active ()
 
bool map_loop_range (samplepos_t &start, samplepos_t &end) const
 
- 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 &) 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 Member Functions inherited from ARDOUR::Automatable
void can_automate (Evoral::Parameter)
 
virtual void automation_list_automation_state_changed (Evoral::Parameter const &, AutoState)
 
int load_automation (const std::string &path)
 
int old_set_automation_state (const XMLNode &)
 
SlavableAutomationControlList slavables () const
 
- Protected Member Functions inherited from Evoral::ControlSet
virtual void control_list_marked_dirty ()
 
virtual void control_list_interpolation_changed (Parameter const &, ControlList::InterpolationStyle)
 
- Protected Member Functions inherited from Temporal::TimeDomainProvider
void listen ()
 
- Protected Member Functions inherited from ARDOUR::Latent
int set_state (const XMLNode &node, int version)
 
void add_state (XMLNode *) const
 

Private Member Functions

int add_channel_to (std::shared_ptr< ChannelList >, uint32_t how_many)
 
void engage_record_enable ()
 
void disengage_record_enable ()
 
void engage_record_safe ()
 
void disengage_record_safe ()
 
bool prep_record_enable ()
 
bool prep_record_disable ()
 
void calculate_record_range (Temporal::OverlapType ot, samplepos_t transport_sample, samplecnt_t nframes, samplecnt_t &rec_nframes, samplecnt_t &rec_offset)
 
void check_record_status (samplepos_t transport_sample, double speed, bool can_record)
 
void finish_capture (std::shared_ptr< ChannelList const > c)
 
void reset_capture ()
 
void loop (samplepos_t)
 
samplepos_t get_capture_start_sample_locked (uint32_t n=0) const
 

Private Attributes

CaptureInfos capture_info
 
Glib::Threads::Mutex capture_info_lock
 
std::optional< samplepos_t_capture_start_sample
 
samplecnt_t _capture_captured
 
bool _was_recording
 
bool _xrun_flag
 
XrunPositions _xruns
 
samplepos_t _first_recordable_sample
 
samplepos_t _last_recordable_sample
 
int _last_possibly_recording
 
AlignStyle _alignment_style
 
std::string _write_source_name
 
NoteMode _note_mode
 
samplepos_t _accumulated_capture_offset
 
bool _transport_looped
 
samplepos_t _transport_loop_sample
 
std::atomic< int > _record_enabled
 
std::atomic< int > _record_safe
 
std::atomic< int > _samples_pending_write
 
std::atomic< int > _num_captured_loops
 
std::shared_ptr< SMFSource_midi_write_source
 
std::list< std::shared_ptr< Source > > _last_capture_sources
 
std::vector< std::shared_ptr< AudioFileSource > > capturing_sources
 
EventRingBuffer< samplepos_t_gui_feed_fifo
 
Glib::Threads::Mutex _gui_feed_reset_mutex
 

Static Private Attributes

static samplecnt_t _chunk_samples
 

Friends

class Track
 

Additional Inherited Members

- Public Types inherited from ARDOUR::DiskIOProcessor
enum  Flag { Recordable = 0x1 , Hidden = 0x2 , NonLayered = 0x8 }
 
- Public Types inherited from Evoral::ControlSet
typedef std::map< Parameter, std::shared_ptr< Control > > Controls
 
- Protected Types inherited from ARDOUR::DiskIOProcessor
enum  TransitionType { CaptureStart = 0 , CaptureEnd }
 
typedef std::vector< ChannelInfo * > ChannelList
 
- Static Protected Member Functions inherited from ARDOUR::DiskIOProcessor
static bool get_buffering_presets (BufferingPreset bp, samplecnt_t &read_chunk_size, samplecnt_t &read_buffer_size, samplecnt_t &write_chunk_size, samplecnt_t &write_buffer_size)
 
static void get_location_times (const Location *location, timepos_t *start, timepos_t *end, timecnt_t *length)
 
- Protected Attributes inherited from ARDOUR::DiskIOProcessor
Flag _flags
 
bool _slaved
 
bool in_set_state
 
samplepos_t playback_sample
 
bool _need_butler
 
Track_track
 
Glib::Threads::Mutex state_lock
 
SerializedRCUManager< ChannelListchannels
 
std::shared_ptr< Playlist_playlists [DataType::num_types]
 
PBD::ScopedConnectionList playlist_connections
 
MidiRingBuffer< samplepos_t > * _midi_buf
 
- Protected Attributes inherited from ARDOUR::Processor
int _pending_active
 
bool _active
 
bool _next_ab_is_active
 
bool _configured
 
ChanCount _configured_input
 
ChanCount _configured_output
 
bool _display_to_user
 
bool _pre_fader
 true if this processor is currently placed before the Amp, otherwise false More...
 
void * _ui_pointer
 
ProcessorWindowProxy_window_proxy
 
PluginPinWindowProxy_pinmgr_proxy
 
SessionObject_owner
 
samplecnt_t _input_latency
 
samplecnt_t _output_latency
 
samplecnt_t _capture_offset
 
samplecnt_t _playback_offset
 
Location_loop_location
 
- 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
 
- Protected Attributes inherited from ARDOUR::Automatable
Session_a_session
 
SerializedRCUManager< AutomationControlList_automated_controls
 
std::set< Evoral::Parameter_can_automate_list
 
samplepos_t _last_automation_snapshot
 
- Protected Attributes inherited from Evoral::ControlSet
Glib::Threads::Mutex _control_lock
 
Controls _controls
 
PBD::ScopedConnectionList _list_connections
 

Detailed Description

Definition at line 37 of file disk_writer.h.

Constructor & Destructor Documentation

◆ DiskWriter()

ARDOUR::DiskWriter::DiskWriter ( Session ,
Track ,
std::string const &  name,
DiskIOProcessor::Flag  f = DiskIOProcessor::Flag(0) 
)

◆ ~DiskWriter()

ARDOUR::DiskWriter::~DiskWriter ( )

Member Function Documentation

◆ add_channel_to()

int ARDOUR::DiskWriter::add_channel_to ( std::shared_ptr< ChannelList ,
uint32_t  how_many 
)
privatevirtual

◆ adjust_buffering()

void ARDOUR::DiskWriter::adjust_buffering ( )
virtual

◆ alignment_style()

AlignStyle ARDOUR::DiskWriter::alignment_style ( ) const
inline

Definition at line 79 of file disk_writer.h.

◆ audio_write_source()

std::shared_ptr<AudioFileSource> ARDOUR::DiskWriter::audio_write_source ( uint32_t  n = 0)
inline

Definition at line 65 of file disk_writer.h.

◆ buffer_load()

float ARDOUR::DiskWriter::buffer_load ( ) const
virtual
Returns
A number between 0 and 1, where 0 indicates that the playback/capture buffer is dry (ie the disk subsystem could not keep up) and 1 indicates that the buffer is full.

Implements ARDOUR::DiskIOProcessor.

◆ calculate_record_range()

void ARDOUR::DiskWriter::calculate_record_range ( Temporal::OverlapType  ot,
samplepos_t  transport_sample,
samplecnt_t  nframes,
samplecnt_t rec_nframes,
samplecnt_t rec_offset 
)
private

◆ check_record_status()

void ARDOUR::DiskWriter::check_record_status ( samplepos_t  transport_sample,
double  speed,
bool  can_record 
)
private

◆ chunk_samples()

static samplecnt_t ARDOUR::DiskWriter::chunk_samples ( )
inlinestatic

Definition at line 49 of file disk_writer.h.

◆ configuration_changed()

void ARDOUR::DiskWriter::configuration_changed ( )
protectedvirtual

◆ configure_io()

bool ARDOUR::DiskWriter::configure_io ( ChanCount  in,
ChanCount  out 
)
virtual

Reimplemented from ARDOUR::DiskIOProcessor.

◆ current_capture_end()

samplepos_t ARDOUR::DiskWriter::current_capture_end ( ) const

◆ current_capture_start()

samplepos_t ARDOUR::DiskWriter::current_capture_start ( ) const
Returns
Start position of currently-running capture (in session samples)

◆ default_chunk_samples()

static samplecnt_t ARDOUR::DiskWriter::default_chunk_samples ( )
static

◆ disengage_record_enable()

void ARDOUR::DiskWriter::disengage_record_enable ( )
private

◆ disengage_record_safe()

void ARDOUR::DiskWriter::disengage_record_safe ( )
private

◆ display_name()

std::string ARDOUR::DiskWriter::display_name ( ) const
virtual

Reimplemented from ARDOUR::Processor.

◆ do_flush()

int ARDOUR::DiskWriter::do_flush ( RunContext  context,
bool  force = false 
)
protected

◆ engage_record_enable()

void ARDOUR::DiskWriter::engage_record_enable ( )
private

◆ engage_record_safe()

void ARDOUR::DiskWriter::engage_record_safe ( )
private

◆ finish_capture()

void ARDOUR::DiskWriter::finish_capture ( std::shared_ptr< ChannelList const >  c)
private

◆ get_capture_start_sample()

samplepos_t ARDOUR::DiskWriter::get_capture_start_sample ( uint32_t  n = 0) const

◆ get_capture_start_sample_locked()

samplepos_t ARDOUR::DiskWriter::get_capture_start_sample_locked ( uint32_t  n = 0) const
private

◆ get_captured_samples()

samplecnt_t ARDOUR::DiskWriter::get_captured_samples ( uint32_t  n = 0) const

◆ get_gui_feed_buffer()

std::shared_ptr<MidiBuffer> ARDOUR::DiskWriter::get_gui_feed_buffer ( ) const

◆ last_capture_sources()

std::list<std::shared_ptr<Source> >& ARDOUR::DiskWriter::last_capture_sources ( )
inline

Definition at line 86 of file disk_writer.h.

◆ loop()

void ARDOUR::DiskWriter::loop ( samplepos_t  )
private

◆ mark_capture_xrun()

void ARDOUR::DiskWriter::mark_capture_xrun ( )

◆ midi_write_source()

std::shared_ptr<SMFSource> ARDOUR::DiskWriter::midi_write_source ( ) const
inline

Definition at line 73 of file disk_writer.h.

◆ non_realtime_locate()

void ARDOUR::DiskWriter::non_realtime_locate ( samplepos_t  )
virtual

Reimplemented from ARDOUR::DiskIOProcessor.

◆ prep_record_disable()

bool ARDOUR::DiskWriter::prep_record_disable ( )
private

◆ prep_record_enable()

bool ARDOUR::DiskWriter::prep_record_enable ( )
private

◆ realtime_handle_transport_stopped()

void ARDOUR::DiskWriter::realtime_handle_transport_stopped ( )
virtual

Reimplemented from ARDOUR::Processor.

◆ record_enabled()

bool ARDOUR::DiskWriter::record_enabled ( ) const
inline

Definition at line 88 of file disk_writer.h.

◆ record_safe()

bool ARDOUR::DiskWriter::record_safe ( ) const
inline

Definition at line 89 of file disk_writer.h.

◆ recordable()

bool ARDOUR::DiskWriter::recordable ( ) const
inline

Definition at line 47 of file disk_writer.h.

◆ reset_capture()

void ARDOUR::DiskWriter::reset_capture ( )
private

◆ reset_write_sources()

void ARDOUR::DiskWriter::reset_write_sources ( bool  mark_write_complete)

◆ run()

void ARDOUR::DiskWriter::run ( BufferSet bufs,
samplepos_t  start_sample,
samplepos_t  end_sample,
double  speed,
pframes_t  nframes,
bool  result_required 
)
virtual

The main process function for processors

Parameters
bufsbufferset of data to process in-place
start_sampleabsolute timeline position in audio-samples to commence processing (latency compensated)
end_sampleabsolute timeline position in audio-samples, usually start_sample +/- nframes
speedtransport speed. usually -1, 0, +1
nframesnumber of audio samples to process
result_requiredtrue if, on return from this method, bufs is required to contain valid data; if false, the method need not bother writing to bufs if it doesn't want to.

Reimplemented from ARDOUR::Processor.

◆ seek()

int ARDOUR::DiskWriter::seek ( samplepos_t  sample,
bool  complete_refill 
)
virtual

◆ set_align_style()

void ARDOUR::DiskWriter::set_align_style ( AlignStyle  ,
bool  force = false 
)

◆ set_chunk_samples()

static void ARDOUR::DiskWriter::set_chunk_samples ( samplecnt_t  n)
inlinestatic

Definition at line 51 of file disk_writer.h.

◆ set_name()

bool ARDOUR::DiskWriter::set_name ( std::string const &  str)
virtual

Reimplemented from ARDOUR::SessionObject.

◆ set_note_mode()

void ARDOUR::DiskWriter::set_note_mode ( NoteMode  m)

◆ set_record_enabled()

void ARDOUR::DiskWriter::set_record_enabled ( bool  yn)

◆ set_record_safe()

void ARDOUR::DiskWriter::set_record_safe ( bool  yn)

◆ set_state()

int ARDOUR::DiskWriter::set_state ( const XMLNode ,
int  version 
)
virtual

Reimplemented from ARDOUR::DiskIOProcessor.

◆ set_write_source_name()

bool ARDOUR::DiskWriter::set_write_source_name ( const std::string &  str)

◆ state()

virtual XMLNode& ARDOUR::DiskWriter::state ( ) const
protectedvirtual

Reimplemented from ARDOUR::Processor.

◆ steal_write_source_name()

std::string ARDOUR::DiskWriter::steal_write_source_name ( )

◆ transport_looped()

void ARDOUR::DiskWriter::transport_looped ( samplepos_t  transport_sample)

◆ transport_stopped_wallclock()

void ARDOUR::DiskWriter::transport_stopped_wallclock ( struct tm &  ,
time_t  ,
bool  abort 
)

◆ use_new_write_source()

int ARDOUR::DiskWriter::use_new_write_source ( DataType  ,
uint32_t  n = 0 
)

◆ use_playlist()

int ARDOUR::DiskWriter::use_playlist ( DataType  ,
std::shared_ptr< Playlist  
)
protectedvirtual

Reimplemented from ARDOUR::DiskIOProcessor.

◆ write_source_name()

std::string ARDOUR::DiskWriter::write_source_name ( ) const

Friends And Related Function Documentation

◆ Track

friend class Track
friend

Definition at line 127 of file disk_writer.h.

Member Data Documentation

◆ _accumulated_capture_offset

samplepos_t ARDOUR::DiskWriter::_accumulated_capture_offset
private

Definition at line 186 of file disk_writer.h.

◆ _alignment_style

AlignStyle ARDOUR::DiskWriter::_alignment_style
private

Definition at line 183 of file disk_writer.h.

◆ _capture_captured

samplecnt_t ARDOUR::DiskWriter::_capture_captured
private

Definition at line 176 of file disk_writer.h.

◆ _capture_start_sample

std::optional<samplepos_t> ARDOUR::DiskWriter::_capture_start_sample
private

Definition at line 174 of file disk_writer.h.

◆ _chunk_samples

samplecnt_t ARDOUR::DiskWriter::_chunk_samples
staticprivate

Definition at line 147 of file disk_writer.h.

◆ _first_recordable_sample

samplepos_t ARDOUR::DiskWriter::_first_recordable_sample
private

Definition at line 180 of file disk_writer.h.

◆ _gui_feed_fifo

EventRingBuffer<samplepos_t> ARDOUR::DiskWriter::_gui_feed_fifo
mutableprivate

A buffer that we use to put newly-arrived MIDI data in for the GUI to read (so that it can update itself).

Definition at line 204 of file disk_writer.h.

◆ _gui_feed_reset_mutex

Glib::Threads::Mutex ARDOUR::DiskWriter::_gui_feed_reset_mutex
mutableprivate

Definition at line 205 of file disk_writer.h.

◆ _last_capture_sources

std::list<std::shared_ptr<Source> > ARDOUR::DiskWriter::_last_capture_sources
private

Definition at line 198 of file disk_writer.h.

◆ _last_possibly_recording

int ARDOUR::DiskWriter::_last_possibly_recording
private

Definition at line 182 of file disk_writer.h.

◆ _last_recordable_sample

samplepos_t ARDOUR::DiskWriter::_last_recordable_sample
private

Definition at line 181 of file disk_writer.h.

◆ _midi_write_source

std::shared_ptr<SMFSource> ARDOUR::DiskWriter::_midi_write_source
private

Definition at line 196 of file disk_writer.h.

◆ _note_mode

NoteMode ARDOUR::DiskWriter::_note_mode
private

Definition at line 185 of file disk_writer.h.

◆ _num_captured_loops

std::atomic<int> ARDOUR::DiskWriter::_num_captured_loops
private

Definition at line 194 of file disk_writer.h.

◆ _record_enabled

std::atomic<int> ARDOUR::DiskWriter::_record_enabled
private

Definition at line 191 of file disk_writer.h.

◆ _record_safe

std::atomic<int> ARDOUR::DiskWriter::_record_safe
private

Definition at line 192 of file disk_writer.h.

◆ _samples_pending_write

std::atomic<int> ARDOUR::DiskWriter::_samples_pending_write
private

Definition at line 193 of file disk_writer.h.

◆ _transport_loop_sample

samplepos_t ARDOUR::DiskWriter::_transport_loop_sample
private

Definition at line 189 of file disk_writer.h.

◆ _transport_looped

bool ARDOUR::DiskWriter::_transport_looped
private

Definition at line 188 of file disk_writer.h.

◆ _was_recording

bool ARDOUR::DiskWriter::_was_recording
private

Definition at line 177 of file disk_writer.h.

◆ _write_source_name

std::string ARDOUR::DiskWriter::_write_source_name
private

Definition at line 184 of file disk_writer.h.

◆ _xrun_flag

bool ARDOUR::DiskWriter::_xrun_flag
private

Definition at line 178 of file disk_writer.h.

◆ _xruns

XrunPositions ARDOUR::DiskWriter::_xruns
private

Definition at line 179 of file disk_writer.h.

◆ AlignmentStyleChanged

PBD::Signal<void()> ARDOUR::DiskWriter::AlignmentStyleChanged

Definition at line 82 of file disk_writer.h.

◆ capture_info

CaptureInfos ARDOUR::DiskWriter::capture_info
private

Definition at line 169 of file disk_writer.h.

◆ capture_info_lock

Glib::Threads::Mutex ARDOUR::DiskWriter::capture_info_lock
mutableprivate

Definition at line 170 of file disk_writer.h.

◆ capturing_sources

std::vector<std::shared_ptr<AudioFileSource> > ARDOUR::DiskWriter::capturing_sources
private

Definition at line 199 of file disk_writer.h.

◆ DataRecorded

PBD::Signal<void(std::weak_ptr<MidiSource> )> ARDOUR::DiskWriter::DataRecorded

Emitted when some MIDI data has been received for recording. Parameter is the source that it is destined for. A caller can get a copy of the data with get_gui_feed_buffer ()

Definition at line 114 of file disk_writer.h.

◆ Overrun

PBD::Signal<void()> ARDOUR::DiskWriter::Overrun
static

Definition at line 106 of file disk_writer.h.

◆ RecordEnableChanged

PBD::Signal<void()> ARDOUR::DiskWriter::RecordEnableChanged

Definition at line 116 of file disk_writer.h.

◆ RecordSafeChanged

PBD::Signal<void()> ARDOUR::DiskWriter::RecordSafeChanged

Definition at line 117 of file disk_writer.h.


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