diff -Nru vdr-1.5.10/config.c vdr-1.5.10-Cuttime/config.c --- vdr-1.5.10/config.c 2007-10-18 21:36:01.000000000 +0200 +++ vdr-1.5.10-Cuttime/config.c 2007-10-18 21:39:05.000000000 +0200 @@ -214,6 +214,7 @@ cSetup::cSetup(void) { + CutTimePatchEnabled = 0; strcpy(OSDLanguage, ""); // default is taken from environment strcpy(OSDSkin, "sttng"); strcpy(OSDTheme, "default"); @@ -474,6 +475,7 @@ else if (!strcasecmp(Name, "ShowRecLength")) ShowRecLength = atoi(Value); else if (!strcasecmp(Name, "ShowProgressBar")) ShowProgressBar = atoi(Value); else if (!strcasecmp(Name, "MenuCmdPosition")) MenuCmdPosition = atoi(Value); + else if (!strcasecmp(Name, "CutTimePatchEnabled")) CutTimePatchEnabled= atoi(Value); else return false; return true; @@ -561,6 +563,7 @@ Store("ShowRecLength", ShowRecLength); Store("ShowProgressBar", ShowProgressBar); Store("MenuCmdPosition", MenuCmdPosition); + Store("CutTimePatchEnabled",CutTimePatchEnabled); Sort(); diff -Nru vdr-1.5.10/config.h vdr-1.5.10-Cuttime/config.h --- vdr-1.5.10/config.h 2007-10-18 21:36:01.000000000 +0200 +++ vdr-1.5.10-Cuttime/config.h 2007-10-18 21:39:31.000000000 +0200 @@ -271,6 +271,7 @@ int InitialChannel; int InitialVolume; int ShowRecDate, ShowRecTime, ShowRecLength, ShowProgressBar, MenuCmdPosition; + int CutTimePatchEnabled; int __EndData__; cSetup(void); cSetup& operator= (const cSetup &s); diff -Nru vdr-1.5.10/cutter.c vdr-1.5.10-Cuttime/cutter.c --- vdr-1.5.10/cutter.c 2007-10-18 21:36:01.000000000 +0200 +++ vdr-1.5.10-Cuttime/cutter.c 2007-10-18 21:40:57.000000000 +0200 @@ -192,6 +192,14 @@ error = false; ended = false; cRecording Recording(FileName); + + if (Setup.CutTimePatchEnabled) { + cMarks FromMarks; + FromMarks.Load(FileName); + cMark *First=FromMarks.First(); + if (First) Recording.SetStartTime(Recording.start+((First->position/FRAMESPERSEC+30)/60)*60); + } + const char *evn = Recording.PrefixFileName('%'); if (evn && RemoveVideoFile(evn) && MakeDirs(evn, true)) { // XXX this can be removed once RenameVideoFile() follows symlinks (see videodir.c) diff -Nru vdr-1.5.10/menu.c vdr-1.5.10-Cuttime/menu.c --- vdr-1.5.10/menu.c 2007-10-18 21:36:01.000000000 +0200 +++ vdr-1.5.10-Cuttime/menu.c 2007-10-18 21:42:03.000000000 +0200 @@ -2895,6 +2895,7 @@ Add(new cMenuEditBoolItem(tr("Setup.Recording$Show date"), &data.ShowRecDate)); Add(new cMenuEditBoolItem(tr("Setup.Recording$Show time"), &data.ShowRecTime)); Add(new cMenuEditBoolItem(tr("Setup.Recording$Show length"), &data.ShowRecLength)); + Add(new cMenuEditBoolItem(tr("Setup.CutTimePatch$Adapt start time to cutting marks"), &data.CutTimePatchEnabled)); } // --- cMenuSetupReplay ------------------------------------------------------ diff -Nru vdr-1.5.10/po/de_DE.po vdr-1.5.10-Cuttime/po/de_DE.po --- vdr-1.5.10/po/de_DE.po 2007-10-18 21:36:01.000000000 +0200 +++ vdr-1.5.10-Cuttime/po/de_DE.po 2007-10-18 21:43:26.000000000 +0200 @@ -1028,3 +1028,6 @@ msgid "Setup.Recording$Show length" msgstr "Länge der Aufnahme anzeigen" + +msgid "Setup.CutTimePatch$Adapt start time to cutting marks" +msgstr "Startzeit an Schnittmarken anpassen" diff -Nru vdr-1.5.10/po/fr_FR.po vdr-1.5.10-Cuttime/po/fr_FR.po --- vdr-1.5.10/po/fr_FR.po 2007-10-18 21:36:01.000000000 +0200 +++ vdr-1.5.10-Cuttime/po/fr_FR.po 2007-10-18 21:44:53.000000000 +0200 @@ -1032,4 +1032,7 @@ msgstr "Montrer l'heure d'enregistrement" msgid "Setup.Recording$Show length" -msgstr "Monter la longueur de l'enregistrement" +msgstr "Montrer la longueur de l'enregistrement" + +msgid "Setup.CutTimePatch$Adapt start time to cutting marks" +msgstr "Adapter l'heure de début à la marque de découpe" diff -Nru vdr-1.5.10/recording.c vdr-1.5.10-Cuttime/recording.c --- vdr-1.5.10/recording.c 2007-10-18 21:36:01.000000000 +0200 +++ vdr-1.5.10-Cuttime/recording.c 2007-10-18 21:47:00.000000000 +0200 @@ -791,6 +791,15 @@ return titleBuffer; } +void cRecording::SetStartTime(time_t Start) +{ + start=Start; + if (fileName) { + free(fileName); + fileName = NULL; + } +} + const char *cRecording::PrefixFileName(char Prefix) { cString p = PrefixVideoFileName(FileName(), Prefix); diff -Nru vdr-1.5.10/recording.h vdr-1.5.10-Cuttime/recording.h --- vdr-1.5.10/recording.h 2007-10-18 21:36:01.000000000 +0200 +++ vdr-1.5.10-Cuttime/recording.h 2007-10-18 21:47:27.000000000 +0200 @@ -91,6 +91,7 @@ const char *FileName(void) const; const char *Title(char Delimiter = ' ', bool NewIndicator = false, int Level = -1, bool Original = true) const; const cRecordingInfo *Info(void) const { return info; } + void SetStartTime(time_t Start); const char *PrefixFileName(char Prefix); int HierarchyLevels(void) const; void ResetResume(void) const;