--- a/tactilefeedback/tactilefeedbackresolver/src/tactilefeedbackresolver.cpp Wed May 26 00:48:57 2010 +0300
+++ b/tactilefeedback/tactilefeedbackresolver/src/tactilefeedbackresolver.cpp Tue Jun 08 18:37:57 2010 +0800
@@ -23,6 +23,7 @@
#include <centralrepository.h>
#include <ecom/implementationinformation.h>
+#include <ProfileEngineInternalCRKeys.h>
#include "tactilefeedbackprivatecrkeys.h"
#include "tactilefeedbackinternalpskeys.h"
@@ -103,6 +104,7 @@
{
delete iCenRepNotifier;
delete iRepository;
+ delete iProfileRepository;
delete iPropertyWatcher;
delete iHapticsPlayer;
delete iAudioPlayer;
@@ -118,25 +120,15 @@
return ETrue;
}
- return ( ( aFeedback == ETouchFeedbackPopUp ||
+ return ( aFeedback == ETouchFeedbackPopUp ||
aFeedback == ETouchFeedbackPopupOpen ||
aFeedback == ETouchFeedbackPopupClose ||
- aFeedback == ETouchFeedbackBounceEffect ||
- aFeedback == ETouchFeedbackOptionsMenuOpen ||
- aFeedback == ETouchFeedbackOptionsMenuClosed ||
- aFeedback == ETouchFeedbackSubMenuOpen ||
- aFeedback == ETouchFeedbackSubMenuClosed ) &&
+ aFeedback == ETouchFeedbackBounceEffect ) &&
( iLastFeedback == ETouchFeedbackBasicButton ||
iLastFeedback == ETouchFeedbackSensitiveButton ||
iLastFeedback == ETouchFeedbackSensitiveItem ||
iLastFeedback == ETouchFeedbackBasicItem ||
- iLastFeedback == ETouchFeedbackCheckbox ) )
- || (
- aFeedback == ETouchFeedbackPopUp &&
- ( iLastFeedback == ETouchFeedbackPopupOpen ||
- iLastFeedback == ETouchFeedbackOptionsMenuOpen ||
- iLastFeedback == ETouchFeedbackSubMenuOpen )
- );
+ iLastFeedback == ETouchFeedbackCheckbox );
}
// ---------------------------------------------------------------------------
@@ -172,6 +164,7 @@
else if ( IsHigherThanPlaying( aFeedback ) )
{
willPlay = ETrue;
+ StopFeedback();
}
if ( willPlay )
@@ -195,6 +188,16 @@
aPlayAudio = EFalse;
}
+ // check silent mode, if device is in silent mode,
+ // audio feedback is not allowed.
+ TInt err;
+ TInt isAudioSupported;
+ err = iProfileRepository->Get( KProEngSilenceMode, isAudioSupported );
+ if ( KErrNone == err && 1 == isAudioSupported )
+ {
+ aPlayAudio = EFalse;
+ }
+
if ( ( aPlayVibra || aPlayAudio ) && // #1
aFeedback != ETouchFeedbackNone ) // #2
{
@@ -239,7 +242,12 @@
if ( !iRepository )
{
iRepository = CRepository::NewL( KCRUidTactileFeedback );
- }
+ }
+
+ if ( !iProfileRepository )
+ {
+ iProfileRepository = CRepository::NewL( KCRUidProfileEngine );
+ }
TInt minInterval(0);
// Read and store minimun feedback interfal