psln/PslnLibraryLoaders/src/pslnprofilesettingsloader.cpp
changeset 37 89c890c70182
parent 34 6b5204869ed5
child 45 667edd0b8678
--- a/psln/PslnLibraryLoaders/src/pslnprofilesettingsloader.cpp	Fri Jun 25 18:53:58 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,292 +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:  Wrapper for media gallery and profiles libraries.
-*
-*/
-
-#include <MProfile.h> 
-#include <MProfileTones.h>               
-#include <MProfilesNamesArray.h>
-#include <MProfileEngineExtended.h>
-#include <MProfileSetExtraTones.h>
-#include <MProfileSetTones.h>
-#include <MProfileExtended.h>
-#include <MProfileName.h>
-
-#include <DRMHelper.h>
-
-#ifdef RD_CONTENTNOTIFICATION
-#include <contentnotification.hrh>
-#include <contentcreatedevent.h>
-#include <contentnotification.h>
-#endif //RD_CONTENTNOTIFICATION
-#include <coemain.h>
-
-#include "pslnprofilesettingsloader.h"
-#include "PslnConst.h"
-
-#ifdef RD_CONTENTNOTIFICATION
-const TInt KPslnEventArraySize = 2;
-#endif // RD_CONTENTNOTIFICATION
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// C++ default constructor can NOT contain any code, that might leave.
-// ---------------------------------------------------------------------------
-//
-CPslnProfileSettingsLoader::CPslnProfileSettingsLoader()
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// Two-phased constructor.
-// ---------------------------------------------------------------------------
-//
-CPslnProfileSettingsLoader* CPslnProfileSettingsLoader::NewL()
-    {
-    CPslnProfileSettingsLoader* self = 
-        new( ELeave ) CPslnProfileSettingsLoader();
-
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// Destructor
-// ---------------------------------------------------------------------------
-//
-CPslnProfileSettingsLoader::~CPslnProfileSettingsLoader()
-    {
-#ifdef RD_CONTENTNOTIFICATION
-    if ( iEventArray )
-        {
-        iEventArray->Delete( 0 );
-        iEventArray->Reset();        
-        }
-    delete iEventArray;
-#endif // RD_CONTENTNOTIFICATION
-    }
-
-// ---------------------------------------------------------------------------
-// Sets tone for all profiles.
-// ---------------------------------------------------------------------------
-//
-void CPslnProfileSettingsLoader::SetToneForProfilesL( 
-    TInt aType, TDes& aFullName )
-    {
-    MProfileEngineExtended* profileEngine = CreateProfileEngineExtendedL();
-    CleanupReleasePushL( *profileEngine );
-    MProfilesNamesArray* profileArray = profileEngine->ProfilesNamesArrayLC();
-
-    TInt arrayCount( profileArray->MdcaCount() );
-    TInt arrayIndex( 0 );
-    TInt profileId( 0 );
-    TInt activeId( profileEngine->ActiveProfileId() );
-
-    while( arrayIndex < arrayCount )
-    	{
-    	profileId = profileArray->ProfileName( arrayIndex )->Id();
-    	// Updating of the active profile will be done last to make sure that
-    	// UI gets the new value of the ringing tone if settings view is active
-    	// and it is containing settings of another than active profile
-    	if( profileId != activeId )
-    		{
-    	    TRAPD(r, DoSetProfileToneL( profileEngine, profileId, aType, aFullName ));
-    	    // Filter situation when profile is not allowed to be changed
-    	    // e.g. Drive-profile
-    	    if( ( r != KErrNone ) && ( r != KErrAccessDenied ) )
-    	    	{
-    	    	User::Leave( r );
-    	    	}
-    	    }
-    	arrayIndex ++;
-    	}	    
-
-    // Update the active profile:
-    TRAPD(r, DoSetProfileToneL( profileEngine, activeId, aType, aFullName ));
-    if( ( r != KErrNone ) && ( r != KErrAccessDenied ) )
-    	{
-        User::Leave( r );
-        }
-	CleanupStack::PopAndDestroy( 2 ); //profileEngine,profileArray
-    }
-
-// ---------------------------------------------------------------------------
-// Do Sets tone for all profiles.
-// ---------------------------------------------------------------------------
-//
-void CPslnProfileSettingsLoader::DoSetProfileToneL( MProfileEngineExtended* aProfileEngine,
-		TInt aProfileId, TInt aType,const TDesC& aFileName )
-	{
-	MProfileExtended* profile = aProfileEngine->ProfileLC( aProfileId );
-	CDRMHelper* drmHelper = CDRMHelper::NewLC();
-	
-	// Get the old tone in order to remove it from the automated content list
-	TFileName oldTone( ToneL( *profile, aType ) );
-
-	// Replace the old tone with the new tone
-	SetToneL( *profile, aType, aFileName );
-	
-	// Commit changes. Write the new settings to the Profiles Engine
-	aProfileEngine->CommitChangeL( *profile );
-
-	// Register file as automated content
-	TInt err( SetAutomated( drmHelper, aType, aFileName ) );
-	if( err == KErrNone )
-		{
-	    // Remove old tone from the automated content list
-	    RemoveAutomated( drmHelper,oldTone );
-	    }
-	else
-		{
-	    // Put the old tone back into Profiles:
-	    TRAP_IGNORE(
-	    		SetToneL( *profile, aType, oldTone );
-	    		aProfileEngine->CommitChangeL( *profile );
-	            );
-	    }
-
-	CleanupStack::PopAndDestroy( 2 ); // profile,drmHelper
-	}
-
-// ---------------------------------------------------------------------------
-// SetTones.
-// ---------------------------------------------------------------------------
-//
-void CPslnProfileSettingsLoader::SetToneL( MProfileExtended& aProfile,
-   		TInt aType, const TDesC& aFileName )
-	{
-	MProfileSetTones& setTones = aProfile.ProfileSetTones();
-	switch ( aType )
-		{
-		case EAknsMinorSoundRingingTone:
-			setTones.SetRingingTone1L( aFileName );
-			break;
-		case EAknsMinorSoundMessageAlert:
-			setTones.SetMessageAlertToneL( aFileName );
-			break;
-		default:
-			User::Leave( KErrArgument );
-			break;
-		}
-	}
-
-// ---------------------------------------------------------------------------
-// Read Tones.
-// ---------------------------------------------------------------------------
-//
-const TDesC& CPslnProfileSettingsLoader::ToneL( MProfileExtended& aProfile,
-   		TInt aType )
-	{
-	const MProfileTones& tones = aProfile.ProfileTones();	
-	switch ( aType )
-		{
-		case EAknsMinorSoundRingingTone:
-			{
-			return tones.RingingTone1();
-			}
-		case EAknsMinorSoundMessageAlert:
-			{
-			return tones.MessageAlertTone();
-			}
-		default:
-			User::Leave( KErrArgument );
-			break;
-		}
-	return KNullDesC;
-	}
-
-// -----------------------------------------------------------------------------
-// SetAutomated
-// -----------------------------------------------------------------------------
-//
-TInt CPslnProfileSettingsLoader::SetAutomated( CDRMHelper* aDrmHelper,TInt aType,
-                                        const TDesC& aFileName )
-    {
-    switch ( aType )
-    	{
-		case EAknsMinorSoundRingingTone:
-			aDrmHelper->SetAutomatedType( CDRMHelper::EAutomatedTypeRingingTone );
-			break;
-    	case EAknsMinorSoundMessageAlert:
-    		aDrmHelper->SetAutomatedType( CDRMHelper::EAutomatedTypeMessageAlert );
-    		break;
-    	default:
-    		aDrmHelper->SetAutomatedType( CDRMHelper::EAutomatedTypeOther );
-    	}
-    return aDrmHelper->SetAutomatedSilent( aFileName, EFalse );
-    }
-
-// -----------------------------------------------------------------------------
-// RemoveAutomated
-// -----------------------------------------------------------------------------
-//
-void CPslnProfileSettingsLoader::RemoveAutomated( CDRMHelper* aDrmHelper,const TDesC& aFileName )
-    {
-    aDrmHelper->RemoveAutomatedPassive( aFileName ); // ignore return value
-    }
-
-// ---------------------------------------------------------------------------
-// Indicates to the Media Gallery that new file has been copied.
-// ---------------------------------------------------------------------------
-//
-void CPslnProfileSettingsLoader::IndicateFileUpdationL( const TDesC& aFullPath )
-    {
-	// Notice: this code is used to avoid the building warning!
-    aFullPath.Length();
-#ifdef RD_CONTENTNOTIFICATION
-	CContentNotification* notifier = CContentNotification::NewL();
-    CleanupStack::PushL( notifier );
-
-    if ( iEventArray )
-        {
-        iEventArray->Delete( 0 );
-        iEventArray->Reset();
-        delete iEventArray;
-        iEventArray = NULL;
-        }
-
-    iEventArray =
-        new CArrayFixFlat<CContentNotificationEvent*>(KPslnEventArraySize);
-
-	// Nofication about new content
-	CContentNotificationEvent* event = 
-        CContentCreatedEvent::NewL( aFullPath );
-    CleanupStack::PushL( event );
-    iEventArray->AppendL( event );
-    CleanupStack::Pop( event ); // array owns the event
-
-	// Send all notification event with one call
-    User::LeaveIfError( notifier->SendNotification( iEventArray->Array() ) );
-    delete event;
-    event = NULL;
-    CleanupStack::PopAndDestroy( notifier );
-#endif //RD_CONTENTNOTIFICATION
-    }
-
-//----------------------------------------------------------------------------
-// Launcher gate function
-//----------------------------------------------------------------------------
-EXPORT_C TAny* GateFunction()
-    {
-    CPslnProfileSettingsLoader* launcher = NULL;
-    TRAPD( err, launcher = CPslnProfileSettingsLoader::NewL() );
-    if( err != KErrNone )
-        {
-        return NULL;
-        }
-    return launcher;
-    }
-
-//  End of File