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.
18 #include <omxprocessingunit.h>
19 #include <omxinputport.h>
20 #include <mdf/mdfpuconfig.h>
21 #include "omxcomponentbody.h"
22 #include "omxinputportbody.h"
24 _LIT(KOmxInputPort, "OmxInputPortBody");
26 COmxInputPort::CBody* COmxInputPort::CBody::NewL(TInt aIndex, COmxProcessingUnit* aComponent, COmxInputPort* aParent)
28 return new (ELeave) CBody(aIndex, aComponent, aParent);
31 COmxInputPort::CBody::CBody(TInt aIndex, COmxProcessingUnit* aComponent, COmxInputPort* aParent) :
33 iComponent(aComponent),
38 TInt COmxInputPort::CBody::MipConfigure(const TPuConfig& /*aConfig*/)
40 return KErrNotSupported;
43 TInt COmxInputPort::CBody::MipGetConfig(TPuConfig& /*aConfig*/)
45 return KErrNotSupported;
48 void COmxInputPort::CBody::MipInitialize()
52 CMMFBuffer* COmxInputPort::CBody::MipCreateBuffer(TInt aBufferSize)
54 CMMFBuffer* buffer = NULL;
56 TRAP(err, buffer = Component()->OmxAllocateBufferL(iPortIndex, aBufferSize));
60 TInt COmxInputPort::CBody::MipUseBuffer(CMMFBuffer& aBuffer)
62 return Component()->OmxUseBuffer(&aBuffer, iPortIndex);
65 TInt COmxInputPort::CBody::MipFreeBuffer(CMMFBuffer* aBuffer)
67 return Component()->OmxFreeBuffer(aBuffer);
70 TInt COmxInputPort::CBody::MipTunnelRequest(const MMdfOutputPort& /*aOutputPortToBeConnectedTo*/,
71 TTunnelFlags& /*aTunnelFlags*/, TSupplierType& /*aSupplierType*/)
73 return KErrNotSupported;
76 void COmxInputPort::CBody::MipWriteData(CMMFBuffer& aInputBuffer)
78 Component()->OmxEmptyThisBuffer(&aInputBuffer, this);
81 void COmxInputPort::CBody::MipDisconnectTunnel()
83 // here, as this can reasonably be called by the device adapter
84 // during unloading of a PU which has been loaded but never initialised,
85 // we use a conditional instead of an ASSERT
88 iObserver->MipoDisconnectTunnelComplete(iParent, KErrNone);
92 void COmxInputPort::CBody::MipRestartTunnel()
94 __ASSERT_ALWAYS(iObserver, User::Panic(KOmxInputPort, EObserverNotSet));
96 iObserver->MipoRestartTunnelComplete(iParent, KErrNone);
99 TBool COmxInputPort::CBody::MipIsTunnelled() const
108 TInt COmxInputPort::CBody::MipIndex() const
113 TUint32 COmxInputPort::CBody::MipBufferSize() const
115 OMX_PARAM_PORTDEFINITIONTYPE portInfo;
116 portInfo.nPortIndex = 0;
117 Component()->OmxGetParameter(OMX_IndexParamPortDefinition, &portInfo);
118 return portInfo.nBufferSize;
121 void COmxInputPort::CBody::MipSetObserver(const MMdfInputPortObserver& aOutputPortObserver)
123 iObserver = const_cast<MMdfInputPortObserver*>(&aOutputPortObserver);
126 TInt COmxInputPort::CBody::EmptyBufferDone(OMX_HANDLETYPE /*aComponent*/, const CMMFBuffer* aBuffer)
128 __ASSERT_ALWAYS(iObserver, User::Panic(KOmxInputPort, EObserverNotSet));
130 iObserver->MipoWriteDataComplete(iParent, const_cast<CMMFBuffer*>(aBuffer),KErrNone);
134 TInt COmxInputPort::CBody::MipCreateCustomInterface(TUid /*aUid*/)
136 return KErrNotSupported;
139 TAny* COmxInputPort::CBody::MipCustomInterface(TUid /*aUid*/)
144 MMdfInputPortObserver* COmxInputPort::CBody::Observer() const
149 COmxProcessingUnit* COmxInputPort::CBody::Component() const