From 315a3365ba3327bc590e89d81e8eaa8722b5ece9 Mon Sep 17 00:00:00 2001 From: Rolf Ahrenberg Date: Sun, 25 Mar 2012 16:55:42 +0300 Subject: [PATCH] Updated for vdr-1.7.27. --- HISTORY | 3 ++- femon.c | 4 ++-- femonosd.c | 12 ++++++++---- femonosd.h | 1 + femontools.c | 13 ++----------- 5 files changed, 15 insertions(+), 18 deletions(-) diff --git a/HISTORY b/HISTORY index b2dcbc6..b531b39 100644 --- a/HISTORY +++ b/HISTORY @@ -442,6 +442,7 @@ VDR Plugin 'femon' Revision History - Cleaned up compilation warnings. - Fixed channel switching. -2012-xx-xx: Version 1.7.16 +2012-03-25: Version 1.7.16 +- Updated for vdr-1.7.27. - Cleaned up compilation warnings again. diff --git a/femon.c b/femon.c index 35d7841..2e24160 100644 --- a/femon.c +++ b/femon.c @@ -14,8 +14,8 @@ #include "femonservice.h" #include "femontools.h" -#if defined(APIVERSNUM) && APIVERSNUM < 10726 -#error "VDR-1.7.26 API version or greater is required!" +#if defined(APIVERSNUM) && APIVERSNUM < 10727 +#error "VDR-1.7.27 API version or greater is required!" #endif #ifndef GITVERSION diff --git a/femonosd.c b/femonosd.c index 44e1738..bad8b37 100644 --- a/femonosd.c +++ b/femonosd.c @@ -183,6 +183,7 @@ cFemonOsd::cFemonOsd() m_BERValid(false), m_UNC(0), m_UNCValid(false), + m_FrontendName(""), m_FrontendStatusValid(false), m_DeviceSource(DEVICESOURCE_DVBAPI), m_DisplayMode(femonConfig.displaymode), @@ -420,7 +421,7 @@ void cFemonOsd::DrawInfoWindow(void) offset += OSDROWHEIGHT; switch (channel->Source() & cSource::st_Mask) { case cSource::stSat: - OSDDRAWINFOLINE(*cString::sprintf("%s #%d - %s", *getSatelliteSystem(dtp.System()), (m_SvdrpFrontend >= 0) ? m_SvdrpFrontend : cDevice::ActualDevice()->CardIndex(), m_FrontendInfo.name)); + OSDDRAWINFOLINE(*cString::sprintf("%s #%d - %s", *getSatelliteSystem(dtp.System()), (m_SvdrpFrontend >= 0) ? m_SvdrpFrontend : cDevice::ActualDevice()->CardIndex(), *m_FrontendName)); offset += OSDROWHEIGHT; OSDDRAWINFOLEFT( trVDR("Frequency"), *getFrequencyMHz(channel->Frequency())); OSDDRAWINFORIGHT(trVDR("Source"), *cSource::ToString(channel->Source())); @@ -437,7 +438,7 @@ void cFemonOsd::DrawInfoWindow(void) break; case cSource::stCable: - OSDDRAWINFOLINE(*cString::sprintf("DVB-C #%d - %s", (m_SvdrpFrontend >= 0) ? m_SvdrpFrontend : cDevice::ActualDevice()->CardIndex(), m_FrontendInfo.name)); + OSDDRAWINFOLINE(*cString::sprintf("DVB-C #%d - %s", (m_SvdrpFrontend >= 0) ? m_SvdrpFrontend : cDevice::ActualDevice()->CardIndex(), *m_FrontendName)); offset += OSDROWHEIGHT; OSDDRAWINFOLEFT( trVDR("Frequency"), *getFrequencyMHz(channel->Frequency())); OSDDRAWINFORIGHT(trVDR("Source"), *cSource::ToString(channel->Source())); @@ -450,7 +451,7 @@ void cFemonOsd::DrawInfoWindow(void) break; case cSource::stTerr: - OSDDRAWINFOLINE(*cString::sprintf("%s #%d - %s", *getTerrestrialSystem(dtp.System()), (m_SvdrpFrontend >= 0) ? m_SvdrpFrontend : cDevice::ActualDevice()->CardIndex(), m_FrontendInfo.name)); + OSDDRAWINFOLINE(*cString::sprintf("%s #%d - %s", *getTerrestrialSystem(dtp.System()), (m_SvdrpFrontend >= 0) ? m_SvdrpFrontend : cDevice::ActualDevice()->CardIndex(), *m_FrontendName)); offset += OSDROWHEIGHT; OSDDRAWINFOLEFT( trVDR("Frequency"), *getFrequencyMHz(channel->Frequency())); OSDDRAWINFORIGHT(trVDR("Transmission"), *getTransmission(dtp.Transmission())); @@ -556,6 +557,7 @@ void cFemonOsd::Action(void) m_QualityValid = (m_Quality >= 0); m_Strength = cDevice::ActualDevice()->SignalStrength(); m_StrengthValid = (m_Strength >= 0); + m_FrontendName = cDevice::ActualDevice()->DeviceName(); m_FrontendStatus = (fe_status_t)(m_StrengthValid ? (FE_HAS_LOCK | FE_HAS_SIGNAL | FE_HAS_CARRIER | FE_HAS_VITERBI | FE_HAS_SYNC) : 0); m_FrontendStatusValid = m_StrengthValid; m_Signal = uint16_t(m_Strength * 0xFFFF / 100); @@ -572,6 +574,7 @@ void cFemonOsd::Action(void) m_QualityValid = (m_Quality >= 0); m_Strength = cDevice::ActualDevice()->SignalStrength(); m_StrengthValid = (m_Strength >= 0); + m_FrontendName = cDevice::ActualDevice()->DeviceName(); m_FrontendStatus = (fe_status_t)(m_StrengthValid ? (FE_HAS_LOCK | FE_HAS_SIGNAL | FE_HAS_CARRIER | FE_HAS_VITERBI | FE_HAS_SYNC) : 0); m_FrontendStatusValid = m_StrengthValid; m_Signal = uint16_t(m_Strength * 0xFFFF / 100); @@ -590,6 +593,7 @@ void cFemonOsd::Action(void) m_QualityValid = (m_Quality >= 0); m_Strength = cDevice::ActualDevice()->SignalStrength(); m_StrengthValid = (m_Strength >= 0); + m_FrontendName = cDevice::ActualDevice()->DeviceName(); m_FrontendStatusValid = (ioctl(m_Frontend, FE_READ_STATUS, &m_FrontendStatus) >= 0); m_SignalValid = (ioctl(m_Frontend, FE_READ_SIGNAL_STRENGTH, &m_Signal) >= 0); m_SNRValid = (ioctl(m_Frontend, FE_READ_SNR, &m_SNR) >= 0); @@ -622,7 +626,7 @@ void cFemonOsd::Action(void) else if (!strncasecmp(s, "TYPE:", 5)) m_FrontendInfo.type = (fe_type_t)strtol(s + 5, NULL, 10); else if (!strncasecmp(s, "NAME:", 5)) { - strn0cpy(m_FrontendInfo.name, s + 5, sizeof(m_FrontendInfo.name)); + m_FrontendName = s + 5; } else if (!strncasecmp(s, "STAT:", 5)) { m_FrontendStatus = (fe_status_t)strtol(s + 5, NULL, 16); diff --git a/femonosd.h b/femonosd.h index 7398452..e26e7aa 100644 --- a/femonosd.h +++ b/femonosd.h @@ -55,6 +55,7 @@ private: bool m_BERValid; uint32_t m_UNC; bool m_UNCValid; + cString m_FrontendName; fe_status_t m_FrontendStatus; bool m_FrontendStatusValid; dvb_frontend_info m_FrontendInfo; diff --git a/femontools.c b/femontools.c index 88732e5..c0413cc 100644 --- a/femontools.c +++ b/femontools.c @@ -97,7 +97,7 @@ cString getFrontendInfo(cDvbDevice *device) info = cString::sprintf("CARD:%d\nSTRG:%d\nQUAL:%d", device->CardIndex(), device->SignalStrength(), device->SignalQuality()); if (ioctl(fe, FE_GET_INFO, &value) >= 0) - info = cString::sprintf("%s\nTYPE:%d\nNAME:%s", *info, value.type, value.name); + info = cString::sprintf("%s\nTYPE:%d\nNAME:%s", *info, value.type, *device->DeviceName()); if (ioctl(fe, FE_READ_STATUS, &status) >= 0) info = cString::sprintf("%s\nSTAT:%02X", *info, status); if (ioctl(fe, FE_READ_SIGNAL_STRENGTH, &signal) >= 0) @@ -121,19 +121,10 @@ cString getFrontendInfo(cDvbDevice *device) cString getFrontendName(cDvbDevice *device) { - struct dvb_frontend_info value; - if (!device) return NULL; - int fe = open(*cString::sprintf(FRONTEND_DEVICE, device->Adapter(), device->Frontend()), O_RDONLY | O_NONBLOCK); - if (fe < 0) - return NULL; - memset(&value, 0, sizeof(value)); - ioctl(fe, FE_GET_INFO, &value); - close(fe); - - return (cString::sprintf("%s on device #%d", value.name, device->CardIndex())); + return (cString::sprintf("%s on device #%d", *device->DeviceName(), device->CardIndex())); } cString getFrontendStatus(cDvbDevice *device)