From efeb43b3415f367f110e1b25c9ada1b6478d6325 Mon Sep 17 00:00:00 2001 From: Dominik Riebeling Date: Sat, 13 Mar 2010 23:34:19 +0000 Subject: Make voicefont produce proper files on big endian machines. Voicefont writes most data as integer values which need bitswapping depending on the architecture. Fixes voicefont creating invalid files on OS X PPC. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25160 a1c6a512-1295-4272-9138-f99709370657 --- tools/voicefont.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tools/voicefont.c b/tools/voicefont.c index 4da67fabed..13ce4bfca2 100644 --- a/tools/voicefont.c +++ b/tools/voicefont.c @@ -32,12 +32,16 @@ #define HEADER_SIZE 20 /* endian conversion macros */ +#if defined(__BIG_ENDIAN__) +#define SWAP2(x) (x) +#define SWAP4(x) (x) +#else #define SWAP2(x) ((((unsigned)(x)>>8) & 0x00ff) | (((unsigned)(x)<<8) & 0xff00)) #define SWAP4(x) ((((unsigned)(x)>>24) & 0x000000ff) |\ (((unsigned)(x)>>8) & 0x0000ff00) |\ (((unsigned)(x)<<8) & 0x00ff0000) |\ (((unsigned)(x)<<24) & 0xff000000)) - +#endif /* bitswap audio bytes, LSB becomes MSB and vice versa */ int BitswapAudio (unsigned char* pDest, unsigned char* pSrc, size_t len) @@ -247,3 +251,4 @@ int main (int argc, char** argv) return 0; } #endif + -- cgit v1.2.3