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