mirror of
https://github.com/vdr-projects/vdr.git
synced 2025-03-01 10:50:46 +00:00
Compare commits
18 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
186ceaaacb | ||
|
36b1caedc2 | ||
|
6715f40484 | ||
|
17485ccc96 | ||
|
1857a0ca20 | ||
|
a5adaefb68 | ||
|
89bb6f57fd | ||
|
1f0776c548 | ||
|
5da044b4ae | ||
|
da3939cb10 | ||
|
de67eacbda | ||
|
7e41418615 | ||
|
7c924aa664 | ||
|
a8478802a3 | ||
|
6b32797180 | ||
|
1d417431d6 | ||
|
f933b63d1f | ||
|
644fcc3bbe |
26
CONTRIBUTORS
26
CONTRIBUTORS
@ -595,6 +595,8 @@ Helmut Auer <vdr@helmutauer.de>
|
||||
not two hex digits after the '#'
|
||||
for suggesting to suppress the automatic shutdown if the remote control is
|
||||
currently disabled
|
||||
for suggesting to improve logging system time changes to avoid problems on slow
|
||||
systems under heavy load
|
||||
|
||||
Jeremy Hall <jhall@UU.NET>
|
||||
for fixing an incomplete initialization of the filter parameters in eit.c
|
||||
@ -958,6 +960,7 @@ Andreas Mair <andreas@vdr-developer.org>
|
||||
for making the SVDRP command LSTC list the channels with group separators if the
|
||||
option ':groups' is given
|
||||
for fixing handling 3 and 4 byte UTF-8 symbols in Utf8CharGet()
|
||||
for fixing initializing the timer's flags in the cTimer copy constructor
|
||||
|
||||
Olivier Jacques <jacquesolivier@hotmail.com>)
|
||||
for translating OSD texts to the French language
|
||||
@ -1050,6 +1053,7 @@ Rolf Ahrenberg <rahrenbe@cc.hut.fi>
|
||||
language
|
||||
for fixing displaying the free disk space when entering the recordings menu where
|
||||
the last replayed recording was in a subdirectory, and pressing Back
|
||||
for replacing the Finnish language code "smi" with "suo"
|
||||
|
||||
Ralf Klueber <ralf.klueber@vodafone.com>
|
||||
for reporting a bug in cutting a recording if there is only a single editing mark
|
||||
@ -1174,6 +1178,7 @@ Reinhard Nissl <rnissl@gmx.de>
|
||||
for reporting an invalid access in the section handler when ending VDR
|
||||
for pointing out that cDevice::Transferring() doesn't return the right value in the
|
||||
early stage of channel switching
|
||||
for fixing handling the counter in detection of pre 1.3.19 PS data
|
||||
|
||||
Richard Robson <richard_robson@beeb.net>
|
||||
for reporting freezing replay if a timer starts while in Transfer Mode from the
|
||||
@ -1506,6 +1511,7 @@ Arthur Konovalov <kasjas@hot.ee>
|
||||
for translating OSD texts to the Estonian language
|
||||
for fixing a missing ',' in the Greek OSD texts
|
||||
for fixing a missing ',' in the Swedish OSD texts
|
||||
for reporting problems with CAMs when checking the CAM status too frequently
|
||||
|
||||
Milos Kapoun <m.kapoun@cra.cz>
|
||||
for suggesting to skip code table info in SI data
|
||||
@ -1574,6 +1580,7 @@ Udo Richter <udo_richter@gmx.de>
|
||||
for making housekeeping wait for a while after a replay has ended
|
||||
for fixing error handling in cCuttingThread::Action()
|
||||
for suppressing the automatic shutdown if the remote control is currently disabled
|
||||
for fixing a problem with calling isyslog() from within the SignalHandler()
|
||||
|
||||
Sven Kreiensen <svenk@kammer.uni-hannover.de>
|
||||
for his help in keeping 'channels.conf.terr' up to date
|
||||
@ -1890,6 +1897,7 @@ Alexander Rieger <Alexander.Rieger@inka.de>
|
||||
for fixing cTimer::operator=() in case a cTimer variable is assigned to itself
|
||||
for making the list of tracks given in cStatus::SetAudioTrack() NULL terminated
|
||||
for fixing handling kLeft in the calls to cStatus::MsgOsdTextItem()
|
||||
for fixing a possible integer overflow in GetAbsTime()
|
||||
|
||||
Philip Prindeville <philipp_subx@redfish-solutions.com>
|
||||
for updates to 'sources.conf'
|
||||
@ -2111,6 +2119,7 @@ Tobias Grimm <tobias.grimm@e-tobi.net>
|
||||
for making the non-breaking space symbol be rendered as a blank
|
||||
for fixing a signed character used as index in cBase64Encoder::NextLine()
|
||||
for fixing formatting the name section in the VDR man pages
|
||||
for reporting unneeded include files <linux/dvb/dmx.h> und <time.h> in remux.h
|
||||
|
||||
Helge Lenz <h.lenz@gmx.de>
|
||||
for reporting a bug in setting the 'Delta' parameter when calling the shutdown
|
||||
@ -2347,3 +2356,20 @@ Adrian Caval <anrxc@sysphere.org>
|
||||
|
||||
Nan Feng <nfgx@21cn.com>
|
||||
for translating OSD texts to the Chinese language
|
||||
|
||||
Edgar Toernig <froese@gmx.de>
|
||||
for suggesting to not call FcFini() to avoid problems with older (broken) versions
|
||||
of fontconfig
|
||||
|
||||
Winfried Köhler <w_koehl@gmx.de>
|
||||
for fixing wrong value for TableIdBAT in libsi/si.h
|
||||
|
||||
Ralf Schueler <dl4mw@schueler.ws>
|
||||
for backporting "Changed cDvbDevice::GrabImage() to use V4L" from version 1.7.3
|
||||
to 1.6.0-3
|
||||
for backporting "Added some missing 'const' keywords to avoid compilation errors
|
||||
with gcc 4.4" from version 1.7.8 to 1.6.0-3
|
||||
for backporting "Modified cSVDRP::CmdGRAB() to avoid writing into const data"
|
||||
from version 1.7.8 to 1.6.0-3
|
||||
for backporting "Fixed cRecordings::DelByName() to avoid compilation errors with
|
||||
gcc 4.4" from version 1.7.9 to 1.6.0-3
|
||||
|
40
HISTORY
40
HISTORY
@ -5729,3 +5729,43 @@ Video Disk Recorder Revision History
|
||||
- Added Chinese language texts (thanks to Nan Feng).
|
||||
- Updated the Portuguese language texts.
|
||||
- Added a note about VDR_CHARSET_OVERRIDE to the INSTALL file.
|
||||
|
||||
2008-04-13: Version 1.6.0-1
|
||||
|
||||
- Fixed handling the counter in detection of pre 1.3.19 PS data (thanks to Reinhard
|
||||
Nissl).
|
||||
- Improved logging system time changes to avoid problems on slow systems under
|
||||
heavy load (suggested by Helmut Auer).
|
||||
- Fixed initializing the timer's flags in the cTimer copy constructor (thanks to
|
||||
Andreas Mair).
|
||||
- Increased the time between checking the CAM status to 500ms to avoid problems
|
||||
with some CAMs (reported by Arthur Konovalov).
|
||||
|
||||
2008-09-06: Version 1.6.0-2
|
||||
|
||||
- Updated the Italian OSD texts (thanks to Diego Pierotto).
|
||||
- The SVDRP signon message now indicates the character encoding in use, as in
|
||||
"220 video SVDRP VideoDiskRecorder 1.7.1; Fri May 2 16:17:10 2008; ISO-8859-1".
|
||||
This may be useful for instance for external tools that provide EPG data, so that
|
||||
they can correctly encode the strings.
|
||||
- No longer calling FcFini() to avoid problems with older (broken) versions of
|
||||
fontconfig (suggested by Edgar Toernig).
|
||||
- Updated the sources.conf file (thanks to Oleg Roitburd).
|
||||
- Fixed a possible integer overflow in GetAbsTime() (thanks to Alexander Rieger).
|
||||
- Fixed a problem with calling isyslog() from within the SignalHandler() (thanks
|
||||
to Udo Richter).
|
||||
- Replaced the Finnish language code "smi" with "suo" (thanks to Rolf Ahrenberg).
|
||||
- Fixed wrong value for TableIdBAT in libsi/si.h (thanks to Winfried Köhler).
|
||||
- Removed unneeded include files <linux/dvb/dmx.h> und <time.h> from remux.h
|
||||
(reported by Tobias Grimm).
|
||||
|
||||
2012-02-14: Version 1.6.0-3
|
||||
|
||||
- Changed cDvbDevice::GrabImage() to use V4L2
|
||||
(backport from version 1.7.3, thanks to Ralf Schueler).
|
||||
- Added some missing 'const' keywords to avoid compilation errors with gcc 4.4
|
||||
(backport from version 1.7.8, thanks to Ralf Schueler).
|
||||
- Modified cSVDRP::CmdGRAB() to avoid writing into const data
|
||||
(backport from version 1.7.8, thanks to Ralf Schueler).
|
||||
- Fixed cRecordings::DelByName() to avoid compilation errors with gcc 4.4
|
||||
(backport from version 1.7.9, thanks to Ralf Schueler).
|
||||
|
4
ci.c
4
ci.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: ci.c 1.48 2007/04/30 13:02:49 kls Exp $
|
||||
* $Id: ci.c 1.48.1.1 2008/04/13 13:33:32 kls Exp $
|
||||
*/
|
||||
|
||||
#include "ci.h"
|
||||
@ -1525,7 +1525,7 @@ void cCiAdapter::Action(void)
|
||||
|
||||
cCamSlots CamSlots;
|
||||
|
||||
#define MODULE_CHECK_INTERVAL 100 // ms
|
||||
#define MODULE_CHECK_INTERVAL 500 // ms
|
||||
#define MODULE_RESET_TIMEOUT 2 // s
|
||||
|
||||
cCamSlot::cCamSlot(cCiAdapter *CiAdapter)
|
||||
|
4
config.h
4
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.310 2008/03/23 10:26:10 kls Exp $
|
||||
* $Id: config.h 1.310.1.3 2012/02/14 12:16:31 kls Exp $
|
||||
*/
|
||||
|
||||
#ifndef __CONFIG_H
|
||||
@ -22,7 +22,7 @@
|
||||
|
||||
// VDR's own version number:
|
||||
|
||||
#define VDRVERSION "1.6.0"
|
||||
#define VDRVERSION "1.6.0-3"
|
||||
#define VDRVERSNUM 10600 // Version * 10000 + Major * 100 + Minor
|
||||
|
||||
// The plugin API's version number:
|
||||
|
7
device.c
7
device.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: device.c 1.157 2008/03/09 10:03:34 kls Exp $
|
||||
* $Id: device.c 1.157.1.1 2008/04/13 11:16:00 kls Exp $
|
||||
*/
|
||||
|
||||
#include "device.h"
|
||||
@ -1273,7 +1273,7 @@ int cDevice::PlayPesPacket(const uchar *Data, int Length, bool VideoOnly)
|
||||
uchar SubStreamIndex = SubStreamId & 0x1F;
|
||||
|
||||
// Compatibility mode for old VDR recordings, where 0xBD was only AC3:
|
||||
pre_1_3_19_PrivateStreamDeteced:
|
||||
pre_1_3_19_PrivateStreamDetected:
|
||||
if (pre_1_3_19_PrivateStream > MIN_PRE_1_3_19_PRIVATESTREAM) {
|
||||
SubStreamId = c;
|
||||
SubStreamType = 0x80;
|
||||
@ -1314,7 +1314,8 @@ pre_1_3_19_PrivateStreamDeteced:
|
||||
if (pre_1_3_19_PrivateStream > MIN_PRE_1_3_19_PRIVATESTREAM) {
|
||||
dsyslog("switching to pre 1.3.19 Dolby Digital compatibility mode - substream id = %02X", SubStreamId);
|
||||
ClrAvailableTracks();
|
||||
goto pre_1_3_19_PrivateStreamDeteced;
|
||||
pre_1_3_19_PrivateStream = MIN_PRE_1_3_19_PRIVATESTREAM + 1;
|
||||
goto pre_1_3_19_PrivateStreamDetected;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
144
dvbdevice.c
144
dvbdevice.c
@ -4,13 +4,13 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: dvbdevice.c 1.170 2008/02/09 16:11:44 kls Exp $
|
||||
* $Id: dvbdevice.c 1.170.1.1 2012/02/14 12:36:30 kls Exp $
|
||||
*/
|
||||
|
||||
#include "dvbdevice.h"
|
||||
#include <errno.h>
|
||||
#include <limits.h>
|
||||
#include <linux/videodev.h>
|
||||
#include <linux/videodev2.h>
|
||||
#include <linux/dvb/audio.h>
|
||||
#include <linux/dvb/dmx.h>
|
||||
#include <linux/dvb/frontend.h>
|
||||
@ -521,69 +521,103 @@ uchar *cDvbDevice::GrabImage(int &Size, bool Jpeg, int Quality, int SizeX, int S
|
||||
int videoDev = open(buffer, O_RDWR);
|
||||
if (videoDev >= 0) {
|
||||
uchar *result = NULL;
|
||||
struct video_mbuf mbuf;
|
||||
if (ioctl(videoDev, VIDIOCGMBUF, &mbuf) == 0) {
|
||||
int msize = mbuf.size;
|
||||
unsigned char *mem = (unsigned char *)mmap(0, msize, PROT_READ | PROT_WRITE, MAP_SHARED, videoDev, 0);
|
||||
if (mem && mem != (unsigned char *)-1) {
|
||||
// set up the size and RGB
|
||||
struct video_capability vc;
|
||||
if (ioctl(videoDev, VIDIOCGCAP, &vc) == 0) {
|
||||
struct video_mmap vm;
|
||||
vm.frame = 0;
|
||||
if ((SizeX > 0) && (SizeX <= vc.maxwidth) &&
|
||||
(SizeY > 0) && (SizeY <= vc.maxheight)) {
|
||||
vm.width = SizeX;
|
||||
vm.height = SizeY;
|
||||
}
|
||||
else {
|
||||
vm.width = vc.maxwidth;
|
||||
vm.height = vc.maxheight;
|
||||
}
|
||||
vm.format = VIDEO_PALETTE_RGB24;
|
||||
if (ioctl(videoDev, VIDIOCMCAPTURE, &vm) == 0 && ioctl(videoDev, VIDIOCSYNC, &vm.frame) == 0) {
|
||||
// make RGB out of BGR:
|
||||
int memsize = vm.width * vm.height;
|
||||
unsigned char *mem1 = mem;
|
||||
for (int i = 0; i < memsize; i++) {
|
||||
unsigned char tmp = mem1[2];
|
||||
mem1[2] = mem1[0];
|
||||
mem1[0] = tmp;
|
||||
mem1 += 3;
|
||||
}
|
||||
// set up the size and RGB
|
||||
v4l2_format fmt;
|
||||
memset(&fmt, 0, sizeof(fmt));
|
||||
fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
fmt.fmt.pix.width = SizeX;
|
||||
fmt.fmt.pix.height = SizeY;
|
||||
fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_BGR24;
|
||||
fmt.fmt.pix.field = V4L2_FIELD_ANY;
|
||||
if (ioctl(videoDev, VIDIOC_S_FMT, &fmt) == 0) {
|
||||
v4l2_requestbuffers reqBuf;
|
||||
memset(&reqBuf, 0, sizeof(reqBuf));
|
||||
reqBuf.count = 2;
|
||||
reqBuf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
reqBuf.memory = V4L2_MEMORY_MMAP;
|
||||
if (ioctl(videoDev, VIDIOC_REQBUFS, &reqBuf) >= 0) {
|
||||
v4l2_buffer mbuf;
|
||||
memset(&mbuf, 0, sizeof(mbuf));
|
||||
mbuf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
mbuf.memory = V4L2_MEMORY_MMAP;
|
||||
if (ioctl(videoDev, VIDIOC_QUERYBUF, &mbuf) == 0) {
|
||||
int msize = mbuf.length;
|
||||
unsigned char *mem = (unsigned char *)mmap(0, msize, PROT_READ | PROT_WRITE, MAP_SHARED, videoDev, 0);
|
||||
if (mem && mem != (unsigned char *)-1) {
|
||||
v4l2_buffer buf;
|
||||
memset(&buf, 0, sizeof(buf));
|
||||
buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
buf.memory = V4L2_MEMORY_MMAP;
|
||||
buf.index = 0;
|
||||
if (ioctl(videoDev, VIDIOC_QBUF, &buf) == 0) {
|
||||
v4l2_buf_type type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
if (ioctl (videoDev, VIDIOC_STREAMON, &type) == 0) {
|
||||
memset(&buf, 0, sizeof(buf));
|
||||
buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
buf.memory = V4L2_MEMORY_MMAP;
|
||||
buf.index = 0;
|
||||
if (ioctl(videoDev, VIDIOC_DQBUF, &buf) == 0) {
|
||||
if (ioctl(videoDev, VIDIOC_STREAMOFF, &type) == 0) {
|
||||
// make RGB out of BGR:
|
||||
int memsize = fmt.fmt.pix.width * fmt.fmt.pix.height;
|
||||
unsigned char *mem1 = mem;
|
||||
for (int i = 0; i < memsize; i++) {
|
||||
unsigned char tmp = mem1[2];
|
||||
mem1[2] = mem1[0];
|
||||
mem1[0] = tmp;
|
||||
mem1 += 3;
|
||||
}
|
||||
|
||||
if (Quality < 0)
|
||||
Quality = 100;
|
||||
if (Quality < 0)
|
||||
Quality = 100;
|
||||
|
||||
dsyslog("grabbing to %s %d %d %d", Jpeg ? "JPEG" : "PNM", Quality, vm.width, vm.height);
|
||||
if (Jpeg) {
|
||||
// convert to JPEG:
|
||||
result = RgbToJpeg(mem, vm.width, vm.height, Size, Quality);
|
||||
if (!result)
|
||||
esyslog("ERROR: failed to convert image to JPEG");
|
||||
}
|
||||
else {
|
||||
// convert to PNM:
|
||||
char buf[32];
|
||||
snprintf(buf, sizeof(buf), "P6\n%d\n%d\n255\n", vm.width, vm.height);
|
||||
int l = strlen(buf);
|
||||
int bytes = memsize * 3;
|
||||
Size = l + bytes;
|
||||
result = MALLOC(uchar, Size);
|
||||
if (result) {
|
||||
memcpy(result, buf, l);
|
||||
memcpy(result + l, mem, bytes);
|
||||
dsyslog("grabbing to %s %d %d %d", Jpeg ? "JPEG" : "PNM", Quality, fmt.fmt.pix.width, fmt.fmt.pix.height);
|
||||
if (Jpeg) {
|
||||
// convert to JPEG:
|
||||
result = RgbToJpeg(mem, fmt.fmt.pix.width, fmt.fmt.pix.height, Size, Quality);
|
||||
if (!result)
|
||||
esyslog("ERROR: failed to convert image to JPEG");
|
||||
}
|
||||
else {
|
||||
// convert to PNM:
|
||||
char buf[32];
|
||||
snprintf(buf, sizeof(buf), "P6\n%d\n%d\n255\n", fmt.fmt.pix.width, fmt.fmt.pix.height);
|
||||
int l = strlen(buf);
|
||||
int bytes = memsize * 3;
|
||||
Size = l + bytes;
|
||||
result = MALLOC(uchar, Size);
|
||||
if (result) {
|
||||
memcpy(result, buf, l);
|
||||
memcpy(result + l, mem, bytes);
|
||||
}
|
||||
else
|
||||
esyslog("ERROR: failed to convert image to PNM");
|
||||
}
|
||||
}
|
||||
else
|
||||
esyslog("ERROR: video device VIDIOC_STREAMOFF failed");
|
||||
}
|
||||
else
|
||||
esyslog("ERROR: video device VIDIOC_DQBUF failed");
|
||||
}
|
||||
else
|
||||
esyslog("ERROR: failed to convert image to PNM");
|
||||
esyslog("ERROR: video device VIDIOC_STREAMON failed");
|
||||
}
|
||||
else
|
||||
esyslog("ERROR: video device VIDIOC_QBUF failed");
|
||||
munmap(mem, msize);
|
||||
}
|
||||
else
|
||||
esyslog("ERROR: failed to memmap video device");
|
||||
}
|
||||
munmap(mem, msize);
|
||||
else
|
||||
esyslog("ERROR: video device VIDIOC_QUERYBUF failed");
|
||||
}
|
||||
else
|
||||
esyslog("ERROR: failed to memmap video device");
|
||||
esyslog("ERROR: video device VIDIOC_REQBUFS failed");
|
||||
}
|
||||
else
|
||||
esyslog("ERROR: video device VIDIOC_S_FMT failed");
|
||||
close(videoDev);
|
||||
return result;
|
||||
}
|
||||
|
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: dvbdevice.h 1.47 2008/02/08 13:48:31 kls Exp $
|
||||
* $Id: dvbdevice.h 1.47.1.1 2012/02/14 12:46:35 kls Exp $
|
||||
*/
|
||||
|
||||
#ifndef __DVBDEVICE_H
|
||||
@ -15,8 +15,8 @@
|
||||
#include "device.h"
|
||||
#include "dvbspu.h"
|
||||
|
||||
#if DVB_API_VERSION != 3
|
||||
#error VDR requires Linux DVB driver API version 3!
|
||||
#if (DVB_API_VERSION << 8 | DVB_API_VERSION_MINOR) < 0x0300
|
||||
#error VDR requires Linux DVB driver API version 3.0 or higher!
|
||||
#endif
|
||||
|
||||
#define MAXDVBDEVICES 8
|
||||
|
8
eit.c
8
eit.c
@ -8,7 +8,7 @@
|
||||
* Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>.
|
||||
* Adapted to 'libsi' for VDR 1.3.0 by Marcel Wiesweg <marcel.wiesweg@gmx.de>.
|
||||
*
|
||||
* $Id: eit.c 1.126 2007/09/26 10:56:33 kls Exp $
|
||||
* $Id: eit.c 1.126.1.1 2008/04/13 11:46:38 kls Exp $
|
||||
*/
|
||||
|
||||
#include "eit.h"
|
||||
@ -300,9 +300,9 @@ cTDT::cTDT(const u_char *Data)
|
||||
if (diff > 2) {
|
||||
mutex.Lock();
|
||||
if (abs(diff - lastDiff) < 3) {
|
||||
isyslog("System Time = %s (%ld)", *TimeToString(loctim), loctim);
|
||||
isyslog("Local Time = %s (%ld)", *TimeToString(sattim), sattim);
|
||||
if (stime(&sattim) < 0)
|
||||
if (stime(&sattim) == 0)
|
||||
isyslog("system time changed from %s (%ld) to %s (%ld)", *TimeToString(loctim), loctim, *TimeToString(sattim), sattim);
|
||||
else
|
||||
esyslog("ERROR while setting system time: %m");
|
||||
}
|
||||
lastDiff = diff;
|
||||
|
6
font.c
6
font.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: font.c 1.25 2008/03/01 10:19:41 kls Exp $
|
||||
* $Id: font.c 1.25.1.1 2008/05/03 09:59:24 kls Exp $
|
||||
*/
|
||||
|
||||
#include "font.h"
|
||||
@ -395,7 +395,7 @@ bool cFont::GetAvailableFontNames(cStringList *FontNames, bool Monospaced)
|
||||
FcFontSetDestroy(fontset);
|
||||
FcPatternDestroy(pat);
|
||||
FcObjectSetDestroy(os);
|
||||
FcFini();
|
||||
//FcFini(); // older versions of fontconfig are broken - and FcInit() can be called more than once
|
||||
FontNames->Sort();
|
||||
}
|
||||
return FontNames->Size() > 0;
|
||||
@ -431,7 +431,7 @@ cString cFont::GetFontFileName(const char *FontName)
|
||||
esyslog("ERROR: no usable font found for '%s'", FontName);
|
||||
FcPatternDestroy(pat);
|
||||
free(fn);
|
||||
FcFini();
|
||||
//FcFini(); // older versions of fontconfig are broken - and FcInit() can be called more than once
|
||||
}
|
||||
return FontFileName;
|
||||
}
|
||||
|
4
i18n.c
4
i18n.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: i18n.c 1.319 2008/01/19 12:07:11 kls Exp $
|
||||
* $Id: i18n.c 1.319.1.1 2008/09/06 12:21:17 kls Exp $
|
||||
*
|
||||
*
|
||||
*/
|
||||
@ -45,7 +45,7 @@ const char *LanguageCodeList[] = {
|
||||
"por",
|
||||
"fra,fre",
|
||||
"nor",
|
||||
"fin,smi",
|
||||
"fin,suo",
|
||||
"pol",
|
||||
"esl,spa",
|
||||
"ell,gre",
|
||||
|
@ -6,7 +6,7 @@
|
||||
* the Free Software Foundation; either version 2 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
* $Id: si.h 1.17 2007/04/22 13:32:09 kls Exp $
|
||||
* $Id: si.h 1.17.1.1 2008/09/06 12:40:49 kls Exp $
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
@ -28,7 +28,7 @@ enum TableId { TableIdPAT = 0x00, //program association section
|
||||
TableIdNIT_other = 0x41, //network information section, other network
|
||||
TableIdSDT = 0x42, //service description section
|
||||
TableIdSDT_other = 0x46,
|
||||
TableIdBAT = 0x46, //bouquet association section
|
||||
TableIdBAT = 0x4A, //bouquet association section
|
||||
TableIdEIT_presentFollowing = 0x4E, //event information section
|
||||
TableIdEIT_presentFollowing_other = 0x4F,
|
||||
//range from 0x50 to 0x5F
|
||||
|
26
po/it_IT.po
26
po/it_IT.po
@ -12,9 +12,9 @@ msgstr ""
|
||||
"Project-Id-Version: VDR 1.6.0\n"
|
||||
"Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n"
|
||||
"POT-Creation-Date: 2008-02-10 12:22+0100\n"
|
||||
"PO-Revision-Date: 2008-03-08 21:06+0100\n"
|
||||
"PO-Revision-Date: 2008-04-17 01:07+0100\n"
|
||||
"Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n"
|
||||
"Language-Team: Italian\n"
|
||||
"Language-Team: Italian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=ISO-8859-15\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
@ -221,7 +221,7 @@ msgid "Disk"
|
||||
msgstr "Disco"
|
||||
|
||||
msgid "free"
|
||||
msgstr "liberi"
|
||||
msgstr "disponibile"
|
||||
|
||||
msgid "Free To Air"
|
||||
msgstr "in chiaro"
|
||||
@ -230,7 +230,7 @@ msgid "encrypted"
|
||||
msgstr "codificato"
|
||||
|
||||
msgid "auto"
|
||||
msgstr "automatico"
|
||||
msgstr "automatica"
|
||||
|
||||
msgid "Edit channel"
|
||||
msgstr "Modifica canale"
|
||||
@ -293,7 +293,7 @@ msgid "CoderateH"
|
||||
msgstr "CoderateH"
|
||||
|
||||
msgid "none"
|
||||
msgstr "nessuno"
|
||||
msgstr "nessuna"
|
||||
|
||||
msgid "CoderateL"
|
||||
msgstr "CoderateL"
|
||||
@ -404,20 +404,20 @@ msgid "What's on next?"
|
||||
msgstr "Prossimi programmi"
|
||||
|
||||
msgid "Button$Next"
|
||||
msgstr "Prossimo"
|
||||
msgstr "Prossimi"
|
||||
|
||||
msgid "Button$Now"
|
||||
msgstr "Adesso"
|
||||
|
||||
msgid "Button$Schedule"
|
||||
msgstr "Programma"
|
||||
msgstr "Programmi"
|
||||
|
||||
msgid "Can't switch channel!"
|
||||
msgstr "Impossibile cambiare canale!"
|
||||
|
||||
#, c-format
|
||||
msgid "Schedule - %s"
|
||||
msgstr "Programma - %s"
|
||||
msgstr "Programmi - %s"
|
||||
|
||||
#, c-format
|
||||
msgid "This event - %s"
|
||||
@ -500,7 +500,7 @@ msgid "Setup.OSD$Height"
|
||||
msgstr "Altezza OSD"
|
||||
|
||||
msgid "Setup.OSD$Message time (s)"
|
||||
msgstr "Tempo del messaggio (s)"
|
||||
msgstr "Durata del messaggio (s)"
|
||||
|
||||
msgid "Setup.OSD$Use small font"
|
||||
msgstr "Utilizza caratteri piccoli"
|
||||
@ -572,7 +572,7 @@ msgid "Setup.EPG$EPG linger time (min)"
|
||||
msgstr "Mostra vecchi dati EPG (min)"
|
||||
|
||||
msgid "Setup.EPG$Set system time"
|
||||
msgstr "Imposta orario automatico"
|
||||
msgstr "Imposta orario di sistema"
|
||||
|
||||
msgid "Setup.EPG$Use time from transponder"
|
||||
msgstr "Utilizza orario da transponder"
|
||||
@ -628,7 +628,7 @@ msgid "Setup.DVB$Use Dolby Digital"
|
||||
msgstr "Dolby Digital"
|
||||
|
||||
msgid "Setup.DVB$Update channels"
|
||||
msgstr "Aggiorna i canali"
|
||||
msgstr "Aggiornamento canali"
|
||||
|
||||
msgid "Setup.DVB$Audio languages"
|
||||
msgstr "Lingue audio"
|
||||
@ -739,7 +739,7 @@ msgid "Setup.Recording$Name instant recording"
|
||||
msgstr "Nome reg. immediata"
|
||||
|
||||
msgid "Setup.Recording$Instant rec. time (min)"
|
||||
msgstr "Tempo reg. immediata (min)"
|
||||
msgstr "Durata reg. immediata (min)"
|
||||
|
||||
msgid "Setup.Recording$Max. video file size (MB)"
|
||||
msgstr "Dim. massima file video (MB)"
|
||||
@ -899,7 +899,7 @@ msgid "Plugin"
|
||||
msgstr "Plugin"
|
||||
|
||||
msgid "Up/Dn for new location - OK to move"
|
||||
msgstr "Su/Giù per nuova posizione - OK per muovere"
|
||||
msgstr "Su/Giù per nuova posizione - OK per spostare"
|
||||
|
||||
msgid "Channel locked (recording)!"
|
||||
msgstr "Canale bloccato (in registrazione)!"
|
||||
|
10
recording.c
10
recording.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: recording.c 1.162 2008/02/24 10:28:53 kls Exp $
|
||||
* $Id: recording.c 1.162.1.2 2012/02/14 13:57:25 kls Exp $
|
||||
*/
|
||||
|
||||
#include "recording.h"
|
||||
@ -509,8 +509,8 @@ cRecording::cRecording(cTimer *Timer, const cEvent *Event)
|
||||
Utf8Strn0Cpy(SubtitleBuffer, Subtitle, MAX_SUBTITLE_LENGTH);
|
||||
Subtitle = SubtitleBuffer;
|
||||
}
|
||||
char *macroTITLE = strstr(Timer->File(), TIMERMACRO_TITLE);
|
||||
char *macroEPISODE = strstr(Timer->File(), TIMERMACRO_EPISODE);
|
||||
const char *macroTITLE = strstr(Timer->File(), TIMERMACRO_TITLE);
|
||||
const char *macroEPISODE = strstr(Timer->File(), TIMERMACRO_EPISODE);
|
||||
if (macroTITLE || macroEPISODE) {
|
||||
name = strdup(Timer->File());
|
||||
name = strreplace(name, TIMERMACRO_TITLE, Title);
|
||||
@ -551,7 +551,7 @@ cRecording::cRecording(const char *FileName)
|
||||
sortBuffer = NULL;
|
||||
fileName = strdup(FileName);
|
||||
FileName += strlen(VideoDirectory) + 1;
|
||||
char *p = strrchr(FileName, '/');
|
||||
const char *p = strrchr(FileName, '/');
|
||||
|
||||
name = NULL;
|
||||
info = new cRecordingInfo;
|
||||
@ -1022,7 +1022,7 @@ void cRecordings::DelByName(const char *FileName)
|
||||
if (recording) {
|
||||
cThreadLock DeletedRecordingsLock(&DeletedRecordings);
|
||||
Del(recording, false);
|
||||
char *ext = strrchr(recording->FileName(), '.');
|
||||
char *ext = strrchr(recording->fileName, '.');
|
||||
if (ext) {
|
||||
strncpy(ext, DELEXT, strlen(ext));
|
||||
recording->fileSizeMB = DirSizeMB(recording->FileName());
|
||||
|
4
remux.h
4
remux.h
@ -4,14 +4,12 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: remux.h 1.17 2007/09/02 10:19:06 kls Exp $
|
||||
* $Id: remux.h 1.17.1.1 2008/09/06 14:34:42 kls Exp $
|
||||
*/
|
||||
|
||||
#ifndef __REMUX_H
|
||||
#define __REMUX_H
|
||||
|
||||
#include <time.h> //XXX FIXME: DVB/linux/dvb/dmx.h should include <time.h> itself!!!
|
||||
#include <linux/dvb/dmx.h>
|
||||
#include "ringbuffer.h"
|
||||
#include "tools.h"
|
||||
|
||||
|
100
sources.conf
100
sources.conf
@ -19,29 +19,34 @@
|
||||
|
||||
# Europe
|
||||
|
||||
S5E Sirius 2/3
|
||||
S3E Telecom 2C
|
||||
S4E Eurobird 4
|
||||
S5E Sirius 4
|
||||
S7E Eutelsat W3A
|
||||
S9E Eurobird 9
|
||||
S10E Eutelsat W1
|
||||
S13E Hotbird 1-3/6/7A
|
||||
S13E Hotbird 6/7A/8
|
||||
S16E Eutelsat W2
|
||||
S19.2E Astra 1B/C/E/F/G/H/2C
|
||||
S19.2E Astra F/G/H/KR/L
|
||||
S21.0E Afristar 1
|
||||
S21.6E Eutelsat W6
|
||||
S23.5E Astra 1D 3A
|
||||
S26E Arabsat 2D/2C/3A
|
||||
S23.5E Astra 1E/3A
|
||||
S25.5E Eurobird 2
|
||||
S26E Badr 3/4/6
|
||||
S28.2E Astra 2D/A/B
|
||||
S28.5E Eurobird 1 & Astra 2A/B/D
|
||||
S28.5E Eurobird 1 & Astra 2A/B/C/D
|
||||
S30.5E Arabsat 2B
|
||||
S31.5E Astra 1D/5A
|
||||
S33E Eurobird 3 & Intelsat 802
|
||||
S36E Eutelsat W4 & Sesat
|
||||
S38E Paksat 1
|
||||
S39E Hellas Sat 2
|
||||
S40E Express AM1
|
||||
S42E Turksat 1C/2A
|
||||
S42E Turksat 2A/3A
|
||||
S45E Intelsat 12
|
||||
S49E Yamal 202
|
||||
S53E Express AM 22
|
||||
S55E Insat 3E & Intelsat 702
|
||||
S55E Insat 3E
|
||||
S56E Bonum 1
|
||||
S57E NSS 703
|
||||
S60E Intelsat 904
|
||||
@ -54,10 +59,10 @@ S72E Intelsat 4
|
||||
|
||||
# Asia
|
||||
|
||||
S74E Insat 3C & Edusat
|
||||
S75E LMI 1
|
||||
S74E Insat 3C/4CR & Edusat
|
||||
S75E ABS 1
|
||||
S76.5E Telstar 10
|
||||
S78.5E Thaicom 2/3
|
||||
S78.5E Thaicom 2/5
|
||||
S80E Express AM2
|
||||
S83E Insat 2E/3B/4A
|
||||
S85.2E Intelsat 709
|
||||
@ -65,14 +70,17 @@ S87.5E Chinastar 1
|
||||
S88E ST 1
|
||||
S90E Yamal 201
|
||||
S91.5E Measat 1
|
||||
S93.5E Insat 3A
|
||||
S92.2E Chinasat 9
|
||||
S93.5E Insat 3A/4B
|
||||
S95E NSS 6
|
||||
S96.5E Express AM 11
|
||||
S96.5E Express AM 33
|
||||
S98.5E Protostar 1
|
||||
S100.5E Asiasat 2
|
||||
S103E Express A2
|
||||
S105E Asiastar
|
||||
S105.5E Asiasat 3S
|
||||
S107.7E Cakrawarta 1
|
||||
S108E Telkom 1 & AAP 1
|
||||
S108E Telkom 1 & NSS 11
|
||||
S110E N-Sat 110 & BSAT 1A/2A
|
||||
S110.5E Sinosat 1
|
||||
S113E Palapa C2 & Koreasat 2
|
||||
@ -81,38 +89,38 @@ S118E Telkom 2
|
||||
S120E Thaicom 1A
|
||||
S122.2E Asiasat 4
|
||||
S124E JCSAT 4a
|
||||
S125E Sinosat 3
|
||||
S128E JCSAT 3
|
||||
S132E N-Star A
|
||||
S132E Vinasat 1 & JCSAT5a
|
||||
S134E Apstar 6
|
||||
S136E N-Star B
|
||||
S138E Telstar 18
|
||||
S140E Express AM 3
|
||||
S144E Superbird C
|
||||
S146E Agila 2
|
||||
S148E Measat 2
|
||||
S150E JCSAT R
|
||||
S152E Optus B3
|
||||
S152E Optus D2
|
||||
S154E JCSAT 2A
|
||||
S156E Optus C1
|
||||
S158E Superbird A
|
||||
S160E Optus B1
|
||||
S160E Optus D1
|
||||
S162E Superbird B2
|
||||
S164E Optus A3
|
||||
S164E Optus B3
|
||||
S166E Intelsat 8
|
||||
S169E Intelsat 2
|
||||
S172E AMC 23
|
||||
S172E GE 23
|
||||
S180E Intelsat 701
|
||||
S177W NSS 5
|
||||
|
||||
# Atlantic
|
||||
|
||||
S1W Thor 2/3 & Intelsat 10-02
|
||||
S4W Amos 1/2
|
||||
S1W Thor 3/5 & Intelsat 10-02
|
||||
S4W Amos 1/2/3
|
||||
S5W Atlantic Bird 3
|
||||
S7W Nilesat 101 & 102
|
||||
S7W Nilesat 101/102 & Atlantic Bird 4
|
||||
S8W Telecom 2D & Atlantic Bird 2
|
||||
S11W Express A3
|
||||
S12.5W Atlantic Bird 2
|
||||
S12.5W Atlantic Bird 1
|
||||
S14W Express A4
|
||||
S15W Telstar 12
|
||||
S18W Intelsat 901
|
||||
@ -123,9 +131,9 @@ S27.5W Intelsat 907
|
||||
S30W Hispasat 1C/1D
|
||||
S31.5W Intelsat 801
|
||||
S34.5W Intelsat 903
|
||||
S37.5W Telstar 11 & AMC 12
|
||||
S37.5W NSS 10
|
||||
S40.5W NSS 806
|
||||
S43W Intelsat 3R/6B
|
||||
S43W Intelsat 3R/11
|
||||
S45W Intelsat 1R
|
||||
S50W Intelsat 705
|
||||
S53W Intelsat 707
|
||||
@ -137,47 +145,45 @@ S61W Amazonas
|
||||
|
||||
S61.5W Echostar 3 & Rainbow 1
|
||||
S63W Estrelo de Sul 1
|
||||
S65W Brasilsat B2
|
||||
S70W Brasilsat B1
|
||||
S65W Star One C1
|
||||
S70W Star One C2
|
||||
S72W Nahuel 1 & AMC 6
|
||||
S72.5W DirecTV 1
|
||||
S74W SBS 6
|
||||
S77W Echostar 4
|
||||
S72.5W DirecTV 1R & Echostar 6
|
||||
S74W Horizons 2
|
||||
S77W Echostar 4 & Galaxy 4R
|
||||
S79W AMC5
|
||||
S79.5W Nimiq 3
|
||||
S82W Nimiq 2
|
||||
S83W AMC 9
|
||||
S84W Brasilsat B3
|
||||
S85W AMC 2
|
||||
S84W Brasilsat B3/4
|
||||
S85W AMC 16
|
||||
S85.1W XM 3
|
||||
S87W AMC3
|
||||
S89W Galaxy 28
|
||||
S91W Galaxy 11 & Nimiq 1
|
||||
S91.5W DirecTV 2
|
||||
S92W Brasilsat B4
|
||||
S91W Galaxy 11/17 & Nimiq 1
|
||||
S92W Brasilsat B2
|
||||
S93W Galaxy 26
|
||||
S95W Galaxy 3C
|
||||
S97W Galaxy 25
|
||||
S99W Galaxy 4R
|
||||
S99.2W Spaceway 2
|
||||
S101W DirecTV 1R/4S/8 & AMC4
|
||||
S99W Galaxy 16
|
||||
S99.2W Spaceway 2 & DirecTV 11
|
||||
S101W DirecTV 4S/8 & AMC 2/4
|
||||
S103W AMC1
|
||||
S105W AMC15
|
||||
S105W AMC15/18
|
||||
S107.3W Anik F1/F1R
|
||||
S110W DirecTV 5 & Echostar 6/8/10
|
||||
S110W DirecTV 5 & Echostar 8/10
|
||||
S111.1W Anik F2
|
||||
S113W Solidaridad 2
|
||||
S119W Echostar 7 & DirecTV 7S
|
||||
S113W SatMex 6
|
||||
S116.8W SatMex 5
|
||||
S119W Anik F3 & Echostar 7 & DirecTV 7S
|
||||
S121W Echostar 9 & Galaxy 23
|
||||
S123W Galaxy 10R
|
||||
S123W Galaxy 18
|
||||
S125W Galaxy 14
|
||||
S127W Galaxy 13/Horizons 1
|
||||
S129W Echostar 5 & Galaxy 27
|
||||
S131W AMC 11
|
||||
S133W Galaxy15/1R
|
||||
S133W Galaxy15
|
||||
S135W AMC 10
|
||||
S137W AMC 7
|
||||
S138.5W Echostar 10
|
||||
S139W AMC 8
|
||||
S148W Echostar 1/2
|
||||
|
||||
|
17
svdrp.c
17
svdrp.c
@ -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.109 2008/02/17 13:36:01 kls Exp $
|
||||
* $Id: svdrp.c 1.109.1.3 2012/02/14 13:55:52 kls Exp $
|
||||
*/
|
||||
|
||||
#include "svdrp.h"
|
||||
@ -736,7 +736,7 @@ void cSVDRP::CmdGRAB(const char *Option)
|
||||
char *strtok_next;
|
||||
FileName = strtok_r(p, delim, &strtok_next);
|
||||
// image type:
|
||||
char *Extension = strrchr(FileName, '.');
|
||||
const char *Extension = strrchr(FileName, '.');
|
||||
if (Extension) {
|
||||
if (strcasecmp(Extension, ".jpg") == 0 || strcasecmp(Extension, ".jpeg") == 0)
|
||||
Jpeg = true;
|
||||
@ -795,16 +795,17 @@ void cSVDRP::CmdGRAB(const char *Option)
|
||||
char RealFileName[PATH_MAX];
|
||||
if (FileName) {
|
||||
if (grabImageDir) {
|
||||
cString s;
|
||||
char *slash = strrchr(FileName, '/');
|
||||
cString s(FileName);
|
||||
FileName = s;
|
||||
const char *slash = strrchr(FileName, '/');
|
||||
if (!slash) {
|
||||
s = AddDirectory(grabImageDir, FileName);
|
||||
FileName = s;
|
||||
}
|
||||
slash = strrchr(FileName, '/'); // there definitely is one
|
||||
*slash = 0;
|
||||
char *r = realpath(FileName, RealFileName);
|
||||
*slash = '/';
|
||||
cString t(s);
|
||||
t.Truncate(slash - FileName);
|
||||
char *r = realpath(t, RealFileName);
|
||||
if (!r) {
|
||||
LOG_ERROR_STR(FileName);
|
||||
Reply(501, "Invalid file name \"%s\"", FileName);
|
||||
@ -1606,7 +1607,7 @@ bool cSVDRP::Process(void)
|
||||
char buffer[BUFSIZ];
|
||||
gethostname(buffer, sizeof(buffer));
|
||||
time_t now = time(NULL);
|
||||
Reply(220, "%s SVDRP VideoDiskRecorder %s; %s", buffer, VDRVERSION, *TimeToString(now));
|
||||
Reply(220, "%s SVDRP VideoDiskRecorder %s; %s; %s", buffer, VDRVERSION, *TimeToString(now), cCharSetConv::SystemCharacterTable() ? cCharSetConv::SystemCharacterTable() : "UTF-8");
|
||||
}
|
||||
if (NewConnection)
|
||||
lastActivity = time(NULL);
|
||||
|
13
thread.c
13
thread.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: thread.c 1.64 2008/02/15 14:17:42 kls Exp $
|
||||
* $Id: thread.c 1.64.1.1 2008/08/16 11:00:40 kls Exp $
|
||||
*/
|
||||
|
||||
#include "thread.h"
|
||||
@ -24,11 +24,12 @@ static bool GetAbsTime(struct timespec *Abstime, int MillisecondsFromNow)
|
||||
{
|
||||
struct timeval now;
|
||||
if (gettimeofday(&now, NULL) == 0) { // get current time
|
||||
now.tv_usec += MillisecondsFromNow * 1000; // add the timeout
|
||||
while (now.tv_usec >= 1000000) { // take care of an overflow
|
||||
now.tv_sec++;
|
||||
now.tv_usec -= 1000000;
|
||||
}
|
||||
now.tv_sec += MillisecondsFromNow / 1000; // add full seconds
|
||||
now.tv_usec += (MillisecondsFromNow % 1000) * 1000; // add microseconds
|
||||
if (now.tv_usec >= 1000000) { // take care of an overflow
|
||||
now.tv_sec++;
|
||||
now.tv_usec -= 1000000;
|
||||
}
|
||||
Abstime->tv_sec = now.tv_sec; // seconds
|
||||
Abstime->tv_nsec = now.tv_usec * 1000; // nano seconds
|
||||
return true;
|
||||
|
3
timers.c
3
timers.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: timers.c 1.73 2008/02/16 14:47:40 kls Exp $
|
||||
* $Id: timers.c 1.73.1.1 2008/04/13 12:47:12 kls Exp $
|
||||
*/
|
||||
|
||||
#include "timers.h"
|
||||
@ -92,6 +92,7 @@ cTimer::cTimer(const cTimer &Timer)
|
||||
channel = NULL;
|
||||
aux = NULL;
|
||||
event = NULL;
|
||||
flags = tfNone;
|
||||
*this = Timer;
|
||||
}
|
||||
|
||||
|
7
vdr.c
7
vdr.c
@ -22,7 +22,7 @@
|
||||
*
|
||||
* The project's page is at http://www.cadsoft.de/vdr
|
||||
*
|
||||
* $Id: vdr.c 1.313 2008/03/14 13:22:39 kls Exp $
|
||||
* $Id: vdr.c 1.313.1.1 2008/09/06 11:07:52 kls Exp $
|
||||
*/
|
||||
|
||||
#include <getopt.h>
|
||||
@ -141,7 +141,6 @@ static bool SetKeepCaps(bool On)
|
||||
|
||||
static void SignalHandler(int signum)
|
||||
{
|
||||
isyslog("caught signal %d", signum);
|
||||
switch (signum) {
|
||||
case SIGPIPE:
|
||||
break;
|
||||
@ -1288,9 +1287,11 @@ Exit:
|
||||
ReportEpgBugFixStats();
|
||||
if (WatchdogTimeout > 0)
|
||||
dsyslog("max. latency time %d seconds", MaxLatencyTime);
|
||||
isyslog("exiting, exit code %d", ShutdownHandler.GetExitCode());
|
||||
if (LastSignal)
|
||||
isyslog("caught signal %d", LastSignal);
|
||||
if (ShutdownHandler.EmergencyExitRequested())
|
||||
esyslog("emergency exit!");
|
||||
isyslog("exiting, exit code %d", ShutdownHandler.GetExitCode());
|
||||
if (SysLogLevel > 0)
|
||||
closelog();
|
||||
if (HasStdin)
|
||||
|
Loading…
x
Reference in New Issue
Block a user