Re: [vdr] Rotor patch for 1.5.12

2008-01-13 Thread Morfsta
Has anyone managed to get the signal strength, SNR and lock functions
working with multiproto and rotor 1.5.12? I took a look at menu.c and
compared it with szap2 but couldn't find much difference!

On Jan 11, 2008 10:21 PM, Reinhard Nissl [EMAIL PROTECTED] wrote:
 Hi,

 lucian orasanu schrieb:

  Hy again! thanks for the patch and cmd line, but
  afther patching vdr with that patch i get the
  following error when compiling vdr:
  dvbdevice.c:946: error: no 'bool
  cDvbDevice::SendDiseqcCmd(dvb_diseqc_master_cmd)'
  member function declared in class 'cDvbDevice'

 Hmm, the patched VDR compiled flawlessly. And the last chunk of
 the patch adds the function declaration to dvbdevice.h. So I
 don't see how you can get this error.

 Are there any other reports?

 Bye.
 --
 Dipl.-Inform. (FH) Reinhard Nissl
 mailto:[EMAIL PROTECTED]


 ___
 vdr mailing list
 vdr@linuxtv.org
 http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] Rotor patch for 1.5.12

2008-01-13 Thread Ales Jurik
On Thursday 10 January 2008, Reinhard Nissl wrote:
 Hi,

 lucian orasanu schrieb:
  it is changed after patch with function above and in
  menu.c at line 304 is expecting another function like
  this:
 
  SChannel-cChannel::SetSatTransponderData(RotorPos-R_Code(),Frequenz,Pol
 ,Symbolrate,FEC_AUTO);
 
  so i modified this line in menu.c like this:
 
  SChannel-cChannel::SetSatTransponderData(RotorPos-R_Code(),Frequenz,Pol
 ,Symbolrate,Symbolrate,Symbolrate,Symbolrate,Symbolrate);

 Try changing it to:

 SChannel-cChannel::SetSatTransponderData(RotorPos-R_Code(),Frequenz,Pol,S
ymbolrate,DVBFE_FEC_AUTO,DVBFE_MOD_AUTO,DVBFE_DELSYS_DVBS,DVBFE_ROLLOFF_UNKN
OWN);

 You'll need to apply the attached VDR patch instead of the one
 included with vdr-rotor.


Hi,

I've tested it, it seems that it works - but I have motor behind the switch 
(port D of 4port) and in some cases the dish doesn't went back to east (with 
SS1, old driver, old rotor, vdr-1.5.12 no such problem detected). In that 
case I have to switch to channel which is not behind portD and then back to 
portD and the dish begin to move. I'm using gotoX functionality.

I'm using for testing: 
- Debian Lenny
- TT S2-3200
- HH120
- vdr-1.5.13 patched by 
vdr-1.5.12-dvbs2-h264-syncearly-framespersec-audioindexer-fielddetection-speedup.diff,
vdr-1.5.12-speedup-fix1.diff and vdr-1.5.12-speedup-fix2.diff.
- rotor version vdr-rotor-0.1.4-vdr1.5.7.tgz patched by 
Rotor-0.1.4-vdr1.5.10.diff and vdr-1.5.12-dvbs2-h264-other-rotor.diff and 
with changes of SChannel-cChannel::SetSatTransponderData proposed above by 
Reinhard.

Reinhard, if you agree I'm ready to cooperate in testing.

Ales

 Please keep in mind that I cannot test this patch. The suggested
 line above will only support DVB-S. For DVB-S2 and H.264 support,
 a lot more needs to be changed.

 Bye.



___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] Rotor patch for 1.5.12

2008-01-13 Thread Ales Jurik
On Sunday 13 January 2008, Morfsta wrote:
 Has anyone managed to get the signal strength, SNR and lock functions
 working with multiproto and rotor 1.5.12? I took a look at menu.c and
 compared it with szap2 but couldn't find much difference!

Hi,

I've tried to pass through the source code and it seems to me that problem is 
that multiproto driver for dvb-s2 frontend return SNR and STR in 0.1dB and 
the value is by vdr-rotor (and by vdr-femon) then recalculated to dB once 
more.

Ales

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] Rotor patch for 1.5.12

2008-01-11 Thread Reinhard Nissl
Hi,

lucian orasanu schrieb:

 Hy again! thanks for the patch and cmd line, but
 afther patching vdr with that patch i get the
 following error when compiling vdr:
 dvbdevice.c:946: error: no 'bool
 cDvbDevice::SendDiseqcCmd(dvb_diseqc_master_cmd)'
 member function declared in class 'cDvbDevice'

Hmm, the patched VDR compiled flawlessly. And the last chunk of
the patch adds the function declaration to dvbdevice.h. So I
don't see how you can get this error.

Are there any other reports?

Bye.
-- 
Dipl.-Inform. (FH) Reinhard Nissl
mailto:[EMAIL PROTECTED]

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] Rotor patch for 1.5.12

2008-01-10 Thread Reinhard Nissl
Hi,

lucian orasanu schrieb:

 it is changed after patch with function above and in
 menu.c at line 304 is expecting another function like
 this: 
 
 SChannel-cChannel::SetSatTransponderData(RotorPos-R_Code(),Frequenz,Pol,Symbolrate,FEC_AUTO);
 
 so i modified this line in menu.c like this:
 
 SChannel-cChannel::SetSatTransponderData(RotorPos-R_Code(),Frequenz,Pol,Symbolrate,Symbolrate,Symbolrate,Symbolrate,Symbolrate);

Try changing it to:

SChannel-cChannel::SetSatTransponderData(RotorPos-R_Code(),Frequenz,Pol,Symbolrate,DVBFE_FEC_AUTO,DVBFE_MOD_AUTO,DVBFE_DELSYS_DVBS,DVBFE_ROLLOFF_UNKNOWN);

You'll need to apply the attached VDR patch instead of the one
included with vdr-rotor.

Please keep in mind that I cannot test this patch. The suggested
line above will only support DVB-S. For DVB-S2 and H.264 support,
a lot more needs to be changed.

Bye.
-- 
Dipl.-Inform. (FH) Reinhard Nissl
mailto:[EMAIL PROTECTED]
--- ../vdr-1.5.12-dvbs2-other/device.h	2007-10-21 11:21:52.0 +0200
+++ device.h	2008-01-10 22:09:12.0 +0100
@@ -23,6 +23,7 @@
 #include spu.h
 #include thread.h
 #include tools.h
+#include linux/dvb/frontend.h
 
 #define MAXDEVICES 16 // the maximum number of devices in the system
 #define MAXPIDHANDLES  64 // the maximum number of different PIDs per device
@@ -261,6 +266,7 @@ public:
   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
 
--- ../vdr-1.5.12-dvbs2-other/dvbdevice.c	2008-01-01 22:55:18.0 +0100
+++ dvbdevice.c	2008-01-10 22:13:39.0 +0100
@@ -71,6 +71,7 @@ static int DvbOpen(const char *Name, int
 class cDvbTuner : public cThread {
 private:
   enum eTunerStatus { tsIdle, tsSet, tsTuned, tsLocked };
+  bool SendDiseqc;
   int fd_frontend;
   int cardIndex;
   int tuneTimeout;
@@ -83,6 +84,7 @@ private:
   cMutex mutex;
   cCondVar locked;
   cCondVar newSet;
+  dvb_diseqc_master_cmd diseqc_cmd;
   bool GetFrontendStatus(fe_status_t Status, int TimeoutMs = 0);
   bool SetFrontend(void);
   virtual void Action(void);
@@ -91,12 +93,14 @@ public:
   virtual ~cDvbTuner();
   bool IsTunedTo(const cChannel *Channel) const;
   void Set(const cChannel *Channel, bool Tune);
+  bool SendDiseqcCmd(dvb_diseqc_master_cmd cmd);
   bool Locked(int TimeoutMs = 0);
   };
 
 cDvbTuner::cDvbTuner(int Fd_Frontend, int CardIndex, dvbfe_delsys FrontendType)
 {
   fd_frontend = Fd_Frontend;
+  SendDiseqc = false;
   cardIndex = CardIndex;
   frontendType = FrontendType;
   tuneTimeout = 0;
@@ -145,6 +149,17 @@ bool cDvbTuner::Locked(int TimeoutMs)
   return tunerStatus = tsLocked;
 }
 
+bool cDvbTuner::SendDiseqcCmd(dvb_diseqc_master_cmd cmd)
+{
+  cMutexLock MutexLock(mutex);
+  if (!(frontendType  (DVBFE_DELSYS_DVBS | DVBFE_DELSYS_DVBS2)) || SendDiseqc)
+return false;
+  diseqc_cmd=cmd;
+  SendDiseqc=true;
+  newSet.Broadcast();
+  return true;
+}
+
 bool cDvbTuner::GetFrontendStatus(fe_status_t Status, int TimeoutMs)
 {
   if (TimeoutMs) {
@@ -348,6 +363,10 @@ void cDvbTuner::Action(void)
 if (GetFrontendStatus(NewStatus, 10))
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;
@@ -918,6 +950,11 @@ bool cDvbDevice::HasLock(int TimeoutMs)
   return dvbTuner ? dvbTuner-Locked(TimeoutMs) : false;
 }
 
+bool cDvbDevice::SendDiseqcCmd(dvb_diseqc_master_cmd cmd)
+{
+  return dvbTuner-SendDiseqcCmd(cmd);
+}
+
 int cDvbDevice::GetAudioChannelDevice(void)
 {
   if (HasDecoder()) {
--- ../vdr-1.5.12-dvbs2-other/dvbdevice.h	2008-01-01 22:55:18.0 +0100
+++ dvbdevice.h	2008-01-10 22:09:12.0 +0100
@@ -66,11 +67,13 @@ public:
   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
 
___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] Rotor patch for 1.5.12

2008-01-07 Thread serge pecher
Did you had to adapt manually the patch, because when i try this patch on
vdr 1.5.12 everything is rejected ?

Thanks,

serge

-Oorspronkelijk bericht-
Van: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Namens Arthur
Konovalov
Verzonden: maandag 7 januari 2008 20:57
Aan: VDR Mailing List
Onderwerp: Re: [vdr] Rotor patch for 1.5.12

[EMAIL PROTECTED] wrote:
 I am looking for the patch to compile the rotor plugin together with 
 vdr-1.5.12.
 
 Does anyone achieved to compile it with 1.5.12

I had success with attached patch.

Regards,
AK



___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] Rotor patch for 1.5.12

2008-01-07 Thread Arthur Konovalov

serge pecher wrote:

Did you had to adapt manually the patch, because when i try this patch on
vdr 1.5.12 everything is rejected ?



Previosly mentioned patch applied to attached version of rotor plugin.
I suspect that I found it in vdr-portal.de

Fresh generated patch attached also.


Regards,
AK



vdr-rotor-0.1.4-vdr1.5.tgz
Description: application/compressed
diff -Nur old/filter.c new/filter.c
--- old/filter.c2006-01-09 22:41:50.0 +0200
+++ new/filter.c2007-10-16 08:21:54.0 +0300
@@ -368,12 +368,15 @@
 int Ppid = pmt.getPCRPid();
 int Apids[MAXAPIDS + 1] = { 0 };
 int Dpids[MAXDPIDS + 1] = { 0 };
+int Spids[MAXDPIDS + 1] = { 0 };
 #if VDRVERSNUM = 10332
 char ALangs[MAXAPIDS + 1][MAXLANGCODE2] = {  };
 char DLangs[MAXDPIDS + 1][MAXLANGCODE2] = {  };
+char SLangs[MAXDPIDS + 1][MAXLANGCODE2] = {  };
 #else
 char ALangs[MAXAPIDS + 1][4] = {  };
 char DLangs[MAXDPIDS + 1][4] = {  };
+char SLangs[MAXDPIDS + 1][4] = {  };
 #endif
 int Tpid = 0;
 int NumApids = 0;
@@ -448,7 +451,7 @@
 delete d;
 }
 }
-Menu-SetPids(pmt.getServiceId(),Vpid, Vpid ? Ppid : 0, Apids, ALangs, 
Dpids, DLangs, Tpid);
+Menu-SetPids(pmt.getServiceId(),Vpid, Vpid ? Ppid : 0, Apids, ALangs, 
Dpids, DLangs, Spids, SLangs, Tpid);
 Menu-SetCaIds(pmt.getServiceId(),CaDescriptors-CaIds());
 
Menu-SetCaDescriptors(pmt.getServiceId(),CaDescriptorHandler.AddCaDescriptors(CaDescriptors));
 }
diff -Nur old/menu.c new/menu.c
--- old/menu.c  2007-07-06 23:52:57.0 +0300
+++ new/menu.c  2007-10-16 08:21:54.0 +0300
@@ -406,12 +406,15 @@
 
channel-SetId(Channel[Num].Nid(),Channel[Num].Tid(),Channel[Num].Sid(),channel-Rid());
 int Apids[MAXAPIDS + 1] = { 0 };
 int Dpids[MAXDPIDS + 1] = { 0 };
+int Spids[MAXDPIDS + 1] = { 0 };
 #if VDRVERSNUM=10332
 char ALangs[MAXAPIDS + 1][MAXLANGCODE2] = {  };
 char DLangs[MAXDPIDS + 1][MAXLANGCODE2] = {  };
+char SLangs[MAXDPIDS + 1][MAXLANGCODE2] = {  };
 #else
 char ALangs[MAXAPIDS + 1][4] = {  };
 char DLangs[MAXDPIDS + 1][4] = {  };
+char SLangs[MAXDPIDS + 1][4] = {  };
 #endif
 int CaIds[MAXCAIDS+1] = { 0 };
 for (int i=0; i=MAXAPIDS; i++)
@@ -426,7 +429,7 @@
 }
 for (int i=0; i=MAXCAIDS; i++)
   CaIds[i]=Channel[Num].Ca(i);
-
channel-SetPids(Channel[Num].Vpid(),Channel[Num].Ppid(),Apids,ALangs,Dpids,DLangs,Channel[Num].Tpid());
+
channel-SetPids(Channel[Num].Vpid(),Channel[Num].Ppid(),Apids,ALangs,Dpids,DLangs,Spids,SLangs,Channel[Num].Tpid());
 channel-SetCaIds(CaIds);
   }
   else
@@ -456,7 +459,7 @@
 }
 
 #if VDRVERSNUM=10332
-void cMenuScan::SetPids(int Sid,int Vpid, int Ppid, int *Apids, char 
ALangs[][MAXLANGCODE2], int *Dpids, char DLangs[][MAXLANGCODE2], int Tpid)
+void cMenuScan::SetPids(int Sid,int Vpid, int Ppid, int *Apids, char 
ALangs[][MAXLANGCODE2], int *Dpids, char DLangs[][MAXLANGCODE2], int *Spids, 
char SLangs[][MAXLANGCODE2], int Tpid)
 #else
 void cMenuScan::SetPids(int Sid,int Vpid, int Ppid, int *Apids, char 
ALangs[][4], int *Dpids, char DLangs[][4], int Tpid)
 #endif
@@ -464,7 +467,7 @@
   for (int i=0; inum; i++)
 if (Sid==Channel[i].Sid())
 {
-  Channel[i].SetPids(Vpid,Ppid,Apids,ALangs,Dpids,DLangs,Tpid);
+  
Channel[i].SetPids(Vpid,Ppid,Apids,ALangs,Dpids,DLangs,Spids,SLangs,Tpid);
   display(i);
 }
 }
diff -Nur old/menu.h new/menu.h
--- old/menu.h  2007-07-06 23:57:42.0 +0300
+++ new/menu.h  2007-10-16 08:21:54.0 +0300
@@ -116,7 +116,7 @@
   virtual eOSState ProcessKey(eKeys Key);
   void AddChannel(int Num);
   void NewChannel(const cChannel *Transponder, const char *Name, const char 
*ShortName, const char *Provider, int Nid, int Tid, int Sid);
-  void SetPids(int Sid,int Vpid, int Ppid, int *Apids, char 
ALangs[][MAXLANGCODE2], int *Dpids, char DLangs[][MAXLANGCODE2], int Tpid);
+  void SetPids(int Sid,int Vpid, int Ppid, int *Apids, char 
ALangs[][MAXLANGCODE2], int *Dpids, char DLangs[][MAXLANGCODE2], int *Spids, 
char SLangs[][MAXLANGCODE2], int Tpid);
   void SetCaIds(int Sid,const int *CaIds);
   void SetCaDescriptors(int Sid,int Level);
   cChannel* GetChannel(int Sid);
___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr