LMMS
Loading...
Searching...
No Matches
M3u_Playlist.h
Go to the documentation of this file.
1// M3U playlist file parser, with support for subtrack information
2
3// Game_Music_Emu https://bitbucket.org/mpyne/game-music-emu/
4#ifndef M3U_PLAYLIST_H
5#define M3U_PLAYLIST_H
6
7#include "blargg_common.h"
8#include "Data_Reader.h"
9
11public:
12 // Load playlist data
13 blargg_err_t load( const char* path );
14 blargg_err_t load( Data_Reader& in );
15 blargg_err_t load( void const* data, long size );
16
17 // Line number of first parse error, 0 if no error. Any lines with parse
18 // errors are ignored.
19 int first_error() const { return first_error_; }
20
21 struct info_t
22 {
23 const char* title;
24 const char* composer;
25 const char* engineer;
26 const char* ripping;
27 const char* tagging;
28 };
29 info_t const& info() const { return info_; }
30
31 struct entry_t
32 {
33 const char* file; // filename without stupid ::TYPE suffix
34 const char* type; // if filename has ::TYPE suffix, this will be "TYPE". "" if none.
35 const char* name;
36 bool decimal_track; // true if track was specified in hex
37 // integers are -1 if not present
38 int track; // 1-based
39 int length; // seconds
40 int intro;
41 int loop;
42 int fade;
43 int repeat; // count
44 };
45 entry_t const& operator [] ( int i ) const { return entries [i]; }
46 int size() const { return entries.size(); }
47
48 void clear();
49
50private:
51 blargg_vector<entry_t> entries;
52 blargg_vector<char> data;
55
56 blargg_err_t parse();
57 blargg_err_t parse_();
58};
59
61{
62 first_error_ = 0;
63 entries.clear();
64 data.clear();
65}
66
67#endif
Definition Data_Reader.h:10
Definition M3u_Playlist.h:10
entry_t const & operator[](int i) const
Definition M3u_Playlist.h:45
int size() const
Definition M3u_Playlist.h:46
info_t info_
Definition M3u_Playlist.h:54
void clear()
Definition M3u_Playlist.h:60
blargg_err_t parse()
Definition M3u_Playlist.cpp:396
blargg_err_t load(const char *path)
Definition M3u_Playlist.cpp:414
blargg_vector< entry_t > entries
Definition M3u_Playlist.h:51
info_t const & info() const
Definition M3u_Playlist.h:29
int first_error_
Definition M3u_Playlist.h:53
blargg_err_t parse_()
Definition M3u_Playlist.cpp:336
int first_error() const
Definition M3u_Playlist.h:19
blargg_vector< char > data
Definition M3u_Playlist.h:52
register unsigned i
Definition inflate.c:1575
float in
Definition lilv_test.c:1460
Definition M3u_Playlist.h:32
int loop
Definition M3u_Playlist.h:41
int length
Definition M3u_Playlist.h:39
int fade
Definition M3u_Playlist.h:42
int track
Definition M3u_Playlist.h:38
const char * file
Definition M3u_Playlist.h:33
int repeat
Definition M3u_Playlist.h:43
const char * type
Definition M3u_Playlist.h:34
bool decimal_track
Definition M3u_Playlist.h:36
int intro
Definition M3u_Playlist.h:40
const char * name
Definition M3u_Playlist.h:35
Definition M3u_Playlist.h:22
const char * tagging
Definition M3u_Playlist.h:27
const char * composer
Definition M3u_Playlist.h:24
const char * engineer
Definition M3u_Playlist.h:25
const char * ripping
Definition M3u_Playlist.h:26
const char * title
Definition M3u_Playlist.h:23