Reviewed Coding Correction
This commit is contained in:
parent
9a834a9f52
commit
fc936cfc9c
|
@ -361,42 +361,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSound_SynchPlayback)
|
||||||
{
|
{
|
||||||
FUNC_EXPORTS;
|
FUNC_EXPORTS;
|
||||||
|
|
||||||
enterCriticalSection;
|
return XTL::EMUPATCH(CDirectSound_SynchPlayback)(pThis);
|
||||||
|
|
||||||
DbgPrintf("EmuDSound: IDirectSound_SynchPlayback\n"
|
|
||||||
"(\n"
|
|
||||||
" pThis : 0x%.08X\n"
|
|
||||||
");\n",
|
|
||||||
pThis);
|
|
||||||
|
|
||||||
//TODO: Test case Rayman 3 - Hoodlum Havoc, Battlestar Galactica, Miami Vice
|
|
||||||
|
|
||||||
XTL::X_CDirectSoundBuffer* *pDSBuffer = g_pDSoundBufferCache;
|
|
||||||
for (int v = 0; v < SOUNDBUFFER_CACHE_SIZE; v++, pDSBuffer++) {
|
|
||||||
if ((*pDSBuffer) == nullptr || (*pDSBuffer)->EmuBuffer == nullptr) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((*pDSBuffer)->EmuFlags & DSB_FLAG_SYNCHPLAYBACK_CONTROL) {
|
|
||||||
(*pDSBuffer)->EmuDirectSoundBuffer8->SetCurrentPosition(0);
|
|
||||||
(*pDSBuffer)->EmuDirectSoundBuffer8->Play(0, 0, (*pDSBuffer)->EmuPlayFlags);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
XTL::X_CDirectSoundStream* *pDSStream = g_pDSoundStreamCache;
|
|
||||||
for (int v = 0; v < SOUNDSTREAM_CACHE_SIZE; v++, pDSStream++) {
|
|
||||||
if ((*pDSStream) == nullptr || (*pDSStream)->EmuBuffer == nullptr) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if ((*pDSStream)->EmuFlags & DSB_FLAG_SYNCHPLAYBACK_CONTROL) {
|
|
||||||
(*pDSStream)->EmuDirectSoundBuffer8->SetCurrentPosition(0);
|
|
||||||
(*pDSStream)->EmuDirectSoundBuffer8->Play(0, 0, DSBPLAY_LOOPING);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
leaveCriticalSection;
|
|
||||||
|
|
||||||
return S_OK;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
|
@ -1107,7 +1072,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_Lock)
|
||||||
ResizeIDirectSoundBuffer(pThis->EmuDirectSoundBuffer8, pThis->EmuBufferDesc, pThis->EmuPlayFlags, dwBytes, pThis->EmuDirectSound3DBuffer8);
|
ResizeIDirectSoundBuffer(pThis->EmuDirectSoundBuffer8, pThis->EmuBufferDesc, pThis->EmuPlayFlags, dwBytes, pThis->EmuDirectSound3DBuffer8);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pThis->EmuLockPtr1 != 0) {
|
if (pThis->EmuLockPtr1 != nullptr) {
|
||||||
if (pThis->EmuFlags & DSB_FLAG_ADPCM) {
|
if (pThis->EmuFlags & DSB_FLAG_ADPCM) {
|
||||||
DSoundBufferXboxAdpcmDecoder(pThis->EmuDirectSoundBuffer8,
|
DSoundBufferXboxAdpcmDecoder(pThis->EmuDirectSoundBuffer8,
|
||||||
pThis->EmuBufferDesc,
|
pThis->EmuBufferDesc,
|
||||||
|
@ -1374,7 +1339,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_Play)
|
||||||
pThis, dwReserved1, dwReserved2, dwFlags);
|
pThis, dwReserved1, dwReserved2, dwFlags);
|
||||||
|
|
||||||
// close any existing locks
|
// close any existing locks
|
||||||
if (pThis->EmuLockPtr1 != 0) {
|
if (pThis->EmuLockPtr1 != nullptr) {
|
||||||
if (pThis->EmuFlags & DSB_FLAG_ADPCM) {
|
if (pThis->EmuFlags & DSB_FLAG_ADPCM) {
|
||||||
DSoundBufferXboxAdpcmDecoder(pThis->EmuDirectSoundBuffer8,
|
DSoundBufferXboxAdpcmDecoder(pThis->EmuDirectSoundBuffer8,
|
||||||
pThis->EmuBufferDesc,
|
pThis->EmuBufferDesc,
|
||||||
|
@ -1964,7 +1929,9 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_Flush)
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * patch: CDirectSound_SynchPlayback
|
// * patch: CDirectSound_SynchPlayback
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
HRESULT WINAPI XTL::EMUPATCH(CDirectSound_SynchPlayback)(PVOID pUnknown)
|
HRESULT WINAPI XTL::EMUPATCH(CDirectSound_SynchPlayback)
|
||||||
|
(
|
||||||
|
LPDIRECTSOUND8 pThis)
|
||||||
{
|
{
|
||||||
FUNC_EXPORTS;
|
FUNC_EXPORTS;
|
||||||
|
|
||||||
|
@ -1972,9 +1939,11 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSound_SynchPlayback)(PVOID pUnknown)
|
||||||
|
|
||||||
DbgPrintf("EmuDSound: CDirectSound_SynchPlayback\n"
|
DbgPrintf("EmuDSound: CDirectSound_SynchPlayback\n"
|
||||||
"(\n"
|
"(\n"
|
||||||
" pUnknown : 0x%.08X\n"
|
" pThis : 0x%.08X\n"
|
||||||
");\n",
|
");\n",
|
||||||
pUnknown);
|
pThis);
|
||||||
|
|
||||||
|
//TODO: Test case Rayman 3 - Hoodlum Havoc, Battlestar Galactica, Miami Vice, and ...?
|
||||||
|
|
||||||
XTL::X_CDirectSoundBuffer* *pDSBuffer = g_pDSoundBufferCache;
|
XTL::X_CDirectSoundBuffer* *pDSBuffer = g_pDSoundBufferCache;
|
||||||
for (int v = 0; v < SOUNDBUFFER_CACHE_SIZE; v++, pDSBuffer++) {
|
for (int v = 0; v < SOUNDBUFFER_CACHE_SIZE; v++, pDSBuffer++) {
|
||||||
|
@ -2886,7 +2855,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_Pause)
|
||||||
// This function wasn't part of the XDK until 4721.
|
// This function wasn't part of the XDK until 4721.
|
||||||
|
|
||||||
// close any existing locks
|
// close any existing locks
|
||||||
if (pThis->EmuLockPtr1 != 0) {
|
if (pThis->EmuLockPtr1 != nullptr) {
|
||||||
if (pThis->EmuFlags & DSB_FLAG_ADPCM) {
|
if (pThis->EmuFlags & DSB_FLAG_ADPCM) {
|
||||||
DSoundBufferXboxAdpcmDecoder(pThis->EmuDirectSoundBuffer8,
|
DSoundBufferXboxAdpcmDecoder(pThis->EmuDirectSoundBuffer8,
|
||||||
pThis->EmuBufferDesc,
|
pThis->EmuBufferDesc,
|
||||||
|
@ -3182,7 +3151,7 @@ extern "C" HRESULT __stdcall XTL::EMUPATCH(IDirectSoundBuffer_PlayEx)
|
||||||
pThis, rtTimeStamp, dwFlags);
|
pThis, rtTimeStamp, dwFlags);
|
||||||
|
|
||||||
// close any existing locks
|
// close any existing locks
|
||||||
if (pThis->EmuLockPtr1 != 0) {
|
if (pThis->EmuLockPtr1 != nullptr) {
|
||||||
if (pThis->EmuFlags & DSB_FLAG_ADPCM) {
|
if (pThis->EmuFlags & DSB_FLAG_ADPCM) {
|
||||||
DSoundBufferXboxAdpcmDecoder(pThis->EmuDirectSoundBuffer8,
|
DSoundBufferXboxAdpcmDecoder(pThis->EmuDirectSoundBuffer8,
|
||||||
pThis->EmuBufferDesc,
|
pThis->EmuBufferDesc,
|
||||||
|
|
|
@ -927,7 +927,10 @@ HRESULT WINAPI EMUPATCH(CDirectSoundStream_Flush)(X_CDirectSoundStream *pThis);
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * patch: CDirectSound_SynchPlayback
|
// * patch: CDirectSound_SynchPlayback
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
HRESULT WINAPI EMUPATCH(CDirectSound_SynchPlayback)(PVOID pUnknown);
|
HRESULT WINAPI EMUPATCH(CDirectSound_SynchPlayback)
|
||||||
|
(
|
||||||
|
LPDIRECTSOUND8 pThis
|
||||||
|
);
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * patch: CDirectSoundStream_Pause
|
// * patch: CDirectSoundStream_Pause
|
||||||
|
|
|
@ -392,7 +392,7 @@ inline void DSoundBufferUpdate(
|
||||||
if ((dwStatus & DSBSTATUS_PLAYING)) {
|
if ((dwStatus & DSBSTATUS_PLAYING)) {
|
||||||
|
|
||||||
// unlock existing lock
|
// unlock existing lock
|
||||||
if (pLockPtr1 != 0) {
|
if (pLockPtr1 != nullptr) {
|
||||||
if (dwEmuFlags & DSB_FLAG_ADPCM) {
|
if (dwEmuFlags & DSB_FLAG_ADPCM) {
|
||||||
DSoundBufferXboxAdpcmDecoder(pThis,
|
DSoundBufferXboxAdpcmDecoder(pThis,
|
||||||
pDSBufferDesc,
|
pDSBufferDesc,
|
||||||
|
@ -413,10 +413,10 @@ inline void DSoundBufferUpdate(
|
||||||
HRESULT hRet = pThis->Lock(dwOffset, pDSBufferDesc->dwBufferBytes, &pAudioPtr, &dwAudioBytes, &pAudioPtr2, &dwAudioBytes2, 0);
|
HRESULT hRet = pThis->Lock(dwOffset, pDSBufferDesc->dwBufferBytes, &pAudioPtr, &dwAudioBytes, &pAudioPtr2, &dwAudioBytes2, 0);
|
||||||
|
|
||||||
if (SUCCEEDED(hRet)) {
|
if (SUCCEEDED(hRet)) {
|
||||||
if (pAudioPtr != 0) {
|
if (pAudioPtr != nullptr) {
|
||||||
memcpy(pAudioPtr, pBuffer, dwAudioBytes);
|
memcpy(pAudioPtr, pBuffer, dwAudioBytes);
|
||||||
}
|
}
|
||||||
if (pAudioPtr2 != 0) {
|
if (pAudioPtr2 != nullptr) {
|
||||||
memcpy(pAudioPtr2, (PVOID)((DWORD)pBuffer + dwAudioBytes), dwAudioBytes2);
|
memcpy(pAudioPtr2, (PVOID)((DWORD)pBuffer + dwAudioBytes), dwAudioBytes2);
|
||||||
}
|
}
|
||||||
pThis->Unlock(pAudioPtr, dwAudioBytes, pAudioPtr2, dwAudioBytes2);
|
pThis->Unlock(pAudioPtr, dwAudioBytes, pAudioPtr2, dwAudioBytes2);
|
||||||
|
@ -624,7 +624,7 @@ inline HRESULT HybridDirectSoundBuffer_Play(
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dwFlags & X_DSBPAUSE_SYNCHPLAYBACK) {
|
if (dwFlags & X_DSBPAUSE_SYNCHPLAYBACK) {
|
||||||
dwFlags &= ~X_DSBPAUSE_SYNCHPLAYBACK;
|
dwFlags ^= X_DSBPAUSE_SYNCHPLAYBACK;
|
||||||
dwEmuFlags |= DSB_FLAG_SYNCHPLAYBACK_CONTROL;
|
dwEmuFlags |= DSB_FLAG_SYNCHPLAYBACK_CONTROL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue