summaryrefslogtreecommitdiff
path: root/server/connectionIGMP.h
diff options
context:
space:
mode:
authorschmirl <schmirl>2009-02-13 10:39:40 +0000
committerschmirl <schmirl>2009-02-13 10:39:40 +0000
commite3599df3083ec6aa9b8656589a171e2c5d3d7e7a (patch)
tree875d67c52b228d945bf95e640ef57f1270319f72 /server/connectionIGMP.h
parentfa06a6068bd47868fe65b24af8f0a469ae6b46a6 (diff)
downloadvdr-plugin-streamdev-e3599df3083ec6aa9b8656589a171e2c5d3d7e7a.tar.gz
vdr-plugin-streamdev-e3599df3083ec6aa9b8656589a171e2c5d3d7e7a.tar.bz2
Added IGMP Multicast server
Modified Files: Tag: v0_4 CONTRIBUTORS HISTORY Makefile README i18n.c server/component.c server/component.h server/connection.c server/connection.h server/livefilter.c server/server.c server/setup.c server/setup.h server/streamer.c server/streamer.h streamdev/streamdevhosts.conf tools/socket.c tools/socket.h Added Files: Tag: v0_4 patches/vdr-cap_net_raw.diff server/componentIGMP.c server/componentIGMP.h server/connectionIGMP.c server/connectionIGMP.h
Diffstat (limited to 'server/connectionIGMP.h')
-rw-r--r--server/connectionIGMP.h45
1 files changed, 45 insertions, 0 deletions
diff --git a/server/connectionIGMP.h b/server/connectionIGMP.h
new file mode 100644
index 0000000..7e936aa
--- /dev/null
+++ b/server/connectionIGMP.h
@@ -0,0 +1,45 @@
+/*
+ * $Id: connectionIGMP.h,v 1.1.2.2 2009/02/13 10:39:42 schmirl Exp $
+ */
+
+#ifndef VDR_STREAMDEV_SERVERS_CONNECTIONIGMP_H
+#define VDR_STREAMDEV_SERVERS_CONNECTIONIGMP_H
+
+#include "connection.h"
+#include "server/livestreamer.h"
+
+#include <tools/select.h>
+
+#define MULTICAST_PRIV_MIN ((uint32_t) 0xefff0000)
+#define MULTICAST_PRIV_MAX ((uint32_t) 0xeffffeff)
+
+class cStreamdevLiveStreamer;
+
+class cConnectionIGMP: public cServerConnection {
+private:
+ cStreamdevLiveStreamer *m_LiveStreamer;
+ int m_ClientPort;
+ eStreamType m_StreamType;
+
+public:
+ cConnectionIGMP(const char* Name, int ClientPort, eStreamType StreamType);
+ virtual ~cConnectionIGMP();
+
+ bool Start(cChannel *Channel, in_addr_t Dst);
+ void Stop();
+
+ /* Not used here */
+ virtual bool Command(char *Cmd) { return false; }
+
+ virtual void Attach(void) { if (m_LiveStreamer != NULL) m_LiveStreamer->Attach(); }
+ virtual void Detach(void) { if (m_LiveStreamer != NULL) m_LiveStreamer->Detach(); }
+
+ virtual bool Abort(void) const;
+};
+
+inline bool cConnectionIGMP::Abort(void) const
+{
+ return !m_LiveStreamer || m_LiveStreamer->Abort();
+}
+
+#endif // VDR_STREAMDEV_SERVERS_CONNECTIONIGMP_H