diff -r 112a725ff2c2 -r 8970fbd719ec videoplayback/videoplaybackcontrols/tsrc/videoplaybackcontrols_test/src/mpxvpbvfd_stub.cpp --- 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 +#include #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