diff -r b31261fd4e04 -r ccd8e69b5392 mmsharing/mmshmanagersrv/src/musmanagerservercore.cpp --- a/mmsharing/mmshmanagersrv/src/musmanagerservercore.cpp Tue Feb 02 00:09:07 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,360 +0,0 @@ -/* -* 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: ?Description -* -*/ - - -#include "musunittesting.h" - -#include "musmanagerservercore.h" -#include "musapplicationmanager.h" -#include "musavailabilitypluginmanager.h" -#include "musmonitoravailabilityobserver.h" -#include "muslogger.h" -#include "musmanagerservercoreobserver.h" -#include "musmanager.h" - -using namespace MultimediaSharing; - -// CONSTANTS - -// ----------------------------------------------------------------------------- -// CMusManagerServerCore::NewL -// ----------------------------------------------------------------------------- -// -CMusManagerServerCore* CMusManagerServerCore::NewL( - MMusManagerServerCoreObserver& aObserver ) - { - MUS_LOG( "mus: [MUSSRV] -> CMusManagerServerCore::NewL()" ); - - CMusManagerServerCore* self = CMusManagerServerCore::NewLC( aObserver ); - CleanupStack::Pop( self ); - MUS_LOG( "mus: [MUSSRV] <- CMusManagerServerCore::NewL()" ); - return self; - } - -// ----------------------------------------------------------------------------- -// CMusManagerServerCore::NewLC -// ----------------------------------------------------------------------------- -// -CMusManagerServerCore* CMusManagerServerCore::NewLC( - MMusManagerServerCoreObserver& aObserver ) - { - MUS_LOG( "mus: [MUSSRV] -> CMusManagerServerCore::NewLC()" ); - - CMusManagerServerCore* self - = new( ELeave ) CMusManagerServerCore( aObserver ); - CleanupStack::PushL( self ); - self->ConstructL(); - MUS_LOG( "mus: [MUSSRV] <- CMusManagerServerCore::NewLC()" ); - return self; - } - -// ----------------------------------------------------------------------------- -// CMusManagerServerCore::CMusManagerServerCore -// ----------------------------------------------------------------------------- -// -CMusManagerServerCore::CMusManagerServerCore( MMusManagerServerCoreObserver& aObserver ) - : iObserver( aObserver ) - { - } - -// ----------------------------------------------------------------------------- -// CMusManagerServerCore::ConstructL -// ----------------------------------------------------------------------------- -// -void CMusManagerServerCore::ConstructL() - { - MUS_LOG( "mus: [MUSSRV] -> CMusManagerServerCore::ConstructL" ); - - iApplicationManager = CMusApplicationManager::NewL(); - - iPluginManager = CMusAvailabilityPluginManager::NewL( *this, *iApplicationManager ); - - MUS_LOG( "mus: [MUSSRV] <- CMusManagerServerCore::ConstructL" ); - } - -// ----------------------------------------------------------------------------- -// CMusManagerServerCore::~CMusManagerServerCore -// ----------------------------------------------------------------------------- -// -CMusManagerServerCore::~CMusManagerServerCore() - { - MUS_LOG( "mus: [MUSSRV] -> CMusManagerServerCore::CMusManagerServerCore" ); - - // inform ui via application manager (via session api) - - delete iPluginManager; - - delete iApplicationManager; - - // go through interested client sessions - StopMonitoring(); - iAvailabilityMonitors.Close(); - - MUS_LOG( "mus: [MUSSRV] <- CMusManagerServerCore::CMusManagerServerCore" ); - } - -// ----------------------------------------------------------------------------- -// CMusManagerServerCore::~CMusManagerServerCore -// ----------------------------------------------------------------------------- -// -MultimediaSharing::TMusAvailabilityStatus CMusManagerServerCore::AvailabilityQueryL() - { - MUS_LOG( "mus: [MUSSRV] -> CMusManagerServerCore::AvailabilityQueryL" ); - MultimediaSharing::TMusAvailabilityStatus status - = iPluginManager->Availability(); - - MUS_LOG( "mus: [MUSSRV] <- CMusManagerServerCore::AvailabilityQueryL" ); - return status; - } - // ----------------------------------------------------------------------------- -// CMusManagerServerCore::InvestigateAvailability -// ----------------------------------------------------------------------------- -// -void CMusManagerServerCore::CommandL( MultimediaSharing::TCommandType aCommandType ) - { - MUS_LOG( "mus: [MUSSRV] -> CMusManagerServerCore::CommandL" ); - if ( aCommandType == MultimediaSharing::ECommandManualActivation ) - { - MUS_LOG( "mus: [MUSSRV] Manual Activation is started" ) - iPluginManager->ManualQueryL(); - } - MUS_LOG( "mus: [MUSSRV] <- CMusManagerServerCore::CommandL" ); - } - -// ----------------------------------------------------------------------------- -// CMusManagerServerCore::InvestigateAvailability -// ----------------------------------------------------------------------------- -// -void CMusManagerServerCore::InvestigateAvailabilityL() - { - MUS_LOG( "mus: [MUSSRV] -> CMusManagerServerCore::InvestigateAvailabilityL" ); - iPluginManager->InvestigateAvailabilityL(); - MUS_LOG( "mus: [MUSSRV] <- CMusManagerServerCore::InvestigateAvailabilityL" ); - } - -// ----------------------------------------------------------------------------- -// CMusManagerServerCore::InvitationReceived -// ----------------------------------------------------------------------------- -// -void CMusManagerServerCore::InvitationReceivedL( TUid aChannelId ) - { - MUS_LOG( "mus: [MUSSRV] -> CMusManagerServerCore::InvitationReceivedL" ); - - TInt uid = aChannelId.iUid; - - if( uid == CMusManager::ESipInviteDesired && - iPluginManager->ApplicationAllowed() ) - { - // write session boundary values - iApplicationManager->WriteSessionPropertiesL( - MultimediaSharing::EMusReceive, - iPluginManager->Availability(), - iPluginManager->SessionParametersL() ); - - iApplicationManager->StartApplicationL(); - } - else if( uid == CMusManager::ESipInviteNotDesired ) - { - iPluginManager->InvitationReceivedL(); - } - else - { - User::Leave( KErrNotReady ); - } - - MUS_LOG( "mus: [MUSSRV] <- CMusManagerServerCore::InvitationReceivedL" ); - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusManagerServerCore::OptionsReceivedL( TUid /*aChannelId*/ ) - { - MUS_LOG( "mus: [MUSSRV] -> CMusManagerServerCore::OptionsReceivedL" ); - iPluginManager->OptionsReceivedL(); - MUS_LOG( "mus: [MUSSRV] <- CMusManagerServerCore::OptionsReceivedL" ); - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusManagerServerCore::StartMultimediaSharingL( MultimediaSharing::TMusUseCase aUseCase ) - { - MUS_LOG( "mus: [MUSSRV] -> CMusManagerServerCore::StartMultimediaSharingL" ); - if( !iApplicationManager->ApplicationRunning() && - iPluginManager->ApplicationAllowed() ) - { - // write session boundary values - iApplicationManager->WriteSessionPropertiesL( - aUseCase, - iPluginManager->Availability(), - iPluginManager->SessionParametersL() ); - - // start actual application - iApplicationManager->StartApplicationL(); - } - else - { - iApplicationManager->ShowApplicationL(); - } - MUS_LOG( "mus: [MUSSRV] <- CMusManagerServerCore::StartMultimediaSharingL" ); - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusManagerServerCore::StopMultimediaSharingL() - { - MUS_LOG( "mus: [MUSSRV] -> CMusManagerServerCore::StopMultimediaSharingL" ); - iApplicationManager->StopApplicationL(); - MUS_LOG( "mus: [MUSSRV] <- CMusManagerServerCore::StopMultimediaSharingL" ); - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusManagerServerCore::EventNoSessions() - { - MUS_LOG( "mus: [MUSSRV] -> CMusManagerServerCore::EventNoSessions" ); - TRAPD( error, iPluginManager->StopPluginL() ); - if( error ) - { - // iObserver.StopServer(); - } - iObserver.StopServer(); - MUS_LOG( "mus: [MUSSRV] <- CMusManagerServerCore::EventNoSessions" ); - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusManagerServerCore::PluginStopped() - { - MUS_LOG( "mus: [MUSSRV] -> CMusManagerServerCore::PluginStopped" ); - if( iObserver.SessionCount() == 0 ) - { - iObserver.StopServer(); - } - MUS_LOG( "mus: [MUSSRV] <- CMusManagerServerCore::PluginStopped" ); - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusManagerServerCore::AvailabilityChangedL( - MultimediaSharing::TMusAvailabilityStatus aAvailability ) - { - MUS_LOG1( "mus: [MUSSRV] -> CMusManagerServerCore::AvailabilityChangedL( %d )", - aAvailability ); - // inform ui via application manager (via session api) - - iApplicationManager->WriteSessionPropertiesL( - aAvailability, - iPluginManager->SessionParametersL() ); - - if( iAvailabilityMonitors.Count() ) - { - // go through interested client sessions - for( TInt i=0; iAvailabilityChangedL( - aAvailability ); - } - } - - MUS_LOG( "mus: [MUSSRV] <- CMusManagerServerCore::AvailabilityChangedL" ); - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusManagerServerCore::CancelMonitoring( MMusMonitorAvailabilityObserver* aObserver ) - { - TInt index = iAvailabilityMonitors.Find( aObserver ); - - if( index != KErrNotFound ) - { - iAvailabilityMonitors[index]->RequestComplete(); - iAvailabilityMonitors.Remove( index ); - } - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusManagerServerCore::RegisterObserverL( - MMusMonitorAvailabilityObserver* aObserver ) - { - if( iAvailabilityMonitors.Find( aObserver ) == KErrNotFound ) - { - iAvailabilityMonitors.AppendL( aObserver ); - } - MUS_LOG( "mus: [MUSSRV] -> CMusManagerServerCore::RegisterObserver" ); - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusManagerServerCore::RemoveObserver( MMusMonitorAvailabilityObserver* aObserver ) - { - MUS_LOG( "mus: [MUSSRV] -> CMusManagerServerCore::RemoveObserver" ); - TInt index = iAvailabilityMonitors.Find( aObserver ); - - if( index != KErrNotFound ) - { - iAvailabilityMonitors.Remove( index ); - } - MUS_LOG( "mus: [MUSSRV] -> CMusManagerServerCore::RemoveObserver" ); - } - -// ----------------------------------------------------------------------------- -// From MMusAvailabilityPluginManagerObserver. -// Starts live video sharing. -// ----------------------------------------------------------------------------- -// -void CMusManagerServerCore::StartLiveSharingL() - { - StartMultimediaSharingL( MultimediaSharing::EMusLiveVideo ); - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusManagerServerCore::StopMonitoring() - { - // go through interested client sessions - for( TInt i=0; iRequestComplete(); - iAvailabilityMonitors.Remove( i ); - } - } - -// End of File