Changeset 4538:b809f0dcd86a in roaraudio
- Timestamp:
- 10/23/10 13:00:54 (13 years ago)
- Branch:
- default
- Phase:
- public
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
include/libroar/stream.h
r4296 r4538 91 91 int roar_stream_set_chanmap (struct roar_connection * con, struct roar_stream * s, char * map, size_t len); 92 92 93 int roar_stream_set_flags (struct roar_connection * con, struct roar_stream * s, int flags, int reset); 93 int roar_stream_set_flags (struct roar_connection * con, struct roar_stream * s, int flags, int reset); 94 int roar_stream_set_flags2 (struct roar_connection * con, struct roar_stream * s, uint32_t flags, int action); 94 95 95 96 int roar_stream_set_role (struct roar_connection * con, struct roar_stream * s, int role); -
libroar/stream.c
r4296 r4538 611 611 612 612 int roar_stream_set_flags (struct roar_connection * con, struct roar_stream * s, int flags, int reset) { 613 return roar_stream_set_flags2(con, s, flags, reset == ROAR_RESET_FLAG ? ROAR_RESET_FLAG : ROAR_SET_FLAG); 614 } 615 616 int roar_stream_set_flags2 (struct roar_connection * con, struct roar_stream * s, uint32_t flags, int action) { 613 617 struct roar_message m; 614 618 uint16_t * data = (uint16_t *) m.data; … … 619 623 m.cmd = ROAR_CMD_SET_STREAM_PARA; 620 624 m.stream = s->id; 621 m.datalen = 8;622 625 m.pos = 0; 626 627 if ( flags & 0xFFFF0000 ) { 628 m.datalen = 2*5; 629 } else { 630 m.datalen = 2*4; 631 } 623 632 624 633 data[0] = 0; // Version and reserved 625 634 data[1] = ROAR_STREAM_PARA_FLAGS; // flags 626 data[2] = reset == ROAR_RESET_FLAG ? ROAR_RESET_FLAG : ROAR_SET_FLAG; 627 data[3] = flags; 635 data[2] = action; 636 data[3] = flags & 0x0000FFFF; 637 638 if ( flags & 0xFFFF0000 ) { 639 data[4] = (flags & 0xFFFF0000) >> 16; 640 } 628 641 629 642 for (i = 0; i < m.datalen/2; i++) { -
roard/req.c
r4521 r4538 1074 1074 int req_on_set_stream_para (int client, struct roar_message * mes, char ** data, uint32_t flags[2]) { 1075 1075 uint16_t * d = (uint16_t *) mes->data; 1076 uint32_t tmp; 1076 1077 int i; 1077 1078 … … 1088 1089 switch (d[1]) { 1089 1090 case ROAR_STREAM_PARA_FLAGS: 1090 if ( mes->datalen != 2*4 )1091 if ( mes->datalen != 2*4 && mes->datalen != 2*5 ) 1091 1092 return -1; 1092 1093 … … 1095 1096 1096 1097 ROAR_DBG("req_on_set_stream_para(*): request seems to be valid"); 1098 1099 tmp = 0; 1100 1101 if ( mes->datalen == 2*5 ) { 1102 d[4] = ROAR_NET2HOST16(d[4]); 1103 tmp = d[4]; 1104 tmp <<= 16; 1105 } 1106 1107 tmp |= d[3]; 1097 1108 1098 1109 if ( d[2] == ROAR_RESET_FLAG ) {
Note: See TracChangeset
for help on using the changeset viewer.