--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmdevicefw/mdf/inc/codecapi/mdfinputport.h Tue Feb 02 01:56:55 2010 +0200
@@ -0,0 +1,213 @@
+// Copyright (c) 2005-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:
+//
+
+/**
+ @file
+ @publishedPartner
+ @released
+*/
+
+#ifndef MDFINPUTPORT_H
+#define MDFINPUTPORT_H
+
+#include <e32base.h>
+#include <mdf/mdfcommon.h>
+
+class CMdfProcessingUnit;
+class CMMFBuffer;
+class MMdfInputPort;
+class MMdfOutputPort;
+class TPuConfig;
+
+/**
+Codec API Input Port observer class.
+*/
+class MMdfInputPortObserver
+ {
+public:
+ /**
+ Called by the Codec API Input Port when MipWriteData() has completed.
+ @param aInputPort
+ The Input Port which sent the callback.
+ @param aBuffer
+ The data buffer which was written.
+ @param aErrorCode
+ An error code indicating if the function call was successful. KErrNone on success, otherwise
+ another of the system-wide error codes.
+ */
+ virtual void MipoWriteDataComplete(const MMdfInputPort* aInputPort,
+ CMMFBuffer* aBuffer, TInt aErrorCode) = 0;
+
+ /**
+ Called by the Codec API Input Port when MipDisconnectTunnel() has completed.
+ @param aInputPort
+ The Input Port which sent the callback.
+ @param aErrorCode
+ An error code indicating if the function call was successful. KErrNone on success, otherwise
+ another of the system-wide error codes.
+ */
+ virtual void MipoDisconnectTunnelComplete(const MMdfInputPort* aInputPort,
+ TInt aErrorCode) = 0;
+
+ /**
+ Called by the Codec API Input Port when MipRestartTunnel() has completed.
+ @param aInputPort
+ The Input Port which sent the callback.
+ @param aErrorCode
+ An error code indicating if the function call was successful. KErrNone on success, otherwise
+ another of the system-wide error codes.
+ */
+ virtual void MipoRestartTunnelComplete(const MMdfInputPort* aInputPort,
+ TInt aErrorCode) = 0;
+ };
+
+/**
+Codec API Input Port interface.
+*/
+class MMdfInputPort
+ {
+public:
+ /**
+ Synchronous function used to configure the Input Port.
+ @param aConfiguration
+ Holds the configuration parameters for the Input Port.
+ @return An error code indicating if the function call was successful. KErrNone on success, otherwise
+ another of the system-wide error codes.
+ */
+ virtual TInt MipConfigure(const TPuConfig& aConfiguration) = 0;
+
+ /**
+ Synchronous method which gets a configuration structure for the Input Port
+ @param aConfigurationSetup
+ The reference to the structure that is to contain the configuration information
+ @return An error code indicating if the function call was successful. KErrNone on success, otherwise
+ another of the system-wide error codes.
+ */
+ virtual TInt MipGetConfig(TPuConfig& aConfigurationSetup) = 0;
+
+ /**
+ Synchronous function used to initialise the Input Port.
+ */
+ virtual void MipInitialize() = 0;
+
+ /**
+ Synchronous function used to set the observer for the Input Port.
+ @param aInputPortObserver
+ The observer of the Input Port.
+ */
+ virtual void MipSetObserver(const MMdfInputPortObserver& aInputPortObserver) = 0;
+
+ /**
+ Synchronous function used to instruct the Input Port to create a buffer.
+ @param aBufferSize
+ The size of the buffer to be created.
+ @return A pointer to the new created buffer.
+ */
+ virtual CMMFBuffer* MipCreateBuffer(TInt aBufferSize) = 0;
+
+ /**
+ Synchronous function used to instruct the Input Port to use the buffer
+ passed in the function's argument.
+ @param aBuffer
+ The buffer to be used by the Input Port.
+ @return An error code indicating if the function call was successful. KErrNone on success, otherwise
+ another of the system-wide error codes.
+ */
+ virtual TInt MipUseBuffer(CMMFBuffer& aBuffer) = 0;
+
+ /**
+ Synchronous function used to instruct the Input Port to free the buffer given
+ passed in the function's argument.
+ @param aBuffer
+ The buffer to be freed
+ @return An error code indicating if the function call was successful. KErrNone on success, otherwise
+ another of the system-wide error codes.
+ */
+ virtual TInt MipFreeBuffer(CMMFBuffer* aBuffer) = 0;
+
+ /**
+ Synchronous function used to request the set up of a tunnel between this Input Port
+ and an Output Port.
+ @param aOutputPortToBeConnectedTo
+ Reference to the Output Port to be connected to.
+ @param aTunnelFlags
+ Control flags for tunneling
+ @param aSupplierType
+ Specifies the supplier of the buffers for the tunnel.
+ @return An error code indicating if the function call was successful. KErrNone on success, otherwise
+ another of the system-wide error codes.
+ */
+ virtual TInt MipTunnelRequest(const MMdfOutputPort& aOutputPortToBeConnectedTo,
+ TTunnelFlags& aTunnelFlags, TSupplierType& aSupplierType) = 0;
+
+ /**
+ Asynchronous function used to write data to the Input Port.
+ @param aBuffer
+ Reference to the buffer containing data.
+ */
+ virtual void MipWriteData(CMMFBuffer& aBuffer) = 0;
+
+ /**
+ Asynchronous function used to disconnect a tunnelled port, and thus stop the data processing.
+ */
+ virtual void MipDisconnectTunnel() = 0;
+
+ /**
+ Asynchronous function used to restart the data processing of a tunnelled port.
+ */
+ virtual void MipRestartTunnel() = 0;
+
+ /**
+ Synchronous function used to find out if an Input Port is tunnelled or not.
+ @return ETrue if the Input Port is tunnelled, EFalse otherwise.
+ */
+ virtual TBool MipIsTunnelled() const = 0;
+
+ /**
+ Synchronous function used to get the Input Port index
+ @return The Input Port index.
+ */
+ virtual TInt MipIndex() const = 0;
+
+ /**
+ Synchronous function used to get the size of the buffer(s) used by the Input Port.
+ @return The Input Port's buffer size.
+ */
+ virtual TUint32 MipBufferSize() const = 0 ;
+
+ /**
+ Request extension feature. This is intended to provide additional features.
+ @param aUid
+ Used to indicate which interface is required.
+ @return Standard error code. KErrNotSupported is used to indicate that the particular
+ plugin is used.
+ */
+ virtual TInt MipCreateCustomInterface(TUid aUid) = 0;
+
+ /**
+ Return previously created extension.
+ This returns a custom interface whose ownership is not transferred to the caller. This
+ should only be used if CreateCustomInterface() has already been called for the same UID
+ value. This means that any construction for that interface has already been called,
+ and thus this call cannot fail.
+ @param aUid
+ Used to indicate which interface is required.
+ @return The requested interface, or NULL if not known.
+ @see MipCreateCustomInterface()
+ */
+ virtual TAny* MipCustomInterface(TUid aUid) = 0;
+ };
+
+#endif // MDFINPUTPORT_H