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_XINGHEADER_H
00027 #define TAGLIB_XINGHEADER_H
00028
00029 #include "mpegheader.h"
00030 #include "taglib_export.h"
00031
00032 namespace TagLib {
00033
00034 class ByteVector;
00035
00036 namespace MPEG {
00037
00038 class File;
00039
00041
00052 class TAGLIB_EXPORT XingHeader
00053 {
00054 public:
00058 enum HeaderType
00059 {
00063 Invalid = 0,
00064
00068 Xing = 1,
00069
00073 VBRI = 2,
00074 };
00075
00080 XingHeader(const ByteVector &data);
00081
00085 virtual ~XingHeader();
00086
00091 bool isValid() const;
00092
00096 uint totalFrames() const;
00097
00101 uint totalSize() const;
00102
00106 HeaderType type() const;
00107
00114 static int xingHeaderOffset(TagLib::MPEG::Header::Version v,
00115 TagLib::MPEG::Header::ChannelMode c);
00116
00117 private:
00118 XingHeader(const XingHeader &);
00119 XingHeader &operator=(const XingHeader &);
00120
00121 void parse(const ByteVector &data);
00122
00123 class XingHeaderPrivate;
00124 XingHeaderPrivate *d;
00125 };
00126 }
00127 }
00128
00129 #endif