/*
- Copyright (C) 2012-2013 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2012-2017 Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
_frames = f;
}
-/** Make all samples on all channels silent */
+/** Make all frames silent */
void
AudioBuffers::make_silent ()
{
}
}
+/** Make some frames.
+ * @param from Start frame.
+ * @param frames Number of frames to silence.
+ */
void
AudioBuffers::make_silent (int32_t from, int32_t frames)
{
* @param to Offset to move to.
* @param frames Number of frames to move.
*/
-
void
AudioBuffers::move (int32_t frames, int32_t from, int32_t to)
{
}
/** Add data from from `from', `from_channel' to our channel `to_channel'.
+ * @param from Buffers to copy data from.
+ * @param from_channel Channel index to read in \p from.
+ * @param to_channel Channel index to accumulate into.
* @param gain Linear gain to apply to the data before it is added.
*/
void
_allocated_frames = frames;
}
+/** Mix some other buffers with these ones. The AudioBuffers must have the same number of channels.
+ * @param from Audio buffers to get data from.
+ * @param frames Number of frames to mix.
+ * @param read_offset Offset within `from' to read from.
+ * @param write_offset Offset within this to mix into.
+ */
void
AudioBuffers::accumulate_frames (AudioBuffers const * from, int32_t frames, int32_t read_offset, int32_t write_offset)
{
return o;
}
+/** Copy all the samples from a channel on another AudioBuffers to a channel on this one.
+ * @param from AudioBuffers to copy from.
+ * @param from_channel Channel index in `from' to copy from.
+ * @param to_channel Channel index in this to copy into, overwriting what's already there.
+ */
void
AudioBuffers::copy_channel_from (AudioBuffers const * from, int from_channel, int to_channel)
{
memcpy (data(to_channel), from->data(from_channel), frames() * sizeof (float));
}
+/** Make a copy of these AudioBuffers */
shared_ptr<AudioBuffers>
AudioBuffers::clone () const
{
return b;
}
+/** Extend these buffers with the data from another. The AudioBuffers must have the same number of channels. */
void
AudioBuffers::append (shared_ptr<const AudioBuffers> other)
{
+ DCPOMATIC_ASSERT (channels() == other->channels());
ensure_size (_frames + other->frames());
copy_from (other.get(), other->frames(), 0, _frames);
_frames += other->frames();
}
+/** Remove some frames from the start of these AudioBuffers */
void
AudioBuffers::trim_start (int32_t frames)
{