summaryrefslogtreecommitdiff
path: root/plugins/streamdev/streamdev-cvs/server/connectionVTP.h
diff options
context:
space:
mode:
authorkwacker <vdr@w-i-r.com>2010-04-11 13:46:11 +0200
committerkwacker <vdr@w-i-r.com>2010-04-11 13:46:11 +0200
commit9b144d30e0ea8ce900c37b96ba2cbdda14b0ae88 (patch)
tree3a52de029f950dcd9f9856a53fd67abef8519e68 /plugins/streamdev/streamdev-cvs/server/connectionVTP.h
parent9cd931834ecadbf5efefdf484abb966e9248ebbb (diff)
downloadx-vdr-9b144d30e0ea8ce900c37b96ba2cbdda14b0ae88.tar.gz
x-vdr-9b144d30e0ea8ce900c37b96ba2cbdda14b0ae88.tar.bz2
Burn 0.2.0-beta3 und Streamdev mit Paches aktualisiert
Diffstat (limited to 'plugins/streamdev/streamdev-cvs/server/connectionVTP.h')
-rw-r--r--plugins/streamdev/streamdev-cvs/server/connectionVTP.h93
1 files changed, 93 insertions, 0 deletions
diff --git a/plugins/streamdev/streamdev-cvs/server/connectionVTP.h b/plugins/streamdev/streamdev-cvs/server/connectionVTP.h
new file mode 100644
index 0000000..b938fe6
--- /dev/null
+++ b/plugins/streamdev/streamdev-cvs/server/connectionVTP.h
@@ -0,0 +1,93 @@
+#ifndef VDR_STREAMDEV_SERVERS_CONNECTIONVTP_H
+#define VDR_STREAMDEV_SERVERS_CONNECTIONVTP_H
+
+#include "server/connection.h"
+#include "server/recplayer.h"
+
+class cTBSocket;
+class cStreamdevLiveStreamer;
+class cStreamdevFilterStreamer;
+class cLSTEHandler;
+class cLSTCHandler;
+class cLSTTHandler;
+class cLSTRHandler;
+
+class cConnectionVTP: public cServerConnection {
+ friend class cLSTEHandler;
+#if !defined __GNUC__ || __GNUC__ >= 3
+ using cServerConnection::Respond;
+#endif
+
+private:
+ cTBSocket *m_LiveSocket;
+ cStreamdevLiveStreamer *m_LiveStreamer;
+ cTBSocket *m_FilterSocket;
+ cStreamdevFilterStreamer *m_FilterStreamer;
+ cTBSocket *m_RecSocket;
+ cTBSocket *m_DataSocket;
+
+ char *m_LastCommand;
+ eStreamType m_StreamType;
+ bool m_FiltersSupport;
+ RecPlayer *m_RecPlayer;
+
+ // Members adopted for SVDRP
+ cLSTEHandler *m_LSTEHandler;
+ cLSTCHandler *m_LSTCHandler;
+ cLSTTHandler *m_LSTTHandler;
+ cLSTRHandler *m_LSTRHandler;
+
+protected:
+ template<class cHandler>
+ bool CmdLSTX(cHandler *&Handler, char *Option);
+
+public:
+ cConnectionVTP(void);
+ virtual ~cConnectionVTP();
+
+ virtual void Welcome(void);
+ virtual void Reject(void);
+
+ virtual bool Abort(void) const;
+ virtual void Detach(void);
+ virtual void Attach(void);
+
+ virtual bool Command(char *Cmd);
+ bool CmdCAPS(char *Opts);
+ bool CmdPROV(char *Opts);
+ bool CmdPORT(char *Opts);
+ bool CmdREAD(char *Opts);
+ bool CmdTUNE(char *Opts);
+ bool CmdPLAY(char *Opts);
+ 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);
+
+ // Thread-safe implementations of SVDRP commands
+ bool CmdLSTE(char *Opts);
+ bool CmdLSTC(char *Opts);
+ bool CmdLSTT(char *Opts);
+ bool CmdLSTR(char *Opts);
+
+ // Commands adopted from SVDRP
+ bool CmdSTAT(const char *Option);
+ 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);
+
+ bool Respond(int Code, const char *Message, ...)
+ __attribute__ ((format (printf, 3, 4)));
+};
+
+#endif // VDR_STREAMDEV_SERVERS_CONNECTIONVTP_H