summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormonty35 <videosrc@vdr.muc.bieringer.de>2008-12-20 09:24:51 +0100
committermonty35 <videosrc@vdr.muc.bieringer.de>2008-12-20 09:24:51 +0100
commit3308e0c0b652a77466cdeb9c2ce3e771c87fd818 (patch)
tree927800d9ecfddc6b0d58aea350528706845737f1
parentdabdbe5409bacc56e22461a6a1ff9b736381b158 (diff)
downloadvdr-plugin-tvtv-3308e0c0b652a77466cdeb9c2ce3e771c87fd818.tar.gz
vdr-plugin-tvtv-3308e0c0b652a77466cdeb9c2ce3e771c87fd818.tar.bz2
Import patch to 0.3.3p8
-rw-r--r--HISTORY9
-rw-r--r--Makefile38
-rw-r--r--README15
-rw-r--r--config.h13
-rw-r--r--examples/tvtv_channelmap.conf_DVB-S2
-rw-r--r--examples/tvtv_channelmap.conf_DVB_C_Mch (renamed from tvtv_channelmap.conf_DVB_C_Mch)0
-rw-r--r--i18n.c677
-rw-r--r--i18n.h16
-rw-r--r--messages.po113
-rw-r--r--po/de_DE.po111
-rw-r--r--po/tvtv.pot110
-rw-r--r--tvtv.c25
-rw-r--r--update.c159
-rw-r--r--update.h1
14 files changed, 553 insertions, 736 deletions
diff --git a/HISTORY b/HISTORY
index 7ec38a4..c20e13d 100644
--- a/HISTORY
+++ b/HISTORY
@@ -1,6 +1,15 @@
VDR Plugin 'tvtv' Revision History
-----------------------------------
+2008-12-01: Version 0.3.3p8
+- Take care of Start/Stop margins for timer check (thx to monty35)
+- Adjust log level for all the bugs (thx to monty35)
+- Adjust log level for TVTV receiving line for better error tracking (thx to monty35)
+- Add support for manual timezone offset fix, supported also DST or non-DST only and can
+ be also ignored (thx to monty35)
+- examples/tvtv_channelmap.conf_DVB-S: fix ARTE (reported by uclara)
+- change translation support from i18n to gettext (mo/po)
+
2008-11-11: Version 0.3.3p7
- Create a toggle to control adding of ongoing non-VPS timers ((thx to monty35)
Note: if "off", this avoids a restart of a deleted running record/timer on
diff --git a/Makefile b/Makefile
index 60d668b..e35b044 100644
--- a/Makefile
+++ b/Makefile
@@ -54,7 +54,7 @@ DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
### The object files (add further files here):
-OBJS = $(PLUGIN).o i18n.o config.o update.o md5tools.o channelmap.o
+OBJS = $(PLUGIN).o config.o update.o md5tools.o channelmap.o
### Implicit rules:
@@ -70,9 +70,43 @@ $(DEPFILE): Makefile
-include $(DEPFILE)
+### Internationalization (I18N):
+
+PODIR = po
+LOCALEDIR = $(VDRDIR)/locale
+I18Npo = $(wildcard $(PODIR)/*.po)
+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 --no-location -k -ktr -ktrNOOP --msgid-bugs-address='monty35' -o $@ $^
+
+%.po: $(I18Npot)
+ msgmerge -U --no-wrap --no-location --backup=none -q $@ $<
+ @touch $@
+
+$(I18Nmsgs): $(LOCALEDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo
+ @mkdir -p $(dir $@)
+ cp $< $@
+
+
+%.po: $(I18Npot)
+ msgmerge -U --no-wrap --no-location --backup=none -q $@ $<
+ @touch $@
+
+$(I18Nmsgs): $(LOCALEDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo
+ @mkdir -p $(dir $@)
+ cp $< $@
+
+.PHONY: i18n
+i18n: $(I18Nmsgs) $(I18Npot)
+
### Targets:
-all: libvdr-$(PLUGIN).so
+all: libvdr-$(PLUGIN).so i18n
libvdr-$(PLUGIN).so: $(OBJS)
$(CXX) $(CXXFLAGS) -shared $(OBJS) $(LIBS) -o $@
diff --git a/README b/README
index 6c19201..4f5a444 100644
--- a/README
+++ b/README
@@ -50,7 +50,7 @@ Setup Menu:
Shows entry in main menu to perform update manually
Add ongoing non-VPS timers
- Do not readd (and causing instant start of record)
+ Do not re-add (and causing instant start of record)
non-VPS timers, if start time is in the past
Use VPS
@@ -74,6 +74,19 @@ Setup Menu:
It is shifted 1 hour (2 hours during daylight saving time) ealier. This can
be avoided by enabling this fix. "auto" is the recommended setting.
+ TimeZone Shift BugFix
+ Currently (Nov 2009), TVTV sends the wrong time zone for all times.
+ This happen for CET regional timers like ARD and also for GMT timers like
+ BBC.
+ "auto" means that a buggy timezone is detected and fixed (Note: this only works if
+ *all* TVTV timers are in the same timezone as the vdr system. This is failsafe
+ and should avoid problems on the next DST switch
+ "manual" means that a timezone is manually corrected. This is NOT failsafe on the
+ next DST switch!
+ "manual (DST only)" use the manual timezone correction only in case of DST
+ "manual (non-DST only)" use the manual timezone correction only in case of non-DST
+ "ignore timezone" ignores the transmitted timezone completly
+
Reload ChannelMap
If channel map is changed it can be reloaded with this command
diff --git a/config.h b/config.h
index 33b9932..48c7c7d 100644
--- a/config.h
+++ b/config.h
@@ -32,6 +32,17 @@ enum eTimeShiftBugfix
eTimeShiftBugfixMAX
};
+enum eTimeZoneBugfix
+{
+ eTimeZoneBugfixOff,
+ eTimeZoneBugfixAuto,
+ eTimeZoneBugfixManual,
+ eTimeZoneBugfixManualDST,
+ eTimeZoneBugfixManualNonDST,
+ eTimeZoneBugfixIgnore,
+ eTimeZoneBugfixMAX
+};
+
struct cTVTVConfig
{
public:
@@ -57,6 +68,8 @@ public:
#endif
int tvtv_bugfix;
int tvtv_bugfix_hrs;
+ int TimeZoneShiftBugFix;
+ int TimeZoneShiftHours;
};
extern cTVTVConfig TVTVConfig;
diff --git a/examples/tvtv_channelmap.conf_DVB-S b/examples/tvtv_channelmap.conf_DVB-S
index 827d5fd..2c8e9c9 100644
--- a/examples/tvtv_channelmap.conf_DVB-S
+++ b/examples/tvtv_channelmap.conf_DVB-S
@@ -62,7 +62,7 @@
// Doku
57 = S19.2E-1-1101-28112 // BR-alpha
206 = S19.2E-1-1101-28114 // Phoenix
-10 = S19.2E-1-1101-28109 // ARTE
+10 = S19.2E-1-1051-28724 // ARTE
227 = S19.2E-1-1113-12602 // DMAX
974 = S19.2E-1-1094-17033 // Terra Nova
837 = S19.2E-1-1057-61900 // bibel TV
diff --git a/tvtv_channelmap.conf_DVB_C_Mch b/examples/tvtv_channelmap.conf_DVB_C_Mch
index 4735c60..4735c60 100644
--- a/tvtv_channelmap.conf_DVB_C_Mch
+++ b/examples/tvtv_channelmap.conf_DVB_C_Mch
diff --git a/i18n.c b/i18n.c
deleted file mode 100644
index 3ce2717..0000000
--- a/i18n.c
+++ /dev/null
@@ -1,677 +0,0 @@
-/*
- * i18n.c: Internationalization
- *
- */
-
-#include "i18n.h"
-
-const tI18nPhrase Phrases[] = {
- { "TVTV", // English
- "TVTV", // Deutsch
- "", // Slovenski
- "", // Italiano
- "", // Nederlands
- "", // Português
- "", // Français
- "", // Norsk
- "", // Suomi
- "", // Polski
- "", // Español
- "", // Greek
- "", // Svenska
- "", // Romaneste
- "", // Magyar
- "", // Català
-#if VDRVERSNUM > 10302
- "", // Russian
-#if VDRVERSNUM > 10307
- "", // Hrvatski
-#if VDRVERSNUM > 10313
- "", // Eesti
-#if VDRVERSNUM > 10316
- "", // Dansk
-#endif
-#endif
-#endif
-#endif
- },
- { "TVTV Timers update", // English
- "TVTV Timers update", // Deutsch
- "", // Slovenski
- "", // Italiano
- "", // Nederlands
- "", // Português
- "", // Français
- "", // Norsk
- "", // Suomi
- "", // Polski
- "", // Español
- "", // Greek
- "", // Svenska
- "", // Romaneste
- "", // Magyar
- "", // Català
-#if VDRVERSNUM > 10302
- "", // Russian
-#if VDRVERSNUM > 10307
- "", // Hrvatski
-#if VDRVERSNUM > 10313
- "", // Eesti
-#if VDRVERSNUM > 10316
- "", // Dansk
-#endif
-#endif
-#endif
-#endif
- },
- { "TVTV User Name", // English
- "TVTV Benutzername", // Deutsch
- "", // Slovenski
- "", // Italiano
- "", // Nederlands
- "", // Português
- "", // Français
- "", // Norsk
- "", // Suomi
- "", // Polski
- "", // Español
- "", // Greek
- "", // Svenska
- "", // Romaneste
- "", // Magyar
- "", // Català
-#if VDRVERSNUM > 10302
- "", // Russian
-#if VDRVERSNUM > 10307
- "", // Hrvatski
-#if VDRVERSNUM > 10313
- "", // Eesti
-#if VDRVERSNUM > 10316
- "", // Dansk
-#endif
-#endif
-#endif
-#endif
- },
- { "TVTV Password", // English
- "TVTV Passwort", // Deutsch
- "", // Slovenski
- "", // Italiano
- "", // Nederlands
- "", // Português
- "", // Français
- "", // Norsk
- "", // Suomi
- "", // Polski
- "", // Español
- "", // Greek
- "", // Svenska
- "", // Romaneste
- "", // Magyar
- "", // Català
-#if VDRVERSNUM > 10302
- "", // Russian
-#if VDRVERSNUM > 10307
- "", // Hrvatski
-#if VDRVERSNUM > 10313
- "", // Eesti
-#if VDRVERSNUM > 10316
- "", // Dansk
-#endif
-#endif
-#endif
-#endif
- },
- { "Auto Update", // English
- "Automatisches Update", // Deutsch
- "", // Slovenski
- "", // Italiano
- "", // Nederlands
- "", // Português
- "", // Français
- "", // Norsk
- "", // Suomi
- "", // Polski
- "", // Español
- "", // Greek
- "", // Svenska
- "", // Romaneste
- "", // Magyar
- "", // Català
-#if VDRVERSNUM > 10302
- "", // Russian
-#if VDRVERSNUM > 10307
- "", // Hrvatski
-#if VDRVERSNUM > 10313
- "", // Eesti
-#if VDRVERSNUM > 10316
- "", // Dansk
-#endif
-#endif
-#endif
-#endif
- },
- { "Updatetime (min)", // English
- "Updatezeit (min)", // Deutsch
- "", // Slovenski
- "", // Italiano
- "", // Nederlands
- "", // Português
- "", // Français
- "", // Norsk
- "", // Suomi
- "", // Polski
- "", // Español
- "", // Greek
- "", // Svenska
- "", // Romaneste
- "", // Magyar
- "", // Català
-#if VDRVERSNUM > 10302
- "", // Russian
-#if VDRVERSNUM > 10307
- "", // Hrvatski
-#if VDRVERSNUM > 10313
- "", // Eesti
-#if VDRVERSNUM > 10316
- "", // Dansk
-#endif
-#endif
-#endif
-#endif
- },
- { "Format of File Name", // English
- "Format des Dateinamens", // Deutsch
- "", // Slovenski
- "", // Italiano
- "", // Nederlands
- "", // Português
- "", // Français
- "", // Norsk
- "", // Suomi
- "", // Polski
- "", // Español
- "", // Greek
- "", // Svenska
- "", // Romaneste
- "", // Magyar
- "", // Català
-#if VDRVERSNUM > 10302
- "", // Russian
-#if VDRVERSNUM > 10307
- "", // Hrvatski
-#if VDRVERSNUM > 10313
- "", // Eesti
-#if VDRVERSNUM > 10316
- "", // Dansk
-#endif
-#endif
-#endif
-#endif
- },
- { "Use Station Name within File Name", // English
- "Sendernamen im Dateinamen verwenden", // Deutsch
- "", // Slovenski
- "", // Italiano
- "", // Nederlands
- "", // Português
- "", // Français
- "", // Norsk
- "", // Suomi
- "", // Polski
- "", // Español
- "", // Greek
- "", // Svenska
- "", // Romaneste
- "", // Magyar
- "", // Català
-#if VDRVERSNUM > 10302
- "", // Russian
-#if VDRVERSNUM > 10307
- "", // Hrvatski
-#if VDRVERSNUM > 10313
- "", // Eesti
-#if VDRVERSNUM > 10316
- "", // Dansk
-#endif
-#endif
-#endif
-#endif
- },
- { "TVTV update will be started", // English
- "TVTV update wird ausgeführt", // Deutsch
- "", // Slovenski
- "", // Italiano
- "", // Nederlands
- "", // Português
- "", // Français
- "", // Norsk
- "", // Suomi
- "", // Polski
- "", // Español
- "", // Greek
- "", // Svenska
- "", // Romaneste
- "", // Magyar
- "", // Català
-#if VDRVERSNUM > 10302
- "", // Russian
-#if VDRVERSNUM > 10307
- "", // Hrvatski
-#if VDRVERSNUM > 10313
- "", // Eesti
-#if VDRVERSNUM > 10316
- "", // Dansk
-#endif
-#endif
-#endif
-#endif
- },
- { "Show In Main Menu", // English
- "Im Hauptmenü anzeigen", // Deutsch
- "", // Slovenski
- "", // Italiano
- "", // Nederlands
- "", // Português
- "", // Français
- "", // Norsk
- "", // Suomi
- "", // Polski
- "", // Español
- "", // Greek
- "", // Svenska
- "", // Romaneste
- "", // Magyar
- "", // Català
-#if VDRVERSNUM > 10302
- "", // Russian
-#if VDRVERSNUM > 10307
- "", // Hrvatski
-#if VDRVERSNUM > 10313
- "", // Eesti
-#if VDRVERSNUM > 10316
- "", // Dansk
-#endif
-#endif
-#endif
-#endif
- },
- { "Use VPS", // English
- "VPS benutzen", // Deutsch
- "", // Slovenski
- "", // Italiano
- "", // Nederlands
- "", // Português
- "", // Français
- "", // Norsk
- "", // Suomi
- "", // Polski
- "", // Español
- "", // Greek
- "", // Svenska
- "", // Romaneste
- "", // Magyar
- "", // Català
-#if VDRVERSNUM > 10302
- "", // Russian
-#if VDRVERSNUM > 10307
- "", // Hrvatski
-#if VDRVERSNUM > 10313
- "", // Eesti
-#if VDRVERSNUM > 10316
- "", // Dansk
-#endif
-#endif
-#endif
-#endif
- },
- { "TVTV Server", // English
- "TVTV Server", // Deutsch
- "", // Slovenski
- "", // Italiano
- "", // Nederlands
- "", // Português
- "", // Français
- "", // Norsk
- "", // Suomi
- "", // Polski
- "", // Español
- "", // Greek
- "", // Svenska
- "", // Romaneste
- "", // Magyar
- "", // Català
-#if VDRVERSNUM > 10302
- "", // Russian
-#if VDRVERSNUM > 10307
- "", // Hrvatski
-#if VDRVERSNUM > 10313
- "", // Eesti
-#if VDRVERSNUM > 10316
- "", // Dansk
-#endif
-#endif
-#endif
-#endif
- },
- { "Use HTTP Proxy", // English
- "HTTP Proxy benutzen", // Deutsch
- "", // Slovenski
- "", // Italiano
- "", // Nederlands
- "", // Português
- "", // Français
- "", // Norsk
- "", // Suomi
- "", // Polski
- "", // Español
- "", // Greek
- "", // Svenska
- "", // Romaneste
- "", // Magyar
- "", // Català
-#if VDRVERSNUM > 10302
- "", // Russian
-#if VDRVERSNUM > 10307
- "", // Hrvatski
-#if VDRVERSNUM > 10313
- "", // Eesti
-#if VDRVERSNUM > 10316
- "", // Dansk
-#endif
-#endif
-#endif
-#endif
- },
- { " HTTP Proxy", // English
- " HTTP Proxy", // Deutsch
- "", // Slovenski
- "", // Italiano
- "", // Nederlands
- "", // Português
- "", // Français
- "", // Norsk
- "", // Suomi
- "", // Polski
- "", // Español
- "", // Greek
- "", // Svenska
- "", // Romaneste
- "", // Magyar
- "", // Català
-#if VDRVERSNUM > 10302
- "", // Russian
-#if VDRVERSNUM > 10307
- "", // Hrvatski
-#if VDRVERSNUM > 10313
- "", // Eesti
-#if VDRVERSNUM > 10316
- "", // Dansk
-#endif
-#endif
-#endif
-#endif
- },
- { "Use TVTV description in info.vdr", // English
- "Beschreibung in info.vdr übernehmen", // Deutsch
- "", // Slovenski
- "", // Italiano
- "", // Nederlands
- "", // Português
- "", // Français
- "", // Norsk
- "", // Suomi
- "", // Polski
- "", // Español
- "", // Greek
- "", // Svenska
- "", // Romaneste
- "", // Magyar
- "", // Català
-#if VDRVERSNUM > 10302
- "", // Russian
-#if VDRVERSNUM > 10307
- "", // Hrvatski
-#if VDRVERSNUM > 10313
- "", // Eesti
-#if VDRVERSNUM > 10316
- "", // Dansk
-#endif
-#endif
-#endif
-#endif
- },
- { "Timer update time shift bugfix", // English
- "Timer Update Zeitverschiebung-Fix aktivieren", // Deutsch
- "", // Slovenski
- "", // Italiano
- "", // Nederlands
- "", // Português
- "", // Français
- "", // Norsk
- "", // Suomi
- "", // Polski
- "", // Español
- "", // Greek
- "", // Svenska
- "", // Romaneste
- "", // Magyar
- "", // Català
-#if VDRVERSNUM > 10302
- "", // Russian
-#if VDRVERSNUM > 10307
- "", // Hrvatski
-#if VDRVERSNUM > 10313
- "", // Eesti
-#if VDRVERSNUM > 10316
- "", // Dansk
-#endif
-#endif
-#endif
-#endif
- },
- { " Time shift check (hrs)", // English
- " Zeitverschiebung Check (Std)", // Deutsch
- "", // Slovenski
- "", // Italiano
- "", // Nederlands
- "", // Português
- "", // Français
- "", // Norsk
- "", // Suomi
- "", // Polski
- "", // Español
- "", // Greek
- "", // Svenska
- "", // Romaneste
- "", // Magyar
- "", // Català
-#if VDRVERSNUM > 10302
- "", // Russian
-#if VDRVERSNUM > 10307
- "", // Hrvatski
-#if VDRVERSNUM > 10313
- "", // Eesti
-#if VDRVERSNUM > 10316
- "", // Dansk
-#endif
-#endif
-#endif
-#endif
- },
- { "Add ongoing non-VPS timers", // English
- "Laufende nicht-VPS Timers hinzufügen", // Deutsch
- "", // Slovenski
- "", // Italiano
- "", // Nederlands
- "", // Português
- "", // Français
- "", // Norsk
- "", // Suomi
- "", // Polski
- "", // Español
- "", // Greek
- "", // Svenska
- "", // Romaneste
- "", // Magyar
- "", // Català
-#if VDRVERSNUM > 10302
- "", // Russian
-#if VDRVERSNUM > 10307
- "", // Hrvatski
-#if VDRVERSNUM > 10313
- "", // Eesti
-#if VDRVERSNUM > 10316
- "", // Dansk
-#endif
-#endif
-#endif
-#endif
- },
- { "manual", // English
- "manuell", // Deutsch
- "", // Slovenski
- "", // Italiano
- "", // Nederlands
- "", // Português
- "", // Français
- "", // Norsk
- "", // Suomi
- "", // Polski
- "", // Español
- "", // Greek
- "", // Svenska
- "", // Romaneste
- "", // Magyar
- "", // Català
-#if VDRVERSNUM > 10302
- "", // Russian
-#if VDRVERSNUM > 10307
- "", // Hrvatski
-#if VDRVERSNUM > 10313
- "", // Eesti
-#if VDRVERSNUM > 10316
- "", // Dansk
-#endif
-#endif
-#endif
-#endif
- },
- { "auto (Timezone)", // English
- "auto (Zeitzone)", // Deutsch
- "", // Slovenski
- "", // Italiano
- "", // Nederlands
- "", // Português
- "", // Français
- "", // Norsk
- "", // Suomi
- "", // Polski
- "", // Español
- "", // Greek
- "", // Svenska
- "", // Romaneste
- "", // Magyar
- "", // Català
-#if VDRVERSNUM > 10302
- "", // Russian
-#if VDRVERSNUM > 10307
- "", // Hrvatski
-#if VDRVERSNUM > 10313
- "", // Eesti
-#if VDRVERSNUM > 10316
- "", // Dansk
-#endif
-#endif
-#endif
-#endif
- },
- { "Reload ChannelMap", // English
- "ChannelMap neu laden", // Deutsch
- "", // Slovenski
- "", // Italiano
- "", // Nederlands
- "", // Português
- "", // Français
- "", // Norsk
- "", // Suomi
- "", // Polski
- "", // Español
- "", // Greek
- "", // Svenska
- "", // Romaneste
- "", // Magyar
- "", // Català
-#if VDRVERSNUM > 10302
- "", // Russian
-#if VDRVERSNUM > 10307
- "", // Hrvatski
-#if VDRVERSNUM > 10313
- "", // Eesti
-#if VDRVERSNUM > 10316
- "", // Dansk
-#endif
-#endif
-#endif
-#endif
- },
- { "Really reload ChannelMap?", // English
- "ChannelMap wirklich neu laden?", // Deutsch
- "", // Slovenski
- "", // Italiano
- "", // Nederlands
- "", // Português
- "", // Français
- "", // Norsk
- "", // Suomi
- "", // Polski
- "", // Español
- "", // Greek
- "", // Svenska
- "", // Romaneste
- "", // Magyar
- "", // Català
-#if VDRVERSNUM > 10302
- "", // Russian
-#if VDRVERSNUM > 10307
- "", // Hrvatski
-#if VDRVERSNUM > 10313
- "", // Eesti
-#if VDRVERSNUM > 10316
- "", // Dansk
-#endif
-#endif
-#endif
-#endif
- },
- { "TVTV Download Error", // English
- "TVTV: Fehler beim Download", // Deutsch
- "", // Slovenski
- "", // Italiano
- "", // Nederlands
- "", // Português
- "", // Français
- "", // Norsk
- "", // Suomi
- "", // Polski
- "", // Español
- "", // Greek
- "", // Svenska
- "", // Romaneste
- "", // Magyar
- "", // Català
-#if VDRVERSNUM > 10302
- "", // Russian
-#if VDRVERSNUM > 10307
- "", // Hrvatski
-#if VDRVERSNUM > 10313
- "", // Eesti
-#if VDRVERSNUM > 10316
- "", // Dansk
-#endif
-#endif
-#endif
-#endif
- },
- { NULL }
- };
diff --git a/i18n.h b/i18n.h
deleted file mode 100644
index 577628a..0000000
--- a/i18n.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * i18n.h: Internationalization
- *
- * See the README file for copyright information and how to reach the author.
- *
- * $Id: i18n.h 1.2 2002/05/11 14:48:16 kls Exp $
- */
-
-#ifndef _I18N__H
-#define _I18N__H
-
-#include <vdr/i18n.h>
-
-extern const tI18nPhrase Phrases[];
-
-#endif //_I18N__H
diff --git a/messages.po b/messages.po
new file mode 100644
index 0000000..c6fdb7a
--- /dev/null
+++ b/messages.po
@@ -0,0 +1,113 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: monty35\n"
+"POT-Creation-Date: 2008-11-30 17:13+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Title"
+msgstr ""
+
+msgid "Nature/Title"
+msgstr ""
+
+msgid "Title/Nature"
+msgstr ""
+
+msgid "Format/Nature/Title"
+msgstr ""
+
+msgid "Format/Title/Nature"
+msgstr ""
+
+msgid "off"
+msgstr ""
+
+msgid "auto (Timezone)"
+msgstr ""
+
+msgid "manual"
+msgstr ""
+
+msgid "auto (timezone)"
+msgstr ""
+
+msgid "manual (DST only)"
+msgstr ""
+
+msgid "manual (non-DST only)"
+msgstr ""
+
+msgid "ignore timezone"
+msgstr ""
+
+msgid "TVTV Server"
+msgstr ""
+
+msgid "TVTV User Name"
+msgstr ""
+
+msgid "TVTV Password"
+msgstr ""
+
+msgid "Use HTTP Proxy"
+msgstr ""
+
+msgid " HTTP Proxy"
+msgstr ""
+
+msgid "Auto Update"
+msgstr ""
+
+msgid "Updatetime (min)"
+msgstr ""
+
+msgid "Show In Main Menu"
+msgstr ""
+
+msgid "Add ongoing non-VPS timers"
+msgstr ""
+
+msgid "Use VPS"
+msgstr ""
+
+msgid "Format of File Name"
+msgstr ""
+
+msgid "Use Station Name within File Name"
+msgstr ""
+
+msgid "Use TVTV description in info.vdr"
+msgstr ""
+
+msgid "Timer update time shift bugfix"
+msgstr ""
+
+msgid " Time shift check (hrs)"
+msgstr ""
+
+msgid "TimeZone Shift BugFix"
+msgstr ""
+
+msgid "TimeZone Shift (hrs)"
+msgstr ""
+
+msgid "Reload ChannelMap"
+msgstr ""
+
+msgid "Really reload ChannelMap?"
+msgstr ""
+
+msgid "TVTV update will be started"
+msgstr ""
diff --git a/po/de_DE.po b/po/de_DE.po
new file mode 100644
index 0000000..bd60eca
--- /dev/null
+++ b/po/de_DE.po
@@ -0,0 +1,111 @@
+# German translations for vdr package
+# German messages for vdr.
+# Copyright (C) 2008 THE vdr'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the vdr package.
+# root <monty35@gmx.de>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: vdr 1.6.0\n"
+"Report-Msgid-Bugs-To: monty35\n"
+"POT-Creation-Date: 2008-11-30 17:29+0100\n"
+"PO-Revision-Date: 2008-11-30 17:18+0100\n"
+"Last-Translator: monty35 <monty35@gmx.de>\n"
+"Language-Team: German\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "Title"
+msgstr "Titel"
+
+msgid "Nature/Title"
+msgstr "Art/Titel"
+
+msgid "Title/Nature"
+msgstr "Titel/Art"
+
+msgid "Format/Nature/Title"
+msgstr "Format/Art/Titel"
+
+msgid "Format/Title/Nature"
+msgstr "Format/Titel/Art"
+
+msgid "off"
+msgstr "aus"
+
+msgid "auto (timezone)"
+msgstr "auto (Zeitzone)"
+
+msgid "manual"
+msgstr "manuell"
+
+msgid "manual (DST only)"
+msgstr "man. (nur Sommerzeit)"
+
+msgid "manual (non-DST only)"
+msgstr "man. (nur Winterzeit)"
+
+msgid "ignore timezone"
+msgstr "Ignoriere Zeitzone"
+
+msgid "TVTV Server"
+msgstr "TVTV Server"
+
+msgid "TVTV User Name"
+msgstr "TVTV Benutzername"
+
+msgid "TVTV Password"
+msgstr "TVTV Passwort"
+
+msgid "Use HTTP Proxy"
+msgstr "Benutze HTTP Proxy"
+
+msgid " HTTP Proxy"
+msgstr " HTTP Proxy"
+
+msgid "Auto Update"
+msgstr "Automatisches Update"
+
+msgid "Updatetime (min)"
+msgstr "Updatezeit (min)"
+
+msgid "Show In Main Menu"
+msgstr "Im Hauptmenü anzeigen"
+
+msgid "Add ongoing non-VPS timers"
+msgstr "Aktive nicht-VPS Timers hinzufügen"
+
+msgid "Use VPS"
+msgstr "Benutze VPS"
+
+msgid "Format of File Name"
+msgstr "Format des Dateinamens"
+
+msgid "Use Station Name within File Name"
+msgstr "Sendernam. im Dateinam. verwenden"
+
+msgid "Use TVTV description in info.vdr"
+msgstr "Beschreibung in info.vdr übernehmen"
+
+msgid "Timer update time shift bugfix"
+msgstr "Timer Update Zeitverschiebung-Fix"
+
+msgid " Time shift check (hrs)"
+msgstr " Zeitverschiebung Check (Std)"
+
+msgid "TimeZone Shift BugFix"
+msgstr "Zeitzonen-Verschiebungs-Fix"
+
+msgid "TimeZone Shift (hrs)"
+msgstr "Zeitzonen-Verschiebung (h)"
+
+msgid "Reload ChannelMap"
+msgstr "Kanalmapping neu laden"
+
+msgid "Really reload ChannelMap?"
+msgstr "Kanalmapping wirklich neu laden?"
+
+msgid "TVTV update will be started"
+msgstr "TVTV Update startet nun"
diff --git a/po/tvtv.pot b/po/tvtv.pot
new file mode 100644
index 0000000..b5dd5fc
--- /dev/null
+++ b/po/tvtv.pot
@@ -0,0 +1,110 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: monty35\n"
+"POT-Creation-Date: 2008-11-30 17:29+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Title"
+msgstr ""
+
+msgid "Nature/Title"
+msgstr ""
+
+msgid "Title/Nature"
+msgstr ""
+
+msgid "Format/Nature/Title"
+msgstr ""
+
+msgid "Format/Title/Nature"
+msgstr ""
+
+msgid "off"
+msgstr ""
+
+msgid "auto (timezone)"
+msgstr ""
+
+msgid "manual"
+msgstr ""
+
+msgid "manual (DST only)"
+msgstr ""
+
+msgid "manual (non-DST only)"
+msgstr ""
+
+msgid "ignore timezone"
+msgstr ""
+
+msgid "TVTV Server"
+msgstr ""
+
+msgid "TVTV User Name"
+msgstr ""
+
+msgid "TVTV Password"
+msgstr ""
+
+msgid "Use HTTP Proxy"
+msgstr ""
+
+msgid " HTTP Proxy"
+msgstr ""
+
+msgid "Auto Update"
+msgstr ""
+
+msgid "Updatetime (min)"
+msgstr ""
+
+msgid "Show In Main Menu"
+msgstr ""
+
+msgid "Add ongoing non-VPS timers"
+msgstr ""
+
+msgid "Use VPS"
+msgstr ""
+
+msgid "Format of File Name"
+msgstr ""
+
+msgid "Use Station Name within File Name"
+msgstr ""
+
+msgid "Use TVTV description in info.vdr"
+msgstr ""
+
+msgid "Timer update time shift bugfix"
+msgstr ""
+
+msgid " Time shift check (hrs)"
+msgstr ""
+
+msgid "TimeZone Shift BugFix"
+msgstr ""
+
+msgid "TimeZone Shift (hrs)"
+msgstr ""
+
+msgid "Reload ChannelMap"
+msgstr ""
+
+msgid "Really reload ChannelMap?"
+msgstr ""
+
+msgid "TVTV update will be started"
+msgstr ""
diff --git a/tvtv.c b/tvtv.c
index 1700950..c96e1bb 100644
--- a/tvtv.c
+++ b/tvtv.c
@@ -5,12 +5,11 @@
*
*/
-#include "i18n.h"
#include "config.h"
#include "update.h"
-static const char *VERSION = "0.3.3p7";
+static const char *VERSION = "0.3.3p8";
static const char *DESCRIPTION = "TVTV Timers update";
static const char *MAINMENUENTRY = "TVTV";
@@ -48,6 +47,7 @@ private:
virtual void Setup(void);
const char *cRecordNames[eRecordName_MAX];
const char *timeshiftbugfixmodes[eTimeShiftBugfixMAX];
+ const char *timezonebugfixmodes[eTimeZoneBugfixMAX];
protected:
virtual eOSState ProcessKey(eKeys Key);
virtual void Store(void);
@@ -72,9 +72,16 @@ void cMenuSetupTVTV::Setup(void) {
cRecordNames[eRecordName_FormatTitleNature] = tr("Format/Title/Nature");
timeshiftbugfixmodes[eTimeShiftBugfixOff] = tr("off");
- timeshiftbugfixmodes[eTimeShiftBugfixAuto] = tr("auto (Timezone)");
+ timeshiftbugfixmodes[eTimeShiftBugfixAuto] = tr("auto (timezone)");
timeshiftbugfixmodes[eTimeShiftBugfixManual] = tr("manual");
+ timezonebugfixmodes[eTimeZoneBugfixOff] = tr("off");
+ timezonebugfixmodes[eTimeZoneBugfixAuto] = tr("auto (timezone)");
+ timezonebugfixmodes[eTimeZoneBugfixManual] = tr("manual");
+ timezonebugfixmodes[eTimeZoneBugfixManualDST] = tr("manual (DST only)");
+ timezonebugfixmodes[eTimeZoneBugfixManualNonDST] = tr("manual (non-DST only)");
+ timezonebugfixmodes[eTimeZoneBugfixIgnore] = tr("ignore timezone");
+
Add(new cMenuEditStraItem( tr("TVTV Server"), &data.tvtv_server, TVTVSRV_CNT, TVTV_SERVERS));
Add(new cMenuEditStrItem( tr("TVTV User Name"), data.username, sizeof(data.username), tr(FileNameChars)));
Add(new cMenuEditStrItem( tr("TVTV Password"), data.password, sizeof(data.password), tr(FileNameChars)));
@@ -105,6 +112,10 @@ void cMenuSetupTVTV::Setup(void) {
if (data.tvtv_bugfix == eTimeShiftBugfixManual)
Add(new cMenuEditIntItem( tr(" Time shift check (hrs)"), &data.tvtv_bugfix_hrs, -23, 23));
+ Add(new cMenuEditStraItem( tr("TimeZone Shift BugFix"), &data.TimeZoneShiftBugFix, eTimeZoneBugfixMAX, timezonebugfixmodes));
+ if (data.TimeZoneShiftBugFix == eTimeZoneBugfixManual || data.TimeZoneShiftBugFix == eTimeZoneBugfixManualDST || data.TimeZoneShiftBugFix == eTimeZoneBugfixManualNonDST)
+ Add(new cMenuEditIntItem( tr("TimeZone Shift (hrs)"), &data.TimeZoneShiftHours, -1, 1));
+
Add(new cOsdItem(tr("Reload ChannelMap"),osUser9));
SetCurrent(Get(current));
@@ -115,6 +126,7 @@ void cMenuSetupTVTV::Setup(void) {
eOSState cMenuSetupTVTV::ProcessKey(eKeys Key) {
int olduseproxy = data.useproxy;
int oldtvtvbugfix = data.tvtv_bugfix;
+ int oldtvtvtzbugfix = data.TimeZoneShiftBugFix;
eOSState state = cMenuSetupPage::ProcessKey(Key);
switch(state) {
@@ -137,7 +149,7 @@ eOSState cMenuSetupTVTV::ProcessKey(eKeys Key) {
break;
}
- if (Key != kNone && ((data.useproxy != olduseproxy) || (data.tvtv_bugfix != oldtvtvbugfix))) Setup();
+ if (Key != kNone && ((data.useproxy != olduseproxy) || (data.tvtv_bugfix != oldtvtvbugfix) || (data.TimeZoneShiftBugFix != oldtvtvtzbugfix))) Setup();
return state;
}
@@ -169,6 +181,8 @@ void cMenuSetupTVTV::Store(void)
SetupStore("TVTVBugfix", TVTVConfig.tvtv_bugfix);
SetupStore("TVTVBugfixHrs", TVTVConfig.tvtv_bugfix_hrs);
+ SetupStore("TVTVTimeZoneShiftBugFix", TVTVConfig.TimeZoneShiftBugFix);
+ SetupStore("TVTVTimeZoneShiftHrs", TVTVConfig.TimeZoneShiftHours);
if (TVTVConfig.autoupdate)
if (oUpdate)
@@ -262,7 +276,6 @@ cString cPluginTVTV::SVDRPCommand(const char *Cmd, const char *Option, int &Repl
bool cPluginTVTV::Start(void)
{
// Start any background activities the plugin shall perform.
- RegisterI18n(Phrases);
oUpdate = new cUpdate();
@@ -313,6 +326,8 @@ bool cPluginTVTV::SetupParse(const char *Name, const char *Value)
else if (!strcasecmp(Name, "TVTVBugfix")) TVTVConfig.tvtv_bugfix = atoi(Value);
else if (!strcasecmp(Name, "TVTVBugfixHrs")) TVTVConfig.tvtv_bugfix_hrs = atoi(Value);
+ else if (!strcasecmp(Name, "TVTVTimeZoneShiftBugFix")) TVTVConfig.TimeZoneShiftBugFix = atoi(Value);
+ else if (!strcasecmp(Name, "TVTVTimeZoneShiftHrs")) TVTVConfig.TimeZoneShiftHours = atoi(Value);
else
return false;
diff --git a/update.c b/update.c
index a8cbd21..6af095f 100644
--- a/update.c
+++ b/update.c
@@ -391,6 +391,9 @@ void cUpdate::ProcessImportedFile(const char *sBuffer)
unsigned int p=0;
size_t rp=0;
bool vps = false;
+ bool tzfix_start = false;
+ bool tzfix_end = false;
+ bool tzfix_vps = false;
tChannelID vdrch, channelID;
bool timer_update=false;
#if VDRVERSNUM < 10336
@@ -429,7 +432,7 @@ void cUpdate::ProcessImportedFile(const char *sBuffer)
dsyslog("TVTV: Start reading timer jobs");
sLine = read_line_from_buffer(sBuffer, &p);
while (!sLine->empty()) {
- dsyslog("TVTV: Received '%s...'", sLine->substr(0,130).c_str());
+ isyslog("TVTV: Received '%s...'", sLine->substr(0,130).c_str());
tvtvjob=split_csv(sLine->c_str(), field_cnt);
if (tvtvjob != NULL) {
for (int i=0; i<field_cnt; i++) {
@@ -475,9 +478,6 @@ void cUpdate::ProcessImportedFile(const char *sBuffer)
tVps.tm_year -= 1900; tVps.tm_mon -= 1; tVps.tm_isdst = -1;
tEnd.tm_year -= 1900; tEnd.tm_mon -= 1; tEnd.tm_isdst = -1;
- tStartTime = timegm(&tStart);
- tVpsTime = timegm(&tVps);
- tEndTime = timegm(&tEnd);
time(&tCurrentTime); /* current time */
// VPS was introduced with VDR 1.3.5
@@ -486,32 +486,125 @@ void cUpdate::ProcessImportedFile(const char *sBuffer)
#else
vps = false;
#endif
+ if (TVTVConfig.TimeZoneShiftBugFix == eTimeZoneBugfixIgnore) {
+ // TimeZone handling not active, clear TimeZones
+ isyslog("TVTV: timezones are ignored by configuration: tSTartTime: %+05d tEndTime: %+05d", StartTZ, EndTZ);
- // fix buggy received timezones
- timelocal = localtime(&tStartTime);
- if (timelocal->tm_gmtoff / 36 != StartTZ) {
- dsyslog("TVTV: buggy timezone in tSTartTime detected: %+05d, fix to: %+05d", StartTZ, (int) (timelocal->tm_gmtoff / 36));
- StartTZ = timelocal->tm_gmtoff / 36;
- };
-
- timelocal = localtime(&tEndTime);
- if (timelocal->tm_gmtoff / 36 != EndTZ) {
- dsyslog("TVTV: buggy timezone in tEndTime detected: %+05d, fix to: %+05d", EndTZ, (int) (timelocal->tm_gmtoff / 36));
- EndTZ = timelocal->tm_gmtoff / 36;
- };
-
- tStartTime -= StartTZ*36;
- tEndTime -= EndTZ*36;
+ tStartTime = mktime(&tStart);
+ tVpsTime = mktime(&tVps);
+ tEndTime = mktime(&tEnd);
+ } else {
+ // TimeZone handling active
+ tStartTime = timegm(&tStart);
+ tVpsTime = timegm(&tVps);
+ tEndTime = timegm(&tEnd);
+
+ if ((TVTVConfig.TimeZoneShiftBugFix == eTimeShiftBugfixManual) || (TVTVConfig.TimeZoneShiftBugFix == eTimeZoneBugfixManualDST) || (TVTVConfig.TimeZoneShiftBugFix == eTimeZoneBugfixManualNonDST) ) {
+ tzfix_start = false;
+ tzfix_end = false;
+ tzfix_vps = false;
+
+ timelocal = localtime(&tStartTime);
+ if ((timelocal->tm_isdst < 0) && ((TVTVConfig.TimeZoneShiftBugFix == eTimeZoneBugfixManualDST) || (TVTVConfig.TimeZoneShiftBugFix == eTimeZoneBugfixManualNonDST))) {
+ isyslog("TVTV: manual timezone shift skipped: DST information is not available for tSTartTime");
+ } else if (timelocal->tm_isdst == 0) {
+ if (TVTVConfig.TimeZoneShiftBugFix == eTimeZoneBugfixManualDST) {
+ isyslog("TVTV: manual timezone shift skipped: tSTartTime is non-DST but only enabled for DST");
+ } else {
+ tzfix_start = true;
+ };
+ } else if (timelocal->tm_isdst > 0) {
+ if (TVTVConfig.TimeZoneShiftBugFix == eTimeZoneBugfixManualNonDST) {
+ isyslog("TVTV: manual timezone shift skipped: tSTartTime is DST but only enabled for non-DST");
+ } else {
+ tzfix_start = true;
+ };
+ };
+
+ timelocal = localtime(&tEndTime);
+ if ((timelocal->tm_isdst < 0) && ((TVTVConfig.TimeZoneShiftBugFix == eTimeZoneBugfixManualDST) || (TVTVConfig.TimeZoneShiftBugFix == eTimeZoneBugfixManualNonDST))) {
+ isyslog("TVTV: manual timezone shift skipped: DST information is not available for tEndTime");
+ } else if (timelocal->tm_isdst == 0) {
+ if (TVTVConfig.TimeZoneShiftBugFix == eTimeZoneBugfixManualDST) {
+ isyslog("TVTV: manual timezone shift skipped: tEndTime is non-DST but only enabled for DST");
+ } else {
+ tzfix_end = true;
+ };
+ } else if (timelocal->tm_isdst > 0) {
+ if (TVTVConfig.TimeZoneShiftBugFix == eTimeZoneBugfixManualNonDST) {
+ isyslog("TVTV: manual timezone shift skipped: tEndTime is DST but only enabled for non-DST");
+ } else {
+ tzfix_end = true;
+ };
+ };
+
+ if (vps) {
+ timelocal = localtime(&tVpsTime);
+ if ((timelocal->tm_isdst < 0) && ((TVTVConfig.TimeZoneShiftBugFix == eTimeZoneBugfixManualDST) || (TVTVConfig.TimeZoneShiftBugFix == eTimeZoneBugfixManualNonDST))) {
+ isyslog("TVTV: manual timezone shift skipped: DST information is not available for tVpsTime");
+ } else if (timelocal->tm_isdst == 0) {
+ if (TVTVConfig.TimeZoneShiftBugFix == eTimeZoneBugfixManualDST) {
+ isyslog("TVTV: manual timezone shift skipped: tVpsTime is non-DST but only enabled for DST");
+ } else {
+ tzfix_vps = true;
+ };
+ } else if (timelocal->tm_isdst > 0) {
+ if (TVTVConfig.TimeZoneShiftBugFix == eTimeZoneBugfixManualNonDST) {
+ isyslog("TVTV: manual timezone shift skipped: tVpsTime is DST but only enabled for non-DST");
+ } else {
+ tzfix_vps = true;
+ };
+ };
+ };
+
+ if (tzfix_start == true) {
+ // shift buggy received timezones by manual given offset
+ isyslog("TVTV: manual timezone shift tSTartTime: %+05d, fix to: %+05d", StartTZ, (int) (StartTZ + TVTVConfig.TimeZoneShiftHours * 100));
+ StartTZ += TVTVConfig.TimeZoneShiftHours * 100;
+ tStartTime -= StartTZ*36;
+ };
+
+ if (tzfix_end == true) {
+ isyslog("TVTV: manual timezone shift tEndTime: %+05d, fix to: %+05d", EndTZ, (int) (EndTZ + TVTVConfig.TimeZoneShiftHours * 100));
+ EndTZ += TVTVConfig.TimeZoneShiftHours * 100;
+ tEndTime -= EndTZ*36;
+ };
- if (vps) {
- timelocal = localtime(&tVpsTime);
- if (timelocal->tm_gmtoff / 36 != VpsTZ) {
- dsyslog("TVTV: buggy timezone in tVpsTime detected: %+05d, fix to: %+05d", VpsTZ, (int) (timelocal->tm_gmtoff / 36));
- VpsTZ = timelocal->tm_gmtoff / 36;
- };
- tVpsTime -= VpsTZ*36;
+ if (tzfix_vps == true) {
+ isyslog("TVTV: manual timezone shift tVpsTime: %+05d, fix to: %+05d", VpsTZ, (int) (VpsTZ + TVTVConfig.TimeZoneShiftHours * 100));
+ VpsTZ += TVTVConfig.TimeZoneShiftHours * 100;
+ tVpsTime -= VpsTZ*36;
+ };
+
+ } else if (TVTVConfig.TimeZoneShiftBugFix == eTimeShiftBugfixAuto) {
+ // fix buggy received timezones by autodetection (works only in case of CET only timers)
+ timelocal = localtime(&tStartTime);
+ if (timelocal->tm_gmtoff / 36 != StartTZ) {
+ isyslog("TVTV: buggy timezone in tSTartTime autodetected: %+05d, fix to: %+05d", StartTZ, (int) (timelocal->tm_gmtoff / 36));
+ StartTZ = timelocal->tm_gmtoff / 36;
+ };
+
+ timelocal = localtime(&tEndTime);
+ if (timelocal->tm_gmtoff / 36 != EndTZ) {
+ isyslog("TVTV: buggy timezone in tEndTime autodetected: %+05d, fix to: %+05d", EndTZ, (int) (timelocal->tm_gmtoff / 36));
+ EndTZ = timelocal->tm_gmtoff / 36;
+ };
+
+ tStartTime -= StartTZ*36;
+ tEndTime -= EndTZ*36;
+
+ if (vps) {
+ timelocal = localtime(&tVpsTime);
+ if (timelocal->tm_gmtoff / 36 != VpsTZ) {
+ isyslog("TVTV: buggy timezone in tVpsTime autodetected: %+05d, fix to: %+05d", VpsTZ, (int) (timelocal->tm_gmtoff / 36));
+ VpsTZ = timelocal->tm_gmtoff / 36;
+ };
+ tVpsTime -= VpsTZ*36;
+ };
+ };
};
+
tStartTime -= Setup.MarginStart * 60;
if (!vps) tEndTime += Setup.MarginStop * 60;
localtime_r(&tStartTime, &tStart);
@@ -665,19 +758,19 @@ void cUpdate::ProcessImportedFile(const char *sBuffer)
// avoid Timer updates if Timer is shifted (TVTV UTC Problem)
if (TVTVConfig.tvtv_bugfix == eTimeShiftBugfixManual) {
// exactly configured hours
- dsyslog("TVTV: manual configured timezone shift: %d hrs", TVTVConfig.tvtv_bugfix_hrs);
+ isyslog("TVTV: manual configured timezone shift: %d hrs", TVTVConfig.tvtv_bugfix_hrs);
tvtv_bugfix_secs = TVTVConfig.tvtv_bugfix_hrs * 3600;
} else if (TVTVConfig.tvtv_bugfix == eTimeShiftBugfixAuto) {
// autodetect time zone distance
time(&tloc);
timelocal = localtime(&tloc);
- dsyslog("TVTV: autodetected timezone: %s, shift: %d hrs", timelocal->tm_zone, (int) (timelocal->tm_gmtoff / 3600));
+ isyslog("TVTV: autodetected timezone: %s, shift: %d hrs", timelocal->tm_zone, (int) (timelocal->tm_gmtoff / 3600));
tvtv_bugfix_secs = timelocal->tm_gmtoff;
};
if ((TVTVConfig.tvtv_bugfix != eTimeShiftBugfixOff) && ((((ti->StartTime() - tStartTime) == tvtv_bugfix_secs) &&
- ((ti->StopTime() - tEndTime) == tvtv_bugfix_secs)) ||
- (vps && ((ti->StopTime() - tEndTime) == tvtv_bugfix_secs)) )) {
+ ((ti->StopTime() - tEndTime) == tvtv_bugfix_secs)) ||
+ (vps && ((ti->StopTime() - tEndTime) == tvtv_bugfix_secs)) )) {
isyslog("TVTV: timer %d update rejected (%s) [%s/%s/%d/%04d-%04d/%s]", ti->Index() + 1,
ti->File(),
tvtv_timer[DEF_TVTV_SCHEDULE_UID].c_str(),
@@ -721,7 +814,7 @@ void cUpdate::ProcessImportedFile(const char *sBuffer)
} else { // if (timer_update)
if (tvtv_timer[DEF_TVTV_SCHEDULE_ACT] == "rec") {
- if ((tEndTime < tCurrentTime) && (vps == false)) {
+ if (((tEndTime - Setup.MarginStop * 60) < tCurrentTime) && (vps == false)) {
// Do not add timer entry in the past, if vps is not active
isyslog("TVTV: timer NOT added (EndTime in the past) (%s) [%s/%s/%d/%04d-%04d/%s]",
oTimer->File(),
@@ -733,7 +826,7 @@ void cUpdate::ProcessImportedFile(const char *sBuffer)
vps ? "VPS":"-");
} else { // if (tEndTime < tCurrentTime)
- if ((tStartTime < tCurrentTime) && (vps == false) && (TVTVConfig.AddOngoingNonVpsTimers == 0)) {
+ if (((tStartTime + Setup.MarginStart * 60) < tCurrentTime) && (vps == false) && (TVTVConfig.AddOngoingNonVpsTimers == 0)) {
// Do not add timer entry with start time in the past, if vps is not active
isyslog("TVTV: timer NOT added (StartTime in the past & AddOngoingNonVpsTimers=off) (%s) [%s/%s/%d/%04d-%04d/%s]",
oTimer->File(),
@@ -754,7 +847,7 @@ void cUpdate::ProcessImportedFile(const char *sBuffer)
vps ? (tVps.tm_hour * 100 + tVps.tm_min):(tStart.tm_hour * 100 + tStart.tm_min),
tEnd.tm_hour * 100 + tEnd.tm_min,
vps ? "VPS":"-");
- if ((tEndTime < tCurrentTime) && (vps == false)) {
+ if (((tStartTime + Setup.MarginStart * 60) < tCurrentTime) && (vps == false)) {
isyslog("TVTV: timer %d notice: StartTime is behind CurrentTime (AddOngoingNonVpsTimers=on)", oTimer->Index() + 1);
};
diff --git a/update.h b/update.h
index 561fb9e..0e5d50b 100644
--- a/update.h
+++ b/update.h
@@ -17,7 +17,6 @@
#include <fstream>
#include <sstream>
-#include "i18n.h"
#include "config.h"
#include "channelmap.h"
#include "md5tools.h"