2009-02-13 11:39:20 +01:00
|
|
|
/*
|
|
|
|
* $Id: connectionIGMP.h,v 1.1 2009/02/13 10:39:22 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;
|
2011-10-18 08:50:54 +02:00
|
|
|
cChannel *m_Channel;
|
2009-02-13 11:39:20 +01:00
|
|
|
|
|
|
|
public:
|
|
|
|
cConnectionIGMP(const char* Name, int ClientPort, eStreamType StreamType);
|
|
|
|
virtual ~cConnectionIGMP();
|
|
|
|
|
2011-10-18 08:50:54 +02:00
|
|
|
bool SetChannel(cChannel *Channel, in_addr_t Dst);
|
|
|
|
virtual void Welcome(void);
|
2011-11-28 16:23:57 +01:00
|
|
|
virtual cString ToText() const;
|
2009-02-13 11:39:20 +01:00
|
|
|
|
|
|
|
/* 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(); }
|
2011-11-28 16:23:57 +01:00
|
|
|
virtual bool Close(void);
|
2009-02-13 11:39:20 +01:00
|
|
|
|
|
|
|
virtual bool Abort(void) const;
|
|
|
|
};
|
|
|
|
|
|
|
|
inline bool cConnectionIGMP::Abort(void) const
|
|
|
|
{
|
2011-11-28 16:23:57 +01:00
|
|
|
return !IsOpen() || !m_LiveStreamer || m_LiveStreamer->Abort();
|
2009-02-13 11:39:20 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
#endif // VDR_STREAMDEV_SERVERS_CONNECTIONIGMP_H
|