home *** CD-ROM | disk | FTP | other *** search
- /*******************************************************************************
- Date : Sep 2002 - Mar 2004
- Author : Ehsan Khan
- Description : Main Interface Header file
- Copyright : 2002-04 Binary Magic, All rights reserved.
- *******************************************************************************/
-
- #pragma once
-
- #include <windows.h>
-
- struct DirEntry {char dummy[16];};
- struct FileEntry {char dummy[16];};
- struct FILES {char dummy[1217664];};
- struct SCSIDEVICE {char dummy[135448];};
-
-
- #define ERR_NO_ERROR 0
- #define ERR_NOT_PREPARED 1
- #define ERR_CANT_OPEN_FILE 2
- #define ERR_CANT_CREATE_FILE 3
- #define ERR_ABORTED_BY_USER 4
-
- #define CS_IDLE 0
- #define CS_WRITING 1
- #define CS_ERASING 2
- #define CS_BACKGROUNDFORMAT 3
- #define CS_CLOSINGTRACK 4
- #define CS_PREPARING 5
- #define CS_ABORTING 6
- #define CS_IMPORTINGSESSION 7
- #define CS_BURNERROR_ABORTING 8
-
- #define DC_READ_CDR 1
- #define DC_READ_CDRW 2
- #define DC_READ_DVDRAM 3
- #define DC_READ_DVDR 4
- #define DC_READ_DVDRW 5
- #define DC_READ_DVDPLUSR 6
- #define DC_READ_DVDPLUSRW 7
-
- #define DC_WRITE_CDR 11
- #define DC_WRITE_CDRW 12
- #define DC_WRITE_DVDRAM 13
- #define DC_WRITE_DVDR 14
- #define DC_WRITE_DVDRW 15
- #define DC_WRITE_DVDPLUSR 16
- #define DC_WRITE_DVDPLUSRW 17
-
- #define DC_TEST_WRITE 21
- #define DC_UNDERRUNPROTECTION 22
-
- class CMCDBurner
- {
-
- private:
-
- protected:
-
- public:
- FILES *cdfiles;
- SCSIDEVICE *device;
-
- CMCDBurner();
- virtual ~CMCDBurner();
-
- void ClearAll(void);
-
- char *GetDeviceName(BYTE Id);
- BOOL SelectDevice(BYTE Id);
- BOOL DeviceCan(BYTE cId);
-
- BOOL LockMedium(void);
- BOOL UnlockMedium(void);
- BOOL UnlockDrive(void);
- BOOL LoadMedium(void);
- BOOL EjectMedium(void);
-
- BOOL Erasable(void);
- BOOL Writable(void);
- BOOL TestUnitReady(void);
- BOOL DeviceIsBurner(void);
-
- BYTE GetDeviceMaxReadSpeed(void);
- BYTE GetDeviceMaxWriteSpeed(void);
- BYTE GetMaxWriteSpeed(void);
- BYTE SessionsOnDisc(void);
-
- WORD GetComponentState(void);
-
- DirEntry *CreateDir(char *dest_path, char *dir_name);
- DirEntry *CreateDirW(wchar_t *dest_path, wchar_t *dir_name);
-
- FileEntry *InsertFile(char *dest_path, char *file_name);
- FileEntry *InsertFileW(wchar_t *dest_path, wchar_t *file_name);
-
- FileEntry *InsertFileWithName(char *DestPath, char *FileName, char *LongNameOnDisc, char *ShortNameOnDisc);
- FileEntry *InsertFileWithNameW(wchar_t *DestPath, wchar_t *FileName, wchar_t *LongNameOnDisc, wchar_t *ShortNameOnDisc);
-
- FileEntry *InsertMemoryFile(char *DestPath, WIN32_FIND_DATAA FindFileData, void (__stdcall *__writedone)(HANDLE FileHandle, unsigned long Position, void *buffer, unsigned long *Size, void *), void *arg);
- FileEntry *InsertMemoryFileW(wchar_t *DestPath, WIN32_FIND_DATAW FindFileData, void (__stdcall *__writedone)(HANDLE FileHandle, unsigned long Position, void *buffer, unsigned long *Size, void *), void *arg);
-
- DirEntry *InsertDir(char *dest_path, char *file_path, char *file_specs, BOOL Recursive, BOOL SavePath);
- DirEntry *InsertDirW(wchar_t *dest_path, wchar_t *file_path, wchar_t *file_specs, BOOL Recursive, BOOL SavePath);
-
- BOOL EraseDisc(BOOL Quick, void ( __stdcall *__start )( int, void *), void *arg);
- DWORD ImportSession(BYTE SessionNo, char *dest_dir);
- DWORD ImportSessionW(BYTE SessionNo, wchar_t *dest_dir);
-
- DWORD Prepare(void);
- DWORD GetImageSize(void);
- DWORD GetBlocksWritten(void);
- BOOL Burn(void (__stdcall *__writedone)(BOOL, void *), void * );
- BOOL BurnISOImage(char *ISOFileName, void (__stdcall *__writedone)(BOOL, void * ), void *);
- BOOL BuildISOImage(char *ISOFileName, void (__stdcall *__writedone)(BOOL, void *), void *);
- BYTE DiscIs(void);
- DWORD GetFreeBlocksOnDisc(void);
- DWORD GetTotalBlocksOnDisc(void);
- void AbortBurn(void);
-
- DWORD GetCacheSize(void);
- void SetCacheSize(DWORD CacheSize);
- DWORD GetCachePosition(void);
-
- BYTE GetReadSpeed(void);
- void SetReadSpeed(BYTE ReadSpeed);
-
- BYTE GetWriteSpeed(void);
- void SetWriteSpeed(BYTE WriteSpeed);
-
- BOOL GetTestWrite(void);
- void SetTestWrite(BOOL TestWrite);
-
- BOOL GetBurnProof(void);
- void SetBurnProof(BOOL BurnProof);
-
- BOOL GetPostGap(void);
- void SetPostGap(BOOL PostGap);
-
- BOOL GetPerformOPC(void);
- void SetPerformOPC(BOOL PerformOPC);
-
- DWORD GetDeviceBufferSize(void);
- DWORD GetDeviceBufferPosition(void);
-
- BOOL GetFinalizeDisc(void);
- void SetFinalizeDisc(BOOL FinalizeDisc);
-
- char *GetVolumeID(void);
- void SetVolumeID(char *VolumeID);
-
- wchar_t *GetVolumeIDW(void);
- void SetVolumeIDW(wchar_t *VolumeID);
-
- char *GetBootImage(void);
- BOOL SetBootImage(char *BootImage);
-
- BYTE GetDeviceCount(void);
-
- char *GetMCDBVersion(void);
-
- DWORD GetErrorNumber(void);
- char *GetErrorString(void);
- wchar_t *GetErrorStringW(void);
-
- BOOL GetJolietFS(void);
- void SetJolietFS(BOOL JolietFS);
-
- BOOL GetReplaceFile(void);
- void SetReplaceFile(BOOL ReplaceFile);
-
- void static __stdcall EraseDone(BOOL FAILED, void *ptr);
- void static __stdcall WriteDone(BOOL FAILED, void *ptr);
-
- };
-