Removed signal handling and usleep(5000) from cDvbOsd::Cmd()

This commit is contained in:
Klaus Schmidinger 2003-03-09 10:01:02 +01:00
parent 6fae0a6d49
commit dfc60da1d5
3 changed files with 9 additions and 15 deletions

View File

@ -1959,7 +1959,7 @@ Video Disk Recorder Revision History
2003-02-16: Version 1.1.25 2003-02-16: Version 1.1.25
- Fixed high CPU load during replay (thanks Marcel Wiesweg for pointing out this - Fixed high CPU load during replay (thanks to Marcel Wiesweg for pointing out this
one). one).
- Fixed margin handling in cRingBufferLinear. - Fixed margin handling in cRingBufferLinear.
- Now polling the output device in 'Transfer Mode' and retrying to put packets - Now polling the output device in 'Transfer Mode' and retrying to put packets
@ -1970,3 +1970,8 @@ Video Disk Recorder Revision History
- Fixed broken support for raw OSDs of plugins (thanks to Marcel Wiesweg for - Fixed broken support for raw OSDs of plugins (thanks to Marcel Wiesweg for
reporting this one). reporting this one).
- Broken CAM connections are now restored automatically. - Broken CAM connections are now restored automatically.
2003-03-09: Version 1.1.26
- Removed signal handling and usleep(5000) from cDvbOsd::Cmd() (apparently this
is no longer necessary with DVB driver 1.0.0pre2 or later).

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: config.h 1.149 2003/02/15 11:01:04 kls Exp $ * $Id: config.h 1.150 2003/03/09 10:01:02 kls Exp $
*/ */
#ifndef __CONFIG_H #ifndef __CONFIG_H
@ -19,7 +19,7 @@
#include "device.h" #include "device.h"
#include "tools.h" #include "tools.h"
#define VDRVERSION "1.1.25" #define VDRVERSION "1.1.26"
#define MAXPRIORITY 99 #define MAXPRIORITY 99
#define MAXLIFETIME 99 #define MAXLIFETIME 99

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: dvbosd.c 1.19 2002/08/25 09:53:51 kls Exp $ * $Id: dvbosd.c 1.20 2003/03/09 09:59:13 kls Exp $
*/ */
#include "dvbosd.h" #include "dvbosd.h"
@ -60,18 +60,7 @@ void cDvbOsd::Cmd(OSD_Command cmd, int color, int x0, int y0, int x1, int y1, co
dc.x1 = x1; dc.x1 = x1;
dc.y1 = y1; dc.y1 = y1;
dc.data = (void *)data; dc.data = (void *)data;
// must block all signals, otherwise the command might not be fully executed
sigset_t set, oldset;
sigfillset(&set);
sigdelset(&set, SIGALRM);
sigprocmask(SIG_BLOCK, &set, &oldset);
ioctl(osdDev, OSD_SEND_CMD, &dc); ioctl(osdDev, OSD_SEND_CMD, &dc);
if (cmd == OSD_SetBlock) // XXX this is the only command that takes longer
usleep(5000); // XXX Workaround for a driver bug (cInterface::DisplayChannel() displayed texts at wrong places
// XXX and sometimes the OSD was no longer displayed).
// XXX Increase the value if the problem still persists on your particular system.
// TODO Check if this is still necessary with driver versions after 0.7.
sigprocmask(SIG_SETMASK, &oldset, NULL);
} }
} }