Changeset 5262:770d0aaae8de in roaraudio for libroar
- Timestamp:
- 11/14/11 01:13:34 (12 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libroar/vs.c
r5239 r5262 50 50 #define FLAG_FREE_VOL 0x0010 51 51 #define FLAG_DEF_PAUSE 0x0020 52 #define FLAG_VIO_RE 0x0040 52 53 #define FLAG_DIR_IN 0x1000 53 54 #define FLAG_DIR_OUT 0x2000 … … 66 67 struct roar_stream stream; 67 68 struct roar_vio_calls vio; 69 struct roar_vio_calls vio_re; 70 struct roar_vio_calls * vio_ptr; 68 71 struct roar_audio_info info; 69 72 size_t readc, writec; … … 262 265 memset(vss, 0, sizeof(roar_vs_t)); 263 266 267 vss->vio_ptr = &(vss->vio); 268 264 269 vss->mixerid = -1; 265 270 vss->first_primid = -1; … … 336 341 ); 337 342 343 if ( roar_vio_open_re(&(vss->vio_re), &(vss->vio)) != -1 ) { 344 vss->flags |= FLAG_VIO_RE; 345 vss->vio_ptr = &(vss->vio_re); 346 } 347 338 348 if ( ret == -1 ) { 339 349 _seterrre(); … … 347 357 if ( vss->mixerid != -1 && vss->mixerid != sinfo.mixer ) { 348 358 _seterr(ROAR_ERROR_INVAL); // TODO: should we maybe use a diffrent value? 349 roar_vio_close( &(vss->vio));359 roar_vio_close(vss->vio_ptr); 350 360 return -1; 351 361 } … … 559 569 } 560 570 561 roar_vio_close( &(vss->vio));571 roar_vio_close(vss->vio_ptr); 562 572 } 563 573 … … 571 581 572 582 static ssize_t roar_vs_write_direct(roar_vs_t * vss, const void * buf, size_t len, int * error) { 573 ssize_t ret = roar_vio_write( &(vss->vio), (void*)buf, len);583 ssize_t ret = roar_vio_write(vss->vio_ptr, (void*)buf, len); 574 584 575 585 if ( ret == -1 ) { … … 633 643 _initerr(); 634 644 635 ret = roar_vio_read( &(vss->vio), buf, len);645 ret = roar_vio_read(vss->vio_ptr, buf, len); 636 646 637 647 if ( ret == -1 ) { … … 661 671 _initerr(); 662 672 663 if ( roar_vio_sync( &(vss->vio)) == -1 ) {673 if ( roar_vio_sync(vss->vio_ptr) == -1 ) { 664 674 _seterrre(); 665 675 return -1; … … 700 710 switch (val) { 701 711 case ROAR_VS_TRUE: 702 if ( roar_vio_nonblock( &(vss->vio), ROAR_SOCKET_BLOCK) == -1 ) {712 if ( roar_vio_nonblock(vss->vio_ptr, ROAR_SOCKET_BLOCK) == -1 ) { 703 713 _seterrre(); 704 714 return -1; … … 709 719 break; 710 720 case ROAR_VS_FALSE: 711 if ( roar_vio_nonblock( &(vss->vio), ROAR_SOCKET_NONBLOCK) == -1 ) {721 if ( roar_vio_nonblock(vss->vio_ptr, ROAR_SOCKET_NONBLOCK) == -1 ) { 712 722 _seterrre(); 713 723 return -1; … … 854 864 sockopt.optlen = sizeof(val); 855 865 856 if ( roar_vio_ctl( &(vss->vio), ROAR_VIO_CTL_GET_SYSIO_SOCKOPT, &sockopt) == -1 )866 if ( roar_vio_ctl(vss->vio_ptr, ROAR_VIO_CTL_GET_SYSIO_SOCKOPT, &sockopt) == -1 ) 857 867 return; 858 868 … … 865 875 sockopt.optlen = sizeof(val); 866 876 867 if ( roar_vio_ctl( &(vss->vio), ROAR_VIO_CTL_SET_SYSIO_SOCKOPT, &sockopt) == -1 )877 if ( roar_vio_ctl(vss->vio_ptr, ROAR_VIO_CTL_SET_SYSIO_SOCKOPT, &sockopt) == -1 ) 868 878 return; 869 879 } … … 1302 1312 } 1303 1313 1304 ROAR_VIO_SELECT_SETVIO(&(vios[len]), &(vss->vio), ((vss->flags & FLAG_DIR_IN ? ROAR_VIO_SELECT_READ : 0) |1314 ROAR_VIO_SELECT_SETVIO(&(vios[len]), vss->vio_ptr, ((vss->flags & FLAG_DIR_IN ? ROAR_VIO_SELECT_READ : 0) | 1305 1315 (vss->flags & FLAG_DIR_OUT ? ROAR_VIO_SELECT_WRITE : 0))); 1306 vios[len].ud.vp = &(vss->vio);1316 vios[len].ud.vp = vss->vio_ptr; 1307 1317 len++; 1308 1318 … … 1341 1351 continue; 1342 1352 1343 if ( vios[i].ud.vp == &(vss->vio)) {1353 if ( vios[i].ud.vp == vss->vio_ptr ) { 1344 1354 if ( vios[i].eventsa & ROAR_VIO_SELECT_READ ) 1345 1355 can_read++; … … 1780 1790 } 1781 1791 1782 return &(vss->vio);1792 return vss->vio_ptr; 1783 1793 } 1784 1794
Note: See TracChangeset
for help on using the changeset viewer.