changeset 27633:6a7cdd00599f

Add an experimental pausing_keep_force slave mode command prefix
author reimar
date Thu, 25 Sep 2008 17:40:33 +0000
parents 8cc7db468b6b
children 9d0094f6cdf6
files DOCS/tech/slave.txt input/input.c mplayer.c
diffstat 3 files changed, 9 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/DOCS/tech/slave.txt	Thu Sep 25 17:11:01 2008 +0000
+++ b/DOCS/tech/slave.txt	Thu Sep 25 17:40:33 2008 +0000
@@ -26,6 +26,10 @@
 it was already in paused mode. "pausing_toggle " tells MPlayer to do so
 only if it was not already in paused mode. Please note that "as soon as
 possible" can be before the command is fully executed.
+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.
 
 
 Available commands ('mplayer -input cmdlist' will print a list):
--- a/input/input.c	Thu Sep 25 17:11:01 2008 +0000
+++ b/input/input.c	Thu Sep 25 17:40:33 2008 +0000
@@ -771,6 +771,9 @@
   } else if (strncmp(str, "pausing_toggle ", 15) == 0) {
     pausing = 3;
     str = &str[15];
+  } else if (strncmp(str, "pausing_keep_force ", 19) == 0) {
+    pausing = 4;
+    str = &str[19];
   }
 
   for(ptr = str ; ptr[0] != '\0'  && ptr[0] != '\t' && ptr[0] != ' ' ; ptr++)
--- a/mplayer.c	Thu Sep 25 17:11:01 2008 +0000
+++ b/mplayer.c	Thu Sep 25 17:40:33 2008 +0000
@@ -2353,9 +2353,10 @@
 	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->id == MP_CMD_SET_MOUSE_POS || cmd->pausing == 4) {
 	if (cmd) {
 	  cmd = mp_input_get_cmd(0,1,0);
+	  run_command(mpctx, cmd);
 	  mp_cmd_free(cmd);
 	  continue;
 	}