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
|