mpegheader.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_MPEGHEADER_H
00027 #define TAGLIB_MPEGHEADER_H
00028
00029 #include "taglib_export.h"
00030
00031 namespace TagLib {
00032
00033 class ByteVector;
00034
00035 namespace MPEG {
00036
00038
00046 class TAGLIB_EXPORT Header
00047 {
00048 public:
00052 Header(const ByteVector &data);
00053
00057 Header(const Header &h);
00058
00062 virtual ~Header();
00063
00068 bool isValid() const;
00069
00073 enum Version {
00075 Version1 = 0,
00077 Version2 = 1,
00079 Version2_5 = 2
00080 };
00081
00085 Version version() const;
00086
00090 int layer() const;
00091
00095 bool protectionEnabled() const;
00096
00100 int bitrate() const;
00101
00105 int sampleRate() const;
00106
00110 bool isPadded() const;
00111
00116 enum ChannelMode {
00118 Stereo = 0,
00120 JointStereo = 1,
00122 DualChannel = 2,
00124 SingleChannel = 3
00125 };
00126
00130 ChannelMode channelMode() const;
00131
00135 bool isCopyrighted() const;
00136
00140 bool isOriginal() const;
00141
00145 int frameLength() const;
00146
00150 int samplesPerFrame() const;
00151
00155 Header &operator=(const Header &h);
00156
00157 private:
00158 void parse(const ByteVector &data);
00159
00160 class HeaderPrivate;
00161 HeaderPrivate *d;
00162 };
00163 }
00164 }
00165
00166 #endif