1
0
mirror of https://github.com/rofafor/vdr-plugin-femon.git synced 2023-10-10 11:36:53 +00:00

Compare commits

..

7 Commits

Author SHA1 Message Date
Rolf Ahrenberg
ca954757db 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-24 04:20:00 +02:00
Rolf Ahrenberg
825755281f Added Estonian translations (Thanks to Arthur Konovalov). 2005-01-24 04:20:00 +02:00
Rolf Ahrenberg
ab3f270eed Updated for vdr-1.3.19. 2005-01-23 04:20:00 +02:00
Rolf Ahrenberg
995b2567e5 Some minor cosmetic fixes. 2005-01-23 04:20:00 +02:00
Rolf Ahrenberg
6f9961f499 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-15 04:20:00 +02:00
Rolf Ahrenberg
c454189adf Updated for vdr-1.3.17.
Fixed receiver related crash (Thanks to Marco Schluessler).
2004-11-28 04:20:00 +02:00
Rolf Ahrenberg
5339f71b33 Yet Another Minor Release.
Integrated the CA system names patch: "Setup / Show CA System".
2004-09-11 04:20:00 +03:00
34 changed files with 1718 additions and 703 deletions

47
HISTORY
View File

@@ -1,5 +1,6 @@
===================================
VDR Plugin 'femon' Revision History
-----------------------------------
===================================
2004-02-15: Version 0.0.1
@@ -58,7 +59,13 @@ VDR Plugin 'femon' Revision History
- Backported the "AC3 Stream Information" feature from version 0.1.3.
-------------------------
2004-09-11: Version 0.0.7
- Backported changes and fixes from version 0.1.6.
===================================
VDR Plugin 'femon' Revision History
===================================
2004-05-18: Version 0.1.0
@@ -94,3 +101,39 @@ VDR Plugin 'femon' Revision History
- 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.
2004-09-11: Version 0.1.6
- Yet Another Minor Release.
- Integrated the CA system names patch: "Setup / Show CA System".
2004-11-28: Version 0.1.7
- Updated for vdr-1.3.17.
- Fixed receiver related crash (Thanks to Marco Schluessler).
2005-01-15: Version 0.7.7
- Updated for vdr-1.3.18.
- Added DEBUG mode (make DEBUG=1 plugins).
- OSD height is now user configurable.
- Added audio channel selection into Yellow key.
2005-01-23: Version 0.7.9
- Some minor cosmetic fixes.
2005-01-23: Version 0.8.0
- Updated for vdr-1.3.19.
2005-01-24: Version 0.8.1
- Added Estonian translations (Thanks to Arthur Konovalov).
2005-02-24: Version 0.8.5
- Updated for vdr-1.3.21.
- Minor modification for DEBUG mode.
- Added preliminary support for themes and some GUI tweaks.
- Added horizontal offset setup option.

View File

@@ -16,7 +16,7 @@ VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).h | awk '{ pri
### The C++ compiler and options:
CXX ?= g++
CXXFLAGS ?= -O2 -Wall -Woverloaded-virtual
CXXFLAGS ?= -g -O2 -Wall -Woverloaded-virtual -fPIC
### The directory environment:
@@ -48,6 +48,10 @@ ifdef NTSC_SYSTEM
DEFINES += -DNTSC_SYSTEM
endif
ifdef DEBUG
DEFINES += -DDEBUG
endif
### The object files (add further files here):
OBJS = femon.o femonosd.o femonreceiver.o femoncfg.o femoni18n.o

22
README
View File

@@ -30,7 +30,7 @@ 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 +51,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 +62,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 +82,14 @@ Notes:
- The plugin supports only those DVB cards with _one_ frontend (do any cards
with multiple frontends even exist?), because I haven't yet figured howto do
it without patching the VDR core.
- Sometimes (read always) ttxtsubs plugin messes up the OSD - user should disable
ttxtsubs, but closing and reopening the femon plugin might help temporarily as
well. Btw., this same thing happens with OSDTeletext plugin too :)
- Disable the stream analyze to speed up heavy zapping sessions.
- The signal strength and signal-to-noise ratio values are comparable only
between the same brand/model frontends. Due to 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
between the same brand/model frontends. Due to the lack of proper frontend
specifications those values cannot be calculated into any real units.
- If the OSD isn't visible, you've configured the OSD height too big or too
small. Please, try to adjust the variable on the setup page before writing
any bug reports.
- There's a shrinked default OSD height for NTSC users: make NTSC_SYSTEM=1
- The device switching feature is still non-functional.
"Femon - A real womon who lives according to her natural feminine inclinations."

54
femon.c
View File

@@ -12,7 +12,7 @@
#include "femonosd.h"
#include "femon.h"
#if VDRVERSNUM && VDRVERSNUM < 10307
#if VDRVERSNUM && VDRVERSNUM < 10321
#error "You don't exist! Go away!"
#endif
@@ -53,6 +53,11 @@ bool cPluginFemon::Start(void)
return true;
}
void cPluginFemon::Stop(void)
{
// Stop the background activities.
}
void cPluginFemon::Housekeeping(void)
{
// Perform any cleanup or other regular tasks.
@@ -71,6 +76,10 @@ 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);
else if (!strcasecmp(Name, "UpdateInterval")) femonConfig.updateinterval = atoi(Value);
@@ -78,17 +87,22 @@ 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");
Setup();
}
@@ -97,16 +111,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 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();
@@ -116,8 +134,12 @@ void cMenuFemonSetup::Store(void)
{
SetupStore("HideMenu", femonConfig.hidemenu);
SetupStore("SyslogOutput", femonConfig.syslogoutput);
SetupStore("Position", femonConfig.position);
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);
SetupStore("UpdateInterval", femonConfig.updateinterval);

View File

@@ -11,7 +11,7 @@
#include <vdr/plugin.h>
static const char *VERSION = "0.1.5";
static const char *VERSION = "0.8.5";
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);

View File

@@ -14,6 +14,7 @@ cFemonConfig::cFemonConfig(void)
{
hidemenu = 0;
displaymode = 0;
theme = 0;
position = 1;
redlimit = 33;
greenlimit = 66;
@@ -21,4 +22,49 @@ cFemonConfig::cFemonConfig(void)
analyzestream = 1;
calcinterval = 20;
syslogoutput = 0;
showcasystem = 0;
#ifdef NTSC_SYSTEM
osdheight = 420;
#else
osdheight = 480;
#endif
osdoffset = 0;
}
const cFemonTheme femonTheme[eFemonThemeMaxNumber] =
{
{
// eFemonThemeClassic
0x7F000000, // clrBackground
0xFFFCFCFC, // clrTitleBackground
0xFF000000, // clrTitleText
0xFFFCC024, // clrActiveText
0xFFFCFCFC, // clrInactiveText
0xFFFC1414, // clrRed
0xFFFCC024, // clrYellow
0xFF24FC24, // clrGreen
},
{
// eFemonThemeElchi
0xC8000066, // clrBackground
0xC833AAEE, // clrTitleBackground
0xFF000000, // clrTitleText
0xFFCCBB22, // clrActiveText
0xFFFFFFFF, // clrInactiveText
0xFFFF0000, // clrRed
0xFFFFEE00, // clrYellow
0xFF33CC33, // clrGreen
},
{
// eFemonThemeDeepBlue
0xC80C0C0C, // clrBackground
0xC832557A, // clrTitleBackground
0xFF000000, // clrTitleText
0xFFCE7B00, // clrActiveText
0xFF9A9A9A, // clrInactiveText
0xFF992900, // clrRed
0xFFCE7B00, // clrYellow
0xFF336600, // clrGreen
},
};

View File

@@ -9,13 +9,20 @@
#ifndef __FEMONCFG_H
#define __FEMONCFG_H
enum dispModes {
modeBasic,
modeTransponder,
modeStream,
modeAC3,
modeMaxNumber
};
#ifdef DEBUG
#define Dprintf(x...) printf(x);
#else
#define Dprintf(x...) ;
#endif
enum eFemonModes
{
eFemonModeBasic,
eFemonModeTransponder,
eFemonModeStream,
eFemonModeAC3,
eFemonModeMaxNumber
};
struct cFemonConfig
{
@@ -23,6 +30,7 @@ public:
cFemonConfig(void);
int hidemenu;
int displaymode;
int theme;
int position;
int redlimit;
int greenlimit;
@@ -30,8 +38,33 @@ public:
int analyzestream;
int calcinterval;
int syslogoutput;
int showcasystem;
int osdheight;
int osdoffset;
};
extern cFemonConfig femonConfig;
enum eFemonThemes
{
eFemonThemeClassic,
eFemonThemeElchi,
eFemonThemeDeepBlue,
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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -17,6 +17,7 @@
#include <vdr/status.h>
#include <vdr/channels.h>
#include <vdr/transfer.h>
#include <vdr/tools.h>
class cFemonOsd : public cOsdObject, public cThread, public cStatus {
private:
@@ -27,7 +28,6 @@ private:
struct dvb_frontend_info m_FrontendInfo;
int m_Number;
int m_OldNumber;
int m_InputTime;
uint16_t m_SNR;
uint16_t m_Signal;
uint32_t m_BER;
@@ -35,15 +35,19 @@ private:
fe_status_t m_FrontendStatus;
int m_DisplayMode;
const cFont *m_Font;
cTimeMs m_InputTime;
cMutex* m_Mutex;
static cBitmap bmDevice0, bmDevice1, bmDevice2, bmDevice3, bmApid1, bmApid2, bmDD, bmDD20, bmDD51;
static cBitmap bmPAL, bmNTSC, bmAspectRatio_1_1, bmAspectRatio_16_9, bmAspectRatio_2_21_1, bmAspectRatio_4_3;
static cBitmap bmStereo, bmMonoLeft, bmMonoRight, bmDD, bmDD20, bmDD51;
static cBitmap bmZero, bmDevice, bmPAL, bmNTSC, bmOne, bmTwo, bmThree, bmFour, bmFive;
static cBitmap bmAspectRatio_1_1, bmAspectRatio_16_9, bmAspectRatio_2_21_1, bmAspectRatio_4_3;
static cBitmap bmLock, bmSignal, bmCarrier, bmViterbi, bmSync;
void DrawStatusWindow(void);
void DrawInfoWindow(void);
protected:
virtual void Action(void);
virtual void ChannelSwitch(const cDevice * device, int channelNumber);
virtual void SetAudioTrack(int Index, const char * const *Tracks);
public:
cFemonOsd(void);

View File

@@ -7,6 +7,7 @@
*/
#include <unistd.h>
#include <vdr/tools.h>
#include "femoncfg.h"
#include "femonreceiver.h"
@@ -16,14 +17,14 @@
#define PAYLOAD 0x10
#define PTS_DTS_FLAGS 0xC0
cFemonReceiver::cFemonReceiver(int Ca, int Vpid, int Apid, int Dpid)
:cReceiver(Ca, -1, 3, Vpid, Apid, Dpid), cThread("femon receiver")
cFemonReceiver::cFemonReceiver(int Ca, int Vpid, int Apid[], int Dpid[])
:cReceiver(Ca, -1, Vpid, Apid, Dpid, NULL), cThread("femon receiver")
{
//printf("cFemonReceiver::cFemonReceiver()\n");
Dprintf("%s()\n", __PRETTY_FUNCTION__);
m_Active = false;
m_VideoPid = Vpid;
m_AudioPid = Apid;
m_AC3Pid = Dpid;
m_AudioPid = Apid[0];
m_AC3Pid = Dpid[0];
m_VideoValid = false;
m_VideoPacketCount = 0;
m_VideoHorizontalSize = 0;
@@ -57,7 +58,8 @@ 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);
@@ -67,7 +69,6 @@ cFemonReceiver::~cFemonReceiver(void)
/* The following function originates from libdvbmpeg: */
void cFemonReceiver::GetVideoInfo(uint8_t *mbuf, int count)
{
//printf("cFemonReceiver::GetVideoInfo()\n");
uint8_t *headr;
int found = 0;
int c = 0;
@@ -160,7 +161,6 @@ static unsigned int samplerates[4] =
/* The following function originates from libdvbmpeg: */
void cFemonReceiver::GetAudioInfo(uint8_t *mbuf, int count)
{
//printf("cFemonReceiver::GetAudioInfo()\n");
uint8_t *headr;
int found = 0;
int c = 0;
@@ -252,13 +252,19 @@ void cFemonReceiver::GetAC3Info(uint8_t *mbuf, int count)
void cFemonReceiver::Activate(bool On)
{
//printf("cFemonReceiver::Activate()\n");
Start();
Dprintf("%s(%d)\n", __PRETTY_FUNCTION__, On);
if (On) {
if (!m_Active)
Start();
}
else if (m_Active) {
m_Active = false;
Cancel(0);
}
}
void cFemonReceiver::Receive(uchar *Data, int Length)
{
//printf("cFemonReceiver::Receive()\n");
// TS packet length: TS_SIZE
if (Length == TS_SIZE) {
int pid = ((Data[1] & 0x1f) << 8) | (Data[2]);
@@ -301,9 +307,11 @@ void cFemonReceiver::Receive(uchar *Data, int Length)
void cFemonReceiver::Action(void)
{
//printf("cFemonReceiver::Action()\n");
Dprintf("%s()\n", __PRETTY_FUNCTION__);
cTimeMs t;
m_Active = true;
while (m_Active) {
t.Set(0);
// TS packet 188 bytes - 4 byte header; MPEG standard defines 1Mbit = 1000000bit
m_VideoBitrate = (8.0 * 184.0 * m_VideoPacketCount) / (femonConfig.calcinterval * 100000.0);
m_VideoPacketCount = 0;
@@ -311,6 +319,6 @@ void cFemonReceiver::Action(void)
m_AudioPacketCount = 0;
m_AC3Bitrate = (8.0 * 184.0 * m_AC3PacketCount) / (femonConfig.calcinterval * 100.0);
m_AC3PacketCount = 0;
usleep(100000L * femonConfig.calcinterval);
cCondWait::SleepMs(100 * femonConfig.calcinterval - t.Elapsed());
}
}

View File

@@ -95,7 +95,7 @@ protected:
virtual void Action(void);
public:
cFemonReceiver(int Ca, int Vpid, int Apid, int Dpid);
cFemonReceiver(int Ca, int Vpid, int Apid[], int Dpid[]);
virtual ~cFemonReceiver();
bool VideoValid(void) { return m_VideoValid; }; // boolean

View File

@@ -1,52 +0,0 @@
--- 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());

View File

@@ -1,23 +0,0 @@
/* XPM */
static char * apid1_xpm[] = {
"32 18 2 1",
". c #FFFFFF",
"+ c #000000",
"++++++++++++++++++++++++++++++++",
"+..............................+",
"+..............++.......++.....+",
"+............++++....+++++.....+",
"+..........+++.++....+++++.....+",
"+........+++...++.......++.....+",
"+...+++++++....++.......++.....+",
"+...++++++.....++.......++.....+",
"+...++..++.....++.......++.....+",
"+...++..++.....++.......++.....+",
"+...++++++.....++.......++.....+",
"+...+++++++....++.......++.....+",
"+........+++...++.......++.....+",
"+..........+++.++.......++.....+",
"+............++++.......++.....+",
"+.............+++.......++.....+",
"+..............................+",
"++++++++++++++++++++++++++++++++"};

View File

@@ -1,23 +0,0 @@
/* XPM */
static char * apid2_xpm[] = {
"32 18 2 1",
". c #FFFFFF",
"+ c #000000",
"++++++++++++++++++++++++++++++++",
"+..............................+",
"+..............++.....++++.....+",
"+............++++...+++++++....+",
"+..........+++.++...++....++...+",
"+........+++...++.........++...+",
"+...+++++++....++.........++...+",
"+...++++++.....++........+++...+",
"+...++..++.....++.......+++....+",
"+...++..++.....++......+++.....+",
"+...++++++.....++.....+++......+",
"+...+++++++....++....+++.......+",
"+........+++...++...+++........+",
"+..........+++.++...++.........+",
"+............++++...++++++++...+",
"+.............+++...++++++++...+",
"+..............................+",
"++++++++++++++++++++++++++++++++"};

24
symbols/carrier.xpm Normal file
View File

@@ -0,0 +1,24 @@
/* XPM */
static char * carrier_xpm[] = {
"96 19 2 1",
". c #FFFFFF",
"+ c #000000",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
"++............................................................................................++",
"++............................................................................................++",
"++...........+++++.......+++++.....++++++++....++++++++....+++...++++++++...++++++++..........++",
"++..........+++++++......+++++.....+++++++++...+++++++++...+++...++++++++...+++++++++.........++",
"++..........+++.++++.....+++++.....+++...+++...+++...+++...+++...+++........+++...+++.........++",
"++.........+++...++.....+++.+++....+++...+++...+++...+++...+++...+++........+++...+++.........++",
"++.........+++..........+++.+++....++++++++....++++++++....+++...+++++++....++++++++..........++",
"++.........+++..........+++.+++....+++++++.....+++++++.....+++...+++++++....+++++++...........++",
"++.........+++.........+++...+++...+++..+++....+++..+++....+++...+++........+++..+++..........++",
"++.........+++...++....+++++++++...+++..+++....+++..+++....+++...+++........+++..+++..........++",
"++..........+++.++++...+++++++++...+++...+++...+++...+++...+++...+++........+++...+++.........++",
"++..........+++++++...+++.....+++..+++...+++...+++...+++...+++...++++++++...+++...+++.........++",
"++...........+++++....+++.....+++..+++....+++..+++....+++..+++...++++++++...+++....+++........++",
"++............................................................................................++",
"++............................................................................................++",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"};

View File

@@ -1,23 +0,0 @@
/* XPM */
static char * dev0_xpm[] = {
"29 18 2 1",
". c #FFFFFF",
"+ c #000000",
"+++++++++++++++++++++++++++++",
"+...........................+",
"+.......+..+.......++++.....+",
"+.......+..+......++++++....+",
"+.......+..+......++..++....+",
"+....+++++++++...++....++...+",
"+....+++++++++...++....++...+",
"+......+..+......++....++...+",
"+......+..+......++....++...+",
"+......+..+......++....++...+",
"+......+..+......++....++...+",
"+...+++++++++....++....++...+",
"+...+++++++++....++....++...+",
"+.....+..+........++..++....+",
"+.....+..+........++++++....+",
"+.....+..+.........++++.....+",
"+...........................+",
"+++++++++++++++++++++++++++++"};

View File

@@ -1,23 +0,0 @@
/* XPM */
static char * dev1_xpm[] = {
"29 18 2 1",
". c #FFFFFF",
"+ c #000000",
"+++++++++++++++++++++++++++++",
"+...........................+",
"+.......+..+.........++.....+",
"+.......+..+......+++++.....+",
"+.......+..+......+++++.....+",
"+....+++++++++.......++.....+",
"+....+++++++++.......++.....+",
"+......+..+..........++.....+",
"+......+..+..........++.....+",
"+......+..+..........++.....+",
"+......+..+..........++.....+",
"+...+++++++++........++.....+",
"+...+++++++++........++.....+",
"+.....+..+...........++.....+",
"+.....+..+...........++.....+",
"+.....+..+...........++.....+",
"+...........................+",
"+++++++++++++++++++++++++++++"};

View File

@@ -1,23 +0,0 @@
/* XPM */
static char * dev2_xpm[] = {
"29 18 2 1",
". c #FFFFFF",
"+ c #000000",
"+++++++++++++++++++++++++++++",
"+...........................+",
"+.......+..+.......++++.....+",
"+.......+..+.....+++++++....+",
"+.......+..+.....++....++...+",
"+....+++++++++.........++...+",
"+....+++++++++.........++...+",
"+......+..+...........+++...+",
"+......+..+..........+++....+",
"+......+..+.........+++.....+",
"+......+..+........+++......+",
"+...+++++++++.....+++.......+",
"+...+++++++++....+++........+",
"+.....+..+.......++.........+",
"+.....+..+.......++++++++...+",
"+.....+..+.......++++++++...+",
"+...........................+",
"+++++++++++++++++++++++++++++"};

View File

@@ -1,23 +0,0 @@
/* XPM */
static char * dev3_xpm[] = {
"29 18 2 1",
". c #FFFFFF",
"+ c #000000",
"+++++++++++++++++++++++++++++",
"+...........................+",
"+.......+..+.......+++++....+",
"+.......+..+......+++++++...+",
"+.......+..+.....++....++...+",
"+....+++++++++...++....++...+",
"+....+++++++++.........++...+",
"+......+..+...........++....+",
"+......+..+.........+++.....+",
"+......+..+.........++++....+",
"+......+..+...........+++...+",
"+...+++++++++..........++...+",
"+...+++++++++....++....++...+",
"+.....+..+.......++...+++...+",
"+.....+..+........++++++....+",
"+.....+..+.........++++.....+",
"+...........................+",
"+++++++++++++++++++++++++++++"};

23
symbols/device.xpm Normal file
View File

@@ -0,0 +1,23 @@
/* XPM */
static char * device_xpm[] = {
"14 18 2 1",
". c #FFFFFF",
"+ c #000000",
"++++++++++++++",
"+.............",
"+.......+..+..",
"+.......+..+..",
"+.......+..+..",
"+....+++++++++",
"+....+++++++++",
"+......+..+...",
"+......+..+...",
"+......+..+...",
"+......+..+...",
"+...+++++++++.",
"+...+++++++++.",
"+.....+..+....",
"+.....+..+....",
"+.....+..+....",
"+.............",
"++++++++++++++"};

23
symbols/five.xpm Normal file
View File

@@ -0,0 +1,23 @@
/* XPM */
static char * five_xpm[] = {
"15 18 2 1",
". c #FFFFFF",
"+ c #000000",
"+++++++++++++++",
"..............+",
"...+++++++....+",
"...+++++++....+",
"...++.........+",
"...++.........+",
"...++.........+",
"...++++++.....+",
"...+++++++....+",
"...++...+++...+",
".........++...+",
".........++...+",
"...++....++...+",
"...++...+++...+",
"...+++++++....+",
"....+++++.....+",
"..............+",
"+++++++++++++++"};

23
symbols/four.xpm Normal file
View File

@@ -0,0 +1,23 @@
/* XPM */
static char * four_xpm[] = {
"15 18 2 1",
". c #FFFFFF",
"+ c #000000",
"+++++++++++++++",
"..............+",
".........++...+",
"........+++...+",
".......++++...+",
"......++.++...+",
".....++..++...+",
".....++..++...+",
"....++...++...+",
"...++....++...+",
"...+++++++++..+",
"...+++++++++..+",
".........++...+",
".........++...+",
".........++...+",
".........++...+",
"..............+",
"+++++++++++++++"};

24
symbols/lock.xpm Normal file
View File

@@ -0,0 +1,24 @@
/* XPM */
static char * lock_xpm[] = {
"96 19 2 1",
". c #FFFFFF",
"+ c #000000",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
"++............................................................................................++",
"++............................................................................................++",
"++........................+++........+++++........+++++.....+++....+++........................++",
"++........................+++.......++++++++.....+++++++....+++...+++.........................++",
"++........................+++.......+++..+++.....+++.++++...+++..+++..........................++",
"++........................+++......+++....+++...+++...++....+++.+++...........................++",
"++........................+++......+++....+++...+++.........+++++++...........................++",
"++........................+++......+++....+++...+++.........++++.+++..........................++",
"++........................+++......+++....+++...+++.........+++..+++..........................++",
"++........................+++......+++....+++...+++...++....+++...+++.........................++",
"++........................+++.......+++..+++.....+++.++++...+++...+++.........................++",
"++........................+++++++...++++++++.....+++++++....+++....+++........................++",
"++........................+++++++.....++++........+++++.....+++.....+++.......................++",
"++............................................................................................++",
"++............................................................................................++",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"};

23
symbols/monoleft.xpm Normal file
View File

@@ -0,0 +1,23 @@
/* XPM */
static char * monoleft_xpm[] = {
"17 18 2 1",
". c #FFFFFF",
"+ c #000000",
"+++++++++++++++++",
"+................",
"+...++...........",
"+...++++.........",
"+...++++++.......",
"+...++++++++.....",
"+...+++++++++++++",
"+...+++++++++++++",
"+...+++++++++..++",
"+...+++++++++..++",
"+...+++++++++++++",
"+...+++++++++++++",
"+...++++++++.....",
"+...++++++.......",
"+...++++.........",
"+...+++..........",
"+................",
"+++++++++++++++++"};

23
symbols/monoright.xpm Normal file
View File

@@ -0,0 +1,23 @@
/* XPM */
static char * monoright_xpm[] = {
"17 18 2 1",
". c #FFFFFF",
"+ c #000000",
"+++++++++++++++++",
"+................",
"+..............++",
"+............++++",
"+..........++++++",
"+........++++++++",
"+...+++++++++++++",
"+...+++++++++++++",
"+...++..+++++++++",
"+...++..+++++++++",
"+...+++++++++++++",
"+...+++++++++++++",
"+........++++++++",
"+..........++++++",
"+............++++",
"+.............+++",
"+................",
"+++++++++++++++++"};

23
symbols/one.xpm Normal file
View File

@@ -0,0 +1,23 @@
/* XPM */
static char * one_xpm[] = {
"15 18 2 1",
". c #FFFFFF",
"+ c #000000",
"+++++++++++++++",
"..............+",
".......++.....+",
"....+++++.....+",
"....+++++.....+",
".......++.....+",
".......++.....+",
".......++.....+",
".......++.....+",
".......++.....+",
".......++.....+",
".......++.....+",
".......++.....+",
".......++.....+",
".......++.....+",
".......++.....+",
"..............+",
"+++++++++++++++"};

24
symbols/signal.xpm Normal file
View File

@@ -0,0 +1,24 @@
/* XPM */
static char * signal_xpm[] = {
"96 19 2 1",
". c #FFFFFF",
"+ c #000000",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
"++............................................................................................++",
"++............................................................................................++",
"++.................+++++....+++......+++++.....+++....+++.....+++++.....+++...................++",
"++...............++++++++...+++....++++++++....++++...+++.....+++++.....+++...................++",
"++...............+++..+++...+++....+++..++++...+++++..+++.....+++++.....+++...................++",
"++...............+++........+++...+++....++....+++++..+++....+++.+++....+++...................++",
"++...............++++++.....+++...+++..........++++++.+++....+++.+++....+++...................++",
"++................++++++....+++...+++..+++++...+++.++.+++....+++.+++....+++...................++",
"++..................+++++...+++...+++..+++++...+++.++++++...+++...+++...+++...................++",
"++...............+++..+++...+++...+++....+++...+++..+++++...+++++++++...+++...................++",
"++...............+++..+++...+++....+++...+++...+++..+++++...+++++++++...+++...................++",
"++................++++++....+++....+++++++++...+++...++++..+++.....+++..+++++++...............++",
"++.................++++.....+++......+++++.....+++....+++..+++.....+++..+++++++...............++",
"++............................................................................................++",
"++............................................................................................++",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"};

23
symbols/stereo.xpm Normal file
View File

@@ -0,0 +1,23 @@
/* XPM */
static char * stereo_xpm[] = {
"17 18 2 1",
". c #FFFFFF",
"+ c #000000",
"+++++++++++++++++",
"+................",
"+..............++",
"+............++++",
"+..........+++.++",
"+........+++...++",
"+...+++++++....++",
"+...++++++.....++",
"+...++..++.....++",
"+...++..++.....++",
"+...++++++.....++",
"+...+++++++....++",
"+........+++...++",
"+..........+++.++",
"+............++++",
"+.............+++",
"+................",
"+++++++++++++++++"};

24
symbols/sync.xpm Normal file
View File

@@ -0,0 +1,24 @@
/* XPM */
static char * sync_xpm[] = {
"96 19 2 1",
". c #FFFFFF",
"+ c #000000",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
"++............................................................................................++",
"++............................................................................................++",
"++.........................+++++...+++.....+++..+++....+++.....+++++..........................++",
"++.......................++++++++...+++...+++...++++...+++....+++++++.........................++",
"++.......................+++..+++....+++.+++....+++++..+++....+++.++++........................++",
"++.......................+++.........+++.+++....+++++..+++...+++...++.........................++",
"++.......................++++++.......+++++.....++++++.+++...+++..............................++",
"++........................++++++......+++++.....+++.++.+++...+++..............................++",
"++..........................+++++......+++......+++.++++++...+++..............................++",
"++.......................+++..+++......+++......+++..+++++...+++...++.........................++",
"++.......................+++..+++......+++......+++..+++++....+++.++++........................++",
"++........................++++++.......+++......+++...++++....+++++++.........................++",
"++.........................++++........+++......+++....+++.....+++++..........................++",
"++............................................................................................++",
"++............................................................................................++",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"};

23
symbols/three.xpm Normal file
View File

@@ -0,0 +1,23 @@
/* XPM */
static char * three_xpm[] = {
"15 18 2 1",
". c #FFFFFF",
"+ c #000000",
"+++++++++++++++",
"..............+",
".....+++++....+",
"....+++++++...+",
"...++....++...+",
"...++....++...+",
".........++...+",
"........++....+",
"......+++.....+",
"......++++....+",
"........+++...+",
".........++...+",
"...++....++...+",
"...++...+++...+",
"....++++++....+",
".....++++.....+",
"..............+",
"+++++++++++++++"};

23
symbols/two.xpm Normal file
View File

@@ -0,0 +1,23 @@
/* XPM */
static char * two_xpm[] = {
"15 18 2 1",
". c #FFFFFF",
"+ c #000000",
"+++++++++++++++",
"..............+",
".....++++.....+",
"...+++++++....+",
"...++....++...+",
".........++...+",
".........++...+",
"........+++...+",
".......+++....+",
"......+++.....+",
".....+++......+",
"....+++.......+",
"...+++........+",
"...++.........+",
"...++++++++...+",
"...++++++++...+",
"..............+",
"+++++++++++++++"};

24
symbols/viterbi.xpm Normal file
View File

@@ -0,0 +1,24 @@
/* XPM */
static char * viterbi_xpm[] = {
"96 19 2 1",
". c #FFFFFF",
"+ c #000000",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
"++............................................................................................++",
"++............................................................................................++",
"++............+++.....+++..+++...+++++++++..++++++++...++++++++....++++++++....+++............++",
"++.............++.....++...+++...+++++++++..++++++++...+++++++++...+++++++++...+++............++",
"++.............+++...+++...+++......+++.....+++........+++...+++...+++...+++...+++............++",
"++.............+++...+++...+++......+++.....+++........+++...+++...+++...+++...+++............++",
"++..............++...++....+++......+++.....+++++++....++++++++....++++++++....+++............++",
"++..............+++.+++....+++......+++.....+++++++....+++++++.....++++++++....+++............++",
"++..............+++.+++....+++......+++.....+++........+++..+++....+++...+++...+++............++",
"++...............++.++.....+++......+++.....+++........+++..+++....+++...+++...+++............++",
"++...............+++++.....+++......+++.....+++........+++...+++...+++...+++...+++............++",
"++...............+++++.....+++......+++.....++++++++...+++...+++...+++++++++...+++............++",
"++................+++......+++......+++.....++++++++...+++....+++..++++++++....+++............++",
"++............................................................................................++",
"++............................................................................................++",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"};

23
symbols/zero.xpm Normal file
View File

@@ -0,0 +1,23 @@
/* XPM */
static char * zero_xpm[] = {
"15 18 2 1",
". c #FFFFFF",
"+ c #000000",
"+++++++++++++++",
"..............+",
".....++++.....+",
"....++++++....+",
"....++..++....+",
"...++....++...+",
"...++....++...+",
"...++....++...+",
"...++....++...+",
"...++....++...+",
"...++....++...+",
"...++....++...+",
"...++....++...+",
"....++..++....+",
"....++++++....+",
".....++++.....+",
"..............+",
"+++++++++++++++"};