mirror of
				https://github.com/rofafor/vdr-plugin-femon.git
				synced 2023-10-10 11:36:53 +00:00 
			
		
		
		
	Compare commits
	
		
			2 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 8e53fa8521 | ||
|  | 9514ed5387 | 
							
								
								
									
										13
									
								
								HISTORY
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								HISTORY
									
									
									
									
									
								
							| @@ -81,3 +81,16 @@ VDR Plugin 'femon' Revision History | ||||
| 2004-06-11: Version 0.1.3 | ||||
|  | ||||
| - Added "AC-3 Stream Information" display mode (Thanks to Lothar Englisch). | ||||
|  | ||||
| 2004-06-24: Version 0.1.4 | ||||
|  | ||||
| - Added some new symbols and beautified the old ones. | ||||
| - Added audio track selection feature. | ||||
| - Added preliminary device switching feature (disabled at the moment). | ||||
|  | ||||
| 2004-08-18: Version 0.1.5 | ||||
|  | ||||
| - Fixed OSDSTATUSWIN_XC define. | ||||
| - Added preliminary NTSC support (make NTSC_SYSTEM=1 plugins). | ||||
| - Fixed "Setup/OSD/Use Small Fonts" bug (Thanks to Winni for reporting this one). | ||||
| - Added patches directory: CA system names by Lauri Tischler. | ||||
|   | ||||
							
								
								
									
										6
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								Makefile
									
									
									
									
									
								
							| @@ -11,7 +11,7 @@ PLUGIN = femon | ||||
|  | ||||
| ### The version number of this plugin (taken from the main source file): | ||||
|  | ||||
| VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g') | ||||
| VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).h | awk '{ print $$6 }' | sed -e 's/[";]//g') | ||||
|  | ||||
| ### The C++ compiler and options: | ||||
|  | ||||
| @@ -44,6 +44,10 @@ INCLUDES += -I$(VDRDIR)/include -I$(DVBDIR)/include | ||||
|  | ||||
| DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"' | ||||
|  | ||||
| ifdef NTSC_SYSTEM | ||||
| DEFINES += -DNTSC_SYSTEM | ||||
| endif | ||||
|  | ||||
| ### The object files (add further files here): | ||||
|  | ||||
| OBJS = femon.o femonosd.o femonreceiver.o femoncfg.o femoni18n.o | ||||
|   | ||||
							
								
								
									
										34
									
								
								README
									
									
									
									
									
								
							
							
						
						
									
										34
									
								
								README
									
									
									
									
									
								
							| @@ -18,7 +18,6 @@ DVB Frontend Status Monitor is a plugin that displays some signal information | ||||
| parameters of the current tuned channel on OSD. You can zap through all your | ||||
| channels and the plugin should be monitoring always the right frontend. The | ||||
| transponder and stream information are also available in advanced display modes. | ||||
| User can switch between different display modes by pressing 'OK' key. | ||||
|  | ||||
| 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 | ||||
| @@ -31,8 +30,8 @@ Metzler Brothers. | ||||
| Terminology: | ||||
|  | ||||
| -------------------------------------------------------------- | ||||
| |## Channel Name ############################# DD 16:9 PAL ##| | ||||
| |[=====Signal Strength in %  =============|=================]| | ||||
| |## Channel Name ######################### [DD][AR][VF][A][D]| | ||||
| |[=====Signal Strength in % ==============|=================]| | ||||
| |[=====Signal-to-Noise Ratio in % ========|=================]| | ||||
| | STR: #0000 (0%)       BER: #00000000       Video: 0 Mbit/s | | ||||
| | SNR: #0000 (0%)       UNC: #00000000       Audio: 0 kbit/s | | ||||
| @@ -44,7 +43,7 @@ SNR     - Signal-to-noise ratio | ||||
| BER     - Bit error rate | ||||
| UNC     - Uncorrected blocks | ||||
| Video   - Calculated video bitrate in Mbit/s | ||||
| Audio   - Calculated audio / AC-3 bitrate in kbit/s (only first PID) | ||||
| Audio   - Calculated audio / AC-3 bitrate in kbit/s | ||||
|  | ||||
| LOCK    - Everything's working... | ||||
| SIGNAL  - Found something above the noise level | ||||
| @@ -52,15 +51,31 @@ 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) | ||||
| D       - Device number: 0..3 (optional) | ||||
|  | ||||
| Controls: | ||||
|  | ||||
| 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) | ||||
| Back          - Exit plugin | ||||
|  | ||||
| Installation: | ||||
|  | ||||
| cd /put/your/path/here/VDR/PLUGINS/src | ||||
| tar -xzf /put/your/path/here/vdr-femon-X.Y.Z.tar.gz | ||||
| tar -xzf /put/your/path/here/vdr-femon-X.Y.Z.tgz | ||||
| ln -s femon-X.Y.Z femon | ||||
| cd /put/your/path/here/VDR | ||||
| make | ||||
| make plugins | ||||
| ./vdr -Pfemon | ||||
| ./vdr -P femon | ||||
|  | ||||
| Notes: | ||||
|  | ||||
| @@ -71,3 +86,10 @@ Notes: | ||||
|   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 a lack of proper frontend | ||||
|   specifications those values cannot be calculated into any real unit. | ||||
| - Shrinked OSD is available 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." | ||||
|   | ||||
							
								
								
									
										2
									
								
								femon.c
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								femon.c
									
									
									
									
									
								
							| @@ -12,7 +12,7 @@ | ||||
| #include "femonosd.h" | ||||
| #include "femon.h" | ||||
|  | ||||
| #if VDRVERSNUM < 10307 | ||||
| #if VDRVERSNUM && VDRVERSNUM < 10307 | ||||
| #error "You don't exist! Go away!" | ||||
| #endif | ||||
|  | ||||
|   | ||||
							
								
								
									
										2
									
								
								femon.h
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								femon.h
									
									
									
									
									
								
							| @@ -11,7 +11,7 @@ | ||||
|  | ||||
| #include <vdr/plugin.h> | ||||
|  | ||||
| static const char *VERSION        = "0.1.3"; | ||||
| static const char *VERSION        = "0.1.5"; | ||||
| static const char *DESCRIPTION    = "DVB Signal Information Monitor (OSD)"; | ||||
| static const char *MAINMENUENTRY  = "Signal Information"; | ||||
|  | ||||
|   | ||||
							
								
								
									
										128
									
								
								femonosd.c
									
									
									
									
									
								
							
							
						
						
									
										128
									
								
								femonosd.c
									
									
									
									
									
								
							| @@ -12,6 +12,12 @@ | ||||
| #include "femonreceiver.h" | ||||
| #include "femonosd.h" | ||||
|  | ||||
| #include "symbols/dev0.xpm" | ||||
| #include "symbols/dev1.xpm" | ||||
| #include "symbols/dev2.xpm" | ||||
| #include "symbols/dev3.xpm" | ||||
| #include "symbols/apid1.xpm" | ||||
| #include "symbols/apid2.xpm" | ||||
| #include "symbols/ar11.xpm" | ||||
| #include "symbols/ar169.xpm" | ||||
| #include "symbols/ar2211.xpm" | ||||
| @@ -25,10 +31,12 @@ | ||||
| #define FRONTEND_DEVICE          "/dev/dvb/adapter%d/frontend%d" | ||||
| #define CHANNELINPUT_TIMEOUT     1000 | ||||
|  | ||||
| #define SCREENWIDTH              720 // in pixels | ||||
| #define SCREENHEIGHT             576 // in pixels | ||||
| #define OSDWIDTH                 600 // in pixels | ||||
| #ifdef NTSC_SYSTEM | ||||
| #define OSDHEIGHT                420 // in pixels | ||||
| #else | ||||
| #define OSDHEIGHT                480 // in pixels | ||||
| #endif | ||||
| #define OSDWIDTH                 600 // in pixels | ||||
| #define OSDINFOHEIGHT            (m_Font->Height() * 11) // in pixels (11 rows) | ||||
| #define OSDSTATUSHEIGHT          (m_Font->Height() * 6)  // in pixels (6 rows) | ||||
|  | ||||
| @@ -36,12 +44,18 @@ | ||||
| #define OSDINFOWIN_X(col)        ((col == 4) ? 470 : (col == 3) ? 300 : (col==2) ? 180 : 15) | ||||
| #define OSDSTATUSWIN_Y(offset)   (femonConfig.position ? offset : (OSDHEIGHT - OSDSTATUSHEIGHT + offset)) | ||||
| #define OSDSTATUSWIN_X(col)      ((col == 7) ? 475 : (col == 6) ? 410 : (col == 5) ? 275 : (col == 4) ? 220 : (col == 3) ? 125 : (col==2) ? 70 : 15) | ||||
| #define OSDSTATUSWIN_XC(col,txt) (((col - 1) * SCREENWIDTH / 6) + ((SCREENWIDTH / 6 - m_Font->Width(txt)) / 2)) | ||||
| #define OSDSTATUSWIN_XC(col,txt) (((col - 1) * OSDWIDTH / 5) + ((OSDWIDTH / 5 - m_Font->Width(txt)) / 2)) | ||||
| #define BARWIDTH(x)              (OSDWIDTH * x / 100) | ||||
| #define SPACING                  5 | ||||
|  | ||||
| #define clrBackground            clrGray50 // this should be tied somehow into current theme | ||||
|  | ||||
| cBitmap cFemonOsd::bmDevice0(dev0_xpm); | ||||
| cBitmap cFemonOsd::bmDevice1(dev1_xpm); | ||||
| cBitmap cFemonOsd::bmDevice2(dev2_xpm); | ||||
| cBitmap cFemonOsd::bmDevice3(dev3_xpm); | ||||
| cBitmap cFemonOsd::bmApid1(apid1_xpm); | ||||
| cBitmap cFemonOsd::bmApid2(apid2_xpm); | ||||
| cBitmap cFemonOsd::bmAspectRatio_1_1(ar11_xpm); | ||||
| cBitmap cFemonOsd::bmAspectRatio_16_9(ar169_xpm); | ||||
| cBitmap cFemonOsd::bmAspectRatio_2_21_1(ar2211_xpm); | ||||
| @@ -68,8 +82,15 @@ cFemonOsd::cFemonOsd(void) | ||||
|   m_BER = 0; | ||||
|   m_UNC = 0; | ||||
|   m_DisplayMode = femonConfig.displaymode; | ||||
|   m_Font = cFont::GetFont(fontSml); | ||||
|   m_Mutex = new cMutex(); | ||||
|   if (Setup.UseSmallFont == 0) { | ||||
|      // Dirty hack to force the small fonts... | ||||
|      Setup.UseSmallFont = 1; | ||||
|      m_Font = cFont::GetFont(fontSml); | ||||
|      Setup.UseSmallFont = 0; | ||||
|      } | ||||
|   else | ||||
|      m_Font = cFont::GetFont(fontSml); | ||||
| } | ||||
|  | ||||
| cFemonOsd::~cFemonOsd(void) | ||||
| @@ -93,7 +114,7 @@ void cFemonOsd::DrawStatusWindow(void) | ||||
|   int snr = m_SNR / 655; | ||||
|   int signal = m_Signal / 655; | ||||
|   int offset = 0; | ||||
|   int x = OSDWIDTH - SPACING; | ||||
|   int x = OSDWIDTH; | ||||
|   int y = 0; | ||||
|   cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel()); | ||||
|  | ||||
| @@ -103,7 +124,48 @@ void cFemonOsd::DrawStatusWindow(void) | ||||
|      m_Osd->DrawRectangle(0, OSDSTATUSWIN_Y(offset), OSDWIDTH, OSDSTATUSWIN_Y(offset+m_Font->Height()-1), clrWhite); | ||||
|      m_Osd->DrawText(OSDSTATUSWIN_X(1), OSDSTATUSWIN_Y(offset), buf, clrBlack, clrWhite, m_Font); | ||||
|      if (m_Receiver) { | ||||
|         int value = m_Receiver->VideoFormat(); | ||||
|         int value = cDevice::ActualDevice()->CardIndex(); | ||||
|         if (value == 0) { | ||||
|            x -= bmDevice0.Width() + SPACING; | ||||
|            y = (m_Font->Height() - bmDevice0.Height()) / 2; | ||||
|            if (y < 0) y = 0; | ||||
|            m_Osd->DrawBitmap(x, OSDSTATUSWIN_Y(offset+y), bmDevice0, clrBlack, clrWhite); | ||||
|            } | ||||
|         else if (value == 1) { | ||||
|            x -= bmDevice1.Width() + SPACING; | ||||
|            y = (m_Font->Height() - bmDevice1.Height()) / 2; | ||||
|            if (y < 0) y = 0; | ||||
|            m_Osd->DrawBitmap(x, OSDSTATUSWIN_Y(offset+y), bmDevice1, clrBlack, clrWhite); | ||||
|            } | ||||
|         else if (value == 2) { | ||||
|            x -= bmDevice2.Width() + SPACING; | ||||
|            y = (m_Font->Height() - bmDevice2.Height()) / 2; | ||||
|            if (y < 0) y = 0; | ||||
|            m_Osd->DrawBitmap(x, OSDSTATUSWIN_Y(offset+y), bmDevice2, clrBlack, clrWhite); | ||||
|            } | ||||
|         else if (value == 3) { | ||||
|            x -= bmDevice3.Width() + SPACING; | ||||
|            y = (m_Font->Height() - bmDevice3.Height()) / 2; | ||||
|            if (y < 0) y = 0; | ||||
|            m_Osd->DrawBitmap(x, OSDSTATUSWIN_Y(offset+y), bmDevice3, clrBlack, clrWhite); | ||||
|            } | ||||
|         value = -1; | ||||
|         const char **AudioTracks = cDevice::PrimaryDevice()->GetAudioTracks(&value); | ||||
|         if (AudioTracks) { | ||||
|            if (value == 0) { | ||||
|               x -= bmApid1.Width() + SPACING; | ||||
|               y = (m_Font->Height() - bmApid1.Height()) / 2; | ||||
|               if (y < 0) y = 0; | ||||
|               m_Osd->DrawBitmap(x, OSDSTATUSWIN_Y(offset+y), bmApid1, clrBlack, clrWhite); | ||||
|               } | ||||
|            else if (value == 1) { | ||||
|               x -= bmApid2.Width() + SPACING; | ||||
|               y = (m_Font->Height() - bmApid2.Height()) / 2; | ||||
|               if (y < 0) y = 0; | ||||
|               m_Osd->DrawBitmap(x, OSDSTATUSWIN_Y(offset+y), bmApid2, clrBlack, clrWhite); | ||||
|               } | ||||
|            } | ||||
|         value = m_Receiver->VideoFormat(); | ||||
|         if (value == VF_PAL) { | ||||
|            x -= bmPAL.Width() + SPACING; | ||||
|            y = (m_Font->Height() - bmPAL.Height()) / 2; | ||||
| @@ -258,7 +320,7 @@ void cFemonOsd::DrawInfoWindow(void) | ||||
|         m_Osd->DrawText(OSDINFOWIN_X(4), OSDINFOWIN_Y(offset), buf, clrYellow, clrBackground, m_Font); | ||||
|         offset += m_Font->Height(); | ||||
|         m_Osd->DrawText(OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), tr("CA"), clrWhite, clrBackground, m_Font); | ||||
|         snprintf(buf, sizeof(buf), "%d", channel->Ca()); | ||||
|         snprintf(buf, sizeof(buf), "%X", channel->Ca()); | ||||
|         m_Osd->DrawText(OSDINFOWIN_X(2), OSDINFOWIN_Y(offset), buf, clrYellow, clrBackground, m_Font); | ||||
|         m_Osd->DrawText(OSDINFOWIN_X(3), OSDINFOWIN_Y(offset), tr("Tpid"), clrWhite, clrBackground, m_Font); | ||||
|         snprintf(buf, sizeof(buf), "%d", channel->Tpid()); | ||||
| @@ -500,7 +562,9 @@ void cFemonOsd::DrawInfoWindow(void) | ||||
|         m_Osd->DrawText(OSDINFOWIN_X(3), OSDINFOWIN_Y(offset), buf, clrYellow, clrBackground, m_Font); | ||||
|         offset += m_Font->Height(); | ||||
|         m_Osd->DrawText(OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), tr("Audio Stream"), clrYellow, clrBackground, m_Font); | ||||
|         snprintf(buf, sizeof(buf), "#%d", channel->Apid1()); | ||||
|         value = -1; | ||||
|         cDevice::PrimaryDevice()->GetAudioTracks(&value); | ||||
|         snprintf(buf, sizeof(buf), "#%d", (value > 0 ? channel->Apid2() : channel->Apid1())); | ||||
|         m_Osd->DrawText(OSDINFOWIN_X(3), OSDINFOWIN_Y(offset), buf, clrYellow, clrBackground, m_Font); | ||||
|         offset += m_Font->Height(); | ||||
|         m_Osd->DrawText(OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), tr("Bitrate"), clrWhite, clrBackground, m_Font); | ||||
| @@ -724,9 +788,8 @@ void cFemonOsd::ChannelSwitch(const cDevice * device, int channelNumber) | ||||
| eOSState cFemonOsd::ProcessKey(eKeys Key) | ||||
| {  | ||||
|   eOSState state = cOsdObject::ProcessKey(Key); | ||||
|  | ||||
|   if (state == osUnknown) { | ||||
|      switch (Key & ~k_Repeat) { | ||||
|      switch (Key) { | ||||
|        case k0: | ||||
|             if ((m_Number == 0) && (m_OldNumber != 0)) { | ||||
|                m_Number = m_OldNumber; | ||||
| @@ -765,6 +828,49 @@ eOSState cFemonOsd::ProcessKey(eKeys Key) | ||||
|             break; | ||||
|        case kBack: | ||||
|             return osEnd; | ||||
|        case kGreen: | ||||
|             { | ||||
|             int CurrentAudioTrack = -1; | ||||
|             const char **AudioTracks = cDevice::PrimaryDevice()->GetAudioTracks(&CurrentAudioTrack); | ||||
|             if (AudioTracks) { | ||||
|                const char **at = &AudioTracks[CurrentAudioTrack]; | ||||
|                if (!*++at) | ||||
|                   at = AudioTracks; | ||||
|                cDevice::PrimaryDevice()->SetAudioTrack(at - AudioTracks); | ||||
|                if (femonConfig.analyzestream) { | ||||
|                   cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel()); | ||||
|                   if (m_Receiver) | ||||
|                      delete m_Receiver; | ||||
|                   m_Receiver = new cFemonReceiver(channel->Ca(), channel->Vpid(), (at - AudioTracks) ? channel->Apid2() : channel->Apid1(), channel->Dpid1()); | ||||
|                   cDevice::ActualDevice()->AttachReceiver(m_Receiver); | ||||
|                   } | ||||
|                } | ||||
|             } | ||||
|             break; | ||||
|        case kRight: | ||||
|        case kLeft: | ||||
|             { | ||||
|             int device = cDevice::ActualDevice()->DeviceNumber(); | ||||
|             if (device >= 0) { | ||||
|                cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel()); | ||||
|                for (int i = 0; i < cDevice::NumDevices() - 1; i++) { | ||||
|                    if (NORMALKEY(Key) == kRight) { | ||||
|                       if (++device >= cDevice::NumDevices()) device = 0; | ||||
|                       } | ||||
|                    else { | ||||
|                       if (--device < 0) device = cDevice::NumDevices() - 1; | ||||
|                       } | ||||
|                    if (cDevice::GetDevice(device)->ProvidesChannel(channel)) { | ||||
|                       //cStatus::MsgChannelSwitch(cDevice::GetDevice(device), 0); | ||||
|                       //implement some tuning mechanism here | ||||
|                       //cControl::Launch(new cTransferControl(cDevice::GetDevice(device), channel->Vpid(), channel->Apid1(), channel->Apid2(), channel->Dpid1(), channel->Dpid2())); | ||||
|                       //cStatus::MsgChannelSwitch(cDevice::GetDevice(device), channel->Number()); | ||||
|                       break; | ||||
|                       } | ||||
|                    } | ||||
|                } | ||||
|             } | ||||
|             break; | ||||
|        case kUp|k_Repeat: | ||||
|        case kUp: | ||||
|        case kDown|k_Repeat: | ||||
|   | ||||
| @@ -16,6 +16,7 @@ | ||||
| #include <vdr/thread.h> | ||||
| #include <vdr/status.h> | ||||
| #include <vdr/channels.h> | ||||
| #include <vdr/transfer.h> | ||||
|  | ||||
| class cFemonOsd : public cOsdObject, public cThread, public cStatus { | ||||
| private: | ||||
| @@ -35,7 +36,8 @@ private: | ||||
|   int m_DisplayMode; | ||||
|   const cFont *m_Font; | ||||
|   cMutex* m_Mutex; | ||||
|   static cBitmap bmDD, bmDD20, bmDD51, bmPAL, bmNTSC, bmAspectRatio_1_1, bmAspectRatio_16_9, bmAspectRatio_2_21_1, bmAspectRatio_4_3; | ||||
|   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; | ||||
|   void DrawStatusWindow(void); | ||||
|   void DrawInfoWindow(void); | ||||
|  | ||||
|   | ||||
							
								
								
									
										52
									
								
								patches/ca_system_names.diff
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								patches/ca_system_names.diff
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,52 @@ | ||||
| --- femonosd.c.orig	2004-08-19 19:42:32.000000000 +0300 | ||||
| +++ femonosd.c	2004-08-19 20:02:31.000000000 +0300 | ||||
| @@ -320,7 +320,48 @@ | ||||
|          m_Osd->DrawText(OSDINFOWIN_X(4), OSDINFOWIN_Y(offset), buf, clrYellow, clrBackground, m_Font); | ||||
|          offset += m_Font->Height(); | ||||
|          m_Osd->DrawText(OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), tr("CA"), clrWhite, clrBackground, m_Font); | ||||
| -        snprintf(buf, sizeof(buf), "%X", channel->Ca()); | ||||
| +        value = channel->Ca(); | ||||
| +        switch (value >> 8) { | ||||
| +          case 0x0: | ||||
| +               if (value) | ||||
| +                  snprintf(buf, sizeof(buf), "%s", "Fixed"); | ||||
| +               else | ||||
| +                  snprintf(buf, sizeof(buf), "%s", "Free to Air"); | ||||
| +               break; | ||||
| +          case 0x1: | ||||
| +               snprintf(buf, sizeof(buf), "%s", "SECA/Mediaguard"); | ||||
| +               break; | ||||
| +          case 0x5: | ||||
| +               snprintf(buf, sizeof(buf), "%s", "Viaccess"); | ||||
| +               break; | ||||
| +          case 0x6: | ||||
| +               snprintf(buf, sizeof(buf), "%s", "Irdeto"); | ||||
| +               break; | ||||
| +          case 0x9: | ||||
| +               snprintf(buf, sizeof(buf), "%s", "NDS/Videoguard"); | ||||
| +               break; | ||||
| +          case 0xB: | ||||
| +               snprintf(buf, sizeof(buf), "%s", "Conax"); | ||||
| +               break; | ||||
| +          case 0xD: | ||||
| +               snprintf(buf, sizeof(buf), "%s", "CryptoWorks"); | ||||
| +               break; | ||||
| +          case 0xE: | ||||
| +               snprintf(buf, sizeof(buf), "%s", "PowerVu"); | ||||
| +               break; | ||||
| +          case 0x17: | ||||
| +               snprintf(buf, sizeof(buf), "%s", "BetaCrypt"); | ||||
| +               break; | ||||
| +          case 0x18: | ||||
| +               snprintf(buf, sizeof(buf), "%s", "NagraVision"); | ||||
| +               break; | ||||
| +          case 0x4A: | ||||
| +               snprintf(buf, sizeof(buf), "%s", "SkyCrypt"); | ||||
| +               break; | ||||
| +          default: | ||||
| +               snprintf(buf, sizeof(buf), "%X", value); | ||||
| +               break; | ||||
| +          } | ||||
|          m_Osd->DrawText(OSDINFOWIN_X(2), OSDINFOWIN_Y(offset), buf, clrYellow, clrBackground, m_Font); | ||||
|          m_Osd->DrawText(OSDINFOWIN_X(3), OSDINFOWIN_Y(offset), tr("Tpid"), clrWhite, clrBackground, m_Font); | ||||
|          snprintf(buf, sizeof(buf), "%d", channel->Tpid()); | ||||
							
								
								
									
										23
									
								
								symbols/apid1.xpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								symbols/apid1.xpm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | ||||
| /* XPM */ | ||||
| static char * apid1_xpm[] = { | ||||
| "32 18 2 1", | ||||
| ".	c #FFFFFF", | ||||
| "+	c #000000", | ||||
| "++++++++++++++++++++++++++++++++", | ||||
| "+..............................+", | ||||
| "+..............++.......++.....+", | ||||
| "+............++++....+++++.....+", | ||||
| "+..........+++.++....+++++.....+", | ||||
| "+........+++...++.......++.....+", | ||||
| "+...+++++++....++.......++.....+", | ||||
| "+...++++++.....++.......++.....+", | ||||
| "+...++..++.....++.......++.....+", | ||||
| "+...++..++.....++.......++.....+", | ||||
| "+...++++++.....++.......++.....+", | ||||
| "+...+++++++....++.......++.....+", | ||||
| "+........+++...++.......++.....+", | ||||
| "+..........+++.++.......++.....+", | ||||
| "+............++++.......++.....+", | ||||
| "+.............+++.......++.....+", | ||||
| "+..............................+", | ||||
| "++++++++++++++++++++++++++++++++"}; | ||||
							
								
								
									
										23
									
								
								symbols/apid2.xpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								symbols/apid2.xpm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | ||||
| /* XPM */ | ||||
| static char * apid2_xpm[] = { | ||||
| "32 18 2 1", | ||||
| ".	c #FFFFFF", | ||||
| "+	c #000000", | ||||
| "++++++++++++++++++++++++++++++++", | ||||
| "+..............................+", | ||||
| "+..............++.....++++.....+", | ||||
| "+............++++...+++++++....+", | ||||
| "+..........+++.++...++....++...+", | ||||
| "+........+++...++.........++...+", | ||||
| "+...+++++++....++.........++...+", | ||||
| "+...++++++.....++........+++...+", | ||||
| "+...++..++.....++.......+++....+", | ||||
| "+...++..++.....++......+++.....+", | ||||
| "+...++++++.....++.....+++......+", | ||||
| "+...+++++++....++....+++.......+", | ||||
| "+........+++...++...+++........+", | ||||
| "+..........+++.++...++.........+", | ||||
| "+............++++...++++++++...+", | ||||
| "+.............+++...++++++++...+", | ||||
| "+..............................+", | ||||
| "++++++++++++++++++++++++++++++++"}; | ||||
| @@ -1,23 +1,23 @@ | ||||
| /* XPM */ | ||||
| static char * ar11_xpm[] = { | ||||
| "21 18 2 1", | ||||
| "26 18 2 1", | ||||
| ".	c #FFFFFF", | ||||
| "+	c #000000", | ||||
| ".....................", | ||||
| ".....................", | ||||
| "....++...........++..", | ||||
| "...+++..........+++..", | ||||
| "..++++....++...++++..", | ||||
| "..++++...++++..++++..", | ||||
| "....++...++++....++..", | ||||
| "....++....++.....++..", | ||||
| "....++...........++..", | ||||
| "....++...........++..", | ||||
| "....++....++.....++..", | ||||
| "....++...++++....++..", | ||||
| "....++...++++....++..", | ||||
| "....++....++.....++..", | ||||
| "....++...........++..", | ||||
| "....++...........++..", | ||||
| ".....................", | ||||
| "....................."}; | ||||
| "++++++++++++++++++++++++++", | ||||
| "+........................+", | ||||
| "+......++..........++....+", | ||||
| "+...+++++.......+++++....+", | ||||
| "+...+++++.......+++++....+", | ||||
| "+......++...++.....++....+", | ||||
| "+......++...++.....++....+", | ||||
| "+......++..........++....+", | ||||
| "+......++..........++....+", | ||||
| "+......++..........++....+", | ||||
| "+......++..........++....+", | ||||
| "+......++..........++....+", | ||||
| "+......++..........++....+", | ||||
| "+......++..........++....+", | ||||
| "+......++...++.....++....+", | ||||
| "+......++...++.....++....+", | ||||
| "+........................+", | ||||
| "++++++++++++++++++++++++++"}; | ||||
|   | ||||
| @@ -1,23 +1,23 @@ | ||||
| /* XPM */ | ||||
| static char * ar169_xpm[] = { | ||||
| "36 18 2 1", | ||||
| "38 18 2 1", | ||||
| ".	c #FFFFFF", | ||||
| "+	c #000000", | ||||
| "....................................", | ||||
| "....................................", | ||||
| "....++....+++++............+++++....", | ||||
| "...+++...+++++++..........+++++++...", | ||||
| "..++++..+++...+++...++...+++...+++..", | ||||
| "..++++..++.....++..++++..++.....++..", | ||||
| "....++..++.........++++..++.....++..", | ||||
| "....++..++..........++...+++...+++..", | ||||
| "....++..++.++++...........++++++++..", | ||||
| "....++..++++++++...........+++++++..", | ||||
| "....++..+++...+++...++..........++..", | ||||
| "....++..++.....++..++++.........++..", | ||||
| "....++..++.....++..++++..++.....++..", | ||||
| "....++..+++...+++...++...+++...+++..", | ||||
| "....++...+++++++..........+++++++...", | ||||
| "....++....+++++............+++++....", | ||||
| "....................................", | ||||
| "...................................."}; | ||||
| "++++++++++++++++++++++++++++++++++++++", | ||||
| "+....................................+", | ||||
| "+......++.....++++..........++++.....+", | ||||
| "+...+++++....+++++++.......++++++....+", | ||||
| "+...+++++....++...++......++...+++...+", | ||||
| "+......++...++........++..++....++...+", | ||||
| "+......++...++........++..++....++...+", | ||||
| "+......++...++............++....++...+", | ||||
| "+......++...++.+++.........+++++++...+", | ||||
| "+......++...+++++++.........+++.++...+", | ||||
| "+......++...++....++............++...+", | ||||
| "+......++...++....++............++...+", | ||||
| "+......++...++....++............++...+", | ||||
| "+......++...+++...++......++...++....+", | ||||
| "+......++....++++++...++..+++++++....+", | ||||
| "+......++.....++++....++...+++++.....+", | ||||
| "+....................................+", | ||||
| "++++++++++++++++++++++++++++++++++++++"}; | ||||
|   | ||||
| @@ -1,23 +1,23 @@ | ||||
| /* XPM */ | ||||
| static char * ar2211_xpm[] = { | ||||
| "43 18 2 1", | ||||
| "52 18 2 1", | ||||
| ".	c #FFFFFF", | ||||
| "+	c #000000", | ||||
| "...........................................", | ||||
| "...........................................", | ||||
| "....++++........++++......++...........++..", | ||||
| "...++++++......++++++....+++..........+++..", | ||||
| "..+++..+++....+++..+++..++++....++...++++..", | ||||
| "..++....++....++....++..++++...++++..++++..", | ||||
| "..++....++....++....++....++...++++....++..", | ||||
| ".......+++.........+++....++....++.....++..", | ||||
| "......+++.........+++.....++...........++..", | ||||
| ".....+++.........+++......++...........++..", | ||||
| "....+++.........+++.......++....++.....++..", | ||||
| "...+++.........+++........++...++++....++..", | ||||
| "..+++.........+++.........++...++++....++..", | ||||
| "..++....++.++.++....++....++....++.....++..", | ||||
| "..++++++++.++.++++++++....++...........++..", | ||||
| "..++++++++.++.++++++++....++...........++..", | ||||
| "...........................................", | ||||
| "..........................................."}; | ||||
| "++++++++++++++++++++++++++++++++++++++++++++++++++++", | ||||
| "+..................................................+", | ||||
| "+.....++++..........++++........++...........++....+", | ||||
| "+...+++++++.......+++++++....+++++........+++++....+", | ||||
| "+...++....++......++....++...+++++........+++++....+", | ||||
| "+.........++............++......++...++......++....+", | ||||
| "+.........++............++......++...++......++....+", | ||||
| "+........+++...........+++......++...........++....+", | ||||
| "+.......+++...........+++.......++...........++....+", | ||||
| "+......+++...........+++........++...........++....+", | ||||
| "+.....+++...........+++.........++...........++....+", | ||||
| "+....+++...........+++..........++...........++....+", | ||||
| "+...+++...........+++...........++...........++....+", | ||||
| "+...++............++............++...........++....+", | ||||
| "+...++++++++..++..++++++++......++...++......++....+", | ||||
| "+...++++++++..++..++++++++......++...++......++....+", | ||||
| "+..................................................+", | ||||
| "++++++++++++++++++++++++++++++++++++++++++++++++++++"}; | ||||
|   | ||||
| @@ -1,23 +1,23 @@ | ||||
| /* XPM */ | ||||
| static char * ar43_xpm[] = { | ||||
| "32 18 2 1", | ||||
| "31 18 2 1", | ||||
| ".	c #FFFFFF", | ||||
| "+	c #000000", | ||||
| "................................", | ||||
| "................................", | ||||
| "....++..++............++++++....", | ||||
| "....++..++...........++++++++...", | ||||
| "...+++..++.....++...+++....+++..", | ||||
| "...++...++....++++..++......++..", | ||||
| "...++...++....++++..++......++..", | ||||
| "..+++...++.....++..........+++..", | ||||
| "..++....++..............+++++...", | ||||
| "..++....++..............+++++...", | ||||
| "..++++++++++...++..........+++..", | ||||
| "..++++++++++..++++..++......++..", | ||||
| "........++....++++..++......++..", | ||||
| "........++.....++...+++....+++..", | ||||
| "........++...........++++++++...", | ||||
| "........++............++++++....", | ||||
| "................................", | ||||
| "................................"}; | ||||
| "+++++++++++++++++++++++++++++++", | ||||
| "+.............................+", | ||||
| "+.........++.........+++++....+", | ||||
| "+........+++........+++++++...+", | ||||
| "+.......++++.......++....++...+", | ||||
| "+......++.++...++..++....++...+", | ||||
| "+.....++..++...++........++...+", | ||||
| "+.....++..++............++....+", | ||||
| "+....++...++..........+++.....+", | ||||
| "+...++....++..........++++....+", | ||||
| "+...+++++++++...........+++...+", | ||||
| "+...+++++++++............++...+", | ||||
| "+.........++.......++....++...+", | ||||
| "+.........++.......++...+++...+", | ||||
| "+.........++...++...++++++....+", | ||||
| "+.........++...++....++++.....+", | ||||
| "+.............................+", | ||||
| "+++++++++++++++++++++++++++++++"}; | ||||
|   | ||||
							
								
								
									
										23
									
								
								symbols/dev0.xpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								symbols/dev0.xpm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | ||||
| /* XPM */ | ||||
| static char * dev0_xpm[] = { | ||||
| "29 18 2 1", | ||||
| ".	c #FFFFFF", | ||||
| "+	c #000000", | ||||
| "+++++++++++++++++++++++++++++", | ||||
| "+...........................+", | ||||
| "+.......+..+.......++++.....+", | ||||
| "+.......+..+......++++++....+", | ||||
| "+.......+..+......++..++....+", | ||||
| "+....+++++++++...++....++...+", | ||||
| "+....+++++++++...++....++...+", | ||||
| "+......+..+......++....++...+", | ||||
| "+......+..+......++....++...+", | ||||
| "+......+..+......++....++...+", | ||||
| "+......+..+......++....++...+", | ||||
| "+...+++++++++....++....++...+", | ||||
| "+...+++++++++....++....++...+", | ||||
| "+.....+..+........++..++....+", | ||||
| "+.....+..+........++++++....+", | ||||
| "+.....+..+.........++++.....+", | ||||
| "+...........................+", | ||||
| "+++++++++++++++++++++++++++++"}; | ||||
							
								
								
									
										23
									
								
								symbols/dev1.xpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								symbols/dev1.xpm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | ||||
| /* XPM */ | ||||
| static char * dev1_xpm[] = { | ||||
| "29 18 2 1", | ||||
| ".	c #FFFFFF", | ||||
| "+	c #000000", | ||||
| "+++++++++++++++++++++++++++++", | ||||
| "+...........................+", | ||||
| "+.......+..+.........++.....+", | ||||
| "+.......+..+......+++++.....+", | ||||
| "+.......+..+......+++++.....+", | ||||
| "+....+++++++++.......++.....+", | ||||
| "+....+++++++++.......++.....+", | ||||
| "+......+..+..........++.....+", | ||||
| "+......+..+..........++.....+", | ||||
| "+......+..+..........++.....+", | ||||
| "+......+..+..........++.....+", | ||||
| "+...+++++++++........++.....+", | ||||
| "+...+++++++++........++.....+", | ||||
| "+.....+..+...........++.....+", | ||||
| "+.....+..+...........++.....+", | ||||
| "+.....+..+...........++.....+", | ||||
| "+...........................+", | ||||
| "+++++++++++++++++++++++++++++"}; | ||||
							
								
								
									
										23
									
								
								symbols/dev2.xpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								symbols/dev2.xpm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | ||||
| /* XPM */ | ||||
| static char * dev2_xpm[] = { | ||||
| "29 18 2 1", | ||||
| ".	c #FFFFFF", | ||||
| "+	c #000000", | ||||
| "+++++++++++++++++++++++++++++", | ||||
| "+...........................+", | ||||
| "+.......+..+.......++++.....+", | ||||
| "+.......+..+.....+++++++....+", | ||||
| "+.......+..+.....++....++...+", | ||||
| "+....+++++++++.........++...+", | ||||
| "+....+++++++++.........++...+", | ||||
| "+......+..+...........+++...+", | ||||
| "+......+..+..........+++....+", | ||||
| "+......+..+.........+++.....+", | ||||
| "+......+..+........+++......+", | ||||
| "+...+++++++++.....+++.......+", | ||||
| "+...+++++++++....+++........+", | ||||
| "+.....+..+.......++.........+", | ||||
| "+.....+..+.......++++++++...+", | ||||
| "+.....+..+.......++++++++...+", | ||||
| "+...........................+", | ||||
| "+++++++++++++++++++++++++++++"}; | ||||
							
								
								
									
										23
									
								
								symbols/dev3.xpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								symbols/dev3.xpm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | ||||
| /* XPM */ | ||||
| static char * dev3_xpm[] = { | ||||
| "29 18 2 1", | ||||
| ".	c #FFFFFF", | ||||
| "+	c #000000", | ||||
| "+++++++++++++++++++++++++++++", | ||||
| "+...........................+", | ||||
| "+.......+..+.......+++++....+", | ||||
| "+.......+..+......+++++++...+", | ||||
| "+.......+..+.....++....++...+", | ||||
| "+....+++++++++...++....++...+", | ||||
| "+....+++++++++.........++...+", | ||||
| "+......+..+...........++....+", | ||||
| "+......+..+.........+++.....+", | ||||
| "+......+..+.........++++....+", | ||||
| "+......+..+...........+++...+", | ||||
| "+...+++++++++..........++...+", | ||||
| "+...+++++++++....++....++...+", | ||||
| "+.....+..+.......++...+++...+", | ||||
| "+.....+..+........++++++....+", | ||||
| "+.....+..+.........++++.....+", | ||||
| "+...........................+", | ||||
| "+++++++++++++++++++++++++++++"}; | ||||
| @@ -1,23 +1,23 @@ | ||||
| /* XPM */ | ||||
| static char * dolbydigital_xpm[] = { | ||||
| "27 18 2 1", | ||||
| "31 18 2 1", | ||||
| ".	c #FFFFFF", | ||||
| "+	c #000000", | ||||
| "...........................", | ||||
| "...........................", | ||||
| "..+++++++++++.+++++++++++..", | ||||
| "..++.++++++++.++++++++.++..", | ||||
| "..++...++++++.++++++...++..", | ||||
| "..++.....++++.++++.....++..", | ||||
| "..++......+++.+++......++..", | ||||
| "..++.......++.++.......++..", | ||||
| "..++.......++.++.......++..", | ||||
| "..++.......++.++.......++..", | ||||
| "..++.......++.++.......++..", | ||||
| "..++......+++.+++......++..", | ||||
| "..++.....++++.++++.....++..", | ||||
| "..++...++++++.++++++...++..", | ||||
| "..++.++++++++.++++++++.++..", | ||||
| "..+++++++++++.+++++++++++..", | ||||
| "...........................", | ||||
| "..........................."}; | ||||
| "+++++++++++++++++++++++++++++++", | ||||
| "+.............................+", | ||||
| "+...+++++++++++.+++++++++++...+", | ||||
| "+...++.++++++++.++++++++.++...+", | ||||
| "+...++...++++++.++++++...++...+", | ||||
| "+...++.....++++.++++.....++...+", | ||||
| "+...++......+++.+++......++...+", | ||||
| "+...++.......++.++.......++...+", | ||||
| "+...++.......++.++.......++...+", | ||||
| "+...++.......++.++.......++...+", | ||||
| "+...++.......++.++.......++...+", | ||||
| "+...++......+++.+++......++...+", | ||||
| "+...++.....++++.++++.....++...+", | ||||
| "+...++...++++++.++++++...++...+", | ||||
| "+...++.++++++++.++++++++.++...+", | ||||
| "+...+++++++++++.+++++++++++...+", | ||||
| "+.............................+", | ||||
| "+++++++++++++++++++++++++++++++"}; | ||||
|   | ||||
| @@ -1,23 +1,23 @@ | ||||
| /* XPM */ | ||||
| static char * dolbydigital20_xpm[] = { | ||||
| "49 18 2 1", | ||||
| "55 18 2 1", | ||||
| ".	c #FFFFFF", | ||||
| "+	c #000000", | ||||
| ".................................................", | ||||
| ".................................................", | ||||
| "..+++++++++++.+++++++++++....++++.......++++++...", | ||||
| "..++.++++++++.++++++++.++...++++++.....++++++++..", | ||||
| "..++...++++++.++++++...++..+++..+++....+++..+++..", | ||||
| "..++.....++++.++++.....++..++....++....++....++..", | ||||
| "..++......+++.+++......++..++....++....++....++..", | ||||
| "..++.......++.++.......++.......+++....++....++..", | ||||
| "..++.......++.++.......++......+++.....++....++..", | ||||
| "..++.......++.++.......++.....+++......++....++..", | ||||
| "..++.......++.++.......++....+++.......++....++..", | ||||
| "..++......+++.+++......++...+++........++....++..", | ||||
| "..++.....++++.++++.....++..+++.........++....++..", | ||||
| "..++...++++++.++++++...++..++....++.++.+++..+++..", | ||||
| "..++.++++++++.++++++++.++..++++++++.++.++++++++..", | ||||
| "..+++++++++++.+++++++++++..++++++++.++..++++++...", | ||||
| ".................................................", | ||||
| "................................................."}; | ||||
| "+++++++++++++++++++++++++++++++++++++++++++++++++++++++", | ||||
| "+.....................................................+", | ||||
| "+...+++++++++++.+++++++++++.....++++.........++++.....+", | ||||
| "+...++.++++++++.++++++++.++...+++++++.......++++++....+", | ||||
| "+...++...++++++.++++++...++...++....++......++..++....+", | ||||
| "+...++.....++++.++++.....++.........++.....++....++...+", | ||||
| "+...++......+++.+++......++.........++.....++....++...+", | ||||
| "+...++.......++.++.......++........+++.....++....++...+", | ||||
| "+...++.......++.++.......++.......+++......++....++...+", | ||||
| "+...++.......++.++.......++......+++.......++....++...+", | ||||
| "+...++.......++.++.......++.....+++........++....++...+", | ||||
| "+...++......+++.+++......++....+++.........++....++...+", | ||||
| "+...++.....++++.++++.....++...+++..........++....++...+", | ||||
| "+...++...++++++.++++++...++...++............++..++....+", | ||||
| "+...++.++++++++.++++++++.++...++++++++..++..++++++....+", | ||||
| "+...+++++++++++.+++++++++++...++++++++..++...++++.....+", | ||||
| "+.....................................................+", | ||||
| "+++++++++++++++++++++++++++++++++++++++++++++++++++++++"}; | ||||
|   | ||||
| @@ -1,23 +1,23 @@ | ||||
| /* XPM */ | ||||
| static char * dolbydigital51_xpm[] = { | ||||
| "44 18 2 1", | ||||
| "51 18 2 1", | ||||
| ".	c #FFFFFF", | ||||
| "+	c #000000", | ||||
| "............................................", | ||||
| "............................................", | ||||
| "..+++++++++++.+++++++++++..++++++++.....++..", | ||||
| "..++.++++++++.++++++++.++..++++++++....+++..", | ||||
| "..++...++++++.++++++...++..++.........++++..", | ||||
| "..++.....++++.++++.....++..++.........++++..", | ||||
| "..++......+++.+++......++..++...........++..", | ||||
| "..++.......++.++.......++..++++++.......++..", | ||||
| "..++.......++.++.......++..+++++++......++..", | ||||
| "..++.......++.++.......++.......+++.....++..", | ||||
| "..++.......++.++.......++........++.....++..", | ||||
| "..++......+++.+++......++..++....++.....++..", | ||||
| "..++.....++++.++++.....++..++....++.....++..", | ||||
| "..++...++++++.++++++...++..+++..+++.++..++..", | ||||
| "..++.++++++++.++++++++.++...++++++..++..++..", | ||||
| "..+++++++++++.+++++++++++....++++...++..++..", | ||||
| "............................................", | ||||
| "............................................"}; | ||||
| "+++++++++++++++++++++++++++++++++++++++++++++++++++", | ||||
| "+.................................................+", | ||||
| "+...+++++++++++.+++++++++++...+++++++........++...+", | ||||
| "+...++.++++++++.++++++++.++...+++++++.....+++++...+", | ||||
| "+...++...++++++.++++++...++...++..........+++++...+", | ||||
| "+...++.....++++.++++.....++...++.............++...+", | ||||
| "+...++......+++.+++......++...++++++.........++...+", | ||||
| "+...++.......++.++.......++...+++++++........++...+", | ||||
| "+...++.......++.++.......++...++...+++.......++...+", | ||||
| "+...++.......++.++.......++.........++.......++...+", | ||||
| "+...++.......++.++.......++.........++.......++...+", | ||||
| "+...++......+++.+++......++.........++.......++...+", | ||||
| "+...++.....++++.++++.....++...++....++.......++...+", | ||||
| "+...++...++++++.++++++...++...++...+++.......++...+", | ||||
| "+...++.++++++++.++++++++.++...+++++++...++...++...+", | ||||
| "+...+++++++++++.+++++++++++....+++++....++...++...+", | ||||
| "+.................................................+", | ||||
| "+++++++++++++++++++++++++++++++++++++++++++++++++++"}; | ||||
|   | ||||
| @@ -1,23 +1,23 @@ | ||||
| /* XPM */ | ||||
| static char * ntsc_xpm[] = { | ||||
| "38 18 2 1", | ||||
| "19 18 2 1", | ||||
| ".	c #FFFFFF", | ||||
| "+	c #000000", | ||||
| "......................................", | ||||
| "......................................", | ||||
| "..++....++.++++++++..+++++....+++++...", | ||||
| "..++....++.++++++++.+++++++..+++++++..", | ||||
| "..+++...++....++....++...++..++...++..", | ||||
| "..+++...++....++....++...++..++...++..", | ||||
| "..++++..++....++....++.......++.......", | ||||
| "..++++..++....++....++++.....++.......", | ||||
| "..++.++.++....++.....+++++...++.......", | ||||
| "..++.++.++....++.......++++..++.......", | ||||
| "..++..++++....++.........++..++.......", | ||||
| "..++..++++....++....++...++..++...++..", | ||||
| "..++...+++....++....++...++..++...++..", | ||||
| "..++...+++....++....++...++..++...++..", | ||||
| "..++....++....++....+++++++..+++++++..", | ||||
| "..++....++....++.....+++++....+++++...", | ||||
| "......................................", | ||||
| "......................................"}; | ||||
| "+++++++++++++++++++", | ||||
| "+.................+", | ||||
| "+...++.......++...+", | ||||
| "+...+++......++...+", | ||||
| "+...++++.....++...+", | ||||
| "+...++++.....++...+", | ||||
| "+...++.++....++...+", | ||||
| "+...++..++...++...+", | ||||
| "+...++..++...++...+", | ||||
| "+...++...++..++...+", | ||||
| "+...++...++..++...+", | ||||
| "+...++....++.++...+", | ||||
| "+...++.....++++...+", | ||||
| "+...++.....++++...+", | ||||
| "+...++......+++...+", | ||||
| "+...++.......++...+", | ||||
| "+.................+", | ||||
| "+++++++++++++++++++"}; | ||||
|   | ||||
| @@ -1,23 +1,23 @@ | ||||
| /* XPM */ | ||||
| static char * pal_xpm[] = { | ||||
| "30 18 2 1", | ||||
| "18 18 2 1", | ||||
| ".	c #FFFFFF", | ||||
| "+	c #000000", | ||||
| "..............................", | ||||
| "..............................", | ||||
| "..+++++++....+++++...++.......", | ||||
| "..+++..+++..+++++++..++.......", | ||||
| "..++....++..++...++..++.......", | ||||
| "..++....++.+++...+++.++.......", | ||||
| "..++....++.++.....++.++.......", | ||||
| "..++....++.++.....++.++.......", | ||||
| "..++....++.++.....++.++.......", | ||||
| "..+++..+++.+++++++++.++.......", | ||||
| "..+++++++..+++++++++.++.......", | ||||
| "..++.......++.....++.++.......", | ||||
| "..++.......++.....++.++.......", | ||||
| "..++.......++.....++.++.......", | ||||
| "..++.......++.....++.+++++++..", | ||||
| "..++.......++.....++.+++++++..", | ||||
| "..............................", | ||||
| ".............................."}; | ||||
| "++++++++++++++++++", | ||||
| "+................+", | ||||
| "+...++++++++.....+", | ||||
| "+...+++++++++....+", | ||||
| "+...++.....+++...+", | ||||
| "+...++......++...+", | ||||
| "+...++......++...+", | ||||
| "+...++.....+++...+", | ||||
| "+...+++++++++....+", | ||||
| "+...++++++++.....+", | ||||
| "+...++...........+", | ||||
| "+...++...........+", | ||||
| "+...++...........+", | ||||
| "+...++...........+", | ||||
| "+...++...........+", | ||||
| "+...++...........+", | ||||
| "+................+", | ||||
| "++++++++++++++++++"}; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user