From 9875d43414c0e7c18b3a0c60acd51c5212348025 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Sun, 29 Dec 2013 21:48:14 +0100 Subject: [PATCH] use buffer APIs instead of raw memcpy, fix plugin bypass --- libs/ardour/plugin_insert.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libs/ardour/plugin_insert.cc b/libs/ardour/plugin_insert.cc index b3517531aa..473040d812 100644 --- a/libs/ardour/plugin_insert.cc +++ b/libs/ardour/plugin_insert.cc @@ -346,9 +346,8 @@ PluginInsert::connect_and_run (BufferSet& bufs, pframes_t nframes, framecnt_t of /* XXX: audio only */ uint32_t first_idx = in_map.get (DataType::AUDIO, 0, &valid); if (valid) { - Sample const * mono = bufs.get_audio (first_idx).data (offset); for (uint32_t i = in_streams.n_audio(); i < natural_input_streams().n_audio(); ++i) { - memcpy (bufs.get_audio (in_map.get (DataType::AUDIO, i, &valid)).data (offset), mono, sizeof (Sample) * nframes); + bufs.get_audio(in_map.get (DataType::AUDIO, i, &valid)).read_from(bufs.get_audio(first_idx), nframes, offset, offset); } } } @@ -490,8 +489,9 @@ PluginInsert::run (BufferSet& bufs, framepos_t /*start_frame*/, framepos_t /*end /* not active, but something has make up for any channel count increase */ - for (uint32_t n = out - in; n < out; ++n) { - memcpy (bufs.get_audio (n).data(), bufs.get_audio(in - 1).data(), sizeof (Sample) * nframes); + // TODO: option round-robin (n % in) or silence additional buffers ?? + for (uint32_t n = in; n < out; ++n) { + bufs.get_audio(n).read_from(bufs.get_audio(in - 1), nframes); } }