Changeset 3529:fba86b5b08a7 in roaraudio
- Timestamp:
- 02/19/10 17:36:33 (14 years ago)
- Branch:
- default
- Phase:
- public
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
libroar/ctl.c
r3517 r3529 246 246 m.cmd = ROAR_CMD_GET_VOL; 247 247 m.datalen = 2*2; 248 info[0] = 0; 249 info[1] = ROAR_HOST2NET16(id); 248 m.stream = id; 249 250 info[0] = ROAR_HOST2NET16(1); 250 251 251 252 if ( roar_req(con, &m, NULL) == -1 ) … … 255 256 return -1; 256 257 257 if ( info[0] != 0)258 if ( ROAR_NET2HOST16(info[0]) != 1 ) 258 259 return -1; 259 260 … … 266 267 return -1; 267 268 268 mixer->scale = 65535;269 mixer->rpg_mul = 1;270 mixer->rpg_div = 1;269 mixer->scale = ROAR_NET2HOST16(info[2]); 270 mixer->rpg_mul = ROAR_NET2HOST16(info[3]); 271 mixer->rpg_div = ROAR_NET2HOST16(info[4]); 271 272 272 273 for (i = 0; i < info[1]; i++) 273 mixer->mixer[i] = ROAR_NET2HOST16(info[i+ 2]);274 mixer->mixer[i] = ROAR_NET2HOST16(info[i+5]); 274 275 275 276 return 0; -
roarclients/roarctl.c
r3517 r3529 429 429 430 430 int display_mixer (struct roar_connection * con, int stream) { 431 struct roar_mixer_settings mixer; 431 432 int channels; 432 struct roar_mixer_settings mixer;433 433 int i; 434 float fs; 434 435 435 436 if ( roar_get_vol(con, stream, &mixer, &channels) == -1 ) { … … 444 445 #endif 445 446 447 fs = (float)mixer.scale / 100.; 448 449 printf("Mixer ReplayGain : %i/%i (%.2f%%" _DB ")\n", mixer.rpg_mul, mixer.rpg_div, 450 100.*(float)mixer.rpg_mul/((float)mixer.rpg_div) 451 #ifdef ROAR_HAVE_LIBM 452 , 20*log10f((float)mixer.rpg_mul/(float)mixer.rpg_div) 453 #endif 454 ); 455 446 456 for (i = 0; i < channels; i++) 447 printf("Mixer volume chan %2i : %i (%.2f%%" _DB ")\n", i, mixer.mixer[i],448 (float)mixer.mixer[i]/ 655.35f457 printf("Mixer volume chan %2i : %i/%i (%.2f%%" _DB ")\n", i, mixer.mixer[i], mixer.scale, 458 (float)mixer.mixer[i]/fs 449 459 #ifdef ROAR_HAVE_LIBM 450 , 20*log10f((float)mixer.mixer[i]/ 65535.f)460 , 20*log10f((float)mixer.mixer[i]/(float)mixer.scale) 451 461 #endif 452 462 ); -
roard/req.c
r3517 r3529 808 808 int req_on_get_vol (int client, struct roar_message * mes, char * data) { 809 809 uint16_t * info = (uint16_t *) mes->data; 810 uint16_t version = -1; 810 811 int stream; 811 812 struct roar_stream_server * s; … … 816 817 ROAR_DBG("req_on_get_vol(*): mes->datalen=%i", mes->datalen); 817 818 818 if ( mes->datalen < (2*2) ) 819 return -1; 820 821 if ( info[0] != 0 ) // version 822 return -1; 823 824 stream = ROAR_NET2HOST16(info[1]); 819 if ( mes->datalen < 2 ) { 820 return -1; 821 } 822 823 version = ROAR_NET2HOST16(info[0]); 824 825 switch (version) { 826 case 0: 827 if ( mes->datalen < (2*2) ) 828 return -1; 829 830 stream = ROAR_NET2HOST16(info[1]); 831 break; 832 case 1: 833 stream = mes->stream; 834 break; 835 default: 836 return -1; 837 break; 838 } 839 825 840 ROAR_DBG("req_on_get_vol(*): stream=%i", stream); 826 841 … … 841 856 // ok, we have everything 842 857 843 info[0] = 0; 844 info[1] = ROAR_HOST2NET16(chans = ROAR_STREAM(s)->info.channels); 845 846 for (i = 0; i < chans; i++) 847 info[2+i] = ROAR_HOST2NET16(s->mixer.mixer[i]); 848 849 mes->datalen = (2 + chans)*2; 858 info[0] = ROAR_HOST2NET16(version); 859 860 switch (version) { 861 case 0: 862 info[1] = ROAR_HOST2NET16(chans = ROAR_STREAM(s)->info.channels); 863 864 for (i = 0; i < chans; i++) 865 info[2+i] = ROAR_HOST2NET16(s->mixer.mixer[i]); 866 867 mes->datalen = (2 + chans)*2; 868 break; 869 case 1: 870 info[1] = ROAR_HOST2NET16(chans = ROAR_STREAM(s)->info.channels); 871 info[2] = ROAR_HOST2NET16(s->mixer.scale); 872 info[3] = ROAR_HOST2NET16(s->mixer.rpg_mul); 873 info[4] = ROAR_HOST2NET16(s->mixer.rpg_div); 874 875 for (i = 0; i < chans; i++) 876 info[5+i] = ROAR_HOST2NET16(s->mixer.mixer[i]); 877 878 mes->datalen = (5 + chans)*2; 879 break; 880 default: 881 return -1; 882 break; 883 } 884 850 885 mes->cmd = ROAR_CMD_OK; 851 886
Note: See TracChangeset
for help on using the changeset viewer.