Changeset 46:9cbcc36848f9 in roaraudio


Ignore:
Timestamp:
06/22/08 20:24:22 (16 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

added roar_buffer_duplicate()

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • include/libroar/buffer.h

    r7 r46  
    4040int roar_buffer_get_len  (struct roar_buffer *  buf, size_t *  len); 
    4141 
     42int roar_buffer_duplicate (struct roar_buffer *  buf, struct roar_buffer ** copy); 
     43 
    4244int roar_buffer_ring_stats (struct roar_buffer *  buf, struct roar_buffer_stats * stats); 
    4345 
  • libroar/buffer.c

    r7 r46  
    149149} 
    150150 
     151int roar_buffer_duplicate (struct roar_buffer *  buf, struct roar_buffer ** copy) { 
     152 struct roar_buffer *  cur = buf; 
     153 struct roar_buffer *  new; 
     154 
     155 *copy = NULL; 
     156 
     157 while (cur) { 
     158  if ( roar_buffer_new(&new, cur->user_len) == -1 ) { 
     159   roar_buffer_free(*copy); 
     160   return -1; 
     161  } 
     162 
     163  if ( *copy == NULL ) 
     164   *copy = new; 
     165 
     166  roar_buffer_add(*copy, new); 
     167 
     168  cur = cur->next; 
     169 } 
     170 return 0; 
     171} 
     172 
    151173int roar_buffer_ring_stats (struct roar_buffer *  buf, struct roar_buffer_stats * stats) { 
    152174 if ( buf == NULL ) 
Note: See TracChangeset for help on using the changeset viewer.