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_MPCPROPERTIES_H
00027 #define TAGLIB_MPCPROPERTIES_H
00028
00029 #include "taglib_export.h"
00030 #include "audioproperties.h"
00031
00032 namespace TagLib {
00033
00034 namespace MPC {
00035
00036 class File;
00037
00038 static const uint HeaderSize = 8*7;
00039
00041
00047 class TAGLIB_EXPORT Properties : public AudioProperties
00048 {
00049 public:
00056 Properties(const ByteVector &data, long streamLength, ReadStyle style = Average);
00057
00062 Properties(File *file, long streamLength, ReadStyle style = Average);
00063
00067 virtual ~Properties();
00068
00069
00070
00071 virtual int length() const;
00072 virtual int bitrate() const;
00073 virtual int sampleRate() const;
00074 virtual int channels() const;
00075
00079 int mpcVersion() const;
00080 uint totalFrames() const;
00081 uint sampleFrames() const;
00082
00087 int trackGain() const;
00088
00094 int trackPeak() const;
00095
00100 int albumGain() const;
00101
00107 int albumPeak() const;
00108
00109 private:
00110 Properties(const Properties &);
00111 Properties &operator=(const Properties &);
00112
00113 void readSV7(const ByteVector &data);
00114 void readSV8(File *file);
00115
00116 class PropertiesPrivate;
00117 PropertiesPrivate *d;
00118 };
00119 }
00120 }
00121
00122 #endif