Changeset 4186:8052a0fa5ec2 in roaraudio
- Timestamp:
- 08/14/10 17:01:36 (14 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libroar/vs.c
r4183 r4186 40 40 #define FLAG_NONBLOCK 0x0002 41 41 42 #define _seterr(x) do { if ( error != NULL ) *error = (x); } while(0) 42 #define _initerr() do { errno = 0; roar_err_clear(); } while(0) 43 #define _seterr(x) do { if ( error != NULL ) *error = (x); } while(0) 44 #define _seterrre() do { _seterr(roar_errno); } while(0) 45 #define _seterrse() do { roar_err_from_errno(); _seterr(roar_errno); } while(0) 43 46 44 47 struct roar_vs { … … 84 87 85 88 if ( vss == NULL ) { 86 _seterr (ROAR_ERROR_NOMEM);89 _seterrse(); 87 90 return NULL; 88 91 } … … 113 116 vss->con = &(vss->con_store); 114 117 118 _initerr(); 119 115 120 ret = roar_simple_connect(vss->con, (char*)server, (char*)name); 116 121 117 122 if ( ret == -1 ) { 118 123 roar_vs_close(vss, ROAR_VS_TRUE, NULL); 119 _seterr (ROAR_ERROR_UNKNOWN);124 _seterrre(); 120 125 return NULL; 121 126 } … … 131 136 return -1; 132 137 } 138 139 _initerr(); 133 140 134 141 ret = roar_vio_simple_new_stream_obj(&(vss->vio), vss->con, &(vss->stream), … … 138 145 139 146 if ( ret == -1 ) { 140 _seterr (ROAR_ERROR_UNKNOWN);147 _seterrre(); 141 148 return -1; 142 149 } … … 202 209 } 203 210 211 _initerr(); 212 204 213 ret = roar_vio_write(&(vss->vio), (void*)buf, len); 205 214 206 215 if ( ret == -1 ) { 207 _seterr (ROAR_ERROR_UNKNOWN);216 _seterrre(); 208 217 } 209 218 … … 219 228 } 220 229 230 _initerr(); 231 221 232 ret = roar_vio_read(&(vss->vio), buf, len); 222 233 223 234 if ( ret == -1 ) { 224 _seterr (ROAR_ERROR_UNKNOWN);235 _seterrre(); 225 236 } 226 237 … … 239 250 } 240 251 241 roar_vio_sync(&(vss->vio)); 252 _initerr(); 253 254 if ( roar_vio_sync(&(vss->vio)) == -1 ) { 255 _seterrre(); 256 return -1; 257 } 242 258 243 259 return 0; … … 253 269 254 270 old = vss->flags & FLAG_NONBLOCK ? ROAR_VS_FALSE : ROAR_VS_TRUE; 271 272 _initerr(); 255 273 256 274 switch (val) { 257 275 case ROAR_VS_TRUE: 258 276 if ( roar_vio_nonblock(&(vss->vio), ROAR_SOCKET_BLOCK) == -1 ) { 259 _seterr (ROAR_ERROR_UNKNOWN);277 _seterrre(); 260 278 return -1; 261 279 } … … 266 284 case ROAR_VS_FALSE: 267 285 if ( roar_vio_nonblock(&(vss->vio), ROAR_SOCKET_NONBLOCK) == -1 ) { 268 _seterr (ROAR_ERROR_UNKNOWN);286 _seterrre(); 269 287 return -1; 270 288 } … … 289 307 290 308 ssize_t roar_vs_latency(roar_vs_t * vss, int backend, int * error) { 291 _seterr(ROAR_ERROR_NO TSUP);309 _seterr(ROAR_ERROR_NOSYS); 292 310 return -1; 293 311 } … … 304 322 if ( val != ROAR_VS_ASK ) 305 323 old = roar_vs_flag(vss, flag, ROAR_VS_ASK, error); 324 325 _initerr(); 306 326 307 327 switch (val) { … … 310 330 if ( roar_stream_set_flags(vss->con, &(vss->stream), flag, 311 331 val == ROAR_VS_TRUE ? ROAR_SET_FLAG : ROAR_RESET_FLAG) == -1 ) { 312 _seterr (ROAR_ERROR_UNKNOWN);332 _seterrre(); 313 333 return -1; 314 334 } … … 320 340 case ROAR_VS_ASK: 321 341 if ( roar_stream_get_info(vss->con, &(vss->stream), &info) == -1 ) { 322 _seterr (ROAR_ERROR_UNKNOWN);342 _seterrre(); 323 343 return -1; 324 344 } … … 356 376 } 357 377 378 _initerr(); 379 358 380 if ( roar_get_vol(vss->con, roar_stream_get_id(&(vss->stream)), &mixer, &oldchannels) == -1 ) { 359 _seterr (ROAR_ERROR_UNKNOWN);381 _seterrre(); 360 382 return -1; 361 383 } … … 413 435 414 436 if ( roar_set_vol(vss->con, roar_stream_get_id(&(vss->stream)), &mixer, channels) == -1 ) { 415 _seterr (ROAR_ERROR_UNKNOWN);437 _seterrre(); 416 438 return -1; 417 439 } … … 443 465 } 444 466 467 _initerr(); 468 445 469 if ( roar_get_vol(vss->con, roar_stream_get_id(&(vss->stream)), &mixer, &channels) == -1 ) { 446 _seterr (ROAR_ERROR_UNKNOWN);470 _seterrre(); 447 471 return -1; 448 472 } … … 472 496 meta.value = NULL; 473 497 474 // TODO: add error hadnling here.498 _initerr(); 475 499 476 500 if ( roar_stream_meta_set(vss->con, &(vss->stream), ROAR_META_MODE_CLEAR, &meta) == -1 ) { 477 _seterr (ROAR_ERROR_UNKNOWN);501 _seterrre(); 478 502 ret = -1; 479 503 } … … 485 509 486 510 if ( roar_stream_meta_set(vss->con, &(vss->stream), ROAR_META_MODE_ADD, &meta) == -1 ) { 487 _seterr (ROAR_ERROR_UNKNOWN);511 _seterrre(); 488 512 ret = -1; 489 513 } … … 494 518 meta.value = NULL; 495 519 if ( roar_stream_meta_set(vss->con, &(vss->stream), ROAR_META_MODE_FINALIZE, &meta) == -1 ) { 496 _seterr (ROAR_ERROR_UNKNOWN);520 _seterrre(); 497 521 ret = -1; 498 522 } … … 508 532 if ( !(vss->flags & FLAG_STREAM) ) { 509 533 _seterr(ROAR_ERROR_INVAL); 510 return -1;534 return NULL; 511 535 } 512 536 … … 517 541 if ( !(vss->flags & FLAG_STREAM) ) { 518 542 _seterr(ROAR_ERROR_INVAL); 519 return -1;543 return NULL; 520 544 } 521 545
Note: See TracChangeset
for help on using the changeset viewer.