summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2018-04-03 08:00:12 +0200
committerKlaus Schmidinger <vdr@tvdr.de>2018-04-03 08:00:12 +0200
commit43544435fa0083f2187f4388e442d87b3b954073 (patch)
tree939695472273ed2e73ca1c1bbcaa40eba54a551c
parentac30924cdfe0029a3b148b7808d5b0dc453ee8ac (diff)
downloadvdr-43544435fa0083f2187f4388e442d87b3b954073.tar.gz
vdr-43544435fa0083f2187f4388e442d87b3b954073.tar.bz2
Fixed sluggish setting of editing marks and a jumping progress display with very short recordings
-rw-r--r--CONTRIBUTORS2
-rw-r--r--HISTORY4
-rw-r--r--menu.c66
-rw-r--r--menu.h3
4 files changed, 34 insertions, 41 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index b1ff906a..0aa8f74a 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -716,6 +716,8 @@ Oliver Endriss <o.endriss@gmx.de>
channels
for fixing a possible stack overflow in cListBase::Sort()
for reporting a crash when deleting a recording
+ for reporting a problem with sluggish setting of editing marks and a jumping progress
+ display with very short recordings
Reinhard Walter Buchner <rw.buchner@freenet.de>
for adding some satellites to 'sources.conf'
diff --git a/HISTORY b/HISTORY
index fbf0a4bd..8dc5e5d1 100644
--- a/HISTORY
+++ b/HISTORY
@@ -9317,7 +9317,7 @@ Video Disk Recorder Revision History
- Modified cMenuTimers::Delete() to avoid a lengthy lock on the Timers list while prompting
the user.
-2018-04-02: Version 2.4.0
+2018-04-03: Version 2.4.0
- Updated the Ukrainian OSD texts (thanks to Yarema Aka Knedlyk).
- Fixed processing SVDRP client responses in case the caller doesn't want the actual
@@ -9335,3 +9335,5 @@ Video Disk Recorder Revision History
broadcasters who transmit faulty EIT data.
- Updated the Macedonian OSD texts (thanks to Dimitar Petrovski).
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
+- Fixed sluggish setting of editing marks and a jumping progress display with very
+ short recordings (reported by Oliver Endriss).
diff --git a/menu.c b/menu.c
index 22d27014..aba69566 100644
--- a/menu.c
+++ b/menu.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: menu.c 4.70 2018/03/24 11:43:40 kls Exp $
+ * $Id: menu.c 4.71 2018/04/02 13:41:39 kls Exp $
*/
#include "menu.h"
@@ -5564,7 +5564,6 @@ cReplayControl::cReplayControl(bool PauseLive)
lastPlay = lastForward = false;
lastSpeed = -2; // an invalid value
timeoutShow = 0;
- lastProgressUpdate = 0;
timeSearchActive = false;
cRecording Recording(fileName);
cStatus::MsgReplaying(this, Recording.Name(), Recording.FileName(), true);
@@ -5728,43 +5727,36 @@ void cReplayControl::ShowMode(void)
bool cReplayControl::ShowProgress(bool Initial)
{
int Current, Total;
- if (Initial || lastSpeed != -1 || time(NULL) - lastProgressUpdate >= 1) {
- if (GetFrameNumber(Current, Total) && Total > 0) {
- if (!visible) {
- displayReplay = Skins.Current()->DisplayReplay(modeOnly);
- displayReplay->SetMarks(&marks);
- SetNeedsFastResponse(true);
- visible = true;
- }
- if (Initial) {
- if (*fileName) {
- LOCK_RECORDINGS_READ;
- if (const cRecording *Recording = Recordings->GetByName(fileName))
- displayReplay->SetRecording(Recording);
- }
- lastCurrent = lastTotal = -1;
+ if (GetFrameNumber(Current, Total) && Total > 0) {
+ if (!visible) {
+ displayReplay = Skins.Current()->DisplayReplay(modeOnly);
+ displayReplay->SetMarks(&marks);
+ SetNeedsFastResponse(true);
+ visible = true;
+ }
+ if (Initial) {
+ if (*fileName) {
+ LOCK_RECORDINGS_READ;
+ if (const cRecording *Recording = Recordings->GetByName(fileName))
+ displayReplay->SetRecording(Recording);
}
- if (Current != lastCurrent || Total != lastTotal) {
- time(&lastProgressUpdate);
- if (Setup.ShowRemainingTime || Total != lastTotal) {
- int Index = Total;
- if (Setup.ShowRemainingTime)
- Index = Current - Index;
- displayReplay->SetTotal(IndexToHMSF(Index, false, FramesPerSecond()));
- if (!Initial)
- displayReplay->Flush();
- }
- displayReplay->SetProgress(Current, Total);
- if (!Initial)
- displayReplay->Flush();
- displayReplay->SetCurrent(IndexToHMSF(Current, displayFrames, FramesPerSecond()));
- displayReplay->Flush();
- lastCurrent = Current;
+ lastCurrent = lastTotal = -1;
+ }
+ if (Current != lastCurrent || Total != lastTotal) {
+ if (Setup.ShowRemainingTime || Total != lastTotal) {
+ int Index = Total;
+ if (Setup.ShowRemainingTime)
+ Index = Current - Index;
+ displayReplay->SetTotal(IndexToHMSF(Index, false, FramesPerSecond()));
}
- lastTotal = Total;
- ShowMode();
- return true;
+ displayReplay->SetProgress(Current, Total);
+ displayReplay->SetCurrent(IndexToHMSF(Current, displayFrames, FramesPerSecond()));
+ displayReplay->Flush();
+ lastCurrent = Current;
}
+ lastTotal = Total;
+ ShowMode();
+ return true;
}
return false;
}
@@ -6007,8 +5999,6 @@ eOSState cReplayControl::ProcessKey(eKeys Key)
return osEnd;
if (Key == kNone && !marksModified)
marks.Update();
- if (Key != kNone)
- lastProgressUpdate = 0;
if (visible) {
if (timeoutShow && time(NULL) > timeoutShow) {
Hide();
diff --git a/menu.h b/menu.h
index 08c51f7a..b700e27d 100644
--- a/menu.h
+++ b/menu.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: menu.h 4.6 2018/02/01 15:35:48 kls Exp $
+ * $Id: menu.h 4.7 2018/04/02 13:41:49 kls Exp $
*/
#ifndef __MENU_H
@@ -300,7 +300,6 @@ private:
bool lastPlay, lastForward;
int lastSpeed;
time_t timeoutShow;
- time_t lastProgressUpdate;
bool timeSearchActive, timeSearchHide;
int timeSearchTime, timeSearchPos;
void TimeSearchDisplay(void);