[vdr] Re: femon cleanup/SVDRP enhancement

Herbert Poetzl herbert at 13thfloor.at
Sun Jun 18 21:56:57 CEST 2006


On Sun, Jun 18, 2006 at 01:01:36AM +0200, Herbert Poetzl wrote:
> 
> Hi Rolf! Folks!
> 
> the first patch moves most of the value-to-string
> conversions from femonosd.c to femontools.c and 
> declares them properly in the femontools.h file.
> the osd part is updated to utilize them.
> 
> the second patch extends the SVDRP interface of
> femon by a basic INFO command (which can easily 
> be extended in the future), giving output like
> this:
> 
> PLUG femon INFO
> 900- Frequency:   11158 Mhz    Source:       S13.0E
> 900- Srate:       27500        Polarization: V
> 900- Inversion:   Auto         Coderate: Auto, Auto
> 900- Vpid:   369  Ppid:   369  Tpid:     0
> 900- Sid:  13108  Nid:      0  Tid:      0  Rid:     0
> 900- Apid:   370
> 900- Dpid:     0
> 900  CA:    1801
> 
> would be nice to get some feedback
> 
> TIA,
> Herbert
> 
> [patch zapped]

here is a small but important fix to the previous
patches, which showed up while testing channels
with more than one *pid

best,
Herbert


--- femon-1.0.1.2/femontools.c	2006-06-18 21:49:57.000000000 +0200
+++ femon-1.0.1.3/femontools.c	2006-06-18 21:36:31.000000000 +0200
@@ -41,19 +41,16 @@ cString getFrontendInfo(int cardIndex)
   int freq = channel->Frequency();
   while (freq > 20000) freq /= 1000;
 
-  cString apid_str = cString::sprintf("%5d", channel->Apid(0));
-  value = 1;
-  while (channel->Apid(value) && (value < MAXAPIDS))
+  cString apid_str = cString::sprintf("%5d", channel->Apid(value=0));
+  while (channel->Apid(++value) && (value < MAXAPIDS))
     apid_str = cString::sprintf("%s, %d", *apid_str, channel->Apid(value));
 
-  cString dpid_str = cString::sprintf("%5d", channel->Dpid(0));
-  value = 1;
-  while (channel->Dpid(value) && (value < MAXDPIDS))
+  cString dpid_str = cString::sprintf("%5d", channel->Dpid(value=0));
+  while (channel->Dpid(++value) && (value < MAXDPIDS))
     dpid_str = cString::sprintf("%s, %d", *dpid_str, channel->Dpid(value));
 
-  cString ca_str = cString::sprintf(" %04x", channel->Ca(0));
-  value = 1;
-  while (channel->Ca(value) && (value < MAXCAIDS))
+  cString ca_str = cString::sprintf(" %04x", channel->Ca(value=0));
+  while (channel->Ca(++value) && (value < MAXCAIDS))
     ca_str = cString::sprintf("%s, %04x", *ca_str, channel->Ca(value));
   
   return cString::sprintf(



More information about the vdr mailing list