--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/devsound/devsoundrefplugin/tsrc/swcdwrap/TSU_MMF_SWCDWRAP_AsyncTimer.cpp Fri Oct 08 19:40:43 2010 +0100
@@ -0,0 +1,170 @@
+// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+// EPOC includes
+#include <e32base.h>
+#include "TSU_MMF_SWCDWRAP_AsyncTimer.h"
+
+CMMF_TSU_SWCDWRAP_MakeAsyncHwDeviceCall* CMMF_TSU_SWCDWRAP_MakeAsyncHwDeviceCall::NewL()
+ {
+ CMMF_TSU_SWCDWRAP_MakeAsyncHwDeviceCall* self = new(ELeave)CMMF_TSU_SWCDWRAP_MakeAsyncHwDeviceCall();
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
+ }
+
+void CMMF_TSU_SWCDWRAP_MakeAsyncHwDeviceCall::ConstructL()
+ {
+ CTimer::ConstructL();
+ CActiveScheduler::Add(this);
+ iStopActiveSchedulerOnCall = ETrue;
+ }
+
+CMMF_TSU_SWCDWRAP_MakeAsyncHwDeviceCall::CMMF_TSU_SWCDWRAP_MakeAsyncHwDeviceCall() : CTimer(EPriorityHigh)
+ {
+ }
+
+void CMMF_TSU_SWCDWRAP_MakeAsyncHwDeviceCall::CallPauseAfter(CMMFHwDevice& aHwDevice, TTimeIntervalMicroSeconds32 aTimeInterval)
+ {
+ iCallActionCancelled = EFalse;
+ iHwDevice = &aHwDevice;
+ iCallPause = ETrue;
+ iPauseError = KErrNone;
+ After(aTimeInterval);
+ }
+
+void CMMF_TSU_SWCDWRAP_MakeAsyncHwDeviceCall::CallStopAfter(CMMFHwDevice& aHwDevice, TTimeIntervalMicroSeconds32 aTimeInterval)
+ {
+ iCallActionCancelled = EFalse;
+ iHwDevice = &aHwDevice;
+ iCallStop = ETrue;
+ iStopError = KErrNone;
+ After(aTimeInterval);
+ }
+
+void CMMF_TSU_SWCDWRAP_MakeAsyncHwDeviceCall::CallStopPauseAfter(CMMFHwDevice& aHwDevice, TTimeIntervalMicroSeconds32 aTimeInterval)
+ {
+ iCallActionCancelled = EFalse;
+ iHwDevice = &aHwDevice;
+ iCallStopPause = ETrue;
+ iPauseError = KErrNone;
+ iStopError = KErrNone;
+ After(aTimeInterval);
+ }
+
+void CMMF_TSU_SWCDWRAP_MakeAsyncHwDeviceCall::CallStopAndDeleteCodecAfter(CMMFHwDevice& aHwDevice, TTimeIntervalMicroSeconds32 aTimeInterval)
+ {
+ iCallActionCancelled = EFalse;
+ iHwDevice = &aHwDevice;
+ iCallStopAndDeleteCodec = ETrue;
+ iStopError = KErrNone;
+ After(aTimeInterval);
+ }
+
+
+void CMMF_TSU_SWCDWRAP_MakeAsyncHwDeviceCall::RunL()
+ {
+ if (!iCallActionCancelled)
+ {
+ if (iCallStopPause)
+ {
+ iStopError = iHwDevice->Stop();
+ if (iStopError != KErrNone)
+ {
+ User::Leave(iStopError);
+ }
+
+ iPauseError = iHwDevice->Pause();
+ if (iPauseError != KErrNone)
+ {
+ User::Leave(iPauseError);
+ }
+
+ iCallStopPause = EFalse;
+ }
+ else if (iCallPause)
+ {
+ iPauseError = iHwDevice->Pause();
+ if (iPauseError != KErrNone)
+ {
+ User::Leave(iPauseError);
+ }
+
+ iCallPause = EFalse;
+ }
+ else if (iCallStop)
+ {
+ iStopError = iHwDevice->Stop();
+ if (iStopError != KErrNone)
+ {
+ User::Leave(iStopError);
+ }
+ iCallStop = EFalse;
+ }
+ else if ( iCallStopAndDeleteCodec)
+ {
+ iStopAndDeleteCodecError = iHwDevice->StopAndDeleteCodec();
+ if (iStopAndDeleteCodecError != KErrNone)
+ {
+ User::Leave(iStopAndDeleteCodecError);
+ }
+ iCallStopAndDeleteCodec = EFalse;
+ }
+ }
+
+ if (iStopActiveSchedulerOnCall)
+ {
+ CActiveScheduler::Stop();
+ }
+ }
+
+
+TInt CMMF_TSU_SWCDWRAP_MakeAsyncHwDeviceCall::PauseError()
+ {
+ return iPauseError;
+ }
+
+
+TInt CMMF_TSU_SWCDWRAP_MakeAsyncHwDeviceCall::StopError()
+ {
+ return iStopError;
+ }
+
+
+TInt CMMF_TSU_SWCDWRAP_MakeAsyncHwDeviceCall::StopAndDeleteCodecError()
+ {
+ return iStopAndDeleteCodecError;
+ }
+
+
+void CMMF_TSU_SWCDWRAP_MakeAsyncHwDeviceCall::CancelCallAction()
+ {
+ iCallActionCancelled = ETrue;
+ }
+
+
+void CMMF_TSU_SWCDWRAP_MakeAsyncHwDeviceCall::StopActiveSchedulerOnCall(TBool aStopActiveSchedulerOnCall)
+ {
+ iStopActiveSchedulerOnCall = aStopActiveSchedulerOnCall;
+ }
+
+
+
+
+
+
+
+