mirror of
https://github.com/mpv-player/mpv
synced 2025-02-20 23:07:02 +00:00
Add new function for parsing and queueing multi-commands separated by \n or \r.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25347 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
149fd4dac7
commit
38473dd468
@ -21,6 +21,7 @@
|
||||
#include "osdep/getch2.h"
|
||||
#include "osdep/keycodes.h"
|
||||
#include "osdep/timer.h"
|
||||
#include "avstring.h"
|
||||
#include "mp_msg.h"
|
||||
#include "help_mp.h"
|
||||
#include "m_config.h"
|
||||
@ -707,6 +708,28 @@ void mp_input_rm_event_fd(int fd)
|
||||
mp_input_rm_key_fd(fd);
|
||||
}
|
||||
|
||||
int mp_input_parse_and_queue_cmds(const char *str) {
|
||||
int cmd_num = 0;
|
||||
|
||||
while (*str == '\n' || *str == '\r' || *str == ' ')
|
||||
++str;
|
||||
while (*str) {
|
||||
mp_cmd_t *cmd;
|
||||
size_t len = strcspn(str, "\r\n");
|
||||
char *cmdbuf = malloc(len+1);
|
||||
av_strlcpy(cmdbuf, str, len+1);
|
||||
cmd = mp_input_parse_cmd(cmdbuf);
|
||||
if (cmd) {
|
||||
mp_input_queue_cmd(cmd);
|
||||
++cmd_num;
|
||||
}
|
||||
str += len;
|
||||
while (*str == '\n' || *str == '\r' || *str == ' ')
|
||||
++str;
|
||||
free(cmdbuf);
|
||||
}
|
||||
return cmd_num;
|
||||
}
|
||||
|
||||
mp_cmd_t*
|
||||
mp_input_parse_cmd(char* str) {
|
||||
|
@ -255,6 +255,12 @@ mp_input_get_cmd(int time, int paused, int peek_only);
|
||||
mp_cmd_t*
|
||||
mp_input_parse_cmd(char* str);
|
||||
|
||||
/**
|
||||
* Parse and queue commands separated by '\n'.
|
||||
* @return count of commands new queued.
|
||||
*/
|
||||
int mp_input_parse_and_queue_cmds(const char *str);
|
||||
|
||||
/// These filters allow you to process the command before MPlayer.
|
||||
/// If a filter returns a true value mp_input_get_cmd will return NULL.
|
||||
void
|
||||
|
Loading…
Reference in New Issue
Block a user