diff options
author | Chris Robinson <[email protected]> | 2010-02-24 18:51:57 -0800 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2010-02-24 18:51:57 -0800 |
commit | a9e0e57797c6f4321d5776e1f29bf1e75b11e6a1 (patch) | |
tree | 71353f0190332bd69806103e039c2a4293c90a23 /Alc | |
parent | 9b47048231169ec1cdcea1f20638f6426d796e92 (diff) |
Keep UpdateSize updated when apps request a frequency
Diffstat (limited to 'Alc')
-rw-r--r-- | Alc/ALc.c | 3 | ||||
-rw-r--r-- | Alc/portaudio.c | 4 |
2 files changed, 7 insertions, 0 deletions
@@ -1257,6 +1257,9 @@ ALCAPI ALCcontext* ALCAPIENTRY alcCreateContext(ALCdevice *device, const ALCint attrIdx += 2; } + device->UpdateSize = (ALuint64)device->UpdateSize * freq / + device->Frequency; + device->Bs2bLevel = level; device->Frequency = freq; device->lNumMonoSources = numMono; diff --git a/Alc/portaudio.c b/Alc/portaudio.c index 5d403f29..1a6142ed 100644 --- a/Alc/portaudio.c +++ b/Alc/portaudio.c @@ -126,6 +126,7 @@ void pa_unload(void) typedef struct { PaStream *stream; + ALuint update_size; } pa_data; @@ -160,6 +161,8 @@ static ALCboolean pa_open_playback(ALCdevice *device, const ALCchar *deviceName) return ALC_FALSE; data = (pa_data*)calloc(1, sizeof(pa_data)); + data->update_size = device->UpdateSize; + device->ExtraData = data; outParams.device = GetConfigValueInt("port", "device", -1); @@ -232,6 +235,7 @@ static ALCboolean pa_reset_playback(ALCdevice *device) streamInfo = pPa_GetStreamInfo(data->stream); device->Frequency = streamInfo->sampleRate; + device->UpdateSize = data->update_size; err = pPa_StartStream(data->stream); if(err != paNoError) |