2002-10-20 12:28:55 +02:00
|
|
|
/*
|
|
|
|
* timers.h: Timer handling
|
|
|
|
*
|
|
|
|
* See the main source file 'vdr.c' for copyright information and
|
|
|
|
* how to reach the author.
|
|
|
|
*
|
2003-12-22 13:29:24 +01:00
|
|
|
* $Id: timers.h 1.6 2003/12/13 13:04:21 kls Exp $
|
2002-10-20 12:28:55 +02:00
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __TIMERS_H
|
|
|
|
#define __TIMERS_H
|
|
|
|
|
|
|
|
#include "channels.h"
|
|
|
|
#include "config.h"
|
2003-12-22 13:29:24 +01:00
|
|
|
#include "epg.h"
|
2002-10-20 12:28:55 +02:00
|
|
|
#include "tools.h"
|
|
|
|
|
|
|
|
enum eTimerActive { taInactive = 0,
|
|
|
|
taActive = 1,
|
|
|
|
taInstant = 2,
|
|
|
|
taActInst = (taActive | taInstant)
|
|
|
|
};
|
|
|
|
|
|
|
|
class cTimer : public cListObject {
|
|
|
|
friend class cMenuEditTimer;
|
|
|
|
private:
|
|
|
|
time_t startTime, stopTime;
|
|
|
|
static char *buffer;
|
|
|
|
bool recording, pending;
|
|
|
|
int active;
|
|
|
|
cChannel *channel;
|
|
|
|
int day;
|
|
|
|
int start;
|
|
|
|
int stop;
|
|
|
|
int priority;
|
|
|
|
int lifetime;
|
|
|
|
char file[MaxFileName];
|
|
|
|
time_t firstday;
|
|
|
|
char *summary;
|
|
|
|
public:
|
2003-05-11 14:10:00 +02:00
|
|
|
cTimer(bool Instant = false, bool Pause = false);
|
2003-12-22 13:29:24 +01:00
|
|
|
cTimer(const cEvent *Event);
|
2002-10-20 12:28:55 +02:00
|
|
|
virtual ~cTimer();
|
|
|
|
cTimer& operator= (const cTimer &Timer);
|
|
|
|
virtual bool operator< (const cListObject &ListObject);
|
|
|
|
bool Recording(void) { return recording; }
|
|
|
|
bool Pending(void) { return pending; }
|
|
|
|
int Active(void) { return active; }
|
|
|
|
const cChannel *Channel(void) { return channel; }
|
|
|
|
int Day(void) { return day; }
|
|
|
|
int Start(void) { return start; }
|
|
|
|
int Stop(void) { return stop; }
|
|
|
|
int Priority(void) { return priority; }
|
|
|
|
int Lifetime(void) { return lifetime; }
|
|
|
|
const char *File(void) { return file; }
|
|
|
|
time_t FirstDay(void) { return firstday; }
|
|
|
|
const char *Summary(void) { return summary; }
|
2002-11-10 15:50:21 +01:00
|
|
|
const char *ToText(bool UseChannelID = false);
|
2002-10-20 12:28:55 +02:00
|
|
|
bool Parse(const char *s);
|
|
|
|
bool Save(FILE *f);
|
|
|
|
bool IsSingleEvent(void);
|
|
|
|
int GetMDay(time_t t);
|
|
|
|
int GetWDay(time_t t);
|
|
|
|
bool DayMatches(time_t t);
|
|
|
|
static time_t IncDay(time_t t, int Days);
|
|
|
|
static time_t SetTime(time_t t, int SecondsFromMidnight);
|
|
|
|
char *SetFile(const char *File);
|
|
|
|
bool Matches(time_t t = 0);
|
|
|
|
time_t StartTime(void);
|
|
|
|
time_t StopTime(void);
|
|
|
|
void SetRecording(bool Recording);
|
|
|
|
void SetPending(bool Pending);
|
|
|
|
void SetActive(int Active);
|
|
|
|
void Skip(void);
|
|
|
|
void OnOff(void);
|
|
|
|
const char *PrintFirstDay(void);
|
|
|
|
static int TimeToInt(int t);
|
|
|
|
static int ParseDay(const char *s, time_t *FirstDay = NULL);
|
|
|
|
static const char *PrintDay(int d, time_t FirstDay = 0);
|
|
|
|
};
|
|
|
|
|
|
|
|
class cTimers : public cConfig<cTimer> {
|
2003-02-09 13:14:44 +01:00
|
|
|
private:
|
|
|
|
int beingEdited;
|
2002-10-20 12:28:55 +02:00
|
|
|
public:
|
|
|
|
cTimer *GetTimer(cTimer *Timer);
|
|
|
|
cTimer *GetMatch(time_t t);
|
|
|
|
cTimer *GetNextActiveTimer(void);
|
2003-02-09 13:14:44 +01:00
|
|
|
int BeingEdited(void) { return beingEdited; }
|
|
|
|
void IncBeingEdited(void) { beingEdited++; }
|
|
|
|
void DecBeingEdited(void) { beingEdited--; }
|
2002-10-20 12:28:55 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
extern cTimers Timers;
|
|
|
|
|
|
|
|
#endif //__TIMERS_H
|