diff options
author | schmirl <schmirl> | 2009-02-13 10:39:40 +0000 |
---|---|---|
committer | schmirl <schmirl> | 2009-02-13 10:39:40 +0000 |
commit | e3599df3083ec6aa9b8656589a171e2c5d3d7e7a (patch) | |
tree | 875d67c52b228d945bf95e640ef57f1270319f72 /server/connectionIGMP.h | |
parent | fa06a6068bd47868fe65b24af8f0a469ae6b46a6 (diff) | |
download | vdr-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.h | 45 |
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 |