mmshplugins/mmshsettingsuiplugin/src/mussipprofilemodel.cpp
changeset 15 ccd8e69b5392
parent 2 b31261fd4e04
child 20 e8be2c2e049d
child 22 496ad160a278
--- 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;
-	}