summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoachim Wilke <vdr@joachim-wilke.de>2008-06-14 00:00:00 +0200
committerJoachim Wilke <vdr@joachim-wilke.de>2008-06-14 00:00:00 +0200
commit4b8b62e70a63206fe269842e9ab6ace76f8e84c9 (patch)
treea3cf4c38242d1d97d845ea581e3c6607f012b31b
parentb2f99dd7bbb5cd76db0243b59e14852b37db8a38 (diff)
downloadvdr-plugin-lcdproc-release/v0.0.10-jw4.tar.gz
vdr-plugin-lcdproc-release/v0.0.10-jw4.tar.bz2
-rw-r--r--Debug/makefile58
-rw-r--r--Debug/objects.mk7
-rw-r--r--Debug/sources.mk27
-rw-r--r--Debug/subdir.mk33
-rw-r--r--HISTORY24
-rw-r--r--Makefile92
-rw-r--r--README1
-rw-r--r--i18n.c390
-rw-r--r--i18n.h8
-rw-r--r--lcd.c219
-rw-r--r--lcd.h9
-rw-r--r--lcdproc.c26
-rw-r--r--po/de_DE.po37
-rwxr-xr-x[-rw-r--r--]po/it_IT.po80
14 files changed, 383 insertions, 628 deletions
diff --git a/Debug/makefile b/Debug/makefile
new file mode 100644
index 0000000..3de5df7
--- /dev/null
+++ b/Debug/makefile
@@ -0,0 +1,58 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+################################################################################
+
+-include ../makefile.init
+
+RM := rm -rf
+
+# All of the sources participating in the build are defined here
+-include sources.mk
+-include subdir.mk
+-include objects.mk
+
+ifneq ($(MAKECMDGOALS),clean)
+ifneq ($(strip $(C++_DEPS)),)
+-include $(C++_DEPS)
+endif
+ifneq ($(strip $(C_DEPS)),)
+-include $(C_DEPS)
+endif
+ifneq ($(strip $(CC_DEPS)),)
+-include $(CC_DEPS)
+endif
+ifneq ($(strip $(CPP_DEPS)),)
+-include $(CPP_DEPS)
+endif
+ifneq ($(strip $(CXX_DEPS)),)
+-include $(CXX_DEPS)
+endif
+ifneq ($(strip $(C_UPPER_DEPS)),)
+-include $(C_UPPER_DEPS)
+endif
+endif
+
+-include ../makefile.defs
+
+# Add inputs and outputs from these tool invocations to the build variables
+
+# All Target
+all: vdr-lcdproc
+
+# Tool invocations
+vdr-lcdproc: $(OBJS) $(USER_OBJS)
+ @echo 'Building target: $@'
+ @echo 'Invoking: GCC C++ Linker'
+ g++ -o"vdr-lcdproc" $(OBJS) $(USER_OBJS) $(LIBS)
+ @echo 'Finished building target: $@'
+ @echo ' '
+
+# Other Targets
+clean:
+ -$(RM) $(OBJS)$(C++_DEPS)$(C_DEPS)$(CC_DEPS)$(CPP_DEPS)$(EXECUTABLES)$(CXX_DEPS)$(C_UPPER_DEPS) vdr-lcdproc
+ -@echo ' '
+
+.PHONY: all clean dependents
+.SECONDARY:
+
+-include ../makefile.targets
diff --git a/Debug/objects.mk b/Debug/objects.mk
new file mode 100644
index 0000000..224ef68
--- /dev/null
+++ b/Debug/objects.mk
@@ -0,0 +1,7 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+################################################################################
+
+USER_OBJS :=
+
+LIBS :=
diff --git a/Debug/sources.mk b/Debug/sources.mk
new file mode 100644
index 0000000..0f6e7d9
--- /dev/null
+++ b/Debug/sources.mk
@@ -0,0 +1,27 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+################################################################################
+
+O_SRCS :=
+CPP_SRCS :=
+C_UPPER_SRCS :=
+C_SRCS :=
+S_SRCS :=
+OBJ_SRCS :=
+ASM_SRCS :=
+CXX_SRCS :=
+C++_SRCS :=
+CC_SRCS :=
+OBJS :=
+C++_DEPS :=
+C_DEPS :=
+CC_DEPS :=
+CPP_DEPS :=
+EXECUTABLES :=
+CXX_DEPS :=
+C_UPPER_DEPS :=
+
+# Every subdirectory with source files must be described here
+SUBDIRS := \
+. \
+
diff --git a/Debug/subdir.mk b/Debug/subdir.mk
new file mode 100644
index 0000000..40b1099
--- /dev/null
+++ b/Debug/subdir.mk
@@ -0,0 +1,33 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+################################################################################
+
+# Add inputs and outputs from these tool invocations to the build variables
+C_SRCS += \
+../lcd.c \
+../lcdproc.c \
+../setup.c \
+../sockets.c
+
+OBJS += \
+./lcd.o \
+./lcdproc.o \
+./setup.o \
+./sockets.o
+
+C_DEPS += \
+./lcd.d \
+./lcdproc.d \
+./setup.d \
+./sockets.d
+
+
+# Each subdirectory must supply rules for building sources it contributes
+%.o: ../%.c
+ @echo 'Building file: $<'
+ @echo 'Invoking: GCC C++ Compiler'
+ g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o"$@" "$<"
+ @echo 'Finished building: $<'
+ @echo ' '
+
+
diff --git a/HISTORY b/HISTORY
index 65abaaf..0527ce2 100644
--- a/HISTORY
+++ b/HISTORY
@@ -25,3 +25,27 @@ VDR Plugin 'lcdproc' Revision History
- Rearranged targets in the makefile
- date/time-line can now be disabled (for two line LCDs)
(patch provided by Sebastian Frei <sebastian@schnapsleichen.de>)
+
+2008-06-14: Version 0.0.10-jw4
+- clean up in po-dir
+- removed support for old vdr versions (VDR >= 1.6 required)
+- rearranged targets in the makefile
+ according to a discussion in the VDR mailing list
+- new makefile target "srcdoc" to generate source code documentation
+- Improved the 'i18n' target in the Makefile to avoid unnecessary work as suggested by
+ vdr-1.5.11
+- updated german translations
+- fixed translation of DESCRIPTION
+- added italian translation
+ (provided by Diego Pierotto <vdr-italian@tiscali.it>)
+- fixed displaying the the shortend title of the "Schedule" menu
+- fixed implementation of cLcdFeed::OsdStatusMessage to handle a call with message = NULL
+ correctly
+- implemented char conversion to support vdr systems running with charsets different
+ than ISO-8859-1. Remember, that the range of characters which can be displayed is
+ limited by the lcdproc core and is therefore not extended.
+ (thanks for debugging and testing to
+ - Ville Aakko <ville.aakko@gmail.com>,
+ - MichaelB <http://www.vdr-portal.de/board/profile.php?userid=12822>
+ - Joe_D <http://vdrportal.de/board/profile.php?userid=20491> )
+ \ No newline at end of file
diff --git a/Makefile b/Makefile
index aa21022..c1d1ba9 100644
--- a/Makefile
+++ b/Makefile
@@ -1,14 +1,16 @@
#
# Makefile for a Video Disk Recorder plugin
#
-# $Id: Makefile 1.7 2003/12/21 15:47:41 kls Exp $
+# $Id$
# The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the plugin.
# By default the main source file also carries this name.
+# IPORTANT: 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 = lcdproc
-
+
### The version number of this plugin (taken from the main source file):
VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g')
@@ -16,11 +18,10 @@ VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ pri
### The C++ compiler and options:
CXX ?= g++
-CXXFLAGS ?= -O2 -Wall -Woverloaded-virtual
+CXXFLAGS ?= -fPIC -g -O2 -Wall -Woverloaded-virtual
### The directory environment:
-DVBDIR = ../../../../DVB
VDRDIR = ../../..
LIBDIR = ../../lib
TMPDIR = /tmp
@@ -29,16 +30,12 @@ TMPDIR = /tmp
-include $(VDRDIR)/Make.config
-### The version number of VDR (taken from VDR's "config.h"):
+### The version number of VDR's plugin API (taken from VDR's "config.h"):
-APIVERSION = $(shell grep 'define APIVERSION ' $(VDRDIR)/config.h | awk '{ print $$3 }' | sed -e 's/"//g')
+APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h)
VDRVERSNUM = $(shell grep 'define VDRVERSNUM ' $(VDRDIR)/config.h | awk '{ print $$3 }' | sed -e 's/"//g')
-USE_GETTEXT= $(shell test $(VDRVERSNUM) -ge 10507 && echo yes)
-USE_GETTEXT_V2= $(shell test $(VDRVERSNUM) -ge 10508 && echo yes)
-
-ifeq ($(USE_GETTEXT_V2),yes)
-I18N_PREFIX = vdr-
-endif
+DOXYFILE = Doxyfile
+DOXYGEN = doxygen
### The name of the distribution archive:
@@ -47,41 +44,24 @@ PACKAGE = vdr-$(ARCHIVE)
### Includes and Defines (add further entries here):
-INCLUDES += -I$(VDRDIR)/include -I$(DVBDIR)/include
+INCLUDES += -I$(VDRDIR)/include
DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
-ifeq ($(shell echo $(APIVERSION)|sed -e 's/\([0-9]\.[0-9]\)\..*/\1/' ),1.2)
- DEFINES += -DOLDVDR
-endif
-
-ifdef LCDKEYCONF
- DEFINES += -DLCD_EXT_KEY_CONF="\"$(LCDKEYCONF)\""
-endif
-
-
-
### The object files (add further files here):
OBJS = $(PLUGIN).o lcd.o sockets.o setup.o
-ifneq ($(USE_GETTEXT),yes)
-OBJS += i18n.o
-endif
-
### Targets:
-ifeq ($(USE_GETTEXT),yes)
all: libvdr-$(PLUGIN).so i18n
-else
-all: libvdr-$(PLUGIN).so
-endif
+libvdr-$(PLUGIN).so: $(OBJS)
+ $(CXX) $(CXXFLAGS) -shared $(OBJS) -o $@
+ @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
+
%.o: %.c
$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $<
-libvdr-$(PLUGIN).so: $(OBJS)
- $(CXX) $(CXXFLAGS) -shared $(OBJS) -o $@
- @cp $@ $(LIBDIR)/$@.$(APIVERSION)
dist: clean
@-rm -rf $(TMPDIR)/$(ARCHIVE)
@@ -95,37 +75,43 @@ clean:
@-rm -f $(PODIR)/*.mo $(PODIR)/*.pot
@-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~
-# Dependencies:
-
-MAKEDEP = g++ -MM -MG
-DEPFILE = .dependencies
-$(DEPFILE): Makefile
- @$(MAKEDEP) $(DEFINES) $(INCLUDES) $(OBJS:%.o=%.c) > $@
-
--include $(DEPFILE)
-
### Internationalization (I18N):
PODIR = po
LOCALEDIR = $(VDRDIR)/locale
I18Npo = $(wildcard $(PODIR)/*.po)
-I18Nmo = $(addsuffix .mo, $(foreach file, $(I18Npo), $(basename $(file))))
-I18Ndirs = $(notdir $(foreach file, $(I18Npo), $(basename $(file))))
+I18Nmsgs = $(addprefix $(LOCALEDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file))))))
I18Npot = $(PODIR)/$(PLUGIN).pot
%.mo: %.po
msgfmt -c -o $@ $<
$(I18Npot): $(wildcard *.c)
- xgettext -C -cTRANSLATORS --no-wrap -F -k -ktr -ktrNOOP --msgid-bugs-address='<vdr@joachim-wilke.de>' -o $@ $(wildcard *.c)
+ xgettext -C -cTRANSLATORS --no-wrap -F -k -ktr -ktrNOOP --msgid-bugs-address='<vdr@joachim-wilke.de>' -o $@ $^
-$(I18Npo): $(I18Npot)
+%.po: $(I18Npot)
msgmerge -U --no-wrap -F --backup=none -q $@ $<
+ @touch $@
+
+$(I18Nmsgs): $(LOCALEDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo
+ @mkdir -p $(dir $@)
+ cp $< $@
+
+.PHONY: i18n
+i18n: $(I18Nmsgs)
-i18n: $(I18Nmo)
- @mkdir -p $(LOCALEDIR)
- for i in $(I18Ndirs); do\
- mkdir -p $(LOCALEDIR)/$$i/LC_MESSAGES;\
- cp $(PODIR)/$$i.mo $(LOCALEDIR)/$$i/LC_MESSAGES/$(I18N_PREFIX)$(PLUGIN).mo;\
- done
+srcdoc:
+ @cp $(DOXYFILE) $(DOXYFILE).tmp
+ @echo PROJECT_NUMBER = $(VERSION) >> $(DOXYFILE).tmp
+ $(DOXYGEN) $(DOXYFILE).tmp
+ @rm $(DOXYFILE).tmp
+
+# Dependencies:
+
+MAKEDEP = $(CXX) -MM -MG
+DEPFILE = .dependencies
+$(DEPFILE): Makefile
+ @$(MAKEDEP) $(DEFINES) $(INCLUDES) $(OBJS:%.o=%.c) > $@
+
+-include $(DEPFILE)
diff --git a/README b/README
index a26b96f..7e5ce21 100644
--- a/README
+++ b/README
@@ -1,6 +1,7 @@
This is a "plugin" for the Video Disk Recorder (VDR).
Written by: Martin Hammerschmid <martin@hammerschmid.com>
+Adapted for recent VDRs by: Joachim Wilke <vdr@joachim-wilke.de>
Project's homepage: home.pages.at/linux/dvb.html
diff --git a/i18n.c b/i18n.c
deleted file mode 100644
index e080c5f..0000000
--- a/i18n.c
+++ /dev/null
@@ -1,390 +0,0 @@
-#include "i18n.h"
-
-const tI18nPhrase Phrases[] = {
- { "No EPG info available.",
- "Keine EPG Information verfügbar.",
- "No EPG info available.",// TODO
- "No EPG info available.",// TODO
- "No EPG info available.",// TODO
- "No EPG info available.",// TODO
- "No EPG info available.",// TODO
- "No EPG info available.",// TODO
- "No EPG info available.",// TODO
- "No EPG info available.",// TODO
- "No EPG info available.",// TODO
- "No EPG info available.",// TODO
- "No EPG info available.",// TODO
- "No EPG info available.",// TODO
- "No EPG info available.",// TODO
- "No EPG info available.",// TODO
- },
- { "Waiting for EPG info.",
- "Suche nach EPG Information.",
- "Scanning for EPG info.",// TODO
- "Scanning for EPG info.",// TODO
- "Scanning for EPG info.",// TODO
- "Scanning for EPG info.",// TODO
- "Scanning for EPG info.",// TODO
- "Scanning for EPG info.",// TODO
- "Scanning for EPG info.",// TODO
- "Scanning for EPG info.",// TODO
- "Scanning for EPG info.",// TODO
- "Scanning for EPG info.",// TODO
- "Scanning for EPG info.",// TODO
- "Scanning for EPG info.",// TODO
- "Scanning for EPG info.",// TODO
- "Scanning for EPG info.",// TODO
- },
- { "FullCycle",
- "Zyklusdauer Statuszeile",// TODO
- "FullCycle",// TODO
- "FullCycle",// TODO
- "FullCycle",// TODO
- "FullCycle",// TODO
- "FullCycle",// TODO
- "FullCycle",// TODO
- "FullCycle",// TODO
- "FullCycle",// TODO
- "FullCycle",// TODO
- "FullCycle",// TODO
- "FullCycle",// TODO
- "FullCycle",// TODO
- "FullCycle",// TODO
- "FullCycle",// TODO
- },
- { "TimeDateCycle",
- "davon Dauer Zeitanzeige",// TODO
- "TimeDateCycle",// TODO
- "TimeDateCycle",// TODO
- "TimeDateCycle",// TODO
- "TimeDateCycle",// TODO
- "TimeDateCycle",// TODO
- "TimeDateCycle",// TODO
- "TimeDateCycle",// TODO
- "TimeDateCycle",// TODO
- "TimeDateCycle",// TODO
- "TimeDateCycle",// TODO
- "TimeDateCycle",// TODO
- "TimeDateCycle",// TODO
- "TimeDateCycle",// TODO
- "TimeDateCycle",// TODO
- },
- { "VolumeKeep",
- "Anzeigedauer Lautstärke",// TODO
- "VolumeKeep",// TODO
- "VolumeKeep",// TODO
- "VolumeKeep",// TODO
- "VolumeKeep",// TODO
- "VolumeKeep",// TODO
- "VolumeKeep",// TODO
- "VolumeKeep",// TODO
- "VolumeKeep",// TODO
- "VolumeKeep",// TODO
- "VolumeKeep",// TODO
- "VolumeKeep",// TODO
- "VolumeKeep",// TODO
- "VolumeKeep",// TODO
- "VolumeKeep",// TODO
- },
- { "Scrollwait",
- "Zeit bis Text rollen",// TODO
- "Scrollwait",// TODO
- "Scrollwait",// TODO
- "Scrollwait",// TODO
- "Scrollwait",// TODO
- "Scrollwait",// TODO
- "Scrollwait",// TODO
- "Scrollwait",// TODO
- "Scrollwait",// TODO
- "Scrollwait",// TODO
- "Scrollwait",// TODO
- "Scrollwait",// TODO
- "Scrollwait",// TODO
- "Scrollwait",// TODO
- "Scrollwait",// TODO
- },
- { "Scrollspeed",
- "Rollgeschwindigkeit",// TODO
- "Scrollspeed",// TODO
- "Scrollspeed",// TODO
- "Scrollspeed",// TODO
- "Scrollspeed",// TODO
- "Scrollspeed",// TODO
- "Scrollspeed",// TODO
- "Scrollspeed",// TODO
- "Scrollspeed",// TODO
- "Scrollspeed",// TODO
- "Scrollspeed",// TODO
- "Scrollspeed",// TODO
- "Scrollspeed",// TODO
- "Scrollspeed",// TODO
- "Scrollspeed",// TODO
- },
- { "Charmap",
- "Zeichenkodierung",// TODO
- "Charmap",// TODO
- "Charmap",// TODO
- "Charmap",// TODO
- "Charmap",// TODO
- "Charmap",// TODO
- "Charmap",// TODO
- "Charmap",// TODO
- "Charmap",// TODO
- "Charmap",// TODO
- "Charmap",// TODO
- "Charmap",// TODO
- "Charmap",// TODO
- "Charmap",// TODO
- "Charmap",// TODO
- },
- { "AltShift",
- "Alternative \"Heartbeat\"-Signalisierung",// TODO
- "AltShift",// TODO
- "AltShift",// TODO
- "AltShift",// TODO
- "AltShift",// TODO
- "AltShift",// TODO
- "AltShift",// TODO
- "AltShift",// TODO
- "AltShift",// TODO
- "AltShift",// TODO
- "AltShift",// TODO
- "AltShift",// TODO
- "AltShift",// TODO
- "AltShift",// TODO
- "AltShift",// TODO
- },
- { "BackLight",
- "Hintergrundbeleuchtung",// TODO
- "BackLight",// TODO
- "BackLight",// TODO
- "BackLight",// TODO
- "BackLight",// TODO
- "BackLight",// TODO
- "BackLight",// TODO
- "BackLight",// TODO
- "BackLight",// TODO
- "BackLight",// TODO
- "BackLight",// TODO
- "BackLight",// TODO
- "BackLight",// TODO
- "BackLight",// TODO
- "BackLight",// TODO
- },
- { "OutputNumber",
- "Zahl der Ausgänge am LCD",// TODO
- "OutputNumber",// TODO
- "OutputNumber",// TODO
- "OutputNumber",// TODO
- "OutputNumber",// TODO
- "OutputNumber",// TODO
- "OutputNumber",// TODO
- "OutputNumber",// TODO
- "OutputNumber",// TODO
- "OutputNumber",// TODO
- "OutputNumber",// TODO
- "OutputNumber",// TODO
- "OutputNumber",// TODO
- "OutputNumber",// TODO
- "OutputNumber",// TODO
- },
- {
- "RECORDING", // this string has to be exactly 9 characters long for proper display layout
- "AUFNAHME ",
- "RECORDING",
- "RECORDING",
- "RECORDING",
- "RECORDING",
- "RECORDING",
- "RECORDING",
- "RECORDING",
- "RECORDING",
- "RECORDING",
- "RECORDING",
- "RECORDING",
- "RECORDING",
- "RECORDING",
- "RECORDING",
- },
- {
- "Recording status",
- "Aufnahmestatus",
- "Recording status",
- "Recording status",
- "Recording status",
- "Recording status",
- "Recording status",
- "Recording status",
- "Recording status",
- "Recording status",
- "Recording status",
- "Recording status",
- "Recording status",
- "Recording status",
- "Recording status",
- "Recording status",
- },
- {
- "simple",
- "einfach",
- "simple",
- "simple",
- "simple",
- "simple",
- "simple",
- "simple",
- "simple",
- "simple",
- "simple",
- "simple",
- "simple",
- "simple",
- "simple",
- "simple",
- },
- {
- "detailed",
- "ausführlich",
- "detailed",
- "detailed",
- "detailed",
- "detailed",
- "detailed",
- "detailed",
- "detailed",
- "detailed",
- "detailed",
- "detailed",
- "detailed",
- "detailed",
- "detailed",
- "detailed",
- },
- {
- "off",
- "aus",
- "off",
- "off",
- "off",
- "off",
- "off",
- "off",
- "off",
- "off",
- "off",
- "off",
- "off",
- "off",
- "off",
- "off",
- },
- {
- "on",
- "an",
- "on",
- "on",
- "on",
- "on",
- "on",
- "on",
- "on",
- "on",
- "on",
- "on",
- "on",
- "on",
- "on",
- "on",
- },
- {
- "SetClientPriority",
- "Anzeigepriorität auf Normal setzen",
- "SetClientPriority",
- "SetClientPriority",
- "SetClientPriority",
- "SetClientPriority",
- "SetClientPriority",
- "SetClientPriority",
- "SetClientPriority",
- "SetClientPriority",
- "SetClientPriority",
- "SetClientPriority",
- "SetClientPriority",
- "SetClientPriority",
- "SetClientPriority",
- "SetClientPriority",
- },
- {
- "NormalClientPriority",
- "Normale Anzeigeprorität",
- "NormalClientPriority",
- "NormalClientPriority",
- "NormalClientPriority",
- "NormalClientPriority",
- "NormalClientPriority",
- "NormalClientPriority",
- "NormalClientPriority",
- "NormalClientPriority",
- "NormalClientPriority",
- "NormalClientPriority",
- "NormalClientPriority",
- "NormalClientPriority",
- "NormalClientPriority",
- "NormalClientPriority",
- },
- {
- "HighClientPriority",
- "Hohe Anzeigepriorität",
- "HighClientPriority",
- "HighClientPriority",
- "HighClientPriority",
- "HighClientPriority",
- "HighClientPriority",
- "HighClientPriority",
- "HighClientPriority",
- "HighClientPriority",
- "HighClientPriority",
- "HighClientPriority",
- "HighClientPriority",
- "HighClientPriority",
- "HighClientPriority",
- "HighClientPriority",
- },
- {
- "BackLightWait",
- "Dauer Hintergrundbeleuchtung",
- "BackLightWait",
- "BackLightWait",
- "BackLightWait",
- "BackLightWait",
- "BackLightWait",
- "BackLightWait",
- "BackLightWait",
- "BackLightWait",
- "BackLightWait",
- "BackLightWait",
- "BackLightWait",
- "BackLightWait",
- "BackLightWait",
- "BackLightWait",
- },
- {
- "Show time",
- "Zeit anzeigen",
- "Show time",
- "Show time",
- "Show time",
- "Show time",
- "Show time",
- "Show time",
- "Show time",
- "Show time",
- "Show time",
- "Show time",
- "Show time",
- "Show time",
- "Show time",
- "Show time",
- },
- { NULL }
- };
diff --git a/i18n.h b/i18n.h
deleted file mode 100644
index f72a20a..0000000
--- a/i18n.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef _I18N__H
-#define _I18N__H
-
-#include <vdr/i18n.h>
-
-extern const tI18nPhrase Phrases[];
-
-#endif //_I18N__H
diff --git a/lcd.c b/lcd.c
index 50aace6..3677e67 100644
--- a/lcd.c
+++ b/lcd.c
@@ -10,7 +10,6 @@
#include "setup.h"
#include "lcd.h"
#include "sockets.h"
-#include "i18n.h"
#include <vdr/plugin.h>
#ifdef LCD_EXT_KEY_CONF
@@ -45,10 +44,17 @@ cLcd::cLcd() {
ThreadStateData.barx=1, ThreadStateData.bary=1, ThreadStateData.barl=0;
for (i=0;i<LCDMAXCARDS;i++) ThreadStateData.CardStat[i]=0;
channelSwitched = false;
+ SummaryText = NULL;
+//#if VDRVERSNUM < 10701
+ conv = new cCharSetConv(cCharSetConv::SystemCharacterTable() ? cCharSetConv::SystemCharacterTable() : "UTF-8", "ISO-8859-1");
+//#else
+// conv = new cCharSetConv(NULL, "ISO-8859-1");
+//#endif
}
cLcd::~cLcd() {
- if (connected) { /*cLcd::Stop();*/ cLcd::Close(); } //YYYY
+ if (connected) { cLcd::Close(); }
+ if (conv) { delete(conv); }
}
bool cLcd::Connect( char *host, unsigned int port ) {
@@ -111,6 +117,18 @@ void cLcd::Close() {
connected=false; sock=wid=hgt=cellwid=cellhgt=0;
}
+const char* cLcd::Convert(const char *s) {
+ // do character recoding to ISO-8859-1
+ if (!s) return s;
+ if (strlen(s)==0) return s;
+ const char *s_converted = conv->Convert(s);
+ if (s_converted == s) {
+ esyslog("lcdproc-plugin: conversion from %s to ISO-8859-1 failed.", cCharSetConv::SystemCharacterTable());
+ esyslog("lcdproc-plugin: '%s'",s);
+ }
+ return s_converted;
+}
+
void cLcd::Info() { // just for testing ...
if (connected)
printf("sock %d, wid %d, hgt %d, cellwid %d, cellhgt %d\n",sock, wid, hgt, cellwid, cellhgt);
@@ -120,86 +138,102 @@ void cLcd::Info() { // just for testing ...
void cLcd::SetTitle( const char *string) {
if (!connected) return;
-
+
+ const char* c_string = Convert(string);
+
unsigned int i;
char title[wid+1];
- const char *trstring=tr("Schedule - %s");
+
+ // we need to know the length of the translated string "Schedule"
+ const char *trstring=trVDR("Schedule - %s");
int trstringlength=strlen(trstring)-3;
- if (strncmp(trstring,string,trstringlength)==0) {
- title[0]='>'; snprintf( title+1, wid,"%s",string+trstringlength);
- } else if (strlen(string) > (wid-1)) {
- snprintf( title, wid+1,"%s",string);
+ if (strncmp(trstring,c_string,trstringlength)==0) {
+ // it is the title of the "Schedule" menu, so we replace "Schedule" with ">"
+ title[0]='>'; snprintf( title+1, wid,"%s",c_string+trstringlength);
+ } else if (strlen(c_string) > (wid-1)) {
+ snprintf( title, wid+1,"%s",c_string);
} else {
memset(title,' ',wid/2+1);
- snprintf(title + ( (wid-strlen(string))/2 ),wid-( (wid-strlen(string))/2 ),"%s",string); // center title
+ snprintf(title + ( (wid-strlen(c_string))/2 ),wid-( (wid-strlen(c_string))/2 ),"%s",c_string); // center title
for (i=0;i<strlen(title);i++) title[i]=toupper(title[i]); // toupper
}
cLcd::SetLine(LCDMENU,0,title);
}
-void cLcd::SetMain( unsigned int n, const char *string) {
- if (!connected) return;
-
- char line2[wid+1];
- char line3[wid+1];
-
- if (string != NULL) {
- cLcd::Copy(ThreadStateData.lcdfullbuffer[n],string,LCDMAXFULLSTRING-3);
- int i = strlen(ThreadStateData.lcdfullbuffer[n]);
- ThreadStateData.lcdfullbuffer[n][i++]=' ';
- ThreadStateData.lcdfullbuffer[n][i++]='*';
- ThreadStateData.lcdfullbuffer[n][i++]=' ';
- ThreadStateData.lcdfullbuffer[n][i]='\0';
- ThreadStateData.newscroll=true;
- cLcd::Copy(StringBuffer,string,2*wid);
- cLcd::Split(StringBuffer,line2,line3);
- cLcd::SetBuffer(n,NULL,line2,line3,NULL);
- } else {
- //cLcd::SetBuffer(n,NULL," \0"," \0",NULL);
- ThreadStateData.lcdfullbuffer[n][0]='\0';
- }
+void cLcd::SetMain( unsigned int n, const char *string, bool isConverted) {
+ const char* c_string;
+
+ if (!connected) return;
+
+ if (isConverted)
+ c_string = string;
+ else
+ c_string = Convert(string);
+
+ char line2[wid+1];
+ char line3[wid+1];
+
+ if (c_string != NULL) {
+ cLcd::Copy(ThreadStateData.lcdfullbuffer[n],c_string,LCDMAXFULLSTRING-3);
+ int i = strlen(ThreadStateData.lcdfullbuffer[n]);
+ ThreadStateData.lcdfullbuffer[n][i++]=' ';
+ ThreadStateData.lcdfullbuffer[n][i++]='*';
+ ThreadStateData.lcdfullbuffer[n][i++]=' ';
+ ThreadStateData.lcdfullbuffer[n][i]='\0';
+ ThreadStateData.newscroll=true;
+ cLcd::Copy(StringBuffer,c_string,2*wid);
+ cLcd::Split(StringBuffer,line2,line3);
+ cLcd::SetBuffer(n,NULL,line2,line3,NULL);
+ } else {
+ //cLcd::SetBuffer(n,NULL," \0"," \0",NULL);
+ ThreadStateData.lcdfullbuffer[n][0]='\0';
+ }
}
void cLcd::SetHelp( unsigned int n, const char *Red, const char *Green, const char *Yellow, const char *Blue) {
if (!connected) return;
-
+
char help[2*wid], red[wid+1], green[wid+1], yellow[wid+1], blue[wid+1];
unsigned int allchars=0, i,j , empty=0, spacewid=1;
char *longest, *longest1, *longest2;
- if ( Red==NULL || Red[0]=='\0' ) {
+ const char* c_Red = Convert(Red);
+ if ( c_Red==NULL || c_Red[0]=='\0' ) {
empty++; red[0]=' '; red[1]='\0';
} else {
- j=i=0; while ( (i<wid) && (Red[i] != '\0') ) {
- if (Red[i] !=' ') {red[j]=Red[i]; j++; }
+ j=i=0; while ( (i<wid) && (c_Red[i] != '\0') ) {
+ if (c_Red[i] !=' ') {red[j]=c_Red[i]; j++; }
i++;
} red[j]='\0';
allchars+=strlen(red);
}
- if ( Green==NULL || Green[0]=='\0' ) {
+ const char* c_Green = Convert(Green);
+ if ( c_Green==NULL || c_Green[0]=='\0' ) {
empty++; green[0]=' '; green[1]='\0';
} else {
- j=i=0; while ( (i<wid) && (Green[i] != '\0') ) {
- if (Green[i] !=' ') {green[j]=Green[i]; j++; }
+ j=i=0; while ( (i<wid) && (c_Green[i] != '\0') ) {
+ if (c_Green[i] !=' ') {green[j]=c_Green[i]; j++; }
i++;
} green[j]='\0';
allchars+=strlen(green);
}
- if ( Yellow==NULL || Yellow[0]=='\0' ) {
+ const char* c_Yellow = Convert(Yellow);
+ if ( c_Yellow==NULL || c_Yellow[0]=='\0' ) {
empty++; yellow[0]=' '; yellow[1]='\0';
} else {
- j=i=0; while ( (i<wid) && (Yellow[i] != '\0') ) {
- if (Yellow[i] !=' ') {yellow[j]=Yellow[i]; j++; }
+ j=i=0; while ( (i<wid) && (c_Yellow[i] != '\0') ) {
+ if (c_Yellow[i] !=' ') {yellow[j]=c_Yellow[i]; j++; }
i++;
} yellow[j]='\0';
allchars+=strlen(yellow);
}
- if ( Blue==NULL || Blue[0]=='\0' ) {
+ const char* c_Blue = Convert(Blue);
+ if ( c_Blue==NULL || c_Blue[0]=='\0' ) {
empty++; blue[0]=' '; blue[1]='\0';
} else {
- j=i=0; while ( (i<wid) && (Blue[i] != '\0') ) {
- if (Blue[i] !=' ') {blue[j]=Blue[i]; j++; }
+ j=i=0; while ( (i<wid) && (c_Blue[i] != '\0') ) {
+ if (c_Blue[i] !=' ') {blue[j]=c_Blue[i]; j++; }
i++;
} blue[j]='\0';
allchars+=strlen(blue);
@@ -234,26 +268,30 @@ void cLcd::SetHelp( unsigned int n, const char *Red, const char *Green, const ch
void cLcd::SetStatus( const char *string) {
if (!connected) return;
+
+ const char* c_string = Convert(string);
char statstring[2*wid+1];
- if (string == NULL) {
- cLcd::SetMain(LCDMENU,StringBuffer);
+ if (c_string == NULL) {
+ cLcd::SetMain(LCDMENU,StringBuffer,true);
} else {
- cLcd::Copy(statstring,string,2*wid);
+ cLcd::Copy(statstring,c_string,2*wid);
cLcd::SetMain(LCDMENU,statstring);
}
}
void cLcd::SetWarning( const char *string) {
if (!connected) return;
+
+ const char* c_string = Convert(string);
char statstring[2*wid+1];
- if (string != NULL) {
- cLcd::Copy(statstring,string,2*wid);
+ if (c_string != NULL) {
+ cLcd::Copy(statstring,c_string,2*wid);
cLcd::Clear(LCDMISC);
- cLcd::SetMain(LCDMISC,statstring);
+ cLcd::SetMain(LCDMISC,statstring,true);
cLcd::SetThreadState(Misc);
}
}
@@ -270,7 +308,7 @@ if (!connected) return;
EndMutualExclusion();
if (ThreadStateData.muted) {
cLcd::SetLine(Vol,0," ");
- cLcd::SetLine(Vol,1,tr("Mute"));
+ cLcd::SetLine(Vol,1,Convert(tr("Mute")));
cLcd::SetLine(Vol,2," ");
cLcd::SetLine(Vol,3," ");
} else {
@@ -285,7 +323,7 @@ if (!connected) return;
cLcd::SetLine(Vol,2," ");
}
} else {
- cLcd::SetLine(Vol,0,tr("Volume "));
+ cLcd::SetLine(Vol,0,Convert(tr("Volume ")));
cLcd::SetLine(Vol,3,"|---|---|---|---|---|---|---|---|---|---");
cLcd::SetLine(Vol,1,"|---|---|---|---|---|---|---|---|---|---");
cLcd::SetLine(Vol,2," ");
@@ -325,7 +363,7 @@ void cLcd::SetProgress(const char *begin, const char *end, int percent) {
void cLcd::SetLine(unsigned int n, unsigned int l, const char *string) {
if (!connected) return;
-
+
BeginMutualExclusion();
if (string != NULL) strncpy(ThreadStateData.lcdbuffer[n][l],string,wid+1);
ThreadStateData.lcddirty[n][l]=true;
@@ -334,9 +372,11 @@ void cLcd::SetLine(unsigned int n, unsigned int l, const char *string) {
void cLcd::SetLineC(unsigned int n, unsigned int l, const char *string) {
if (!connected) return;
-
+
+ const char* c_string = Convert(string);
+
BeginMutualExclusion();
- if (string != NULL) cLcd::Copy(ThreadStateData.lcdbuffer[n][l],string,wid);
+ if (c_string != NULL) cLcd::Copy(ThreadStateData.lcdbuffer[n][l],c_string,wid);
ThreadStateData.lcddirty[n][l]=true;
EndMutualExclusion();
}
@@ -354,20 +394,27 @@ void cLcd::SetBuffer(unsigned int n, const char *l1,const char *l2,const char *l
void cLcd::SetRunning( bool nownext, const char *string1, const char *string2, const char *string3) {
if (!connected) return;
-
+
char line[1024];
char line1[1024];
static char now1[LCDMAXWID+1];
static char now2[LCDMAXWID+1];
+ char *c_string1 = string1 ? strdup(Convert(string1)) : NULL;
+ char *c_string2 = string2 ? strdup(Convert(string2)) : NULL;
+ char *c_string3 = string3 ? strdup(Convert(string3)) : NULL;
+
snprintf(line,1024,"%s %s%s%s",
- (string1==NULL || string1[0]=='\0')?" ":string1,
- (string2==NULL || string2[0]=='\0')?" ":string2,
+ (string1==NULL || string1[0]=='\0')?" ":c_string1,
+ (string2==NULL || string2[0]=='\0')?" ":c_string2,
(string3==NULL || string3[0]=='\0')?"":"|",
- (string3==NULL || string3[0]=='\0')?" ":string3);
+ (string3==NULL || string3[0]=='\0')?" ":c_string3);
cLcd::Copy(line1,line,2*wid);
-
+
+ free(c_string1);
+ free(c_string2);
+ free(c_string3);
if (nownext) {
@@ -393,9 +440,12 @@ void cLcd::SetRunning( bool nownext, const char *string1, const char *string2, c
}
}
-void cLcd::SummaryInit(char *string) {
- SummaryText = string;
- SummaryTextL = strlen(string);
+void cLcd::SummaryInit(const char *string) {
+
+ if (SummaryText)
+ free(SummaryText);
+ SummaryText = strdup(Convert(string));
+ SummaryTextL = strlen(SummaryText);
SummaryCurrent=0;
}
@@ -479,10 +529,10 @@ void cLcd::BeginMutualExclusion() {
}
void cLcd::EndMutualExclusion() {
- cLcd::CriticalArea.Unlock();
+ CriticalArea.Unlock();
}
-void cLcd::Copy(char *to, const char *from, unsigned int max) { // eliminates tabs, double blanks ...
+void cLcd::Copy(char *to, const char *from, unsigned int max) { // eliminates tabs, double blanks, ...
unsigned int i=0 , out=0;
@@ -567,6 +617,7 @@ void cLcd::Write(int line, const char *string) { // used for any text output to
} else {
sprintf(workstring,"widget_set VDR line%d %d %d \"",line,(line==3||line==4)?wid+1:1,(line==1||line==4)?1:2);
}
+ // do lcdtranstbl mapping
out=strlen(workstring);
for (i=0;(i<strlen(string)) && (i<wid);i++)
workstring[out++] = LcdTransTbl[LcdSetup.Charmap][ (unsigned char) string[i] ]; // char mapping see lcdtranstbl.h
@@ -591,7 +642,7 @@ void cLcd::GetTimeDateStat( char *string, unsigned int OutStateData[] ) {
if ( offset || !( ShowStates && ((t%LcdSetup.FullCycle) >= LcdSetup.TimeCycle) )) {
if (wid > 19)
snprintf(string,wid+1,"<%s %02d.%02d %02d:%02d:%02d>",
- *WeekDayName(now->tm_wday), now->tm_mday, now->tm_mon+1, now->tm_hour, now->tm_min,now->tm_sec);
+ Convert(*WeekDayName(now->tm_wday)), now->tm_mday, now->tm_mon+1, now->tm_hour, now->tm_min,now->tm_sec);
else
snprintf(string,wid+1,"<%02d.%02d %02d:%02d:%02d>",
now->tm_mday, now->tm_mon+1, now->tm_hour, now->tm_min,now->tm_sec);
@@ -605,7 +656,7 @@ void cLcd::GetTimeDateStat( char *string, unsigned int OutStateData[] ) {
}
}
else {
- snprintf(string,wid+1,"<%s %02d:%02d:%02d>", tr("RECORDING"), now->tm_hour, now->tm_min,now->tm_sec);
+ snprintf(string,wid+1,"<%s %02d:%02d:%02d>", Convert(tr("RECORDING")), now->tm_hour, now->tm_min,now->tm_sec);
}
}
@@ -689,38 +740,6 @@ void cLcd::Action(void) { // LCD output thread
nextLcdUpdate = 0; //trigger next epg update
}
-#ifdef OLDVDR
-
- if ( time(NULL) > nextLcdUpdate ) {
- const cEventInfo *Present = NULL;
- cMutexLock MutexLock;
- const cSchedules *Schedules = cSIProcessor::Schedules(MutexLock);
- if (Schedules) {
- const cSchedule *Schedule = Schedules->GetSchedule();
- if (Schedule) {
- const char *PresentTitle, *PresentSubtitle;
- PresentTitle = NULL; PresentSubtitle = NULL;
- if ((Present = Schedule->GetPresentEvent()) != NULL) {
- nextLcdUpdate=Present->GetTime()+Present->GetDuration();
- PresentTitle = Present->GetTitle();
- PresentSubtitle = Present->GetSubtitle();
- if ( (!isempty(PresentTitle)) && (!isempty(PresentSubtitle)) )
- SetRunning(false,Present->GetTimeString(),PresentTitle,PresentSubtitle);
- else if (!isempty(PresentTitle)) SetRunning(false,Present->GetTimeString(),PresentTitle);
- } else
- SetRunning(false,tr("No EPG info available."), NULL);
- if ((Present = Schedule->GetFollowingEvent()) != NULL)
- nextLcdUpdate=(Present->GetTime()<nextLcdUpdate)?Present->GetTime():nextLcdUpdate;
- rtcycle = 10; // RT
- lcrCycle = 10; // LCR
- }
- }
- if ( nextLcdUpdate <= time(NULL) )
- nextLcdUpdate=(time(NULL)/60)*60+60;
- }
-
-#else
-
if ( time(NULL) > nextLcdUpdate ) {
cChannel *channel = Channels.GetByNumber(primaryDvbApi->CurrentChannel());
const cEvent *Present = NULL;
@@ -750,9 +769,6 @@ void cLcd::Action(void) { // LCD output thread
nextLcdUpdate=(time(NULL)/60)*60+60;
}
-#endif
-
-#if VDRVERSNUM >= 10330
// get&display Radiotext
if (++rtcycle > 10) { // every 10 times
cPlugin *p;
@@ -792,7 +808,6 @@ void cLcd::Action(void) { // LCD output thread
}
}
}
-#endif
// replaying
diff --git a/lcd.h b/lcd.h
index 46aac68..630581a 100644
--- a/lcd.h
+++ b/lcd.h
@@ -5,7 +5,6 @@
#include <vdr/device.h>
#include <vdr/player.h>
#include <vdr/dvbplayer.h>
-#include "i18n.h"
#define LCDPORT 13666
#define LCDHOST "localhost"
@@ -37,7 +36,7 @@ class cLcd : public cThread {
void Close();
void Info();
void SetTitle( const char *string);
- void SetMain( unsigned int n, const char *string);
+ void SetMain( unsigned int n, const char *string, bool isConverted = false );
void SetHelp( unsigned int n, const char *Red, const char *Green, const char *Yellow, const char *Blue);
void SetStatus( const char *string);
void SetWarning( const char *string);
@@ -45,9 +44,8 @@ class cLcd : public cThread {
void SetProgress(const char *begin=NULL, const char *end=NULL, int percent=0);
void SetLine(unsigned int n, unsigned int l, const char *string);
void SetLineC(unsigned int n, unsigned int l, const char *string);
- void SetBuffer(unsigned int n,const char *l1=NULL,const char *l2=NULL,const char *l3=NULL,const char *l4=NULL);
void SetRunning(bool nownext, const char *string1="\0", const char *string2="\0", const char *string3="\0");
- void SummaryInit(char *string);
+ void SummaryInit(const char *string);
void SummaryUp();
void SummaryDown();
void SummaryDisplay();
@@ -68,9 +66,12 @@ class cLcd : public cThread {
cMutex CriticalArea;
unsigned int sock, wid, hgt, cellwid, cellhgt;
char StringBuffer[2*LCDMAXWID+1];
+ cCharSetConv *conv;
+ const char* Convert(const char *s);
void BeginMutualExclusion();
void EndMutualExclusion();
void Copy(char *to, const char *from, unsigned int max);
+ void SetBuffer(unsigned int n,const char *l1=NULL,const char *l2=NULL,const char *l3=NULL,const char *l4=NULL);
void Split(char *string, char *string1, char *string2);
void Write(int line, const char *string);
void GetTimeDateStat( char *string, unsigned int OutStateData[] );
diff --git a/lcdproc.c b/lcdproc.c
index a96cbad..eefad8d 100644
--- a/lcdproc.c
+++ b/lcdproc.c
@@ -12,13 +12,12 @@
#include <vdr/status.h>
#include <vdr/recording.h>
#include "setup.h"
-#include "i18n.h"
#include "lcd.h"
#include "lcdtranstbl.h"
-static const char *VERSION = "0.0.10-jw3";
+static const char *VERSION = "0.0.10-jw4";
static const char *MAINMENUENTRY = NULL;
-static const char *DESCRIPTION = "LCDproc output";
+static const char *DESCRIPTION = trNOOP("LCDproc output");
cLcd *LCDproc = new cLcd;
bool replaymode=false;
@@ -134,12 +133,16 @@ void cLcdFeed::OsdTitle(const char *Title)
void cLcdFeed::OsdStatusMessage(const char *Message)
{
- //syslog(LOG_INFO, "lcdproc: cLcdFeed::OsdStatusMessage '%s'", Message);
- if ( Message )
- if ( menumode )
- LCDproc->SetStatus(Message);
- else
- LCDproc->SetWarning(Message);
+ //syslog(LOG_INFO, "lcdproc: cLcdFeed::OsdStatusMessage '%s'", Message);
+ if ( Message ) {
+ if ( menumode )
+ LCDproc->SetStatus(Message);
+ else
+ LCDproc->SetWarning(Message);
+ }
+ else {
+ OsdClear( );
+ }
}
void cLcdFeed::OsdHelpKeys(const char *Red, const char *Green, const char *Yellow, const char *Blue)
@@ -222,7 +225,7 @@ public:
cPluginLcd(void);
virtual ~cPluginLcd();
virtual const char *Version(void) { return VERSION; }
- virtual const char *Description(void) { return DESCRIPTION; }
+ virtual const char *Description(void) { return tr(DESCRIPTION); }
virtual const char *CommandLineHelp(void);
virtual bool ProcessArgs(int argc, char *argv[]);
virtual bool Start(void);
@@ -282,9 +285,6 @@ bool cPluginLcd::ProcessArgs(int argc, char *argv[])
bool cPluginLcd::Start(void)
{
// Start any background activities the plugin shall perform.
-#if VDRVERSNUM < 10507
- RegisterI18n(Phrases);
-#endif
lcdFeed = new cLcdFeed;
if ( LCDproc->Connect(LCDprocHOST,LCDprocPORT) ) {
syslog(LOG_INFO, "connection to LCDd at %s:%d established.",LCDprocHOST,LCDprocPORT);
diff --git a/po/de_DE.po b/po/de_DE.po
index 94c591b..e59a140 100644
--- a/po/de_DE.po
+++ b/po/de_DE.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 1.5.7\n"
"Report-Msgid-Bugs-To: <vdr@joachim-wilke.de>\n"
-"POT-Creation-Date: 2008-03-08 21:12+0100\n"
+"POT-Creation-Date: 2008-06-14 18:05+0200\n"
"PO-Revision-Date: 2007-08-12 20:41+0200\n"
"Last-Translator: Klaus Schmidinger <kls@cadsoft.de>\n"
"Language-Team: <vdr@linuxtv.org>\n"
@@ -15,50 +15,49 @@ msgstr ""
"Content-Type: text/plain; charset=ISO-8859-15\n"
"Content-Transfer-Encoding: 8bit\n"
-#: lcd.c:126
-#, c-format
-msgid "Schedule - %s"
-msgstr ""
-
-#: lcd.c:273
+#: lcd.c:311
msgid "Mute"
-msgstr ""
+msgstr "Stumm"
-#: lcd.c:288
+#: lcd.c:326
msgid "Volume "
-msgstr ""
+msgstr "Lautstärke "
-#: lcd.c:608
+#: lcd.c:659
msgid "RECORDING"
-msgstr ""
+msgstr "AUFNAHME "
-#: lcd.c:711 lcd.c:742 lcdproc.c:202 lcdproc.c:212
+#: lcd.c:761 lcdproc.c:205 lcdproc.c:215
msgid "No EPG info available."
msgstr "Keine EPG Information verfügbar."
-#: lcdproc.c:72
+#: lcdproc.c:20
+msgid "LCDproc output"
+msgstr "LCDproc Ausgabe"
+
+#: lcdproc.c:71
msgid "Waiting for EPG info."
msgstr "Suche nach EPG Information."
#: lcdproc.c:345
msgid "off"
-msgstr ""
+msgstr "aus"
#: lcdproc.c:346
msgid "on"
-msgstr ""
+msgstr "an"
#: lcdproc.c:347
msgid "auto"
-msgstr ""
+msgstr "auto"
#: lcdproc.c:348
msgid "detailed"
-msgstr ""
+msgstr "detailiert"
#: lcdproc.c:349
msgid "simple"
-msgstr ""
+msgstr "einfach"
#: lcdproc.c:352
msgid "FullCycle"
diff --git a/po/it_IT.po b/po/it_IT.po
index 0999dea..02ccc56 100644..100755
--- a/po/it_IT.po
+++ b/po/it_IT.po
@@ -9,115 +9,117 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 1.5.7\n"
"Report-Msgid-Bugs-To: <vdr@joachim-wilke.de>\n"
-"POT-Creation-Date: 2008-03-08 21:12+0100\n"
-"PO-Revision-Date: 2007-08-12 20:41+0200\n"
-"Last-Translator: Sean Carlos <seanc@libero.it>\n"
-"Language-Team: <vdr@linuxtv.org>\n"
+"POT-Creation-Date: 2008-06-14 18:05+0200\n"
+"PO-Revision-Date: 2008-03-30 19:32+0100\n"
+"Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n"
+"Language-Team: <vdr@linuxtv.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-15\n"
"Content-Transfer-Encoding: 8bit\n"
-#: lcd.c:126
-#, c-format
-msgid "Schedule - %s"
-msgstr ""
-
-#: lcd.c:273
+#: lcd.c:311
msgid "Mute"
-msgstr ""
+msgstr "Muto"
-#: lcd.c:288
+#: lcd.c:326
msgid "Volume "
-msgstr ""
+msgstr "Volume"
-#: lcd.c:608
+#: lcd.c:659
msgid "RECORDING"
-msgstr ""
+msgstr "REGISTRAZIONE"
-#: lcd.c:711 lcd.c:742 lcdproc.c:202 lcdproc.c:212
+#: lcd.c:761 lcdproc.c:205 lcdproc.c:215
msgid "No EPG info available."
-msgstr "No EPG info available."
+msgstr "Nessun info EPG disponibile."
-#: lcdproc.c:72
+#: lcdproc.c:20
+msgid "LCDproc output"
+msgstr ""
+
+#: lcdproc.c:71
msgid "Waiting for EPG info."
-msgstr "Scanning for EPG info."
+msgstr "Scansione info EPG."
#: lcdproc.c:345
msgid "off"
-msgstr ""
+msgstr "disattivo"
#: lcdproc.c:346
msgid "on"
-msgstr ""
+msgstr "attivo"
#: lcdproc.c:347
msgid "auto"
-msgstr ""
+msgstr "auto"
#: lcdproc.c:348
msgid "detailed"
-msgstr ""
+msgstr "dettagliata"
#: lcdproc.c:349
msgid "simple"
-msgstr ""
+msgstr "semplice"
#: lcdproc.c:352
msgid "FullCycle"
-msgstr "FullCycle"
+msgstr "Ciclo completo"
#: lcdproc.c:353
msgid "TimeDateCycle"
-msgstr "TimeDateCycle"
+msgstr "Ciclo Data/Ora"
#: lcdproc.c:354
msgid "VolumeKeep"
-msgstr "VolumeKeep"
+msgstr "Mantieni volume"
#: lcdproc.c:355
msgid "Scrollwait"
-msgstr "Scrollwait"
+msgstr "Attesa scorrimento"
#: lcdproc.c:356
msgid "Scrollspeed"
-msgstr "Scrollspeed"
+msgstr "Velocità scorrimento"
#: lcdproc.c:357
msgid "Charmap"
-msgstr "Charmap"
+msgstr "Mappa caratteri"
#: lcdproc.c:358
msgid "AltShift"
-msgstr "AltShift"
+msgstr "Alt Shift"
#: lcdproc.c:359
msgid "BackLight"
-msgstr "BackLight"
+msgstr "Luminosità sfondo"
#: lcdproc.c:360
msgid "SetClientPriority"
-msgstr ""
+msgstr "Imposta priorità client"
#: lcdproc.c:361
msgid "NormalClientPriority"
-msgstr ""
+msgstr "Priorità client normale"
#: lcdproc.c:362
msgid "HighClientPriority"
-msgstr ""
+msgstr "Priorità client alta"
#: lcdproc.c:363
msgid "BackLightWait"
-msgstr ""
+msgstr "Attesa luminosità sfondo"
#: lcdproc.c:364 lcdproc.c:366
msgid "OutputNumber"
-msgstr "OutputNumber"
+msgstr "Numero uscita"
#: lcdproc.c:369
msgid "Recording status"
-msgstr ""
+msgstr "Stato registrazione"
#: lcdproc.c:370
msgid "Show time"
-msgstr ""
+msgstr "Mostra ora"
+
+#~ msgid "Schedule - %s"
+#~ msgstr "Programmi - %s"