// FixedSizeAudioBuffer.h: interface for the FixedSizeAudioBuffer class. // ////////////////////////////////////////////////////////////////////// #ifndef AFX_FIXEDSIZEAUDIOBUFFER_H__389EBF68_48E8_4B98_AF05_D42F438579C7__INCLUDED_ #define AFX_FIXEDSIZEAUDIOBUFFER_H__389EBF68_48E8_4B98_AF05_D42F438579C7__INCLUDED_ #include #include "AudioTransformer.h" class FixedSizeAudioBuffer : public AudioTransformer { public: FixedSizeAudioBuffer(); virtual ~FixedSizeAudioBuffer(); int SetOutputDuration(int duration); // duration in milliseconds virtual int TransformStarted(); virtual int TransformStopped(); int SetTraceLevel(); protected: virtual int RenderAudioSamples(std::vector > &data); virtual int GenerateData(AudioSample **ppAudioSample); virtual int TransformAudioSamples(std::vector > &data, AudioSample **ppAudioSample); private: int EnqueuePacket(std::vector > &data); private: int outputDuration; int outputSize; int minFrameDuration; int minFrameSize; WAVEFORMATEX audioFormat; bool bRunning; typedef std::vector AUDIOBUFFER; AUDIOBUFFER audioBuffer; CRITICAL_SECTION audioBufferMutex; }; #endif // !defined(AFX_FIXEDSIZEAUDIOBUFFER_H__389EBF68_48E8_4B98_AF05_D42F438579C7__INCLUDED_)