Ticket #2518: nvp.time.diff

File nvp.time.diff, 2.4 KB (added by anonymous, 15 years ago)
  • mythtv/libs/libmythtv/NuppelVideoPlayer.cpp

     
    53725372void NuppelVideoPlayer::calcSliderPos(struct StatusPosInfo &posInfo,
    53735373                                      bool paddedFields)
    53745374{
     5375    bool islive = false;
    53755376    posInfo.desc = "";
    53765377    posInfo.position = 0;
    53775378    posInfo.progBefore = false;
     
    53975398        posInfo.progBefore = livetvchain->HasPrev();
    53985399        posInfo.progAfter = livetvchain->HasNext();
    53995400        playbackLen = livetvchain->GetLengthAtCurPos();
     5401        islive = true;
    54005402    }
    54015403    else if (watchingrecording && nvr_enc && nvr_enc->IsValidRecorder())
     5404    {
    54025405        playbackLen =
    54035406            (int)(((float)nvr_enc->GetFramesWritten() / video_frame_rate));
     5407        islive = true;
     5408    }
    54045409
    54055410    float secsplayed;
    54065411    if (ringBuffer->isDVD())
     
    54245429    int smins = (playbackLen - shours * 3600) / 60;
    54255430    int ssecs = (playbackLen - shours * 3600 - smins * 60);
    54265431
    5427     QString text1, text2;
     5432    int secsbehind = max((playbackLen - (int) secsplayed), 0);
     5433
     5434    int sbhours = secsbehind / 3600;
     5435    int sbmins = (secsbehind - sbhours * 3600) / 60;
     5436    int sbsecs = (secsbehind - sbhours * 3600 - sbmins * 60);
     5437
     5438    QString text1, text2, text3;
    54285439    if (paddedFields)
    54295440    {
    54305441        text1.sprintf("%02d:%02d:%02d", phours, pmins, psecs);
    54315442        text2.sprintf("%02d:%02d:%02d", shours, smins, ssecs);
     5443        text3.sprintf("%02d:%02d:%02d", sbhours, sbmins, sbsecs);
    54325444    }
    54335445    else
    54345446    {
     
    54425454            text1.sprintf("%d:%02d", pmins, psecs);
    54435455            text2.sprintf("%d:%02d", smins, ssecs);
    54445456        }
     5457        if (sbhours > 0)
     5458        {
     5459            text3.sprintf("%d:%02d:%02d", sbhours, sbmins, sbsecs);
     5460        }
     5461        else if (sbmins > 0)
     5462        {
     5463            text3.sprintf("%d:%02d", sbmins, sbsecs);
     5464        }
     5465        else
     5466        {
     5467            text3.sprintf("%d seconds", sbsecs);
     5468        }
    54455469    }
    54465470
    5447     posInfo.desc = QObject::tr("%1 of %2").arg(text1).arg(text2);
     5471    if (islive)
     5472    {
     5473        posInfo.desc = QObject::tr("%1 of %2 (%3 behind)").arg(text1).arg(text2).arg(text3);
     5474    }
     5475    else
     5476    {
     5477        posInfo.desc = QObject::tr("%1 of %2 (%3 remaining)").arg(text1).arg(text2).arg(text3);
     5478    }
    54485479}
    54495480
    54505481void NuppelVideoPlayer::AutoCommercialSkip(void)