[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