Changeset 5071:a550bcffdb13 in roaraudio
- Timestamp:
- 06/19/11 13:44:49 (13 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libroar/vs.c
r5069 r5071 57 57 #define _seterrse() do { roar_err_from_errno(); _seterr(roar_error); } while(0) 58 58 #define _ckvss(ret) do { if ( vss == NULL ) { _seterr(ROAR_ERROR_INVAL); return (ret); } } while(0) 59 #define _ckasync(ret) do { if ( _handle_async(vss, error) == -1 ) { return (ret); } } while(0); 59 60 60 61 struct roar_vs { … … 85 86 struct roar_time last_time; 86 87 } latmes; 88 struct { 89 size_t qlen; 90 } async; 87 91 }; 88 92 89 93 static int _roar_vs_find_first_prim(roar_vs_t * vss); 94 95 static int _handle_async_req(roar_vs_t * vss, int * error) { 96 _seterr(ROAR_ERROR_NOSYS); 97 return -1; 98 } 99 100 static inline int _handle_async(roar_vs_t * vss, int * error) { 101 while (vss->async.qlen) { 102 if ( _handle_async_req(vss, error) == -1 ) { 103 return -1; 104 } 105 } 106 107 return 0; 108 } 90 109 91 110 const char * roar_vs_strerr(int error) { … … 383 402 384 403 _ckvss(-1); 404 _ckasync(-1); 385 405 386 406 if ( vss->readbuffer != NULL ) … … 510 530 511 531 if ( wait == ROAR_VS_WAIT ) { 532 _ckasync(-1); 533 512 534 memset(&waits, 0, sizeof(waits)); 513 535 waits.event = ROAR_OE_STREAM_XRUN; … … 579 601 int num; 580 602 int i; 603 int * error = NULL; // needed for _ckasync() macro 604 605 _ckasync(-1); 581 606 582 607 if ( vss->first_primid != -1 ) … … 616 641 617 642 _ckvss(-1); 643 _ckasync(-1); 618 644 619 645 if ( !(vss->flags & FLAG_STREAM) ) { … … 716 742 717 743 _ckvss(0); 744 _ckasync(-1); 718 745 719 746 if (pos == -1) { … … 849 876 850 877 _ckvss(-1); 878 _ckasync(-1); 851 879 852 880 if ( !(vss->flags & FLAG_STREAM) ) { … … 902 930 903 931 _ckvss(-1); 932 _ckasync(-1); 904 933 905 934 if ( !(vss->flags & FLAG_STREAM) ) { … … 1010 1039 } 1011 1040 1041 _ckasync(-1); 1042 1012 1043 _initerr(); 1013 1044 … … 1033 1064 1034 1065 _ckvss(-1); 1066 _ckasync(-1); 1035 1067 1036 1068 if ( !(vss->flags & FLAG_STREAM) ) { … … 1074 1106 int roar_vs_role (roar_vs_t * vss, int role, int * error) { 1075 1107 _ckvss(-1); 1108 _ckasync(-1); 1076 1109 1077 1110 if ( !(vss->flags & FLAG_STREAM) ) {
Note: See TracChangeset
for help on using the changeset viewer.