mmfenh/enhancedmediaclient/Client/src/Components/StreamControl/ClientStreamControl.cpp
branchRCL_3
changeset 46 0ac9a5310753
parent 45 095bea5f582e
--- a/mmfenh/enhancedmediaclient/Client/src/Components/StreamControl/ClientStreamControl.cpp	Tue Aug 31 15:43:02 2010 +0300
+++ b/mmfenh/enhancedmediaclient/Client/src/Components/StreamControl/ClientStreamControl.cpp	Wed Sep 01 12:23:00 2010 +0100
@@ -22,6 +22,7 @@
 #include <EffectControl.h>
 #include <SinkControl.h>
 #include <SourceControl.h>
+#include <ProgDLSource.h>
 #include <FileSource.h>
 #include <DescriptorSource.h>
 #include <SCCustomInterfaceUIDs.h>
@@ -777,6 +778,53 @@
                 }
             }
         }
+    else
+        if (iSourceControl->Type() == KProgDLSourceControl)
+            {
+            MProgDLSource* progDLSource =
+                    static_cast<MProgDLSource*>(iSourceControl);
+            HBufC* fileName = HBufC::NewLC(KMaxPath);
+            TPtr fileNamePtr = fileName->Des();
+
+            TInt err = progDLSource->FileName(fileNamePtr);
+
+            HBufC8* mimeType = HBufC8::NewLC(KMaxMimeLength);
+            TPtr8 mimeTypePtr = mimeType->Des();
+
+            status = iSourceControl->GetMimeType(mimeTypePtr);
+
+            iFindAndOpenController->ConfigureSourceSink(
+                    TMMFileSource(fileNamePtr,
+                            ContentAccess::KDefaultContentObject,
+                            ContentAccess::EPlay),
+                    CMMFFindAndOpenController::TSourceSink(/*KUidMmfAudioOutput*/sinkUID/*,fileHandle*/));
+
+            TMMFileSource source(fileNamePtr,
+                    ContentAccess::KDefaultContentObject,
+                    ContentAccess::EPlay);
+
+            // This Flag is defined so that if the Helix Controller Supports
+            // the playback of Local Media for WMA, then the Progressive Download
+            //  for WMA still goes through the Old WMA Controller( AdvancedAudioController)
+            // We are launching the Old WMA Controller using the UID.                
+
+#ifdef __WINDOWS_MEDIA        
+#ifndef RD_PD_FOR_AUDIO_CONTENT_VIA_HELIX_ENGINE       
+            if(!mimeTypePtr.Compare(KWMAMimeType()))
+                {
+                iFindAndOpenController->OpenByControllerUid(TUid::Uid(0x10207A9B),KNullUid);
+                }
+            else
+#endif        
+#endif
+                {
+                iFindAndOpenController->OpenByFileSource(source);
+                }
+
+            CleanupStack::PopAndDestroy(mimeType); // mimeType
+            CleanupStack::PopAndDestroy(fileName); // fileName
+            //fileHandle.Close();
+            }
 
     if (iSourceControl->Type() == KFileSourceControl)
         {