summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <kls (at) cadsoft (dot) de>2006-12-03 18:00:00 +0100
committerKlaus Schmidinger <kls (at) cadsoft (dot) de>2006-12-03 18:00:00 +0100
commit287cd613a1d5d08fb56e107460473132d23e3ca0 (patch)
treee435c0a89775a14016f8f5d1043f30d06de210bf
parentbc67a03157def5c4d8d0f3c7b38351f2aeb397ee (diff)
downloadvdr-patch-lnbsharing-287cd613a1d5d08fb56e107460473132d23e3ca0.tar.gz
vdr-patch-lnbsharing-287cd613a1d5d08fb56e107460473132d23e3ca0.tar.bz2
Version 1.4.4-1vdr-1.4.4-1
- Some improvements to the man pages (thanks to Ville Skyttä). - Fixed a possible segfault in cSkins::Message() (thanks to Udo Richter). - Made the getskyepg.pl script of the 'sky' plugin send a user agent message to the server, according to the rules at http://bleb.org/tv/data/listings. If your version of 'wget' doesn't support the -U option to set the user agent, use the new option -U of getskyepg.pl to have the information added to the URL as a query string. - The getskyepg.pl script now replaces "&amp;" with "&". - Fixed a possible crash in remux.c on 64-bit machines (thanks to Reinhard Nissl). - Fixed a typo in the change to the "Use small font" setup option in version 1.3.47 in the HISTORY and CONTRIBUTORS file (reported by Andreas Brugger). - Added a missing 'const' to cRecordingInfo::ChannelID() (reported by Andreas Brugger). This required the APIVERSION to be increased, so plugins will have to be recompiled. - Now calling cPluginManager::Active() only if VDR is really trying to shut down, and waiting for 5 minutes before calling it again (thanks to Jörg Wendel for reporting that cPlugin::Active() was called too often, and to Udo Richter for some hints on how to improve this). - Replaced 'unsigned long' with 'uint32_t' and 'uint64' with 'uint64_t' to avoid problems on 64-bit machines.
-rw-r--r--CONTRIBUTORS12
-rw-r--r--HISTORY25
-rw-r--r--PLUGINS/src/sky/HISTORY9
-rwxr-xr-xPLUGINS/src/sky/getskyepg.pl28
-rw-r--r--config.h8
-rw-r--r--font.h4
-rw-r--r--menu.c4
-rw-r--r--rcu.c8
-rw-r--r--recording.h4
-rw-r--r--remote.c16
-rw-r--r--remote.h10
-rw-r--r--remux.c6
-rw-r--r--skins.c7
-rw-r--r--tools.c8
-rw-r--r--tools.h10
-rw-r--r--vdr.114
-rw-r--r--vdr.58
-rw-r--r--vdr.c8
18 files changed, 130 insertions, 59 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index c834f0a..2a9ee3d 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -1113,6 +1113,7 @@ Reinhard Nissl <rnissl@gmx.de>
for implementing cDevice::ForceTransferMode()
for changing the behaviour when hitting the end of a recording in fast forward mode
for suggesting to give the cRemote::CallPlugin() function a boolean return value
+ for fixing a possible crash in remux.c on 64-bit machines
Richard Robson <richard_robson@beeb.net>
for reporting freezing replay if a timer starts while in Transfer Mode from the
@@ -1474,6 +1475,8 @@ Udo Richter <udo_richter@gmx.de>
for reporting that an assignment in svdrp.c didn't use the cTimer::operator=())
for suggesting that the function cThread::Cancel() should only set 'running' to
false and not actually kill the thread if the special value -1 is given
+ or fixing a possible segfault in cSkins::Message()
+ for some hints on how to improve handling cPluginManager::Active()
Sven Kreiensen <svenk@kammer.uni-hannover.de>
for his help in keeping 'channels.conf.terr' up to date
@@ -1521,6 +1524,9 @@ Andreas Brugger <brougs78@gmx.net>
cStatus::Replaying(), so that they can provide the full file name of the recording
for suggesting that externally provided EPG data (with table ID 0x00) shall get its
component descriptors set from the broadcast data
+ for reporting a typo in the change to the "Use small font" setup option in version
+ 1.3.47 in the HISTORY and CONTRIBUTORS file
+ for reporting a missing 'const' in cRecordingInfo::ChannelID()
Dino Ravnic <dino.ravnic@fer.hr>
for fixing some characters in the iso8859-2 font file
@@ -1638,6 +1644,7 @@ Ville Skyttä <ville.skytta@iki.fi>
for fixing converting the port number in the "connect from..." log message of SVDRP
for reporting that there are places where ntohs() is assigned to different types
for adapting cThread::ThreadId() to recent kernels
+ for some improvements to the man pages
Steffen Beyer <cpunk@reactor.de>
for fixing setting the colored button help after deleting a recording in case the next
@@ -1903,7 +1910,7 @@ Suur Karu <suurkaru@fastmail.fm>
Ronny Kornexl <ronny.kornexl@online.de>
for reporting a problem with setting "No title" for broken event data
for suggesting to make the "Use small font" setup option *always* use the small
- font if set to '3' - even if it would have been a fixed font
+ font if set to '2' - even if it would have been a fixed font
for reporting a bug in initializing 'noapiv' in the Makefile
Vladimír Bárta <vladimir.barta@k2atmitec.cz>
@@ -2032,3 +2039,6 @@ Boguslaw Juza <bogdan@uci.agh.edu.pl>
Ulf Kiener <webmaster@ulf-kiener.de>
for reporting a problem with audio track descriptions in the DVD plugin after a
replay has been stopped
+
+Jörg Wendel <vdr-ml@jwendel.de>
+ for reporting that cPlugin::Active() was called too often
diff --git a/HISTORY b/HISTORY
index f46e5f9..baa53de 100644
--- a/HISTORY
+++ b/HISTORY
@@ -4611,7 +4611,7 @@ Video Disk Recorder Revision History
(since version 1.3.38 disk access is done in a separate thread, so the watchdog
timer won't hit).
- Changed the behaviour of the "Use small font" setup option to *always* use the small
- font if set to '3' - even if it would have been a fixed font (suggested by Ronny
+ font if set to '2' - even if it would have been a fixed font (suggested by Ronny
Kornexl).
- No longer using characters 0x01 and 0x02 for mapping single quote and slash in
recording names (thanks to Patrick Fischer for reporting that this was a problem
@@ -4985,3 +4985,26 @@ Video Disk Recorder Revision History
- Fixed displaying the replay mode symbol in case of "Multi speed mode" (reported
by Marco Schlüßler).
+
+2006-12-03: Version 1.4.4-1
+
+- Some improvements to the man pages (thanks to Ville Skyttä).
+- Fixed a possible segfault in cSkins::Message() (thanks to Udo Richter).
+- Made the getskyepg.pl script of the 'sky' plugin send a user agent message to
+ the server, according to the rules at http://bleb.org/tv/data/listings.
+ If your version of 'wget' doesn't support the -U option to set the user agent,
+ use the new option -U of getskyepg.pl to have the information added to the URL
+ as a query string.
+- The getskyepg.pl script now replaces "&amp;" with "&".
+- Fixed a possible crash in remux.c on 64-bit machines (thanks to Reinhard Nissl).
+- Fixed a typo in the change to the "Use small font" setup option in version 1.3.47
+ in the HISTORY and CONTRIBUTORS file (reported by Andreas Brugger).
+- Added a missing 'const' to cRecordingInfo::ChannelID() (reported by Andreas
+ Brugger). This required the APIVERSION to be increased, so plugins will have to
+ be recompiled.
+- Now calling cPluginManager::Active() only if VDR is really trying to shut down,
+ and waiting for 5 minutes before calling it again (thanks to Jörg Wendel for
+ reporting that cPlugin::Active() was called too often, and to Udo Richter for
+ some hints on how to improve this).
+- Replaced 'unsigned long long' with 'uint32_t' and 'uint64' with 'uint64_t' to
+ avoid problems on 64-bit machines.
diff --git a/PLUGINS/src/sky/HISTORY b/PLUGINS/src/sky/HISTORY
index 45774f1..3233bf6 100644
--- a/PLUGINS/src/sky/HISTORY
+++ b/PLUGINS/src/sky/HISTORY
@@ -45,3 +45,12 @@ VDR Plugin 'sky' Revision History
2006-03-26: Version 0.3.5
- Fixed format string handling.
+
+2006-12-02: Version 0.3.5 (version number not increased)
+
+- Made the getskyepg.pl script send a user agent message to
+ the server, according to the rules at http://bleb.org/tv/data/listings.
+ If your version of 'wget' doesn't support the -U option to set the user agent,
+ use the new option -U of getskyepg.pl to have the information added to the URL
+ as a query string.
+- The getskyepg.pl script now replaces "&amp;" with "&".
diff --git a/PLUGINS/src/sky/getskyepg.pl b/PLUGINS/src/sky/getskyepg.pl
index 26dbc0a..6388caa 100755
--- a/PLUGINS/src/sky/getskyepg.pl
+++ b/PLUGINS/src/sky/getskyepg.pl
@@ -8,7 +8,7 @@
#
# See the README file for copyright information and how to reach the author.
#
-# $Id: getskyepg.pl 1.4 2006/01/08 10:21:32 kls Exp $
+# $Id: getskyepg.pl 1.6 2006/12/02 09:52:49 kls Exp $
use Getopt::Std;
use Time::Local;
@@ -21,18 +21,29 @@ Options: -c filename channel config file name (default: channels.conf.sky
-p port SVDRP port number (default: 2001)
-S source channel source (default: S28.2E)
-D days days to get EPG for (1..7, default: 2)
+ -U use this if your version of 'wget' doesn't support -U
};
-die $Usage if (!getopts("c:d:D:hp:S:") || $opt_h);
+die $Usage if (!getopts("c:d:D:hp:S:U") || $opt_h);
$Conf = $opt_c || "channels.conf.sky";
$Dest = $opt_d || "localhost";
$Port = $opt_p || 2001;
$Source = $opt_S || "S28.2E";
$Days = $opt_D || 2;
+$User = $opt_U;
+
+# See "Rules for using this data" on http://bleb.org/tv/data/listings.
+# In case you modify this script in a way that changes its behavior
+# towards the www.bleb.org website, please replace 'vdrbugs@cadsoft.de'
+# with your own email address! That way Andrew Flegg <andrew@bleb.org>,
+# who runs that web site, can contact you in case of problems.
+$IDENT = "VDR::getskyepg.pl, http://www.cadsoft.de/vdr - vdrbugs\@cadsoft.de";
+$GAP = 2;
$SkyWebPage = "www.bleb.org/tv/data/listings";
$WGET = "/usr/bin/wget -q -O-";
+$WGET .= " -U '$IDENT'" unless $User;
$LOGGER = "/usr/bin/logger -t SKYEPG";
$DST = -3600; # Daylight Saving Time offset
@@ -76,13 +87,21 @@ sub GetPage
my $channel = shift;
my $day = shift;
$day--;
- my $url = "$SkyWebPage/$day/$channel.xml";
+ my $url = "http://$SkyWebPage/$day/$channel.xml";
+ $url .= "?$IDENT" if $User;
Log("reading $url");
my @page = split("\n", `$WGET '$url'`);
Log("received " . ($#page + 1) . " lines");
return @page;
}
+sub ReplaceTags
+{
+ my $s = shift;
+ $s =~ s/&amp;/&/g;
+ return $s;
+}
+
sub StripWhitespace
{
my $s = shift;
@@ -96,7 +115,7 @@ sub Extract
my $s = shift;
my $t = shift;
$s =~ /<$t>([^<]*)<\/$t>/;
- return StripWhitespace($1);
+ return ReplaceTags(StripWhitespace($1));
}
# In order to get the duration we need to buffer the last event:
@@ -174,6 +193,7 @@ sub GetEpgData
$data .= $line;
}
}
+ sleep($GAP);
}
SVDRPsend("c");
Log("generated $numEvents EPG events");
diff --git a/config.h b/config.h
index 3d0e2a0..5da7b68 100644
--- a/config.h
+++ b/config.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: config.h 1.277 2006/11/04 13:19:31 kls Exp $
+ * $Id: config.h 1.279 2006/12/01 15:08:43 kls Exp $
*/
#ifndef __CONFIG_H
@@ -21,13 +21,13 @@
// VDR's own version number:
-#define VDRVERSION "1.4.4"
+#define VDRVERSION "1.4.4-1"
#define VDRVERSNUM 10404 // Version * 10000 + Major * 100 + Minor
// The plugin API's version number:
-#define APIVERSION "1.4.4"
-#define APIVERSNUM 10404 // Version * 10000 + Major * 100 + Minor
+#define APIVERSION "1.4.5"
+#define APIVERSNUM 10405 // Version * 10000 + Major * 100 + Minor
// When loading plugins, VDR searches them by their APIVERSION, which
// may be smaller than VDRVERSION in case there have been no changes to
diff --git a/font.h b/font.h
index 2a10429..3a3ece4 100644
--- a/font.h
+++ b/font.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: font.h 1.12 2006/02/05 13:46:36 kls Exp $
+ * $Id: font.h 1.13 2006/12/02 11:11:48 kls Exp $
*/
#ifndef __FONT_H
@@ -32,7 +32,7 @@ enum eDvbCode {
class cFont {
public:
enum { NUMCHARS = 256 };
- typedef unsigned long tPixelData;
+ typedef uint32_t tPixelData;
struct tCharData {
tPixelData width, height;
tPixelData lines[1];
diff --git a/menu.c b/menu.c
index 870216b..10a3b26 100644
--- a/menu.c
+++ b/menu.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: menu.c 1.445 2006/11/04 13:13:18 kls Exp $
+ * $Id: menu.c 1.446 2006/12/02 11:12:02 kls Exp $
*/
#include "menu.h"
@@ -3280,7 +3280,7 @@ eOSState cDisplayChannel::ProcessKey(eKeys Key)
return osEnd;
}
};
- if (!timeout || lastTime.Elapsed() < (uint64)(Setup.ChannelInfoTime * 1000)) {
+ if (!timeout || lastTime.Elapsed() < (uint64_t)(Setup.ChannelInfoTime * 1000)) {
if (Key == kNone && !number && group < 0 && !NewChannel && channel && channel->Number() != cDevice::CurrentChannel()) {
// makes sure a channel switch through the SVDRP CHAN command is displayed
channel = Channels.GetByNumber(cDevice::CurrentChannel());
diff --git a/rcu.c b/rcu.c
index 39211bb..d81c0b6 100644
--- a/rcu.c
+++ b/rcu.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: rcu.c 1.14 2006/06/16 09:29:24 kls Exp $
+ * $Id: rcu.c 1.15 2006/12/02 11:12:28 kls Exp $
*/
#include "rcu.h"
@@ -97,7 +97,7 @@ void cRcuRemote::Action(void)
time_t LastCodeRefresh = 0;
cTimeMs FirstTime;
unsigned char LastCode = 0, LastMode = 0;
- uint64 LastCommand = ~0; // 0x00 might be a valid command
+ uint64_t LastCommand = ~0; // 0x00 might be a valid command
unsigned int LastData = 0;
bool repeat = false;
@@ -109,13 +109,13 @@ void cRcuRemote::Action(void)
buffer.raw[i] = b;
if (i == 5) {
unsigned short Address = ntohs(buffer.data.address); // the PIC sends bytes in "network order"
- uint64 Command = ntohl(buffer.data.command);
+ uint64_t Command = ntohl(buffer.data.command);
if (code == 'B' && Address == 0x0000 && Command == 0x00004000)
// Well, well, if it isn't the "d-box"...
// This remote control sends the above command before and after
// each keypress - let's just drop this:
break;
- Command |= uint64(Address) << 32;
+ Command |= uint64_t(Address) << 32;
if (Command != LastCommand) {
LastCommand = Command;
repeat = false;
diff --git a/recording.h b/recording.h
index def351f..f9db505 100644
--- a/recording.h
+++ b/recording.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: recording.h 1.55 2006/07/30 10:24:07 kls Exp $
+ * $Id: recording.h 1.56 2006/12/01 15:06:07 kls Exp $
*/
#ifndef __RECORDING_H
@@ -50,7 +50,7 @@ private:
void SetAux(const char *Aux);
public:
~cRecordingInfo();
- tChannelID ChannelID(void) { return channelID; }
+ tChannelID ChannelID(void) const { return channelID; }
const char *Title(void) const { return event->Title(); }
const char *ShortText(void) const { return event->ShortText(); }
const char *Description(void) const { return event->Description(); }
diff --git a/remote.c b/remote.c
index 112f6c1..fa34184 100644
--- a/remote.c
+++ b/remote.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: remote.c 1.54 2006/10/14 11:05:57 kls Exp $
+ * $Id: remote.c 1.55 2006/12/02 11:12:42 kls Exp $
*/
#include "remote.h"
@@ -116,7 +116,7 @@ bool cRemote::PutMacro(eKeys Key)
return true;
}
-bool cRemote::Put(uint64 Code, bool Repeat, bool Release)
+bool cRemote::Put(uint64_t Code, bool Repeat, bool Release)
{
char buffer[32];
snprintf(buffer, sizeof(buffer), "%016LX", Code);
@@ -203,7 +203,7 @@ cRemotes Remotes;
struct tKbdMap {
eKbdFunc func;
- uint64 code;
+ uint64_t code;
};
static tKbdMap KbdMap[] = {
@@ -264,7 +264,7 @@ void cKbdRemote::SetRawMode(bool RawMode)
rawMode = RawMode;
}
-uint64 cKbdRemote::MapFuncToCode(int Func)
+uint64_t cKbdRemote::MapFuncToCode(int Func)
{
for (tKbdMap *p = KbdMap; p->func != kfNone; p++) {
if (p->func == Func)
@@ -273,7 +273,7 @@ uint64 cKbdRemote::MapFuncToCode(int Func)
return (Func <= 0xFF) ? Func : 0;
}
-int cKbdRemote::MapCodeToFunc(uint64 Code)
+int cKbdRemote::MapCodeToFunc(uint64_t Code)
{
for (tKbdMap *p = KbdMap; p->func != kfNone; p++) {
if (p->code == Code)
@@ -296,9 +296,9 @@ int cKbdRemote::ReadKey(void)
return -1;
}
-uint64 cKbdRemote::ReadKeySequence(void)
+uint64_t cKbdRemote::ReadKeySequence(void)
{
- uint64 k = 0;
+ uint64_t k = 0;
int key1;
if ((key1 = ReadKey()) >= 0) {
@@ -342,7 +342,7 @@ uint64 cKbdRemote::ReadKeySequence(void)
void cKbdRemote::Action(void)
{
while (Running()) {
- uint64 Command = ReadKeySequence();
+ uint64_t Command = ReadKeySequence();
if (Command) {
if (rawMode || !Put(Command)) {
int func = MapCodeToFunc(Command);
diff --git a/remote.h b/remote.h
index 4477666..03be528 100644
--- a/remote.h
+++ b/remote.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: remote.h 1.37 2006/10/14 11:46:58 kls Exp $
+ * $Id: remote.h 1.38 2006/12/02 11:12:49 kls Exp $
*/
#ifndef __REMOTE_H
@@ -35,7 +35,7 @@ protected:
cRemote(const char *Name);
const char *GetSetup(void);
void PutSetup(const char *Setup);
- bool Put(uint64 Code, bool Repeat = false, bool Release = false);
+ bool Put(uint64_t Code, bool Repeat = false, bool Release = false);
bool Put(const char *Code, bool Repeat = false, bool Release = false);
public:
virtual ~cRemote();
@@ -100,13 +100,13 @@ private:
struct termios savedTm;
virtual void Action(void);
int ReadKey(void);
- uint64 ReadKeySequence(void);
- int MapCodeToFunc(uint64 Code);
+ uint64_t ReadKeySequence(void);
+ int MapCodeToFunc(uint64_t Code);
public:
cKbdRemote(void);
virtual ~cKbdRemote();
static bool KbdAvailable(void) { return kbdAvailable; }
- static uint64 MapFuncToCode(int Func);
+ static uint64_t MapFuncToCode(int Func);
static void SetRawMode(bool RawMode);
};
diff --git a/remux.c b/remux.c
index 2d1b741..da805b7 100644
--- a/remux.c
+++ b/remux.c
@@ -11,7 +11,7 @@
* The cRepacker family's code was originally written by Reinhard Nissl <rnissl@gmx.de>,
* and adapted to the VDR coding style by Klaus.Schmidinger@cadsoft.de.
*
- * $Id: remux.c 1.56 2006/04/17 12:48:12 kls Exp $
+ * $Id: remux.c 1.57 2006/12/01 14:46:25 kls Exp $
*/
#include "remux.h"
@@ -389,7 +389,7 @@ bool cVideoRepacker::ScanDataForStartCodeFast(const uchar *&Data, const uchar *L
}
Data = Limit;
- unsigned long *Scanner = (unsigned long *)(Data - 3);
+ uint32_t *Scanner = (uint32_t *)(Data - 3);
scanner = ntohl(*Scanner);
return false;
}
@@ -615,7 +615,7 @@ bool cVideoRepacker::ScanForEndOfPictureFast(const uchar *&Data, const uchar *Li
}
Data = Limit + 1;
- unsigned long *LocalScanner = (unsigned long *)(Data - 4);
+ uint32_t *LocalScanner = (uint32_t *)(Data - 4);
localScanner = ntohl(*LocalScanner);
return false;
}
diff --git a/skins.c b/skins.c
index 7a9682e..34b2638 100644
--- a/skins.c
+++ b/skins.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: skins.c 1.11 2006/06/03 14:39:14 kls Exp $
+ * $Id: skins.c 1.12 2006/12/01 13:32:37 kls Exp $
*/
#include "skins.h"
@@ -226,8 +226,11 @@ eKeys cSkins::Message(eMessageType Type, const char *s, int Seconds)
}
if (!Current())
return kNone;
- if (!cSkinDisplay::Current() && !displayMessage)
+ if (!cSkinDisplay::Current()) {
+ if (displayMessage)
+ delete displayMessage;
displayMessage = Current()->DisplayMessage();
+ }
cSkinDisplay::Current()->SetMessage(Type, s);
cSkinDisplay::Current()->Flush();
cStatus::MsgOsdStatusMessage(s);
diff --git a/tools.c b/tools.c
index 8ec1e69..255c806 100644
--- a/tools.c
+++ b/tools.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: tools.c 1.120 2006/08/12 13:30:07 kls Exp $
+ * $Id: tools.c 1.121 2006/12/02 11:12:59 kls Exp $
*/
#include "tools.h"
@@ -547,11 +547,11 @@ cTimeMs::cTimeMs(void)
Set();
}
-uint64 cTimeMs::Now(void)
+uint64_t cTimeMs::Now(void)
{
struct timeval t;
if (gettimeofday(&t, NULL) == 0)
- return (uint64(t.tv_sec)) * 1000 + t.tv_usec / 1000;
+ return (uint64_t(t.tv_sec)) * 1000 + t.tv_usec / 1000;
return 0;
}
@@ -565,7 +565,7 @@ bool cTimeMs::TimedOut(void)
return Now() >= begin;
}
-uint64 cTimeMs::Elapsed(void)
+uint64_t cTimeMs::Elapsed(void)
{
return Now() - begin;
}
diff --git a/tools.h b/tools.h
index 0d79414..b1313ed 100644
--- a/tools.h
+++ b/tools.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: tools.h 1.93 2006/04/16 10:40:45 kls Exp $
+ * $Id: tools.h 1.94 2006/12/02 11:14:14 kls Exp $
*/
#ifndef __TOOLS_H
@@ -15,6 +15,7 @@
#include <fcntl.h>
#include <poll.h>
#include <stddef.h>
+#include <stdint.h>
#include <stdio.h>
#include <string.h>
#include <syslog.h>
@@ -22,7 +23,6 @@
#include <sys/types.h>
typedef unsigned char uchar;
-typedef unsigned long long int uint64;
extern int SysLogLevel;
@@ -159,13 +159,13 @@ public:
class cTimeMs {
private:
- uint64 begin;
+ uint64_t begin;
public:
cTimeMs(void);
- static uint64 Now(void);
+ static uint64_t Now(void);
void Set(int Ms = 0);
bool TimedOut(void);
- uint64 Elapsed(void);
+ uint64_t Elapsed(void);
};
class cReadLine {
diff --git a/vdr.1 b/vdr.1
index 86f5bdf..b18f3b4 100644
--- a/vdr.1
+++ b/vdr.1
@@ -8,7 +8,7 @@
.\" License as specified in the file COPYING that comes with the
.\" vdr distribution.
.\"
-.\" $Id: vdr.1 1.26 2006/06/24 10:07:16 kls Exp $
+.\" $Id: vdr.1 1.27 2006/11/19 10:02:31 kls Exp $
.\"
.TH vdr 1 "30 Apr 2006" "1.4.0" "Video Disk Recorder"
.SH NAME
@@ -23,12 +23,12 @@ It can work with signals received from satellites (DVB-S) as
well as cable (DVB-C) and terrestrial (DVB-T) signals.
At least one DVB card is required to run \fBvdr\fR. With it you can watch
-live tv while recording one or more other broadcasts from the same transponder.
+live TV while recording one or more other broadcasts from the same transponder.
It is also possible to start watching a recorded programme before the live
broadcast has ended (\fBtime shifting\fR). In order to record from different
transponders simultaneously two or more DVB cards are necessary.
By default \fBvdr\fR can support up to four
-DVB cards. The primary DVB card (the one your tv set is connected to) has
+DVB cards. The primary DVB card (the one your TV set is connected to) has
to be a "full featured" card, which means it must contain an MPEG decoder
and provide audio and video signal outputs.
@@ -76,7 +76,7 @@ Set logging to \fIlevel\fR.
\fB0\fR\ =\ no logging, \fB1\fR\ =\ errors only,
\fB2\fR\ =\ errors and info, \fB3\fR\ =\ errors, info and debug.
The default logging level is \fB3\fR.
-If logging should be done to LOG_LOCALn instead of
+If logging should be done to LOG_LOCAL\fIn\fR instead of
LOG_USER, add '.n' to LEVEL, as in 3.7 (n=0..7).
.TP
.BI \-L\ dir ,\ \-\-lib= dir
@@ -122,10 +122,12 @@ Use a serial port remote control device.
If \fIpath\fR is omitted, vdr uses \fI/dev/ttyS1\fR.
.TP
.BI \-r\ cmd ,\ \-\-record= cmd
-Call \fIcmd\fR before and after a recording.
+Call \fIcmd\fR before and after a recording. See the file \fIINSTALL\fR for
+more information.
.TP
.BI \-s\ cmd ,\ \-\-shutdown= cmd
-Call \fIcmd\fR to shutdown the computer.
+Call \fIcmd\fR to shutdown the computer. See the file \fIINSTALL\fR for more
+information.
.TP
.BI \-t\ tty ,\ \-\-terminal= tty
Set the controlling terminal.
diff --git a/vdr.5 b/vdr.5
index 3ecbe91..2e77f1e 100644
--- a/vdr.5
+++ b/vdr.5
@@ -8,7 +8,7 @@
.\" License as specified in the file COPYING that comes with the
.\" vdr distribution.
.\"
-.\" $Id: vdr.5 1.59 2006/04/30 08:55:16 kls Exp $
+.\" $Id: vdr.5 1.60 2006/11/19 10:02:33 kls Exp $
.\"
.TH vdr 5 "30 Apr 2006" "1.4.0" "Video Disk Recorder Files"
.SH NAME
@@ -57,7 +57,7 @@ to right):
.B Name
The channel's name (if the name originally contains a ':' character
it has to be replaced by '|').
-Some tv stations provide a way of deriving a "short name" from the
+Some TV stations provide a way of deriving a "short name" from the
channel name, which can be used in situations where there is not
much space for displaying a long name. If a short name is available
for this channel, it follows the full name and is delimited by a comma,
@@ -248,7 +248,7 @@ cause the timer to record on that day. Example:
.B MTWTF\-\-
-will define a timer that records on Monday thru Friday and does not record
+will define a timer that records on Monday through Friday and does not record
on weekends. The same result could be achieved with \fBABCDE\-\-\fR (this is
used to allow setting the days with language specific characters).
Note that only letters may be used here, no digits.
@@ -259,7 +259,7 @@ so a complete definition could look like this:
\fBMTWTF\-\-@2002\-02\-18\fR
-which would implement a timer that records Monday thru Friday, and will hit
+which would implement a timer that records Monday through Friday, and will hit
for the first time on or after February 18, 2002.
This \fBfirst day\fR feature can be used to disable a repeating timer for a couple
of days, or for instance to define a new Mon...Fri timer on Wednesday, which
diff --git a/vdr.c b/vdr.c
index 73c5c91..a628cd0 100644
--- a/vdr.c
+++ b/vdr.c
@@ -22,7 +22,7 @@
*
* The project's page is at http://www.cadsoft.de/vdr
*
- * $Id: vdr.c 1.280 2006/10/14 10:01:32 kls Exp $
+ * $Id: vdr.c 1.282 2006/12/02 16:22:12 kls Exp $
*/
#include <getopt.h>
@@ -1154,7 +1154,7 @@ int main(int argc, char *argv[])
Skins.Message(mtInfo, tr("Editing process finished"));
}
}
- if (!Interact && ((!cRecordControls::Active() && !cCutter::Active() && !cPluginManager::Active() && (!Interface->HasSVDRPConnection() || UserShutdown)) || ForceShutdown)) {
+ if (!Interact && ((!cRecordControls::Active() && !cCutter::Active() && (!Interface->HasSVDRPConnection() || UserShutdown)) || ForceShutdown)) {
time_t Now = time(NULL);
if (Now - LastActivity > ACTIVITYTIMEOUT) {
// Shutdown:
@@ -1178,6 +1178,10 @@ int main(int argc, char *argv[])
timer = NULL;
dsyslog("reboot at %s", *TimeToString(Next));
}
+ if (!ForceShutdown && cPluginManager::Active()) {
+ LastActivity = Now - Setup.MinUserInactivity * 60 + SHUTDOWNRETRY; // try again later
+ continue;
+ }
if (!Next || Delta > Setup.MinEventTimeout * 60 || ForceShutdown) {
ForceShutdown = false;
if (timer)