mmserv/sts/sts/src/stsplayer.cpp
changeset 47 c2e43643db4c
parent 42 1fa3fb47b1e3
child 52 4ce423f34688
--- a/mmserv/sts/sts/src/stsplayer.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/sts/sts/src/stsplayer.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -15,94 +15,88 @@
  * This file provides the implementation for creating and deleting a
  * an MMF based player for playing and stopping a tone playback.
  */
+
+//  Include Files  
 #include "stsplayer.h"
 #include <AudioPreference.h>
 #include <systemtoneservice.h>
-
-
+#include "stsplayersettings.h"
+#include "stssettingsmanager.h"
 
-/*static*/CStsPlayer* CStsPlayer::CreateTonePlayer(
-        MStsPlayerObserver& aObserver,CSystemToneService::TToneType aTone,
-       	unsigned int aContext, const TDesC& aFileName, TInt aVolume,
-       	TUint aAudioPreference, TUint  aAudioPriority)
+/*static*/CStsPlayer* CStsPlayer::Create(MStsPlayerObserver& aObserver,
+        CStsSettingsManager& aSettingsManager, unsigned int aContext,
+        CSystemToneService::TAlarmType aAlarm)
     {
     CStsPlayer* self = 0;
-    
-    self = new CStsPlayer(aObserver, aFileName, 0, aContext, aVolume, aAudioPreference, aAudioPriority);
-    
-           	        
-    		if (self != 0)
-         {
-            bool successful = self->Init();
-            if (!successful)
+    CStsSettingsManager::MPlayerSettings& playerSettings =
+            aSettingsManager.GetPlayerSettings(aAlarm);
+    TUint audioPreference;
+    TUint audioPriority;
+    aSettingsManager.GetAudioPriorityPref(aAlarm, audioPriority,
+            audioPreference);
+    self = new CStsPlayer(aObserver, playerSettings, aContext,
+            audioPreference, audioPriority);
+    if (self != 0)
+        {
+        bool successful = self->Init();
+        if (!successful)
             {
-               delete self;
-               self = 0;
+            delete self;
+            self = 0;
             }
-          }
-        
+        }
     return self;
     }
 
-/*static*/CStsPlayer* CStsPlayer::CreateAlarmPlayer(
-        MStsPlayerObserver& aObserver, CSystemToneService::TAlarmType aAlarm,
-        unsigned int aContext, const TDesC& aFileName, TInt aVolume,
-       	TUint aAudioPreference, TUint  aAudioPriority)
+/*static*/CStsPlayer* CStsPlayer::Create(MStsPlayerObserver& aObserver,
+        CStsSettingsManager& aSettingsManager, unsigned int aContext,
+        CSystemToneService::TToneType aTone)
     {
     CStsPlayer* self = 0;
-   
-   	
-   	self = new CStsPlayer(aObserver, aFileName, 10, aContext, aVolume, aAudioPreference, aAudioPriority);
-   	
-     
-    	if (self != 0)
-      	  {
-        	  bool successful = self->Init();
-          	if (!successful)
+    CStsSettingsManager::MPlayerSettings& playerSettings =
+            aSettingsManager.GetPlayerSettings(aTone);
+    TUint audioPreference;
+    TUint audioPriority;
+    aSettingsManager.GetAudioPriorityPref(aTone, audioPriority,
+            audioPreference);
+    self = new CStsPlayer(aObserver, playerSettings, aContext,
+            audioPreference, audioPriority);
+    if (self != 0)
+        {
+        bool successful = self->Init();
+        if (!successful)
             {
-             	  delete self;
-               	self = 0;
-            }	
-        	}
-        
+            delete self;
+            self = 0;
+            }
+        }
     return self;
     }
 
-
-
-
-
-CStsPlayer::CStsPlayer(MStsPlayerObserver& aObserver, const TDesC& aFileName,
-        int aRepeatNumberOfTimes, unsigned int aContext, TInt aVolume, TUint aAudioPreference, TUint aAudioPriority ) :
-    iObserver(aObserver), iPlayer(0), iFileName(aFileName),
-            iRepeatNumberOfTimes(aRepeatNumberOfTimes), iContext(aContext), iVolume(aVolume),
-            iAudioPreference(aAudioPreference), iAudioPriority(aAudioPriority)
+CStsPlayer::CStsPlayer(MStsPlayerObserver& aObserver,
+        CStsSettingsManager::MPlayerSettings& aPlayerSettings,
+        unsigned int aContext, TUint aAudioPreference, TUint aAudioPriority) :
+    iObserver(aObserver), iPlayerSettings(aPlayerSettings),
+            iContext(aContext), iAudioPreference(aAudioPreference),
+            iAudioPriority(aAudioPriority), iPlayer(0)
     {
-    	
     }
 
 bool CStsPlayer::Init()
     {
-
-    
-        TRAPD(result, iPlayer = CMdaAudioPlayerUtility::NewL(*this));
-        return result == KErrNone;
-    
+    TRAPD(result, iPlayer = CMdaAudioPlayerUtility::NewL(*this));
+    return result == KErrNone;
     }
 
-
 CStsPlayer::~CStsPlayer()
     {
-    	
-    delete iPlayer; 
-    
+    delete iPlayer;
     }
 
 void CStsPlayer::Play()
     {
     // Play the tone
-    TRAPD(err, iPlayer->OpenFileL(iFileName));
-
+    TRAPD( err, iPlayer->OpenFileL(iPlayerSettings.GetFileName()) );
     // If there is an error, indicate that the playback is complete. 
     if (err)
         {
@@ -121,10 +115,15 @@
     {
     if (aError == KErrNone)
         {
-        TTimeIntervalMicroSeconds delay = 0;
+        TInt64 volumex100 = iPlayer->MaxVolume()
+                * iPlayerSettings.GetVolumePercentage();
+        TInt volume = volumex100 / 100;
         // Set PriorityPref
-        iPlayer->SetPriority(iAudioPriority,iAudioPreference);
-        iPlayer->SetRepeats(iRepeatNumberOfTimes, delay);
+        iPlayer->SetPriority(iAudioPriority, iAudioPreference);
+        iPlayer->SetRepeats(iPlayerSettings.GetNumberOfRepeats(),
+                iPlayerSettings.GetRepeatDelay());
+        iPlayer->SetVolume(volume);
+        iPlayer->SetVolumeRamp(iPlayerSettings.GetVolumeRamp());
         iPlayer->Play();
         }
     else