diff options
-rw-r--r-- | Alc/backends/pulseaudio.c | 2 | ||||
-rw-r--r-- | OpenAL32/Include/alMain.h | 12 | ||||
-rw-r--r-- | OpenAL32/alSource.c | 2 |
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 |