diff options
Diffstat (limited to 'frontend_svr.h')
-rw-r--r-- | frontend_svr.h | 140 |
1 files changed, 0 insertions, 140 deletions
diff --git a/frontend_svr.h b/frontend_svr.h deleted file mode 100644 index 1c657f42..00000000 --- a/frontend_svr.h +++ /dev/null @@ -1,140 +0,0 @@ -/* - * frontend_svr.h: server for remote frontends - * - * See the main source file 'xineliboutput.c' for copyright information and - * how to reach the author. - * - * $Id: frontend_svr.h,v 1.24 2009-08-18 12:30:34 phintuka Exp $ - * - */ - -#ifndef __XINELIB_FRONTEND_SVR_H -#define __XINELIB_FRONTEND_SVR_H - - -#include "config.h" -#include "frontend.h" - -//----------------------------- cXinelibServer -------------------------------- - -#define CTRL_BUF_SIZE 1024 - -class cBackgroundWriterI; -class cUdpScheduler; -class cStcFuture; -class cCmdFutures; -class cConnState; - -#include "tools/cxsocket.h" - -class cXinelibServer : public cXinelibThread -{ - - public: - cXinelibServer(int listen_port); - virtual ~cXinelibServer(); - - protected: - virtual void Action(void); - - public: - // Playback control - virtual void TrickSpeed(int Speed); - - // Data transfer - virtual int Poll(cPoller &Poller, int TimeoutMs); - virtual bool Flush(int TimeoutMs); - virtual void Clear(void); - virtual int Play_PES(const uchar *buf, int len); - virtual void OsdCmd(void *cmd); - virtual int64_t GetSTC(); - virtual void SetHDMode(bool On); - - // Image grabbing - virtual uchar *GrabImage(int &Size, bool Jpeg, int Quality, - int SizeX, int SizeY); - // Playback files - virtual int PlayFileCtrl(const char *Cmd, int TimeoutMs=-1); - virtual bool EndOfStreamReached(void); - - // Configuration - virtual bool Listen(int port); - -protected: - // Playback control - virtual int Xine_Control(const char *cmd); - virtual int Xine_Control_Sync(const char *cmd); - -protected: - - // Handling of messages from client(s) - - void Handle_Discovery_Broadcast(void); - void Handle_ClientConnected(int fd); - - void Read_Control(int cli); - void Handle_Control(int cli, const char *cmd); - - void Handle_Control_PIPE (int cli, const char *arg); - void Handle_Control_RTP (int cli, const char *arg); - void Handle_Control_UDP (int cli, const char *arg); - void Handle_Control_DATA (int cli, const char *arg); - void Handle_Control_KEY (int cli, const char *arg); - void Handle_Control_UDP_RESEND(int cli, const char *arg); - void Handle_Control_CONFIG (int cli); - void Handle_Control_GRAB (int cli, const char *arg); - void Handle_Control_CONTROL (int cli, const char *arg); - void Handle_Control_HTTP (int cli, const char *arg); - void Handle_Control_RTSP (int cli, const char *arg); - - void CloseDataConnection(int cli); - void CloseConnection (int cli); - -protected: - - // Data - - int m_Port; - int m_ServerId; - - int fd_listen; - int fd_discovery; - - cxSocket fd_control[MAXCLIENTS]; - int fd_data [MAXCLIENTS]; - - int m_OsdTimeouts[MAXCLIENTS]; - char m_CtrlBuf [MAXCLIENTS][CTRL_BUF_SIZE + 1]; - int m_CtrlBufPos [MAXCLIENTS]; - - int m_ConnType [MAXCLIENTS]; // Control connection type. See frontend_svr.c. - bool m_bUdp [MAXCLIENTS]; // Client uses UDP transport - bool m_bMulticast [MAXCLIENTS]; // Client uses multicast RTP - bool m_bConfigOk [MAXCLIENTS]; // Client has been configured - int m_iMulticastMask; // bit [cli] is 1 or 0. 1 == multicast in use. - int m_MasterCli; // Master client (controls playback speed) - - cString m_PipesDir; - - cBackgroundWriterI *m_Writer[MAXCLIENTS]; // buffered output (pipe/tcp/http) - cConnState *m_State[MAXCLIENTS]; // connection state (http/rtsp) - cUdpScheduler *m_Scheduler; - bool m_Master; - - // Storage for return values of pending RPCs - cStcFuture *m_StcFuture; - cCmdFutures *m_Futures; - - int m_Token; - int AllocToken(void); - bool HasClients(void); - - // Cache current PAT/PMT for new clients - uchar *m_Header; - size_t m_HeaderLength; // bytes used - size_t m_HeaderSize; // bytes allocated - public: - void SetHeader(const uchar *Data, int Length, bool Reset = false); -}; - -#endif // __XINELIB_FRONTEND_SVR_H |