diff -r 481b3bce574a -r b6488ac24ddc omxil/mmilapi/refomxil/inc/omxilgenericilifbodyimpl.h --- a/omxil/mmilapi/refomxil/inc/omxilgenericilifbodyimpl.h Mon Aug 23 21:48:44 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,146 +0,0 @@ -// Copyright (c) 2008-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: -// - -#ifndef OMXILGENERICILIFBODYIMPL_H -#define OMXILGENERICILIFBODYIMPL_H - -#include "momxilcomponentifobserver.h" -#include -#include - - -class COmxBufferManager : public CBase - { -public: - - class COmxBuffer : public CBase - { - public: - static COmxBuffer* NewL(OMX_BUFFERHEADERTYPE* aBufferHeader, CMMFBuffer* aBuffer); - ~COmxBuffer(); - - CMMFBuffer* MmfBuffer() const; - OMX_BUFFERHEADERTYPE* BufferHeader() const; - - void SetPortObserver(MOmxILComponentIfObserver* aObserver); - MOmxILComponentIfObserver* PortObserver() const; - - private: - COmxBuffer(); - void ConstructL(OMX_BUFFERHEADERTYPE* aBufferHeader, CMMFBuffer* aBuffer); - - OMX_BUFFERHEADERTYPE* iBufferHeader; - CMMFBuffer* iMmfBuffer; - - TBool iOwnsMmfBuffer; - - MOmxILComponentIfObserver* iPortObserver; - }; - -public: - COmxBufferManager(OMX_COMPONENTTYPE* aHandle); - ~COmxBufferManager(); - - // Buffer lookup - COmxBuffer* FindBuffer(const CMMFBuffer* aBuffer) const; - COmxBuffer* FindBuffer(OMX_BUFFERHEADERTYPE* aBuffer) const; - - // OMX Calls - TInt UseBuffer(CMMFBuffer& aBuffer, TUint nPortIndex); - CMMFBuffer* AllocateBufferL(TUint nPortIndex, TUint nSizeBytes); - TInt FreeBuffer(CMMFBuffer* aBuffer); - - TInt EmptyThisBuffer(const CMMFBuffer* aBuffer, MOmxILComponentIfObserver* aObserver); - TInt FillThisBuffer(CMMFBuffer* aBuffer, MOmxILComponentIfObserver* aObserver); - - // Store OMX buffer pointer - void StoreBufferL(OMX_BUFFERHEADERTYPE* aBufferHeader, CMMFBuffer* aBuffer); - -private: - RPointerArray iBuffers; - OMX_COMPONENTTYPE* iHandle; - }; - -class COmxCallbacks : public CActive - { -public: - enum TMessageType - { - EFillBufferCallback, - EEmptyBufferCallback, - EEventCallback - }; - - class TEventParams - { - public: - OMX_EVENTTYPE iEvent; - TUint32 iData1; - TUint32 iData2; - TAny* iExtraData; - }; - - class TOmxMessage - { - public: - TMessageType iType; - OMX_HANDLETYPE iComponent; - union - { - COmxBufferManager::COmxBuffer* iBuffer; - TEventParams iEventParams; - }; - }; -public: - static COmxCallbacks* NewL(MOmxILComponentIfObserver& aObserver); - operator OMX_CALLBACKTYPE*(); - void RunL(); - void DoCancel(); - - TInt FillBufferDone(OMX_HANDLETYPE aComponent, COmxBufferManager::COmxBuffer* aBuffer); - TInt EmptyBufferDone(OMX_HANDLETYPE aComponent, COmxBufferManager::COmxBuffer* aBuffer); - TInt EventHandler(OMX_HANDLETYPE aComponent, const TEventParams& aParams); - virtual ~COmxCallbacks(); - -private: - void ConstructL(); - COmxCallbacks(MOmxILComponentIfObserver& aObserver); - -private: - OMX_CALLBACKTYPE iHandle; - RMsgQueue iMsgQueue; - MOmxILComponentIfObserver& iParent; - }; - - -// OMX callback handler functions -OMX_ERRORTYPE EventHandler(OMX_OUT OMX_HANDLETYPE aComponent, - OMX_OUT TAny* aAppData, - OMX_OUT OMX_EVENTTYPE aEvent, - OMX_OUT TUint32 aData1, - OMX_OUT TUint32 aData2, - OMX_OUT TAny* aExtra); - -OMX_ERRORTYPE EmptyBufferDone( - OMX_HANDLETYPE aComponent, - TAny* aAppData, - OMX_BUFFERHEADERTYPE* aBuffer); - -OMX_ERRORTYPE FillBufferDone( - OMX_HANDLETYPE aComponent, - TAny* aAppData, - OMX_BUFFERHEADERTYPE* aBuffer); - -#endif // OMXILGENERICILIFBODYIMPL_H