aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Alc/backends/pulseaudio.c2
-rw-r--r--OpenAL32/Include/alMain.h12
-rw-r--r--OpenAL32/alSource.c2
3 files changed, 13 insertions, 3 deletions
diff --git a/Alc/backends/pulseaudio.c b/Alc/backends/pulseaudio.c
index 7e137157..41880a9e 100644
--- a/Alc/backends/pulseaudio.c
+++ b/Alc/backends/pulseaudio.c
@@ -1426,7 +1426,7 @@ static ALint64 pulse_get_latency(ALCdevice *device)
{
if(neg)
latency = 0;
- return (ALint64)minu64(latency, MAKEU64(0x7fffffff,0xffffffff)/1000) * 1000;
+ return (ALint64)minu64(latency, U64(0x7fffffffffffffff)/1000) * 1000;
}
ERR("Failed to get stream latency!\n");
return 0;
diff --git a/OpenAL32/Include/alMain.h b/OpenAL32/Include/alMain.h
index 94d69bf3..004c4016 100644
--- a/OpenAL32/Include/alMain.h
+++ b/OpenAL32/Include/alMain.h
@@ -46,7 +46,17 @@ typedef unsigned long long ALuint64;
typedef ptrdiff_t ALintptrEXT;
typedef ptrdiff_t ALsizeiptrEXT;
-#define MAKEU64(x,y) (((ALuint64)(x)<<32)|(ALuint64)(y))
+#ifndef U64
+#if !defined(_MSC_VER)
+#if SIZEOF_LONG_LONG == 8
+#define U64(x) ((ALuint64)(x##ull))
+#elif SIZEOF_LONG == 8
+#define U64(x) ((ALuint64)(x##ul))
+#endif
+#else
+#define U64(x) ((ALuint64)(x##ui64))
+#endif
+#endif
#ifdef HAVE_GCC_FORMAT
#define PRINTF_STYLE(x, y) __attribute__((format(printf, (x), (y))))
diff --git a/OpenAL32/alSource.c b/OpenAL32/alSource.c
index 1dd9716c..0e84ba8c 100644
--- a/OpenAL32/alSource.c
+++ b/OpenAL32/alSource.c
@@ -2430,7 +2430,7 @@ static ALint64 GetSourceOffset(const ALsource *Source)
BufferList = BufferList->next;
}
- return (ALint64)minu64(readPos, MAKEU64(0x7fffffff,0xffffffff));
+ return (ALint64)minu64(readPos, U64(0x7fffffffffffffff));
}
/* GetSourceSecOffset