devsound/a3fdevsound/src/mmfaudioserver/mmfaudioserverinterface.cpp
changeset 6 fe9d1bf55678
parent 0 b8ed18f6c07b
--- a/devsound/a3fdevsound/src/mmfaudioserver/mmfaudioserverinterface.cpp	Tue Nov 02 12:13:59 2010 +0000
+++ b/devsound/a3fdevsound/src/mmfaudioserver/mmfaudioserverinterface.cpp	Tue Nov 02 12:28:51 2010 +0000
@@ -29,14 +29,24 @@
 //
 EXPORT_C CAudioSvrLoader* CAudioSvrLoader::NewL()
 	{
-	CAudioSvrLoaderImpl* self = new(ELeave) CAudioSvrLoaderImpl();
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	CleanupStack::Pop(self);
-	return self;
+    return CAudioSvrLoader::NewL(EFalse);
 	}
 
 // -----------------------------------------------------------------------------
+// CAudioSvrLoader::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CAudioSvrLoader* CAudioSvrLoader::NewL(TBool aStayOpen)
+    {
+    CAudioSvrLoaderImpl* self = new(ELeave) CAudioSvrLoaderImpl();
+    CleanupStack::PushL(self);
+    self->ConstructL(aStayOpen);
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
 // CAudioSvrLoader::CAudioSvrLoader
 // C++ default constructor can NOT contain any code, that
 // might leave.
@@ -87,9 +97,9 @@
 // (other items were commented in a header).
 // -----------------------------------------------------------------------------
 //
- void CAudioSvrLoaderImpl::ConstructL()
+ void CAudioSvrLoaderImpl::ConstructL(TBool aStayOpen)
 	{
-	iServer = CMMFAudioServer::NewL();
+	iServer = CMMFAudioServer::NewL(aStayOpen);
 	}