Commit Graph

33 Commits

Author SHA1 Message Date
Robin Gareus
a22f918d9d Update libardour GPL boilerplate and (C) from git log 2019-08-03 15:53:16 +02:00
Robin Gareus
ab79165893 Fix Playlist refcount when deleting track
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-03-19 03:08:06 +01:00
Robin Gareus
007c4ffdc0 Towards a new disk-reader ringbuffer
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.
2019-02-05 23:29:31 +01:00
Robin Gareus
6fc2804414 Disk I/O: only allocate midi-buffer if needed
This fixes a memory-leak (_midi_buf was allocated in DiskIOProc
but only delete in DiskReader). Also skip midi-refill early on
2018-11-29 02:05:26 +01:00
Paul Davis
e6915e01de new transport slave/master implementation, libs/ edition 2018-09-18 19:06:04 -04:00
Robin Gareus
59029765e8 NO-OP: Rename disk-reader buffer for consistency
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-09 19:49:18 +02:00
Robin Gareus
87b2c94759 Separate ChannelInfo for disk reader and writer
This allows to use different types for write and read buffers, in
preparation for a dedicated reader-buffer.
2018-07-09 17:30:38 +02:00
Robin Gareus
cf11764763 Remove unused disk-reader vari-speed 2018-07-09 17:30:38 +02:00
Robin Gareus
00a4ad712c Move Loop Location to Processors
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-31 18:32:26 +01:00
Paul Davis
3f48d00081 use new CubicInterpolation API 2017-10-02 12:46:12 -04:00
Paul Davis
a2703ea503 remove midi_interpolation member of DiskIOProcessor (was used only to call ::distance() method 2017-10-02 12:43:34 -04:00
Paul Davis
318600d05e use constructor syntax 2017-10-02 12:43:34 -04:00
Paul Davis
275756e96a remove leftover cruft related to wrap buffers from DiskIOProcessor 2017-10-02 12:43:34 -04:00
Robin Gareus
d50c738203 NO-OP: whitespace 2017-09-23 02:31:52 +02:00
Robin Gareus
94cce9e06e Fix changing playlist (Track is responsible for signal emission) 2017-09-23 02:31:00 +02:00
Robin Gareus
4e5423b348 fix clang compilation (include header ordering)
"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-21 19:38:13 +02:00
Paul Davis
30b087ab3d globally change all use of "frame" to refer to audio into "sample".
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-18 12:39:17 -04:00
Paul Davis
8f4d432d73 channel config changes during ::configure_io() must be scoped to ensure they are complete before signals are sent 2017-09-18 11:40:53 -04:00
Paul Davis
ece52d3278 move _file_frame from DiskIOProcessor into DiskReader (only place where it is needed); split into by-type array to deal with different rate of audio & MIDI i/o 2017-09-18 11:40:53 -04:00
Paul Davis
9885f04fe6 tweaks to disk io point mechanisms 2017-09-18 11:40:53 -04:00
Paul Davis
8101d9884f don't bother to re-seek/locate/refill buffers when disk IO processor config changes unless it actually changed 2017-09-18 11:40:53 -04:00
Paul Davis
302d15d2c0 drop route shared_ptr when Route::GoingAway is emitted 2017-09-18 11:40:53 -04:00
Paul Davis
26b13ed5f1 get sdio branch working with MIDI tracks 2017-09-18 11:40:53 -04:00
Paul Davis
e24ca13394 remove all remaining vestiges of per-track varispeed from libardour 2017-09-18 11:40:53 -04:00
Paul Davis
2a1dccabc9 get diskreader working, and remove per-track varispeed API and mechanism 2017-09-18 11:40:53 -04:00
Paul Davis
53e6f13852 addd more DEBUG_TRACE for DiskIO; set DiskIOProcess::_need_butler more appropriately; other minor adjustments 2017-09-18 11:40:53 -04:00
Paul Davis
361cab503b random changes required to get an audio track created and transport functional 2017-09-18 11:40:53 -04:00
Paul Davis
35c7274cc9 remove Diskstream from Track and derivatives; get ardour to actually startup 2017-09-18 11:40:53 -04:00
Paul Davis
a4a87f56e9 mega-commit to save state of first "it compilesand links" state for separated disk i/o changes.
THIS WILL NOT RUN. THIS REQUIRES MANY CHANGES
2017-09-18 11:40:52 -04:00
Paul Davis
94604c6979 merge almost all audio & midi diskstream code, redistribute between DiskIOProcessor, DiskReader,DiskWriter; compile and link 2017-09-18 11:40:52 -04:00
Paul Davis
c6dd3045d1 move need-butler from DiskReader to DiskIOProcessor 2017-09-18 11:40:52 -04:00
Paul Davis
bcd7a21510 move ChannelInfo structure from DiskReader into DiskIOProcessor 2017-09-18 11:40:52 -04:00
Paul Davis
46366541b1 crawling towards the APIs for separate disk i/o 2017-09-18 11:40:52 -04:00