--- a/psln/Src/PslnSoundActivator.cpp Fri Jun 25 18:53:58 2010 +0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,265 +0,0 @@
-/*
-* Copyright (c) 2004-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: Activates sound content, if part of the skin.
-*
-*/
-
-
-// INCLUDE FILES
-#include <AknsUtils.h>
-#include <AknsSrvClient.h>
-#include <pathinfo.h>
-#include <driveinfo.h>
-#include <eikenv.h>
-
-// Psln specific.
-#include "pslnprofilesettingsloader.h"
-#include "PslnSoundActivator.h"
-#include "PslnConst.h"
-#include "PslnDebug.h"
-
-
-// CONSTANTS
-// Path and filename of wrapper dll.
-_LIT( KPslnProfilesSettingsLoaderName,
- "\\system\\libs\\PslnProfileSettingsLoader.dll");
-
-// TYPE DEFINITIONS
-// Profiles tone setter.
-typedef TAny* (*NewProfilesSetterL)();
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// C++ default constructor can NOT contain any code, that might leave.
-// -----------------------------------------------------------------------------
-//
-CPslnSoundActivator::CPslnSoundActivator()
- {
- }
-
-// -----------------------------------------------------------------------------
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CPslnSoundActivator* CPslnSoundActivator::NewLC()
- {
- CPslnSoundActivator* self = new( ELeave ) CPslnSoundActivator;
- CleanupStack::PushL( self );
- self->ConstructL();
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// Symbian 2nd phase constructor can leave.
-// ---------------------------------------------------------------------------
-void CPslnSoundActivator::ConstructL()
- {
- }
-
-// -----------------------------------------------------------------------------
-// Destructor.
-// -----------------------------------------------------------------------------
-//
-CPslnSoundActivator::~CPslnSoundActivator()
- {
- delete iProfilesSetter;
- if( iProfilesDllLoaded )
- {
- iProfilesDll.Close();
- }
- iSoundArray.Reset();
- iSoundArray.Close();
- }
-
-// -----------------------------------------------------------------------------
-// CPslnSoundActivator::CollectSoundsL
-// -----------------------------------------------------------------------------
-//
-void CPslnSoundActivator::CollectSoundsL( const TDesC& aSkinPath, TInt& aCount )
- {
- PSLN_TRACE_DEBUG("CPslnSoundActivator::CollectSoundsL BEGIN");
- MAknsSkinInstance* skin = AknsUtils::SkinInstance();
- if ( !skin )
- {
- return;
- }
- iSoundArray.Reset();
-
- TInt i = KErrNotFound;
- while( KPslnSoundItems[++i] != KAknsIIDNone )
- {
- CAknsStringItemData* data =
- static_cast<CAknsStringItemData*>(
- skin->CreateUncachedItemDataL(
- KPslnSoundItems[i],
- EAknsITString ) );
- if ( data )
- {
- CleanupStack::PushL( data );
-
- PSLN_TRACE_DEBUG("CPslnSoundActivator::CollectSoundsL skin item found");
- HBufC* fullName = HBufC::NewLC( KMaxFileName );
- TPtr fullNamePtr = fullName->Des();
-
- if ( aSkinPath.Length() > 0 )
- {
- FindSoundFile( fullNamePtr, data->String(), aSkinPath );
- }
- else
- {
- PSLN_TRACE_DEBUG("CPslnSoundActivator::CollectSoundsL empty path" );
- // @todo - start going through all the drives available.
- }
-
- if( fullNamePtr.Length() > 0 )
- {
- PSLN_TRACE_DEBUG("CPslnSoundActivator::CollectSoundsL file found");
- TPslnSoundActivatorEntry entry;
- entry.iFullName = fullNamePtr;
- entry.iID = KPslnSoundItems[i];
- iSoundArray.Append( entry );
- }
-
- CleanupStack::PopAndDestroy( 2, data ); // data, fullName
- }
- }
- aCount = iSoundArray.Count();
- PSLN_TRACE_DEBUG("CPslnSoundActivator::CollectSoundsL END");
- }
-
-// -----------------------------------------------------------------------------
-// CPslnSoundActivator::ActivateToProfilesL
-// -----------------------------------------------------------------------------
-//
-void CPslnSoundActivator::ActivateToProfilesL()
- {
- PSLN_TRACE_DEBUG("CPslnSoundActivator::ActivateToProfilesL BEGIN");
-
- // Profiles tone setter dll loading.
- if( !iProfilesDllLoaded )
- {
- PSLN_TRACE_DEBUG("CPslnSoundActivator::ActivateToProfilesL about load");
- if( iProfilesDll.Load( KPslnProfilesSettingsLoaderName ) == KErrNone )
- {
- PSLN_TRACE_DEBUG("CPslnSoundActivator::ActivateToProfilesL loaded");
- iProfilesDllLoaded = ETrue;
- // Request the entry function
- NewProfilesSetterL profilesSetter =
- (NewProfilesSetterL) iProfilesDll.Lookup( KPslnDllEntryPoint );
- if( profilesSetter )
- {
- PSLN_TRACE_DEBUG("CPslnSoundActivator::ActivateToProfilesL create");
- // Create the class
- iProfilesSetter =
- (CPslnProfileSettingsLoader*) (*profilesSetter)();
- }
- }
- }
- // The wrapper failed to load.
- if ( !iProfilesSetter )
- {
- User::Leave( KErrNotFound );
- }
-
- MoveSoundFilesL();
-
- // Activate all tones to all profiles.
- for( TInt i = 0; i < iSoundArray.Count(); i++ )
- {
- TPslnSoundActivatorEntry entry = iSoundArray[i];
- PSLN_TRACE_DEBUG1("CPslnSoundActivator::ActivateToProfilesL tone %d", i);
- PSLN_TRACE_DEBUG1("CPslnSoundActivator::ActivateToProfilesL minor ID %d", entry.iID.iMinor);
- PSLN_TRACE_DEBUG1("CPslnSoundActivator::ActivateToProfilesL name lenght %d ", iSoundArray[i].iFullName.Length() );
- iProfilesSetter->SetToneForProfilesL(
- entry.iID.iMinor,
- entry.iFullName );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CPslnSoundActivator::FindSoundFile
-// -----------------------------------------------------------------------------
-//
-void CPslnSoundActivator::FindSoundFile(
- TDes& aFullName, const TDesC& aSoundFile, const TDesC& aSkinPath )
- {
- aFullName.Copy( aSkinPath );
- aFullName.Append( aSoundFile );
- }
-
-// -----------------------------------------------------------------------------
-// CPslnSoundActivator::MoveSoundFilesL
-// -----------------------------------------------------------------------------
-//
-void CPslnSoundActivator::MoveSoundFilesL()
- {
- RAknsSrvSession skinsrv;
- User::LeaveIfError( skinsrv.Connect() );
- CleanupClosePushL( skinsrv );
-
- RFs& fs = CEikonEnv::Static()->FsSession();
-
- for( TInt i = 0; i < iSoundArray.Count(); i++ )
- {
- TPslnSoundActivatorEntry entry = iSoundArray[i];
-
- HBufC* targetPath = NULL;
- TFileName filename;
-
- // Sort out path to which store the sound file.
- TInt driveId;
- User::LeaveIfError(
- RFs::CharToDrive( entry.iFullName[0], driveId ) );
-
- TUint driveStatus;
- User::LeaveIfError(
- DriveInfo::GetDriveStatus( fs, driveId, driveStatus ) );
-
- if ( driveStatus & DriveInfo::EDriveReadOnly )
- {
- // If ROM, then let's store to phone memory.
- User::LeaveIfError(
- DriveInfo::GetDefaultDrive(
- DriveInfo::EDefaultPhoneMemory,
- driveId ) );
- }
-
- User::LeaveIfError(
- PathInfo::GetRootPath( filename, driveId ) );
- filename.Append( PathInfo::SoundsPath() );
- targetPath = filename.AllocLC();
-
- TParsePtrC parse( entry.iFullName );
- TFileName* targetFile = new (ELeave) TFileName;
- CleanupStack::PushL( targetFile );
- targetFile->Copy( *targetPath );
- targetFile->Append( parse.NameAndExt() );
-
- skinsrv.CopySoundFile( entry.iFullName, *targetFile );
- if ( iProfilesSetter )
- {
- PSLN_TRACE_DEBUG("CPslnSoundActivator::MoveSoundFilesL indicate to mgx");
- PSLN_TRACE_DEBUG1("CPslnSoundActivator: Move to \"%S\" ", targetFile );
-
- iProfilesSetter->IndicateFileUpdationL( *targetFile );
- }
- iSoundArray[i].iFullName = *targetFile;
- PSLN_TRACE_DEBUG1("CPslnSoundActivator: Move2 lenght %d ", iSoundArray[i].iFullName.Length() );
- CleanupStack::PopAndDestroy( 2, targetPath );
- }
- CleanupStack::PopAndDestroy(); //skinsrv
- }
-
-// End of File