Mercurial > games > semicongine
changeset 174:2a31a1785b4a
did: fix default sample rate, correct waiting for windows waveout processing
author | Sam <sam@basx.dev> |
---|---|
date | Tue, 02 May 2023 00:49:23 +0700 |
parents | 07e57fce1beb |
children | ac75746f6b36 |
files | src/semicongine/audiotypes.nim src/semicongine/platform/windows/audio.nim |
diffstat | 2 files changed, 4 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/semicongine/audiotypes.nim Tue May 02 00:34:10 2023 +0700 +++ b/src/semicongine/audiotypes.nim Tue May 02 00:49:23 2023 +0700 @@ -5,7 +5,7 @@ # # ffmpeg -i <infile> -f s16le -ac 2 -ar 48000 -acodec pcm_s16le <outfile> -const SAMPLERATE* = 48000 +const SAMPLERATE* = 44100 const BUFFERSIZE* = 512 type
--- a/src/semicongine/platform/windows/audio.nim Tue May 02 00:34:10 2023 +0700 +++ b/src/semicongine/platform/windows/audio.nim Tue May 02 00:49:23 2023 +0700 @@ -38,6 +38,9 @@ ) checkWinMMResult waveOutPrepareHeader(soundDevice.handle, addr data, UINT(sizeof(WAVEHDR))) checkWinMMResult waveOutWrite(soundDevice.handle, addr data, UINT(sizeof(WAVEHDR))) + while (data.dwFlags and WHDR_DONE) != 1: + discard + checkWinMMResult waveOutUnprepareHeader(soundDevice.handle, addr data, UINT(sizeof(WAVEHDR))) proc closeSoundDevice*(soundDevice: NativeSoundDevice) = waveOutClose(soundDevice.handle)