aboutsummaryrefslogtreecommitdiffstats
path: root/src/cue/CueParser.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/cue/CueParser.hxx')
-rw-r--r--src/cue/CueParser.hxx27
1 files changed, 19 insertions, 8 deletions
diff --git a/src/cue/CueParser.hxx b/src/cue/CueParser.hxx
index abcceaa2e..7e040169b 100644
--- a/src/cue/CueParser.hxx
+++ b/src/cue/CueParser.hxx
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2003-2013 The Music Player Daemon Project
+ * Copyright (C) 2003-2014 The Music Player Daemon Project
* http://www.musicpd.org
*
* This program is free software; you can redistribute it and/or modify
@@ -21,11 +21,12 @@
#define MPD_CUE_PARSER_HXX
#include "check.h"
+#include "tag/TagBuilder.hxx"
#include "Compiler.h"
#include <string>
-struct Song;
+class DetachedSong;
struct Tag;
class CueParser {
@@ -56,26 +57,36 @@ class CueParser {
IGNORE_TRACK,
} state;
- Tag *tag;
+ /**
+ * Tags read from the CUE header.
+ */
+ TagBuilder header_tag;
+
+ /**
+ * Tags read for the current song (attribute #current). When
+ * #current gets moved to #previous, TagBuilder::Commit() will
+ * be called.
+ */
+ TagBuilder song_tag;
std::string filename;
/**
* The song currently being edited.
*/
- Song *current;
+ DetachedSong *current;
/**
* The previous song. It is remembered because its end_time
* will be set to the current song's start time.
*/
- Song *previous;
+ DetachedSong *previous;
/**
* A song that is completely finished and can be returned to
* the caller via cue_parser_get().
*/
- Song *finished;
+ DetachedSong *finished;
/**
* Set to true after previous.end_time has been updated to the
@@ -114,11 +125,11 @@ public:
* @return a song object that must be freed by the caller, or NULL if
* no song was finished at this time
*/
- Song *Get();
+ DetachedSong *Get();
private:
gcc_pure
- Tag *GetCurrentTag();
+ TagBuilder *GetCurrentTag();
/**
* Commit the current song. It will be moved to "previous",