Avoid void * arithmetic
[mplayer/glamo.git] / playtreeparser.h
bloba8bcf1dbd713b496830745dd9cd4cc8fd166c82a
2 /// \defgroup PlaytreeParser Playtree parser
3 /// \ingroup Playtree
4 ///
5 /// The playtree parser allows to read various playlist formats. It reads from
6 /// a stream allowing to handle playlists from local files and the network.
7 ///@{
9 /// \file
11 #ifndef __PLAYTREEPARSER_H
12 #define __PLAYTREEPARSER_H
14 struct stream_st;
16 typedef struct play_tree_parser {
17 struct stream_st* stream;
18 char *buffer,*iter,*line;
19 int buffer_size , buffer_end;
20 int deep,keep;
21 } play_tree_parser_t;
23 /// Create a new parser.
24 /** \param stream The stream to read from.
25 * \param deep Parser depth. Some formats allow including other files,
26 * this is used to track the inclusion depth.
27 * \return The new parser.
29 play_tree_parser_t*
30 play_tree_parser_new(struct stream_st* stream,int deep);
32 /// Destroy a parser.
33 void
34 play_tree_parser_free(play_tree_parser_t* p);
36 /// Build a playtree from the playlist opened with the parser.
37 /** \param p The parser.
38 * \param forced If non-zero the playlist file was explicitly
39 * given by the user, allow falling back on
40 * one filename per line playlist.
41 * \return A new playtree or NULL on error.
43 play_tree_t*
44 play_tree_parser_get_play_tree(play_tree_parser_t* p, int forced);
46 /// Wrapper for play_tree_add_basepath (add base path from file).
47 void
48 play_tree_add_bpf(play_tree_t* pt, char* filename);
50 #endif
52 ///@}