summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2009-03-07 13:25:55 +0000
committerreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2009-03-07 13:25:55 +0000
commit062f66bbcaa4ae449aec5068f0fc67d0ced04654 (patch)
tree291022330ded4664598ae129d493fe54faffbb51
parent7397dbcb66b7e2e36120c3c7e5d05f81962a1d2c (diff)
downloadmpv-062f66bbcaa4ae449aec5068f0fc67d0ced04654.tar.bz2
mpv-062f66bbcaa4ae449aec5068f0fc67d0ced04654.tar.xz
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. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28870 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r--DOCS/tech/slave.txt2
-rw-r--r--input/input.c11
-rw-r--r--mplayer.c3
3 files changed, 13 insertions, 3 deletions
diff --git a/DOCS/tech/slave.txt b/DOCS/tech/slave.txt
index 2ad276defd..df23826c3c 100644
--- a/DOCS/tech/slave.txt
+++ b/DOCS/tech/slave.txt
@@ -30,6 +30,8 @@ As a temporary hack, there is also the _experimental_ "pausing_keep_force "
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 --git a/input/input.c b/input/input.c
index dcbeb2b11d..a12dd27958 100644
--- a/input/input.c
+++ b/input/input.c
@@ -767,7 +767,7 @@ int mp_input_parse_and_queue_cmds(const char *str) {
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 @@ mp_input_parse_cmd(char* str) {
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 --git a/mplayer.c b/mplayer.c
index 1b6a35025b..81fc389ae0 100644
--- a/mplayer.c
+++ b/mplayer.c
@@ -2346,8 +2346,7 @@ static void pause_loop(void)
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);