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 // seconds between disk space checks 197 #define MB_PER_MINUTE 25.75 // this is just an estimate! 214 double MBperMinute = Recordings->MBperMinute();
215 if (MBperMinute <= 0)
222 if (State !=
state) {
static bool RenameVideoFile(const char *OldName, const char *NewName)
virtual ~cVideoDirectory()
static cVideoDirectory * current
static cString String(void)
Returns a localized string of the form "Disk nn% - hh:mm free".
virtual bool Move(const char *FromName, const char *ToName)
Moves the directory FromName to the location ToName.
static cString sprintf(const char *fmt,...) __attribute__((format(printf
virtual bool Contains(const char *Name)
Checks whether the directory Name is on the same file system as the video directory.
static bool VideoFileSpaceAvailable(int SizeMB)
cUnbufferedFile is used for large files that are mainly written or read in a streaming manner,...
virtual bool Remove(const char *Name)
Removes the directory with the given Name and everything it contains.
static cUnbufferedFile * OpenVideoFile(const char *FileName, int Flags)
static cString PrefixVideoFileName(const char *FileName, char Prefix)
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...
static const char * Name(void)
static void Destroy(void)
static void RemoveEmptyVideoDirectories(const char *IgnoreFiles[]=NULL)
virtual bool Rename(const char *OldName, const char *NewName)
Renames the directory OldName to NewName.
static void SetName(const char *Name)
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...
virtual int FreeMB(int *UsedMB=NULL)
Returns the total amount (in MB) of free disk space for recording.
static cVideoDirectory * Current(void)
cRecordingsHandler RecordingsHandler
static int VideoDiskSpace(int *FreeMB=NULL, int *UsedMB=NULL)
static bool RemoveVideoFile(const char *FileName)
#define LOCK_DELETEDRECORDINGS_READ
static bool MoveVideoFile(const char *FromName, const char *ToName)
#define LOCK_RECORDINGS_READ
static bool IsOnVideoDirectoryFileSystem(const char *FileName)
static cUnbufferedFile * Create(const char *FileName, int Flags, mode_t Mode=DEFFILEMODE)
virtual void Cleanup(const char *IgnoreFiles[]=NULL)
Recursively removes all empty directories under the video directory.
static time_t lastChecked
bool Add(int Usage, const char *FileNameSrc, const char *FileNameDst=NULL)
Adds the given FileNameSrc to the recordings handler for (later) processing.
static int FreeMB(void)
Returns the amount of free space on the video disk in MB.
static int UsedPercent(void)
Returns the used space of the video disk in percent.