summaryrefslogtreecommitdiff
path: root/patches/femon-1.1.5_fixnullandsegfault_path.diff
blob: a8dcc822c63c25e0fc141e7a56abbf812fa53bf1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
--- femon.c_orig	2008-01-20 03:20:00.000000000 +0100
+++ femon.c	2010-06-05 01:30:33.000000000 +0200
@@ -134,18 +134,23 @@
 
 bool cPluginFemon::Service(const char *Id, void *Data)
 {
-  if ((strcmp(Id,"FemonService-v1.0") == 0) && Data) {
-     FemonService_v1_0 *data = (FemonService_v1_0*)Data;
-     int ndx = cDevice::ActualDevice()->CardIndex();
-     data->fe_name = getFrontendName(ndx);
-     data->fe_status = getFrontendStatus(ndx);
-     data->fe_snr = getSNR(ndx);
-     data->fe_signal = getSignal(ndx);
-     data->fe_ber = getBER(ndx);
-     data->fe_unc = getUNC(ndx);
-     data->video_bitrate = cFemonOsd::Instance() ? cFemonOsd::Instance()->GetVideoBitrate() : 0.0;
-     data->audio_bitrate = cFemonOsd::Instance() ? cFemonOsd::Instance()->GetAudioBitrate() : 0.0;
-     data->dolby_bitrate = cFemonOsd::Instance() ? cFemonOsd::Instance()->GetDolbyBitrate() : 0.0;
+  if (strcmp(Id,"FemonService-v1.0") == 0) {
+     if (Data) {
+        FemonService_v1_0 *data = (FemonService_v1_0*)Data;
+        if (! cDevice::ActualDevice() )
+            return false;
+
+        int ndx = cDevice::ActualDevice()->CardIndex();
+        data->fe_name = getFrontendName(ndx);
+        data->fe_status = getFrontendStatus(ndx);
+        data->fe_snr = getSNR(ndx);
+        data->fe_signal = getSignal(ndx);
+        data->fe_ber = getBER(ndx);
+        data->fe_unc = getUNC(ndx);
+        data->video_bitrate = cFemonOsd::Instance() ? cFemonOsd::Instance()->GetVideoBitrate() : 0.0;
+        data->audio_bitrate = cFemonOsd::Instance() ? cFemonOsd::Instance()->GetAudioBitrate() : 0.0;
+        data->dolby_bitrate = cFemonOsd::Instance() ? cFemonOsd::Instance()->GetDolbyBitrate() : 0.0;
+        }
      return true;
      }