Fix for N_SE-38395 N_SE-38580
authorabhismita ghosh <g.abhismita@samsung.com>
Wed, 15 May 2013 19:07:17 +0000 (00:37 +0530)
committerabhismita ghosh <g.abhismita@samsung.com>
Wed, 15 May 2013 19:07:17 +0000 (00:37 +0530)
Change-Id: I7951c7e694dc6ed59e95882ace693c4eb0e225df

inc/VpVideoPlayerPresentationModel.h
src/VpVideoPlayerForm.cpp
src/VpVideoPlayerPresentationModel.cpp

index 941d82e..2f7e3ae 100755 (executable)
@@ -114,7 +114,7 @@ private:
        Tizen::Base::String* __pCurrentPlayContentPath;
        bool __playerSeekCompleted;
        bool __playerLastSeekCompleted;
-       bool __playAfterSeek;
+       Tizen::Media::PlayerState __stateAfterSeek;
        int __mediaWidth;
        int __mediaHeight;
        int __currentMediaIndex;
index 5f371a0..d045cd2 100755 (executable)
@@ -1586,11 +1586,21 @@ VideoPlayerForm::OnPlayStateChanged(PlayerState playState)
        if (playState == PLAYER_STATE_PLAYING)
        {
                __pUiControlTimer->Start(SHOW_CONTROL_DURATION);
+
+               if (__pScreenModeButton->GetShowState() == false)
+               {
+                       __pScreenModeButton->SetShowState(true);
+               }
        }
        else
        {
                __pUiControlTimer->Cancel();
                ShowControl(true);
+
+               if (__pScreenModeButton->GetShowState() == true)
+               {
+                       __pScreenModeButton->SetShowState(false);
+               }
        }
 }
 
index 2167b72..478a702 100755 (executable)
@@ -62,7 +62,7 @@ VideoPlayerPresentationModel::VideoPlayerPresentationModel(void)
        , __pCurrentPlayContentPath(null)
        , __playerSeekCompleted(true)
        , __playerLastSeekCompleted(false)
-       , __playAfterSeek(true)
+       , __stateAfterSeek(PLAYER_STATE_ERROR)
        , __mediaWidth(0)
        , __mediaHeight(0)
        , __currentMediaIndex(INIT_CONTENT_INDEX)
@@ -270,10 +270,11 @@ VideoPlayerPresentationModel::OnPlayerSeekCompleted(result r)
 
        if (__playerLastSeekCompleted == true)
        {
-               if (__playAfterSeek == true)
+               if (__stateAfterSeek == PLAYER_STATE_PLAYING)
                {
                        result r = __pPlayer->Play();
                        TryReturnVoid(r == E_SUCCESS, "__pPlayer->Play():%s", GetErrorMessage(r));
+                       __stateAfterSeek = PLAYER_STATE_ERROR;
 
                        CallOnPlayStateChanged(__pPlayer->GetState());
 
@@ -283,6 +284,12 @@ VideoPlayerPresentationModel::OnPlayerSeekCompleted(result r)
                __playerLastSeekCompleted = false;
        }
 
+       if (__stateAfterSeek == PLAYER_STATE_PAUSED)
+       {
+               PausePlay();
+               __stateAfterSeek = PLAYER_STATE_ERROR;
+       }
+
        __pVideoPlayerEventListener->OnPlaySeekCompleted(r);
 }
 
@@ -434,8 +441,7 @@ VideoPlayerPresentationModel::StartPlay(void)
                        r = __pPlayer->Play();
                        TryCatch(r == E_SUCCESS, , "__pPlayer->Play() failed:%s", GetErrorMessage(r));
 
-                       r = __pTimer->Start(PROGRESS_TIMER_DURATION);
-                       TryCatch(r == E_SUCCESS, , "__pTimer->Start() failed:%s", GetErrorMessage(r));
+                       __pTimer->Start(PROGRESS_TIMER_DURATION);
                }
                break;
 
@@ -483,14 +489,21 @@ VideoPlayerPresentationModel::PausePlay(void)
        PlayerState playState = GetState();
        AppLogDebug("PausePlay : %d", playState);
 
-       if (playState == PLAYER_STATE_PLAYING)
+       if (__playerSeekCompleted == true)
        {
-               r = __pPlayer->Pause();
-               TryCatch(r == E_SUCCESS, , "__pPlayer->Pause() failed:%s", GetErrorMessage(r));
+               if (playState == PLAYER_STATE_PLAYING)
+               {
+                       r = __pPlayer->Pause();
+                       TryCatch(r == E_SUCCESS, , "__pPlayer->Pause() failed:%s", GetErrorMessage(r));
+               }
+               else
+               {
+                       AppLogDebug("Invalid state of player");
+               }
        }
        else
        {
-               AppLogDebug("Invalid state of player");
+               __stateAfterSeek = PLAYER_STATE_PAUSED;
        }
 
        CallOnPlayStateChanged(__pPlayer->GetState());
@@ -895,7 +908,9 @@ VideoPlayerPresentationModel::Forward(void)
 
        AppLogDebug("Forward");
 
-       if (__pPlayer->GetState() != PLAYER_STATE_ENDOFCLIP)
+       PlayerState playState = __pPlayer->GetState();
+
+       if (playState != PLAYER_STATE_ENDOFCLIP)
        {
                msTime = __pPlayer->GetPosition();
 
@@ -915,6 +930,7 @@ VideoPlayerPresentationModel::Forward(void)
                                CallOnPlayTimeChanged(currentProgressPos, currentPlayTime);
 
                                __playerSeekCompleted = false;
+                               __stateAfterSeek = playState;
                        }
                }
                else
@@ -931,6 +947,7 @@ VideoPlayerPresentationModel::Forward(void)
                                CallOnPlayTimeChanged(currentProgressPos, currentPlayTime);
 
                                __playerSeekCompleted = false;
+                               __stateAfterSeek = playState;
                        }
                }
        }
@@ -948,7 +965,9 @@ VideoPlayerPresentationModel::Rewind(void)
 
        AppLogDebug("Rewind");
 
-       if (__pPlayer->GetState() != PLAYER_STATE_ENDOFCLIP)
+       PlayerState playState = __pPlayer->GetState();
+
+       if (playState != PLAYER_STATE_ENDOFCLIP)
        {
                msTime = __pPlayer->GetPosition();
 
@@ -967,6 +986,7 @@ VideoPlayerPresentationModel::Rewind(void)
                                CallOnPlayTimeChanged(currentProgressPos, currentPlayTime);
 
                                __playerSeekCompleted = false;
+                               __stateAfterSeek = playState;
                        }
                }
                else
@@ -983,6 +1003,7 @@ VideoPlayerPresentationModel::Rewind(void)
                                CallOnPlayTimeChanged(currentProgressPos, currentPlayTime);
 
                                __playerSeekCompleted = false;
+                               __stateAfterSeek = playState;
                        }
                }
        }
@@ -996,7 +1017,15 @@ VideoPlayerPresentationModel::FastForward(bool playAfterSeek)
        if (__pPlayer->GetState() != PLAYER_STATE_ENDOFCLIP)
        {
                PausePlay();
-               __playAfterSeek = playAfterSeek;
+               if(playAfterSeek)
+               {
+                       __stateAfterSeek = PLAYER_STATE_PLAYING;
+               }
+               else
+               {
+                       __stateAfterSeek = PLAYER_STATE_PAUSED;
+               }
+               
                __pFastForwardTimer->Start(LONGKEY_TIMER_DURATION);
        }
 }
@@ -1009,7 +1038,15 @@ VideoPlayerPresentationModel::FastRewind(bool playAfterSeek)
        if (__pPlayer->GetState() != PLAYER_STATE_ENDOFCLIP)
        {
                PausePlay();
-               __playAfterSeek = playAfterSeek;
+               if(playAfterSeek)
+               {
+                       __stateAfterSeek = PLAYER_STATE_PLAYING;
+               }
+               else
+               {
+                       __stateAfterSeek = PLAYER_STATE_PAUSED;
+               }
+               
                __pFastRewindTimer->Start(LONGKEY_TIMER_DURATION);
        }
 }
@@ -1026,7 +1063,7 @@ VideoPlayerPresentationModel::StopFastForwardRewind(void)
 
                if (__playerSeekCompleted == true)
                {
-                       if (__playAfterSeek == true)
+                       if (__stateAfterSeek == PLAYER_STATE_PLAYING)
                        {
                                result r = __pPlayer->Play();
                                TryReturnVoid(r == E_SUCCESS, "__pPlayer->Play() failed:%s", GetErrorMessage(r));