// 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 <vector>
|
#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<std::pair<AudioSample *, AudioSource *> > &data);
|
virtual int GenerateData(AudioSample **ppAudioSample);
|
virtual int TransformAudioSamples(std::vector<std::pair<AudioSample *, AudioSource *> > &data, AudioSample **ppAudioSample);
|
private:
|
int EnqueuePacket(std::vector<std::pair<AudioSample *, AudioSource *> > &data);
|
private:
|
int outputDuration;
|
int outputSize;
|
int minFrameDuration;
|
int minFrameSize;
|
WAVEFORMATEX audioFormat;
|
bool bRunning;
|
typedef std::vector<char> AUDIOBUFFER;
|
AUDIOBUFFER audioBuffer;
|
CRITICAL_SECTION audioBufferMutex;
|
};
|
|
#endif // !defined(AFX_FIXEDSIZEAUDIOBUFFER_H__389EBF68_48E8_4B98_AF05_D42F438579C7__INCLUDED_)
|