Changeset 3539:1fd530767d7b in roaraudio for libroar/stream.c
- Timestamp:
- 02/20/10 00:48:43 (14 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libroar/stream.c
r3517 r3539 482 482 } 483 483 484 int roar_stream_get_chanmap (struct roar_connection * con, struct roar_stream * s, char * map, size_t * len) { 485 struct roar_message m; 486 uint16_t * data = (uint16_t *) m.data; 487 488 ROAR_DBG("roar_stream_get_chanmap(con=%p, s=%p, map=%p, len=%p) = ?", con, s, map, len); 489 490 if ( con == NULL || s == NULL || map == NULL || len == NULL ) 491 return -1; 492 493 if ( *len == 0 ) 494 return -1; 495 496 memset(&m, 0, sizeof(m)); 497 498 m.cmd = ROAR_CMD_GET_STREAM_PARA; 499 m.stream = s->id; 500 m.datalen = 2*2; 501 502 data[0] = 0; // Version and reserved 503 data[1] = ROAR_STREAM_PARA_CHANMAP; 504 505 data[0] = ROAR_HOST2NET16(data[0]); 506 data[1] = ROAR_HOST2NET16(data[1]); 507 508 if ( roar_req(con, &m, NULL) == -1 ) 509 return -1; 510 511 ROAR_DBG("roar_stream_get_chanmap(con=%p, s=%p{.id=%i}, map=%p, len=%p) = ?", con, s, s->id, map, len); 512 513 if ( m.cmd != ROAR_CMD_OK ) 514 return -1; 515 516 ROAR_DBG("roar_stream_get_chanmap(con=%p, s=%p{.id=%i}, map=%p, len=%p) = ?", con, s, s->id, map, len); 517 518 if ( m.datalen < 4 ) 519 return -1; 520 521 data[0] = ROAR_NET2HOST16(data[0]); 522 data[1] = ROAR_NET2HOST16(data[1]); 523 524 ROAR_DBG("roar_stream_get_chanmap(con=%p, s=%p{.id=%i}, map=%p, len=%p) = ?", con, s, s->id, map, len); 525 526 if ( data[0] != 0 || data[1] != ROAR_STREAM_PARA_CHANMAP ) 527 return -1; 528 529 ROAR_DBG("roar_stream_get_chanmap(con=%p, s=%p{.id=%i}, map=%p, len=%p) = ?", con, s, s->id, map, len); 530 531 m.datalen -= 4; 532 533 if ( m.datalen > *len ) 534 return -1; 535 536 ROAR_DBG("roar_stream_get_chanmap(con=%p, s=%p{.id=%i}, map=%p, len=%p) = ?", con, s, s->id, map, len); 537 538 memcpy(map, &(m.data[4]), m.datalen); 539 540 *len = m.datalen; 541 542 ROAR_DBG("roar_stream_get_chanmap(con=%p, s=%p{.id=%i}, map=%p, len=%p) = 0", con, s, s->id, map, len); 543 return 0; 544 } 545 546 int roar_stream_set_chanmap (struct roar_connection * con, struct roar_stream * s, char * map, size_t len); 547 548 484 549 int roar_stream_set_flags (struct roar_connection * con, struct roar_stream * s, int flags, int reset) { 485 550 struct roar_message m;
Note: See TracChangeset
for help on using the changeset viewer.