diff -r 000000000000 -r 1bce908db942 multimediacommsengine/tsrc/MMCTestDriver/MCETester/src/CTcMCEContext.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/multimediacommsengine/tsrc/MMCTestDriver/MCETester/src/CTcMCEContext.cpp Tue Feb 02 01:04:58 2010 +0200 @@ -0,0 +1,171 @@ +/* +* Copyright (c) 2005 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: Implementation. +* +*/ + + + + +#include "TesterConstants.h" +#include "tcuid.h" +#include "TcLog.h" +#include +#include "CTcCTRLCodec.h" + +#include + +#include "CTcMCEContext.h" +#include "MCEConstants.h" +#include "TTcMceCommandBase.h" +#include "CTcMCEFactory.h" +#include "CTcMCEReceiveQueue.h" +#include "CTcMCEReceived.h" +#include "CTcMCEProfileContainer.h" +#include "CTcMCEMultimediaAPIObserver.h" +#include "CTcMCEFloorControlObserver.h" +#include "CTcMCEEventAPIObserver.h" + +#include "CommandIndex.h" + + +const TUid KUidMCEtestUI = { 0x10203355 }; // UID of the ECOM implementation + +CTcMCEContext* CTcMCEContext::NewLC( CTcCTRLCodec& aCodec, + TInt aIAPId ) + { + CTcMCEContext* self = new( ELeave ) CTcMCEContext( aCodec ); + + CleanupStack::PushL( self ); + self->ConstructL( aIAPId ); + + return self; + } + +CTcMCEContext::~CTcMCEContext() + { + + delete iSipProfile; + + // Deleting manager before session and events should be possible. + // At this moment (29.8.2005) it is not, so we have to clean up + // the object registry before deleting MCEManager. So next line is + // not needed, when MMCE is fixed. + iRegistry.DestroyAll(); + + delete iFCObserver; + delete iFC; + + delete iEventObserver; + delete iMMObserver; + delete iMCEManager; + + delete iSip; + + } + +CTcMCEContext::CTcMCEContext( CTcCTRLCodec& aCodec ) + : CTcContextBase( aCodec ) + { + } + +void CTcMCEContext::ConstructL( TInt /*aIAPId*/ ) + { + + //iIAPId = aIAPId; + iSip = CSIP::NewL( TUid::Null(), *this ); + iSipProfile = CTcMCEProfileContainer::NewL( *this, *iSip ); + + + iMCEManager = CMceManager::NewL( KUidMCEtestUI, &iDataContainer ); + + iMMObserver = CTcMCEMultimediaAPIObserver::NewL( *this ); + iMCEManager->SetSessionObserver( iMMObserver ); + iMCEManager->SetInSessionObserver( iMMObserver ); + iMCEManager->SetMediaObserver( iMMObserver ); + iMCEManager->SetRtpObserver( iMMObserver ); + iMCEManager->SetTransactionObserver( iMMObserver ); + iMCEManager->SetInTransactionObserver( iMMObserver ); + + iEventObserver = CTcMCEEventAPIObserver::NewL( *this ); + iMCEManager->SetEventObserver( iEventObserver ); + iMCEManager->SetInEventObserver( iEventObserver ); + iMCEManager->SetReferObserver( iEventObserver); + iMCEManager->SetInReferObserver( iEventObserver ); + + iFCObserver = CTcMCEFloorControlObserver::NewL( *this ); + iFC = CMceFcMsgExchange::NewL( *iMCEManager, KFCTypeTBCP ); + + } + +// -- CTcContextBase functions ------------------------------------------------ + +TTcCommandBase* CTcMCEContext::CreateCommandL( TTcIdentifier& aId, + MTcTestContext& aContext ) + { + // Use base class to actually create commands. Just provide the command + // array and its size. This creates a command instance. + return CTcContextBase::CreateCommandL( KTcSscCommands, + sizeof( KTcSscCommands ), + aId, aContext ); + } + + +// -- Received queue handling ------------------------------------------------- + + +CTcMCEReceived& CTcMCEContext::ReceivedSessionItemL( TInt aTimeout ) + { + return iMMObserver->ReceivedSessionItemL( aTimeout ); + } + +CTcMCEReceived& CTcMCEContext::ReceivedUpdatedSessionItemL( TInt aTimeout ) + { + return iMMObserver->ReceivedUpdatedSessionItemL( aTimeout ); + } + +CTcMCEReceived& CTcMCEContext::ReceivedStreamItemL( TInt aTimeout ) + { + return iMMObserver->ReceivedStreamItemL( aTimeout ); + } + +CTcMCEReceived& CTcMCEContext::ReceivedRTPItemL( TInt aTimeout ) + { + return iMMObserver->ReceivedRTPItemL( aTimeout ); + } + +CTcMCEReceived& CTcMCEContext::ReceivedEventItemL( TInt aTimeout ) + { + return iEventObserver->ReceivedEventItemL( aTimeout ); + } + +CTcMCEReceived& CTcMCEContext::ReceivedFCItemL( TInt aTimeout ) + { + return iFCObserver->ReceivedFCItemL( aTimeout ); + } + + +// -- from SIPObserver --------------------------------------------------------- + +void CTcMCEContext::IncomingRequest( + TUint32 /*aIapId*/, + CSIPServerTransaction* /*aTransaction*/) + { + // NOP, dummy + } + +void CTcMCEContext::TimedOut(CSIPServerTransaction& /*aTransaction*/) + { + // NOP, dummy + }