diff options
-rw-r--r-- | mplayer.c | 1 | ||||
-rw-r--r-- | playtree.c | 17 | ||||
-rw-r--r-- | playtree.h | 3 |
3 files changed, 21 insertions, 0 deletions
@@ -937,6 +937,7 @@ play_dvd: goto goto_next_file; } play_tree_insert_entry(playtree_iter->tree,entry); + play_tree_set_params_from(entry,playtree_iter->tree); entry = playtree_iter->tree; if(play_tree_iter_step(playtree_iter,1,0) != PLAY_TREE_ITER_ENTRY) { eof = PT_NEXT_ENTRY; diff --git a/playtree.c b/playtree.c index c838cc1223..f9dc4f2d74 100644 --- a/playtree.c +++ b/playtree.c @@ -382,6 +382,23 @@ play_tree_unset_param(play_tree_t* pt, char* name) { return 1; } +void +play_tree_set_params_from(play_tree_t* dest,play_tree_t* src) { + int i; + +#ifdef MP_DEBUG + assert(dest != NULL); + assert(src != NULL); +#endif + + if(!src->params) + return; + + for(i = 0; src->params[i].name != NULL ; i++) + play_tree_set_param(dest,src->params[i].name,src->params[i].value); + +} + static void play_tree_iter_push_params(play_tree_iter_t* iter) { int n; diff --git a/playtree.h b/playtree.h index c1475a9877..aaf0eefda8 100644 --- a/playtree.h +++ b/playtree.h @@ -117,6 +117,9 @@ play_tree_set_param(play_tree_t* pt, char* name, char* val); int play_tree_unset_param(play_tree_t* pt, char* name); +// Set all paramter of source in dest +void +play_tree_set_params_from(play_tree_t* dest,play_tree_t* src); /// Iterator |