aboutsummaryrefslogtreecommitdiff
path: root/multimedia/vdr
diff options
context:
space:
mode:
authorJuergen Lock <nox@FreeBSD.org>2012-05-11 17:17:24 +0000
committerJuergen Lock <nox@FreeBSD.org>2012-05-11 17:17:24 +0000
commit2a6dfb7ae63afca2409854842b0f62c383a26937 (patch)
treebc39101e5cc30b07196cdd89c881de04ebc61bf0 /multimedia/vdr
parenta44b4187c90bb43720824747a2dcb1e2b956c720 (diff)
downloadports-2a6dfb7ae63afca2409854842b0f62c383a26937.tar.gz
ports-2a6dfb7ae63afca2409854842b0f62c383a26937.zip
- Further fixes to the signal quality display, especially SNR.
- Bump PORTREVISION.
Notes
Notes: svn path=/head/; revision=296441
Diffstat (limited to 'multimedia/vdr')
-rw-r--r--multimedia/vdr/Makefile2
-rw-r--r--multimedia/vdr/files/patch-dvbdevice.c27
-rw-r--r--multimedia/vdr/files/stb0899-signalstrength.patch15
3 files changed, 42 insertions, 2 deletions
diff --git a/multimedia/vdr/Makefile b/multimedia/vdr/Makefile
index babcf9f08ba2..9949f72545f9 100644
--- a/multimedia/vdr/Makefile
+++ b/multimedia/vdr/Makefile
@@ -7,7 +7,7 @@
PORTNAME= vdr
PORTVERSION= 1.7.27
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= multimedia
MASTER_SITES= ftp://ftp.tvdr.de/vdr/Developer/
diff --git a/multimedia/vdr/files/patch-dvbdevice.c b/multimedia/vdr/files/patch-dvbdevice.c
index dfc493d52efd..89760322d0f7 100644
--- a/multimedia/vdr/files/patch-dvbdevice.c
+++ b/multimedia/vdr/files/patch-dvbdevice.c
@@ -8,3 +8,30 @@
#include "dvbdevice.h"
#include <ctype.h>
#include <errno.h>
+@@ -592,7 +598,7 @@ int cDvbTuner::GetSignalQuality(void) co
+ while (1) {
+ if (ioctl(fd_frontend, FE_READ_SNR, &Snr) != -1)
+ break;
+- if (errno == EOPNOTSUPP) {
++ if (errno == EOPNOTSUPP || errno == ENXIO) {
+ Snr = 0xFFFF;
+ HasSnr = false;
+ break;
+@@ -605,7 +611,7 @@ int cDvbTuner::GetSignalQuality(void) co
+ while (1) {
+ if (ioctl(fd_frontend, FE_READ_BER, &Ber) != -1)
+ break;
+- if (errno == EOPNOTSUPP) {
++ if (errno == EOPNOTSUPP || errno == ENXIO) {
+ Ber = 0;
+ HasBer = false;
+ break;
+@@ -618,7 +624,7 @@ int cDvbTuner::GetSignalQuality(void) co
+ while (1) {
+ if (ioctl(fd_frontend, FE_READ_UNCORRECTED_BLOCKS, &Unc) != -1)
+ break;
+- if (errno == EOPNOTSUPP) {
++ if (errno == EOPNOTSUPP || errno == ENXIO) {
+ Unc = 0;
+ HasUnc = false;
+ break;
diff --git a/multimedia/vdr/files/stb0899-signalstrength.patch b/multimedia/vdr/files/stb0899-signalstrength.patch
index cc8816dbff5d..669a05f1133a 100644
--- a/multimedia/vdr/files/stb0899-signalstrength.patch
+++ b/multimedia/vdr/files/stb0899-signalstrength.patch
@@ -1,6 +1,6 @@
--- dvbdevice.c.orig
+++ dvbdevice.c
-@@ -559,6 +560,12 @@ int cDvbTuner::GetSignalStrength(void) c
+@@ -560,6 +560,12 @@ int cDvbTuner::GetSignalStrength(void) c
switch (subsystemId) {
case 0x13C21019: MaxSignal = 670; break; // TT-budget S2-3200 (DVB-S/DVB-S2)
}
@@ -13,3 +13,16 @@
int s = int(Signal) * 100 / MaxSignal;
if (s > 100)
s = 100;
+@@ -632,6 +638,12 @@ int cDvbTuner::GetSignalQuality(void) co
+ switch (subsystemId) {
+ case 0x13C21019: MaxSnr = 200; break; // TT-budget S2-3200 (DVB-S/DVB-S2)
+ }
++#if 1
++ // XXX This is likely not correct for all cards using stb0899
++ // but pctv452e usb ones seem to be affected too...
++ if (!strcmp(device->DeviceName(), "STB0899 Multistandard"))
++ MaxSnr = 200;
++#endif
+ int a = int(Snr) * 100 / MaxSnr;
+ int b = 100 - (Unc * 10 + (Ber / 256) * 5);
+ if (b < 0)