summaryrefslogtreecommitdiff
path: root/dvbapi.c
diff options
context:
space:
mode:
authorKlaus Schmidinger <kls (at) cadsoft (dot) de>2002-04-07 18:00:00 +0200
committerKlaus Schmidinger <kls (at) cadsoft (dot) de>2002-04-07 18:00:00 +0200
commitc9a5d8ea5328e4a8bcb0c3423b825c02cb0c3b27 (patch)
tree5c60d0e45adc0cb556840fd48fa182a877184802 /dvbapi.c
parent262327908d329a8c292d8ae71fe9d135390a3cde (diff)
downloadvdr-patch-lnbsharing-c9a5d8ea5328e4a8bcb0c3423b825c02cb0c3b27.tar.gz
vdr-patch-lnbsharing-c9a5d8ea5328e4a8bcb0c3423b825c02cb0c3b27.tar.bz2
Version 1.0.0vdr-1.0.0
- Fixed a problem with wrong EPG data in the Schedules menu (thanks to Tobias Kerner, problem was initially reported by Michel Moster, but somehow I had misplaced his message...). - Added Spanish language texts (thanks to Ruben Nunez Francisco). - Fixed resetting the "First day" timer parameter once the timer actually starts recording. - Fixed the still picture workaround in case the progress display is active (thanks to Gerald Raaf). - Fixed a problem with accessing the epg.data file before it is fully written (thanks to Thilo Wunderlich for reporting this one). - Now the EPG scan skips channels that have their 'Ca' parameter explicitly set to an other DVB card (suggested by Sergei Haller). - Fixed a possible hangup when reading a broken epg.data file (thanks to Henning Holtschneider for pointing this one out). - Fixed a bug in the editing process in case a previously edited file with the same name was manually deleted on a system with more than one video directory (thanks to Dirk Wiebel for reporting this one).
Diffstat (limited to 'dvbapi.c')
-rw-r--r--dvbapi.c34
1 files changed, 26 insertions, 8 deletions
diff --git a/dvbapi.c b/dvbapi.c
index d990618..9d59d90 100644
--- a/dvbapi.c
+++ b/dvbapi.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: dvbapi.c 1.166 2002/03/29 11:32:47 kls Exp $
+ * $Id: dvbapi.c 1.170 2002/04/07 09:35:51 kls Exp $
*/
#include "dvbapi.h"
@@ -1194,8 +1194,10 @@ void cReplayBuffer::DisplayFrame(uchar *b, int Length)
CHECK(ioctl(videoDev, VIDEO_STILLPICTURE, &sp));
#else
#define MIN_IFRAME 400000
- for (int i = MIN_IFRAME / Length + 1; i > 0; i--)
+ for (int i = MIN_IFRAME / Length + 1; i > 0; i--) {
safe_write(videoDev, b, Length);
+ usleep(1); // allows the buffer to be displayed in case the progress display is active
+ }
#endif
}
@@ -1612,6 +1614,18 @@ bool cVideoCutter::Start(const char *FileName)
cRecording Recording(FileName);
const char *evn = Recording.PrefixFileName('%');
if (evn && RemoveVideoFile(evn) && MakeDirs(evn, true)) {
+ // XXX this can be removed once RenameVideoFile() follows symlinks (see videodir.c)
+ // remove a possible deleted recording with the same name to avoid symlink mixups:
+ char *s = strdup(evn);
+ char *e = strrchr(s, '.');
+ if (e) {
+ if (strcmp(e, ".rec") == 0) {
+ strcpy(e, ".del");
+ RemoveVideoFile(s);
+ }
+ }
+ delete s;
+ // XXX
editedVersionName = strdup(evn);
Recording.WriteSummary();
cuttingBuffer = new cCuttingBuffer(FileName, editedVersionName);
@@ -2803,12 +2817,16 @@ void cEITScanner::Process(void)
numTransponders = 0;
}
cChannel *Channel = Channels.GetByNumber(ch);
- if (Channel && Channel->pnr && !TransponderScanned(Channel)) {
- if (DvbApi == cDvbApi::PrimaryDvbApi && !currentChannel)
- currentChannel = DvbApi->Channel();
- Channel->Switch(DvbApi, false);
- lastChannel = ch;
- break;
+ if (Channel) {
+ if (Channel->ca <= MAXDVBAPI && !DvbApi->ProvidesCa(Channel->ca))
+ break; // the channel says it explicitly needs a different card
+ if (Channel->pnr && !TransponderScanned(Channel)) {
+ if (DvbApi == cDvbApi::PrimaryDvbApi && !currentChannel)
+ currentChannel = DvbApi->Channel();
+ Channel->Switch(DvbApi, false);
+ lastChannel = ch;
+ break;
+ }
}
ch++;
}