diff options
author | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2005-11-27 18:00:00 +0100 |
---|---|---|
committer | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2005-11-27 18:00:00 +0100 |
commit | 8c63e0fd967a7ac037872ca5af378dc92f0410fa (patch) | |
tree | 7f9632af6990a149944b0bb113ee7fac102e99d9 /svdrp.c | |
parent | 812ab9018c7be7feb901eface4c6431b483ca9ec (diff) | |
download | vdr-patch-lnbsharing-8c63e0fd967a7ac037872ca5af378dc92f0410fa.tar.gz vdr-patch-lnbsharing-8c63e0fd967a7ac037872ca5af378dc92f0410fa.tar.bz2 |
Version 1.3.37vdr-1.3.37
- Added compiler options "-fPIC -g" to all plugins (thanks to Rolf Ahrenberg).
- Fixed initializing the day index when editing the weekday parameter of a
repeating timer (thanks to Marco Schlüßler).
- No longer removing superfluous hyphens in EPG data - would become too
language dependent to handle all kinds of exceptions.
- Modified switching to Dolby Digital audio in live mode, if the driver
and firmware can handle live DD without the need of a Transfer Mode (thanks
to Werner Fink). Live DD mode requires a full featured DVB card and a
LinuxDVB driver with firmware version 0x2622 or higher. Older versions will
use Transfer Mode just like before.
- Implemented handling of the "CA PMT Reply" for CAMs (thanks to Marco
Schlüßler for figuring out some obscure length bytes in the CA PMT Reply
data of AlphaCrypt CAMs).
- Some preparations for being able to record several encrypted channels from
the same transponder at the same time (or record and view different encrypted
channels), provided the CAM in use can handle this. This is work in progress
and isn't actively used, yet.
- Fixed SetProgress() in the 'skincurses' plugin in case Total is 0 (reported
by Stefan Huelswitt).
- Added a copy constructor to cString and fixed its assignment operator
(thanks to Holger Brunn).
- The new function Skins.QueueMessage() can be called from a background thread
to queue a message for display. See VDR/skins.h for details.
- The SVDRP command MESG uses the new message queueing facility, so MESG
commands may now be executed at any time, and the message will be displayed
(no more "pending message").
Diffstat (limited to 'svdrp.c')
-rw-r--r-- | svdrp.c | 32 |
1 files changed, 9 insertions, 23 deletions
@@ -10,7 +10,7 @@ * and interact with the Video Disk Recorder - or write a full featured * graphical interface that sits on top of an SVDRP connection. * - * $Id: svdrp.c 1.83 2005/11/05 11:21:38 kls Exp $ + * $Id: svdrp.c 1.84 2005/11/27 15:29:28 kls Exp $ */ #include "svdrp.h" @@ -35,6 +35,7 @@ #include "menu.h" #include "plugin.h" #include "remote.h" +#include "skins.h" #include "timers.h" #include "tools.h" #include "videodir.h" @@ -225,12 +226,9 @@ const char *HelpPages[] = { "LSTT [ <number> ]\n" " List timers. Without option, all timers are listed. Otherwise\n" " only the given timer is listed.", - "MESG [ <message> ]\n" - " Displays the given message on the OSD. If message is omitted, the\n" - " currently pending message (if any) will be returned. The message\n" - " will be displayed for a few seconds as soon as the OSD has become\n" - " idle. If a new MESG command is entered while the previous message\n" - " has not yet been displayed, the old message will be overwritten.", + "MESG <message>\n" + " Displays the given message on the OSD. The message will be queued\n" + " and displayed whenever this is suitable.\n", "MODC <number> <settings>\n" " Modify a channel. Settings must be in the same format as returned\n" " by the LSTC command.", @@ -363,7 +361,6 @@ cSVDRP::cSVDRP(int Port) numChars = 0; length = BUFSIZ; cmdLine = MALLOC(char, length); - message = NULL; lastActivity = 0; isyslog("SVDRP listening on port %d", Port); } @@ -371,7 +368,6 @@ cSVDRP::cSVDRP(int Port) cSVDRP::~cSVDRP() { Close(); - free(message); free(cmdLine); } @@ -954,15 +950,12 @@ void cSVDRP::CmdLSTT(const char *Option) void cSVDRP::CmdMESG(const char *Option) { if (*Option) { - free(message); - message = strdup(Option); - isyslog("SVDRP message: '%s'", message); - Reply(250, "Message stored"); + isyslog("SVDRP message: '%s'", Option); + Skins.QueueMessage(mtInfo, Option); + Reply(250, "Message queued"); } - else if (message) - Reply(250, "%s", message); else - Reply(550, "No pending message"); + Reply(501, "Missing message"); } void cSVDRP::CmdMODC(const char *Option) @@ -1489,11 +1482,4 @@ bool cSVDRP::Process(void) return false; } -char *cSVDRP::GetMessage(void) -{ - char *s = message; - message = NULL; - return s; -} - //TODO more than one connection??? |