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
00023
00024
00025
00026 #ifndef TAGLIB_WAVFILE_H
00027 #define TAGLIB_WAVFILE_H
00028
00029 #include "rifffile.h"
00030 #include "id3v2tag.h"
00031 #include "infotag.h"
00032 #include "wavproperties.h"
00033
00034 namespace TagLib {
00035
00036 namespace RIFF {
00037
00039
00047 namespace WAV {
00048
00050
00058 class TAGLIB_EXPORT File : public TagLib::RIFF::File
00059 {
00060 public:
00061 enum TagTypes {
00063 NoTags = 0x0000,
00065 ID3v2 = 0x0001,
00067 Info = 0x0002,
00069 AllTags = 0xffff
00070 };
00071
00078 File(FileName file, bool readProperties = true,
00079 Properties::ReadStyle propertiesStyle = Properties::Average);
00080
00090 File(IOStream *stream, bool readProperties = true,
00091 Properties::ReadStyle propertiesStyle = Properties::Average);
00092
00096 virtual ~File();
00097
00104 ID3v2::Tag *tag() const;
00105
00115 ID3v2::Tag *ID3v2Tag() const;
00116
00126 Info::Tag *InfoTag() const;
00127
00132 PropertyMap properties() const;
00133
00134 void removeUnsupportedProperties(const StringList &properties);
00135
00140 PropertyMap setProperties(const PropertyMap &);
00141
00146 virtual Properties *audioProperties() const;
00147
00151 virtual bool save();
00152
00153 bool save(TagTypes tags, bool stripOthers = true, int id3v2Version = 4);
00154
00160 bool hasID3v2Tag() const;
00161
00167 bool hasInfoTag() const;
00168
00169 private:
00170 File(const File &);
00171 File &operator=(const File &);
00172
00173 void read(bool readProperties);
00174
00175 void strip(TagTypes tags);
00176
00180 uint findInfoTagChunk();
00181
00182 friend class Properties;
00183
00184 class FilePrivate;
00185 FilePrivate *d;
00186 };
00187 }
00188 }
00189 }
00190
00191 #endif