--- a/mmshplugins/mmshsettingsuiplugin/src/mussipprofilemodel.cpp Tue Feb 02 00:09:07 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,355 +0,0 @@
-/*
-* Copyright (c) 2006-2007 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: Model for managing SIP profiles.
-* Version : %version: 16 % << Don't touch! Updated by Synergy at check-out.
-*
-*/
-
-
-
-#include "mussipprofilemodel.h"
-#include "muslogger.h"
-#include "mussettings.inl"
-#include <aknnotewrappers.h>
-#include <StringLoader.h>
-#include <aknview.h>
-#include <sipmanagedprofileregistry.h>
-#include <sipmanagedprofile.h>
-#include <sipprofileregistry.h>
-#include "mussettingsmodel.h"
-
-
-const TInt KUnknownProfileId = 0;
-
-/**
-* VSC Enable/Disable is of type TBool
-*/
-const TUint32 KMuSVSCDisable = 200;
-
-
-// ======== MEMBER FUNCTIONS ========
-
-
-// ----------------------------------------------------------------------------
-//
-// ----------------------------------------------------------------------------
-//
-CMusSIPProfileModel::CMusSIPProfileModel()
- {
- }
-
-// ----------------------------------------------------------------------------
-//
-// ----------------------------------------------------------------------------
-//
-void CMusSIPProfileModel::ConstructL()
- {
- MUS_LOG( "[MUSSET] <- CMusSIPProfileModel::ConstructL()" )
- iEngine = CSIPManagedProfileRegistry::NewL( *this );
- iEngine->ProfilesL( iProfiles );
- SortProfilesL();
- }
-
-// ----------------------------------------------------------------------------
-//
-// ----------------------------------------------------------------------------
-//
-CMusSIPProfileModel* CMusSIPProfileModel::NewL()
- {
- MUS_LOG( "[MUSSET] -> CMusSIPProfileModel::NewL()" )
- CMusSIPProfileModel* self = new( ELeave ) CMusSIPProfileModel();
-
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
-
- MUS_LOG( "[MUSSET] <- CMusSIPProfileModel::NewL()" )
- return self;
- }
-
-// ----------------------------------------------------------------------------
-//
-// ----------------------------------------------------------------------------
-//
-CMusSIPProfileModel::~CMusSIPProfileModel()
- {
- MUS_LOG( "[MUSSET] -> CMusSIPProfileModel::~CMusSIPProfileModel()" )
- iProfiles.ResetAndDestroy();
- delete iEngine;
- MUS_LOG( "[MUSSET] <- CMusSIPProfileModel::~CMusSIPProfileModel()" )
- }
-
-// ----------------------------------------------------------------------------
-// Returns reference to the locally cached SIP profile array.
-// ----------------------------------------------------------------------------
-//
-RPointerArray<CSIPProfile>& CMusSIPProfileModel::ProfileArrayL()
- {
- MUS_LOG( "[MUSSET] <-> CMusSIPProfileModel::ProfileArrayL()" )
- return iProfiles;
- }
-
-// ----------------------------------------------------------------------------
-// Returns index to the default SIP profile in locally cached array.
-// ----------------------------------------------------------------------------
-//
-TInt CMusSIPProfileModel::DefaultProfileIndex()
- {
- MUS_LOG( "[MUSSET] -> CMusSIPProfileModel::DefaultProfileIndex()" )
- TInt index( KErrNotFound );
-
- for ( TInt i = 0; i < iProfiles.Count(); i++ )
- {
- TBool defProfile( EFalse );
- if (
- KErrNone ==
- iProfiles[i]->GetParameter( KSIPDefaultProfile, defProfile )
- && defProfile )
- {
- index = i;
- break;
- }
- }
-
- MUS_LOG1( "[MUSSET] <- CMusSIPProfileModel::DefaultProfileIndex()( %d )",
- index )
- return index;
- }
-
-// ----------------------------------------------------------------------------
-// Returns id of the default SIP profile. If default SIP profile is not found
-// KUnknownProfileId is returned.
-// ----------------------------------------------------------------------------
-//
-TUint32 CMusSIPProfileModel::DefaultProfileId()
- {
- MUS_LOG( "[MUSSET] -> CMusSIPProfileModel::DefaultProfileId()" )
- TUint32 id( KUnknownProfileId );
-
- for ( TInt i = 0; i < iProfiles.Count(); i++ )
- {
- TBool defProfile( EFalse );
- TInt error = iProfiles[i]->GetParameter( KSIPDefaultProfile, defProfile );
- if ( error == KErrNone && defProfile )
- {
- iProfiles[i]->GetParameter( KSIPProfileId, id );
- break;
- }
- }
-
- MUS_LOG1( "[MUSSET] <- CMusSIPProfileModel::DefaultProfileId()( %d )",
- id )
- return id;
- }
-
-// -----------------------------------------------------------------------------
-// Disable SIP Registration.
-// -----------------------------------------------------------------------------
-//
-void CMusSIPProfileModel::DisableProfileL()
- {
- MUS_LOG( "[MUSSET] -> CMusSIPProfileModel::DisableProfileL " )
- CSIPManagedProfile* managedProfile = static_cast<CSIPManagedProfile*>(
- iEngine->ProfileL( DefaultProfileId()) );
- CleanupStack::PushL( managedProfile );
- //Disable registration from profile.dat file
- MUS_LOG( "Add registration parameter profile.dat file " )
- TInt err = managedProfile->SetParameter( KMuSVSCDisable, (TBool)ETrue );
- User::LeaveIfError(err);
- iEngine->SaveL( *managedProfile );
- CleanupStack::PopAndDestroy( managedProfile );
- MUS_LOG( "[MUSSET] <- CMusAvaRegisterAvailability::DisableProfileL " )
- }
-
-// -----------------------------------------------------------------------------
-// Enable SIP Registration.
-// -----------------------------------------------------------------------------
-//
-void CMusSIPProfileModel::EnableProfileL()
- {
- MUS_LOG( "[MUSSET] -> CMusSIPProfileModel::EnableProfileL " )
- CSIPManagedProfile* managedProfile = static_cast<CSIPManagedProfile*>(
- iEngine->ProfileL( DefaultProfileId() ) );
- CleanupStack::PushL( managedProfile );
- //Disable registration from profile.dat file
- MUS_LOG( "Add registration parameter profile.dat file " )
- TInt err = managedProfile->SetParameter( KMuSVSCDisable, (TBool)EFalse );
- User::LeaveIfError(err);
- iEngine->SaveL( *managedProfile );
- CleanupStack::PopAndDestroy( managedProfile );
- MUS_LOG( "[MUSSET] <- CMusAvaRegisterAvailability::EnableRegisterL " )
- }
-
-// -----------------------------------------------------------------------------
-// if SIP Registration enabled.
-// -----------------------------------------------------------------------------
-//
-TBool CMusSIPProfileModel::ProfileEnabledL()
- {
- MUS_LOG( "[MUSSET] -> CMusSIPProfileModel::ProfileEnabledL " )
- CSIPManagedProfile* managedProfile = static_cast<CSIPManagedProfile*>(
- iEngine->ProfileL( DefaultProfileId() ) );
- CleanupStack::PushL( managedProfile );
- //Activation status from profile.dat file
- TBool enabled = EFalse;
- MUS_LOG( "Get registration parameter from profile.dat file " )
- TInt err = managedProfile->GetParameter( KMuSVSCDisable, enabled );
- MUS_LOG1( "KMuSVSCDisable value %d )",
- enabled )
- CleanupStack::PopAndDestroy( managedProfile );
- MUS_LOG( "[MUSSET] <- CMusAvaRegisterAvailability::ProfileEnabledL " )
- return enabled;
- }
-
-// ----------------------------------------------------------------------------
-// Returns index of the default SIP profile on locally cached array. If default
-// SIP profile is not found, KErrNotFound is returned.
-// ----------------------------------------------------------------------------
-//
-TInt CMusSIPProfileModel::ProfileIndexByIdL( TUint32 aId )
- {
- MUS_LOG( "[MUSSET] -> CMusSIPProfileModel::ProfileIndexByIdL()" )
- TInt index( KErrNotFound );
-
- for ( TInt i = 0; i < iProfiles.Count(); i++ )
- {
- TUint32 id( KUnknownProfileId );
- TInt error = iProfiles[i]->GetParameter( KSIPProfileId, id );
- if ( error == KErrNone && id == aId )
- {
- index = i;
- break;
- }
- }
-
- MUS_LOG1( "[MUSSET] <- CMusSIPProfileModel::ProfileIndexByIdL()( %d )",
- index )
- return index;
- }
-
-
-// ----------------------------------------------------------------------------
-// Returns profile ID by index.
-// ----------------------------------------------------------------------------
-//
-TUint32 CMusSIPProfileModel::ProfileIdByIndex( TUint aIndex )
- {
- MUS_LOG1( "[MUSSET] -> CMusSIPProfileModel::ProfileIdByIndex()( %d )",
- aIndex )
- TUint32 profileId( KUnknownProfileId );
- if ( aIndex < iProfiles.Count() )
- {
- if ( iProfiles[aIndex]->GetParameter( KSIPProfileId, profileId ) )
- {
- profileId = KUnknownProfileId;
- }
- }
-
- MUS_LOG( "[MUSSET] <- CMusSIPProfileModel::ProfileIdByIndex()" )
- return profileId;
- }
-
-// ----------------------------------------------------------------------------
-// Sorts internal array of SIP profiles by id. Used algorithm is generally
-// slower than quicksort and selectionsort but very feasible for expected
-// amount of items to be sorted and complexity vise.
-// ----------------------------------------------------------------------------
-//
-void CMusSIPProfileModel::SortProfilesL()
- {
- TUint32 profileIdFirst( 0 );
- TUint32 profileIdSecond( 0 );
- for ( TInt a = 0; a < iProfiles.Count() - 1; a++ )
- {
- for ( TInt b = a + 1; b < iProfiles.Count(); b++ )
- {
- User::LeaveIfError( iProfiles[a]->GetParameter(
- KSIPProfileId, profileIdFirst ) );
- User::LeaveIfError( iProfiles[b]->GetParameter(
- KSIPProfileId, profileIdSecond ) );
- if ( profileIdFirst > profileIdSecond )
- {
- CSIPProfile* tmp = iProfiles[b];
- iProfiles[b] = iProfiles[a];
- iProfiles[a] = tmp;
- }
- }
- }
- }
-
-// ----------------------------------------------------------------------------
-// From class MSIPProfileRegistryObserver.
-// Notifies of an event in SIP profile registry.
-// ----------------------------------------------------------------------------
-//
-void CMusSIPProfileModel::ProfileRegistryEventOccurred(
- TUint32 aSIPProfileId, TEvent aEvent )
- {
- MUS_LOG("[MUSSET] -> CMusSIPProfileModel::ProfileRegistryEventOccurred()" )
- MUS_LOG2(" SIPProfileId is %d,Event is %d",aSIPProfileId,aEvent)
-
- // We revert back to default settings if the profile used by MuS is deleted
- if ( aEvent == EProfileDestroyed )
- {
- TRAP_IGNORE(
- //if the profile is the profile used by mush
- if ( MultimediaSharingSettings::SipProfileSettingL() ==
- aSIPProfileId )
- {
- //set the profile to default
- MultimediaSharingSettings::SetSipProfileSettingL(
- CMusSettingsModel::KVsSipProfileDefault );
- //set mush off
- MultimediaSharingSettings::SetActivationSettingL(
- MusSettingsKeys::EActiveInHomeNetworks );
- }
- );
- }
-
- if ( aEvent == EProfileCreated ||
- aEvent == EProfileUpdated ||
- aEvent == EProfileDestroyed )
- {
- // Profiles have been manipulated in SIP side, we must delete client
- // side profile objects and retrieve them again. If fetching fails,
- // we have empty array which is better than showing wrong values to
- // user.
- iProfiles.ResetAndDestroy();
- TRAP_IGNORE( iEngine->ProfilesL( iProfiles ) );
- TRAP_IGNORE( SortProfilesL() );
- }
-
- MUS_LOG( "[MUSSET] <- CMusSIPProfileModel::ProfileRegistryEventOccurred()" )
- }
-
-// ----------------------------------------------------------------------------
-// From class MSIPProfileRegistryObserver.
-// An asynchronous error has occurred related to SIP profile
-// ----------------------------------------------------------------------------
-//
-void CMusSIPProfileModel::ProfileRegistryErrorOccurred(
- TUint32 /*aSIPProfileId*/,
- TInt /*aError*/ )
- {
- MUS_LOG( "[MUSSET] <- CMusSIPProfileModel::ProfileRegistryErrorOccurred()" )
- }
-
-// ----------------------------------------------------------------------------
-//Set CMusSettingsModel to handle ProfileRegistry Event.
-// ----------------------------------------------------------------------------
-//
-void CMusSIPProfileModel::SetCMusSettingsModel(CMusSettingsModel* aCMusSettingsModel)
- {
- iCMusSettingsModel = aCMusSettingsModel;
- }