diff -r ccd8e69b5392 -r 496ad160a278 tsrc/mceclientstub/src/mcemanager.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tsrc/mceclientstub/src/mcemanager.cpp Fri Jun 11 13:36:18 2010 +0300 @@ -0,0 +1,302 @@ +/* +* 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: +* +*/ + + +#include "mcemanager.h" +#include "mceinsessionobserver.h" +#include "mcesessionobserver.h" +#include "mcesession.h" +#include "mcetransactiondatacontainer.h" +#include "mceamrcodec.h" +#include "mceh263codec.h" +#include "mceavccodec.h" + +// ============================ MEMBER FUNCTIONS =============================== + + +// ----------------------------------------------------------------------------- +// CMceManager::NewL +// ----------------------------------------------------------------------------- +// +EXPORT_C CMceManager* CMceManager::NewL( + const TUid& aAppUid, + TMceTransactionDataContainer* aContainer ) + { + + CMceManager* self = + new (ELeave) CMceManager( aAppUid, aContainer ); + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + return self; + + } + + +// ----------------------------------------------------------------------------- +// CMceManager::~CMceManager +// ----------------------------------------------------------------------------- +// +EXPORT_C CMceManager::~CMceManager() + { + if (iContainer) + { + iContainer->Clear(); + iContainer = 0; + } + + iSessions.Reset(); + iSessions.Close(); + + iSupportedAudioCodecs.ResetAndDestroy(); + iSupportedVideoCodecs.ResetAndDestroy(); + + } + +// ----------------------------------------------------------------------------- +// CMceManager::SetInSessionObserver +// ----------------------------------------------------------------------------- +// +EXPORT_C void CMceManager::SetInSessionObserver( + MMceInSessionObserver* aInSessionObserver ) + { + iInSessionObserver = aInSessionObserver; + } + +// ----------------------------------------------------------------------------- +// CMceManager::SetInEventObserver +// ----------------------------------------------------------------------------- +// +EXPORT_C void CMceManager::SetInEventObserver( + MMceInEventObserver* /*aInEventObserver*/ ) + { + // NOP + } + +// ----------------------------------------------------------------------------- +// CMceManager::SetInReferObserver +// ----------------------------------------------------------------------------- +// +EXPORT_C void CMceManager::SetInReferObserver( + MMceInReferObserver* /*aInReferObserver*/ ) + { + // NOP + } + +// ----------------------------------------------------------------------------- +// CMceManager::SetSessionObserver +// ----------------------------------------------------------------------------- +// +EXPORT_C void CMceManager::SetSessionObserver( + MMceSessionObserver* aSessionObserver ) + { + iSessionObserver = aSessionObserver; + } + +// ----------------------------------------------------------------------------- +// CMceManager::SetEventObserver +// ----------------------------------------------------------------------------- +// +EXPORT_C void CMceManager::SetEventObserver( + MMceEventObserver* /*aEventObserver*/ ) + { + // NOP + } + +// ----------------------------------------------------------------------------- +// CMceManager::SetReferObserver +// ----------------------------------------------------------------------------- +// +EXPORT_C void CMceManager::SetReferObserver( + MMceReferObserver* /*aReferObserver*/ ) + { + // NOP + } + +// ----------------------------------------------------------------------------- +// CMceManager::SetMediaObserver +// ----------------------------------------------------------------------------- +// +EXPORT_C void CMceManager::SetMediaObserver( + MMceStreamObserver* aMediaObserver ) + { + iMediaObserver = aMediaObserver; + } + + +// ----------------------------------------------------------------------------- +// CMceManager::SetRtpObserver +// ----------------------------------------------------------------------------- +// +EXPORT_C void CMceManager::SetRtpObserver( + MMceRtpObserver* aRtpObserver ) + { + iRtpObserver = aRtpObserver; + } + + +// ----------------------------------------------------------------------------- +// CMceManager::SupportedAudioCodecs +// ----------------------------------------------------------------------------- +// +EXPORT_C const RPointerArray& + CMceManager::SupportedAudioCodecs() const + { + return iSupportedAudioCodecs; + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +EXPORT_C const RPointerArray& + CMceManager::SupportedVideoCodecs() const + { + return iSupportedVideoCodecs; + } + + +// ----------------------------------------------------------------------------- +// CMceManager::Sessions +// ----------------------------------------------------------------------------- +// +EXPORT_C const RPointerArray& CMceManager::Sessions() const + { + return iSessions; + } + + +// ----------------------------------------------------------------------------- +// CMceManager::SetDefaultHeadersL +// ----------------------------------------------------------------------------- +// +EXPORT_C void CMceManager::SetDefaultHeadersL( CDesC8Array* aMethods, + CDesC8Array* aHeaders ) + { + delete aMethods; + delete aHeaders; + } + + +// ----------------------------------------------------------------------------- +// CMceManager::DefaultHeadersL +// ----------------------------------------------------------------------------- +// +EXPORT_C CDesC8Array* CMceManager::DefaultHeadersL( const TDesC8& /*aMethod*/ ) const + { + return NULL; + } + + +// ----------------------------------------------------------------------------- +// CMceManager::InSessionObserver +// ----------------------------------------------------------------------------- +// +MMceInSessionObserver* CMceManager::InSessionObserver() const + { + return iInSessionObserver; + } + + +// ----------------------------------------------------------------------------- +// CMceManager::SessionObserver +// ----------------------------------------------------------------------------- +// +MMceSessionObserver* CMceManager::SessionObserver() const + { + return iSessionObserver; + } + +// ----------------------------------------------------------------------------- +// CMceManager::MediaObserver +// ----------------------------------------------------------------------------- +// +MMceStreamObserver* CMceManager::MediaObserver() const + { + return iMediaObserver; + } + +// ----------------------------------------------------------------------------- +// CMceManager::RtpObserver +// ----------------------------------------------------------------------------- +// +MMceRtpObserver* CMceManager::RtpObserver() const + { + return iRtpObserver; + } + + +// ----------------------------------------------------------------------------- +// CMceManager::TransactionContainer +// ----------------------------------------------------------------------------- +// +TMceTransactionDataContainer* CMceManager::TransactionContainer() const + { + return iContainer; + } + + +// ----------------------------------------------------------------------------- +// CMceManager::CMceManager +// ----------------------------------------------------------------------------- +// +CMceManager::CMceManager( const TUid& /*aAppUid*/, + TMceTransactionDataContainer* aContainer ) + :iContainer( aContainer ) + { + + } + + +// ----------------------------------------------------------------------------- +// CMceManager::ConstructL +// ----------------------------------------------------------------------------- +// +void CMceManager::ConstructL() + { + // Fake having PCMU codec + iSupportedAudioCodecs.AppendL( CMceAmrCodec::NewLC( KMceSDPNamePCMU() ) ); + CleanupStack::Pop(); + + iSupportedAudioCodecs.AppendL( CMceAmrCodec::NewLC( KMceSDPNameAMR() ) ); + CleanupStack::Pop(); + + // Avc codec, level default 1 + iSupportedVideoCodecs.AppendL( CMceAvcCodec::NewLC( KMceSDPNameH264() ) ); + CleanupStack::Pop(); + + // Avc codec, level default 1, no profile id or constraint set defined + CMceVideoCodec* avc_2nd_Level_1 = CMceAvcCodec::NewLC( KMceSDPNameH264() ); + avc_2nd_Level_1->SetAllowedBitrates( KMceAvcBitrateLevel1 ); + iSupportedVideoCodecs.AppendL( avc_2nd_Level_1 ); + CleanupStack::Pop( avc_2nd_Level_1 ); + + // Avc codec, level 1_3 + CMceVideoCodec* avcLevel_1_3 = CMceAvcCodec::NewLC( KMceSDPNameH264() ); + avcLevel_1_3->SetAllowedBitrates( KMceAvcCodecProfileIdBaseline | + KMceAvcCodecProfileIopConstraintSet | + KMceAvcBitrateLevel1_3 ); + iSupportedVideoCodecs.AppendL( avcLevel_1_3 ); + CleanupStack::Pop( avcLevel_1_3 ); + + // H263 codec + iSupportedVideoCodecs.AppendL( CMceH263Codec::NewLC( KMceSDPNameH2632000() ) ); + CleanupStack::Pop(); + } + +