diff -r 000000000000 -r 1bce908db942 multimediacommsengine/mmceshared/src/mcecomfilesource.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/multimediacommsengine/mmceshared/src/mcecomfilesource.cpp Tue Feb 02 01:04:58 2010 +0200 @@ -0,0 +1,246 @@ +/* +* 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 "mcefilesource.h" +#include "mcecomfilesource.h" +#include "mceevents.h" +#include "mceserial.h" + +#ifdef MCE_COMMON_SERVER_SIDE + +#include +#include +#include "mcesdpsession.h" +#include "mcemediamanager.h" + +#endif//MCE_COMMON_SERVER_SIDE + + +// ============================ MEMBER FUNCTIONS =============================== + + +// ----------------------------------------------------------------------------- +// CMceComFileSource::NewL +// ----------------------------------------------------------------------------- +// +CMceComFileSource* CMceComFileSource::NewL() + { + CMceComFileSource* self = NewLC(); + CleanupStack::Pop( self ); + return self; + } + + +// ----------------------------------------------------------------------------- +// CMceComFileSource::NewLC +// ----------------------------------------------------------------------------- +// +CMceComFileSource* CMceComFileSource::NewLC() + { + CMceComFileSource* self = new (ELeave) CMceComFileSource(); + CleanupStack::PushL( self ); + return self; + } + + +// ----------------------------------------------------------------------------- +// CMceComFileSource::~CMceComFileSource +// ----------------------------------------------------------------------------- +// +CMceComFileSource::~CMceComFileSource() + { + delete iSettings; + } + + +// ----------------------------------------------------------------------------- +// CMceComFileSource::CMceComFileSource +// ----------------------------------------------------------------------------- +// +CMceComFileSource::CMceComFileSource() + :CMceComMediaSource( KMceFileSource ), + iInitialInfoRetrieved( EFalse ) + { + } + + +// ----------------------------------------------------------------------------- +// CMceComFileSource::InternalizeFlatL +// ----------------------------------------------------------------------------- +// +void CMceComFileSource::InternalizeFlatL( RReadStream& aReadStream ) + { + CMceComMediaSource::InternalizeFlatL( aReadStream ); + + iFastForward = aReadStream.ReadUint8L(); + iFastRewind = aReadStream.ReadUint8L(); + + TPckgBuf positionBuf; + MceSerial::DecodeL( positionBuf, aReadStream ); + iPosition = positionBuf(); + + TPckgBuf fileBuf; + MceSerial::DecodeL( fileBuf, aReadStream ); + iFileInfo = fileBuf(); + + TPckgBuf tcBuf; + MceSerial::DecodeL( tcBuf, aReadStream ); + iTranscodeInfo = tcBuf(); + + iInitialInfoRetrieved = static_cast( aReadStream.ReadUint8L() ); + + } + + + +// ----------------------------------------------------------------------------- +// CMceComFileSource::ExternalizeFlatL +// ----------------------------------------------------------------------------- +// +void CMceComFileSource::ExternalizeFlatL( RWriteStream& aWriteStream ) + { + CMceComMediaSource::ExternalizeFlatL( aWriteStream ); + + aWriteStream.WriteUint8L( iFastForward ); + aWriteStream.WriteUint8L( iFastRewind ); + + TPckgBuf positionBuf( iPosition ); + MceSerial::EncodeL( positionBuf, aWriteStream ); + + TPckgBuf fileBuf( iFileInfo ); + MceSerial::EncodeL( fileBuf, aWriteStream ); + + TPckgBuf tcBuf( iTranscodeInfo ); + MceSerial::EncodeL( tcBuf, aWriteStream ); + + aWriteStream.WriteUint8L( iInitialInfoRetrieved ); + + + } + + + +// ----------------------------------------------------------------------------- +// CMceComFileSource::CloneL +// ----------------------------------------------------------------------------- +// +CMceComMediaSource* CMceComFileSource::CloneL() + { + CMceComFileSource* copy = new (ELeave) CMceComFileSource(); + Mem::Copy( copy, this, sizeof(CMceComFileSource) ); + copy->Zero(); + copy->iSettings = NULL; + return copy; + + } + + +// ----------------------------------------------------------------------------- +// CMceComFileSource::EventReceivedL +// ----------------------------------------------------------------------------- +// +TInt CMceComFileSource::EventReceivedL( TMceComEvent& aEvent ) + { + + TInt status = CMceComMediaSource::EventReceivedL( aEvent ); + + if ( status != KMceEventNotConsumed ) + { + return status; + } + + if ( aEvent.Id().IsSourceId() ) + { + status = aEvent.Handler().HandleL( *this, aEvent ); + } + else + { + status = KMceEventNotConsumed; + } + + return status; + + } + + +// ----------------------------------------------------------------------------- +// CMceComFileSource::UpdateL +// ----------------------------------------------------------------------------- +// +void CMceComFileSource::UpdateL( CMceComMediaSource& aUpdate ) + { + CMceComMediaSource::UpdateL( aUpdate ); + CMceComFileSource& update = static_cast( aUpdate ); + + iFastForward = update.iFastForward; + iFastRewind = update.iFastRewind; + iPosition = update.iPosition; + iFileInfo = update.iFileInfo; + iTranscodeInfo = update.iTranscodeInfo; + + } + + +#ifdef MCE_COMMON_SERVER_SIDE + + +// ----------------------------------------------------------------------------- +// CMceComFileSource::MccType +// ----------------------------------------------------------------------------- +// +const TUid CMceComFileSource::MccType() + { + return KUidMccFileSource; + } + +// ----------------------------------------------------------------------------- +// CMceComFileSource::InitParamL +// ----------------------------------------------------------------------------- +// +const TDesC8& CMceComFileSource::InitParamL( const CMceComCodec& /*aCodec*/ ) + { + delete iSettings; + iSettings = NULL; + + TPckgBuf settings( iFileInfo.iFileName ); + iSettings = settings.AllocL(); + + return *iSettings; + + } + +// ----------------------------------------------------------------------------- +// CMceComFileSource::InitializedL +// ----------------------------------------------------------------------------- +// +void CMceComFileSource::InitializedL() + { + if ( MediaStream() && MediaStream()->Session() && + &MediaStream()->Session()->SdpSession() ) + { + MediaStream()->Session()->SdpSession().Manager().UpdateConfigKeyL( *this ); + } + } + +#endif//MCE_COMMON_SERVER_SIDE + + + +