2000-03-11 11:22:37 +01:00
|
|
|
/*
|
|
|
|
* recording.h: Recording file handling
|
|
|
|
*
|
2000-04-24 09:46:05 +02:00
|
|
|
* See the main source file 'vdr.c' for copyright information and
|
2000-03-11 11:22:37 +01:00
|
|
|
* how to reach the author.
|
|
|
|
*
|
2002-02-03 15:55:04 +01:00
|
|
|
* $Id: recording.h 1.22 2002/02/03 11:59:49 kls Exp $
|
2000-03-11 11:22:37 +01:00
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __RECORDING_H
|
|
|
|
#define __RECORDING_H
|
|
|
|
|
|
|
|
#include <time.h>
|
|
|
|
#include "config.h"
|
|
|
|
#include "tools.h"
|
|
|
|
|
2001-02-04 12:36:32 +01:00
|
|
|
void RemoveDeletedRecordings(void);
|
2002-01-26 15:28:41 +01:00
|
|
|
void AssertFreeDiskSpace(int Priority = 0);
|
2000-03-11 11:22:37 +01:00
|
|
|
|
2001-02-11 11:04:41 +01:00
|
|
|
class cResumeFile {
|
|
|
|
private:
|
|
|
|
char *fileName;
|
|
|
|
public:
|
|
|
|
cResumeFile(const char *FileName);
|
|
|
|
~cResumeFile();
|
|
|
|
int Read(void);
|
|
|
|
bool Save(int Index);
|
|
|
|
void Delete(void);
|
|
|
|
};
|
|
|
|
|
2000-03-11 11:22:37 +01:00
|
|
|
class cRecording : public cListObject {
|
2000-04-23 15:38:16 +02:00
|
|
|
private:
|
2002-01-20 14:05:28 +01:00
|
|
|
int resume;
|
2000-04-23 15:38:16 +02:00
|
|
|
char *titleBuffer;
|
2001-10-07 11:00:35 +02:00
|
|
|
char *sortBuffer;
|
2000-03-11 11:22:37 +01:00
|
|
|
char *fileName;
|
2000-04-24 09:35:29 +02:00
|
|
|
char *name;
|
2000-07-24 16:43:04 +02:00
|
|
|
char *summary;
|
2001-10-07 11:00:35 +02:00
|
|
|
char *StripEpisodeName(char *s);
|
|
|
|
char *SortName(void);
|
2002-01-20 14:05:28 +01:00
|
|
|
int GetResume(void);
|
2000-04-23 15:38:16 +02:00
|
|
|
public:
|
2000-03-11 11:22:37 +01:00
|
|
|
time_t start;
|
|
|
|
int priority;
|
|
|
|
int lifetime;
|
2002-02-03 15:55:04 +01:00
|
|
|
cRecording(cTimer *Timer, const char *Title, const char *Subtitle, const char *Summary);
|
2000-03-11 11:22:37 +01:00
|
|
|
cRecording(const char *FileName);
|
|
|
|
~cRecording();
|
2001-10-07 11:00:35 +02:00
|
|
|
virtual bool operator< (const cListObject &ListObject);
|
2002-01-20 14:05:28 +01:00
|
|
|
const char *Name(void) { return name; }
|
2000-03-11 11:22:37 +01:00
|
|
|
const char *FileName(void);
|
2002-01-20 14:05:28 +01:00
|
|
|
const char *Title(char Delimiter = ' ', bool NewIndicator = false, int Level = -1);
|
2000-07-24 16:43:04 +02:00
|
|
|
const char *Summary(void) { return summary; }
|
2001-09-01 13:38:09 +02:00
|
|
|
const char *PrefixFileName(char Prefix);
|
2002-01-20 14:05:28 +01:00
|
|
|
int HierarchyLevels(void);
|
|
|
|
bool IsNew(void) { return GetResume() <= 0; }
|
2000-07-24 16:43:04 +02:00
|
|
|
bool WriteSummary(void);
|
2000-03-11 11:22:37 +01:00
|
|
|
bool Delete(void);
|
2000-04-24 09:46:05 +02:00
|
|
|
// Changes the file name so that it will no longer be visible in the "Recordings" menu
|
2000-03-11 11:22:37 +01:00
|
|
|
// 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);
|
2002-01-20 14:05:28 +01:00
|
|
|
cRecording *GetByName(const char *FileName);
|
2000-03-11 11:22:37 +01:00
|
|
|
};
|
|
|
|
|
2000-12-28 12:57:16 +01:00
|
|
|
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);
|
|
|
|
};
|
|
|
|
|
2001-09-23 14:02:11 +02:00
|
|
|
#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);
|
|
|
|
};
|
|
|
|
|
2000-03-11 11:22:37 +01:00
|
|
|
#endif //__RECORDING_H
|