summaryrefslogtreecommitdiff
path: root/core/multimedia/opieplayer/libmad/huffman.c
Side-by-side diff
Diffstat (limited to 'core/multimedia/opieplayer/libmad/huffman.c') (more/less context) (show whitespace changes)
-rw-r--r--core/multimedia/opieplayer/libmad/huffman.c25
1 files changed, 18 insertions, 7 deletions
diff --git a/core/multimedia/opieplayer/libmad/huffman.c b/core/multimedia/opieplayer/libmad/huffman.c
index 5ea6547..684409e 100644
--- a/core/multimedia/opieplayer/libmad/huffman.c
+++ b/core/multimedia/opieplayer/libmad/huffman.c
@@ -1,6 +1,6 @@
/*
* libmad - MPEG audio decoder library
- * Copyright (C) 2000-2001 Robert Leslie
+ * Copyright (C) 2000-2004 Underbit Technologies, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -34,14 +34,20 @@
* These tables support decoding up to 4 Huffman code bits at a time.
*/
-# if defined(__GNUC__)
-# define PTR(offs, bits) { ptr: { 0, bits, offs } }
-# define V(v, w, x, y, hlen) { value: { 1, hlen, v, w, x, y } }
+# if defined(__GNUC__) || \
+ (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901)
+# define PTR(offs, bits) { .ptr = { 0, bits, offs } }
+# define V(v, w, x, y, hlen) { .value = { 1, hlen, v, w, x, y } }
# else
# define PTR(offs, bits) { { 0, bits, offs } }
+# if defined(WORDS_BIGENDIAN)
+# define V(v, w, x, y, hlen) { { 1, hlen, (v << 11) | (w << 10) | \
+ (x << 9) | (y << 8) } }
+# else
# define V(v, w, x, y, hlen) { { 1, hlen, (v << 0) | (w << 1) | \
(x << 2) | (y << 3) } }
# endif
+# endif
static
union huffquad const hufftabA[] = {
@@ -106,13 +112,18 @@ union huffquad const hufftabB[] = {
# undef V
# undef PTR
-# if defined(__GNUC__)
-# define PTR(offs, bits) { ptr: { 0, bits, offs } }
-# define V(x, y, hlen) { value: { 1, hlen, x, y } }
+# if defined(__GNUC__) || \
+ (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901)
+# define PTR(offs, bits) { .ptr = { 0, bits, offs } }
+# define V(x, y, hlen) { .value = { 1, hlen, x, y } }
# else
# define PTR(offs, bits) { { 0, bits, offs } }
+# if defined(WORDS_BIGENDIAN)
+# define V(x, y, hlen) { { 1, hlen, (x << 8) | (y << 4) } }
+# else
# define V(x, y, hlen) { { 1, hlen, (x << 0) | (y << 4) } }
# endif
+# endif
static
union huffpair const hufftab0[] = {