/* * svdrp.h: Simple Video Disk Recorder Protocol * * See the main source file 'vdr.c' for copyright information and * how to reach the author. * * $Id: svdrp.h 4.11 2018/03/15 16:30:29 kls Exp $ */ #ifndef __SVDRP_H #define __SVDRP_H #include "thread.h" #include "tools.h" enum eSvdrpPeerModes { spmOff = 0, spmAny = 1, spmOnly = 2, }; extern cStateKey StateKeySVDRPRemoteTimersPoll; ///< Controls whether a change to the local list of timers needs to result in ///< sending a POLL to the remote clients. void SetSVDRPPorts(int TcpPort, int UdpPort); void SetSVDRPGrabImageDir(const char *GrabImageDir); void StartSVDRPHandler(void); void StopSVDRPHandler(void); bool GetSVDRPServerNames(cStringList *ServerNames); ///< Gets a list of all available VDRs this VDR is connected to via SVDRP, ///< and stores it in the given ServerNames list. The list is cleared ///< before getting the server names. ///< Returns true if the resulting list is not empty. bool ExecSVDRPCommand(const char *ServerName, const char *Command, cStringList *Response = NULL); ///< Sends the given SVDRP Command string to the remote VDR identified ///< by ServerName and collects all of the response strings in Response. ///< If no Response parameter is given, the response from command execution ///< is ignored. ///< Returns true if the data exchange was successful. Whether or ///< not the actual SVDRP command was successful depends on the ///< resulting strings from the remote VDR, which can be accessed ///< through Response. If Response is given, it will be cleared before ///< the command is actually executed. void BroadcastSVDRPCommand(const char *Command); ///< Sends the given SVDRP Command string to all remote VDRs. inline int SVDRPCode(const char *s) { return s ? atoi(s) : 0; } ///< Returns the value of the three digit reply code of the given ///< SVDRP response string. inline const char *SVDRPValue(const char *s) { return s && s[0] && s[1] && s[2] && s[3] ? s + 4 : NULL; } ///< Returns the actual value of the given SVDRP response string, skipping ///< the three digit reply code and possible continuation line indicator. #endif //__SVDRP_H