# HG changeset patch # User reimar # Date 1100947873 0 # Node ID 28a6f0847c58fc268f191a49a97778aeb321c507 # Parent 1d971c4b0412de67cb38244e9e3a047886723d3a add "pausing" prefix for MPlayer commands diff -r 1d971c4b0412 -r 28a6f0847c58 DOCS/tech/slave.txt --- a/DOCS/tech/slave.txt Sat Nov 20 10:48:11 2004 +0000 +++ b/DOCS/tech/slave.txt Sat Nov 20 10:51:13 2004 +0000 @@ -231,3 +231,8 @@ run ??? + +All commands can be prefixed with "pausing ", causing MPlayer to get into +paused mode as soon as possible after processing the command. +Please note that this can be before the command is fully executed. + diff -r 1d971c4b0412 -r 28a6f0847c58 input/input.c --- a/input/input.c Sat Nov 20 10:48:11 2004 +0000 +++ b/input/input.c Sat Nov 20 10:51:13 2004 +0000 @@ -542,6 +542,7 @@ mp_cmd_t* mp_input_parse_cmd(char* str) { int i,l; + int pausing = 0; char *ptr,*e; mp_cmd_t *cmd, *cmd_def; @@ -549,6 +550,11 @@ assert(str != NULL); #endif + if (strncmp(str, "pausing ", 8) == 0) { + pausing = 1; + str = &str[8]; + } + for(ptr = str ; ptr[0] != '\0' && ptr[0] != '\t' && ptr[0] != ' ' ; ptr++) /* NOTHING */; if(ptr[0] != '\0') @@ -572,6 +578,7 @@ cmd = (mp_cmd_t*)malloc(sizeof(mp_cmd_t)); cmd->id = cmd_def->id; cmd->name = strdup(cmd_def->name); + cmd->pausing = pausing; ptr = str; diff -r 1d971c4b0412 -r 28a6f0847c58 input/input.h --- a/input/input.h Sat Nov 20 10:48:11 2004 +0000 +++ b/input/input.h Sat Nov 20 10:51:13 2004 +0000 @@ -139,6 +139,7 @@ char* name; int nargs; mp_cmd_arg_t args[MP_CMD_MAX_ARGS]; + int pausing; } mp_cmd_t; diff -r 1d971c4b0412 -r 28a6f0847c58 mplayer.c --- a/mplayer.c Sat Nov 20 10:48:11 2004 +0000 +++ b/mplayer.c Sat Nov 20 10:51:13 2004 +0000 @@ -2749,7 +2749,7 @@ } break; case MP_CMD_FRAME_STEP : case MP_CMD_PAUSE : { - osd_function=OSD_PAUSE; + cmd->pausing = 1; brk_cmd = 1; } break; case MP_CMD_QUIT : { @@ -3664,6 +3664,8 @@ mp_msg(MSGT_CPLAYER, MSGL_V, "Received unknown cmd %s\n",cmd->name); } } + if (cmd->pausing) + osd_function = OSD_PAUSE; mp_cmd_free(cmd); } }