home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2004 March / PCWELT_3_2004.ISO / pcwsoft / flaskmpeg_078_39_src.z.exe / flaskmpeg / Audio / MPEG / IAMPDecoder.h < prev    next >
Encoding:
C/C++ Source or Header  |  2002-10-28  |  1.3 KB  |  52 lines

  1. #ifndef f_AMPLIB_IAMPDECODER_H
  2. #define f_AMPLIB_IAMPDECODER_H
  3.  
  4. class AMPStreamInfo {
  5. public:
  6.     long    lBitrate;            // average bits/second for this stream (0=unconstrained)
  7.     long    lSamplingFreq;        // sampling frequency (Hz)
  8.     char    nLayer;                // MPEG audio layer (1-3)
  9.     char    nMPEGVer;            // MPEG version (1/2)
  10.     char    fStereo;            // true: stereo, false: mono
  11. };
  12.  
  13. class IAMPBitsource {
  14. public:
  15.     virtual int read(void *buffer, int bytes)=0;
  16. };
  17.  
  18. class IAMPDecoder {
  19. public:
  20.  
  21.     enum {
  22.         ERR_NONE            = 0,
  23.         ERR_EOF                = 1,
  24.         ERR_READ            = 2,
  25.         ERR_MPEG25            = 3,
  26. /*        ERR_LAYER1            = 4,*/ /* Not applicable to NekoAmp1.4 */
  27.         ERR_FREEFORM        = 5,
  28.         ERR_SYNC            = 6,
  29.         ERR_INTERNAL        = 7,
  30.         ERR_INCOMPLETEFRAME    = 8,
  31.     };
  32.  
  33.     virtual void    Destroy()=0;
  34.  
  35.     virtual char *    GetAmpVersionString()                =0;
  36.     virtual void    Init()                                =0;
  37.     virtual void    setSource(IAMPBitsource *pSource)    =0;
  38.     virtual void    setDestination(short *psDest)        =0;
  39.     virtual long    getSampleCount()                    =0;
  40.     virtual void    getStreamInfo(AMPStreamInfo *pasi)    =0;
  41.     virtual char *    getErrorString(int err)                =0;
  42.     virtual void    Reset()                                =0;
  43.     virtual void    ReadHeader()                        =0;
  44.     virtual void    PrereadFrame()                        =0;
  45.     virtual bool    DecodeFrame()                        =0;
  46. };
  47.  
  48. extern IAMPDecoder *CreateAMPDecoder();
  49.  
  50. #endif
  51.  
  52.