diff -r 666f914201fb -r 2fe1408b6811 epoc32/include/mmf/server/mmfdes.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/epoc32/include/mmf/server/mmfdes.h Tue Mar 16 16:12:26 2010 +0000 @@ -0,0 +1,125 @@ +// Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members +// which accompanies this distribution, and is available +// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +#ifndef __MMFDES_H_ +#define __MMFDES_H_ + + +#include +#include + + +/** +@publishedAll +@released + +Descriptor parameters. + +Used by CMMFDescriptor::ConstructL(). +*/ +class TMMFDescriptorParams + { +public: + /** + Address of TPr8 describing source descriptor. + */ + TAny* iDes ; // Address of TPr8 describing source Descriptor + /** + Descriptor thread. + */ + TThreadId iDesThreadId ; +private: + /** + This member is internal and not intended for use. + */ + TInt iReserved1; + } ; + +/** +@publishedAll +@released +*/ +typedef TPckgBuf TMMFDescriptorConfig ; + +/** +@publishedAll +@released + +MultiMedia framework class. Represents a client side descriptor. +May be source descriptor from which data is read or destination to which data is written +*/ +class CMMFDescriptor : public CMMFClip + { +public : + + // From MDataSource + virtual TFourCC SourceDataTypeCode( TMediaId aMediaId) ; + virtual void FillBufferL(CMMFBuffer* aBuffer, MDataSink* aConsumer,TMediaId aMediaId) ;//called by a MDataSink to request buffer fill + virtual void BufferEmptiedL( CMMFBuffer* aBuffer ) ; + virtual TBool CanCreateSourceBuffer() ; + virtual CMMFBuffer* CreateSourceBufferL(TMediaId aMediaId, TBool &aReference) ; + + // From MDataSink + virtual TFourCC SinkDataTypeCode(TMediaId aMediaId) ; //used by data path MDataSource/Sink for codec matching + virtual void EmptyBufferL( CMMFBuffer* aBuffer, MDataSource* aSupplier, TMediaId aMediaId ) ; + virtual void BufferFilledL( CMMFBuffer* aBuffer ) ; + virtual TBool CanCreateSinkBuffer() ; + virtual CMMFBuffer* CreateSinkBufferL( TMediaId aMediaId , TBool &aReference) ; + + // From CMMFClip + virtual void ReadBufferL( TInt aLength, CMMFBuffer* aBuffer, TInt aPosition, MDataSink* aConsumer); + virtual void WriteBufferL( TInt aLength, CMMFBuffer* aBuffer, TInt aPosition, MDataSource* aSupplier); + virtual void ReadBufferL( CMMFBuffer* aBuffer, TInt aPosition, MDataSink* aConsumer) ; + virtual void WriteBufferL( CMMFBuffer* aBuffer, TInt aPosition, MDataSource* aSupplier) ; + virtual void ReadBufferL( CMMFBuffer* aBuffer, TInt aPosition) ; + virtual void WriteBufferL( CMMFBuffer* aBuffer, TInt aPosition) ; + virtual TInt64 BytesFree() ; // amount of space available for the clip + virtual TInt Size() ; // length of clip + virtual TInt SetSize( TInt aSize ); // sets the size of the clip (used mainly by crop) + + // CMMFDescriptor + virtual ~CMMFDescriptor() ; + static MDataSource* NewSourceL() ; + static MDataSink* NewSinkL() ; + + void SetTransferBuffer (TBool aTBuffer) ; + TBool CanUseTransferBuffer () ; + +protected : + virtual void ConstructSinkL( const TDesC8& aInitData ) ; + virtual void ConstructSourceL( const TDesC8& aInitData ) ; + void ConstructL( const TDesC8& aInitData ) ; + CMMFDescriptor( ) ; + +private : + // returns the Maximum length of the descriptor + inline TInt MaxLength() { ASSERT( iDes ); return iDes->MaxLength(); } + + // Need to know about the thread that the descriptor is in. + RThread iDesThread ; + + TDes8* iDes ; + TInt iOffset ; + + TFourCC iSinkFourCC ; + TFourCC iSourceFourCC ; + + TBool iUseTransferBuffer ; + + + } ; + + +#endif