diff options
author | Chris Robinson <[email protected]> | 2009-12-24 15:41:45 -0800 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2009-12-24 15:41:45 -0800 |
commit | 7f0c6629b9ec1ec1cf11dfbd4a6bba43d3cce9e2 (patch) | |
tree | fa004acfd41122045544f621ab920ec0275d44ea | |
parent | f6ca39403d31b52a0ca10d402d0c0a9e87e1e667 (diff) |
Use a 64-bit value to scale potentially-large numbers
-rw-r--r-- | Alc/ALu.c | 11 | ||||
-rw-r--r-- | Alc/pulseaudio.c | 2 | ||||
-rw-r--r-- | OpenAL32/Include/alMain.h | 15 |
3 files changed, 16 insertions, 12 deletions
@@ -37,17 +37,6 @@ #include "alu.h" #include "bs2b.h" -#if defined(HAVE_STDINT_H) -#include <stdint.h> -typedef int64_t ALint64; -#elif defined(HAVE___INT64) -typedef __int64 ALint64; -#elif (SIZEOF_LONG == 8) -typedef long ALint64; -#elif (SIZEOF_LONG_LONG == 8) -typedef long long ALint64; -#endif - #define FRACTIONBITS 14 #define FRACTIONMASK ((1L<<FRACTIONBITS)-1) #define MAX_PITCH 65536 diff --git a/Alc/pulseaudio.c b/Alc/pulseaudio.c index a40cfee7..0353dafd 100644 --- a/Alc/pulseaudio.c +++ b/Alc/pulseaudio.c @@ -581,7 +581,7 @@ static ALCboolean pulse_reset_playback(ALCdevice *device) //{{{ /* Server updated our playback rate, so modify the buffer attribs * accordingly. */ - data->attr.minreq = (data->attr.minreq/data->frame_size) * + data->attr.minreq = (ALuint64)(data->attr.minreq/data->frame_size) * data->spec.rate / device->Frequency * data->frame_size; data->attr.tlength = data->attr.minreq * device->NumUpdates; diff --git a/OpenAL32/Include/alMain.h b/OpenAL32/Include/alMain.h index b33f797b..fc9cf71d 100644 --- a/OpenAL32/Include/alMain.h +++ b/OpenAL32/Include/alMain.h @@ -13,6 +13,21 @@ #include "AL/alc.h" #include "AL/alext.h" +#if defined(HAVE_STDINT_H) +#include <stdint.h> +typedef int64_t ALint64; +typedef uint64_t ALuint64; +#elif defined(HAVE___INT64) +typedef __int64 ALint64; +typedef unsigned __int64 ALuint64; +#elif (SIZEOF_LONG == 8) +typedef long ALint64; +typedef unsigned long ALuint64; +#elif (SIZEOF_LONG_LONG == 8) +typedef long long ALint64; +typedef unsigned long long ALuint64; +#endif + #ifdef _WIN32 #ifndef _WIN32_WINNT |