📄 fixedsizeaudiobuffer.h
字号:
// 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 <map>
#include "AudioTransformer.h"
#include "WaveFormats.h"
#ifndef WIN32
#include "linTypes.h"
#endif
class FixedSizeAudioBuffer : public AudioTransformer
{
public:
FixedSizeAudioBuffer();
virtual ~FixedSizeAudioBuffer();
int SetOutputDuration(int duration); // duration in milliseconds
virtual int StartTransform();
virtual int StopTransform();
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);
int GiveNextAudioSample(AudioSample **ppAudioSample, AudioSink *audioSink);
private:
int EnqueuePacket(std::vector<std::pair<AudioSample *, AudioSource *> > &data);
private:
int outputDuration;
int outputSize;
int minFrameDuration;
int minFrameSize;
WAVEFORMATEX audioFormat;
bool bRunning;
CRITICAL_SECTION audioBufferMutex;
#ifdef WIN32
typedef std::vector<char> AUDIOBUFFER;
AUDIOBUFFER audioBuffer;
#else
typedef std::vector<char> AUDIOBUFFER;
AUDIOBUFFER audioBuffer;
std::map<AudioSink*, AUDIOBUFFER> myAudioBufferMap;
#endif
};
#endif // !defined(AFX_FIXEDSIZEAUDIOBUFFER_H__389EBF68_48E8_4B98_AF05_D42F438579C7__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -