--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/profilesservices/ProfileEngine/EngSrc/CProfileFeedbackSettingsImpl.cpp Thu Dec 17 08:52:52 2009 +0200
@@ -0,0 +1,212 @@
+/*
+* Copyright (c) 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: Implementation of the CProfileFeedbackSettingsImpl.
+*
+*/
+
+
+
+// INCLUDE FILES
+#include "CProfileFeedbackSettingsImpl.h"
+#include <centralrepository.h>
+#include "ProfileEngUtils.h"
+#include "ProfileEnginePrivateCRKeys.h"
+#include "ProfilesDebug.h"
+
+#include <hwrmvibrasdkcrkeys.h>
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CProfileFeedbackSettingsImpl::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CProfileFeedbackSettingsImpl* CProfileFeedbackSettingsImpl::NewL()
+ {
+ CProfileFeedbackSettingsImpl* self = new( ELeave ) CProfileFeedbackSettingsImpl;
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// CProfileFeedbackSettingsImpl::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CProfileFeedbackSettingsImpl* CProfileFeedbackSettingsImpl::NewL(
+ const MProfileFeedbackSettings& aProfileFeedbackSettings )
+ {
+ CProfileFeedbackSettingsImpl* self = new( ELeave ) CProfileFeedbackSettingsImpl;
+
+ self->iTactileFeedback = aProfileFeedbackSettings.TactileFeedback();
+ self->iAudioFeedback = aProfileFeedbackSettings.AudioFeedback();
+
+ return self;
+ }
+
+
+// Destructor
+CProfileFeedbackSettingsImpl::~CProfileFeedbackSettingsImpl()
+ {
+ }
+
+
+// -----------------------------------------------------------------------------
+// CProfileFeedbackSettingsImpl::InternalizeL
+//
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CProfileFeedbackSettingsImpl::InternalizeL( CRepository& aCenRep,
+ TInt aProfileId )
+ {
+ PRODEBUG( "CProfileFeedbackSettings::InternalizeL begin" );
+
+ InitPowerSaveMode();
+
+ if ( iPowerSaveMode )
+ {
+ iTactileFeedback = TProfileTactileFeedback( iPsmConfigTactileFeedback );
+ iAudioFeedback = TProfileAudioFeedback( iPsmConfigAudioFeedback );
+ return;
+ }
+
+ TInt tmp( 0 );
+ // Tactile feedback
+ User::LeaveIfError(
+ aCenRep.Get( ProfileEngUtils::ResolveKey( KProEngTactileFeedback,
+ aProfileId ), tmp ) );
+ iTactileFeedback = TProfileTactileFeedback( tmp );
+
+ // Audio feedback
+ User::LeaveIfError(
+ aCenRep.Get( ProfileEngUtils::ResolveKey( KProEngAudioFeedback,
+ aProfileId ), tmp ) );
+ iAudioFeedback = TProfileAudioFeedback( tmp );
+ PRODEBUG( "CProfileFeedbackSettings::InternalizeL return" );
+ }
+
+// -----------------------------------------------------------------------------
+// CProfileFeedbackSettingsImpl::ExternalizeL
+//
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CProfileFeedbackSettingsImpl::ExternalizeL( CRepository& aCenRep,
+ TInt aProfileId ) const
+ {
+ if ( ProfileEngUtils::PowerSaveMode() )
+ {
+ return;
+ }
+
+ // Tactile feedback
+ User::LeaveIfError(
+ aCenRep.Set( ProfileEngUtils::ResolveKey( KProEngTactileFeedback,
+ aProfileId ), iTactileFeedback ) );
+
+ // Audio feedback
+ User::LeaveIfError(
+ aCenRep.Set( ProfileEngUtils::ResolveKey( KProEngAudioFeedback,
+ aProfileId ), iAudioFeedback ) );
+
+ }
+
+// -----------------------------------------------------------------------------
+// CProfileFeedbackSettingsImpl::TactileFeedback
+//
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TProfileTactileFeedback CProfileFeedbackSettingsImpl::TactileFeedback() const
+ {
+ return iTactileFeedback;
+ }
+
+// -----------------------------------------------------------------------------
+// CProfileFeedbackSettingsImpl::SetTactileFeedback
+//
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CProfileFeedbackSettingsImpl::SetTactileFeedback( TProfileTactileFeedback aTactileFeedback )
+ {
+ iTactileFeedback = aTactileFeedback;
+ }
+
+// -----------------------------------------------------------------------------
+// CProfileFeedbackSettingsImpl::AudioFeedback
+//
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TProfileAudioFeedback CProfileFeedbackSettingsImpl::AudioFeedback() const
+ {
+ return iAudioFeedback;
+ }
+
+// -----------------------------------------------------------------------------
+// CProfileFeedbackSettingsImpl::SetAudioFeedback
+//
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CProfileFeedbackSettingsImpl::SetAudioFeedback( TProfileAudioFeedback aAudioFeedback )
+ {
+ iAudioFeedback = aAudioFeedback;
+ }
+
+// -----------------------------------------------------------------------------
+// CProfileFeedbackSettingsImpl::InitPowerSaveMode
+//
+// -----------------------------------------------------------------------------
+//
+void CProfileFeedbackSettingsImpl::InitPowerSaveMode()
+ {
+ const TInt KTactileFeedbackOff = 0;
+ const TInt KAudioFeedbackOff = 0;
+
+ iPsmConfigTactileFeedback = KTactileFeedbackOff;
+ iPsmConfigAudioFeedback = KAudioFeedbackOff;
+
+ iPowerSaveMode = ProfileEngUtils::PowerSaveMode();
+
+ if ( iPowerSaveMode )
+ {
+ TRAP_IGNORE( ReadPowerSaveConfigL() );
+ }
+ }
+
+
+// -----------------------------------------------------------------------------
+// CProfileFeedbackSettingsImpl::ReadPowerSaveConfigL
+//
+// -----------------------------------------------------------------------------
+//
+void CProfileFeedbackSettingsImpl::ReadPowerSaveConfigL()
+ {
+ CRepository* cenrep = CRepository::NewLC( KCRUidVibraCtrl );
+ User::LeaveIfError( cenrep->Get( KVibraCtrlProfileFeedbackEnabled,
+ iPsmConfigTactileFeedback ) );
+ CleanupStack::PopAndDestroy( cenrep );
+
+
+ cenrep = CRepository::NewLC( KCRUidProfileEngine );
+ User::LeaveIfError( cenrep->Get( KProEngActiveAudioFeedback,
+ iPsmConfigAudioFeedback ) );
+ CleanupStack::PopAndDestroy( cenrep );
+ }
+
+
+// End of File
+