mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Fixed sluggish setting of editing marks and a jumping progress display with very short recordings
This commit is contained in:
parent
ac30924cdf
commit
43544435fa
@ -716,6 +716,8 @@ Oliver Endriss <o.endriss@gmx.de>
|
|||||||
channels
|
channels
|
||||||
for fixing a possible stack overflow in cListBase::Sort()
|
for fixing a possible stack overflow in cListBase::Sort()
|
||||||
for reporting a crash when deleting a recording
|
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>
|
Reinhard Walter Buchner <rw.buchner@freenet.de>
|
||||||
for adding some satellites to 'sources.conf'
|
for adding some satellites to 'sources.conf'
|
||||||
|
4
HISTORY
4
HISTORY
@ -9317,7 +9317,7 @@ Video Disk Recorder Revision History
|
|||||||
- Modified cMenuTimers::Delete() to avoid a lengthy lock on the Timers list while prompting
|
- Modified cMenuTimers::Delete() to avoid a lengthy lock on the Timers list while prompting
|
||||||
the user.
|
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).
|
- Updated the Ukrainian OSD texts (thanks to Yarema Aka Knedlyk).
|
||||||
- Fixed processing SVDRP client responses in case the caller doesn't want the actual
|
- 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.
|
broadcasters who transmit faulty EIT data.
|
||||||
- Updated the Macedonian OSD texts (thanks to Dimitar Petrovski).
|
- Updated the Macedonian OSD texts (thanks to Dimitar Petrovski).
|
||||||
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
|
- 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).
|
||||||
|
70
menu.c
70
menu.c
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* 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"
|
#include "menu.h"
|
||||||
@ -5564,7 +5564,6 @@ cReplayControl::cReplayControl(bool PauseLive)
|
|||||||
lastPlay = lastForward = false;
|
lastPlay = lastForward = false;
|
||||||
lastSpeed = -2; // an invalid value
|
lastSpeed = -2; // an invalid value
|
||||||
timeoutShow = 0;
|
timeoutShow = 0;
|
||||||
lastProgressUpdate = 0;
|
|
||||||
timeSearchActive = false;
|
timeSearchActive = false;
|
||||||
cRecording Recording(fileName);
|
cRecording Recording(fileName);
|
||||||
cStatus::MsgReplaying(this, Recording.Name(), Recording.FileName(), true);
|
cStatus::MsgReplaying(this, Recording.Name(), Recording.FileName(), true);
|
||||||
@ -5728,43 +5727,36 @@ void cReplayControl::ShowMode(void)
|
|||||||
bool cReplayControl::ShowProgress(bool Initial)
|
bool cReplayControl::ShowProgress(bool Initial)
|
||||||
{
|
{
|
||||||
int Current, Total;
|
int Current, Total;
|
||||||
if (Initial || lastSpeed != -1 || time(NULL) - lastProgressUpdate >= 1) {
|
if (GetFrameNumber(Current, Total) && Total > 0) {
|
||||||
if (GetFrameNumber(Current, Total) && Total > 0) {
|
if (!visible) {
|
||||||
if (!visible) {
|
displayReplay = Skins.Current()->DisplayReplay(modeOnly);
|
||||||
displayReplay = Skins.Current()->DisplayReplay(modeOnly);
|
displayReplay->SetMarks(&marks);
|
||||||
displayReplay->SetMarks(&marks);
|
SetNeedsFastResponse(true);
|
||||||
SetNeedsFastResponse(true);
|
visible = true;
|
||||||
visible = true;
|
|
||||||
}
|
|
||||||
if (Initial) {
|
|
||||||
if (*fileName) {
|
|
||||||
LOCK_RECORDINGS_READ;
|
|
||||||
if (const cRecording *Recording = Recordings->GetByName(fileName))
|
|
||||||
displayReplay->SetRecording(Recording);
|
|
||||||
}
|
|
||||||
lastCurrent = lastTotal = -1;
|
|
||||||
}
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
lastTotal = Total;
|
|
||||||
ShowMode();
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
if (Initial) {
|
||||||
|
if (*fileName) {
|
||||||
|
LOCK_RECORDINGS_READ;
|
||||||
|
if (const cRecording *Recording = Recordings->GetByName(fileName))
|
||||||
|
displayReplay->SetRecording(Recording);
|
||||||
|
}
|
||||||
|
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()));
|
||||||
|
}
|
||||||
|
displayReplay->SetProgress(Current, Total);
|
||||||
|
displayReplay->SetCurrent(IndexToHMSF(Current, displayFrames, FramesPerSecond()));
|
||||||
|
displayReplay->Flush();
|
||||||
|
lastCurrent = Current;
|
||||||
|
}
|
||||||
|
lastTotal = Total;
|
||||||
|
ShowMode();
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -6007,8 +5999,6 @@ eOSState cReplayControl::ProcessKey(eKeys Key)
|
|||||||
return osEnd;
|
return osEnd;
|
||||||
if (Key == kNone && !marksModified)
|
if (Key == kNone && !marksModified)
|
||||||
marks.Update();
|
marks.Update();
|
||||||
if (Key != kNone)
|
|
||||||
lastProgressUpdate = 0;
|
|
||||||
if (visible) {
|
if (visible) {
|
||||||
if (timeoutShow && time(NULL) > timeoutShow) {
|
if (timeoutShow && time(NULL) > timeoutShow) {
|
||||||
Hide();
|
Hide();
|
||||||
|
3
menu.h
3
menu.h
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* 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
|
#ifndef __MENU_H
|
||||||
@ -300,7 +300,6 @@ private:
|
|||||||
bool lastPlay, lastForward;
|
bool lastPlay, lastForward;
|
||||||
int lastSpeed;
|
int lastSpeed;
|
||||||
time_t timeoutShow;
|
time_t timeoutShow;
|
||||||
time_t lastProgressUpdate;
|
|
||||||
bool timeSearchActive, timeSearchHide;
|
bool timeSearchActive, timeSearchHide;
|
||||||
int timeSearchTime, timeSearchPos;
|
int timeSearchTime, timeSearchPos;
|
||||||
void TimeSearchDisplay(void);
|
void TimeSearchDisplay(void);
|
||||||
|
Loading…
Reference in New Issue
Block a user