mmserv/tms/tmscallserver/src/tmscsdownlink.cpp
branchRCL_3
changeset 45 095bea5f582e
parent 40 60e492b28869
child 46 0ac9a5310753
--- a/mmserv/tms/tmscallserver/src/tmscsdownlink.cpp	Thu Aug 19 10:26:11 2010 +0300
+++ b/mmserv/tms/tmscallserver/src/tmscsdownlink.cpp	Tue Aug 31 15:43:02 2010 +0300
@@ -16,6 +16,7 @@
  */
 
 #include <AudioPreference.h>
+#include "tmsutility.h"
 #include "tmscsdownlink.h"
 #include "tmscsdevsoundobserver.h"
 
@@ -37,9 +38,9 @@
 // Second phase constructor
 // -----------------------------------------------------------------------------
 //
-void TMSCSDownlink::ConstructL()
+void TMSCSDownlink::ConstructL(const gint retrytime)
     {
-    TMSCSDevSound::ConstructL(TMS_STREAM_DOWNLINK);
+    TMSCSDevSound::ConstructL(TMS_STREAM_DOWNLINK, retrytime);
 
     if (iDevSound)
         {
@@ -51,11 +52,12 @@
 // Static constructor
 // -----------------------------------------------------------------------------
 //
-TMSCSDownlink* TMSCSDownlink::NewL(TMSCSDevSoundObserver& observer)
+TMSCSDownlink* TMSCSDownlink::NewL(TMSCSDevSoundObserver& observer,
+        const gint retrytime)
     {
     TMSCSDownlink* self = new (ELeave) TMSCSDownlink(observer);
     CleanupStack::PushL(self);
-    self->ConstructL();
+    self->ConstructL(retrytime);
     CleanupStack::Pop(self);
     return self;
     }
@@ -118,7 +120,7 @@
 //
 void TMSCSDownlink::BufferToBeFilled(CMMFBuffer* /*aBuffer*/)
     {
-    //TRACE_PRN_N(_L("TMSCSDownlink::BufferToBeFilled"));
+    TRACE_PRN_N(_L("TMSCSDownlink::BufferToBeFilled"));
 
     // We dont react to devsound messages unless we are activating.
     if (iActivationOngoing)
@@ -136,13 +138,22 @@
 //
 void TMSCSDownlink::PlayError(TInt aError)
     {
-    //TRACE_PRN_N1(_L("TMSCSDownlink::PlayError[%d]"), aError);
+    TRACE_PRN_N1(_L("TMSCSDownlink::PlayError[%d]"), aError);
 
     // We don't react to devsound errors unless we are activating.
-    if (iActivationOngoing && aError == KErrAccessDenied)
+    if (iActivationOngoing && (aError == KErrAccessDenied ||
+            aError == KErrInUse))
         {
-        iActivationOngoing = EFalse;
-        iObserver.DownlinkActivationCompleted(aError);
+        if (iStartRetryTime != 0)
+            {
+            StartTimer();
+            }
+        else
+            {
+            CancelTimer();
+            iActivationOngoing = EFalse;
+            iObserver.DownlinkActivationCompleted(aError);
+            }
         }
     }