From d8f8154bb9967da609354b27e25ae6f47ba6dd27 Mon Sep 17 00:00:00 2001 From: mrwastl Date: Fri, 18 Jun 2010 22:52:36 +0200 Subject: new class for external services (service informations from other plugins: defined for now: radiotext, lcr, femon); radiotext/lcr-hack no longer necessary because of ext. services; new tokens for ext. services; bug fixes (casting, uint64_t, update detection); patches for femon <= 1.7.7 --- patches/femon-1.1.5_fixnullandsegfault_path.diff | 38 ++++++++++++++++++++++++ patches/femon-1.7.7_fixsegfault_patch.diff | 11 +++++++ 2 files changed, 49 insertions(+) create mode 100644 patches/femon-1.1.5_fixnullandsegfault_path.diff create mode 100644 patches/femon-1.7.7_fixsegfault_patch.diff (limited to 'patches') diff --git a/patches/femon-1.1.5_fixnullandsegfault_path.diff b/patches/femon-1.1.5_fixnullandsegfault_path.diff new file mode 100644 index 0000000..a8dcc82 --- /dev/null +++ b/patches/femon-1.1.5_fixnullandsegfault_path.diff @@ -0,0 +1,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; + } + diff --git a/patches/femon-1.7.7_fixsegfault_patch.diff b/patches/femon-1.7.7_fixsegfault_patch.diff new file mode 100644 index 0000000..86cf976 --- /dev/null +++ b/patches/femon-1.7.7_fixsegfault_patch.diff @@ -0,0 +1,11 @@ +--- femon.c_orig 2010-06-05 01:34:59.000000000 +0200 ++++ femon.c 2010-06-05 01:35:23.000000000 +0200 +@@ -133,6 +133,8 @@ + 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); -- cgit v1.2.3