00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef TAGLIB_WMATAG_H
00023 #define TAGLIB_WMATAG_H
00024
00025 #include <tmap.h>
00026 #include <tag.h>
00027 #include "wmafile.h"
00028 #include "wmaattribute.h"
00029
00030 namespace TagLib {
00031
00032 namespace WMA {
00033
00034 typedef Map<const ByteVector, Attribute> AttributeMap;
00035
00036 class Tag : public TagLib::Tag {
00037
00038 friend class File;
00039
00040 public:
00041
00042 Tag();
00043
00044 virtual ~Tag();
00045
00049 virtual String title() const;
00050
00054 virtual String artist() const;
00055
00060 virtual String album() const;
00061
00065 virtual String comment() const;
00066
00071 virtual String genre() const;
00072
00076 virtual String rating() const;
00077
00082 virtual String copyright() const;
00083
00087 virtual uint year() const;
00088
00093 virtual uint track() const;
00094
00098 virtual void setTitle(const String &s);
00099
00103 virtual void setArtist(const String &s);
00104
00109 virtual void setAlbum(const String &s);
00110
00114 virtual void setComment(const String &s);
00115
00119 virtual void setRating(const String &s);
00120
00124 virtual void setCopyright(const String &s);
00125
00129 virtual void setGenre(const String &s);
00130
00134 virtual void setYear(uint i);
00135
00139 virtual void setTrack(uint i);
00140
00146 virtual bool isEmpty() const;
00147
00154 static void duplicate(const Tag *source, Tag *target, bool overwrite = true);
00155
00165 const AttributeMap &attributeMap() const;
00166
00170 void removeItem(const ByteVector &key);
00171
00172 void setAttribute(const ByteVector &key, const String &value);
00173
00178 void setAttribute(const ByteVector &key, const Attribute &attribute);
00179
00180 private:
00181
00182 class TagPrivate;
00183 TagPrivate *d;
00184
00185 };
00186 }
00187 }
00188 #endif