id3v1tag.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef TAGLIB_ID3V1TAG_H
00023 #define TAGLIB_ID3V1TAG_H
00024
00025 #include <tag.h>
00026 #include <tbytevector.h>
00027
00028 namespace TagLib {
00029
00030 class File;
00031
00033
00034 namespace ID3v1 {
00035
00037
00055 class StringHandler
00056 {
00057 public:
00062 virtual String parse(const ByteVector &data) const;
00063
00072 virtual ByteVector render(const String &s) const;
00073 };
00074
00076
00095 class Tag : public TagLib::Tag
00096 {
00097 public:
00101 Tag();
00102
00107 Tag(File *file, long tagOffset);
00108
00112 virtual ~Tag();
00113
00118 ByteVector render() const;
00119
00124 static ByteVector fileIdentifier();
00125
00126
00127
00128 virtual String title() const;
00129 virtual String artist() const;
00130 virtual String album() const;
00131 virtual String comment() const;
00132 virtual String genre() const;
00133 virtual uint year() const;
00134 virtual uint track() const;
00135
00136 virtual void setTitle(const String &s);
00137 virtual void setArtist(const String &s);
00138 virtual void setAlbum(const String &s);
00139 virtual void setComment(const String &s);
00140 virtual void setGenre(const String &s);
00141 virtual void setYear(uint i);
00142 virtual void setTrack(uint i);
00143
00150 static void setStringHandler(const StringHandler *handler);
00151
00152 protected:
00156 void read();
00160 void parse(const ByteVector &data);
00161
00162 private:
00163 Tag(const Tag &);
00164 Tag &operator=(const Tag &);
00165
00166 class TagPrivate;
00167 TagPrivate *d;
00168 };
00169 }
00170 }
00171
00172 #endif