diff options
| author | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2010-03-13 23:34:19 +0000 |
|---|---|---|
| committer | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2010-03-13 23:34:19 +0000 |
| commit | efeb43b3415f367f110e1b25c9ada1b6478d6325 (patch) | |
| tree | 82c0c33ac5526830ed69f0224dbbf05bdf11b6ab | |
| parent | 1759a299f103982f79bcf5cc450152fd33ffcb1b (diff) | |
| download | rockbox-efeb43b3415f367f110e1b25c9ada1b6478d6325.zip rockbox-efeb43b3415f367f110e1b25c9ada1b6478d6325.tar.gz rockbox-efeb43b3415f367f110e1b25c9ada1b6478d6325.tar.bz2 rockbox-efeb43b3415f367f110e1b25c9ada1b6478d6325.tar.xz | |
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
| -rw-r--r-- | tools/voicefont.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/tools/voicefont.c b/tools/voicefont.c index 4da67fa..13ce4bf 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 + |