From e3d0df70fea5c80baec3a75142ba53b22d3a61b8 Mon Sep 17 00:00:00 2001 From: reimar Date: Thu, 15 Sep 2005 11:41:23 +0000 Subject: Fix af_pan commandline mess and (hopefully) improve description. It should now output the right number of channels and it doesn't silently clamp values to the too restrictive [0, 1] range. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@16494 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libaf/af_pan.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'libaf') diff --git a/libaf/af_pan.c b/libaf/af_pan.c index 8a8aa241fc..9f135c2b7f 100644 --- a/libaf/af_pan.c +++ b/libaf/af_pan.c @@ -64,10 +64,9 @@ static int control(struct af_instance_s* af, int cmd, void* arg) cp = &((char*)arg)[n]; j = 0; k = 0; while((*cp == ':') && (k < AF_NCH)){ - sscanf(cp, ":%f%n" , &s->level[k][j], &n); - s->level[k][j] = clamp(s->level[k][j],0.0,1.0); + sscanf(cp, ":%f%n" , &s->level[j][k], &n); af_msg(AF_MSG_VERBOSE,"[pan] Pan level from channel %i to" - " channel %i = %f\n",j,k,s->level[k][j]); + " channel %i = %f\n",k,j,s->level[j][k]); cp =&cp[n]; j++; if(j>=nch){ @@ -81,14 +80,18 @@ static int control(struct af_instance_s* af, int cmd, void* arg) int i; int ch = ((af_control_ext_t*)arg)->ch; float* level = ((af_control_ext_t*)arg)->arg; + if (ch >= AF_NCH) + return AF_FALSE; for(i=0;ilevel[ch][i] = clamp(level[i],0.0,1.0); + s->level[ch][i] = level[i]; return AF_OK; } case AF_CONTROL_PAN_LEVEL | AF_CONTROL_GET:{ int i; int ch = ((af_control_ext_t*)arg)->ch; float* level = ((af_control_ext_t*)arg)->arg; + if (ch >= AF_NCH) + return AF_FALSE; for(i=0;ilevel[ch][i]; return AF_OK; -- cgit v1.2.3