00001 #ifndef _FILLDATA_H_
00002 #define _FILLDATA_H_
00003
00004
00005 #include <vector>
00006 using namespace std;
00007
00008
00009 #include <QString>
00010
00011
00012 #include "datadirect.h"
00013 #include "programdata.h"
00014
00015
00016 #include "channeldata.h"
00017 #include "xmltvparser.h"
00018 #include "icondata.h"
00019
00020 #define REFRESH_MAX 21
00021
00022
00023 bool updateLastRunEnd(MSqlQuery &query);
00024 bool updateLastRunStart(MSqlQuery &query);
00025 bool updateLastRunStatus(MSqlQuery &query, QString &status);
00026
00027 struct Source
00028 {
00029 Source() : id(0), name(), xmltvgrabber(), userid(), password(), lineupid(),
00030 xmltvgrabber_baseline(false), xmltvgrabber_manualconfig(false),
00031 xmltvgrabber_cache(false), xmltvgrabber_prefmethod() {}
00032 int id;
00033 QString name;
00034 QString xmltvgrabber;
00035 QString userid;
00036 QString password;
00037 QString lineupid;
00038 bool xmltvgrabber_baseline;
00039 bool xmltvgrabber_manualconfig;
00040 bool xmltvgrabber_cache;
00041 QString xmltvgrabber_prefmethod;
00042 vector<int> dd_dups;
00043 };
00044 typedef vector<Source> SourceList;
00045
00046 class FillData
00047 {
00048 public:
00049 FillData() :
00050 raw_lineup(0), maxDays(0),
00051 interrupted(false), endofdata(false),
00052 refresh_tba(true), dd_grab_all(false),
00053 dddataretrieved(false),
00054 need_post_grab_proc(true), only_update_channels(false),
00055 channel_update_run(false), refresh_all(false)
00056 {
00057 SetRefresh(1, true);
00058 }
00059
00060 void SetRefresh(int day, bool set);
00061
00062 void DataDirectStationUpdate(Source source, bool update_icons = true);
00063 bool DataDirectUpdateChannels(Source source);
00064 bool GrabDDData(Source source, int poffset,
00065 QDate pdate, int ddSource);
00066 bool GrabDataFromFile(int id, QString &filename);
00067 bool GrabData(Source source, int offset, QDate *qCurrentDate = 0);
00068 bool GrabDataFromDDFile(int id, int offset, const QString &filename,
00069 const QString &lineupid, QDate *qCurrentDate = 0);
00070 bool Run(SourceList &sourcelist);
00071 ChanInfo *xawtvChannel(QString &id, QString &channel, QString &fine);
00072 void readXawtvChannels(int id, QString xawrcfile);
00073
00074 enum
00075 {
00076 kRefreshClear = 0xFFFF0,
00077 kRefreshAll = 0xFFFF1,
00078 };
00079
00080 public:
00081 ProgramData prog_data;
00082 ChannelData chan_data;
00083 XMLTVParser xmltv_parser;
00084 IconData icon_data;
00085 DataDirectProcessor ddprocessor;
00086
00087 QString logged_in;
00088 QString lastdduserid;
00089 QString graboptions;
00090 int raw_lineup;
00091 uint maxDays;
00092
00093 bool interrupted;
00094 bool endofdata;
00095 bool refresh_tba;
00096 bool dd_grab_all;
00097 bool dddataretrieved;
00098 bool need_post_grab_proc;
00099 bool only_update_channels;
00100 bool channel_update_run;
00101
00102 private:
00103 QMap<uint,bool> refresh_day;
00104 bool refresh_all;
00105 mutable QStringList fatalErrors;
00106 };
00107
00108 #endif // _FILLDATA_H_