From eb13b6f58fffc9e84968b64618dd5e4bcd972724 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Fri, 1 Jul 2005 12:07:50 +0000 Subject: added "read16" message for the table16 added some prelaminary tabfudge that should make casting faster (LATER) svn path=/trunk/externals/iem16/; revision=3277 --- src/iem16_table.h | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 67 insertions(+), 1 deletion(-) (limited to 'src/iem16_table.h') diff --git a/src/iem16_table.h b/src/iem16_table.h index 4810312..98c98cd 100644 --- a/src/iem16_table.h +++ b/src/iem16_table.h @@ -17,11 +17,77 @@ typedef struct _table16 { t_symbol *x_tablename; long x_size; - t_iem16_16bit *x_table; // hold the data + t_iem16_16bit *x_table; /* hold the data */ int x_usedindsp; + t_canvas *x_canvas; /* for file i/o */ } t_table16; EXTERN int table16_getarray16(t_table16*x, int*size,t_iem16_16bit**vec); EXTERN void table16_usedindsp(t_table16*x); + + +#define UNITBIT32 1572864. /* 3*2^19; bit 32 has place value 1 */ + + /* machine-dependent definitions. These ifdefs really + should have been by CPU type and not by operating system! */ +#ifdef __irix__ + /* big-endian. Most significant byte is at low address in memory */ +#define HIOFFSET 0 /* word offset to find MSB */ +#define LOWOFFSET 1 /* word offset to find LSB */ +#define int32 long /* a data type that has 32 bits */ +#else +#ifdef __win32__ + /* little-endian; most significant byte is at highest address */ +#define HIOFFSET 1 +#define LOWOFFSET 0 +#define int32 long +#else +#ifdef __FreeBSD__ +#include +#if BYTE_ORDER == LITTLE_ENDIAN +#define HIOFFSET 1 +#define LOWOFFSET 0 +#else +#define HIOFFSET 0 /* word offset to find MSB */ +#define LOWOFFSET 1 /* word offset to find LSB */ +#endif /* BYTE_ORDER */ +#include +#define int32 int32_t +#endif +#ifdef __linux__ + +#include + +#if !defined(__BYTE_ORDER) || !defined(__LITTLE_ENDIAN) +#error No byte order defined +#endif + +#if __BYTE_ORDER == __LITTLE_ENDIAN +#define HIOFFSET 1 +#define LOWOFFSET 0 +#else +#define HIOFFSET 0 /* word offset to find MSB */ +#define LOWOFFSET 1 /* word offset to find LSB */ +#endif /* __BYTE_ORDER */ + +#include +#define int32 int32_t + +#else +#ifdef __apple__ +#define HIOFFSET 0 /* word offset to find MSB */ +#define LOWOFFSET 1 /* word offset to find LSB */ +#define int32 int /* a data type that has 32 bits */ + +#endif /* MACOSX */ +#endif /* __linux__ */ +#endif /* MSW */ +#endif /* SGI */ + +union tabfudge +{ + double tf_d; + int32 tf_i[2]; +}; -- cgit v1.2.1