From patchwork Wed Dec 21 21:12:24 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: jan med <23janmed@gmail.com> X-Patchwork-Id: 12916 Received: from mail.tu-berlin.de ([130.149.7.33]) by www.linuxtv.org with esmtp (Exim 4.72) (envelope-from <23janmed@gmail.com>) id 1RdTSd-0003Bx-3s for vdr@linuxtv.org; Wed, 21 Dec 2011 22:12:27 +0100 X-tubIT-Incoming-IP: 209.85.161.182 Received: from mail-gx0-f182.google.com ([209.85.161.182]) by mail.tu-berlin.de (exim-4.75/mailfrontend-2) with esmtps [TLSv1:RC4-SHA:128] for id 1RdTSc-0001C4-If; Wed, 21 Dec 2011 22:12:26 +0100 Received: by ggnp1 with SMTP id p1so7573128ggn.41 for ; Wed, 21 Dec 2011 13:12:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; bh=wcnmOVE9ToKNJLD1OOMJ/gSMURtgLt88eQtk9Ht3Ow0=; b=KohT07N5AXZU2MY0ksh55q1I76x8dLC+DQU1HkccWHtlPk/b98PWsGjZKh+iXEXXlW x3OpohA2H3EfTZtEqqGfFufggSWTKesK7PlZEwB92fqQCseSBBQ5J97TI9fSfP8wPo04 ToHMDYO+FuxlVzJNgSgcgV8sjORLhMzR++KEQ= MIME-Version: 1.0 Received: by 10.50.217.168 with SMTP id oz8mr5554749igc.24.1324501944638; Wed, 21 Dec 2011 13:12:24 -0800 (PST) Received: by 10.50.213.42 with HTTP; Wed, 21 Dec 2011 13:12:24 -0800 (PST) Date: Wed, 21 Dec 2011 22:12:24 +0100 Message-ID: From: jan med <23janmed@gmail.com> To: vdr@linuxtv.org X-PMX-Version: 5.6.1.2065439, Antispam-Engine: 2.7.2.376379, Antispam-Data: 2011.12.21.210020 X-PMX-Spam: Gauge=IIIIIIII, Probability=8%, Report=' HTML_NO_HTTP 0.1, BODYTEXTH_SIZE_10000_LESS 0, BODYTEXTP_SIZE_3000_LESS 0, BODY_SIZE_5000_5999 0, BODY_SIZE_7000_LESS 0, CTYPE_MULTIPART_NO_QUOTE 0, NO_URI_FOUND 0, WEBMAIL_SOURCE 0, __CT 0, __CTYPE_HAS_BOUNDARY 0, __CTYPE_MULTIPART 0, __CTYPE_MULTIPART_MIXED 0, __FRAUD_WEBMAIL 0, __FRAUD_WEBMAIL_FROM 0, __FROM_GMAIL 0, __HAS_HTML 0, __HAS_MSGID 0, __MIME_HTML 0, __MIME_VERSION 0, __PHISH_SPEAR_HTTP_RECEIVED 0, __PHISH_SPEAR_STRUCTURE_1 0, __RDNS_GMAIL 0, __SANE_MSGID 0, __TO_MALFORMED_2 0, __TO_NO_NAME 0' X-LSpam-Score: 0.1 (/) X-LSpam-Report: No, score=0.1 required=5.0 tests=BAYES_00=-1.9, FREEMAIL_FROM=0.001, HTML_MESSAGE=2, T_DKIM_INVALID=0.01 autolearn=no Subject: [vdr] Rotor / Rotor-NG not working with latest VDR X-BeenThere: vdr@linuxtv.org X-Mailman-Version: 2.1.13 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: Wed, 21 Dec 2011 21:12:27 -0000 Status: O X-Status: X-Keywords: X-UID: 25489 I think the problem is YaVDR. Rotorng work whit both vdr-1.7.21/22 (whit patch). There are only same problem with low/no signal! The old-rotor not compile for me. kind regards, Jan23 diff -ruN 1.7.22//device.h 1.7.22a//device.h --- 1.7.22//device.h 2011-12-04 14:38:17.000000000 +0100 +++ 1.7.22a//device.h 2011-12-05 21:17:36.775000013 +0100 @@ -24,6 +24,8 @@ #include "spu.h" #include "thread.h" #include "tools.h" +#include +#include #define MAXDEVICES 16 // the maximum number of devices in the system #define MAXPIDHANDLES 64 // the maximum number of different PIDs per device @@ -324,7 +325,7 @@ virtual bool HasProgramme(void); ///< Returns true if the device is currently showing any programme to ///< the user, either through replaying or live. - + virtual bool SendDiseqcCmd(dvb_diseqc_master_cmd cmd) {return false;} // PID handle facilities private: diff -ruN 1.7.22/dvbdevice.c 1.7.22a/dvbdevice.c --- 1.7.22/dvbdevice.c 2011-12-03 16:24:27.000000000 +0100 +++ 1.7.22a/dvbdevice.c 2011-12-08 22:13:44.041000013 +0100 @@ -261,6 +261,7 @@ private: static cMutex bondMutex; enum eTunerStatus { tsIdle, tsSet, tsTuned, tsLocked }; + bool SendDiseqc; const cDvbDevice *device; int fd_frontend; int adapter, frontend; @@ -276,6 +277,7 @@ cMutex mutex; cCondVar locked; cCondVar newSet; + dvb_diseqc_master_cmd diseqc_cmd; cDvbTuner *bondedTuner; bool bondedMaster; bool bondedMasterFailed; @@ -297,6 +299,7 @@ uint32_t SubsystemId(void) const { return subsystemId; } bool IsTunedTo(const cChannel *Channel) const; void SetChannel(const cChannel *Channel); + bool SendDiseqcCmd(dvb_diseqc_master_cmd cmd); bool Locked(int TimeoutMs = 0); int GetSignalStrength(void) const; int GetSignalQuality(void) const; @@ -308,6 +311,7 @@ { device = Device; fd_frontend = Fd_Frontend; + SendDiseqc=false; adapter = Adapter; frontend = Frontend; frontendType = FrontendType; @@ -813,6 +817,10 @@ if (GetFrontendStatus(NewStatus)) Status = NewStatus; cMutexLock MutexLock(&mutex); + if (SendDiseqc) { + CHECK(ioctl(fd_frontend, FE_DISEQC_SEND_MASTER_CMD, &diseqc_cmd)); + SendDiseqc=false; + } switch (tunerStatus) { case tsIdle: break; @@ -867,6 +875,17 @@ } } +bool cDvbTuner::SendDiseqcCmd(dvb_diseqc_master_cmd cmd) +{ + cMutexLock MutexLock(&mutex); + if ((frontendType!=SYS_DVBS2 && frontendType!=SYS_DVBS) || SendDiseqc) + return false; + diseqc_cmd=cmd; + SendDiseqc=true; + newSet.Broadcast(); + return true; +} + // --- cDvbSourceParam ------------------------------------------------------- class cDvbSourceParam : public cSourceParam { @@ -1415,6 +1434,11 @@ return dvbTuner ? dvbTuner->Locked(TimeoutMs) : false; } +bool cDvbDevice::SendDiseqcCmd(dvb_diseqc_master_cmd cmd) +{ + return dvbTuner->SendDiseqcCmd(cmd); +} + void cDvbDevice::SetTransferModeForDolbyDigital(int Mode) { setTransferModeForDolbyDigital = Mode; diff -ruN 1.7.22//dvbdevice.h 1.7.22a//dvbdevice.h --- 1.7.22//dvbdevice.h 2011-12-04 14:38:17.000000000 +0100 +++ 1.7.22a//dvbdevice.h 2011-12-05 21:17:36.755000013 +0100 @@ -181,6 +181,7 @@ virtual bool SetChannelDevice(const cChannel *Channel, bool LiveView); public: virtual bool HasLock(int TimeoutMs = 0); + virtual bool SendDiseqcCmd(dvb_diseqc_master_cmd cmd); // PID handle facilities