summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CONTRIBUTORS2
-rw-r--r--HISTORY2
-rw-r--r--recording.c17
-rw-r--r--recording.h5
4 files changed, 19 insertions, 7 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 4ba08400..497def03 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -934,6 +934,8 @@ Jon Burgess <mplayer@jburgess.uklinux.net>
for pointing out a problem with NPTL ("Native Posix Thread Library")
for changing thread handling to make it work with NPTL ("Native Posix Thread Library")
for fixing a memory leak in thread handling when using NPTL
+ for reporting a bug in handling the '.update' file in case the video directory is
+ not at the default location
Thomas Schmidt <thomas.schmidt@in.stud.tu-ilmenau.de>
for reporting a crash when canceling a newly created timer
diff --git a/HISTORY b/HISTORY
index 2e3afdc9..b29c442b 100644
--- a/HISTORY
+++ b/HISTORY
@@ -3858,3 +3858,5 @@ Video Disk Recorder Revision History
exists (reported by Udo Richter).
- Fixed an unjustified "Error while accessing recording!" after deleting a recording
from a subfolder.
+- Fixed handling the '.update' file in case the video directory is not at the default
+ location (reported by Jon Burgess).
diff --git a/recording.c b/recording.c
index 8b21cdd2..9e969224 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.119 2005/09/25 14:29:49 kls Exp $
+ * $Id: recording.c 1.120 2005/10/01 10:29:02 kls Exp $
*/
#include "recording.h"
@@ -743,10 +743,11 @@ void cRecording::ResetResume(void) const
cRecordings Recordings;
+char *cRecordings::updateFileName = NULL;
+
cRecordings::cRecordings(bool Deleted)
:cThread("video directory scanner")
{
- updateFileName = strdup(AddDirectory(VideoDirectory, ".update"));
deleted = Deleted;
lastUpdate = 0;
state = 0;
@@ -755,7 +756,6 @@ cRecordings::cRecordings(bool Deleted)
cRecordings::~cRecordings()
{
Cancel(3);
- free(updateFileName);
}
void cRecordings::Action(void)
@@ -763,6 +763,13 @@ void cRecordings::Action(void)
Refresh();
}
+const char *cRecordings::UpdateFileName(void)
+{
+ if (!updateFileName)
+ updateFileName = strdup(AddDirectory(VideoDirectory, ".update"));
+ return updateFileName;
+}
+
void cRecordings::Refresh(bool Foreground)
{
lastUpdate = time(NULL); // doing this first to make sure we don't miss anything
@@ -825,13 +832,13 @@ bool cRecordings::StateChanged(int &State)
void cRecordings::TouchUpdate(void)
{
- TouchFile(updateFileName);
+ TouchFile(UpdateFileName());
lastUpdate = time(NULL); // make sure we don't tigger ourselves
}
bool cRecordings::NeedsUpdate(void)
{
- return lastUpdate < LastModifiedTime(updateFileName);
+ return lastUpdate < LastModifiedTime(UpdateFileName());
}
bool cRecordings::Update(bool Wait)
diff --git a/recording.h b/recording.h
index 96bb4b54..341284f2 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.44 2005/09/25 14:30:13 kls Exp $
+ * $Id: recording.h 1.45 2005/10/01 10:24:41 kls Exp $
*/
#ifndef __RECORDING_H
@@ -93,10 +93,11 @@ public:
class cRecordings : public cList<cRecording>, public cThread {
private:
- char *updateFileName;
+ static char *updateFileName;
bool deleted;
time_t lastUpdate;
int state;
+ const char *UpdateFileName(void);
void Refresh(bool Foreground = false);
void ScanVideoDir(const char *DirName, bool Foreground = false);
protected: