diff -r a36789189b53 -r 095bea5f582e mmserv/tms/tmscallserver/src/tmscsdownlink.cpp --- 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 +#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); + } } }