/* * import.h: A plugin for the Video Disk Recorder * * See the README file for copyright information and how to reach the author. * */ #ifndef _IMPORT_H #define _IMPORT_H #include #include #include #include "event.h" #include "source.h" #include "maps.h" enum { IMPORT_ALL=0, IMPORT_DESCRIPTION, IMPORT_SHORTTEXT }; class cEPGSource; class cEPGExecutor; class cImport { private: struct split { char *pointers[256]; int count; }; enum { IMPORT_NOERROR=0, IMPORT_NOSCHEDULE, IMPORT_NOCHANNEL, IMPORT_XMLTVERR, IMPORT_NOMAPPING, IMPORT_NOCHANNELID, IMPORT_EMPTYSCHEDULE }; cEPGMappings *maps; cEPGSource *source; cTEXTMappings *texts; cCharSetConv *conv; const char *epgfile; char *RemoveLastCharFromDescription(char *description); char *Add2Description(char *description, const char *Value); char *Add2Description(char *description, const char *Name, const char *Value); char *Add2Description(char *description, const char *Name, int Value); char *AddEOT2Description(char *description); struct split split(char *in, char delim); cEvent *GetEventBefore(cSchedule* schedule, time_t start); cEvent *SearchVDREvent(cSchedule* schedule, cXMLTVEvent *event); bool FetchXMLTVEvent(sqlite3_stmt *stmt, cXMLTVEvent *xevent); char *RemoveNonASCII(const char *src); cXMLTVEvent *PrepareAndReturn(sqlite3 *db, char *sql, sqlite3_stmt *stmt); public: cImport(cEPGSource *Source, cEPGMappings *Maps, cTEXTMappings *Texts); ~cImport(); int Process(cEPGExecutor &myExecutor); bool WasChanged(cEvent *Event); bool PutEvent(cEPGSource *source, sqlite3 *db, cSchedule* schedule, cEvent *event, cXMLTVEvent *xevent, int Flags, int Option=IMPORT_ALL); cXMLTVEvent *SearchXMLTVEvent(const char *EPGFile, const char *ChannelID, const cEvent *Event); void UpdateXMLTVEvent(cEPGSource *Source, const char *EPGFile, sqlite3 *Db, const cEvent *Event, const char *SourceName, tEventID EventID, tEventID EITEventID, const char *EITDescription=NULL); cXMLTVEvent *AddXMLTVEvent(const char *EPGFile, const char *ChannelID, const cEvent *Event, const char *EITDescription); }; #endif