mmserv/sts/sts/src/sts.cpp
changeset 47 c2e43643db4c
parent 42 1fa3fb47b1e3
child 52 4ce423f34688
--- a/mmserv/sts/sts/src/sts.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/sts/sts/src/sts.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -15,17 +15,9 @@
  * This file provides the implementation of System Tone Service used
  * by the STS Server.
  */
-
+//  Include Files  
 #include "sts.h"
-#include <AudioPreference.h>
-#include <MProEngEngine.h>
-#include <MProEngProfile.h>
-#include <MProEngTones.h>
-#include <MProEngToneSettings.h>
-#include <ProEngFactory.h>
-
-_LIT(KDefaultFile,"z:\\data\\sounds\\digital\\clock.aac");
-
+#include "stssettingsmanager.h"
 
 class CSts::CPlayerNode
     {
@@ -75,21 +67,17 @@
 /*static*/CSts* CSts::Create()
     {
     CSts* self = new CSts();
-     
+
     if (self != 0)
         {
         bool successful = self->Init();
-       
-        if(successful)
-        {	
-        	TRAPD( err ,self->LoadActiveProfileSettingsL());
-        	if( (err != KErrNone ) && (!successful))
-           {
+
+        if (!successful)
+            {
             delete self;
             self = 0;
-           }
+            }
         }
-      }
     return self;
     }
 
@@ -99,118 +87,31 @@
     }
 
 CSts::CSts() :
-    iNextContext(1)
+    iNextContext(1), iSettingsManager(0)
     {
     }
 
 bool CSts::Init()
     {
-    iEngine =  ProEngFactory::NewEngineL();
-    return true;
+    bool successful = false;
+    iSettingsManager = CStsSettingsManager::Create();
+    if (iSettingsManager != 0)
+        {
+        successful = true;
+        }
+    return successful;
     }
 
 CSts::~CSts()
     {
     CleanUpPlayers();
-    if (iProfile)
-        {
-        iProfile->Release();
-        }
-    	if (iEngine)
-        {
-        iEngine->Release();
-        }
-        
+    CStsSettingsManager::Delete(iSettingsManager);
     }
 
-
-void CSts::LoadActiveProfileSettingsL()
-	{
-		if(!iEngine)
-		   	{
-		   		iEngine =  ProEngFactory::NewEngineL();
-        	}
-		
-        if (iEngine)
-            iProfile = iEngine->ActiveProfileL();
-	    
-	    if (iProfile)
-	        {
-             MProEngToneSettings& settings  = iProfile->ToneSettings();
-             iWarningToneEnabled = settings.WarningAndGameTones();
-	        }
-      
-  }
-
 void CSts::PlayTone(CSystemToneService::TToneType aTone)
     {
-    if(iProfile)
-    
-    {
-    	MProEngTones&         tones = iProfile->ProfileTones();
-		
-			switch (aTone)
-				{
-				case CSystemToneService::EEmailAlert:
-					{
-				    	iFileName.Set(tones.EmailAlertTone());
-				    	iAudioPreference = KAudioPrefNewSMS;
-				    	iAudioPriority = KAudioPriorityRecvMsg ;
-				    	break;
-				    }
-				case CSystemToneService::ESmsAlert:
-					{
-				    	iFileName.Set(tones.MessageAlertTone());
-				    	iAudioPreference = KAudioPrefNewSMS;
-				    	iAudioPriority = KAudioPriorityRecvMsg;
-				    	break; 
-				    }
-				case CSystemToneService::EMmsAlert:
-					{
-				    	iFileName.Set(tones.MessageAlertTone());
-				    	iAudioPreference = KAudioPrefNewSMS;
-				    	iAudioPriority = KAudioPriorityRecvMsg;
-				    	break;
-				  	}
-				case CSystemToneService::EChatAlert:
-					{
-				    	iFileName.Set(tones.MessageAlertTone());
-				    	iAudioPreference = KAudioPrefNewSMS ;
-				    	iAudioPriority = KAudioPriorityRecvMsg;
-				    	break;
-				    } 
-				case CSystemToneService::EWarningBeep:
-				    {
-				    	iAudioPreference = KAudioPrefWarning;
-				    	iAudioPriority =  KAudioPriorityWarningTone ;
-				    	if (iWarningToneEnabled)
-				      	  iFileName.Set(KDefaultFile);
-				    	else
-				      	  iVolume = 0;
-				    
-				    	break;
-				    }
-				default:
-					{
-					  	iFileName.Set(KDefaultFile);
-					  	iAudioPreference = KAudioPrefDefaultTone;
-				        iAudioPriority = KAudioPriorityWarningTone ;
-				      break;
-				    }
-				}
-			}
-			
-		else
-		{			 
-				 iFileName.Set(KDefaultFile);
-				 iAudioPreference = KAudioPrefDefaultTone;
-				 iAudioPriority = KAudioPriorityWarningTone ;
-		}
-		
-		
-    CStsPlayer* player = CStsPlayer::CreateTonePlayer(*this, aTone,
-            iNextContext, iFileName, iVolume, 
-            iAudioPreference, iAudioPriority);
+    CStsPlayer* player = CStsPlayer::Create(*this, *iSettingsManager,
+            iNextContext, aTone);
     if (player != 0)
         {
         iPlayerMap[iNextContext] = new CPlayerNode(player);
@@ -228,55 +129,29 @@
 void CSts::PlayAlarm(CSystemToneService::TAlarmType aAlarm,
         unsigned int& aAlarmContext, MStsPlayAlarmObserver& aObserver)
     {
-    
-    if(iProfile)
-    
-   		 {
-    		MProEngTones&         tones = iProfile->ProfileTones();
-		 
-		 	switch (aAlarm)
-        	{
-        	case CSystemToneService::EIncomingCall:
-        		{
-            		iFileName.Set(tones.RingingTone1());
-            		iAudioPreference = KAudioPrefIncomingCall ;
-					iAudioPriority = KAudioPriorityRingingTone ;
-            		break;
-            	}
-       		case CSystemToneService::EIncomingCallLine2:
-       			{
-            		iFileName.Set(tones.RingingTone2());
-            		iAudioPreference = KAudioPrefIncomingCall;
-					iAudioPriority = KAudioPriorityRingingTone ;
-            		break;  
-            	}
-            case CSystemToneService::EIncomingDataCall:
-            	{
-            		iFileName.Set(tones.VideoCallRingingTone());
-            		iAudioPreference = KAudioPrefIncomingDataCall;
-		    		iAudioPriority = KAudioPriorityRealOnePlayer;
-            		break;
-            	}
-        	default:
-        		{
-        			iFileName.Set(KDefaultFile);
-        			iAudioPreference = KAudioPrefAlarmClock  ;
-					iAudioPriority = KAudioPriorityAlarm;
-					break;
-            	}
-       		}
-      	}
-      else
-		{		
-			     iFileName.Set(KDefaultFile);	 
-				 iAudioPreference = KAudioPrefDefaultTone;
-				 iAudioPriority = KAudioPriorityWarningTone ;
-				 
-		}  
-    	
-    CStsPlayer* player = CStsPlayer::CreateAlarmPlayer(*this, aAlarm,
-             iNextContext, iFileName, iVolume, 
-             iAudioPreference, iAudioPriority);
+    CStsPlayer* player = CStsPlayer::Create(*this, *iSettingsManager,
+            iNextContext, aAlarm);
+    if (player != 0)
+        {
+        iPlayerMap[iNextContext] = new CPlayerNode(player, aObserver);
+        aAlarmContext = iNextContext;
+        iNextContext++;
+        if (iNextContext == 0)
+            iNextContext++;
+        player->Play();
+        }
+    else
+        {
+        //TODO: Add trace here
+        aAlarmContext = 0;
+        }
+    }
+
+void CSts::PlayAlarm(CSystemToneService::TToneType aTone,
+        unsigned int& aAlarmContext, MStsPlayAlarmObserver& aObserver)
+    {
+    CStsPlayer* player = CStsPlayer::Create(*this, *iSettingsManager,
+            iNextContext, aTone);
     if (player != 0)
         {
         iPlayerMap[iNextContext] = new CPlayerNode(player, aObserver);
@@ -308,104 +183,15 @@
         }
     }
 
-
-void CSts::PlayToneStop(CSystemToneService::TToneType aTone,
-        unsigned int& aAlarmContext, MStsPlayAlarmObserver& aObserver)
-    {
-    
-    if(iProfile)
-    
+void CSts::CleanUpPlayers()
     {
-    	MProEngTones&         tones = iProfile->ProfileTones();
-		
-			switch (aTone)
-				{
-				case CSystemToneService::EEmailAlert:
-					{
-				    	iFileName.Set(tones.EmailAlertTone());
-				    	iAudioPreference = KAudioPrefNewSMS;
-				    	iAudioPriority = KAudioPriorityRecvMsg ;
-				    	break;
-				    }
-				case CSystemToneService::ESmsAlert:
-					{
-				    	iFileName.Set(tones.MessageAlertTone());
-				    	iAudioPreference = KAudioPrefNewSMS;
-				    	iAudioPriority = KAudioPriorityRecvMsg;
-				    	break; 
-				    }
-				case CSystemToneService::EMmsAlert:
-					{
-				    	iFileName.Set(tones.MessageAlertTone());
-				    	iAudioPreference = KAudioPrefNewSMS;
-				    	iAudioPriority = KAudioPriorityRecvMsg;
-				    	break;
-				  	}
-				case CSystemToneService::EChatAlert:
-					{
-				    	iFileName.Set(tones.MessageAlertTone());
-				    	iAudioPreference = KAudioPrefNewSMS ;
-				    	iAudioPriority = KAudioPriorityRecvMsg;
-				    	break;
-				    } 
-				case CSystemToneService::EWarningBeep:
-				    {
-				    	iAudioPreference = KAudioPrefWarning;
-				    	iAudioPriority =  KAudioPriorityWarningTone ;
-				    	if (iWarningToneEnabled)
-				      	  iFileName.Set(KDefaultFile);
-				    	else
-				      	  iVolume = 0;
-				    
-				    	break;
-				    }
-				default:
-					{
-					  	iFileName.Set(KDefaultFile);
-					  	iAudioPreference = KAudioPrefDefaultTone;
-				        iAudioPriority = KAudioPriorityWarningTone ;
-				      break;
-				    }
-				}
-			}
-			
-		else
-		{			 
-				 iFileName.Set(KDefaultFile);
-				 iAudioPreference = KAudioPrefDefaultTone;
-				 iAudioPriority = KAudioPriorityWarningTone ;
-		}
-    	
-    CStsPlayer* player = CStsPlayer::CreateTonePlayer(*this, aTone,
-             iNextContext, iFileName, iVolume, 
-             iAudioPreference, iAudioPriority);
-    if (player != 0)
-        {
-        iPlayerMap[iNextContext] = new CPlayerNode(player, aObserver);
-        aAlarmContext = iNextContext;
-        iNextContext++;
-        if (iNextContext == 0)
-            iNextContext++;
-        player->Play();
-        }
-    else
+    while (!iPlayerMap.empty())
         {
         //TODO: Add trace here
-        aAlarmContext = 0;
+        StopAlarm(iPlayerMap.begin()->first);
         }
     }
 
-
-
-void CSts::CleanUpPlayers()
-    {
-        while (!iPlayerMap.empty())
-            {
-            //TODO: Add trace here
-            StopAlarm(iPlayerMap.begin()->first);
-            }
-    }
-
 void CSts::PlayComplete(unsigned int aContext)
     {
     CPlayerNode* node = iPlayerMap[aContext];