diff -r 000000000000 -r 1bce908db942 multimediacommscontroller/mmccanysourcesink/inc/mccanysink.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/multimediacommscontroller/mmccanysourcesink/inc/mccanysink.h Tue Feb 02 01:04:58 2010 +0200 @@ -0,0 +1,103 @@ +/* +* Copyright (c) 2007 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: +* +*/ + + + +#ifndef MCCANYSINK_H +#define MCCANYSINK_H + +// INCLUDES +#include +#include "mccdatasink.h" +#include "mmccevents.h" + +// FORWARD DECLARATIONS + +/** +* +*/ +class CMccAnySink : public CMccDataSink + { + public: // Methods called internally or by the controller + + /** + * Two-phased constructor. + */ + static MDataSink* NewSinkL( TUid aImplementationUid, + const TDesC8& aInitData ); + + void ConstructSinkL ( const TDesC8& aInitData ); + + virtual ~CMccAnySink(); + + public: // From MDataSink + + TFourCC SinkDataTypeCode( TMediaId /*aMediaId*/ ); + + TInt SetSinkDataTypeCode( TFourCC aCodec, + TMediaId aMedia ); + + void BufferEmptiedL( CMMFBuffer* aBuffer ); + + TBool CanCreateSinkBuffer(); + + CMMFBuffer* CreateSinkBufferL( TMediaId, + TBool& aReference ); + + TInt SinkThreadLogon( MAsyncEventHandler& aEventHandler ); + + void SinkThreadLogoff(); + + void SinkPrimeL(); + + void SinkPlayL(); + + void SinkPauseL(); + + void SinkStopL(); + + void EmptyBufferL( CMMFBuffer* aBuffer, + MDataSource* aProvider, + TMediaId aMediaId ); + + void BufferFilledL( CMMFBuffer* aBuffer ); + + private: + + CMccAnySink(); + + void SendStreamEventToClient( const TMccEventType& aEventType, + TInt aError = KErrNone ); + + + private: + + MAsyncEventHandler* iAsyncEventHandler; + TBool iPaused; + TFourCC iFourCC; + + #ifdef EUNIT_TEST + friend class UT_CMccAnySink; + #endif + }; + + +#endif + + +// End of file +