Fix to DirectSound not working in modern environments. Need to use FAILED() instead of boolean check. (PR #951)

This commit is contained in:
Henri Asseily
2021-05-16 22:03:59 +03:00
committed by GitHub
parent 110a706535
commit 1b9a769332
5 changed files with 24 additions and 20 deletions
+5 -5
View File
@@ -124,14 +124,14 @@ static const char *DirectSound_ErrorText (HRESULT error)
//-----------------------------------------------------------------------------
bool DSGetLock(LPDIRECTSOUNDBUFFER pVoice, DWORD dwOffset, DWORD dwBytes,
HRESULT DSGetLock(LPDIRECTSOUNDBUFFER pVoice, DWORD dwOffset, DWORD dwBytes,
SHORT** ppDSLockedBuffer0, DWORD* pdwDSLockedBufferSize0,
SHORT** ppDSLockedBuffer1, DWORD* pdwDSLockedBufferSize1)
{
DWORD nStatus;
HRESULT hr = pVoice->GetStatus(&nStatus);
if(hr != DS_OK)
return false;
return hr;
if(nStatus & DSBSTATUS_BUFFERLOST)
{
@@ -151,7 +151,7 @@ bool DSGetLock(LPDIRECTSOUNDBUFFER pVoice, DWORD dwOffset, DWORD dwBytes,
(void**)ppDSLockedBuffer0, pdwDSLockedBufferSize0,
(void**)ppDSLockedBuffer1, pdwDSLockedBufferSize1,
DSBLOCK_ENTIREBUFFER)))
return false;
return hr;
}
else
{
@@ -159,10 +159,10 @@ bool DSGetLock(LPDIRECTSOUNDBUFFER pVoice, DWORD dwOffset, DWORD dwBytes,
(void**)ppDSLockedBuffer0, pdwDSLockedBufferSize0,
(void**)ppDSLockedBuffer1, pdwDSLockedBufferSize1,
0)))
return false;
return hr;
}
return true;
return hr;
}
//-----------------------------------------------------------------------------