Changeset 5276:0eb24ca6810e in roaraudio for libroar/vio.c
- Timestamp:
- 11/20/11 18:36:49 (12 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libroar/vio.c
r5270 r5276 65 65 calls->write = roar_vio_basic_write; 66 66 calls->lseek = roar_vio_basic_lseek; 67 calls->nonblock = roar_vio_basic_nonblock;68 67 calls->sync = roar_vio_basic_sync; 69 68 calls->ctl = roar_vio_basic_ctl; … … 179 178 180 179 int roar_vio_nonblock(struct roar_vio_calls * vio, int state) { 181 int ret;182 183 180 ROAR_DBG("roar_vio_nonblock(vio=%p, state=%i) = ?", vio, state); 184 181 … … 188 185 } 189 186 190 if ( vio->nonblock == NULL ) { 191 roar_err_set(ROAR_ERROR_NOSYS); 192 return -1; 193 } 194 195 roar_err_clear_all(); 196 ret = vio->nonblock(vio, state); 197 roar_err_update(); 198 199 return ret; 187 return roar_vio_ctl(vio, ROAR_VIO_CTL_NONBLOCK, &state); 200 188 } 201 189 … … 346 334 calls->read = roar_vio_winsock_read; 347 335 calls->write = roar_vio_winsock_write; 348 calls->nonblock = roar_vio_winsock_nonblock;349 336 calls->sync = roar_vio_winsock_sync; 350 337 calls->ctl = roar_vio_winsock_ctl; … … 414 401 return -1; 415 402 #endif 416 }417 418 int roar_vio_basic_nonblock(struct roar_vio_calls * vio, int state) {419 if ( roar_socket_nonblock(roar_vio_get_fh(vio), state) == -1 )420 return -1;421 422 if ( state == ROAR_SOCKET_NONBLOCK )423 return 0;424 425 roar_vio_sync(vio);426 427 return 0;428 403 } 429 404 … … 666 641 break; 667 642 #endif 643 case ROAR_VIO_CTL_NONBLOCK: 644 if ( roar_socket_nonblock(roar_vio_get_fh(vio), *(int*)data) == -1 ) 645 return -1; 646 647 if ( *(int*)data == ROAR_SOCKET_NONBLOCK ) 648 return 0; 649 650 roar_vio_sync(vio); 651 return 0; 652 break; 668 653 } 669 654 … … 713 698 calls->write = roar_vio_pass_write; 714 699 calls->lseek = roar_vio_pass_lseek; 715 calls->nonblock = roar_vio_pass_nonblock;716 700 calls->sync = roar_vio_pass_sync; 717 701 calls->ctl = roar_vio_pass_ctl; … … 733 717 off_t roar_vio_pass_lseek(struct roar_vio_calls * vio, off_t offset, int whence) { 734 718 return roar_vio_lseek((struct roar_vio_calls *) vio->inst, offset, whence); 735 }736 737 int roar_vio_pass_nonblock(struct roar_vio_calls * vio, int state) {738 return roar_vio_nonblock((struct roar_vio_calls *) vio->inst, state);739 719 } 740 720
Note: See TracChangeset
for help on using the changeset viewer.