# http://www.udo-richter.de/vdr/files/cuttime-vdr-1.4.0.diff diff -Nru vdr-1.5.13/config.c vdr-1.5.13-Cuttime/config.c --- vdr-1.5.13/config.c 2008-01-20 09:56:10.000000000 +0100 +++ vdr-1.5.13-Cuttime/config.c 2008-01-20 10:36:20.000000000 +0100 @@ -214,6 +214,7 @@ cSetup::cSetup(void) { + CutTimePatchEnabled = 0; strcpy(OSDLanguage, ""); // default is taken from environment strcpy(OSDSkin, "sttng"); strcpy(OSDTheme, "default"); @@ -492,6 +493,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); @@ -600,6 +602,7 @@ Store("ShowRecLength", ShowRecLength); Store("ShowProgressBar", ShowProgressBar); Store("MenuCmdPosition", MenuCmdPosition); + Store("CutTimePatchEnabled",CutTimePatchEnabled); //ML Store("VerboseLNBlog", VerboseLNBlog); char tmp[20]; diff -Nru vdr-1.5.13/config.h vdr-1.5.13-Cuttime/config.h --- vdr-1.5.13/config.h 2008-01-20 09:58:03.000000000 +0100 +++ vdr-1.5.13-Cuttime/config.h 2008-01-20 10:36:48.000000000 +0100 @@ -280,6 +280,7 @@ int InitialVolume; int EmergencyExit; int ShowRecDate, ShowRecTime, ShowRecLength, ShowProgressBar, MenuCmdPosition; + int CutTimePatchEnabled; //ML int VerboseLNBlog; int CardUsesLNBnr[MAXDEVICES]; diff -Nru vdr-1.5.13/cutter.c vdr-1.5.13-Cuttime/cutter.c --- vdr-1.5.13/cutter.c 2008-01-20 07:49:10.000000000 +0100 +++ vdr-1.5.13-Cuttime/cutter.c 2008-01-20 10:38:02.000000000 +0100 @@ -194,6 +194,12 @@ 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.13/menu.c vdr-1.5.13-Cuttime/menu.c --- vdr-1.5.13/menu.c 2008-01-20 10:30:07.000000000 +0100 +++ vdr-1.5.13-Cuttime/menu.c 2008-01-20 10:38:27.000000000 +0100 @@ -3068,6 +3068,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.13/po/de_DE.po vdr-1.5.13-Cuttime/po/de_DE.po --- vdr-1.5.13/po/de_DE.po 2008-01-20 07:49:10.000000000 +0100 +++ vdr-1.5.13-Cuttime/po/de_DE.po 2008-01-20 10:39:09.000000000 +0100 @@ -1046,3 +1046,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.13/po/fr_FR.po vdr-1.5.13-Cuttime/po/fr_FR.po --- vdr-1.5.13/po/fr_FR.po 2008-01-20 07:49:10.000000000 +0100 +++ vdr-1.5.13-Cuttime/po/fr_FR.po 2008-01-20 10:40:15.000000000 +0100 @@ -1051,4 +1051,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.13/recording.c vdr-1.5.13-Cuttime/recording.c --- vdr-1.5.13/recording.c 2008-01-20 07:49:10.000000000 +0100 +++ vdr-1.5.13-Cuttime/recording.c 2008-01-20 10:40:52.000000000 +0100 @@ -794,6 +794,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.13/recording.h vdr-1.5.13-Cuttime/recording.h --- vdr-1.5.13/recording.h 2008-01-20 07:49:10.000000000 +0100 +++ vdr-1.5.13-Cuttime/recording.h 2008-01-20 10:41:10.000000000 +0100 @@ -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;