--- mplayer.c.orig 2004-11-17 11:34:08.000000000 +0800 +++ mplayer.c 2004-11-17 12:25:47.997896255 +0800 @@ -1445,8 +1445,48 @@ } } } - } + } else #endif +// =================== SLAVE idle loop (STOP state) ========================= + { + while (slave_mode && eof) { + mp_cmd_t* cmd; + int brk_cmd = 0; + while( !brk_cmd && (cmd = mp_input_get_cmd(100,0,0)) != NULL) { + switch(cmd->id) { + case MP_CMD_LOADFILE : { + play_tree_t * entry = play_tree_new(); + play_tree_add_file( entry,cmd->args[0].v.s ); + if ( playtree ) play_tree_free_list( playtree->child,1 ); + else playtree=play_tree_new(); + play_tree_set_child( playtree,entry ); + if(playtree) + { + playtree_iter = play_tree_iter_new(playtree,mconfig); + if(playtree_iter) + { + if(play_tree_iter_step(playtree_iter,0,0) != PLAY_TREE_ITER_ENTRY) + { + play_tree_iter_free(playtree_iter); + playtree_iter = NULL; + } + filename = play_tree_iter_get_file(playtree_iter,1); + } + } + brk_cmd = 1; + eof = 0; + } break; + case MP_CMD_QUIT : { + exit_player_with_rc(MSGTR_Exit_quit, (cmd->nargs > 0)? cmd->args[0].v.i : 0); + } break; + default : { + mp_msg(MSGT_CPLAYER, MSGL_V, "Unhandled cmd %s\n", cmd->name); + } + mp_cmd_free(cmd); + } + } + } + } //--------------------------------------------------------------------------- if(filename) mp_msg(MSGT_CPLAYER,MSGL_INFO,MSGTR_Playing, filename); @@ -4138,6 +4178,9 @@ eof = 0; goto play_next_file; } +else if (slave_mode) { + goto play_next_file; +} exit_player_with_rc(MSGTR_Exit_eof, 0);