diff options
Diffstat (limited to 'server/livefilter.c')
-rw-r--r-- | server/livefilter.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/server/livefilter.c b/server/livefilter.c index c707b3b..c159602 100644 --- a/server/livefilter.c +++ b/server/livefilter.c @@ -18,13 +18,17 @@ class cStreamdevLiveFilter: public cFilter { private: cStreamdevFilterStreamer *m_Streamer; + bool m_On; protected: virtual void Process(u_short Pid, u_char Tid, const u_char *Data, int Length); + virtual void SetStatus(bool On); public: cStreamdevLiveFilter(cStreamdevFilterStreamer *Streamer); + virtual bool IsAttached(void) const { return m_On; }; + void Set(u_short Pid, u_char Tid, u_char Mask) { cFilter::Set(Pid, Tid, Mask); } @@ -34,9 +38,16 @@ public: }; cStreamdevLiveFilter::cStreamdevLiveFilter(cStreamdevFilterStreamer *Streamer) { + m_On = false; m_Streamer = Streamer; } +void cStreamdevLiveFilter::SetStatus(bool On) +{ + m_On = On; + cFilter::SetStatus(On); +} + void cStreamdevLiveFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length) { uchar buffer[TS_SIZE]; @@ -113,6 +124,11 @@ void cStreamdevFilterStreamer::SetDevice(cDevice *Device) Attach(); } +bool cStreamdevFilterStreamer::IsReceiving(void) const +{ + return m_Filter && m_Filter->IsAttached(); +} + bool cStreamdevFilterStreamer::SetFilter(u_short Pid, u_char Tid, u_char Mask, bool On) { Dprintf("cStreamdevFilterStreamer::SetFilter(%u,0x%x,0x%x,%s)\n", Pid, Tid, Mask, On?"On":"Off"); |