00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifndef _SCANWIZARDSCANNER_H_
00033 #define _SCANWIZARDSCANNER_H_
00034
00035
00036 #include <pthread.h>
00037
00038
00039 #include <qstring.h>
00040
00041
00042 #include "settings.h"
00043 #include "dvbconfparser.h"
00044
00045 class ScanWizard;
00046 class AnalogScan;
00047 class IPTVChannelFetcher;
00048 class LogList;
00049 class SIScan;
00050 class ScanProgressPopup;
00051
00052 class ChannelBase;
00053 class Channel;
00054 class DVBChannel;
00055 class SignalMonitorValue;
00056
00057 class ScanWizardScanner : public VerticalConfigurationGroup
00058 {
00059 Q_OBJECT
00060
00061 friend void *spawn_popup(void*);
00062
00063 public:
00064 ScanWizardScanner(void);
00065 virtual void deleteLater(void)
00066 { Teardown(); VerticalConfigurationGroup::deleteLater(); }
00067
00068 void Scan(int scantype,
00069 uint cardid,
00070 const QString &inputname,
00071 uint sourceid,
00072 bool do_delete_channels,
00073 bool do_rename_channels,
00074 bool do_ignore_signal_timeout,
00075
00076 uint mplexid,
00077 const QMap<QString,QString> &startChan,
00078 const QString &freq_std,
00079 const QString &mod,
00080 const QString &tbl,
00081 const QString &atsc_format);
00082
00083 void ImportDVBUtils(uint sourceid, int cardtype, const QString &file);
00084 void ImportM3U( uint cardid, const QString &inputname, uint sourceid);
00085
00086 protected slots:
00087 void CancelScan(void) { Teardown(); }
00088 void scanComplete(void);
00089 void transportScanComplete(void);
00090 void updateText(const QString& status);
00091 void updateStatusText(const QString& status);
00092
00093 void dvbLock(const SignalMonitorValue&);
00094 void dvbSNR(const SignalMonitorValue&);
00095 void dvbSignalStrength(const SignalMonitorValue&);
00096
00097 void serviceScanPctComplete(int pct);
00098
00099 protected:
00100 ~ScanWizardScanner();
00101 void Teardown(void);
00102
00103 void PreScanCommon(int scantype, uint cardid,
00104 const QString &inputname,
00105 uint sourceid, bool do_ignore_signal_timeout);
00106
00107 void dvbLock(int);
00108 void dvbSNR(int);
00109 void dvbSignalStrength(int);
00110 void customEvent(QCustomEvent *e);
00111
00112 void MonitorProgress(bool lock, bool strength, bool snr);
00113 void RunPopup(void);
00114 void StopPopup(void);
00115
00116 public:
00117 static QString kTitle;
00118
00119 private:
00120 LogList *log;
00121 ChannelBase *channel;
00122
00123 ScanProgressPopup *popupProgress;
00124 pthread_t popup_thread;
00125 mutable QMutex popupLock;
00126
00127 SIScan *scanner;
00128 IPTVChannelFetcher *freeboxScanner;
00129
00130 uint nVideoSource;
00131
00132
00133 DTVChannelList channels;
00134 };
00135
00136 #endif // _SCANWIZARDSCANNER_H_
00137