diff options
author | albeu <albeu@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2002-10-22 14:32:17 +0000 |
---|---|---|
committer | albeu <albeu@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2002-10-22 14:32:17 +0000 |
commit | 46e4e38d5b6f68178f09ee38802620ebf677dc1d (patch) | |
tree | e649b6ce14fa56f2db0d4fa872e0f9cbfb823d75 /input | |
parent | 3d67e51769f00b785e01dc7c4de119262b5d2e21 (diff) | |
download | mpv-46e4e38d5b6f68178f09ee38802620ebf677dc1d.tar.bz2 mpv-46e4e38d5b6f68178f09ee38802620ebf677dc1d.tar.xz |
New feature to let mplayer read commands from a file. Mostly
useful with a fifo. Turn it one with -input file=/path/.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@7841 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'input')
-rw-r--r-- | input/input.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/input/input.c b/input/input.c index 47671cb46b..95de21775f 100644 --- a/input/input.c +++ b/input/input.c @@ -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* config_file = "input.conf"; 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 @@ static config_t input_conf[] = { { "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} }; @@ -1282,6 +1287,19 @@ mp_input_init(void) { } #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)); + } + } + } void |