MCPcopy Create free account
hub / github.com/AppleWin/AppleWin / DSZeroVoiceWritableBuffer

Function DSZeroVoiceWritableBuffer

source/SoundCore.cpp:254–283  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

252//-----------------------------------------------------------------------------
253
254bool DSZeroVoiceWritableBuffer(PVOICE Voice, uint32_t dwBufferSize)
255{
256 DWORD dwDSLockedBufferSize0=0, dwDSLockedBufferSize1=0;
257 SHORT *pDSLockedBuffer0, *pDSLockedBuffer1;
258
259
260 HRESULT hr = DSGetLock(Voice->lpDSBvoice,
261 0, dwBufferSize,
262 &pDSLockedBuffer0, &dwDSLockedBufferSize0,
263 &pDSLockedBuffer1, &dwDSLockedBufferSize1);
264 if(FAILED(hr))
265 {
266 if(g_fh) fprintf(g_fh, "%s: DSGetLock failed (%08X)\n", Voice->name.c_str(), (uint32_t)hr);
267 return false;
268 }
269
270 memset(pDSLockedBuffer0, 0x00, dwDSLockedBufferSize0);
271 if(pDSLockedBuffer1)
272 memset(pDSLockedBuffer1, 0x00, dwDSLockedBufferSize1);
273
274 hr = Voice->lpDSBvoice->Unlock((void*)pDSLockedBuffer0, dwDSLockedBufferSize0,
275 (void*)pDSLockedBuffer1, dwDSLockedBufferSize1);
276 if(FAILED(hr))
277 {
278 if(g_fh) fprintf(g_fh, "%s: DSUnlock failed (%08X)\n", Voice->name.c_str(), (uint32_t)hr);
279 return false;
280 }
281
282 return true;
283}
284
285//-----------------------------------------------------------------------------
286

Callers 1

Spkr_SubmitWaveBufferFunction · 0.85

Calls 2

DSGetLockFunction · 0.85
UnlockMethod · 0.80

Tested by

no test coverage detected