Editing marks can now be moved freely

This commit is contained in:
Klaus Schmidinger 2012-11-18 13:00:33 +01:00
parent cca2cd35ad
commit 3c65130e38
2 changed files with 11 additions and 5 deletions

View File

@ -7330,3 +7330,9 @@ Video Disk Recorder Revision History
a recording when actually cutting the recording
+ not doing anything if the editing marks in place would result in the edited
version being the same as the original recording
- Editing marks can now be placed directly on top of each other, in which case they
simply mark a position, but have no effect on the actual cutting process.
- When positioned at an offset where two (or more) editing marks are placed on top
of each other, the '4' key moves the first one of them to the left, while the '6'
key moves the last one of them to the right. The '7' and '9' key handle multiple
marks at the same place as if it were one single mark.

10
menu.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: menu.c 2.63 2012/11/13 11:23:25 kls Exp $
* $Id: menu.c 2.64 2012/11/18 13:00:33 kls Exp $
*/
#include "menu.h"
@ -4771,12 +4771,12 @@ void cReplayControl::MarkMove(bool Forward)
int p = SkipFrames(Forward ? 1 : -1);
cMark *m2;
if (Forward) {
if ((m2 = marks.Next(m)) != NULL && m2->Position() <= p)
return;
while ((m2 = marks.Next(m)) != NULL && m2->Position() == m->Position())
m = m2;
}
else {
if ((m2 = marks.Prev(m)) != NULL && m2->Position() >= p)
return;
while ((m2 = marks.Prev(m)) != NULL && m2->Position() == m->Position())
m = m2;
}
m->SetPosition(p);
Goto(m->Position(), true);