summaryrefslogtreecommitdiffstats
path: root/src/core/CdStream.cpp
diff options
context:
space:
mode:
authorerorcun <erayorcunus@gmail.com>2020-05-11 23:33:13 +0200
committerGitHub <noreply@github.com>2020-05-11 23:33:13 +0200
commit5f40f06bf024e3806e0fe5a92ca14ee6b22a9933 (patch)
tree3008c5a5977736453221f00daa1f34f9d292906b /src/core/CdStream.cpp
parentRenderPedCB from VC (diff)
parentFix appveyor (hopefully) (diff)
downloadre3-5f40f06bf024e3806e0fe5a92ca14ee6b22a9933.tar
re3-5f40f06bf024e3806e0fe5a92ca14ee6b22a9933.tar.gz
re3-5f40f06bf024e3806e0fe5a92ca14ee6b22a9933.tar.bz2
re3-5f40f06bf024e3806e0fe5a92ca14ee6b22a9933.tar.lz
re3-5f40f06bf024e3806e0fe5a92ca14ee6b22a9933.tar.xz
re3-5f40f06bf024e3806e0fe5a92ca14ee6b22a9933.tar.zst
re3-5f40f06bf024e3806e0fe5a92ca14ee6b22a9933.zip
Diffstat (limited to '')
-rw-r--r--src/core/CdStream.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/core/CdStream.cpp b/src/core/CdStream.cpp
index 666041e1..d9978040 100644
--- a/src/core/CdStream.cpp
+++ b/src/core/CdStream.cpp
@@ -1,3 +1,4 @@
+#ifdef _WIN32
#define WITHWINDOWS
#include "common.h"
@@ -16,9 +17,8 @@ struct CdReadInfo
char field_C;
bool bLocked;
bool bInUse;
- char _pad0;
int32 nStatus;
- HANDLE hSemaphore;
+ HANDLE hSemaphore; // used for CdStreamSync
HANDLE hFile;
OVERLAPPED Overlapped;
};
@@ -32,7 +32,7 @@ int32 gNumChannels;
HANDLE gImgFiles[MAX_CDIMAGES];
HANDLE _gCdStreamThread;
-HANDLE gCdStreamSema;
+HANDLE gCdStreamSema; // released when we have new thing to read(so channel is set)
DWORD _gCdStreamThreadId;
CdReadInfo *gpReadInfo;
@@ -296,6 +296,7 @@ CdStreamGetLastPosn(void)
return lastPosnRead;
}
+// wait for channel to finish reading
int32
CdStreamSync(int32 channel)
{
@@ -324,6 +325,7 @@ CdStreamSync(int32 channel)
if ( _gbCdStreamOverlapped && pChannel->hFile )
{
ASSERT(pChannel->hFile != nil );
+ // Beware: This is blocking call (because of last parameter)
if ( GetOverlappedResult(pChannel->hFile, &pChannel->Overlapped, &NumberOfBytesTransferred, TRUE) )
return STREAM_NONE;
else
@@ -406,6 +408,7 @@ WINAPI CdStreamThread(LPVOID lpThreadParameter)
{
pChannel->nStatus = STREAM_NONE;
}
+ // Beware: This is blocking call (because of last parameter)
else if ( GetLastError() == ERROR_IO_PENDING
&& GetOverlappedResult(pChannel->hFile, &pChannel->Overlapped, &NumberOfBytesTransferred, TRUE) )
{
@@ -508,3 +511,4 @@ CdStreamGetNumImages(void)
{
return gNumImages;
}
+#endif