os/mm/mmdevicefw/mdf/inc/codecapi/mdfpuloader.h
changeset 0 bde4ae8d615e
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/os/mm/mmdevicefw/mdf/inc/codecapi/mdfpuloader.h	Fri Jun 15 03:10:57 2012 +0200
     1.3 @@ -0,0 +1,117 @@
     1.4 +// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
     1.5 +// All rights reserved.
     1.6 +// This component and the accompanying materials are made available
     1.7 +// under the terms of "Eclipse Public License v1.0"
     1.8 +// which accompanies this distribution, and is available
     1.9 +// at the URL "http://www.eclipse.org/legal/epl-v10.html".
    1.10 +//
    1.11 +// Initial Contributors:
    1.12 +// Nokia Corporation - initial contribution.
    1.13 +//
    1.14 +// Contributors:
    1.15 +//
    1.16 +// Description:
    1.17 +//
    1.18 +
    1.19 +/**
    1.20 + @file
    1.21 + @publishedPartner
    1.22 + @released
    1.23 +*/
    1.24 +
    1.25 +#ifndef MDFPULOADER_H
    1.26 +#define MDFPULOADER_H
    1.27 +
    1.28 +#include <e32base.h>
    1.29 +class MMdfInputPort;
    1.30 +class MMdfOutputPort;
    1.31 +class CMdfProcessingUnit;
    1.32 +class MMdfProcessingUnitObserver;
    1.33 +class TFourCC;
    1.34 +
    1.35 +/**
    1.36 +Utility class used by the HwDevice to load Processing Units.
    1.37 +*/
    1.38 +class CMdfPuLoader : public CBase
    1.39 +	{
    1.40 +public:
    1.41 +	/**
    1.42 +	Constructs an instance of the ECom plugin.
    1.43 +	@param	aImplementationUid
    1.44 +			ECom implementation UID.
    1.45 +	@return	A pointer to the newly constructed object
    1.46 +	*/
    1.47 +	inline static CMdfPuLoader* NewL(TUid aImplementationUid);
    1.48 +	
    1.49 +	/**
    1.50 +	Loads a Processing Unit using a UID synchronously.
    1.51 +	@param	aProcessingUnitObserver
    1.52 +			The observer for the newly loaded Processing Unit.
    1.53 +	@param	aImplementationUid
    1.54 +			ECom implementation UID.
    1.55 +	@return  A pointer to the newly loaded Processing Unit.
    1.56 +	*/
    1.57 +	virtual CMdfProcessingUnit* LoadProcessingUnitL(const MMdfProcessingUnitObserver& aProcessingUnitObserver, 
    1.58 +		TUid aImplementationUid) = 0;
    1.59 +
    1.60 +	/**
    1.61 +	Loads an audio Processing Unit synchronously.  The Processing Unit is
    1.62 +	resolved according to the source and destination data types provided.
    1.63 +	@param	aProcessingUnitObserver
    1.64 +			The observer for the newly loaded Processing Unit.
    1.65 +	@param	aSrcDataType
    1.66 +			The source data type.
    1.67 +	@param	aDestDataType
    1.68 +			The destination data type.
    1.69 +	@return	A pointer to the newly loaded Processing Unit.	   
    1.70 +	*/
    1.71 +	virtual CMdfProcessingUnit* LoadProcessingUnitL( const MMdfProcessingUnitObserver& aProcessingUnitObserver, 
    1.72 +		TFourCC aSrcDataType, TFourCC aDestDataType) = 0;
    1.73 +	
    1.74 +
    1.75 +	/**
    1.76 +	Loads a video Processing Unit synchronously.  The Processing Unit is
    1.77 +	resolved according to the source and destination data types provided.
    1.78 +	@param	aProcessingUnitObserver
    1.79 +			The observer for the newly loaded Processing Unit.
    1.80 +	@param	aSrcDataType
    1.81 +			The source data type.
    1.82 +	@param	aDestDataType
    1.83 +			The destination data type.
    1.84 +	@param	aImplementationType
    1.85 +			The implementation type. Can be audio, video encoding or video decoding.
    1.86 +	@return	A pointer to the newly loaded Processing Unit.	   
    1.87 +	*/
    1.88 +	virtual CMdfProcessingUnit* LoadProcessingUnitL( const MMdfProcessingUnitObserver& aProcessingUnitObserver, 
    1.89 +		const TDesC8& aSrcDataType, const TDesC8& aDestDataType, const TUid& aImplementationType) = 0;
    1.90 +
    1.91 +	
    1.92 +	/**
    1.93 +	Attempts to set-up a tunnel from a given output port to an input port.  
    1.94 +	The data flow is from the output port to the input port.  This method is synchronous.
    1.95 +	@param	aOutputPort
    1.96 +			The output port of the tunnel.
    1.97 +	@param	aInputPort
    1.98 +			The input port of the tunnel.
    1.99 +	@return	An error code indicating if the function call was successful. KErrNone on success, otherwise
   1.100 +			another of the system-wide error codes.	  
   1.101 +	*/
   1.102 +	virtual TInt TunnelSetup(MMdfOutputPort& aOutputPort, MMdfInputPort& aInputPort) = 0;
   1.103 +	
   1.104 +	/**
   1.105 +	Unloads a Processing Unit synchronously.
   1.106 +	@param	aPu
   1.107 +			The pointer to the Processing Unit to be unloaded.
   1.108 +	*/
   1.109 +	virtual void UnloadProcessingUnit(CMdfProcessingUnit*& aPu) = 0;
   1.110 +	
   1.111 +	/**
   1.112 +	Standard destructor.
   1.113 +	*/
   1.114 +	virtual inline ~CMdfPuLoader();
   1.115 +private:
   1.116 +	TUid iDtor_ID_Key;
   1.117 +	};
   1.118 +
   1.119 +#include <mdf/mdfpuloader.inl>
   1.120 +#endif // MDFPULOADER_H