Compare commits
2 Commits
Author | SHA1 | Date |
---|---|---|
Rolf Ahrenberg | 5819441c03 | |
Rolf Ahrenberg | b0b0fe4f02 |
18
COPYING
18
COPYING
|
@ -2,7 +2,7 @@
|
|||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
|
@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
|
|||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
the GNU Lesser General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
|
@ -55,7 +55,7 @@ patent must be licensed for everyone's free use or not licensed at all.
|
|||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
|
@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
|
|||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
|
@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
|
|||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
|
@ -225,7 +225,7 @@ impose that choice.
|
|||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
|
@ -278,7 +278,7 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
|||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
|
@ -305,7 +305,7 @@ the "copyright" line and a pointer to where the full notice is found.
|
|||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
@ -336,5 +336,5 @@ necessary. Here is a sample; alter the names:
|
|||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License.
|
||||
|
|
28
HISTORY
28
HISTORY
|
@ -252,3 +252,31 @@ VDR Plugin 'femon' Revision History
|
|||
2007-05-15: Version 1.1.3
|
||||
|
||||
- Fixed a race condition in cFemonReceiver (Thanks to Reinhard Nissl).
|
||||
|
||||
2007-10-14: Version 1.1.4
|
||||
|
||||
- Backported from 1.2.2.
|
||||
|
||||
2008-01-20: Version 1.1.5
|
||||
|
||||
- Updated Italian translation (Thanks to Gringo).
|
||||
- Added '-Wno-parentheses' to the compiler options.
|
||||
|
||||
2007-08-14: Version 1.2.0
|
||||
|
||||
- Updated for vdr-1.5.7.
|
||||
|
||||
2007-08-19: Version 1.2.1
|
||||
|
||||
- Updated for vdr-1.5.8.
|
||||
|
||||
2007-10-14: Version 1.2.2
|
||||
|
||||
- Added Spids support.
|
||||
- Minor OSD layout changes.
|
||||
|
||||
2008-01-20: Version 1.2.3
|
||||
|
||||
- Updated Italian translation (Thanks to Gringo).
|
||||
- Added '-Wno-parentheses' to the compiler options.
|
||||
- Mapped 'kInfo' as help key in setup menu.
|
||||
|
|
16
Makefile
16
Makefile
|
@ -15,17 +15,19 @@ STRIP = strip
|
|||
# The official name of this plugin.
|
||||
# This name will be used in the '-P...' option of VDR to load the plugin.
|
||||
# By default the main source file also carries this name.
|
||||
# IMPORTANT: the presence of this macro is important for the Make.config
|
||||
# file. So it must be defined, even if it is not used here!
|
||||
#
|
||||
PLUGIN = femon
|
||||
|
||||
### The version number of this plugin (taken from the main source file):
|
||||
|
||||
VERSION = $(shell grep 'static const char VERSION\[\] *=' $(PLUGIN).h | awk '{ print $$6 }' | sed -e 's/[";]//g')
|
||||
VERSION = $(shell grep 'static const char VERSION\[\] *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g')
|
||||
|
||||
### The C++ compiler and options:
|
||||
|
||||
CXX ?= g++
|
||||
CXXFLAGS ?= -fPIC -g -O2 -Wall -Woverloaded-virtual
|
||||
CXXFLAGS ?= -fPIC -g -O2 -Wall -Woverloaded-virtual -Wno-parentheses
|
||||
|
||||
### The directory environment:
|
||||
|
||||
|
@ -67,14 +69,18 @@ all-redirect: all
|
|||
|
||||
OBJS = femon.o femonosd.o femonreceiver.o femoncfg.o femoni18n.o femontools.o
|
||||
|
||||
### The main target:
|
||||
|
||||
all: libvdr-$(PLUGIN).so
|
||||
|
||||
### Implicit rules:
|
||||
|
||||
%.o: %.c
|
||||
$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $<
|
||||
|
||||
# Dependencies:
|
||||
### Dependencies:
|
||||
|
||||
MAKEDEP = g++ -MM -MG
|
||||
MAKEDEP = $(CXX) -MM -MG
|
||||
DEPFILE = .dependencies
|
||||
$(DEPFILE): Makefile
|
||||
@$(MAKEDEP) $(DEFINES) $(INCLUDES) $(OBJS:%.o=%.c) > $@
|
||||
|
@ -83,8 +89,6 @@ $(DEPFILE): Makefile
|
|||
|
||||
### Targets:
|
||||
|
||||
all: libvdr-$(PLUGIN).so
|
||||
|
||||
libvdr-$(PLUGIN).so: $(OBJS)
|
||||
$(CXX) $(CXXFLAGS) -shared $(OBJS) -o $@
|
||||
ifndef FEMON_DEBUG
|
||||
|
|
7
README
7
README
|
@ -1,11 +1,16 @@
|
|||
This is a DVB Frontend Status Monitor plugin for the Video Disk Recorder (VDR).
|
||||
|
||||
Written by: R o l f . A h r e n b e r g @ s c i . f i
|
||||
Written by: Rolf Ahrenberg
|
||||
< R o l f . A h r e n b e r g @ s c i . f i >
|
||||
|
||||
Project's homepage: http://www.saunalahti.fi/~rahrenbe/vdr/femon/
|
||||
|
||||
Latest version available at: http://www.saunalahti.fi/~rahrenbe/vdr/femon/
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
See the file COPYING for license information.
|
||||
|
||||
Requirements:
|
||||
|
|
42
femon.c
42
femon.c
|
@ -14,12 +14,38 @@
|
|||
#include "femonosd.h"
|
||||
#include "femonservice.h"
|
||||
#include "femontools.h"
|
||||
#include "femon.h"
|
||||
|
||||
#if defined(APIVERSNUM) && APIVERSNUM < 10400
|
||||
#error "VDR-1.4.0 API version or greater is required!"
|
||||
#endif
|
||||
|
||||
static const char VERSION[] = "1.1.5";
|
||||
static const char DESCRIPTION[] = "DVB Signal Information Monitor (OSD)";
|
||||
static const char MAINMENUENTRY[] = "Signal Information";
|
||||
|
||||
class cPluginFemon : public cPlugin {
|
||||
public:
|
||||
cPluginFemon(void);
|
||||
virtual ~cPluginFemon();
|
||||
virtual const char *Version(void) { return VERSION; }
|
||||
virtual const char *Description(void) { return tr(DESCRIPTION); }
|
||||
virtual const char *CommandLineHelp(void);
|
||||
virtual bool ProcessArgs(int argc, char *argv[]);
|
||||
virtual bool Initialize(void);
|
||||
virtual bool Start(void);
|
||||
virtual void Stop(void);
|
||||
virtual void Housekeeping(void);
|
||||
virtual void MainThreadHook(void) {}
|
||||
virtual cString Active(void) { return NULL; }
|
||||
virtual const char *MainMenuEntry(void) { return (femonConfig.hidemenu ? NULL : tr(MAINMENUENTRY)); }
|
||||
virtual cOsdObject *MainMenuAction(void);
|
||||
virtual cMenuSetupPage *SetupMenu(void);
|
||||
virtual bool SetupParse(const char *Name, const char *Value);
|
||||
virtual bool Service(const char *Id, void *Data);
|
||||
virtual const char **SVDRPHelpPages(void);
|
||||
virtual cString SVDRPCommand(const char *Command, const char *Option, int &ReplyCode);
|
||||
};
|
||||
|
||||
cPluginFemon::cPluginFemon()
|
||||
{
|
||||
// Initialize any member variables here.
|
||||
|
@ -234,6 +260,20 @@ cString cPluginFemon::SVDRPCommand(const char *Command, const char *Option, int
|
|||
return NULL;
|
||||
}
|
||||
|
||||
class cMenuFemonSetup : public cMenuSetupPage {
|
||||
private:
|
||||
const char *dispmodes[eFemonModeMaxNumber];
|
||||
const char *skins[eFemonSkinMaxNumber];
|
||||
const char *themes[eFemonThemeMaxNumber];
|
||||
cFemonConfig data;
|
||||
virtual void Setup(void);
|
||||
protected:
|
||||
virtual eOSState ProcessKey(eKeys Key);
|
||||
virtual void Store(void);
|
||||
public:
|
||||
cMenuFemonSetup(void);
|
||||
};
|
||||
|
||||
cMenuFemonSetup::cMenuFemonSetup(void)
|
||||
{
|
||||
Dprintf("%s()\n", __PRETTY_FUNCTION__);
|
||||
|
|
56
femon.h
56
femon.h
|
@ -1,56 +0,0 @@
|
|||
/*
|
||||
* Frontend Status Monitor plugin for the Video Disk Recorder
|
||||
*
|
||||
* See the README file for copyright information and how to reach the author.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef __FEMON_H
|
||||
#define __FEMON_H
|
||||
|
||||
#include <vdr/plugin.h>
|
||||
|
||||
static const char VERSION[] = "1.1.3";
|
||||
static const char DESCRIPTION[] = "DVB Signal Information Monitor (OSD)";
|
||||
static const char MAINMENUENTRY[] = "Signal Information";
|
||||
|
||||
class cPluginFemon : public cPlugin {
|
||||
public:
|
||||
cPluginFemon(void);
|
||||
virtual ~cPluginFemon();
|
||||
virtual const char *Version(void) { return VERSION; }
|
||||
virtual const char *Description(void) { return tr(DESCRIPTION); }
|
||||
virtual const char *CommandLineHelp(void);
|
||||
virtual bool ProcessArgs(int argc, char *argv[]);
|
||||
virtual bool Initialize(void);
|
||||
virtual bool Start(void);
|
||||
virtual void Stop(void);
|
||||
virtual void Housekeeping(void);
|
||||
virtual void MainThreadHook(void) {}
|
||||
virtual cString Active(void) { return NULL; }
|
||||
virtual const char *MainMenuEntry(void) { return (femonConfig.hidemenu ? NULL : tr(MAINMENUENTRY)); }
|
||||
virtual cOsdObject *MainMenuAction(void);
|
||||
virtual cMenuSetupPage *SetupMenu(void);
|
||||
virtual bool SetupParse(const char *Name, const char *Value);
|
||||
virtual bool Service(const char *Id, void *Data);
|
||||
virtual const char **SVDRPHelpPages(void);
|
||||
virtual cString SVDRPCommand(const char *Command, const char *Option, int &ReplyCode);
|
||||
};
|
||||
|
||||
class cMenuFemonSetup : public cMenuSetupPage {
|
||||
private:
|
||||
const char *dispmodes[eFemonModeMaxNumber];
|
||||
const char *skins[eFemonSkinMaxNumber];
|
||||
const char *themes[eFemonThemeMaxNumber];
|
||||
cFemonConfig data;
|
||||
virtual void Setup(void);
|
||||
protected:
|
||||
virtual eOSState ProcessKey(eKeys Key);
|
||||
virtual void Store(void);
|
||||
public:
|
||||
cMenuFemonSetup(void);
|
||||
};
|
||||
|
||||
#endif //__FEMON_H
|
||||
|
152
femoni18n.c
152
femoni18n.c
|
@ -12,7 +12,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "DVB Signal Information Monitor (OSD)", // English
|
||||
"DVB Signal Informationsanzeige (OSD)", // Deutsch
|
||||
"", // Slovenski
|
||||
"Visualizza le informazioni sul segnale DVB", // Italiano
|
||||
"Visualizza informazioni segnale DVB", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Affiche les informations du signal DVB", // Français
|
||||
|
@ -34,7 +34,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Signal Information", // English
|
||||
"Signalinformationen", // Deutsch
|
||||
"", // Slovenski
|
||||
"Informazioni sul segnale", // Italiano
|
||||
"Informazioni segnale", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Signal DVB", // Français
|
||||
|
@ -100,7 +100,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Horizontal offset", // English
|
||||
"Horizontaler Offset", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Limite orizzontale", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Déplacement horizontal", // Français
|
||||
|
@ -122,7 +122,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Default display mode", // English
|
||||
"Standard Anzeigemodus", // Deutsch
|
||||
"", // Slovenski
|
||||
"Modo di visualizzazione standard", // Italiano
|
||||
"Modalità visualizz. standard", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Affichage par défaut", // Français
|
||||
|
@ -144,7 +144,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "basic", // English
|
||||
"Standard", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"base", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"basique", // Français
|
||||
|
@ -166,7 +166,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "transponder", // English
|
||||
"Transponder", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"transponder", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"transpondeur", // Français
|
||||
|
@ -188,7 +188,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "stream", // English
|
||||
"Stream", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"flusso", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"flux", // Français
|
||||
|
@ -210,7 +210,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Skin", // English
|
||||
"Oberfläche", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Interfaccia", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Skin", // Français
|
||||
|
@ -232,7 +232,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Theme", // English
|
||||
"Thema", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Tema", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Thème", // Français
|
||||
|
@ -254,7 +254,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Classic", // English
|
||||
"Klassischer", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Classico", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Classique", // Français
|
||||
|
@ -430,7 +430,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Hide main menu entry", // English
|
||||
"Hauptmenüeintrag verstecken", // Deutsch
|
||||
"", // Slovenski
|
||||
"Nascondi voce menù", // Italiano
|
||||
"Nascondi voce menu principale", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Masquer dans le menu principal", // Français
|
||||
|
@ -452,7 +452,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "OSD update interval [0.1s]", // English
|
||||
"OSD Updateintervall [0.1s]", // Deutsch
|
||||
"", // Slovenski
|
||||
"Intervallo di aggiornamento [0.1s]", // Italiano
|
||||
"Intervallo aggiornamento OSD [0.1s]", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Intervalle de mise à jour (0,1s)", // Français
|
||||
|
@ -474,7 +474,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Analyze stream", // English
|
||||
"Stream analysieren", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Analizza flusso", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Analyser le flux", // Français
|
||||
|
@ -496,7 +496,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Calculation interval [0.1s]", // English
|
||||
"Berechnungsintervall [0.1s]", // Deutsch
|
||||
"", // Slovenski
|
||||
"Intervallo di calcolo [0.1s]", // Italiano
|
||||
"Intervallo calcolo [0.1s]", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Intervalle de calcul (0,1s)", // Français
|
||||
|
@ -540,7 +540,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Green limit [%]", // English
|
||||
"Grenze Grün [%]", // Deutsch
|
||||
"", // Slovenski
|
||||
"Limite de verde [%]", // Italiano
|
||||
"Limite verde [%]", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Limite du vert (%)", // Français
|
||||
|
@ -716,7 +716,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "None", // English
|
||||
"Nichts", // Deutsch
|
||||
"None", // Slovenski
|
||||
"None", // Italiano
|
||||
"Nessuno", // Italiano
|
||||
"None", // Nederlands
|
||||
"None", // Português
|
||||
"Aucun", // Français
|
||||
|
@ -738,7 +738,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Off", // English
|
||||
"Aus", // Deutsch
|
||||
"Off", // Slovenski
|
||||
"Off", // Italiano
|
||||
"Disattivo", // Italiano
|
||||
"Off", // Nederlands
|
||||
"Off", // Português
|
||||
"Non", // Français
|
||||
|
@ -760,7 +760,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "On", // English
|
||||
"Ein", // Deutsch
|
||||
"On", // Slovenski
|
||||
"On", // Italiano
|
||||
"Attivo", // Italiano
|
||||
"On", // Nederlands
|
||||
"On", // Português
|
||||
"Oui", // Français
|
||||
|
@ -848,7 +848,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Stream Information", // English
|
||||
"Streaminformation", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Informazione flusso", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Information flux", // Français
|
||||
|
@ -870,7 +870,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "MPEG Layer", // English
|
||||
"MPEG Layer", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Formato MPEG", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"MPEG Layer", // Français
|
||||
|
@ -892,7 +892,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Video Stream", // English
|
||||
"Video Stream", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Flusso video", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Flux vidéo", // Français
|
||||
|
@ -914,7 +914,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Bitrate", // English
|
||||
"Bitrate", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Bitrate", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Bitrate", // Français
|
||||
|
@ -936,7 +936,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Frame Rate", // English
|
||||
"Bildrate", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Frame rate", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Rafraîchissement", // Français
|
||||
|
@ -980,7 +980,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Aspect Ratio", // English
|
||||
"Seitenverhältnis", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Dimensione immagine", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Proportions d'image", // Français
|
||||
|
@ -1002,7 +1002,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "reserved", // English
|
||||
"belegt", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"riservato", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"réservé", // Français
|
||||
|
@ -1024,7 +1024,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "free", // English
|
||||
"frei", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"libero", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"libre", // Français
|
||||
|
@ -1046,7 +1046,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Video Format", // English
|
||||
"Bildformat", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Formato video", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Standard vidéo", // Français
|
||||
|
@ -1112,7 +1112,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "unknown", // English
|
||||
"unbekannt", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"sconosciuto", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"inconnu", // Français
|
||||
|
@ -1134,7 +1134,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Resolution", // English
|
||||
"Auflösung", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Risoluzione", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Résolution", // Français
|
||||
|
@ -1156,7 +1156,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Audio Stream", // English
|
||||
"Audio Stream", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Flusso audio", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Flux audio", // Français
|
||||
|
@ -1178,7 +1178,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Sampling Frequency", // English
|
||||
"Abtastrate", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Frequenza campionamento", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Fréquence d'échantillonage", // Français
|
||||
|
@ -1376,7 +1376,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "not indicated", // English
|
||||
"nicht angegeben", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"non indicato", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"non indiqué", // Français
|
||||
|
@ -1420,7 +1420,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "AC-3 Stream", // English
|
||||
"AC-3 Stream", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Flusso AC-3", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Flux AC-3", // Français
|
||||
|
@ -1442,7 +1442,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Frame Size", // English
|
||||
"Frame Größe", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Dimensione frame", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Taille de paquet", // Français
|
||||
|
@ -1464,7 +1464,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Bit Stream Mode", // English
|
||||
"Bitstream Modus", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Modalità bitstream", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Mode bitstream", // Français
|
||||
|
@ -1486,7 +1486,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Audio Coding Mode", // English
|
||||
"Audiokodierung", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Modalità codifica audio", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Mode de codage audio", // Français
|
||||
|
@ -1508,7 +1508,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Center Mix Level", // English
|
||||
"Center Mix Pegel", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Livello sonoro centrale", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Niveau sonore milieu", // Français
|
||||
|
@ -1530,7 +1530,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Surround Mix Level", // English
|
||||
"Surround Mix Pegel", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Livello sonoro surround", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Niveau sonore surround", // Français
|
||||
|
@ -1552,7 +1552,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Dolby Surround Mode", // English
|
||||
"Dolby Surround Modus", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Modalità Dolby Surround", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Mode Dolby Surround", // Français
|
||||
|
@ -1574,7 +1574,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Low Frequency Effects", // English
|
||||
"Tieftöner Effekte", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Effetti bassa frequenza", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Effets de basses", // Français
|
||||
|
@ -1596,7 +1596,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Dialogue Normalization", // English
|
||||
"Dialog Normalisierung", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Normalizzazione dialoghi", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Normalisation des dialogues", // Français
|
||||
|
@ -1618,7 +1618,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Complete Main (CM)", // English
|
||||
"Complete Main (CM)", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Principale (CM)", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Principal (CM)", // Français
|
||||
|
@ -1640,7 +1640,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Music and Effects (ME)", // English
|
||||
"Musik und Effekte (ME)", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Musica ed effetti (ME)", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Musique et effets (ME)", // Français
|
||||
|
@ -1662,7 +1662,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Visually Impaired (VI)", // English
|
||||
"Sehbehindert (VI)", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Immagine alterata (VI)", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Malvoyants (VI)", // Français
|
||||
|
@ -1684,7 +1684,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Hearing Impaired (HI)", // English
|
||||
"Hörbehindert (HI)", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Suono deteriorato (HI)", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Malentendants (HI)", // Français
|
||||
|
@ -1706,7 +1706,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Dialogue (D)", // English
|
||||
"Dialog (D)", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Dialogo (D)", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Dialogue (D)", // Français
|
||||
|
@ -1728,7 +1728,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Commentary (C)", // English
|
||||
"Kommentar (C)", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Commenti (C)", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Commentaires (C)", // Français
|
||||
|
@ -1750,7 +1750,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Emergency (E)", // English
|
||||
"Notfall (E)", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Emergenza (E)", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Urgence (E)", // Français
|
||||
|
@ -1772,7 +1772,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Voice Over (VO)", // English
|
||||
"Überlagerte Stimme (VO)", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Voce off (VO)", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Voix off (VO)", // Français
|
||||
|
@ -1794,7 +1794,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Karaoke", // English
|
||||
"Karaoke", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Karaoke", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Karaoke", // Français
|
||||
|
@ -1816,7 +1816,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Ch1", // English "Channel 1"
|
||||
"Kan1", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Can. 1", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Can. 1", // Français
|
||||
|
@ -1838,7 +1838,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Ch2", // English "Channel 2"
|
||||
"Kan2", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Can. 2", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Can. 2", // Français
|
||||
|
@ -1860,7 +1860,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "C", // English "Center"
|
||||
"C", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"C", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Centre", // Français
|
||||
|
@ -1882,7 +1882,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "L", // English "Left"
|
||||
"L", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"S", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Gauche", // Français
|
||||
|
@ -1904,7 +1904,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "R", // English "Right"
|
||||
"R", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"D", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Droite", // Français
|
||||
|
@ -1926,7 +1926,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "S", // English "Surround"
|
||||
"S", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"S", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Surround", // Français
|
||||
|
@ -1948,7 +1948,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "SL", // English "Surround Left"
|
||||
"SL", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"SS", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Surround gauche", // Français
|
||||
|
@ -1970,7 +1970,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "SR", // English "Surround Right"
|
||||
"SR", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"SD", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Surround droit", // Français
|
||||
|
@ -1992,7 +1992,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Show CA system", // English
|
||||
"CA System anzeigen", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Mostra sistema CA", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Système CA", // Français
|
||||
|
@ -2014,7 +2014,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Fixed", // English
|
||||
"Fest", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Fisso", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Fixe", // Français
|
||||
|
@ -2036,7 +2036,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Analog", // English
|
||||
"Analog", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Analogico", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Analogique", // Français
|
||||
|
@ -2058,7 +2058,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Free to Air", // English
|
||||
"Frei empfangbar", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"In chiaro", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Free To Air", // Français
|
||||
|
@ -2080,7 +2080,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "SECA/Mediaguard", // English
|
||||
"SECA/Mediaguard", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"SECA/Mediaguard", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"SECA/Mediaguard", // Français
|
||||
|
@ -2102,7 +2102,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Viaccess", // English
|
||||
"Viaccess", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Viaccess", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Viaccess", // Français
|
||||
|
@ -2124,7 +2124,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Irdeto", // English
|
||||
"Irdeto", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Irdeto", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Irdeto", // Français
|
||||
|
@ -2146,7 +2146,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "NDS/Videoguard", // English
|
||||
"NDS/Videoguard", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"NDS/Videoguard", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"NDS/Videoguard", // Français
|
||||
|
@ -2168,7 +2168,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Conax", // English
|
||||
"Conax", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Conax", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"Conax", // Français
|
||||
|
@ -2190,7 +2190,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "CryptoWorks", // English
|
||||
"CryptoWorks", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"CryptoWorks", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"CryptoWorks", // Français
|
||||
|
@ -2212,7 +2212,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "PowerVu", // English
|
||||
"PowerVu", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"PowerVu", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"PowerVu", // Français
|
||||
|
@ -2234,7 +2234,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "BetaCrypt", // English
|
||||
"BetaCrypt", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"BetaCrypt", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"BetaCrypt", // Français
|
||||
|
@ -2256,7 +2256,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "NagraVision", // English
|
||||
"NagraVision", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"NagraVision", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"NagraVision", // Français
|
||||
|
@ -2278,7 +2278,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "SkyCrypt", // English
|
||||
"SkyCrypt", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"SkyCrypt", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"SkyCrypt", // Français
|
||||
|
@ -2300,7 +2300,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Use SVDRP service", // English
|
||||
"SVDRP Service verwenden", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Utilizza servizio SVDRP", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"", // Français
|
||||
|
@ -2322,7 +2322,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "SVDRP service IP", // English
|
||||
"SVDRP Service IP", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"IP servizio SVDRP", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"", // Français
|
||||
|
@ -2344,7 +2344,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "SVDRP service port", // English
|
||||
"SVDRP Service Port", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Porta servizio SVDRP", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"", // Français
|
||||
|
@ -2366,7 +2366,7 @@ const tI18nPhrase Phrases[] = {
|
|||
{ "Femon not available while replaying", // English
|
||||
"", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"Femon non disponibile durante la riproduzione", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Português
|
||||
"", // Français
|
||||
|
|
15
femonosd.c
15
femonosd.c
|
@ -44,7 +44,7 @@
|
|||
#define OSDHEIGHT femonConfig.osdheight // in pixels
|
||||
#define OSDWIDTH 600 // in pixels
|
||||
#define OSDROWHEIGHT m_Font->Height() // in pixels
|
||||
#define OSDINFOHEIGHT (OSDROWHEIGHT * 11) // in pixels (11 rows)
|
||||
#define OSDINFOHEIGHT (OSDROWHEIGHT * 12) // in pixels (12 rows)
|
||||
#define OSDSTATUSHEIGHT (OSDROWHEIGHT * 6) // in pixels (6 rows)
|
||||
#define OSDSPACING 5
|
||||
#define OSDCORNERING 10
|
||||
|
@ -319,8 +319,8 @@ void cFemonOsd::DrawInfoWindow(void)
|
|||
m_Osd->DrawText(OSDINFOWIN_X(3), OSDINFOWIN_Y(offset), tr("Dpid"), femonTheme[femonConfig.theme].clrInactiveText, femonTheme[femonConfig.theme].clrBackground, m_Font);
|
||||
m_Osd->DrawText(OSDINFOWIN_X(4), OSDINFOWIN_Y(offset), *getDpids(channel), femonTheme[femonConfig.theme].clrActiveText, femonTheme[femonConfig.theme].clrBackground, m_Font);
|
||||
offset += OSDROWHEIGHT;
|
||||
m_Osd->DrawText(OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), tr("CA"), femonTheme[femonConfig.theme].clrInactiveText, femonTheme[femonConfig.theme].clrBackground, m_Font);
|
||||
m_Osd->DrawText(OSDINFOWIN_X(2), OSDINFOWIN_Y(offset), *getCAids(channel, femonConfig.showcasystem), femonTheme[femonConfig.theme].clrActiveText, femonTheme[femonConfig.theme].clrBackground, m_Font);
|
||||
m_Osd->DrawText(OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), tr("Spid"), femonTheme[femonConfig.theme].clrInactiveText, femonTheme[femonConfig.theme].clrBackground, m_Font);
|
||||
m_Osd->DrawText(OSDINFOWIN_X(2), OSDINFOWIN_Y(offset), *getSpids(channel), femonTheme[femonConfig.theme].clrActiveText, femonTheme[femonConfig.theme].clrBackground, m_Font);
|
||||
m_Osd->DrawText(OSDINFOWIN_X(3), OSDINFOWIN_Y(offset), tr("Tpid"), femonTheme[femonConfig.theme].clrInactiveText, femonTheme[femonConfig.theme].clrBackground, m_Font);
|
||||
m_Osd->DrawText(OSDINFOWIN_X(4), OSDINFOWIN_Y(offset), *cString::sprintf("%d", channel->Tpid()), femonTheme[femonConfig.theme].clrActiveText, femonTheme[femonConfig.theme].clrBackground, m_Font);
|
||||
offset += OSDROWHEIGHT;
|
||||
|
@ -334,6 +334,9 @@ void cFemonOsd::DrawInfoWindow(void)
|
|||
m_Osd->DrawText(OSDINFOWIN_X(3), OSDINFOWIN_Y(offset), tr("Rid"), femonTheme[femonConfig.theme].clrInactiveText, femonTheme[femonConfig.theme].clrBackground, m_Font);
|
||||
m_Osd->DrawText(OSDINFOWIN_X(4), OSDINFOWIN_Y(offset), *cString::sprintf("%d", channel->Rid()), femonTheme[femonConfig.theme].clrActiveText, femonTheme[femonConfig.theme].clrBackground, m_Font);
|
||||
offset += OSDROWHEIGHT;
|
||||
m_Osd->DrawText(OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), tr("CA"), femonTheme[femonConfig.theme].clrInactiveText, femonTheme[femonConfig.theme].clrBackground, m_Font);
|
||||
m_Osd->DrawText(OSDINFOWIN_X(2), OSDINFOWIN_Y(offset), *getCAids(channel, femonConfig.showcasystem), femonTheme[femonConfig.theme].clrActiveText, femonTheme[femonConfig.theme].clrBackground, m_Font);
|
||||
offset += OSDROWHEIGHT;
|
||||
switch (m_FrontendInfo.type) {
|
||||
case FE_QPSK:
|
||||
m_Osd->DrawText(OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), *cString::sprintf("%s #%d - %s", tr("Satellite Card"), (m_SvdrpFrontend >= 0) ? m_SvdrpFrontend : cDevice::ActualDevice()->CardIndex(), m_FrontendInfo.name), femonTheme[femonConfig.theme].clrActiveText, femonTheme[femonConfig.theme].clrBackground, m_Font);
|
||||
|
@ -432,6 +435,7 @@ void cFemonOsd::DrawInfoWindow(void)
|
|||
m_Osd->DrawText(OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), tr("Resolution"), femonTheme[femonConfig.theme].clrInactiveText, femonTheme[femonConfig.theme].clrBackground, m_Font);
|
||||
m_Osd->DrawText(OSDINFOWIN_X(3), OSDINFOWIN_Y(offset), m_Receiver ? *cString::sprintf("%d x %d", m_Receiver->VideoHorizontalSize(), m_Receiver->VideoVerticalSize()) : *cString::sprintf("---"), femonTheme[femonConfig.theme].clrActiveText, femonTheme[femonConfig.theme].clrBackground, m_Font);
|
||||
offset += OSDROWHEIGHT;
|
||||
offset += OSDROWHEIGHT;
|
||||
m_Osd->DrawText(OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), tr("Audio Stream"), femonTheme[femonConfig.theme].clrActiveText, femonTheme[femonConfig.theme].clrBackground, m_Font);
|
||||
m_Osd->DrawText(OSDINFOWIN_X(3), OSDINFOWIN_Y(offset), *cString::sprintf("#%d %s", IS_AUDIO_TRACK(track) ? channel->Apid(int(track - ttAudioFirst)) : channel->Apid(0), IS_AUDIO_TRACK(track) ? channel->Alang(int(track - ttAudioFirst)) : channel->Alang(0)), femonTheme[femonConfig.theme].clrActiveText, femonTheme[femonConfig.theme].clrBackground, m_Font);
|
||||
offset += OSDROWHEIGHT;
|
||||
|
@ -451,13 +455,16 @@ void cFemonOsd::DrawInfoWindow(void)
|
|||
else if (m_DisplayMode == eFemonModeAC3) {
|
||||
m_Osd->DrawRectangle(0, OSDINFOWIN_Y(0), OSDWIDTH, OSDINFOWIN_Y(OSDINFOHEIGHT), femonTheme[femonConfig.theme].clrBackground);
|
||||
m_Osd->DrawRectangle(0, OSDINFOWIN_Y(offset), OSDWIDTH, OSDINFOWIN_Y(offset+OSDROWHEIGHT-1), femonTheme[femonConfig.theme].clrTitleBackground);
|
||||
m_Osd->DrawText( OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), *cString::sprintf("%s - %s #%d %s", tr("Stream Information"), tr("AC-3 Stream"), IS_DOLBY_TRACK(track) ? channel->Dpid(int(track - ttDolbyFirst)) : channel->Dpid(0), IS_DOLBY_TRACK(track) ? channel->Dlang(int(track - ttDolbyFirst)) : channel->Dlang(0)), femonTheme[femonConfig.theme].clrTitleText, femonTheme[femonConfig.theme].clrTitleBackground, m_Font);
|
||||
m_Osd->DrawText( OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), tr("Stream Information"), femonTheme[femonConfig.theme].clrTitleText, femonTheme[femonConfig.theme].clrTitleBackground, m_Font);
|
||||
if (IS_OSDCORNERING) {
|
||||
m_Osd->DrawEllipse(0, OSDINFOWIN_Y(0), OSDCORNERING, OSDINFOWIN_Y(OSDCORNERING), clrTransparent, -2);
|
||||
m_Osd->DrawEllipse((OSDWIDTH-OSDCORNERING), OSDINFOWIN_Y(0), OSDWIDTH, OSDINFOWIN_Y(OSDCORNERING), clrTransparent, -1);
|
||||
}
|
||||
offset += OSDROWHEIGHT;
|
||||
if (m_Receiver && m_Receiver->AC3Valid() && IS_DOLBY_TRACK(track)) {
|
||||
m_Osd->DrawText(OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), tr("AC-3 Stream"), femonTheme[femonConfig.theme].clrInactiveText, femonTheme[femonConfig.theme].clrBackground, m_Font);
|
||||
m_Osd->DrawText(OSDINFOWIN_X(3), OSDINFOWIN_Y(offset), *cString::sprintf("#%d %s", channel->Dpid(int(track - ttDolbyFirst)), channel->Dlang(int(track - ttDolbyFirst))), femonTheme[femonConfig.theme].clrTitleText, femonTheme[femonConfig.theme].clrTitleBackground, m_Font);
|
||||
offset += OSDROWHEIGHT;
|
||||
m_Osd->DrawText(OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), tr("Bitrate"), femonTheme[femonConfig.theme].clrInactiveText, femonTheme[femonConfig.theme].clrBackground, m_Font);
|
||||
m_Osd->DrawText(OSDINFOWIN_X(3), OSDINFOWIN_Y(offset), *cString::sprintf("%s (%s)", *getBitrateKbits(m_Receiver->AC3StreamBitrate()), *getBitrateKbits(m_Receiver->AC3Bitrate())), femonTheme[femonConfig.theme].clrActiveText, femonTheme[femonConfig.theme].clrBackground, m_Font);
|
||||
offset += OSDROWHEIGHT;
|
||||
|
|
|
@ -165,6 +165,15 @@ cString getDpids(const cChannel *channel)
|
|||
return dpids;
|
||||
}
|
||||
|
||||
cString getSpids(const cChannel *channel)
|
||||
{
|
||||
int value = 0;
|
||||
cString spids = cString::sprintf("%d", channel->Spid(value));
|
||||
while (channel->Spid(++value) && (value < MAXSPIDS))
|
||||
spids = cString::sprintf("%s, %d", *spids, channel->Spid(value));
|
||||
return spids;
|
||||
}
|
||||
|
||||
cString getCAids(const cChannel *channel, bool identify)
|
||||
{
|
||||
cString caids;
|
||||
|
|
|
@ -33,6 +33,7 @@ uint32_t getUNC(int cardIndex = 0);
|
|||
|
||||
cString getApids(const cChannel *channel);
|
||||
cString getDpids(const cChannel *channel);
|
||||
cString getSpids(const cChannel *channel);
|
||||
cString getCAids(const cChannel *channel, bool identify = false);
|
||||
cString getCA(int value);
|
||||
cString getCoderate(int value);
|
||||
|
|
Loading…
Reference in New Issue