aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2009-12-24 15:41:45 -0800
committerChris Robinson <[email protected]>2009-12-24 15:41:45 -0800
commit7f0c6629b9ec1ec1cf11dfbd4a6bba43d3cce9e2 (patch)
treefa004acfd41122045544f621ab920ec0275d44ea
parentf6ca39403d31b52a0ca10d402d0c0a9e87e1e667 (diff)
Use a 64-bit value to scale potentially-large numbers
-rw-r--r--Alc/ALu.c11
-rw-r--r--Alc/pulseaudio.c2
-rw-r--r--OpenAL32/Include/alMain.h15
3 files changed, 16 insertions, 12 deletions
diff --git a/Alc/ALu.c b/Alc/ALu.c
index c5f81987..cd71c4e8 100644
--- a/Alc/ALu.c
+++ b/Alc/ALu.c
@@ -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