summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2020-04-14 03:57:26 +0200
committerRobin Gareus <robin@gareus.org>2020-04-14 03:57:26 +0200
commitea2bda666813ed7b8963ee2884f7a496b8284b08 (patch)
treeb6bddc9e65df364163f86e7390c981dc6c6c1d8e /libs/ardour/ardour
parentd5f25f998bb5a5cb8aefbba8679e63ffa0062d55 (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.h1
-rw-r--r--libs/ardour/ardour/disk_reader.h2
-rw-r--r--libs/ardour/ardour/disk_writer.h2
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;