sl@0: // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // sl@0: sl@0: sl@0: #ifndef __MMF_CODEC_BASE_DEFINITIONS_H__ sl@0: #define __MMF_CODEC_BASE_DEFINITIONS_H__ sl@0: sl@0: #include sl@0: #include sl@0: #include sl@0: // IMA ADPCM Codecs sl@0: sl@0: // Internal to Symbian sl@0: class TMMFImaAdpcmCodecStateOld sl@0: { sl@0: public: sl@0: inline TMMFImaAdpcmCodecStateOld(); sl@0: inline TMMFImaAdpcmCodecStateOld(TInt16 aPredicted, TUint8 aIndex); sl@0: public: sl@0: TInt16 iPredicted; // Previous output value sl@0: TUint8 iIndex; // Index into stepsize table sl@0: }; sl@0: sl@0: // Internal to Symbian sl@0: class TMMFAudioCodecBaseOld sl@0: { sl@0: public: sl@0: inline TMMFAudioCodecBaseOld(); sl@0: // sl@0: virtual void Convert(TUint8* aSrc, TUint8* aDst, TInt aSamples)=0; sl@0: }; sl@0: sl@0: sl@0: // Internal to Symbian sl@0: class TMMFImaAdpcmBaseCodecOld : public TMMFAudioCodecBaseOld sl@0: { sl@0: public: sl@0: inline TMMFImaAdpcmBaseCodecOld(const TInt aChannels); sl@0: inline void SetState(const TMMFImaAdpcmCodecStateOld& aState); sl@0: inline void SetState(const TMMFImaAdpcmCodecStateOld& aState,const TInt aChannel); sl@0: inline const TMMFImaAdpcmCodecStateOld& GetState(); sl@0: inline const TMMFImaAdpcmCodecStateOld& GetState(const TInt aChannel); sl@0: void ResetBuffer(); sl@0: TBool OutputStep(); sl@0: protected: sl@0: TMMFImaAdpcmCodecStateOld iState[2]; //for mono & stereo sl@0: static const TInt iIndexTable[16]; sl@0: static const TInt iStepSizeTable[89]; sl@0: TBool iBufferStep; sl@0: TInt iBuffer; sl@0: TInt iChannels; sl@0: }; sl@0: sl@0: // Internal to Symbian sl@0: class TMMFImaAdpcmTo16PcmCodecOld : public TMMFImaAdpcmBaseCodecOld sl@0: { sl@0: public: sl@0: inline TMMFImaAdpcmTo16PcmCodecOld(const TInt aChannels); sl@0: virtual void Convert(TUint8* aSrc, TUint8* aDst, TInt aSamples); sl@0: }; sl@0: sl@0: sl@0: // Internal to Symbian sl@0: class TMMF16PcmToImaAdpcmCodecOld : public TMMFImaAdpcmBaseCodecOld sl@0: { sl@0: public: sl@0: inline TMMF16PcmToImaAdpcmCodecOld(const TInt aChannels); sl@0: virtual void Convert(TUint8* aSrc, TUint8* aDst, TInt aSamples); sl@0: }; sl@0: sl@0: sl@0: inline TMMFAudioCodecBaseOld::TMMFAudioCodecBaseOld() sl@0: {} sl@0: sl@0: inline TMMFImaAdpcmBaseCodecOld::TMMFImaAdpcmBaseCodecOld(const TInt aChannels) sl@0: : iBufferStep(ETrue), iBuffer(0), iChannels(aChannels) {} sl@0: sl@0: inline TMMFImaAdpcmCodecStateOld::TMMFImaAdpcmCodecStateOld() sl@0: : iPredicted(0), iIndex(0) {} sl@0: sl@0: inline TMMFImaAdpcmCodecStateOld::TMMFImaAdpcmCodecStateOld(TInt16 aPredicted, TUint8 aIndex) sl@0: : iPredicted(aPredicted), iIndex(aIndex) {} sl@0: sl@0: inline void TMMFImaAdpcmBaseCodecOld::SetState(const TMMFImaAdpcmCodecStateOld& aState) sl@0: { iState[0] = aState; } sl@0: sl@0: inline const TMMFImaAdpcmCodecStateOld& TMMFImaAdpcmBaseCodecOld::GetState() sl@0: { return iState[0]; } sl@0: sl@0: inline void TMMFImaAdpcmBaseCodecOld::SetState(const TMMFImaAdpcmCodecStateOld& aState, const TInt aChannel) sl@0: { iState[aChannel] = aState; } sl@0: sl@0: inline const TMMFImaAdpcmCodecStateOld& TMMFImaAdpcmBaseCodecOld::GetState(const TInt aChannel) sl@0: { return iState[aChannel]; } sl@0: sl@0: inline TMMFImaAdpcmTo16PcmCodecOld::TMMFImaAdpcmTo16PcmCodecOld(const TInt aChannels) sl@0: :TMMFImaAdpcmBaseCodecOld(aChannels) sl@0: {} sl@0: inline TMMF16PcmToImaAdpcmCodecOld::TMMF16PcmToImaAdpcmCodecOld(const TInt aChannels) sl@0: :TMMFImaAdpcmBaseCodecOld(aChannels) sl@0: {} sl@0: sl@0: #endif