Big Endian Fixes like mad. Other fixes - Alex
[terminatorX.git] / src / tX_endian.c
index 2b617b40a77a900cf1ecc6b3175a14c543498b95..a51e964c17d21bd5d758ae14aeab5dcf4e0ca6c6 100644 (file)
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  
-    File: endian.c
+    File: tX_endian.c
  
     Description: swap byte order for big endian systems/audiohardware.
 */    
 
-
 #include "tX_endian.h"
+#include "tX_global.h"
 
 #ifdef WORDS_BIGENDIAN
 
-void swap16(int16_t * val)
-{
+void swap16(int16_t * val) {
        int8_t temp;
        int8_t *p;
        
        p=(int8_t *) val;
-       temp=*p;
-       *p=*++p;
-       *p=temp;
+       temp=p[0];
+       p[0]=p[1];
+       p[1]=temp;
 }
 
-void swap32(int32_t * val)
-{
-       /*
-               This one is very inefficient but it wont be
-               called from performace critical areas so
-               who cares...
-       */
+void swap32(int32_t * val) {
        int8_t temp;
        int8_t *p;
        
@@ -57,72 +50,4 @@ void swap32(int32_t * val)
        p[2]=temp;
 }
 
-void swapbuffer(int16_t *buffer, int samples)
-{
-       int i;
-       int8_t temp;
-       int8_t *p;
-       int16_t *val;
-       
-       val=buffer;
-
-       for (i=0; i<samples; i++)
-       {
-               p=(int8_t *) val;               
-               temp=*p;
-               *p=*++p;
-               *p=temp;                
-               val++;
-       }
-}
-
-
-/* The following main() is just for testing */
-
-#ifdef TEST_ENDIAN
-
-#include <netinet/in.h>
-
-int main(int argc, char **argv)
-{
-       int16_t t16=0x1234;
-       int32_t t32=0x12345678;
-       
-       int16_t buffer[8]={0x1234, 0x5678, 0x9ABC, 0xDEF0, 10, 20, 30, 0};
-
-       int i;
-       
-       printf("16: %4x\n", (int) t16);
-       swap16(&t16);
-       printf("16: %4x\n", (int) t16);
-       swap16(&t16);
-       printf("16: %4x\n", (int) t16);
-       t16=htons(t16);
-       printf("16: %4x\n", (int) t16);
-       t16=htons(t16);
-       printf("16: %4x\n", (int) t16);
-
-       printf("32: %8x\n", (int) t32);
-       swap32(&t32);
-       printf("32: %8x\n", (int) t32);
-       swap32(&t32);
-       printf("32: %8x\n", (int) t32);
-       t32=htonl(t32);
-       printf("32: %8x\n", (int) t32);
-       t32=htonl(t32);
-       printf("32: %8x\n", (int) t32);
-       
-       printf("buf: ");
-       for (i=0; i<8; i++) printf("%4hx ", buffer[i]); 
-       swapbuffer(buffer, 8);
-       printf("\nbuf: ");      
-       for (i=0; i<8; i++) printf("%4hx ",  buffer[i]);
-       swapbuffer(buffer, 8);
-       printf("\nbuf: ");      
-       for (i=0; i<8; i++) printf("%4hx ", buffer[i]);
-       
-       puts("\nDone.\n");
-}
-#endif
-
 #endif