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 PropertyMap properties()
const;
60 void removeUnsupportedProperties(
const StringList &unsupported);
62 virtual String title()
const;
63 virtual String artist()
const;
64 virtual String album()
const;
65 virtual String comment()
const;
66 virtual String
genre()
const;
67 virtual unsigned int year()
const;
68 virtual unsigned int track()
const;
70 virtual void setTitle(
const String &s);
71 virtual void setArtist(
const String &s);
72 virtual void setAlbum(
const String &s);
73 virtual void setComment(
const String &s);
74 virtual void setGenre(
const String &s);
75 virtual void setYear(
unsigned int i);
76 virtual void setTrack(
unsigned int i);
77 virtual bool isEmpty()
const;
79 template <
class T> T *access(
int index,
bool create)
81 if(!create || tag(index))
82 return static_cast<T *>(tag(index));
85 return static_cast<T *>(tag(index));
89 TagUnion(
const Tag &);
90 TagUnion &operator=(
const Tag &);
92 class TagUnionPrivate;
String TAGLIB_EXPORT genre(int index)
A namespace for all TagLib related classes and functions.
Definition: apefile.h:41