X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Faudio_buffers.h;h=75bc686f83086df201ecd200510c04cbeb6b59e1;hb=a0c0e609f7fbff8513135428378cc16684bae937;hp=47b8145a1de2892e6126ca3cea8738a034514eff;hpb=a183c1776cfd020a37d028ebb0f641352f49697b;p=dcpomatic.git diff --git a/src/lib/audio_buffers.h b/src/lib/audio_buffers.h index 47b8145a1..75bc686f8 100644 --- a/src/lib/audio_buffers.h +++ b/src/lib/audio_buffers.h @@ -17,6 +17,9 @@ */ +#ifndef DVDOMATIC_AUDIO_BUFFERS_H +#define DVDOMATIC_AUDIO_BUFFERS_H + #include /** @class AudioBuffers @@ -30,6 +33,8 @@ public: AudioBuffers (boost::shared_ptr); ~AudioBuffers (); + AudioBuffers & operator= (AudioBuffers const &); + void ensure_size (int); float** data () const { @@ -50,6 +55,9 @@ public: void make_silent (); void make_silent (int c); + void make_silent (int from, int frames); + + void apply_gain (float); void copy_from (AudioBuffers const * from, int frames_to_copy, int read_offset, int write_offset); void move (int from, int to, int frames); @@ -57,6 +65,9 @@ public: void accumulate_frames (AudioBuffers const *, int read_offset, int write_offset, int frames); private: + void allocate (int, int); + void deallocate (); + /** Number of channels */ int _channels; /** Number of frames (where a frame is one sample across all channels) */ @@ -66,3 +77,5 @@ private: /** Audio data (so that, e.g. _data[2][6] is channel 2, sample 6) */ float** _data; }; + +#endif