1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
/*
* 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 <vdr/epg.h>
#include <vdr/channels.h>
#include <sqlite3.h>
#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);
bool WasChanged(cEvent *event);
public:
cImport(cEPGSource *Source, cEPGMappings *Maps, cTEXTMappings *Texts);
~cImport();
int Process(cEPGExecutor &myExecutor);
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(const char *EPGFile, sqlite3 *db, const char *Source, tEventID EventID,
tEventID EITEventID, const char *EITDescription=NULL);
cXMLTVEvent *AddXMLTVEvent(const char *EPGFile, const char *ChannelID, const cEvent *Event,
const char *EITDescription);
};
#endif
|