Changeset 3972:f1ef631a9da9 in roaraudio


Ignore:
Timestamp:
06/26/10 14:51:50 (14 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

start of read function

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libroar/vio_buffer.c

    r3971 r3972  
    9292} 
    9393 
    94 ssize_t roar_vio_buffer_read    (struct roar_vio_calls * vio, void *buf, size_t count); 
     94ssize_t roar_vio_buffer_read    (struct roar_vio_calls * vio, void *buf, size_t count) { 
     95 struct roar_vio_buffer * self = vio->inst; 
     96 size_t                   havelen; 
     97 size_t                   buflen; 
     98 
     99 if ( count == 0 ) 
     100  return 0; 
     101 
     102 if ( buf == NULL ) 
     103  return -1; 
     104 
     105 if ( self->offset.is_old ) { 
     106  havelen = (self->len_old + self->len_cur) - self->offset.offset; 
     107 } else { 
     108  havelen = self->len_cur - self->offset.offset; 
     109 } 
     110 
     111 if ( havelen == 0 ) { 
     112 } else if ( count == havelen ) { 
     113  if (self->offset.is_old) { 
     114   buflen = count; 
     115   if ( roar_buffer_shift_out(&(self->buf_old), buf, &buflen) == -1 ) 
     116    return -1; 
     117 
     118   if ( self->buf_old != NULL ) // strange error 
     119    return buflen; 
     120 
     121   buf   += buflen; 
     122   count -= buflen; 
     123 
     124   self->len_old       = 0; 
     125   self->offset.is_old = 0; 
     126   self->offset.offset = 0; 
     127  } 
     128 
     129  return -1; 
     130 
     131 } else if ( count <  havelen ) { 
     132 } else if ( count >  havelen ) { 
     133 } 
     134 
     135 return -1; 
     136} 
    95137 
    96138int     roar_vio_buffer_sync    (struct roar_vio_calls * vio) { 
Note: See TracChangeset for help on using the changeset viewer.