shithub: sox

Download patch

ref: eb02a41f4f12eeb24f6eea2609a4d37b8b82e132
parent: 8bc85b09e935c41171ef74be94a1da0a78780f41
author: rrt <rrt>
date: Mon Dec 11 19:26:48 EST 2006

Remove ft->swap and use ft->info.swap instead, as asked for in stio.c.

--- a/src/8svx.c
+++ b/src/8svx.c
@@ -51,7 +51,7 @@
          */
         if (ST_IS_LITTLEENDIAN)
         {
-                ft->swap = ft->swap ? 0 : 1;
+                ft->info.swap = ft->info.swap ? 0 : 1;
         }
 
         rate = 0;
@@ -261,7 +261,7 @@
          */
         if (ST_IS_LITTLEENDIAN)
         {
-                ft->swap = ft->swap ? 0 : 1;
+                ft->info.swap = ft->info.swap ? 0 : 1;
         }
 
         /* open channel output files */
--- a/src/aiff.c
+++ b/src/aiff.c
@@ -137,7 +137,7 @@
         /* Endian machines.                                            */
         if (ST_IS_LITTLEENDIAN)
         {
-            ft->swap = ft->swap ? 0 : 1;
+            ft->info.swap = ft->info.swap ? 0 : 1;
         }
 
         /* FORM chunk */
@@ -459,7 +459,7 @@
         if (is_sowt)
         {
                 aiff->nsamples -= 4;
-                ft->swap = ft->swap ? 0 : 1;
+                ft->info.swap = ft->info.swap ? 0 : 1;
         }
         
         if (foundmark && !foundinstr)
@@ -713,7 +713,7 @@
         /* Endian machines.                                            */
         if (ST_IS_LITTLEENDIAN)
         {
-            ft->swap = ft->swap ? 0 : 1;
+            ft->info.swap = ft->info.swap ? 0 : 1;
         }
 
         aiff->nsamples = 0;
@@ -926,7 +926,7 @@
         /* Endian machines.                                            */
         if (ST_IS_LITTLEENDIAN)
         {
-            ft->swap = ft->swap ? 0 : 1;
+            ft->info.swap = ft->info.swap ? 0 : 1;
         }
 
         aiff->nsamples = 0;
--- a/src/alsa.c
+++ b/src/alsa.c
@@ -387,7 +387,7 @@
         }
         else
         {
-            read_buf(buf+(len*sizeof(st_sample_t)), alsa->buf, err, ft->swap, &ft->clippedCount);
+            read_buf(buf+(len*sizeof(st_sample_t)), alsa->buf, err, ft->info.swap, &ft->clippedCount);
             len += err * ft->info.channels;
         }
     }
@@ -492,7 +492,7 @@
       st_size_t len;
       
       osamp = min(nsamp - done, alsa->buf_size / ft->info.size);
-      write_buf(alsa->buf, buf, osamp, ft->swap, &ft->clippedCount);
+      write_buf(alsa->buf, buf, osamp, ft->info.swap, &ft->clippedCount);
       buf += osamp;
 
       for (len = 0; len < osamp;) {
--- a/src/au.c
+++ b/src/au.c
@@ -162,7 +162,7 @@
          */
         if (ST_IS_LITTLEENDIAN)
         {
-                ft->swap = ft->swap ? 0 : 1;
+                ft->info.swap = ft->info.swap ? 0 : 1;
         }
 
         /* Check the magic word */
@@ -172,11 +172,11 @@
                  * left over from pre-standardize period of testing for
                  * endianess.  Its not hurting though.
                  */
-                ft->swap = ft->swap ? 0 : 1;
+                ft->info.swap = ft->info.swap ? 0 : 1;
                 st_debug("Found inverted DEC magic word.  Swapping bytes.");
         }
         else if (magic == SUN_INV_MAGIC) {
-                ft->swap = ft->swap ? 0 : 1;
+                ft->info.swap = ft->info.swap ? 0 : 1;
                 st_debug("Found inverted Sun/NeXT magic word. Swapping bytes.");
         }
         else if (magic == SUN_MAGIC) {
@@ -312,7 +312,7 @@
          */
         if (ST_IS_LITTLEENDIAN)
         {
-                ft->swap = ft->swap ? 0 : 1;
+                ft->info.swap = ft->info.swap ? 0 : 1;
         }
 
         p->data_size = 0;
--- a/src/avr.c
+++ b/src/avr.c
@@ -72,7 +72,7 @@
   /* Endian machines.                                          */
   if (ST_IS_LITTLEENDIAN)
   {
-          ft->swap = ft->swap ? 0 : 1;
+          ft->info.swap = ft->info.swap ? 0 : 1;
   }
 
   st_reads(ft, avr->magic, 4);
@@ -157,7 +157,7 @@
   /* Endian machines.                                          */
   if (ST_IS_LITTLEENDIAN)
   {
-          ft->swap = ft->swap ? 0 : 1;
+          ft->info.swap = ft->info.swap ? 0 : 1;
   }
 
   if (!ft->seekable) {
--- a/src/cdr.c
+++ b/src/cdr.c
@@ -52,7 +52,7 @@
         /* Little Endian machines.                             */
         if (ST_IS_LITTLEENDIAN)
         { 
-            ft->swap = ft->swap ? 0 : 1;
+            ft->info.swap = ft->info.swap ? 0 : 1;
         }
 
         ft->info.rate = 44100L;
@@ -103,7 +103,7 @@
         /* Little Endian Machines.                                 */
         if (ST_IS_LITTLEENDIAN)
         {
-            ft->swap = ft->swap ? 0 : 1;
+            ft->info.swap = ft->info.swap ? 0 : 1;
         }
 
         /* Needed because of rawwrite() */
--- a/src/cvsd.c
+++ b/src/cvsd.c
@@ -120,8 +120,8 @@
         ft->info.channels = 1;
         ft->info.size = ST_SIZE_WORD; /* make output format default to words */
         ft->info.encoding = ST_ENCODING_SIGN2;
-        p->swapbits = ft->swap;
-        ft->swap = 0;
+        p->swapbits = ft->info.swap;
+        ft->info.swap = 0;
         /*
          * initialize the decoder
          */
--- a/src/hcom.c
+++ b/src/hcom.c
@@ -64,7 +64,7 @@
          */
         if (ST_IS_LITTLEENDIAN)
         {
-                ft->swap = ft->swap ? 0 : 1;
+                ft->info.swap = ft->info.swap ? 0 : 1;
         }
 
         /* Skip first 65 bytes of header */
@@ -258,7 +258,7 @@
          */
         if (ST_IS_LITTLEENDIAN)
         {
-                ft->swap = ft->swap ? 0 : 1;
+                ft->info.swap = ft->info.swap ? 0 : 1;
         }
 
         switch (ft->info.rate) {
--- a/src/maud.c
+++ b/src/maud.c
@@ -60,7 +60,7 @@
          */
         if (ST_IS_LITTLEENDIAN)
         {
-                ft->swap = ft->swap ? 0 : 1;
+                ft->info.swap = ft->info.swap ? 0 : 1;
         }
         
         /* read FORM chunk */
@@ -226,7 +226,7 @@
          */
         if (ST_IS_LITTLEENDIAN)
         {
-                ft->swap = ft->swap ? 0 : 1;
+                ft->info.swap = ft->info.swap ? 0 : 1;
         }
         
         /* If you have to seek around the output file */
--- a/src/misc.c
+++ b/src/misc.c
@@ -229,7 +229,7 @@
             st_fail_errno(ft,errno,readerr);
             return (ST_EOF);
         }
-        if (ft->swap)
+        if (ft->info.swap)
                 *uw = st_swapw(*uw);
         return ST_SUCCESS;
 }
@@ -237,7 +237,7 @@
 /* Write word. */
 int st_writew(ft_t ft, uint16_t uw)
 {
-        if (ft->swap)
+        if (ft->info.swap)
                 uw = st_swapw(uw);
         if (st_writebuf(ft, &uw, 2, 1) != 1)
         {
@@ -255,7 +255,7 @@
             st_fail_errno(ft,errno,readerr);
             return (ST_EOF);
         }
-        if (ft->swap)
+        if (ft->info.swap)
                 *u3 = st_swap24(*u3);
         return ST_SUCCESS;
 }
@@ -263,7 +263,7 @@
 /* Write three bytes. */
 int st_write3(ft_t ft, uint24_t u3)
 {
-        if (ft->swap)
+        if (ft->info.swap)
                 u3 = st_swap24(u3);
         if (st_writebuf(ft, &u3, 2, 1) != 1)
         {
@@ -281,7 +281,7 @@
             st_fail_errno(ft,errno,readerr);
             return (ST_EOF);
         }
-        if (ft->swap)
+        if (ft->info.swap)
                 *udw = st_swapdw(*udw);
         return ST_SUCCESS;
 }
@@ -289,7 +289,7 @@
 /* Write double word. */
 int st_writedw(ft_t ft, uint32_t udw)
 {
-        if (ft->swap)
+        if (ft->info.swap)
                 udw = st_swapdw(udw);
         if (st_writebuf(ft, &udw, 4, 1) != 1)
         {
@@ -307,7 +307,7 @@
             st_fail_errno(ft,errno,readerr);
             return(ST_EOF);
         }
-        if (ft->swap)
+        if (ft->info.swap)
                 *f = st_swapf(*f);
         return ST_SUCCESS;
 }
@@ -317,7 +317,7 @@
 {
         float t = f;
 
-        if (ft->swap)
+        if (ft->info.swap)
                 t = st_swapf(t);
         if (st_writebuf(ft, &t, sizeof(float), 1) != 1)
         {
@@ -335,7 +335,7 @@
             st_fail_errno(ft,errno,readerr);
             return(ST_EOF);
         }
-        if (ft->swap)
+        if (ft->info.swap)
                 *d = st_swapd(*d);
         return ST_SUCCESS;
 }
@@ -343,7 +343,7 @@
 /* Write double. */
 int st_writedf(ft_t ft, double d)
 {
-        if (ft->swap)
+        if (ft->info.swap)
                 d = st_swapd(d);
         if (st_writebuf(ft, &d, sizeof(double), 1) != 1)
         {
--- a/src/oss.c
+++ b/src/oss.c
@@ -123,7 +123,7 @@
                 if ((tmp & sampletype) == 0)
                 {
                     sampletype = (ST_IS_BIGENDIAN) ? AFMT_S16_LE : AFMT_S16_BE;
-                    ft->swap = ft->swap ? 0 : 1;
+                    ft->info.swap = ft->info.swap ? 0 : 1;
                 }
             }
         }
--- a/src/prc.c
+++ b/src/prc.c
@@ -90,7 +90,7 @@
          */
         if (ST_IS_LITTLEENDIAN)
         {
-                ft->swap = ft->swap ? 1 : 0;
+                ft->info.swap = ft->info.swap ? 1 : 0;
         }
 
         /* Check the header */
@@ -150,7 +150,7 @@
          */
         if (ST_IS_LITTLEENDIAN)
         {
-                ft->swap = ft->swap ? 1 : 0;
+                ft->info.swap = ft->info.swap ? 1 : 0;
         }
 
         p->length = 0;
--- a/src/sf.c
+++ b/src/sf.c
@@ -39,7 +39,7 @@
         sfcodep = (SFCODE *) &sfcodes(sfhead);
         do {
                 sfcharp = (char *) sfcodep + sizeof(SFCODE);
-                if (ft->swap) {
+                if (ft->info.swap) {
                         sfcodep->bsize = st_swapdw(sfcodep->bsize);
                         sfcodep->code = st_swapdw(sfcodep->code);
                 }
@@ -104,7 +104,7 @@
                 return(ST_EOF);
         }
         memcpy(&sf->info, &sfhead.sfinfo, sizeof(struct sfinfo));
-        if (ft->swap) {
+        if (ft->info.swap) {
                 sf->info.sf_srate = st_swapf(sf->info.sf_srate);
                 sf->info.sf_packmode = st_swapdw(sf->info.sf_packmode);
                 sf->info.sf_chans = st_swapdw(sf->info.sf_chans);
--- a/src/smp.c
+++ b/src/smp.c
@@ -213,7 +213,7 @@
         /* Big Endian machines.                                   */
         if (ST_IS_BIGENDIAN)
         {
-                ft->swap = ft->swap ? 0 : 1;
+                ft->info.swap = ft->info.swap ? 0 : 1;
         }
 
         /* If you need to seek around the input file. */
@@ -349,7 +349,7 @@
         /* Big Endian machines.                                   */
         if (ST_IS_BIGENDIAN)
         {
-                ft->swap = ft->swap ? 0 : 1;
+                ft->info.swap = ft->info.swap ? 0 : 1;
         }
 
         /* If you have to seek around the output file */
--- a/src/sndrtool.c
+++ b/src/sndrtool.c
@@ -79,7 +79,7 @@
          */
         if (ST_IS_BIGENDIAN)
         {
-                ft->swap = ft->swap ? 0 : 1;
+                ft->info.swap = ft->info.swap ? 0 : 1;
         }
 
         rate = 0;
@@ -152,7 +152,7 @@
          */
         if (ST_IS_BIGENDIAN)
         {
-                ft->swap = ft->swap ? 0 : 1;
+                ft->info.swap = ft->info.swap ? 0 : 1;
         }
 
         /* write header */
--- a/src/sphere.c
+++ b/src/sphere.c
@@ -114,7 +114,7 @@
                     /* Data is in little endian. */
                     if (ST_IS_BIGENDIAN)
                     {
-                        ft->swap = ft->swap ? 0 : 1;
+                        ft->info.swap = ft->info.swap ? 0 : 1;
                     }
                 }
                 else if (strncmp(fldsval,"10",2) == 0)
@@ -122,7 +122,7 @@
                     /* Data is in big endian. */
                     if (ST_IS_LITTLEENDIAN)
                     {
-                        ft->swap = ft->swap ? 0 : 1;
+                        ft->info.swap = ft->info.swap ? 0 : 1;
                     }
                 }
             }
@@ -279,7 +279,7 @@
     sprintf(buf, "channel_count -i %d\n", ft->info.channels);
     st_writes(ft, buf);
 
-    if (ft->swap)
+    if (ft->info.swap)
     {
         sprintf(buf, "sample_byte_format -s2 %s\n", ST_IS_BIGENDIAN ? "01" : "10");
     }
--- a/src/st.h
+++ b/src/st.h
@@ -281,7 +281,6 @@
     st_signalinfo_t info;                 /* signal specifications */
     st_instrinfo_t  instr;                /* instrument specification */
     st_loopinfo_t   loops[ST_MAX_NLOOPS]; /* Looping specification */
-    char            swap;                 /* do byte- or word-swap */
     char            seekable;             /* can seek on this file */
     char            mode;                 /* read or write mode */
     /* Total samples per channel of file.  Zero if unknown. */
--- a/src/stio.c
+++ b/src/stio.c
@@ -109,8 +109,6 @@
     ft->info.channels = 0;
     if (info)
         ft->info = *info;
-    /* FIXME: Remove ft->swap from code */
-    ft->swap = ft->info.swap;
     ft->mode = 'r';
 
     if (!(ft->h->flags & ST_FILE_NOSTDIO))
@@ -278,9 +276,6 @@
     /* leave SMPTE # alone since it's absolute */
     if (instr)
         ft->instr = *instr;
-
-    /* FIXME: Remove ft->swap from code */
-    ft->swap = ft->info.swap;
 
     /* Read and write starters can change their formats. */
     if ((*ft->h->startwrite)(ft) != ST_SUCCESS)
--- a/src/voc.c
+++ b/src/voc.c
@@ -223,7 +223,7 @@
         /* Big Endian mahcines.                                   */
         if (ST_IS_BIGENDIAN)
         {
-                ft->swap = ft->swap ? 0 : 1;
+                ft->info.swap = ft->info.swap ? 0 : 1;
         }
 
 
@@ -425,7 +425,7 @@
         /* in on Big Endian machines.                       */
         if (ST_IS_BIGENDIAN)
         {
-                ft->swap = ft->swap ? 0 : 1;
+                ft->info.swap = ft->info.swap ? 0 : 1;
         }
 
         if (! ft->seekable)
--- a/src/wav.c
+++ b/src/wav.c
@@ -401,7 +401,7 @@
 
         ft->st_errno = ST_SUCCESS;
 
-    if (ST_IS_BIGENDIAN) ft->swap = ft->swap ? 0 : 1;
+    if (ST_IS_BIGENDIAN) ft->info.swap = ft->info.swap ? 0 : 1;
 
     if (st_reads(ft, magic, 4) == ST_EOF || (strncmp("RIFF", magic, 4) != 0 &&
                                              strncmp("RIFX", magic, 4) != 0))
@@ -414,7 +414,7 @@
     if (strncmp("RIFX", magic, 4) == 0) 
     {
         st_debug("Found RIFX header, swapping bytes");
-        ft->swap = ft->swap ? 0 : 1;
+        ft->info.swap = ft->info.swap ? 0 : 1;
     }
 
     st_readdw(ft, &dwRiffLength);
@@ -1177,7 +1177,7 @@
 
     ft->st_errno = ST_SUCCESS;
 
-    if (ST_IS_BIGENDIAN) ft->swap = ft->swap ? 0 : 1;
+    if (ST_IS_BIGENDIAN) ft->info.swap = ft->info.swap ? 0 : 1;
 
     /* FIXME: This reserves memory but things could fail
      * later on and not release this memory.
@@ -1502,8 +1502,8 @@
     /* If user specified opposite swap then we think, assume they are
      * asking to write a RIFX file.
      */
-    if ((!ST_IS_BIGENDIAN && ft->swap) || 
-        (ST_IS_BIGENDIAN && !ft->swap))
+    if ((!ST_IS_BIGENDIAN && ft->info.swap) || 
+        (ST_IS_BIGENDIAN && !ft->info.swap))
     {
         if (!second_header)
             st_report("Requested to swap bytes so writing  RIFX header");
--- a/src/wve.c
+++ b/src/wve.c
@@ -64,7 +64,7 @@
          */
         if (ST_IS_LITTLEENDIAN)
         {
-                ft->swap = ft->swap ? 0 : 1;
+                ft->info.swap = ft->info.swap ? 0 : 1;
         }
 
         /* Check the magic word (null-terminated) */
@@ -87,7 +87,7 @@
                  * testing for endianess was standardized.  Leaving since
                  * it doesn't hurt.
                  */
-                ft->swap = ft->swap ? 0 : 1;
+                ft->info.swap = ft->info.swap ? 0 : 1;
                 st_debug("Found inverted PSION magic word.  Swapping bytes.");
         }
         else if (version == PSION_VERSION)
@@ -151,7 +151,7 @@
          */
         if (ST_IS_LITTLEENDIAN)
         {
-                ft->swap = ft->swap ? 0 : 1;
+                ft->info.swap = ft->info.swap ? 0 : 1;
         }
 
         p->length = 0;
--- a/src/xa.c
+++ b/src/xa.c
@@ -105,7 +105,7 @@
     }
     
     /* Byte-swap on big-endian systems */
-    if (ST_IS_BIGENDIAN) ft->swap = ft->swap ? 0 : 1;
+    if (ST_IS_BIGENDIAN) ft->info.swap = ft->info.swap ? 0 : 1;
 
     /* Read the rest of the header */
     if (st_readdw(ft, &xa->header.outSize) != ST_SUCCESS) return ST_EOF;
--