123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- #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
|