summaryrefslogtreecommitdiff
path: root/epg.h
diff options
context:
space:
mode:
Diffstat (limited to 'epg.h')
-rw-r--r--epg.h27
1 files changed, 25 insertions, 2 deletions
diff --git a/epg.h b/epg.h
index 9acfa82..fbc9e06 100644
--- a/epg.h
+++ b/epg.h
@@ -7,7 +7,7 @@
* Original version (as used in VDR before 1.3.0) written by
* Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>.
*
- * $Id: epg.h 2.0 2006/10/07 13:47:19 kls Exp $
+ * $Id: epg.h 2.3 2010/01/03 14:39:14 kls Exp $
*/
#ifndef __EPG_H
@@ -19,6 +19,20 @@
#define MAXEPGBUGFIXLEVEL 3
+#define MAXEVCONTENTS 4
+#define EVCONTENTMASK_MOVIEDRAMA 0x10
+#define EVCONTENTMASK_NEWSCURRENTAFFAIRS 0x20
+#define EVCONTENTMASK_SHOW 0x30
+#define EVCONTENTMASK_SPORTS 0x40
+#define EVCONTENTMASK_CHILDRENYOUTH 0x50
+#define EVCONTENTMASK_MUSICBALLETDANCE 0x60
+#define EVCONTENTMASK_ARTSCULTURE 0x70
+#define EVCONTENTMASK_SOCIALPOLITICALECONOMICS 0x80
+#define EVCONTENTMASK_EDUCATIONALSCIENCE 0x90
+#define EVCONTENTMASK_LEISUREHOBBIES 0xA0
+#define EVCONTENTMASK_SPECIAL 0xB0
+#define EVCONTENTMASK_USERDEFINED 0xF0
+
enum eDumpMode { dmAll, dmPresent, dmFollowing, dmAtTime };
struct tComponent {
@@ -53,15 +67,18 @@ typedef u_int32_t tEventID;
class cEvent : public cListObject {
friend class cSchedule;
private:
+ // The sequence of these parameters is optimized for minimal memory waste!
cSchedule *schedule; // The Schedule this event belongs to
tEventID eventID; // Event ID of this event
uchar tableID; // Table ID this event came from
uchar version; // Version number of section this event came from
- int runningStatus; // 0=undefined, 1=not running, 2=starts in a few seconds, 3=pausing, 4=running
+ uchar runningStatus; // 0=undefined, 1=not running, 2=starts in a few seconds, 3=pausing, 4=running
+ uchar parentalRating; // Parental rating of this event
char *title; // Title of this event
char *shortText; // Short description of this event (typically the episode name in case of a series)
char *description; // Description of this event
cComponents *components; // The stream components of this event
+ uchar contents[MAXEVCONTENTS]; // Contents of this event
time_t startTime; // Start time of this event
int duration; // Duration of this event in seconds
time_t vps; // Video Programming Service timestamp (VPS, aka "Programme Identification Label", PIL)
@@ -80,6 +97,8 @@ public:
const char *ShortText(void) const { return shortText; }
const char *Description(void) const { return description; }
const cComponents *Components(void) const { return components; }
+ uchar Contents(int i = 0) const { return (0 <= i && i < MAXEVCONTENTS) ? contents[i] : 0; }
+ int ParentalRating(void) const { return parentalRating; }
time_t StartTime(void) const { return startTime; }
time_t EndTime(void) const { return startTime + duration; }
int Duration(void) const { return duration; }
@@ -88,6 +107,8 @@ public:
bool SeenWithin(int Seconds) const { return time(NULL) - seen < Seconds; }
bool HasTimer(void) const;
bool IsRunning(bool OrAboutToStart = false) const;
+ static const char *ContentToString(uchar Content);
+ cString GetParentalRatingString(void) const;
cString GetDateString(void) const;
cString GetTimeString(void) const;
cString GetEndTimeString(void) const;
@@ -100,6 +121,8 @@ public:
void SetShortText(const char *ShortText);
void SetDescription(const char *Description);
void SetComponents(cComponents *Components); // Will take ownership of Components!
+ void SetContents(uchar *Contents);
+ void SetParentalRating(int ParentalRating);
void SetStartTime(time_t StartTime);
void SetDuration(int Duration);
void SetVps(time_t Vps);