Revision: 201011 RCL_3
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Wed, 31 Mar 2010 23:56:23 +0300
branchRCL_3
changeset 11 d5f04de580b7
parent 8 bc06d8566074
child 12 b74061f7f3d2
Revision: 201011 Kit: 201013
audio/ARM_CMMF_codecs/FrameTable/Group/FrameTable.mmp
devsound/a3fdevsound/src/devsoundadaptor/cdevcommoncontrol.cpp
devsound/a3fdevsound/src/mmfaudioserverproxy/mmfaudioserverproxy.cpp
devsound/a3fdevsound/src/mmfaudioserverproxy/mmfaudioserverproxy.h
devsound/a3fdevsound/src/mmfdevsoundproxy/mmfdevsoundcallbackhandler.cpp
devsound/a3fdevsound/src/mmfdevsoundproxy/mmfdevsoundproxy.cpp
devsound/a3fdevsound/src/mmfdevsoundserver/mmfdevsoundsession.cpp
devsoundextensions/effectspresets/Group/bld.inf
devsoundextensions/effectspresets/StereoWideningUtility/group/bld.inf
layers.sysdef.xml
mdfdevvideoextensions/nga_mdf_postprocessor/inc/NGAPostProcHwDevice.h
mdfdevvideoextensions/nga_mdf_postprocessor/src/NGAPostProcHwDevice.cpp
mm_pub/drm_audio_player_api/tsrc/data/mmc/drm/test3gp.dcf
mm_pub/drm_audio_player_api/tsrc/data/mmc/drm/testmp3.dcf
mmlibs/mmfw/Recogniser/src/constants.h
mmlibs/mmfw/Recogniser/src/mpeg4parser.cpp
mmlibs/mmfw/src/Client/Utility/mmfclientutility.cpp
mmlibs/mmfw/src/Client/Video/mediaclientvideodisplaybody.cpp
mmlibs/mmfw/src/Plugin/Codec/audio/GSM610/101F504A.rss
mmlibs/mmfw/src/Plugin/StdSourceAndSink/Mmffile.cpp
mmlibs/mmfw/src/server/BaseClasses/Mmfformat.cpp
mmlibs/mmfw/tsrc/mmfunittest/group/BLD.INF
mmplugins/lib3gp/impl/inc/mp4file.h
mmplugins/lib3gp/impl/src/file.cpp
mmplugins/lib3gp/impl/src/mp4compose.cpp
mmplugins/lib3gp/impl/src/mp4parse.cpp
mmplugins/lib3gp/wrapper/src/c3gpparse.cpp
mmplugins/mmfwplugins/src/Plugin/Controller/Audio/OggVorbis/OggPlayController/oggdecode.h
mmplugins/mmfwplugins/src/Plugin/Controller/Audio/OggVorbis/OggRecordController/OggEncode.h
mmtestenv/mmtestfw/Source/TestFrameworkClient/TestStep.cpp
mmtestenv/mmtestfw/eabi/TestFrameworkClientU.DEF
omxil/omxilcomponentcommon/bwins/omxilcomponentcommon.def
omxil/omxilcomponentcommon/eabi/omxilcomponentcommon.def
omxil/omxilcomponentcommon/src/common/omxilcallbackmanager.h
--- a/audio/ARM_CMMF_codecs/FrameTable/Group/FrameTable.mmp	Mon Mar 15 12:46:07 2010 +0200
+++ b/audio/ARM_CMMF_codecs/FrameTable/Group/FrameTable.mmp	Wed Mar 31 23:56:23 2010 +0300
@@ -62,7 +62,7 @@
 
 
 
-MW_LAYER_SYSTEMINCLUDE
+OS_LAYER_SYSTEMINCLUDE
 
 SYSTEMINCLUDE   /epoc32/include/mmf/common
 
--- a/devsound/a3fdevsound/src/devsoundadaptor/cdevcommoncontrol.cpp	Mon Mar 15 12:46:07 2010 +0200
+++ b/devsound/a3fdevsound/src/devsoundadaptor/cdevcommoncontrol.cpp	Wed Mar 31 23:56:23 2010 +0300
@@ -613,7 +613,10 @@
         break;
         
     default:
-        break;
+        if(iBeingPreempted)
+            {
+            iAdaptationObserver->PreemptionFinishedCallbackReceived(ETrue); // notify client of end of cycle
+            }
         }
        
     DP_OUT();
--- a/devsound/a3fdevsound/src/mmfaudioserverproxy/mmfaudioserverproxy.cpp	Mon Mar 15 12:46:07 2010 +0200
+++ b/devsound/a3fdevsound/src/mmfaudioserverproxy/mmfaudioserverproxy.cpp	Wed Mar 31 23:56:23 2010 +0300
@@ -29,6 +29,25 @@
 const TInt KInitialTime = 100000;  //100ms
 const TInt KTimeIncrement = 50000; // 50ms 
 
+_LIT_SECURITY_POLICY_C1(KServerHasDRMRights, ECapabilityDRM);
+
+// -----------------------------------------------------------------------------
+// RMMFAudioServerProxy::OpenSessionToTrustedAudioServer
+//
+// -----------------------------------------------------------------------------
+//	
+TInt RMMFAudioServerProxy::OpenSessionToTrustedAudioServer()
+	{
+	return CreateSession(KAudioServerName,
+                                TVersion(KMMFAudioServerVersion,
+                                KMMFAudioServerMinorVersionNumber,
+                                KMMFAudioServerBuildVersionNumber),
+                                -1, // Global pool
+                                EIpcSession_Unsharable,
+                                &KServerHasDRMRights,
+                                NULL); // NULL required for synchronous behaviour
+	}	
+
 // -----------------------------------------------------------------------------
 // RMMFAudioServerProxy::Open
 //
@@ -38,12 +57,8 @@
 	{
 	const TUidType serverUid(KNullUid,KNullUid,KUidAudioServer);
 	// Assume the server is already running and attempt to create a session
-	// 4 message slots
-	TInt err = CreateSession(KAudioServerName,
-								TVersion(KMMFAudioServerVersion,
-								KMMFAudioServerMinorVersionNumber,
-								KMMFAudioServerBuildVersionNumber));
-
+	TInt err = OpenSessionToTrustedAudioServer();
+	
 	if(err == KErrNotFound)
 		{
 		// Server not running
@@ -92,9 +107,8 @@
 				{
 				User::After(waitTime);
 				waitTime+=KTimeIncrement;
-				err = CreateSession(KAudioServerName, TVersion(KMMFAudioServerVersion,
-														KMMFAudioServerMinorVersionNumber,
-														KMMFAudioServerBuildVersionNumber));
+				err = OpenSessionToTrustedAudioServer();				
+				
 				if(err==KErrNone)
 					{
 					//Session created successfully
@@ -105,10 +119,7 @@
 		else
 			{
 			// Create the root server session
-			err = CreateSession(KAudioServerName,
-							TVersion(KMMFAudioServerVersion,
-									KMMFAudioServerMinorVersionNumber,
-									KMMFAudioServerBuildVersionNumber));
+            err = OpenSessionToTrustedAudioServer();
 			}
 		}
 	return err;
--- a/devsound/a3fdevsound/src/mmfaudioserverproxy/mmfaudioserverproxy.h	Mon Mar 15 12:46:07 2010 +0200
+++ b/devsound/a3fdevsound/src/mmfaudioserverproxy/mmfaudioserverproxy.h	Wed Mar 31 23:56:23 2010 +0300
@@ -68,6 +68,10 @@
 	* @return TInt handle to the DevSound server.
 	*/
 	IMPORT_C TInt GetDevSoundSessionHandle();
+	
+private:
+
+	TInt OpenSessionToTrustedAudioServer();
 	};
 
 #endif      // MMFAUDIOSERVERPROXY_H
--- a/devsound/a3fdevsound/src/mmfdevsoundproxy/mmfdevsoundcallbackhandler.cpp	Mon Mar 15 12:46:07 2010 +0200
+++ b/devsound/a3fdevsound/src/mmfdevsoundproxy/mmfdevsoundcallbackhandler.cpp	Wed Mar 31 23:56:23 2010 +0300
@@ -18,7 +18,17 @@
 // INCLUDE FILES
 #include "mmfdevsoundproxy.h"
 #include "mmfdevsoundcallbackhandler.h"
+#ifdef _DEBUG
+#include <e32debug.h>
 
+#define SYMBIAN_DEBPRN0(str)                RDebug::Print(str, this)
+#define SYMBIAN_DEBPRN1(str, val1)          RDebug::Print(str, this, val1)
+#define SYMBIAN_DEBPRN2(str, val1, val2)    RDebug::Print(str, this, val1, val2)
+#else
+#define SYMBIAN_DEBPRN0(str)
+#define SYMBIAN_DEBPRN1(str, val1)
+#define SYMBIAN_DEBPRN2(str, val1, val2)
+#endif //_DEBUG
 
 // ============================ MEMBER FUNCTIONS ==============================
 
@@ -101,11 +111,13 @@
 //
 void CMsgQueueHandler::ReceiveEvents()
 	{
-	if (!IsActive())
+    SYMBIAN_DEBPRN0(_L("CMsgQueueHandler[0x%x]::ReceiveEvents - Enter"));	
+    if (!IsActive())
 		{
 		iMsgQueue->NotifyDataAvailable(iStatus);
 		SetActive();
 		}
+    SYMBIAN_DEBPRN0(_L("CMsgQueueHandler[0x%x]::ReceiveEvents - Exit"));
 	}
 
 // ----------------------------------------------------------------------------
@@ -116,7 +128,8 @@
 //
 void CMsgQueueHandler::RunL()
 	{
-	TInt err = iMsgQueue->Receive(iCurrentItem);
+    SYMBIAN_DEBPRN0(_L("CMsgQueueHandler[0x%x]::RunL - Enter"));
+    TInt err = iMsgQueue->Receive(iCurrentItem);
 
 	if (err == KErrNone || err == KErrUnderflow)
 		{
@@ -205,6 +218,7 @@
 				}
 			}
 		}
+	SYMBIAN_DEBPRN0(_L("CMsgQueueHandler[0x%x]::RunL - Exit"));
 	}
 
 // ----------------------------------------------------------------------------
@@ -214,9 +228,11 @@
 //
 TInt CMsgQueueHandler::RunError(TInt aError)
 	{
-	TMMFEvent event;
+    SYMBIAN_DEBPRN1(_L("CMsgQueueHandler[0x%x]::RunError - Enter. Error [%d]"), aError);
+    TMMFEvent event;
 	event.iErrorCode = aError;
 	iDevSoundObserver.SendEventToClient(event);
+	SYMBIAN_DEBPRN0(_L("CMsgQueueHandler[0x%x]::RunError - Exit"));
 	return KErrNone;
 	}
 
@@ -228,7 +244,9 @@
 //
 void CMsgQueueHandler::DoCancel()
 	{
-	iMsgQueue->CancelDataAvailable();
+    SYMBIAN_DEBPRN0(_L("CMsgQueueHandler[0x%x]::DoCancel - Enter"));
+    iMsgQueue->CancelDataAvailable();
+    SYMBIAN_DEBPRN0(_L("CMsgQueueHandler[0x%x]::DoCancel - Exit"));
 	}
 
 // ----------------------------------------------------------------------------
@@ -238,7 +256,9 @@
 //
 void CMsgQueueHandler::DoInitComplete()
 	{
-	iDevSoundObserver.InitializeComplete(iCurrentItem.iErrorCode);
+    SYMBIAN_DEBPRN0(_L("CMsgQueueHandler[0x%x]::DoInitComplete - Enter"));
+    iDevSoundObserver.InitializeComplete(iCurrentItem.iErrorCode);
+    SYMBIAN_DEBPRN0(_L("CMsgQueueHandler[0x%x]::DoInitComplete - Exit"));
 	}
 
 // ----------------------------------------------------------------------------
@@ -248,8 +268,10 @@
 //
 void CMsgQueueHandler::DoPlayErrorComplete()
 	{
-	iAsyncQueueFinish->CallBack(); // async call to Finish()
+    SYMBIAN_DEBPRN0(_L("CMsgQueueHandler[0x%x]::DoPlayErrorComplete - Enter"));
+    iAsyncQueueFinish->CallBack(); // async call to Finish()
 	iDevSoundObserver.PlayError(iCurrentItem.iErrorCode);
+	SYMBIAN_DEBPRN0(_L("CMsgQueueHandler[0x%x]::DoPlayErrorComplete - Exit"));
 	}
 
 // ----------------------------------------------------------------------------
@@ -260,7 +282,8 @@
 //
 void CMsgQueueHandler::DoBTBFCompleteL()
 	{
-	// Returns either chunk handle or NULL
+    SYMBIAN_DEBPRN0(_L("CMsgQueueHandler[0x%x]::DoBTBFCompleteL - Enter"));
+    // Returns either chunk handle or NULL
 	// any error is assumed to be due to a pending PlayError(), so the error here is ignored - the PlayError() call will ensure the client remains lively
 	// the chunk has been closed by the server. No action should be taken.
 	TBool requestChunk = iDataBuffer==NULL; // if we have no buffer, tell server we need a chunk handle
@@ -281,6 +304,7 @@
 		
 		iDevSoundObserver.BufferToBeFilled(iDataBuffer);
 		}
+	SYMBIAN_DEBPRN0(_L("CMsgQueueHandler[0x%x]::DoBTBFCompleteL - Exit"));
 	}
 
 // ----------------------------------------------------------------------------
@@ -291,7 +315,8 @@
 //
 void CMsgQueueHandler::DoBTBECompleteL()
 	{
-	// Returns either chunk handle or NULL
+    SYMBIAN_DEBPRN0(_L("CMsgQueueHandler[0x%x]::DoBTBECompleteL - Enter"));
+    // Returns either chunk handle or NULL
 	// any error is assumed to be due to a pending RecordError(), so the error here is ignored - the RecordError() call will ensure the client remains lively
 	// the chunk has been closed by the server. No action should be taken.
 	TInt handle = iDevSoundProxy->BufferToBeEmptiedData(iSetPckg);
@@ -305,6 +330,7 @@
 		iDataBuffer->Data().SetLength(iSetPckg().iRequestSize);
 		iDevSoundObserver.BufferToBeEmptied(iDataBuffer);
 		}
+	SYMBIAN_DEBPRN0(_L("CMsgQueueHandler[0x%x]::DoBTBECompleteL - Exit"));
 	}
 
 // ----------------------------------------------------------------------------
@@ -314,8 +340,10 @@
 //
 void CMsgQueueHandler::DoRecordErrorComplete()
 	{
-	iAsyncQueueFinish->CallBack(); // async call to Finish()
+    SYMBIAN_DEBPRN0(_L("CMsgQueueHandler[0x%x]::DoRecordErrorComplete - Enter"));
+    iAsyncQueueFinish->CallBack(); // async call to Finish()
 	iDevSoundObserver.RecordError(iCurrentItem.iErrorCode);
+	SYMBIAN_DEBPRN0(_L("CMsgQueueHandler[0x%x]::DoRecordErrorComplete - Exit"));
 	}
 
 // ----------------------------------------------------------------------------
@@ -325,7 +353,9 @@
 //
 void CMsgQueueHandler::DoToneFinishedComplete()
 	{
-	iDevSoundObserver.ToneFinished(iCurrentItem.iErrorCode);
+    SYMBIAN_DEBPRN0(_L("CMsgQueueHandler[0x%x]::DoToneFinishedComplete - Enter"));
+    iDevSoundObserver.ToneFinished(iCurrentItem.iErrorCode);
+    SYMBIAN_DEBPRN0(_L("CMsgQueueHandler[0x%x]::DoToneFinishedComplete - Exit"));
 	}
 
 // ----------------------------------------------------------------------------
@@ -335,7 +365,9 @@
 //
 void CMsgQueueHandler::DoSendEventToClientComplete()
 	{
-	iDevSoundObserver.SendEventToClient(iCurrentItem.iEventPckg());
+    SYMBIAN_DEBPRN0(_L("CMsgQueueHandler[0x%x]::DoSendEventToClientComplete - Enter"));
+    iDevSoundObserver.SendEventToClient(iCurrentItem.iEventPckg());
+    SYMBIAN_DEBPRN0(_L("CMsgQueueHandler[0x%x]::DoSendEventToClientComplete - Exit"));
 	}
 
 // ----------------------------------------------------------------------------
@@ -346,9 +378,11 @@
 //
 void CMsgQueueHandler::DoPausedRecordComplete()
 	{
-	ASSERT(iEmptyBuffer);
+    SYMBIAN_DEBPRN0(_L("CMsgQueueHandler[0x%x]::DoPausedRecordComplete - Enter"));
+    ASSERT(iEmptyBuffer);
 	iEmptyBuffer->SetLastBuffer(ETrue);
 	iDevSoundObserver.BufferToBeEmptied(iEmptyBuffer);
+	SYMBIAN_DEBPRN0(_L("CMsgQueueHandler[0x%x]::DoPausedRecordComplete - Exit"));
 	}
 
 // ----------------------------------------------------------------------------
@@ -358,7 +392,8 @@
 //
 void CMsgQueueHandler::AssignDataBufferToChunkL(TInt aHandle)
 	{
-	if ( iChunk.Handle() )
+    SYMBIAN_DEBPRN0(_L("CMsgQueueHandler[0x%x]::AssignDataBufferToChunkL - Enter"));
+    if ( iChunk.Handle() )
 		{
 		iChunk.Close();
 		}
@@ -374,20 +409,24 @@
 		{
 		iDataBuffer = CMMFPtrBuffer::NewL();	
 		}
-	UpdateDataBufferL(); 
+	UpdateDataBufferL();
+	SYMBIAN_DEBPRN0(_L("CMsgQueueHandler[0x%x]::AssignDataBufferToChunkL - Exit"));
 	}
 	
 void CMsgQueueHandler::UpdateDataBufferL()
 	{
-	ASSERT(iDataBuffer); // to get here, we should have a data buffer
+    SYMBIAN_DEBPRN0(_L("CMsgQueueHandler[0x%x]::UpdateDataBufferL - Enter"));
+    ASSERT(iDataBuffer); // to get here, we should have a data buffer
 	iDataBuffer->SetPtr(iChunkDataPtr);
 	iDataBuffer->SetRequestSizeL(iSetPckg().iRequestSize);
-	iDataBuffer->SetLastBuffer(EFalse);	
+	iDataBuffer->SetLastBuffer(EFalse);
+	SYMBIAN_DEBPRN0(_L("CMsgQueueHandler[0x%x]::UpdateDataBufferL - Exit"));
 	}
 	
 void CMsgQueueHandler::Finish()
 	{
-	if (iDataBuffer)
+    SYMBIAN_DEBPRN0(_L("CMsgQueueHandler[0x%x]::Finish - Enter"));
+    if (iDataBuffer)
 		{
 		delete iDataBuffer;
 		iDataBuffer = NULL;
@@ -396,6 +435,7 @@
 		{
 		iChunk.Close();
 		}
+	SYMBIAN_DEBPRN0(_L("CMsgQueueHandler[0x%x]::Finish - Exit"));
 	}
 
 // 	AsyncQueueStartCallback
@@ -403,14 +443,16 @@
 
 TInt CMsgQueueHandler::AsyncQueueFinishCallback(TAny* aPtr)
 	{
-	CMsgQueueHandler* self = static_cast<CMsgQueueHandler*>(aPtr);
+    CMsgQueueHandler* self = static_cast<CMsgQueueHandler*>(aPtr);
 	self->DoAsyncQueueFinishCallback();
 	return KErrNone;
 	}
 	
 void CMsgQueueHandler::DoAsyncQueueFinishCallback()
 	{
-	Finish();
+    SYMBIAN_DEBPRN0(_L("CMsgQueueHandler[0x%x]::DoAsyncQueueFinishCallback - Enter"));
+    Finish();
+    SYMBIAN_DEBPRN0(_L("CMsgQueueHandler[0x%x]::DoAsyncQueueFinishCallback - Exit"));
 	}
 
 
--- a/devsound/a3fdevsound/src/mmfdevsoundproxy/mmfdevsoundproxy.cpp	Mon Mar 15 12:46:07 2010 +0200
+++ b/devsound/a3fdevsound/src/mmfdevsoundproxy/mmfdevsoundproxy.cpp	Wed Mar 31 23:56:23 2010 +0300
@@ -17,6 +17,17 @@
 
 // INCLUDE FILES
 #include "mmfdevsoundproxy.h"
+#ifdef _DEBUG
+#include <e32debug.h>
+
+#define SYMBIAN_DEBPRN0(str)                RDebug::Print(str, this)
+#define SYMBIAN_DEBPRN1(str, val1)          RDebug::Print(str, this, val1)
+#define SYMBIAN_DEBPRN2(str, val1, val2)    RDebug::Print(str, this, val1, val2)
+#else
+#define SYMBIAN_DEBPRN0(str)
+#define SYMBIAN_DEBPRN1(str, val1)
+#define SYMBIAN_DEBPRN2(str, val1, val2)
+#endif //_DEBUG
 
 // SYMBIAN_CHECK used to add extra asserts when MACRO is added - helps debugging overall A3F
 
@@ -80,6 +91,7 @@
 //
 EXPORT_C void RMMFDevSoundProxy::Close()
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::Close - Enter"));
 	if (iAudioServerProxy)
 		{
 		if (iAudioServerProxy->Handle() != NULL)
@@ -103,6 +115,7 @@
 		iMsgQueueHandler = NULL;
 		}
 	iMsgQueue.Close();
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::Close - Exit"));
 	}
 
 // -----------------------------------------------------------------------------
@@ -113,7 +126,8 @@
 //
 EXPORT_C TInt RMMFDevSoundProxy::Open()
 	{
-	TInt err = iMsgQueue.CreateGlobal(KNullDesC, KMaxMessageQueueItems);
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::Open - Enter"));
+	TInt err = iMsgQueue.CreateGlobal(KNullDesC, KMaxMessageQueueItems, EOwnerThread);
 	// global, accessible to all that have its handle
 	
 	if (err == KErrNone)
@@ -139,6 +153,7 @@
 		{	
 		Close();
 		}
+	SYMBIAN_DEBPRN1(_L("RMMFDevSoundProxy[0x%x]::Open - Exit [%d]"), err);
 	return err;
 	}
 
@@ -149,7 +164,10 @@
 //
 EXPORT_C TInt RMMFDevSoundProxy::PostOpen()
 	{
-	return SendReceive(EMMFDevSoundProxyPostOpen, iDestinationPckg);
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::PostOpen - Enter"));
+	TInt err = SendReceive(EMMFDevSoundProxyPostOpen, iDestinationPckg);
+	SYMBIAN_DEBPRN1(_L("RMMFDevSoundProxy[0x%x]::PostOpen - Exit [%d]"), err);
+	return err;
 	}
 
 
@@ -161,7 +179,10 @@
 //
 EXPORT_C TInt RMMFDevSoundProxy::SetDevSoundInfo()
 	{
-	return SendReceive(EMMFAudioLaunchRequests);
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::SetDevSoundInfo - Enter"));
+	TInt err = SendReceive(EMMFAudioLaunchRequests);
+	SYMBIAN_DEBPRN1(_L("RMMFDevSoundProxy[0x%x]::SetDevSoundInfo - Exit [%d]"), err);
+	return err;
 	}
 
 // -----------------------------------------------------------------------------
@@ -175,6 +196,7 @@
 							TMMFState aMode,
 							MMMFDevSoundCustomInterfaceObserver& aDevSoundCIObserver)
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::InitializeL - Enter"));
 	TInt err = KErrNone;
 	iDevSoundObserver = &aDevSoundObserver;
 	
@@ -195,7 +217,7 @@
 			iState = EInitializing;
 			}	
 		}
-	
+	SYMBIAN_DEBPRN1(_L("RMMFDevSoundProxy[0x%x]::InitializeL - Exit [%d]"), err);
 	User::LeaveIfError(err);
 	}
 
@@ -227,6 +249,7 @@
 								TMMFState aMode,
 								MMMFDevSoundCustomInterfaceObserver& aDevSoundCIObserver)
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::InitializeL - Enter"));
 	TInt err = KErrNone;
 	if(aMode == EMMFStateTonePlaying)
 		{
@@ -251,7 +274,7 @@
 			iState = EInitializing;
 			}	
 		}
-
+	SYMBIAN_DEBPRN1(_L("RMMFDevSoundProxy[0x%x]::InitializeL - Exit [%d]"), err);
 	User::LeaveIfError(err);
 	}
 
@@ -263,13 +286,15 @@
 //
 EXPORT_C TMMFCapabilities RMMFDevSoundProxy::Capabilities()
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::Capabilities - Enter"));
 	// TODO should we use the following ? SYMBIAN_CHECK(iState>=EInitialized, Panic(EMMFDevSoundProxyCapabilitiesInWrongState));
 	if (iState < EInitialized)
 		{
 		// call has been made before we are initialized. Not much we can do, so return
 		// dummy values but hit debugger on the emulator
 		__DEBUGGER()
-		RDebug::Print(_L("BRDBG:CapabilitiesCalledWhenNotInitialised")); // TODO Remove or redo as trace				
+		RDebug::Print(_L("BRDBG:CapabilitiesCalledWhenNotInitialised")); // TODO Remove or redo as trace
+		SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::Capabilities - Exit"));
 		return KZeroCapabilities;
 		}
 	TMMFDevSoundProxySettings set;
@@ -280,10 +305,12 @@
 					pckg);
 	if (err == KErrNone)
 		{
+		SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::Capabilities - Exit"));
 		return pckg().iCaps;
 		}
 	else
 		{
+		SYMBIAN_DEBPRN1(_L("RMMFDevSoundProxy[0x%x]::Capabilities - Exit [%d]"), err);
 		return KZeroCapabilities;
 		}
 	}
@@ -296,13 +323,15 @@
 //
 EXPORT_C TMMFCapabilities RMMFDevSoundProxy::Config()
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::Config - Enter"));
 	// TODO should we use the following ? SYMBIAN_CHECK(iState>=EInitialized, Panic(EMMFDevSoundProxyConfigInWrongState));
 	if (iState < EInitialized)
 		{
 		// call has been made before we are initialized. Not much we can do, so return
 		// dummy values but hit debugger on the emulator
 		__DEBUGGER()
-		RDebug::Print(_L("BRDBG:ConfigCalledWhenNotInitialised")); // TODO Remove or redo as trace				
+		RDebug::Print(_L("BRDBG:ConfigCalledWhenNotInitialised")); // TODO Remove or redo as trace
+		SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::Config - Exit"));
 		return KZeroCapabilities;
 		}
 	TMMFDevSoundProxySettings set;
@@ -311,6 +340,7 @@
 					iDestinationPckg,
 					KNullDesC8,
 					pckg);
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::Config - Exit"));
 	return pckg().iConfig;
 	}
 
@@ -323,6 +353,7 @@
 EXPORT_C void RMMFDevSoundProxy::SetConfigL(
 	const TMMFCapabilities& aConfig )
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::SetConfigL - Enter"));
 	TInt err = KErrNone;
 	
 	if (iState==EInitialized)
@@ -330,17 +361,16 @@
 		TMMFDevSoundProxySettings set;
 		set.iConfig = aConfig;
 		TMMFDevSoundProxySettingsPckg pckg(set);
-		TInt err = SendReceive(EMMFDevSoundProxySetConfig,
+		err = SendReceive(EMMFDevSoundProxySetConfig,
 							iDestinationPckg,
 							pckg);
-		User::LeaveIfError(err);
 		}
 	else
 		{
 		RDebug::Print(_L("BRDBG:SetConfigCalledWhenNotInitialised")); // TODO Remove or redo as trace				
 		err = KErrNotReady;
 		}
-
+	SYMBIAN_DEBPRN1(_L("RMMFDevSoundProxy[0x%x]::SetConfigL - Exit [%d]"), err);
 	User::LeaveIfError(err);
 	}
 
@@ -352,12 +382,14 @@
 //
 EXPORT_C TInt RMMFDevSoundProxy::MaxVolume()
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::MaxVolume - Enter"));
 	TMMFDevSoundProxySettings set;
 	TMMFDevSoundProxySettingsPckg pckg(set);
 	SendReceiveResult(EMMFDevSoundProxyMaxVolume,
 					iDestinationPckg,
 					KNullDesC8,
 					pckg);
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::MaxVolume - Exit"));
 	return pckg().iMaxVolume;
 	}
 
@@ -369,12 +401,14 @@
 //
 EXPORT_C TInt RMMFDevSoundProxy::Volume()
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::Volume - Enter"));
 	TMMFDevSoundProxySettings set;
 	TMMFDevSoundProxySettingsPckg pckg(set);
 	SendReceiveResult(EMMFDevSoundProxyVolume,
 					iDestinationPckg,
 					KNullDesC8,
 					pckg);
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::Volume - Exit"));
 	return pckg().iVolume;
 	}
 
@@ -386,12 +420,15 @@
 //
 EXPORT_C TInt RMMFDevSoundProxy::SetVolume(TInt aVolume )
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::SetVolume - Enter"));
 	TMMFDevSoundProxySettings set;
 	set.iVolume = aVolume;
 	TMMFDevSoundProxySettingsPckg pckg(set);
-	return SendReceive(EMMFDevSoundProxySetVolume,
+	TInt err = SendReceive(EMMFDevSoundProxySetVolume,
 					iDestinationPckg,
 					pckg);
+	SYMBIAN_DEBPRN1(_L("RMMFDevSoundProxy[0x%x]::SetVolume - Exit [%d]"), err);
+	return err;
 	}
 
 // -----------------------------------------------------------------------------
@@ -402,12 +439,14 @@
 //
 EXPORT_C TInt RMMFDevSoundProxy::MaxGain()
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::MaxGain - Enter"));
 	TMMFDevSoundProxySettings set;
 	TMMFDevSoundProxySettingsPckg pckg(set);
 	SendReceiveResult(EMMFDevSoundProxyMaxGain,
 					iDestinationPckg,
 					KNullDesC8,
 					pckg);
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::MaxGain - Exit"));
 	return pckg().iMaxGain;
 	}
 
@@ -419,12 +458,14 @@
 //
 EXPORT_C TInt RMMFDevSoundProxy::Gain()
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::Gain - Enter"));
 	TMMFDevSoundProxySettings set;
 	TMMFDevSoundProxySettingsPckg pckg(set);
 	SendReceiveResult(EMMFDevSoundProxyGain,
 				iDestinationPckg,
 				KNullDesC8,
 				pckg);
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::Gain - Exit"));
 	return pckg().iGain;
 	}
 
@@ -437,12 +478,16 @@
 EXPORT_C TInt RMMFDevSoundProxy::SetGain(
 	TInt aGain )
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::SetGain - Enter"));
 	TMMFDevSoundProxySettings set;
 	set.iGain = aGain;
 	TMMFDevSoundProxySettingsPckg pckg(set);
-	return SendReceive(EMMFDevSoundProxySetGain,
+
+	TInt err = SendReceive(EMMFDevSoundProxySetGain,
 					iDestinationPckg,
 					pckg);
+	SYMBIAN_DEBPRN1(_L("RMMFDevSoundProxy[0x%x]::SetGain - Exit [%d]"), err);
+	return err;
 	}
 
 // -----------------------------------------------------------------------------
@@ -455,6 +500,7 @@
 		TInt& aLeftPercentage,
 		TInt& aRightPercentage )
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::GetPlayBalanceL - Enter"));
 	TMMFDevSoundProxySettings set;
 	TMMFDevSoundProxySettingsPckg pckg(set);
 	User::LeaveIfError(SendReceiveResult(EMMFDevSoundProxyPlayBalance,
@@ -463,6 +509,7 @@
 									pckg));
 	aLeftPercentage = pckg().iLeftPercentage;
 	aRightPercentage = pckg().iRightPercentage;
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::GetPlayBalanceL - Exit"));
 	}
 
 // -----------------------------------------------------------------------------
@@ -475,6 +522,7 @@
 					TInt aLeftPercentage,
 					TInt aRightPercentage )
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::SetPlayBalanceL - Enter"));
 	TMMFDevSoundProxySettings set;
 	set.iLeftPercentage = aLeftPercentage;
 	set.iRightPercentage = aRightPercentage;
@@ -482,6 +530,7 @@
 	User::LeaveIfError(SendReceive(EMMFDevSoundProxySetPlayBalance,
 								iDestinationPckg,
 								pckg));
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::SetPlayBalanceL - Exit"));
 	}
 
 // -----------------------------------------------------------------------------
@@ -494,6 +543,7 @@
 					TInt& aLeftPercentage,
 					TInt& aRightPercentage )
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::GetRecordBalanceL - Enter"));
 	TMMFDevSoundProxySettings set;
 	TMMFDevSoundProxySettingsPckg pckg(set);
 	User::LeaveIfError(SendReceiveResult(EMMFDevSoundProxyRecordBalance,
@@ -502,6 +552,7 @@
 										pckg));
 	aLeftPercentage = pckg().iLeftPercentage;
 	aRightPercentage = pckg().iRightPercentage;
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::GetRecordBalanceL - Exit"));
 	}
 
 // -----------------------------------------------------------------------------
@@ -514,6 +565,7 @@
 				TInt aLeftPercentage,
 				TInt aRightPercentage )
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::SetRecordBalanceL - Enter"));
 	TMMFDevSoundProxySettings set;
 	set.iLeftPercentage = aLeftPercentage;
 	set.iRightPercentage = aRightPercentage;
@@ -521,6 +573,7 @@
 	User::LeaveIfError(SendReceive(EMMFDevSoundProxySetRecordBalance,
 									iDestinationPckg,
 									pckg));
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::SetRecordBalanceL - Exit"));
 	}
 
 // -----------------------------------------------------------------------------
@@ -531,12 +584,14 @@
 //
 EXPORT_C void RMMFDevSoundProxy::PlayInitL()
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::PlayInitL - Enter"));
 	if (!iDevSoundObserver || iState!=EInitialized)
 		{
 		if (iState == EPlaying || iState == EPlayingBufferWait)
 		    {
 		    // treat PlayInitL() during play as Resume()
 		    User::LeaveIfError(Resume());
+		    SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::PlayInitL - Exit"));
 		    return;
 		    }
 		User::Leave(KErrNotReady);
@@ -545,6 +600,7 @@
 	User::LeaveIfError(SendReceive(EMMFDevSoundProxyPlayInit,
 							iDestinationPckg));
 	iState = EPlaying;
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::PlayInitL - Exit"));
 	}
 
 // -----------------------------------------------------------------------------
@@ -555,6 +611,7 @@
 //
 EXPORT_C void RMMFDevSoundProxy::RecordInitL()
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::RecordInitL - Enter"));
 	if (!iDevSoundObserver || iState!=EInitialized)
 		{
 		if(iState == ERecording || iState == ERecordingBufferWait || iState == ERecordingInLastBufferCycle 
@@ -562,6 +619,7 @@
 		    { 
 		    // treat RecordInitL() during record as Resume()
             User::LeaveIfError(Resume());
+            SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::RecordInitL - Exit"));
             return;
 		    }
         User::Leave(KErrNotReady);
@@ -570,6 +628,7 @@
 	User::LeaveIfError(SendReceive(EMMFDevSoundProxyRecordInit,
 								iDestinationPckg));
 	iState = ERecording;
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::RecordInitL - Exit"));
 	}
 
 // -----------------------------------------------------------------------------
@@ -580,6 +639,7 @@
 //
 EXPORT_C void RMMFDevSoundProxy::PlayData()
 	{
+	//SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::PlayData - Enter")); //Uncommenting this will produce a lot of logging!
 	__ASSERT_ALWAYS(iState == EPlaying || iState == EPlayingBufferWait,
 				Panic(EMMFDevSoundProxyPlayDataWithoutInitialize));
 	ASSERT(iDevSoundObserver);
@@ -592,6 +652,7 @@
 
 	SendReceive(EMMFDevSoundProxyPlayData, iDestinationPckg, pckg);
 	iState = EPlaying;
+	//SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::PlayData - Exit")); //Uncommenting this will produce a lot of logging!
 	}
 
 // -----------------------------------------------------------------------------
@@ -602,6 +663,7 @@
 //
 EXPORT_C void RMMFDevSoundProxy::RecordData()
 	{
+	//SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::RecordData - Enter")); //Uncommenting this will produce a lot of logging!
 	__ASSERT_ALWAYS(iState == ERecording || iState == ERecordingBufferWait ||
                     iState == ERecordingInLastBufferCycle || iState == ERecordingResumingInLastBufferCycle,
 					Panic(EMMFDevSoundProxyRecordDataWithoutInitialize));
@@ -626,6 +688,7 @@
 	        iState = ERecording;
 	        break;
 	    }
+	//SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::RecordData - Exit")); //Uncommenting this will produce a lot of logging!
 	}
 
 // -----------------------------------------------------------------------------
@@ -635,13 +698,15 @@
 // -----------------------------------------------------------------------------
 //
 EXPORT_C void RMMFDevSoundProxy::Stop()
-	{	
+	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::Stop - Enter"));
 	if (iState > EInitialized)
 		{
 		SendReceive(EMMFDevSoundProxyStop, iDestinationPckg);
 		iState = EInitialized;	
 		iMsgQueueHandler->Finish(); // will delete the buffer
 		}
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::Stop - Exit"));
 	}
 
 // -----------------------------------------------------------------------------
@@ -652,10 +717,12 @@
 //
 EXPORT_C void RMMFDevSoundProxy::Pause()
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::Pause - Enter"));
 	if(iState > EInitialized)
 	    {
 	    SendReceive(EMMFDevSoundProxyPause, iDestinationPckg);
 	    }
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::Pause - Exit"));
 	}
 
 // -----------------------------------------------------------------------------
@@ -668,8 +735,10 @@
 								TInt aFrequency,
 								const TTimeIntervalMicroSeconds& aDuration)
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::PlayToneL - Enter"));
 	if(iState==ETonePlaying)
 		{
+		SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::PlayToneL - Exit"));
 		return;
 		}
 	
@@ -687,6 +756,7 @@
 								pckg));
 	iState = ETonePlaying;
 	iToneMode = ESimple;
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::PlayToneL - Exit"));
 	}
 
 // -----------------------------------------------------------------------------
@@ -700,8 +770,10 @@
 									TInt aFrequencyTwo,
 									const TTimeIntervalMicroSeconds& aDuration)
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::PlayDualToneL - Enter"));
 	if(iState==ETonePlaying)
 		{
+		SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::PlayDualToneL - Exit"));
 		return;
 		}
 			
@@ -718,6 +790,7 @@
 	User::LeaveIfError(SendReceive(EMMFDevSoundProxyPlayDualTone, iDestinationPckg, pckg));
 	iState = ETonePlaying;
 	iToneMode = EDual;
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::PlayDualToneL - Exit"));
 	}
 
 // -----------------------------------------------------------------------------
@@ -728,8 +801,10 @@
 //
 EXPORT_C void RMMFDevSoundProxy::PlayDTMFStringL(const TDesC& aDTMFString)
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::PlayDTMFStringL - Enter"));
 	if(iState==ETonePlaying)
 		{
+		SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::PlayDTMFStringL - Exit"));
 		return;
 		}
 			
@@ -749,6 +824,7 @@
 						tempPtr));
 	iState = ETonePlaying;
 	iToneMode = EDTMFString;
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::PlayDTMFStringL - Exit"));
 	}
 
 // -----------------------------------------------------------------------------
@@ -759,8 +835,10 @@
 //
 EXPORT_C void RMMFDevSoundProxy::PlayToneSequenceL(const TDesC8& aData )
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::PlayToneSequenceL - Enter"));
 	if(iState==ETonePlaying)
 		{
+		SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::PlayToneSequenceL - Exit"));
 		return;
 		}
 			
@@ -774,6 +852,7 @@
 								aData));
 	iState = ETonePlaying;
 	iToneMode = ESequence;
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::PlayToneSequenceL - Exit"));
 	}
 
 // -----------------------------------------------------------------------------
@@ -784,8 +863,10 @@
 //
 EXPORT_C void RMMFDevSoundProxy::PlayFixedSequenceL(TInt aSequenceNumber)
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::PlayFixedSequenceL - Enter"));
 	if(iState==ETonePlaying)
 		{
+		SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::PlayFixedSequenceL - Exit"));
 		return;
 		}
 			
@@ -798,6 +879,7 @@
 	User::LeaveIfError(SendReceive(EMMFDevSoundProxyPlayFixedSequence, iDestinationPckg, seqNum));
 	iState = ETonePlaying;
 	iToneMode = EFixedSequence;
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::PlayFixedSequenceL - Exit"));
 	}
 
 // -----------------------------------------------------------------------------
@@ -811,12 +893,14 @@
 									TTimeIntervalMicroSeconds32& aToneOffLength,
 									TTimeIntervalMicroSeconds32& aPauseLength )
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::SetDTMFLengths - Enter"));
 	TMMFDevSoundProxySettings set;
 	set.iToneOnLength = aToneOnLength;
 	set.iToneOffLength = aToneOffLength;
 	set.iPauseLength = aPauseLength;
 	TMMFDevSoundProxySettingsPckg pckg(set);
 	SendReceive(EMMFDevSoundProxySetDTMFLengths, iDestinationPckg, pckg);
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::SetDTMFLengths - Exit"));
 	}
 
 // -----------------------------------------------------------------------------
@@ -828,10 +912,12 @@
 EXPORT_C void RMMFDevSoundProxy::SetVolumeRamp(
 								const TTimeIntervalMicroSeconds& aRampDuration)
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::SetVolumeRamp - Enter"));
 	TMMFDevSoundProxySettings set;
 	set.iDuration = aRampDuration;
 	TMMFDevSoundProxySettingsPckg pckg(set);
 	SendReceive(EMMFDevSoundProxySetVolumeRamp, iDestinationPckg, pckg);
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::SetVolumeRamp - Exit"));
 	}
 
 // -----------------------------------------------------------------------------
@@ -844,6 +930,7 @@
 								RArray<TFourCC>& aSupportedDataTypes,
 								const TMMFPrioritySettings& aPrioritySettings)
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::GetSupportedInputDataTypesL - Enter"));
 	aSupportedDataTypes.Reset();
 
 	TMMFPrioritySettings prioritySet = aPrioritySettings;
@@ -856,6 +943,7 @@
 							pckg,
 							numberOfElementsPckg));
 							
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::GetSupportedInputDataTypesL - Exit 1"));
 
 	HBufC8* buf = HBufC8::NewLC(numberOfElementsPckg()*sizeof(TFourCC));
 	TPtr8 ptr = buf->Des();
@@ -883,6 +971,7 @@
 		}
 	CleanupStack::PopAndDestroy(&stream);
 	CleanupStack::PopAndDestroy(buf);
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::GetSupportedInputDataTypesL - Exit 2"));
 	}
 
 // -----------------------------------------------------------------------------
@@ -895,6 +984,7 @@
 								RArray<TFourCC>& aSupportedDataTypes,
 								const TMMFPrioritySettings& aPrioritySettings)
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::GetSupportedOutputDataTypesL - Enter"));
 	aSupportedDataTypes.Reset();
 
 	TMMFPrioritySettings prioritySet = aPrioritySettings;
@@ -907,6 +997,7 @@
 								pckg,
 								numberOfElementsPckg));
 								
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::GetSupportedOutputDataTypesL - Exit 1"));
 
 	HBufC8* buf = HBufC8::NewLC(numberOfElementsPckg()*sizeof(TFourCC));
 	TPtr8 ptr = buf->Des();
@@ -933,6 +1024,7 @@
 		}
 	CleanupStack::PopAndDestroy(&stream);
 	CleanupStack::PopAndDestroy(buf);
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::GetSupportedOutputDataTypesL - Exit 2"));
 	}
 
 // -----------------------------------------------------------------------------
@@ -943,12 +1035,13 @@
 //
 EXPORT_C TInt RMMFDevSoundProxy::SamplesRecorded()
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::SamplesRecorded - Enter"));
 	TPckgBuf<TInt> numSamples;
 	SendReceiveResult(EMMFDevSoundProxySamplesRecorded,
 					iDestinationPckg,
 					KNullDesC8,
 					numSamples);
-					
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::SamplesRecorded - Exit"));
 	return numSamples();
 	}
 
@@ -960,11 +1053,13 @@
 //
 EXPORT_C TInt RMMFDevSoundProxy::SamplesPlayed()
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::SamplesPlayed - Enter"));
 	TPckgBuf<TInt> numSamples;
 	SendReceiveResult(EMMFDevSoundProxySamplesPlayed,
 					iDestinationPckg,
 					KNullDesC8,
 					numSamples);
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::SamplesPlayed - Exit"));
 	return numSamples();
 	}
 
@@ -979,12 +1074,14 @@
 								const TTimeIntervalMicroSeconds&
 									aRepeatTrailingSilence)
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::SetToneRepeats - Enter"));
 	TPckgBuf<TInt> countRepeat(aRepeatCount);
 	TPckgBuf<TTimeIntervalMicroSeconds> repeatTS(aRepeatTrailingSilence);
 	SendReceive(EMMFDevSoundProxySetToneRepeats,
 				iDestinationPckg,
 				countRepeat,
 				repeatTS);
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::SetToneRepeats - Exit"));
 	}
 
 // -----------------------------------------------------------------------------
@@ -996,10 +1093,12 @@
 EXPORT_C void RMMFDevSoundProxy::SetPrioritySettings(
 								const TMMFPrioritySettings& aPrioritySettings)
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::SetPrioritySettings - Enter"));
 	TPckgBuf<TMMFPrioritySettings> prioritySet(aPrioritySettings);
 	SendReceive(EMMFDevSoundProxySetPrioritySettings,
 				iDestinationPckg,
 				prioritySet);
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::SetPrioritySettings - Exit"));
 	}
 
 // -----------------------------------------------------------------------------
@@ -1010,7 +1109,9 @@
 //
 EXPORT_C const TDesC& RMMFDevSoundProxy::FixedSequenceName(TInt /*aSequenceNumber*/)
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::FixedSequenceName - Enter"));
 	_LIT(KNullDesC, "");
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::FixedSequenceName - Exit"));
 	return KNullDesC;
 	}
 
@@ -1022,13 +1123,15 @@
 //
 EXPORT_C TAny* RMMFDevSoundProxy::CustomInterface(TUid aInterfaceId)
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::CustomInterface - Enter"));
 	TMMFDevSoundProxySettings set;
 	set.iInterface = aInterfaceId;
 	// Added for ask for custom interface
 	TAny* customInterface = NULL;
 	if (aInterfaceId == KMmfUidDevSoundCancelInitializeCustomInterface)
 		{
-		MMMFDevSoundCancelInitialize* result = this; 
+		MMMFDevSoundCancelInitialize* result = this;
+		SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::CustomInterface - Exit"));
 		return result;
 		}
 	TPckgBuf<TAny*> pckg2(customInterface);
@@ -1037,6 +1140,7 @@
 	SendReceiveResult(EMMFDevSoundProxyCustomInterface, 
 							iDestinationPckg, 
 							pckg, pckg2);
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::CustomInterface - Exit"));
 	return reinterpret_cast<TAny*> (customInterface);
 	}
 	
@@ -1048,13 +1152,14 @@
 //
 EXPORT_C TInt RMMFDevSoundProxy::FixedSequenceCount()
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::FixedSequenceCount - Enter"));
 	TPckgBuf<TInt> fixSeqCountPckg;
 	SendReceiveResult(EMMFDevSoundProxyFixedSequenceCount,
 					iDestinationPckg,
 					KNullDesC8,
 					fixSeqCountPckg);
-					
-					
+
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::FixedSequenceCount - Exit"));
 	return fixSeqCountPckg();
 	}
 
@@ -1066,13 +1171,16 @@
 EXPORT_C TInt RMMFDevSoundProxy::BufferToBeFilledData(
 		TBool aRequestChunk, TMMFDevSoundProxyHwBufPckg& aSetPckg)
 	{
+	//SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::BufferToBeFilledData - Enter")); //Uncommenting this will produce a lot of logging!
 	// Note that there will only ever be one of these requests outstanding
 	// per session
 	TPckgBuf<TInt> requestChunkBuf (aRequestChunk);
-	return SendReceiveResult(EMMFDevSoundProxyBTBFData,
+	TInt err = SendReceiveResult(EMMFDevSoundProxyBTBFData,
 							iDestinationPckg,
 							requestChunkBuf,
 							aSetPckg);
+	//SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::BufferToBeFilledData - Exit [%d]"), err); //Uncommenting this will produce a lot of logging!
+	return err;
 	}
 
 // -----------------------------------------------------------------------------
@@ -1083,12 +1191,15 @@
 EXPORT_C TInt RMMFDevSoundProxy::BufferToBeEmptiedData(
 							TMMFDevSoundProxyHwBufPckg& aSetPckg)
 	{
+	//SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::BufferToBeEmptiedData - Enter")); //Uncommenting this will produce a lot of logging!
 	// Note that there will only ever be one of these requests outstanding
 	// per session
-	return SendReceiveResult(EMMFDevSoundProxyBTBEData,
+	TInt err = SendReceiveResult(EMMFDevSoundProxyBTBEData,
 								iDestinationPckg,
 								KNullDesC8,
 								aSetPckg);
+	//SYMBIAN_DEBPRN1(_L("RMMFDevSoundProxy[0x%x]::BufferToBeEmptiedData - Exit [%d]"), err); //Uncommenting this will produce a lot of logging!
+	return err;
 	}
 
 // -----------------------------------------------------------------------------
@@ -1098,10 +1209,13 @@
 //
 EXPORT_C TInt RMMFDevSoundProxy::RegisterAsClient(TUid aEventType, const TDesC8& aNotificationRegistrationData)
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::RegisterAsClient - Enter"));
 	TMMFDevSoundProxySettings set;
 	set.iNotificationEventUid = aEventType;
 	TMMFDevSoundProxySettingsPckg pckg(set);
-	return SendReceive(EMMFDevSoundProxyRequestResourceNotification, iDestinationPckg, pckg, aNotificationRegistrationData);
+	TInt err = SendReceive(EMMFDevSoundProxyRequestResourceNotification, iDestinationPckg, pckg, aNotificationRegistrationData);
+	SYMBIAN_DEBPRN1(_L("RMMFDevSoundProxy[0x%x]::RegisterAsClient - Exit [%d]"), err);
+	return err;
 	}
 
 // -----------------------------------------------------------------------------
@@ -1111,10 +1225,13 @@
 //
 EXPORT_C TInt RMMFDevSoundProxy::CancelRegisterAsClient(TUid aEventType)
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::CancelRegisterAsClient - Enter"));
 	TMMFDevSoundProxySettings set;
 	set.iNotificationEventUid = aEventType;
 	TMMFDevSoundProxySettingsPckg pckg(set);
-	return SendReceiveResult(EMMFDevSoundProxyCancelRequestResourceNotification, iDestinationPckg, KNullDesC8, pckg);
+	TInt err = SendReceiveResult(EMMFDevSoundProxyCancelRequestResourceNotification, iDestinationPckg, KNullDesC8, pckg);
+	SYMBIAN_DEBPRN1(_L("RMMFDevSoundProxy[0x%x]::CancelRegisterAsClient - Exit [%d]"), err);
+	return err;
 	}
 	
 // -----------------------------------------------------------------------------
@@ -1124,10 +1241,13 @@
 //
 EXPORT_C TInt RMMFDevSoundProxy::GetResourceNotificationData(TUid aEventType, TDes8& aNotificationData)
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::GetResourceNotificationData - Enter"));
 	TMMFDevSoundProxySettings set;
 	set.iNotificationEventUid = aEventType;
 	TMMFDevSoundProxySettingsPckg pckg(set);
-	return SendReceiveResult(EMMFDevSoundProxyGetResourceNotificationData, iDestinationPckg, pckg, aNotificationData);
+	TInt err = SendReceiveResult(EMMFDevSoundProxyGetResourceNotificationData, iDestinationPckg, pckg, aNotificationData);
+	SYMBIAN_DEBPRN1(_L("RMMFDevSoundProxy[0x%x]::GetResourceNotificationData - Exit [%d]"), err);
+	return err;
 	}
 
 // -----------------------------------------------------------------------------
@@ -1139,7 +1259,10 @@
 //
 EXPORT_C TInt RMMFDevSoundProxy::WillResumePlay()
 	{
-	return SendReceive(EMMFDevSoundProxyWillResumePlay, iDestinationPckg);
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::WillResumePlay - Enter"));
+	TInt err = SendReceive(EMMFDevSoundProxyWillResumePlay, iDestinationPckg);
+	SYMBIAN_DEBPRN1(_L("RMMFDevSoundProxy[0x%x]::WillResumePlay - Exit [%d]"), err);
+	return err;
 	}
 
 // -----------------------------------------------------------------------------
@@ -1151,6 +1274,7 @@
 
 EXPORT_C TInt RMMFDevSoundProxy::EmptyBuffers()
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::EmptyBuffers - Enter"));
 	TInt error = SendReceive(EMMFDevSoundProxyEmptyBuffers, iDestinationPckg); 
 	
 	if(error==KErrNone)
@@ -1161,6 +1285,7 @@
 	        iState = EPlaying;
 	        }
 	    }
+	SYMBIAN_DEBPRN1(_L("RMMFDevSoundProxy[0x%x]::EmptyBuffers - Exit [%d]"), error);
 	return error;
 	}
 
@@ -1171,6 +1296,7 @@
 //
 EXPORT_C TInt RMMFDevSoundProxy::CancelInitialize()
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::CancelInitialize - Enter"));
 	TInt err=KErrNone;
 	
 	if (iState==EInitializing)
@@ -1182,7 +1308,7 @@
 		{
 		err = KErrNotReady;
 		}
-	
+	SYMBIAN_DEBPRN1(_L("RMMFDevSoundProxy[0x%x]::CancelInitialize - Exit [%d]"), err);
 	return err;
 	}
 
@@ -1194,8 +1320,11 @@
 //
 EXPORT_C TInt RMMFDevSoundProxy::SetClientThreadInfo(TThreadId& aTid)
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::SetClientThreadInfo - Enter"));
 	TPckgBuf<TThreadId> threadId(aTid);
-	return SendReceive(EMMFDevSoundProxySetClientThreadInfo, iDestinationPckg, threadId);
+	TInt err = SendReceive(EMMFDevSoundProxySetClientThreadInfo, iDestinationPckg, threadId);
+	SYMBIAN_DEBPRN1(_L("RMMFDevSoundProxy[0x%x]::SetClientThreadInfo - Exit [%d]"), err);
+	return err;
 	}
 
 
@@ -1211,11 +1340,14 @@
 							const TDesC8& aDataTo2,
 							TDes8& aDataFrom)
 	{
-	return SendReceiveResult(aFunction,
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::CustomCommandSync - Enter"));
+	TInt err = SendReceiveResult(aFunction,
 							aDestination,
 							aDataTo1,
 							aDataTo2,
 							aDataFrom);
+	SYMBIAN_DEBPRN1(_L("RMMFDevSoundProxy[0x%x]::CustomCommandSync - Exit [%d]"), err);
+	return err;
 	}
 
 // -----------------------------------------------------------------------------
@@ -1229,7 +1361,10 @@
 							const TDesC8& aDataTo1,
 							const TDesC8& aDataTo2)
 	{
-	return SendReceive(aFunction, aDestination, aDataTo1, aDataTo2);
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::CustomCommandSync - Enter"));
+	TInt err =  SendReceive(aFunction, aDestination, aDataTo1, aDataTo2);
+	SYMBIAN_DEBPRN1(_L("RMMFDevSoundProxy[0x%x]::CustomCommandSync - Exit [%d]"), err);
+	return err;
 	}
 
 // -----------------------------------------------------------------------------
@@ -1245,12 +1380,14 @@
 								TDes8& aDataFrom,
 								TRequestStatus& aStatus )
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::CustomCommandAsync - Enter"));
 	SendReceiveResult(aFunction,
 					aDestination,
 					aDataTo1,
 					aDataTo2,
 					aDataFrom,
 					aStatus);
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::CustomCommandAsync - Exit"));
 	}
 
 // -----------------------------------------------------------------------------
@@ -1265,40 +1402,52 @@
 								const TDesC8& aDataTo2,
 								TRequestStatus& aStatus )
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::CustomCommandAsync - Enter"));
 	SendReceive(aFunction, aDestination, aDataTo1, aDataTo2, aStatus);
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::CustomCommandAsync - Exit"));
 	}
 
 // implementation of a simple CustomCommand() scheme
 EXPORT_C TInt RMMFDevSoundProxy::SyncCustomCommand(TUid aUid, const TDesC8& aParam1, const TDesC8& aParam2, TDes8* aOutParam)
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::SyncCustomCommand - Enter"));
 	TMMFMessageDestinationPckg dest(TMMFMessageDestination(aUid, KMMFObjectHandleDevSound));
 
+	TInt err = KErrNone;
 	if (aOutParam==NULL)
 		{
-		return SendReceive(EMMFDevSoundProxySyncCustomCommand, dest, aParam1, aParam2);
+		SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::SyncCustomCommand - Exit"));
+		err = SendReceive(EMMFDevSoundProxySyncCustomCommand, dest, aParam1, aParam2);
+		return err;
 		}
 	else
 		{
-		return SendReceiveResult(EMMFDevSoundProxySyncCustomCommandResult, dest, aParam1, aParam2, *aOutParam);		
+		SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::SyncCustomCommand - Exit"));
+		err = SendReceiveResult(EMMFDevSoundProxySyncCustomCommandResult, dest, aParam1, aParam2, *aOutParam);
+		return err;
 		}
 	}
 
 EXPORT_C void RMMFDevSoundProxy::AsyncCustomCommand(TUid aUid, TRequestStatus& aStatus, const TDesC8& aParam1, const TDesC8& aParam2, TDes8* aOutParam)
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::AsyncCustomCommand - Enter"));
 	TMMFMessageDestination dest(aUid, KMMFObjectHandleDevSound);
 	iCustIntPckg = dest;
 	if (aOutParam==NULL)
 		{
+		SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::AsyncCustomCommand - Exit"));
 		SendReceive(EMMFDevSoundProxyAsyncCustomCommand, iCustIntPckg, aParam1, aParam2, aStatus);
 		}
 	else
 		{
+		SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::AsyncCustomCommand - Exit"));
 		SendReceiveResult(EMMFDevSoundProxyAsyncCustomCommandResult, iCustIntPckg, aParam1, aParam2, *aOutParam, aStatus);		
 		}
 	}
 
 EXPORT_C TInt RMMFDevSoundProxy::GetTimePlayed(TTimeIntervalMicroSeconds& aTime)
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::GetTimePlayed - Enter"));
 	TTimeIntervalMicroSeconds time(0);
 	TPckgBuf<TTimeIntervalMicroSeconds> timePckg(time);
 	TInt err = SendReceiveResult(EMMFDevSoundProxyGetTimePlayed, iDestinationPckg, KNullDesC8, timePckg);
@@ -1306,11 +1455,13 @@
 		{
 		aTime = timePckg();
 		}
+	SYMBIAN_DEBPRN1(_L("RMMFDevSoundProxy[0x%x]::GetTimePlayed - Exit [%d]"), err);
 	return err;
 	}
 
 EXPORT_C TBool RMMFDevSoundProxy::IsResumeSupported()
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::IsResumeSupported - Enter"));
 	TPckgBuf<TBool> isResumeSupported;
 	TInt err = SendReceiveResult(EMMFDevSoundProxyIsResumeSupported, 
 								iDestinationPckg, 
@@ -1318,16 +1469,19 @@
 								isResumeSupported);
 	if(err == KErrNone)
 		{
+		SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::IsResumeSupported - Exit"));
 		return isResumeSupported();
 		}
 	else
 		{
+		SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::IsResumeSupported - Exit"));
 		return EFalse;
 		}
 	}
 
 EXPORT_C TInt RMMFDevSoundProxy::Resume()
 	{
+	SYMBIAN_DEBPRN0(_L("RMMFDevSoundProxy[0x%x]::Resume - Enter"));
 	TInt err = KErrNone;
 	if (!iDevSoundObserver ||  iState <= EInitialized  )
 		{
@@ -1335,6 +1489,7 @@
 		}
 	else if(iState == ETonePlaying && iToneMode != ESequence)
 		{
+		SYMBIAN_DEBPRN1(_L("RMMFDevSoundProxy[0x%x]::Resume - Exit [%d]"), err);
 		return KErrNotSupported;
 		}
 	else
@@ -1357,6 +1512,7 @@
 	                    iDestinationPckg);	        
 	        }
 		}
+	SYMBIAN_DEBPRN1(_L("RMMFDevSoundProxy[0x%x]::Resume - Exit [%d]"), err);
 	return err;
 	}
 
--- a/devsound/a3fdevsound/src/mmfdevsoundserver/mmfdevsoundsession.cpp	Mon Mar 15 12:46:07 2010 +0200
+++ b/devsound/a3fdevsound/src/mmfdevsoundserver/mmfdevsoundsession.cpp	Wed Mar 31 23:56:23 2010 +0300
@@ -229,6 +229,7 @@
 	{
 	SYMBIAN_DEBPRN2(_L("\nCMMFDevSoundSession[0x%x] NEW REQUEST %02x while pending=%d"),
 	        aMessage.Function(), iOperationCompletePending || iAsyncQueueStart->IsActive());
+	
 	if( iOperationCompletePending || iAsyncQueueStart->IsActive())
 		{
 		// if not possible to service now, then queue request
@@ -259,9 +260,11 @@
 	iAsyncQueueStart->Cancel(); // just in case.
 	TMMFMessageDestinationPckg destinationPckg;
 	MmfMessageUtil::ReadL(aMessage, 0, destinationPckg);
+	SYMBIAN_DEBPRN2(_L("CMMFDevSoundSession[0x%x]::DoServiceRequestL - DestinationHandle [%d] InterfaceId [%d] "), destinationPckg().DestinationHandle(), destinationPckg().InterfaceId());
 	if ((destinationPckg().DestinationHandle() == KMMFObjectHandleDevSound) &&
 	    (destinationPckg().InterfaceId() == KUidInterfaceMMFDevSound))
 		{
+        SYMBIAN_DEBPRN1(_L("CMMFDevSoundSession[0x%x]::DoServiceRequestL - Request [%d]"), aMessage.Function());
 		TBool complete = EFalse;
 		switch(aMessage.Function())
 			{
@@ -441,6 +444,7 @@
 		// Note: There are operations that not complete the message using the following flag
 		// So if the message is not completed, cannot be assumed that there is an operation pending
 		
+		SYMBIAN_DEBPRN1(_L("CMMFDevSoundSession[0x%x]::DoServiceRequestL - iOperationCompletePending [%d]"), iOperationCompletePending);
 		if(iOperationCompletePending)
 			{
 			// Keep a copy of the message for Asynchronous requests & Pseudo-asynchronous
@@ -453,7 +457,8 @@
 		TInt err = KErrNotSupported;
 		if (iCIExtension)
 			{
-			iOperationCompletePending = ETrue;
+            SYMBIAN_DEBPRN1(_L("CMMFDevSoundSession[0x%x]::DoServiceRequestL - CIExtensionRequest [%d]"), aMessage.Function());
+            iOperationCompletePending = ETrue;
 			iHandlingExtdCI = ETrue;
 			TRAPD(err2, err = iCIExtension->HandleMessageL(aMessage));
 			if (err2)
@@ -499,7 +504,8 @@
 //
 TBool CMMFDevSoundSession::DoInitialize1L(const RMmfIpcMessage& aMessage)
 	{
-	TInt err = iMsgQueue.Open(aMessage, 2); // a global queue.
+    iMsgQueue.Close(); // close if already open
+	TInt err = iMsgQueue.Open(aMessage, 2, EOwnerThread); // a global queue but owned by thread
 	User::LeaveIfError(err);
 	DoSetClientConfigL();// added here instead of the CreateL()
 	TMMFDevSoundProxySettingsPckg devSoundBuf;
@@ -520,7 +526,8 @@
 //
 TBool CMMFDevSoundSession::DoInitialize2L(const RMmfIpcMessage& aMessage)
 	{
-	TInt err = iMsgQueue.Open(aMessage, 2); // a global queue.
+    iMsgQueue.Close(); // close if already open
+	TInt err = iMsgQueue.Open(aMessage, 2, EOwnerThread); // a global queue but owned by thread
 	User::LeaveIfError(err);
 	DoSetClientConfigL();// added here instead of the CreateL()
 	TMMFDevSoundProxySettingsPckg devSoundBuf;
@@ -539,7 +546,8 @@
 //
 TBool CMMFDevSoundSession::DoInitialize4L(const RMmfIpcMessage& aMessage)
 	{
-	TInt err = iMsgQueue.Open(aMessage, 2); // a global queue.
+    iMsgQueue.Close();
+	TInt err = iMsgQueue.Open(aMessage, 2, EOwnerThread); // a global queue but owned by thread
 	User::LeaveIfError(err);
 	DoSetClientConfigL();// added here instead of the CreateL()
 	TMMFDevSoundProxySettingsPckg devSoundBuf;
@@ -826,7 +834,8 @@
 //
 TBool CMMFDevSoundSession::DoStopL(const RMmfIpcMessage& /*aMessage*/)
 	{
-	// Sometimes Stop is not involved on a commit cycle
+    SYMBIAN_DEBPRN0(_L("CMMFDevSoundSession[0x%x]::DoStopL - Enter"));
+    // Sometimes Stop is not involved on a commit cycle
 	TBool completed = iAdapter->Stop();
 	if (completed)
 		{
@@ -835,6 +844,7 @@
 		iChunk.Close();
 		}
 	iOperationCompletePending = !completed;
+	SYMBIAN_DEBPRN1(_L("CMMFDevSoundSession[0x%x]::DoStopL - Exit. Return value is [%d]"), completed);
 	return completed;
 	}
 
@@ -855,12 +865,14 @@
 //
 TBool CMMFDevSoundSession::DoPlayToneL(const RMmfIpcMessage& aMessage)
 	{
-	TMMFDevSoundProxySettingsPckg devSoundBuf;
+    SYMBIAN_DEBPRN0(_L("CMMFDevSoundSession[0x%x]::DoPlayToneL - Enter"));
+    TMMFDevSoundProxySettingsPckg devSoundBuf;
 	aMessage.ReadL(TInt(1),devSoundBuf);
 	TInt frequency = devSoundBuf().iFrequencyOne;
 	TTimeIntervalMicroSeconds duration(devSoundBuf().iDuration);
 	iAdapter->PlayToneL(frequency, duration);
 	iOperationCompletePending = ETrue;
+	SYMBIAN_DEBPRN1(_L("CMMFDevSoundSession[0x%x]::DoPlayToneL - Exit. Return value is [%d]"), ETrue);
 	return ETrue;
 	}
 
@@ -870,13 +882,15 @@
 //
 TBool CMMFDevSoundSession::DoPlayDualToneL(const RMmfIpcMessage& aMessage)
 	{
-	TMMFDevSoundProxySettingsPckg devSoundBuf;
+    SYMBIAN_DEBPRN0(_L("CMMFDevSoundSession[0x%x]::DoPlayDualToneL - Enter"));
+    TMMFDevSoundProxySettingsPckg devSoundBuf;
 	aMessage.ReadL(TInt(1),devSoundBuf);
 	TInt frequencyOne = devSoundBuf().iFrequencyOne;
 	TInt frequencyTwo = devSoundBuf().iFrequencyTwo;
 	TTimeIntervalMicroSeconds duration(devSoundBuf().iDuration);
 	iAdapter->PlayDualToneL(frequencyOne, frequencyTwo, duration);
 	iOperationCompletePending = ETrue;
+	SYMBIAN_DEBPRN1(_L("CMMFDevSoundSession[0x%x]::DoPlayDualToneL - Exit. Return value is [%d]"), ETrue);
 	return ETrue;
 	}
 
@@ -886,7 +900,8 @@
 //
 TBool CMMFDevSoundSession::DoPlayDTMFStringL(const RMmfIpcMessage& aMessage)
 	{
-	TInt dtmfLength = aMessage.GetDesLength(2);
+    SYMBIAN_DEBPRN0(_L("CMMFDevSoundSession[0x%x]::DoPlayDTMFStringL - Enter"));
+    TInt dtmfLength = aMessage.GetDesLength(2);
 	
 	if(iDtmfString)
 		{
@@ -900,6 +915,7 @@
 
 	iAdapter->PlayDTMFStringL(*iDtmfString);
 	iOperationCompletePending = ETrue;
+	SYMBIAN_DEBPRN1(_L("CMMFDevSoundSession[0x%x]::DoPlayDTMFStringL - Exit. Return value is [%d]"), ETrue);
 	return ETrue;
 	}
 
@@ -909,7 +925,8 @@
 //
 TBool CMMFDevSoundSession::DoPlayToneSequenceL(const RMmfIpcMessage& aMessage)
 	{
-	TInt toneLength = aMessage.GetDesLength(1);
+    SYMBIAN_DEBPRN0(_L("CMMFDevSoundSession[0x%x]::DoPlayToneSequenceL - Enter"));
+    TInt toneLength = aMessage.GetDesLength(1);
 
 	if(iToneSeqBuf)
 		{
@@ -923,6 +940,7 @@
 
 	iAdapter->PlayToneSequenceL(*iToneSeqBuf);
 	iOperationCompletePending = ETrue;
+	SYMBIAN_DEBPRN1(_L("CMMFDevSoundSession[0x%x]::DoPlayToneSequenceL - Exit. Return value is [%d]"), ETrue);
 	return ETrue;
 	}
 
@@ -932,12 +950,14 @@
 //
 TBool CMMFDevSoundSession::DoPlayFixedSequenceL(const RMmfIpcMessage& aMessage)
 	{
-	TPckgBuf<TInt> buf;
+    SYMBIAN_DEBPRN0(_L("CMMFDevSoundSession[0x%x]::DoPlayFixedSequenceL - Enter"));
+    TPckgBuf<TInt> buf;
 	aMessage.ReadL(TInt(1),buf);
 	TInt seqNum = buf();
 
 	iAdapter->PlayFixedSequenceL(seqNum);
 	iOperationCompletePending = ETrue;
+	SYMBIAN_DEBPRN1(_L("CMMFDevSoundSession[0x%x]::DoPlayFixedSequenceL - Exit. Return value is [%d]"), ETrue);
 	return ETrue;
 	}
 
@@ -947,12 +967,14 @@
 //
 TBool CMMFDevSoundSession::DoSetDTMFLengthsL(const RMmfIpcMessage& aMessage)
 	{
-	TMMFDevSoundProxySettingsPckg devSoundBuf;
+    SYMBIAN_DEBPRN0(_L("CMMFDevSoundSession[0x%x]::DoSetDTMFLengthsL - Enter"));
+    TMMFDevSoundProxySettingsPckg devSoundBuf;
 	aMessage.ReadL(TInt(1),devSoundBuf);
 	TTimeIntervalMicroSeconds32 toneOnLength = devSoundBuf().iToneOnLength;
 	TTimeIntervalMicroSeconds32 toneOffLength = devSoundBuf().iToneOffLength;
 	TTimeIntervalMicroSeconds32 pauseLength = devSoundBuf().iPauseLength;
 	User::LeaveIfError(iAdapter->SetDTMFLengths(toneOnLength, toneOffLength, pauseLength));
+    SYMBIAN_DEBPRN1(_L("CMMFDevSoundSession[0x%x]::DoSetDTMFLengthsL - Exit. Return value is [%d]"), ETrue);
 	return ETrue;
 	}
 
@@ -962,11 +984,13 @@
 //
 TBool CMMFDevSoundSession::DoSetVolumeRampL(const RMmfIpcMessage& aMessage)
 	{
-	TMMFDevSoundProxySettingsPckg devSoundBuf;
+    SYMBIAN_DEBPRN0(_L("CMMFDevSoundSession[0x%x]::DoSetVolumeRampL - Enter"));
+    TMMFDevSoundProxySettingsPckg devSoundBuf;
 	aMessage.ReadL(TInt(1),devSoundBuf);
 	TTimeIntervalMicroSeconds duration = devSoundBuf().iDuration;
 	User::LeaveIfError(iAdapter->SetVolumeRamp(duration));
 	iOperationCompletePending = EFalse; // Volume ramp doesn't result on commit
+    SYMBIAN_DEBPRN0(_L("CMMFDevSoundSession[0x%x]::DoSetVolumeRampL - Exit"));
 	return ETrue; // operation complete
 	}
 
@@ -1044,13 +1068,14 @@
 //
 TBool CMMFDevSoundSession::DoSetToneRepeatsL(const RMmfIpcMessage& aMessage)
 	{
-	TPckgBuf<TInt> countRepeat;
+    SYMBIAN_DEBPRN0(_L("CMMFDevSoundSession[0x%x]::DoSetToneRepeatsL - Enter"));
+    TPckgBuf<TInt> countRepeat;
 	aMessage.ReadL(TInt(1),countRepeat);
 
 	TPckgBuf<TTimeIntervalMicroSeconds> repeatTS;
 	aMessage.ReadL(TInt(2),repeatTS);
 	User::LeaveIfError(iAdapter->SetToneRepeats(countRepeat(), repeatTS()));
-	
+    SYMBIAN_DEBPRN0(_L("CMMFDevSoundSession[0x%x]::DoSetToneRepeatsL - Exit"));
 	return ETrue;
 	}
 
@@ -1076,11 +1101,13 @@
 TBool CMMFDevSoundSession::DoFixedSequenceCountL(
 					const RMmfIpcMessage& aMessage)
 	{
-	TPckgBuf<TInt> fixSeqCountPckg;
+    SYMBIAN_DEBPRN0(_L("CMMFDevSoundSession[0x%x]::DoFixedSequenceCountL - Enter"));
+    TPckgBuf<TInt> fixSeqCountPckg;
 	TInt fixSeqCount = iAdapter->FixedSequenceCount();
 	fixSeqCountPckg = fixSeqCount;
 
 	aMessage.WriteL(TInt(2),fixSeqCountPckg);
+    SYMBIAN_DEBPRN0(_L("CMMFDevSoundSession[0x%x]::DoFixedSequenceCountL - Exit"));
 	return ETrue;
 	}
 
@@ -1339,7 +1366,8 @@
 //
 void CMMFDevSoundSession::FlushEventQueue()
 	{
-	if(iMsgQueue.Handle() != 0)
+    SYMBIAN_DEBPRN0(_L("CMMFDevSoundSession[0x%x]::FlushEventQueue - Enter"));
+    if(iMsgQueue.Handle() != 0)
 		{
 		TMMFDevSoundQueueItem queueItem;
 		TInt err = KErrNone;
@@ -1347,12 +1375,14 @@
 			{
 			err = iMsgQueue.Receive(queueItem);
 			}
-		}	
+		}
+    SYMBIAN_DEBPRN0(_L("CMMFDevSoundSession[0x%x]::FlushEventQueue - Exit"));
 	}
 
 void CMMFDevSoundSession::FilterQueueEvent(TMMFDevSoundProxyRequest aRequest)
 	{
-	if(iMsgQueue.Handle() != 0)
+    SYMBIAN_DEBPRN0(_L("CMMFDevSoundSession[0x%x]::FilterQueueEvent - Enter"));
+    if(iMsgQueue.Handle() != 0)
 		{
 		// Pop and push events result at the queue 
 		// can be seen as "circular list"
@@ -1380,6 +1410,7 @@
 				}
 			}
 		}
+    SYMBIAN_DEBPRN0(_L("CMMFDevSoundSession[0x%x]::FilterQueueEvent - Exit"));
 	}
 
 //
@@ -1388,7 +1419,8 @@
 //
 void CMMFDevSoundSession::Disconnect(const RMessage2& aMessage)
 	{
-	TBool complete = iAdapter->CloseDevSound();
+    SYMBIAN_DEBPRN0(_L("CMMFDevSoundSession[0x%x]::Disconnect - Enter"));
+    TBool complete = iAdapter->CloseDevSound();
 	if(!complete)
 		{
 		iRequestBeingServiced.SetMessage(aMessage);
@@ -1396,6 +1428,7 @@
 		iClosingWait->Start();
 		}
 	CSession2::Disconnect(aMessage);
+    SYMBIAN_DEBPRN0(_L("CMMFDevSoundSession[0x%x]::Disconnect - Exit"));
 	}
 
 
@@ -1507,11 +1540,13 @@
 //
 void CMMFDevSoundSession::ToneFinished(TInt aError)
 	{
-	TMMFDevSoundQueueItem item;
+    SYMBIAN_DEBPRN1(_L("CMMFDevSoundSession[0x%x]::ToneFinished - Enter. Error [%d]"), aError);
+    TMMFDevSoundQueueItem item;
 	item.iRequest = EMMFDevSoundProxyTFEvent;
 	item.iErrorCode = aError;
 	// assumes sufficient space in the queue so ignores the return value
 	iMsgQueue.Send(item);
+    SYMBIAN_DEBPRN0(_L("CMMFDevSoundSession[0x%x]::ToneFinished - Exit"));
 	}
 
 //
@@ -1553,7 +1588,7 @@
 //
 void CMMFDevSoundSession::PlayError(TInt aError)
 	{
-	SYMBIAN_DEBPRN1(_L("CMMFDevSoundSession[0x%x]::PlayError [%d]"), aError);
+    SYMBIAN_DEBPRN1(_L("CMMFDevSoundSession[0x%x]::PlayError - Enter [%d]"), aError);
 
 	// Set play error flag to ignore following PlayData requests
 	iPlayErrorOccured = ETrue;
@@ -1564,6 +1599,7 @@
 	iChunk.Close();
 	// assumes sufficient space in the queue so ignores the return value
 	iMsgQueue.Send(item);
+    SYMBIAN_DEBPRN0(_L("CMMFDevSoundSession[0x%x]::PlayError - Exit"));
 	}
 
 //
@@ -1647,7 +1683,7 @@
 //
 void CMMFDevSoundSession::CallbackFromAdaptorReceived(TInt aType, TInt aError)
 	{
-	
+    SYMBIAN_DEBPRN2(_L("CMMFDevSoundSession[0x%x]::CallbackFromAdaptorReceived - Enter. Type [%d ]Error [%d]"), aType, aError);
 	if(aType == KCallbackRecordPauseComplete)
 		{
 		TMMFDevSoundQueueItem item;
@@ -1692,6 +1728,7 @@
 				}
 			}
 		}
+    SYMBIAN_DEBPRN0(_L("CMMFDevSoundSession[0x%x]::CallbackFromAdaptorReceived - Exit"));
 	}
 
 
@@ -1701,8 +1738,10 @@
 //
 void CMMFDevSoundSession::PreemptionStartedCallbackReceived()
 	{
-	// Solution: Enqueue any request that arrives before preemption is completed
+    SYMBIAN_DEBPRN0(_L("CMMFDevSoundSession[0x%x]::PreemptionStartedCallbackReceived - Enter"));
+    // Solution: Enqueue any request that arrives before preemption is completed
 	iOperationCompletePending = ETrue;
+    SYMBIAN_DEBPRN0(_L("CMMFDevSoundSession[0x%x]::PreemptionStartedCallbackReceived - Exit"));
 	}
 
 //
@@ -1711,16 +1750,19 @@
 //
 void CMMFDevSoundSession::PreemptionFinishedCallbackReceived(TBool aCanStartNewOperation)
 	{
+    SYMBIAN_DEBPRN0(_L("CMMFDevSoundSession[0x%x]::PreemptionFinishedCallbackReceived - Enter"));
     if (iHandlingExtdCI)
         {
         // we are in the middle of handling a CI, so ignore - will handle later when unwinding
-        return;
+        SYMBIAN_DEBPRN0(_L("CMMFDevSoundSession[0x%x]::PreemptionFinishedCallbackReceived - Exit. Exiting from if block for CI"));
+		return;
         }
 	iOperationCompletePending = EFalse;
 	if ( aCanStartNewOperation && iQueuedRequests.Count() != 0 )
 		{
 		DequeueRequest();
 		}
+    SYMBIAN_DEBPRN0(_L("CMMFDevSoundSession[0x%x]::PreemptionFinishedCallbackReceived - Exit"));
 	}
 
 //
@@ -1754,13 +1796,15 @@
 //
 void CMMFDevSoundSession::SendEventToClient(const TMMFEvent& aEvent)
 	{
-	TMMFDevSoundQueueItem item;
+    SYMBIAN_DEBPRN0(_L("CMMFDevSoundSession[0x%x]::SendEventToClient - Enter"));
+    TMMFDevSoundQueueItem item;
 	item.iRequest = EMMFDevSoundProxySETCEvent;
 	item.iErrorCode = KErrNone;
 	item.iEventPckg() = aEvent;
 	// assumes sufficient space in the queue so ignores the return value
 	TInt err = iMsgQueue.Send(item);
-	__ASSERT_DEBUG(err == KErrNone, Panic(EMsgQueueFailedToSendMsg));
+    __ASSERT_DEBUG(err == KErrNone, Panic(EMsgQueueFailedToSendMsg));
+    SYMBIAN_DEBPRN0(_L("CMMFDevSoundSession[0x%x]::SendEventToClient - Exit"));
 	}
 
 void CMMFDevSoundSession::AsynchronousOperationComplete(TInt aError, TBool aCanStartNewOperation)
@@ -1848,6 +1892,7 @@
 
 void CMMFDevSoundSession::DequeueRequest()
 	{
+    SYMBIAN_DEBPRN0(_L("CMMFDevSoundSession[0x%x]::DequeueRequest - Enter"));
     iAsyncQueueStart->Cancel(); // if we're in here cancel any background request
 
 	TMMFDevSoundRequest msg = iQueuedRequests[0];
@@ -1876,6 +1921,7 @@
 		SYMBIAN_DEBPRN0(_L("\n CMMFDevSoundSession[0x%x]======== Flag can service new request\n"));
 		iAsyncQueueStart->CallBack();
 		}
+	SYMBIAN_DEBPRN0(_L("CMMFDevSoundSession[0x%x]::DequeueRequest - Exit"));
 	}
 	
 // 	AsyncQueueStartCallback
@@ -2025,7 +2071,7 @@
 	// Request kernel to create global RChunk if needed
 	if ( !iChunk.Handle() )
 		{
-		status = iChunk.CreateGlobal(KNullDesC, aRequestedSize, aRequestedSize);
+		status = iChunk.CreateGlobal(KNullDesC, aRequestedSize, aRequestedSize, EOwnerThread);
 		if ( status == KErrNone )
 			{
 			aBufPckg().iChunkOp = EOpen;
@@ -2273,7 +2319,7 @@
 	
 void CMMFDevSoundSession::Panic(TMMFDevSoundSessionPanicCodes aCode)
 	{
-	User::Panic(KMMFDevSoundSessionPanicCategory, aCode);
+    User::Panic(KMMFDevSoundSessionPanicCategory, aCode);
 	}
 
 void CMMFDevSoundSession::BufferErrorEvent()
--- a/devsoundextensions/effectspresets/Group/bld.inf	Mon Mar 15 12:46:07 2010 +0200
+++ b/devsoundextensions/effectspresets/Group/bld.inf	Wed Mar 31 23:56:23 2010 +0300
@@ -30,5 +30,5 @@
 PRJ_MMPFILES
 ../AudioEqualizerUtility/group/AudioEqualizerUtility.mmp
 ../EnvironmentalReverbUtility/group/EnvironmentalReverbUtility.mmp
-../StereoWideningUtility/group/StereoWideningUtility.mmp
+#include "../StereoWideningUtility/group/bld.inf"
 
--- a/devsoundextensions/effectspresets/StereoWideningUtility/group/bld.inf	Mon Mar 15 12:46:07 2010 +0200
+++ b/devsoundextensions/effectspresets/StereoWideningUtility/group/bld.inf	Wed Mar 31 23:56:23 2010 +0300
@@ -30,7 +30,7 @@
 PRJ_MMPFILES
 
 // AAC Encoder Plugin
-//StereoWideningUtility.mmp 	//Utility DLL 
+StereoWideningUtility.mmp 	//Utility DLL 
 
 
 
--- a/layers.sysdef.xml	Mon Mar 15 12:46:07 2010 +0200
+++ b/layers.sysdef.xml	Wed Mar 31 23:56:23 2010 +0300
@@ -13,7 +13,6 @@
 			<module name="">
 				<unit unitID="AudioEqualizerUtility" mrp="" bldFile="&layer_real_source_path;/devsoundextensions/effectspresets/AudioEqualizerUtility/group" filter="!dfs_build" name="AudioEqualizerUtility" />
 				<unit unitID="EnvironmentalReverbUtility" mrp="" bldFile="&layer_real_source_path;/devsoundextensions/effectspresets/EnvironmentalReverbUtility/group" filter="!dfs_build" name="EnvironmentalReverbUtility" />
-				<unit unitID="StereoWideningUtility" mrp="" bldFile="&layer_real_source_path;/devsoundextensions/effectspresets/StereoWideningUtility/group" filter="!dfs_build" name="StereoWideningUtility" />
 			</module>
 			<module name="">
 				<unit unitID="AacEncoderPlugin" mrp="" bldFile="&layer_real_source_path;/audio/ARM_CMMF_codecs/AacEncoderPlugin/group" filter="!sf_build" name="AacEncoderPlugin" />
@@ -88,7 +87,6 @@
 			<module name="">
 				<unit unitID="AudioEqualizerUtility_group" mrp="" bldFile="&layer_real_source_path;/devsoundextensions/effectspresets/AudioEqualizerUtility/group" filter="!dfs_build" name="AudioEqualizerUtility_group" />
 				<unit unitID="EnvironmentalReverbUtility_group" mrp="" bldFile="&layer_real_source_path;/devsoundextensions/effectspresets/EnvironmentalReverbUtility/group" filter="!dfs_build" name="EnvironmentalReverbUtility_group" />
-				<unit unitID="StereoWideningUtility_group" mrp="" bldFile="&layer_real_source_path;/devsoundextensions/effectspresets/StereoWideningUtility/group" filter="!dfs_build" name="StereoWideningUtility_group" />
 			</module>
 			<module name="">
 				<unit unitID="AacEncoderPlugin_group" mrp="" bldFile="&layer_real_source_path;/audio/ARM_CMMF_codecs/AacEncoderPlugin/group" filter="!sf_build" name="AacEncoderPlugin_group" />
--- a/mdfdevvideoextensions/nga_mdf_postprocessor/inc/NGAPostProcHwDevice.h	Mon Mar 15 12:46:07 2010 +0200
+++ b/mdfdevvideoextensions/nga_mdf_postprocessor/inc/NGAPostProcHwDevice.h	Wed Mar 31 23:56:23 2010 +0300
@@ -24,7 +24,7 @@
 #include <e32base.h>
 #include <e32def.h>
 #include <e32cmn.h>
-#include <STDIO.H>
+#include <stdio.h>
 #include <string.h>
 #include <stdarg.h>
 
--- a/mdfdevvideoextensions/nga_mdf_postprocessor/src/NGAPostProcHwDevice.cpp	Mon Mar 15 12:46:07 2010 +0200
+++ b/mdfdevvideoextensions/nga_mdf_postprocessor/src/NGAPostProcHwDevice.cpp	Wed Mar 31 23:56:23 2010 +0300
@@ -362,62 +362,75 @@
 		User::Leave(KErrArgument);
 	}
 	pic = aPicture;	
-	PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:WritePicture bufId = %d"), this,GetID(pic));
-	iPictureCounters.iTotalPictures++;
-	TInt64 delta = 0;
-	TTimeToPost iTimeToPost = (TTimeToPost)IsTimeToPost(pic, delta);
-	if(!IsGceReady())
-    {  
-		PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:WritePictureL GCE not ready"), this );
-		if(iTimeToPost == EPostIt)
+    if (iInputQ.Count() > 0)
+    {
+        AddToQ(pic);
+        AttemptToPost();
+    }
+    else
+    {
+		PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:WritePicture bufId = %d"), this,GetID(pic));
+		iPictureCounters.iTotalPictures++;
+		TInt64 delta = 0;
+		TTimeToPost iTimeToPost = (TTimeToPost)IsTimeToPost(pic, delta);
+		if(!IsGceReady())
+	    {  
+			PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:WritePictureL GCE not ready"), this );
+			if(iTimeToPost == EPostIt)
+			{
+					iTimeToPost = EDelayIt;
+			}
+	    }
+	    if (delta > 0x7FFFFFFF)
+	    {
+	         PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:WritePictureL Too large delta .. skipping"), this ); 
+	         iTimeToPost = ESkipIt;
+	    }
+	
+		switch(iTimeToPost)
 		{
-				iTimeToPost = EDelayIt;
+			case EDelayIt:
+			{
+				if(AddToQ(pic) != 0)
+				{
+					break;
+				}
+				iPostingTimer->Cancel();
+				SetTimer(delta);
+			}
+			break;
+			case EPostIt:
+			{
+		
+				if(iIsColorConversionNeeded)
+				{
+					TVideoPicture* ccPic;				
+	    			ccPic = DoColorConvert(pic); // output will be in ccPic
+	    			pic = ccPic;			   
+				}
+				iProcessQ.Append(pic);
+						
+				#ifdef _DUMP_YUV_FRAMES
+				captureYuv(pic);
+				#endif
+				iSessionManager->PostPicture(iSurfaceId, GetID(pic), iInfo().iBuffers, ETrue);	
+				iCurrentPlaybackPosition = pic->iTimestamp;			
+			
+				if(!iFirstPictureUpdated)
+				{
+					iFirstPictureUpdated = ETrue;
+					PublishSurfaceCreated();
+				}
+			}
+			break;
+			case ESkipIt:
+			{
+				ReleasePicture(pic); 
+				PicturesSkipped();
+			}
+			break;
 		}
     }
-	switch(iTimeToPost)
-	{
-		case EDelayIt:
-		{
-			if(AddToQ(pic) != 0)
-			{
-				break;
-			}
-			iPostingTimer->Cancel();
-			SetTimer(delta);
-		}
-		break;
-		case EPostIt:
-		{
-		
-			if(iIsColorConversionNeeded)
-			{
-				TVideoPicture* ccPic;				
-    			ccPic = DoColorConvert(pic); // output will be in ccPic
-    			pic = ccPic;			   
-			}
-			iProcessQ.Append(pic);
-						
-			#ifdef _DUMP_YUV_FRAMES
-			captureYuv(pic);
-			#endif
-			iSessionManager->PostPicture(iSurfaceId, GetID(pic), iInfo().iBuffers, ETrue);	
-			iCurrentPlaybackPosition = pic->iTimestamp;			
-			
-			if(!iFirstPictureUpdated)
-			{
-				iFirstPictureUpdated = ETrue;
-				PublishSurfaceCreated();
-			}
-		}
-		break;
-		case ESkipIt:
-		{
-			ReleasePicture(pic); 
-			PicturesSkipped();
-		}
-		break;
-	}
-
 	PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:WritePicture --"), this);
 }
 
@@ -1574,6 +1587,11 @@
 TInt CNGAPostProcHwDevice::AttemptToPost()
 {
    PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:AttemptToPost ++ Q:%d"), this, iInputQ.Count());
+   if (iPPState == EPaused)
+   {
+        return KErrNone;
+   }
+
     TInt err = KErrNotReady;
     TInt count = iInputQ.Count();
     TBool bDone = EFalse;
@@ -1646,11 +1664,22 @@
 	}
 
     TInt resp = EPostIt;
-    
-    if (iClockSource)
+    // Frame presentation time
+    TInt64 uPresTime = frame->iTimestamp.Int64();
+      
+    // Check if this is an out of order frame in case of forward playback
+    if((iCurrentPlaybackPosition.Int64() >= uPresTime) && (iPlayRate > 0))    
+    {      
+         PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:IsTimeToPost : Out of order frame (forward playback) Tfm=%d"), this,(TInt)uPresTime);
+         resp = ESkipIt;  //drop      
+    }      // Check if this is an out of order frame in case of backward playback
+    else if((iCurrentPlaybackPosition.Int64() <= uPresTime) && (iPlayRate < 0))    
+    {      
+        PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:IsTimeToPost : Out of order frame (backward playback) Tfm=%d"), this,(TInt)uPresTime);
+        resp = ESkipIt;  //drop      
+    }
+    else if (iClockSource)
     {
-        // Frame presentation time
-        TInt64 uPresTime = frame->iTimestamp.Int64();
         // The time to sync with.
         TInt64 uSyncTime = iClockSource->Time().Int64();
         
--- a/mmlibs/mmfw/Recogniser/src/constants.h	Mon Mar 15 12:46:07 2010 +0200
+++ b/mmlibs/mmfw/Recogniser/src/constants.h	Wed Mar 31 23:56:23 2010 +0300
@@ -71,7 +71,7 @@
 #define KExtXMF			_S(".xmf")
 #define KExtXPS			_S(".xps")
 #define KExtBeatnikRMF	_S(".rmf")
-
+#define KExtMOV         _S(".mov")  // for .mov extension
 
 //
 // Recognised MIME-types.
@@ -121,7 +121,7 @@
 #define KMimeXMF		_S8("audio/xmf")
 #define KMimeXPS		_S8("application/x-ext-packetsrc")
 #define KMimeBeatnikRMF _S8("audio/x-beatnik-rmf")
-
+#define KMimeQuickV     _S8("video/quicktime")  // for .mov extension
 
 //
 // Recognised header signatures.
--- a/mmlibs/mmfw/Recogniser/src/mpeg4parser.cpp	Mon Mar 15 12:46:07 2010 +0200
+++ b/mmlibs/mmfw/Recogniser/src/mpeg4parser.cpp	Wed Mar 31 23:56:23 2010 +0300
@@ -28,7 +28,7 @@
 static const TUint32 K3G2Brand = MAKE_INT32('3', 'g', '2', 0);
 static const TUint32 K3GSBrand = MAKE_INT32('3', 'g', 's', 0);	// Streaming servers.
 static const TUint32 K3GRBrand = MAKE_INT32('3', 'g', 'r', 0);	// Progresive download and MMS.
-
+static const TUint32 KQTBrand  = MAKE_INT32('q', 't', ' ', ' '); // for quicktime
 //
 // Box identifiers.
 //
@@ -103,7 +103,8 @@
 		{KExt3G2,	K3G2Brand,	KMime3G2_A,	KMime3G2_V},
 		{KExt3GP,	K3GSBrand,	KMime3GP_A,	KMime3GP_V},
 		{KExt3GP,	K3GRBrand,	KMime3GP_A,	KMime3GP_V},
-		{KExt3GA,	K3GPBrand,	KMime3GA,	NULL}
+		{KExt3GA,	K3GPBrand,	KMime3GA,	NULL},
+		{KExtMOV,   KQTBrand,   NULL, KMimeQuickV} // this entry is for .mov files
 	};
 
 static const TInt KMPEG4FileTypeCount = sizeof(KMPEG4Files) / sizeof(TMPEG4File);
@@ -465,6 +466,11 @@
 	// If the majorBrand isn't recognised we should also
 	// search the compatible brand list.
 	TInt64 bytesRemaining = iSize - KMPEG4FtypIntroLen;
+	//here there should be bytes remaining. Otherwise we cant read.
+	if( bytesRemaining <0 )
+	{
+	    User::Leave(KErrCorrupt);    
+	}
 	
 	iReader.Read32L(brand);
 	iBrandIndex = TMPEG4Parser::IsCompatibleBrand(brand);
--- a/mmlibs/mmfw/src/Client/Utility/mmfclientutility.cpp	Mon Mar 15 12:46:07 2010 +0200
+++ b/mmlibs/mmfw/src/Client/Utility/mmfclientutility.cpp	Wed Mar 31 23:56:23 2010 +0300
@@ -2235,7 +2235,12 @@
 	}
 
 void CMMFFindAndOpenController::UseSecureDRMProcessL(TBool& aIsSecureDrmProcess)
-    {       
+    {
+    if(iHasDrmCapability)//if client has DRM capability, we never use Secure DRM Process
+        {
+        aIsSecureDrmProcess = EFalse;
+        return;
+        }       
     TBool isDataProtected = EFalse;
     ContentAccess::CContent* content = NULL;
     TControllerMode mode = iCurrentConfig->iControllerMode;
@@ -2282,8 +2287,73 @@
         {//leaving as GetAttribute of CAF caused an error.
         User::Leave(error);
         }
+    if(!isDataProtected)
+        {
+        CleanupStack::PopAndDestroy(content);
+        return;//returning cause if data is not protected, we need not evaluate the type of rights.
+        }
+    
+    RArray<TAgent> agents;
+    TAgent drmAgent;
+
+    CManager* manager = CManager::NewLC();
+    CleanupClosePushL( agents );
+    manager->ListAgentsL( agents );
+    
+    for ( TInt i = 0; i < agents.Count(); i++ )
+        {
+        if ( agents[i].Name().Compare( content->Agent().Name() ) == 0 )  
+            {
+            drmAgent = agents[i];
+            break;
+            }
+        }
+    
+    CleanupStack::PopAndDestroy( &agents );        
+    RStreamablePtrArray<CRightsInfo> infoArray;
+    CRightsManager*  rightsManager = manager->CreateRightsManagerL(drmAgent);
+    CleanupStack::PushL(rightsManager);
+    
+    if(iFileName.Length())
+        {
+        if(iUniqueId)
+            {
+            TVirtualPathPtr pathPtr(iFileName, *iUniqueId);
+            TRAP(error,rightsManager->ListRightsL(infoArray, pathPtr) );
+            }
+        else
+            {
+            TRAP(error,rightsManager->ListRightsL(infoArray, iFileName ) ); 
+            }
+        }
+    else if (iUseFileHandle && iOwnFileHandle) 
+        {
+        if(iUniqueId)
+            {
+            TRAP(error,rightsManager->ListRightsL(infoArray, iFileHandle, *iUniqueId) );
+            }
+        else
+            {
+            TRAP(error,rightsManager->ListRightsL(infoArray, iFileHandle, KNullDesC) );
+          }
+        }
+    
+    if(error)
+        {
+        infoArray.Close();
+        User::Leave(error);
+        }
+    TInt consumableRights = 0;
+    if(infoArray.Count() > 0)
+        consumableRights = (ContentAccess::ERightsTypeConsumable) &  infoArray[0]->RightsType();
+    
+    
+    CleanupStack::PopAndDestroy( rightsManager );
+    infoArray.Close();
+    CleanupStack::PopAndDestroy( manager );
+
     CleanupStack::PopAndDestroy(content);
-    if(isDataProtected && !iHasDrmCapability && mode == EPlayback )
+    if(isDataProtected && !iHasDrmCapability && mode == EPlayback && !consumableRights)
         {//only when the Data is protected and client does not have the DRM capability, we need secure DRM process
         aIsSecureDrmProcess = ETrue;
         }
--- a/mmlibs/mmfw/src/Client/Video/mediaclientvideodisplaybody.cpp	Mon Mar 15 12:46:07 2010 +0200
+++ b/mmlibs/mmfw/src/Client/Video/mediaclientvideodisplaybody.cpp	Wed Mar 31 23:56:23 2010 +0300
@@ -695,8 +695,8 @@
             break;
         default:
             // Should never get to default unless there's been some programming error.
-            User::Invariant();
-            break;
+			DEBUG_PRINTF2("CMediaClientVideoDisplayBody::SetBackgroundSurface --- Returned with error %d", KErrArgument);
+			return KErrArgument;
         }
     
     TReal32 viewportAspect = pixelAspectRatio * inputWidth / inputHeight;
@@ -867,8 +867,8 @@
         break;
     default:
         // Should never get to default unless there's been some programming error.
-        User::Invariant();
-        break;
+		DEBUG_PRINTF2("CMediaClientVideoDisplayBody::SetBackgroundSurface --- Returned with error %d", KErrArgument);
+        return KErrArgument;
     }
     
     DEBUG_PRINTF5("CMediaClientVideoDisplayBody::SetBackgroundSurface - viewport2 %d,%d - %d,%d", viewport.iTl.iX, viewport.iTl.iY, viewport.iBr.iX, viewport.iBr.iY);
@@ -963,8 +963,9 @@
 		    break;
 		default:
 			// Should never get to default unless there's been some programming error.
-			User::Invariant();
-			// This is never reached, just to keep the compiler happy
+			DEBUG_PRINTF2("CMediaClientVideoDisplayBody::ConvertRotation --- Failed due to %d bad aRotation argument", aRotation);
+			__ASSERT_DEBUG(FALSE, User::Invariant());
+			// Use the normal option otherwise
 			orientation = CFbsBitGc::EGraphicsOrientationNormal;
 		}
     DEBUG_PRINTF2("CMediaClientVideoDisplayBody::ConvertRotation --- return %d", orientation);	
--- a/mmlibs/mmfw/src/Plugin/Codec/audio/GSM610/101F504A.rss	Mon Mar 15 12:46:07 2010 +0200
+++ b/mmlibs/mmfw/src/Plugin/Codec/audio/GSM610/101F504A.rss	Wed Mar 31 23:56:23 2010 +0300
@@ -16,7 +16,7 @@
 //
 
 #include <ecom/registryinfo.rh>
-#include <mmf/plugin/mmfCodecImplementationUIDs.hrh>
+#include <mmf/plugin/mmfcodecimplementationuids.hrh>
 #include <mmf/plugin/mmfplugininterfaceuids.hrh>
 
 RESOURCE REGISTRY_INFO theInfo
--- a/mmlibs/mmfw/src/Plugin/StdSourceAndSink/Mmffile.cpp	Mon Mar 15 12:46:07 2010 +0200
+++ b/mmlibs/mmfw/src/Plugin/StdSourceAndSink/Mmffile.cpp	Wed Mar 31 23:56:23 2010 +0300
@@ -19,7 +19,7 @@
 #include <mmf/common/mmfutilities.h>
 #include <mmf/common/mmfcontroller.h>
 #include <mmf/common/mmfpaniccodes.h>
-#include <mmf/server/MmfFile.h>
+#include <mmf/server/mmffile.h>
 #include "MmffilePriv.h"
 #include "FileAccess.h"
 
--- a/mmlibs/mmfw/src/server/BaseClasses/Mmfformat.cpp	Mon Mar 15 12:46:07 2010 +0200
+++ b/mmlibs/mmfw/src/server/BaseClasses/Mmfformat.cpp	Wed Mar 31 23:56:23 2010 +0300
@@ -16,8 +16,8 @@
 #include <mmf/common/mmfcontrollerpluginresolver.h>
 #include <mmf/server/mmfdatabuffer.h>
 #include <mmf/common/mmfutilities.h>
-#include <mmf/server/Mmfclip.h>
-#include <mmf/server/MmfFile.h>
+#include <mmf/server/mmfclip.h>
+#include <mmf/server/mmffile.h>
 #include <mmf/server/mmfformat.h>
 
 //static const TUid KUidMmfPluginInterfaceFormatDecode = {KMmfUidPluginInterfaceFormatDecode};
--- a/mmlibs/mmfw/tsrc/mmfunittest/group/BLD.INF	Mon Mar 15 12:46:07 2010 +0200
+++ b/mmlibs/mmfw/tsrc/mmfunittest/group/BLD.INF	Wed Mar 31 23:56:23 2010 +0300
@@ -331,7 +331,7 @@
 ../aclnt/TSU_MMF_ACLNT_01/data/smallwav_audiorights.xml		c:/mm/mmf/testfiles/aclnt/smallwav_audiorights.xml
 
 //Test data Add to test DEF140670 
-../ACLNT/TSU_MMF_ACLNT_01/Data/recordtest.wav		c:/mm/mmf/testfiles/aclnt/recordtest.wav
+../aclnt/TSU_MMF_ACLNT_01/data/recordtest.wav		c:/mm/mmf/testfiles/aclnt/recordtest.wav
 
 // remove recorded.wav, as it causes problems
 //../ACLNT/TSU_MMF_ACLNT_01/Data/recorded.wav	c:/mm/mmf/testfiles/aclnt/recorded.wav
--- a/mmplugins/lib3gp/impl/inc/mp4file.h	Mon Mar 15 12:46:07 2010 +0200
+++ b/mmplugins/lib3gp/impl/inc/mp4file.h	Wed Mar 31 23:56:23 2010 +0300
@@ -56,5 +56,8 @@
 mp4_i32 deleteMetaDataFiles(MP4HandleImp handle);
 mp4_i32 closeMetaDataFiles(MP4HandleImp handle);
 mp4_i32	openStdlib();
+
+TInt RecommendedBufferSize(MP4HandleImp aHandle);
+
 #endif
 // End of File
--- a/mmplugins/lib3gp/impl/src/file.cpp	Mon Mar 15 12:46:07 2010 +0200
+++ b/mmplugins/lib3gp/impl/src/file.cpp	Wed Mar 31 23:56:23 2010 +0300
@@ -1758,4 +1758,48 @@
 }
 
 
+TInt RecommendedBufferSize(MP4HandleImp aHandle)
+	{
+	TInt recommendedSize = READBUFSIZE;
+	
+    MP4HandleImp handle = (MP4HandleImp)aHandle;
+    if (handle)
+    	{
+		// handle->rfile will be set in the cases of
+		// - MP4ParseOpen(MP4FileName) <if the filename is set>
+		// - MP4ParseOpenFileHandle64(RFile64)
+		// - MP4ParseOpenFileHandle(RFile) <via MP4ParseOpenFileHandle64()>
+		//
+		// It will not be set by MP4ParseOpenCAF()
+
+		RFs* fs = (RFs*)handle->fs;
+		RFile64* file64 = (RFile64*)handle->rfile;
+		
+		if (fs && file64)
+			{
+			TInt driveNumber = 0;
+			TDriveInfo driveInfo;
+			TVolumeIOParamInfo volumeInfo;
+			
+			TInt err = file64->Drive(driveNumber, driveInfo);
+			if (err == KErrNone)
+				{
+				err = fs->VolumeIOParam(driveNumber, volumeInfo);
+				}
+			
+			if (err == KErrNone)
+				{
+				if (volumeInfo.iRecReadBufSize != KErrNotSupported)
+					{
+					recommendedSize = Max(recommendedSize, volumeInfo.iRecReadBufSize);
+					}
+				}
+				
+			}
+    	}
+
+    return recommendedSize;
+	}
+	
+
 // End of File
--- a/mmplugins/lib3gp/impl/src/mp4compose.cpp	Mon Mar 15 12:46:07 2010 +0200
+++ b/mmplugins/lib3gp/impl/src/mp4compose.cpp	Wed Mar 31 23:56:23 2010 +0300
@@ -1311,7 +1311,8 @@
 
     return MP4_OK;
     }
-
+	
+	
 extern EXPORT_C MP4Err MP4SetCustomFileBufferSizes( MP4Handle apihandle, 
                                                                mp4_u32 mediaWriteBufferSize,
                                                                mp4_u32 writeBufferMaxCount,
@@ -1322,14 +1323,19 @@
     if (!handle)
         return MP4_ERROR;
     
-    // Read Buffer size
-    if ( (readBufferSize) && 
-         (readBufferSize != handle->readBufferSize) )
+    // If no specific file size is given we try to use an 'optimal' buffer size.
+    if (readBufferSize == 0)
+    	{
+    	readBufferSize = RecommendedBufferSize(handle);
+		}
+
+	if (readBufferSize > handle->readBufferSize)
         {
         handle->readBufferSize = readBufferSize;
         if (handle->diskReadBuf)
             {
             mp4free(handle->diskReadBuf);
+            handle->diskReadBuf = NULL;
             if ((handle->diskReadBuf = (mp4_u8 *)mp4malloc(handle->readBufferSize)) == NULL)
                 {
                 return MP4_OUT_OF_MEMORY;
--- a/mmplugins/lib3gp/impl/src/mp4parse.cpp	Mon Mar 15 12:46:07 2010 +0200
+++ b/mmplugins/lib3gp/impl/src/mp4parse.cpp	Wed Mar 31 23:56:23 2010 +0300
@@ -165,7 +165,7 @@
   	if (openStdlib() !=  MP4_OK)
   		{
   		// clean up
-  		mp4free((*handle)->diskReadBuf);
+		mp4free((*handle)->diskReadBuf);
 		mp4free((*handle)->buf);
 		listDestroyList((*handle)->mem);
 		closeFile(*handle);
--- a/mmplugins/lib3gp/wrapper/src/c3gpparse.cpp	Mon Mar 15 12:46:07 2010 +0200
+++ b/mmplugins/lib3gp/wrapper/src/c3gpparse.cpp	Wed Mar 31 23:56:23 2010 +0300
@@ -2157,3 +2157,5 @@
 	_LIT(K3GPParsePanicName, "C3GPParse");
 	User::Panic(K3GPParsePanicName, aPanic);
 	}
+
+	
--- a/mmplugins/mmfwplugins/src/Plugin/Controller/Audio/OggVorbis/OggPlayController/oggdecode.h	Mon Mar 15 12:46:07 2010 +0200
+++ b/mmplugins/mmfwplugins/src/Plugin/Controller/Audio/OggVorbis/OggPlayController/oggdecode.h	Wed Mar 31 23:56:23 2010 +0300
@@ -19,8 +19,8 @@
 
 #include <mmf/server/mmffile.h>
 #include <stdlib.h>
-#include "oggutil.h"
-#include "vorbisinfo.h"
+#include "OggUtil.h"
+#include "VorbisInfo.h"
 
 static const TInt KNumHeaders = 3;// vorbis has 3 header packets
 //Average oggpage is of size 4K. we read 4K buffer during seeking and finding duration sothat we expect
--- a/mmplugins/mmfwplugins/src/Plugin/Controller/Audio/OggVorbis/OggRecordController/OggEncode.h	Mon Mar 15 12:46:07 2010 +0200
+++ b/mmplugins/mmfwplugins/src/Plugin/Controller/Audio/OggVorbis/OggRecordController/OggEncode.h	Wed Mar 31 23:56:23 2010 +0300
@@ -18,8 +18,8 @@
 #define OGGENCODE_H
 
 #include <mmf/server/mmfclip.h>
-#include "oggutil.h"
-#include "vorbisinfo.h"
+#include "OggUtil.h"
+#include "VorbisInfo.h"
 
 #ifdef VORBIS_DEBUG
 #define DEBUG(x) RDebug::Print(_L(x))
--- a/mmtestenv/mmtestfw/Source/TestFrameworkClient/TestStep.cpp	Mon Mar 15 12:46:07 2010 +0200
+++ b/mmtestenv/mmtestfw/Source/TestFrameworkClient/TestStep.cpp	Wed Mar 31 23:56:23 2010 +0300
@@ -833,12 +833,12 @@
  * @xxxx
  *
  */
-TInt RTestStep::StackSize() const
+EXPORT_C TInt RTestStep::StackSize() const
 {
 	return iStackSize;
 }
 
-TInt RTestStep::HeapSize() const
+EXPORT_C TInt RTestStep::HeapSize() const
 {
 	return iHeapSize;
 }
--- a/mmtestenv/mmtestfw/eabi/TestFrameworkClientU.DEF	Mon Mar 15 12:46:07 2010 +0200
+++ b/mmtestenv/mmtestfw/eabi/TestFrameworkClientU.DEF	Wed Mar 31 23:56:23 2010 +0300
@@ -135,4 +135,6 @@
 	_ZN13CBusyTestUnit5StartEv @ 134 NONAME
 	_ZN13CBusyTestUnit5StartE27TTimeIntervalMicroSeconds3225TTimeIntervalMicroSeconds @ 135 NONAME
 	_ZN9RTestStep16GetHexFromConfigERK7TDesC16S2_Ri @ 136 NONAME
+	_ZNK9RTestStep8HeapSizeEv @ 137 NONAME
+	_ZNK9RTestStep9StackSizeEv @ 138 NONAME
 
--- a/omxil/omxilcomponentcommon/bwins/omxilcomponentcommon.def	Mon Mar 15 12:46:07 2010 +0200
+++ b/omxil/omxilcomponentcommon/bwins/omxilcomponentcommon.def	Wed Mar 31 23:56:23 2010 +0300
@@ -36,7 +36,7 @@
 	?HandleInsufficientResources@XOmxILCallbackManagerIfImpl@@MAEXXZ @ 35 NONAME ; void XOmxILCallbackManagerIfImpl::HandleInsufficientResources(void)
 	?DoRegisterILClientCallbacks@XOmxILCallbackManagerIfImpl@@MAE?AW4OMX_ERRORTYPE@@PBUOMX_CALLBACKTYPE@@PAX@Z @ 36 NONAME ; enum OMX_ERRORTYPE XOmxILCallbackManagerIfImpl::DoRegisterILClientCallbacks(struct OMX_CALLBACKTYPE const *, void *)
 	?Compare@TBufferInfo@COmxILPort@@SAHABV12@0@Z @ 37 NONAME ; int COmxILPort::TBufferInfo::Compare(class COmxILPort::TBufferInfo const &, class COmxILPort::TBufferInfo const &)
-	?RunL@COmxILCallbackManager@@UAEXXZ @ 38 NONAME ; void COmxILCallbackManager::RunL(void)
+	?RunL@COmxILCallbackManager@@UAEXXZ @ 38 NONAME ABSENT ; void COmxILCallbackManager::RunL(void)
 	?SetParameter@COmxILVideoPort@@UAE?AW4OMX_ERRORTYPE@@W4OMX_INDEXTYPE@@PBXAAH@Z @ 39 NONAME ; enum OMX_ERRORTYPE COmxILVideoPort::SetParameter(enum OMX_INDEXTYPE, void const *, int &)
 	?RegisterBufferMarkPropagationPort@COmxILInContextCallbackManager@@UAE?AW4OMX_ERRORTYPE@@KK@Z @ 40 NONAME ; enum OMX_ERRORTYPE COmxILInContextCallbackManager::RegisterBufferMarkPropagationPort(unsigned long, unsigned long)
 	?MediaTimeIndication@COmxILProcessingFunction@@UAE?AW4OMX_ERRORTYPE@@ABUOMX_TIME_MEDIATIMETYPE@@@Z @ 41 NONAME ; enum OMX_ERRORTYPE COmxILProcessingFunction::MediaTimeIndication(struct OMX_TIME_MEDIATIMETYPE const &)
@@ -58,7 +58,7 @@
 	?BufferDoneNotification@COmxILInContextCallbackManager@@UAE?AW4OMX_ERRORTYPE@@PAUOMX_BUFFERHEADERTYPE@@KW4OMX_DIRTYPE@@@Z @ 57 NONAME ; enum OMX_ERRORTYPE COmxILInContextCallbackManager::BufferDoneNotification(struct OMX_BUFFERHEADERTYPE *, unsigned long, enum OMX_DIRTYPE)
 	?GetComponentVersion@COmxILConfigManager@@UBE?AW4OMX_ERRORTYPE@@PADPATOMX_VERSIONTYPE@@1PAY0IA@E@Z @ 58 NONAME ; enum OMX_ERRORTYPE COmxILConfigManager::GetComponentVersion(char *, union OMX_VERSIONTYPE *, union OMX_VERSIONTYPE *, unsigned char [128] *) const
 	?DoEventNotification@XOmxILCallbackManagerIfImpl@@MAE?AW4OMX_ERRORTYPE@@W4OMX_EVENTTYPE@@KKPAD@Z @ 59 NONAME ; enum OMX_ERRORTYPE XOmxILCallbackManagerIfImpl::DoEventNotification(enum OMX_EVENTTYPE, unsigned long, unsigned long, char *)
-	?DoCancel@COmxILCallbackManager@@UAEXXZ @ 60 NONAME ; void COmxILCallbackManager::DoCancel(void)
+	?DoCancel@COmxILCallbackManager@@UAEXXZ @ 60 NONAME ABSENT ; void COmxILCallbackManager::DoCancel(void)
 	?SetParameter@COmxILOtherPort@@UAE?AW4OMX_ERRORTYPE@@W4OMX_INDEXTYPE@@PBXAAH@Z @ 61 NONAME ; enum OMX_ERRORTYPE COmxILOtherPort::SetParameter(enum OMX_INDEXTYPE, void const *, int &)
 	??1COmxILAudioPort@@UAE@XZ @ 62 NONAME ; COmxILAudioPort::~COmxILAudioPort(void)
 	?RegisterComponentHandle@COmxILInContextCallbackManager@@UAE?AW4OMX_ERRORTYPE@@PAX@Z @ 63 NONAME ; enum OMX_ERRORTYPE COmxILInContextCallbackManager::RegisterComponentHandle(void *)
--- a/omxil/omxilcomponentcommon/eabi/omxilcomponentcommon.def	Mon Mar 15 12:46:07 2010 +0200
+++ b/omxil/omxilcomponentcommon/eabi/omxilcomponentcommon.def	Wed Mar 31 23:56:23 2010 +0300
@@ -271,5 +271,4 @@
 	_ZThn4_N30COmxILInContextCallbackManagerD0Ev @ 270 NONAME
 	_ZThn4_N30COmxILInContextCallbackManagerD1Ev @ 271 NONAME
 	_ZThn8_N30COmxILInContextCallbackManagerD0Ev @ 272 NONAME
-	_ZThn8_N30COmxILInContextCallbackManagerD1Ev @ 273 NONAME
-
+	_ZThn8_N30COmxILInContextCallbackManagerD1Ev @ 273 NONAME
\ No newline at end of file
--- a/omxil/omxilcomponentcommon/src/common/omxilcallbackmanager.h	Mon Mar 15 12:46:07 2010 +0200
+++ b/omxil/omxilcomponentcommon/src/common/omxilcallbackmanager.h	Wed Mar 31 23:56:23 2010 +0300
@@ -157,8 +157,9 @@
 	//
 	// From CActive
 	//
-	IMPORT_C void RunL();
-	IMPORT_C void DoCancel();
+private:
+	void RunL();
+	void DoCancel();
 
 private: