# HG changeset patch # User reimar # Date 1236432355 0 # Node ID 6f5824a39ada33fd6d717699aede73353a1de8e3 # Parent 88ac68461aae382ce0140877b839dc402255f783 Make pausing_keep_force the default for the set_mouse_pos and key_down_event - different behaviour is unlikely to make sense but it is better to handle this in input.c instead of adding special cases to mplayer.c and being able to override the default behaviour at least should not hurt. diff -r 88ac68461aae -r 6f5824a39ada DOCS/tech/slave.txt --- a/DOCS/tech/slave.txt Sat Mar 07 12:50:52 2009 +0000 +++ b/DOCS/tech/slave.txt Sat Mar 07 13:25:55 2009 +0000 @@ -30,6 +30,8 @@ prefix, with which MPlayer will not exit the pause loop at all. Like this you can avoid the "frame stepping" effect of "pausing_keep " but most commands will either not work at all or behave in unexpected ways. +For "set_mouse_pos" and "key_down_event", "pausing_keep_force" is the default +since other values do not make much sense for them. Available commands ('mplayer -input cmdlist' will print a list): diff -r 88ac68461aae -r 6f5824a39ada input/input.c --- a/input/input.c Sat Mar 07 12:50:52 2009 +0000 +++ b/input/input.c Sat Mar 07 13:25:55 2009 +0000 @@ -767,7 +767,7 @@ mp_cmd_t* mp_input_parse_cmd(char* str) { int i,l; - int pausing = 0; + int pausing = -1; char *ptr,*e; mp_cmd_t *cmd; const mp_cmd_t *cmd_def; @@ -817,6 +817,15 @@ cmd = calloc(1, sizeof(mp_cmd_t)); cmd->id = cmd_def->id; cmd->name = strdup(cmd_def->name); + if (pausing == -1) { + switch (cmd->id) { + case MP_CMD_KEYDOWN_EVENTS: + case MP_CMD_SET_MOUSE_POS: + pausing = 4; break; + default: + pausing = 0; break; + } + } cmd->pausing = pausing; ptr = str; diff -r 88ac68461aae -r 6f5824a39ada mplayer.c --- a/mplayer.c Sat Mar 07 12:50:52 2009 +0000 +++ b/mplayer.c Sat Mar 07 13:25:55 2009 +0000 @@ -2346,8 +2346,7 @@ if (mpctx->audio_out && mpctx->sh_audio) mpctx->audio_out->pause(); // pause audio, keep data if possible - while ( (cmd = mp_input_get_cmd(20, 1, 1)) == NULL - || cmd->id == MP_CMD_SET_MOUSE_POS || cmd->pausing == 4) { + while ( (cmd = mp_input_get_cmd(20, 1, 1)) == NULL || cmd->pausing == 4) { if (cmd) { cmd = mp_input_get_cmd(0,1,0); run_command(mpctx, cmd);