00001 // -*- Mode: c++ -*- 00002 00003 #ifndef DVBSIGNALMONITOR_H 00004 #define DVBSIGNALMONITOR_H 00005 00006 #include <QStringList> 00007 00008 #include "dtvsignalmonitor.h" 00009 00010 class DVBChannel; 00011 class DVBStreamHandler; 00012 class DVBSignalMonitorListener; 00013 00014 class DVBSignalMonitor: public DTVSignalMonitor 00015 { 00016 public: 00017 DVBSignalMonitor(int db_cardnum, DVBChannel* _channel, 00018 uint64_t _flags = 00019 kSigMon_WaitForSig | kDVBSigMon_WaitForSNR | 00020 kDVBSigMon_WaitForBER | kDVBSigMon_WaitForUB); 00021 virtual ~DVBSignalMonitor(); 00022 00023 virtual QStringList GetStatusList(void) const; 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 val) 00029 { 00030 QMutexLocker locker(&statusLock); 00031 rotorPosition.SetValue(val); 00032 } 00033 00034 virtual void EmitStatus(void); 00035 00036 // MPEG 00037 virtual void HandlePMT(uint, const ProgramMapTable*); 00038 00039 // ATSC Main 00040 virtual void HandleSTT(const SystemTimeTable*); 00041 00042 // DVB Main 00043 virtual void HandleTDT(const TimeDateTable*); 00044 00045 protected: 00046 DVBSignalMonitor(void); 00047 DVBSignalMonitor(const DVBSignalMonitor&); 00048 00049 virtual void UpdateValues(void); 00050 void EmitDVBSignals(void); 00051 00052 DVBChannel *GetDVBChannel(void); 00053 00054 protected: 00055 SignalMonitorValue signalToNoise; 00056 SignalMonitorValue bitErrorRate; 00057 SignalMonitorValue uncorrectedBlocks; 00058 SignalMonitorValue rotorPosition; 00059 00060 bool streamHandlerStarted; 00061 DVBStreamHandler *streamHandler; 00062 }; 00063 00064 #endif // DVBSIGNALMONITOR_H
1.6.3