diff -r 000000000000 -r 58be5850fb6c omxilcomp/omxilaudioemulator/pcmrenderer/src/rateconvert.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/omxilcomp/omxilaudioemulator/pcmrenderer/src/rateconvert.h Thu Sep 02 20:13:57 2010 +0300 @@ -0,0 +1,68 @@ +// Copyright (c) 2002-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: +// include\mmf\utils\rateconvert.h +// +// + +#ifndef RATECONVERT_H +#define RATECONVERT_H + +/** +@internalTechnology +@file +*/ + +#include + +/** +Base utility class to change the sample rate of audio data in a buffer +*/ +class CChannelAndSampleRateConverter : public CBase + { +protected: + CChannelAndSampleRateConverter(); + +public: + /* + Create a converter that will do rate and channel conversion as requested + */ + static CChannelAndSampleRateConverter* CreateL(TInt aFromRate,TInt aFromChannels, + TInt aToRate,TInt aToChannels); + /** + Reads the audio data from the source buffer, + converts the number of channels and the sample rate + and copies the result to the destination buffer + + @param aSrcBuffer + The source buffer containing the audio data to convert. + @param aDstBuffer + The destination buffer - assumed big enough + + @return The length of the source buffer that was consumed. + */ + virtual TInt Convert(const TDesC8& aSrcBuffer, TDes8& aDstBuffer)=0; + virtual void Reset()=0; + + /* + Indicates what buffer size is required to hold the converted data. + Support size of original buffer. + aRoundUpToPower means give next power of 2 size up from raw size. + NB. May be bigger than strictly necessary. + */ + virtual TInt MaxConvertBufferSize(TInt aSrcBufferSize, TBool aRoundUpToPower=EFalse)=0; + }; + + +#endif +