Changeset 2738:6ac10ee7a131 in roaraudio
- Timestamp:
- 09/21/09 01:39:19 (15 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
roarclients/roarctl.c
r2700 r2738 411 411 int len; 412 412 int old_chans; 413 int vol_l, vol_r ;413 int vol_l, vol_r, vol_mono; 414 414 char * k; 415 415 struct roar_mixer_settings mixer; … … 435 435 436 436 if ( *cur + 1 > max ) 437 return -1; 438 439 k = arg[++(*cur)]; 440 len = strlen(k); 441 442 if ( k[len - 1] == '%' ) { 443 k[len - 1] = 0; 444 vol_mono = (atof(k)*65535)/100; 445 } else { 446 vol_mono = atoi(k); 447 } 448 449 for (i = 0; i < old_chans; i++) 450 mixer.mixer[i] = vol_mono; 451 452 chans = old_chans; 453 454 } else if ( strcmp(k, "stereo") == 0 && old_chans != 2 ) { 455 chans = old_chans; 456 457 if ( *cur + 2 > max ) 437 458 return -1; 438 459 … … 447 468 } 448 469 449 for (i = 0; i < old_chans; i++)450 mixer.mixer[i] = vol_l;451 452 chans = old_chans;453 454 } else if ( strcmp(k, "stereo") == 0 && old_chans == 4 ) {455 chans = 4;456 457 if ( *cur + 2 > max )458 return -1;459 460 k = arg[++(*cur)];461 len = strlen(k);462 463 if ( k[len - 1] == '%' ) {464 k[len - 1] = 0;465 vol_l = (atof(k)*65535)/100;466 } else {467 vol_l = atoi(k);468 }469 470 470 k = arg[++(*cur)]; 471 471 len = strlen(k); … … 478 478 } 479 479 480 vol_mono = (vol_l + vol_r) / 2; 481 480 482 mixer.mixer[0] = vol_l; 481 483 mixer.mixer[1] = vol_r; 482 mixer.mixer[2] = vol_l; 483 mixer.mixer[3] = vol_r; 484 485 } else if ( strcmp(k, "stereo") == 0 && old_chans != 2 ) { 486 chans = 2; 487 // printf("mode: stereo; chans=%i, old_chans=%i\n", chans, old_chans); 488 ROAR_ERR("mode stereo not supported"); 489 return -1; 484 485 switch (chans) { 486 case 3: 487 mixer.mixer[2] = vol_mono; 488 break; 489 case 4: 490 mixer.mixer[2] = vol_l; 491 mixer.mixer[3] = vol_r; 492 break; 493 case 5: 494 mixer.mixer[2] = vol_mono; 495 mixer.mixer[3] = vol_l; 496 mixer.mixer[4] = vol_r; 497 break; 498 case 6: 499 mixer.mixer[2] = vol_mono; 500 mixer.mixer[3] = vol_mono; 501 mixer.mixer[4] = vol_l; 502 mixer.mixer[5] = vol_r; 503 break; 504 default: 505 ROAR_ERR("mode stereo not supported"); 506 return -1; 507 break; 508 } 509 490 510 } else { 491 511 if ( strcmp(k, "mono") == 0 ) {
Note: See TracChangeset
for help on using the changeset viewer.