sl@0: /* sl@0: * Copyright (c) 2003 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_TMMFTABLEAUDIOCODEC_H__ sl@0: #define __MMF_TMMFTABLEAUDIOCODEC_H__ sl@0: sl@0: #include sl@0: #include "MMFAudioCodecBase.h" sl@0: sl@0: class TMMFTableAudioCodec : public TMMFAudioCodecBase sl@0: { sl@0: public: sl@0: inline TMMFTableAudioCodec(); sl@0: // sl@0: inline TInt TableSize(); sl@0: inline void SetTable(TPtr8 aTable); sl@0: // sl@0: virtual void FillTable(TPtr8 aTable)=0; sl@0: IMPORT_C virtual void Convert(TUint8* aSrc, TUint8* aDst, TInt aSamples); sl@0: protected: sl@0: virtual void ConvertSlow(TUint8* aSrc, TUint8* aDst, TInt aSamples)=0; sl@0: virtual void ConvertFast(TUint8* aSrc, TUint8* aDst, TInt aSamples)=0; sl@0: protected: sl@0: TInt iTableSize; sl@0: TUint8* iTablePtr; sl@0: }; sl@0: sl@0: /** sl@0: * Inline functions sl@0: **/ sl@0: inline TMMFTableAudioCodec::TMMFTableAudioCodec() sl@0: : iTablePtr(0) sl@0: { sl@0: } sl@0: sl@0: inline TInt TMMFTableAudioCodec::TableSize() sl@0: { sl@0: return iTableSize; sl@0: } sl@0: sl@0: inline void TMMFTableAudioCodec::SetTable(TPtr8 aTable) sl@0: { sl@0: ASSERT(aTable.Length()>iTableSize); sl@0: iTablePtr = &aTable[0]; sl@0: } sl@0: sl@0: #endif sl@0: