diff libaf/af_format.c @ 7719:41e8d0916c60

Fix for audio filters on big endian cpus. It's working now on Solaris SPARC & x86
author jkeil
date Sat, 12 Oct 2002 20:02:01 +0000
parents 194bcc364c3f
children d48a06d07afb
line wrap: on
line diff
--- a/libaf/af_format.c	Sat Oct 12 16:40:56 2002 +0000
+++ b/libaf/af_format.c	Sat Oct 12 20:02:01 2002 +0000
@@ -28,6 +28,12 @@
 #define LE 		(1<<2) // Little Endian
 #define END_MASK	(1<<2)
 
+#if WORDS_BIGENDIAN	       // native endian of cpu
+#define	NE	BE
+#else
+#define	NE	LE
+#endif
+
 // Signed
 #define US		(0<<3) // Un Signed
 #define SI		(1<<3) // SIgned
@@ -128,8 +134,8 @@
 
   la = l->audio;
 
-  // Change to little endian
-  if((cf&END_MASK)!=LE){
+  // Change to cpu native endian
+  if((cf&END_MASK)!=NE){
     switch(cf&NBITS_MASK){
     case(B16):{
       register uint16_t s;
@@ -150,6 +156,7 @@
     break;
     }
   }
+
   // Change signed/unsigned
   if((cf&SIGN_MASK) != (lf&SIGN_MASK)){
     switch((cf&NBITS_MASK)){
@@ -234,8 +241,9 @@
       break;      
     }
   }
-  // Switch to the correct endainess (again the problem with sun?)
-  if((lf&END_MASK)!=LE){
+
+  // Switch from cpu native endian to the correct endianess 
+  if((lf&END_MASK)!=NE){
     switch(lf&NBITS_MASK){
     case(B16):{
       register uint16_t s;