33 class AudioFileSource;
66 std::shared_ptr<ChannelList const> c = channels.reader ();
68 return (*c)[n]->write_source;
70 return std::shared_ptr<AudioFileSource> ();
133 resize (buffer_size);
void run(BufferSet &, samplepos_t, samplepos_t, double speed, pframes_t, bool)
void transport_stopped_wallclock(struct tm &, time_t, bool abort)
int do_flush(RunContext context, bool force=false)
void disengage_record_enable()
int _last_possibly_recording
PBD::Signal< void()> RecordSafeChanged
int set_state(const XMLNode &, int version)
void set_note_mode(NoteMode m)
AlignStyle _alignment_style
bool set_name(std::string const &str)
AlignStyle alignment_style() const
DiskWriter(Session &, Track &, std::string const &name, DiskIOProcessor::Flag f=DiskIOProcessor::Flag(0))
static samplecnt_t default_chunk_samples()
static PBD::Signal< void()> Overrun
CaptureInfos capture_info
std::shared_ptr< SMFSource > _midi_write_source
samplepos_t _first_recordable_sample
void disengage_record_safe()
void realtime_handle_transport_stopped()
void non_realtime_locate(samplepos_t)
std::vector< std::shared_ptr< AudioFileSource > > capturing_sources
bool prep_record_enable()
float buffer_load() const
void configuration_changed()
std::optional< samplepos_t > _capture_start_sample
void engage_record_enable()
int use_playlist(DataType, std::shared_ptr< Playlist >)
void transport_looped(samplepos_t transport_sample)
PBD::Signal< void()> AlignmentStyleChanged
std::shared_ptr< AudioFileSource > audio_write_source(uint32_t n=0)
std::shared_ptr< SMFSource > midi_write_source() const
samplepos_t _accumulated_capture_offset
static samplecnt_t chunk_samples()
std::atomic< int > _record_enabled
bool configure_io(ChanCount in, ChanCount out)
Glib::Threads::Mutex _gui_feed_reset_mutex
std::atomic< int > _record_safe
int use_new_write_source(DataType, uint32_t n=0)
samplecnt_t _capture_captured
void set_record_safe(bool yn)
samplepos_t _last_recordable_sample
samplepos_t current_capture_end() const
static void set_chunk_samples(samplecnt_t n)
std::atomic< int > _samples_pending_write
Glib::Threads::Mutex capture_info_lock
samplepos_t _transport_loop_sample
PBD::Signal< void()> RecordEnableChanged
samplecnt_t get_captured_samples(uint32_t n=0) const
bool record_enabled() const
void set_align_style(AlignStyle, bool force=false)
std::string _write_source_name
std::string steal_write_source_name()
std::list< std::shared_ptr< Source > > _last_capture_sources
PBD::Signal< void(std::weak_ptr< MidiSource >)> DataRecorded
void set_record_enabled(bool yn)
bool prep_record_disable()
virtual XMLNode & state() const
void reset_write_sources(bool mark_write_complete)
samplepos_t current_capture_start() const
std::shared_ptr< MidiBuffer > get_gui_feed_buffer() const
void check_record_status(samplepos_t transport_sample, double speed, bool can_record)
int add_channel_to(std::shared_ptr< ChannelList >, uint32_t how_many)
std::string display_name() const
bool set_write_source_name(const std::string &str)
void calculate_record_range(Temporal::OverlapType ot, samplepos_t transport_sample, samplecnt_t nframes, samplecnt_t &rec_nframes, samplecnt_t &rec_offset)
samplepos_t get_capture_start_sample(uint32_t n=0) const
int seek(samplepos_t sample, bool complete_refill)
samplepos_t get_capture_start_sample_locked(uint32_t n=0) const
std::string write_source_name() const
void finish_capture(std::shared_ptr< ChannelList const > c)
void engage_record_safe()
static samplecnt_t _chunk_samples
std::atomic< int > _num_captured_loops
std::list< std::shared_ptr< Source > > & last_capture_sources()
EventRingBuffer< samplepos_t > _gui_feed_fifo
GtkImageIconNameData name
Temporal::samplecnt_t samplecnt_t
std::vector< samplepos_t > XrunPositions
std::vector< CaptureInfo * > CaptureInfos
Temporal::samplepos_t samplepos_t
WriterChannelInfo(samplecnt_t buffer_size)