mirror of
https://github.com/rofafor/vdr-plugin-femon.git
synced 2023-10-10 11:36:53 +00:00
Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
713f9e652a | ||
|
|
7c948cde72 | ||
|
|
8e57eec535 | ||
|
|
0f111eb660 | ||
|
|
6670f85a20 | ||
|
|
9814970182 |
30
HISTORY
30
HISTORY
@@ -141,3 +141,33 @@ VDR Plugin 'femon' Revision History
|
||||
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,14 +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 DEBUG
|
||||
DEFINES += -DDEBUG
|
||||
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
|
||||
@@ -77,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)
|
||||
|
||||
18
README
18
README
@@ -21,11 +21,9 @@ 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:
|
||||
|
||||
@@ -65,7 +63,7 @@ Ok - Switch between display modes: basic, transponder, stream, AC-3
|
||||
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)
|
||||
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.
|
||||
|
||||
- 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.
|
||||
|
||||
- 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.
|
||||
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."
|
||||
|
||||
3
femon.c
3
femon.c
@@ -12,7 +12,7 @@
|
||||
#include "femonosd.h"
|
||||
#include "femon.h"
|
||||
|
||||
#if VDRVERSNUM && VDRVERSNUM < 10321
|
||||
#if VDRVERSNUM && VDRVERSNUM < 10329
|
||||
#error "You don't exist! Go away!"
|
||||
#endif
|
||||
|
||||
@@ -102,6 +102,7 @@ cMenuFemonSetup::cMenuFemonSetup(void)
|
||||
themes[eFemonThemeClassic] = tr("Classic");
|
||||
themes[eFemonThemeElchi] = tr("Elchi");
|
||||
themes[eFemonThemeDeepBlue] = tr("DeepBlue");
|
||||
themes[eFemonThemeMoronimo] = tr("Moronimo");
|
||||
|
||||
Setup();
|
||||
}
|
||||
|
||||
2
femon.h
2
femon.h
@@ -11,7 +11,7 @@
|
||||
|
||||
#include <vdr/plugin.h>
|
||||
|
||||
static const char *VERSION = "0.8.6";
|
||||
static const char *VERSION = "0.9.2";
|
||||
static const char *DESCRIPTION = "DVB Signal Information Monitor (OSD)";
|
||||
static const char *MAINMENUENTRY = "Signal Information";
|
||||
|
||||
|
||||
13
femoncfg.c
13
femoncfg.c
@@ -23,7 +23,7 @@ cFemonConfig::cFemonConfig(void)
|
||||
calcinterval = 20;
|
||||
syslogoutput = 0;
|
||||
showcasystem = 0;
|
||||
#ifdef NTSC_SYSTEM
|
||||
#ifdef FEMON_NTSC
|
||||
osdheight = 420;
|
||||
#else
|
||||
osdheight = 480;
|
||||
@@ -66,5 +66,16 @@ const cFemonTheme femonTheme[eFemonThemeMaxNumber] =
|
||||
0xFFCE7B00, // clrYellow
|
||||
0xFF336600, // clrGreen
|
||||
},
|
||||
{
|
||||
// eFemonThemeMoronimo
|
||||
0xDF294A6B, // clrBackground
|
||||
0xDF3E5578, // clrTitleBackground
|
||||
0xFF9BBAD7, // clrTitleText
|
||||
0xFFCE7B00, // clrActiveText
|
||||
0xFF9A9A9A, // clrInactiveText
|
||||
0xFF992900, // clrRed
|
||||
0xFFCE7B00, // clrYellow
|
||||
0xFF336600, // clrGreen
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#ifndef __FEMONCFG_H
|
||||
#define __FEMONCFG_H
|
||||
|
||||
#ifdef DEBUG
|
||||
#ifdef FEMON_DEBUG
|
||||
#define Dprintf(x...) printf(x);
|
||||
#else
|
||||
#define Dprintf(x...) ;
|
||||
@@ -50,6 +50,7 @@ enum eFemonThemes
|
||||
eFemonThemeClassic,
|
||||
eFemonThemeElchi,
|
||||
eFemonThemeDeepBlue,
|
||||
eFemonThemeMoronimo,
|
||||
eFemonThemeMaxNumber
|
||||
};
|
||||
|
||||
|
||||
152
femoni18n.c
152
femoni18n.c
@@ -17,7 +17,7 @@ const tI18nPhrase Phrases[] = {
|
||||
"", // Portugu<67>s
|
||||
"", // Fran<61>ais
|
||||
"", // Norsk
|
||||
"DVB signaalimittari (OSD)", // suomi
|
||||
"Signaalimittari (OSD)", // suomi
|
||||
"", // Polski
|
||||
"", // Espa<70>ol
|
||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
|
||||
@@ -94,7 +94,7 @@ const tI18nPhrase Phrases[] = {
|
||||
"", // Dansk
|
||||
},
|
||||
{ "Horizontal offset", // English
|
||||
"", // Deutsch
|
||||
"Horizontaler Offset", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"", // Nederlands
|
||||
@@ -111,7 +111,7 @@ const tI18nPhrase Phrases[] = {
|
||||
"", // Catal<61>
|
||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||
"", // Hrvatski (Croatian)
|
||||
"", // Eesti
|
||||
"Horisontaalne nihe", // Eesti
|
||||
"", // Dansk
|
||||
},
|
||||
{ "Default display mode", // English
|
||||
@@ -122,7 +122,7 @@ const tI18nPhrase Phrases[] = {
|
||||
"", // Portugu<67>s
|
||||
"", // Fran<61>ais
|
||||
"", // Norsk
|
||||
"Oletus n<EFBFBD>ytt<EFBFBD>moodi", // suomi
|
||||
"Oletusn<EFBFBD>ytt<EFBFBD>tila", // suomi
|
||||
"", // Polski
|
||||
"", // Espa<70>ol
|
||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
|
||||
@@ -174,8 +174,8 @@ const tI18nPhrase Phrases[] = {
|
||||
"", // Catal<61>
|
||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||
"", // Hrvatski (Croatian)
|
||||
"", // Eesti
|
||||
"transponder", // Dansk
|
||||
"transponder", // Eesti
|
||||
"", // Dansk
|
||||
},
|
||||
{ "stream", // English
|
||||
"Stream", // Deutsch
|
||||
@@ -195,7 +195,7 @@ const tI18nPhrase Phrases[] = {
|
||||
"", // Catal<61>
|
||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||
"", // Hrvatski (Croatian)
|
||||
"striim", // Eesti
|
||||
"voog", // Eesti
|
||||
"", // Dansk
|
||||
},
|
||||
{ "Theme", // English
|
||||
@@ -242,45 +242,66 @@ const tI18nPhrase Phrases[] = {
|
||||
},
|
||||
{ "Elchi", // English
|
||||
"Elchi", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Portugu<67>s
|
||||
"", // Fran<61>ais
|
||||
"", // Norsk
|
||||
"Elchi", // Slovenski
|
||||
"Elchi", // Italiano
|
||||
"Elchi", // Nederlands
|
||||
"Elchi", // Portugu<67>s
|
||||
"Elchi", // Fran<61>ais
|
||||
"Elchi", // Norsk
|
||||
"Elchi", // suomi
|
||||
"", // Polski
|
||||
"", // Espa<70>ol
|
||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
|
||||
"", // Svenska
|
||||
"", // Romaneste
|
||||
"", // Magyar
|
||||
"", // Catal<61>
|
||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||
"", // Hrvatski (Croatian)
|
||||
"Elchi", // Polski
|
||||
"Elchi", // Espa<70>ol
|
||||
"Elchi", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
|
||||
"Elchi", // Svenska
|
||||
"Elchi", // Romaneste
|
||||
"Elchi", // Magyar
|
||||
"Elchi", // Catal<61>
|
||||
"Elchi", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||
"Elchi", // Hrvatski (Croatian)
|
||||
"Elchi", // Eesti
|
||||
"", // Dansk
|
||||
"Elchi", // Dansk
|
||||
},
|
||||
{ "DeepBlue", // English
|
||||
"DeepBlue", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Portugu<67>s
|
||||
"", // Fran<61>ais
|
||||
"", // Norsk
|
||||
"DeepBlue", // Slovenski
|
||||
"DeepBlue", // Italiano
|
||||
"DeepBlue", // Nederlands
|
||||
"DeepBlue", // Portugu<67>s
|
||||
"DeepBlue", // Fran<61>ais
|
||||
"DeepBlue", // Norsk
|
||||
"DeepBlue", // suomi
|
||||
"", // Polski
|
||||
"", // Espa<70>ol
|
||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
|
||||
"", // Svenska
|
||||
"", // Romaneste
|
||||
"", // Magyar
|
||||
"", // Catal<61>
|
||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||
"", // Hrvatski (Croatian)
|
||||
"DeepBlue", // Polski
|
||||
"DeepBlue", // Espa<70>ol
|
||||
"DeepBlue", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
|
||||
"DeepBlue", // Svenska
|
||||
"DeepBlue", // Romaneste
|
||||
"DeepBlue", // Magyar
|
||||
"DeepBlue", // Catal<61>
|
||||
"DeepBlue", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||
"DeepBlue", // Hrvatski (Croatian)
|
||||
"DeepBlue", // Eesti
|
||||
"", // Dansk
|
||||
"DeepBlue", // Dansk
|
||||
},
|
||||
{ "Moronimo", // English
|
||||
"Moronimo", // Deutsch
|
||||
"Moronimo", // Slovenski
|
||||
"Moronimo", // Italiano
|
||||
"Moronimo", // Nederlands
|
||||
"Moronimo", // Portugu<67>s
|
||||
"Moronimo", // Fran<61>ais
|
||||
"Moronimo", // Norsk
|
||||
"Moronimo", // suomi
|
||||
"Moronimo", // Polski
|
||||
"Moronimo", // Espa<70>ol
|
||||
"Moronimo", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
|
||||
"Moronimo", // Svenska
|
||||
"Moronimo", // Romaneste
|
||||
"Moronimo", // Magyar
|
||||
"Moronimo", // Catal<61>
|
||||
"Moronimo", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||
"Moronimo", // Hrvatski (Croatian)
|
||||
"Moronimo", // Eesti
|
||||
"Moronimo", // Dansk
|
||||
},
|
||||
{ "Hide main menu entry", // English
|
||||
"Hauptmen<EFBFBD>eintrag verstecken", // Deutsch
|
||||
@@ -342,7 +363,7 @@ const tI18nPhrase Phrases[] = {
|
||||
"", // Catal<61>
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||
"", // Hrvatski (Croatian)
|
||||
"Striimi anal<61><6C>s", // Eesti
|
||||
"Voo anal<61><6C>s", // Eesti
|
||||
"", // Dansk
|
||||
},
|
||||
{ "Calculation interval [0.1s]", // English
|
||||
@@ -720,7 +741,7 @@ const tI18nPhrase Phrases[] = {
|
||||
"", // Catal<61>
|
||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||
"", // Hrvatski (Croatian)
|
||||
"Striimi info", // Eesti
|
||||
"Voo info", // Eesti
|
||||
"", // Dansk
|
||||
},
|
||||
{ "MPEG Layer", // English
|
||||
@@ -762,7 +783,7 @@ const tI18nPhrase Phrases[] = {
|
||||
"", // Catal<61>
|
||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||
"", // Hrvatski (Croatian)
|
||||
"Videostriim", // Eesti
|
||||
"Videovoog", // Eesti
|
||||
"", // Dansk
|
||||
},
|
||||
{ "Bitrate", // English
|
||||
@@ -1014,7 +1035,7 @@ const tI18nPhrase Phrases[] = {
|
||||
"", // Catal<61>
|
||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||
"", // Hrvatski (Croatian)
|
||||
"Audiostriim", // Eesti
|
||||
"Audiovoog", // Eesti
|
||||
"", // Dansk
|
||||
},
|
||||
{ "Sampling Frequency", // English
|
||||
@@ -1067,7 +1088,7 @@ const tI18nPhrase Phrases[] = {
|
||||
"Apid", // Portugu<67>s
|
||||
"Apid", // Fran<61>ais
|
||||
"Apid", // Norsk
|
||||
"<EFBFBD><EFBFBD>ni PID", // suomi
|
||||
"<EFBFBD><EFBFBD>ni-PID", // suomi
|
||||
"Apid", // Polski
|
||||
"Apid", // Espa<70>ol
|
||||
"Apid", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
|
||||
@@ -1088,7 +1109,7 @@ const tI18nPhrase Phrases[] = {
|
||||
"Dpid", // Portugu<67>s
|
||||
"Dpid", // Fran<61>ais
|
||||
"Dpid", // Norsk
|
||||
"Dolby PID", // suomi
|
||||
"Dolby-PID", // suomi
|
||||
"Dpid", // Polski
|
||||
"Dpid", // Espa<70>ol
|
||||
"Dpid", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
|
||||
@@ -1109,7 +1130,7 @@ const tI18nPhrase Phrases[] = {
|
||||
"Nid", // Portugu<67>s
|
||||
"Nid", // Fran<61>ais
|
||||
"Nid", // Norsk
|
||||
"Verkko ID", // suomi
|
||||
"Verkko-ID", // suomi
|
||||
"Nid", // Polski
|
||||
"Nid", // Espa<70>ol
|
||||
"Nid", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
|
||||
@@ -1130,7 +1151,7 @@ const tI18nPhrase Phrases[] = {
|
||||
"Tid", // Portugu<67>s
|
||||
"Tid", // Fran<61>ais
|
||||
"Tid", // Norsk
|
||||
"L<EFBFBD>hete ID", // suomi
|
||||
"L<EFBFBD>hete-ID", // suomi
|
||||
"Tid", // Polski
|
||||
"Tid", // Espa<70>ol
|
||||
"Tid", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
|
||||
@@ -1151,7 +1172,7 @@ const tI18nPhrase Phrases[] = {
|
||||
"Rid", // Portugu<67>s
|
||||
"Rid", // Fran<61>ais
|
||||
"Rid", // Norsk
|
||||
"Radio ID", // suomi
|
||||
"Radio-ID", // suomi
|
||||
"Rid", // Polski
|
||||
"Rid", // Espa<70>ol
|
||||
"Rid", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
|
||||
@@ -1186,7 +1207,7 @@ const tI18nPhrase Phrases[] = {
|
||||
"dB", // Dansk
|
||||
},
|
||||
{ "not indicated", // English
|
||||
"", // Deutsch
|
||||
"nicht angegeben", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"", // Nederlands
|
||||
@@ -1235,7 +1256,7 @@ const tI18nPhrase Phrases[] = {
|
||||
"", // Portugu<67>s
|
||||
"", // Fran<61>ais
|
||||
"", // Norsk
|
||||
"AC-3 <EFBFBD><EFBFBD>niraita", // suomi
|
||||
"AC-3-<EFBFBD><EFBFBD>niraita", // suomi
|
||||
"", // Polski
|
||||
"", // Espa<70>ol
|
||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
|
||||
@@ -1245,7 +1266,7 @@ const tI18nPhrase Phrases[] = {
|
||||
"", // Catal<61>
|
||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||
"", // Hrvatski (Croatian)
|
||||
"AC-3 striim", // Eesti
|
||||
"AC-3 voog", // Eesti
|
||||
"", // Dansk
|
||||
},
|
||||
{ "Frame Size", // English
|
||||
@@ -1287,7 +1308,7 @@ const tI18nPhrase Phrases[] = {
|
||||
"", // Catal<61>
|
||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||
"", // Hrvatski (Croatian)
|
||||
"Bitistriimi t<><74>p", // Eesti
|
||||
"Bitivoo t<><74>p", // Eesti
|
||||
"", // Dansk
|
||||
},
|
||||
{ "Audio Coding Mode", // English
|
||||
@@ -1361,7 +1382,7 @@ const tI18nPhrase Phrases[] = {
|
||||
"", // Portugu<67>s
|
||||
"", // Fran<61>ais
|
||||
"", // Norsk
|
||||
"Dolby Surround -moodi", // suomi
|
||||
"Dolby Surround -tehoste", // suomi
|
||||
"", // Polski
|
||||
"", // Espa<70>ol
|
||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
|
||||
@@ -1434,7 +1455,7 @@ const tI18nPhrase Phrases[] = {
|
||||
"", // Catal<61>
|
||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||
"", // Hrvatski (Croatian)
|
||||
"CM", // Eesti
|
||||
"T<EFBFBD>iskomplekt (CM)", // Eesti
|
||||
"", // Dansk
|
||||
},
|
||||
{ "Music and Effects (ME)", // English
|
||||
@@ -1665,7 +1686,7 @@ const tI18nPhrase Phrases[] = {
|
||||
"", // Catal<61>
|
||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||
"", // Hrvatski (Croatian)
|
||||
"K", // Eesti
|
||||
"C", // Eesti
|
||||
"", // Dansk
|
||||
},
|
||||
{ "L", // English "Left"
|
||||
@@ -1815,6 +1836,27 @@ const tI18nPhrase Phrases[] = {
|
||||
"Fikseeritud", // Eesti
|
||||
"", // Dansk
|
||||
},
|
||||
{ "Analog", // English
|
||||
"", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Portugu<67>s
|
||||
"", // Fran<61>ais
|
||||
"", // Norsk
|
||||
"analoginen", // suomi
|
||||
"", // Polski
|
||||
"", // Espa<70>ol
|
||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
|
||||
"", // Svenska
|
||||
"", // Romaneste
|
||||
"", // Magyar
|
||||
"", // Catal<61>
|
||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||
"", // Hrvatski (Croatian)
|
||||
"", // Eesti
|
||||
"", // Dansk
|
||||
},
|
||||
{ "Free to Air", // English
|
||||
"Free to Air", // Deutsch
|
||||
"", // Slovenski
|
||||
|
||||
23
femonosd.c
23
femonosd.c
@@ -87,7 +87,6 @@ cFemonOsd::cFemonOsd(void)
|
||||
m_Osd = NULL;
|
||||
m_Receiver = NULL;
|
||||
m_Frontend = -1;
|
||||
m_Active = false;
|
||||
m_Number = 0;
|
||||
m_OldNumber = 0;
|
||||
m_Signal = 0;
|
||||
@@ -110,8 +109,7 @@ cFemonOsd::cFemonOsd(void)
|
||||
cFemonOsd::~cFemonOsd(void)
|
||||
{
|
||||
Dprintf("%s()\n", __PRETTY_FUNCTION__);
|
||||
if (m_Active) {
|
||||
m_Active = false;
|
||||
if (Running()) {
|
||||
Cancel(3);
|
||||
}
|
||||
if (m_Receiver)
|
||||
@@ -405,7 +403,10 @@ void cFemonOsd::DrawInfoWindow(void)
|
||||
break;
|
||||
case 0x0001 ... 0x00FF:
|
||||
/* Standardized systems */
|
||||
snprintf(buf, sizeof(buf), "%s", tr("Fixed"));
|
||||
if ((value == 0x00A0) || (value == 0x00A1))
|
||||
snprintf(buf, sizeof(buf), "%s", tr("Analog"));
|
||||
else
|
||||
snprintf(buf, sizeof(buf), "%s", tr("Fixed"));
|
||||
break;
|
||||
case 0x0100 ... 0x01FF:
|
||||
/* Canal Plus */
|
||||
@@ -844,8 +845,7 @@ void cFemonOsd::Action(void)
|
||||
{
|
||||
Dprintf("%s()\n", __PRETTY_FUNCTION__);
|
||||
cTimeMs t;
|
||||
m_Active = true;
|
||||
while (m_Active) {
|
||||
while (Running()) {
|
||||
t.Set(0);
|
||||
if (m_Frontend != -1) {
|
||||
CHECK(ioctl(m_Frontend, FE_READ_STATUS, &m_FrontendStatus));
|
||||
@@ -1049,7 +1049,7 @@ eOSState cFemonOsd::ProcessKey(eKeys Key)
|
||||
if (device >= 0) {
|
||||
cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel());
|
||||
for (int i = 0; i < cDevice::NumDevices() - 1; i++) {
|
||||
if (NORMALKEY(Key) == kBlue) {
|
||||
if (NORMALKEY(Key) == kRight) {
|
||||
if (++device >= cDevice::NumDevices()) device = 0;
|
||||
}
|
||||
else {
|
||||
@@ -1057,8 +1057,13 @@ eOSState cFemonOsd::ProcessKey(eKeys Key)
|
||||
}
|
||||
if (cDevice::GetDevice(device)->ProvidesChannel(channel)) {
|
||||
Dprintf("%s(%d) device(%d)\n", __PRETTY_FUNCTION__, Key, device);
|
||||
// 1) tune the channel on the new device
|
||||
// 2) make the new device to actual device
|
||||
// here should be added some checks, if the device is really available (i.e. not recording)
|
||||
cStatus::MsgChannelSwitch(cDevice::PrimaryDevice(), 0);
|
||||
cControl::Shutdown();
|
||||
cDevice::GetDevice(device)->SwitchChannel(channel, true);
|
||||
// does this work with primary devices ?
|
||||
cControl::Launch(new cTransferControl(cDevice::GetDevice(device), channel->Vpid(), channel->Apids(), channel->Dpids(), channel->Spids()));
|
||||
cStatus::MsgChannelSwitch(cDevice::PrimaryDevice(), channel->Number());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,6 @@
|
||||
|
||||
class cFemonOsd : public cOsdObject, public cThread, public cStatus {
|
||||
private:
|
||||
bool m_Active;
|
||||
cOsd *m_Osd;
|
||||
cFemonReceiver *m_Receiver;
|
||||
int m_Frontend;
|
||||
|
||||
@@ -21,7 +21,6 @@ cFemonReceiver::cFemonReceiver(int Ca, int Vpid, int Apid[], int Dpid[])
|
||||
:cReceiver(Ca, -1, Vpid, Apid, Dpid, NULL), cThread("femon receiver")
|
||||
{
|
||||
Dprintf("%s()\n", __PRETTY_FUNCTION__);
|
||||
m_Active = false;
|
||||
m_VideoPid = Vpid;
|
||||
m_AudioPid = Apid[0];
|
||||
m_AC3Pid = Dpid[0];
|
||||
@@ -60,10 +59,8 @@ cFemonReceiver::~cFemonReceiver(void)
|
||||
{
|
||||
Dprintf("%s()\n", __PRETTY_FUNCTION__);
|
||||
Detach();
|
||||
if (m_Active) {
|
||||
m_Active = false;
|
||||
if (Running())
|
||||
Cancel();
|
||||
}
|
||||
}
|
||||
|
||||
/* The following function originates from libdvbmpeg: */
|
||||
@@ -72,7 +69,7 @@ void cFemonReceiver::GetVideoInfo(uint8_t *mbuf, int count)
|
||||
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;
|
||||
@@ -165,7 +162,7 @@ void cFemonReceiver::GetAudioInfo(uint8_t *mbuf, int count)
|
||||
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))
|
||||
@@ -214,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,14 +250,10 @@ void cFemonReceiver::GetAC3Info(uint8_t *mbuf, int count)
|
||||
void cFemonReceiver::Activate(bool On)
|
||||
{
|
||||
Dprintf("%s(%d)\n", __PRETTY_FUNCTION__, On);
|
||||
if (On) {
|
||||
if (!m_Active)
|
||||
Start();
|
||||
}
|
||||
else if (m_Active) {
|
||||
m_Active = false;
|
||||
if (On)
|
||||
Start();
|
||||
else
|
||||
Cancel();
|
||||
}
|
||||
}
|
||||
|
||||
void cFemonReceiver::Receive(uchar *Data, int Length)
|
||||
@@ -309,8 +302,7 @@ void cFemonReceiver::Action(void)
|
||||
{
|
||||
Dprintf("%s()\n", __PRETTY_FUNCTION__);
|
||||
cTimeMs t;
|
||||
m_Active = true;
|
||||
while (m_Active) {
|
||||
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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user