From a0854c197893e4e05090d223a88fbb7e180f3c83 Mon Sep 17 00:00:00 2001 From: Uoti Urpala Date: Sat, 19 Sep 2009 05:10:46 +0300 Subject: commands: Add set_property_osd and step_property_osd --- DOCS/tech/slave.txt | 8 ++++++++ command.c | 11 +++++++++++ input/input.c | 2 ++ input/input.h | 2 ++ 4 files changed, 23 insertions(+) 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 set_property Set a property. +set_property_osd + Same as above, but show the new value on the OSD in the standard + manner defined for that property (if any). + speed_incr Add to the current playback speed. @@ -275,6 +279,10 @@ step_property [value] [direction] not given or zero. The direction is reversed if direction is less than zero. +step_property_osd [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, -- cgit v1.2.3