summaryrefslogtreecommitdiff
path: root/epg.h
diff options
context:
space:
mode:
Diffstat (limited to 'epg.h')
-rw-r--r--epg.h54
1 files changed, 40 insertions, 14 deletions
diff --git a/epg.h b/epg.h
index 0668c49c..88e66029 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 1.18 2004/12/26 11:31:27 kls Exp $
+ * $Id: epg.h 1.19 2005/01/02 10:44:41 kls Exp $
*/
#ifndef __EPG_H
@@ -17,26 +17,50 @@
#include "thread.h"
#include "tools.h"
-#define MAXEPGBUGFIXLEVEL 2
+#define MAXEPGBUGFIXLEVEL 3
+#define MAXCOMPONENTS 32
enum eDumpMode { dmAll, dmPresent, dmFollowing, dmAtTime };
+struct tComponent {
+ uchar stream;
+ uchar type;
+ char language[4];
+ char *description;
+ cString ToString(void);
+ bool FromString(const char *s);
+ };
+
+class cComponents {
+private:
+ int numComponents;
+ tComponent *components;
+public:
+ cComponents(int NumComponents);
+ ~cComponents(void);
+ int NumComponents(void) const { return numComponents; }
+ bool SetComponent(int Index, const char *s);
+ bool SetComponent(int Index, uchar Stream, uchar Type, const char *Language, const char *Description);
+ tComponent *Component(int Index) const { return (Index < numComponents) ? &components[Index] : NULL; }
+ };
+
class cSchedule;
class cEvent : public cListObject {
private:
- tChannelID channelID; // Channel ID of program for this event
- u_int16_t 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
- 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
- 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)
- time_t seen; // When this event was last seen in the data stream
+ tChannelID channelID; // Channel ID of program for this event
+ u_int16_t 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
+ 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 (separated by '\n')
+ 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)
+ time_t seen; // When this event was last seen in the data stream
public:
cEvent(tChannelID ChannelID, u_int16_t EventID);
~cEvent();
@@ -49,6 +73,7 @@ public:
const char *Title(void) const { return title; }
const char *ShortText(void) const { return shortText; }
const char *Description(void) const { return description; }
+ const cComponents *Components(void) const { return components; }
time_t StartTime(void) const { return startTime; }
time_t EndTime(void) const { return startTime + duration; }
int Duration(void) const { return duration; }
@@ -67,6 +92,7 @@ public:
void SetTitle(const char *Title);
void SetShortText(const char *ShortText);
void SetDescription(const char *Description);
+ void SetComponents(cComponents *Components); // Will take ownership of Components!
void SetStartTime(time_t StartTime);
void SetDuration(int Duration);
void SetVps(time_t Vps);