diff options
author | _AG <gennariarmando@outlook.com> | 2019-06-17 21:06:49 +0200 |
---|---|---|
committer | _AG <gennariarmando@outlook.com> | 2019-06-17 21:06:49 +0200 |
commit | f83c7392cc8208312db6ebd470300c2c903371a8 (patch) | |
tree | 9986da11b4dc941ce31cf2c6c92270aa26980092 /src/CdStream.h | |
parent | Fixed health icon. (diff) | |
parent | Merge pull request #1 from GTAmodding/master (diff) | |
download | re3-f83c7392cc8208312db6ebd470300c2c903371a8.tar re3-f83c7392cc8208312db6ebd470300c2c903371a8.tar.gz re3-f83c7392cc8208312db6ebd470300c2c903371a8.tar.bz2 re3-f83c7392cc8208312db6ebd470300c2c903371a8.tar.lz re3-f83c7392cc8208312db6ebd470300c2c903371a8.tar.xz re3-f83c7392cc8208312db6ebd470300c2c903371a8.tar.zst re3-f83c7392cc8208312db6ebd470300c2c903371a8.zip |
Diffstat (limited to '')
-rw-r--r-- | src/CdStream.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/CdStream.h b/src/CdStream.h new file mode 100644 index 00000000..80c7874f --- /dev/null +++ b/src/CdStream.h @@ -0,0 +1,47 @@ +#pragma once + +#define MAX_CDIMAGES 8 +#define CDSTREAM_SECTOR_SIZE 2048 + +#define _GET_INDEX(a) (a >> 24) +#define _GET_OFFSET(a) (a & 0xFFFFFF) + +enum +{ + STREAM_NONE = uint8( 0), + STREAM_SUCCESS = uint8( 1), + STREAM_READING = uint8(-1), // 0xFF, + STREAM_ERROR = uint8(-2), // 0xFE, + STREAM_ERROR_NOCD = uint8(-3), // 0xFD, + STREAM_ERROR_WRONGCD = uint8(-4), // 0xFC, + STREAM_ERROR_OPENCD = uint8(-5), // 0xFB, + STREAM_WAITING = uint8(-6) // 0xFA, +}; + +struct Queue +{ + int32 *items; + int32 head; + int32 tail; + int32 size; +}; + +VALIDATE_SIZE(Queue, 0x10); + + +void CdStreamInitThread(void); +void CdStreamInit(int32 numChannels); +uint32 GetGTA3ImgSize(void); +void CdStreamShutdown(void); +int32 CdStreamRead(int32 channel, void *buffer, uint32 offset, uint32 size); +int32 CdStreamGetStatus(int32 channel); +int32 CdStreamGetLastPosn(void); +int32 CdStreamSync(int32 channel); +void AddToQueue(Queue *queue, int32 item); +int32 GetFirstInQueue(Queue *queue); +void RemoveFirstInQueue(Queue *queue); +DWORD WINAPI CdStreamThread(LPVOID lpThreadParameter); +bool CdStreamAddImage(char const *path); +char *CdStreamGetImageName(int32 cd); +void CdStreamRemoveImages(void); +int32 CdStreamGetNumImages(void);
\ No newline at end of file |