40 lines
785 B
C
40 lines
785 B
C
|
#ifndef NULLSOFT_AUDIOTHREADH
|
||
|
#define NULLSOFT_AUDIOTHREADH
|
||
|
|
||
|
#include "WMHandler.h"
|
||
|
#include "MediaThread.h"
|
||
|
#include <wmsdk.h>
|
||
|
|
||
|
class AudioLayer;
|
||
|
|
||
|
class AudioThread : public MediaThread
|
||
|
{
|
||
|
public:
|
||
|
AudioThread(AudioLayer *audio);
|
||
|
void Start(WMHandler *output);
|
||
|
|
||
|
/* AddBuffers put an audio buffer in the queue
|
||
|
it returns true if it was added
|
||
|
it returns false if it was NOT added. it is up to YOU (the caller) to sleep for a while and call again
|
||
|
*/
|
||
|
void AudThread();
|
||
|
bool EndOfFile()
|
||
|
{
|
||
|
if (buffers.empty()) // if the buffers are empty, then our thread might never get a chance to signal EOF
|
||
|
return true;
|
||
|
|
||
|
if (eof)
|
||
|
return true;
|
||
|
eof=1;
|
||
|
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
private:
|
||
|
void AddAPC(MediaBuffer *);
|
||
|
int eof;
|
||
|
WMHandler *output;
|
||
|
AudioLayer *audioLayer;
|
||
|
|
||
|
};
|
||
|
#endif
|