Ticket #880: maxskip.patch
File maxskip.patch, 3.2 KB (added by , 18 years ago) |
---|
-
libs/libmythtv/NuppelVideoPlayer.h
517 517 QMap<long long, int>::Iterator deleteIter; 518 518 QMap<long long, int>::Iterator blankIter; 519 519 QMap<long long, int>::Iterator commBreakIter; 520 QDateTime lastIgnoredManualSkip; 520 521 521 522 // Playback (output) speed control 522 523 /// Lock for next_play_speed and next_normal_speed -
libs/libmythtv/NuppelVideoPlayer.cpp
174 174 commnotifyamount = gContext->GetNumSetting("CommNotifyAmount",0); 175 175 m_DeintSetting = gContext->GetNumSetting("Deinterlace", 0); 176 176 177 lastIgnoredManualSkip = QDateTime::currentDateTime().addSecs(-10); 178 177 179 bzero(&txtbuffers, sizeof(txtbuffers)); 178 180 bzero(&tc_lastval, sizeof(tc_lastval)); 179 181 bzero(&tc_wrap, sizeof(tc_wrap)); … … 4530 4532 { 4531 4533 int skipped_seconds = (int)((commBreakIter.key() - 4532 4534 framesPlayed) / video_frame_rate); 4535 int maxskip = gContext->GetNumSetting("MaximumCommercialSkip", 3600); 4533 4536 QString skipTime; 4534 4537 skipTime.sprintf("%d:%02d", skipped_seconds / 60, 4535 4538 abs(skipped_seconds) % 60); 4536 4539 struct StatusPosInfo posInfo; 4537 4540 calcSliderPos(posInfo); 4541 if (lastIgnoredManualSkip.secsTo(QDateTime::currentDateTime()) > 3 && 4542 (skipped_seconds >= maxskip || -skipped_seconds >= maxskip)) 4543 { 4544 osd->ShowStatus(posInfo, false, 4545 QObject::tr("Too Far %1").arg(skipTime), 2); 4546 commBreakMapLock.unlock(); 4547 lastIgnoredManualSkip = QDateTime::currentDateTime(); 4548 return false; 4549 } 4538 4550 osd->ShowStatus(posInfo, false, 4539 4551 QObject::tr("Skip %1").arg(skipTime), 2); 4540 4552 } -
programs/mythfrontend/globalsettings.cpp
499 499 return gs; 500 500 } 501 501 502 static GlobalSpinBox *MaximumCommercialSkip() 503 { 504 GlobalSpinBox *bs = new GlobalSpinBox("MaximumCommercialSkip", 0, 3600, 10); 505 bs->setLabel(QObject::tr("Maximum commercial skip")); 506 bs->setHelpText(QObject::tr("MythTV will discourage manual commercial " 507 "skips longer, in seconds, than this. Skips longer than " 508 "this require two skip requests. Automatic commercial " 509 "skipping is not affected by this limit.")); 510 bs->setValue(3600); 511 return bs; 512 } 513 514 502 515 static GlobalSpinBox *AutoExpireExtraSpace() 503 516 { 504 517 GlobalSpinBox *bs = new GlobalSpinBox("AutoExpireExtraSpace", 0, 200, 1); … … 3043 3056 comms->addChild(AutoCommercialSkip()); 3044 3057 comms->addChild(CommRewindAmount()); 3045 3058 comms->addChild(CommNotifyAmount()); 3059 comms->addChild(MaximumCommercialSkip()); 3046 3060 comms->addChild(CommSkipAllBlanks()); 3047 3061 addChild(comms); 3048 3062