diff options
author | Robin Gareus <robin@gareus.org> | 2020-04-14 03:57:26 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2020-04-14 03:57:26 +0200 |
commit | ea2bda666813ed7b8963ee2884f7a496b8284b08 (patch) | |
tree | b6bddc9e65df364163f86e7390c981dc6c6c1d8e /libs/ardour/ardour | |
parent | d5f25f998bb5a5cb8aefbba8679e63ffa0062d55 (diff) |
Fix playback alignment when adding/removing channels
The disk-reader assumes that all playback ringbuffers are in sync
and have the same fill_level.
Diffstat (limited to 'libs/ardour/ardour')
-rw-r--r-- | libs/ardour/ardour/disk_io.h | 1 | ||||
-rw-r--r-- | libs/ardour/ardour/disk_reader.h | 2 | ||||
-rw-r--r-- | libs/ardour/ardour/disk_writer.h | 2 |
3 files changed, 5 insertions, 0 deletions
diff --git a/libs/ardour/ardour/disk_io.h b/libs/ardour/ardour/disk_io.h index 83e5dd3f9b..39c8b16ec4 100644 --- a/libs/ardour/ardour/disk_io.h +++ b/libs/ardour/ardour/disk_io.h @@ -113,6 +113,7 @@ public: protected: friend class Auditioner; virtual int seek (samplepos_t which_sample, bool complete_refill = false) = 0; + virtual void configuration_changed () = 0; protected: Flag _flags; diff --git a/libs/ardour/ardour/disk_reader.h b/libs/ardour/ardour/disk_reader.h index 2e1ab6aec6..9db4266daa 100644 --- a/libs/ardour/ardour/disk_reader.h +++ b/libs/ardour/ardour/disk_reader.h @@ -223,6 +223,8 @@ private: void get_midi_playback (MidiBuffer& dst, samplepos_t start_sample, samplepos_t end_sample, MonitorState, BufferSet&, double speed, samplecnt_t distance); void maybe_xfade_loop (Sample*, samplepos_t read_start, samplepos_t read_end, ReaderChannelInfo*); + void configuration_changed (); + bool overwrite_existing_audio (); bool overwrite_existing_midi (); }; diff --git a/libs/ardour/ardour/disk_writer.h b/libs/ardour/ardour/disk_writer.h index 31a64cd0e8..2bd753a006 100644 --- a/libs/ardour/ardour/disk_writer.h +++ b/libs/ardour/ardour/disk_writer.h @@ -145,6 +145,8 @@ protected: int do_flush (RunContext context, bool force = false); + void configuration_changed (); + private: static samplecnt_t _chunk_samples; |