/* stores information after we found a header. Copyright (C) 2000 Martin Vogt This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation. For more information look at the file COPYRIGHT in this package */ #ifndef __MPEGHEADERINFO_H #define __MPEGHEADERINFO_H #include #include #include #define _FREQUENCY_44100 0 #define _FREQUENCY_48000 1 #define _FREQUENCY_32000 2 #define _MODE_FULLSTEREO 0 #define _MODE_JOINT 1 #define _MODE_DUAL 2 #define _MODE_SINGLE 3 #define _VERSION_1 0 #define _VERSION_2 1 #define MAXSUBBAND 32 #define SCALEBLOCK 12 class MpegAudioHeader { int protection; int layer; int version; int padding; int frequency; int frequencyHz; int bitrateindex; int extendedmode; int mode; int inputstereo; int channelbitrate; int tableindex; int subbandnumber; int stereobound; int framesize; int layer3slots; int lmpeg25; unsigned char header[4]; public: MpegAudioHeader(); ~MpegAudioHeader(); int parseHeader(unsigned char* buf); inline int getProtection() { return protection; } inline int getLayer() { return layer; } inline int getVersion() { return version; } inline int getPadding() { return padding; } inline int getFrequency() { return frequency; } inline int getFrequencyHz() { return frequencyHz; } inline int getBitrateindex() { return bitrateindex; } inline int getExtendedmode() { return extendedmode; } inline int getMode() { return mode; } inline int getInputstereo() { return inputstereo; } inline int getFramesize() { return framesize; } inline int getLayer25() { return lmpeg25; } // MPEG layer 2 inline int getTableindex() { return tableindex; } // MPEG layer 1/2 inline int getSubbandnumber() { return subbandnumber; } inline int getStereobound() { return stereobound; } // MPEG layer 3 inline int getLayer3slots() { return layer3slots; } int getChannelbitrate(); inline unsigned char* getHeader() { return header; } int getpcmperframe(); void copyTo(MpegAudioHeader* dest); void print(const char* name); void printStates(const char* name); }; #endif