52 lines
913 B
C++
52 lines
913 B
C++
#ifndef NULLSOFT_AUDIOLAYERH
|
|
#define NULLSOFT_AUDIOLAYERH
|
|
|
|
#include "WMHandler.h"
|
|
#include <mmreg.h>
|
|
#include "AudioThread.h"
|
|
#include "AudioFormat.h"
|
|
|
|
class AudioLayer : public WMHandler, public AudioFormat
|
|
{
|
|
public:
|
|
AudioLayer(IWMReader *_reader);
|
|
~AudioLayer();
|
|
bool IsOpen()
|
|
{
|
|
return opened;
|
|
}
|
|
void Kill();
|
|
bool OpenAudio();
|
|
|
|
void StartAudioThread();
|
|
private:
|
|
// WMHandler events
|
|
|
|
void Opened();
|
|
void SampleReceived(QWORD &timeStamp, QWORD &duration, unsigned long &outputNum, unsigned long &flags, INSSBuffer *&sample);
|
|
void VideoCatchup(QWORD time);
|
|
void Closed();
|
|
void EndOfFile();
|
|
void Started();
|
|
void Stopped();
|
|
|
|
// other people's data
|
|
IWMReader *reader;
|
|
|
|
// our data
|
|
QWORD startPosition;
|
|
|
|
int audioOutputNum;
|
|
IWMReaderAdvanced2 *reader2;
|
|
QWORD offset;
|
|
DWORD new_offset;
|
|
QWORD videoCatchup;
|
|
bool opened;
|
|
HANDLE killSwitch;
|
|
int latency;
|
|
|
|
AudioThread audioThread;
|
|
};
|
|
|
|
#endif
|