videoplayerapp/videoplayerengine/src/mpxvideoplaybackwrapper.cpp
changeset 17 69946d1824c4
parent 15 cf5481c2bc0b
child 28 c48470be1ba7
--- a/videoplayerapp/videoplayerengine/src/mpxvideoplaybackwrapper.cpp	Fri Apr 16 14:59:52 2010 +0300
+++ b/videoplayerapp/videoplayerengine/src/mpxvideoplaybackwrapper.cpp	Mon May 03 12:32:50 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version:  3 %
+// Version : %version:  4 %
 
 
 #include "mpxvideo_debug.h"
@@ -67,10 +67,25 @@
 //
 int QMpxVideoPlaybackWrapper::playMedia( QString aFileName )
 {
-    MPX_ENTER_EXIT(_L("QMpxVideoPlaybackWrapper::playMedia"));
+    MPX_ENTER_EXIT(_L("QMpxVideoPlaybackWrapper::playMedia"));   
+    
+    TBuf<KMaxFileName> filename( aFileName.utf16() );
+    int error = openFileWithNativePath( filename );
+
+    MPX_DEBUG(_L("QMpxVideoPlaybackWrapper::playMedia err = %d"), error);
+
+    return error;
+}
 
-    TBuf<KMaxFileName> filename( aFileName.utf16() );
-    TRAPD( error, mUiEngine->OpenFileL( filename ) );
+// -------------------------------------------------------------------------------------------------
+//   QMpxVideoPlaybackWrapper::playMedia()
+// -------------------------------------------------------------------------------------------------
+//
+int QMpxVideoPlaybackWrapper::playMedia( RFile aFile )
+{
+    MPX_ENTER_EXIT(_L("QMpxVideoPlaybackWrapper::playMedia"));   
+    
+    TRAPD( error, mUiEngine->OpenFileL( aFile ) );
 
     MPX_DEBUG(_L("QMpxVideoPlaybackWrapper::playMedia err = %d"), error);
 
@@ -99,4 +114,56 @@
     TRAP_IGNORE( mUiEngine->LateInitL() );
 }
 
+// -------------------------------------------------------------------------------------------------
+//   QMpxVideoPlaybackWrapper::openFileWithNativePath()
+// -------------------------------------------------------------------------------------------------
+//
+int QMpxVideoPlaybackWrapper::openFileWithNativePath(const TDesC& aFileName)
+{
+    MPX_DEBUG(_L("QMpxVideoPlaybackWrapper::openFileWithNativePath()"));    
+    
+    int err = KErrNone;
+
+    int fwdSlashPos = aFileName.LocateF('/');
+
+    if( fwdSlashPos == KErrNotFound )
+    {
+        // no fwd slashes found => filepath is already in 
+        // preferred format eg. c:\\data\\videos\\test.3gp
+        //
+        TRAP( err, mUiEngine->OpenFileL( aFileName ) );        
+    }
+    else
+    {        
+        HBufC* fileName = NULL;
+
+        TRAP( err,  fileName = aFileName.AllocL() );
+
+        if ( err == KErrNone )
+        {
+            int count( fileName->Des().Length() );
+
+            for ( int j = fwdSlashPos ; j < count; ++j )
+            {
+                if ( fileName->Des()[j]== '/' )
+                {
+                    fileName->Des()[j]='\\';
+                }
+            }
+            
+        }
+
+        TRAP( err, mUiEngine->OpenFileL( fileName->Des() ) );
+        
+        if ( fileName )
+        {
+            delete fileName;
+            fileName = NULL;
+        }        
+    }
+    
+    return err;
+}
+
+
 // End of File