Changeset 3514:04b12826e5b8 in roaraudio for libroarpulse/stream.c


Ignore:
Timestamp:
02/15/10 17:52:36 (14 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

wrote support to read data from stream

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libroarpulse/stream.c

    r3467 r3514  
    184184                                  pa_io_event_flags_t   events, 
    185185                                  void                * userdata) { 
     186 struct roar_buffer * buf; 
    186187 pa_stream * s = userdata; 
    187188 void * data; 
     
    225226   break; 
    226227  case PA_STREAM_RECORD: 
     228    if ( roar_buffer_new(&buf, s->fragments.size) == -1 ) 
     229     return; 
     230 
     231    if ( roar_buffer_get_data(buf, &data) == -1 ) { 
     232     roar_buffer_free(buf); 
     233     return; 
     234    } 
     235 
     236    if ( (ret = roar_vio_read(&(s->vio), data, s->fragments.size)) < 1 ) { 
     237     roar_buffer_free(buf); 
     238     return; 
     239    } 
     240 
     241    if ( roar_buffer_set_len(buf, ret) == -1 ) { // bad error 
     242     roar_buffer_free(buf); 
     243     return; 
     244    } 
     245 
     246    if ( s->iobuffer == NULL ) { 
     247     s->iobuffer = buf; 
     248    } else { 
     249     if ( roar_buffer_add(s->iobuffer, buf) == -1 ) { 
     250      roar_buffer_free(buf); 
     251      return; 
     252     } 
     253    } 
     254 
     255    if ( s->cb.read.cb.rcb != NULL ) 
     256     s->cb.read.cb.rcb(s, pa_stream_readable_size(s), s->cb.read.userdata); 
    227257   break; 
    228258  default: 
Note: See TracChangeset for help on using the changeset viewer.