diff options
author | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2003-08-03 18:00:00 +0200 |
---|---|---|
committer | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2003-08-03 18:00:00 +0200 |
commit | 6c2c3ace8bfe8918b516cc155fbf1104baa107f9 (patch) | |
tree | 93730209c4e4a035ecaad7bb288280e069f5e6d4 | |
parent | 64ddfca3b0e37d877bb3cb247fb8b2ad810dd47f (diff) | |
download | vdr-patch-lnbsharing-vdr-1.2.2.tar.gz vdr-patch-lnbsharing-vdr-1.2.2.tar.bz2 |
Version 1.2.2vdr-1.2.2
- Fixed a bug in channel switching after Left/Right has been pressed (thanks to
Michael Walle for reporting this one).
- Improved channel switching in case of numerical input by switching as soon as
the channel is unique (suggested by Jaakko Hyvätti).
- Fixed creating a new channel in the "Channels" menu in case the 'channels.conf'
contains ':@nnn' lines with no text (thanks to Guy Roussin for reporting this
one).
- Changed the behaviour of the '0' key in normal viewing mode so that a channel
only qualifies as "previous" if it has been selected for at least 3 seconds
(suggested by Thomas Keil).
- Now clearing the channel info display when entering numeric keys to switch
channels (suggested by Guy Roussin).
- Added missing I18N entry for "Ppid" (thanks to Rolf Ahrenberg).
- Fixed handling the color buttons in the "Edit channel" menu (thanks to Thomas
Keil for reporting this one).
- Fixed an occasional "Broken pipe" error in SVDRP connections (thanks to Gerhard
Steiner for reporting this one).
- Fixed checking CA capabilities with the dvb-kernel driver (thanks to Kenneth
Aafløy).
- Fixed selecting the device, because sometimes an FTA recording terminated a
CA recording (thanks to Emil Naepflein).
- Fixed a possible crash in case a VFAT file system is used without compiling VDR
with VFAT=1 (thanks to Ernst Fürst for reporting this one).
- Now the program uses the values of VIDEODIR and PLUGINDIR defined in Makefile
or Make.config as defaults (thanks to Steffen Barszus).
- Added the usual menu timeout to the CAM menus.
-rw-r--r-- | CONTRIBUTORS | 25 | ||||
-rw-r--r-- | HISTORY | 29 | ||||
-rw-r--r-- | MANUAL | 3 | ||||
-rw-r--r-- | Make.config.template | 3 | ||||
-rw-r--r-- | Makefile | 5 | ||||
-rw-r--r-- | channels.conf | 6 | ||||
-rw-r--r-- | ci.c | 4 | ||||
-rw-r--r-- | config.h | 6 | ||||
-rw-r--r-- | device.c | 39 | ||||
-rw-r--r-- | i18n.c | 19 | ||||
-rw-r--r-- | menu.c | 64 | ||||
-rw-r--r-- | menu.h | 4 | ||||
-rw-r--r-- | recorder.c | 8 | ||||
-rw-r--r-- | svdrp.c | 4 | ||||
-rw-r--r-- | vdr.c | 14 | ||||
-rw-r--r-- | videodir.c | 4 |
16 files changed, 182 insertions, 55 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 7e5886d..6b199f2 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -518,6 +518,7 @@ Gerhard Steiner <steiner@mail.austria.com> for fixing resume file handling in case the resume.vdr file can't be written for reporting a problem with newly created timers in case they are not confirmed with "Ok" + for reporting an occasional "Broken pipe" error in SVDRP connections Jaakko Hyvätti <jaakko@hyvatti.iki.fi> for translating OSD texts to the Finnish language @@ -525,12 +526,16 @@ Jaakko Hyvätti <jaakko@hyvatti.iki.fi> for fixing recording overlapping timers on the same channel in case DO_REC_AND_PLAY_ON_PRIMARY_DEVICE and/or DO_MULTIPLE_RECORDINGS is not defined for fixing the minimum lifespan of deleted recordings + for suggesting to improve channel switching in case of numerical input by switching + as soon as the channel is unique Dennis Noordsij <dennis.noordsij@wiral.com> for reporting a small glitch when switching channels Steffen Barszus <st_barszus@gmx.de> for reporting a bug in switching audio tracks in 'Transfer Mode' on the primary DVB device + for making the program use the values of VIDEODIR and PLUGINDIR defined in Makefile + or Makefile.config as defaults Peter Seyringer <e9425234@student.tuwien.ac.at> for reporting a bug in saving the polarization parameter of channels that have a @@ -550,6 +555,8 @@ Guy Roussin <guy.roussin@teledetection.fr> for suggesting not to display channel group delimiters without text for reporting a bug in handling channels in the "Channels" menu in case there are ':@nnn' group separators without names + for suggesting to clear the channel info display when entering numeric keys to + switch channels Georg Hitsch <georg@hitsch.at> for his help in keeping 'channels.conf' up to date @@ -561,6 +568,8 @@ Clemens Kirchgatterer <clemens@thf.ath.cx> Emil Naepflein <Emil.Naepflein@philosys.de> for suggesting to take an active SVDRP connection into account when doing shutdown or housekeeping + for fixing selecting the device, because sometimes an FTA recording terminated a + CA recording Gerald Berwolf <genka@genka.de> for suggesting to deactivate some templates in tools.h in case some plugin needs to @@ -719,3 +728,19 @@ Jon Burgess <mplayer@jburgess.uklinux.net> Thomas Schmidt <thomas.schmidt@in.stud.tu-ilmenau.de> for reporting a crash when cancelling a newly created timer + +Michael Walle <michael.walle@web.de> + for reporting a bug in channel switching after Left/Right has been pressed + +Thomas Keil <tk@commedia-group.com> + for suggesting to change the behaviour of the '0' key in normal viewing mode so + that a channel only qualifies as "previous" if it has been selected for at least + 3 seconds + for reporting a bug in handling the color buttons in the "Edit channel" menu + +Kenneth Aafløy <ke-aa@frisurf.no> + for fixing checking CA capabilities with the dvb-kernel driver + +Ernst Fürst <ernstfuerst@swissonline.ch> + for reporting a crash in case a VFAT file system is used without compiling VDR + with VFAT=1 @@ -2253,3 +2253,32 @@ Video Disk Recorder Revision History channel (thanks to Malcolm Caldwell for reporting this one). - Some corrections to the Finnish OSD texts (thanks to Niko Tarnanen and Rolf Ahrenberg). + +2003-08-03: Version 1.2.2 + +- Fixed a bug in channel switching after Left/Right has been pressed (thanks to + Michael Walle for reporting this one). +- Improved channel switching in case of numerical input by switching as soon as + the channel is unique (suggested by Jaakko Hyvätti). +- Fixed creating a new channel in the "Channels" menu in case the 'channels.conf' + contains ':@nnn' lines with no text (thanks to Guy Roussin for reporting this + one). +- Changed the behaviour of the '0' key in normal viewing mode so that a channel + only qualifies as "previous" if it has been selected for at least 3 seconds + (suggested by Thomas Keil). +- Now clearing the channel info display when entering numeric keys to switch + channels (suggested by Guy Roussin). +- Added missing I18N entry for "Ppid" (thanks to Rolf Ahrenberg). +- Fixed handling the color buttons in the "Edit channel" menu (thanks to Thomas + Keil for reporting this one). +- Fixed an occasional "Broken pipe" error in SVDRP connections (thanks to Gerhard + Steiner for reporting this one). +- Fixed checking CA capabilities with the dvb-kernel driver (thanks to Kenneth + Aafløy). +- Fixed selecting the device, because sometimes an FTA recording terminated a + CA recording (thanks to Emil Naepflein). +- Fixed a possible crash in case a VFAT file system is used without compiling VDR + with VFAT=1 (thanks to Ernst Fürst for reporting this one). +- Now the program uses the values of VIDEODIR and PLUGINDIR defined in Makefile + or Makefile.config as defaults (thanks to Steffen Barszus). +- Added the usual menu timeout to the CAM menus. @@ -154,7 +154,8 @@ Version 1.2 menu) by pressing the "Blue" button. Pressing the '0' key in normal viewing mode toggles between the current and - the previous channel. + the previous channel. A channel is considered "previous" if it has been + selected for at least 3 seconds. After switching to a different channel the channel number and name, as well as the current time are displayed at the top of the screen. If available, the diff --git a/Make.config.template b/Make.config.template index 774abbf..ff5946f 100644 --- a/Make.config.template +++ b/Make.config.template @@ -6,7 +6,7 @@ # See the main source file 'vdr.c' for copyright information and # how to reach the author. # -# $Id: Make.config.template 1.1 2002/11/01 14:05:36 kls Exp $ +# $Id: Make.config.template 1.2 2003/08/02 14:25:53 kls Exp $ ### The C compiler and options: @@ -22,4 +22,5 @@ DVBDIR = ../DVB MANDIR = /usr/local/man BINDIR = /usr/local/bin +PLUGINDIR= ./PLUGINS VIDEODIR = /video @@ -4,7 +4,7 @@ # See the main source file 'vdr.c' for copyright information and # how to reach the author. # -# $Id: Makefile 1.56 2003/01/06 12:28:09 kls Exp $ +# $Id: Makefile 1.57 2003/08/02 14:27:21 kls Exp $ .DELETE_ON_ERROR: @@ -49,6 +49,9 @@ DEFINES += -DREMOTE_$(REMOTE) DEFINES += -D_GNU_SOURCE +DEFINES += -DVIDEODIR=\"$(VIDEODIR)\" +DEFINES += -DPLUGINDIR=\"$(PLUGINDIR)/lib\" + ifdef DEBUG_OSD DEFINES += -DDEBUG_OSD NCURSESLIB = -lncurses diff --git a/channels.conf b/channels.conf index 03b71aa..5bc0e8a 100644 --- a/channels.conf +++ b/channels.conf @@ -85,9 +85,9 @@ Premiere Direkt 3D:12070:h:S19.2E:27500:511:512:0:101:212:0:0:0 :PW Erotic Beate-Uhse.TV:12071:h:S19.2E:27500:1023:1024:0:101:21:0:0:0 Premiere Erotik 1:12031:h:S19.2E:27500:1279:1280:2:101:513:0:0:0 -Premiere Erotik 2:12070:h:0:27500:1535:1536:0:101:778:0:0:0 -Premiere Erotik 3:12070:h:0:27500:1791:1792:0:101:779:0:0:0 -Premiere Erotik 4:12070:h:0:27500:3583:3584:0:101:780:0:0:0 +Premiere Erotik 2:12070:h:S19.2E:27500:1535:1536:0:101:778:0:0:0 +Premiere Erotik 3:12070:h:S19.2E:27500:1791:1792:0:101:779:0:0:0 +Premiere Erotik 4:12070:h:S19.2E:27500:3583:3584:0:101:780:0:0:0 :Sportsworld Premiere Sport 1:11720:h:S19.2E:27500:255:256,257:0:101:17:0:0:0 Premiere Sport 2:12031:h:S19.2E:27500:3839:3840:0:101:27:0:0:0 @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: ci.c 1.15 2003/05/25 11:45:11 kls Exp $ + * $Id: ci.c 1.16 2003/08/02 10:00:01 kls Exp $ */ /* XXX TODO @@ -1314,7 +1314,7 @@ cCiHandler *cCiHandler::CreateCiHandler(const char *FileName) int NumSlots = Caps.slot_num; if (NumSlots > 0) { //XXX dsyslog("CAM: found %d CAM slots", NumSlots); // TODO let's do this only once we can be sure that there _really_ is a CAM adapter! - if (Caps.slot_type == CA_CI_LINK) + if ((Caps.slot_type & CA_CI_LINK) != 0) return new cCiHandler(fd_ca, NumSlots); else isyslog("CAM doesn't support link layer interface"); @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: config.h 1.164 2003/06/06 12:28:20 kls Exp $ + * $Id: config.h 1.165 2003/06/12 20:37:14 kls Exp $ */ #ifndef __CONFIG_H @@ -19,8 +19,8 @@ #include "device.h" #include "tools.h" -#define VDRVERSION "1.2.1" -#define VDRVERSNUM 10201 // Version * 10000 + Major * 100 + Minor +#define VDRVERSION "1.2.2" +#define VDRVERSNUM 10202 // Version * 10000 + Major * 100 + Minor #define MAXPRIORITY 99 #define MAXLIFETIME 99 @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: device.c 1.45 2003/06/08 09:19:59 kls Exp $ + * $Id: device.c 1.46 2003/08/02 11:44:28 kls Exp $ */ #include "device.h" @@ -142,23 +142,34 @@ cDevice *cDevice::GetDevice(int Index) cDevice *cDevice::GetDevice(const cChannel *Channel, int Priority, bool *NeedsDetachReceivers) { cDevice *d = NULL; + int select = 7, pri; + for (int i = 0; i < numDevices; i++) { bool ndr; - if (device[i]->ProvidesChannel(Channel, Priority, &ndr) // this device is basicly able to do the job - && (!d // we don't have a device yet, or... - || (device[i]->Receiving() && !ndr) // ...this one is already receiving and allows additional receivers, or... - || !d->Receiving() // ...the one we have is not receiving... - && (device[i]->Priority() < d->Priority() // ...this one has an even lower Priority, or... - || device[i]->Priority() == d->Priority() // ...same Priority... - && device[i]->ProvidesCa(Channel->Ca()) < d->ProvidesCa(Channel->Ca()) // ...but this one provides fewer Ca values - ) - ) - ) { - d = device[i]; - if (NeedsDetachReceivers) - *NeedsDetachReceivers = ndr; + if (device[i]->ProvidesChannel(Channel, Priority, &ndr)) { // this device is basicly able to do the job + if (device[i]->Receiving() && !ndr) + pri = 0; // receiving and allows additional receivers + else if (d && !device[i]->Receiving() && device[i]->ProvidesCa(Channel->Ca()) < d->ProvidesCa(Channel->Ca())) + pri = 1; // free and fewer Ca's + else if (!device[i]->Receiving() && !device[i]->IsPrimaryDevice()) + pri = 2; // free and not the primary device + else if (!device[i]->Receiving()) + pri = 3; // free + else if (d && device[i]->Priority() < d->Priority()) + pri = 4; // receiving but priority is lower + else if (d && device[i]->Priority() == d->Priority() && device[i]->ProvidesCa(Channel->Ca()) < d->ProvidesCa(Channel->Ca())) + pri = 5; // receiving with same priority but fewer Ca's + else + pri = 6; // all others + if (pri < select) { + select = pri; + d = device[i]; + if (NeedsDetachReceivers) + *NeedsDetachReceivers = ndr; + } } } + /*XXX+ too complex with multiple recordings per device if (!d && Ca > MAXDEVICES) { // We didn't find one the easy way, so now we have to try harder: @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: i18n.c 1.128 2003/06/09 09:49:29 kls Exp $ + * $Id: i18n.c 1.129 2003/07/13 15:03:07 kls Exp $ * * Translations provided by: * @@ -1044,6 +1044,23 @@ const tI18nPhrase Phrases[] = { "Vpid", "PID Vídeo", }, + { "Ppid", + "Ppid", + "Ppid", + "Ppid", + "Ppid", + "Ppid", + "Ppid", + "Ppid", + "Aikatieto PID", + "Ppid", + "Ppid", + "Ppid", + "Ppid", + "Ppid", + "Ppid", + "Ppid", + }, { "Apid1", "Apid1", "Apid1", @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: menu.c 1.256 2003/06/07 12:31:57 kls Exp $ + * $Id: menu.c 1.264 2003/08/03 09:38:37 kls Exp $ */ #include "menu.h" @@ -713,6 +713,8 @@ void cMenuChannels::Propagate(void) eOSState cMenuChannels::Switch(void) { + if (HasSubMenu()) + return osContinue; cChannel *ch = GetChannel(Current()); if (ch) cDevice::PrimaryDevice()->SwitchChannel(ch, true); @@ -733,12 +735,12 @@ eOSState cMenuChannels::New(void) { if (HasSubMenu()) return osContinue; - return AddSubMenu(new cMenuEditChannel(Channels.Get(Current()), true)); + return AddSubMenu(new cMenuEditChannel(GetChannel(Current()), true)); } eOSState cMenuChannels::Delete(void) { - if (Count() > 0) { + if (!HasSubMenu() && Count() > 0) { int Index = Current(); cChannel *channel = GetChannel(Current()); int DeletedChannel = channel->Number(); @@ -793,7 +795,9 @@ eOSState cMenuChannels::ProcessKey(eKeys Key) case kRed: return Edit(); case kGreen: return New(); case kYellow: return Delete(); - case kBlue: Mark(); break; + case kBlue: if (!HasSubMenu()) + Mark(); + break; default: break; } } @@ -1558,6 +1562,7 @@ cMenuCam::cMenuCam(cCiMenu *CiMenu) Add(new cOsdItem(ciMenu->BottomText())); Display(); dsyslog("CAM: Menu - %s", ciMenu->TitleText()); + lastActivity = time(NULL); } cMenuCam::~cMenuCam() @@ -1586,6 +1591,10 @@ eOSState cMenuCam::ProcessKey(eKeys Key) default: break; } } + if (Key != kNone) + lastActivity = time(NULL); + else if (time(NULL) - lastActivity > MENUTIMEOUT) + state = osEnd; return state; } @@ -1603,6 +1612,7 @@ cMenuCamEnquiry::cMenuCamEnquiry(cCiEnquiry *CiEnquiry) SetTitle(ciEnquiry->Text() ? ciEnquiry->Text() : "CAM"); Add(new cMenuEditNumItem("Input", input, Length, ciEnquiry->Blind())); Display(); + lastActivity = time(NULL); } cMenuCamEnquiry::~cMenuCamEnquiry() @@ -1631,6 +1641,10 @@ eOSState cMenuCamEnquiry::ProcessKey(eKeys Key) default: break; } } + if (Key != kNone) + lastActivity = time(NULL); + else if (time(NULL) - lastActivity > MENUTIMEOUT) + state = osEnd; return state; } @@ -2740,8 +2754,28 @@ eOSState cDisplayChannel::ProcessKey(eKeys Key) number = number * 10 + Key - k0; if (number > 0) { cChannel *channel = Channels.GetByNumber(number); + Interface->Clear(); + withInfo = false; DisplayChannel(channel); lastTime = time_ms(); + // Lets see if there can be any useful further input: + int n = channel ? number * 10 : 0; + while (channel && (channel = Channels.Next(channel)) != NULL) { + if (!channel->GroupSep()) { + if (n <= channel->Number() && channel->Number() <= n + 9) { + n = 0; + break; + } + if (channel->Number() > n) + n *= 10; + } + } + if (n > 0) { + // This channel is the only one that fits the input, so let's take it right away: + Interface->Flush(); // makes sure the user sees his last input + Channels.SwitchTo(number); + return osEnd; + } } } break; @@ -2783,6 +2817,7 @@ eOSState cDisplayChannel::ProcessKey(eKeys Key) case kChanUp: case kChanDn|k_Repeat: case kChanDn: + group = -1; Refresh(); break; case kNone: @@ -2968,16 +3003,19 @@ cRecordControl::cRecordControl(cDevice *Device, cTimer *Timer, bool Pause) } cRecordingUserCommand::InvokeCommand(RUC_BEFORERECORDING, fileName); - const cChannel *ch = timer->Channel(); - recorder = new cRecorder(fileName, ch->Ca(), timer->Priority(), ch->Vpid(), ch->Apid1(), ch->Apid2(), ch->Dpid1(), ch->Dpid2()); - if (device->AttachReceiver(recorder)) { - Recording.WriteSummary(); - cStatus::MsgRecording(device, Recording.Name()); - if (!Timer && !cReplayControl::LastReplayed()) // an instant recording, maybe from cRecordControls::PauseLiveVideo() - cReplayControl::SetRecording(fileName, Recording.Name()); + isyslog("record %s", fileName); + if (MakeDirs(fileName, true)) { + const cChannel *ch = timer->Channel(); + recorder = new cRecorder(fileName, ch->Ca(), timer->Priority(), ch->Vpid(), ch->Apid1(), ch->Apid2(), ch->Dpid1(), ch->Dpid2()); + if (device->AttachReceiver(recorder)) { + Recording.WriteSummary(); + cStatus::MsgRecording(device, Recording.Name()); + if (!Timer && !cReplayControl::LastReplayed()) // an instant recording, maybe from cRecordControls::PauseLiveVideo() + cReplayControl::SetRecording(fileName, Recording.Name()); + } + else + DELETENULL(recorder); } - else - DELETENULL(recorder); } cRecordControl::~cRecordControl() @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: menu.h 1.56 2003/05/24 16:35:52 kls Exp $ + * $Id: menu.h 1.57 2003/08/03 09:37:18 kls Exp $ */ #ifndef __MENU_H @@ -62,6 +62,7 @@ public: class cMenuCam : public cOsdMenu { private: cCiMenu *ciMenu; + time_t lastActivity; bool selected; eOSState Select(void); public: @@ -73,6 +74,7 @@ public: class cMenuCamEnquiry : public cOsdMenu { private: cCiEnquiry *ciEnquiry; + time_t lastActivity; char *input; bool replied; eOSState Reply(void); @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: recorder.c 1.6 2003/05/16 13:33:04 kls Exp $ + * $Id: recorder.c 1.7 2003/08/02 13:01:19 kls Exp $ */ #include <stdarg.h> @@ -34,12 +34,6 @@ cRecorder::cRecorder(const char *FileName, int Ca, int Priority, int VPid, int A fileSize = 0; active = false; lastDiskSpaceCheck = time(NULL); - isyslog("record %s", FileName); - - // Create directories if necessary: - - if (!MakeDirs(FileName, true)) - return; // Make sure the disk is up and running: @@ -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.52 2003/06/06 13:30:52 kls Exp $ + * $Id: svdrp.c 1.53 2003/07/26 10:57:33 kls Exp $ */ #include "svdrp.h" @@ -1100,7 +1100,7 @@ bool cSVDRP::Process(void) } lastActivity = time(NULL); } - else if (r <= 0) { + else if (r < 0) { isyslog("lost connection to SVDRP client"); Close(); } @@ -22,7 +22,7 @@ * * The project's page is at http://www.cadsoft.de/vdr * - * $Id: vdr.c 1.160 2003/05/29 12:27:26 kls Exp $ + * $Id: vdr.c 1.162 2003/08/02 14:01:32 kls Exp $ */ #include <getopt.h> @@ -57,6 +57,7 @@ #define ACTIVITYTIMEOUT 60 // seconds before starting housekeeping #define SHUTDOWNWAIT 300 // seconds to wait in user prompt before automatic shutdown #define MANUALSTART 600 // seconds the next timer must be in the future to assume manual start +#define ZAPTIMEOUT 3 // seconds until a channel counts as "previous" for switching with '0' static int Interrupted = 0; @@ -92,7 +93,7 @@ int main(int argc, char *argv[]) #define DEFAULTSVDRPPORT 2001 #define DEFAULTWATCHDOG 0 // seconds -#define DEFAULTPLUGINDIR "./PLUGINS/lib" +#define DEFAULTPLUGINDIR PLUGINDIR int SVDRPport = DEFAULTSVDRPPORT; const char *AudioCommand = NULL; @@ -455,6 +456,8 @@ int main(int argc, char *argv[]) int LastChannel = -1; int LastTimerChannel = -1; int PreviousChannel = cDevice::CurrentChannel(); + int LastLastChannel = PreviousChannel; + time_t LastChannelChanged = time(NULL); time_t LastActivity = 0; int MaxLatencyTime = 0; bool ForceShutdown = false; @@ -492,9 +495,12 @@ int main(int argc, char *argv[]) if (!EITScanner.Active() && cDevice::CurrentChannel() != LastChannel) { if (!Menu) Menu = Temp = new cDisplayChannel(cDevice::CurrentChannel(), LastChannel > 0); - if (LastChannel > 0) - PreviousChannel = LastChannel; LastChannel = cDevice::CurrentChannel(); + LastChannelChanged = time(NULL); + } + if (LastLastChannel != LastChannel && time(NULL) - LastChannelChanged >= ZAPTIMEOUT) { + PreviousChannel = LastLastChannel; + LastLastChannel = LastChannel; } // Timers and Recordings: if (!Timers.BeingEdited()) { @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: videodir.c 1.9 2002/08/11 13:31:02 kls Exp $ + * $Id: videodir.c 1.10 2003/08/02 13:43:28 kls Exp $ */ #include "videodir.h" @@ -18,7 +18,7 @@ #include <unistd.h> #include "tools.h" -const char *VideoDirectory = "/video"; +const char *VideoDirectory = VIDEODIR; class cVideoDirectory { private: |