videoplayback/videoplaybackcontrols/tsrc/videoplaybackcontrols_test/src/mpxvpbvfd_stub.cpp
branchRCL_3
changeset 11 8970fbd719ec
parent 8 ce5ada96ab30
--- a/videoplayback/videoplaybackcontrols/tsrc/videoplaybackcontrols_test/src/mpxvpbvfd_stub.cpp	Wed Mar 31 21:34:36 2010 +0300
+++ b/videoplayback/videoplaybackcontrols/tsrc/videoplaybackcontrols_test/src/mpxvpbvfd_stub.cpp	Wed Apr 14 15:59:50 2010 +0300
@@ -15,13 +15,14 @@
 *
 */
 
-// Version : %version: e003sa33#7 %
+// Version : %version: e003sa33#8 %
 
 
 //
 //  INCLUDE FILES
 //
 #include <f32file.h>
+#include <uri16.h>
 
 #include "mpxvideo_debug.h"
 #include "mpxvideoplaybackviewfiledetails.h"
@@ -116,4 +117,65 @@
     return fileName;
 }
 
+// -------------------------------------------------------------------------------------------------
+// CMPXVideoPlaybackViewFileDetails::GenerateFileTitleL
+// -------------------------------------------------------------------------------------------------
+//
+EXPORT_C HBufC* CMPXVideoPlaybackViewFileDetails::GenerateFileTitleL()
+{
+    MPX_ENTER_EXIT( _L( "CMPXVideoPlaybackViewFileDetails::GenerateFileTitleL()" ) );
+
+    HBufC* fileTitle = NULL;
+
+    if ( iTitle && iTitle->Length() )
+    {
+        //
+        // use file title in metadata as title cotent directly
+        //
+        fileTitle = iTitle->AllocL();
+    }
+    else if ( ( EMPXVideoStreaming == iPlaybackMode || EMPXVideoLiveStreaming == iPlaybackMode ) &&
+              iClipName && iClipName->Length() )
+    {
+        //
+        //  parse file name in URL
+        //
+        TUriParser parser;
+
+        if ( parser.Parse( iClipName->Des() ) == KErrNone )
+        {
+
+            MPX_DEBUG(
+                _L( "    streaming link: schema = %S, urihost = %S, uriPort = %S, uriPath = %S" ),
+                &( parser.Extract( EUriScheme ) ),
+                &( parser.Extract( EUriHost ) ),
+                &( parser.Extract( EUriPort ) ),
+                &( parser.Extract( EUriPath ) ) );
+
+            HBufC* nameAndTail = NULL;
+
+            MPX_TRAPD( err, nameAndTail = parser.GetFileNameL( EUriFileNameTail ) );
+
+            if ( KErrNone == err && nameAndTail )
+            {
+                CleanupStack::PushL( nameAndTail );
+                TInt extPos = nameAndTail->Des().LocateReverse( KExtDelimiter );
+
+                if ( extPos > 0 )
+                {
+                    fileTitle = ( nameAndTail->Des().Left( extPos ) ).AllocL();
+                }
+                else
+                {
+                    fileTitle = nameAndTail->Des().AllocL();
+                }
+
+                CleanupStack::PopAndDestroy( nameAndTail );
+            }
+        }
+    }
+
+    return fileTitle;
+}
+
 //  EOF