Changeset 1116:ff626395ea76 in roaraudio


Ignore:
Timestamp:
01/14/09 22:14:13 (15 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

added support for sync flag on sysio streams: (re)set nonblocking

Files:
3 edited

Legend:

Unmodified
Added
Removed
  • roarclients/roarctl.c

    r1043 r1116  
    394394  } else if ( !strcmp(c, "primary") ) { 
    395395   f |= ROAR_FLAG_PRIMARY; 
     396  } else if ( !strcmp(c, "sync") ) { 
     397   f |= ROAR_FLAG_SYNC; 
    396398  } else { 
    397399   fprintf(stderr, "Error: unknown flag: %s\n", c); 
  • roard/include/streams.h

    r1042 r1116  
    7878int streams_set_primary  (int id, int prim); 
    7979int streams_mark_primary (int id); 
     80int streams_set_sync     (int id, int sync); 
    8081int streams_set_flag     (int id, int flag); 
    8182int streams_reset_flag   (int id, int flag); 
  • roard/streams.c

    r1045 r1116  
    270270} 
    271271 
     272int streams_set_sync     (int id, int sync) { 
     273 int fh; 
     274 
     275 if ( (fh = streams_get_fh(id)) == -1 ) 
     276  return -1; 
     277 
     278 return roar_socket_nonblock(fh, sync ? ROAR_SOCKET_BLOCK : ROAR_SOCKET_NONBLOCK); 
     279} 
     280 
    272281int streams_set_flag     (int id, int flag) { 
    273282 if ( g_streams[id] == NULL ) 
     
    279288 } 
    280289 
     290 if ( flag & ROAR_FLAG_SYNC ) { 
     291  streams_set_sync(id, 1); 
     292  flag -= ROAR_FLAG_SYNC; 
     293 } 
     294 
    281295 g_streams[id]->flags |= flag; 
    282296 
     
    294308  streams_set_primary(id, 0); 
    295309  flag -= ROAR_FLAG_PRIMARY; 
     310 } 
     311 
     312 if ( flag & ROAR_FLAG_SYNC ) { 
     313  streams_set_sync(id, 0); 
     314  flag -= ROAR_FLAG_SYNC; 
    296315 } 
    297316 
Note: See TracChangeset for help on using the changeset viewer.