diff -r 7f2b2a65da29 -r 55fa1ec415c6 videoplayback/videohelix/src/mpxvideoplaybackcontroller.cpp --- a/videoplayback/videohelix/src/mpxvideoplaybackcontroller.cpp Tue Apr 27 16:40:33 2010 +0300 +++ b/videoplayback/videohelix/src/mpxvideoplaybackcontroller.cpp Tue May 11 16:15:40 2010 +0300 @@ -16,7 +16,7 @@ */ -// Version : %version: 56 % +// Version : %version: 58 % // @@ -155,7 +155,6 @@ iAccessPointId = KUseDefaultIap; iVideoSeeker = CMPXVideoSeeker::NewL( this ); - // Initiliaze to True iSeekable = ETrue; InitVolumeWatchersL(); @@ -197,6 +196,12 @@ ChangeState( EMPXVideoInitializing ); + if ( iClipName ) + { + delete iClipName; + iClipName = NULL; + } + iClipName = aMediaFile.AllocL(); iAccessPointId = aAccessPointId; @@ -228,35 +233,28 @@ iAccessoryMonitor = CMPXVideoAccessoryObserver::NewL( this ); } - if ( iAccessoryMonitor->IsTvOutPlaybackAllowed() ) + if ( fileExists ) { - if ( fileExists ) + // + // Ensure there are rights for protected clips + // + TInt drmError = iDrmHelper->GetDrmRightsStatus( iFileHandle ); + + if ( drmError ) { // - // Ensure there are rights for protected clips + // Send error to observer for handling // - TInt drmError = iDrmHelper->GetDrmRightsStatus( iFileHandle ); - - if ( drmError ) - { - // - // Send error to observer for handling - // - HandleError( drmError ); - } - else - { - iState->OpenFileL( iFileHandle ); - } + HandleError( drmError ); } else { - iState->OpenFileL( iClipName->Des() ); + iState->OpenFileL( iFileHandle ); } } else { - HandleError( KMPXVideoTvOutPlaybackNotAllowedClose ); + iState->OpenFileL( iClipName->Des() ); } } @@ -418,7 +416,7 @@ { case EPbCmdInitView: { - if ( iState != iNotIntialisedState) + if ( iState != iNotIntialisedState ) { aCmd.SetTextValueL( KMPXMediaVideoPlaybackFileName, *iClipName ); aCmd.SetTObjectValueL( KMPXMediaVideoMode, iPlaybackMode->GetMode() ); @@ -426,12 +424,10 @@ aCmd.SetTObjectValueL( KMPXMediaVideoTvOutConnected, iAccessoryMonitor->IsTvOutConnected() ); - aCmd.SetTObjectValueL( KMPXMediaVideoTvOutPlayAllowed, - iAccessoryMonitor->IsTvOutPlaybackAllowed() ); - if ( iRecognizedMimeType ) { - aCmd.SetTextValueL( KMPXMediaVideoRecognizedMimeType, *iRecognizedMimeType ); + aCmd.SetTextValueL( KMPXMediaVideoRecognizedMimeType, + *iRecognizedMimeType ); } } @@ -475,7 +471,9 @@ } case EPbCmdHandleBackground: { - iAppInForeground = static_cast(aCmd.ValueTObjectL(KMPXMediaVideoAppForeground)); + iAppInForeground = + static_cast(aCmd.ValueTObjectL(KMPXMediaVideoAppForeground)); + iState->HandleBackground(); break; } @@ -496,13 +494,7 @@ } case EPbCmdUpdateSeekable: { - iSeekable = aCmd.ValueTObjectL(KMPXMediaGeneralExtVideoSeekable); - - if ( iFileDetails ) - { - iFileDetails->iSeekable &= iSeekable; - } - + iState->UpdateSeekableL( aCmd ); break; } case EPbCmdEndofClipReached: @@ -1773,7 +1765,7 @@ // CMPXVideoPlaybackController::SendTvOutEventL // ------------------------------------------------------------------------------------------------- // -void CMPXVideoPlaybackController::SendTvOutEventL( TBool aConnected, TBool aPlaybackAllowed ) +void CMPXVideoPlaybackController::SendTvOutEventL( TBool aConnected ) { MPX_ENTER_EXIT(_L("CMPXVideoPlaybackController::SendTvOutEventL()")); @@ -1788,7 +1780,6 @@ message->SetTObjectValueL ( KMPXMediaVideoPlaybackCommand, EPbCmdTvOutEvent ); message->SetTObjectValueL( KMPXMediaVideoTvOutConnected, aConnected ); - message->SetTObjectValueL( KMPXMediaVideoTvOutPlayAllowed, aPlaybackAllowed ); iMPXPluginObs->HandlePlaybackMessage( message, KErrNone ); @@ -1829,9 +1820,7 @@ MPX_ENTER_EXIT( _L("CMPXVideoPlaybackController::HandleTvOutEventL()"), _L("aConnected = %d"), aConnected ); - TBool playbackAllowed = iAccessoryMonitor->IsTvOutPlaybackAllowed(); - - SendTvOutEventL( aConnected, playbackAllowed ); + SendTvOutEventL( aConnected ); // // Check playback status of clip with new Tv-Out status @@ -1841,25 +1830,12 @@ // // TV-Out accessory connected // - if ( ! playbackAllowed ) + // If lights are being controlled enable display timer so that screen backlight will be turned + // of after timeout. + if ( iBackLightTimer->IsActive() ) { - // - // Clip has DRM protection and TV-Out is connected - // Pause playback and display info note - // - DoHandleCommandL( EPbCmdPause ); - - iState->SendErrorToViewL( KMPXVideoTvOutPlaybackNotAllowed ); + RestartDisplayTimer(); } - else - { - // If lights are being controlled enable display timer so that screen backlight will be turned - // of after timeout. - if ( iBackLightTimer->IsActive() ) - { - RestartDisplayTimer(); - } - } } else { @@ -1922,6 +1898,7 @@ MPX_ENTER_EXIT(_L("CMPXVideoPlaybackController::DoHandleBackLightTimeout()")); TBool tvOutConnected( EFalse ); + if ( iAccessoryMonitor ) { tvOutConnected = iAccessoryMonitor->IsTvOutConnected(); @@ -1931,7 +1908,8 @@ // it keeps resetting display timer and keeps lights on whenever there is user activity if ( tvOutConnected ) { - MPX_DEBUG ( _L("CMPXVideoPlaybackController::DoHandleBackLightTimeout() inactivity time = %d"), User::InactivityTime().Int() ); + MPX_DEBUG(_L("CMPXVideoPlaybackController::DoHandleBackLightTimeout() inactivity time = %d"), User::InactivityTime().Int() ); + // Cancel activity timer. Otherwise resetting inactivity time would fire user activity detection CancelUserActivityTimer(); } @@ -2357,7 +2335,7 @@ ChangeState( EMPXVideoNotInitialized ); // - // Move the FW state to Initialized so that it can request for Media + // Move the FW state to Initialized so that it can request for Media // iMPXPluginObs->HandlePluginEvent( MMPXPlaybackPluginObserver::EPInitialised, 0, KErrNone ); @@ -2390,12 +2368,6 @@ iFileDetails = NULL; } - if ( iClipName ) - { - delete iClipName; - iClipName = NULL; - } - if ( iRecognizedMimeType ) { delete iRecognizedMimeType; @@ -2414,7 +2386,6 @@ } #endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API - // reset to True iSeekable = ETrue; // @@ -2497,6 +2468,12 @@ ChangeState( EMPXVideoInitializing ); + if ( iClipName ) + { + delete iClipName; + iClipName = NULL; + } + iClipName = aMediaFile.AllocL(); iAccessPointId = aAccessPointId; @@ -2528,35 +2505,28 @@ iAccessoryMonitor = CMPXVideoAccessoryObserver::NewL( this ); } - if ( iAccessoryMonitor->IsTvOutPlaybackAllowed() ) + if ( fileExists ) { - if ( fileExists ) + // + // Ensure there are rights for protected clips + // + TInt drmError = iDrmHelper->GetDrmRightsStatus64( iFileHandle64 ); + + if ( drmError ) { // - // Ensure there are rights for protected clips + // Send error to observer for handling // - TInt drmError = iDrmHelper->GetDrmRightsStatus64( iFileHandle64 ); - - if ( drmError ) - { - // - // Send error to observer for handling - // - HandleError( drmError ); - } - else - { - iState->OpenFile64L( iFileHandle64 ); - } + HandleError( drmError ); } else { - iState->OpenFileL( iClipName->Des() ); + iState->OpenFile64L( iFileHandle64 ); } } else { - HandleError( KMPXVideoTvOutPlaybackNotAllowedClose ); + iState->OpenFileL( iClipName->Des() ); } }