#ifndef APE_PREPARE_H #define APE_PREPARE_H #include "NoWindows.h" #define SPECIAL_FRAME_MONO_SILENCE 1 #define SPECIAL_FRAME_LEFT_SILENCE 1 #define SPECIAL_FRAME_RIGHT_SILENCE 2 #define SPECIAL_FRAME_PSEUDO_STEREO 4 /***************************************************************************** Manage the preparation stage of compression and decompression Tasks: 1) convert data to 32-bit 2) convert L,R to X,Y 3) calculate the CRC 4) do simple analysis 5) check for the peak value *****************************************************************************/ class IPredictorDecompress; class CPrepare { public: int Prepare(const unsigned char* pRawData, int nBytes, const WAVEFORMATEX* pWaveFormatEx, int* pOutputX, int* pOutputY, unsigned int* pCRC, int* pSpecialCodes, int* pPeakLevel); void Unprepare(int X, int Y, const WAVEFORMATEX* pWaveFormatEx, unsigned char* pOutput, unsigned int* pCRC); #ifdef BACKWARDS_COMPATIBILITY int UnprepareOld(int* pInputX, int* pInputY, int nBlocks, const WAVEFORMATEX* pWaveFormatEx, unsigned char* pRawData, unsigned int* pCRC, int* pSpecialCodes, int nFileVersion); #endif }; #endif // #ifndef APE_PREPARE_H