Pagina 1 di 1

Problemi plugin rotor [RISOLTO]

Inviato: 24 mar 2008, 23:54
da Gringo
Io non riesco ancora a compilare il plugin "rotor", nemmeno applicando le Extension Patch :evil:
Qualcuno sa come fare oppure mando il plugin a quel paese?

Codice: Seleziona tutto

Plugin rotor:
make[1]: Entering directory `/vdr/vdr-1.6.0/PLUGINS/src/rotor-0.1.4'
make[1]: Leaving directory `/vdr/vdr-1.6.0/PLUGINS/src/rotor-0.1.4'
make[1]: Entering directory `/vdr/vdr-1.6.0/PLUGINS/src/rotor-0.1.4'
g++ -g -O2 -Wall -Woverloaded-virtual -Wno-parentheses -fPIC -c -D_GNU_SOURCE -DUSE_CHANNELSCAN -DUSE_CMDSUBMENU -DUSE_CUTTIME -DUSE_DDEPGENTRY -DUSE_DOLBYINREC -DUSE_JUMPPLAY -DUSE_LIEMIKUUTIO -DUSE_PLUGINMISSING -DUSE_ROTOR -DUSE_SETTIME -DUSE_SORTRECORDS -DPLUGIN_NAME_I18N='"rotor"' -I../../..//include -I/include rotor.c
g++ -g -O2 -Wall -Woverloaded-virtual -Wno-parentheses -fPIC -c -D_GNU_SOURCE -DUSE_CHANNELSCAN -DUSE_CMDSUBMENU -DUSE_CUTTIME -DUSE_DDEPGENTRY -DUSE_DOLBYINREC -DUSE_JUMPPLAY -DUSE_LIEMIKUUTIO -DUSE_PLUGINMISSING -DUSE_ROTOR -DUSE_SETTIME -DUSE_SORTRECORDS -DPLUGIN_NAME_I18N='"rotor"' -I../../..//include -I/include menuitems.c
g++ -g -O2 -Wall -Woverloaded-virtual -Wno-parentheses -fPIC -c -D_GNU_SOURCE -DUSE_CHANNELSCAN -DUSE_CMDSUBMENU -DUSE_CUTTIME -DUSE_DDEPGENTRY -DUSE_DOLBYINREC -DUSE_JUMPPLAY -DUSE_LIEMIKUUTIO -DUSE_PLUGINMISSING -DUSE_ROTOR -DUSE_SETTIME -DUSE_SORTRECORDS -DPLUGIN_NAME_I18N='"rotor"' -I../../..//include -I/include menu.c
menu.c: In member function 'void cMenuScan::AddChannel(int)':
menu.c:429: error: no matching function for call to 'cChannel::SetPids(int, int, int [33], char [33][8], int [17], char [17][8], int)'
../../..//include/vdr/channels.h:230: note: candidates are: void cChannel::SetPids(int, int, int*, char (*)[8], int*, char (*)[8], int*, char (*)[8], int)
menu.c: In member function 'void cMenuScan::SetPids(int, int, int, int*, char (*)[8], int*, char (*)[8], int)':
menu.c:467: error: no matching function for call to 'cChannel::SetPids(int&, int&, int*&, char (*&)[8], int*&, char (*&)[8], int&)'
../../..//include/vdr/channels.h:230: note: candidates are: void cChannel::SetPids(int, int, int*, char (*)[8], int*, char (*)[8], int*, char (*)[8], int)
make[1]: *** [menu.o] Error 1
make[1]: Leaving directory `/vdr/vdr-1.6.0/PLUGINS/src/rotor-0.1.4'

*** failed plugins: rotor

Re: Problemi plugin rotor [RISOLTO]

Inviato: 25 mar 2008, 09:23
da ragno
Gringo ha scritto:Io non riesco ancora a compilare il plugin "rotor", nemmeno applicando le Extension Patch :evil:
Qualcuno sa come fare oppure mando il plugin a quel paese?
Piccola precisazione, la extensionpatch, contiene codice per adattare vdr plainvanilla all'utilizzo di alcuni plugghi che necessitano per il loro funzionamento di modificare vdr.

In questo caso invece la situazione e' opposta, il pluggo deve essere patchato per funzionare con vdr...

Prova questa patch, a me cosi il pluggo si compila ma non e' testato il funzionamento (se ci sono problemi dovrebbero manifestarsi utilizzando la funzionalita' di scansione canali interna al pluggo..).
Comunque a mio avviso, presto uscira' la versione per 1.6.x

Codice: Seleziona tutto

diff -u /root/rotor-0.1.4/filter.c ./rotor/filter.c
--- /root/rotor-0.1.4/filter.c2007-10-14 11:37:13.000000000 +0200
+++ ./rotor/filter.c2008-03-23 17:13:17.000000000 +0100
@@ -368,7 +368,9 @@
         int Ppid = pmt.getPCRPid();
         int Apids[MAXAPIDS + 1] = { 0 };
         int Dpids[MAXDPIDS + 1] = { 0 };
+        int Spids[MAXDPIDS + 1] = { 0 };
 #if VDRVERSNUM >= 10332
+        char SLangs[MAXAPIDS + 1][MAXLANGCODE2] = { "" };
         char ALangs[MAXAPIDS + 1][MAXLANGCODE2] = { "" };
         char DLangs[MAXDPIDS + 1][MAXLANGCODE2] = { "" };
 #else
@@ -448,7 +450,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));
         }
Only in /root/rotor-0.1.4: i18n.o
diff -u /root/rotor-0.1.4/menu.c ./rotor/menu.c
--- /root/rotor-0.1.4/menu.c2007-10-14 11:37:12.000000000 +0200
+++ ./rotor/menu.c2008-03-24 09:12:05.000000000 +0100
@@ -406,6 +406,11 @@
     channel->SetId(Channel[Num].Nid(),Channel[Num].Tid(),Channel[Num].Sid(),channel->Rid());
     int Apids[MAXAPIDS + 1] = { 0 };
     int Dpids[MAXDPIDS + 1] = { 0 };
+
+#if VDRVERSNUM>=10600
+    int  Spids[MAXDPIDS + 1] = { 0 };
+    char SLangs[MAXDPIDS + 1][MAXLANGCODE2] = { "" };
+#endif
 #if VDRVERSNUM>=10332
     char ALangs[MAXAPIDS + 1][MAXLANGCODE2] = { "" };
     char DLangs[MAXDPIDS + 1][MAXLANGCODE2] = { "" };
@@ -414,6 +419,15 @@
     char DLangs[MAXDPIDS + 1][4] = { "" };
 #endif
     int CaIds[MAXCAIDS+1] = { 0 };
+
+#if VDRVERSNUM>=10600
+    for (int i=0; i<=MAXDPIDS; i++)
+    {
+      Spids[i]=Channel[Num].Spid(i);
+      strcpy(SLangs[i],Channel[Num].Slang(i));
+    }
+#endif
+
     for (int i=0; i<=MAXAPIDS; i++)
     {
       Apids[i]=Channel[Num].Apid(i);
@@ -426,7 +440,11 @@
     }
     for (int i=0; i<=MAXCAIDS; i++)
       CaIds[i]=Channel[Num].Ca(i);
+#if VDRVERSNUM>=10600
+    channel->SetPids(Channel[Num].Vpid(),Channel[Num].Ppid(),Apids,ALangs,Dpids,DLangs,Spids,SLangs,Channel[Num].Tpid());
+#else
     channel->SetPids(Channel[Num].Vpid(),Channel[Num].Ppid(),Apids,ALangs,Dpids,DLangs,Channel[Num].Tpid());
+#endif
     channel->SetCaIds(CaIds);
   }
   else
@@ -455,16 +473,18 @@
   num++;
 }
 
-#if VDRVERSNUM>=10332
-void cMenuScan::SetPids(int Sid,int Vpid, int Ppid, int *Apids, char ALangs[][MAXLANGCODE2], int *Dpids, char DLangs[][MAXLANGCODE2], int Tpid)
-#else
+#if VDRVERSNUM>=10600
+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)
+#elif VDRVERNUM<=10331
 void cMenuScan::SetPids(int Sid,int Vpid, int Ppid, int *Apids, char ALangs[][4], int *Dpids, char DLangs[][4], int Tpid)
+#else
+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)
 #endif
 {
   for (int i=0; i<num; 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 -u /root/rotor-0.1.4/menu.h ./rotor/menu.h
--- /root/rotor-0.1.4/menu.h2007-10-14 11:37:12.000000000 +0200
+++ ./rotor/menu.h2008-03-23 17:10:36.000000000 +0100
@@ -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);
Common subdirectories: /root/rotor-0.1.4/patches and ./rotor/patches
Common subdirectories: /root/rotor-0.1.4/po and ./rotor/po
saluti
ragno

Re: Problemi plugin rotor [RISOLTO]

Inviato: 25 mar 2008, 21:28
da Gringo
ragno ha scritto: Comunque a mio avviso, presto uscira' la versione per 1.6.x

saluti
ragno
Speriamo perchè non va ancora.

Cmq, niente di che visto che impostando l'opzione disecq nel menu l'antenna si muove lo stesso :-)

Re: Problemi plugin rotor [RISOLTO]

Inviato: 26 mar 2008, 01:36
da jan23
Gringo ha scritto: Poi, una cosa volevo capire.
Se il plugin non è stato migrato per la versione > 1.5.7 ma si usa sempre quello per 1.4.x allora la lingua sarà sempre in inglese (cioè quello dei sorgenti del plugin).
Non esiste un metodo per usare la lingua italiana mediante le traduzioni?
Ciao Gringo

La versione 'migrata' esiste, ma non è tradotta (quindi hai sicuaramente un po' di lavoro sottomano :) ).
Scusami, ma per distrazione o per errore quando ti ho postato i files stavo usando la versione senza il supporto al 'gettext'.
Ho provveduto ad aggiornare il files in "risorse" (il plugin è gia patchato);
la versione originale invece la trovi qui

http://home.vrweb.de/~bergwinkl.thomas/

Purtoppo però non credo che il tuo problema sia dovuto a questo ma ...spero sinceramente di sbagliarmi!
Altrimenti dovresti dettagliare la tua configurazione, forse può essere utile a capire qual'è il tuo problema.

buonanotte

Re: Problemi plugin rotor [RISOLTO]

Inviato: 26 mar 2008, 08:41
da ragno
Gringo ha scritto:
Speriamo perchè non va ancora.

Cmq, niente di che visto che impostando l'opzione disecq nel menu l'antenna si muove lo stesso :-)
Infatti ho scoperto che il pluggo che manda in crash vdr e' proprio rotor. Riguardo al funzionamento della parabola, in effetti tutto funge, (se il motore e' impostato), pero' non e' possibile effettuare il setup...

Per le localizzazioni, tutto cio' che non e' migrato al supporto gettext, credo venga visualizzato solo in lingua inglese.

ciao

Re: Problemi plugin rotor [RISOLTO]

Inviato: 26 mar 2008, 08:51
da ragno
jan23 ha scritto:
ps x Gringo: forse un problema di dipendenze? Comunque io ricevo questo errore

Codice: Seleziona tutto

menu.c:429: error: no matching function for call to 'cChannel::SetPids(int, int, int [33], char [33][8], int [17], char [17][8], int)' 
quando provo a compilare il plugin non patchato.

ciao
Quell'errore e' una normale conseguenza della gestione dei sottotitoli in vdr 1.6.x, alla funzione SetPids() devono essere passati anche i pid dei sottotitoli.

Il problema invece e' che il pluggo compilato (patchando il codice) genera un errore di runtime mandando in crash vdr. Il problema evidentemente risiede in qualcos'altro, visto che la parte del codice da patchare riguarda la funzionalita' di scansione canali interna al pluggo che normalmente non viene utilizzata. E' piu' probabile che il codice contenuto nell'extensionpatch sia fallato per la 1.6.x...

saluti
ragno

Re: Problemi plugin rotor [RISOLTO]

Inviato: 26 mar 2008, 12:45
da ragno
Ecco la patch che dovrebbe risolvere il problema di errore a runtime(da vdrportal):

Codice: Seleziona tutto

--- rotor.c.old2006-06-14 23:44:27.000000000 +0200
+++ rotor.c2006-06-14 23:46:43.000000000 +0200
@@ -96,7 +96,8 @@
       continue;
     if ((diseqc=Diseqcs.Get(source->Code(),12000,'h')) || (diseqc=Diseqcs.Get(source->Code(),12000,'v')) || (diseqc=Diseqcs.Get(source->Code(),12000,'l')) || (diseqc=Diseqcs.Get(source->Code(),12000,'r'))) 
     {
-      char *c=strdup(diseqc->Commands());
+      char *commandstring=strdup(diseqc->Commands());
+      char *c=commandstring;      
       while (c = strchr(c, '['))
       {
         char *e = strchr(++c, ']');
@@ -131,7 +132,7 @@
           break;
         }
       }
-      free(c);
+      free(commandstring);
     }
     cRotorPos *p = RotorPositions.GetfromSource(source->Code());
     if (p==RotorPositions.First())
saluti
ragno

Re: Problemi plugin rotor [RISOLTO]

Inviato: 26 mar 2008, 17:44
da Gringo
jan23 ha scritto:
Gringo ha scritto: Poi, una cosa volevo capire.
Se il plugin non è stato migrato per la versione > 1.5.7 ma si usa sempre quello per 1.4.x allora la lingua sarà sempre in inglese (cioè quello dei sorgenti del plugin).
Non esiste un metodo per usare la lingua italiana mediante le traduzioni?
Ciao Gringo

La versione 'migrata' esiste, ma non è tradotta (quindi hai sicuaramente un po' di lavoro sottomano :) ).
Scusami, ma per distrazione o per errore quando ti ho postato i files stavo usando la versione senza il supporto al 'gettext'.

buonanotte
In realtà il plugin l'ho tradotto e l'ho mandato allo sviluppatore ma lui non lo ha mai aggiunto nel codice poiché non ha più rilasciato delle versioni aggiornate.

Il problema è come dice Ragno, se il plugin non è nativo per 1.5.7 e superiore allora si vede solo in inglese.

Re: Problemi plugin rotor [RISOLTO]

Inviato: 26 mar 2008, 21:41
da maidiremaik
@ gringo
come ben sai ho un rotore stab h-h 120 e ho messo su anche io vdr 1.6 ovviamente con il rotor manco a parlarne
mi servirebbe una mano , volevo provare il tuo disecq.conf , non è che me lo gireresti?
asta la vista companhero

Re: Problemi plugin rotor [RISOLTO]

Inviato: 27 mar 2008, 08:50
da ragno
maidiremaik ha scritto:@ gringo
come ben sai ho un rotore stab h-h 120 e ho messo su anche io vdr 1.6 ovviamente con il rotor manco a parlarne
mi servirebbe una mano , volevo provare il tuo disecq.conf , non è che me lo gireresti?
asta la vista companhero
E che problemi hai? Lo stab dovrebbe essere usal, quindi il setup e' semplicissimo, basta inserire le coordinate (e se non le conosci usa google earth), attivare la funzione gotox e disattivare il diseqc di vdr.

ciao

Re: Problemi plugin rotor [RISOLTO]

Inviato: 27 mar 2008, 09:11
da alez
Forse ho capito male io, ma maidiremaik non riesce a fare andare il pluggo, quindi non riuscirebbe a fare fungere il motore neanche in U.S.A.L.S.

@maidiremaik

se hai le posizioni memorizzate sull'eprom del motore, puoi sfruttare un diseqc.conf tipo questo:

viewtopic.php?p=1572#1572

sostituendo i numeri delle posizioni indicate nell'esempio con le tue posizioni.

In questo modo non usi il pluggo ed usi il motore direttamente in modalita' DiSEqC 1.2 anziche' Stab U.S.A.L.S.

Re: Problemi plugin rotor [RISOLTO]

Inviato: 27 mar 2008, 11:18
da ragno
alez ha scritto:Forse ho capito male io, ma maidiremaik non riesce a fare andare il pluggo, quindi non riuscirebbe a fare fungere il motore neanche in U.S.A.L.S.
Devono applicare l'ultima patch postata, ora a me funziona senza problemi.

In pratica:

1) applicare extensionpatchv55 attivando il codice per il pluggo rotor (in Make.config attivare la define ROTOR=1)

2) applicare la patch per codice del pluggo per risolvere i problemi di compilazione (sempre in questo thread)

3) applicare l'ultima patch che risolve il problema di errore a runtime (questo errore occorre solo se si utilizza il gcc 4.1x) e riguarda la gestione errata di un puntatore di memoria...

saluti
ragno

Re: Problemi plugin rotor [RISOLTO]

Inviato: 05 apr 2008, 23:11
da jan23
ragno ha scritto:
- La sintonizzazione dei canali dal pluggo rotor, utilizzando la funzione integrata di ricerca canali.

ragno
ciao ragno

per me la sintonizzazione canali nel plugin rotor funziona perfettamente (tranne che in abbinamente a menuorg, nessun problema invece con submenu e setup. Anche con menuorg in relatà il problema può essere ovviato di volta in volta, disattivando temporaneamente l'editing del menù dalle opzioni del plugin).

Volevo chiederti: hai scritto che il plugin Pin-1.9.0 compila e funziona nativamente con la 1.6. Vorei sapere se usi qualche accorgimento particolare perchè a me senza la ExPatch non ne vuole sapere di andare.

Ciao e grazie

Re: Problemi plugin rotor [RISOLTO]

Inviato: 14 mag 2008, 17:01
da Gringo
@ ragno: buone notizie, sono riuscito a compilare rotor con le 2 patch che avevi suggerito, grazie :wink: