diff -r 000000000000 -r 40261b775718 mmlibs/mmfw/tsrc/mmfintegrationtest/ACLNT/WavDecodeUtility.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmlibs/mmfw/tsrc/mmfintegrationtest/ACLNT/WavDecodeUtility.h Tue Feb 02 01:56:55 2010 +0200 @@ -0,0 +1,70 @@ +// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +class CWavDecodeUtility: public CBase + { +public: + static CWavDecodeUtility* NewL(TDesC8& aBuffer); + ~CWavDecodeUtility(); + + inline TUint GetChannels(void) const {return iChannels;}; + inline TUint GetSampleRate(void) const {return iSampleRate;}; + inline TUint GetBitsPerSample(void) const {return iBitsPerSample;}; + inline TUint GetDataLength(void) const {return iDataLength;}; + + inline TUint GetSamples(void) const {return iDataLength / (iChannels * iBitsPerSample / 8);}; + + +private: + CWavDecodeUtility(); + void ConstructL(TDesC8& aBuffer); + TUint16 Read16(const TUint8* aPtr); + TUint32 Read32(const TUint8* aPtr); + void FindRiffChunksL(void); + void ProcessFormatHeaderL(); + void ReadChunk(TMdaRiffChunk* aChunk); + void AssignChunkTo(TMdaRiffChunk* aAssignedChunk); + +private: +// CMMFDataBuffer* iBuffer; + TDesC8* iBuffer; + const TUint8* iStartPtr; + TUint iLastReadPosition; + TBool iHasFactChunk; + TMdaRiffChunk iCurrent; + TMdaRiffChunk iFormatChunk; + TMdaRiffChunk iFactChunk; + TMdaRiffChunk iDataChunk; + TUint iRiffChunkLength; + TBool iFoundChunks; + TBool iDone; + TUint iStartPosition; + + TUint iCodecId; + TUint iChannels; + TUint iSampleRate; + TUint iBlockAlign; //needed for correct IMA + TUint iBitsPerSample; + + TUint iDataLength; + TUint iAverageBytesPerSecond; //needed for correct IMA + TUint iSamplesPerBlock; + + TUint iPos; + TUint iClipLength; + + }; + +