javauis/mmapi_qt/baseline/src/cmmastoptimecontrol.cpp
changeset 26 dc7c549001d5
parent 23 98ccebc37403
equal deleted inserted replaced
23:98ccebc37403 26:dc7c549001d5
    54 }
    54 }
    55 
    55 
    56 
    56 
    57 void CMMAStopTimeControl::CStopTimer::RunL()
    57 void CMMAStopTimeControl::CStopTimer::RunL()
    58 {
    58 {
    59     LOG( EJavaMMAPI, EInfo, "MMA:CMMAStopTimeControl:CStopTimer:RunL timer triggered");
    59     LOG(EJavaMMAPI, EInfo, "MMA:CMMAStopTimeControl:CStopTimer:RunL timer triggered");
    60     iControl->StopAtTimeL();
    60     iControl->StopAtTimeL();
    61 }
    61 }
    62 
    62 
    63 const TDesC& CMMAStopTimeControl::ClassName() const
    63 const TDesC& CMMAStopTimeControl::ClassName() const
    64 {
    64 {
   111 }
   111 }
   112 
   112 
   113 
   113 
   114 void CMMAStopTimeControl::StopAtTimeL()
   114 void CMMAStopTimeControl::StopAtTimeL()
   115 {
   115 {
   116     LOG( EJavaMMAPI, EInfo, "MMA:CMMAStopTimeControl::StopAtTime");
   116     LOG(EJavaMMAPI, EInfo, "MMA:CMMAStopTimeControl::StopAtTime");
   117 
   117 
   118     // Stop the player only when it's playing
   118     // Stop the player only when it's playing
   119     if (iPlayer->State() == CMMAPlayer::EStarted)
   119     if (iPlayer->State() == CMMAPlayer::EStarted)
   120     {
   120     {
   121         TInt64 time;
   121         TInt64 time;
   122         iPlayer->GetMediaTime(&time);
   122         iPlayer->GetMediaTime(&time);
   123         if (time >= 0 && time < iStopTime)
   123         if (time >= 0 && time < iStopTime)
   124         {
   124         {
   125             LOG1( EJavaMMAPI, EInfo, "MMA:CMMAStopTimeControl::StopAtTime - Called %dms too early",
   125             LOG1(EJavaMMAPI, EInfo, "MMA:CMMAStopTimeControl::StopAtTime - Called %dms too early",
   126                       I64INT((time - iStopTime)/1000));
   126                  I64INT((time - iStopTime)/1000));
   127             StartTimer(time);
   127             StartTimer(time);
   128             return;
   128             return;
   129         }
   129         }
   130 
   130 
   131         TInt64 stopTime;
   131         TInt64 stopTime;
   132 
   132 
   133         // MediaTime is known
   133         // MediaTime is known
   134         if (time >= 0)
   134         if (time >= 0)
   135         {
   135         {
   136             LOG1( EJavaMMAPI, EInfo, "MMA:CMMAStopTimeControl::StopAtTime - called %dms late", I64INT((time - iStopTime)/1000));
   136             LOG1(EJavaMMAPI, EInfo, "MMA:CMMAStopTimeControl::StopAtTime - called %dms late", I64INT((time - iStopTime)/1000));
   137             stopTime = time;
   137             stopTime = time;
   138         }
   138         }
   139         else
   139         else
   140         {
   140         {
   141             // Use the requested time
   141             // Use the requested time
   169 {
   169 {
   170     iStopTime = aTime;
   170     iStopTime = aTime;
   171 
   171 
   172     if (aTime != iNoTimer)
   172     if (aTime != iNoTimer)
   173     {
   173     {
   174         LOG1( EJavaMMAPI, EInfo, "MMA:CMMAStopTimeControl:SetStopTime(%dms)",
   174         LOG1(EJavaMMAPI, EInfo, "MMA:CMMAStopTimeControl:SetStopTime(%dms)",
   175                   I64INT(aTime / 1000));
   175              I64INT(aTime / 1000));
   176 
   176 
   177         if (iPlayer->State() == CMMAPlayer::EStarted)
   177         if (iPlayer->State() == CMMAPlayer::EStarted)
   178         {
   178         {
   179             TInt64 currentTime(0);
   179             TInt64 currentTime(0);
   180             iPlayer->GetMediaTime(&currentTime);
   180             iPlayer->GetMediaTime(&currentTime);
   182             StartTimer(currentTime);
   182             StartTimer(currentTime);
   183         }
   183         }
   184     }
   184     }
   185     else
   185     else
   186     {
   186     {
   187         LOG( EJavaMMAPI, EInfo, "MMA:CMMAStopTimeControl:SetStopTime(RESET)");
   187         LOG(EJavaMMAPI, EInfo, "MMA:CMMAStopTimeControl:SetStopTime(RESET)");
   188 
   188 
   189         iTimer->Cancel();
   189         iTimer->Cancel();
   190     }
   190     }
   191 }
   191 }
   192 
   192 
   197  */
   197  */
   198 void CMMAStopTimeControl::StartTimer(const TInt64& aCurrentTime)
   198 void CMMAStopTimeControl::StartTimer(const TInt64& aCurrentTime)
   199 {
   199 {
   200     // StopTime is defined
   200     // StopTime is defined
   201     TInt64 time = iStopTime - aCurrentTime;
   201     TInt64 time = iStopTime - aCurrentTime;
   202     LOG1( EJavaMMAPI, EInfo, "MMA:CMMAStopTimeControl:StartTimer timer started; time=%dms",
   202     LOG1(EJavaMMAPI, EInfo, "MMA:CMMAStopTimeControl:StartTimer timer started; time=%dms",
   203               I64INT(time / 1000));
   203          I64INT(time / 1000));
   204     iTimer->Cancel();
   204     iTimer->Cancel();
   205 
   205 
   206     if (time >= 0)
   206     if (time >= 0)
   207     {
   207     {
   208         // Value is too large to represent with TInt
   208         // Value is too large to represent with TInt