summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CONTRIBUTORS1
-rw-r--r--HISTORY2
-rw-r--r--menu.c11
-rw-r--r--recording.c17
-rw-r--r--recording.h4
5 files changed, 32 insertions, 3 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 9a6d1692..efe1157f 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -1465,6 +1465,7 @@ Thomas Günther <tom1@toms-cafe.de>
for suggesting to move cMenuEditTimer and cMenuEvent to menu.h so that plugins
can use it
for fixing converting arbitrarily formatted summary.vdr files
+ for making the 'new' indicator in the Recordings menu kept up-to-date
David Woodhouse <dwmw2@infradead.org>
for his help in replacing the get/put_unaligned() macros from asm/unaligned.h with
diff --git a/HISTORY b/HISTORY
index 72e030be..07f12a82 100644
--- a/HISTORY
+++ b/HISTORY
@@ -3841,3 +3841,5 @@ Video Disk Recorder Revision History
into the respective code block. Thanks to Carsten Koch for his help in testing
and debugging this.
+- The 'new' indicator in the Recordings menu is now kept up-to-date (thanks to
+ Thomas Günther).
diff --git a/menu.c b/menu.c
index ce415ea3..5423416c 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.360 2005/09/25 09:45:01 kls Exp $
+ * $Id: menu.c 1.361 2005/09/25 11:30:55 kls Exp $
*/
#include "menu.h"
@@ -2221,6 +2221,8 @@ cMenuSetupRecord::cMenuSetupRecord(void)
// --- cMenuSetupReplay ------------------------------------------------------
class cMenuSetupReplay : public cMenuSetupBase {
+protected:
+ virtual void Store(void);
public:
cMenuSetupReplay(void);
};
@@ -2233,6 +2235,13 @@ cMenuSetupReplay::cMenuSetupReplay(void)
Add(new cMenuEditIntItem(tr("Setup.Replay$Resume ID"), &data.ResumeID, 0, 99));
}
+void cMenuSetupReplay::Store(void)
+{
+ if (Setup.ResumeID != data.ResumeID)
+ Recordings.ResetResume();
+ cMenuSetupBase::Store();
+}
+
// --- cMenuSetupMisc --------------------------------------------------------
class cMenuSetupMisc : public cMenuSetupBase {
diff --git a/recording.c b/recording.c
index ccdb71c4..d4aa7eaf 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.115 2005/09/25 10:40:31 kls Exp $
+ * $Id: recording.c 1.116 2005/09/25 11:31:52 kls Exp $
*/
#include "recording.h"
@@ -215,6 +215,7 @@ bool cResumeFile::Save(int Index)
if (safe_write(f, &Index, sizeof(Index)) < 0)
LOG_ERROR_STR(fileName);
close(f);
+ Recordings.ResetResume(fileName);
return true;
}
}
@@ -226,6 +227,7 @@ void cResumeFile::Delete(void)
if (fileName) {
if (remove(fileName) < 0 && errno != ENOENT)
LOG_ERROR_STR(fileName);
+ Recordings.ResetResume(fileName);
}
}
@@ -732,6 +734,11 @@ bool cRecording::Remove(void)
return RemoveVideoFile(FileName());
}
+void cRecording::ResetResume(void) const
+{
+ resume = RESUME_NOT_INITIALIZED;
+}
+
// --- cRecordings -----------------------------------------------------------
cRecordings Recordings;
@@ -860,6 +867,14 @@ void cRecordings::DelByName(const char *FileName)
}
}
+void cRecordings::ResetResume(const char *ResumeFileName)
+{
+ for (cRecording *recording = First(); recording; recording = Next(recording)) {
+ if (!ResumeFileName || strncmp(ResumeFileName, recording->FileName(), strlen(recording->FileName())) == 0)
+ recording->ResetResume();
+ }
+}
+
// --- cMark -----------------------------------------------------------------
cMark::cMark(int Position, const char *Comment)
diff --git a/recording.h b/recording.h
index 23c4fd84..aa33dd3b 100644
--- a/recording.h
+++ b/recording.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: recording.h 1.41 2005/09/25 10:07:40 kls Exp $
+ * $Id: recording.h 1.42 2005/09/25 11:31:28 kls Exp $
*/
#ifndef __RECORDING_H
@@ -79,6 +79,7 @@ public:
const cRecordingInfo *Info(void) const { return info; }
const char *PrefixFileName(char Prefix);
int HierarchyLevels(void) const;
+ void ResetResume(void) const;
bool IsNew(void) const { return GetResume() <= 0; }
bool IsEdited(void) const;
bool WriteInfo(void);
@@ -116,6 +117,7 @@ public:
bool NeedsUpdate(void);
void ChangeState(void) { state++; }
bool StateChanged(int &State);
+ void ResetResume(const char *ResumeFileName = NULL);
cRecording *GetByName(const char *FileName);
void AddByName(const char *FileName);
void DelByName(const char *FileName);