mirror of
				https://github.com/rofafor/vdr-plugin-femon.git
				synced 2023-10-10 11:36:53 +00:00 
			
		
		
		
	Compare commits
	
		
			8 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 9814970182 | ||
|  | 5bda0fa833 | ||
|  | ca954757db | ||
|  | 825755281f | ||
|  | ab3f270eed | ||
|  | 995b2567e5 | ||
|  | 6f9961f499 | ||
|  | c454189adf | 
							
								
								
									
										41
									
								
								HISTORY
									
									
									
									
									
								
							
							
						
						
									
										41
									
								
								HISTORY
									
									
									
									
									
								
							| @@ -106,3 +106,44 @@ VDR Plugin 'femon' Revision History | ||||
|  | ||||
| - Yet Another Minor Release. | ||||
| - Integrated the CA system names patch: "Setup / Show CA System". | ||||
|  | ||||
| 2004-11-28: Version 0.1.7 | ||||
|  | ||||
| - Updated for vdr-1.3.17. | ||||
| - Fixed receiver related crash (Thanks to Marco Schluessler). | ||||
|  | ||||
| 2005-01-15: Version 0.7.7 | ||||
|  | ||||
| - Updated for vdr-1.3.18. | ||||
| - Added DEBUG mode (make DEBUG=1 plugins). | ||||
| - OSD height is now user configurable. | ||||
| - Added audio channel selection into Yellow key. | ||||
|  | ||||
| 2005-01-23: Version 0.7.9 | ||||
|  | ||||
| - Some minor cosmetic fixes. | ||||
|  | ||||
| 2005-01-23: Version 0.8.0 | ||||
|  | ||||
| - Updated for vdr-1.3.19. | ||||
|  | ||||
| 2005-01-24: Version 0.8.1 | ||||
|  | ||||
| - Added Estonian translations (Thanks to Arthur Konovalov). | ||||
|  | ||||
| 2005-02-24: Version 0.8.5 | ||||
|  | ||||
| - Updated for vdr-1.3.21. | ||||
| - Minor modification for DEBUG mode. | ||||
| - Added preliminary support for themes and some GUI tweaks. | ||||
| - Added horizontal offset setup option. | ||||
|  | ||||
| 2005-02-26: Version 0.8.6 | ||||
|  | ||||
| - Horizontal offset setup option should be functional now. | ||||
|  | ||||
| 2005-04-01: Version 0.8.7 | ||||
|  | ||||
| - Default make target is now all. | ||||
| - Fixed the access rights of symbols subdirectory (Thanks to Harri Kukkonen). | ||||
| - Added a new theme: Moronimo (Thanks to Morone). | ||||
|   | ||||
							
								
								
									
										9
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								Makefile
									
									
									
									
									
								
							| @@ -16,7 +16,7 @@ VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).h | awk '{ pri | ||||
| ### The C++ compiler and options: | ||||
|  | ||||
| CXX      ?= g++ | ||||
| CXXFLAGS ?= -O2 -Wall -Woverloaded-virtual | ||||
| CXXFLAGS ?= -g -O2 -Wall -Woverloaded-virtual -fPIC | ||||
|  | ||||
| ### The directory environment: | ||||
|  | ||||
| @@ -48,6 +48,13 @@ ifdef NTSC_SYSTEM | ||||
| DEFINES += -DNTSC_SYSTEM | ||||
| endif | ||||
|  | ||||
| ifdef DEBUG | ||||
| DEFINES += -DDEBUG | ||||
| endif | ||||
|  | ||||
| .PHONY: all all-redirect | ||||
| all-redirect: all | ||||
|  | ||||
| ### The object files (add further files here): | ||||
|  | ||||
| OBJS = femon.o femonosd.o femonreceiver.o femoncfg.o femoni18n.o | ||||
|   | ||||
							
								
								
									
										26
									
								
								README
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								README
									
									
									
									
									
								
							| @@ -21,16 +21,14 @@ transponder and stream information are also available in advanced display modes. | ||||
|  | ||||
| The plugin is based on a neat console frontend status monitor application | ||||
| called 'femon' by Johannes Stezenbach (see DVB-apps/szap/femon.c for further | ||||
| information). The other parts of plugin code are borrowed from the excellent | ||||
| 'OSD Picture-In-Picture' plugin by Sascha Volkenandt and Andreas Regel. The | ||||
| bitrate calculation algorithm originates from the 'dvbstream' application by | ||||
| Dave Chapman and the stream information routines from the 'libdvb' library by | ||||
| Metzler Brothers. | ||||
| information). The bitrate calculation trick originates from the 'dvbstream' | ||||
| application by Dave Chapman and the stream information routines are taken from | ||||
| the 'libdvb' library by Metzler Brothers. | ||||
|  | ||||
| Terminology: | ||||
|  | ||||
| -------------------------------------------------------------- | ||||
| |## Channel Name ######################### [DD][AR][VF][A][D]| | ||||
| |## Channel Name ########################## [AR][VF][A/DD][D]| | ||||
| |[=====Signal Strength in % ==============|=================]| | ||||
| |[=====Signal-to-Noise Ratio in % ========|=================]| | ||||
| | STR: #0000 (0%)       BER: #00000000       Video: 0 Mbit/s | | ||||
| @@ -51,10 +49,9 @@ CARRIER - Found a DVB signal | ||||
| VITERBI - FEC (forward error correction) is stable | ||||
| SYNC    - Found sync bytes | ||||
|  | ||||
| DD      - AC-3 stream (optional) | ||||
| AR      - Aspect Ratio: 1:1/4:3/16:9/2.21:1 (optional) | ||||
| VF      - Video format: PAL/NTSC (optional) | ||||
| A       - Audio track: 1..2 (optional) | ||||
| A/DD    - Audio (0..5) / AC-3 track (optional) | ||||
| D       - Device number: 0..3 (optional) | ||||
|  | ||||
| Controls: | ||||
| @@ -63,9 +60,10 @@ ChanUp/ChanDn - Switch channel up/down | ||||
| Up/Down       - Switch channel up/down | ||||
| 0-9           - Select channel | ||||
| Ok            - Switch between display modes: basic, transponder, stream, AC-3 | ||||
| Right/Left    - Switch to next/previous device that provides the current channel | ||||
| Green         - Select language (APID) | ||||
| Green         - Select next audio track | ||||
| Yellow        - Select audio channel: stereo, mono left, mono right | ||||
| Back          - Exit plugin | ||||
| (Left/Right   - Switch to next/previous device that provides the current channel) | ||||
|  | ||||
| Installation: | ||||
|  | ||||
| @@ -82,14 +80,14 @@ Notes: | ||||
| - The plugin supports only those DVB cards with _one_ frontend (do any cards | ||||
|   with multiple frontends even exist?), because I haven't yet figured howto do | ||||
|   it without patching the VDR core. | ||||
| - Sometimes (read always) ttxtsubs plugin messes up the OSD - user should disable | ||||
|   ttxtsubs, but closing and reopening the femon plugin might help temporarily as | ||||
|   well. Btw., this same thing happens with OSDTeletext plugin too :) | ||||
| - Disable the stream analyze to speed up heavy zapping sessions. | ||||
| - The signal strength and signal-to-noise ratio values are comparable only | ||||
|   between the same brand/model frontends. Due to the lack of proper frontend | ||||
|   specifications those values cannot be calculated into any real units. | ||||
| - Shrinked OSD is available for NTSC users: make NTSC_SYSTEM=1 | ||||
| - If the OSD isn't visible, you've configured the OSD height too big or too | ||||
|   small. Please, try to adjust the variable on the setup page before writing | ||||
|   any bug reports. | ||||
| - There's a shrinked default OSD height for NTSC users: make NTSC_SYSTEM=1 | ||||
| - The device switching feature is still non-functional. | ||||
|  | ||||
| "Femon - A real womon who lives according to her natural feminine inclinations." | ||||
|   | ||||
							
								
								
									
										52
									
								
								femon.c
									
									
									
									
									
								
							
							
						
						
									
										52
									
								
								femon.c
									
									
									
									
									
								
							| @@ -12,7 +12,7 @@ | ||||
| #include "femonosd.h" | ||||
| #include "femon.h" | ||||
|  | ||||
| #if VDRVERSNUM && VDRVERSNUM < 10307 | ||||
| #if VDRVERSNUM && VDRVERSNUM < 10321 | ||||
| #error "You don't exist! Go away!" | ||||
| #endif | ||||
|  | ||||
| @@ -53,6 +53,11 @@ bool cPluginFemon::Start(void) | ||||
|   return true; | ||||
| } | ||||
|  | ||||
| void cPluginFemon::Stop(void) | ||||
| { | ||||
|   // Stop the background activities. | ||||
| } | ||||
|  | ||||
| void cPluginFemon::Housekeeping(void) | ||||
| { | ||||
|   // Perform any cleanup or other regular tasks. | ||||
| @@ -71,6 +76,9 @@ bool cPluginFemon::SetupParse(const char *Name, const char *Value) | ||||
|   else if (!strcasecmp(Name, "SyslogOutput"))   femonConfig.syslogoutput   = atoi(Value); | ||||
|   else if (!strcasecmp(Name, "DisplayMode"))    femonConfig.displaymode    = atoi(Value); | ||||
|   else if (!strcasecmp(Name, "Position"))       femonConfig.position       = atoi(Value); | ||||
|   else if (!strcasecmp(Name, "OSDHeight"))      femonConfig.osdheight      = atoi(Value); | ||||
|   else if (!strcasecmp(Name, "OSDOffset"))      femonConfig.osdoffset      = atoi(Value); | ||||
|   else if (!strcasecmp(Name, "Theme"))          femonConfig.theme          = atoi(Value); | ||||
|   else if (!strcasecmp(Name, "ShowCASystem"))   femonConfig.showcasystem   = atoi(Value); | ||||
|   else if (!strcasecmp(Name, "RedLimit"))       femonConfig.redlimit       = atoi(Value); | ||||
|   else if (!strcasecmp(Name, "GreenLimit"))     femonConfig.greenlimit     = atoi(Value); | ||||
| @@ -79,17 +87,23 @@ bool cPluginFemon::SetupParse(const char *Name, const char *Value) | ||||
|   else if (!strcasecmp(Name, "CalcInterval"))   femonConfig.calcinterval   = atoi(Value); | ||||
|   else | ||||
|     return false; | ||||
|   if (femonConfig.displaymode < 0 || femonConfig.displaymode >= modeMaxNumber) femonConfig.displaymode = 0; | ||||
|   if (femonConfig.displaymode < 0 || femonConfig.displaymode >= eFemonModeMaxNumber) femonConfig.displaymode = 0; | ||||
|  | ||||
|   return true; | ||||
| } | ||||
|  | ||||
| cMenuFemonSetup::cMenuFemonSetup(void) | ||||
| { | ||||
|   dispmodes[modeBasic]       = tr("basic"); | ||||
|   dispmodes[modeTransponder] = tr("transponder"); | ||||
|   dispmodes[modeStream]      = tr("stream"); | ||||
|   dispmodes[modeAC3]         = tr("AC-3"); | ||||
|   dispmodes[eFemonModeBasic]       = tr("basic"); | ||||
|   dispmodes[eFemonModeTransponder] = tr("transponder"); | ||||
|   dispmodes[eFemonModeStream]      = tr("stream"); | ||||
|   dispmodes[eFemonModeAC3]         = tr("AC-3"); | ||||
|  | ||||
|   themes[eFemonThemeClassic]       = tr("Classic"); | ||||
|   themes[eFemonThemeElchi]         = tr("Elchi"); | ||||
|   themes[eFemonThemeDeepBlue]      = tr("DeepBlue"); | ||||
|   themes[eFemonThemeMoronimo]      = tr("Moronimo"); | ||||
|  | ||||
|   Setup(); | ||||
| } | ||||
|  | ||||
| @@ -98,17 +112,20 @@ void cMenuFemonSetup::Setup(void) | ||||
|   int current = Current(); | ||||
|  | ||||
|   Clear(); | ||||
|   Add(new cMenuEditBoolItem(  tr("Hide Mainmenu Entry"),         &femonConfig.hidemenu,       tr("no"),      tr("yes"))); | ||||
|   Add(new cMenuEditBoolItem(  tr("Use Syslog Output"),           &femonConfig.syslogoutput,   tr("no"),      tr("yes"))); | ||||
|   Add(new cMenuEditStraItem(  tr("Default Display Mode"),        &femonConfig.displaymode,    modeMaxNumber, dispmodes)); | ||||
|   Add(new cMenuEditBoolItem(  tr("Position"),                    &femonConfig.position,       tr("bottom"),  tr("top"))); | ||||
|   Add(new cMenuEditBoolItem(  tr("Show CA System"),              &femonConfig.showcasystem,   tr("no"),      tr("yes"))); | ||||
|   Add(new cMenuEditIntItem(   tr("Red Limit [%]"),               &femonConfig.redlimit,       1,             50)); | ||||
|   Add(new cMenuEditIntItem(   tr("Green Limit [%]"),             &femonConfig.greenlimit,     51,            100)); | ||||
|   Add(new cMenuEditIntItem(   tr("OSD Update Interval [0.1s]"),  &femonConfig.updateinterval, 1,             100)); | ||||
|   Add(new cMenuEditBoolItem(  tr("Analyze Stream"),              &femonConfig.analyzestream,  tr("no"),      tr("yes"))); | ||||
|   Add(new cMenuEditBoolItem(  tr("Hide main menu entry"),        &femonConfig.hidemenu,       tr("no"),            tr("yes"))); | ||||
|   Add(new cMenuEditBoolItem(  tr("Use syslog output"),           &femonConfig.syslogoutput,   tr("no"),            tr("yes"))); | ||||
|   Add(new cMenuEditStraItem(  tr("Default display mode"),        &femonConfig.displaymode,    eFemonModeMaxNumber, dispmodes)); | ||||
|   Add(new cMenuEditStraItem(  tr("Theme"),                       &femonConfig.theme,          eFemonThemeMaxNumber,themes)); | ||||
|   Add(new cMenuEditBoolItem(  tr("Position"),                    &femonConfig.position,       tr("bottom"),        tr("top"))); | ||||
|   Add(new cMenuEditIntItem(   tr("Height"),                      &femonConfig.osdheight,      400,                 500)); | ||||
|   Add(new cMenuEditIntItem(   tr("Horizontal offset"),           &femonConfig.osdoffset,      -50,                 50)); | ||||
|   Add(new cMenuEditBoolItem(  tr("Show CA system"),              &femonConfig.showcasystem,   tr("no"),            tr("yes"))); | ||||
|   Add(new cMenuEditIntItem(   tr("Red limit [%]"),               &femonConfig.redlimit,       1,                   50)); | ||||
|   Add(new cMenuEditIntItem(   tr("Green limit [%]"),             &femonConfig.greenlimit,     51,                  100)); | ||||
|   Add(new cMenuEditIntItem(   tr("OSD update interval [0.1s]"),  &femonConfig.updateinterval, 1,                   100)); | ||||
|   Add(new cMenuEditBoolItem(  tr("Analyze stream"),              &femonConfig.analyzestream,  tr("no"),            tr("yes"))); | ||||
|   if (femonConfig.analyzestream) | ||||
|      Add(new cMenuEditIntItem(tr("Calculation Interval [0.1s]"), &femonConfig.calcinterval,   1,             100)); | ||||
|      Add(new cMenuEditIntItem(tr("Calculation interval [0.1s]"), &femonConfig.calcinterval,   1,                   100)); | ||||
|  | ||||
|   SetCurrent(Get(current)); | ||||
|   Display(); | ||||
| @@ -119,7 +136,10 @@ void cMenuFemonSetup::Store(void) | ||||
|   SetupStore("HideMenu",       femonConfig.hidemenu); | ||||
|   SetupStore("SyslogOutput",   femonConfig.syslogoutput); | ||||
|   SetupStore("DisplayMode",    femonConfig.displaymode); | ||||
|   SetupStore("Theme",          femonConfig.theme); | ||||
|   SetupStore("Position",       femonConfig.position); | ||||
|   SetupStore("OSDHeight",      femonConfig.osdheight); | ||||
|   SetupStore("OSDOffset",      femonConfig.osdoffset); | ||||
|   SetupStore("ShowCASystem",   femonConfig.showcasystem); | ||||
|   SetupStore("RedLimit",       femonConfig.redlimit); | ||||
|   SetupStore("GreenLimit",     femonConfig.greenlimit); | ||||
|   | ||||
							
								
								
									
										6
									
								
								femon.h
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								femon.h
									
									
									
									
									
								
							| @@ -11,7 +11,7 @@ | ||||
|  | ||||
| #include <vdr/plugin.h> | ||||
|  | ||||
| static const char *VERSION        = "0.1.6"; | ||||
| static const char *VERSION        = "0.8.7"; | ||||
| static const char *DESCRIPTION    = "DVB Signal Information Monitor (OSD)"; | ||||
| static const char *MAINMENUENTRY  = "Signal Information"; | ||||
|  | ||||
| @@ -27,6 +27,7 @@ public: | ||||
|   virtual bool ProcessArgs(int argc, char *argv[]); | ||||
|   virtual bool Initialize(void); | ||||
|   virtual bool Start(void); | ||||
|   virtual void Stop(void); | ||||
|   virtual void Housekeeping(void); | ||||
|   virtual const char *MainMenuEntry(void) { return (femonConfig.hidemenu ? NULL : tr(MAINMENUENTRY)); } | ||||
|   virtual cOsdObject *MainMenuAction(void); | ||||
| @@ -36,7 +37,8 @@ public: | ||||
|  | ||||
| class cMenuFemonSetup : public cMenuSetupPage { | ||||
|   private: | ||||
|     const char *dispmodes[modeMaxNumber]; | ||||
|     const char *dispmodes[eFemonModeMaxNumber]; | ||||
|     const char *themes[eFemonThemeMaxNumber]; | ||||
|     virtual void Setup(void); | ||||
|   protected: | ||||
|     virtual eOSState ProcessKey(eKeys Key); | ||||
|   | ||||
							
								
								
									
										56
									
								
								femoncfg.c
									
									
									
									
									
								
							
							
						
						
									
										56
									
								
								femoncfg.c
									
									
									
									
									
								
							| @@ -14,6 +14,7 @@ cFemonConfig::cFemonConfig(void) | ||||
| { | ||||
|   hidemenu       = 0; | ||||
|   displaymode    = 0; | ||||
|   theme          = 0; | ||||
|   position       = 1; | ||||
|   redlimit       = 33; | ||||
|   greenlimit     = 66; | ||||
| @@ -22,4 +23,59 @@ cFemonConfig::cFemonConfig(void) | ||||
|   calcinterval   = 20; | ||||
|   syslogoutput   = 0; | ||||
|   showcasystem   = 0; | ||||
| #ifdef NTSC_SYSTEM | ||||
|   osdheight      = 420; | ||||
| #else | ||||
|   osdheight      = 480; | ||||
| #endif | ||||
|   osdoffset      = 0; | ||||
| } | ||||
|  | ||||
| const cFemonTheme femonTheme[eFemonThemeMaxNumber] = | ||||
| { | ||||
|   { | ||||
|     // eFemonThemeClassic | ||||
|     0x7F000000, // clrBackground | ||||
|     0xFFFCFCFC, // clrTitleBackground | ||||
|     0xFF000000, // clrTitleText | ||||
|     0xFFFCC024, // clrActiveText | ||||
|     0xFFFCFCFC, // clrInactiveText | ||||
|     0xFFFC1414, // clrRed | ||||
|     0xFFFCC024, // clrYellow | ||||
|     0xFF24FC24, // clrGreen | ||||
|   }, | ||||
|   { | ||||
|     // eFemonThemeElchi | ||||
|     0xC8000066, // clrBackground | ||||
|     0xC833AAEE, // clrTitleBackground | ||||
|     0xFF000000, // clrTitleText | ||||
|     0xFFCCBB22, // clrActiveText | ||||
|     0xFFFFFFFF, // clrInactiveText | ||||
|     0xFFFF0000, // clrRed | ||||
|     0xFFFFEE00, // clrYellow | ||||
|     0xFF33CC33, // clrGreen | ||||
|   }, | ||||
|   { | ||||
|     // eFemonThemeDeepBlue | ||||
|     0xC80C0C0C, // clrBackground | ||||
|     0xC832557A, // clrTitleBackground | ||||
|     0xFF000000, // clrTitleText | ||||
|     0xFFCE7B00, // clrActiveText | ||||
|     0xFF9A9A9A, // clrInactiveText | ||||
|     0xFF992900, // clrRed | ||||
|     0xFFCE7B00, // clrYellow | ||||
|     0xFF336600, // clrGreen | ||||
|   }, | ||||
|   { | ||||
|     // eFemonThemeMoronimo | ||||
|     0xDF294A6B, // clrBackground | ||||
|     0xDF3E5578, // clrTitleBackground | ||||
|     0xFF9BBAD7, // clrTitleText | ||||
|     0xFFCE7B00, // clrActiveText | ||||
|     0xFF9A9A9A, // clrInactiveText | ||||
|     0xFF992900, // clrRed | ||||
|     0xFFCE7B00, // clrYellow | ||||
|     0xFF336600, // clrGreen | ||||
|   }, | ||||
| }; | ||||
|  | ||||
|   | ||||
							
								
								
									
										47
									
								
								femoncfg.h
									
									
									
									
									
								
							
							
						
						
									
										47
									
								
								femoncfg.h
									
									
									
									
									
								
							| @@ -9,13 +9,20 @@ | ||||
| #ifndef __FEMONCFG_H | ||||
| #define __FEMONCFG_H | ||||
|  | ||||
| enum dispModes { | ||||
|   modeBasic, | ||||
|   modeTransponder, | ||||
|   modeStream, | ||||
|   modeAC3, | ||||
|   modeMaxNumber | ||||
|   }; | ||||
| #ifdef DEBUG | ||||
| #define Dprintf(x...) printf(x); | ||||
| #else | ||||
| #define Dprintf(x...) ; | ||||
| #endif | ||||
|  | ||||
| enum eFemonModes | ||||
| { | ||||
|   eFemonModeBasic, | ||||
|   eFemonModeTransponder, | ||||
|   eFemonModeStream, | ||||
|   eFemonModeAC3, | ||||
|   eFemonModeMaxNumber | ||||
| }; | ||||
|  | ||||
| struct cFemonConfig | ||||
| { | ||||
| @@ -23,6 +30,7 @@ public: | ||||
|   cFemonConfig(void); | ||||
|   int hidemenu; | ||||
|   int displaymode; | ||||
|   int theme; | ||||
|   int position; | ||||
|   int redlimit; | ||||
|   int greenlimit; | ||||
| @@ -31,8 +39,33 @@ public: | ||||
|   int calcinterval; | ||||
|   int syslogoutput; | ||||
|   int showcasystem; | ||||
|   int osdheight; | ||||
|   int osdoffset; | ||||
| }; | ||||
|  | ||||
| extern cFemonConfig femonConfig; | ||||
|  | ||||
| enum eFemonThemes | ||||
| { | ||||
|   eFemonThemeClassic, | ||||
|   eFemonThemeElchi, | ||||
|   eFemonThemeDeepBlue, | ||||
|   eFemonThemeMoronimo, | ||||
|   eFemonThemeMaxNumber | ||||
| }; | ||||
|  | ||||
| struct cFemonTheme | ||||
| { | ||||
|   int clrBackground; | ||||
|   int clrTitleBackground; | ||||
|   int clrTitleText; | ||||
|   int clrActiveText; | ||||
|   int clrInactiveText; | ||||
|   int clrRed; | ||||
|   int clrYellow; | ||||
|   int clrGreen; | ||||
| }; | ||||
|  | ||||
| extern const cFemonTheme femonTheme[eFemonThemeMaxNumber]; | ||||
|  | ||||
| #endif // __FEMONCFG_H | ||||
|   | ||||
							
								
								
									
										480
									
								
								femoni18n.c
									
									
									
									
									
								
							
							
						
						
									
										480
									
								
								femoni18n.c
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										834
									
								
								femonosd.c
									
									
									
									
									
								
							
							
						
						
									
										834
									
								
								femonosd.c
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										10
									
								
								femonosd.h
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								femonosd.h
									
									
									
									
									
								
							| @@ -17,6 +17,7 @@ | ||||
| #include <vdr/status.h> | ||||
| #include <vdr/channels.h> | ||||
| #include <vdr/transfer.h> | ||||
| #include <vdr/tools.h> | ||||
|  | ||||
| class cFemonOsd : public cOsdObject, public cThread, public cStatus { | ||||
| private: | ||||
| @@ -27,7 +28,6 @@ private: | ||||
|   struct dvb_frontend_info m_FrontendInfo; | ||||
|   int m_Number; | ||||
|   int m_OldNumber; | ||||
|   int m_InputTime; | ||||
|   uint16_t m_SNR; | ||||
|   uint16_t m_Signal; | ||||
|   uint32_t m_BER; | ||||
| @@ -35,15 +35,19 @@ private: | ||||
|   fe_status_t m_FrontendStatus; | ||||
|   int m_DisplayMode; | ||||
|   const cFont *m_Font; | ||||
|   cTimeMs m_InputTime; | ||||
|   cMutex* m_Mutex; | ||||
|   static cBitmap bmDevice0, bmDevice1, bmDevice2, bmDevice3, bmApid1, bmApid2, bmDD, bmDD20, bmDD51; | ||||
|   static cBitmap bmPAL, bmNTSC, bmAspectRatio_1_1, bmAspectRatio_16_9, bmAspectRatio_2_21_1, bmAspectRatio_4_3; | ||||
|   static cBitmap bmStereo, bmMonoLeft, bmMonoRight, bmDD, bmDD20, bmDD51; | ||||
|   static cBitmap bmZero, bmDevice, bmPAL, bmNTSC, bmOne, bmTwo, bmThree, bmFour, bmFive; | ||||
|   static cBitmap bmAspectRatio_1_1, bmAspectRatio_16_9, bmAspectRatio_2_21_1, bmAspectRatio_4_3; | ||||
|   static cBitmap bmLock, bmSignal, bmCarrier, bmViterbi, bmSync; | ||||
|   void DrawStatusWindow(void); | ||||
|   void DrawInfoWindow(void); | ||||
|  | ||||
| protected: | ||||
|   virtual void Action(void); | ||||
|   virtual void ChannelSwitch(const cDevice * device, int channelNumber); | ||||
|   virtual void SetAudioTrack(int Index, const char * const *Tracks); | ||||
|  | ||||
| public: | ||||
|   cFemonOsd(void); | ||||
|   | ||||
| @@ -7,6 +7,7 @@ | ||||
|  */ | ||||
|  | ||||
| #include <unistd.h> | ||||
| #include <vdr/tools.h> | ||||
| #include "femoncfg.h" | ||||
| #include "femonreceiver.h" | ||||
|  | ||||
| @@ -16,14 +17,14 @@ | ||||
| #define PAYLOAD       0x10 | ||||
| #define PTS_DTS_FLAGS 0xC0 | ||||
|  | ||||
| cFemonReceiver::cFemonReceiver(int Ca, int Vpid, int Apid, int Dpid) | ||||
| :cReceiver(Ca, -1, 3, Vpid, Apid, Dpid), cThread("femon receiver") | ||||
| cFemonReceiver::cFemonReceiver(int Ca, int Vpid, int Apid[], int Dpid[]) | ||||
| :cReceiver(Ca, -1, Vpid, Apid, Dpid, NULL), cThread("femon receiver") | ||||
| { | ||||
|   //printf("cFemonReceiver::cFemonReceiver()\n"); | ||||
|   Dprintf("%s()\n", __PRETTY_FUNCTION__); | ||||
|   m_Active = false; | ||||
|   m_VideoPid = Vpid; | ||||
|   m_AudioPid = Apid; | ||||
|   m_AC3Pid = Dpid;       | ||||
|   m_AudioPid = Apid[0]; | ||||
|   m_AC3Pid = Dpid[0]; | ||||
|   m_VideoValid = false; | ||||
|   m_VideoPacketCount = 0; | ||||
|   m_VideoHorizontalSize = 0; | ||||
| @@ -57,17 +58,17 @@ cFemonReceiver::cFemonReceiver(int Ca, int Vpid, int Apid, int Dpid) | ||||
|   | ||||
| cFemonReceiver::~cFemonReceiver(void) | ||||
| { | ||||
|   //printf("cFemonReceiver::~cFemonReceiver()\n"); | ||||
|   Dprintf("%s()\n", __PRETTY_FUNCTION__); | ||||
|   Detach(); | ||||
|   if (m_Active) { | ||||
|      m_Active = false; | ||||
|      Cancel(0); | ||||
|      Cancel(); | ||||
|      } | ||||
| } | ||||
|  | ||||
| /* The following function originates from libdvbmpeg: */ | ||||
| void cFemonReceiver::GetVideoInfo(uint8_t *mbuf, int count) | ||||
| { | ||||
|   //printf("cFemonReceiver::GetVideoInfo()\n"); | ||||
|   uint8_t *headr; | ||||
|   int found = 0; | ||||
|   int c = 0; | ||||
| @@ -160,7 +161,6 @@ static unsigned int samplerates[4] = | ||||
| /* The following function originates from libdvbmpeg: */ | ||||
| void cFemonReceiver::GetAudioInfo(uint8_t *mbuf, int count) | ||||
| { | ||||
|   //printf("cFemonReceiver::GetAudioInfo()\n"); | ||||
|   uint8_t *headr; | ||||
|   int found = 0; | ||||
|   int c = 0; | ||||
| @@ -252,13 +252,19 @@ void cFemonReceiver::GetAC3Info(uint8_t *mbuf, int count) | ||||
|  | ||||
| void cFemonReceiver::Activate(bool On) | ||||
| { | ||||
|   //printf("cFemonReceiver::Activate()\n"); | ||||
|   Start(); | ||||
|   Dprintf("%s(%d)\n", __PRETTY_FUNCTION__, On); | ||||
|   if (On) { | ||||
|      if (!m_Active) | ||||
|         Start(); | ||||
|      } | ||||
|   else if (m_Active) { | ||||
|      m_Active = false; | ||||
|      Cancel(); | ||||
|      } | ||||
| } | ||||
|  | ||||
| void cFemonReceiver::Receive(uchar *Data, int Length) | ||||
| { | ||||
|   //printf("cFemonReceiver::Receive()\n"); | ||||
|   // TS packet length: TS_SIZE | ||||
|   if (Length == TS_SIZE) { | ||||
|      int pid = ((Data[1] & 0x1f) << 8) | (Data[2]); | ||||
| @@ -301,9 +307,11 @@ void cFemonReceiver::Receive(uchar *Data, int Length) | ||||
|  | ||||
| void cFemonReceiver::Action(void) | ||||
| { | ||||
|   //printf("cFemonReceiver::Action()\n"); | ||||
|   Dprintf("%s()\n", __PRETTY_FUNCTION__); | ||||
|   cTimeMs t; | ||||
|   m_Active = true; | ||||
|   while (m_Active) { | ||||
|         t.Set(0); | ||||
|         // TS packet 188 bytes - 4 byte header; MPEG standard defines 1Mbit = 1000000bit | ||||
|         m_VideoBitrate = (8.0 * 184.0 * m_VideoPacketCount) / (femonConfig.calcinterval * 100000.0); | ||||
|         m_VideoPacketCount = 0; | ||||
| @@ -311,6 +319,6 @@ void cFemonReceiver::Action(void) | ||||
|         m_AudioPacketCount = 0; | ||||
|         m_AC3Bitrate   = (8.0 * 184.0 * m_AC3PacketCount)   / (femonConfig.calcinterval * 100.0); | ||||
|         m_AC3PacketCount = 0; | ||||
|         usleep(100000L * femonConfig.calcinterval); | ||||
|         cCondWait::SleepMs(100 * femonConfig.calcinterval - t.Elapsed()); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -95,7 +95,7 @@ protected: | ||||
|   virtual void Action(void); | ||||
|  | ||||
| public: | ||||
|   cFemonReceiver(int Ca, int Vpid, int Apid, int Dpid); | ||||
|   cFemonReceiver(int Ca, int Vpid, int Apid[], int Dpid[]); | ||||
|   virtual ~cFemonReceiver(); | ||||
|  | ||||
|   bool VideoValid(void)           { return m_VideoValid; };          // boolean | ||||
|   | ||||
| @@ -1,23 +0,0 @@ | ||||
| /* XPM */ | ||||
| static char * apid1_xpm[] = { | ||||
| "32 18 2 1", | ||||
| ".	c #FFFFFF", | ||||
| "+	c #000000", | ||||
| "++++++++++++++++++++++++++++++++", | ||||
| "+..............................+", | ||||
| "+..............++.......++.....+", | ||||
| "+............++++....+++++.....+", | ||||
| "+..........+++.++....+++++.....+", | ||||
| "+........+++...++.......++.....+", | ||||
| "+...+++++++....++.......++.....+", | ||||
| "+...++++++.....++.......++.....+", | ||||
| "+...++..++.....++.......++.....+", | ||||
| "+...++..++.....++.......++.....+", | ||||
| "+...++++++.....++.......++.....+", | ||||
| "+...+++++++....++.......++.....+", | ||||
| "+........+++...++.......++.....+", | ||||
| "+..........+++.++.......++.....+", | ||||
| "+............++++.......++.....+", | ||||
| "+.............+++.......++.....+", | ||||
| "+..............................+", | ||||
| "++++++++++++++++++++++++++++++++"}; | ||||
| @@ -1,23 +0,0 @@ | ||||
| /* XPM */ | ||||
| static char * apid2_xpm[] = { | ||||
| "32 18 2 1", | ||||
| ".	c #FFFFFF", | ||||
| "+	c #000000", | ||||
| "++++++++++++++++++++++++++++++++", | ||||
| "+..............................+", | ||||
| "+..............++.....++++.....+", | ||||
| "+............++++...+++++++....+", | ||||
| "+..........+++.++...++....++...+", | ||||
| "+........+++...++.........++...+", | ||||
| "+...+++++++....++.........++...+", | ||||
| "+...++++++.....++........+++...+", | ||||
| "+...++..++.....++.......+++....+", | ||||
| "+...++..++.....++......+++.....+", | ||||
| "+...++++++.....++.....+++......+", | ||||
| "+...+++++++....++....+++.......+", | ||||
| "+........+++...++...+++........+", | ||||
| "+..........+++.++...++.........+", | ||||
| "+............++++...++++++++...+", | ||||
| "+.............+++...++++++++...+", | ||||
| "+..............................+", | ||||
| "++++++++++++++++++++++++++++++++"}; | ||||
							
								
								
									
										24
									
								
								symbols/carrier.xpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								symbols/carrier.xpm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | ||||
| /* XPM */ | ||||
| static char * carrier_xpm[] = { | ||||
| "96 19 2 1", | ||||
| ".	c #FFFFFF", | ||||
| "+	c #000000", | ||||
| "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++", | ||||
| "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++", | ||||
| "++............................................................................................++", | ||||
| "++............................................................................................++", | ||||
| "++...........+++++.......+++++.....++++++++....++++++++....+++...++++++++...++++++++..........++", | ||||
| "++..........+++++++......+++++.....+++++++++...+++++++++...+++...++++++++...+++++++++.........++", | ||||
| "++..........+++.++++.....+++++.....+++...+++...+++...+++...+++...+++........+++...+++.........++", | ||||
| "++.........+++...++.....+++.+++....+++...+++...+++...+++...+++...+++........+++...+++.........++", | ||||
| "++.........+++..........+++.+++....++++++++....++++++++....+++...+++++++....++++++++..........++", | ||||
| "++.........+++..........+++.+++....+++++++.....+++++++.....+++...+++++++....+++++++...........++", | ||||
| "++.........+++.........+++...+++...+++..+++....+++..+++....+++...+++........+++..+++..........++", | ||||
| "++.........+++...++....+++++++++...+++..+++....+++..+++....+++...+++........+++..+++..........++", | ||||
| "++..........+++.++++...+++++++++...+++...+++...+++...+++...+++...+++........+++...+++.........++", | ||||
| "++..........+++++++...+++.....+++..+++...+++...+++...+++...+++...++++++++...+++...+++.........++", | ||||
| "++...........+++++....+++.....+++..+++....+++..+++....+++..+++...++++++++...+++....+++........++", | ||||
| "++............................................................................................++", | ||||
| "++............................................................................................++", | ||||
| "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++", | ||||
| "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"}; | ||||
| @@ -1,23 +0,0 @@ | ||||
| /* XPM */ | ||||
| static char * dev0_xpm[] = { | ||||
| "29 18 2 1", | ||||
| ".	c #FFFFFF", | ||||
| "+	c #000000", | ||||
| "+++++++++++++++++++++++++++++", | ||||
| "+...........................+", | ||||
| "+.......+..+.......++++.....+", | ||||
| "+.......+..+......++++++....+", | ||||
| "+.......+..+......++..++....+", | ||||
| "+....+++++++++...++....++...+", | ||||
| "+....+++++++++...++....++...+", | ||||
| "+......+..+......++....++...+", | ||||
| "+......+..+......++....++...+", | ||||
| "+......+..+......++....++...+", | ||||
| "+......+..+......++....++...+", | ||||
| "+...+++++++++....++....++...+", | ||||
| "+...+++++++++....++....++...+", | ||||
| "+.....+..+........++..++....+", | ||||
| "+.....+..+........++++++....+", | ||||
| "+.....+..+.........++++.....+", | ||||
| "+...........................+", | ||||
| "+++++++++++++++++++++++++++++"}; | ||||
| @@ -1,23 +0,0 @@ | ||||
| /* XPM */ | ||||
| static char * dev1_xpm[] = { | ||||
| "29 18 2 1", | ||||
| ".	c #FFFFFF", | ||||
| "+	c #000000", | ||||
| "+++++++++++++++++++++++++++++", | ||||
| "+...........................+", | ||||
| "+.......+..+.........++.....+", | ||||
| "+.......+..+......+++++.....+", | ||||
| "+.......+..+......+++++.....+", | ||||
| "+....+++++++++.......++.....+", | ||||
| "+....+++++++++.......++.....+", | ||||
| "+......+..+..........++.....+", | ||||
| "+......+..+..........++.....+", | ||||
| "+......+..+..........++.....+", | ||||
| "+......+..+..........++.....+", | ||||
| "+...+++++++++........++.....+", | ||||
| "+...+++++++++........++.....+", | ||||
| "+.....+..+...........++.....+", | ||||
| "+.....+..+...........++.....+", | ||||
| "+.....+..+...........++.....+", | ||||
| "+...........................+", | ||||
| "+++++++++++++++++++++++++++++"}; | ||||
| @@ -1,23 +0,0 @@ | ||||
| /* XPM */ | ||||
| static char * dev2_xpm[] = { | ||||
| "29 18 2 1", | ||||
| ".	c #FFFFFF", | ||||
| "+	c #000000", | ||||
| "+++++++++++++++++++++++++++++", | ||||
| "+...........................+", | ||||
| "+.......+..+.......++++.....+", | ||||
| "+.......+..+.....+++++++....+", | ||||
| "+.......+..+.....++....++...+", | ||||
| "+....+++++++++.........++...+", | ||||
| "+....+++++++++.........++...+", | ||||
| "+......+..+...........+++...+", | ||||
| "+......+..+..........+++....+", | ||||
| "+......+..+.........+++.....+", | ||||
| "+......+..+........+++......+", | ||||
| "+...+++++++++.....+++.......+", | ||||
| "+...+++++++++....+++........+", | ||||
| "+.....+..+.......++.........+", | ||||
| "+.....+..+.......++++++++...+", | ||||
| "+.....+..+.......++++++++...+", | ||||
| "+...........................+", | ||||
| "+++++++++++++++++++++++++++++"}; | ||||
| @@ -1,23 +0,0 @@ | ||||
| /* XPM */ | ||||
| static char * dev3_xpm[] = { | ||||
| "29 18 2 1", | ||||
| ".	c #FFFFFF", | ||||
| "+	c #000000", | ||||
| "+++++++++++++++++++++++++++++", | ||||
| "+...........................+", | ||||
| "+.......+..+.......+++++....+", | ||||
| "+.......+..+......+++++++...+", | ||||
| "+.......+..+.....++....++...+", | ||||
| "+....+++++++++...++....++...+", | ||||
| "+....+++++++++.........++...+", | ||||
| "+......+..+...........++....+", | ||||
| "+......+..+.........+++.....+", | ||||
| "+......+..+.........++++....+", | ||||
| "+......+..+...........+++...+", | ||||
| "+...+++++++++..........++...+", | ||||
| "+...+++++++++....++....++...+", | ||||
| "+.....+..+.......++...+++...+", | ||||
| "+.....+..+........++++++....+", | ||||
| "+.....+..+.........++++.....+", | ||||
| "+...........................+", | ||||
| "+++++++++++++++++++++++++++++"}; | ||||
							
								
								
									
										23
									
								
								symbols/device.xpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								symbols/device.xpm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | ||||
| /* XPM */ | ||||
| static char * device_xpm[] = { | ||||
| "14 18 2 1", | ||||
| ".	c #FFFFFF", | ||||
| "+	c #000000", | ||||
| "++++++++++++++", | ||||
| "+.............", | ||||
| "+.......+..+..", | ||||
| "+.......+..+..", | ||||
| "+.......+..+..", | ||||
| "+....+++++++++", | ||||
| "+....+++++++++", | ||||
| "+......+..+...", | ||||
| "+......+..+...", | ||||
| "+......+..+...", | ||||
| "+......+..+...", | ||||
| "+...+++++++++.", | ||||
| "+...+++++++++.", | ||||
| "+.....+..+....", | ||||
| "+.....+..+....", | ||||
| "+.....+..+....", | ||||
| "+.............", | ||||
| "++++++++++++++"}; | ||||
							
								
								
									
										23
									
								
								symbols/five.xpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								symbols/five.xpm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | ||||
| /* XPM */ | ||||
| static char * five_xpm[] = { | ||||
| "15 18 2 1", | ||||
| ".	c #FFFFFF", | ||||
| "+	c #000000", | ||||
| "+++++++++++++++", | ||||
| "..............+", | ||||
| "...+++++++....+", | ||||
| "...+++++++....+", | ||||
| "...++.........+", | ||||
| "...++.........+", | ||||
| "...++.........+", | ||||
| "...++++++.....+", | ||||
| "...+++++++....+", | ||||
| "...++...+++...+", | ||||
| ".........++...+", | ||||
| ".........++...+", | ||||
| "...++....++...+", | ||||
| "...++...+++...+", | ||||
| "...+++++++....+", | ||||
| "....+++++.....+", | ||||
| "..............+", | ||||
| "+++++++++++++++"}; | ||||
							
								
								
									
										23
									
								
								symbols/four.xpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								symbols/four.xpm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | ||||
| /* XPM */ | ||||
| static char * four_xpm[] = { | ||||
| "15 18 2 1", | ||||
| ".	c #FFFFFF", | ||||
| "+	c #000000", | ||||
| "+++++++++++++++", | ||||
| "..............+", | ||||
| ".........++...+", | ||||
| "........+++...+", | ||||
| ".......++++...+", | ||||
| "......++.++...+", | ||||
| ".....++..++...+", | ||||
| ".....++..++...+", | ||||
| "....++...++...+", | ||||
| "...++....++...+", | ||||
| "...+++++++++..+", | ||||
| "...+++++++++..+", | ||||
| ".........++...+", | ||||
| ".........++...+", | ||||
| ".........++...+", | ||||
| ".........++...+", | ||||
| "..............+", | ||||
| "+++++++++++++++"}; | ||||
							
								
								
									
										24
									
								
								symbols/lock.xpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								symbols/lock.xpm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | ||||
| /* XPM */ | ||||
| static char * lock_xpm[] = { | ||||
| "96 19 2 1", | ||||
| ".	c #FFFFFF", | ||||
| "+	c #000000", | ||||
| "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++", | ||||
| "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++", | ||||
| "++............................................................................................++", | ||||
| "++............................................................................................++", | ||||
| "++........................+++........+++++........+++++.....+++....+++........................++", | ||||
| "++........................+++.......++++++++.....+++++++....+++...+++.........................++", | ||||
| "++........................+++.......+++..+++.....+++.++++...+++..+++..........................++", | ||||
| "++........................+++......+++....+++...+++...++....+++.+++...........................++", | ||||
| "++........................+++......+++....+++...+++.........+++++++...........................++", | ||||
| "++........................+++......+++....+++...+++.........++++.+++..........................++", | ||||
| "++........................+++......+++....+++...+++.........+++..+++..........................++", | ||||
| "++........................+++......+++....+++...+++...++....+++...+++.........................++", | ||||
| "++........................+++.......+++..+++.....+++.++++...+++...+++.........................++", | ||||
| "++........................+++++++...++++++++.....+++++++....+++....+++........................++", | ||||
| "++........................+++++++.....++++........+++++.....+++.....+++.......................++", | ||||
| "++............................................................................................++", | ||||
| "++............................................................................................++", | ||||
| "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++", | ||||
| "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"}; | ||||
							
								
								
									
										23
									
								
								symbols/monoleft.xpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								symbols/monoleft.xpm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | ||||
| /* XPM */ | ||||
| static char * monoleft_xpm[] = { | ||||
| "17 18 2 1", | ||||
| ".	c #FFFFFF", | ||||
| "+	c #000000", | ||||
| "+++++++++++++++++", | ||||
| "+................", | ||||
| "+...++...........", | ||||
| "+...++++.........", | ||||
| "+...++++++.......", | ||||
| "+...++++++++.....", | ||||
| "+...+++++++++++++", | ||||
| "+...+++++++++++++", | ||||
| "+...+++++++++..++", | ||||
| "+...+++++++++..++", | ||||
| "+...+++++++++++++", | ||||
| "+...+++++++++++++", | ||||
| "+...++++++++.....", | ||||
| "+...++++++.......", | ||||
| "+...++++.........", | ||||
| "+...+++..........", | ||||
| "+................", | ||||
| "+++++++++++++++++"}; | ||||
							
								
								
									
										23
									
								
								symbols/monoright.xpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								symbols/monoright.xpm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | ||||
| /* XPM */ | ||||
| static char * monoright_xpm[] = { | ||||
| "17 18 2 1", | ||||
| ".	c #FFFFFF", | ||||
| "+	c #000000", | ||||
| "+++++++++++++++++", | ||||
| "+................", | ||||
| "+..............++", | ||||
| "+............++++", | ||||
| "+..........++++++", | ||||
| "+........++++++++", | ||||
| "+...+++++++++++++", | ||||
| "+...+++++++++++++", | ||||
| "+...++..+++++++++", | ||||
| "+...++..+++++++++", | ||||
| "+...+++++++++++++", | ||||
| "+...+++++++++++++", | ||||
| "+........++++++++", | ||||
| "+..........++++++", | ||||
| "+............++++", | ||||
| "+.............+++", | ||||
| "+................", | ||||
| "+++++++++++++++++"}; | ||||
							
								
								
									
										23
									
								
								symbols/one.xpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								symbols/one.xpm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | ||||
| /* XPM */ | ||||
| static char * one_xpm[] = { | ||||
| "15 18 2 1", | ||||
| ".	c #FFFFFF", | ||||
| "+	c #000000", | ||||
| "+++++++++++++++", | ||||
| "..............+", | ||||
| ".......++.....+", | ||||
| "....+++++.....+", | ||||
| "....+++++.....+", | ||||
| ".......++.....+", | ||||
| ".......++.....+", | ||||
| ".......++.....+", | ||||
| ".......++.....+", | ||||
| ".......++.....+", | ||||
| ".......++.....+", | ||||
| ".......++.....+", | ||||
| ".......++.....+", | ||||
| ".......++.....+", | ||||
| ".......++.....+", | ||||
| ".......++.....+", | ||||
| "..............+", | ||||
| "+++++++++++++++"}; | ||||
							
								
								
									
										24
									
								
								symbols/signal.xpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								symbols/signal.xpm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | ||||
| /* XPM */ | ||||
| static char * signal_xpm[] = { | ||||
| "96 19 2 1", | ||||
| ".	c #FFFFFF", | ||||
| "+	c #000000", | ||||
| "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++", | ||||
| "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++", | ||||
| "++............................................................................................++", | ||||
| "++............................................................................................++", | ||||
| "++.................+++++....+++......+++++.....+++....+++.....+++++.....+++...................++", | ||||
| "++...............++++++++...+++....++++++++....++++...+++.....+++++.....+++...................++", | ||||
| "++...............+++..+++...+++....+++..++++...+++++..+++.....+++++.....+++...................++", | ||||
| "++...............+++........+++...+++....++....+++++..+++....+++.+++....+++...................++", | ||||
| "++...............++++++.....+++...+++..........++++++.+++....+++.+++....+++...................++", | ||||
| "++................++++++....+++...+++..+++++...+++.++.+++....+++.+++....+++...................++", | ||||
| "++..................+++++...+++...+++..+++++...+++.++++++...+++...+++...+++...................++", | ||||
| "++...............+++..+++...+++...+++....+++...+++..+++++...+++++++++...+++...................++", | ||||
| "++...............+++..+++...+++....+++...+++...+++..+++++...+++++++++...+++...................++", | ||||
| "++................++++++....+++....+++++++++...+++...++++..+++.....+++..+++++++...............++", | ||||
| "++.................++++.....+++......+++++.....+++....+++..+++.....+++..+++++++...............++", | ||||
| "++............................................................................................++", | ||||
| "++............................................................................................++", | ||||
| "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++", | ||||
| "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"}; | ||||
							
								
								
									
										23
									
								
								symbols/stereo.xpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								symbols/stereo.xpm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | ||||
| /* XPM */ | ||||
| static char * stereo_xpm[] = { | ||||
| "17 18 2 1", | ||||
| ".	c #FFFFFF", | ||||
| "+	c #000000", | ||||
| "+++++++++++++++++", | ||||
| "+................", | ||||
| "+..............++", | ||||
| "+............++++", | ||||
| "+..........+++.++", | ||||
| "+........+++...++", | ||||
| "+...+++++++....++", | ||||
| "+...++++++.....++", | ||||
| "+...++..++.....++", | ||||
| "+...++..++.....++", | ||||
| "+...++++++.....++", | ||||
| "+...+++++++....++", | ||||
| "+........+++...++", | ||||
| "+..........+++.++", | ||||
| "+............++++", | ||||
| "+.............+++", | ||||
| "+................", | ||||
| "+++++++++++++++++"}; | ||||
							
								
								
									
										24
									
								
								symbols/sync.xpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								symbols/sync.xpm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | ||||
| /* XPM */ | ||||
| static char * sync_xpm[] = { | ||||
| "96 19 2 1", | ||||
| ".	c #FFFFFF", | ||||
| "+	c #000000", | ||||
| "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++", | ||||
| "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++", | ||||
| "++............................................................................................++", | ||||
| "++............................................................................................++", | ||||
| "++.........................+++++...+++.....+++..+++....+++.....+++++..........................++", | ||||
| "++.......................++++++++...+++...+++...++++...+++....+++++++.........................++", | ||||
| "++.......................+++..+++....+++.+++....+++++..+++....+++.++++........................++", | ||||
| "++.......................+++.........+++.+++....+++++..+++...+++...++.........................++", | ||||
| "++.......................++++++.......+++++.....++++++.+++...+++..............................++", | ||||
| "++........................++++++......+++++.....+++.++.+++...+++..............................++", | ||||
| "++..........................+++++......+++......+++.++++++...+++..............................++", | ||||
| "++.......................+++..+++......+++......+++..+++++...+++...++.........................++", | ||||
| "++.......................+++..+++......+++......+++..+++++....+++.++++........................++", | ||||
| "++........................++++++.......+++......+++...++++....+++++++.........................++", | ||||
| "++.........................++++........+++......+++....+++.....+++++..........................++", | ||||
| "++............................................................................................++", | ||||
| "++............................................................................................++", | ||||
| "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++", | ||||
| "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"}; | ||||
							
								
								
									
										23
									
								
								symbols/three.xpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								symbols/three.xpm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | ||||
| /* XPM */ | ||||
| static char * three_xpm[] = { | ||||
| "15 18 2 1", | ||||
| ".	c #FFFFFF", | ||||
| "+	c #000000", | ||||
| "+++++++++++++++", | ||||
| "..............+", | ||||
| ".....+++++....+", | ||||
| "....+++++++...+", | ||||
| "...++....++...+", | ||||
| "...++....++...+", | ||||
| ".........++...+", | ||||
| "........++....+", | ||||
| "......+++.....+", | ||||
| "......++++....+", | ||||
| "........+++...+", | ||||
| ".........++...+", | ||||
| "...++....++...+", | ||||
| "...++...+++...+", | ||||
| "....++++++....+", | ||||
| ".....++++.....+", | ||||
| "..............+", | ||||
| "+++++++++++++++"}; | ||||
							
								
								
									
										23
									
								
								symbols/two.xpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								symbols/two.xpm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | ||||
| /* XPM */ | ||||
| static char * two_xpm[] = { | ||||
| "15 18 2 1", | ||||
| ".	c #FFFFFF", | ||||
| "+	c #000000", | ||||
| "+++++++++++++++", | ||||
| "..............+", | ||||
| ".....++++.....+", | ||||
| "...+++++++....+", | ||||
| "...++....++...+", | ||||
| ".........++...+", | ||||
| ".........++...+", | ||||
| "........+++...+", | ||||
| ".......+++....+", | ||||
| "......+++.....+", | ||||
| ".....+++......+", | ||||
| "....+++.......+", | ||||
| "...+++........+", | ||||
| "...++.........+", | ||||
| "...++++++++...+", | ||||
| "...++++++++...+", | ||||
| "..............+", | ||||
| "+++++++++++++++"}; | ||||
							
								
								
									
										24
									
								
								symbols/viterbi.xpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								symbols/viterbi.xpm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | ||||
| /* XPM */ | ||||
| static char * viterbi_xpm[] = { | ||||
| "96 19 2 1", | ||||
| ".	c #FFFFFF", | ||||
| "+	c #000000", | ||||
| "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++", | ||||
| "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++", | ||||
| "++............................................................................................++", | ||||
| "++............................................................................................++", | ||||
| "++............+++.....+++..+++...+++++++++..++++++++...++++++++....++++++++....+++............++", | ||||
| "++.............++.....++...+++...+++++++++..++++++++...+++++++++...+++++++++...+++............++", | ||||
| "++.............+++...+++...+++......+++.....+++........+++...+++...+++...+++...+++............++", | ||||
| "++.............+++...+++...+++......+++.....+++........+++...+++...+++...+++...+++............++", | ||||
| "++..............++...++....+++......+++.....+++++++....++++++++....++++++++....+++............++", | ||||
| "++..............+++.+++....+++......+++.....+++++++....+++++++.....++++++++....+++............++", | ||||
| "++..............+++.+++....+++......+++.....+++........+++..+++....+++...+++...+++............++", | ||||
| "++...............++.++.....+++......+++.....+++........+++..+++....+++...+++...+++............++", | ||||
| "++...............+++++.....+++......+++.....+++........+++...+++...+++...+++...+++............++", | ||||
| "++...............+++++.....+++......+++.....++++++++...+++...+++...+++++++++...+++............++", | ||||
| "++................+++......+++......+++.....++++++++...+++....+++..++++++++....+++............++", | ||||
| "++............................................................................................++", | ||||
| "++............................................................................................++", | ||||
| "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++", | ||||
| "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"}; | ||||
							
								
								
									
										23
									
								
								symbols/zero.xpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								symbols/zero.xpm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | ||||
| /* XPM */ | ||||
| static char * zero_xpm[] = { | ||||
| "15 18 2 1", | ||||
| ".	c #FFFFFF", | ||||
| "+	c #000000", | ||||
| "+++++++++++++++", | ||||
| "..............+", | ||||
| ".....++++.....+", | ||||
| "....++++++....+", | ||||
| "....++..++....+", | ||||
| "...++....++...+", | ||||
| "...++....++...+", | ||||
| "...++....++...+", | ||||
| "...++....++...+", | ||||
| "...++....++...+", | ||||
| "...++....++...+", | ||||
| "...++....++...+", | ||||
| "...++....++...+", | ||||
| "....++..++....+", | ||||
| "....++++++....+", | ||||
| ".....++++.....+", | ||||
| "..............+", | ||||
| "+++++++++++++++"}; | ||||
		Reference in New Issue
	
	Block a user