mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/AdvancedAudioController/Src/AdvancedAudioPlayController.cpp
changeset 12 5a06f39ad45b
parent 0 71ca22bcf22a
child 14 80975da52420
--- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/AdvancedAudioController/Src/AdvancedAudioPlayController.cpp	Tue Feb 02 01:08:46 2010 +0200
+++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/AdvancedAudioController/Src/AdvancedAudioPlayController.cpp	Fri Apr 16 15:29:42 2010 +0300
@@ -684,6 +684,7 @@
     TRAP(err, DoPauseL(ETrue)); // this is a preemption pause
 	// In case of pre-emption we should only Pause ... but not Stop.
     SendEventToClient(TMMFEvent(KMMFEventCategoryPlaybackComplete, aError));
+    SendEventToClient(TMMFEvent(KStreamControlEventStateChangedPaused, aError));
     }
 
 // -----------------------------------------------------------------------------
@@ -783,6 +784,7 @@
     MDataSource& aSource)
     {
     DP1(_L("CAdvancedAudioPlayController::AddDataSourceL this[%x]"), this);
+    DP2(_L("CAdvancedAudioController::AddDataSourceL iSharedBufferMaxNum[%d] iSharedBufferMaxSize[%d]"), iSharedBufferMaxNum, iSharedBufferMaxSize);    
     iSourceUnreadable = EFalse;
     iEnablePrimedStateChangedEvent = EFalse;
     // source type is intended to not be needed by controllers
@@ -798,11 +800,6 @@
 		{
         User::Leave(KErrAlreadyExists);
         }
-    if (iSharedBufferMaxNum <= 2)
-        {
-        iSharedBufferMaxNum = 3;
-        }
-
 
 	// set iReadHeader here in case prime is not called before set position is used.
     // reset before adding data source
@@ -843,6 +840,17 @@
 
     // we need to block this until duration is calculated if using mmfplayutility
     iBlockDuration = EFalse;
+// ou1cimx1#205863
+    if (!iDataSourceAdapter->IsLocalPlayback()) 
+    	{
+	    DP0(_L("CAdvancedAudioPlayController::AddDataSourceL not file source"));        
+	    if (iSharedBufferMaxNum <= 2)
+	        {
+	        	iSharedBufferMaxNum = 3;
+	        }
+		 iSharedBufferMaxSize = iSharedBufferMaxSizeForNonSeekableSrc;
+	    DP2(_L("CAdvancedAudioPlayController::AddDataSourceL new iSharedBufferMaxNum[%d] iSharedBufferMaxSize[%d]"), iSharedBufferMaxNum, iSharedBufferMaxSize);
+    	}
     
     if ((!iEventsEnabled) && (!iDataSourceAdapter->OnlyHeaderPresent()))
         {
@@ -2240,11 +2248,17 @@
 	RArray<TInt>& codecConfigData = const_cast<RArray<TInt>&>(iAudioResource->CodecConfigParametersL());
 	// Override default values with values found from header, if available
 	GetCodecConfigData(codecConfigData);
-	iAudioOutput->ConfigureL(iSampleRate, iSinkNumChannels, iDataType, codecConfigData);
-    DP0(_L("CAdvancedAudioPlayController::DoInitializeSinkL, output configured"));
-	iAudioOutput->PrimeL();
-    DP0(_L("CAdvancedAudioPlayController::DoInitializeSinkL, output primed"));
-			    
+        if (!iAudioOutput)
+	   {		
+		User::Leave(KErrNotReady);
+           }  
+        else
+           {
+	       iAudioOutput->ConfigureL(iSampleRate, iSinkNumChannels, iDataType, codecConfigData);
+               DP0(_L("CAdvancedAudioPlayController::DoInitializeSinkL, output configured"));
+  	       iAudioOutput->PrimeL();
+               DP0(_L("CAdvancedAudioPlayController::DoInitializeSinkL, output primed"));
+	   }		    
 	// we would use this code when we have a NULL sink
 /*	if (iDuration > 0)
 		{