summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUoti Urpala <uau@glyph.nonexistent.invalid>2009-09-19 05:10:46 +0300
committerUoti Urpala <uau@glyph.nonexistent.invalid>2009-09-19 05:30:20 +0300
commita0854c197893e4e05090d223a88fbb7e180f3c83 (patch)
treecbc07916611126bbdb66c549de0eb0a30831ebca
parent606d6fa65be92a1a4207f9e8e985848159ee8ea8 (diff)
downloadmpv-a0854c197893e4e05090d223a88fbb7e180f3c83.tar.bz2
mpv-a0854c197893e4e05090d223a88fbb7e180f3c83.tar.xz
commands: Add set_property_osd and step_property_osd
-rw-r--r--DOCS/tech/slave.txt8
-rw-r--r--command.c11
-rw-r--r--input/input.c2
-rw-r--r--input/input.h2
4 files changed, 23 insertions, 0 deletions
diff --git a/DOCS/tech/slave.txt b/DOCS/tech/slave.txt
index e1fed7edee..580275b609 100644
--- a/DOCS/tech/slave.txt
+++ b/DOCS/tech/slave.txt
@@ -261,6 +261,10 @@ set_mouse_pos <x> <y>
set_property <property> <value>
Set a property.
+set_property_osd <property> <value>
+ Same as above, but show the new value on the OSD in the standard
+ manner defined for that property (if any).
+
speed_incr <value>
Add <value> to the current playback speed.
@@ -275,6 +279,10 @@ step_property <property> [value] [direction]
not given or zero. The direction is reversed if direction is less
than zero.
+step_property_osd <property> [value] [direction]
+ Same as above, but show the new value on the OSD in the standard
+ manner defined for that property (if any).
+
stop
Stop playback.
diff --git a/command.c b/command.c
index 798492c47b..3b35ae5d80 100644
--- a/command.c
+++ b/command.c
@@ -2443,6 +2443,7 @@ void run_command(MPContext *mpctx, mp_cmd_t *cmd)
sh_audio_t * const sh_audio = mpctx->sh_audio;
sh_video_t * const sh_video = mpctx->sh_video;
int osd_duration = opts->osd_duration;
+ int case_fallthrough_hack = 0;
if (!set_property_command(mpctx, cmd))
switch (cmd->id) {
case MP_CMD_SEEK:{
@@ -2469,6 +2470,9 @@ void run_command(MPContext *mpctx, mp_cmd_t *cmd)
}
break;
+ case MP_CMD_SET_PROPERTY_OSD:
+ case_fallthrough_hack = 1;
+
case MP_CMD_SET_PROPERTY:{
int r = mp_property_do(cmd->args[0].v.s, M_PROPERTY_PARSE,
cmd->args[1].v.s, mpctx);
@@ -2479,9 +2483,14 @@ void run_command(MPContext *mpctx, mp_cmd_t *cmd)
mp_msg(MSGT_CPLAYER, MSGL_WARN,
"Failed to set property '%s' to '%s'.\n",
cmd->args[0].v.s, cmd->args[1].v.s);
+ else if (case_fallthrough_hack)
+ show_property_osd(mpctx, cmd->args[0].v.s);
}
break;
+ case MP_CMD_STEP_PROPERTY_OSD:
+ case_fallthrough_hack = 1;
+
case MP_CMD_STEP_PROPERTY:{
void* arg = NULL;
int r,i;
@@ -2520,6 +2529,8 @@ void run_command(MPContext *mpctx, mp_cmd_t *cmd)
mp_msg(MSGT_CPLAYER, MSGL_WARN,
"Failed to increment property '%s' by %f.\n",
cmd->args[0].v.s, cmd->args[1].v.f);
+ else if (case_fallthrough_hack)
+ show_property_osd(mpctx, cmd->args[0].v.s);
}
break;
diff --git a/input/input.c b/input/input.c
index b45f94605b..ef8c401712 100644
--- a/input/input.c
+++ b/input/input.c
@@ -205,8 +205,10 @@ static const mp_cmd_t mp_cmds[] = {
{ MP_CMD_GET_SUB_VISIBILITY, "get_sub_visibility", 0, { {-1,{0}} } },
{ MP_CMD_KEYDOWN_EVENTS, "key_down_event", 1, { {MP_CMD_ARG_INT,{0}}, {-1,{0}} } },
{ MP_CMD_SET_PROPERTY, "set_property", 2, { {MP_CMD_ARG_STRING, {0}}, {MP_CMD_ARG_STRING, {0}}, {-1,{0}} } },
+ { MP_CMD_SET_PROPERTY_OSD, "set_property_osd", 2, { {MP_CMD_ARG_STRING, {0}}, {MP_CMD_ARG_STRING, {0}}, {-1,{0}} } },
{ MP_CMD_GET_PROPERTY, "get_property", 1, { {MP_CMD_ARG_STRING, {0}}, {-1,{0}} } },
{ MP_CMD_STEP_PROPERTY, "step_property", 1, { {MP_CMD_ARG_STRING, {0}}, {MP_CMD_ARG_FLOAT,{0}}, {MP_CMD_ARG_INT,{0}}, {-1,{0}} } },
+ { MP_CMD_STEP_PROPERTY_OSD, "step_property_osd", 1, { {MP_CMD_ARG_STRING, {0}}, {MP_CMD_ARG_FLOAT,{0}}, {MP_CMD_ARG_INT,{0}}, {-1,{0}} } },
{ 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}} } },
diff --git a/input/input.h b/input/input.h
index 3a73d4d568..82718b9b29 100644
--- a/input/input.h
+++ b/input/input.h
@@ -90,6 +90,7 @@ typedef enum {
MP_CMD_KEYDOWN_EVENTS,
MP_CMD_VO_BORDER,
MP_CMD_SET_PROPERTY,
+ MP_CMD_SET_PROPERTY_OSD,
MP_CMD_GET_PROPERTY,
MP_CMD_OSD_SHOW_PROPERTY_TEXT,
MP_CMD_SEEK_CHAPTER,
@@ -113,6 +114,7 @@ typedef enum {
MP_CMD_RADIO_SET_FREQ,
MP_CMD_SET_MOUSE_POS,
MP_CMD_STEP_PROPERTY,
+ MP_CMD_STEP_PROPERTY_OSD,
MP_CMD_RADIO_STEP_FREQ,
MP_CMD_TV_STEP_FREQ,
MP_CMD_LOOP,