vdr-plugin-streamdev/server/connectionVTP.h

104 lines
2.7 KiB
C
Raw Normal View History

2004-12-30 23:43:55 +01:00
#ifndef VDR_STREAMDEV_SERVERS_CONNECTIONVTP_H
#define VDR_STREAMDEV_SERVERS_CONNECTIONVTP_H
#include "server/connection.h"
#include "server/recplayer.h"
2004-12-30 23:43:55 +01:00
class cTBSocket;
class cStreamdevFilterStreamer;
2005-05-09 22:22:29 +02:00
class cLSTEHandler;
class cLSTCHandler;
class cLSTTHandler;
class cLSTRHandler;
2004-12-30 23:43:55 +01:00
class cConnectionVTP: public cServerConnection {
2005-05-09 22:22:29 +02:00
friend class cLSTEHandler;
#if !defined __GNUC__ || __GNUC__ >= 3
using cServerConnection::Respond;
#endif
2005-05-09 22:22:29 +02:00
2004-12-30 23:43:55 +01:00
private:
cTBSocket *m_LiveSocket;
cTBSocket *m_FilterSocket;
cStreamdevFilterStreamer *m_FilterStreamer;
cTBSocket *m_RecSocket;
cTBSocket *m_DataSocket;
2004-12-30 23:43:55 +01:00
2005-05-09 22:22:29 +02:00
char *m_LastCommand;
eStreamType m_StreamType;
unsigned int m_ClientVersion;
bool m_FiltersSupport;
bool m_LoopPrevention;
RecPlayer *m_RecPlayer;
2005-05-09 22:22:29 +02:00
2010-12-02 09:57:17 +01:00
// Priority is only known in PROV command
// Store in here for later use in TUNE call
const cChannel *m_TuneChannel;
int m_TunePriority;
2005-05-09 22:22:29 +02:00
// Members adopted for SVDRP
cLSTEHandler *m_LSTEHandler;
cLSTCHandler *m_LSTCHandler;
cLSTTHandler *m_LSTTHandler;
cLSTRHandler *m_LSTRHandler;
2005-05-09 22:22:29 +02:00
protected:
template<class cHandler>
bool CmdLSTX(cHandler *&Handler, char *Option);
2004-12-30 23:43:55 +01:00
public:
cConnectionVTP(void);
virtual ~cConnectionVTP();
virtual void Welcome(void);
virtual void Reject(void);
virtual cString ToText(char Delimiter = ' ') const;
virtual bool Abort(void) const;
2004-12-30 23:43:55 +01:00
virtual void Detach(void);
virtual void Attach(void);
2005-05-09 22:22:29 +02:00
virtual bool Command(char *Cmd);
2004-12-30 23:43:55 +01:00
bool CmdCAPS(char *Opts);
bool CmdVERS(char *Opts);
2004-12-30 23:43:55 +01:00
bool CmdPROV(char *Opts);
bool CmdPORT(char *Opts);
bool CmdREAD(char *Opts);
2004-12-30 23:43:55 +01:00
bool CmdTUNE(char *Opts);
bool CmdPLAY(char *Opts);
2010-12-02 09:57:17 +01:00
bool CmdPRIO(char *Opts);
bool CmdSGNL(char *Opts);
2004-12-30 23:43:55 +01:00
bool CmdADDP(char *Opts);
bool CmdDELP(char *Opts);
bool CmdADDF(char *Opts);
bool CmdDELF(char *Opts);
bool CmdABRT(char *Opts);
bool CmdQUIT(void);
bool CmdSUSP(void);
2004-12-30 23:43:55 +01:00
2005-05-09 22:22:29 +02:00
// Thread-safe implementations of SVDRP commands
2004-12-30 23:43:55 +01:00
bool CmdLSTE(char *Opts);
2005-05-09 22:22:29 +02:00
bool CmdLSTC(char *Opts);
2004-12-30 23:43:55 +01:00
bool CmdLSTT(char *Opts);
bool CmdLSTR(char *Opts);
2004-12-30 23:43:55 +01:00
2005-05-09 22:22:29 +02:00
// Commands adopted from SVDRP
bool CmdSTAT(const char *Option);
2005-05-09 22:22:29 +02:00
bool CmdMODT(const char *Option);
bool CmdNEWT(const char *Option);
bool CmdDELT(const char *Option);
bool CmdNEXT(const char *Option);
bool CmdNEWC(const char *Option);
bool CmdMODC(const char *Option);
bool CmdMOVC(const char *Option);
bool CmdDELC(const char *Option);
bool CmdDELR(const char *Option);
bool CmdRENR(const char *Option);
2005-05-09 22:22:29 +02:00
bool Respond(int Code, const char *Message, ...)
__attribute__ ((format (printf, 3, 4)));
2004-12-30 23:43:55 +01:00
};
#endif // VDR_STREAMDEV_SERVERS_CONNECTIONVTP_H