00001 // -*- Mode: c++ -*- 00002 00003 #ifndef DVBSIGNALMONITOR_H 00004 #define DVBSIGNALMONITOR_H 00005 00006 #include "dtvsignalmonitor.h" 00007 #include "qstringlist.h" 00008 00009 class DVBChannel; 00010 class DVBStreamHandler; 00011 00012 class DVBSignalMonitor: public DTVSignalMonitor 00013 { 00014 Q_OBJECT 00015 public: 00016 DVBSignalMonitor(int db_cardnum, DVBChannel* _channel, 00017 uint64_t _flags = 00018 kDTVSigMon_WaitForSig | kDVBSigMon_WaitForSNR | 00019 kDVBSigMon_WaitForBER | kDVBSigMon_WaitForUB, 00020 const char *_name = "DVBSignalMonitor"); 00021 virtual ~DVBSignalMonitor(); 00022 00023 virtual QStringList GetStatusList(bool kick); 00024 void Stop(void); 00025 00026 virtual void SetRotorTarget(float target); 00027 virtual void GetRotorStatus(bool &was_moving, bool &is_moving); 00028 virtual void SetRotorValue(int) 00029 { 00030 QMutexLocker locker(&statusLock); 00031 rotorPosition.SetValue(100); 00032 } 00033 00034 // MPEG 00035 virtual void HandlePMT(uint, const ProgramMapTable*); 00036 00037 // ATSC Main 00038 virtual void HandleSTT(const SystemTimeTable*); 00039 00040 // DVB Main 00041 virtual void HandleTDT(const TimeDateTable*); 00042 00043 public slots: 00044 void deleteLater(void); 00045 00046 signals: 00047 void StatusSignalToNoise(const SignalMonitorValue&); 00048 void StatusBitErrorRate(const SignalMonitorValue&); 00049 void StatusUncorrectedBlocks(const SignalMonitorValue&); 00050 void StatusRotorPosition(const SignalMonitorValue&); 00051 00052 protected: 00053 DVBSignalMonitor(void); 00054 DVBSignalMonitor(const DVBSignalMonitor&); 00055 00056 virtual void UpdateValues(void); 00057 void EmitDVBSignals(void); 00058 00059 DVBChannel *GetDVBChannel(void); 00060 00061 protected: 00062 SignalMonitorValue signalToNoise; 00063 SignalMonitorValue bitErrorRate; 00064 SignalMonitorValue uncorrectedBlocks; 00065 SignalMonitorValue rotorPosition; 00066 00067 bool streamHandlerStarted; 00068 DVBStreamHandler *streamHandler; 00069 }; 00070 00071 #endif // DVBSIGNALMONITOR_H
1.5.5