mirror of
				https://github.com/rofafor/vdr-plugin-femon.git
				synced 2023-10-10 11:36:53 +00:00 
			
		
		
		
	Compare commits
	
		
			37 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 136c9fb73c | ||
|  | 9ca1fcb378 | ||
|  | 1cfbd0b730 | ||
|  | 152e87d443 | ||
|  | 08223cf6c4 | ||
|  | 84572d2187 | ||
|  | 78554b53b6 | ||
|  | 11554a8d7e | ||
|  | 0d06635520 | ||
|  | eedab47c35 | ||
|  | cba5171a09 | ||
|  | 91d6cb4074 | ||
|  | bf222dc7ff | ||
|  | 33176e9a77 | ||
|  | 0a4e5d912c | ||
|  | 3648b46fa2 | ||
|  | c5267f5390 | ||
|  | 30d7eea514 | ||
|  | 09d17772d2 | ||
|  | ee43f5936f | ||
|  | 10b8463283 | ||
|  | 046c94d39c | ||
|  | c3506e2279 | ||
|  | d0b6944292 | ||
|  | 932f727e91 | ||
|  | e8fa85929a | ||
|  | 70cda8a640 | ||
|  | 655b5a1865 | ||
|  | 2f6b971c92 | ||
|  | 379de93bee | ||
|  | 5b5f704ea8 | ||
|  | 2d849b4fb8 | ||
|  | 0e6457ab42 | ||
|  | 0f8cc6c9ce | ||
|  | f1d9b112a4 | ||
|  | 4431cf57d9 | ||
|  | 18840de217 | 
							
								
								
									
										48
									
								
								HISTORY
									
									
									
									
									
								
							
							
						
						
									
										48
									
								
								HISTORY
									
									
									
									
									
								
							| @@ -1,4 +1,3 @@ | |||||||
|  |  | ||||||
| =================================== | =================================== | ||||||
| VDR Plugin 'femon' Revision History | VDR Plugin 'femon' Revision History | ||||||
| =================================== | =================================== | ||||||
| @@ -66,6 +65,7 @@ VDR Plugin 'femon' Revision History | |||||||
|  |  | ||||||
| -  Backported changes and fixes from version 0.1.6. | -  Backported changes and fixes from version 0.1.6. | ||||||
|  |  | ||||||
|  |  | ||||||
| =================================== | =================================== | ||||||
| VDR Plugin 'femon' Revision History | VDR Plugin 'femon' Revision History | ||||||
| =================================== | =================================== | ||||||
| @@ -343,6 +343,7 @@ VDR Plugin 'femon' Revision History | |||||||
|  |  | ||||||
| - Backported from 1.7.2. | - Backported from 1.7.2. | ||||||
|  |  | ||||||
|  |  | ||||||
| =================================== | =================================== | ||||||
| VDR Plugin 'femon' Revision History | VDR Plugin 'femon' Revision History | ||||||
| =================================== | =================================== | ||||||
| @@ -446,3 +447,48 @@ VDR Plugin 'femon' Revision History | |||||||
|  |  | ||||||
| - Updated for vdr-1.7.27. | - Updated for vdr-1.7.27. | ||||||
| - Cleaned up compilation warnings again. | - Cleaned up compilation warnings again. | ||||||
|  |  | ||||||
|  | 2012-04-02: Version 1.7.17 | ||||||
|  |  | ||||||
|  | - Added the dynamite compatibility patch (Thanks to Lars Hanisch). | ||||||
|  | - Silenced error log messages when accessing pseudo devices. | ||||||
|  | - Added a new theme: PearlHD (Thanks to Taipan @ VDRPortal). | ||||||
|  | - Added the transponder info window support for IPTV devices. | ||||||
|  |  | ||||||
|  | 2013-02-10: Version 1.7.18 | ||||||
|  |  | ||||||
|  | - Updated for vdr-1.7.37. | ||||||
|  | - Modified how the receiver is detached. | ||||||
|  | - Added Ukrainian translation (Thanks to Yarema aka Knedlyk). | ||||||
|  |  | ||||||
|  | 2013-03-10: Version 1.7.19 | ||||||
|  |  | ||||||
|  | - Updated for vdr-1.7.40. | ||||||
|  | - Updated French translation (Thanks to Bernard Jaulin). | ||||||
|  |  | ||||||
|  |  | ||||||
|  | =================================== | ||||||
|  | VDR Plugin 'femon' Revision History | ||||||
|  | =================================== | ||||||
|  |  | ||||||
|  | 2013-04-01: Version 2.0.0 | ||||||
|  |  | ||||||
|  | - Updated for vdr-2.0.0. | ||||||
|  | - Added Slovak translation (Thanks to Milan Hrala). | ||||||
|  |  | ||||||
|  | 2014-01-10: Version 2.0.1 | ||||||
|  |  | ||||||
|  | - Fixed a crash in SVDRP (Thanks for Lothar Englisch for reporting). | ||||||
|  | - Fixed a memory leak and issues reported by scan-build tool. | ||||||
|  |  | ||||||
|  | 2014-01-18: Version 2.0.2 | ||||||
|  |  | ||||||
|  | - Added initial support for CAMs. | ||||||
|  |  | ||||||
|  | 2014-03-08: Version 2.0.3 | ||||||
|  |  | ||||||
|  | - Added support for SAT>IP devices. | ||||||
|  |  | ||||||
|  | 2014-03-15: Version 2.0.4 | ||||||
|  |  | ||||||
|  | - Refactored the SAT>IP support. | ||||||
|   | |||||||
							
								
								
									
										88
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										88
									
								
								Makefile
									
									
									
									
									
								
							| @@ -2,18 +2,18 @@ | |||||||
| # Makefile for Frontend Status Monitor plugin | # Makefile for Frontend Status Monitor plugin | ||||||
| # | # | ||||||
|  |  | ||||||
| # Debugging on/off  | # Debugging on/off | ||||||
|  |  | ||||||
| #FEMON_DEBUG = 1 | #FEMON_DEBUG = 1 | ||||||
|  |  | ||||||
| # Strip debug symbols?  Set eg. to /bin/true if not | # Strip debug symbols?  Set eg. to /bin/true if not | ||||||
|  |  | ||||||
| STRIP = strip | STRIP = strip | ||||||
|  |  | ||||||
| # The official name of this plugin. | # The official name of this plugin. | ||||||
| # This name will be used in the '-P...' option of VDR to load the 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. | # 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 | PLUGIN = femon | ||||||
|  |  | ||||||
| ### The version number of this plugin (taken from the main source file): | ### The version number of this plugin (taken from the main source file): | ||||||
| @@ -21,40 +21,43 @@ PLUGIN = femon | |||||||
| VERSION = $(shell grep 'static const char VERSION\[\] *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g') | VERSION = $(shell grep 'static const char VERSION\[\] *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g') | ||||||
| GITTAG  = $(shell git describe --always 2>/dev/null) | GITTAG  = $(shell git describe --always 2>/dev/null) | ||||||
|  |  | ||||||
| ### The C++ compiler and options: |  | ||||||
|  |  | ||||||
| CXX      ?= g++ |  | ||||||
| CXXFLAGS ?= -fPIC -g -O3 -Wall -Wextra -Wswitch-default -Wfloat-equal -Wundef -Wpointer-arith -Wconversion -Wcast-align -Wredundant-decls -Wno-unused-parameter -Werror=overloaded-virtual -Wno-parentheses |  | ||||||
| LDFLAGS  ?= -Wl,--as-needed |  | ||||||
|  |  | ||||||
| ### The directory environment: | ### The directory environment: | ||||||
|  |  | ||||||
| VDRDIR ?= ../../.. | # Use package data if installed...otherwise assume we're under the VDR source directory: | ||||||
| LIBDIR ?= ../../lib | PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell PKG_CONFIG_PATH="$$PKG_CONFIG_PATH:../../.." pkg-config --variable=$(1) vdr)) | ||||||
|  | LIBDIR = $(call PKGCFG,libdir) | ||||||
|  | LOCDIR = $(call PKGCFG,locdir) | ||||||
|  | PLGCFG = $(call PKGCFG,plgcfg) | ||||||
|  | # | ||||||
| TMPDIR ?= /tmp | TMPDIR ?= /tmp | ||||||
|  |  | ||||||
| ### Make sure that necessary options are included: | ### The compiler options: | ||||||
|  |  | ||||||
| -include $(VDRDIR)/Make.global | export CFLAGS   = $(call PKGCFG,cflags) | ||||||
|  | export CXXFLAGS = $(call PKGCFG,cxxflags) | ||||||
|  |  | ||||||
|  | ### The version number of VDR's plugin API: | ||||||
|  |  | ||||||
|  | APIVERSION = $(call PKGCFG,apiversion) | ||||||
|  |  | ||||||
| ### Allow user defined options to overwrite defaults: | ### Allow user defined options to overwrite defaults: | ||||||
|  |  | ||||||
| -include $(VDRDIR)/Make.config | -include $(PLGCFG) | ||||||
|  |  | ||||||
| ### The version number of VDR's plugin API (taken from VDR's "config.h"): |  | ||||||
|  |  | ||||||
| APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h) |  | ||||||
|  |  | ||||||
| ### The name of the distribution archive: | ### The name of the distribution archive: | ||||||
|  |  | ||||||
| ARCHIVE = $(PLUGIN)-$(VERSION) | ARCHIVE = $(PLUGIN)-$(VERSION) | ||||||
| PACKAGE = vdr-$(ARCHIVE) | PACKAGE = vdr-$(ARCHIVE) | ||||||
|  |  | ||||||
|  | ### The name of the shared object file: | ||||||
|  |  | ||||||
|  | SOFILE = libvdr-$(PLUGIN).so | ||||||
|  |  | ||||||
| ### Includes and Defines (add further entries here): | ### Includes and Defines (add further entries here): | ||||||
|  |  | ||||||
| INCLUDES += -I$(VDRDIR)/include | INCLUDES += | ||||||
|  |  | ||||||
| DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"' | DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"' | ||||||
|  |  | ||||||
| ifdef FEMON_DEBUG | ifdef FEMON_DEBUG | ||||||
| DEFINES += -DDEBUG | DEFINES += -DDEBUG | ||||||
| @@ -69,59 +72,64 @@ 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 femontools.o femonmpeg.o femonac3.o femonaac.o femonlatm.o femonh264.o femonsymbol.o | OBJS = $(PLUGIN).o femonosd.o femonreceiver.o femoncfg.o femontools.o femonmpeg.o femonac3.o femonaac.o femonlatm.o femonh264.o femonsymbol.o | ||||||
|  |  | ||||||
| ### The main target: | ### The main target: | ||||||
|  |  | ||||||
| all: libvdr-$(PLUGIN).so i18n | all: $(SOFILE) i18n | ||||||
|  |  | ||||||
| ### Implicit rules: | ### Implicit rules: | ||||||
|  |  | ||||||
| %.o: %.c Makefile | %.o: %.c | ||||||
| 	$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $< | 	$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) -o $@ $< | ||||||
|  |  | ||||||
| ### Dependencies: | ### Dependencies: | ||||||
|  |  | ||||||
| MAKEDEP = $(CXX) -MM -MG | MAKEDEP = $(CXX) -MM -MG | ||||||
| DEPFILE = .dependencies | DEPFILE = .dependencies | ||||||
| $(DEPFILE): Makefile | $(DEPFILE): Makefile | ||||||
| 	@$(MAKEDEP) $(DEFINES) $(INCLUDES) $(OBJS:%.o=%.c) > $@ | 	@$(MAKEDEP) $(CXXFLAGS) $(DEFINES) $(INCLUDES) $(OBJS:%.o=%.c) > $@ | ||||||
|  |  | ||||||
| -include $(DEPFILE) | -include $(DEPFILE) | ||||||
|  |  | ||||||
| ### Internationalization (I18N): | ### Internationalization (I18N): | ||||||
|  |  | ||||||
| PODIR     = po | PODIR     = po | ||||||
| LOCALEDIR = $(VDRDIR)/locale |  | ||||||
| I18Npo    = $(wildcard $(PODIR)/*.po) | I18Npo    = $(wildcard $(PODIR)/*.po) | ||||||
| I18Nmsgs  = $(addprefix $(LOCALEDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file)))))) | I18Nmo    = $(addsuffix .mo, $(foreach file, $(I18Npo), $(basename $(file)))) | ||||||
|  | I18Nmsgs  = $(addprefix $(DESTDIR)$(LOCDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file)))))) | ||||||
| I18Npot   = $(PODIR)/$(PLUGIN).pot | I18Npot   = $(PODIR)/$(PLUGIN).pot | ||||||
|  |  | ||||||
| %.mo: %.po | %.mo: %.po | ||||||
| 	msgfmt -c -o $@ $< | 	msgfmt -c -o $@ $< | ||||||
|  |  | ||||||
| $(I18Npot): $(wildcard *.c) | $(I18Npot): $(wildcard *.c) | ||||||
| 	xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name='vdr-$(PLUGIN)' --package-version='$(VERSION)' --msgid-bugs-address='<see README>' -o $@ `ls $^` | 	xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-$(PLUGIN) --package-version=$(VERSION) --msgid-bugs-address='<see README>' -o $@ `ls $^` | ||||||
|  |  | ||||||
| %.po: $(I18Npot) | %.po: $(I18Npot) | ||||||
| 	msgmerge -U --no-wrap --no-location --backup=none -q $@ $< | 	msgmerge -U --no-wrap --no-location --backup=none -q -N $@ $< | ||||||
| 	@touch $@ | 	@touch $@ | ||||||
|  |  | ||||||
| $(I18Nmsgs): $(LOCALEDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo | $(I18Nmsgs): $(DESTDIR)$(LOCDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo | ||||||
| 	@mkdir -p $(dir $@) | 	install -D -m644 $< $@ | ||||||
| 	cp $< $@ |  | ||||||
|  |  | ||||||
| .PHONY: i18n | .PHONY: i18n | ||||||
| i18n: $(I18Nmsgs) $(I18Npot) | i18n: $(I18Nmo) $(I18Npot) | ||||||
|  |  | ||||||
|  | install-i18n: $(I18Nmsgs) | ||||||
|  |  | ||||||
| ### Targets: | ### Targets: | ||||||
|  |  | ||||||
| libvdr-$(PLUGIN).so: $(OBJS) | $(SOFILE): $(OBJS) | ||||||
| 	$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@ | 	$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@ | ||||||
| ifndef FEMON_DEBUG | ifndef FEMON_DEBUG | ||||||
| 	@$(STRIP) $@ | 	@$(STRIP) $@ | ||||||
| endif | endif | ||||||
| 	@cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION) |  | ||||||
|  | install-lib: $(SOFILE) | ||||||
|  | 	install -D $^ $(DESTDIR)$(LIBDIR)/$^.$(APIVERSION) | ||||||
|  |  | ||||||
|  | install: install-lib install-i18n | ||||||
|  |  | ||||||
| dist: $(I18Npo) clean | dist: $(I18Npo) clean | ||||||
| 	@-rm -rf $(TMPDIR)/$(ARCHIVE) | 	@-rm -rf $(TMPDIR)/$(ARCHIVE) | ||||||
| @@ -132,7 +140,9 @@ dist: $(I18Npo) clean | |||||||
| 	@echo Distribution package created as $(PACKAGE).tgz | 	@echo Distribution package created as $(PACKAGE).tgz | ||||||
|  |  | ||||||
| clean: | clean: | ||||||
| 	@-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~ $(PODIR)/*.mo $(PODIR)/*.pot | 	@-rm -f $(PODIR)/*.mo $(PODIR)/*.pot | ||||||
|  | 	@-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~ | ||||||
|  |  | ||||||
| cppcheck: $(OBJS) | .PHONY: cppcheck | ||||||
| 	@cppcheck --enable=information,style,unusedFunction -v -f $(OBJS:%.o=%.c) | cppcheck: | ||||||
|  | 	@cppcheck --language=c++ --enable=all -v -f $(OBJS:%.o=%.c) | ||||||
|   | |||||||
							
								
								
									
										10
									
								
								README
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								README
									
									
									
									
									
								
							| @@ -71,13 +71,8 @@ Left/Right    - Switch to next/previous device that provides the current channel | |||||||
|  |  | ||||||
| Installation: | Installation: | ||||||
|  |  | ||||||
| cd /put/your/path/here/VDR/PLUGINS/src |  | ||||||
| tar -xzf /put/your/path/here/vdr-femon-X.Y.Z.tgz | tar -xzf /put/your/path/here/vdr-femon-X.Y.Z.tgz | ||||||
| ln -s femon-X.Y.Z femon | make -C femon-X.Y.Z install | ||||||
| cd /put/your/path/here/VDR |  | ||||||
| make |  | ||||||
| make plugins |  | ||||||
| ./vdr -P femon |  | ||||||
|  |  | ||||||
| Client-server architecture: | Client-server architecture: | ||||||
|  |  | ||||||
| @@ -97,9 +92,6 @@ the local device number. | |||||||
|  |  | ||||||
| Notes: | Notes: | ||||||
|  |  | ||||||
| - The plugin supports only those DVB cards with _one_ frontend, because I |  | ||||||
|   haven't yet figured howto do 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 | ||||||
|   | |||||||
							
								
								
									
										22
									
								
								femon.c
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								femon.c
									
									
									
									
									
								
							| @@ -14,15 +14,15 @@ | |||||||
| #include "femonservice.h" | #include "femonservice.h" | ||||||
| #include "femontools.h" | #include "femontools.h" | ||||||
|  |  | ||||||
| #if defined(APIVERSNUM) && APIVERSNUM < 10727 | #if defined(APIVERSNUM) && APIVERSNUM < 20000 | ||||||
| #error "VDR-1.7.27 API version or greater is required!" | #error "VDR-2.0.0 API version or greater is required!" | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| #ifndef GITVERSION | #ifndef GITVERSION | ||||||
| #define GITVERSION "" | #define GITVERSION "" | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| static const char VERSION[]       = "1.7.16" GITVERSION; | static const char VERSION[]       = "2.0.4" GITVERSION; | ||||||
| static const char DESCRIPTION[]   = trNOOP("DVB Signal Information Monitor (OSD)"); | static const char DESCRIPTION[]   = trNOOP("DVB Signal Information Monitor (OSD)"); | ||||||
| static const char MAINMENUENTRY[] = trNOOP("Signal Information"); | static const char MAINMENUENTRY[] = trNOOP("Signal Information"); | ||||||
|  |  | ||||||
| @@ -136,10 +136,10 @@ bool cPluginFemon::Service(const char *Id, void *Data) | |||||||
| { | { | ||||||
|   if (strcmp(Id,"FemonService-v1.0") == 0) { |   if (strcmp(Id,"FemonService-v1.0") == 0) { | ||||||
|      if (Data) { |      if (Data) { | ||||||
|         FemonService_v1_0 *data = (FemonService_v1_0*)Data; |         FemonService_v1_0 *data = reinterpret_cast<FemonService_v1_0*>(Data); | ||||||
|         if (!cDevice::ActualDevice()) |         if (!cDevice::ActualDevice()) | ||||||
|            return false; |            return false; | ||||||
|         cDvbDevice *dev = dynamic_cast<cDvbDevice*>(cDevice::ActualDevice()); |         cDvbDevice *dev = getDvbDevice(cDevice::ActualDevice()); | ||||||
|         data->fe_name = getFrontendName(dev); |         data->fe_name = getFrontendName(dev); | ||||||
|         data->fe_status = getFrontendStatus(dev); |         data->fe_status = getFrontendStatus(dev); | ||||||
|         data->fe_snr = getSNR(dev); |         data->fe_snr = getSNR(dev); | ||||||
| @@ -198,17 +198,17 @@ const char **cPluginFemon::SVDRPHelpPages(void) | |||||||
|  |  | ||||||
| cString cPluginFemon::SVDRPCommand(const char *Command, const char *Option, int &ReplyCode) | cString cPluginFemon::SVDRPCommand(const char *Command, const char *Option, int &ReplyCode) | ||||||
| { | { | ||||||
|   cDvbDevice *dev = dynamic_cast<cDvbDevice*>(cDevice::ActualDevice()); |   cDvbDevice *dev = getDvbDevice(cDevice::ActualDevice()); | ||||||
|   if (*Option && isnumber(Option)) { |   if (*Option && isnumber(Option)) { | ||||||
|      cDvbDevice *dev2 = dynamic_cast<cDvbDevice*>(cDevice::GetDevice(int(strtol(Option, NULL, 10)))); |      cDvbDevice *dev2 = dynamic_cast<cDvbDevice*>(cDevice::GetDevice(int(strtol(Option, NULL, 10)))); | ||||||
|      if (dev2) |      if (dev2) | ||||||
|         dev = dev2; |         dev = dev2; | ||||||
|      } |      } | ||||||
|  |   if (cReplayControl::NowReplaying() || !dev) { | ||||||
|  |      ReplyCode = 550; // Requested action not taken | ||||||
|  |      return cString("Cannot open femon plugin while replaying"); | ||||||
|  |      } | ||||||
|   if (strcasecmp(Command, "OPEN") == 0) { |   if (strcasecmp(Command, "OPEN") == 0) { | ||||||
|      if (cReplayControl::NowReplaying()) { |  | ||||||
|         ReplyCode = 550; // Requested action not taken |  | ||||||
|         return cString("Cannot open femon plugin while replaying"); |  | ||||||
|         } |  | ||||||
|      if (!cFemonOsd::Instance()) |      if (!cFemonOsd::Instance()) | ||||||
|         cRemote::CallPlugin(Name()); |         cRemote::CallPlugin(Name()); | ||||||
|      return cString("Opening femon plugin"); |      return cString("Opening femon plugin"); | ||||||
| @@ -315,8 +315,10 @@ cMenuFemonSetup::cMenuFemonSetup(void) | |||||||
|   themes[eFemonThemeEgalsTry]      = tr("EgalsTry"); |   themes[eFemonThemeEgalsTry]      = tr("EgalsTry"); | ||||||
|   themes[eFemonThemeDuotone]       = tr("Duotone"); |   themes[eFemonThemeDuotone]       = tr("Duotone"); | ||||||
|   themes[eFemonThemeSilverGreen]   = tr("SilverGreen"); |   themes[eFemonThemeSilverGreen]   = tr("SilverGreen"); | ||||||
|  |   themes[eFemonThemePearlHD]       = tr("PearlHD"); | ||||||
|  |  | ||||||
|   data = femonConfig; |   data = femonConfig; | ||||||
|  |   SetMenuCategory(mcSetupPlugins); | ||||||
|   Setup(); |   Setup(); | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										12
									
								
								femoncfg.c
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								femoncfg.c
									
									
									
									
									
								
							| @@ -138,4 +138,16 @@ const cFemonTheme femonTheme[eFemonThemeMaxNumber] = | |||||||
|     0xFFCE7B00, // clrYellow |     0xFFCE7B00, // clrYellow | ||||||
|     0xFF336600, // clrGreen |     0xFF336600, // clrGreen | ||||||
|   }, |   }, | ||||||
|  |   { | ||||||
|  |     // eFemonThemePearlHD | ||||||
|  |     4,          // bpp | ||||||
|  |     0x90000000, // clrBackground | ||||||
|  |     0xCC000000, // clrTitleBackground | ||||||
|  |     0xFFBEBEBE, // clrTitleText | ||||||
|  |     0xFF4E78B1, // clrActiveText | ||||||
|  |     0xFFBEBEBE, // clrInactiveText | ||||||
|  |     0xAAFF0000, // clrRed | ||||||
|  |     0xAAF8F800, // clrYellow | ||||||
|  |     0x6000ff00, // clrGreen | ||||||
|  |   }, | ||||||
| }; | }; | ||||||
|   | |||||||
| @@ -59,6 +59,7 @@ enum eFemonThemes | |||||||
|   eFemonThemeEgalsTry, |   eFemonThemeEgalsTry, | ||||||
|   eFemonThemeDuotone, |   eFemonThemeDuotone, | ||||||
|   eFemonThemeSilverGreen, |   eFemonThemeSilverGreen, | ||||||
|  |   eFemonThemePearlHD, | ||||||
|   eFemonThemeMaxNumber |   eFemonThemeMaxNumber | ||||||
| }; | }; | ||||||
|  |  | ||||||
|   | |||||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								femonclient/vdr-femonclient-0.0.6.tgz
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								femonclient/vdr-femonclient-0.0.6.tgz
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										177
									
								
								femonosd.c
									
									
									
									
									
								
							
							
						
						
									
										177
									
								
								femonosd.c
									
									
									
									
									
								
							| @@ -11,6 +11,7 @@ | |||||||
|  |  | ||||||
| #include <ctype.h> | #include <ctype.h> | ||||||
| #include <math.h> | #include <math.h> | ||||||
|  | #include "iptvservice.h" | ||||||
| #include "femoncfg.h" | #include "femoncfg.h" | ||||||
| #include "femonreceiver.h" | #include "femonreceiver.h" | ||||||
| #include "femontools.h" | #include "femontools.h" | ||||||
| @@ -396,7 +397,6 @@ void cFemonOsd::DrawInfoWindow(void) | |||||||
|   if (m_Osd && channel) { |   if (m_Osd && channel) { | ||||||
|      int offset = 0; |      int offset = 0; | ||||||
|      eTrackType track = cDevice::PrimaryDevice()->GetCurrentAudioTrack(); |      eTrackType track = cDevice::PrimaryDevice()->GetCurrentAudioTrack(); | ||||||
|      cDvbTransponderParameters dtp(channel->Parameters()); |  | ||||||
|  |  | ||||||
|      switch (m_DisplayMode) { |      switch (m_DisplayMode) { | ||||||
|        case eFemonModeTransponder: |        case eFemonModeTransponder: | ||||||
| @@ -420,7 +420,8 @@ void cFemonOsd::DrawInfoWindow(void) | |||||||
|             OSDDRAWINFOLEFT( trVDR("CA"),   *getCAids(channel)); |             OSDDRAWINFOLEFT( trVDR("CA"),   *getCAids(channel)); | ||||||
|             offset += OSDROWHEIGHT; |             offset += OSDROWHEIGHT; | ||||||
|             switch (channel->Source() & cSource::st_Mask) { |             switch (channel->Source() & cSource::st_Mask) { | ||||||
|               case cSource::stSat: |               case cSource::stSat: { | ||||||
|  |                    cDvbTransponderParameters dtp(channel->Parameters()); | ||||||
|                    OSDDRAWINFOLINE(*cString::sprintf("%s #%d - %s", *getSatelliteSystem(dtp.System()), (m_SvdrpFrontend >= 0) ? m_SvdrpFrontend : cDevice::ActualDevice()->CardIndex(), *m_FrontendName)); |                    OSDDRAWINFOLINE(*cString::sprintf("%s #%d - %s", *getSatelliteSystem(dtp.System()), (m_SvdrpFrontend >= 0) ? m_SvdrpFrontend : cDevice::ActualDevice()->CardIndex(), *m_FrontendName)); | ||||||
|                    offset += OSDROWHEIGHT; |                    offset += OSDROWHEIGHT; | ||||||
|                    OSDDRAWINFOLEFT( trVDR("Frequency"),    *getFrequencyMHz(channel->Frequency())); |                    OSDDRAWINFOLEFT( trVDR("Frequency"),    *getFrequencyMHz(channel->Frequency())); | ||||||
| @@ -433,11 +434,14 @@ void cFemonOsd::DrawInfoWindow(void) | |||||||
|                    OSDDRAWINFORIGHT(trVDR("CoderateH"),    *getCoderate(dtp.CoderateH())); |                    OSDDRAWINFORIGHT(trVDR("CoderateH"),    *getCoderate(dtp.CoderateH())); | ||||||
|                    offset += OSDROWHEIGHT; |                    offset += OSDROWHEIGHT; | ||||||
|                    OSDDRAWINFOLEFT( trVDR("System"),       *getSatelliteSystem(dtp.System())); |                    OSDDRAWINFOLEFT( trVDR("System"),       *getSatelliteSystem(dtp.System())); | ||||||
|                    if (dtp.System()) |                    if (dtp.System()) { | ||||||
|                    OSDDRAWINFORIGHT(trVDR("RollOff"),      *getRollOff(dtp.RollOff())); |                       OSDDRAWINFORIGHT(trVDR("RollOff"),   *getRollOff(dtp.RollOff())); | ||||||
|  |                       } | ||||||
|  |                    } | ||||||
|                    break; |                    break; | ||||||
|  |  | ||||||
|               case cSource::stCable: |               case cSource::stCable: { | ||||||
|  |                    cDvbTransponderParameters dtp(channel->Parameters()); | ||||||
|                    OSDDRAWINFOLINE(*cString::sprintf("DVB-C #%d - %s", (m_SvdrpFrontend >= 0) ? m_SvdrpFrontend : cDevice::ActualDevice()->CardIndex(), *m_FrontendName)); |                    OSDDRAWINFOLINE(*cString::sprintf("DVB-C #%d - %s", (m_SvdrpFrontend >= 0) ? m_SvdrpFrontend : cDevice::ActualDevice()->CardIndex(), *m_FrontendName)); | ||||||
|                    offset += OSDROWHEIGHT; |                    offset += OSDROWHEIGHT; | ||||||
|                    OSDDRAWINFOLEFT( trVDR("Frequency"),    *getFrequencyMHz(channel->Frequency())); |                    OSDDRAWINFOLEFT( trVDR("Frequency"),    *getFrequencyMHz(channel->Frequency())); | ||||||
| @@ -448,9 +452,11 @@ void cFemonOsd::DrawInfoWindow(void) | |||||||
|                    offset += OSDROWHEIGHT; |                    offset += OSDROWHEIGHT; | ||||||
|                    OSDDRAWINFOLEFT( trVDR("Inversion"),    *getInversion(dtp.Inversion())); |                    OSDDRAWINFOLEFT( trVDR("Inversion"),    *getInversion(dtp.Inversion())); | ||||||
|                    OSDDRAWINFORIGHT(trVDR("CoderateH"),    *getCoderate(dtp.CoderateH())); |                    OSDDRAWINFORIGHT(trVDR("CoderateH"),    *getCoderate(dtp.CoderateH())); | ||||||
|  |                    } | ||||||
|                    break; |                    break; | ||||||
|  |  | ||||||
|               case cSource::stTerr: |               case cSource::stTerr: { | ||||||
|  |                    cDvbTransponderParameters dtp(channel->Parameters()); | ||||||
|                    OSDDRAWINFOLINE(*cString::sprintf("%s #%d - %s", *getTerrestrialSystem(dtp.System()), (m_SvdrpFrontend >= 0) ? m_SvdrpFrontend : cDevice::ActualDevice()->CardIndex(), *m_FrontendName)); |                    OSDDRAWINFOLINE(*cString::sprintf("%s #%d - %s", *getTerrestrialSystem(dtp.System()), (m_SvdrpFrontend >= 0) ? m_SvdrpFrontend : cDevice::ActualDevice()->CardIndex(), *m_FrontendName)); | ||||||
|                    offset += OSDROWHEIGHT; |                    offset += OSDROWHEIGHT; | ||||||
|                    OSDDRAWINFOLEFT( trVDR("Frequency"),    *getFrequencyMHz(channel->Frequency())); |                    OSDDRAWINFOLEFT( trVDR("Frequency"),    *getFrequencyMHz(channel->Frequency())); | ||||||
| @@ -466,8 +472,27 @@ void cFemonOsd::DrawInfoWindow(void) | |||||||
|                    OSDDRAWINFORIGHT(trVDR("Guard"),        *getGuard(dtp.Guard())); |                    OSDDRAWINFORIGHT(trVDR("Guard"),        *getGuard(dtp.Guard())); | ||||||
|                    offset += OSDROWHEIGHT; |                    offset += OSDROWHEIGHT; | ||||||
|                    OSDDRAWINFOLEFT( trVDR("System"),       *getTerrestrialSystem(dtp.System())); |                    OSDDRAWINFOLEFT( trVDR("System"),       *getTerrestrialSystem(dtp.System())); | ||||||
|                    if (dtp.System()) |                    if (dtp.System()) { | ||||||
|                    OSDDRAWINFORIGHT(trVDR("PlpId"),        *cString::sprintf("%d", dtp.PlpId())); |                       OSDDRAWINFORIGHT(trVDR("StreamId"),  *cString::sprintf("%d", dtp.StreamId())); | ||||||
|  |                       } | ||||||
|  |                    } | ||||||
|  |                    break; | ||||||
|  |  | ||||||
|  |               case stIptv: { | ||||||
|  |                    OSDDRAWINFOLINE(*cString::sprintf("IPTV #%d - %s", (m_SvdrpFrontend >= 0) ? m_SvdrpFrontend : cDevice::ActualDevice()->CardIndex(), *m_FrontendName)); | ||||||
|  |                    offset += OSDROWHEIGHT; | ||||||
|  |                    if (m_SvdrpFrontend < 0) { | ||||||
|  |                       cPlugin *p; | ||||||
|  |                       IptvService_v1_0 data; | ||||||
|  |                       data.cardIndex = cDevice::ActualDevice()->CardIndex(); | ||||||
|  |                       p = cPluginManager::CallFirstService("IptvService-v1.0", &data); | ||||||
|  |                       if (p) { | ||||||
|  |                          OSDDRAWINFOLEFT(tr("Protocol"),   *data.protocol); | ||||||
|  |                          offset += OSDROWHEIGHT; | ||||||
|  |                          OSDDRAWINFOLEFT(tr("Bitrate"),    *data.bitrate); | ||||||
|  |                          } | ||||||
|  |                       } | ||||||
|  |                    } | ||||||
|                    break; |                    break; | ||||||
|  |  | ||||||
|               default: |               default: | ||||||
| @@ -600,6 +625,23 @@ void cFemonOsd::Action(void) | |||||||
|               m_BERValid = (ioctl(m_Frontend, FE_READ_BER, &m_BER) >= 0); |               m_BERValid = (ioctl(m_Frontend, FE_READ_BER, &m_BER) >= 0); | ||||||
|               m_UNCValid = (ioctl(m_Frontend, FE_READ_UNCORRECTED_BLOCKS, &m_UNC) >= 0); |               m_UNCValid = (ioctl(m_Frontend, FE_READ_UNCORRECTED_BLOCKS, &m_UNC) >= 0); | ||||||
|               } |               } | ||||||
|  |            else if (strstr(*cDevice::ActualDevice()->DeviceType(), SATIP_DEVICE)) { | ||||||
|  |               m_Quality = cDevice::ActualDevice()->SignalQuality(); | ||||||
|  |               m_QualityValid = (m_Quality >= 0); | ||||||
|  |               m_Strength = cDevice::ActualDevice()->SignalStrength(); | ||||||
|  |               m_StrengthValid = (m_Strength >= 0); | ||||||
|  |               m_FrontendName = cDevice::ActualDevice()->DeviceName(); | ||||||
|  |               m_FrontendStatus = (fe_status_t)(cDevice::ActualDevice()->HasLock() ? (FE_HAS_LOCK | FE_HAS_SIGNAL | FE_HAS_CARRIER | FE_HAS_VITERBI | FE_HAS_SYNC) : 0); | ||||||
|  |               m_FrontendStatusValid = m_StrengthValid; | ||||||
|  |               m_Signal = uint16_t(m_Strength * 0xFFFF / 100); | ||||||
|  |               m_SignalValid = m_StrengthValid; | ||||||
|  |               m_SNR = uint16_t(m_Quality * 0xFFFF / 100); | ||||||
|  |               m_SNRValid = m_QualityValid; | ||||||
|  |               m_BER = 0; | ||||||
|  |               m_BERValid = false; | ||||||
|  |               m_UNC = 0; | ||||||
|  |               m_UNCValid = false; | ||||||
|  |               } | ||||||
|            else if (m_SvdrpConnection.handle >= 0) { |            else if (m_SvdrpConnection.handle >= 0) { | ||||||
|               cmd.handle = m_SvdrpConnection.handle; |               cmd.handle = m_SvdrpConnection.handle; | ||||||
|               m_SvdrpPlugin->Service("SvdrpCommand-v1.0", &cmd); |               m_SvdrpPlugin->Service("SvdrpCommand-v1.0", &cmd); | ||||||
| @@ -667,7 +709,7 @@ void cFemonOsd::Show(void) | |||||||
| { | { | ||||||
|   debug("%s()\n", __PRETTY_FUNCTION__); |   debug("%s()\n", __PRETTY_FUNCTION__); | ||||||
|   eTrackType track = cDevice::PrimaryDevice()->GetCurrentAudioTrack(); |   eTrackType track = cDevice::PrimaryDevice()->GetCurrentAudioTrack(); | ||||||
|   cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel()); |   const cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel()); | ||||||
|  |  | ||||||
|   m_DeviceSource = DEVICESOURCE_DVBAPI; |   m_DeviceSource = DEVICESOURCE_DVBAPI; | ||||||
|   if (channel) { |   if (channel) { | ||||||
| @@ -678,7 +720,7 @@ void cFemonOsd::Show(void) | |||||||
|      } |      } | ||||||
|  |  | ||||||
|   if (m_DeviceSource == DEVICESOURCE_DVBAPI) { |   if (m_DeviceSource == DEVICESOURCE_DVBAPI) { | ||||||
|      cDvbDevice *dev = dynamic_cast<cDvbDevice*>(cDevice::ActualDevice()); |      cDvbDevice *dev = getDvbDevice(cDevice::ActualDevice()); | ||||||
|      m_Frontend = dev ? open(*cString::sprintf(FRONTEND_DEVICE, dev->Adapter(), dev->Frontend()), O_RDONLY | O_NONBLOCK) : -1; |      m_Frontend = dev ? open(*cString::sprintf(FRONTEND_DEVICE, dev->Adapter(), dev->Frontend()), O_RDONLY | O_NONBLOCK) : -1; | ||||||
|      if (m_Frontend >= 0) { |      if (m_Frontend >= 0) { | ||||||
|         if (ioctl(m_Frontend, FE_GET_INFO, &m_FrontendInfo) < 0) { |         if (ioctl(m_Frontend, FE_GET_INFO, &m_FrontendInfo) < 0) { | ||||||
| @@ -690,6 +732,9 @@ void cFemonOsd::Show(void) | |||||||
|            return; |            return; | ||||||
|            } |            } | ||||||
|         } |         } | ||||||
|  |      else if (strstr(*cDevice::ActualDevice()->DeviceType(), SATIP_DEVICE)) { | ||||||
|  |         // nop | ||||||
|  |         } | ||||||
|      else if (femonConfig.usesvdrp) { |      else if (femonConfig.usesvdrp) { | ||||||
|         if (!SvdrpConnect() || !SvdrpTune()) |         if (!SvdrpConnect() || !SvdrpTune()) | ||||||
|            return; |            return; | ||||||
| @@ -722,7 +767,7 @@ void cFemonOsd::Show(void) | |||||||
|         DELETENULL(m_Receiver); |         DELETENULL(m_Receiver); | ||||||
|         } |         } | ||||||
|      if (femonConfig.analyzestream && channel) { |      if (femonConfig.analyzestream && channel) { | ||||||
|         m_Receiver = new cFemonReceiver(channel->Vtype(), channel->Vpid(), channel->Apid(IS_AUDIO_TRACK(track) ? int(track - ttAudioFirst) : 0), channel->Dpid(IS_DOLBY_TRACK(track) ? int(track - ttDolbyFirst) : 0)); |         m_Receiver = new cFemonReceiver(channel, IS_AUDIO_TRACK(track) ? int(track - ttAudioFirst) : 0, IS_DOLBY_TRACK(track) ? int(track - ttDolbyFirst) : 0); | ||||||
|         cDevice::ActualDevice()->AttachReceiver(m_Receiver); |         cDevice::ActualDevice()->AttachReceiver(m_Receiver); | ||||||
|         } |         } | ||||||
|      Start(); |      Start(); | ||||||
| @@ -733,7 +778,7 @@ void cFemonOsd::ChannelSwitch(const cDevice * device, int channelNumber, bool li | |||||||
| { | { | ||||||
|   debug("%s(%d,%d)\n", __PRETTY_FUNCTION__, device->DeviceNumber(), channelNumber); |   debug("%s(%d,%d)\n", __PRETTY_FUNCTION__, device->DeviceNumber(), channelNumber); | ||||||
|   eTrackType track = cDevice::PrimaryDevice()->GetCurrentAudioTrack(); |   eTrackType track = cDevice::PrimaryDevice()->GetCurrentAudioTrack(); | ||||||
|   cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel()); |   const cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel()); | ||||||
|  |  | ||||||
|   if (!liveView || !channelNumber || !channel || channel->Number() != channelNumber) |   if (!liveView || !channelNumber || !channel || channel->Number() != channelNumber) | ||||||
|      return; |      return; | ||||||
| @@ -752,7 +797,7 @@ void cFemonOsd::ChannelSwitch(const cDevice * device, int channelNumber, bool li | |||||||
|      } |      } | ||||||
|  |  | ||||||
|   if (m_DeviceSource == DEVICESOURCE_DVBAPI) { |   if (m_DeviceSource == DEVICESOURCE_DVBAPI) { | ||||||
|      cDvbDevice *dev = dynamic_cast<cDvbDevice*>(cDevice::ActualDevice()); |      cDvbDevice *dev = getDvbDevice(cDevice::ActualDevice()); | ||||||
|      m_Frontend = dev ? open(*cString::sprintf(FRONTEND_DEVICE, dev->Adapter(), dev->Frontend()), O_RDONLY | O_NONBLOCK) : -1; |      m_Frontend = dev ? open(*cString::sprintf(FRONTEND_DEVICE, dev->Adapter(), dev->Frontend()), O_RDONLY | O_NONBLOCK) : -1; | ||||||
|      if (m_Frontend >= 0) { |      if (m_Frontend >= 0) { | ||||||
|         if (ioctl(m_Frontend, FE_GET_INFO, &m_FrontendInfo) < 0) { |         if (ioctl(m_Frontend, FE_GET_INFO, &m_FrontendInfo) < 0) { | ||||||
| @@ -764,6 +809,9 @@ void cFemonOsd::ChannelSwitch(const cDevice * device, int channelNumber, bool li | |||||||
|            return; |            return; | ||||||
|            } |            } | ||||||
|         } |         } | ||||||
|  |      else if (strstr(*cDevice::ActualDevice()->DeviceType(), SATIP_DEVICE)) { | ||||||
|  |         // nop | ||||||
|  |         } | ||||||
|      else if (femonConfig.usesvdrp) { |      else if (femonConfig.usesvdrp) { | ||||||
|         if (!SvdrpConnect() || !SvdrpTune()) |         if (!SvdrpConnect() || !SvdrpTune()) | ||||||
|            return; |            return; | ||||||
| @@ -779,7 +827,7 @@ void cFemonOsd::ChannelSwitch(const cDevice * device, int channelNumber, bool li | |||||||
|      DELETENULL(m_Receiver); |      DELETENULL(m_Receiver); | ||||||
|      } |      } | ||||||
|   if (femonConfig.analyzestream && channel) { |   if (femonConfig.analyzestream && channel) { | ||||||
|      m_Receiver = new cFemonReceiver(channel->Vtype(), channel->Vpid(), channel->Apid(IS_AUDIO_TRACK(track) ? int(track - ttAudioFirst) : 0), channel->Dpid(IS_DOLBY_TRACK(track) ? int(track - ttDolbyFirst) : 0)); |      m_Receiver = new cFemonReceiver(channel, IS_AUDIO_TRACK(track) ? int(track - ttAudioFirst) : 0, IS_DOLBY_TRACK(track) ? int(track - ttDolbyFirst) : 0); | ||||||
|      cDevice::ActualDevice()->AttachReceiver(m_Receiver); |      cDevice::ActualDevice()->AttachReceiver(m_Receiver); | ||||||
|      } |      } | ||||||
| } | } | ||||||
| @@ -793,9 +841,9 @@ void cFemonOsd::SetAudioTrack(int Index, const char * const *Tracks) | |||||||
|      DELETENULL(m_Receiver); |      DELETENULL(m_Receiver); | ||||||
|      } |      } | ||||||
|   if (femonConfig.analyzestream) { |   if (femonConfig.analyzestream) { | ||||||
|      cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel()); |      const cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel()); | ||||||
|      if (channel) { |      if (channel) { | ||||||
|         m_Receiver = new cFemonReceiver(channel->Vtype(), channel->Vpid(), channel->Apid(IS_AUDIO_TRACK(track) ? int(track - ttAudioFirst) : 0), channel->Dpid(IS_DOLBY_TRACK(track) ? int(track - ttDolbyFirst) : 0)); |         m_Receiver = new cFemonReceiver(channel, IS_AUDIO_TRACK(track) ? int(track - ttAudioFirst) : 0, IS_DOLBY_TRACK(track) ? int(track - ttDolbyFirst) : 0); | ||||||
|         cDevice::ActualDevice()->AttachReceiver(m_Receiver); |         cDevice::ActualDevice()->AttachReceiver(m_Receiver); | ||||||
|         } |         } | ||||||
|      } |      } | ||||||
| @@ -810,26 +858,83 @@ bool cFemonOsd::DeviceSwitch(int direction) | |||||||
|      cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel()); |      cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel()); | ||||||
|      if (channel) { |      if (channel) { | ||||||
|         for (int i = 0; i < cDevice::NumDevices() - 1; i++) { |         for (int i = 0; i < cDevice::NumDevices() - 1; i++) { | ||||||
|            if (direction >= 0) { |             if (direction >= 0) { | ||||||
|               if (++device >= cDevice::NumDevices()) |                if (++device >= cDevice::NumDevices()) | ||||||
|                  device = 0; |                   device = 0; | ||||||
|               } |                } | ||||||
|            else { |             else { | ||||||
|               if (--device < 0) |                if (--device < 0) | ||||||
|                  device = cDevice::NumDevices() - 1; |                   device = cDevice::NumDevices() - 1; | ||||||
|               } |                } | ||||||
|            if (cDevice::GetDevice(device)->ProvidesChannel(channel, 0)) { |             // Collect the current priorities of all CAM slots that can decrypt the channel: | ||||||
|               debug("%s(%d) device(%d)\n", __PRETTY_FUNCTION__, direction, device); |             int NumCamSlots = CamSlots.Count(); | ||||||
|               cStatus::MsgChannelSwitch(cDevice::PrimaryDevice(), 0, true); |             int SlotPriority[NumCamSlots]; | ||||||
|               cControl::Shutdown(); |             int NumUsableSlots = 0; | ||||||
|               cDevice::GetDevice(device)->SwitchChannel(channel, true); |             bool NeedsDetachAllReceivers = false; | ||||||
|               if (cDevice::GetDevice(device) == cDevice::PrimaryDevice()) |             bool InternalCamNeeded = false; | ||||||
|                  cDevice::GetDevice(device)->ForceTransferMode(); |             bool ValidDevice = false; | ||||||
|               cControl::Launch(new cTransferControl(cDevice::GetDevice(device), channel)); |             cCamSlot *s = NULL; | ||||||
|               cStatus::MsgChannelSwitch(cDevice::PrimaryDevice(), channel->Number(), true); |             cDevice *d = cDevice::GetDevice(device); | ||||||
|               return (true); |             if (channel->Ca() >= CA_ENCRYPTED_MIN) { | ||||||
|               } |                for (cCamSlot *CamSlot = CamSlots.First(); CamSlot; CamSlot = CamSlots.Next(CamSlot)) { | ||||||
|            } |                    SlotPriority[CamSlot->Index()] = MAXPRIORITY + 1; // assumes it can't be used | ||||||
|  |                    if (CamSlot->ModuleStatus() == msReady) { | ||||||
|  |                       if (CamSlot->ProvidesCa(channel->Caids())) { | ||||||
|  |                          if (!ChannelCamRelations.CamChecked(channel->GetChannelID(), CamSlot->SlotNumber())) { | ||||||
|  |                             SlotPriority[CamSlot->Index()] = CamSlot->Priority(); | ||||||
|  |                             NumUsableSlots++; | ||||||
|  |                             } | ||||||
|  |                          } | ||||||
|  |                       } | ||||||
|  |                   } | ||||||
|  |                if (!NumUsableSlots) | ||||||
|  |                   InternalCamNeeded = true; // no CAM is able to decrypt this channel | ||||||
|  |                } | ||||||
|  |             for (int j = 0; j < NumCamSlots || !NumUsableSlots; ++j) { | ||||||
|  |                 if (NumUsableSlots && SlotPriority[j] > MAXPRIORITY) | ||||||
|  |                    continue; // there is no CAM available in this slot | ||||||
|  |                 bool HasInternalCam = d->HasInternalCam(); | ||||||
|  |                 if (InternalCamNeeded && !HasInternalCam) | ||||||
|  |                    continue; // no CAM is able to decrypt this channel and the device uses vdr handled CAMs | ||||||
|  |                 if (NumUsableSlots && !HasInternalCam && !CamSlots.Get(j)->Assign(d, true)) | ||||||
|  |                    continue; // CAM slot can't be used with this device | ||||||
|  |                 if (d->ProvidesChannel(channel, 0, &NeedsDetachAllReceivers)) { // this device is basically able to do the job | ||||||
|  |                    debug("%s(%d) device(%d)\n", __PRETTY_FUNCTION__, direction, device); | ||||||
|  |                    if (NumUsableSlots && !HasInternalCam && d->CamSlot() && d->CamSlot() != CamSlots.Get(j)) | ||||||
|  |                       NeedsDetachAllReceivers = true; // using a different CAM slot requires detaching receivers | ||||||
|  |                    if (NumUsableSlots && !HasInternalCam) | ||||||
|  |                       s = CamSlots.Get(j); | ||||||
|  |                    ValidDevice = true; | ||||||
|  |                    break; | ||||||
|  |                    } | ||||||
|  |                 if (!NumUsableSlots) | ||||||
|  |                    break; // no CAM necessary, so just one loop over the devices | ||||||
|  |                 } | ||||||
|  |             // Do the actual switch if valid device found | ||||||
|  |             if (d && ValidDevice) { | ||||||
|  |                cStatus::MsgChannelSwitch(cDevice::PrimaryDevice(), 0, true); | ||||||
|  |                cControl::Shutdown(); | ||||||
|  |                if (NeedsDetachAllReceivers) | ||||||
|  |                   d->DetachAllReceivers(); | ||||||
|  |                if (s) { | ||||||
|  |                   if (s->Device() != d) { | ||||||
|  |                      if (s->Device()) | ||||||
|  |                         s->Device()->DetachAllReceivers(); | ||||||
|  |                      if (d->CamSlot()) | ||||||
|  |                         d->CamSlot()->Assign(NULL); | ||||||
|  |                      s->Assign(d); | ||||||
|  |                      } | ||||||
|  |                   } | ||||||
|  |                else if (d->CamSlot() && !d->CamSlot()->IsDecrypting()) | ||||||
|  |                   d->CamSlot()->Assign(NULL); | ||||||
|  |                d->SwitchChannel(channel, true); | ||||||
|  |                if (d == cDevice::PrimaryDevice()) | ||||||
|  |                   d->ForceTransferMode(); | ||||||
|  |                cControl::Launch(new cTransferControl(d, channel)); | ||||||
|  |                cStatus::MsgChannelSwitch(cDevice::PrimaryDevice(), channel->Number(), true); | ||||||
|  |                return (true); | ||||||
|  |                } | ||||||
|  |             } | ||||||
|         } |         } | ||||||
|      } |      } | ||||||
|    return (false); |    return (false); | ||||||
|   | |||||||
| @@ -10,8 +10,9 @@ | |||||||
| #include "femoncfg.h" | #include "femoncfg.h" | ||||||
| #include "femonreceiver.h" | #include "femonreceiver.h" | ||||||
|  |  | ||||||
| cFemonReceiver::cFemonReceiver(int Vtype, int Vpid, int Apid, int Dpid) | cFemonReceiver::cFemonReceiver(const cChannel *Channel, int ATrack, int DTrack) | ||||||
| : cThread("femon receiver"), | : cReceiver(Channel), | ||||||
|  |   cThread("femon receiver"), | ||||||
|   m_Mutex(), |   m_Mutex(), | ||||||
|   m_Sleep(), |   m_Sleep(), | ||||||
|   m_Active(false), |   m_Active(false), | ||||||
| @@ -21,24 +22,25 @@ cFemonReceiver::cFemonReceiver(int Vtype, int Vpid, int Apid, int Dpid) | |||||||
|   m_DetectLATM(this), |   m_DetectLATM(this), | ||||||
|   m_DetectAC3(this), |   m_DetectAC3(this), | ||||||
|   m_VideoBuffer(KILOBYTE(512), TS_SIZE, false, "Femon video"), |   m_VideoBuffer(KILOBYTE(512), TS_SIZE, false, "Femon video"), | ||||||
|   m_VideoType(Vtype), |   m_VideoType(Channel ? Channel->Vtype(): 0), | ||||||
|   m_VideoPid(Vpid), |   m_VideoPid(Channel ? Channel->Vpid() : 0), | ||||||
|   m_VideoPacketCount(0), |   m_VideoPacketCount(0), | ||||||
|   m_VideoBitrate(0.0), |   m_VideoBitrate(0.0), | ||||||
|   m_VideoValid(false), |   m_VideoValid(false), | ||||||
|   m_AudioBuffer(KILOBYTE(256), TS_SIZE, false, "Femon audio"), |   m_AudioBuffer(KILOBYTE(256), TS_SIZE, false, "Femon audio"), | ||||||
|   m_AudioPid(Apid), |   m_AudioPid(Channel ? Channel->Apid(ATrack) : 0), | ||||||
|   m_AudioPacketCount(0), |   m_AudioPacketCount(0), | ||||||
|   m_AudioBitrate(0.0), |   m_AudioBitrate(0.0), | ||||||
|   m_AudioValid(false), |   m_AudioValid(false), | ||||||
|   m_AC3Buffer(KILOBYTE(256), TS_SIZE, false, "Femon AC3"), |   m_AC3Buffer(KILOBYTE(256), TS_SIZE, false, "Femon AC3"), | ||||||
|   m_AC3Pid(Dpid), |   m_AC3Pid(Channel ? Channel->Dpid(DTrack) : 0), | ||||||
|   m_AC3PacketCount(0), |   m_AC3PacketCount(0), | ||||||
|   m_AC3Bitrate(0), |   m_AC3Bitrate(0), | ||||||
|   m_AC3Valid(false) |   m_AC3Valid(false) | ||||||
| { | { | ||||||
|   debug("%s()\n", __PRETTY_FUNCTION__); |   debug("%s()\n", __PRETTY_FUNCTION__); | ||||||
|  |  | ||||||
|  |   SetPids(NULL); | ||||||
|   AddPid(m_VideoPid); |   AddPid(m_VideoPid); | ||||||
|   AddPid(m_AudioPid); |   AddPid(m_AudioPid); | ||||||
|   AddPid(m_AC3Pid); |   AddPid(m_AC3Pid); | ||||||
| @@ -79,12 +81,12 @@ cFemonReceiver::~cFemonReceiver(void) | |||||||
| void cFemonReceiver::Deactivate(void) | void cFemonReceiver::Deactivate(void) | ||||||
| { | { | ||||||
|   debug("%s()\n", __PRETTY_FUNCTION__); |   debug("%s()\n", __PRETTY_FUNCTION__); | ||||||
|  |   Detach(); | ||||||
|   if (m_Active) { |   if (m_Active) { | ||||||
|      m_Active = false; |      m_Active = false; | ||||||
|      m_Sleep.Signal(); |      m_Sleep.Signal(); | ||||||
|      if (Running()) |      if (Running()) | ||||||
|         Cancel(3); |         Cancel(3); | ||||||
|      Detach(); |  | ||||||
|      } |      } | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -108,7 +108,7 @@ public: | |||||||
|                                                        m_AC3Info.lfe = onoff; } |                                                        m_AC3Info.lfe = onoff; } | ||||||
|  |  | ||||||
| public: | public: | ||||||
|   cFemonReceiver(int Vtype, int Vpid, int Apid, int Dpid); |   cFemonReceiver(const cChannel* Channel, int ATrack, int DTrack); | ||||||
|   virtual ~cFemonReceiver(); |   virtual ~cFemonReceiver(); | ||||||
|   void Deactivate(void); |   void Deactivate(void); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -53,6 +53,7 @@ | |||||||
| #include "symbols/format480i.xpm" | #include "symbols/format480i.xpm" | ||||||
| #include "symbols/format480p.xpm" | #include "symbols/format480p.xpm" | ||||||
|  |  | ||||||
|  | static cBitmap bmOnePixel(1, 1, 1); | ||||||
| static cBitmap bmStereo(stereo_xpm); | static cBitmap bmStereo(stereo_xpm); | ||||||
| static cBitmap bmMonoLeft(monoleft_xpm); | static cBitmap bmMonoLeft(monoleft_xpm); | ||||||
| static cBitmap bmMonoRight(monoright_xpm); | static cBitmap bmMonoRight(monoright_xpm); | ||||||
| @@ -134,49 +135,50 @@ bool cFemonSymbolCache::Populate(void) | |||||||
|      Flush(); |      Flush(); | ||||||
|  |  | ||||||
|      // pushing order must follow the enumeration - keep original proportions except for frontend status ones |      // pushing order must follow the enumeration - keep original proportions except for frontend status ones | ||||||
|      cacheM.Append(bmStereo.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_STEREO |      cacheM.Append(bmOnePixel.Scaled(yFactorM, yFactorM, antiAliasM));        // SYMBOL_ONEPIXEL | ||||||
|      cacheM.Append(bmMonoLeft.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_MONO_LEFT |      cacheM.Append(bmStereo.Scaled(yFactorM, yFactorM, antiAliasM));          // SYMBOL_STEREO | ||||||
|      cacheM.Append(bmMonoRight.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_MONO_RIGHT |      cacheM.Append(bmMonoLeft.Scaled(yFactorM, yFactorM, antiAliasM));        // SYMBOL_MONO_LEFT | ||||||
|      cacheM.Append(bmDolbyDigital.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_DD |      cacheM.Append(bmMonoRight.Scaled(yFactorM, yFactorM, antiAliasM));       // SYMBOL_MONO_RIGHT | ||||||
|      cacheM.Append(bmDolbyDigital20.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_DD20 |      cacheM.Append(bmDolbyDigital.Scaled(yFactorM, yFactorM, antiAliasM));    // SYMBOL_DD | ||||||
|      cacheM.Append(bmDolbyDigital51.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_DD51 |      cacheM.Append(bmDolbyDigital20.Scaled(yFactorM, yFactorM, antiAliasM));  // SYMBOL_DD20 | ||||||
|      cacheM.Append(bmMpeg2.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_MPEG2 |      cacheM.Append(bmDolbyDigital51.Scaled(yFactorM, yFactorM, antiAliasM));  // SYMBOL_DD51 | ||||||
|      cacheM.Append(bmH264.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_H264 |      cacheM.Append(bmMpeg2.Scaled(yFactorM, yFactorM, antiAliasM));           // SYMBOL_MPEG2 | ||||||
|      cacheM.Append(bmPal.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_PAL |      cacheM.Append(bmH264.Scaled(yFactorM, yFactorM, antiAliasM));            // SYMBOL_H264 | ||||||
|      cacheM.Append(bmNtsc.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_NTSC |      cacheM.Append(bmPal.Scaled(yFactorM, yFactorM, antiAliasM));             // SYMBOL_PAL | ||||||
|      cacheM.Append(bmEncrypted.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_ENCRYPTED |      cacheM.Append(bmNtsc.Scaled(yFactorM, yFactorM, antiAliasM));            // SYMBOL_NTSC | ||||||
|      cacheM.Append(bmSvdrp.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_SVDRP |      cacheM.Append(bmEncrypted.Scaled(yFactorM, yFactorM, antiAliasM));       // SYMBOL_ENCRYPTED | ||||||
|      cacheM.Append(bmLock.Scaled(xFactorM, yFactorM, antiAliasM)); // SYMBOL_LOCK |      cacheM.Append(bmSvdrp.Scaled(yFactorM, yFactorM, antiAliasM));           // SYMBOL_SVDRP | ||||||
|      cacheM.Append(bmSignal.Scaled(xFactorM, yFactorM, antiAliasM)); // SYMBOL_SIGNAL |      cacheM.Append(bmLock.Scaled(xFactorM, yFactorM, antiAliasM));            // SYMBOL_LOCK | ||||||
|      cacheM.Append(bmCarrier.Scaled(xFactorM, yFactorM, antiAliasM)); // SYMBOL_CARRIER |      cacheM.Append(bmSignal.Scaled(xFactorM, yFactorM, antiAliasM));          // SYMBOL_SIGNAL | ||||||
|      cacheM.Append(bmViterbi.Scaled(xFactorM, yFactorM, antiAliasM)); // SYMBOL_VITERBI |      cacheM.Append(bmCarrier.Scaled(xFactorM, yFactorM, antiAliasM));         // SYMBOL_CARRIER | ||||||
|      cacheM.Append(bmSync.Scaled(xFactorM, yFactorM, antiAliasM)); // SYMBOL_SYNC |      cacheM.Append(bmViterbi.Scaled(xFactorM, yFactorM, antiAliasM));         // SYMBOL_VITERBI | ||||||
|      cacheM.Append(bmAspectRatio11.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_AR_1_1 |      cacheM.Append(bmSync.Scaled(xFactorM, yFactorM, antiAliasM));            // SYMBOL_SYNC | ||||||
|      cacheM.Append(bmAspectRatio169.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_AR_16_9 |      cacheM.Append(bmAspectRatio11.Scaled(yFactorM, yFactorM, antiAliasM));   // SYMBOL_AR_1_1 | ||||||
|  |      cacheM.Append(bmAspectRatio169.Scaled(yFactorM, yFactorM, antiAliasM));  // SYMBOL_AR_16_9 | ||||||
|      cacheM.Append(bmAspectRatio2211.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_AR_2_21_1 |      cacheM.Append(bmAspectRatio2211.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_AR_2_21_1 | ||||||
|      cacheM.Append(bmAspectRatio43.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_AR_4_3 |      cacheM.Append(bmAspectRatio43.Scaled(yFactorM, yFactorM, antiAliasM));   // SYMBOL_AR_4_3 | ||||||
|      cacheM.Append(bmDevice.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_DEVICE |      cacheM.Append(bmDevice.Scaled(yFactorM, yFactorM, antiAliasM));          // SYMBOL_DEVICE | ||||||
|      cacheM.Append(bmZero.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_ZERO |      cacheM.Append(bmZero.Scaled(yFactorM, yFactorM, antiAliasM));            // SYMBOL_ZERO | ||||||
|      cacheM.Append(bmOne.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_ONE |      cacheM.Append(bmOne.Scaled(yFactorM, yFactorM, antiAliasM));             // SYMBOL_ONE | ||||||
|      cacheM.Append(bmTwo.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_TWO |      cacheM.Append(bmTwo.Scaled(yFactorM, yFactorM, antiAliasM));             // SYMBOL_TWO | ||||||
|      cacheM.Append(bmThree.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_THREE |      cacheM.Append(bmThree.Scaled(yFactorM, yFactorM, antiAliasM));           // SYMBOL_THREE | ||||||
|      cacheM.Append(bmFour.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FOUR |      cacheM.Append(bmFour.Scaled(yFactorM, yFactorM, antiAliasM));            // SYMBOL_FOUR | ||||||
|      cacheM.Append(bmFive.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FIVE |      cacheM.Append(bmFive.Scaled(yFactorM, yFactorM, antiAliasM));            // SYMBOL_FIVE | ||||||
|      cacheM.Append(bmSix.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_SIX |      cacheM.Append(bmSix.Scaled(yFactorM, yFactorM, antiAliasM));             // SYMBOL_SIX | ||||||
|      cacheM.Append(bmSeven.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_SEVEN |      cacheM.Append(bmSeven.Scaled(yFactorM, yFactorM, antiAliasM));           // SYMBOL_SEVEN | ||||||
|      cacheM.Append(bmEight.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_EIGHT |      cacheM.Append(bmEight.Scaled(yFactorM, yFactorM, antiAliasM));           // SYMBOL_EIGHT | ||||||
|      cacheM.Append(bmFormat1080.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_1080 |      cacheM.Append(bmFormat1080.Scaled(yFactorM, yFactorM, antiAliasM));      // SYMBOL_FORMAT_1080 | ||||||
|      cacheM.Append(bmFormat1080i.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_1080i |      cacheM.Append(bmFormat1080i.Scaled(yFactorM, yFactorM, antiAliasM));     // SYMBOL_FORMAT_1080i | ||||||
|      cacheM.Append(bmFormat1080p.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_1080p |      cacheM.Append(bmFormat1080p.Scaled(yFactorM, yFactorM, antiAliasM));     // SYMBOL_FORMAT_1080p | ||||||
|      cacheM.Append(bmFormat720.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_720 |      cacheM.Append(bmFormat720.Scaled(yFactorM, yFactorM, antiAliasM));       // SYMBOL_FORMAT_720 | ||||||
|      cacheM.Append(bmFormat720i.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_720i |      cacheM.Append(bmFormat720i.Scaled(yFactorM, yFactorM, antiAliasM));      // SYMBOL_FORMAT_720i | ||||||
|      cacheM.Append(bmFormat720p.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_720p |      cacheM.Append(bmFormat720p.Scaled(yFactorM, yFactorM, antiAliasM));      // SYMBOL_FORMAT_720p | ||||||
|      cacheM.Append(bmFormat576.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_576 |      cacheM.Append(bmFormat576.Scaled(yFactorM, yFactorM, antiAliasM));       // SYMBOL_FORMAT_576 | ||||||
|      cacheM.Append(bmFormat576i.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_576i |      cacheM.Append(bmFormat576i.Scaled(yFactorM, yFactorM, antiAliasM));      // SYMBOL_FORMAT_576i | ||||||
|      cacheM.Append(bmFormat576p.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_576p |      cacheM.Append(bmFormat576p.Scaled(yFactorM, yFactorM, antiAliasM));      // SYMBOL_FORMAT_576p | ||||||
|      cacheM.Append(bmFormat480.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_480 |      cacheM.Append(bmFormat480.Scaled(yFactorM, yFactorM, antiAliasM));       // SYMBOL_FORMAT_480 | ||||||
|      cacheM.Append(bmFormat480i.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_480i |      cacheM.Append(bmFormat480i.Scaled(yFactorM, yFactorM, antiAliasM));      // SYMBOL_FORMAT_480i | ||||||
|      cacheM.Append(bmFormat480p.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_480p |      cacheM.Append(bmFormat480p.Scaled(yFactorM, yFactorM, antiAliasM));      // SYMBOL_FORMAT_480p | ||||||
|  |  | ||||||
|      return true; |      return true; | ||||||
|      } |      } | ||||||
| @@ -197,7 +199,7 @@ bool cFemonSymbolCache::Flush(void) | |||||||
|  |  | ||||||
| cBitmap& cFemonSymbolCache::Get(eSymbols symbolP) | cBitmap& cFemonSymbolCache::Get(eSymbols symbolP) | ||||||
| { | { | ||||||
|   cBitmap *bitmapM = NULL; |   cBitmap *bitmapM = cacheM[SYMBOL_ONEPIXEL]; | ||||||
|  |  | ||||||
|   if (symbolP < cacheM.Size()) |   if (symbolP < cacheM.Size()) | ||||||
|      bitmapM = cacheM[symbolP]; |      bitmapM = cacheM[symbolP]; | ||||||
|   | |||||||
| @@ -12,6 +12,7 @@ | |||||||
| #include <vdr/osd.h> | #include <vdr/osd.h> | ||||||
|  |  | ||||||
| enum eSymbols { | enum eSymbols { | ||||||
|  |   SYMBOL_ONEPIXEL, | ||||||
|   SYMBOL_STEREO, |   SYMBOL_STEREO, | ||||||
|   SYMBOL_MONO_LEFT, |   SYMBOL_MONO_LEFT, | ||||||
|   SYMBOL_MONO_RIGHT, |   SYMBOL_MONO_RIGHT, | ||||||
| @@ -77,8 +78,8 @@ public: | |||||||
|   ~cFemonSymbolCache(); |   ~cFemonSymbolCache(); | ||||||
|   void Refresh(); |   void Refresh(); | ||||||
|   cBitmap& Get(eSymbols symbolP); |   cBitmap& Get(eSymbols symbolP); | ||||||
|   int GetSpacing()  { return int(yFactorM * DEFAULT_SPACING);  } |   int GetSpacing()  { return int(yFactorM * cFemonSymbolCache::DEFAULT_SPACING);  } | ||||||
|   int GetRounding() { return int(yFactorM * DEFAULT_ROUNDING); } |   int GetRounding() { return int(yFactorM * cFemonSymbolCache::DEFAULT_ROUNDING); } | ||||||
| }; | }; | ||||||
|  |  | ||||||
| extern cFemonSymbolCache femonSymbols; | extern cFemonSymbolCache femonSymbols; | ||||||
|   | |||||||
							
								
								
									
										83
									
								
								femontools.c
									
									
									
									
									
								
							
							
						
						
									
										83
									
								
								femontools.c
									
									
									
									
									
								
							| @@ -9,6 +9,7 @@ | |||||||
| #define __STDC_FORMAT_MACROS | #define __STDC_FORMAT_MACROS | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|  | #include <ctype.h> | ||||||
| #include <stdint.h> | #include <stdint.h> | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
| #include <unistd.h> | #include <unistd.h> | ||||||
| @@ -25,41 +26,41 @@ static cString getCA(int value) | |||||||
|   switch (value) { |   switch (value) { | ||||||
|     case 0x0000:            return cString::sprintf("%s (%X)", trVDR("Free To Air"), value);  // Reserved |     case 0x0000:            return cString::sprintf("%s (%X)", trVDR("Free To Air"), value);  // Reserved | ||||||
|     case 0x0001 ... 0x009F: |     case 0x0001 ... 0x009F: | ||||||
|     case 0x00A2 ... 0x00FF: return cString::sprintf("%s (%X)", tr("Fixed"),          value); // Standardized systems |     case 0x00A2 ... 0x00FF: return cString::sprintf("%s (%X)", tr("Fixed"),  value); // Standardized systems | ||||||
|     case 0x00A0 ... 0x00A1: return cString::sprintf("%s (%X)", tr("Analog"),         value); // Analog signals |     case 0x00A0 ... 0x00A1: return cString::sprintf("%s (%X)", tr("Analog"), value); // Analog signals | ||||||
|     case 0x0100 ... 0x01FF: return cString::sprintf("%s (%X)", "SECA Mediaguard",    value); // Canal Plus |     case 0x0100 ... 0x01FF: return cString::sprintf("SECA Mediaguard (%X)",  value); // Canal Plus | ||||||
|     case 0x0464:            return cString::sprintf("%s (%X)", "EuroDec",            value); // EuroDec |     case 0x0464:            return cString::sprintf("EuroDec (%X)",          value); // EuroDec | ||||||
|     case 0x0500 ... 0x05FF: return cString::sprintf("%s (%X)", "Viaccess",           value); // France Telecom |     case 0x0500 ... 0x05FF: return cString::sprintf("Viaccess (%X)",         value); // France Telecom | ||||||
|     case 0x0600 ... 0x06FF: return cString::sprintf("%s (%X)", "Irdeto",             value); // Irdeto |     case 0x0600 ... 0x06FF: return cString::sprintf("Irdeto (%X)",           value); // Irdeto | ||||||
|     case 0x0900 ... 0x09FF: return cString::sprintf("%s (%X)", "NDS Videoguard",     value); // News Datacom |     case 0x0900 ... 0x09FF: return cString::sprintf("NDS Videoguard (%X)",   value); // News Datacom | ||||||
|     case 0x0B00 ... 0x0BFF: return cString::sprintf("%s (%X)", "Conax",              value); // Norwegian Telekom |     case 0x0B00 ... 0x0BFF: return cString::sprintf("Conax (%X)",            value); // Norwegian Telekom | ||||||
|     case 0x0D00 ... 0x0DFF: return cString::sprintf("%s (%X)", "CryptoWorks",        value); // Philips |     case 0x0D00 ... 0x0DFF: return cString::sprintf("CryptoWorks (%X)",      value); // Philips | ||||||
|     case 0x0E00 ... 0x0EFF: return cString::sprintf("%s (%X)", "PowerVu",            value); // Scientific Atlanta |     case 0x0E00 ... 0x0EFF: return cString::sprintf("PowerVu (%X)",          value); // Scientific Atlanta | ||||||
|     case 0x1000:            return cString::sprintf("%s (%X)", "RAS",                value); // Tandberg Television |     case 0x1000:            return cString::sprintf("RAS (%X)",              value); // Tandberg Television | ||||||
|     case 0x1200 ... 0x12FF: return cString::sprintf("%s (%X)", "NagraVision",        value); // BellVu Express |     case 0x1200 ... 0x12FF: return cString::sprintf("NagraVision (%X)",      value); // BellVu Express | ||||||
|     case 0x1700 ... 0x17FF: return cString::sprintf("%s (%X)", "BetaCrypt",          value); // BetaTechnik |     case 0x1700 ... 0x17FF: return cString::sprintf("BetaCrypt (%X)",        value); // BetaTechnik | ||||||
|     case 0x1800 ... 0x18FF: return cString::sprintf("%s (%X)", "NagraVision",        value); // Kudelski SA |     case 0x1800 ... 0x18FF: return cString::sprintf("NagraVision (%X)",      value); // Kudelski SA | ||||||
|     case 0x22F0:            return cString::sprintf("%s (%X)", "Codicrypt",          value); // Scopus Network Technologies |     case 0x22F0:            return cString::sprintf("Codicrypt (%X)",        value); // Scopus Network Technologies | ||||||
|     case 0x2600:            return cString::sprintf("%s (%X)", "BISS",               value); // European Broadcasting Union |     case 0x2600:            return cString::sprintf("BISS (%X)",             value); // European Broadcasting Union | ||||||
|     case 0x4347:            return cString::sprintf("%s (%X)", "CryptOn",            value); // CryptOn |     case 0x4347:            return cString::sprintf("CryptOn (%X)",          value); // CryptOn | ||||||
|     case 0x4800:            return cString::sprintf("%s (%X)", "Accessgate",         value); // Telemann |     case 0x4800:            return cString::sprintf("Accessgate (%X)",       value); // Telemann | ||||||
|     case 0x4900:            return cString::sprintf("%s (%X)", "China Crypt",        value); // CryptoWorks |     case 0x4900:            return cString::sprintf("China Crypt (%X)",      value); // CryptoWorks | ||||||
|     case 0x4A10:            return cString::sprintf("%s (%X)", "EasyCas",            value); // EasyCas |     case 0x4A10:            return cString::sprintf("EasyCas (%X)",          value); // EasyCas | ||||||
|     case 0x4A20:            return cString::sprintf("%s (%X)", "AlphaCrypt",         value); // AlphaCrypt |     case 0x4A20:            return cString::sprintf("AlphaCrypt (%X)",       value); // AlphaCrypt | ||||||
|     case 0x4A70:            return cString::sprintf("%s (%X)", "DreamCrypt",         value); // Dream Multimedia |     case 0x4A70:            return cString::sprintf("DreamCrypt (%X)",       value); // Dream Multimedia | ||||||
|     case 0x4A60:            return cString::sprintf("%s (%X)", "SkyCrypt",           value); // @Sky |     case 0x4A60:            return cString::sprintf("SkyCrypt (%X)",         value); // @Sky | ||||||
|     case 0x4A61:            return cString::sprintf("%s (%X)", "Neotioncrypt",       value); // Neotion |     case 0x4A61:            return cString::sprintf("Neotioncrypt (%X)",     value); // Neotion | ||||||
|     case 0x4A62:            return cString::sprintf("%s (%X)", "SkyCrypt",           value); // @Sky |     case 0x4A62:            return cString::sprintf("SkyCrypt (%X)",         value); // @Sky | ||||||
|     case 0x4A63:            return cString::sprintf("%s (%X)", "Neotion SHL",        value); // Neotion |     case 0x4A63:            return cString::sprintf("Neotion SHL (%X)",      value); // Neotion | ||||||
|     case 0x4A64 ... 0x4A6F: return cString::sprintf("%s (%X)", "SkyCrypt",           value); // @Sky |     case 0x4A64 ... 0x4A6F: return cString::sprintf("SkyCrypt (%X)",         value); // @Sky | ||||||
|     case 0x4A80:            return cString::sprintf("%s (%X)", "ThalesCrypt",        value); // TPS |     case 0x4A80:            return cString::sprintf("ThalesCrypt (%X)",      value); // TPS | ||||||
|     case 0x4AA1:            return cString::sprintf("%s (%X)", "KeyFly",             value); // SIDSA |     case 0x4AA1:            return cString::sprintf("KeyFly (%X)",           value); // SIDSA | ||||||
|     case 0x4ABF:            return cString::sprintf("%s (%X)", "DG-Crypt",           value); // Beijing Compunicate Technology Inc. |     case 0x4ABF:            return cString::sprintf("DG-Crypt (%X)",         value); // Beijing Compunicate Technology Inc. | ||||||
|     case 0x4AD0 ... 0x4AD1: return cString::sprintf("%s (%X)", "X-Crypt",            value); // XCrypt Inc. |     case 0x4AD0 ... 0x4AD1: return cString::sprintf("X-Crypt (%X)",          value); // XCrypt Inc. | ||||||
|     case 0x4AD4:            return cString::sprintf("%s (%X)", "OmniCrypt",          value); // Widevine Technologies, Inc. |     case 0x4AD4:            return cString::sprintf("OmniCrypt (%X)",        value); // Widevine Technologies, Inc. | ||||||
|     case 0x4AE0:            return cString::sprintf("%s (%X)", "RossCrypt",          value); // Digi Raum Electronics Co. Ltd. |     case 0x4AE0:            return cString::sprintf("RossCrypt (%X)",        value); // Digi Raum Electronics Co. Ltd. | ||||||
|     case 0x5500:            return cString::sprintf("%s (%X)", "Z-Crypt",            value); // Digi Raum Electronics Co. Ltd. |     case 0x5500:            return cString::sprintf("Z-Crypt (%X)",          value); // Digi Raum Electronics Co. Ltd. | ||||||
|     case 0x5501:            return cString::sprintf("%s (%X)", "Griffin",            value); // Griffin |     case 0x5501:            return cString::sprintf("Griffin (%X)",          value); // Griffin | ||||||
|     default:                break; |     default:                break; | ||||||
|     } |     } | ||||||
|   return cString::sprintf("%X", value); |   return cString::sprintf("%X", value); | ||||||
| @@ -76,11 +77,21 @@ static const char *getUserString(int Value, const tDvbParameterMap *Map) | |||||||
|   return "---"; |   return "---"; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | cDvbDevice *getDvbDevice(cDevice* device) | ||||||
|  | { | ||||||
|  |   cDvbDevice *dev = dynamic_cast<cDvbDevice*>(device); | ||||||
|  | #ifdef __DYNAMIC_DEVICE_PROBE | ||||||
|  |   if (!dev && device && device->HasSubDevice()) | ||||||
|  |      dev = dynamic_cast<cDvbDevice*>(device->SubDevice()); | ||||||
|  | #endif | ||||||
|  |   return dev; | ||||||
|  | } | ||||||
|  |  | ||||||
| cString getFrontendInfo(cDvbDevice *device) | cString getFrontendInfo(cDvbDevice *device) | ||||||
| { | { | ||||||
|   cString info; |  | ||||||
|   struct dvb_frontend_info value; |   struct dvb_frontend_info value; | ||||||
|   fe_status_t status; |   fe_status_t status; | ||||||
|  |   cString info = ""; | ||||||
|   uint16_t signal = 0; |   uint16_t signal = 0; | ||||||
|   uint16_t snr = 0; |   uint16_t snr = 0; | ||||||
|   uint32_t ber = 0; |   uint32_t ber = 0; | ||||||
|   | |||||||
| @@ -26,6 +26,10 @@ | |||||||
|  |  | ||||||
| #define FRONTEND_DEVICE "/dev/dvb/adapter%d/frontend%d" | #define FRONTEND_DEVICE "/dev/dvb/adapter%d/frontend%d" | ||||||
|  |  | ||||||
|  | #define SATIP_DEVICE "SAT>IP" | ||||||
|  |  | ||||||
|  | cDvbDevice *getDvbDevice(cDevice* device); | ||||||
|  |  | ||||||
| cString getFrontendInfo(cDvbDevice *device); | cString getFrontendInfo(cDvbDevice *device); | ||||||
| cString getFrontendName(cDvbDevice *device); | cString getFrontendName(cDvbDevice *device); | ||||||
| cString getFrontendStatus(cDvbDevice *device); | cString getFrontendStatus(cDvbDevice *device); | ||||||
|   | |||||||
							
								
								
									
										22
									
								
								iptvservice.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								iptvservice.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | |||||||
|  | /* | ||||||
|  |  * iptvservice.h: IPTV plugin for the Video Disk Recorder | ||||||
|  |  * | ||||||
|  |  * See the README file for copyright information and how to reach the author. | ||||||
|  |  * | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #ifndef __IPTVSERVICE_H | ||||||
|  | #define __IPTVSERVICE_H | ||||||
|  |  | ||||||
|  | #include <vdr/tools.h> | ||||||
|  |  | ||||||
|  | #define stIptv ('I' << 24) | ||||||
|  |  | ||||||
|  | struct IptvService_v1_0 { | ||||||
|  |   unsigned int cardIndex; | ||||||
|  |   cString protocol; | ||||||
|  |   cString bitrate; | ||||||
|  |   }; | ||||||
|  |  | ||||||
|  | #endif //__IPTVSERVICE_H | ||||||
|  |  | ||||||
							
								
								
									
										20
									
								
								po/de_DE.po
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								po/de_DE.po
									
									
									
									
									
								
							| @@ -1,5 +1,5 @@ | |||||||
| # VDR plugin language source file. | # VDR plugin language source file. | ||||||
| # Copyright (C) 2007 Rolf Ahrenberg | # Copyright (C) 2007-2014 Rolf Ahrenberg | ||||||
| # This file is distributed under the same license as the femon package. | # This file is distributed under the same license as the femon package. | ||||||
| # Peter Marquardt | # Peter Marquardt | ||||||
| # Andreas Brachold | # Andreas Brachold | ||||||
| @@ -7,10 +7,10 @@ | |||||||
| # | # | ||||||
| msgid "" | msgid "" | ||||||
| msgstr "" | msgstr "" | ||||||
| "Project-Id-Version: vdr-femon 1.7.15\n" | "Project-Id-Version: vdr-femon 2.0.4\n" | ||||||
| "Report-Msgid-Bugs-To: <see README>\n" | "Report-Msgid-Bugs-To: <see README>\n" | ||||||
| "POT-Creation-Date: 2010-10-10 10:10+0300\n" | "POT-Creation-Date: 2014-03-15 03:15+0200\n" | ||||||
| "PO-Revision-Date: 2010-10-10 10:10+0300\n" | "PO-Revision-Date: 2014-03-15 03:15+0200\n" | ||||||
| "Last-Translator: Christian Wieninger\n" | "Last-Translator: Christian Wieninger\n" | ||||||
| "Language-Team: German <vdr@linuxtv.org>\n" | "Language-Team: German <vdr@linuxtv.org>\n" | ||||||
| "Language: de\n" | "Language: de\n" | ||||||
| @@ -66,6 +66,9 @@ msgstr "Duotone" | |||||||
| msgid "SilverGreen" | msgid "SilverGreen" | ||||||
| msgstr "SilverGreen" | msgstr "SilverGreen" | ||||||
|  |  | ||||||
|  | msgid "PearlHD" | ||||||
|  | msgstr "PearlHD" | ||||||
|  |  | ||||||
| msgid "Hide main menu entry" | msgid "Hide main menu entry" | ||||||
| msgstr "Hauptmen<65>eintrag verstecken" | msgstr "Hauptmen<65>eintrag verstecken" | ||||||
|  |  | ||||||
| @@ -177,6 +180,12 @@ msgstr "Rid" | |||||||
| msgid "Coderate" | msgid "Coderate" | ||||||
| msgstr "Coderate" | msgstr "Coderate" | ||||||
|  |  | ||||||
|  | msgid "Protocol" | ||||||
|  | msgstr "" | ||||||
|  |  | ||||||
|  | msgid "Bitrate" | ||||||
|  | msgstr "Bitrate" | ||||||
|  |  | ||||||
| msgid "Stream Information" | msgid "Stream Information" | ||||||
| msgstr "Streaminformation" | msgstr "Streaminformation" | ||||||
|  |  | ||||||
| @@ -186,9 +195,6 @@ msgstr "Video Stream" | |||||||
| msgid "Codec" | msgid "Codec" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| msgid "Bitrate" |  | ||||||
| msgstr "Bitrate" |  | ||||||
|  |  | ||||||
| msgid "Aspect Ratio" | msgid "Aspect Ratio" | ||||||
| msgstr "Seitenverh<72>ltnis" | msgstr "Seitenverh<72>ltnis" | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										20
									
								
								po/es_ES.po
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								po/es_ES.po
									
									
									
									
									
								
							| @@ -1,14 +1,14 @@ | |||||||
| # VDR plugin language source file. | # VDR plugin language source file. | ||||||
| # Copyright (C) 2007 Rolf Ahrenberg | # Copyright (C) 2007-2014 Rolf Ahrenberg | ||||||
| # This file is distributed under the same license as the femon package. | # This file is distributed under the same license as the femon package. | ||||||
| # Luis Palacios | # Luis Palacios | ||||||
| # | # | ||||||
| msgid "" | msgid "" | ||||||
| msgstr "" | msgstr "" | ||||||
| "Project-Id-Version: vdr-femon 1.7.15\n" | "Project-Id-Version: vdr-femon 2.0.4\n" | ||||||
| "Report-Msgid-Bugs-To: <see README>\n" | "Report-Msgid-Bugs-To: <see README>\n" | ||||||
| "POT-Creation-Date: 2010-10-10 10:10+0300\n" | "POT-Creation-Date: 2014-03-15 03:15+0200\n" | ||||||
| "PO-Revision-Date: 2010-10-10 10:10+0300\n" | "PO-Revision-Date: 2014-03-15 03:15+0200\n" | ||||||
| "Last-Translator: Luis Palacios\n" | "Last-Translator: Luis Palacios\n" | ||||||
| "Language-Team: Spanish <vdr@linuxtv.org>\n" | "Language-Team: Spanish <vdr@linuxtv.org>\n" | ||||||
| "Language: es\n" | "Language: es\n" | ||||||
| @@ -64,6 +64,9 @@ msgstr "Duotone" | |||||||
| msgid "SilverGreen" | msgid "SilverGreen" | ||||||
| msgstr "SilverGreen" | msgstr "SilverGreen" | ||||||
|  |  | ||||||
|  | msgid "PearlHD" | ||||||
|  | msgstr "PearlHD" | ||||||
|  |  | ||||||
| msgid "Hide main menu entry" | msgid "Hide main menu entry" | ||||||
| msgstr "Ocultar en el men<65> principal" | msgstr "Ocultar en el men<65> principal" | ||||||
|  |  | ||||||
| @@ -175,6 +178,12 @@ msgstr "Rid" | |||||||
| msgid "Coderate" | msgid "Coderate" | ||||||
| msgstr "Coderate" | msgstr "Coderate" | ||||||
|  |  | ||||||
|  | msgid "Protocol" | ||||||
|  | msgstr "" | ||||||
|  |  | ||||||
|  | msgid "Bitrate" | ||||||
|  | msgstr "Tasa de bits" | ||||||
|  |  | ||||||
| msgid "Stream Information" | msgid "Stream Information" | ||||||
| msgstr "Informaci<63>n del flujo" | msgstr "Informaci<63>n del flujo" | ||||||
|  |  | ||||||
| @@ -184,9 +193,6 @@ msgstr "Flujo de video" | |||||||
| msgid "Codec" | msgid "Codec" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| msgid "Bitrate" |  | ||||||
| msgstr "Tasa de bits" |  | ||||||
|  |  | ||||||
| msgid "Aspect Ratio" | msgid "Aspect Ratio" | ||||||
| msgstr "Proporciones de la imagen" | msgstr "Proporciones de la imagen" | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										20
									
								
								po/et_EE.po
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								po/et_EE.po
									
									
									
									
									
								
							| @@ -1,14 +1,14 @@ | |||||||
| # VDR plugin language source file. | # VDR plugin language source file. | ||||||
| # Copyright (C) 2007 Rolf Ahrenberg | # Copyright (C) 2007-2014 Rolf Ahrenberg | ||||||
| # This file is distributed under the same license as the femon package. | # This file is distributed under the same license as the femon package. | ||||||
| # Arthur Konovalov | # Arthur Konovalov | ||||||
| # | # | ||||||
| msgid "" | msgid "" | ||||||
| msgstr "" | msgstr "" | ||||||
| "Project-Id-Version: vdr-femon 1.7.15\n" | "Project-Id-Version: vdr-femon 2.0.4\n" | ||||||
| "Report-Msgid-Bugs-To: <see README>\n" | "Report-Msgid-Bugs-To: <see README>\n" | ||||||
| "POT-Creation-Date: 2010-10-10 10:10+0300\n" | "POT-Creation-Date: 2014-03-15 03:15+0200\n" | ||||||
| "PO-Revision-Date: 2010-10-10 10:10+0300\n" | "PO-Revision-Date: 2014-03-15 03:15+0200\n" | ||||||
| "Last-Translator: Arthur Konovalov\n" | "Last-Translator: Arthur Konovalov\n" | ||||||
| "Language-Team: Estonian <vdr@linuxtv.org>\n" | "Language-Team: Estonian <vdr@linuxtv.org>\n" | ||||||
| "Language: et\n" | "Language: et\n" | ||||||
| @@ -64,6 +64,9 @@ msgstr "Duotone" | |||||||
| msgid "SilverGreen" | msgid "SilverGreen" | ||||||
| msgstr "SilverGreen" | msgstr "SilverGreen" | ||||||
|  |  | ||||||
|  | msgid "PearlHD" | ||||||
|  | msgstr "PearlHD" | ||||||
|  |  | ||||||
| msgid "Hide main menu entry" | msgid "Hide main menu entry" | ||||||
| msgstr "Peita valik peamen<65><6E>s" | msgstr "Peita valik peamen<65><6E>s" | ||||||
|  |  | ||||||
| @@ -175,6 +178,12 @@ msgstr "Rid" | |||||||
| msgid "Coderate" | msgid "Coderate" | ||||||
| msgstr "Coderate" | msgstr "Coderate" | ||||||
|  |  | ||||||
|  | msgid "Protocol" | ||||||
|  | msgstr "" | ||||||
|  |  | ||||||
|  | msgid "Bitrate" | ||||||
|  | msgstr "Bitikiirus" | ||||||
|  |  | ||||||
| msgid "Stream Information" | msgid "Stream Information" | ||||||
| msgstr "Vooinfo" | msgstr "Vooinfo" | ||||||
|  |  | ||||||
| @@ -184,9 +193,6 @@ msgstr "Videovoog" | |||||||
| msgid "Codec" | msgid "Codec" | ||||||
| msgstr "Koodek" | msgstr "Koodek" | ||||||
|  |  | ||||||
| msgid "Bitrate" |  | ||||||
| msgstr "Bitikiirus" |  | ||||||
|  |  | ||||||
| msgid "Aspect Ratio" | msgid "Aspect Ratio" | ||||||
| msgstr "K<>lgsuhe" | msgstr "K<>lgsuhe" | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										22
									
								
								po/fi_FI.po
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								po/fi_FI.po
									
									
									
									
									
								
							| @@ -1,14 +1,14 @@ | |||||||
| # VDR plugin language source file. | # VDR plugin language source file. | ||||||
| # Copyright (C) 2007 Rolf Ahrenberg | # Copyright (C) 2007-2014 Rolf Ahrenberg | ||||||
| # This file is distributed under the same license as the femon package. | # This file is distributed under the same license as the femon package. | ||||||
| # Rolf Ahrenberg | # Rolf Ahrenberg | ||||||
| # | # | ||||||
| msgid "" | msgid "" | ||||||
| msgstr "" | msgstr "" | ||||||
| "Project-Id-Version: vdr-femon 1.7.15\n" | "Project-Id-Version: vdr-femon 2.0.4\n" | ||||||
| "Report-Msgid-Bugs-To: <see README>\n" | "Report-Msgid-Bugs-To: <see README>\n" | ||||||
| "POT-Creation-Date: 2010-10-10 10:10+0300\n" | "POT-Creation-Date: 2014-03-15 03:15+0200\n" | ||||||
| "PO-Revision-Date: 2010-10-10 10:10+0300\n" | "PO-Revision-Date: 2014-03-15 03:15+0200\n" | ||||||
| "Last-Translator: Rolf Ahrenberg\n" | "Last-Translator: Rolf Ahrenberg\n" | ||||||
| "Language-Team: Finnish <vdr@linuxtv.org>\n" | "Language-Team: Finnish <vdr@linuxtv.org>\n" | ||||||
| "Language: fi\n" | "Language: fi\n" | ||||||
| @@ -64,6 +64,9 @@ msgstr "Duotone" | |||||||
| msgid "SilverGreen" | msgid "SilverGreen" | ||||||
| msgstr "SilverGreen" | msgstr "SilverGreen" | ||||||
|  |  | ||||||
|  | msgid "PearlHD" | ||||||
|  | msgstr "PearlHD" | ||||||
|  |  | ||||||
| msgid "Hide main menu entry" | msgid "Hide main menu entry" | ||||||
| msgstr "Piilota valinta päävalikosta" | msgstr "Piilota valinta päävalikosta" | ||||||
|  |  | ||||||
| @@ -167,7 +170,7 @@ msgid "Nid" | |||||||
| msgstr "Verkko-ID" | msgstr "Verkko-ID" | ||||||
|  |  | ||||||
| msgid "Tid" | msgid "Tid" | ||||||
| msgstr "Lähete-ID" | msgstr "TS-ID" | ||||||
|  |  | ||||||
| msgid "Rid" | msgid "Rid" | ||||||
| msgstr "Radio-ID" | msgstr "Radio-ID" | ||||||
| @@ -175,6 +178,12 @@ msgstr "Radio-ID" | |||||||
| msgid "Coderate" | msgid "Coderate" | ||||||
| msgstr "Suojaustaso" | msgstr "Suojaustaso" | ||||||
|  |  | ||||||
|  | msgid "Protocol" | ||||||
|  | msgstr "Protokolla" | ||||||
|  |  | ||||||
|  | msgid "Bitrate" | ||||||
|  | msgstr "Bittinopeus" | ||||||
|  |  | ||||||
| msgid "Stream Information" | msgid "Stream Information" | ||||||
| msgstr "Lähetteen tiedot" | msgstr "Lähetteen tiedot" | ||||||
|  |  | ||||||
| @@ -184,9 +193,6 @@ msgstr "Kuvaraita" | |||||||
| msgid "Codec" | msgid "Codec" | ||||||
| msgstr "Koodekki" | msgstr "Koodekki" | ||||||
|  |  | ||||||
| msgid "Bitrate" |  | ||||||
| msgstr "Bittinopeus" |  | ||||||
|  |  | ||||||
| msgid "Aspect Ratio" | msgid "Aspect Ratio" | ||||||
| msgstr "Kuvasuhde" | msgstr "Kuvasuhde" | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										136
									
								
								po/fr_FR.po
									
									
									
									
									
								
							
							
						
						
									
										136
									
								
								po/fr_FR.po
									
									
									
									
									
								
							| @@ -1,26 +1,28 @@ | |||||||
| # VDR plugin language source file. | # VDR plugin language source file. | ||||||
| # Copyright (C) 2007 Rolf Ahrenberg | # Copyright (C) 2007-2014 Rolf Ahrenberg | ||||||
| # This file is distributed under the same license as the femon package. | # This file is distributed under the same license as the femon package. | ||||||
| # Nicolas Huillard | # Nicolas Huillard | ||||||
|  | # Michaël Nival <mnival@club-internet.fr>, 2010 | ||||||
|  | # Bernard Jaulin <bernard.jaulin@gmail.com>, 2013 | ||||||
| # | # | ||||||
| msgid "" | msgid "" | ||||||
| msgstr "" | msgstr "" | ||||||
| "Project-Id-Version: vdr-femon 1.7.15\n" | "Project-Id-Version: vdr-femon 2.0.4\n" | ||||||
| "Report-Msgid-Bugs-To: <see README>\n" | "Report-Msgid-Bugs-To: <see README>\n" | ||||||
| "POT-Creation-Date: 2010-10-10 10:10+0300\n" | "POT-Creation-Date: 2014-03-15 03:15+0200\n" | ||||||
| "PO-Revision-Date: 2010-10-10 10:10+0300\n" | "PO-Revision-Date: 2014-03-15 03:15+0200\n" | ||||||
| "Last-Translator: NIVAL Micha<68>l <mnival@club-internet.fr>\n" | "Last-Translator: Bernard Jaulin <bernard.jaulin@gmail.com>\n" | ||||||
| "Language-Team: French <vdr@linuxtv.org>\n" | "Language-Team: French <vdr@linuxtv.org>\n" | ||||||
| "Language: fr\n" | "Language: fr\n" | ||||||
| "MIME-Version: 1.0\n" | "MIME-Version: 1.0\n" | ||||||
| "Content-Type: text/plain; charset=ISO-8859-1\n" | "Content-Type: text/plain; charset=UTF-8\n" | ||||||
| "Content-Transfer-Encoding: 8bit\n" | "Content-Transfer-Encoding: 8bit\n" | ||||||
|  |  | ||||||
| msgid "DVB Signal Information Monitor (OSD)" | msgid "DVB Signal Information Monitor (OSD)" | ||||||
| msgstr "Affiche les informations du signal DVB" | msgstr "Moniteur sur le signal DVB" | ||||||
|  |  | ||||||
| msgid "Signal Information" | msgid "Signal Information" | ||||||
| msgstr "Signal DVB" | msgstr "Infos sur le signal DVB" | ||||||
|  |  | ||||||
| msgid "Femon not available" | msgid "Femon not available" | ||||||
| msgstr "Femon n'est pas disponible" | msgstr "Femon n'est pas disponible" | ||||||
| @@ -64,95 +66,98 @@ msgstr "Duotone" | |||||||
| msgid "SilverGreen" | msgid "SilverGreen" | ||||||
| msgstr "SilverGreen" | msgstr "SilverGreen" | ||||||
|  |  | ||||||
|  | msgid "PearlHD" | ||||||
|  | msgstr "PearlHD" | ||||||
|  |  | ||||||
| msgid "Hide main menu entry" | msgid "Hide main menu entry" | ||||||
| msgstr "Masquer dans le menu principal" | msgstr "Masquer dans le menu principal" | ||||||
|  |  | ||||||
| msgid "Define whether the main menu entry is hidden." | msgid "Define whether the main menu entry is hidden." | ||||||
| msgstr "D<EFBFBD>finit si l'entr<EFBFBD>e doit <EFBFBD>tre masqu<EFBFBD>e dans le menu principal." | msgstr "Définit si l'entrée doit être masquée dans le menu principal." | ||||||
|  |  | ||||||
| msgid "Default display mode" | msgid "Default display mode" | ||||||
| msgstr "Affichage par d<EFBFBD>faut" | msgstr "Affichage par défaut" | ||||||
|  |  | ||||||
| msgid "Define the default display mode at startup." | msgid "Define the default display mode at startup." | ||||||
| msgstr "D<EFBFBD>finit l'affichage par d<EFBFBD>faut au d<EFBFBD>marrage." | msgstr "Définit l'affichage par défaut au démarrage." | ||||||
|  |  | ||||||
| msgid "Define the used OSD skin." | msgid "Define the used OSD skin." | ||||||
| msgstr "D<EFBFBD>finit le skin OSD <EFBFBD> utiliser." | msgstr "Définit le skin OSD à utiliser." | ||||||
|  |  | ||||||
| msgid "Define the used OSD theme." | msgid "Define the used OSD theme." | ||||||
| msgstr "D<EFBFBD>finit le th<EFBFBD>me OSD <EFBFBD> utiliser." | msgstr "Définit le thème OSD à utiliser." | ||||||
|  |  | ||||||
| msgid "Position" | msgid "Position" | ||||||
| msgstr "Position" | msgstr "Position" | ||||||
|  |  | ||||||
| msgid "Define the position of OSD." | msgid "Define the position of OSD." | ||||||
| msgstr "D<EFBFBD>finit la position de l'OSD." | msgstr "Définit la position de l'OSD." | ||||||
|  |  | ||||||
| msgid "Downscale OSD size [%]" | msgid "Downscale OSD size [%]" | ||||||
| msgstr "" | msgstr "Réduit la taille de l'OSD (%)" | ||||||
|  |  | ||||||
| msgid "Define the downscale ratio for OSD size." | msgid "Define the downscale ratio for OSD size." | ||||||
| msgstr "" | msgstr "Définit le ration de réduction de l'OSD." | ||||||
|  |  | ||||||
| msgid "Red limit [%]" | msgid "Red limit [%]" | ||||||
| msgstr "Limite du rouge (%)" | msgstr "Limite du rouge (%)" | ||||||
|  |  | ||||||
| msgid "Define a limit for red bar, which is used to indicate a bad signal." | msgid "Define a limit for red bar, which is used to indicate a bad signal." | ||||||
| msgstr "D<EFBFBD>finit la limite de la barre rouge, qui est utilis<EFBFBD> pour indiquer un mauvais signal." | msgstr "Définit la limite de la barre rouge, qui est utilisé pour indiquer un mauvais signal." | ||||||
|  |  | ||||||
| msgid "Green limit [%]" | msgid "Green limit [%]" | ||||||
| msgstr "Limite du vert (%)" | msgstr "Limite du vert (%)" | ||||||
|  |  | ||||||
| msgid "Define a limit for green bar, which is used to indicate a good signal." | msgid "Define a limit for green bar, which is used to indicate a good signal." | ||||||
| msgstr "D<EFBFBD>finit la limite de la barre rouge, qui est utilis<EFBFBD> pour indiquer un bon signal." | msgstr "Définit la limite de la barre rouge, qui est utilisé pour indiquer un bon signal." | ||||||
|  |  | ||||||
| msgid "OSD update interval [0.1s]" | msgid "OSD update interval [0.1s]" | ||||||
| msgstr "Intervalle de mise <EFBFBD> jour (0,1s)" | msgstr "Intervalle de mise à jour (0,1s)" | ||||||
|  |  | ||||||
| msgid "Define an interval for OSD updates. The smaller interval generates higher CPU load." | msgid "Define an interval for OSD updates. The smaller interval generates higher CPU load." | ||||||
| msgstr "D<EFBFBD>finit l'intervalle de mise <EFBFBD> jour de l'OSD. Un petit intervalle g<EFBFBD>n<EFBFBD>re une charge CPU plus importante." | msgstr "Définit l'intervalle de mise à jour de l'OSD. Un petit intervalle génère une charge CPU plus importante." | ||||||
|  |  | ||||||
| msgid "Analyze stream" | msgid "Analyze stream" | ||||||
| msgstr "Analyser le flux" | msgstr "Analyser le flux" | ||||||
|  |  | ||||||
| msgid "Define whether the DVB stream is analyzed and bitrates calculated." | msgid "Define whether the DVB stream is analyzed and bitrates calculated." | ||||||
| msgstr "D<EFBFBD>finit si le flux DVB est analys<EFBFBD> et le bitrates calcul<EFBFBD>." | msgstr "Définit si le flux DVB est analysé et le taux d'échantillonnage fixe calculé." | ||||||
|  |  | ||||||
| msgid "Calculation interval [0.1s]" | msgid "Calculation interval [0.1s]" | ||||||
| msgstr "Intervalle de calcul (0,1s)" | msgstr "Intervalle de calcul (0,1s)" | ||||||
|  |  | ||||||
| msgid "Define an interval for calculation. The bigger interval generates more stable values." | msgid "Define an interval for calculation. The bigger interval generates more stable values." | ||||||
| msgstr "D<EFBFBD>finit l'intervalle de cacul. Un plus grand intervalle g<EFBFBD>n<EFBFBD>re une valeur plus stable." | msgstr "Définit l'intervalle de cacul. Un plus grand intervalle génère une valeur plus stable." | ||||||
|  |  | ||||||
| msgid "Use SVDRP service" | msgid "Use SVDRP service" | ||||||
| msgstr "Utiliser le service SVDRP" | msgstr "Utiliser le service SVDRP" | ||||||
|  |  | ||||||
| msgid "Define whether the SVDRP service is used in client/server setups." | msgid "Define whether the SVDRP service is used in client/server setups." | ||||||
| msgstr "D<EFBFBD>finit si le service SVDRP est utilis<EFBFBD> en configuration client/serveur." | msgstr "Définit si le service SVDRP est utilisé dans la configuration client/serveur." | ||||||
|  |  | ||||||
| msgid "SVDRP service port" | msgid "SVDRP service port" | ||||||
| msgstr "Port du service SVDRP" | msgstr "Port du service SVDRP" | ||||||
|  |  | ||||||
| msgid "Define the port number of SVDRP service." | msgid "Define the port number of SVDRP service." | ||||||
| msgstr "D<EFBFBD>finit le port d'<EFBFBD>coute du service SVDRP." | msgstr "Définit le port d'écoute du service SVDRP." | ||||||
|  |  | ||||||
| msgid "SVDRP service IP" | msgid "SVDRP service IP" | ||||||
| msgstr "IP du service SVDRP" | msgstr "IP du service SVDRP" | ||||||
|  |  | ||||||
| msgid "Define the IP address of SVDRP service." | msgid "Define the IP address of SVDRP service." | ||||||
| msgstr "D<EFBFBD>finit l'adresse IP du service SVDRP." | msgstr "Définit l'adresse IP du service SVDRP." | ||||||
|  |  | ||||||
| msgid "Help" | msgid "Help" | ||||||
| msgstr "Aide" | msgstr "Aide" | ||||||
|  |  | ||||||
| msgid "Video" | msgid "Video" | ||||||
| msgstr "Vid<EFBFBD>o" | msgstr "Vidéo" | ||||||
|  |  | ||||||
| msgid "Audio" | msgid "Audio" | ||||||
| msgstr "Audio" | msgstr "Audio" | ||||||
|  |  | ||||||
| msgid "Transponder Information" | msgid "Transponder Information" | ||||||
| msgstr "Information transpondeur" | msgstr "Information du transpondeur" | ||||||
|  |  | ||||||
| msgid "Apid" | msgid "Apid" | ||||||
| msgstr "Apid" | msgstr "Apid" | ||||||
| @@ -175,38 +180,41 @@ msgstr "Rid" | |||||||
| msgid "Coderate" | msgid "Coderate" | ||||||
| msgstr "Coderate" | msgstr "Coderate" | ||||||
|  |  | ||||||
| msgid "Stream Information" | msgid "Protocol" | ||||||
| msgstr "Information flux" | msgstr "Protocole" | ||||||
|  |  | ||||||
| msgid "Video Stream" |  | ||||||
| msgstr "Flux vid<69>o" |  | ||||||
|  |  | ||||||
| msgid "Codec" |  | ||||||
| msgstr "" |  | ||||||
|  |  | ||||||
| msgid "Bitrate" | msgid "Bitrate" | ||||||
| msgstr "Bitrate" | msgstr "Taux d'échantillonnage fixe" | ||||||
|  |  | ||||||
|  | msgid "Stream Information" | ||||||
|  | msgstr "Information sur le flux" | ||||||
|  |  | ||||||
|  | msgid "Video Stream" | ||||||
|  | msgstr "Flux vidéo" | ||||||
|  |  | ||||||
|  | msgid "Codec" | ||||||
|  | msgstr "Codec" | ||||||
|  |  | ||||||
| msgid "Aspect Ratio" | msgid "Aspect Ratio" | ||||||
| msgstr "Proportions d'image" | msgstr "Format de l'image" | ||||||
|  |  | ||||||
| msgid "Frame Rate" | msgid "Frame Rate" | ||||||
| msgstr "Rafra<EFBFBD>chissement" | msgstr "Rafraîchissement" | ||||||
|  |  | ||||||
| msgid "Video Format" | msgid "Video Format" | ||||||
| msgstr "Standard vid<EFBFBD>o" | msgstr "Standard vidéo" | ||||||
|  |  | ||||||
| msgid "Resolution" | msgid "Resolution" | ||||||
| msgstr "R<EFBFBD>solution" | msgstr "Résolution" | ||||||
|  |  | ||||||
| msgid "Audio Stream" | msgid "Audio Stream" | ||||||
| msgstr "Flux audio" | msgstr "Flux audio" | ||||||
|  |  | ||||||
| msgid "Channel Mode" | msgid "Channel Mode" | ||||||
| msgstr "" | msgstr "Mode chaîne" | ||||||
|  |  | ||||||
| msgid "Sampling Frequency" | msgid "Sampling Frequency" | ||||||
| msgstr "Fr<EFBFBD>quence d'<EFBFBD>chantillonage" | msgstr "Fréquence d'échantillonage" | ||||||
|  |  | ||||||
| msgid "AC-3 Stream" | msgid "AC-3 Stream" | ||||||
| msgstr "Flux AC-3" | msgstr "Flux AC-3" | ||||||
| @@ -239,64 +247,64 @@ msgid "Analog" | |||||||
| msgstr "Analogique" | msgstr "Analogique" | ||||||
|  |  | ||||||
| msgid "MPEG-2" | msgid "MPEG-2" | ||||||
| msgstr "" | msgstr "MPEG-2" | ||||||
|  |  | ||||||
| msgid "H.264" | msgid "H.264" | ||||||
| msgstr "" | msgstr "H.264" | ||||||
|  |  | ||||||
| msgid "MPEG-1 Layer I" | msgid "MPEG-1 Layer I" | ||||||
| msgstr "" | msgstr "MPEG-1 Layer I" | ||||||
|  |  | ||||||
| msgid "MPEG-1 Layer II" | msgid "MPEG-1 Layer II" | ||||||
| msgstr "" | msgstr "MPEG-1 Layer II" | ||||||
|  |  | ||||||
| msgid "MPEG-1 Layer III" | msgid "MPEG-1 Layer III" | ||||||
| msgstr "" | msgstr "MPEG-1 Layer III" | ||||||
|  |  | ||||||
| msgid "MPEG-2 Layer I" | msgid "MPEG-2 Layer I" | ||||||
| msgstr "" | msgstr "MPEG-2 Layer I" | ||||||
|  |  | ||||||
| msgid "MPEG-2 Layer II" | msgid "MPEG-2 Layer II" | ||||||
| msgstr "" | msgstr "MPEG-2 Layer II" | ||||||
|  |  | ||||||
| msgid "MPEG-2 Layer III" | msgid "MPEG-2 Layer III" | ||||||
| msgstr "" | msgstr "MPEG-2 Layer III" | ||||||
|  |  | ||||||
| msgid "HE-AAC" | msgid "HE-AAC" | ||||||
| msgstr "" | msgstr "HE-AAC" | ||||||
|  |  | ||||||
| msgid "LATM" | msgid "LATM" | ||||||
| msgstr "" | msgstr "LATM" | ||||||
|  |  | ||||||
| msgid "stereo" | msgid "stereo" | ||||||
| msgstr "" | msgstr "stéréo" | ||||||
|  |  | ||||||
| msgid "joint Stereo" | msgid "joint Stereo" | ||||||
| msgstr "" | msgstr "joint Stereo" | ||||||
|  |  | ||||||
| msgid "dual" | msgid "dual" | ||||||
| msgstr "" | msgstr "double" | ||||||
|  |  | ||||||
| msgid "mono" | msgid "mono" | ||||||
| msgstr "" | msgstr "mono" | ||||||
|  |  | ||||||
| msgid "interlaced" | msgid "interlaced" | ||||||
| msgstr "" | msgstr "entrelacé" | ||||||
|  |  | ||||||
| msgid "progressive" | msgid "progressive" | ||||||
| msgstr "" | msgstr "progressif" | ||||||
|  |  | ||||||
| msgid "reserved" | msgid "reserved" | ||||||
| msgstr "r<EFBFBD>serv<EFBFBD>" | msgstr "réservé" | ||||||
|  |  | ||||||
| msgid "extended" | msgid "extended" | ||||||
| msgstr "" | msgstr "étendu" | ||||||
|  |  | ||||||
| msgid "unknown" | msgid "unknown" | ||||||
| msgstr "inconnu" | msgstr "inconnu" | ||||||
|  |  | ||||||
| msgid "component" | msgid "component" | ||||||
| msgstr "" | msgstr "composant" | ||||||
|  |  | ||||||
| msgid "PAL" | msgid "PAL" | ||||||
| msgstr "PAL" | msgstr "PAL" | ||||||
| @@ -305,10 +313,10 @@ msgid "NTSC" | |||||||
| msgstr "NTSC" | msgstr "NTSC" | ||||||
|  |  | ||||||
| msgid "SECAM" | msgid "SECAM" | ||||||
| msgstr "" | msgstr "SECAM" | ||||||
|  |  | ||||||
| msgid "MAC" | msgid "MAC" | ||||||
| msgstr "" | msgstr "MAC" | ||||||
|  |  | ||||||
| msgid "Hz" | msgid "Hz" | ||||||
| msgstr "Hz" | msgstr "Hz" | ||||||
| @@ -368,7 +376,7 @@ msgid "dB" | |||||||
| msgstr "dB" | msgstr "dB" | ||||||
|  |  | ||||||
| msgid "not indicated" | msgid "not indicated" | ||||||
| msgstr "non indiqu<EFBFBD>" | msgstr "non indiqué" | ||||||
|  |  | ||||||
| msgid "MHz" | msgid "MHz" | ||||||
| msgstr "MHz" | msgstr "MHz" | ||||||
|   | |||||||
							
								
								
									
										21
									
								
								po/hu_HU.po
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								po/hu_HU.po
									
									
									
									
									
								
							| @@ -1,14 +1,14 @@ | |||||||
| # VDR plugin language source file. | # VDR plugin language source file. | ||||||
| # Copyright (C) 2007 Rolf Ahrenberg | # Copyright (C) 2007-2014 Rolf Ahrenberg | ||||||
| # This file is distributed under the same license as the femon package. | # This file is distributed under the same license as the femon package. | ||||||
| # F<>ley Istv<74>n <ifuley at tigercomp dot ro>, 2011 | # F<>ley Istv<74>n <ifuley at tigercomp dot ro>, 2011 | ||||||
| # | # | ||||||
| msgid "" | msgid "" | ||||||
| msgstr "" | msgstr "" | ||||||
| "Project-Id-Version: vdr-femon 1.7.15\n" | "Project-Id-Version: vdr-femon 2.0.4\n" | ||||||
| "Report-Msgid-Bugs-To: <see README>\n" | "Report-Msgid-Bugs-To: <see README>\n" | ||||||
| "POT-Creation-Date: 2010-10-10 10:10+0200\n" | "POT-Creation-Date: 2014-03-15 03:15+0200\n" | ||||||
| "PO-Revision-Date: 2010-10-10 10:10+0200\n" | "PO-Revision-Date: 2014-03-15 03:15+0200\n" | ||||||
| "Last-Translator: F<>ley Istv<74>n <ifuley at tigercomp dot ro>\n" | "Last-Translator: F<>ley Istv<74>n <ifuley at tigercomp dot ro>\n" | ||||||
| "Language-Team: Hungarian <ifuley at tigercomp dot ro>\n" | "Language-Team: Hungarian <ifuley at tigercomp dot ro>\n" | ||||||
| "Language: hu\n" | "Language: hu\n" | ||||||
| @@ -67,6 +67,9 @@ msgstr "K | |||||||
| msgid "SilverGreen" | msgid "SilverGreen" | ||||||
| msgstr "Ez<45>st-z<>ld" | msgstr "Ez<45>st-z<>ld" | ||||||
|  |  | ||||||
|  | msgid "PearlHD" | ||||||
|  | msgstr "PearlHD" | ||||||
|  |  | ||||||
| msgid "Hide main menu entry" | msgid "Hide main menu entry" | ||||||
| msgstr "Men<65>bejegyz<79>s elrejt<6A>se" | msgstr "Men<65>bejegyz<79>s elrejt<6A>se" | ||||||
|  |  | ||||||
| @@ -178,6 +181,12 @@ msgstr "Rid" | |||||||
| msgid "Coderate" | msgid "Coderate" | ||||||
| msgstr "Coderate" | msgstr "Coderate" | ||||||
|  |  | ||||||
|  | msgid "Protocol" | ||||||
|  | msgstr "" | ||||||
|  |  | ||||||
|  | msgid "Bitrate" | ||||||
|  | msgstr "Bitr<74>ta" | ||||||
|  |  | ||||||
| msgid "Stream Information" | msgid "Stream Information" | ||||||
| msgstr "Adatfolyam inf<6E>" | msgstr "Adatfolyam inf<6E>" | ||||||
|  |  | ||||||
| @@ -187,9 +196,6 @@ msgstr "Vide | |||||||
| msgid "Codec" | msgid "Codec" | ||||||
| msgstr "Kodek" | msgstr "Kodek" | ||||||
|  |  | ||||||
| msgid "Bitrate" |  | ||||||
| msgstr "Bitr<74>ta" |  | ||||||
|  |  | ||||||
| msgid "Aspect Ratio" | msgid "Aspect Ratio" | ||||||
| msgstr "M<>retar<61>ny" | msgstr "M<>retar<61>ny" | ||||||
|  |  | ||||||
| @@ -384,4 +390,3 @@ msgstr "Mbit/s" | |||||||
|  |  | ||||||
| msgid "kbit/s" | msgid "kbit/s" | ||||||
| msgstr "kbit/s" | msgstr "kbit/s" | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										20
									
								
								po/it_IT.po
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								po/it_IT.po
									
									
									
									
									
								
							| @@ -1,15 +1,15 @@ | |||||||
| # VDR plugin language source file. | # VDR plugin language source file. | ||||||
| # Copyright (C) 2007 Rolf Ahrenberg | # Copyright (C) 2007-2014 Rolf Ahrenberg | ||||||
| # This file is distributed under the same license as the femon package. | # This file is distributed under the same license as the femon package. | ||||||
| # Sean Carlos | # Sean Carlos | ||||||
| # Diego Pierotto <vdr-italian@tiscali.it> | # Diego Pierotto <vdr-italian@tiscali.it> | ||||||
| # | # | ||||||
| msgid "" | msgid "" | ||||||
| msgstr "" | msgstr "" | ||||||
| "Project-Id-Version: vdr-femon 1.7.15\n" | "Project-Id-Version: vdr-femon 2.0.4\n" | ||||||
| "Report-Msgid-Bugs-To: <see README>\n" | "Report-Msgid-Bugs-To: <see README>\n" | ||||||
| "POT-Creation-Date: 2010-10-10 10:10+0300\n" | "POT-Creation-Date: 2014-03-15 03:15+0200\n" | ||||||
| "PO-Revision-Date: 2010-10-10 10:10+0300\n" | "PO-Revision-Date: 2014-03-15 03:15+0200\n" | ||||||
| "Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n" | "Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n" | ||||||
| "Language-Team: Italian <vdr@linuxtv.org>\n" | "Language-Team: Italian <vdr@linuxtv.org>\n" | ||||||
| "Language: it\n" | "Language: it\n" | ||||||
| @@ -68,6 +68,9 @@ msgstr "Duotone" | |||||||
| msgid "SilverGreen" | msgid "SilverGreen" | ||||||
| msgstr "SilverGreen" | msgstr "SilverGreen" | ||||||
|  |  | ||||||
|  | msgid "PearlHD" | ||||||
|  | msgstr "PearlHD" | ||||||
|  |  | ||||||
| msgid "Hide main menu entry" | msgid "Hide main menu entry" | ||||||
| msgstr "Nascondi voce menu principale" | msgstr "Nascondi voce menu principale" | ||||||
|  |  | ||||||
| @@ -179,6 +182,12 @@ msgstr "Rid" | |||||||
| msgid "Coderate" | msgid "Coderate" | ||||||
| msgstr "Coderate" | msgstr "Coderate" | ||||||
|  |  | ||||||
|  | msgid "Protocol" | ||||||
|  | msgstr "" | ||||||
|  |  | ||||||
|  | msgid "Bitrate" | ||||||
|  | msgstr "Bitrate" | ||||||
|  |  | ||||||
| msgid "Stream Information" | msgid "Stream Information" | ||||||
| msgstr "Informazioni flusso" | msgstr "Informazioni flusso" | ||||||
|  |  | ||||||
| @@ -188,9 +197,6 @@ msgstr "Flusso video" | |||||||
| msgid "Codec" | msgid "Codec" | ||||||
| msgstr "Codifica" | msgstr "Codifica" | ||||||
|  |  | ||||||
| msgid "Bitrate" |  | ||||||
| msgstr "Bitrate" |  | ||||||
|  |  | ||||||
| msgid "Aspect Ratio" | msgid "Aspect Ratio" | ||||||
| msgstr "Formato immagine" | msgstr "Formato immagine" | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										20
									
								
								po/lt_LT.po
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								po/lt_LT.po
									
									
									
									
									
								
							| @@ -1,14 +1,14 @@ | |||||||
| # VDR plugin language source file. | # VDR plugin language source file. | ||||||
| # Copyright (C) 2007 Rolf Ahrenberg | # Copyright (C) 2007-2014 Rolf Ahrenberg | ||||||
| # This file is distributed under the same license as the femon package. | # This file is distributed under the same license as the femon package. | ||||||
| # Valdemaras Pipiras | # Valdemaras Pipiras | ||||||
| # | # | ||||||
| msgid "" | msgid "" | ||||||
| msgstr "" | msgstr "" | ||||||
| "Project-Id-Version: vdr-femon 1.7.15\n" | "Project-Id-Version: vdr-femon 2.0.4\n" | ||||||
| "Report-Msgid-Bugs-To: <see README>\n" | "Report-Msgid-Bugs-To: <see README>\n" | ||||||
| "POT-Creation-Date: 2010-10-10 10:10+0300\n" | "POT-Creation-Date: 2014-03-15 03:15+0200\n" | ||||||
| "PO-Revision-Date: 2010-10-10 10:10+0300\n" | "PO-Revision-Date: 2014-03-15 03:15+0200\n" | ||||||
| "Last-Translator: Valdemaras Pipiras <varas@ambernet.lt>\n" | "Last-Translator: Valdemaras Pipiras <varas@ambernet.lt>\n" | ||||||
| "Language-Team: Lithuanian <vdr@linuxtv.org>\n" | "Language-Team: Lithuanian <vdr@linuxtv.org>\n" | ||||||
| "Language: lt\n" | "Language: lt\n" | ||||||
| @@ -64,6 +64,9 @@ msgstr "Duotone" | |||||||
| msgid "SilverGreen" | msgid "SilverGreen" | ||||||
| msgstr "SilverGreen" | msgstr "SilverGreen" | ||||||
|  |  | ||||||
|  | msgid "PearlHD" | ||||||
|  | msgstr "PearlHD" | ||||||
|  |  | ||||||
| msgid "Hide main menu entry" | msgid "Hide main menu entry" | ||||||
| msgstr "Paslėpti pagrindinio meniu įrašus" | msgstr "Paslėpti pagrindinio meniu įrašus" | ||||||
|  |  | ||||||
| @@ -175,6 +178,12 @@ msgstr "Rid" | |||||||
| msgid "Coderate" | msgid "Coderate" | ||||||
| msgstr "Kodavimo dažnis" | msgstr "Kodavimo dažnis" | ||||||
|  |  | ||||||
|  | msgid "Protocol" | ||||||
|  | msgstr "" | ||||||
|  |  | ||||||
|  | msgid "Bitrate" | ||||||
|  | msgstr "Kokybė" | ||||||
|  |  | ||||||
| msgid "Stream Information" | msgid "Stream Information" | ||||||
| msgstr "Srauto informacija" | msgstr "Srauto informacija" | ||||||
|  |  | ||||||
| @@ -184,9 +193,6 @@ msgstr "Video srautas" | |||||||
| msgid "Codec" | msgid "Codec" | ||||||
| msgstr "Kodekas" | msgstr "Kodekas" | ||||||
|  |  | ||||||
| msgid "Bitrate" |  | ||||||
| msgstr "Kokybė" |  | ||||||
|  |  | ||||||
| msgid "Aspect Ratio" | msgid "Aspect Ratio" | ||||||
| msgstr "Proporcijos" | msgstr "Proporcijos" | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										20
									
								
								po/ru_RU.po
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								po/ru_RU.po
									
									
									
									
									
								
							| @@ -1,14 +1,14 @@ | |||||||
| # VDR plugin language source file. | # VDR plugin language source file. | ||||||
| # Copyright (C) 2007 Rolf Ahrenberg | # Copyright (C) 2007-2014 Rolf Ahrenberg | ||||||
| # This file is distributed under the same license as the femon package. | # This file is distributed under the same license as the femon package. | ||||||
| # Vyacheslav Dikonov | # Vyacheslav Dikonov | ||||||
| # | # | ||||||
| msgid "" | msgid "" | ||||||
| msgstr "" | msgstr "" | ||||||
| "Project-Id-Version: vdr-femon 1.7.15\n" | "Project-Id-Version: vdr-femon 2.0.4\n" | ||||||
| "Report-Msgid-Bugs-To: <see README>\n" | "Report-Msgid-Bugs-To: <see README>\n" | ||||||
| "POT-Creation-Date: 2010-10-10 10:10+0300\n" | "POT-Creation-Date: 2014-03-15 03:15+0200\n" | ||||||
| "PO-Revision-Date: 2010-10-10 10:10+0300\n" | "PO-Revision-Date: 2014-03-15 03:15+0200\n" | ||||||
| "Last-Translator: Vyacheslav Dikonov\n" | "Last-Translator: Vyacheslav Dikonov\n" | ||||||
| "Language-Team: Russian <vdr@linuxtv.org>\n" | "Language-Team: Russian <vdr@linuxtv.org>\n" | ||||||
| "Language: ru\n" | "Language: ru\n" | ||||||
| @@ -64,6 +64,9 @@ msgstr "Duotone" | |||||||
| msgid "SilverGreen" | msgid "SilverGreen" | ||||||
| msgstr "SilverGreen" | msgstr "SilverGreen" | ||||||
|  |  | ||||||
|  | msgid "PearlHD" | ||||||
|  | msgstr "PearlHD" | ||||||
|  |  | ||||||
| msgid "Hide main menu entry" | msgid "Hide main menu entry" | ||||||
| msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>" | msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>" | ||||||
|  |  | ||||||
| @@ -175,6 +178,12 @@ msgstr "Rid" | |||||||
| msgid "Coderate" | msgid "Coderate" | ||||||
| msgstr "Coderate" | msgstr "Coderate" | ||||||
|  |  | ||||||
|  | msgid "Protocol" | ||||||
|  | msgstr "" | ||||||
|  |  | ||||||
|  | msgid "Bitrate" | ||||||
|  | msgstr "" | ||||||
|  |  | ||||||
| msgid "Stream Information" | msgid "Stream Information" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| @@ -184,9 +193,6 @@ msgstr "" | |||||||
| msgid "Codec" | msgid "Codec" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| msgid "Bitrate" |  | ||||||
| msgstr "" |  | ||||||
|  |  | ||||||
| msgid "Aspect Ratio" | msgid "Aspect Ratio" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										389
									
								
								po/sk_SK.po
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										389
									
								
								po/sk_SK.po
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,389 @@ | |||||||
|  | # VDR plugin language source file. | ||||||
|  | # Copyright (C) 2007-2014 Rolf Ahrenberg | ||||||
|  | # This file is distributed under the same license as the femon package. | ||||||
|  | # Milan Hrala | ||||||
|  | # | ||||||
|  | msgid "" | ||||||
|  | msgstr "" | ||||||
|  | "Project-Id-Version: vdr-femon 2.0.4\n" | ||||||
|  | "Report-Msgid-Bugs-To: <see README>\n" | ||||||
|  | "POT-Creation-Date: 2014-03-15 03:15+0200\n" | ||||||
|  | "PO-Revision-Date: 2014-03-15 03:15+0200\n" | ||||||
|  | "Last-Translator: Milan Hrala <hrala.milan@gmail.com>\n" | ||||||
|  | "Language-Team: Slovak <vdr@linuxtv.org>\n" | ||||||
|  | "Language: sk\n" | ||||||
|  | "MIME-Version: 1.0\n" | ||||||
|  | "Content-Type: text/plain; charset=iso-8859-2\n" | ||||||
|  | "Content-Transfer-Encoding: 8bit\n" | ||||||
|  |  | ||||||
|  | msgid "DVB Signal Information Monitor (OSD)" | ||||||
|  | msgstr "DVB Inform<72>cie o sign<67>le (OSD)" | ||||||
|  |  | ||||||
|  | msgid "Signal Information" | ||||||
|  | msgstr "Inform<72>cie o sign<67>le" | ||||||
|  |  | ||||||
|  | msgid "Femon not available" | ||||||
|  | msgstr "Femon nie je k dispoz<6F>cii" | ||||||
|  |  | ||||||
|  | msgid "basic" | ||||||
|  | msgstr "<22>tandardtn<74>" | ||||||
|  |  | ||||||
|  | msgid "transponder" | ||||||
|  | msgstr "Transpond<6E>r" | ||||||
|  |  | ||||||
|  | msgid "stream" | ||||||
|  | msgstr "d<>tov<6F> tok" | ||||||
|  |  | ||||||
|  | msgid "AC-3" | ||||||
|  | msgstr "AC-3" | ||||||
|  |  | ||||||
|  | msgid "Classic" | ||||||
|  | msgstr "Klasick<63>" | ||||||
|  |  | ||||||
|  | msgid "Elchi" | ||||||
|  | msgstr "Elchi" | ||||||
|  |  | ||||||
|  | msgid "ST:TNG" | ||||||
|  | msgstr "ST:TNG" | ||||||
|  |  | ||||||
|  | msgid "DeepBlue" | ||||||
|  | msgstr "tmavo modr<64>" | ||||||
|  |  | ||||||
|  | msgid "Moronimo" | ||||||
|  | msgstr "Moronimo" | ||||||
|  |  | ||||||
|  | msgid "Enigma" | ||||||
|  | msgstr "Enigma" | ||||||
|  |  | ||||||
|  | msgid "EgalsTry" | ||||||
|  | msgstr "EgalsTry" | ||||||
|  |  | ||||||
|  | msgid "Duotone" | ||||||
|  | msgstr "Duotone" | ||||||
|  |  | ||||||
|  | msgid "SilverGreen" | ||||||
|  | msgstr "strieborno zelen<65>" | ||||||
|  |  | ||||||
|  | msgid "PearlHD" | ||||||
|  | msgstr "PearlHD" | ||||||
|  |  | ||||||
|  | msgid "Hide main menu entry" | ||||||
|  | msgstr "Schova<76> polo<6C>ku v hlavnom menu" | ||||||
|  |  | ||||||
|  | msgid "Define whether the main menu entry is hidden." | ||||||
|  | msgstr "Ur<55>ite, <20>i v hlavnom menu bude polo<6C>ka skryt<79>." | ||||||
|  |  | ||||||
|  | msgid "Default display mode" | ||||||
|  | msgstr "<22>tandardn<64> re<72>im zobrazenia" | ||||||
|  |  | ||||||
|  | msgid "Define the default display mode at startup." | ||||||
|  | msgstr "Zadajte predvolen<65> re<72>im zobrazenia pri spusten<65>." | ||||||
|  |  | ||||||
|  | msgid "Define the used OSD skin." | ||||||
|  | msgstr "Zadajte pou<6F>it<69> OSD vzh<7A>ad." | ||||||
|  |  | ||||||
|  | msgid "Define the used OSD theme." | ||||||
|  | msgstr "Definujte pou<6F>it<69> OSD t<>mu." | ||||||
|  |  | ||||||
|  | msgid "Position" | ||||||
|  | msgstr "Poz<6F>cia" | ||||||
|  |  | ||||||
|  | msgid "Define the position of OSD." | ||||||
|  | msgstr "Definujte poz<6F>ciu OSD." | ||||||
|  |  | ||||||
|  | msgid "Downscale OSD size [%]" | ||||||
|  | msgstr "Zmen<65>i<EFBFBD> ve<76>kos<6F> OSD [%]" | ||||||
|  |  | ||||||
|  | msgid "Define the downscale ratio for OSD size." | ||||||
|  | msgstr "Zadajte zmen<65>enie pomeru pre OSD ve<76>kosti." | ||||||
|  |  | ||||||
|  | msgid "Red limit [%]" | ||||||
|  | msgstr "<22>erven<65> limit [%]" | ||||||
|  |  | ||||||
|  | msgid "Define a limit for red bar, which is used to indicate a bad signal." | ||||||
|  | msgstr "Zadajte limit pre <20>erven<65> pruh , ktor<6F> sa pou<6F><75>va na ozna<6E>enie zl<7A>ho sign<67>lu." | ||||||
|  |  | ||||||
|  | msgid "Green limit [%]" | ||||||
|  | msgstr "Zelen<65> limit [%]" | ||||||
|  |  | ||||||
|  | msgid "Define a limit for green bar, which is used to indicate a good signal." | ||||||
|  | msgstr "Zadajte limit pre zelen<65>ho pruhu, ktor<6F> sa pou<6F>ije na ozna<6E>enie dobr<62>ho sign<67>lu." | ||||||
|  |  | ||||||
|  | msgid "OSD update interval [0.1s]" | ||||||
|  | msgstr "OSD aktualiza<7A>n<EFBFBD> interval [0.1s]" | ||||||
|  |  | ||||||
|  | msgid "Define an interval for OSD updates. The smaller interval generates higher CPU load." | ||||||
|  | msgstr "Zadajte interval pre aktualiz<69>cie OSD. Men<65><6E> interval vytv<74>ra vy<76><79>ie za<7A>a<EFBFBD>enie CPU." | ||||||
|  |  | ||||||
|  | msgid "Analyze stream" | ||||||
|  | msgstr "Anal<61>za d<>tov<6F>ho toku" | ||||||
|  |  | ||||||
|  | msgid "Define whether the DVB stream is analyzed and bitrates calculated." | ||||||
|  | msgstr "Zadajte <20>i sa DVB pr<70>d analyzuje a d<>tov<6F> tok vypo<70><6F>ta." | ||||||
|  |  | ||||||
|  | msgid "Calculation interval [0.1s]" | ||||||
|  | msgstr "V<>po<70>tov<6F> interval [0.1s]" | ||||||
|  |  | ||||||
|  | msgid "Define an interval for calculation. The bigger interval generates more stable values." | ||||||
|  | msgstr "Zadajte interval pre v<>po<70>et. V<><56><EFBFBD><EFBFBD> interval vytv<74>ra stabilnej<65>ie hodnoty." | ||||||
|  |  | ||||||
|  | msgid "Use SVDRP service" | ||||||
|  | msgstr "Pou<6F>i<EFBFBD> SVDRP slu<6C>bu" | ||||||
|  |  | ||||||
|  | msgid "Define whether the SVDRP service is used in client/server setups." | ||||||
|  | msgstr "Zadajte <20>i sa pou<6F>ije slu<6C>ba SVDRP v klient / server nastaveniach." | ||||||
|  |  | ||||||
|  | msgid "SVDRP service port" | ||||||
|  | msgstr "Port SVDRP slu<6C>by" | ||||||
|  |  | ||||||
|  | msgid "Define the port number of SVDRP service." | ||||||
|  | msgstr "Zadajte <20><>slo portu slu<6C>by SVDRP." | ||||||
|  |  | ||||||
|  | msgid "SVDRP service IP" | ||||||
|  | msgstr "IP SVDRP slu<6C>by" | ||||||
|  |  | ||||||
|  | msgid "Define the IP address of SVDRP service." | ||||||
|  | msgstr "zadajte IP adresu slu<6C>by SVDRP." | ||||||
|  |  | ||||||
|  | msgid "Help" | ||||||
|  | msgstr "Pomoc" | ||||||
|  |  | ||||||
|  | msgid "Video" | ||||||
|  | msgstr "Video" | ||||||
|  |  | ||||||
|  | msgid "Audio" | ||||||
|  | msgstr "Zvuk" | ||||||
|  |  | ||||||
|  | msgid "Transponder Information" | ||||||
|  | msgstr "Inform<72>cie transpond<6E>ra" | ||||||
|  |  | ||||||
|  | msgid "Apid" | ||||||
|  | msgstr "Apid" | ||||||
|  |  | ||||||
|  | msgid "Dpid" | ||||||
|  | msgstr "Dpid" | ||||||
|  |  | ||||||
|  | msgid "Spid" | ||||||
|  | msgstr "Spid" | ||||||
|  |  | ||||||
|  | msgid "Nid" | ||||||
|  | msgstr "Nid" | ||||||
|  |  | ||||||
|  | msgid "Tid" | ||||||
|  | msgstr "Tid" | ||||||
|  |  | ||||||
|  | msgid "Rid" | ||||||
|  | msgstr "Rid" | ||||||
|  |  | ||||||
|  | msgid "Coderate" | ||||||
|  | msgstr "r<>chlos<6F> k<>dovania" | ||||||
|  |  | ||||||
|  | msgid "Protocol" | ||||||
|  | msgstr "Protokol" | ||||||
|  |  | ||||||
|  | msgid "Bitrate" | ||||||
|  | msgstr "D<>tov<6F> tok" | ||||||
|  |  | ||||||
|  | msgid "Stream Information" | ||||||
|  | msgstr "Inform<72>cie o d<>tovom toku" | ||||||
|  |  | ||||||
|  | msgid "Video Stream" | ||||||
|  | msgstr "Video stopa" | ||||||
|  |  | ||||||
|  | msgid "Codec" | ||||||
|  | msgstr "kodek" | ||||||
|  |  | ||||||
|  | msgid "Aspect Ratio" | ||||||
|  | msgstr "Pomer str<74>n" | ||||||
|  |  | ||||||
|  | msgid "Frame Rate" | ||||||
|  | msgstr "Po<50>et sn<73>mkov" | ||||||
|  |  | ||||||
|  | msgid "Video Format" | ||||||
|  | msgstr "Video form<72>t" | ||||||
|  |  | ||||||
|  | msgid "Resolution" | ||||||
|  | msgstr "Rozl<7A><6C>enie" | ||||||
|  |  | ||||||
|  | msgid "Audio Stream" | ||||||
|  | msgstr "Zvukov<6F> stopa" | ||||||
|  |  | ||||||
|  | msgid "Channel Mode" | ||||||
|  | msgstr "re<72>im kan<61>la" | ||||||
|  |  | ||||||
|  | msgid "Sampling Frequency" | ||||||
|  | msgstr "Vzorkovacia frekvencia" | ||||||
|  |  | ||||||
|  | msgid "AC-3 Stream" | ||||||
|  | msgstr "AC-3 d<>tov<6F> tok" | ||||||
|  |  | ||||||
|  | msgid "Bit Stream Mode" | ||||||
|  | msgstr "re<72>im bitov<6F>ho toku" | ||||||
|  |  | ||||||
|  | msgid "Audio Coding Mode" | ||||||
|  | msgstr "Re<52><65>m k<>dovania zvuku" | ||||||
|  |  | ||||||
|  | msgid "Center Mix Level" | ||||||
|  | msgstr "<22>rove<76> Center mix" | ||||||
|  |  | ||||||
|  | msgid "Surround Mix Level" | ||||||
|  | msgstr "<22>rove<76> Surround mix" | ||||||
|  |  | ||||||
|  | msgid "Dolby Surround Mode" | ||||||
|  | msgstr "Dolby Surround re<72><65>m" | ||||||
|  |  | ||||||
|  | msgid "Low Frequency Effects" | ||||||
|  | msgstr "Basov<6F> efekty" | ||||||
|  |  | ||||||
|  | msgid "Dialogue Normalization" | ||||||
|  | msgstr "<22>tandartn<74> dial<61>g" | ||||||
|  |  | ||||||
|  | msgid "Fixed" | ||||||
|  | msgstr "Pevn<76>" | ||||||
|  |  | ||||||
|  | msgid "Analog" | ||||||
|  | msgstr "Anal<61>g" | ||||||
|  |  | ||||||
|  | msgid "MPEG-2" | ||||||
|  | msgstr "MPEG-2" | ||||||
|  |  | ||||||
|  | msgid "H.264" | ||||||
|  | msgstr "H.264" | ||||||
|  |  | ||||||
|  | msgid "MPEG-1 Layer I" | ||||||
|  | msgstr "MPEG-1 vrstva I" | ||||||
|  |  | ||||||
|  | msgid "MPEG-1 Layer II" | ||||||
|  | msgstr "MPEG-1 vrstva II" | ||||||
|  |  | ||||||
|  | msgid "MPEG-1 Layer III" | ||||||
|  | msgstr "MPEG-1 vrstva III" | ||||||
|  |  | ||||||
|  | msgid "MPEG-2 Layer I" | ||||||
|  | msgstr "MPEG-2 vrstva I" | ||||||
|  |  | ||||||
|  | msgid "MPEG-2 Layer II" | ||||||
|  | msgstr "MPEG-2 vrstva II" | ||||||
|  |  | ||||||
|  | msgid "MPEG-2 Layer III" | ||||||
|  | msgstr "MPEG-2 vrstva III" | ||||||
|  |  | ||||||
|  | msgid "HE-AAC" | ||||||
|  | msgstr "HE-AAC" | ||||||
|  |  | ||||||
|  | msgid "LATM" | ||||||
|  | msgstr "LATM" | ||||||
|  |  | ||||||
|  | msgid "stereo" | ||||||
|  | msgstr "stereo" | ||||||
|  |  | ||||||
|  | msgid "joint Stereo" | ||||||
|  | msgstr "spojen<65> stereo" | ||||||
|  |  | ||||||
|  | msgid "dual" | ||||||
|  | msgstr "dvojit<69>" | ||||||
|  |  | ||||||
|  | msgid "mono" | ||||||
|  | msgstr "mono" | ||||||
|  |  | ||||||
|  | msgid "interlaced" | ||||||
|  | msgstr "prekladan<61>" | ||||||
|  |  | ||||||
|  | msgid "progressive" | ||||||
|  | msgstr "progres<65>vny" | ||||||
|  |  | ||||||
|  | msgid "reserved" | ||||||
|  | msgstr "obsaden<65>" | ||||||
|  |  | ||||||
|  | msgid "extended" | ||||||
|  | msgstr "roz<6F><7A>ren<65>" | ||||||
|  |  | ||||||
|  | msgid "unknown" | ||||||
|  | msgstr "nezn<7A>my" | ||||||
|  |  | ||||||
|  | msgid "component" | ||||||
|  | msgstr "s<><73>as<61>" | ||||||
|  |  | ||||||
|  | msgid "PAL" | ||||||
|  | msgstr "PAL" | ||||||
|  |  | ||||||
|  | msgid "NTSC" | ||||||
|  | msgstr "NTSC" | ||||||
|  |  | ||||||
|  | msgid "SECAM" | ||||||
|  | msgstr "SECAM" | ||||||
|  |  | ||||||
|  | msgid "MAC" | ||||||
|  | msgstr "MAC" | ||||||
|  |  | ||||||
|  | msgid "Hz" | ||||||
|  | msgstr "Hz" | ||||||
|  |  | ||||||
|  | msgid "Complete Main (CM)" | ||||||
|  | msgstr "Kompletne hlavn<76> (CM)" | ||||||
|  |  | ||||||
|  | msgid "Music and Effects (ME)" | ||||||
|  | msgstr "Hudba a efekty (ME)" | ||||||
|  |  | ||||||
|  | msgid "Visually Impaired (VI)" | ||||||
|  | msgstr "zrakovo postihnut<75> (VI)" | ||||||
|  |  | ||||||
|  | msgid "Hearing Impaired (HI)" | ||||||
|  | msgstr "sluchovo postihnut<75> (HI)" | ||||||
|  |  | ||||||
|  | msgid "Dialogue (D)" | ||||||
|  | msgstr "Dial<61>g (D)" | ||||||
|  |  | ||||||
|  | msgid "Commentary (C)" | ||||||
|  | msgstr "Koment<6E>r (C)" | ||||||
|  |  | ||||||
|  | msgid "Emergency (E)" | ||||||
|  | msgstr "Pohotovostn<74> (E)" | ||||||
|  |  | ||||||
|  | msgid "Voice Over (VO)" | ||||||
|  | msgstr "Viacvrstvov<6F> hlas (VO)" | ||||||
|  |  | ||||||
|  | msgid "Karaoke" | ||||||
|  | msgstr "Karaoke" | ||||||
|  |  | ||||||
|  | msgid "Ch1" | ||||||
|  | msgstr "kan<61>l1" | ||||||
|  |  | ||||||
|  | msgid "Ch2" | ||||||
|  | msgstr "kan<61>l2" | ||||||
|  |  | ||||||
|  | msgid "C" | ||||||
|  | msgstr "C" | ||||||
|  |  | ||||||
|  | msgid "L" | ||||||
|  | msgstr "L" | ||||||
|  |  | ||||||
|  | msgid "R" | ||||||
|  | msgstr "R" | ||||||
|  |  | ||||||
|  | msgid "S" | ||||||
|  | msgstr "S" | ||||||
|  |  | ||||||
|  | msgid "SL" | ||||||
|  | msgstr "SL" | ||||||
|  |  | ||||||
|  | msgid "SR" | ||||||
|  | msgstr "SR" | ||||||
|  |  | ||||||
|  | msgid "dB" | ||||||
|  | msgstr "dB" | ||||||
|  |  | ||||||
|  | msgid "not indicated" | ||||||
|  | msgstr "nie je uveden<65>" | ||||||
|  |  | ||||||
|  | msgid "MHz" | ||||||
|  | msgstr "MHz" | ||||||
|  |  | ||||||
|  | msgid "free" | ||||||
|  | msgstr "vo<76>n<EFBFBD>" | ||||||
|  |  | ||||||
|  | msgid "Mbit/s" | ||||||
|  | msgstr "Mbit/s" | ||||||
|  |  | ||||||
|  | msgid "kbit/s" | ||||||
|  | msgstr "kbit/s" | ||||||
							
								
								
									
										389
									
								
								po/uk_UA.po
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										389
									
								
								po/uk_UA.po
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,389 @@ | |||||||
|  | # Ukrainian translation. | ||||||
|  | # Copyright (C) 2010 The Claws Mail Team | ||||||
|  | # This file is distributed under the same license as the claws-mail package. | ||||||
|  | # Yarema aka Knedlyk <yupadmin@gmail.com>, 2010. | ||||||
|  | msgid "" | ||||||
|  | msgstr "" | ||||||
|  | "Project-Id-Version: vdr-femon 2.0.4\n" | ||||||
|  | "Report-Msgid-Bugs-To: <see README>\n" | ||||||
|  | "POT-Creation-Date: 2014-03-15 03:15+0200\n" | ||||||
|  | "PO-Revision-Date: 2014-03-15 03:15+0200\n" | ||||||
|  | "Last-Translator: Yarema aka Knedlyk <yupadmin@gmail.com>\n" | ||||||
|  | "Language-Team: Ukrainian <translation@linux.org.ua>\n" | ||||||
|  | "Language: uk\n" | ||||||
|  | "MIME-Version: 1.0\n" | ||||||
|  | "Content-Type: text/plain; charset=UTF-8\n" | ||||||
|  | "Content-Transfer-Encoding: 8bit\n" | ||||||
|  | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\\n\n" | ||||||
|  |  | ||||||
|  | msgid "DVB Signal Information Monitor (OSD)" | ||||||
|  | msgstr "Монітор інформації про DVB сигнал" | ||||||
|  |  | ||||||
|  | msgid "Signal Information" | ||||||
|  | msgstr "Інформація про сигнал" | ||||||
|  |  | ||||||
|  | msgid "Femon not available" | ||||||
|  | msgstr "Femon не доступний" | ||||||
|  |  | ||||||
|  | msgid "basic" | ||||||
|  | msgstr "основне" | ||||||
|  |  | ||||||
|  | msgid "transponder" | ||||||
|  | msgstr "транспондер" | ||||||
|  |  | ||||||
|  | msgid "stream" | ||||||
|  | msgstr "потік" | ||||||
|  |  | ||||||
|  | msgid "AC-3" | ||||||
|  | msgstr "AC-3" | ||||||
|  |  | ||||||
|  | msgid "Classic" | ||||||
|  | msgstr "Класичний" | ||||||
|  |  | ||||||
|  | msgid "Elchi" | ||||||
|  | msgstr "Elchi" | ||||||
|  |  | ||||||
|  | msgid "ST:TNG" | ||||||
|  | msgstr "ST:TNG" | ||||||
|  |  | ||||||
|  | msgid "DeepBlue" | ||||||
|  | msgstr "DeepBlue" | ||||||
|  |  | ||||||
|  | msgid "Moronimo" | ||||||
|  | msgstr "Moronimo" | ||||||
|  |  | ||||||
|  | msgid "Enigma" | ||||||
|  | msgstr "Enigma" | ||||||
|  |  | ||||||
|  | msgid "EgalsTry" | ||||||
|  | msgstr "EgalsTry" | ||||||
|  |  | ||||||
|  | msgid "Duotone" | ||||||
|  | msgstr "Duotone" | ||||||
|  |  | ||||||
|  | msgid "SilverGreen" | ||||||
|  | msgstr "SilverGreen" | ||||||
|  |  | ||||||
|  | msgid "PearlHD" | ||||||
|  | msgstr "PearlHD" | ||||||
|  |  | ||||||
|  | msgid "Hide main menu entry" | ||||||
|  | msgstr "Сховати в головному меню" | ||||||
|  |  | ||||||
|  | msgid "Define whether the main menu entry is hidden." | ||||||
|  | msgstr "Визначення, чи приховувати в головному меню" | ||||||
|  |  | ||||||
|  | msgid "Default display mode" | ||||||
|  | msgstr "Типовий режим показу" | ||||||
|  |  | ||||||
|  | msgid "Define the default display mode at startup." | ||||||
|  | msgstr "Визначення типового режиму показу при запуску" | ||||||
|  |  | ||||||
|  | msgid "Define the used OSD skin." | ||||||
|  | msgstr "Визначення шкірки для повідомлень" | ||||||
|  |  | ||||||
|  | msgid "Define the used OSD theme." | ||||||
|  | msgstr "Визначення теми повідомлень" | ||||||
|  |  | ||||||
|  | msgid "Position" | ||||||
|  | msgstr "Позиція" | ||||||
|  |  | ||||||
|  | msgid "Define the position of OSD." | ||||||
|  | msgstr "Визначити позицію показу повідомлень" | ||||||
|  |  | ||||||
|  | msgid "Downscale OSD size [%]" | ||||||
|  | msgstr "Масштаб розміру повідомлень [%]" | ||||||
|  |  | ||||||
|  | msgid "Define the downscale ratio for OSD size." | ||||||
|  | msgstr "Визначити коефіцієнт масштабування розміру повідомлень" | ||||||
|  |  | ||||||
|  | msgid "Red limit [%]" | ||||||
|  | msgstr "Червона границя [%]" | ||||||
|  |  | ||||||
|  | msgid "Define a limit for red bar, which is used to indicate a bad signal." | ||||||
|  | msgstr "Визначення границі червоної поділки, яка показує поганий сигнал." | ||||||
|  |  | ||||||
|  | msgid "Green limit [%]" | ||||||
|  | msgstr "Зелена границя [%]" | ||||||
|  |  | ||||||
|  | msgid "Define a limit for green bar, which is used to indicate a good signal." | ||||||
|  | msgstr "Визначення границі зеленої поділки, яка показує добрий сигнал." | ||||||
|  |  | ||||||
|  | msgid "OSD update interval [0.1s]" | ||||||
|  | msgstr "Інтервал оновлення повідомлень [0.1с]" | ||||||
|  |  | ||||||
|  | msgid "Define an interval for OSD updates. The smaller interval generates higher CPU load." | ||||||
|  | msgstr "Визначення інтервалу оновлення повідомлень. Малий інтервал спричинює більше завантаження процесора." | ||||||
|  |  | ||||||
|  | msgid "Analyze stream" | ||||||
|  | msgstr "Аналіз потоку" | ||||||
|  |  | ||||||
|  | msgid "Define whether the DVB stream is analyzed and bitrates calculated." | ||||||
|  | msgstr "Визначення, чи проводити аналіз DVB потоку і обчислення бітрейту" | ||||||
|  |  | ||||||
|  | msgid "Calculation interval [0.1s]" | ||||||
|  | msgstr "Інтервал обчислення [0.1с]" | ||||||
|  |  | ||||||
|  | msgid "Define an interval for calculation. The bigger interval generates more stable values." | ||||||
|  | msgstr "Визначення інтервалу обчислення. Більший інтервал дає стабільніші значення." | ||||||
|  |  | ||||||
|  | msgid "Use SVDRP service" | ||||||
|  | msgstr "Використати SVDRP сервіс" | ||||||
|  |  | ||||||
|  | msgid "Define whether the SVDRP service is used in client/server setups." | ||||||
|  | msgstr "Визначення чи буде використовуватися SVDRP сервіс в налаштуваннях клієнта/сервера" | ||||||
|  |  | ||||||
|  | msgid "SVDRP service port" | ||||||
|  | msgstr "Порт SVDRP сервісу" | ||||||
|  |  | ||||||
|  | msgid "Define the port number of SVDRP service." | ||||||
|  | msgstr "Визначення номеру порту SVDRP сервісу" | ||||||
|  |  | ||||||
|  | msgid "SVDRP service IP" | ||||||
|  | msgstr "IP сервісу SVDRP" | ||||||
|  |  | ||||||
|  | msgid "Define the IP address of SVDRP service." | ||||||
|  | msgstr "Визначення IP адреси сервісу SVDRP." | ||||||
|  |  | ||||||
|  | msgid "Help" | ||||||
|  | msgstr "Допомога" | ||||||
|  |  | ||||||
|  | msgid "Video" | ||||||
|  | msgstr "Відео" | ||||||
|  |  | ||||||
|  | msgid "Audio" | ||||||
|  | msgstr "Аудіо" | ||||||
|  |  | ||||||
|  | msgid "Transponder Information" | ||||||
|  | msgstr "Інформація про транспондер" | ||||||
|  |  | ||||||
|  | msgid "Apid" | ||||||
|  | msgstr "Apid" | ||||||
|  |  | ||||||
|  | msgid "Dpid" | ||||||
|  | msgstr "Dpid" | ||||||
|  |  | ||||||
|  | msgid "Spid" | ||||||
|  | msgstr "Spid" | ||||||
|  |  | ||||||
|  | msgid "Nid" | ||||||
|  | msgstr "Nid" | ||||||
|  |  | ||||||
|  | msgid "Tid" | ||||||
|  | msgstr "Tid" | ||||||
|  |  | ||||||
|  | msgid "Rid" | ||||||
|  | msgstr "Rid" | ||||||
|  |  | ||||||
|  | msgid "Coderate" | ||||||
|  | msgstr "Шв. кодування" | ||||||
|  |  | ||||||
|  | msgid "Protocol" | ||||||
|  | msgstr "Протокол" | ||||||
|  |  | ||||||
|  | msgid "Bitrate" | ||||||
|  | msgstr "Бітрейт" | ||||||
|  |  | ||||||
|  | msgid "Stream Information" | ||||||
|  | msgstr "Інформація про потік" | ||||||
|  |  | ||||||
|  | msgid "Video Stream" | ||||||
|  | msgstr "Відео потік" | ||||||
|  |  | ||||||
|  | msgid "Codec" | ||||||
|  | msgstr "Кодек" | ||||||
|  |  | ||||||
|  | msgid "Aspect Ratio" | ||||||
|  | msgstr "Співвідношення сторін" | ||||||
|  |  | ||||||
|  | msgid "Frame Rate" | ||||||
|  | msgstr "Частота кадрів" | ||||||
|  |  | ||||||
|  | msgid "Video Format" | ||||||
|  | msgstr "Формат відео" | ||||||
|  |  | ||||||
|  | msgid "Resolution" | ||||||
|  | msgstr "Роздільна здатність" | ||||||
|  |  | ||||||
|  | msgid "Audio Stream" | ||||||
|  | msgstr "Аудіо потік" | ||||||
|  |  | ||||||
|  | msgid "Channel Mode" | ||||||
|  | msgstr "Режим каналу" | ||||||
|  |  | ||||||
|  | msgid "Sampling Frequency" | ||||||
|  | msgstr "Частота" | ||||||
|  |  | ||||||
|  | msgid "AC-3 Stream" | ||||||
|  | msgstr "AC-3 потік" | ||||||
|  |  | ||||||
|  | msgid "Bit Stream Mode" | ||||||
|  | msgstr "Режим бітового потоку:" | ||||||
|  |  | ||||||
|  | msgid "Audio Coding Mode" | ||||||
|  | msgstr "Режим кодування малюнка" | ||||||
|  |  | ||||||
|  | msgid "Center Mix Level" | ||||||
|  | msgstr "Рівень міксування в центрі" | ||||||
|  |  | ||||||
|  | msgid "Surround Mix Level" | ||||||
|  | msgstr "Рівень міксування заповнення" | ||||||
|  |  | ||||||
|  | msgid "Dolby Surround Mode" | ||||||
|  | msgstr "Режим Dolby Surround" | ||||||
|  |  | ||||||
|  | msgid "Low Frequency Effects" | ||||||
|  | msgstr "Ефекти низької частоти" | ||||||
|  |  | ||||||
|  | msgid "Dialogue Normalization" | ||||||
|  | msgstr "Нормалізація гучності" | ||||||
|  |  | ||||||
|  | msgid "Fixed" | ||||||
|  | msgstr "Фіксовано" | ||||||
|  |  | ||||||
|  | msgid "Analog" | ||||||
|  | msgstr "Аналог." | ||||||
|  |  | ||||||
|  | msgid "MPEG-2" | ||||||
|  | msgstr "MPEG-2" | ||||||
|  |  | ||||||
|  | msgid "H.264" | ||||||
|  | msgstr "H.264" | ||||||
|  |  | ||||||
|  | msgid "MPEG-1 Layer I" | ||||||
|  | msgstr "MPEG-1 Layer I" | ||||||
|  |  | ||||||
|  | msgid "MPEG-1 Layer II" | ||||||
|  | msgstr "MPEG-1 Layer II" | ||||||
|  |  | ||||||
|  | msgid "MPEG-1 Layer III" | ||||||
|  | msgstr "MPEG-1 Layer III" | ||||||
|  |  | ||||||
|  | msgid "MPEG-2 Layer I" | ||||||
|  | msgstr "MPEG-2 Layer I" | ||||||
|  |  | ||||||
|  | msgid "MPEG-2 Layer II" | ||||||
|  | msgstr "MPEG-2 Layer II" | ||||||
|  |  | ||||||
|  | msgid "MPEG-2 Layer III" | ||||||
|  | msgstr "MPEG-2 Layer III" | ||||||
|  |  | ||||||
|  | msgid "HE-AAC" | ||||||
|  | msgstr "HE-AAC" | ||||||
|  |  | ||||||
|  | msgid "LATM" | ||||||
|  | msgstr "LATM" | ||||||
|  |  | ||||||
|  | msgid "stereo" | ||||||
|  | msgstr "стерео" | ||||||
|  |  | ||||||
|  | msgid "joint Stereo" | ||||||
|  | msgstr "об’єднане стерео" | ||||||
|  |  | ||||||
|  | msgid "dual" | ||||||
|  | msgstr "дуальний" | ||||||
|  |  | ||||||
|  | msgid "mono" | ||||||
|  | msgstr "моно" | ||||||
|  |  | ||||||
|  | msgid "interlaced" | ||||||
|  | msgstr "черезрядкове" | ||||||
|  |  | ||||||
|  | msgid "progressive" | ||||||
|  | msgstr "прогресивне" | ||||||
|  |  | ||||||
|  | msgid "reserved" | ||||||
|  | msgstr "зарезервовано" | ||||||
|  |  | ||||||
|  | msgid "extended" | ||||||
|  | msgstr "розширено" | ||||||
|  |  | ||||||
|  | msgid "unknown" | ||||||
|  | msgstr "невідомо" | ||||||
|  |  | ||||||
|  | msgid "component" | ||||||
|  | msgstr "компонентно" | ||||||
|  |  | ||||||
|  | msgid "PAL" | ||||||
|  | msgstr "PAL" | ||||||
|  |  | ||||||
|  | msgid "NTSC" | ||||||
|  | msgstr "NTSC" | ||||||
|  |  | ||||||
|  | msgid "SECAM" | ||||||
|  | msgstr "SECAM" | ||||||
|  |  | ||||||
|  | msgid "MAC" | ||||||
|  | msgstr "MAC" | ||||||
|  |  | ||||||
|  | msgid "Hz" | ||||||
|  | msgstr "Гц" | ||||||
|  |  | ||||||
|  | msgid "Complete Main (CM)" | ||||||
|  | msgstr "Заповнення основного (CM)" | ||||||
|  |  | ||||||
|  | msgid "Music and Effects (ME)" | ||||||
|  | msgstr "Музика і ефекти (ME)" | ||||||
|  |  | ||||||
|  | msgid "Visually Impaired (VI)" | ||||||
|  | msgstr "Слабозорі (VI)" | ||||||
|  |  | ||||||
|  | msgid "Hearing Impaired (HI)" | ||||||
|  | msgstr "Погіршений слух (HI)" | ||||||
|  |  | ||||||
|  | msgid "Dialogue (D)" | ||||||
|  | msgstr "Діалог (D)" | ||||||
|  |  | ||||||
|  | msgid "Commentary (C)" | ||||||
|  | msgstr "Коментарі (C)" | ||||||
|  |  | ||||||
|  | msgid "Emergency (E)" | ||||||
|  | msgstr "Аварійне (E)" | ||||||
|  |  | ||||||
|  | msgid "Voice Over (VO)" | ||||||
|  | msgstr "Голос через (VO)" | ||||||
|  |  | ||||||
|  | msgid "Karaoke" | ||||||
|  | msgstr "Караоке" | ||||||
|  |  | ||||||
|  | msgid "Ch1" | ||||||
|  | msgstr "Кан.1" | ||||||
|  |  | ||||||
|  | msgid "Ch2" | ||||||
|  | msgstr "Кан.2" | ||||||
|  |  | ||||||
|  | msgid "C" | ||||||
|  | msgstr "C" | ||||||
|  |  | ||||||
|  | msgid "L" | ||||||
|  | msgstr "L" | ||||||
|  |  | ||||||
|  | msgid "R" | ||||||
|  | msgstr "R" | ||||||
|  |  | ||||||
|  | msgid "S" | ||||||
|  | msgstr "S" | ||||||
|  |  | ||||||
|  | msgid "SL" | ||||||
|  | msgstr "SL" | ||||||
|  |  | ||||||
|  | msgid "SR" | ||||||
|  | msgstr "Симв.шв." | ||||||
|  |  | ||||||
|  | msgid "dB" | ||||||
|  | msgstr "дБ" | ||||||
|  |  | ||||||
|  | msgid "not indicated" | ||||||
|  | msgstr "не вказано" | ||||||
|  |  | ||||||
|  | msgid "MHz" | ||||||
|  | msgstr "МГц" | ||||||
|  |  | ||||||
|  | msgid "free" | ||||||
|  | msgstr "вільний" | ||||||
|  |  | ||||||
|  | msgid "Mbit/s" | ||||||
|  | msgstr "Мбіт/c" | ||||||
|  |  | ||||||
|  | msgid "kbit/s" | ||||||
|  | msgstr "кбіт/с" | ||||||
							
								
								
									
										20
									
								
								po/zh_CN.po
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								po/zh_CN.po
									
									
									
									
									
								
							| @@ -1,14 +1,14 @@ | |||||||
| # VDR plugin language source file. | # VDR plugin language source file. | ||||||
| # Copyright (C) 2007 Rolf Ahrenberg | # Copyright (C) 2007-2014 Rolf Ahrenberg | ||||||
| # This file is distributed under the same license as the femon package. | # This file is distributed under the same license as the femon package. | ||||||
| # Nan Feng VDR <nfgx@21cn.com>, 2009.2 | # Nan Feng VDR <nfgx@21cn.com>, 2009.2 | ||||||
| # | # | ||||||
| msgid "" | msgid "" | ||||||
| msgstr "" | msgstr "" | ||||||
| "Project-Id-Version: vdr-femon 1.7.15\n" | "Project-Id-Version: vdr-femon 2.0.4\n" | ||||||
| "Report-Msgid-Bugs-To: <see README>\n" | "Report-Msgid-Bugs-To: <see README>\n" | ||||||
| "POT-Creation-Date: 2010-10-10 10:10+0300\n" | "POT-Creation-Date: 2014-03-15 03:15+0200\n" | ||||||
| "PO-Revision-Date: 2010-10-10 10:10+0300\n" | "PO-Revision-Date: 2014-03-15 03:15+0200\n" | ||||||
| "Last-Translator: NanFeng <nfgx@21cn.com>\n" | "Last-Translator: NanFeng <nfgx@21cn.com>\n" | ||||||
| "Language-Team: Chinese (simplified) <vdr@linuxtv.org>\n" | "Language-Team: Chinese (simplified) <vdr@linuxtv.org>\n" | ||||||
| "Language: zh_CN\n" | "Language: zh_CN\n" | ||||||
| @@ -64,6 +64,9 @@ msgstr "双色调" | |||||||
| msgid "SilverGreen" | msgid "SilverGreen" | ||||||
| msgstr "银绿" | msgstr "银绿" | ||||||
|  |  | ||||||
|  | msgid "PearlHD" | ||||||
|  | msgstr "PearlHD" | ||||||
|  |  | ||||||
| msgid "Hide main menu entry" | msgid "Hide main menu entry" | ||||||
| msgstr "隐藏主菜单条目." | msgstr "隐藏主菜单条目." | ||||||
|  |  | ||||||
| @@ -175,6 +178,12 @@ msgstr "Rid" | |||||||
| msgid "Coderate" | msgid "Coderate" | ||||||
| msgstr "码速率" | msgstr "码速率" | ||||||
|  |  | ||||||
|  | msgid "Protocol" | ||||||
|  | msgstr "" | ||||||
|  |  | ||||||
|  | msgid "Bitrate" | ||||||
|  | msgstr "比特率" | ||||||
|  |  | ||||||
| msgid "Stream Information" | msgid "Stream Information" | ||||||
| msgstr "流信息" | msgstr "流信息" | ||||||
|  |  | ||||||
| @@ -184,9 +193,6 @@ msgstr "视频流" | |||||||
| msgid "Codec" | msgid "Codec" | ||||||
| msgstr "解码模式" | msgstr "解码模式" | ||||||
|  |  | ||||||
| msgid "Bitrate" |  | ||||||
| msgstr "比特率" |  | ||||||
|  |  | ||||||
| msgid "Aspect Ratio" | msgid "Aspect Ratio" | ||||||
| msgstr "纵横比" | msgstr "纵横比" | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										20
									
								
								po/zh_TW.po
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								po/zh_TW.po
									
									
									
									
									
								
							| @@ -1,14 +1,14 @@ | |||||||
| # VDR plugin language source file.  | # VDR plugin language source file.  | ||||||
| # Copyright (C) 2007 Rolf Ahrenberg  | # Copyright (C) 2007-2014 Rolf Ahrenberg  | ||||||
| # This file is distributed under the same license as the femon package.  | # This file is distributed under the same license as the femon package.  | ||||||
| # Nan Feng VDR <nfgx@21cn.com>, 2009.2  | # Nan Feng VDR <nfgx@21cn.com>, 2009.2  | ||||||
| # | # | ||||||
| msgid "" | msgid "" | ||||||
| msgstr "" | msgstr "" | ||||||
| "Project-Id-Version: vdr-femon 1.7.15\n" | "Project-Id-Version: vdr-femon 2.0.4\n" | ||||||
| "Report-Msgid-Bugs-To: <see README>\n" | "Report-Msgid-Bugs-To: <see README>\n" | ||||||
| "POT-Creation-Date: 2010-10-10 10:10+0300\n" | "POT-Creation-Date: 2014-03-15 03:15+0200\n" | ||||||
| "PO-Revision-Date: 2010-10-10 10:10+0300\n" | "PO-Revision-Date: 2014-03-15 03:15+0200\n" | ||||||
| "Last-Translator: NanFeng <nfgx@21cn.com>\n" | "Last-Translator: NanFeng <nfgx@21cn.com>\n" | ||||||
| "Language-Team: Chinese (traditional) <vdr@linuxtv.org>\n" | "Language-Team: Chinese (traditional) <vdr@linuxtv.org>\n" | ||||||
| "Language: zh_TW\n" | "Language: zh_TW\n" | ||||||
| @@ -64,6 +64,9 @@ msgstr "雙色調" | |||||||
| msgid "SilverGreen" | msgid "SilverGreen" | ||||||
| msgstr "銀綠" | msgstr "銀綠" | ||||||
|  |  | ||||||
|  | msgid "PearlHD" | ||||||
|  | msgstr "PearlHD" | ||||||
|  |  | ||||||
| msgid "Hide main menu entry" | msgid "Hide main menu entry" | ||||||
| msgstr "隱藏主菜單條目." | msgstr "隱藏主菜單條目." | ||||||
|  |  | ||||||
| @@ -175,6 +178,12 @@ msgstr "Rid" | |||||||
| msgid "Coderate" | msgid "Coderate" | ||||||
| msgstr "碼速率" | msgstr "碼速率" | ||||||
|  |  | ||||||
|  | msgid "Protocol" | ||||||
|  | msgstr "" | ||||||
|  |  | ||||||
|  | msgid "Bitrate" | ||||||
|  | msgstr "比特率" | ||||||
|  |  | ||||||
| msgid "Stream Information" | msgid "Stream Information" | ||||||
| msgstr "流信息" | msgstr "流信息" | ||||||
|  |  | ||||||
| @@ -184,9 +193,6 @@ msgstr "視頻流" | |||||||
| msgid "Codec" | msgid "Codec" | ||||||
| msgstr "解碼模式" | msgstr "解碼模式" | ||||||
|  |  | ||||||
| msgid "Bitrate" |  | ||||||
| msgstr "比特率" |  | ||||||
|  |  | ||||||
| msgid "Aspect Ratio" | msgid "Aspect Ratio" | ||||||
| msgstr "縱橫比" | msgstr "縱橫比" | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user