mmlibs/mmfw/src/Client/Audio/mmfclienttoneplayer.cpp
branchRCL_3
changeset 50 948c7f65f6d4
parent 49 735348f59235
--- a/mmlibs/mmfw/src/Client/Audio/mmfclienttoneplayer.cpp	Tue Aug 31 16:43:06 2010 +0300
+++ b/mmlibs/mmfw/src/Client/Audio/mmfclienttoneplayer.cpp	Wed Sep 01 12:38:50 2010 +0100
@@ -860,7 +860,7 @@
 
 void CMMFMdaAudioToneUtility::CancelPrepare()
 	{
-	// xxx - do we need to cancel the callback?  What if the callback is actually calling back another error?  Probably best not to cancel...
+	// FIXME - do we need to cancel the callback?  What if the callback is actually calling back another error?  Probably best not to cancel...
 	delete iToneConfig;
 	iToneConfig = NULL;
 
@@ -1037,7 +1037,10 @@
 		}
 	else
 		{
-		iAsyncCallback->MatoPlayStarted(KErrNone);
+        if(iPlayStartObserver)
+            {
+            iAsyncCallback->MatoPlayStarted(KErrNone);
+            }
 		}
 	}
 	
@@ -1139,12 +1142,15 @@
 
 void CMMFMdaAudioToneObserverCallback::MatoPlayComplete(TInt aError)
 	{
-	iAction = EPlayComplete;
-	iErrorCode = aError;
-
-	TRequestStatus* s = &iStatus;
-	SetActive();
-	User::RequestComplete(s, KErrNone);
+    if(!IsActive())
+        {
+        iAction = EPlayComplete;
+        iErrorCode = aError;
+        
+        TRequestStatus* s = &iStatus;
+        SetActive();
+        User::RequestComplete(s, KErrNone);
+        }
 	}
 
 void CMMFMdaAudioToneObserverCallback::MatoPlayStarted(TInt aError)