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
00087 File(FileName file, bool readProperties = true,
00088 Properties::ReadStyle propertiesStyle = Properties::Average);
00089
00099 File(FileName file, ID3v2::FrameFactory *frameFactory,
00100 bool readProperties = true,
00101 Properties::ReadStyle propertiesStyle = Properties::Average);
00102
00112 File(IOStream *stream, bool readProperties = true,
00113 Properties::ReadStyle propertiesStyle = Properties::Average);
00114
00127 File(IOStream *stream, ID3v2::FrameFactory *frameFactory,
00128 bool readProperties = true,
00129 Properties::ReadStyle propertiesStyle = Properties::Average);
00130
00134 virtual ~File();
00135
00139 virtual TagLib::Tag *tag() const;
00140
00146 PropertyMap properties() const;
00147
00153 PropertyMap setProperties(const PropertyMap &);
00154
00155 void removeUnsupportedProperties(const StringList &properties);
00156
00161 virtual Properties *audioProperties() const;
00162
00168 void setID3v2FrameFactory(const ID3v2::FrameFactory *factory);
00169
00173 virtual bool save();
00174
00192 ID3v1::Tag *ID3v1Tag(bool create = false);
00193
00211 ID3v2::Tag *ID3v2Tag(bool create = false);
00212
00221 void strip(int tags = AllTags);
00222
00228 bool hasID3v1Tag() const;
00229
00235 bool hasID3v2Tag() const;
00236
00237 private:
00238 File(const File &);
00239 File &operator=(const File &);
00240
00241 void read(bool readProperties, Properties::ReadStyle propertiesStyle);
00242 void scan();
00243 long findID3v1();
00244 long findID3v2();
00245
00246 class FilePrivate;
00247 FilePrivate *d;
00248 };
00249 }
00250 }
00251
00252 #endif