sl@0: // Copyright (c) 2006-2009 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: // omxinputport.h sl@0: // sl@0: // sl@0: sl@0: #ifndef OMXINPUTPORTBODY_H sl@0: #define OMXINPUTPORTBODY_H sl@0: sl@0: #include sl@0: #include sl@0: sl@0: class MMdfOutputPort; sl@0: class MMdfOutputPortObserver; sl@0: class COmxProcessingUnit; sl@0: class CMMFBuffer; sl@0: sl@0: /** sl@0: Base class for OpenMAX Input Ports. sl@0: */ sl@0: class COmxInputPort::CBody : public CBase, sl@0: public MOmxInputPortCallbacks sl@0: { sl@0: public: sl@0: static CBody* NewL(TInt aPortIndex, COmxProcessingUnit* aComponent, COmxInputPort* aParent); sl@0: sl@0: // from MMdfInputPort sl@0: TInt MipConfigure(const TPuConfig& aConfiguration); sl@0: TInt MipGetConfig(TPuConfig& aConfigurationSetup); sl@0: void MipInitialize(); sl@0: void MipSetObserver(const MMdfInputPortObserver& aInputPortObserver); sl@0: CMMFBuffer* MipCreateBuffer(TInt aBufferSize); sl@0: TInt MipUseBuffer(CMMFBuffer& aBuffer); sl@0: TInt MipFreeBuffer(CMMFBuffer* aBuffer); sl@0: TInt MipTunnelRequest(const MMdfOutputPort& aOutputPortToBeConnectedTo, sl@0: TTunnelFlags& aTunnelFlags, TSupplierType& aSupplierType); sl@0: void MipWriteData(CMMFBuffer& aBuffer); sl@0: void MipDisconnectTunnel(); sl@0: void MipRestartTunnel(); sl@0: TBool MipIsTunnelled() const; sl@0: TInt MipIndex() const; sl@0: TUint32 MipBufferSize() const; sl@0: TInt MipCreateCustomInterface(TUid aUid); sl@0: TAny* MipCustomInterface(TUid aUid); sl@0: sl@0: // from MOmxInputPortCallbacks sl@0: TInt EmptyBufferDone(OMX_HANDLETYPE aComponent, const CMMFBuffer* aBuffer); sl@0: sl@0: MMdfInputPortObserver* Observer() const; sl@0: COmxProcessingUnit* Component() const; sl@0: private: sl@0: CBody(TInt aPortIndex, COmxProcessingUnit* aComponent, COmxInputPort* aParent); sl@0: sl@0: private: sl@0: TInt iPortIndex; sl@0: TBool iConnectedPort; sl@0: MMdfOutputPort* iPortConnectedTo; sl@0: COmxProcessingUnit* iComponent; sl@0: MMdfInputPortObserver* iObserver; sl@0: COmxInputPort* iParent; sl@0: }; sl@0: sl@0: #endif // OMXINPUTPORTBODY_H sl@0: