mirror of
https://github.com/mpv-player/mpv
synced 2025-01-09 08:29:36 +00:00
Support to run multiple mplayer commands set in menu.conf
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25348 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
38473dd468
commit
eb7b516694
@ -275,7 +275,7 @@ int menu_dflt_read_key(menu_t* menu,int cmd) {
|
||||
for (i = 0; i < bindings->binding_num; ++i) {
|
||||
if (bindings->bindings[i].key == cmd) {
|
||||
if (bindings->bindings[i].cmd)
|
||||
mp_input_queue_cmd(mp_input_parse_cmd(bindings->bindings[i].cmd));
|
||||
mp_input_parse_and_queue_cmds(bindings->bindings[i].cmd);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
@ -58,32 +58,26 @@ static void read_cmd(menu_t* menu,int cmd) {
|
||||
switch(cmd) {
|
||||
case MENU_CMD_RIGHT:
|
||||
if(mpriv->p.current->right) {
|
||||
mp_cmd_t* c = mp_input_parse_cmd(mpriv->p.current->right);
|
||||
if(c) mp_input_queue_cmd(c);
|
||||
mp_input_parse_and_queue_cmds(mpriv->p.current->right);
|
||||
break;
|
||||
} // fallback on ok if right is not defined
|
||||
case MENU_CMD_OK: {
|
||||
if(mpriv->p.current->ok) {
|
||||
mp_cmd_t* c = mp_input_parse_cmd(mpriv->p.current->ok);
|
||||
if(c)
|
||||
if (mp_input_parse_and_queue_cmds(mpriv->p.current->ok))
|
||||
{
|
||||
if (mpriv->auto_close)
|
||||
mp_input_queue_cmd (mp_input_parse_cmd ("menu hide"));
|
||||
mp_input_queue_cmd(c);
|
||||
}
|
||||
}
|
||||
} break;
|
||||
case MENU_CMD_LEFT:
|
||||
if(mpriv->p.current->left) {
|
||||
mp_cmd_t* c = mp_input_parse_cmd(mpriv->p.current->left);
|
||||
if(c) mp_input_queue_cmd(c);
|
||||
mp_input_parse_and_queue_cmds(mpriv->p.current->left);
|
||||
break;
|
||||
} // fallback on cancel if left is not defined
|
||||
case MENU_CMD_CANCEL:
|
||||
if(mpriv->p.current->cancel) {
|
||||
mp_cmd_t* c = mp_input_parse_cmd(mpriv->p.current->cancel);
|
||||
if(c)
|
||||
mp_input_queue_cmd(c);
|
||||
mp_input_parse_and_queue_cmds(mpriv->p.current->cancel);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
|
@ -355,21 +355,18 @@ static void read_cmd(menu_t* menu,int cmd) {
|
||||
}
|
||||
free(p);
|
||||
} else { // File and directory dealt with action string.
|
||||
mp_cmd_t* c;
|
||||
int fname_len = strlen(mpriv->dir) + strlen(mpriv->p.current->p.txt) + 1;
|
||||
char filename[fname_len];
|
||||
char *str;
|
||||
char *action = mpriv->p.current->d ? mpriv->dir_action:mpriv->file_action;
|
||||
sprintf(filename,"%s%s",mpriv->dir,mpriv->p.current->p.txt);
|
||||
str = replace_path(action, filename);
|
||||
c = mp_input_parse_cmd(str);
|
||||
if (mp_input_parse_and_queue_cmds(str)) {
|
||||
if(mpriv->auto_close)
|
||||
menu->cl = 1;
|
||||
}
|
||||
if (str != action)
|
||||
free(str);
|
||||
if(c) {
|
||||
mp_input_queue_cmd(c);
|
||||
if(mpriv->auto_close)
|
||||
menu->cl = 1;
|
||||
}
|
||||
}
|
||||
} break;
|
||||
case MENU_CMD_ACTION: {
|
||||
@ -378,7 +375,7 @@ static void read_cmd(menu_t* menu,int cmd) {
|
||||
char *str;
|
||||
sprintf(filename,"%s%s",mpriv->dir,mpriv->p.current->p.txt);
|
||||
str = replace_path(action, filename);
|
||||
mp_input_queue_cmd(mp_input_parse_cmd(str));
|
||||
mp_input_parse_and_queue_cmds(str);
|
||||
if(str != action)
|
||||
free(str);
|
||||
} break;
|
||||
|
Loading…
Reference in New Issue
Block a user