[Mplayer-cvslog] CVS: main/input input.c,1.48,1.49

Alban Bedel CVS albeu at mplayerhq.hu
Tue Oct 22 16:32:34 CEST 2002


Update of /cvsroot/mplayer/main/input
In directory mail:/var/tmp.root/cvs-serv17937/input

Modified Files:
	input.c 
Log Message:
New feature to let mplayer read commands from a file. Mostly
useful with a fifo. Turn it one with -input file=/path/. 


Index: input.c
===================================================================
RCS file: /cvsroot/mplayer/main/input/input.c,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -r1.48 -r1.49
--- input.c	17 Oct 2002 15:41:20 -0000	1.48
+++ input.c	22 Oct 2002 14:32:17 -0000	1.49
@@ -7,6 +7,7 @@
 #include <errno.h>
 #include <signal.h>
 #include <sys/types.h>
+#include <sys/stat.h>
 #include <sys/time.h>
 #include <fcntl.h>
 #include <ctype.h>
@@ -308,6 +309,9 @@
 
 static char* js_dev = NULL;
 
+static char* in_file = NULL;
+static int in_file_fd = -1;
+
 static int mp_input_print_key_list(config_t* cfg);
 static int mp_input_print_cmd_list(config_t* cfg);
 
@@ -319,6 +323,7 @@
   { "keylist", mp_input_print_key_list, CONF_TYPE_FUNC, CONF_GLOBAL, 0, 0, NULL },
   { "cmdlist", mp_input_print_cmd_list, CONF_TYPE_FUNC, CONF_GLOBAL, 0, 0, NULL },
   { "js-dev", &js_dev, CONF_TYPE_STRING, CONF_GLOBAL, 0, 0, NULL },
+  { "file", &in_file, CONF_TYPE_STRING, CONF_GLOBAL, 0, 0, NULL },
   { NULL, NULL, 0, 0, 0, 0, NULL}
 };
 
@@ -1281,6 +1286,19 @@
       mp_input_add_cmd_fd(fd,1,NULL,(mp_close_func_t)close);
   }
 #endif
+
+  if(in_file) {
+    struct stat st;
+    if(stat(in_file,&st))
+      mp_msg(MSGT_INPUT,MSGL_ERR,"Can't stat %s: %s\n",in_file,strerror(errno));
+    else {
+      in_file_fd = open(in_file,S_ISFIFO(st.st_mode) ? O_RDWR : O_RDONLY);
+      if(in_file_fd >= 0)
+	mp_input_add_cmd_fd(in_file_fd,1,NULL,(mp_close_func_t)close);
+      else
+	mp_msg(MSGT_INPUT,MSGL_ERR,"Can't open %s: %s\n",in_file,strerror(errno));
+    }
+  }
 
 }
 




More information about the MPlayer-cvslog mailing list