mirror of
https://github.com/WinampDesktop/winamp.git
synced 2024-12-04 14:21:03 -05:00
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
|