diff options
author | arpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2003-01-11 21:01:48 +0000 |
---|---|---|
committer | arpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2003-01-11 21:01:48 +0000 |
commit | 60fe584e0815a8827d4f3cc4f9a17af3dfc54d96 (patch) | |
tree | 43836eb10fa400a58b7a34e289a15c8af8315e9d /playtreeparser.c | |
parent | 05f84f844ea028549d26573f149b4f092f762c49 (diff) | |
download | mpv-60fe584e0815a8827d4f3cc4f9a17af3dfc54d96.tar.bz2 mpv-60fe584e0815a8827d4f3cc4f9a17af3dfc54d96.tar.xz |
This patch adds support for some silly ini-style-playlist-file-format ...
It starts with [Reference] and entries are:
Ref<n>=<url>
patch by Fabian Franz <FabianFranz@gmx.de>
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@8898 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'playtreeparser.c')
-rw-r--r-- | playtreeparser.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/playtreeparser.c b/playtreeparser.c index 64d30e3478..44524f5a3f 100644 --- a/playtreeparser.c +++ b/playtreeparser.c @@ -328,6 +328,50 @@ parse_pls(play_tree_parser_t* p) { return entry; } +/* + Reference Ini-Format: Each entry is assumed a reference + */ +play_tree_t* +parse_ref_ini(play_tree_parser_t* p) { + char *line,*v; + play_tree_t *list = NULL, *entry = NULL; + + mp_msg(MSGT_PLAYTREE,MSGL_V,"Trying reference-ini playlist...\n"); + line = play_tree_parser_get_line(p); + strstrip(line); + if(strcasecmp(line,"[Reference]")) + return NULL; + mp_msg(MSGT_PLAYTREE,MSGL_V,"Detected reference-ini playlist format\n"); + play_tree_parser_stop_keeping(p); + line = play_tree_parser_get_line(p); + if(!line) + return NULL; + while(line) { + strstrip(line); + if(strncasecmp(line,"Ref",3) == 0) { + v = pls_entry_get_value(line+3); + if(!v) + mp_msg(MSGT_PLAYTREE,MSGL_ERR,"No value in entry %s\n",line); + else + { + mp_msg(MSGT_PLAYTREE,MSGL_DBG2,"Adding entry %s\n",v); + entry = play_tree_new(); + play_tree_add_file(entry,v); + if(list) + play_tree_append_entry(list,entry); + else + list = entry; + } + } + line = play_tree_parser_get_line(p); + } + + if(!list) return NULL; + entry = play_tree_new(); + play_tree_set_child(entry,list); + return entry; +} + play_tree_t* parse_m3u(play_tree_parser_t* p) { char* line; @@ -531,6 +575,10 @@ play_tree_parser_get_play_tree(play_tree_parser_t* p) { tree = parse_m3u(p); if(tree) break; play_tree_parser_reset(p); + + tree = parse_ref_ini(p); + if(tree) break; + play_tree_parser_reset(p); // Here come the others formats ( textplain must stay the last one ) tree = parse_textplain(p); |