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
00124 PropertyMap setProperties(const PropertyMap&);
00125
00130 virtual Properties *audioProperties() const;
00131
00135 virtual bool save();
00136
00149 ID3v1::Tag *ID3v1Tag(bool create = false);
00150
00162 APE::Tag *APETag(bool create = false);
00163
00172 void strip(int tags = AllTags);
00173
00174 private:
00175 File(const File &);
00176 File &operator=(const File &);
00177
00178 void read(bool readProperties, Properties::ReadStyle propertiesStyle);
00179 void scan();
00180 long findID3v1();
00181 long findAPE();
00182
00183 class FilePrivate;
00184 FilePrivate *d;
00185 };
00186 }
00187 }
00188
00189 #endif