psln/Src/PslnSoundActivator.cpp
changeset 37 89c890c70182
parent 34 6b5204869ed5
child 45 667edd0b8678
--- 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