Changeset 4847:8af3ac8d139a in roaraudio


Ignore:
Timestamp:
04/08/11 13:40:15 (13 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

correctly reset RECSOURCE flag in case of stream delete

File:
1 edited

Legend:

Unmodified
Added
Removed
  • roard/streams.c

    r4846 r4847  
    263263 roar_notify_core_emit_snoargs(ROAR_OE_BASICS_DELETE, -1, id, ROAR_OT_STREAM); 
    264264 
     265 prim = s->primary; 
     266 
     267 if ( prim ) 
     268  alive = 0; 
     269 
    265270 if ( s->flags & ROAR_FLAG_SINGLESINK ) 
    266271  streams_set_single_sink(id, 1); 
     
    338343#endif 
    339344 
     345 // all IO is no disconnected: 
     346 s->ready = 0; 
     347 
     348 // re-try reset after all IO is disconnected. 
     349 if ( streams_get_flag(id, ROAR_FLAG_RECSOURCE) == 1 ) 
     350  streams_reset_flag(id, ROAR_FLAG_RECSOURCE); 
     351 
    340352 //roardsp_fchain_uninit(&(s->fc)); 
    341353 
     
    364376 if ( !no_vio_close ) 
    365377  roar_vio_close(s->viop); 
    366  
    367  prim = s->primary; 
    368378 
    369379 if ( s->name != NULL ) 
     
    11121122#endif 
    11131123 
    1114  ROAR_DBG("streams_set_flag(id=%i, flag=0x%.8X) = ?", id, flag); 
     1124 ROAR_DBG("streams_set_flag(id=%i, flag=0x%.8X) = 0", id, flag); 
    11151125 
    11161126 return 0; 
     
    11301140int streams_reset_flag   (int id, uint32_t flag) { 
    11311141 int tmp; 
     1142 
     1143 ROAR_DBG("streams_reset_flag(id=%i, flag=0x%.8X) = ?", id, flag); 
    11321144 
    11331145 _CHECK_SID(id); 
     
    11441156 flag &= g_streams[id]->flags; 
    11451157 
     1158 ROAR_DBG("streams_reset_flag(id=%i, flag=0x%.8X) = ?", id, flag); 
     1159 
    11461160 if ( (flag & ROAR_FLAG_RECSOURCE) && streams_recsource_id == id ) { 
    11471161  if ( g_streams[id]->ready ) { 
    11481162   tmp = 0; 
    1149    if ( stream_vio_ctl(id, ROAR_VIO_CTL_SET_RECORD, &tmp) == -1 ) 
     1163   if ( stream_vio_ctl(id, ROAR_VIO_CTL_SET_RECORD, &tmp) == -1 ) { 
     1164    if ( alive ) { // do not warn if we are shutting down anyway. 
     1165     ROAR_WARN("streams_reset_flag(id=%i, flag=0x%.8X): Driver refused to reset record flag.", id, flag); 
     1166    } 
     1167    ROAR_DBG("streams_reset_flag(id=%i, flag=0x%.8X) = -1", id, flag); 
    11501168    return -1; 
     1169   } 
    11511170  } 
    11521171 
    11531172  streams_recsource_id = -1; 
    11541173 } 
     1174 
     1175 ROAR_DBG("streams_reset_flag(id=%i, flag=0x%.8X) = ?", id, flag); 
    11551176 
    11561177 
     
    11921213 g_streams[id]->flags |= flag; 
    11931214 g_streams[id]->flags -= flag; 
     1215 
     1216 ROAR_DBG("streams_reset_flag(id=%i, flag=0x%.8X) = 0", id, flag); 
    11941217 
    11951218 return 0; 
Note: See TracChangeset for help on using the changeset viewer.