Update contrib.
1 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of "Eclipse Public License v1.0"
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
16 #ifndef __MMFBTSWCODECDATAPATH_H__
17 #define __MMFBTSWCODECDATAPATH_H__
20 #include <mmf/server/mmfdatabuffer.h>
22 class MMMFHwDeviceObserver;
26 * Base class for the datapath internal to the Sw codec wrapper
29 class CMMFSwCodecDataPath : public CBase
32 enum TSwCodecDataPathState
39 virtual ~CMMFSwCodecDataPath();
40 virtual TInt SetObserver(MMMFHwDeviceObserver& aHwObserver) = 0;
41 virtual TInt AddCodec(CMMFSwCodec& aCodec) = 0;
42 virtual TInt Start() = 0;
43 virtual void Stop() = 0;
44 virtual void Pause() = 0;
45 virtual void BufferFilledL(CMMFDataBuffer& aBuffer) = 0;
46 virtual void BufferEmptiedL(const CMMFDataBuffer& aBuffer) = 0;
47 virtual void SoundDeviceException(TInt aError) = 0;
48 virtual TSwCodecDataPathState State() {return iState;};
50 CMMFSwCodecDataPath() {};
51 inline void Panic(TInt aPanicCode);
54 #ifdef __CYCLE_MMF_DATABUFFERS__
55 CMMFDataBuffer* CycleAudioBuffer(CMMFDataBuffer* aBuffer);
58 #ifdef __USE_MMF_TRANSFERBUFFERS__
59 CMMFTransferBuffer* CreateTransferBufferL(TUint aBufferSize, CMMFTransferBuffer* aOldBuffer);
62 #ifdef __USE_MMF_PTRBUFFERS__
63 CMMFPtrBuffer* CreatePtrBufferL(TUint aBufferSize);
67 TSwCodecDataPathState iState;
68 MMMFHwDeviceObserver* iHwDeviceObserver;
70 #ifdef __USE_MMF_TRANSFERBUFFERS__
71 RTransferBuffer* iTransferBuffer;
72 RTransferWindow* iTransferWindow;
75 #ifdef __USE_MMF_PTRBUFFERS__
76 HBufC8* iPtrBufferMemoryBlock;
85 inline void CMMFSwCodecDataPath::Panic(TInt aPanicCode)
87 _LIT(KMMFSwCodecWrapperPanicCategory, "MMFSwCodecWrapper");
88 User::Panic(KMMFSwCodecWrapperPanicCategory, aPanicCode);