mirror of
https://github.com/rofafor/vdr-plugin-femon.git
synced 2023-10-10 11:36:53 +00:00
Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
713f9e652a | ||
|
|
7c948cde72 | ||
|
|
8e57eec535 | ||
|
|
0f111eb660 | ||
|
|
6670f85a20 | ||
|
|
9814970182 | ||
|
|
5bda0fa833 | ||
|
|
ca954757db | ||
|
|
825755281f | ||
|
|
ab3f270eed | ||
|
|
995b2567e5 | ||
|
|
6f9961f499 |
60
HISTORY
60
HISTORY
@@ -111,3 +111,63 @@ VDR Plugin 'femon' Revision History
|
||||
|
||||
- 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).
|
||||
|
||||
2005-04-02: Version 0.8.8
|
||||
|
||||
- Cleaned up finnish translations (Thanks to Ville Skytt<74>).
|
||||
|
||||
2005-04-04: Version 0.8.9
|
||||
|
||||
- Updated Estonian translations (Thanks to Arthur Konovalov).
|
||||
- Added the missing german translations (Thanks to #vdr-portal).
|
||||
|
||||
2005-05-20: Version 0.9.0
|
||||
|
||||
- Renamed compiling switches ('DEBUG' to 'FEMON_DEBUG' and 'NTSC_SYSTEM' to 'FEMON_NTSC').
|
||||
- Enabled preliminary support for the device switching.
|
||||
|
||||
2005-07-23: Version 0.9.1
|
||||
|
||||
- Fixed AC3-info flickering (Thanks to Pasi Juppo for reporting this one).
|
||||
- Added "Analog" type CA system.
|
||||
- Plugin is now stripped by default.
|
||||
|
||||
2005-08-15: Version 0.9.2
|
||||
|
||||
- Threads updated for vdr-1.3.29.
|
||||
|
||||
20
Makefile
20
Makefile
@@ -16,7 +16,11 @@ VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).h | awk '{ pri
|
||||
### The C++ compiler and options:
|
||||
|
||||
CXX ?= g++
|
||||
CXXFLAGS ?= -g -O2 -Wall -Woverloaded-virtual -fPIC
|
||||
ifdef FEMON_DEBUG
|
||||
CXXFLAGS ?= -g -Wall -Woverloaded-virtual -fPIC
|
||||
else
|
||||
CXXFLAGS ?= -O2 -Wall -Woverloaded-virtual -fPIC
|
||||
endif
|
||||
|
||||
### The directory environment:
|
||||
|
||||
@@ -44,10 +48,17 @@ INCLUDES += -I$(VDRDIR)/include -I$(DVBDIR)/include
|
||||
|
||||
DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
|
||||
|
||||
ifdef NTSC_SYSTEM
|
||||
DEFINES += -DNTSC_SYSTEM
|
||||
ifdef FEMON_NTSC
|
||||
DEFINES += -DFEMON_NTSC
|
||||
endif
|
||||
|
||||
ifdef FEMON_DEBUG
|
||||
DEFINES += -DFEMON_DEBUG
|
||||
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
|
||||
@@ -73,6 +84,9 @@ all: libvdr-$(PLUGIN).so
|
||||
libvdr-$(PLUGIN).so: $(OBJS)
|
||||
$(CXX) $(CXXFLAGS) -shared $(OBJS) -o $@
|
||||
@cp $@ $(LIBDIR)/$@.$(VDRVERSION)
|
||||
ifndef FEMON_DEBUG
|
||||
strip $(LIBDIR)/$@.$(VDRVERSION)
|
||||
endif
|
||||
|
||||
dist: clean
|
||||
@-rm -rf $(TMPDIR)/$(ARCHIVE)
|
||||
|
||||
30
README
30
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,16 @@ 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
|
||||
- The device switching feature is still non-functional.
|
||||
|
||||
- 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. NTSC users should use a shrinked default OSD height by
|
||||
compiling the plugin with: make FEMON_NTSC=1
|
||||
|
||||
"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 < 10317
|
||||
#if VDRVERSNUM && VDRVERSNUM < 10329
|
||||
#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.7";
|
||||
static const char *VERSION = "0.9.2";
|
||||
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 FEMON_NTSC
|
||||
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 FEMON_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
|
||||
|
||||
495
femoni18n.c
495
femoni18n.c
File diff suppressed because it is too large
Load Diff
849
femonosd.c
849
femonosd.c
File diff suppressed because it is too large
Load Diff
11
femonosd.h
11
femonosd.h
@@ -17,17 +17,16 @@
|
||||
#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:
|
||||
bool m_Active;
|
||||
cOsd *m_Osd;
|
||||
cFemonReceiver *m_Receiver;
|
||||
int m_Frontend;
|
||||
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 +34,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,13 @@
|
||||
#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");
|
||||
m_Active = false;
|
||||
Dprintf("%s()\n", __PRETTY_FUNCTION__);
|
||||
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,22 +57,19 @@ 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);
|
||||
}
|
||||
if (Running())
|
||||
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;
|
||||
m_VideoValid = false;
|
||||
//m_VideoValid = false;
|
||||
while ((found < 4) && ((c + 4) < count)) {
|
||||
uint8_t *b;
|
||||
b = mbuf + c;
|
||||
@@ -161,12 +158,11 @@ 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;
|
||||
int tmp = 0;
|
||||
m_AudioValid = false;
|
||||
//m_AudioValid = false;
|
||||
while (!found && (c < count)) {
|
||||
uint8_t *b = mbuf + c;
|
||||
if ((b[0] == 0xff) && ((b[1] & 0xf8) == 0xf8))
|
||||
@@ -215,7 +211,7 @@ void cFemonReceiver::GetAC3Info(uint8_t *mbuf, int count)
|
||||
int found = 0;
|
||||
int c = 0;
|
||||
uint8_t frame;
|
||||
m_AC3Valid = false;
|
||||
//m_AC3Valid = false;
|
||||
while (!found && (c < count)) {
|
||||
uint8_t *b = mbuf + c;
|
||||
if ((b[0] == 0x0b) && (b[1] == 0x77))
|
||||
@@ -253,20 +249,15 @@ void cFemonReceiver::GetAC3Info(uint8_t *mbuf, int count)
|
||||
|
||||
void cFemonReceiver::Activate(bool On)
|
||||
{
|
||||
//printf("cFemonReceiver::Activate()\n");
|
||||
if (On) {
|
||||
if (!m_Active)
|
||||
Start();
|
||||
}
|
||||
else if (m_Active) {
|
||||
m_Active = false;
|
||||
Cancel(0);
|
||||
}
|
||||
Dprintf("%s(%d)\n", __PRETTY_FUNCTION__, On);
|
||||
if (On)
|
||||
Start();
|
||||
else
|
||||
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]);
|
||||
@@ -309,11 +300,10 @@ void cFemonReceiver::Receive(uchar *Data, int Length)
|
||||
|
||||
void cFemonReceiver::Action(void)
|
||||
{
|
||||
int t0;
|
||||
//printf("cFemonReceiver::Action()\n");
|
||||
m_Active = true;
|
||||
while (m_Active) {
|
||||
t0 = time_ms();
|
||||
Dprintf("%s()\n", __PRETTY_FUNCTION__);
|
||||
cTimeMs t;
|
||||
while (Running()) {
|
||||
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;
|
||||
@@ -321,6 +311,6 @@ void cFemonReceiver::Action(void)
|
||||
m_AudioPacketCount = 0;
|
||||
m_AC3Bitrate = (8.0 * 184.0 * m_AC3PacketCount) / (femonConfig.calcinterval * 100.0);
|
||||
m_AC3PacketCount = 0;
|
||||
cCondWait::SleepMs(100 * femonConfig.calcinterval - (time_ms() - t0));
|
||||
cCondWait::SleepMs(100 * femonConfig.calcinterval - t.Elapsed());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,7 +53,6 @@ enum eDolbySurroundMode {
|
||||
|
||||
class cFemonReceiver : public cReceiver, public cThread {
|
||||
private:
|
||||
bool m_Active;
|
||||
int m_VideoPid;
|
||||
int m_AudioPid;
|
||||
int m_AC3Pid;
|
||||
@@ -95,7 +94,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