[PD-cvs] pd/src s_audio_paring.c,1.1.4.1.2.1,1.1.4.1.2.1.2.1

Mathieu Bouchard matju at users.sourceforge.net
Tue Jul 31 02:10:39 CEST 2007


Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11847

Modified Files:
      Tag: desiredata
	s_audio_paring.c 
Log Message:
cleanup and remove fprintf


Index: s_audio_paring.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_audio_paring.c,v
retrieving revision 1.1.4.1.2.1
retrieving revision 1.1.4.1.2.1.2.1
diff -C2 -d -r1.1.4.1.2.1 -r1.1.4.1.2.1.2.1
*** s_audio_paring.c	24 Jan 2006 01:29:54 -0000	1.1.4.1.2.1
--- s_audio_paring.c	31 Jul 2007 00:10:37 -0000	1.1.4.1.2.1.2.1
***************
*** 32,40 ****
   * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
   * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-  *
   */
  /*
   * modified 2002/07/13 by olaf.matthes at gmx.de to allow any number if channels
-  *
   */
  
--- 32,38 ----
***************
*** 45,53 ****
  #include <string.h>
  
! /***************************************************************************
!  * Initialize FIFO.
!  */
! long PD_RingBuffer_Init( RingBuffer *rbuf, long numBytes, void *dataPtr )
! {
      rbuf->bufferSize = numBytes;
      rbuf->buffer = (char *)dataPtr;
--- 43,48 ----
  #include <string.h>
  
! /* Initialize FIFO. */
! long PD_RingBuffer_Init(RingBuffer *rbuf, long numBytes, void *dataPtr) {
      rbuf->bufferSize = numBytes;
      rbuf->buffer = (char *)dataPtr;
***************
*** 57,103 ****
  /***************************************************************************
  ** Return number of bytes available for reading. */
! long PD_RingBuffer_GetReadAvailable( RingBuffer *rbuf )
! {
      long ret = rbuf->writeIndex - rbuf->readIndex;
!     if (ret < 0)
!         ret += 2 * rbuf->bufferSize;
!     if (ret < 0 || ret > rbuf->bufferSize)
!         fprintf(stderr,
!             "consistency check failed: PD_RingBuffer_GetReadAvailable\n");
!     return ( ret );
  }
! /***************************************************************************
! ** Return number of bytes available for writing. */
! long PD_RingBuffer_GetWriteAvailable( RingBuffer *rbuf )
! {
!     return ( rbuf->bufferSize - PD_RingBuffer_GetReadAvailable(rbuf));
  }
  
! /***************************************************************************
! ** Clear buffer. Should only be called when buffer is NOT being read. */
! void PD_RingBuffer_Flush( RingBuffer *rbuf )
! {
      rbuf->writeIndex = rbuf->readIndex = 0;
  }
  
! /***************************************************************************
! ** Get address of region(s) to which we can write data.
! ** If the region is contiguous, size2 will be zero.
! ** If non-contiguous, size2 will be the size of second region.
! ** Returns room available to be written or numBytes, whichever is smaller.
! */
! long PD_RingBuffer_GetWriteRegions( RingBuffer *rbuf, long numBytes,
!                                  void **dataPtr1, long *sizePtr1,
!                                  void **dataPtr2, long *sizePtr2 )
! {
!     long   index;
!     long   available = PD_RingBuffer_GetWriteAvailable( rbuf );
!     if( numBytes > available ) numBytes = available;
      /* Check to see if write is not contiguous. */
      index = rbuf->writeIndex;
!     while (index >= rbuf->bufferSize)
!         index -= rbuf->bufferSize;
!     if( (index + numBytes) > rbuf->bufferSize )
!     {
          /* Write data in two blocks that wrap the buffer. */
          long   firstHalf = rbuf->bufferSize - index;
--- 52,83 ----
  /***************************************************************************
  ** Return number of bytes available for reading. */
! long PD_RingBuffer_GetReadAvailable(RingBuffer *rbuf) {
      long ret = rbuf->writeIndex - rbuf->readIndex;
!     if (ret < 0) ret += 2 * rbuf->bufferSize;
!     if (ret < 0 || ret > rbuf->bufferSize) error("consistency check failed: PD_RingBuffer_GetReadAvailable");
!     return ret;
  }
! /* Return number of bytes available for writing. */
! long PD_RingBuffer_GetWriteAvailable(RingBuffer *rbuf) {
!     return rbuf->bufferSize - PD_RingBuffer_GetReadAvailable(rbuf);
  }
  
! /* Clear buffer. Should only be called when buffer is NOT being read. */
! void PD_RingBuffer_Flush(RingBuffer *rbuf) {
      rbuf->writeIndex = rbuf->readIndex = 0;
  }
  
! /* Get address of region(s) to which we can write data. If the region is contiguous, size2 will be zero.
!    If non-contiguous, size2 will be the size of second region.
!    Returns room available to be written or numBytes, whichever is smaller. */
! long PD_RingBuffer_GetWriteRegions(RingBuffer *rbuf, long numBytes,
! void **dataPtr1, long *sizePtr1, void **dataPtr2, long *sizePtr2) {
!     long index;
!     long available = PD_RingBuffer_GetWriteAvailable(rbuf);
!     if (numBytes > available) numBytes = available;
      /* Check to see if write is not contiguous. */
      index = rbuf->writeIndex;
!     while (index >= rbuf->bufferSize) index -= rbuf->bufferSize;
!     if ((index + numBytes) > rbuf->bufferSize) {
          /* Write data in two blocks that wrap the buffer. */
          long   firstHalf = rbuf->bufferSize - index;
***************
*** 106,112 ****
          *dataPtr2 = &rbuf->buffer[0];
          *sizePtr2 = numBytes - firstHalf;
!     }
!     else
!     {
          *dataPtr1 = &rbuf->buffer[index];
          *sizePtr1 = numBytes;
--- 86,90 ----
          *dataPtr2 = &rbuf->buffer[0];
          *sizePtr2 = numBytes - firstHalf;
!     } else {
          *dataPtr1 = &rbuf->buffer[index];
          *sizePtr1 = numBytes;
***************
*** 120,128 ****
  /***************************************************************************
  */
! long PD_RingBuffer_AdvanceWriteIndex( RingBuffer *rbuf, long numBytes )
! {
!     long ret = (rbuf->writeIndex + numBytes);
!     if ( ret >= 2 * rbuf->bufferSize)
!         ret -= 2 * rbuf->bufferSize;    /* check for end of buffer */
      return rbuf->writeIndex = ret;
  }
--- 98,104 ----
  /***************************************************************************
  */
! long PD_RingBuffer_AdvanceWriteIndex(RingBuffer *rbuf, long numBytes) {
!     long ret = rbuf->writeIndex + numBytes;
!     if (ret >= 2 * rbuf->bufferSize) ret -= 2 * rbuf->bufferSize;    /* check for end of buffer */
      return rbuf->writeIndex = ret;
  }
***************
*** 134,151 ****
  ** Returns room available to be written or numBytes, whichever is smaller.
  */
! long PD_RingBuffer_GetReadRegions( RingBuffer *rbuf, long numBytes,
!                                 void **dataPtr1, long *sizePtr1,
!                                 void **dataPtr2, long *sizePtr2 )
! {
!     long   index;
!     long   available = PD_RingBuffer_GetReadAvailable( rbuf );
!     if( numBytes > available ) numBytes = available;
      /* Check to see if read is not contiguous. */
      index = rbuf->readIndex;
!     while (index >= rbuf->bufferSize)
!         index -= rbuf->bufferSize;
!     
!     if( (index + numBytes) > rbuf->bufferSize )
!     {
          /* Write data in two blocks that wrap the buffer. */
          long firstHalf = rbuf->bufferSize - index;
--- 110,122 ----
  ** Returns room available to be written or numBytes, whichever is smaller.
  */
! long PD_RingBuffer_GetReadRegions(RingBuffer *rbuf, long numBytes,
! void **dataPtr1, long *sizePtr1, void **dataPtr2, long *sizePtr2) {
!     long index;
!     long available = PD_RingBuffer_GetReadAvailable(rbuf);
!     if (numBytes > available) numBytes = available;
      /* Check to see if read is not contiguous. */
      index = rbuf->readIndex;
!     while (index >= rbuf->bufferSize) index -= rbuf->bufferSize;
!     if ((index + numBytes) > rbuf->bufferSize) {
          /* Write data in two blocks that wrap the buffer. */
          long firstHalf = rbuf->bufferSize - index;
***************
*** 154,160 ****
          *dataPtr2 = &rbuf->buffer[0];
          *sizePtr2 = numBytes - firstHalf;
!     }
!     else
!     {
          *dataPtr1 = &rbuf->buffer[index];
          *sizePtr1 = numBytes;
--- 125,129 ----
          *dataPtr2 = &rbuf->buffer[0];
          *sizePtr2 = numBytes - firstHalf;
!     } else {
          *dataPtr1 = &rbuf->buffer[index];
          *sizePtr1 = numBytes;
***************
*** 164,194 ****
      return numBytes;
  }
! /***************************************************************************
! */
! long PD_RingBuffer_AdvanceReadIndex( RingBuffer *rbuf, long numBytes )
! {
      long ret = (rbuf->readIndex + numBytes);
!     if( ret >= 2 * rbuf->bufferSize)
!         ret -= 2 * rbuf->bufferSize;
      return rbuf->readIndex = ret;
  }
  
! /***************************************************************************
! ** Return bytes written. */
! long PD_RingBuffer_Write( RingBuffer *rbuf, const void *data, long numBytes )
! {
      long size1, size2, numWritten;
      void *data1, *data2;
      numWritten = PD_RingBuffer_GetWriteRegions( rbuf, numBytes, &data1, &size1, &data2, &size2 );
!     if( size2 > 0 )
!     {
! 
!         memcpy( data1, data, size1 );
          data = ((char *)data) + size1;
!         memcpy( data2, data, size2 );
!     }
!     else
!     {
!         memcpy( data1, data, size1 );
      }
      PD_RingBuffer_AdvanceWriteIndex( rbuf, numWritten );
--- 133,154 ----
      return numBytes;
  }
! 
! long PD_RingBuffer_AdvanceReadIndex( RingBuffer *rbuf, long numBytes ) {
      long ret = (rbuf->readIndex + numBytes);
!     if( ret >= 2 * rbuf->bufferSize) ret -= 2 * rbuf->bufferSize;
      return rbuf->readIndex = ret;
  }
  
! /* Return bytes written. */
! long PD_RingBuffer_Write(RingBuffer *rbuf, const void *data, long numBytes) {
      long size1, size2, numWritten;
      void *data1, *data2;
      numWritten = PD_RingBuffer_GetWriteRegions( rbuf, numBytes, &data1, &size1, &data2, &size2 );
!     if (size2 > 0) {
!         memcpy(data1, data, size1);
          data = ((char *)data) + size1;
!         memcpy(data2, data, size2);
!     } else {
!         memcpy(data1, data, size1);
      }
      PD_RingBuffer_AdvanceWriteIndex( rbuf, numWritten );
***************
*** 196,215 ****
  }
  
! /***************************************************************************
! ** Return bytes read. */
! long PD_RingBuffer_Read( RingBuffer *rbuf, void *data, long numBytes )
! {
      long size1, size2, numRead;
      void *data1, *data2;
      numRead = PD_RingBuffer_GetReadRegions( rbuf, numBytes, &data1, &size1, &data2, &size2 );
!     if( size2 > 0 )
!     {
!         memcpy( data, data1, size1 );
          data = ((char *)data) + size1;
!         memcpy( data, data2, size2 );
!     }
!     else
!     {
!         memcpy( data, data1, size1 );
      }
      PD_RingBuffer_AdvanceReadIndex( rbuf, numRead );
--- 156,170 ----
  }
  
! /* Return bytes read. */
! long PD_RingBuffer_Read(RingBuffer *rbuf, void *data, long numBytes) {
      long size1, size2, numRead;
      void *data1, *data2;
      numRead = PD_RingBuffer_GetReadRegions( rbuf, numBytes, &data1, &size1, &data2, &size2 );
!     if (size2 > 0) {
!         memcpy(data, data1, size1);
          data = ((char *)data) + size1;
!         memcpy(data, data2, size2);
!     } else {
!         memcpy(data, data1, size1);
      }
      PD_RingBuffer_AdvanceReadIndex( rbuf, numRead );





More information about the Pd-cvs mailing list