Implemented handling the "Content Descriptor"

This commit is contained in:
Klaus Schmidinger
2010-01-03 12:20:37 +01:00
parent 4b5f232e59
commit 56627cd12d
35 changed files with 6193 additions and 34 deletions

20
epg.h
View File

@@ -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 1.35 2006/10/07 13:47:19 kls Exp $
* $Id: epg.h 2.1 2010/01/03 11:17:20 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 {
@@ -62,6 +76,7 @@ private:
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 +95,7 @@ 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; }
time_t StartTime(void) const { return startTime; }
time_t EndTime(void) const { return startTime + duration; }
int Duration(void) const { return duration; }
@@ -88,6 +104,7 @@ 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 GetDateString(void) const;
cString GetTimeString(void) const;
cString GetEndTimeString(void) const;
@@ -100,6 +117,7 @@ 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 SetStartTime(time_t StartTime);
void SetDuration(int Duration);
void SetVps(time_t Vps);