summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--input/input.c2
-rw-r--r--mplayer.c10
2 files changed, 11 insertions, 1 deletions
diff --git a/input/input.c b/input/input.c
index 6265ae3eac..9c23ee9b2a 100644
--- a/input/input.c
+++ b/input/input.c
@@ -51,7 +51,7 @@ static mp_cmd_t mp_cmds[] = {
{ MP_CMD_PLAY_ALT_SRC_STEP, "alt_src_step",1, { { MP_CMD_ARG_INT,{0} }, {-1,{0}} } },
{ MP_CMD_SUB_DELAY, "sub_delay",1, { {MP_CMD_ARG_FLOAT,{0}}, {MP_CMD_ARG_INT,{0}}, {-1,{0}} } },
{ MP_CMD_OSD, "osd",0, { {MP_CMD_ARG_INT,{-1}}, {-1,{0}} } },
- { MP_CMD_VOLUME, "volume", 1, { { MP_CMD_ARG_INT,{0} }, {-1,{0}} } },
+ { MP_CMD_VOLUME, "volume", 1, { { MP_CMD_ARG_INT,{0} }, {MP_CMD_ARG_INT,{0}}, {-1,{0}} } },
{ MP_CMD_MIXER_USEMASTER, "use_master", 0, { {-1,{0}} } },
{ MP_CMD_MUTE, "mute", 0, { {-1,{0}} } },
{ MP_CMD_CONTRAST, "contrast",1, { {MP_CMD_ARG_INT,{0}}, {MP_CMD_ARG_INT,{0}}, {-1,{0}} } },
diff --git a/mplayer.c b/mplayer.c
index 359a927776..70812eb91c 100644
--- a/mplayer.c
+++ b/mplayer.c
@@ -2380,10 +2380,20 @@ if (stream->type==STREAMTYPE_DVDNAV && dvd_nav_still)
} break;
case MP_CMD_VOLUME : {
int v = cmd->args[0].v.i;
+
+ // start change for absolute volume value
+ int abs = (cmd->nargs > 1) ? cmd->args[1].v.i : 0;
+
+ if( abs )
+ {
+ mixer_setvolume( (float)v, (float)v );
+ } else {
if(v > 0)
mixer_incvolume();
else
mixer_decvolume();
+ }
+
#ifdef USE_OSD
if(osd_level){
osd_visible=sh_video->fps; // 1 sec