videoplayback/videohelix/src/mpxvideoplaybackmode.cpp
branchRCL_3
changeset 15 8f0df5c82986
parent 14 55fa1ec415c6
child 16 67eb01668b0e
equal deleted inserted replaced
14:55fa1ec415c6 15:8f0df5c82986
    14 * Description:  This class plays local video file
    14 * Description:  This class plays local video file
    15  *
    15  *
    16 */
    16 */
    17 
    17 
    18 
    18 
    19 // Version : %version: 25 %
    19 // Version : %version: 29 %
    20 
    20 
    21 
    21 
    22 //
    22 //
    23 //  INCLUDE FILES
    23 //  INCLUDE FILES
    24 //
    24 //
    33 #include "mpxvideoplaybackcontroller.h"
    33 #include "mpxvideoplaybackcontroller.h"
    34 #include "mpxvideoplaybackmode.h"
    34 #include "mpxvideoplaybackmode.h"
    35 #include "mpxvideofiledetails.h"
    35 #include "mpxvideofiledetails.h"
    36 #include <mpxvideoplaybackdefs.h>
    36 #include <mpxvideoplaybackdefs.h>
    37 #include "mpxvideodrmhelper.h"
    37 #include "mpxvideodrmhelper.h"
       
    38 #include "mpxvideoposterframesetter.h"
    38 
    39 
    39 // Constants
    40 // Constants
    40 const TUid KUidInterfaceMMFHelixController = {0x101F855D};
    41 const TUid KUidInterfaceMMFHelixController = {0x101F855D};
    41 
    42 
    42 _LIT8(KMMFAccessPoint,"AccessPoint:Integer = \"%d\";");
    43 _LIT8(KMMFAccessPoint,"AccessPoint:Integer = \"%d\";");
    67 //  ------------------------------------------------------------------------------------------------
    68 //  ------------------------------------------------------------------------------------------------
    68 //
    69 //
    69 CMPXVideoPlaybackMode::~CMPXVideoPlaybackMode()
    70 CMPXVideoPlaybackMode::~CMPXVideoPlaybackMode()
    70 {
    71 {
    71     MPX_DEBUG(_L("CMPXVideoPlaybackMode::~CMPXVideoPlaybackMode()"));
    72     MPX_DEBUG(_L("CMPXVideoPlaybackMode::~CMPXVideoPlaybackMode()"));
       
    73     
       
    74     if ( iPosterFrameSetter )
       
    75     {
       
    76         delete iPosterFrameSetter;
       
    77         iPosterFrameSetter = NULL;
       
    78     }
    72 }
    79 }
    73 
    80 
    74 //  ----------------------------------------------------------------------------
    81 //  ----------------------------------------------------------------------------
    75 //    CMPXVideoPlaybackMode::OpenFileL()
    82 //    CMPXVideoPlaybackMode::OpenFileL()
    76 //  ----------------------------------------------------------------------------
    83 //  ----------------------------------------------------------------------------
   175 //  ------------------------------------------------------------------------------------------------
   182 //  ------------------------------------------------------------------------------------------------
   176 void CMPXVideoPlaybackMode::HandleBackground()
   183 void CMPXVideoPlaybackMode::HandleBackground()
   177 {
   184 {
   178     MPX_DEBUG(_L("CMPXVideoPlaybackMode::HandleBackground()"));
   185     MPX_DEBUG(_L("CMPXVideoPlaybackMode::HandleBackground()"));
   179 
   186 
   180     //
       
   181     //  Pause in all cases to remove the different behavior based on the decoder
       
   182     //
       
   183     iVideoPlaybackCtlr->iState->HandlePause();
       
   184 
       
   185     if ( iVideoPlaybackCtlr->iAppInForeground )
   187     if ( iVideoPlaybackCtlr->iAppInForeground )
   186     {
   188     {
   187         if ( iVideoPlaybackCtlr->IsAlarm() )
   189         if ( iVideoPlaybackCtlr->IsAlarm() )
   188         {
   190         {
   189             iVideoPlaybackCtlr->iForegroundPause = ETrue;
   191             iVideoPlaybackCtlr->iState->HandlePause();
   190         }
   192         }
   191         else if ( iVideoPlaybackCtlr->IsKeyLocked() &&
   193         else if ( iVideoPlaybackCtlr->IsKeyLocked() &&
   192                   iVideoPlaybackCtlr->iFileDetails->iVideoEnabled )
   194                   iVideoPlaybackCtlr->iFileDetails->iVideoEnabled )
   193         {
   195         {
   194             iVideoPlaybackCtlr->iForegroundPause = ETrue;
   196             iVideoPlaybackCtlr->iState->HandlePause();
   195             iVideoPlaybackCtlr->SendHideControlsEventL();
   197             TRAP_IGNORE( iVideoPlaybackCtlr->SendHideControlsEventL() );
   196         }
   198         }
   197         else if ( iVideoPlaybackCtlr->IsPhoneCall() || iVideoPlaybackCtlr->IsVideoCall() )
   199         else if ( iVideoPlaybackCtlr->IsPhoneCall() || iVideoPlaybackCtlr->IsVideoCall() )
   198         {
   200         {
   199             iVideoPlaybackCtlr->iForegroundPause = EFalse;
   201             iVideoPlaybackCtlr->iState->HandlePause();
   200         }
   202         }
   201     }
   203     }
   202     else
   204     else
   203     {
   205     {
   204         iVideoPlaybackCtlr->iForegroundPause = EFalse;
   206          iVideoPlaybackCtlr->iState->HandlePause();
   205     }
   207     }
   206 }
   208 }
   207 
   209 
   208 //  ------------------------------------------------------------------------------------------------
   210 //  ------------------------------------------------------------------------------------------------
   209 //  CMPXVideoPlaybackMode::CanPlayNow()
   211 //  CMPXVideoPlaybackMode::CanPlayNow()
   218     {
   220     {
   219         if ( iVideoPlaybackCtlr->IsVideoCall() )
   221         if ( iVideoPlaybackCtlr->IsVideoCall() )
   220         {
   222         {
   221             MPX_TRAPD( err,
   223             MPX_TRAPD( err,
   222                 iVideoPlaybackCtlr->iState->SendErrorToViewL( KMPXVideoCallOngoingError ) );
   224                 iVideoPlaybackCtlr->iState->SendErrorToViewL( KMPXVideoCallOngoingError ) );
   223         }
       
   224         else if ( iVideoPlaybackCtlr->IsKeyLocked() &&
       
   225                   iVideoPlaybackCtlr->iFileDetails->iVideoEnabled )
       
   226         {
       
   227             iVideoPlaybackCtlr->iForegroundPause = ETrue;
       
   228         }
   225         }
   229         else
   226         else
   230         {
   227         {
   231             playAllowed = ETrue;
   228             playAllowed = ETrue;
   232         }
   229         }
   274     MPX_DEBUG(_L("CMPXVideoPlaybackMode::IsNetworkMode2GL(%d)"), networkMode2g);
   271     MPX_DEBUG(_L("CMPXVideoPlaybackMode::IsNetworkMode2GL(%d)"), networkMode2g);
   275 
   272 
   276     return networkMode2g;
   273     return networkMode2g;
   277 }
   274 }
   278 
   275 
       
   276 
       
   277 //  ------------------------------------------------------------------------------------------------
       
   278 //    CMPXVideoPlaybackMode::HandleSetPosterFrame()
       
   279 //  ------------------------------------------------------------------------------------------------
       
   280 void CMPXVideoPlaybackMode::HandleSetPosterFrame()
       
   281 {
       
   282     MPX_DEBUG(_L("CMPXVideoPlaybackMode::HandleSetPosterFrame()"));
       
   283 }
       
   284 
       
   285 //  ------------------------------------------------------------------------------------------------
       
   286 //    CMPXVideoPlaybackMode::HandleSetPosterFrame()
       
   287 //  ------------------------------------------------------------------------------------------------
       
   288 void CMPXVideoPlaybackMode::HandleFrameReady(TInt /*aError*/)
       
   289 {
       
   290     MPX_DEBUG(_L("CMPXLocalPlaybackMode::HandleFrameReady()"));        
       
   291 }
   279 //************************************************************************************************//
   292 //************************************************************************************************//
   280 //          CMPXLocalPlaybackMode
   293 //          CMPXLocalPlaybackMode
   281 //************************************************************************************************//
   294 //************************************************************************************************//
   282 CMPXVideoPlaybackMode*
   295 CMPXVideoPlaybackMode*
   283 CMPXLocalPlaybackMode::NewL( CMPXVideoPlaybackController* aVideoPlaybackCtlr )
   296 CMPXLocalPlaybackMode::NewL( CMPXVideoPlaybackController* aVideoPlaybackCtlr )
   292 
   305 
   293 CMPXLocalPlaybackMode::~CMPXLocalPlaybackMode()
   306 CMPXLocalPlaybackMode::~CMPXLocalPlaybackMode()
   294 {
   307 {
   295     MPX_DEBUG(_L("CMPXLocalPlaybackMode::~CMPXLocalPlaybackMode()"));
   308     MPX_DEBUG(_L("CMPXLocalPlaybackMode::~CMPXLocalPlaybackMode()"));
   296 }
   309 }
       
   310 
       
   311 void CMPXLocalPlaybackMode::HandleSetPosterFrame()
       
   312 {
       
   313     MPX_DEBUG(_L("CMPXLocalPlaybackMode::HandleSetPosterFrame()"));
       
   314          
       
   315     // create poster frame setter if it does not already exist
       
   316     if ( ! iPosterFrameSetter )
       
   317     {
       
   318         TRAP_IGNORE(iPosterFrameSetter = CMPXVideoPosterFrameSetter::NewL( iVideoPlaybackCtlr ));
       
   319     }
       
   320 
       
   321     if ( iPosterFrameSetter )
       
   322     {
       
   323         iPosterFrameSetter->RequestPosterFrame();
       
   324     }    
       
   325 }
       
   326 
       
   327 void CMPXLocalPlaybackMode::HandleFrameReady(TInt aError)
       
   328 {
       
   329     MPX_DEBUG(_L("CMPXLocalPlaybackMode::HandleFrameReady()"));      
       
   330     
       
   331     iPosterFrameSetter->HandlePosterFrameReady(aError);
       
   332 }
       
   333 
   297 
   334 
   298 //************************************************************************************************//
   335 //************************************************************************************************//
   299 //          CMPXStreamingPlaybackMode
   336 //          CMPXStreamingPlaybackMode
   300 //************************************************************************************************//
   337 //************************************************************************************************//
   301 CMPXVideoPlaybackMode*
   338 CMPXVideoPlaybackMode*
   384         if ( iVideoPlaybackCtlr->IsVideoCall() )
   421         if ( iVideoPlaybackCtlr->IsVideoCall() )
   385         {
   422         {
   386             MPX_TRAPD(err,
   423             MPX_TRAPD(err,
   387                       iVideoPlaybackCtlr->iState->SendErrorToViewL( KMPXVideoCallOngoingError ));
   424                       iVideoPlaybackCtlr->iState->SendErrorToViewL( KMPXVideoCallOngoingError ));
   388         }
   425         }
   389         else if ( iVideoPlaybackCtlr->IsKeyLocked() && iVideoPlaybackCtlr->iFileDetails->iVideoEnabled )
       
   390         {
       
   391           //exit for live streaming
       
   392         }
       
   393         else
   426         else
   394         {
   427         {
   395             MPX_TRAPD( err,
   428             MPX_TRAPD( err,
   396                        playAllowed = !( iVideoPlaybackCtlr->IsVoiceCall() && IsNetworkMode2GL() ) );
   429                        playAllowed = !( iVideoPlaybackCtlr->IsVoiceCall() && IsNetworkMode2GL() ) );
   397 
   430 
   487 //  ------------------------------------------------------------------------------------------------
   520 //  ------------------------------------------------------------------------------------------------
   488 void CMPXLiveStreamingPlaybackMode::HandleBackground()
   521 void CMPXLiveStreamingPlaybackMode::HandleBackground()
   489 {
   522 {
   490     MPX_DEBUG(_L("CMPXLiveStreamingPlaybackMode::HandleBackground()"));
   523     MPX_DEBUG(_L("CMPXLiveStreamingPlaybackMode::HandleBackground()"));
   491 
   524 
   492     //
   525     if ( iVideoPlaybackCtlr->iAppInForeground )
   493     //  Pause in all cases to remove the different behavior based on the decoder
   526     {
   494     //
   527         if ( iVideoPlaybackCtlr->IsPhoneCall() ||
   495     iVideoPlaybackCtlr->iState->HandlePause();
   528              iVideoPlaybackCtlr->IsVideoCall() ||
       
   529              ( iVideoPlaybackCtlr->IsKeyLocked() &&
       
   530                iVideoPlaybackCtlr->iFileDetails->iVideoEnabled ) )
       
   531         {
       
   532             iVideoPlaybackCtlr->iState->HandlePause();
       
   533         }
       
   534     }
       
   535     else
       
   536     {
       
   537         iVideoPlaybackCtlr->iState->HandlePause();
       
   538     }
   496 }
   539 }
   497 
   540 
   498 //************************************************************************************************//
   541 //************************************************************************************************//
   499 //          CMPXProgressiveDLPlaybackMode
   542 //          CMPXProgressiveDLPlaybackMode
   500 //************************************************************************************************//
   543 //************************************************************************************************//