summaryrefslogtreecommitdiff
path: root/libs/ardour/disk_io.cc
AgeCommit message (Collapse)Author
2020-04-14Fix playback alignment when adding/removing channelsRobin Gareus
The disk-reader assumes that all playback ringbuffers are in sync and have the same fill_level.
2019-12-11variable renaming in Butler for various buffer sizesPaul Davis
2019-12-10revert to single buffer for disk playback, and 5.x-style overwritePaul Davis
Also address issues with MIDI and also atomicity of _pending_overwrite
2019-12-08fix error when continuing to refill audio playback buffers after a buffer switchPaul Davis
The file_sample[AUDIO] member was not updated to reflect the last-read sample in the switched-to buffer. Also move several methods and members from DiskIO to DiskReader where they belong.
2019-12-07functional double buffering when using DiskReader::overwrite_existing_buffersPaul Davis
2019-12-07a few parameter changes, and flesh out code to switch rbufs in DiskReaderPaul Davis
2019-12-07initial conversion to double buffering inside DiskReaderPaul Davis
Second buffer is not used (or allocated) yet.
2019-11-02move ownership of an RT MIDI buffer from DiskIO to MidiPlaylistPaul Davis
2019-11-02refactor SessionEvent and DiskIO so that we pass around ↵Paul Davis
boost::shared_ptr<Track> rather than Route (this the raw pointers used inside SessionEvent)
2019-11-02fix initialization orderPaul Davis
2019-11-02remove unused member variablePaul Davis
2019-11-02introduce new all-in-RAM MIDI datastructure and use it for MIDI playbackPaul Davis
2019-08-03Update libardour GPL boilerplate and (C) from git logRobin Gareus
2019-03-19Fix Playlist refcount when deleting trackRobin Gareus
Both Disk-reader and Disk-writer use the same playlist. ARDOUR::Track::use_playlist() sets it for both Disk-IO processors, so it needs to be released by both on destruction.
2019-02-05Towards a new disk-reader ringbufferRobin Gareus
This is mainly a NO-OP, introducing a new PlaybackBuffer type and preparing for its use. At this point in time, the buffer is just a power-of-two sized ringbuffer and the disk-reader's read-logic is still unchanged. Eventually the read and write sample position that are currently private to the disk-reader can be migrated to be owned by the buffer. Also Diskreader::read() positions can be matched to read-position .. +/- buffer reservation and de-click can read w/o committing the read.
2018-11-29Disk I/O: only allocate midi-buffer if neededRobin Gareus
This fixes a memory-leak (_midi_buf was allocated in DiskIOProc but only delete in DiskReader). Also skip midi-refill early on
2018-09-18new transport slave/master implementation, libs/ editionPaul Davis
2018-07-09NO-OP: Rename disk-reader buffer for consistencyRobin Gareus
This is in preparation to replace the Ringbuffer and avoid over-using "buf" as variable (it's already used for vectors, as parameter name and Audiobuffers.
2018-07-09Separate ChannelInfo for disk reader and writerRobin Gareus
This allows to use different types for write and read buffers, in preparation for a dedicated reader-buffer.
2018-07-09Remove unused disk-reader vari-speedRobin Gareus
2017-10-31Move Loop Location to ProcessorsRobin Gareus
The processors will becomes responsible to know about loop-positions and map latency-compensated start_sample, end_sample into the loop-range as needed.
2017-10-02use new CubicInterpolation APIPaul Davis
2017-10-02remove midi_interpolation member of DiskIOProcessor (was used only to call ↵Paul Davis
::distance() method
2017-10-02use constructor syntaxPaul Davis
2017-10-02remove leftover cruft related to wrap buffers from DiskIOProcessorPaul Davis
2017-09-23NO-OP: whitespaceRobin Gareus
2017-09-23Fix changing playlist (Track is responsible for signal emission)Robin Gareus
2017-09-21fix clang compilation (include header ordering)Robin Gareus
"i18n.h" needs to be included last, after types have been defined or clang bails out: "call to function 'operator<<' is not visible in the template definition"
2017-09-18globally change all use of "frame" to refer to audio into "sample".Paul Davis
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode and video in order to keep the legible
2017-09-18channel config changes during ::configure_io() must be scoped to ensure they ↵Paul Davis
are complete before signals are sent
2017-09-18move _file_frame from DiskIOProcessor into DiskReader (only place where it ↵Paul Davis
is needed); split into by-type array to deal with different rate of audio & MIDI i/o
2017-09-18tweaks to disk io point mechanismsPaul Davis
2017-09-18don't bother to re-seek/locate/refill buffers when disk IO processor config ↵Paul Davis
changes unless it actually changed
2017-09-18drop route shared_ptr when Route::GoingAway is emittedPaul Davis
2017-09-18get sdio branch working with MIDI tracksPaul Davis
2017-09-18remove all remaining vestiges of per-track varispeed from libardourPaul Davis
2017-09-18get diskreader working, and remove per-track varispeed API and mechanismPaul Davis
2017-09-18addd more DEBUG_TRACE for DiskIO; set DiskIOProcess::_need_butler more ↵Paul Davis
appropriately; other minor adjustments
2017-09-18random changes required to get an audio track created and transport functionalPaul Davis
2017-09-18remove Diskstream from Track and derivatives; get ardour to actually startupPaul Davis
2017-09-18mega-commit to save state of first "it compilesand links" state for ↵Paul Davis
separated disk i/o changes. THIS WILL NOT RUN. THIS REQUIRES MANY CHANGES
2017-09-18merge almost all audio & midi diskstream code, redistribute between ↵Paul Davis
DiskIOProcessor, DiskReader,DiskWriter; compile and link
2017-09-18move need-butler from DiskReader to DiskIOProcessorPaul Davis
2017-09-18move ChannelInfo structure from DiskReader into DiskIOProcessorPaul Davis
2017-09-18crawling towards the APIs for separate disk i/oPaul Davis