26 #ifndef TAGLIB_TAGUNION_H 27 #define TAGLIB_TAGUNION_H 31 #ifndef DO_NOT_DOCUMENT 39 class TagUnion :
public Tag 43 enum AccessType { Read, Write };
50 TagUnion(
Tag *first = 0,
Tag *second = 0,
Tag *third = 0);
54 Tag *operator[](
int index)
const;
55 Tag *tag(
int index)
const;
57 void set(
int index,
Tag *tag);
59 virtual String title()
const;
60 virtual String artist()
const;
61 virtual String album()
const;
62 virtual String comment()
const;
63 virtual String
genre()
const;
64 virtual uint year()
const;
65 virtual uint track()
const;
67 virtual void setTitle(
const String &s);
68 virtual void setArtist(
const String &s);
69 virtual void setAlbum(
const String &s);
70 virtual void setComment(
const String &s);
71 virtual void setGenre(
const String &s);
72 virtual void setYear(
uint i);
73 virtual void setTrack(
uint i);
74 virtual bool isEmpty()
const;
76 template <
class T> T *access(
int index,
bool create)
78 if(!create || tag(index))
79 return static_cast<T *
>(tag(index));
82 return static_cast<T *
>(tag(index));
86 TagUnion(
const Tag &);
87 TagUnion &operator=(
const Tag &);
89 class TagUnionPrivate;
unsigned int uint
Definition: taglib.h:66
String TAGLIB_EXPORT genre(int index)
A namespace for all TagLib related classes and functions.
Definition: apefile.h:41