From patchwork Tue Sep 21 15:06:03 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "support\\.intranet" X-Patchwork-Id: 12832 Received: from mail.tu-berlin.de ([130.149.7.33]) by www.linuxtv.org with esmtp (Exim 4.69) (envelope-from ) id 1Oy4Q1-0007Cp-7E for vdr@linuxtv.org; Tue, 21 Sep 2010 17:06:06 +0200 X-tubIT-Incoming-IP: 212.52.84.104 Received: from cp-out4.libero.it ([212.52.84.104]) by mail.tu-berlin.de (exim-4.69/mailfrontend-d) with esmtp for id 1Oy4Q0-0004Xh-20; Tue, 21 Sep 2010 17:06:05 +0200 Received: from libero.it (192.168.33.215) by cp-out4.libero.it (8.5.107) id 4C871C9D00E5F8F0 for vdr@linuxtv.org; Tue, 21 Sep 2010 17:06:03 +0200 Date: Tue, 21 Sep 2010 17:06:03 +0200 Message-Id: MIME-Version: 1.0 X-Sensitivity: 3 From: "support\.intranet" To: "vdr" X-XaM3-API-Version: 4.3 (R1) (B3pl25) X-SenderIP: 79.24.135.63 X-tubIT-Score: 0.0 () X-PMX-Version: 5.5.5.374460, Antispam-Engine: 2.7.1.369594, Antispam-Data: 2010.9.21.145414 X-PMX-Spam: Gauge=IIIIIIII, Probability=8%, Report=' MIME_TEXT_ONLY_MP_MIXED 0.05, SUPERLONG_LINE 0.05, BODYTEXTP_SIZE_3000_LESS 0, BODY_SIZE_10000_PLUS 0, WEBMAIL_SOURCE 0, WEBMAIL_X_IP_HDR 0, __CT 0, __CTYPE_HAS_BOUNDARY 0, __CTYPE_MULTIPART 0, __CTYPE_MULTIPART_MIXED 0, __HAS_BLIZZARD_RCVD 0, __HAS_MSGID 0, __MIME_TEXT_ONLY 0, __MIME_VERSION 0, __SANE_MSGID 0, __TO_MALFORMED_2 0' X-LSpam-Score: -3.6 (---) X-LSpam-Report: No, score=-3.6 required=5.0 tests=BAYES_00=-2.599, RCVD_IN_DNSWL_LOW=-1 autolearn=ham Subject: [vdr] [PATCH] Add support for shared frondends cards X-BeenThere: vdr@linuxtv.org X-Mailman-Version: 2.1.11 Precedence: list Reply-To: VDR Mailing List List-Id: VDR Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Sep 2010 15:06:07 -0000 Status: O X-Status: X-Keywords: X-UID: 23560 diff -rupN vdr-1.7.16/config.c vdr-1.7.16-new/config.c --- vdr-1.7.16/config.c 2010-06-06 12:06:43.000000000 +0200 +++ vdr-1.7.16-new/config.c 2010-09-19 23:38:15.569140978 +0200 @@ -399,6 +399,7 @@ cSetup::cSetup(void) InitialVolume = -1; ChannelsWrap = 0; EmergencyExit = 1; + OnDemand = 0; } cSetup& cSetup::operator= (const cSetup &s) @@ -590,6 +591,7 @@ bool cSetup::Parse(const char *Name, con else if (!strcasecmp(Name, "InitialVolume")) InitialVolume = atoi(Value); else if (!strcasecmp(Name, "ChannelsWrap")) ChannelsWrap = atoi(Value); else if (!strcasecmp(Name, "EmergencyExit")) EmergencyExit = atoi(Value); + else if (!strcasecmp(Name, "OnDemand")) OnDemand = atoi(Value); else return false; return true; @@ -686,6 +688,7 @@ bool cSetup::Save(void) Store("InitialVolume", InitialVolume); Store("ChannelsWrap", ChannelsWrap); Store("EmergencyExit", EmergencyExit); + Store("OnDemand", OnDemand); Sort(); diff -rupN vdr-1.7.16/config.h vdr-1.7.16-new/config.h --- vdr-1.7.16/config.h 2010-09-12 13:31:21.000000000 +0200 +++ vdr-1.7.16-new/config.h 2010-09-19 23:38:15.569140978 +0200 @@ -291,6 +291,7 @@ public: int InitialVolume; int ChannelsWrap; int EmergencyExit; + int OnDemand; int __EndData__; cSetup(void); cSetup& operator= (const cSetup &s); diff -rupN vdr-1.7.16/device.c vdr-1.7.16-new/device.c --- vdr-1.7.16/device.c 2010-06-03 15:35:02.000000000 +0200 +++ vdr-1.7.16-new/device.c 2010-09-19 23:38:15.570141038 +0200 @@ -261,6 +261,7 @@ cDevice *cDevice::GetDevice(const cChann if (NumUsableSlots && SlotPriority[j] > MAXPRIORITY) continue; // there is no CAM available in this slot for (int i = 0; i < numDevices; i++) { + device[i]->Access(); if (device[i] == AvoidDevice) continue; // this device shall be temporarily avoided if (Channel->Ca() && Channel->Ca() <= CA_DVB_MAX && Channel->Ca() != device[i]->CardIndex() + 1) @@ -269,6 +270,9 @@ cDevice *cDevice::GetDevice(const cChann continue; // CAM slot can't be used with this device bool ndr; if (device[i]->ProvidesChannel(Channel, Priority, &ndr)) { // this device is basicly able to do the job + if (Setup.OnDemand) { + return device[i]; // Skip impact tests to avoid long waintings and timeouts + } if (NumUsableSlots && device[i]->CamSlot() && device[i]->CamSlot() != CamSlots.Get(j)) ndr = true; // using a different CAM slot requires detaching receivers // Put together an integer number that reflects the "impact" using @@ -633,6 +637,13 @@ bool cDevice::MaySwitchTransponder(void) return !Receiving(true) && !(pidHandles[ptAudio].pid || pidHandles[ptVideo].pid || pidHandles[ptDolby].pid); } +void cDevice::CloseAll() +{ + for (int i = 0; i < numDevices; i++) { + device[i]->Close(); + } +} + bool cDevice::SwitchChannel(const cChannel *Channel, bool LiveView) { if (LiveView) { @@ -698,6 +709,7 @@ eSetChannelResult cDevice::SetChannel(co eSetChannelResult Result = scrOk; + Device->Access(); // If this DVB card can't receive this channel, let's see if we can // use the card that actually can receive it and transfer data from there: @@ -771,6 +783,14 @@ void cDevice::ForceTransferMode(void) } } +void cDevice::Access(bool ondemand) +{ +} + +void cDevice::Close(void) +{ +} + bool cDevice::SetChannelDevice(const cChannel *Channel, bool LiveView) { return false; diff -rupN vdr-1.7.16/device.h vdr-1.7.16-new/device.h --- vdr-1.7.16/device.h 2010-04-05 11:51:29.000000000 +0200 +++ vdr-1.7.16-new/device.h 2010-09-19 23:50:40.741137254 +0200 @@ -159,6 +159,8 @@ public: static void Shutdown(void); ///< Closes down all devices. ///< Must be called at the end of the program. + virtual void CloseAll(void); + ///< Closes all devices in OnDemand mode (called by Access()). private: static int nextCardIndex; int cardIndex; @@ -189,6 +191,10 @@ protected: ///< device (On = false), it should do so in this function. ///< A derived class must call the MakePrimaryDevice() function of its ///< base class. + virtual void Access(bool ondemand = true); + ///< Actually access the adapter/frontend. + virtual void Close(void); + ///< Close the adapter/frontend file descriptors. public: bool IsPrimaryDevice(void) const { return this == primaryDevice; } int CardIndex(void) const { return cardIndex; } diff -rupN vdr-1.7.16/dvbdevice.c vdr-1.7.16-new/dvbdevice.c --- vdr-1.7.16/dvbdevice.c 2010-05-01 11:47:13.000000000 +0200 +++ vdr-1.7.16-new/dvbdevice.c 2010-09-19 23:38:15.573138184 +0200 @@ -669,62 +669,10 @@ cDvbDevice::cDvbDevice(int Adapter, int dvbTuner = NULL; frontendType = SYS_UNDEFINED; numProvidedSystems = 0; - - // Devices that are present on all card types: - - int fd_frontend = DvbOpen(DEV_DVB_FRONTEND, adapter, frontend, O_RDWR | O_NONBLOCK); - - // Common Interface: - - fd_ca = DvbOpen(DEV_DVB_CA, adapter, frontend, O_RDWR); - if (fd_ca >= 0) - ciAdapter = cDvbCiAdapter::CreateCiAdapter(this, fd_ca); - - // The DVR device (will be opened and closed as needed): - - fd_dvr = -1; - - // We only check the devices that must be present - the others will be checked before accessing them://XXX - - if (fd_frontend >= 0) { - if (ioctl(fd_frontend, FE_GET_INFO, &frontendInfo) >= 0) { - switch (frontendInfo.type) { - case FE_QPSK: frontendType = (frontendInfo.caps & FE_CAN_2G_MODULATION) ? SYS_DVBS2 : SYS_DVBS; break; - case FE_OFDM: frontendType = SYS_DVBT; break; - case FE_QAM: frontendType = SYS_DVBC_ANNEX_AC; break; - case FE_ATSC: frontendType = SYS_ATSC; break; - default: esyslog("ERROR: unknown frontend type %d on frontend %d/%d", frontendInfo.type, adapter, frontend); - } - } - else - LOG_ERROR; - if (frontendType != SYS_UNDEFINED) { - numProvidedSystems++; - if (frontendType == SYS_DVBS2) - numProvidedSystems++; - char Modulations[64]; - char *p = Modulations; - if (frontendInfo.caps & FE_CAN_QPSK) { numProvidedSystems++; p += sprintf(p, ",%s", MapToUserString(QPSK, ModulationValues)); } - if (frontendInfo.caps & FE_CAN_QAM_16) { numProvidedSystems++; p += sprintf(p, ",%s", MapToUserString(QAM_16, ModulationValues)); } - if (frontendInfo.caps & FE_CAN_QAM_32) { numProvidedSystems++; p += sprintf(p, ",%s", MapToUserString(QAM_32, ModulationValues)); } - if (frontendInfo.caps & FE_CAN_QAM_64) { numProvidedSystems++; p += sprintf(p, ",%s", MapToUserString(QAM_64, ModulationValues)); } - if (frontendInfo.caps & FE_CAN_QAM_128) { numProvidedSystems++; p += sprintf(p, ",%s", MapToUserString(QAM_128, ModulationValues)); } - if (frontendInfo.caps & FE_CAN_QAM_256) { numProvidedSystems++; p += sprintf(p, ",%s", MapToUserString(QAM_256, ModulationValues)); } - if (frontendInfo.caps & FE_CAN_8VSB) { numProvidedSystems++; p += sprintf(p, ",%s", MapToUserString(VSB_8, ModulationValues)); } - if (frontendInfo.caps & FE_CAN_16VSB) { numProvidedSystems++; p += sprintf(p, ",%s", MapToUserString(VSB_16, ModulationValues)); } - if (frontendInfo.caps & FE_CAN_TURBO_FEC){numProvidedSystems++; p += sprintf(p, ",%s", "TURBO_FEC"); } - if (p != Modulations) - p = Modulations + 1; // skips first ',' - else - p = (char *)"unknown modulations"; - isyslog("frontend %d/%d provides %s with %s (\"%s\")", adapter, frontend, DeliverySystems[frontendType], p, frontendInfo.name); - dvbTuner = new cDvbTuner(CardIndex() + 1, fd_frontend, adapter, frontend, frontendType); - } - } - else - esyslog("ERROR: can't open DVB device %d/%d", adapter, frontend); - - StartSectionHandler(); + openlevel = 0; + fd_frontend = -1; + fd_ca= -1; + Access(false); // If ondemand is disabled, access all devices on startup as usual } cDvbDevice::~cDvbDevice() @@ -741,6 +689,87 @@ cString cDvbDevice::DvbName(const char * return cString::sprintf("%s%d/%s%d", DEV_DVB_ADAPTER, Adapter, Name, Frontend); } +void cDvbDevice::Access(bool ondemand) +{ + if (ondemand == Setup.OnDemand) { + if (openlevel == 0) { + if (Setup.OnDemand) { + isyslog("Accessing device %d/%d", adapter, frontend); + CloseAll(); + } + // Devices that are present on all card types: + fd_frontend = DvbOpen(DEV_DVB_FRONTEND, adapter, frontend, O_RDWR | O_NONBLOCK); + + // Common Interface: + + fd_ca = DvbOpen(DEV_DVB_CA, adapter, frontend, O_RDWR); + if (fd_ca >= 0) + ciAdapter = cDvbCiAdapter::CreateCiAdapter(this, fd_ca); + + // The DVR device (will be opened and closed as needed): + + fd_dvr = -1; + + // We only check the devices that must be present - the others will be checked before accessing them://XXX + + if (fd_frontend >= 0) { + if (ioctl(fd_frontend, FE_GET_INFO, &frontendInfo) >= 0) { + switch (frontendInfo.type) { + case FE_QPSK: frontendType = (frontendInfo.caps & FE_CAN_2G_MODULATION) ? SYS_DVBS2 : SYS_DVBS; break; + case FE_OFDM: frontendType = SYS_DVBT; break; + case FE_QAM: frontendType = SYS_DVBC_ANNEX_AC; break; + case FE_ATSC: frontendType = SYS_ATSC; break; + default: esyslog("ERROR: unknown frontend type %d on frontend %d/%d", frontendInfo.type, adapter, frontend); + } + } + else + LOG_ERROR; + if (frontendType != SYS_UNDEFINED) { + numProvidedSystems++; + if (frontendType == SYS_DVBS2) + numProvidedSystems++; + char Modulations[64]; + char *p = Modulations; + if (frontendInfo.caps & FE_CAN_QPSK) { numProvidedSystems++; p += sprintf(p, ",%s", MapToUserString(QPSK, ModulationValues)); } + if (frontendInfo.caps & FE_CAN_QAM_16) { numProvidedSystems++; p += sprintf(p, ",%s", MapToUserString(QAM_16, ModulationValues)); } + if (frontendInfo.caps & FE_CAN_QAM_32) { numProvidedSystems++; p += sprintf(p, ",%s", MapToUserString(QAM_32, ModulationValues)); } + if (frontendInfo.caps & FE_CAN_QAM_64) { numProvidedSystems++; p += sprintf(p, ",%s", MapToUserString(QAM_64, ModulationValues)); } + if (frontendInfo.caps & FE_CAN_QAM_128) { numProvidedSystems++; p += sprintf(p, ",%s", MapToUserString(QAM_128, ModulationValues)); } + if (frontendInfo.caps & FE_CAN_QAM_256) { numProvidedSystems++; p += sprintf(p, ",%s", MapToUserString(QAM_256, ModulationValues)); } + if (frontendInfo.caps & FE_CAN_8VSB) { numProvidedSystems++; p += sprintf(p, ",%s", MapToUserString(VSB_8, ModulationValues)); } + if (frontendInfo.caps & FE_CAN_16VSB) { numProvidedSystems++; p += sprintf(p, ",%s", MapToUserString(VSB_16, ModulationValues)); } + if (frontendInfo.caps & FE_CAN_TURBO_FEC){numProvidedSystems++; p += sprintf(p, ",%s", "TURBO_FEC"); } + if (p != Modulations) + p = Modulations + 1; // skips first ',' + else + p = (char *)"unknown modulations"; + isyslog("frontend %d/%d provides %s with %s (\"%s\")", adapter, frontend, DeliverySystems[frontendType], p, frontendInfo.name); + dvbTuner = new cDvbTuner(CardIndex() + 1, fd_frontend, adapter, frontend, frontendType); + } + } + else { + esyslog("ERROR: can't open DVB device %d/%d", adapter, frontend); + } + StartSectionHandler(); + openlevel = 1; + } + } +} + +void cDvbDevice::Close(void) +{ + if (Setup.OnDemand == true && openlevel == 1) { + isyslog("Closing device %d/%d", adapter, frontend); + StopSectionHandler(); + delete dvbTuner; + delete ciAdapter; + //sleep(2); + close(fd_ca); + close(fd_frontend); + openlevel = 0; + } +} + int cDvbDevice::DvbOpen(const char *Name, int Adapter, int Frontend, int Mode, bool ReportError) { cString FileName = DvbName(Name, Adapter, Frontend); diff -rupN vdr-1.7.16/dvbdevice.h vdr-1.7.16-new/dvbdevice.h --- vdr-1.7.16/dvbdevice.h 2010-04-11 12:29:37.000000000 +0200 +++ vdr-1.7.16-new/dvbdevice.h 2010-09-19 23:50:46.828386774 +0200 @@ -115,13 +115,18 @@ public: ///< Initializes the DVB devices. ///< Must be called before accessing any DVB functions. ///< \return True if any devices are available. + virtual void Access(bool ondemand = true); + ///< Actually access the adapter/frontend. + virtual void Close(void); + ///< Close the adapter/frontend file descriptors. protected: int adapter, frontend; private: dvb_frontend_info frontendInfo; int numProvidedSystems; fe_delivery_system frontendType; - int fd_dvr, fd_ca; + int fd_dvr, fd_ca, fd_frontend; + int openlevel; public: cDvbDevice(int Adapter, int Frontend); virtual ~cDvbDevice(); diff -rupN vdr-1.7.16/menu.c vdr-1.7.16-new/menu.c --- vdr-1.7.16/menu.c 2010-06-06 11:56:16.000000000 +0200 +++ vdr-1.7.16-new/menu.c 2010-09-19 23:38:15.577137401 +0200 @@ -3102,6 +3102,7 @@ cMenuSetupMisc::cMenuSetupMisc(void) Add(new cMenuEditIntItem( tr("Setup.Miscellaneous$Initial volume"), &data.InitialVolume, -1, 255, tr("Setup.Miscellaneous$as before"))); Add(new cMenuEditBoolItem(tr("Setup.Miscellaneous$Channels wrap"), &data.ChannelsWrap)); Add(new cMenuEditBoolItem(tr("Setup.Miscellaneous$Emergency exit"), &data.EmergencyExit)); + Add(new cMenuEditBoolItem(tr("Setup.Miscellaneous$Access cards on demand"), &data.OnDemand)); } // --- cMenuSetupPluginItem -------------------------------------------------- diff -rupN vdr-1.7.16/po/ar.po vdr-1.7.16-new/po/ar.po --- vdr-1.7.16/po/ar.po 2010-09-19 14:44:29.000000000 +0200 +++ vdr-1.7.16-new/po/ar.po 2010-09-19 23:43:09.557511607 +0200 @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.7.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-12 13:37+0200\n" +"POT-Creation-Date: 2010-09-19 23:43+0200\n" "PO-Revision-Date: 2008-10-16 11:16-0400\n" "Last-Translator: Osama Alrawab \n" "Language-Team: Arabic \n" @@ -1126,6 +1126,10 @@ msgstr "Ù?ساؚÙ?" msgid "Setup.Miscellaneous$Emergency exit" msgstr "خرÙ?ج طارÙ?Ø¡" +#, fuzzy +msgid "Setup.Miscellaneous$Access cards on demand" +msgstr "Ù?ساؚÙ?" + msgid "Plugins" msgstr "اÙ?Ù?Ù?Ø­Ù?ات" diff -rupN vdr-1.7.16/po/ca_ES.po vdr-1.7.16-new/po/ca_ES.po --- vdr-1.7.16/po/ca_ES.po 2010-09-19 14:44:29.000000000 +0200 +++ vdr-1.7.16-new/po/ca_ES.po 2010-09-19 23:43:09.587512359 +0200 @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-06 12:52+0200\n" +"POT-Creation-Date: 2010-08-25 20:59+0200\n" "PO-Revision-Date: 2008-03-02 19:02+0100\n" "Last-Translator: Luca Olivetti \n" "Language-Team: Catalanian\n" @@ -1102,6 +1102,10 @@ msgstr "" msgid "Setup.Miscellaneous$Emergency exit" msgstr "Sortida d'emergència" +#, fuzzy +msgid "Setup.Miscellaneous$Access cards on demand" +msgstr "anterior" + msgid "Plugins" msgstr "Plugins" diff -rupN vdr-1.7.16/po/cs_CZ.po vdr-1.7.16-new/po/cs_CZ.po --- vdr-1.7.16/po/cs_CZ.po 2010-09-19 14:44:29.000000000 +0200 +++ vdr-1.7.16-new/po/cs_CZ.po 2010-09-19 23:43:09.628512095 +0200 @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.7.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-06 12:52+0200\n" +"POT-Creation-Date: 2010-08-25 20:59+0200\n" "PO-Revision-Date: 2010-05-06 11:00+0200\n" "Last-Translator: Radek ŠťastnÃœ \n" "Language-Team: Czech\n" @@ -1101,6 +1101,10 @@ msgstr "" msgid "Setup.Miscellaneous$Emergency exit" msgstr "Nouzové ukončení" +#, fuzzy +msgid "Setup.Miscellaneous$Access cards on demand" +msgstr "jako naposledy" + msgid "Plugins" msgstr "Moduly" diff -rupN vdr-1.7.16/po/da_DK.po vdr-1.7.16-new/po/da_DK.po --- vdr-1.7.16/po/da_DK.po 2010-09-19 14:44:29.000000000 +0200 +++ vdr-1.7.16-new/po/da_DK.po 2010-09-19 23:43:09.671511896 +0200 @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-06 12:52+0200\n" +"POT-Creation-Date: 2010-08-25 20:59+0200\n" "PO-Revision-Date: 2007-08-12 14:17+0200\n" "Last-Translator: Mogens Elneff \n" "Language-Team: Danish\n" @@ -1099,6 +1099,10 @@ msgstr "" msgid "Setup.Miscellaneous$Emergency exit" msgstr "Nødudgang" +#, fuzzy +msgid "Setup.Miscellaneous$Access cards on demand" +msgstr "som før" + msgid "Plugins" msgstr "Plugins" diff -rupN vdr-1.7.16/po/de_DE.po vdr-1.7.16-new/po/de_DE.po --- vdr-1.7.16/po/de_DE.po 2010-09-19 14:44:30.000000000 +0200 +++ vdr-1.7.16-new/po/de_DE.po 2010-09-19 23:43:09.672512168 +0200 @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-06 12:52+0200\n" +"POT-Creation-Date: 2010-08-25 20:59+0200\n" "PO-Revision-Date: 2010-01-16 16:46+0100\n" "Last-Translator: Klaus Schmidinger \n" "Language-Team: German\n" @@ -1099,6 +1099,10 @@ msgstr "Rundum zappen" msgid "Setup.Miscellaneous$Emergency exit" msgstr "Notausstieg" +#, fuzzy +msgid "Setup.Miscellaneous$Access cards on demand" +msgstr "wie vorher" + msgid "Plugins" msgstr "Plugins" diff -rupN vdr-1.7.16/po/el_GR.po vdr-1.7.16-new/po/el_GR.po --- vdr-1.7.16/po/el_GR.po 2010-09-19 14:44:30.000000000 +0200 +++ vdr-1.7.16-new/po/el_GR.po 2010-09-19 23:43:09.711511528 +0200 @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-06 12:52+0200\n" +"POT-Creation-Date: 2010-08-25 20:59+0200\n" "PO-Revision-Date: 2007-08-12 14:17+0200\n" "Last-Translator: Dimitrios Dimitrakos \n" "Language-Team: Greek\n" @@ -1099,6 +1099,10 @@ msgstr "" msgid "Setup.Miscellaneous$Emergency exit" msgstr "" +#, fuzzy +msgid "Setup.Miscellaneous$Access cards on demand" +msgstr "ÆÜðéíãê äéáêïðÞ (ä)" + msgid "Plugins" msgstr "ÅðåêôÜóåéò" diff -rupN vdr-1.7.16/po/es_ES.po vdr-1.7.16-new/po/es_ES.po --- vdr-1.7.16/po/es_ES.po 2010-09-19 14:44:30.000000000 +0200 +++ vdr-1.7.16-new/po/es_ES.po 2010-09-19 23:43:09.712511762 +0200 @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-06 12:52+0200\n" +"POT-Creation-Date: 2010-08-25 20:59+0200\n" "PO-Revision-Date: 2008-03-02 19:02+0100\n" "Last-Translator: Luca Olivetti \n" "Language-Team: Spanish\n" @@ -1100,6 +1100,10 @@ msgstr "" msgid "Setup.Miscellaneous$Emergency exit" msgstr "Salida de emergencia" +#, fuzzy +msgid "Setup.Miscellaneous$Access cards on demand" +msgstr "anterior" + msgid "Plugins" msgstr "Plugins" diff -rupN vdr-1.7.16/po/et_EE.po vdr-1.7.16-new/po/et_EE.po --- vdr-1.7.16/po/et_EE.po 2010-09-19 14:44:30.000000000 +0200 +++ vdr-1.7.16-new/po/et_EE.po 2010-09-19 23:43:09.755512152 +0200 @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-06 12:52+0200\n" +"POT-Creation-Date: 2010-08-25 20:59+0200\n" "PO-Revision-Date: 2007-08-12 14:17+0200\n" "Last-Translator: Arthur Konovalov \n" "Language-Team: Estonian\n" @@ -1099,6 +1099,10 @@ msgstr "Kanalite ringkerimine" msgid "Setup.Miscellaneous$Emergency exit" msgstr "Hädaväljumine" +#, fuzzy +msgid "Setup.Miscellaneous$Access cards on demand" +msgstr "endine" + msgid "Plugins" msgstr "Laiendusmoodulid" diff -rupN vdr-1.7.16/po/fi_FI.po vdr-1.7.16-new/po/fi_FI.po --- vdr-1.7.16/po/fi_FI.po 2010-09-19 14:44:30.000000000 +0200 +++ vdr-1.7.16-new/po/fi_FI.po 2010-09-19 23:43:09.754512433 +0200 @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-06 12:52+0200\n" +"POT-Creation-Date: 2010-08-25 20:59+0200\n" "PO-Revision-Date: 2007-08-15 15:52+0200\n" "Last-Translator: Rolf Ahrenberg \n" "Language-Team: Finnish\n" @@ -1102,6 +1102,10 @@ msgstr "Kanavien rullaus" msgid "Setup.Miscellaneous$Emergency exit" msgstr "KÀytÀ hÀtÀsammutusta" +#, fuzzy +msgid "Setup.Miscellaneous$Access cards on demand" +msgstr "edellinen" + msgid "Plugins" msgstr "Laajennokset" diff -rupN vdr-1.7.16/po/fr_FR.po vdr-1.7.16-new/po/fr_FR.po --- vdr-1.7.16/po/fr_FR.po 2010-09-19 14:44:30.000000000 +0200 +++ vdr-1.7.16-new/po/fr_FR.po 2010-09-19 23:43:09.809511788 +0200 @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-06 12:52+0200\n" +"POT-Creation-Date: 2010-08-25 20:59+0200\n" "PO-Revision-Date: 2008-02-27 18:14+0100\n" "Last-Translator: Jean-Claude Repetto \n" "Language-Team: French\n" @@ -1105,6 +1105,10 @@ msgstr "" msgid "Setup.Miscellaneous$Emergency exit" msgstr "Arrêt d'urgence" +#, fuzzy +msgid "Setup.Miscellaneous$Access cards on demand" +msgstr "comme avant" + msgid "Plugins" msgstr "Greffons" diff -rupN vdr-1.7.16/po/hr_HR.po vdr-1.7.16-new/po/hr_HR.po --- vdr-1.7.16/po/hr_HR.po 2010-09-19 14:44:30.000000000 +0200 +++ vdr-1.7.16-new/po/hr_HR.po 2010-09-19 23:43:09.834512179 +0200 @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-06 12:52+0200\n" +"POT-Creation-Date: 2010-08-25 20:59+0200\n" "PO-Revision-Date: 2008-03-17 19:00+0100\n" "Last-Translator: Adrian Caval \n" "Language-Team: Croatian\n" @@ -1101,6 +1101,10 @@ msgstr "" msgid "Setup.Miscellaneous$Emergency exit" msgstr "Izlaz u sluèaju nuŸde" +#, fuzzy +msgid "Setup.Miscellaneous$Access cards on demand" +msgstr "kao prethodno" + msgid "Plugins" msgstr "Dodaci" diff -rupN vdr-1.7.16/po/hu_HU.po vdr-1.7.16-new/po/hu_HU.po --- vdr-1.7.16/po/hu_HU.po 2010-09-19 14:44:30.000000000 +0200 +++ vdr-1.7.16-new/po/hu_HU.po 2010-09-19 23:43:09.867511933 +0200 @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-06 12:52+0200\n" +"POT-Creation-Date: 2010-08-25 20:59+0200\n" "PO-Revision-Date: 2007-12-01 21:42+0200\n" "Last-Translator: István Füley \n" "Language-Team: Hungarian\n" @@ -1102,6 +1102,10 @@ msgstr "" msgid "Setup.Miscellaneous$Emergency exit" msgstr "" +#, fuzzy +msgid "Setup.Miscellaneous$Access cards on demand" +msgstr "ahogy az elõbb" + msgid "Plugins" msgstr "Plugins" diff -rupN vdr-1.7.16/po/it_IT.po vdr-1.7.16-new/po/it_IT.po --- vdr-1.7.16/po/it_IT.po 2010-09-19 14:44:30.000000000 +0200 +++ vdr-1.7.16-new/po/it_IT.po 2010-09-19 23:43:09.883512143 +0200 @@ -1106,6 +1106,10 @@ msgstr "Riavvolgimento canali" msgid "Setup.Miscellaneous$Emergency exit" msgstr "Uscita di emergenza" +#, fuzzy +msgid "Setup.Miscellaneous$Access cards on demand" +msgstr "come prima" + msgid "Plugins" msgstr "Plugins" diff -rupN vdr-1.7.16/po/lt_LT.po vdr-1.7.16-new/po/lt_LT.po --- vdr-1.7.16/po/lt_LT.po 2010-09-19 14:44:30.000000000 +0200 +++ vdr-1.7.16-new/po/lt_LT.po 2010-09-19 23:43:09.925510610 +0200 @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.7.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-06 12:52+0200\n" +"POT-Creation-Date: 2010-08-25 20:59+0200\n" "PO-Revision-Date: 2010-02-22 18:05+0200\n" "Last-Translator: Valdemaras Pipiras \n" "Language-Team: Lithuanian\n" @@ -1099,6 +1099,10 @@ msgstr "Kanalų pridengimas" msgid "Setup.Miscellaneous$Emergency exit" msgstr "Avarinis iÅ¡Ä?jimas" +#, fuzzy +msgid "Setup.Miscellaneous$Access cards on demand" +msgstr "kaip anksčiau" + msgid "Plugins" msgstr "Ä®skiepai" diff -rupN vdr-1.7.16/po/mk_MK.po vdr-1.7.16-new/po/mk_MK.po --- vdr-1.7.16/po/mk_MK.po 2010-09-19 14:44:30.000000000 +0200 +++ vdr-1.7.16-new/po/mk_MK.po 2010-09-19 23:43:09.928511087 +0200 @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR-1.7.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-06 12:52+0200\n" +"POT-Creation-Date: 2010-08-25 20:59+0200\n" "PO-Revision-Date: 2010-03-11 00:54+0100\n" "Last-Translator: Dimitar Petrovski \n" "Language-Team: Macedonian \n" @@ -1100,6 +1100,10 @@ msgstr "Ð?Ñ?еЌПÑ?Ñ?ваÑ?е каМаРmsgid "Setup.Miscellaneous$Emergency exit" msgstr "Ð?Ñ?еМ Озлез" +#, fuzzy +msgid "Setup.Miscellaneous$Access cards on demand" +msgstr "какП пÑ?еÑ?Ñ?ПЎМП" + msgid "Plugins" msgstr "Ð?ПЎаÑ?ПÑ?О" diff -rupN vdr-1.7.16/po/nl_NL.po vdr-1.7.16-new/po/nl_NL.po --- vdr-1.7.16/po/nl_NL.po 2010-09-19 14:44:30.000000000 +0200 +++ vdr-1.7.16-new/po/nl_NL.po 2010-09-19 23:43:09.951511991 +0200 @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-06 12:52+0200\n" +"POT-Creation-Date: 2010-08-25 20:59+0200\n" "PO-Revision-Date: 2008-02-26 17:20+0100\n" "Last-Translator: Johan Schuring \n" "Language-Team: Dutch\n" @@ -1103,6 +1103,10 @@ msgstr "" msgid "Setup.Miscellaneous$Emergency exit" msgstr "Nooduitgang" +#, fuzzy +msgid "Setup.Miscellaneous$Access cards on demand" +msgstr "zoals eerder" + msgid "Plugins" msgstr "Plugins" diff -rupN vdr-1.7.16/po/nn_NO.po vdr-1.7.16-new/po/nn_NO.po --- vdr-1.7.16/po/nn_NO.po 2010-09-19 14:44:30.000000000 +0200 +++ vdr-1.7.16-new/po/nn_NO.po 2010-09-19 23:43:09.964512321 +0200 @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-06 12:52+0200\n" +"POT-Creation-Date: 2010-08-25 20:59+0200\n" "PO-Revision-Date: 2007-08-12 14:17+0200\n" "Last-Translator: Truls Slevigen \n" "Language-Team: Norwegian\n" @@ -1100,6 +1100,10 @@ msgstr "" msgid "Setup.Miscellaneous$Emergency exit" msgstr "" +#, fuzzy +msgid "Setup.Miscellaneous$Access cards on demand" +msgstr "Minimumstid med inaktivitet (min)" + msgid "Plugins" msgstr "Plugins" diff -rupN vdr-1.7.16/po/pl_PL.po vdr-1.7.16-new/po/pl_PL.po --- vdr-1.7.16/po/pl_PL.po 2010-09-19 14:44:30.000000000 +0200 +++ vdr-1.7.16-new/po/pl_PL.po 2010-09-19 23:43:09.952512288 +0200 @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-06 12:52+0200\n" +"POT-Creation-Date: 2010-08-25 20:59+0200\n" "PO-Revision-Date: 2008-03-09 12:59+0100\n" "Last-Translator: Michael Rakowski \n" "Language-Team: Polish\n" @@ -1100,6 +1100,10 @@ msgstr "" msgid "Setup.Miscellaneous$Emergency exit" msgstr "Wyj¶cie awaryjne" +#, fuzzy +msgid "Setup.Miscellaneous$Access cards on demand" +msgstr "jak ostatnio" + msgid "Plugins" msgstr "Wtyczki" diff -rupN vdr-1.7.16/po/pt_PT.po vdr-1.7.16-new/po/pt_PT.po --- vdr-1.7.16/po/pt_PT.po 2010-09-19 14:44:30.000000000 +0200 +++ vdr-1.7.16-new/po/pt_PT.po 2010-09-19 23:43:09.999512113 +0200 @@ -1100,6 +1100,10 @@ msgstr "Retroceder canais" msgid "Setup.Miscellaneous$Emergency exit" msgstr "Saída de emergência" +#, fuzzy +msgid "Setup.Miscellaneous$Access cards on demand" +msgstr "Como estava" + msgid "Plugins" msgstr "Plugins" diff -rupN vdr-1.7.16/po/ro_RO.po vdr-1.7.16-new/po/ro_RO.po --- vdr-1.7.16/po/ro_RO.po 2010-09-19 14:44:30.000000000 +0200 +++ vdr-1.7.16-new/po/ro_RO.po 2010-09-19 23:43:10.017512213 +0200 @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.7.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-06 12:52+0200\n" +"POT-Creation-Date: 2010-08-25 20:59+0200\n" "PO-Revision-Date: 2010-02-11 13:38+0100\n" "Last-Translator: Lucian Muresan \n" "Language-Team: Romanian\n" @@ -1102,6 +1102,10 @@ msgstr "Lista de canale în buclã" msgid "Setup.Miscellaneous$Emergency exit" msgstr "Oprire de urgenþã" +#, fuzzy +msgid "Setup.Miscellaneous$Access cards on demand" +msgstr "ca mai înainte" + msgid "Plugins" msgstr "Plugin-uri" diff -rupN vdr-1.7.16/po/ru_RU.po vdr-1.7.16-new/po/ru_RU.po --- vdr-1.7.16/po/ru_RU.po 2010-09-19 14:44:30.000000000 +0200 +++ vdr-1.7.16-new/po/ru_RU.po 2010-09-19 23:43:10.029512021 +0200 @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-06 12:52+0200\n" +"POT-Creation-Date: 2010-08-25 20:59+0200\n" "PO-Revision-Date: 2008-12-15 14:37+0100\n" "Last-Translator: Oleg Roitburd \n" "Language-Team: Russian\n" @@ -1100,6 +1100,10 @@ msgstr "" msgid "Setup.Miscellaneous$Emergency exit" msgstr "°ÒÐàØÙÝëÙ ÒëåÞÔ" +#, fuzzy +msgid "Setup.Miscellaneous$Access cards on demand" +msgstr "ÚÐÚ àÐÝìèÕ" + msgid "Plugins" msgstr "ŒÞÔãÛØ àÐáèØàÕÝØï" diff -rupN vdr-1.7.16/po/sk_SK.po vdr-1.7.16-new/po/sk_SK.po --- vdr-1.7.16/po/sk_SK.po 2010-09-19 14:44:30.000000000 +0200 +++ vdr-1.7.16-new/po/sk_SK.po 2010-09-19 23:43:10.058510612 +0200 @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-06 12:52+0200\n" +"POT-Creation-Date: 2010-08-25 20:59+0200\n" "PO-Revision-Date: 2009-09-30 12:50+0100\n" "Last-Translator: Milan Hrala \n" "Language-Team: Slovak\n" @@ -1100,6 +1100,10 @@ msgstr "" msgid "Setup.Miscellaneous$Emergency exit" msgstr "Núdzové ukonèenie" +#, fuzzy +msgid "Setup.Miscellaneous$Access cards on demand" +msgstr "ako naposledy" + msgid "Plugins" msgstr "Moduly" diff -rupN vdr-1.7.16/po/sl_SI.po vdr-1.7.16-new/po/sl_SI.po --- vdr-1.7.16/po/sl_SI.po 2010-09-19 14:44:30.000000000 +0200 +++ vdr-1.7.16-new/po/sl_SI.po 2010-09-19 23:43:10.082512262 +0200 @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-06 12:52+0200\n" +"POT-Creation-Date: 2010-08-25 20:59+0200\n" "PO-Revision-Date: 2008-02-28 19:44+0100\n" "Last-Translator: Matjaz Thaler \n" "Language-Team: Slovenian\n" @@ -1100,6 +1100,10 @@ msgstr "" msgid "Setup.Miscellaneous$Emergency exit" msgstr "Izhod v sili" +#, fuzzy +msgid "Setup.Miscellaneous$Access cards on demand" +msgstr "kot prej" + msgid "Plugins" msgstr "Vstavki" diff -rupN vdr-1.7.16/po/sv_SE.po vdr-1.7.16-new/po/sv_SE.po --- vdr-1.7.16/po/sv_SE.po 2010-09-19 14:44:30.000000000 +0200 +++ vdr-1.7.16-new/po/sv_SE.po 2010-09-19 23:43:10.112510996 +0200 @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-06 12:52+0200\n" +"POT-Creation-Date: 2010-08-25 20:59+0200\n" "PO-Revision-Date: 2008-03-12 18:25+0100\n" "Last-Translator: Magnus Andersson \n" "Language-Team: Swedish\n" @@ -1102,6 +1102,10 @@ msgstr "" msgid "Setup.Miscellaneous$Emergency exit" msgstr "Oförutsedd avslutning" +#, fuzzy +msgid "Setup.Miscellaneous$Access cards on demand" +msgstr "som förut" + msgid "Plugins" msgstr "Moduler" diff -rupN vdr-1.7.16/po/tr_TR.po vdr-1.7.16-new/po/tr_TR.po --- vdr-1.7.16/po/tr_TR.po 2010-09-19 14:44:30.000000000 +0200 +++ vdr-1.7.16-new/po/tr_TR.po 2010-09-19 23:43:10.124511001 +0200 @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-06 12:52+0200\n" +"POT-Creation-Date: 2010-08-25 20:59+0200\n" "PO-Revision-Date: 2008-02-28 00:33+0100\n" "Last-Translator: Oktay Yolgeçen \n" "Language-Team: Turkish\n" @@ -1099,6 +1099,10 @@ msgstr "" msgid "Setup.Miscellaneous$Emergency exit" msgstr "Acil cýkýþ" +#, fuzzy +msgid "Setup.Miscellaneous$Access cards on demand" +msgstr "önceki gibi" + msgid "Plugins" msgstr "Eklentiler" diff -rupN vdr-1.7.16/po/uk_UA.po vdr-1.7.16-new/po/uk_UA.po --- vdr-1.7.16/po/uk_UA.po 2010-09-19 14:44:31.000000000 +0200 +++ vdr-1.7.16-new/po/uk_UA.po 2010-09-19 23:43:10.146510814 +0200 @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.7.7\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-06 12:52+0200\n" +"POT-Creation-Date: 2010-08-25 20:59+0200\n" "PO-Revision-Date: 2010-04-25 16:35+0200\n" "Last-Translator: Yarema aka Knedlyk \n" "Language-Team: Ukrainian\n" @@ -1099,6 +1099,10 @@ msgstr "Ð?Ñ?МеÑ?Ñ? каМалÑ?в" msgid "Setup.Miscellaneous$Emergency exit" msgstr "АваÑ?Ñ?йМОй вОÑ?Ñ?ÐŽ" +#, fuzzy +msgid "Setup.Miscellaneous$Access cards on demand" +msgstr "як Ñ?аМÑ?Ñ?е" + msgid "Plugins" msgstr "Ð?ПЎÑ?лÑ? Ñ?ПзÑ?ОÑ?еММя" diff -rupN vdr-1.7.16/po/zh_CN.po vdr-1.7.16-new/po/zh_CN.po --- vdr-1.7.16/po/zh_CN.po 2010-09-19 14:44:31.000000000 +0200 +++ vdr-1.7.16-new/po/zh_CN.po 2010-09-19 23:43:10.170136497 +0200 @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-06 12:52+0200\n" +"POT-Creation-Date: 2010-08-25 20:59+0200\n" "PO-Revision-Date: 2009-09-23 23:50+0800\n" "Last-Translator: Nan Feng \n" "Language-Team: Chinese\n" @@ -1102,6 +1102,10 @@ msgstr "" msgid "Setup.Miscellaneous$Emergency exit" msgstr "突å?äº?件é??å?º" +#, fuzzy +msgid "Setup.Miscellaneous$Access cards on demand" +msgstr "ä¹?å?" + msgid "Plugins" msgstr "æ?件讟眮" diff -rupN vdr-1.7.16/vdr.c vdr-1.7.16-new/vdr.c --- vdr-1.7.16/vdr.c 2010-04-05 12:06:16.000000000 +0200 +++ vdr-1.7.16-new/vdr.c 2010-09-19 23:38:15.605139164 +0200 @@ -564,6 +564,9 @@ int main(int argc, char *argv[]) bool IsInfoMenu = false; bool CheckHasProgramme = false; cSkin *CurrentSkin = NULL; + if (Setup.OnDemand) { + InhibitEpgScan = true; // Disable epgscan as it messes around with Access() + } // Load plugins: @@ -836,6 +839,9 @@ int main(int argc, char *argv[]) static time_t LastTimerCheck = 0; if (Now - LastTimerCheck > TIMERCHECKDELTA) { // don't do this too often InhibitEpgScan = false; + if (Setup.OnDemand) { + InhibitEpgScan = true; // Disable epgscan as it messes around with Access() + } static time_t DeviceUsed[MAXDEVICES] = { 0 }; for (cTimer *Timer = Timers.First(); Timer; Timer = Timers.Next(Timer)) { bool InVpsMargin = false;