Changeset 5624:ec1593cc8525 in roaraudio for libroar/stream.c
- Timestamp:
- 08/18/12 02:04:07 (12 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libroar/stream.c
r5542 r5624 743 743 } 744 744 745 int roar_stream_get_rpg (struct roar_connection * con, struct roar_stream * s, struct roar_stream_rpg * rpg) { 746 struct roar_message m; 747 uint16_t * data = (uint16_t *) m.data; 748 size_t i; 749 750 memset(&m, 0, sizeof(m)); 751 752 m.cmd = ROAR_CMD_GET_STREAM_PARA; 753 m.stream = s->id; 754 m.datalen = 2*2; 755 m.pos = 0; 756 757 data[0] = 0; // Version and reserved 758 data[1] = ROAR_STREAM_PARA_RPG; // flags 759 760 for (i = 0; i < m.datalen/2; i++) { 761 data[i] = ROAR_HOST2NET16(data[i]); 762 } 763 764 if ( roar_req(con, &m, NULL) == -1 ) 765 return -1; 766 767 if ( m.cmd != ROAR_CMD_OK ) 768 return -1; 769 770 for (i = 0; i < m.datalen/2; i++) { 771 data[i] = ROAR_NET2HOST16(data[i]); 772 } 773 774 if ( m.datalen != 10 ) { 775 roar_err_set(ROAR_ERROR_MSGSIZE); 776 return -1; 777 } 778 779 if ( data[0] != 0 ) { 780 roar_err_set(ROAR_ERROR_NSVERSION); 781 return -1; 782 } 783 784 if ( data[1] != ROAR_STREAM_PARA_RPG ) { 785 roar_err_set(ROAR_ERROR_BADRQC); 786 return -1; 787 } 788 789 memset(rpg, 0, sizeof(struct roar_stream_rpg)); 790 791 rpg->mode = data[2]; 792 rpg->mul = data[3]; 793 rpg->div = data[4]; 794 795 if ( rpg->mode == 0xFFFF ) 796 rpg->mode = -1; 797 798 return 0; 799 } 800 801 int roar_stream_set_rpg (struct roar_connection * con, struct roar_stream * s, const struct roar_stream_rpg * rpg) { 802 struct roar_message m; 803 uint16_t * data = (uint16_t *) m.data; 804 size_t i; 805 806 memset(&m, 0, sizeof(m)); 807 808 m.cmd = ROAR_CMD_SET_STREAM_PARA; 809 m.stream = s->id; 810 m.datalen = (2+3)*2; 811 m.pos = 0; 812 813 data[0] = 0; // Version and reserved 814 data[1] = ROAR_STREAM_PARA_RPG; // flags 815 data[2] = rpg->mode; 816 data[3] = rpg->mul; 817 data[4] = rpg->div; 818 819 for (i = 0; i < m.datalen/2; i++) { 820 data[i] = ROAR_HOST2NET16(data[i]); 821 } 822 823 if ( roar_req(con, &m, NULL) == -1 ) 824 return -1; 825 826 if ( m.cmd != ROAR_CMD_OK ) 827 return -1; 828 829 return 0; 830 } 745 831 746 832 #ifdef DEBUG … … 1168 1254 1169 1255 return "unknown"; 1256 } 1257 1258 const char * roar_rpgmode2str(const int rpgmode) { 1259 switch (rpgmode) { 1260 case ROAR_RPGMODE_DEFAULT: return "default"; break; 1261 case ROAR_RPGMODE_NONE: return "none"; break; 1262 case ROAR_RPGMODE_USER: return "user"; break; 1263 case ROAR_RPGMODE_ALBUM: return "album"; break; 1264 case ROAR_RPGMODE_TRACK: return "track"; break; 1265 case ROAR_RPGMODE_ALBUMTRACK: return "albumtrack"; break; 1266 case ROAR_RPGMODE_TRACKALBUM: return "trackalbum"; break; 1267 default: 1268 roar_err_set(ROAR_ERROR_NOENT); 1269 return NULL; 1270 break; 1271 } 1170 1272 } 1171 1273
Note: See TracChangeset
for help on using the changeset viewer.