00001 00007 #ifndef _IPTV_FEEDER_LIVE_H_ 00008 #define _IPTV_FEEDER_LIVE_H_ 00009 00010 // C++ headers 00011 #include <vector> 00012 using namespace std; 00013 00014 // Qt headers 00015 #include <QWaitCondition> 00016 #include <QMutex> 00017 00018 // Mythtv headers 00019 #include "iptvfeeder.h" 00020 00021 class QString; 00022 class TSDataListener; 00023 class UsageEnvironment; 00024 00025 00026 class IPTVFeederLive : public IPTVFeeder 00027 { 00028 public: 00029 IPTVFeederLive(); 00030 virtual ~IPTVFeederLive(); 00031 00032 void Run(void); 00033 void Stop(void); 00034 00035 void AddListener(TSDataListener*); 00036 void RemoveListener(TSDataListener*); 00037 00038 protected: 00039 bool InitEnv(void); 00040 void FreeEnv(void); 00041 00042 private: 00043 IPTVFeederLive &operator=(const IPTVFeederLive&); 00044 IPTVFeederLive(const IPTVFeederLive&); 00045 00046 protected: 00047 UsageEnvironment *_live_env; 00048 mutable QMutex _lock; 00049 vector<TSDataListener*> _listeners; 00050 00051 private: 00052 char _abort; 00053 bool _running; 00054 QWaitCondition _cond; 00055 }; 00056 00057 #endif // _IPTV_FEEDER_LIVE_H_
1.6.3