diff options
Diffstat (limited to 'src/cue/CueParser.hxx')
-rw-r--r-- | src/cue/CueParser.hxx | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/src/cue/CueParser.hxx b/src/cue/CueParser.hxx index abcceaa2e..9a32a33c4 100644 --- a/src/cue/CueParser.hxx +++ b/src/cue/CueParser.hxx @@ -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", |