Update of /cvsroot/pure-data/externals/iem/iem_bin_ambi/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17746
Modified Files:
iemlib.h
Log Message:
compatible to pd-0.40-2
Index: iemlib.h
===================================================================
RCS file: /cvsroot/pure-data/externals/iem/iem_bin_ambi/src/iemlib.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** iemlib.h 17 Jan 2007 18:30:16 -0000 1.5
--- iemlib.h 8 Nov 2007 14:04:55 -0000 1.6
***************
*** 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) || \