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
00027
00028
00029
00030 #ifndef TAGLIB_WVFILE_H
00031 #define TAGLIB_WVFILE_H
00032
00033 #include "tfile.h"
00034 #include "taglib_export.h"
00035 #include "wavpackproperties.h"
00036
00037 namespace TagLib {
00038
00039 class Tag;
00040
00041 namespace ID3v1 { class Tag; }
00042 namespace APE { class Tag; }
00043
00045
00053 namespace WavPack {
00054
00056
00064 class TAGLIB_EXPORT File : public TagLib::File
00065 {
00066 public:
00071 enum TagTypes {
00073 NoTags = 0x0000,
00075 ID3v1 = 0x0001,
00077 APE = 0x0002,
00079 AllTags = 0xffff
00080 };
00081
00087 File(FileName file, bool readProperties = true,
00088 Properties::ReadStyle propertiesStyle = Properties::Average);
00089
00098 File(IOStream *stream, bool readProperties = true,
00099 Properties::ReadStyle propertiesStyle = Properties::Average);
00100
00104 virtual ~File();
00105
00110 virtual TagLib::Tag *tag() const;
00111
00117 PropertyMap properties() const;
00118
00119 void removeUnsupportedProperties(const StringList &properties);
00120
00126 PropertyMap setProperties(const PropertyMap&);
00127
00132 virtual Properties *audioProperties() const;
00133
00137 virtual bool save();
00138
00156 ID3v1::Tag *ID3v1Tag(bool create = false);
00157
00175 APE::Tag *APETag(bool create = false);
00176
00185 void strip(int tags = AllTags);
00186
00192 bool hasID3v1Tag() const;
00193
00199 bool hasAPETag() const;
00200
00201 private:
00202 File(const File &);
00203 File &operator=(const File &);
00204
00205 void read(bool readProperties, Properties::ReadStyle propertiesStyle);
00206 void scan();
00207 long findID3v1();
00208 long findAPE();
00209
00210 class FilePrivate;
00211 FilePrivate *d;
00212 };
00213 }
00214 }
00215
00216 #endif