73 if (strstr(FileName,
Name()) != FileName) {
83 dsyslog(
"renaming '%s' to '%s'", OldName, NewName);
84 if (rename(OldName, NewName) == -1) {
93 dsyslog(
"moving '%s' to '%s'", FromName, ToName);
95 if (rename(FromName, ToName) == -1) {
152 int deleted = DeletedRecordings->TotalFileSizeMB();
161 return (free + used) ? used * 100 / (free + used) : 0;
166 char PrefixedName[strlen(FileName) + 2];
168 const char *p = FileName + strlen(FileName);
170 while (p-- > FileName && n > 0) {
173 int l = p - FileName + 1;
174 strncpy(PrefixedName, FileName, l);
175 PrefixedName[l] = Prefix;
176 strcpy(PrefixedName + l + 1, p + 1);
196 #define DISKSPACECHEK 5
197 #define MB_PER_MINUTE 25.75
214 double MBperMinute = Recordings->MBperMinute();
215 if (MBperMinute <= 0)
222 if (State !=
state) {
bool Add(int Usage, const char *FileNameSrc, const char *FileNameDst=NULL)
Adds the given FileNameSrc to the recordings handler for (later) processing.
static cString sprintf(const char *fmt,...) __attribute__((format(printf
cUnbufferedFile is used for large files that are mainly written or read in a streaming manner,...
static cUnbufferedFile * Create(const char *FileName, int Flags, mode_t Mode=DEFFILEMODE)
virtual int FreeMB(int *UsedMB=NULL)
Returns the total amount (in MB) of free disk space for recording.
virtual bool Contains(const char *Name)
Checks whether the directory Name is on the same file system as the video directory.
static cString PrefixVideoFileName(const char *FileName, char Prefix)
static void Destroy(void)
static void RemoveEmptyVideoDirectories(const char *IgnoreFiles[]=NULL)
static bool IsOnVideoDirectoryFileSystem(const char *FileName)
static cVideoDirectory * current
static const char * Name(void)
static cUnbufferedFile * OpenVideoFile(const char *FileName, int Flags)
static bool VideoFileSpaceAvailable(int SizeMB)
static bool MoveVideoFile(const char *FromName, const char *ToName)
virtual bool Move(const char *FromName, const char *ToName)
Moves the directory FromName to the location ToName.
static int VideoDiskSpace(int *FreeMB=NULL, int *UsedMB=NULL)
virtual bool Rename(const char *OldName, const char *NewName)
Renames the directory OldName to NewName.
virtual void Cleanup(const char *IgnoreFiles[]=NULL)
Recursively removes all empty directories under the video directory.
virtual bool Register(const char *FileName)
By default VDR assumes that the video directory consists of one large volume, on which it can store i...
virtual bool Remove(const char *Name)
Removes the directory with the given Name and everything it contains.
virtual ~cVideoDirectory()
static void SetName(const char *Name)
static cVideoDirectory * Current(void)
static bool RenameVideoFile(const char *OldName, const char *NewName)
static bool RemoveVideoFile(const char *FileName)
static int FreeMB(void)
Returns the amount of free space on the video disk in MB.
static bool HasChanged(int &State)
Returns true if the usage of the video disk space has changed since the last call to this function wi...
static time_t lastChecked
static cString String(void)
Returns a localized string of the form "Disk nn% - hh:mm free".
static int UsedPercent(void)
Returns the used space of the video disk in percent.
cRecordingsHandler RecordingsHandler
#define LOCK_RECORDINGS_READ
#define LOCK_DELETEDRECORDINGS_READ