Update of /cvsroot/pure-data/externals/iemlib/iem_mp3/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26363/iemlib/iem_mp3/src
Modified Files: iemlib.h Log Message: apple OSX i386 compatible
Index: iemlib.h =================================================================== RCS file: /cvsroot/pure-data/externals/iemlib/iem_mp3/src/iemlib.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** iemlib.h 17 Jan 2007 18:25:23 -0000 1.2 --- iemlib.h 24 Oct 2007 15:48:38 -0000 1.3 *************** *** 2,6 **** * WARRANTIES, see the file, "LICENSE.txt," in this distribution.
! iemlib written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2006 */
#ifndef __IEMLIB_H__ --- 2,6 ---- * WARRANTIES, see the file, "LICENSE.txt," in this distribution.
! iemlib written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2007 */
#ifndef __IEMLIB_H__ *************** *** 16,21 **** #define IS_A_COMMA(atom,index) ((atom+index)->a_type == A_COMMA)
! #ifdef NT int sys_noloadbang; //t_symbol *iemgui_key_sym=0; --- 16,26 ---- #define IS_A_COMMA(atom,index) ((atom+index)->a_type == A_COMMA)
+ /* now miller's code starts : + for 4 point interpolation + for lookup tables + for denormal floats + */
! #ifdef MSW int sys_noloadbang; //t_symbol *iemgui_key_sym=0; *************** *** 31,72 **** #define SAMPBLK 4
- #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 MSW ! /* little-endian; most significant byte is at highest address */ #define HIOFFSET 1 #define LOWOFFSET 0 #define int32 long ! #else ! #ifdef __FreeBSD__ #include <machine/endian.h> - #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 <sys/types.h> - #define int32 int32_t #endif - #ifdef __linux__
#include <endian.h>
! #if !defined(__BYTE_ORDER) || !defined(__LITTLE_ENDIAN) #error No byte order defined #endif
! #if __BYTE_ORDER == __LITTLE_ENDIAN #define HIOFFSET 1 #define LOWOFFSET 0 --- 36,71 ---- #define SAMPBLK 4
#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 */ ! #endif /* IRIX */ ! #ifdef MSW ! /* little-endian; most significant byte is at highest address */ #define HIOFFSET 1 #define LOWOFFSET 0 #define int32 long ! #endif /* MSW */ ! ! #if defined(__FreeBSD__) || defined(__APPLE__) #include <machine/endian.h> #endif
+ #ifdef __linux__ #include <endian.h> + #endif
! #if defined(__unix__) || defined(__APPLE__) ! #if !defined(BYTE_ORDER) || !defined(LITTLE_ENDIAN) #error No byte order defined #endif
! #if BYTE_ORDER == LITTLE_ENDIAN #define HIOFFSET 1 #define LOWOFFSET 0 *************** *** 75,99 **** #define LOWOFFSET 1 /* word offset to find LSB */ #endif /* __BYTE_ORDER */ - #include <sys/types.h> #define int32 int32_t
! #else ! #ifdef __APPLE__ ! #ifdef __BIG_ENDIAN__ ! #define HIOFFSET 0 /* word offset to find MSB */ ! #define LOWOFFSET 1 /* word offset to find LSB */ ! #else ! #define HIOFFSET 1 /* word offset to find MSB */ ! #define LOWOFFSET 0 /* word offset to find LSB */ ! #endif ! #define int32 int /* a data type that has 32 bits */ ! ! #endif /* __APPLE__ */ ! #endif /* __linux__ */ ! #endif /* MSW */ ! #endif /* SGI */ ! ! union tabfudge { double tf_d; --- 74,82 ---- #define LOWOFFSET 1 /* word offset to find LSB */ #endif /* __BYTE_ORDER */ #include <sys/types.h> #define int32 int32_t + #endif /* __unix__ or __APPLE__*/
! union tabfudge_d { double tf_d; *************** *** 101,104 **** --- 84,93 ---- };
+ union tabfudge_f + { + float tf_f; + long tf_l; + }; + #if defined __i386__ || defined __x86_64__ #define IEM_DENORMAL(f) ((((*(unsigned int*)&(f))&0x60000000)==0) || \