Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[vdr] Re: Preliminary VDR 1.1.12 for testing



Hi Klaus,
first of all, thank you for the great job you are doing!

Klaus Schmidinger wrote:
> - Does the new DiSEqC handling work? Go into the "Edit channel" menu
>   and set the "Source:" parameter to the satellite where your channel
> is on. Edit the new file 'diseqc.conf' to fit your system setup.

In Germany the locale for the decimal point is the comma.
Therfore, you cannot use "%g" in the snprintf format string because this
will result in a string "19,2" instead of "19.2", and DiSEqC won't work...
I applied the following patch:
--------------------------------  snip  --------------------------------------
--- vdr-1.1.12/sources.c        Sat Oct  5 15:53:27 2002
+++ vdr-1.1.12-newstruct/sources.c      Sun Oct  6 04:44:27 2002
@@ -41,7 +41,7 @@
     case stSat:   *q++ = 'S';
                   {
                     int pos = Code & ~st_Mask;
-                    q += snprintf(q, sizeof(buffer) - 2, "%g", (pos & ~st_Neg) / 10.0);
+                    q += snprintf(q, sizeof(buffer) - 2, "%u.%u", (pos & ~st_Neg) / 10, (pos & ~st_Neg) % 10);
                     *q++ = (Code & st_Neg) ? 'E' : 'W';
                   }
                   break;
--------------------------------  snip  --------------------------------------

> - Do all these things work with both the "old" and the NEWSTRUCT
> driver? Note that the DiSEqC handling has changed pretty much in teh
> NEWSTRUCT branch (which allows the now very flexible setup), so this
> could only be emulated with the "old" driver. Chances are it doesn't
> work...

I successfully tested both drivers and found that the 
new driver (latest CVS) works more reliable than the old one.
(I always had some DiSEqC compatibility problems.)

With the NEWSTRUCT driver the following setup works 100% reliable for me:
--------------------------------  snip  --------------------------------------
# DiSEqC only
S19.2E  11700 V  9750  [E0 10 38 F0] W15 [E1 10 38 F0] W15 [E1 10 38 F0]
S19.2E  99999 V 10600  [E0 10 38 F1] W15 [E1 10 38 F1] W15 [E1 10 38 F1]
S19.2E  11700 H  9750  [E0 10 38 F2] W15 [E1 10 38 F2] W15 [E1 10 38 F2]
S19.2E  99999 H 10600  [E0 10 38 F3] W15 [E1 10 38 F3] W15 [E1 10 38 F3]
S13E  11700 V  9750  [E0 10 38 F4] W15 [E1 10 38 F4] W15 [E1 10 38 F4]
S13E  99999 V 10600  [E0 10 38 F5] W15 [E1 10 38 F5] W15 [E1 10 38 F5]
S13E  11700 H  9750  [E0 10 38 F6] W15 [E1 10 38 F6] W15 [E1 10 38 F6]
S13E  99999 H 10600  [E0 10 38 F7] W15 [E1 10 38 F7] W15 [E1 10 38 F7]
--------------------------------  snip  --------------------------------------
Note that I removed all tone/voltage/mini commands because true 
DiSEqC switches don't need them.

Here is a small Perl script which you may use to convert your channels.conf:
--------------------------------  snip  --------------------------------------
#!/usr/bin/perl

%translate =
  (
    "0" => "S19.2E",
    "1" => "S13E",
  );

$index = 3;


while (<>)
{
    #name:freq:para:src:srate:vpid:apid:tpid:cond:sid
    @fields = split /:/;
    if (@fields != 10)
    {
        print;
    }
    else
    {
        $fields[$index] = $translate{$fields[$index]};
        print join ':', @fields;
    }
}
--------------------------------  snip  --------------------------------------
Usage:  chconv < channels.conf.old > channels.conf.new

Note that DiSEqC value "0" is converted to Astra 19.2°, "1" to Eutelsat 13°.
You may want to modify this according to your setup.

Oliver

P.S.:
The latest NEWSTRUCT CVS driver appears to be more stable than 
the old driver ever was. You should try it!
It seems that it was a good idea to move time-consuming jobs
out of the ISR into separate threads. Thanks, Holger!


-- 
Info:
To unsubscribe send a mail to listar@linuxtv.org with "unsubscribe vdr" as subject.



Home | Main Index | Thread Index