videoplayback/videoplaybackcontrols/src/mpxvideoplaybackmediadetailsviewer.cpp
branchRCL_3
changeset 21 315810614048
parent 11 8970fbd719ec
equal deleted inserted replaced
20:2d690156cf8f 21:315810614048
    14 * Description: Media Details Viewer
    14 * Description: Media Details Viewer
    15 *
    15 *
    16 */
    16 */
    17 
    17 
    18 
    18 
    19 // Version : %version:  e003sa33#17 %
    19 // Version : %version:  18 %
    20 
    20 
    21 
    21 
    22 // INCLUDE FILES
    22 // INCLUDE FILES
    23 #include <eikenv.h>
    23 #include <eikenv.h>
    24 #include <eiklabel.h>
    24 #include <eiklabel.h>
    63 // ============================ MEMBER FUNCTIONS ===================================================
    63 // ============================ MEMBER FUNCTIONS ===================================================
    64 
    64 
    65 CMPXVideoPlaybackMediaDetailsViewer::CMPXVideoPlaybackMediaDetailsViewer(
    65 CMPXVideoPlaybackMediaDetailsViewer::CMPXVideoPlaybackMediaDetailsViewer(
    66     CMPXVideoPlaybackControlsController* aController )
    66     CMPXVideoPlaybackControlsController* aController )
    67     : iController( aController )
    67     : iController( aController )
       
    68     , iDrmDetailsLaunched( EFalse )
    68 {
    69 {
    69 }
    70 }
    70 
    71 
    71 // -------------------------------------------------------------------------------------------------
    72 // -------------------------------------------------------------------------------------------------
    72 // CMPXVideoPlaybackMediaDetailsViewer::ConstructL()
    73 // CMPXVideoPlaybackMediaDetailsViewer::ConstructL()
   236 // CMPXVideoPlaybackMediaDetailsViewer::LaunchDRMDetailsL()
   237 // CMPXVideoPlaybackMediaDetailsViewer::LaunchDRMDetailsL()
   237 // -------------------------------------------------------------------------------------------------
   238 // -------------------------------------------------------------------------------------------------
   238 //
   239 //
   239 void CMPXVideoPlaybackMediaDetailsViewer::LaunchDRMDetailsL()
   240 void CMPXVideoPlaybackMediaDetailsViewer::LaunchDRMDetailsL()
   240 {
   241 {
   241     iController->iContainer->HandleCommandL(EMPXPbvLaunchDRMDetails);
   242     if ( ! iDrmDetailsLaunched )
       
   243     {
       
   244         iDrmDetailsLaunched = ETrue;
       
   245         iController->iContainer->HandleCommandL( EMPXPbvLaunchDRMDetails );
       
   246         iDrmDetailsLaunched = EFalse;
       
   247     }
   242 }
   248 }
   243 
   249 
   244 // -------------------------------------------------------------------------------------------------
   250 // -------------------------------------------------------------------------------------------------
   245 // CMPXVideoPlaybackMediaDetailsViewer::SkinChangeL()
   251 // CMPXVideoPlaybackMediaDetailsViewer::SkinChangeL()
   246 // -------------------------------------------------------------------------------------------------
   252 // -------------------------------------------------------------------------------------------------
   305         iLicenseLabel->MakeVisible( ETrue );
   311         iLicenseLabel->MakeVisible( ETrue );
   306         rowsAdded++;
   312         rowsAdded++;
   307 
   313 
   308         CleanupStack::PopAndDestroy( heading );
   314         CleanupStack::PopAndDestroy( heading );
   309     }
   315     }
   310     
   316 
   311     // Title
   317     // Title
   312     HBufC* fileTitle = iController->FileDetails()->GenerateFileTitleL();
   318     HBufC* fileTitle = iController->FileDetails()->GenerateFileTitleL();
   313     
   319 
   314     if ( fileTitle && fileTitle->Length() )
   320     if ( fileTitle && fileTitle->Length() )
   315     {
   321     {
   316         // Title gets populated by UpdateTitle method
   322         // Title gets populated by UpdateTitle method
   317         iTitleLabel->SetExtent(
   323         iTitleLabel->SetExtent(
   318                           TPoint( Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded ) ) ,
   324                           TPoint( Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded ) ) ,
   320                           );
   326                           );
   321         iTitleLabel->SetAllMarginsTo( KMediaDetailsViewerItemMargin );
   327         iTitleLabel->SetAllMarginsTo( KMediaDetailsViewerItemMargin );
   322         iTitleLabel->MakeVisible( ETrue );
   328         iTitleLabel->MakeVisible( ETrue );
   323         rowsAdded++;
   329         rowsAdded++;
   324     }
   330     }
   325     
   331 
   326     delete fileTitle;
   332     delete fileTitle;
   327 
   333 
   328     // Filename
   334     // Filename
   329     HBufC* fileName = iController->FileDetails()->GenerateFileNameL();
   335     HBufC* fileName = iController->FileDetails()->GenerateFileNameL();
   330 
   336 
   337                              );
   343                              );
   338         iClipnameLabel->SetAllMarginsTo( KMediaDetailsViewerItemMargin );
   344         iClipnameLabel->SetAllMarginsTo( KMediaDetailsViewerItemMargin );
   339         iClipnameLabel->MakeVisible( ETrue );
   345         iClipnameLabel->MakeVisible( ETrue );
   340         rowsAdded++;
   346         rowsAdded++;
   341     }
   347     }
   342     
   348 
   343     delete fileName;
   349     delete fileName;
   344     
   350 
   345     // Mime Type (Format)
   351     // Mime Type (Format)
   346     if ( iController->FileDetails()->iMimeType && iController->FileDetails()->iMimeType->Length() )
   352     if ( iController->FileDetails()->iMimeType && iController->FileDetails()->iMimeType->Length() )
   347     {
   353     {
   348         iFormatLabel->SetExtent(
   354         iFormatLabel->SetExtent(
   349                           TPoint( Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded ) ) ,
   355                           TPoint( Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded ) ) ,
   695 
   701 
   696     if ( iFilenameScroller.IsUpdateNeeded() )
   702     if ( iFilenameScroller.IsUpdateNeeded() )
   697     {
   703     {
   698         UpdateFilenameL();
   704         UpdateFilenameL();
   699     }
   705     }
   700     
   706 
   701     if ( iTitleScroller.IsUpdateNeeded() )
   707     if ( iTitleScroller.IsUpdateNeeded() )
   702     {
   708     {
   703         UpdateTitleL();
   709         UpdateTitleL();
   704     }
   710     }
   705 
   711 
   753     {
   759     {
   754         numOfItems++;
   760         numOfItems++;
   755     }
   761     }
   756 
   762 
   757     HBufC* title = NULL;
   763     HBufC* title = NULL;
   758     TRAP_IGNORE ( title = iController->FileDetails()->GenerateFileTitleL() ); 
   764     TRAP_IGNORE ( title = iController->FileDetails()->GenerateFileTitleL() );
   759     
   765 
   760     if ( title )
   766     if ( title )
   761     {
   767     {
   762         numOfItems++;
   768         numOfItems++;
   763         delete title;
   769         delete title;
   764     }
   770     }
   841 // -------------------------------------------------------------------------------------------------
   847 // -------------------------------------------------------------------------------------------------
   842 //
   848 //
   843 void CMPXVideoPlaybackMediaDetailsViewer::UpdateFilenameL()
   849 void CMPXVideoPlaybackMediaDetailsViewer::UpdateFilenameL()
   844 {
   850 {
   845     MPX_ENTER_EXIT( _L( "CMPXVideoPlaybackMediaDetailsViewer::UpdateFilenameL" ) );
   851     MPX_ENTER_EXIT( _L( "CMPXVideoPlaybackMediaDetailsViewer::UpdateFilenameL" ) );
   846     
   852 
   847 	HBufC* fileName = iController->FileDetails()->GenerateFileNameL();
   853     HBufC* fileName = iController->FileDetails()->GenerateFileNameL();
   848     CleanupStack::PushL( fileName );
   854     CleanupStack::PushL( fileName );
   849     
   855 
   850     if ( fileName && fileName->Length() )
   856     if ( fileName && fileName->Length() )
   851     {
   857     {
   852         HBufC* heading  = iEikonEnv->AllocReadResourceL( R_MPX_FILENAME_HEADING );
   858         HBufC* heading  = iEikonEnv->AllocReadResourceL( R_MPX_FILENAME_HEADING );
   853         CleanupStack::PushL( heading );
   859         CleanupStack::PushL( heading );
   854 
   860 
   863 
   869 
   864         iScrolledTextUpdated = ETrue;
   870         iScrolledTextUpdated = ETrue;
   865 
   871 
   866         CleanupStack::PopAndDestroy( heading );
   872         CleanupStack::PopAndDestroy( heading );
   867     }
   873     }
   868     
   874 
   869     CleanupStack::PopAndDestroy( fileName );
   875     CleanupStack::PopAndDestroy( fileName );
   870 }
   876 }
   871 
   877 
   872 // -------------------------------------------------------------------------------------------------
   878 // -------------------------------------------------------------------------------------------------
   873 //   CMPXVideoPlaybackMediaDetailsViewer::UpdateTitleL
   879 //   CMPXVideoPlaybackMediaDetailsViewer::UpdateTitleL
   874 // -------------------------------------------------------------------------------------------------
   880 // -------------------------------------------------------------------------------------------------
   875 //
   881 //
   876 void CMPXVideoPlaybackMediaDetailsViewer::UpdateTitleL()
   882 void CMPXVideoPlaybackMediaDetailsViewer::UpdateTitleL()
   877 {
   883 {
   878     MPX_ENTER_EXIT( _L( "CMPXVideoPlaybackMediaDetailsViewer::UpdateTitleL" ) );
   884     MPX_ENTER_EXIT( _L( "CMPXVideoPlaybackMediaDetailsViewer::UpdateTitleL" ) );
   879     
   885 
   880 	HBufC* fileTitle = iController->FileDetails()->GenerateFileTitleL();
   886     HBufC* fileTitle = iController->FileDetails()->GenerateFileTitleL();
   881     CleanupStack::PushL( fileTitle );
   887     CleanupStack::PushL( fileTitle );
   882     
   888 
   883 	if ( fileTitle && fileTitle->Length() )
   889     if ( fileTitle && fileTitle->Length() )
   884     {
   890     {
   885         HBufC* heading  = iEikonEnv->AllocReadResourceL( R_MPX_TITLE_HEADING );
   891         HBufC* heading  = iEikonEnv->AllocReadResourceL( R_MPX_TITLE_HEADING );
   886         CleanupStack::PushL( heading );
   892         CleanupStack::PushL( heading );
   887 
   893 
   888         TBuf<KMediaDetailsViewerMaxBufLen> titleField;
   894         TBuf<KMediaDetailsViewerMaxBufLen> titleField;
   896 
   902 
   897         iScrolledTextUpdated = ETrue;
   903         iScrolledTextUpdated = ETrue;
   898 
   904 
   899         CleanupStack::PopAndDestroy( heading );
   905         CleanupStack::PopAndDestroy( heading );
   900     }
   906     }
   901 	
   907 
   902     CleanupStack::PopAndDestroy( fileTitle );	
   908     CleanupStack::PopAndDestroy( fileTitle );
   903 }
   909 }
   904 
   910 
   905 // -------------------------------------------------------------------------------------------------
   911 // -------------------------------------------------------------------------------------------------
   906 //   CMPXVideoPlaybackMediaDetailsViewer::ViewerRect
   912 //   CMPXVideoPlaybackMediaDetailsViewer::ViewerRect
   907 // -------------------------------------------------------------------------------------------------
   913 // -------------------------------------------------------------------------------------------------
   938 // -------------------------------------------------------------------------------------------------
   944 // -------------------------------------------------------------------------------------------------
   939 //
   945 //
   940 TBool CMPXVideoPlaybackMediaDetailsViewer::TTextScroller::IsUpdateNeeded()
   946 TBool CMPXVideoPlaybackMediaDetailsViewer::TTextScroller::IsUpdateNeeded()
   941 {
   947 {
   942     MPX_ENTER_EXIT( _L( "CMPXVideoPlaybackMediaDetailsViewer::TTextScroller::IsUpdateNeeded" ) );
   948     MPX_ENTER_EXIT( _L( "CMPXVideoPlaybackMediaDetailsViewer::TTextScroller::IsUpdateNeeded" ) );
   943     
   949 
   944 	// skip the scrolling operation if the loop for delay is going on
   950     // skip the scrolling operation if the loop for delay is going on
   945     TBool skipForTimerDelay = EFalse;
   951     TBool skipForTimerDelay = EFalse;
   946 
   952 
   947     // add a delay after each complete scrolling
   953     // add a delay after each complete scrolling
   948     if ( iScroll && iDelayBeginningTick != KInvalidTick )
   954     if ( iScroll && iDelayBeginningTick != KInvalidTick )
   949     {
   955     {
   975 void CMPXVideoPlaybackMediaDetailsViewer::TTextScroller::ScrollText(
   981 void CMPXVideoPlaybackMediaDetailsViewer::TTextScroller::ScrollText(
   976         const TDesC& aSrcText,
   982         const TDesC& aSrcText,
   977         TDes& aDesText )
   983         TDes& aDesText )
   978 {
   984 {
   979     MPX_ENTER_EXIT( _L( "CMPXVideoPlaybackMediaDetailsViewer::TTextScroller::ScrollText" ) );
   985     MPX_ENTER_EXIT( _L( "CMPXVideoPlaybackMediaDetailsViewer::TTextScroller::ScrollText" ) );
   980     
   986 
   981 	if ( 0 == iSrcTextLen )
   987     if ( 0 == iSrcTextLen )
   982     {
   988     {
   983         iSrcTextLen = aSrcText.Length();
   989         iSrcTextLen = aSrcText.Length();
   984     }
   990     }
   985     
   991 
   986     ASSERT( aSrcText.Length() == iSrcTextLen );
   992     ASSERT( aSrcText.Length() == iSrcTextLen );
   987     if ( aSrcText.Length() >= KMediaDetailsViewerVisibleCharacters )
   993     if ( aSrcText.Length() >= KMediaDetailsViewerVisibleCharacters )
   988     {
   994     {
   989         aDesText.Append( aSrcText.Mid( iTextScrollPos,
   995         aDesText.Append( aSrcText.Mid( iTextScrollPos,
   990                 KMediaDetailsViewerVisibleCharacters ) );
   996                 KMediaDetailsViewerVisibleCharacters ) );
   997         else
  1003         else
   998         {
  1004         {
   999             iTextScrollPos++;
  1005             iTextScrollPos++;
  1000         }
  1006         }
  1001         iScroll = ETrue;
  1007         iScroll = ETrue;
  1002         
  1008 
  1003     }
  1009     }
  1004     else
  1010     else
  1005     {
  1011     {
  1006         aDesText.Append( aSrcText );
  1012         aDesText.Append( aSrcText );
  1007         iScroll = EFalse;
  1013         iScroll = EFalse;