diff -r 73a1feb507fb -r bc78a40cd63c mmsharing/mmshengine/src/musengsessionmanager.cpp --- a/mmsharing/mmshengine/src/musengsessionmanager.cpp Tue Aug 31 15:12:07 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,186 +0,0 @@ -/* -* Copyright (c) 2009 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 "musengsessionmanager.h" -#include "musenglivesession.h" -#include "musengclipsession.h" -#include "musengreceivesession.h" -#include "musengtwowaysession.h" -#include "musengtwowayrecvsession.h" -#include "mussessionproperties.h" -#include "muspropertywatch.h" -#include -#include - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -CMusEngSessionManager* CMusEngSessionManager::NewL() - { - CMusEngSessionManager* self = new( ELeave )CMusEngSessionManager(); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -CMusEngSessionManager::~CMusEngSessionManager() - { - delete iUseCaseWatch; - delete iSession; - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -CMusEngSessionManager::CMusEngSessionManager() - { - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusEngSessionManager::ConstructL() - { - TInt useCase; - User::LeaveIfError( RProperty::Get( NMusSessionApi::KCategoryUid, - NMusSessionApi::KUseCase, - useCase ) ); - iSession = CreateMusSessionL( - static_cast< MultimediaSharing::TMusUseCase >( useCase ) ); - - iUseCaseWatch = CMusPropertyWatch::NewL( - *this, NMusSessionApi::KCategoryUid, NMusSessionApi::KUseCase ); - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -MLcSession& CMusEngSessionManager::Session() - { - return *iSession; - } - -// ----------------------------------------------------------------------------- -// If usecase changes while background startup is active, client is -// notified about change by bringing it to foreground and changing current -// active session. Old session is terminated immediately after notification. -// ----------------------------------------------------------------------------- -// -void CMusEngSessionManager::PropertyChanged( - const TUint /*aKey*/, - const TInt aValue ) - { - MUS_LOG1( "mus: [ENGINE] -> CMusEngSessionManager::PropertyChanged, val:%d", - aValue ) - - if ( iSession->IsBackgroundStartup() && aValue != iCurrentUseCase ) - { - MUS_LOG( "mus: [ENGINE] Usecase changed!" ) - MLcUiProvider* uiProvider = iSession->LcUiProvider(); - if ( uiProvider ) - { - CMusEngMceSession* newSession = NULL; - TRAP_IGNORE( newSession = CreateMusSessionL( - static_cast< MultimediaSharing::TMusUseCase >( aValue ) ) ); - if ( newSession ) - { - MUS_LOG( "mus: [ENGINE] Set new active session" ) - CMusEngMceSession* oldSession = iSession; - iSession = newSession; - iSession->SetForegroundStatus( ETrue ); - uiProvider->HandleForegroundStatus( ETrue ); - delete oldSession; - } - } - } - - MUS_LOG( "mus: [ENGINE] <- CMusEngSessionManager::PropertyChanged" ) - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusEngSessionManager::HandlePropertyError( const TInt /*aReason*/ ) - { - // NOP - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -TBool CMusEngSessionManager::IsFeatureSupported( TLcFeature aLcFeature ) - { - return ( aLcFeature == ELcShowInvitingNote || - aLcFeature == ELcShowWaitingNote || - aLcFeature == ELcShowAcceptQuery ); - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -CMusEngMceSession* CMusEngSessionManager::CreateMusSessionL( - MultimediaSharing::TMusUseCase aUseCase ) - { - CMusEngMceSession* session = NULL; - switch ( aUseCase ) - { - case MultimediaSharing::EMusLiveVideo: - { - session = CMusEngLiveSession::NewL(); - break; - } - case MultimediaSharing::EMusClipVideo: - { - session = CMusEngClipSession::NewL(); - break; - } - case MultimediaSharing::EMusReceive: - { - session = CMusEngReceiveSession::NewL(); - break; - } - case MultimediaSharing::EMusTwoWayVideo: - { - session = CMusEngTwoWaySession::NewL(); - break; - } - case MultimediaSharing::EMusReceiveTwoWayVideo: - { - session = CMusEngTwoWayRecvSession::NewL(); - break; - } - default: - User::Leave( KErrNotSupported ); - break; - } - iCurrentUseCase = aUseCase; - return session; - } - -// End of File