From eb7b51669440c834df84c6a0183ebb0814363b3f Mon Sep 17 00:00:00 2001 From: ulion Date: Tue, 11 Dec 2007 08:11:21 +0000 Subject: 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 --- libmenu/menu.c | 2 +- libmenu/menu_cmdlist.c | 14 ++++---------- libmenu/menu_filesel.c | 13 +++++-------- 3 files changed, 10 insertions(+), 19 deletions(-) (limited to 'libmenu') diff --git a/libmenu/menu.c b/libmenu/menu.c index 8b49334e17..867fd3cfa2 100644 --- a/libmenu/menu.c +++ b/libmenu/menu.c @@ -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; } } diff --git a/libmenu/menu_cmdlist.c b/libmenu/menu_cmdlist.c index 12e66a0a87..8abb15269e 100644 --- a/libmenu/menu_cmdlist.c +++ b/libmenu/menu_cmdlist.c @@ -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: diff --git a/libmenu/menu_filesel.c b/libmenu/menu_filesel.c index 04e19c9019..96725f9c6d 100644 --- a/libmenu/menu_filesel.c +++ b/libmenu/menu_filesel.c @@ -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; -- cgit v1.2.3