mirror of
https://github.com/vdr-projects/vdr.git
synced 2025-03-01 10:50:46 +00:00
Original announce message: VDR developer version 1.7.24 is now available at ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.24.tar.bz2 A 'diff' against the previous version is available at ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.23-1.7.24.diff MD5 checksums: a034c5e399417dfc583483f650d003ee vdr-1.7.24.tar.bz2 aa1a2b202da92e65945ff39470b26618 vdr-1.7.23-1.7.24.diff WARNING: ======== This is a developer version. Even though I use it in my productive environment. I strongly recommend that you only use it under controlled conditions and for testing and debugging. From the HISTORY file: - Updated the Italian OSD texts (thanks to Diego Pierotto). - Fixed a high load in case a transponder can't be received. - Improved the way DVB_API_VERSION is checked. - Updated the Finnish OSD texts (thanks to Rolf Ahrenberg). - Fixed asserting there is a live programme if the primary device is bonded with a device that starts a recording on a different band. - Fixed the return type of cMyDeviceHook::DeviceProvidesTransponder() in PLUGINS.html. - Fixed a crash in a plugin using cDeviceHook when VDR ends (reported by Oliver Endriss). - Some improvements to the Makefiles (thanks to Christian Ruppert). - Fixed cRecording::LengthInSeconds(), which wrongfully rounded the result to full minutes (thanks to Christoph Haubrich). - Symbolic links are no longer resolved in cRecordings::ScanVideoDir() (thanks to Sundararaj Reel). - The epg.data file is now read in a separate thread to make the startup process faster in case the file is very large (suggested by Helmut Auer). - Fixed selecting the primary device for receiving the live viewing channel in case it is bonded with an other device and has no receiver attached to it. - Fixed a possible crash when canceling VDR while displaying subtitles, and the primary device is no longer available. - Improved handling subtitles of BBC channels. - No longer using tabs as delimiter in the EPG bugfix log (they were garbled in the log file). - Added a missing '.' after the month in VPS strings. - Added some missing 'const' to cDevice (thanks to Joachim Wilke). - Fixed handling the PrimaryLimit when requesting a device for live viewing (reported by Uwe Scheffler). - Removed superfluous calls to SetVideoFormat() from device constructors. This function is called in cDevice::SetPrimaryDevice(), anyway. - An ongoing editing process is now canceled if either the original or the edited version of the recording is deleted from the Recordings menu. - The SVDRP command DELR now won't delete a recording that is currently being edited. - Removed code stub for obsolete SVDRP command MOVT. - The DVB device adapters/frontends are now probed by scanning the /dev/dvb directory instead of looping through adapter/frontend numbers. This allows for "holes" in the device numbering. - cReadDir::Next() now skips directory entries "." and "..". - Fixed a possible deadlock in time shift mode. - Fixed switching into time shift mode when pausing live video (thanks to Reinhard Nissl for helping to debug this one).
96 lines
2.4 KiB
C++
96 lines
2.4 KiB
C++
/*
|
|
* 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 2.2 2012/02/16 12:37:53 kls Exp $
|
|
*/
|
|
|
|
#ifndef __SVDRP_H
|
|
#define __SVDRP_H
|
|
|
|
#include "recording.h"
|
|
#include "tools.h"
|
|
|
|
class cSocket {
|
|
private:
|
|
int port;
|
|
int sock;
|
|
int queue;
|
|
void Close(void);
|
|
public:
|
|
cSocket(int Port, int Queue = 1);
|
|
~cSocket();
|
|
bool Open(void);
|
|
int Accept(void);
|
|
};
|
|
|
|
class cPUTEhandler {
|
|
private:
|
|
FILE *f;
|
|
int status;
|
|
const char *message;
|
|
public:
|
|
cPUTEhandler(void);
|
|
~cPUTEhandler();
|
|
bool Process(const char *s);
|
|
int Status(void) { return status; }
|
|
const char *Message(void) { return message; }
|
|
};
|
|
|
|
class cSVDRP {
|
|
private:
|
|
cSocket socket;
|
|
cFile file;
|
|
cRecordings Recordings;
|
|
cPUTEhandler *PUTEhandler;
|
|
int numChars;
|
|
int length;
|
|
char *cmdLine;
|
|
time_t lastActivity;
|
|
static char *grabImageDir;
|
|
void Close(bool SendReply = false, bool Timeout = false);
|
|
bool Send(const char *s, int length = -1);
|
|
void Reply(int Code, const char *fmt, ...) __attribute__ ((format (printf, 3, 4)));
|
|
void PrintHelpTopics(const char **hp);
|
|
void CmdCHAN(const char *Option);
|
|
void CmdCLRE(const char *Option);
|
|
void CmdDELC(const char *Option);
|
|
void CmdDELR(const char *Option);
|
|
void CmdDELT(const char *Option);
|
|
void CmdEDIT(const char *Option);
|
|
void CmdGRAB(const char *Option);
|
|
void CmdHELP(const char *Option);
|
|
void CmdHITK(const char *Option);
|
|
void CmdLSTC(const char *Option);
|
|
void CmdLSTE(const char *Option);
|
|
void CmdLSTR(const char *Option);
|
|
void CmdLSTT(const char *Option);
|
|
void CmdMESG(const char *Option);
|
|
void CmdMODC(const char *Option);
|
|
void CmdMODT(const char *Option);
|
|
void CmdMOVC(const char *Option);
|
|
void CmdNEWC(const char *Option);
|
|
void CmdNEWT(const char *Option);
|
|
void CmdNEXT(const char *Option);
|
|
void CmdPLAY(const char *Option);
|
|
void CmdPLUG(const char *Option);
|
|
void CmdPUTE(const char *Option);
|
|
void CmdREMO(const char *Option);
|
|
void CmdSCAN(const char *Option);
|
|
void CmdSTAT(const char *Option);
|
|
void CmdUPDT(const char *Option);
|
|
void CmdUPDR(const char *Option);
|
|
void CmdVOLU(const char *Option);
|
|
void Execute(char *Cmd);
|
|
public:
|
|
cSVDRP(int Port);
|
|
~cSVDRP();
|
|
bool HasConnection(void) { return file.IsOpen(); }
|
|
bool Process(void);
|
|
static void SetGrabImageDir(const char *GrabImageDir);
|
|
};
|
|
|
|
#endif //__SVDRP_H
|