Changeset 4815:df2ef6edb97f in roaraudio for roard/streams.c


Ignore:
Timestamp:
03/27/11 20:04:27 (13 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

added support to roard for record streams.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • roard/streams.c

    r4753 r4815  
    590590  return -1; 
    591591 
    592  if ( ss->ready ) { 
     592 if ( ss->ready && !(s->fh == -1 && fh == -2) ) { 
    593593  ROAR_DBG("streams_set_fh(id=%i, fh=%i) = -1 // try to set fh for stream which is already ready", id, fh); 
    594594  return -1; 
    595595 } 
    596596 
    597  dir = ROAR_STREAM(ss)->dir; 
     597 dir = s->dir; 
    598598 
    599599 ROAR_DBG("streams_set_fh(id=%i, fh=%i): g_streams[id]->id=%i", id, fh, s->id); 
     
    902902int streams_set_flag     (int id, uint32_t flag) { 
    903903 int parent; 
     904 int tmp; 
    904905 
    905906 _CHECK_SID(id); 
     
    978979  } 
    979980 
     981  if ( g_streams[id]->ready ) { 
     982   tmp = 1; 
     983   if ( stream_vio_ctl(id, ROAR_VIO_CTL_SET_RECORD, &tmp) == -1 ) 
     984    return -1; 
     985  } 
     986 
    980987  streams_recsource_id = id; 
    981988 } 
     
    10001007 
    10011008int streams_reset_flag   (int id, uint32_t flag) { 
     1009 int tmp; 
     1010 
    10021011 _CHECK_SID(id); 
    10031012 
     
    10111020 } 
    10121021 
    1013  if ( flag & ROAR_FLAG_RECSOURCE ) 
    1014   if ( streams_recsource_id == id ) 
    1015    streams_recsource_id = -1; 
     1022 if ( (flag & ROAR_FLAG_RECSOURCE) && streams_recsource_id == id ) { 
     1023  if ( g_streams[id]->ready ) { 
     1024   tmp = 0; 
     1025   if ( stream_vio_ctl(id, ROAR_VIO_CTL_SET_RECORD, &tmp) == -1 ) 
     1026    return -1; 
     1027  } 
     1028 
     1029  streams_recsource_id = -1; 
     1030 } 
     1031 
    10161032 
    10171033 if ( flag & ROAR_FLAG_MMAP ) { 
     
    19591975  case ROAR_DIR_BIDIR: 
    19601976   break; 
     1977  case ROAR_DIR_OUTPUT: 
     1978    if ( !streams_get_flag(id, ROAR_FLAG_RECSOURCE) ) 
     1979     return 0; 
     1980   break; 
    19611981  default: 
    19621982/* 
     
    20572077 struct roar_buffer        *  bufbuf = NULL; 
    20582078 struct roar_remove_state     removalstate; 
    2059  void  * ip; 
     2079 void  * ip              = g_output_buffer; 
    20602080 void  * obuf; 
    20612081 int     olen; 
     
    21302150   break; 
    21312151 
     2152  case ROAR_DIR_RECORD: 
     2153    ip = g_input_buffer; 
     2154   break; 
    21322155  default: 
    21332156    return 0; 
     
    21612184  ROAR_DBG("streams_send_mon(id=%i): obuf=%p, olen=%i", id, obuf, olen); 
    21622185 } else { 
    2163   obuf = g_output_buffer; 
     2186  obuf = ip; 
    21642187  olen = g_output_buffer_len; 
    21652188 } 
    2166  
    2167  ip = g_output_buffer; 
    21682189 
    21692190 if ( antiecho ) { 
     
    23352356} 
    23362357 
     2358int     stream_vio_ctl  (int stream, int cmd,   void * data) { 
     2359 _CHECK_SID(stream); 
     2360 
     2361 return stream_vio_s_ctl(g_streams[stream], cmd, data); 
     2362} 
    23372363 
    23382364ssize_t stream_vio_s_read (struct roar_stream_server * stream, void *buf, size_t count) { 
     
    24432469} 
    24442470 
     2471int     stream_vio_s_ctl  (struct roar_stream_server * stream, int cmd,   void * data) { 
     2472 if ( stream == NULL ) 
     2473  return -1; 
     2474 
     2475 return roar_vio_ctl(stream->viop, cmd, data); 
     2476} 
     2477 
    24452478//ll 
Note: See TracChangeset for help on using the changeset viewer.