X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Flib%2Faudio_buffers.h;h=bcf5d5928ee1330758573cf4d8a7417f46d76e56;hb=6904ca547ce503c9ea06b4def9b9a716068e493c;hp=23e41954f48dc9ecef39448f84888f77cc15550f;hpb=acbf27ab408dd43739c081ae9cfe8bf831715453;p=dcpomatic.git diff --git a/src/lib/audio_buffers.h b/src/lib/audio_buffers.h index 23e41954f..bcf5d5928 100644 --- a/src/lib/audio_buffers.h +++ b/src/lib/audio_buffers.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2012-2013 Carl Hetherington + Copyright (C) 2012-2014 Carl Hetherington This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -17,8 +17,12 @@ */ -#ifndef DVDOMATIC_AUDIO_BUFFERS_H -#define DVDOMATIC_AUDIO_BUFFERS_H +/** @file src/lib/audio_buffers.h + * @brief AudioBuffers class. + */ + +#ifndef DCPOMATIC_AUDIO_BUFFERS_H +#define DCPOMATIC_AUDIO_BUFFERS_H #include @@ -35,12 +39,15 @@ public: AudioBuffers & operator= (AudioBuffers const &); + boost::shared_ptr clone () const; + boost::shared_ptr channel (int) const; + void ensure_size (int); float** data () const { return _data; } - + float* data (int) const; int channels () const { @@ -60,6 +67,7 @@ public: void apply_gain (float); void copy_from (AudioBuffers const * from, int frames_to_copy, int read_offset, int write_offset); + void copy_channel_from (AudioBuffers const * from, int from_channel, int to_channel); void move (int from, int to, int frames); void accumulate_channel (AudioBuffers const * from, int from_channel, int to_channel, float gain = 1); void accumulate_frames (AudioBuffers const *, int read_offset, int write_offset, int frames); @@ -67,7 +75,7 @@ public: private: void allocate (int, int); void deallocate (); - + /** Number of channels */ int _channels; /** Number of frames (where a frame is one sample across all channels) */