1
0
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 Message Date
Rolf Ahrenberg
713f9e652a Threads updated for vdr-1.3.29. 2005-08-15 04:20:00 +03:00
Rolf Ahrenberg
7c948cde72 Fixed AC3-info flickering (Thanks to Pasi Juppo for reporting this one).
Added "Analog" type CA system.
Plugin is now stripped by default.
2005-07-23 04:20:00 +03:00
Rolf Ahrenberg
8e57eec535 Renamed compiling switches ('DEBUG' to 'FEMON_DEBUG' and 'NTSC_SYSTEM' to 'FEMON_NTSC').
Enabled preliminary support for the device switching.
2005-05-20 04:20:00 +03:00
Rolf Ahrenberg
0f111eb660 Updated Estonian translations (Thanks to Arthur Konovalov).
Added the missing german translations (Thanks to #vdr-portal).
2005-04-04 04:20:00 +03:00
Rolf Ahrenberg
6670f85a20 Cleaned up finnish translations (Thanks to Ville Skyttä). 2005-04-02 04:20:00 +03:00
Rolf Ahrenberg
9814970182 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-01 04:20:00 +03:00
12 changed files with 190 additions and 100 deletions

30
HISTORY
View File

@@ -141,3 +141,33 @@ VDR Plugin 'femon' Revision History
2005-02-26: Version 0.8.6 2005-02-26: Version 0.8.6
- Horizontal offset setup option should be functional now. - 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.

View File

@@ -16,7 +16,11 @@ VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).h | awk '{ pri
### The C++ compiler and options: ### The C++ compiler and options:
CXX ?= g++ 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: ### The directory environment:
@@ -44,14 +48,17 @@ INCLUDES += -I$(VDRDIR)/include -I$(DVBDIR)/include
DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"' DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
ifdef NTSC_SYSTEM ifdef FEMON_NTSC
DEFINES += -DNTSC_SYSTEM DEFINES += -DFEMON_NTSC
endif endif
ifdef DEBUG ifdef FEMON_DEBUG
DEFINES += -DDEBUG DEFINES += -DFEMON_DEBUG
endif endif
.PHONY: all all-redirect
all-redirect: all
### The object files (add further files here): ### The object files (add further files here):
OBJS = femon.o femonosd.o femonreceiver.o femoncfg.o femoni18n.o OBJS = femon.o femonosd.o femonreceiver.o femoncfg.o femoni18n.o
@@ -77,6 +84,9 @@ all: libvdr-$(PLUGIN).so
libvdr-$(PLUGIN).so: $(OBJS) libvdr-$(PLUGIN).so: $(OBJS)
$(CXX) $(CXXFLAGS) -shared $(OBJS) -o $@ $(CXX) $(CXXFLAGS) -shared $(OBJS) -o $@
@cp $@ $(LIBDIR)/$@.$(VDRVERSION) @cp $@ $(LIBDIR)/$@.$(VDRVERSION)
ifndef FEMON_DEBUG
strip $(LIBDIR)/$@.$(VDRVERSION)
endif
dist: clean dist: clean
@-rm -rf $(TMPDIR)/$(ARCHIVE) @-rm -rf $(TMPDIR)/$(ARCHIVE)

18
README
View File

@@ -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 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 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 information). The bitrate calculation trick originates from the 'dvbstream'
'OSD Picture-In-Picture' plugin by Sascha Volkenandt and Andreas Regel. The application by Dave Chapman and the stream information routines are taken from
bitrate calculation algorithm originates from the 'dvbstream' application by the 'libdvb' library by Metzler Brothers.
Dave Chapman and the stream information routines from the 'libdvb' library by
Metzler Brothers.
Terminology: Terminology:
@@ -65,7 +63,7 @@ Ok - Switch between display modes: basic, transponder, stream, AC-3
Green - Select next audio track Green - Select next audio track
Yellow - Select audio channel: stereo, mono left, mono right Yellow - Select audio channel: stereo, mono left, mono right
Back - Exit plugin 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: Installation:
@@ -82,14 +80,16 @@ Notes:
- The plugin supports only those DVB cards with _one_ frontend (do any cards - 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 with multiple frontends even exist?), because I haven't yet figured howto do
it without patching the VDR core. it without patching the VDR core.
- Disable the stream analyze to speed up heavy zapping sessions. - Disable the stream analyze to speed up heavy zapping sessions.
- The signal strength and signal-to-noise ratio values are comparable only - 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 between the same brand/model frontends. Due to the lack of proper frontend
specifications those values cannot be calculated into any real units. 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 - 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 small. Please, try to adjust the variable on the setup page before writing
any bug reports. any bug reports. NTSC users should use a shrinked default OSD height by
- There's a shrinked default OSD height for NTSC users: make NTSC_SYSTEM=1 compiling the plugin with: make FEMON_NTSC=1
- The device switching feature is still non-functional.
"Femon - A real womon who lives according to her natural feminine inclinations." "Femon - A real womon who lives according to her natural feminine inclinations."

View File

@@ -12,7 +12,7 @@
#include "femonosd.h" #include "femonosd.h"
#include "femon.h" #include "femon.h"
#if VDRVERSNUM && VDRVERSNUM < 10321 #if VDRVERSNUM && VDRVERSNUM < 10329
#error "You don't exist! Go away!" #error "You don't exist! Go away!"
#endif #endif
@@ -102,6 +102,7 @@ cMenuFemonSetup::cMenuFemonSetup(void)
themes[eFemonThemeClassic] = tr("Classic"); themes[eFemonThemeClassic] = tr("Classic");
themes[eFemonThemeElchi] = tr("Elchi"); themes[eFemonThemeElchi] = tr("Elchi");
themes[eFemonThemeDeepBlue] = tr("DeepBlue"); themes[eFemonThemeDeepBlue] = tr("DeepBlue");
themes[eFemonThemeMoronimo] = tr("Moronimo");
Setup(); Setup();
} }

View File

@@ -11,7 +11,7 @@
#include <vdr/plugin.h> #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 *DESCRIPTION = "DVB Signal Information Monitor (OSD)";
static const char *MAINMENUENTRY = "Signal Information"; static const char *MAINMENUENTRY = "Signal Information";

View File

@@ -23,7 +23,7 @@ cFemonConfig::cFemonConfig(void)
calcinterval = 20; calcinterval = 20;
syslogoutput = 0; syslogoutput = 0;
showcasystem = 0; showcasystem = 0;
#ifdef NTSC_SYSTEM #ifdef FEMON_NTSC
osdheight = 420; osdheight = 420;
#else #else
osdheight = 480; osdheight = 480;
@@ -66,5 +66,16 @@ const cFemonTheme femonTheme[eFemonThemeMaxNumber] =
0xFFCE7B00, // clrYellow 0xFFCE7B00, // clrYellow
0xFF336600, // clrGreen 0xFF336600, // clrGreen
}, },
{
// eFemonThemeMoronimo
0xDF294A6B, // clrBackground
0xDF3E5578, // clrTitleBackground
0xFF9BBAD7, // clrTitleText
0xFFCE7B00, // clrActiveText
0xFF9A9A9A, // clrInactiveText
0xFF992900, // clrRed
0xFFCE7B00, // clrYellow
0xFF336600, // clrGreen
},
}; };

View File

@@ -9,7 +9,7 @@
#ifndef __FEMONCFG_H #ifndef __FEMONCFG_H
#define __FEMONCFG_H #define __FEMONCFG_H
#ifdef DEBUG #ifdef FEMON_DEBUG
#define Dprintf(x...) printf(x); #define Dprintf(x...) printf(x);
#else #else
#define Dprintf(x...) ; #define Dprintf(x...) ;
@@ -50,6 +50,7 @@ enum eFemonThemes
eFemonThemeClassic, eFemonThemeClassic,
eFemonThemeElchi, eFemonThemeElchi,
eFemonThemeDeepBlue, eFemonThemeDeepBlue,
eFemonThemeMoronimo,
eFemonThemeMaxNumber eFemonThemeMaxNumber
}; };

View File

@@ -17,7 +17,7 @@ const tI18nPhrase Phrases[] = {
"", // Portugu<67>s "", // Portugu<67>s
"", // Fran<61>ais "", // Fran<61>ais
"", // Norsk "", // Norsk
"DVB signaalimittari (OSD)", // suomi "Signaalimittari (OSD)", // suomi
"", // Polski "", // Polski
"", // Espa<70>ol "", // Espa<70>ol
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek) "", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
@@ -94,7 +94,7 @@ const tI18nPhrase Phrases[] = {
"", // Dansk "", // Dansk
}, },
{ "Horizontal offset", // English { "Horizontal offset", // English
"", // Deutsch "Horizontaler Offset", // Deutsch
"", // Slovenski "", // Slovenski
"", // Italiano "", // Italiano
"", // Nederlands "", // Nederlands
@@ -111,7 +111,7 @@ const tI18nPhrase Phrases[] = {
"", // Catal<61> "", // Catal<61>
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian) "", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
"", // Hrvatski (Croatian) "", // Hrvatski (Croatian)
"", // Eesti "Horisontaalne nihe", // Eesti
"", // Dansk "", // Dansk
}, },
{ "Default display mode", // English { "Default display mode", // English
@@ -122,7 +122,7 @@ const tI18nPhrase Phrases[] = {
"", // Portugu<67>s "", // Portugu<67>s
"", // Fran<61>ais "", // Fran<61>ais
"", // Norsk "", // Norsk
"Oletus n<EFBFBD>ytt<EFBFBD>moodi", // suomi "Oletusn<EFBFBD>ytt<EFBFBD>tila", // suomi
"", // Polski "", // Polski
"", // Espa<70>ol "", // Espa<70>ol
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek) "", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
@@ -174,8 +174,8 @@ const tI18nPhrase Phrases[] = {
"", // Catal<61> "", // Catal<61>
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian) "", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
"", // Hrvatski (Croatian) "", // Hrvatski (Croatian)
"", // Eesti "transponder", // Eesti
"transponder", // Dansk "", // Dansk
}, },
{ "stream", // English { "stream", // English
"Stream", // Deutsch "Stream", // Deutsch
@@ -195,7 +195,7 @@ const tI18nPhrase Phrases[] = {
"", // Catal<61> "", // Catal<61>
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian) "", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
"", // Hrvatski (Croatian) "", // Hrvatski (Croatian)
"striim", // Eesti "voog", // Eesti
"", // Dansk "", // Dansk
}, },
{ "Theme", // English { "Theme", // English
@@ -242,45 +242,66 @@ const tI18nPhrase Phrases[] = {
}, },
{ "Elchi", // English { "Elchi", // English
"Elchi", // Deutsch "Elchi", // Deutsch
"", // Slovenski "Elchi", // Slovenski
"", // Italiano "Elchi", // Italiano
"", // Nederlands "Elchi", // Nederlands
"", // Portugu<67>s "Elchi", // Portugu<67>s
"", // Fran<61>ais "Elchi", // Fran<61>ais
"", // Norsk "Elchi", // Norsk
"Elchi", // suomi "Elchi", // suomi
"", // Polski "Elchi", // Polski
"", // Espa<70>ol "Elchi", // Espa<70>ol
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek) "Elchi", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
"", // Svenska "Elchi", // Svenska
"", // Romaneste "Elchi", // Romaneste
"", // Magyar "Elchi", // Magyar
"", // Catal<61> "Elchi", // Catal<61>
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian) "Elchi", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
"", // Hrvatski (Croatian) "Elchi", // Hrvatski (Croatian)
"Elchi", // Eesti "Elchi", // Eesti
"", // Dansk "Elchi", // Dansk
}, },
{ "DeepBlue", // English { "DeepBlue", // English
"DeepBlue", // Deutsch "DeepBlue", // Deutsch
"", // Slovenski "DeepBlue", // Slovenski
"", // Italiano "DeepBlue", // Italiano
"", // Nederlands "DeepBlue", // Nederlands
"", // Portugu<67>s "DeepBlue", // Portugu<67>s
"", // Fran<61>ais "DeepBlue", // Fran<61>ais
"", // Norsk "DeepBlue", // Norsk
"DeepBlue", // suomi "DeepBlue", // suomi
"", // Polski "DeepBlue", // Polski
"", // Espa<70>ol "DeepBlue", // Espa<70>ol
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek) "DeepBlue", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
"", // Svenska "DeepBlue", // Svenska
"", // Romaneste "DeepBlue", // Romaneste
"", // Magyar "DeepBlue", // Magyar
"", // Catal<61> "DeepBlue", // Catal<61>
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian) "DeepBlue", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
"", // Hrvatski (Croatian) "DeepBlue", // Hrvatski (Croatian)
"DeepBlue", // Eesti "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 { "Hide main menu entry", // English
"Hauptmen<EFBFBD>eintrag verstecken", // Deutsch "Hauptmen<EFBFBD>eintrag verstecken", // Deutsch
@@ -342,7 +363,7 @@ const tI18nPhrase Phrases[] = {
"", // Catal<61> "", // 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) "<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) "", // Hrvatski (Croatian)
"Striimi anal<61><6C>s", // Eesti "Voo anal<61><6C>s", // Eesti
"", // Dansk "", // Dansk
}, },
{ "Calculation interval [0.1s]", // English { "Calculation interval [0.1s]", // English
@@ -720,7 +741,7 @@ const tI18nPhrase Phrases[] = {
"", // Catal<61> "", // Catal<61>
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian) "", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
"", // Hrvatski (Croatian) "", // Hrvatski (Croatian)
"Striimi info", // Eesti "Voo info", // Eesti
"", // Dansk "", // Dansk
}, },
{ "MPEG Layer", // English { "MPEG Layer", // English
@@ -762,7 +783,7 @@ const tI18nPhrase Phrases[] = {
"", // Catal<61> "", // Catal<61>
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian) "", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
"", // Hrvatski (Croatian) "", // Hrvatski (Croatian)
"Videostriim", // Eesti "Videovoog", // Eesti
"", // Dansk "", // Dansk
}, },
{ "Bitrate", // English { "Bitrate", // English
@@ -1014,7 +1035,7 @@ const tI18nPhrase Phrases[] = {
"", // Catal<61> "", // Catal<61>
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian) "", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
"", // Hrvatski (Croatian) "", // Hrvatski (Croatian)
"Audiostriim", // Eesti "Audiovoog", // Eesti
"", // Dansk "", // Dansk
}, },
{ "Sampling Frequency", // English { "Sampling Frequency", // English
@@ -1067,7 +1088,7 @@ const tI18nPhrase Phrases[] = {
"Apid", // Portugu<67>s "Apid", // Portugu<67>s
"Apid", // Fran<61>ais "Apid", // Fran<61>ais
"Apid", // Norsk "Apid", // Norsk
"<EFBFBD><EFBFBD>ni PID", // suomi "<EFBFBD><EFBFBD>ni-PID", // suomi
"Apid", // Polski "Apid", // Polski
"Apid", // Espa<70>ol "Apid", // Espa<70>ol
"Apid", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek) "Apid", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
@@ -1088,7 +1109,7 @@ const tI18nPhrase Phrases[] = {
"Dpid", // Portugu<67>s "Dpid", // Portugu<67>s
"Dpid", // Fran<61>ais "Dpid", // Fran<61>ais
"Dpid", // Norsk "Dpid", // Norsk
"Dolby PID", // suomi "Dolby-PID", // suomi
"Dpid", // Polski "Dpid", // Polski
"Dpid", // Espa<70>ol "Dpid", // Espa<70>ol
"Dpid", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek) "Dpid", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
@@ -1109,7 +1130,7 @@ const tI18nPhrase Phrases[] = {
"Nid", // Portugu<67>s "Nid", // Portugu<67>s
"Nid", // Fran<61>ais "Nid", // Fran<61>ais
"Nid", // Norsk "Nid", // Norsk
"Verkko ID", // suomi "Verkko-ID", // suomi
"Nid", // Polski "Nid", // Polski
"Nid", // Espa<70>ol "Nid", // Espa<70>ol
"Nid", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek) "Nid", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
@@ -1130,7 +1151,7 @@ const tI18nPhrase Phrases[] = {
"Tid", // Portugu<67>s "Tid", // Portugu<67>s
"Tid", // Fran<61>ais "Tid", // Fran<61>ais
"Tid", // Norsk "Tid", // Norsk
"L<EFBFBD>hete ID", // suomi "L<EFBFBD>hete-ID", // suomi
"Tid", // Polski "Tid", // Polski
"Tid", // Espa<70>ol "Tid", // Espa<70>ol
"Tid", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek) "Tid", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
@@ -1151,7 +1172,7 @@ const tI18nPhrase Phrases[] = {
"Rid", // Portugu<67>s "Rid", // Portugu<67>s
"Rid", // Fran<61>ais "Rid", // Fran<61>ais
"Rid", // Norsk "Rid", // Norsk
"Radio ID", // suomi "Radio-ID", // suomi
"Rid", // Polski "Rid", // Polski
"Rid", // Espa<70>ol "Rid", // Espa<70>ol
"Rid", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek) "Rid", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
@@ -1186,7 +1207,7 @@ const tI18nPhrase Phrases[] = {
"dB", // Dansk "dB", // Dansk
}, },
{ "not indicated", // English { "not indicated", // English
"", // Deutsch "nicht angegeben", // Deutsch
"", // Slovenski "", // Slovenski
"", // Italiano "", // Italiano
"", // Nederlands "", // Nederlands
@@ -1235,7 +1256,7 @@ const tI18nPhrase Phrases[] = {
"", // Portugu<67>s "", // Portugu<67>s
"", // Fran<61>ais "", // Fran<61>ais
"", // Norsk "", // Norsk
"AC-3 <EFBFBD><EFBFBD>niraita", // suomi "AC-3-<EFBFBD><EFBFBD>niraita", // suomi
"", // Polski "", // Polski
"", // Espa<70>ol "", // Espa<70>ol
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek) "", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
@@ -1245,7 +1266,7 @@ const tI18nPhrase Phrases[] = {
"", // Catal<61> "", // Catal<61>
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian) "", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
"", // Hrvatski (Croatian) "", // Hrvatski (Croatian)
"AC-3 striim", // Eesti "AC-3 voog", // Eesti
"", // Dansk "", // Dansk
}, },
{ "Frame Size", // English { "Frame Size", // English
@@ -1287,7 +1308,7 @@ const tI18nPhrase Phrases[] = {
"", // Catal<61> "", // Catal<61>
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian) "", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
"", // Hrvatski (Croatian) "", // Hrvatski (Croatian)
"Bitistriimi t<><74>p", // Eesti "Bitivoo t<><74>p", // Eesti
"", // Dansk "", // Dansk
}, },
{ "Audio Coding Mode", // English { "Audio Coding Mode", // English
@@ -1361,7 +1382,7 @@ const tI18nPhrase Phrases[] = {
"", // Portugu<67>s "", // Portugu<67>s
"", // Fran<61>ais "", // Fran<61>ais
"", // Norsk "", // Norsk
"Dolby Surround -moodi", // suomi "Dolby Surround -tehoste", // suomi
"", // Polski "", // Polski
"", // Espa<70>ol "", // Espa<70>ol
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek) "", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
@@ -1434,7 +1455,7 @@ const tI18nPhrase Phrases[] = {
"", // Catal<61> "", // Catal<61>
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian) "", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
"", // Hrvatski (Croatian) "", // Hrvatski (Croatian)
"CM", // Eesti "T<EFBFBD>iskomplekt (CM)", // Eesti
"", // Dansk "", // Dansk
}, },
{ "Music and Effects (ME)", // English { "Music and Effects (ME)", // English
@@ -1665,7 +1686,7 @@ const tI18nPhrase Phrases[] = {
"", // Catal<61> "", // Catal<61>
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian) "", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
"", // Hrvatski (Croatian) "", // Hrvatski (Croatian)
"K", // Eesti "C", // Eesti
"", // Dansk "", // Dansk
}, },
{ "L", // English "Left" { "L", // English "Left"
@@ -1815,6 +1836,27 @@ const tI18nPhrase Phrases[] = {
"Fikseeritud", // Eesti "Fikseeritud", // Eesti
"", // Dansk "", // 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", // English
"Free to Air", // Deutsch "Free to Air", // Deutsch
"", // Slovenski "", // Slovenski

View File

@@ -87,7 +87,6 @@ cFemonOsd::cFemonOsd(void)
m_Osd = NULL; m_Osd = NULL;
m_Receiver = NULL; m_Receiver = NULL;
m_Frontend = -1; m_Frontend = -1;
m_Active = false;
m_Number = 0; m_Number = 0;
m_OldNumber = 0; m_OldNumber = 0;
m_Signal = 0; m_Signal = 0;
@@ -110,8 +109,7 @@ cFemonOsd::cFemonOsd(void)
cFemonOsd::~cFemonOsd(void) cFemonOsd::~cFemonOsd(void)
{ {
Dprintf("%s()\n", __PRETTY_FUNCTION__); Dprintf("%s()\n", __PRETTY_FUNCTION__);
if (m_Active) { if (Running()) {
m_Active = false;
Cancel(3); Cancel(3);
} }
if (m_Receiver) if (m_Receiver)
@@ -405,7 +403,10 @@ void cFemonOsd::DrawInfoWindow(void)
break; break;
case 0x0001 ... 0x00FF: case 0x0001 ... 0x00FF:
/* Standardized systems */ /* 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; break;
case 0x0100 ... 0x01FF: case 0x0100 ... 0x01FF:
/* Canal Plus */ /* Canal Plus */
@@ -844,8 +845,7 @@ void cFemonOsd::Action(void)
{ {
Dprintf("%s()\n", __PRETTY_FUNCTION__); Dprintf("%s()\n", __PRETTY_FUNCTION__);
cTimeMs t; cTimeMs t;
m_Active = true; while (Running()) {
while (m_Active) {
t.Set(0); t.Set(0);
if (m_Frontend != -1) { if (m_Frontend != -1) {
CHECK(ioctl(m_Frontend, FE_READ_STATUS, &m_FrontendStatus)); CHECK(ioctl(m_Frontend, FE_READ_STATUS, &m_FrontendStatus));
@@ -1049,7 +1049,7 @@ eOSState cFemonOsd::ProcessKey(eKeys Key)
if (device >= 0) { if (device >= 0) {
cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel()); cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel());
for (int i = 0; i < cDevice::NumDevices() - 1; i++) { for (int i = 0; i < cDevice::NumDevices() - 1; i++) {
if (NORMALKEY(Key) == kBlue) { if (NORMALKEY(Key) == kRight) {
if (++device >= cDevice::NumDevices()) device = 0; if (++device >= cDevice::NumDevices()) device = 0;
} }
else { else {
@@ -1057,8 +1057,13 @@ eOSState cFemonOsd::ProcessKey(eKeys Key)
} }
if (cDevice::GetDevice(device)->ProvidesChannel(channel)) { if (cDevice::GetDevice(device)->ProvidesChannel(channel)) {
Dprintf("%s(%d) device(%d)\n", __PRETTY_FUNCTION__, Key, device); Dprintf("%s(%d) device(%d)\n", __PRETTY_FUNCTION__, Key, device);
// 1) tune the channel on the new device // here should be added some checks, if the device is really available (i.e. not recording)
// 2) make the new device to actual device 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; break;
} }
} }

View File

@@ -21,7 +21,6 @@
class cFemonOsd : public cOsdObject, public cThread, public cStatus { class cFemonOsd : public cOsdObject, public cThread, public cStatus {
private: private:
bool m_Active;
cOsd *m_Osd; cOsd *m_Osd;
cFemonReceiver *m_Receiver; cFemonReceiver *m_Receiver;
int m_Frontend; int m_Frontend;

View File

@@ -21,7 +21,6 @@ cFemonReceiver::cFemonReceiver(int Ca, int Vpid, int Apid[], int Dpid[])
:cReceiver(Ca, -1, Vpid, Apid, Dpid, NULL), cThread("femon receiver") :cReceiver(Ca, -1, Vpid, Apid, Dpid, NULL), cThread("femon receiver")
{ {
Dprintf("%s()\n", __PRETTY_FUNCTION__); Dprintf("%s()\n", __PRETTY_FUNCTION__);
m_Active = false;
m_VideoPid = Vpid; m_VideoPid = Vpid;
m_AudioPid = Apid[0]; m_AudioPid = Apid[0];
m_AC3Pid = Dpid[0]; m_AC3Pid = Dpid[0];
@@ -60,10 +59,8 @@ cFemonReceiver::~cFemonReceiver(void)
{ {
Dprintf("%s()\n", __PRETTY_FUNCTION__); Dprintf("%s()\n", __PRETTY_FUNCTION__);
Detach(); Detach();
if (m_Active) { if (Running())
m_Active = false;
Cancel(); Cancel();
}
} }
/* The following function originates from libdvbmpeg: */ /* The following function originates from libdvbmpeg: */
@@ -72,7 +69,7 @@ void cFemonReceiver::GetVideoInfo(uint8_t *mbuf, int count)
uint8_t *headr; uint8_t *headr;
int found = 0; int found = 0;
int c = 0; int c = 0;
m_VideoValid = false; //m_VideoValid = false;
while ((found < 4) && ((c + 4) < count)) { while ((found < 4) && ((c + 4) < count)) {
uint8_t *b; uint8_t *b;
b = mbuf + c; b = mbuf + c;
@@ -165,7 +162,7 @@ void cFemonReceiver::GetAudioInfo(uint8_t *mbuf, int count)
int found = 0; int found = 0;
int c = 0; int c = 0;
int tmp = 0; int tmp = 0;
m_AudioValid = false; //m_AudioValid = false;
while (!found && (c < count)) { while (!found && (c < count)) {
uint8_t *b = mbuf + c; uint8_t *b = mbuf + c;
if ((b[0] == 0xff) && ((b[1] & 0xf8) == 0xf8)) if ((b[0] == 0xff) && ((b[1] & 0xf8) == 0xf8))
@@ -214,7 +211,7 @@ void cFemonReceiver::GetAC3Info(uint8_t *mbuf, int count)
int found = 0; int found = 0;
int c = 0; int c = 0;
uint8_t frame; uint8_t frame;
m_AC3Valid = false; //m_AC3Valid = false;
while (!found && (c < count)) { while (!found && (c < count)) {
uint8_t *b = mbuf + c; uint8_t *b = mbuf + c;
if ((b[0] == 0x0b) && (b[1] == 0x77)) if ((b[0] == 0x0b) && (b[1] == 0x77))
@@ -253,14 +250,10 @@ void cFemonReceiver::GetAC3Info(uint8_t *mbuf, int count)
void cFemonReceiver::Activate(bool On) void cFemonReceiver::Activate(bool On)
{ {
Dprintf("%s(%d)\n", __PRETTY_FUNCTION__, On); Dprintf("%s(%d)\n", __PRETTY_FUNCTION__, On);
if (On) { if (On)
if (!m_Active) Start();
Start(); else
}
else if (m_Active) {
m_Active = false;
Cancel(); Cancel();
}
} }
void cFemonReceiver::Receive(uchar *Data, int Length) void cFemonReceiver::Receive(uchar *Data, int Length)
@@ -309,8 +302,7 @@ void cFemonReceiver::Action(void)
{ {
Dprintf("%s()\n", __PRETTY_FUNCTION__); Dprintf("%s()\n", __PRETTY_FUNCTION__);
cTimeMs t; cTimeMs t;
m_Active = true; while (Running()) {
while (m_Active) {
t.Set(0); t.Set(0);
// TS packet 188 bytes - 4 byte header; MPEG standard defines 1Mbit = 1000000bit // 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_VideoBitrate = (8.0 * 184.0 * m_VideoPacketCount) / (femonConfig.calcinterval * 100000.0);

View File

@@ -53,7 +53,6 @@ enum eDolbySurroundMode {
class cFemonReceiver : public cReceiver, public cThread { class cFemonReceiver : public cReceiver, public cThread {
private: private:
bool m_Active;
int m_VideoPid; int m_VideoPid;
int m_AudioPid; int m_AudioPid;
int m_AC3Pid; int m_AC3Pid;