summaryrefslogtreecommitdiff
path: root/server/livefilter.c
diff options
context:
space:
mode:
Diffstat (limited to 'server/livefilter.c')
-rw-r--r--server/livefilter.c16
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");