| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 | #ifndef NULLSOFT_WINDACPLAYH#define NULLSOFT_WINDACPLAYH#include "Main.h"#include "CDPlay.h"#include "windac/Dac32.h"#include "../nu/AutoLock.h"using namespace Nullsoft::Utility;class WindacPlay : public C_CDPlay{public:	WindacPlay();	~WindacPlay();	int open(wchar_t drive, int track);	int play(wchar_t drive, int track);	static DWORD WINAPI threadProc(LPVOID lpParameter)	{		WindacPlay *wp = (WindacPlay *)lpParameter;		return wp->threadProc2();	}	int read(char *dest, int len, int *killswitch);	int threadProc2();	void stop();	void pause()	{		line.outMod->Pause(1);	}	void unpause()	{		line.outMod->Pause(0);	}	int getlength()	{		return g_playlength;	}	int getoutputtime()	{		return line.outMod->GetOutputTime();	}	void setoutputtime(int time_in_ms)	{		need_seek = time_in_ms;	}	void setvolume(int _a_v, int _a_p)	{		line.outMod->SetVolume(_a_v);		line.outMod->SetPan(_a_p);	}private:	void getTrackInfos(int *drivenum, char driveletter);	unsigned char *sbuf;	long bytes_in_sbuf;	int buf_size;	int start, end;	int g_nch, g_srate, g_bps;	int killswitch;	HANDLE hThread;	int decode_pos_ms;	int need_seek;	BOOL inited;	CMapDrive *m_pMapDrive;	CSCSICD *scsi;	TDriveInfo drive_info;	CCDAdress start_sector, current_sector, end_sector;	int slength;	DWORD last_eject_scan;	bool needsToClose;};#endif
 |