Changeset 3972:f1ef631a9da9 in roaraudio
- Timestamp:
- 06/26/10 14:51:50 (14 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libroar/vio_buffer.c
r3971 r3972 92 92 } 93 93 94 ssize_t roar_vio_buffer_read (struct roar_vio_calls * vio, void *buf, size_t count); 94 ssize_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 } 95 137 96 138 int roar_vio_buffer_sync (struct roar_vio_calls * vio) {
Note: See TracChangeset
for help on using the changeset viewer.