LinuxTV Patchwork Add SubsystemId for usb cards

login
register
mail settings
Submitter Jose Alberto Reguero
Date May 24, 2014, 3:12 p.m.
Message ID <1796620.MFx6I4AUpE@jar7.dominio>
Download mbox | patch
Permalink /patch/24024/
State New
Headers show

Comments

Jose Alberto Reguero - May 24, 2014, 3:12 p.m.
This patch add SubsystemId for usb cards, to be able to make changes to 
GetSignalQuality and GetSignalStrength functions.

Jose Alberto
VDR User - May 24, 2014, 5:02 p.m.
If the linux-media guys every get their act together in that area,
this wouldn't be necessary. Standardized statistics has been discussed
(at length) a number of times but unfortunately nothing was ever
agreed on and merged.

On Sat, May 24, 2014 at 8:12 AM, Jose Alberto Reguero
<jareguero@telefonica.net> wrote:
> This patch add SubsystemId for usb cards, to be able to make changes to
> GetSignalQuality and GetSignalStrength functions.
>
> Jose Alberto
> _______________________________________________
> vdr mailing list
> vdr@linuxtv.org
> http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
>

Patch

--- vdr-2.1.6/dvbdevice.c	2014-03-16 11:38:31.000000000 +0100
+++ vdr-actual/dvbdevice.c	2014-05-24 13:06:25.358513231 +0200
@@ -1750,12 +1735,26 @@  uint32_t cDvbDeviceProbe::GetSubsystemId
                              if (char *s = ReadLine.Read(f))
                                 SubsystemId = strtoul(s, NULL, 0) << 16;
                              fclose(f);
+                             } else {
+                                FileName = cString::sprintf("/sys/class/dvb/%s/device/idVendor", e->d_name);
+                                if ((f = fopen(FileName, "r")) != NULL) {
+                                   if (char *s = ReadLine.Read(f))
+                                      SubsystemId = strtoul(s, NULL, 16) << 16;
+                                   fclose(f);
+                                }
                              }
                           FileName = cString::sprintf("/sys/class/dvb/%s/device/subsystem_device", e->d_name);
                           if ((f = fopen(FileName, "r")) != NULL) {
                              if (char *s = ReadLine.Read(f))
                                 SubsystemId |= strtoul(s, NULL, 0);
                              fclose(f);
+                             } else {
+                                FileName = cString::sprintf("/sys/class/dvb/%s/device/idProduct", e->d_name);
+                                if ((f = fopen(FileName, "r")) != NULL) {
+                                   if (char *s = ReadLine.Read(f))
+                                      SubsystemId |= strtoul(s, NULL, 16);
+                                   fclose(f);
+                                }
                              }
                           break;
                           }

Privacy Policy