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_TRUEAUDIOFILE_H
00031 #define TAGLIB_TRUEAUDIOFILE_H
00032
00033 #include "tfile.h"
00034 #include "trueaudioproperties.h"
00035
00036 namespace TagLib {
00037
00038 class Tag;
00039
00040 namespace ID3v2 { class Tag; class FrameFactory; }
00041 namespace ID3v1 { class Tag; }
00042
00044
00052 namespace TrueAudio {
00053
00055
00063 class TAGLIB_EXPORT File : public TagLib::File
00064 {
00065 public:
00070 enum TagTypes {
00072 NoTags = 0x0000,
00074 ID3v1 = 0x0001,
00076 ID3v2 = 0x0002,
00078 AllTags = 0xffff
00079 };
00080
00086 File(FileName file, bool readProperties = true,
00087 Properties::ReadStyle propertiesStyle = Properties::Average);
00088
00095 File(FileName file, ID3v2::FrameFactory *frameFactory,
00096 bool readProperties = true,
00097 Properties::ReadStyle propertiesStyle = Properties::Average);
00098
00107 File(IOStream *stream, bool readProperties = true,
00108 Properties::ReadStyle propertiesStyle = Properties::Average);
00109
00119 File(IOStream *stream, ID3v2::FrameFactory *frameFactory,
00120 bool readProperties = true,
00121 Properties::ReadStyle propertiesStyle = Properties::Average);
00122
00126 virtual ~File();
00127
00131 virtual TagLib::Tag *tag() const;
00132
00138 PropertyMap properties() const;
00139
00145 PropertyMap setProperties(const PropertyMap &);
00146
00151 virtual Properties *audioProperties() const;
00152
00158 void setID3v2FrameFactory(const ID3v2::FrameFactory *factory);
00159
00163 virtual bool save();
00164
00177 ID3v1::Tag *ID3v1Tag(bool create = false);
00178
00191 ID3v2::Tag *ID3v2Tag(bool create = false);
00192
00201 void strip(int tags = AllTags);
00202
00203 private:
00204 File(const File &);
00205 File &operator=(const File &);
00206
00207 void read(bool readProperties, Properties::ReadStyle propertiesStyle);
00208 void scan();
00209 long findID3v1();
00210 long findID3v2();
00211
00212 class FilePrivate;
00213 FilePrivate *d;
00214 };
00215 }
00216 }
00217
00218 #endif