Commit 3cc7be0f authored by Max Kellermann's avatar Max Kellermann

playlist/cue: add constructor/destructor

parent 6728b8c1
...@@ -42,18 +42,23 @@ struct CuePlaylist { ...@@ -42,18 +42,23 @@ struct CuePlaylist {
struct input_stream *is; struct input_stream *is;
struct text_input_stream *tis; struct text_input_stream *tis;
struct cue_parser *parser; struct cue_parser *parser;
CuePlaylist(struct input_stream *_is)
:is(_is), tis(text_input_stream_new(is)),
parser(cue_parser_new()) {
playlist_provider_init(&base, &cue_playlist_plugin);
}
~CuePlaylist() {
cue_parser_free(parser);
text_input_stream_free(tis);
}
}; };
static struct playlist_provider * static struct playlist_provider *
cue_playlist_open_stream(struct input_stream *is) cue_playlist_open_stream(struct input_stream *is)
{ {
CuePlaylist *playlist = g_new(CuePlaylist, 1); CuePlaylist *playlist = new CuePlaylist(is);
playlist_provider_init(&playlist->base, &cue_playlist_plugin);
playlist->is = is;
playlist->tis = text_input_stream_new(is);
playlist->parser = cue_parser_new();
return &playlist->base; return &playlist->base;
} }
...@@ -61,10 +66,7 @@ static void ...@@ -61,10 +66,7 @@ static void
cue_playlist_close(struct playlist_provider *_playlist) cue_playlist_close(struct playlist_provider *_playlist)
{ {
CuePlaylist *playlist = (CuePlaylist *)_playlist; CuePlaylist *playlist = (CuePlaylist *)_playlist;
delete playlist;
cue_parser_free(playlist->parser);
text_input_stream_free(playlist->tis);
g_free(playlist);
} }
static struct song * static struct song *
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment