summaryrefslogtreecommitdiff
path: root/ttools.c
diff options
context:
space:
mode:
authorhorchi <vdr@jwendel.de>2017-03-16 19:00:50 +0100
committerhorchi <vdr@jwendel.de>2017-03-16 19:00:50 +0100
commit6ab5ecddeb666f5a01742ed63f585979096302f5 (patch)
tree3a3eb19200b3e2dfc98e494dbd1cbca2464352a0 /ttools.c
parent484b744d47a901e2537edcab5f4b10bbc5e9b22e (diff)
downloadvdr-plugin-epg2vdr-6ab5ecddeb666f5a01742ed63f585979096302f5.tar.gz
vdr-plugin-epg2vdr-6ab5ecddeb666f5a01742ed63f585979096302f5.tar.bz2
2017-03-16: version 1.1.48 (horchi)\n - added: Further improvement of extended skins interface\n\n1.1.48
Diffstat (limited to 'ttools.c')
-rw-r--r--ttools.c93
1 files changed, 93 insertions, 0 deletions
diff --git a/ttools.c b/ttools.c
index c30f960..0f2e686 100644
--- a/ttools.c
+++ b/ttools.c
@@ -581,3 +581,96 @@ int updateTimerObjectFromRow(cTimer* timer, cDbRow* timerRow, const cEvent* even
return done;
}
+
+//***************************************************************************
+// Enrich Event
+//***************************************************************************
+
+int enrichEvent(cEpgEvent* event, cDbTable* table, cDbStatement* select)
+{
+ if (select->find())
+ {
+ const char* fields[] =
+ {
+ "imagecount", // int
+ "numrating", // int
+ "year", // ascii 10
+ "category", // ascii 50
+ "country", // ascii 50
+ "audio", // ascii 50
+
+ "txtrating", // ascii 100
+ "genre", // ascii 100
+ "flags", // ascii 100
+ "commentator", // ascii 200
+ "tipp", // ascii 250
+ "rating", // ascii 250
+ "moderator", // ascii 250
+ "music", // ascii 250
+ "screenplay", // ascii 500
+ "shortreview", // ascii 500
+
+ "guest", // text 1000
+ "producer", // text 1000
+ "camera", // text 1000
+ "director", // text 1000
+ "topic", // ascii 1000
+
+ "other", // text 2000
+ "shortdescription", // mtext 3000
+ "actor", // mtext 5000
+ "longdescription", // mtext 25000
+ "cntlongdescription", // MText 25000
+
+ 0
+ };
+
+ for (int i = 0; fields[i]; i++)
+ {
+ cDbValue* value = table->getValue(fields[i]);
+
+ if (!value || value->isEmpty())
+ continue;
+
+ if (value->getField()->hasFormat(cDBS::ffAscii) || value->getField()->hasFormat(cDBS::ffText) || value->getField()->hasFormat(cDBS::ffMText))
+ event->setValue(fields[i], value->getStrValue());
+ else
+ event->setValue(fields[i], value->getIntValue());
+ }
+ }
+ else
+ {
+ tell(0, "Info: Event (%d) not found", event->EventID());
+ }
+
+ select->freeResult();
+
+ return done;
+}
+
+//***************************************************************************
+// Copy Event
+//***************************************************************************
+
+cEpgEvent* createEventCopy(const cEvent* event)
+{
+ FILE* inMem = 0;
+ char* bp;
+ size_t size;
+
+ if (inMem = open_memstream(&bp, &size))
+ {
+ event->Dump(inMem, "", yes);
+ fflush(inMem);
+ fclose(inMem);
+
+ cEpgEvent* epgEvent = new cEpgEvent(event->EventID());
+ inMem = fmemopen(bp, strlen(bp), "r");
+ epgEvent->Read(inMem);
+ fclose(inMem);
+
+ return epgEvent;
+ }
+
+ return 0;
+}