summaryrefslogtreecommitdiff
path: root/service.c
diff options
context:
space:
mode:
authorhorchi <vdr@jwendel.de>2017-03-14 07:30:24 +0100
committerhorchi <vdr@jwendel.de>2017-03-14 07:30:24 +0100
commit3345d4c5afa59a3a7f536fec61fb314bc00640c6 (patch)
treecaeb9c570da706f088ddea3727d8a704b1810255 /service.c
parentfc75b2cfa67c6b910293059614325c10a720f995 (diff)
downloadvdr-plugin-epg2vdr-3345d4c5afa59a3a7f536fec61fb314bc00640c6.tar.gz
vdr-plugin-epg2vdr-3345d4c5afa59a3a7f536fec61fb314bc00640c6.tar.bz2
2017-03-146: version 1.1.47 (horchi)\n - added: Started extended event interface for skins\n\n1.1.47
Diffstat (limited to 'service.c')
-rw-r--r--service.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/service.c b/service.c
index 20ccf14..f0185ff 100644
--- a/service.c
+++ b/service.c
@@ -69,3 +69,37 @@ cEpgEvent::cEpgEvent(tEventID EventID)
{
}
+
+bool cEpgEvent::Read(FILE *f)
+{
+ char *s;
+ int line = 0;
+ cReadLine ReadLine;
+
+ while ((s = ReadLine.Read(f)) != NULL) {
+ line++;
+ char *t = skipspace(s + 1);
+ switch (*s) {
+ case 'E': {
+ unsigned int EventID;
+ time_t StartTime;
+ int Duration;
+ unsigned int TableID = 0;
+ unsigned int Version = 0xFF; // actual value is ignored
+ int n = sscanf(t, "%u %ld %d %X %X", &EventID, &StartTime, &Duration, &TableID, &Version);
+ if (n >= 3 && n <= 5) {
+ SetTableID(TableID);
+ SetStartTime(StartTime);
+ SetDuration(Duration);
+ }
+ break;
+ }
+ default: if (!Parse(s)) {
+ esyslog("ERROR: EPG data problem in line %d", line);
+ return false;
+ }
+ }
+ }
+
+ return true;
+}