diff -NpuBr -Xexclude.txt main/DOCS/tech/slave.txt sherpya/DOCS/tech/slave.txt --- main/DOCS/tech/slave.txt 2010-12-28 03:49:52.703125000 +0100 +++ sherpya/DOCS/tech/slave.txt 2011-11-05 14:41:36.906250000 +0100 @@ -508,6 +508,11 @@ run Run as shell command. In OSD menu console mode stdout and stdin are through the video output driver. +af_eq_set_bands + Set bands gain in audio equalizer. Se details in manual (-af equalizer). + Example: + af_eq_set_bands 11:11:10:5:0:-12:0:5:12:12 + Available properties: diff -NpuBr -Xexclude.txt main/command.c sherpya/command.c --- main/command.c 2011-11-05 14:35:17.843750000 +0100 +++ sherpya/command.c 2011-11-05 14:41:36.921875000 +0100 @@ -3241,6 +3241,15 @@ int run_command(MPContext *mpctx, mp_cmd set_rectangle(sh_video, cmd->args[0].v.i, cmd->args[1].v.i); break; + case MP_CMD_AF_EQ_SET:{ + af_instance_t* m1=af_get(sh_audio->afilter, "equalizer"); + if (m1) + m1->control( m1, AF_CONTROL_COMMAND_LINE, cmd->args[0].v.s); + else + mp_msg(MSGT_CPLAYER, MSGL_INFO, "failed (forgot -af equalizer=0:0 ?)\n"); + } + break; + case MP_CMD_GET_TIME_LENGTH:{ mp_msg(MSGT_GLOBAL, MSGL_INFO, "ANS_LENGTH=%.2f\n", demuxer_get_time_length(mpctx->demuxer)); diff -NpuBr -Xexclude.txt main/input/input.c sherpya/input/input.c --- main/input/input.c 2011-09-21 01:05:38.140625000 +0200 +++ sherpya/input/input.c 2011-11-05 14:41:36.921875000 +0100 @@ -202,6 +202,7 @@ static const mp_cmd_t mp_cmds[] = { { MP_CMD_SEEK_CHAPTER, "seek_chapter", 1, { {MP_CMD_ARG_INT,{0}}, {MP_CMD_ARG_INT,{0}}, {-1,{0}} } }, { MP_CMD_SET_MOUSE_POS, "set_mouse_pos", 2, { {MP_CMD_ARG_INT,{0}}, {MP_CMD_ARG_INT,{0}}, {-1,{0}} } }, + { MP_CMD_AF_EQ_SET, "af_eq_set_bands", 1, { {MP_CMD_ARG_STRING, {0}}, {-1,{0}}}}, //turbos { MP_CMD_AF_SWITCH, "af_switch", 1, { {MP_CMD_ARG_STRING, {0}}, {-1,{0}} } }, { MP_CMD_AF_ADD, "af_add", 1, { {MP_CMD_ARG_STRING, {0}}, {-1,{0}} } }, { MP_CMD_AF_DEL, "af_del", 1, { {MP_CMD_ARG_STRING, {0}}, {-1,{0}} } }, diff -NpuBr -Xexclude.txt main/input/input.h sherpya/input/input.h --- main/input/input.h 2011-03-24 23:54:19.171875000 +0100 +++ sherpya/input/input.h 2011-11-05 14:41:36.937500000 +0100 @@ -156,6 +156,7 @@ typedef enum { MP_CMD_CHIDE, /// Audio Filter commands + MP_CMD_AF_EQ_SET, MP_CMD_AF_SWITCH, MP_CMD_AF_ADD, MP_CMD_AF_DEL, diff -NpuBr -Xexclude.txt main/libaf/af_equalizer.c sherpya/libaf/af_equalizer.c --- main/libaf/af_equalizer.c 2011-11-01 02:42:25.265625000 +0100 +++ sherpya/libaf/af_equalizer.c 2011-11-05 14:41:36.937500000 +0100 @@ -141,6 +141,7 @@ static int control(struct af_instance_s* case AF_CONTROL_COMMAND_LINE:{ float g[10]={0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0}; int i,j; + float gain_factor2=0.0; sscanf((char*)arg,"%f:%f:%f:%f:%f:%f:%f:%f:%f:%f", &g[0], &g[1], &g[2], &g[3], &g[4], &g[5], &g[6], &g[7], &g[8] ,&g[9]); for(i=0;i input.c + //see code: AF_CONTROL_REINIT in this file + for(j=0;jg[0][j]) gain_factor2=s->g[0][j]; + gain_factor2=log10(gain_factor2 + 1.0) * 20.0; + if(gain_factor2 > 0.0) gain_factor2=0.1+(gain_factor2/12.0); + else gain_factor2=1; + s->gain_factor=gain_factor2; + return AF_OK; } case AF_CONTROL_EQUALIZER_GAIN | AF_CONTROL_SET:{