diff -Nru vdr-1.6.0/config.c vdr-1.6.0-Cuttime/config.c --- vdr-1.6.0/config.c 2008-04-12 22:32:29.000000000 +0200 +++ vdr-1.6.0-Cuttime/config.c 2008-04-12 22:33:06.000000000 +0200 @@ -213,6 +213,7 @@ cSetup::cSetup(void) { + CutTimePatchEnabled = 1; strcpy(OSDLanguage, ""); // default is taken from environment strcpy(OSDSkin, "sttng"); strcpy(OSDTheme, "default"); @@ -496,6 +497,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 //ML if (!strcasecmp(Name, "VerboseLNBlog")) VerboseLNBlog = atoi(Value); @@ -618,6 +620,7 @@ Store("ShowRecLength", ShowRecLength); Store("ShowProgressBar", ShowProgressBar); Store("MenuCmdPosition", MenuCmdPosition); + Store("CutTimePatchEnabled",CutTimePatchEnabled); Sort(); diff -Nru vdr-1.6.0/config.h vdr-1.6.0-Cuttime/config.h --- vdr-1.6.0/config.h 2008-04-12 22:32:29.000000000 +0200 +++ vdr-1.6.0-Cuttime/config.h 2008-04-12 22:33:06.000000000 +0200 @@ -288,6 +288,7 @@ int InitialVolume; int EmergencyExit; int ShowRecDate, ShowRecTime, ShowRecLength, ShowProgressBar, MenuCmdPosition; + int CutTimePatchEnabled; int RecordingsSortMode; int RecordingsSortDirsFirst; int __EndData__; diff -Nru vdr-1.6.0/cutter.c vdr-1.6.0-Cuttime/cutter.c --- vdr-1.6.0/cutter.c 2008-04-12 22:32:29.000000000 +0200 +++ vdr-1.6.0-Cuttime/cutter.c 2008-04-12 22:33:06.000000000 +0200 @@ -269,6 +269,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.6.0/menu.c vdr-1.6.0-Cuttime/menu.c --- vdr-1.6.0/menu.c 2008-04-12 22:32:29.000000000 +0200 +++ vdr-1.6.0-Cuttime/menu.c 2008-04-12 22:33:06.000000000 +0200 @@ -3134,6 +3134,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)); Add(new cMenuEditStraItem(tr("Setup.Recording$Sort recordings by"), &data.RecordingsSortMode, MAXSORTMODES, RecordingsSortModeTexts)); Add(new cMenuEditBoolItem(tr("Setup.Recording$Sort directories before recordings"), &data.RecordingsSortDirsFirst)); } diff -Nru vdr-1.6.0/po/de_DE.po vdr-1.6.0-Cuttime/po/de_DE.po --- vdr-1.6.0/po/de_DE.po 2008-04-12 22:31:05.000000000 +0200 +++ vdr-1.6.0-Cuttime/po/de_DE.po 2008-04-12 22:33:06.000000000 +0200 @@ -1068,6 +1068,9 @@ 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" + msgid "Setup.Recording$Sort recordings by" msgstr "Aufnahmen sortieren nach" diff -Nru vdr-1.6.0/po/fr_FR.po vdr-1.6.0-Cuttime/po/fr_FR.po --- vdr-1.6.0/po/fr_FR.po 2008-04-12 22:32:29.000000000 +0200 +++ vdr-1.6.0-Cuttime/po/fr_FR.po 2008-04-12 22:33:06.000000000 +0200 @@ -1083,6 +1083,9 @@ msgid "Setup.Recording$Show length" 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" + msgid "Setup.Recording$Sort recordings by" msgstr "Trier les enregistrements par" diff -Nru vdr-1.6.0/recording.c vdr-1.6.0-Cuttime/recording.c --- vdr-1.6.0/recording.c 2008-04-12 22:32:29.000000000 +0200 +++ vdr-1.6.0-Cuttime/recording.c 2008-04-12 22:33:06.000000000 +0200 @@ -810,6 +810,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.6.0/recording.h vdr-1.6.0-Cuttime/recording.h --- vdr-1.6.0/recording.h 2008-04-12 22:32:29.000000000 +0200 +++ vdr-1.6.0-Cuttime/recording.h 2008-04-12 22:33:06.000000000 +0200 @@ -95,6 +95,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;