diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 49362acb..f603691e 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -2886,6 +2886,8 @@ Torsten Lang is stored on the video directory file system within the cRecording data for suppressing setting the "broken link" or "TEI" flags when cutting recordings if the editing point merges two seamlessly fitting parts of the same stream + for reporting a sluggish response when manipulating editing marks while a cutting + thread is running Christian Ruppert for some improvements to the Makefiles diff --git a/HISTORY b/HISTORY index 7381b546..4f87b59e 100644 --- a/HISTORY +++ b/HISTORY @@ -7191,7 +7191,7 @@ Video Disk Recorder Revision History turn on adding the source character to channel names whenever they are displayed (suggested by Ludi Kaleni). -2012-09-06: Version 1.7.30 +2012-09-07: Version 1.7.30 - Fixed sorting recordings in the top level video directory. - Fixed handling control characters in SI data in case of UTF-8 encoded strings @@ -7226,3 +7226,5 @@ Video Disk Recorder Revision History - Fixed getting the file size and number of frames of ongoing recordings (only the timestamp of the recording's directory was checked, while it should have been that of the index file). +- Fixed sluggish response when manipulating editing marks while a cutting thread + is running (reported by Torsten Lang). diff --git a/menu.c b/menu.c index 9f4c54e5..b3744637 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 2.58 2012/06/17 11:12:25 kls Exp $ + * $Id: menu.c 2.59 2012/09/09 09:19:15 kls Exp $ */ #include "menu.h" @@ -4455,6 +4455,7 @@ cReplayControl::cReplayControl(bool PauseLive) { currentReplayControl = this; displayReplay = NULL; + marksModified = false; visible = modeOnly = shown = displayFrames = false; lastCurrent = lastTotal = -1; lastPlay = lastForward = false; @@ -4472,6 +4473,10 @@ cReplayControl::~cReplayControl() Hide(); cStatus::MsgReplaying(this, NULL, fileName, false); Stop(); + if (marksModified) { + marks.Save(); + marksModified = false; + } if (currentReplayControl == this) currentReplayControl = NULL; } @@ -4729,7 +4734,7 @@ void cReplayControl::MarkToggle(void) Goto(Current, true); } ShowTimed(2); - marks.Save(); + marksModified = true; } } @@ -4766,7 +4771,7 @@ void cReplayControl::MarkMove(bool Forward) } m->SetPosition(p); Goto(m->Position(), true); - marks.Save(); + marksModified = true; } } } @@ -4775,6 +4780,10 @@ void cReplayControl::EditCut(void) { if (*fileName) { Hide(); + if (marksModified) { + marks.Save(); + marksModified = false; + } if (!cCutter::Active()) { if (!marks.Count()) Skins.Message(mtError, tr("No editing marks defined!")); diff --git a/menu.h b/menu.h index ba93c5d2..10ffc7ab 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 2.11 2012/06/13 11:23:11 kls Exp $ + * $Id: menu.h 2.12 2012/09/07 08:48:34 kls Exp $ */ #ifndef __MENU_H @@ -260,6 +260,7 @@ class cReplayControl : public cDvbPlayerControl { private: cSkinDisplayReplay *displayReplay; cMarks marks; + bool marksModified; bool visible, modeOnly, shown, displayFrames; int lastCurrent, lastTotal; bool lastPlay, lastForward;