diff --git a/CONTRIBUTORS b/CONTRIBUTORS index bc2c6ab5..f2c3a7ed 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -49,6 +49,8 @@ Martin Hammerschmid for adding a missing 'public' keyword in device.h for pointing out a bug in displaying the group separators in the channel display for reporting a problem with a missing initialization of 'number' in cChannel + for implementing a "resume ID" which allows several users to each have their own + resume.vdr files Bastian Guse for writing the FORMATS entry for timers.conf diff --git a/HISTORY b/HISTORY index 5ca1a93a..0071d33f 100644 --- a/HISTORY +++ b/HISTORY @@ -2017,3 +2017,6 @@ Video Disk Recorder Revision History - Fixed handling repeat function with LIRC (thanks to Ludwig Nussel). - Fixed handling min/max borders when entering integer values (thanks to Andy Grobb for reporting this one). +- Implemented a "resume ID" which allows several users to each have their own + resume.vdr files (thanks to Martin Hammerschmid). This parameter can be set in + the "Setup/Replay" menu (see MANUAL for details). diff --git a/MANUAL b/MANUAL index 73a1b6ec..b5f00d1c 100644 --- a/MANUAL +++ b/MANUAL @@ -589,6 +589,12 @@ Video Disk Recorder User's Manual Show replay mode = no Turns displaying the current replay mode on or off. + Resume ID = 0 Defines an additional ID that can be used in a multi user + environment, so that every user has his/her own resume + files for each recording. The valid range is 0...99, with + 0 resulting in a file named 'resume.vdr', and any other + value resulting in 'resume.n.vdr'. + Miscellaneous: Min. event timeout = 30 diff --git a/config.c b/config.c index e1d982a8..ff7a4c05 100644 --- a/config.c +++ b/config.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: config.c 1.112 2002/11/02 13:13:49 kls Exp $ + * $Id: config.c 1.113 2003/04/12 09:37:48 kls Exp $ */ #include "config.h" @@ -280,6 +280,7 @@ cSetup::cSetup(void) MinUserInactivity = 120; MultiSpeedMode = 0; ShowReplayMode = 0; + ResumeID = 0; memset(CaCaps, sizeof(CaCaps), 0); CurrentChannel = -1; CurrentVolume = MAXVOLUME; @@ -428,6 +429,7 @@ bool cSetup::Parse(const char *Name, const char *Value) else if (!strcasecmp(Name, "MinUserInactivity")) MinUserInactivity = atoi(Value); else if (!strcasecmp(Name, "MultiSpeedMode")) MultiSpeedMode = atoi(Value); else if (!strcasecmp(Name, "ShowReplayMode")) ShowReplayMode = atoi(Value); + else if (!strcasecmp(Name, "ResumeID")) ResumeID = atoi(Value); else if (!strcasecmp(Name, "CaCaps")) return ParseCaCaps(Value); else if (!strcasecmp(Name, "CurrentChannel")) CurrentChannel = atoi(Value); else if (!strcasecmp(Name, "CurrentVolume")) CurrentVolume = atoi(Value); @@ -474,6 +476,7 @@ bool cSetup::Save(void) Store("MinUserInactivity", MinUserInactivity); Store("MultiSpeedMode", MultiSpeedMode); Store("ShowReplayMode", ShowReplayMode); + Store("ResumeID", ResumeID); StoreCaCaps("CaCaps"); Store("CurrentChannel", CurrentChannel); Store("CurrentVolume", CurrentVolume); diff --git a/config.h b/config.h index 321407df..ac40ff47 100644 --- a/config.h +++ b/config.h @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: config.h 1.151 2003/03/23 14:42:35 kls Exp $ + * $Id: config.h 1.152 2003/04/12 09:35:50 kls Exp $ */ #ifndef __CONFIG_H @@ -229,6 +229,7 @@ public: int MinEventTimeout, MinUserInactivity; int MultiSpeedMode; int ShowReplayMode; + int ResumeID; int CaCaps[MAXDEVICES][MAXCACAPS]; int CurrentChannel; int CurrentVolume; diff --git a/i18n.c b/i18n.c index 096f2d86..506e0a57 100644 --- a/i18n.c +++ b/i18n.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: i18n.c 1.104 2003/03/30 10:04:56 kls Exp $ + * $Id: i18n.c 1.105 2003/04/12 09:39:35 kls Exp $ * * Translations provided by: * @@ -2382,6 +2382,22 @@ const tI18nPhrase Phrases[] = { "Afiseaza modul de redare", "Lejátszás feltüntetése", }, + { "Setup.Replay$Resume ID", + "Wiedergabe ID", + "Resume ID",// TODO + "Resume ID",// TODO + "Resume ID",// TODO + "Resume ID",// TODO + "Resume ID",// TODO + "Resume ID",// TODO + "Resume ID",// TODO + "Resume ID",// TODO + "Resume ID",// TODO + "Resume ID",// TODO + "Resume ID",// TODO + "Resume ID",// TODO + "Resume ID",// TODO + }, { "Setup.Miscellaneous$Min. event timeout (min)", "Mindest Event Pause (min)", "Najmanjsi cas dogodka (min)", diff --git a/menu.c b/menu.c index 1a34e42c..e63d7077 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 1.234 2003/02/09 12:55:38 kls Exp $ + * $Id: menu.c 1.235 2003/04/12 09:40:48 kls Exp $ */ #include "menu.h" @@ -2208,6 +2208,7 @@ cMenuSetupReplay::cMenuSetupReplay(void) SetSection(tr("Replay")); Add(new cMenuEditBoolItem(tr("Setup.Replay$Multi speed mode"), &data.MultiSpeedMode)); Add(new cMenuEditBoolItem(tr("Setup.Replay$Show replay mode"), &data.ShowReplayMode)); + Add(new cMenuEditIntItem(tr("Setup.Replay$Resume ID"), &data.ResumeID, 0, 99)); } // --- cMenuSetupMisc -------------------------------------------------------- diff --git a/recording.c b/recording.c index 38ad0c85..261bee8b 100644 --- a/recording.c +++ b/recording.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: recording.c 1.74 2003/03/30 13:26:20 kls Exp $ + * $Id: recording.c 1.75 2003/04/12 09:51:44 kls Exp $ */ #include "recording.h" @@ -42,7 +42,7 @@ #define NAMEFORMAT "%s/%s/" nameFORMAT // end of implementation for brain dead systems -#define RESUMEFILESUFFIX "/resume.vdr" +#define RESUMEFILESUFFIX "/resume%s%s.vdr" #define SUMMARYFILESUFFIX "/summary.vdr" #define MARKSFILESUFFIX "/marks.vdr" @@ -154,7 +154,7 @@ cResumeFile::cResumeFile(const char *FileName) fileName = MALLOC(char, strlen(FileName) + strlen(RESUMEFILESUFFIX) + 1); if (fileName) { strcpy(fileName, FileName); - strcat(fileName, RESUMEFILESUFFIX); + sprintf(fileName + strlen(fileName), RESUMEFILESUFFIX, Setup.ResumeID ? "." : "", Setup.ResumeID ? itoa(Setup.ResumeID) : ""); } else esyslog("ERROR: can't allocate memory for resume file name");