phoneengine/phonemodel/src/cpeprofilesettingmonitor.cpp
branchGCC_SURGE
changeset 51 f39ed5e045e0
parent 21 92ab7f8d0eab
parent 45 6b911d05207e
--- a/phoneengine/phonemodel/src/cpeprofilesettingmonitor.cpp	Tue Jun 15 14:14:38 2010 +0100
+++ b/phoneengine/phonemodel/src/cpeprofilesettingmonitor.cpp	Thu Jul 22 16:33:21 2010 +0100
@@ -23,6 +23,7 @@
 #include <mpedatastore.h>
 #include <MProfileExtraTones.h>
 #include <talogger.h>
+#include <ProfileEngineInternalCRKeys.h>
 
 
 /////////////////////////////////////////////////////////////////////////
@@ -63,7 +64,8 @@
 //
 CPEProfileSettingMonitor::CPEProfileSettingMonitor(
         MPEPhoneModelInternal& aModel
-        ) : iModel( aModel )
+        ) : CPECenRepMonitor( KProEngSilenceMode ), 
+            iModel( aModel )
     {
     }
 
@@ -78,7 +80,8 @@
     iProfileEngine = CreateProfileEngineL();
     
     // Retrieve current profile settings    
-    GetProfileSettingsL();
+
+    BaseConstructL( KCRUidProfileEngine );
     
     iModel.SendMessage( MEngineMonitor::EPEMessageProfileChanged ); 
     
@@ -121,8 +124,18 @@
     const TProfileToneSettings& toneSettings = activeTones.ToneSettings();  
     
     // Get ringing type and volume and keypad volume
-    TProfileRingingType ringingType = toneSettings.iRingingType;    
-    iModel.DataStore()->SetRingingType( static_cast<TProfileRingingType>( ringingType ) );
+    TProfileRingingType ringingType = toneSettings.iRingingType;
+    
+    TInt silentVolume(0);
+    if ( KErrNone == Get(silentVolume) && silentVolume )
+        {
+        iModel.DataStore()->SetRingingType(EProfileRingingTypeSilent);
+        }
+    else 
+        {
+        iModel.DataStore()->SetRingingType( static_cast<TProfileRingingType>( ringingType ) );
+        }
+    
     iModel.DataStore()->SetRingingVolume( toneSettings.iRingingVolume );
     iModel.DataStore()->SetTextToSpeech( toneSettings.iTextToSpeech );
                   
@@ -150,6 +163,19 @@
     }
 
 // -----------------------------------------------------------------------------
+// CPEProfileSettingMonitor::UpdateL
+// Callback function - implements virtual function from CPECenRepMonitor
+// This is called whenever cr settings change
+// -----------------------------------------------------------------------------
+//
+void CPEProfileSettingMonitor::UpdateL()
+    {
+    TEFLOGSTRING( KTAINT, "PE CPEProfileSettingMonitor::UpdateL" );
+    GetProfileSettingsL();
+    iModel.SendMessage( MEngineMonitor::EPEMessageProfileChanged );
+    }
+
+// -----------------------------------------------------------------------------
 // CPEProfileSettingMonitor::HandleActiveProfileEventL
 // Callback function - implements virtual function from MProfileChangeObserver
 // This is called whenever profiles settings change