mirror of
https://github.com/vdr-projects/vdr.git
synced 2025-03-01 10:50:46 +00:00
- Fixed setting the OSD size in the 'Confirm' interface call (thanks to
Deti Fliegl).
- Removed the 'read incomplete section...' error message in the EIT processor.
- Fixed channel data for "DW TV" (thanks to Axel Gruber).
- Added DPID to "PREMIERE MOVIE 1" in channels.conf.cable (thanks to Stephan
Schreiber).
- Prepared the OSD functions for multiple overlapping windows.
- Removed the check to see whether the system time is running linearly.
- Improved performance of SVDRP command entry.
- Removed EPGBugfixLevel '3' - after more than a year Pro-7 finally managed to
broadcast the correct timestamps for EPG events between 0:00 and 6:00!
- Fixed failing watchdog timer if program hangs in OSD activities (thanks to
Carsten Koch).
- No longer requiring 'libncurses' if compiling without DEBUG_OSD=1 and
REMOTE=KBD (thanks to Lauri Pesonen).
- The "Recordings" menu now displays a hierarchical structure if there are
subdirectories for the recordings. This can be controlled through the
"RecordingDirs" parameter in the "Setup" menu.
See "MANUAL/Replaying a Recording" for details.
- Improved speed of setting the Help button texts.
- Fixed handling file names that contain single quotes (') or dollar signs ($)
in the call to the shutdown command (option '-s') and the recording command
(option '-r').
- Improved error handling in the editing process; the resulting file will be
deleted if an error occured.
- A message is now prompted at the end of the editing process, indicating
whether the process succeeded or failed.
- Fixed setting the LastActivity timestamp after a shutdown prompt (thanks to
Sergei Haller).
- A message is now prompted if free disk space becomes low during recording.
- The editing process now calls AssertFreeDiskSpace() to remove deleted
recordings if the disk becomes full.
- The "Main" menu now displays in its title the used disk space (in percent)
and the estimated free disk space (in hh:mm), assuming a data rate of 30 MB
per minute.
- Activating the "Recordings" menu now displays "scanning recordings..." to
give the user some feedback in case this takes longer.
- Status messages are now displayed centered.
- Removed the 'Tools' subdirectory from the VDR archive. All contributed tools
can now be found at ftp://ftp.cadsoft.de/pub/people/kls/vdr/Tools.
108 lines
2.6 KiB
C++
108 lines
2.6 KiB
C++
/*
|
|
* recording.h: Recording file handling
|
|
*
|
|
* See the main source file 'vdr.c' for copyright information and
|
|
* how to reach the author.
|
|
*
|
|
* $Id: recording.h 1.21 2002/01/26 15:18:16 kls Exp $
|
|
*/
|
|
|
|
#ifndef __RECORDING_H
|
|
#define __RECORDING_H
|
|
|
|
#include <time.h>
|
|
#include "config.h"
|
|
#include "tools.h"
|
|
|
|
void RemoveDeletedRecordings(void);
|
|
void AssertFreeDiskSpace(int Priority = 0);
|
|
|
|
class cResumeFile {
|
|
private:
|
|
char *fileName;
|
|
public:
|
|
cResumeFile(const char *FileName);
|
|
~cResumeFile();
|
|
int Read(void);
|
|
bool Save(int Index);
|
|
void Delete(void);
|
|
};
|
|
|
|
class cRecording : public cListObject {
|
|
private:
|
|
int resume;
|
|
char *titleBuffer;
|
|
char *sortBuffer;
|
|
char *fileName;
|
|
char *name;
|
|
char *summary;
|
|
char *StripEpisodeName(char *s);
|
|
char *SortName(void);
|
|
int GetResume(void);
|
|
public:
|
|
time_t start;
|
|
int priority;
|
|
int lifetime;
|
|
cRecording(cTimer *Timer, const char *Subtitle, const char *Summary);
|
|
cRecording(const char *FileName);
|
|
~cRecording();
|
|
virtual bool operator< (const cListObject &ListObject);
|
|
const char *Name(void) { return name; }
|
|
const char *FileName(void);
|
|
const char *Title(char Delimiter = ' ', bool NewIndicator = false, int Level = -1);
|
|
const char *Summary(void) { return summary; }
|
|
const char *PrefixFileName(char Prefix);
|
|
int HierarchyLevels(void);
|
|
bool IsNew(void) { return GetResume() <= 0; }
|
|
bool WriteSummary(void);
|
|
bool Delete(void);
|
|
// Changes the file name so that it will no longer be visible in the "Recordings" menu
|
|
// Returns false in case of error
|
|
bool Remove(void);
|
|
// Actually removes the file from the disk
|
|
// Returns false in case of error
|
|
};
|
|
|
|
class cRecordings : public cList<cRecording> {
|
|
public:
|
|
bool Load(bool Deleted = false);
|
|
cRecording *GetByName(const char *FileName);
|
|
};
|
|
|
|
class cMark : public cListObject {
|
|
private:
|
|
static char *buffer;
|
|
public:
|
|
int position;
|
|
char *comment;
|
|
cMark(int Position = 0, const char *Comment = NULL);
|
|
~cMark();
|
|
const char *ToText(void);
|
|
bool Parse(const char *s);
|
|
bool Save(FILE *f);
|
|
};
|
|
|
|
class cMarks : public cConfig<cMark> {
|
|
public:
|
|
bool Load(const char *RecordingFileName);
|
|
void Sort(void);
|
|
cMark *Add(int Position);
|
|
cMark *Get(int Position);
|
|
cMark *GetPrev(int Position);
|
|
cMark *GetNext(int Position);
|
|
};
|
|
|
|
#define RUC_BEFORERECORDING "before"
|
|
#define RUC_AFTERRECORDING "after"
|
|
#define RUC_EDITEDRECORDING "edited"
|
|
|
|
class cRecordingUserCommand {
|
|
private:
|
|
static const char *command;
|
|
public:
|
|
static void SetCommand(const char *Command) { command = Command; }
|
|
static void InvokeCommand(const char *State, const char *RecordingFileName);
|
|
};
|
|
|
|
#endif //__RECORDING_H
|