Simplify some DSound capture math

This commit is contained in:
Chris Robinson
2020-10-03 16:17:34 -07:00
parent b5eccf424b
commit e0097c18b8
+5 -5
View File
@@ -746,9 +746,9 @@ ALCuint DSoundCapture::availableSamples()
if(!mDevice->Connected.load(std::memory_order_acquire))
return static_cast<ALCuint>(mRing->readSpace());
ALuint FrameSize{mDevice->frameSizeFromFmt()};
DWORD BufferBytes{mBufferBytes};
DWORD LastCursor{mCursor};
const ALuint FrameSize{mDevice->frameSizeFromFmt()};
const DWORD BufferBytes{mBufferBytes};
const DWORD LastCursor{mCursor};
DWORD ReadCursor{};
void *ReadPtr1{}, *ReadPtr2{};
@@ -756,7 +756,7 @@ ALCuint DSoundCapture::availableSamples()
HRESULT hr{mDSCbuffer->GetCurrentPosition(nullptr, &ReadCursor)};
if(SUCCEEDED(hr))
{
DWORD NumBytes{(ReadCursor-LastCursor + BufferBytes) % BufferBytes};
const DWORD NumBytes{(BufferBytes+ReadCursor-LastCursor) % BufferBytes};
if(!NumBytes) return static_cast<ALCubyte>(mRing->readSpace());
hr = mDSCbuffer->Lock(LastCursor, NumBytes, &ReadPtr1, &ReadCnt1, &ReadPtr2, &ReadCnt2, 0);
}
@@ -766,7 +766,7 @@ ALCuint DSoundCapture::availableSamples()
if(ReadPtr2 != nullptr && ReadCnt2 > 0)
mRing->write(ReadPtr2, ReadCnt2/FrameSize);
hr = mDSCbuffer->Unlock(ReadPtr1, ReadCnt1, ReadPtr2, ReadCnt2);
mCursor = (LastCursor+ReadCnt1+ReadCnt2) % BufferBytes;
mCursor = ReadCursor;
}
if(FAILED(hr))