mpcfile.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
00023
00024
00025
00026 #ifndef TAGLIB_MPCFILE_H
00027 #define TAGLIB_MPCFILE_H
00028
00029 #include "taglib_export.h"
00030 #include "tfile.h"
00031
00032 #include "mpcproperties.h"
00033
00034 namespace TagLib {
00035
00036 class Tag;
00037
00038 namespace ID3v1 { class Tag; }
00039 namespace APE { class Tag; }
00040
00042
00051 namespace MPC {
00052
00054
00063 class TAGLIB_EXPORT File : public TagLib::File
00064 {
00065 public:
00070 enum TagTypes {
00072 NoTags = 0x0000,
00074 ID3v1 = 0x0001,
00076 ID3v2 = 0x0002,
00078 APE = 0x0004,
00080 AllTags = 0xffff
00081 };
00082
00088 File(FileName file, bool readProperties = true,
00089 Properties::ReadStyle propertiesStyle = Properties::Average);
00090
00094 virtual ~File();
00095
00100 virtual TagLib::Tag *tag() const;
00101
00106 virtual Properties *audioProperties() const;
00107
00111 virtual bool save();
00112
00125 ID3v1::Tag *ID3v1Tag(bool create = false);
00126
00139 APE::Tag *APETag(bool create = false);
00140
00150 void strip(int tags = AllTags);
00151
00156 void remove(int tags = AllTags);
00157
00158
00159 private:
00160 File(const File &);
00161 File &operator=(const File &);
00162
00163 void read(bool readProperties, Properties::ReadStyle propertiesStyle);
00164 void scan();
00165 long findAPE();
00166 long findID3v1();
00167 long findID3v2();
00168
00169 class FilePrivate;
00170 FilePrivate *d;
00171 };
00172 }
00173 }
00174
00175 #endif