mirror of
				https://github.com/rofafor/vdr-plugin-femon.git
				synced 2023-10-10 11:36:53 +00:00 
			
		
		
		
	Compare commits
	
		
			3 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					315a3365ba | ||
| 
						 | 
					8e1e025b0f | ||
| 
						 | 
					543accdd06 | 
							
								
								
									
										5
									
								
								HISTORY
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								HISTORY
									
									
									
									
									
								
							@@ -441,3 +441,8 @@ VDR Plugin 'femon' Revision History
 | 
			
		||||
 | 
			
		||||
- Cleaned up compilation warnings.
 | 
			
		||||
- Fixed channel switching.
 | 
			
		||||
 | 
			
		||||
2012-03-25: Version 1.7.16
 | 
			
		||||
 | 
			
		||||
- Updated for vdr-1.7.27.
 | 
			
		||||
- Cleaned up compilation warnings again.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								Makefile
									
									
									
									
									
								
							@@ -24,7 +24,7 @@ GITTAG  = $(shell git describe --always 2>/dev/null)
 | 
			
		||||
### The C++ compiler and options:
 | 
			
		||||
 | 
			
		||||
CXX      ?= g++
 | 
			
		||||
CXXFLAGS ?= -fPIC -g -O3 -Wall -Wextra -Wswitch-default -Wfloat-equal -Wundef -Wpointer-arith -Wconversion -Wcast-align -Wredundant-decls -Wno-unused-parameter -Woverloaded-virtual -Wno-parentheses
 | 
			
		||||
CXXFLAGS ?= -fPIC -g -O3 -Wall -Wextra -Wswitch-default -Wfloat-equal -Wundef -Wpointer-arith -Wconversion -Wcast-align -Wredundant-decls -Wno-unused-parameter -Werror=overloaded-virtual -Wno-parentheses
 | 
			
		||||
LDFLAGS  ?= -Wl,--as-needed
 | 
			
		||||
 | 
			
		||||
### The directory environment:
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								femon.c
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								femon.c
									
									
									
									
									
								
							@@ -14,15 +14,15 @@
 | 
			
		||||
#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
 | 
			
		||||
#define GITVERSION ""
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
static const char VERSION[]       = "1.7.15" GITVERSION;
 | 
			
		||||
static const char VERSION[]       = "1.7.16" GITVERSION;
 | 
			
		||||
static const char DESCRIPTION[]   = trNOOP("DVB Signal Information Monitor (OSD)");
 | 
			
		||||
static const char MAINMENUENTRY[] = trNOOP("Signal Information");
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -64,7 +64,7 @@ enum eFemonThemes
 | 
			
		||||
 | 
			
		||||
struct cFemonTheme
 | 
			
		||||
{
 | 
			
		||||
  unsigned int bpp;
 | 
			
		||||
  int bpp;
 | 
			
		||||
  unsigned int clrBackground;
 | 
			
		||||
  unsigned int clrTitleBackground;
 | 
			
		||||
  unsigned int clrTitleText;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								femonosd.c
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								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);
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										13
									
								
								femontools.c
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								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)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user