diff -r 000000000000 -r 1bce908db942 multimediacommscontroller/mmccanysourcesink/src/mccanysource.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/multimediacommscontroller/mmccanysourcesink/src/mccanysource.cpp Tue Feb 02 01:04:58 2010 +0200 @@ -0,0 +1,263 @@ +/* +* Copyright (c) 2006 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: +* +*/ + + + + +// INCLUDE FILES +#include "mccanysource.h" +#include "mmccinterfacedef.h" +#include "mccanysourcesinklogs.h" +#include "mccinternalevents.h" +#include "mccinternaldef.h" + + +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// CMccAnySource::NewSourceL +// ----------------------------------------------------------------------------- +// +MDataSource* CMccAnySource::NewSourceL( TUid /*aImplementationUid*/, + const TDesC8& /*aInitData*/ ) + { + __ANYSOURCESINK_CONTROLL( "CMccAnySource::NewSourceL" ) + + CMccAnySource* self = new ( ELeave ) CMccAnySource(); + return static_cast( self ); + } + +// ----------------------------------------------------------------------------- +// CMccAnySource::ConstructSourceL +// ----------------------------------------------------------------------------- +// +void CMccAnySource::ConstructSourceL( const TDesC8& /*aInitData*/ ) + { + __ANYSOURCESINK_CONTROLL( "CMccAnySource::ConstructSourceL" ) + } + +// ----------------------------------------------------------------------------- +// Constructor. +// ----------------------------------------------------------------------------- +// +CMccAnySource::CMccAnySource() : CMccDataSource( KMccAnySourceUid ) + { + } + +// ----------------------------------------------------------------------------- +// Destructor. +// ----------------------------------------------------------------------------- +// +CMccAnySource::~CMccAnySource() + { + __ANYSOURCESINK_CONTROLL( "CMccAnySource::~CMccAnySource" ) + } + + +// ----------------------------------------------------------------------------- +// CMccAnySource::SourcePrimeL() +// ----------------------------------------------------------------------------- +// +void CMccAnySource::SourcePrimeL() + { + __ANYSOURCESINK_CONTROLL( "CMccAnySource::SourcePrimeL" ) + + SendStreamEventToClient( KMccStreamPrepared ); + } + +// ----------------------------------------------------------------------------- +// CMccAnySource::PlayL() +// ----------------------------------------------------------------------------- +// +void CMccAnySource::SourcePlayL() + { + __ANYSOURCESINK_CONTROLL( "CMccAnySource::SourcePlayL" ) + + if ( iPaused ) + { + SendStreamEventToClient( KMccStreamResumed ); + } + else + { + SendStreamEventToClient( KMccStreamStarted ); + } + + iPaused = EFalse; + } + +// ----------------------------------------------------------------------------- +// CMccAnySource::PauseL() +// ----------------------------------------------------------------------------- +// +void CMccAnySource::SourcePauseL() + { + __ANYSOURCESINK_CONTROLL( "CMccAnySource::SourcePauseL" ) + + iPaused = ETrue; + + SendStreamEventToClient( KMccStreamPaused ); + } + +// ----------------------------------------------------------------------------- +// CMccAnySource::StopL() +// ----------------------------------------------------------------------------- +// +void CMccAnySource::SourceStopL() + { + __ANYSOURCESINK_CONTROLL( "CMccAnySource::SourceStopL" ) + + SendStreamEventToClient( KMccStreamStopped ); + } + +// ----------------------------------------------------------------------------- +// CMccAnySource::SourceDataTypeCode() +// ----------------------------------------------------------------------------- +// +TFourCC CMccAnySource::SourceDataTypeCode( TMediaId /*aMediaId*/ ) + { + __ANYSOURCESINK_CONTROLL( "CMccAnySource::SourceDataTypeCode" ) + + return iFourCC; + } + +// ----------------------------------------------------------------------------- +// CMccAnySource::SetSourceDataTypeCode() +// ----------------------------------------------------------------------------- +// +TInt CMccAnySource::SetSourceDataTypeCode( TFourCC aCodec, + TMediaId /*aMediaId*/ ) + { + __ANYSOURCESINK_CONTROLL( "CMccAnySource::SetSourceDataTypeCode" ) + + iFourCC = aCodec; + return KErrNone; + } + +// ----------------------------------------------------------------------------- +// CMccAnySource::BufferEmptiedL() +// ----------------------------------------------------------------------------- +// +void CMccAnySource::BufferEmptiedL( CMMFBuffer* /*aBuffer*/ ) + { + __ANYSOURCESINK_CONTROLL( "CMccAnySource::BufferEmptiedL" ) + + User::Leave( KErrNotSupported ); + } + +// ----------------------------------------------------------------------------- +// CMccAnySource::CanCreateSourceBuffer() +// ----------------------------------------------------------------------------- +// +TBool CMccAnySource::CanCreateSourceBuffer() + { + __ANYSOURCESINK_CONTROLL( "CMccAnySource::CanCreateSourceBuffer" ) + + return EFalse; + } + +// ----------------------------------------------------------------------------- +// CMccAnySource::CreateSourceBufferL() +// ----------------------------------------------------------------------------- +// +CMMFBuffer* CMccAnySource::CreateSourceBufferL( + TMediaId /*aMediaId*/, + TBool& /*aReference*/ ) + { + __ANYSOURCESINK_CONTROLL( "CMccAnySource::CreateSourceBufferL" ) + + User::Leave( KErrNotSupported ); + + return NULL; + } + +// ----------------------------------------------------------------------------- +// CMccAnySource::SourceThreadLogon() +// ----------------------------------------------------------------------------- +// +TInt CMccAnySource::SourceThreadLogon( MAsyncEventHandler& aEventHandler ) + { + __ANYSOURCESINK_CONTROLL( "CMccAnySource::SourceThreadLogon" ) + + iAsyncEventHandler = &aEventHandler; + + return KErrNone; + } + +// ----------------------------------------------------------------------------- +// CMccAnySource::SourceThreadLogoff() +// ----------------------------------------------------------------------------- +// +void CMccAnySource::SourceThreadLogoff() + { + __ANYSOURCESINK_CONTROLL( "CMccAnySource::SourceThreadLogoff" ) + + iAsyncEventHandler = NULL; + } + +// ----------------------------------------------------------------------------- +// CMccAnySource::FillBufferL() +// ----------------------------------------------------------------------------- +// +void CMccAnySource::FillBufferL( + CMMFBuffer* /*aBuffer*/, + MDataSink* /*aConsumer*/, + TMediaId /*aMediaId*/ ) + { + __ANYSOURCESINK_CONTROLL( "CMccAnySource::FillBufferL" ) + User::Leave( KErrNotSupported ); + } + +// ----------------------------------------------------------------------------- +// CMccAnySource::NegotiateSourceL() +// ----------------------------------------------------------------------------- +// +void CMccAnySource::NegotiateSourceL( MDataSink& /*aDataSink*/ ) + { + __ANYSOURCESINK_CONTROLL( "CMccAnySource::NegotiateSourceL" ) + } + +// ----------------------------------------------------------------------------- +// CMccAnySource::SendStreamEventToClient +// ----------------------------------------------------------------------------- +// +void CMccAnySource::SendStreamEventToClient( + TMccEventType aEventType, + TInt aError ) + { + __ANYSOURCESINK_CONTROLL( "CMccAnySource::SendStreamEventToClient" ) + + if ( iAsyncEventHandler ) + { + TMccEvent event( 0, + 0, + 0, + MCC_ENDPOINT_ID( static_cast( this ) ), + KMccEventCategoryStream, + aEventType, + aError, + KNullDesC8 ); + + TMccInternalEvent internalEvent( KMccAnySourceUid, + EMccInternalEventNone, + event ); + + iAsyncEventHandler->SendEventToClient( internalEvent ); + } + } + +// End of file +