summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <kls (at) cadsoft (dot) de>2006-01-22 18:00:00 +0100
committerKlaus Schmidinger <kls (at) cadsoft (dot) de>2006-01-22 18:00:00 +0100
commit446b0e8e0b94b997293aef2f63220c5f8a68bf0f (patch)
treeb2d3e77137f068f9fc3682197c9e7b91afba5fe1
parent78e3da813cb4345e57934a9a60f6316f1e257307 (diff)
downloadvdr-patch-lnbsharing-446b0e8e0b94b997293aef2f63220c5f8a68bf0f.tar.gz
vdr-patch-lnbsharing-446b0e8e0b94b997293aef2f63220c5f8a68bf0f.tar.bz2
Version 1.3.40vdr-1.3.40
- Fixed a second place where a message should be given when an instant recording is started (reported by Jesus Bravo Alvarez). - Modified logging so that even on NPTL systems each line in the log file shows the individual thread's pid (based on a suggestion from Francois-Xavier Kowalski). - Fixed a problem with @plugin in keymacros.conf in case the named plugin is not loaded (reported by Franz Gangkofer). - Fixed a crash after executing the SVDRP command CLRE, caused by dangling 'schedule' pointers from cChannel objects (reported by Malte Schröder). - Updated the Finnish OSD texts (thanks to Rolf Ahrenberg). - Improved NULL checking in strreplace(). - Fixed a crash in the Schedule menu with events that have no title (reported by Rolf Ahrenberg). cEvent::FixEpgBugs() now assigns a "No title" string to events that have no title. - Updated the Estonian OSD texts (thanks to Arthur Konovalov). - Recordings are now only started if there is at least 300MB free disk space (suggested by Markus Hahn). - When entering text via the numeric keys, the cursor now automatically advances (based on a patch from Rolf Ahrenberg). - Updated the Polish OSD texts and the fontosd-iso8859-2.c file (thanks to Jaroslaw Swierczynski). - Disabled the "buffer reserve" in Transfer Mode. Last chance to complain if you really need it - it will be completely removed in the next version. If you are experiencing problems with a/v running out of sync, try the latest driver and firmware (if you are using a full featured DVB card). - Switching channels with the Up/Down or Channel+/Channel- keys now works a lot faster when the repeat function kicks in, by not actually switching the channel every time, but rather only displaying the channel info and doing the final switch when the key is released. - The channel display is now updated _before_ the channel is switched. - Added a missing initialization of 'timeout' in the cDisplayChannel constructor. - Fixed detecting if there can be any useful further input when entering channel numbers (thanks to Thomas Bergwinkl). - Updated the Spanish OSD texts (thanks to Jesus Bravo Alvarez). - Fixed handling the '0' key for switching between the last two channels (thanks to Thomas Bergwinkl).
-rw-r--r--CONTRIBUTORS30
-rw-r--r--HISTORY38
-rw-r--r--channels.conf29
-rw-r--r--config.h6
-rw-r--r--epg.c334
-rw-r--r--fontosd-iso8859-2.c452
-rw-r--r--i18n.c779
-rw-r--r--keys.c12
-rw-r--r--menu.c181
-rw-r--r--menu.h5
-rw-r--r--menuitems.c53
-rw-r--r--menuitems.h4
-rw-r--r--recording.c6
-rw-r--r--recording.h6
-rw-r--r--tools.c30
-rw-r--r--tools.h10
-rw-r--r--transfer.c3
-rw-r--r--vdr.c31
18 files changed, 1111 insertions, 898 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index dadcf8c..5b460ca 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -936,6 +936,9 @@ Rolf Ahrenberg <rahrenbe@cc.hut.fi>
for reporting a bug in handling key macros with keys after @plugin
for adding compiler options "-fPIC -g" to all plugins
for adding a leading '0' to the day in the DayDateTime() function
+ for reporting a crash in the Schedule menu with events that have no title
+ for a patch that was used to implement automatic cursor advance when entering text
+ via the numeric keys
Ralf Klueber <ralf.klueber@vodafone.com>
for reporting a bug in cutting a recording if there is only a single editing mark
@@ -1154,11 +1157,14 @@ Andreas Regel <andreas.regel@gmx.de>
for reporting a problem with messages when a cOsdObject uses the raw OSD
for implementing palette replace mode in the OSD bitmaps
-Thomas Bergwinkl <Thomas.Bergwinkl@t-online.de>
+Thomas Bergwinkl <Thomas.Bergwinkl@vr-web.de>
for fixing the validity check for channel IDs, because some providers use TIDs
with value 0
for pointing out that transponder handling didn't work with satellites that provide
two transponders on the same frequency, with different polarization
+ for fixing detecting if there can be any useful further input when entering channel
+ numbers
+ for fixing handling the '0' key for switching between the last two channels
St�phane Est�-Gracias <sestegra@free.fr>
for fixing a typo in libsi/si.h
@@ -1655,3 +1661,25 @@ Andr� Weidemann <Andre.Weidemann@web.de>
J�rgen Schilling <juergen_schilling@web.de>
for reporting that color buttons were displayed in the recording info menu if it
has been invoked from a player
+
+Jesus Bravo Alvarez <jba@pobox.com>
+ for reporting a second place where a message should be given when an instant
+ recording is started
+ for updating the Spanish OSD texts
+
+Francois-Xavier Kowalski <francois-xavier.kowalski@hp.com>
+ for suggesting how to modify logging so that even on NPTL systems each line in
+ the log file shows the individual thread's pid
+
+Franz Gangkofer <Franz.Gangkofer@cadsoft.de>
+ for reporting a problem with @plugin in keymacros.conf in case the named plugin
+ is not loaded
+
+Malte Schr�der <MalteSch@gmx.de>
+ for reporting a crash after executing the SVDRP command CLRE
+
+Markus Hahn <mhahn@reel-multimedia.com>
+ for suggesting to only start recordings if there is at least 300MB free disk space
+
+Jaroslaw Swierczynski <swiergot@gmail.com>
+ for updating the Polish OSD texts and the fontosd-iso8859-2.c file
diff --git a/HISTORY b/HISTORY
index 3a657c0..18e5636 100644
--- a/HISTORY
+++ b/HISTORY
@@ -4189,3 +4189,41 @@ Video Disk Recorder Revision History
Ahrenberg).
- No longer displaying color buttons in the recording info menu if it has been
invoked from a player (reported by J�rgen Schilling).
+
+2006-01-22: Version 1.3.40
+
+- Fixed a second place where a message should be given when an instant recording
+ is started (reported by Jesus Bravo Alvarez).
+- Modified logging so that even on NPTL systems each line in the log file shows
+ the individual thread's pid (based on a suggestion from Francois-Xavier Kowalski).
+- Fixed a problem with @plugin in keymacros.conf in case the named plugin is not
+ loaded (reported by Franz Gangkofer).
+- Fixed a crash after executing the SVDRP command CLRE, caused by dangling 'schedule'
+ pointers from cChannel objects (reported by Malte Schr�der).
+- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
+- Improved NULL checking in strreplace().
+- Fixed a crash in the Schedule menu with events that have no title (reported by
+ Rolf Ahrenberg). cEvent::FixEpgBugs() now assigns a "No title" string to events
+ that have no title.
+- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
+- Recordings are now only started if there is at least 300MB free disk space
+ (suggested by Markus Hahn).
+- When entering text via the numeric keys, the cursor now automatically advances
+ (based on a patch from Rolf Ahrenberg).
+- Updated the Polish OSD texts and the fontosd-iso8859-2.c file (thanks to Jaroslaw
+ Swierczynski).
+- Disabled the "buffer reserve" in Transfer Mode. Last chance to complain if you
+ really need it - it will be completely removed in the next version. If you are
+ experiencing problems with a/v running out of sync, try the latest driver and
+ firmware (if you are using a full featured DVB card).
+- Switching channels with the Up/Down or Channel+/Channel- keys now works a lot
+ faster when the repeat function kicks in, by not actually switching the
+ channel every time, but rather only displaying the channel info and doing
+ the final switch when the key is released.
+- The channel display is now updated _before_ the channel is switched.
+- Added a missing initialization of 'timeout' in the cDisplayChannel constructor.
+- Fixed detecting if there can be any useful further input when entering channel
+ numbers (thanks to Thomas Bergwinkl).
+- Updated the Spanish OSD texts (thanks to Jesus Bravo Alvarez).
+- Fixed handling the '0' key for switching between the last two channels (thanks
+ to Thomas Bergwinkl).
diff --git a/channels.conf b/channels.conf
index c427628..e15663d 100644
--- a/channels.conf
+++ b/channels.conf
@@ -23,7 +23,7 @@ Super RTL,S RTL;RTL World:12187:hC34:S19.2E:27500:165:120=deu:65:0:12040:1:1089:
VOX;RTL World:12187:hC34:S19.2E:27500:167:136=deu:71:0:12060:1:1089:0
KABEL1;ProSiebenSat.1:12480:vC34:S19.2E:27500:511:512=deu:33:0:899:133:33:0
DAS VIERTE,D VIERTE;BetaDigital:12460:hC34:S19.2E:27500:2047:2048=deu:36:0:1793:133:5:0
-NEUN LIVE Television,NEUN LIVE;BetaDigital:12480:vC34:S19.2E:27500:767:768=deu:35:0:897:133:33:0
+9Live;BetaDigital:12480:vC34:S19.2E:27500:767:768=deu:35:0:897:133:33:0
DSF;BetaDigital:12480:vC34:S19.2E:27500:1023:1024=deu:39:0:900:133:33:0
HSE24,HSE24;BetaDigital:12480:vC34:S19.2E:27500:1279:1280=deu:37:0:40:133:33:0
Bloomberg TV Germany;Bloomberg:12551:vC56:S19.2E:22000:162:99=deu:0:0:12160:1:1108:0
@@ -46,7 +46,7 @@ rbb Berlin;ARD:12109:hC34:S19.2E:27500:601:602=deu:604:0:28206:1:1073:0
:Premiere World
PREMIERE START,START;PREMIERE:11797:hC34:S19.2E:27500:255:256=deu:32:1801,1722,1702:8:133:2:0
PREMIERE 1,PREM 1;PREMIERE:11797:hC34:S19.2E:27500:511:512=deu;515=deu:32:1801,1722,1702:10:133:2:0
-PREMIERE 2,PREM 2;PREMIERE:11797:hC34:S19.2E:27500:1791:1792=deu,1793=deu;1795=deu:32:1801,1722,1702:11:133:2:0
+PREMIERE 2,PREM 2;PREMIERE:11797:hC34:S19.2E:27500:1791:1792=deu;1795=deu:32:1801,1722,1702:11:133:2:0
PREMIERE 3,PREM 3;PREMIERE:11797:hC34:S19.2E:27500:2303:2304=deu,2305=deu:32:1722,1702,1801:43:133:2:0
PREMIERE 4,PREM 4;PREMIERE:11797:hC34:S19.2E:27500:767:768=deu,769=deu:32:1801,1722,1702:9:133:2:0
PREMIERE 5,PREM 5;PREMIERE:11797:hC34:S19.2E:27500:1279:1280=deu:32:1722,1702,1801:29:133:2:0
@@ -65,6 +65,7 @@ PREMIERE WIN,WIN;PREMIERE:12031:hC34:S19.2E:27500:3839:3840=deu:33:0:27:133:4:0
N24;ProSiebenSat.1:12480:vC34:S19.2E:27500:2047:2048=deu:36:0:47:133:33:0
LibertyTV FR;LibertyTV.com:12610:vC56:S19.2E:22000:941:943=deu:0:0:12199:1:1112:0
:-
+m�nchen.TV/RFO,m�TV/RFO;BetaDigital:12148:hC34:S19.2E:27500:495:496=deu:0:0:658:133:7:0
ProSieben Austria;ProSiebenSat.1:12051:vC34:S19.2E:27500:161:84=deu;85=deu:36:0:20002:1:1082:0
Kabel 1 Schweiz;ProSiebenSat.1:12051:vC34:S19.2E:27500:162:163=deu:165:0:20003:1:1082:0
Kabel 1 Austria;ProSiebenSat.1:12051:vC34:S19.2E:27500:166:167=deu:169:0:20004:1:1082:0
@@ -83,10 +84,26 @@ RTL TELE Letzebuerg:12551:vC56:S19.2E:22000:168:144=eng,146=fra,151=ltz:74:0:399
Nick/Talpa;CANALDIGITAAL:12574:hC56:S19.2E:22000:512+8190:84=dut:33:622,100:5010:53:1109:0
NICK;MTV Networks:12226:hC34:S19.2E:27500:513+8190:661=deu:577:0:28640:1:1091:0
MTV Central;MTV Networks:11739:vC34:S19.2E:27500:3031:3032:3034:0:28653:1:1066:0
-VIVA;VIVA Fernsehen GmbH & Co. KG:12669:vC56:S19.2E:22000:309:310=deu:311:0:12732:1:1116:0
-VIVA PLUS;VIVA Fernsehen GmbH & Co. KG:12551:vC56:S19.2E:22000:171:172=deu:173:0:12120:1:1108:0
+VIVA;MTV Networks:11973:vC34:S19.2E:27500:4061+8190:4062:4064:0:28676:1:1078:0
+VIVA PLUS;MTV Networks:11973:vC34:S19.2E:27500:4071+8190:4072:4074:0:28677:1:1078:0
QVC Deutschland;QVC:12551:vC56:S19.2E:22000:165:166:167:0:12100:1:1108:0
TELE 5;BetaDigital:12480:vC34:S19.2E:27500:1535:1536=deu:38:0:51:133:33:0
+:NTSC
+Venevision;T-Systems/MTI:11200:vC56:S13.0E:27500:922:923=und:0:0:4750:0:13400:0
+EBC.1;T-Systems/MTI:11200:vC56:S13.0E:27500:373:374=eng:0:0:4747:0:13400:0
+:HDTV
+HDFORUM;TF1:11242:vC34:S13.0E:27500:33:36=fra:0:0:13809:100:200:0
+HDFORUM;TF1:11242:vC34:S13.0E:27500:33:36=fra:0:0:13809:318:200:0
+Euro1080 HD-5;Euro1080:10758:vC78:S23.5E:22000:34:160=eng:0:0:1085:9999:3104:0
+Euro1080;EURO1080:12168:vC56:S19.2E:27500:308:256:0:0:21100:1:1088:0
+SMD HD;SES ASTRA:12699:vC56:S19.2E:22000:133+80:234=eng:0:0:29700:0:0:0
+SMD HD:12699:V:S19.2E:22000:133:234=eng:0:0:3231:1:1118:0
+Astra HD:12441:vC34:S19.2E:27500:133+80:134=eng:0:0:29700:0:0:0
+TV HD;CSAT:12581:vC56:S19.2E:22000:165:100=fra;101=fra:0:0:9306:1:1110:0
+C M HD;Telenor:11261:hC78:S1.0W:24500:517:660=eng;661=eng:0:B00:3306:70:33:0
+C MORE HD;Telenor:11389:hC78:S1.0W:24500:512:640;641=eng:0:B00:3306:70:34:0
+HELLAS-HDTV;Scopus Network Technologies:11642:hC34:S13.0E:27500:2201:2211=ell,2212=eng:0:0:2200:318:15700:0
+TPS Star:10757:vC34:S13.0E:27500:420:430=fra,431=eng:440:500,100:1204:176:11200:0
:@201 Sky
Sky One;BSkyB:12226:hC23:S28.2E:27500:515+8190:643=eng:579:960,961:4705:2:2027:0
Sky Two;BSkyB:12226:hC23:S28.2E:27500:514+8190:642=eng,662=NAR:578:960,961:5104:2:2027:0
@@ -115,10 +132,6 @@ S1T;BSkyB:12285:vC23:S28.2E:27500:513+8190:641=eng,661=NAR:577:960,961:4409:2:20
CNN;BSkyB:12051:vC23:S28.2E:27500:2313:2315=eng:2314:0:7140:2:2018:0
BBC PARL'MNT;BSkyB:10847:vC56:S28.2E:22000:2327:2328=eng:2331:0:6902:2:2050:0
IGLESIA MME;T-Systems/MTI:11200:vC56:S13.0E:27500:4097:4098:0:0:4733:318:13400:0
-Euro1080 HD-5;Euro1080:10758:vC78:S23.5E:22000:34:160=eng:0:0:1085:9999:3104:0
-Euro1080;EURO1080:12168:vC56:S19.2E:27500:308:256:0:0:21100:1:1088:0
-SMD HD;SES ASTRA:12699:vC56:S19.2E:22000:133+80:234=eng:0:0:29700:0:0:0
-Astra HD:12441:vC34:S19.2E:27500:133+80:134=eng:0:0:29700:0:0:0
eng-WRN-multi;WRN:12597:vC34:S13.0E:27500:0:2132:0:0:8230:318:9400:0
Challenger Tv;Telespazio:11304:hC34:S13.0E:27500:490:491:0:0:8409:318:500:0
TVS Teleport Bonn;DMV:11535:vC34:S1.0W:5632:308+8190:256=eng,257=eng:0:3:1:65535:1:0
diff --git a/config.h b/config.h
index 3d63ec6..03e4451 100644
--- a/config.h
+++ b/config.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: config.h 1.240 2006/01/13 15:17:19 kls Exp $
+ * $Id: config.h 1.241 2006/01/15 16:01:48 kls Exp $
*/
#ifndef __CONFIG_H
@@ -19,8 +19,8 @@
#include "i18n.h"
#include "tools.h"
-#define VDRVERSION "1.3.39"
-#define VDRVERSNUM 10339 // Version * 10000 + Major * 100 + Minor
+#define VDRVERSION "1.3.40"
+#define VDRVERSNUM 10340 // Version * 10000 + Major * 100 + Minor
#define MAXPRIORITY 99
#define MAXLIFETIME 99
diff --git a/epg.c b/epg.c
index 79c1176..384f86b 100644
--- a/epg.c
+++ b/epg.c
@@ -7,7 +7,7 @@
* Original version (as used in VDR before 1.3.0) written by
* Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>.
*
- * $Id: epg.c 1.49 2006/01/15 13:58:30 kls Exp $
+ * $Id: epg.c 1.51 2006/01/20 14:09:48 kls Exp $
*/
#include "epg.h"
@@ -422,197 +422,196 @@ void cEvent::FixEpgBugs(void)
strreplace(description, '\x86', ' ');
strreplace(description, '\x87', ' ');
+ if (!title) {
+ // we don't want any "(null)" titles
+ title = strcpyrealloc(title, tr("No title"));
+ EpgBugFixStat(12, ChannelID());
+ }
+
if (Setup.EPGBugfixLevel == 0)
return;
// Some TV stations apparently have their own idea about how to fill in the
// EPG data. Let's fix their bugs as good as we can:
- if (title) {
-
- // Some channels put the ShortText in quotes and use either the ShortText
- // or the Description field, depending on how long the string is:
- //
- // Title
- // "ShortText". Description
- //
- if ((shortText == NULL) != (description == NULL)) {
- char *p = shortText ? shortText : description;
- if (*p == '"') {
- const char *delim = "\".";
- char *e = strstr(p + 1, delim);
- if (e) {
- *e = 0;
- char *s = strdup(p + 1);
- char *d = strdup(e + strlen(delim));
- free(shortText);
- free(description);
- shortText = s;
- description = d;
- EpgBugFixStat(1, ChannelID());
- }
- }
- }
- // Some channels put the Description into the ShortText (preceded
- // by a blank) if there is no actual ShortText and the Description
- // is short enough:
- //
- // Title
- // Description
- //
- if (shortText && !description) {
- if (*shortText == ' ') {
- memmove(shortText, shortText + 1, strlen(shortText));
- description = shortText;
- shortText = NULL;
- EpgBugFixStat(2, ChannelID());
+ // Some channels put the ShortText in quotes and use either the ShortText
+ // or the Description field, depending on how long the string is:
+ //
+ // Title
+ // "ShortText". Description
+ //
+ if ((shortText == NULL) != (description == NULL)) {
+ char *p = shortText ? shortText : description;
+ if (*p == '"') {
+ const char *delim = "\".";
+ char *e = strstr(p + 1, delim);
+ if (e) {
+ *e = 0;
+ char *s = strdup(p + 1);
+ char *d = strdup(e + strlen(delim));
+ free(shortText);
+ free(description);
+ shortText = s;
+ description = d;
+ EpgBugFixStat(1, ChannelID());
}
}
+ }
- // Sometimes they repeat the Title in the ShortText:
- //
- // Title
- // Title
- //
- if (shortText && strcmp(title, shortText) == 0) {
- free(shortText);
+ // Some channels put the Description into the ShortText (preceded
+ // by a blank) if there is no actual ShortText and the Description
+ // is short enough:
+ //
+ // Title
+ // Description
+ //
+ if (shortText && !description) {
+ if (*shortText == ' ') {
+ memmove(shortText, shortText + 1, strlen(shortText));
+ description = shortText;
shortText = NULL;
- EpgBugFixStat(3, ChannelID());
+ EpgBugFixStat(2, ChannelID());
}
+ }
- // Some channels put the ShortText between double quotes, which is nothing
- // but annoying (some even put a '.' after the closing '"'):
- //
- // Title
- // "ShortText"[.]
- //
- if (shortText && *shortText == '"') {
- int l = strlen(shortText);
- if (l > 2 && (shortText[l - 1] == '"' || (shortText[l - 1] == '.' && shortText[l - 2] == '"'))) {
- memmove(shortText, shortText + 1, l);
- char *p = strrchr(shortText, '"');
- if (p)
- *p = 0;
- EpgBugFixStat(4, ChannelID());
- }
+ // Sometimes they repeat the Title in the ShortText:
+ //
+ // Title
+ // Title
+ //
+ if (shortText && strcmp(title, shortText) == 0) {
+ free(shortText);
+ shortText = NULL;
+ EpgBugFixStat(3, ChannelID());
+ }
+
+ // Some channels put the ShortText between double quotes, which is nothing
+ // but annoying (some even put a '.' after the closing '"'):
+ //
+ // Title
+ // "ShortText"[.]
+ //
+ if (shortText && *shortText == '"') {
+ int l = strlen(shortText);
+ if (l > 2 && (shortText[l - 1] == '"' || (shortText[l - 1] == '.' && shortText[l - 2] == '"'))) {
+ memmove(shortText, shortText + 1, l);
+ char *p = strrchr(shortText, '"');
+ if (p)
+ *p = 0;
+ EpgBugFixStat(4, ChannelID());
}
+ }
- if (Setup.EPGBugfixLevel <= 1)
- return;
+ if (Setup.EPGBugfixLevel <= 1)
+ return;
- // Some channels apparently try to do some formatting in the texts,
- // which is a bad idea because they have no way of knowing the width
- // of the window that will actually display the text.
- // Remove excess whitespace:
- title = compactspace(title);
- shortText = compactspace(shortText);
- description = compactspace(description);
+ // Some channels apparently try to do some formatting in the texts,
+ // which is a bad idea because they have no way of knowing the width
+ // of the window that will actually display the text.
+ // Remove excess whitespace:
+ title = compactspace(title);
+ shortText = compactspace(shortText);
+ description = compactspace(description);
#define MAX_USEFUL_EPISODE_LENGTH 40
- // Some channels put a whole lot of information in the ShortText and leave
- // the Description totally empty. So if the ShortText length exceeds
- // MAX_USEFUL_EPISODE_LENGTH, let's put this into the Description
- // instead:
- if (!isempty(shortText) && isempty(description)) {
- if (strlen(shortText) > MAX_USEFUL_EPISODE_LENGTH) {
- free(description);
- description = shortText;
- shortText = NULL;
- EpgBugFixStat(6, ChannelID());
- }
+ // Some channels put a whole lot of information in the ShortText and leave
+ // the Description totally empty. So if the ShortText length exceeds
+ // MAX_USEFUL_EPISODE_LENGTH, let's put this into the Description
+ // instead:
+ if (!isempty(shortText) && isempty(description)) {
+ if (strlen(shortText) > MAX_USEFUL_EPISODE_LENGTH) {
+ free(description);
+ description = shortText;
+ shortText = NULL;
+ EpgBugFixStat(6, ChannelID());
}
+ }
- // Some channels put the same information into ShortText and Description.
- // In that case we delete one of them:
- if (shortText && description && strcmp(shortText, description) == 0) {
- if (strlen(shortText) > MAX_USEFUL_EPISODE_LENGTH) {
- free(shortText);
- shortText = NULL;
- }
- else {
- free(description);
- description = NULL;
- }
- EpgBugFixStat(7, ChannelID());
+ // Some channels put the same information into ShortText and Description.
+ // In that case we delete one of them:
+ if (shortText && description && strcmp(shortText, description) == 0) {
+ if (strlen(shortText) > MAX_USEFUL_EPISODE_LENGTH) {
+ free(shortText);
+ shortText = NULL;
+ }
+ else {
+ free(description);
+ description = NULL;
}
+ EpgBugFixStat(7, ChannelID());
+ }
- // Some channels use the ` ("backtick") character, where a ' (single quote)
- // would be normally used. Actually, "backticks" in normal text don't make
- // much sense, so let's replace them:
- strreplace(title, '`', '\'');
- strreplace(shortText, '`', '\'');
- strreplace(description, '`', '\'');
+ // Some channels use the ` ("backtick") character, where a ' (single quote)
+ // would be normally used. Actually, "backticks" in normal text don't make
+ // much sense, so let's replace them:
+ strreplace(title, '`', '\'');
+ strreplace(shortText, '`', '\'');
+ strreplace(description, '`', '\'');
- if (Setup.EPGBugfixLevel <= 2)
- return;
+ if (Setup.EPGBugfixLevel <= 2)
+ return;
- // The stream components have a "description" field which some channels
- // apparently have no idea of how to set correctly:
- if (components) {
- for (int i = 0; i < components->NumComponents(); i++) {
- tComponent *p = components->Component(i);
- switch (p->stream) {
- case 0x01: { // video
- if (p->description) {
- if (strcasecmp(p->description, "Video") == 0 ||
- strcasecmp(p->description, "Bildformat") == 0) {
- // Yes, we know it's video - that's what the 'stream' code
- // is for! But _which_ video is it?
- free(p->description);
- p->description = NULL;
- EpgBugFixStat(8, ChannelID());
- }
- }
- if (!p->description) {
- switch (p->type) {
- case 0x01:
- case 0x05: p->description = strdup("4:3"); break;
- case 0x02:
- case 0x03:
- case 0x06:
- case 0x07: p->description = strdup("16:9"); break;
- case 0x04:
- case 0x08: p->description = strdup(">16:9"); break;
- case 0x09:
- case 0x0D: p->description = strdup("HD 4:3"); break;
- case 0x0A:
- case 0x0B:
- case 0x0E:
- case 0x0F: p->description = strdup("HD 16:9"); break;
- case 0x0C:
- case 0x10: p->description = strdup("HD >16:9"); break;
- }
- EpgBugFixStat(9, ChannelID());
+ // The stream components have a "description" field which some channels
+ // apparently have no idea of how to set correctly:
+ if (components) {
+ for (int i = 0; i < components->NumComponents(); i++) {
+ tComponent *p = components->Component(i);
+ switch (p->stream) {
+ case 0x01: { // video
+ if (p->description) {
+ if (strcasecmp(p->description, "Video") == 0 ||
+ strcasecmp(p->description, "Bildformat") == 0) {
+ // Yes, we know it's video - that's what the 'stream' code
+ // is for! But _which_ video is it?
+ free(p->description);
+ p->description = NULL;
+ EpgBugFixStat(8, ChannelID());
}
}
- break;
- case 0x02: { // audio
- if (p->description) {
- if (strcasecmp(p->description, "Audio") == 0) {
- // Yes, we know it's audio - that's what the 'stream' code
- // is for! But _which_ audio is it?
- free(p->description);
- p->description = NULL;
- EpgBugFixStat(10, ChannelID());
- }
- }
- if (!p->description) {
- switch (p->type) {
- case 0x05: p->description = strdup("Dolby Digital"); break;
- // all others will just display the language
- }
- EpgBugFixStat(11, ChannelID());
+ if (!p->description) {
+ switch (p->type) {
+ case 0x01:
+ case 0x05: p->description = strdup("4:3"); break;
+ case 0x02:
+ case 0x03:
+ case 0x06:
+ case 0x07: p->description = strdup("16:9"); break;
+ case 0x04:
+ case 0x08: p->description = strdup(">16:9"); break;
+ case 0x09:
+ case 0x0D: p->description = strdup("HD 4:3"); break;
+ case 0x0A:
+ case 0x0B:
+ case 0x0E:
+ case 0x0F: p->description = strdup("HD 16:9"); break;
+ case 0x0C:
+ case 0x10: p->description = strdup("HD >16:9"); break;
+ }
+ EpgBugFixStat(9, ChannelID());
+ }
+ }
+ break;
+ case 0x02: { // audio
+ if (p->description) {
+ if (strcasecmp(p->description, "Audio") == 0) {
+ // Yes, we know it's audio - that's what the 'stream' code
+ // is for! But _which_ audio is it?
+ free(p->description);
+ p->description = NULL;
+ EpgBugFixStat(10, ChannelID());
}
}
- break;
- }
- }
- }
- }
- else {
- // we don't want any "(null)" titles
- title = strcpyrealloc(title, tr("No title"));
- EpgBugFixStat(12, ChannelID());
+ if (!p->description) {
+ switch (p->type) {
+ case 0x05: p->description = strdup("Dolby Digital"); break;
+ // all others will just display the language
+ }
+ EpgBugFixStat(11, ChannelID());
+ }
+ }
+ break;
+ }
+ }
}
}
@@ -935,7 +934,10 @@ bool cSchedules::ClearAll(void)
cSchedulesLock SchedulesLock(true, 1000);
cSchedules *s = (cSchedules *)Schedules(SchedulesLock);
if (s) {
- s->Clear();
+ for (cTimer *Timer = Timers.First(); Timer; Timer = Timers.Next(Timer))
+ Timer->SetEvent(NULL);
+ for (cSchedule *Schedule = s->First(); Schedule; Schedule = s->Next(Schedule))
+ Schedule->Cleanup(INT_MAX);
return true;
}
return false;
diff --git a/fontosd-iso8859-2.c b/fontosd-iso8859-2.c
index 979c902..e61e9a8 100644
--- a/fontosd-iso8859-2.c
+++ b/fontosd-iso8859-2.c
@@ -3948,23 +3948,23 @@ cFont::tPixelData FontOsd_iso8859_2[][29] = {
0x00000000, // .............
0x00000000, // .............
0x00000000, // .............
- 0x000001F0, // ....*****....
- 0x000003F8, // ...*******...
- 0x0000071C, // ..***...***..
- 0x00000C0C, // .**......**..
- 0x00000C06, // .**.......**.
- 0x00000C06, // .**.......**.
- 0x00000E00, // .***.........
- 0x00000700, // ..***........
+ 0x00000600, // ..**.........
+ 0x00000600, // ..**.........
+ 0x00000600, // ..**.........
+ 0x00000600, // ..**.........
+ 0x00000600, // ..**.........
+ 0x00000600, // ..**.........
+ 0x00000600, // ..**.........
+ 0x00000600, // ..**.........
+ 0x00000FE0, // .*******.....
0x00000FE0, // .*******.....
- 0x00000FA0, // .*****.*.....
- 0x00000380, // ...***.......
- 0x00000180, // ....**.......
- 0x00000180, // ....**.......
- 0x00000300, // ...**........
0x00000600, // ..**.........
- 0x00000FFE, // .***********.
- 0x00000FFC, // .**********..
+ 0x00000600, // ..**.........
+ 0x00000600, // ..**.........
+ 0x00000600, // ..**.........
+ 0x00000600, // ..**.........
+ 0x000007FE, // ..**********.
+ 0x000007FE, // ..**********.
0x00000000, // .............
0x00000000, // .............
0x00000000, // .............
@@ -4032,34 +4032,34 @@ cFont::tPixelData FontOsd_iso8859_2[][29] = {
0x00000000, // .............
},
{ // 166
- 6, 27,
- 0x00000000, // ......
- 0x00000000, // ......
- 0x00000000, // ......
- 0x00000000, // ......
- 0x00000000, // ......
- 0x0000000C, // ..**..
- 0x0000000C, // ..**..
- 0x0000000C, // ..**..
- 0x0000000C, // ..**..
- 0x0000000C, // ..**..
- 0x0000000C, // ..**..
- 0x0000000C, // ..**..
- 0x0000000C, // ..**..
- 0x0000000C, // ..**..
- 0x00000000, // ......
- 0x00000000, // ......
- 0x00000000, // ......
- 0x00000000, // ......
- 0x0000000C, // ..**..
- 0x0000000C, // ..**..
- 0x0000000C, // ..**..
- 0x0000000C, // ..**..
- 0x0000000C, // ..**..
- 0x0000000C, // ..**..
- 0x0000000C, // ..**..
- 0x0000000C, // ..**..
- 0x0000000C, // ..**..
+ 15, 27,
+ 0x00000070, // ........***....
+ 0x000000E0, // .......***.....
+ 0x000001C0, // ......***......
+ 0x00000380, // .....***.......
+ 0x00000000, // ...............
+ 0x000003E0, // .....*****.....
+ 0x00000FF8, // ...*********...
+ 0x00000C1C, // ...**.....***..
+ 0x0000180C, // ..**.......**..
+ 0x00001804, // ..**........*..
+ 0x00001800, // ..**...........
+ 0x00001C00, // ..***..........
+ 0x00000F80, // ...*****.......
+ 0x000007F8, // ....********...
+ 0x0000007C, // ........*****..
+ 0x0000000E, // ...........***.
+ 0x00000006, // ............**.
+ 0x00003006, // .**.........**.
+ 0x00001806, // ..**........**.
+ 0x0000180C, // ..**.......**..
+ 0x00000FF8, // ...*********...
+ 0x000007F0, // ....*******....
+ 0x00000000, // ...............
+ 0x00000000, // ...............
+ 0x00000000, // ...............
+ 0x00000000, // ...............
+ 0x00000000, // ...............
},
{ // 167
13, 27,
@@ -4212,34 +4212,34 @@ cFont::tPixelData FontOsd_iso8859_2[][29] = {
0x00000000, // ..............
},
{ // 172
- 13, 27,
- 0x00000000, // .............
- 0x00000000, // .............
- 0x00000000, // .............
- 0x00000000, // .............
- 0x00000000, // .............
- 0x00000000, // .............
- 0x00000000, // .............
- 0x00000000, // .............
- 0x00000000, // .............
- 0x00000000, // .............
- 0x00000000, // .............
- 0x00000000, // .............
- 0x00000000, // .............
- 0x00000FFF, // .************
- 0x00000FFF, // .************
- 0x00000003, // ...........**
- 0x00000003, // ...........**
- 0x00000003, // ...........**
- 0x00000003, // ...........**
- 0x00000003, // ...........**
- 0x00000000, // .............
- 0x00000000, // .............
- 0x00000000, // .............
- 0x00000000, // .............
- 0x00000000, // .............
- 0x00000000, // .............
- 0x00000000, // .............
+ 14, 27,
+ 0x00000000, // ..............
+ 0x00000030, // ........**....
+ 0x00000060, // .......**.....
+ 0x000000C0, // ......**......
+ 0x00000000, // ..............
+ 0x00001FFE, // .************.
+ 0x00001FFE, // .************.
+ 0x0000000E, // ..........***.
+ 0x0000000C, // ..........**..
+ 0x0000001C, // .........***..
+ 0x00000038, // ........***...
+ 0x00000070, // .......***....
+ 0x000000E0, // ......***.....
+ 0x000000C0, // ......**......
+ 0x000001C0, // .....***......
+ 0x00000380, // ....***.......
+ 0x00000700, // ...***........
+ 0x00000600, // ...**.........
+ 0x00000E00, // ..***.........
+ 0x00001C00, // .***..........
+ 0x00001FFE, // .************.
+ 0x00001FFE, // .************.
+ 0x00000000, // ..............
+ 0x00000000, // ..............
+ 0x00000000, // ..............
+ 0x00000000, // ..............
+ 0x00000000, // ..............
},
{ // 173
8, 27,
@@ -4302,34 +4302,34 @@ cFont::tPixelData FontOsd_iso8859_2[][29] = {
0x00000000, // ..............
},
{ // 175
- 8, 27,
- 0x00000000, // ........
- 0x00000000, // ........
- 0x00000000, // ........
- 0x00000000, // ........
- 0x00000000, // ........
- 0x00000000, // ........
- 0x0000007E, // .******.
- 0x0000007E, // .******.
- 0x00000000, // ........
- 0x00000000, // ........
- 0x00000000, // ........
- 0x00000000, // ........
- 0x00000000, // ........
- 0x00000000, // ........
- 0x00000000, // ........
- 0x00000000, // ........
- 0x00000000, // ........
- 0x00000000, // ........
- 0x00000000, // ........
- 0x00000000, // ........
- 0x00000000, // ........
- 0x00000000, // ........
- 0x00000000, // ........
- 0x00000000, // ........
- 0x00000000, // ........
- 0x00000000, // ........
- 0x00000000, // ........
+ 14, 27,
+ 0x00000000, // ..............
+ 0x00000000, // ..............
+ 0x000000C0, // ......**......
+ 0x000000C0, // ......**......
+ 0x00000000, // ..............
+ 0x00001FFE, // .************.
+ 0x00001FFE, // .************.
+ 0x0000000E, // ..........***.
+ 0x0000000C, // ..........**..
+ 0x0000001C, // .........***..
+ 0x00000038, // ........***...
+ 0x00000070, // .......***....
+ 0x000000E0, // ......***.....
+ 0x000000C0, // ......**......
+ 0x000001C0, // .....***......
+ 0x00000380, // ....***.......
+ 0x00000700, // ...***........
+ 0x00000600, // ...**.........
+ 0x00000E00, // ..***.........
+ 0x00001C00, // .***..........
+ 0x00001FFE, // .************.
+ 0x00001FFE, // .************.
+ 0x00000000, // ..............
+ 0x00000000, // ..............
+ 0x00000000, // ..............
+ 0x00000000, // ..............
+ 0x00000000, // ..............
},
{ // 176
14, 27,
@@ -4371,23 +4371,23 @@ cFont::tPixelData FontOsd_iso8859_2[][29] = {
0x00000000, // .............
0x00000000, // .............
0x00000000, // .............
- 0x00000060, // ......**.....
- 0x00000060, // ......**.....
- 0x00000060, // ......**.....
- 0x00000060, // ......**.....
- 0x00000FFE, // .***********.
- 0x00000FFE, // .***********.
- 0x00000060, // ......**.....
- 0x00000060, // ......**.....
- 0x00000060, // ......**.....
- 0x00000060, // ......**.....
- 0x00000060, // ......**.....
- 0x00000000, // .............
- 0x00000FFE, // .***********.
- 0x00000FFE, // .***********.
- 0x00000000, // .............
0x00000000, // .............
0x00000000, // .............
+ 0x000001F0, // ....*****....
+ 0x000007FC, // ..*********..
+ 0x0000060C, // ..**.....**..
+ 0x0000040C, // ..*......**..
+ 0x0000000C, // .........**..
+ 0x000001FC, // ....*******..
+ 0x000007CC, // ..*****..**..
+ 0x00000E0C, // .***.....**..
+ 0x00000C0C, // .**......**..
+ 0x00000C1C, // .**.....***..
+ 0x00000FFE, // .***********.
+ 0x000003EE, // ...*****.***.
+ 0x0000000E, // .........***.
+ 0x0000000E, // .........***.
+ 0x00000006, // ..........**.
0x00000000, // .............
0x00000000, // .............
},
@@ -4428,23 +4428,23 @@ cFont::tPixelData FontOsd_iso8859_2[][29] = {
0x00000000, // ........
0x00000000, // ........
0x00000000, // ........
- 0x00000000, // ........
- 0x0000003C, // ..****..
- 0x0000007E, // .******.
- 0x00000046, // .*...**.
- 0x00000006, // .....**.
- 0x0000001C, // ...***..
- 0x00000006, // .....**.
- 0x00000003, // ......**
- 0x000000C3, // **....**
- 0x0000007E, // .******.
+ 0x00000030, // ..**....
+ 0x00000030, // ..**....
+ 0x00000030, // ..**....
+ 0x00000030, // ..**....
+ 0x00000030, // ..**....
+ 0x00000030, // ..**....
+ 0x0000001E, // ...****.
0x0000003C, // ..****..
- 0x00000000, // ........
- 0x00000000, // ........
- 0x00000000, // ........
- 0x00000000, // ........
- 0x00000000, // ........
- 0x00000000, // ........
+ 0x00000070, // .***....
+ 0x00000030, // ..**....
+ 0x00000030, // ..**....
+ 0x00000030, // ..**....
+ 0x00000030, // ..**....
+ 0x00000030, // ..**....
+ 0x00000030, // ..**....
+ 0x00000030, // ..**....
+ 0x00000030, // ..**....
0x00000000, // ........
0x00000000, // ........
0x00000000, // ........
@@ -4518,27 +4518,27 @@ cFont::tPixelData FontOsd_iso8859_2[][29] = {
0x00000000, // ............
0x00000000, // ............
0x00000000, // ............
- 0x000000FF, // ....********
- 0x000001FF, // ...*********
- 0x000003F6, // ..******.**.
- 0x000003F6, // ..******.**.
- 0x000007F6, // .*******.**.
- 0x000007F6, // .*******.**.
- 0x000007F6, // .*******.**.
- 0x000007F6, // .*******.**.
- 0x000003F6, // ..******.**.
- 0x000003F6, // ..******.**.
- 0x000000F6, // ....****.**.
- 0x00000036, // ......**.**.
- 0x00000036, // ......**.**.
- 0x00000036, // ......**.**.
- 0x00000036, // ......**.**.
- 0x00000036, // ......**.**.
- 0x00000036, // ......**.**.
- 0x00000036, // ......**.**.
- 0x00000036, // ......**.**.
- 0x00000036, // ......**.**.
- 0x00000036, // ......**.**.
+ 0x00000030, // ......**....
+ 0x00000060, // .....**.....
+ 0x000000C0, // ....**......
+ 0x00000000, // ............
+ 0x00000000, // ............
+ 0x000001F8, // ...******...
+ 0x000003FC, // ..********..
+ 0x0000060C, // .**.....**..
+ 0x00000600, // .**.........
+ 0x00000700, // .***........
+ 0x000003F0, // ..******....
+ 0x000000FC, // ....******..
+ 0x0000000E, // ........***.
+ 0x00000606, // .**......**.
+ 0x00000606, // .**......**.
+ 0x000007FC, // .*********..
+ 0x000001F8, // ...******...
+ 0x00000000, // ............
+ 0x00000000, // ............
+ 0x00000000, // ............
+ 0x00000000, // ............
0x00000000, // ............
},
{ // 183
@@ -4692,34 +4692,34 @@ cFont::tPixelData FontOsd_iso8859_2[][29] = {
0x00000000, // .......
},
{ // 188
- 20, 27,
- 0x00000000, // ....................
- 0x00000000, // ....................
- 0x00000000, // ....................
- 0x00000000, // ....................
- 0x00000000, // ....................
- 0x00000000, // ....................
- 0x00018030, // ...**.........**....
- 0x00038020, // ..***.........*.....
- 0x00078040, // .****........*......
- 0x000180C0, // ...**.......**......
- 0x00018180, // ...**......**.......
- 0x00018100, // ...**......*........
- 0x0001830C, // ...**.....**....**..
- 0x0001860C, // ...**....**.....**..
- 0x0001861C, // ...**....**....***..
- 0x00000C3C, // ........**....****..
- 0x0000186C, // .......**....**.**..
- 0x0000384C, // ......***....*..**..
- 0x000030FF, // ......**....********
- 0x000060FF, // .....**.....********
- 0x0000E00C, // ....***.........**..
- 0x0000C004, // ....**...........*..
- 0x00000000, // ....................
- 0x00000000, // ....................
- 0x00000000, // ....................
- 0x00000000, // ....................
- 0x00000000, // ....................
+ 12, 27,
+ 0x00000000, // ............
+ 0x00000000, // ............
+ 0x00000000, // ............
+ 0x00000000, // ............
+ 0x00000000, // ............
+ 0x00000030, // ......**....
+ 0x00000060, // .....**.....
+ 0x000000C0, // ....**......
+ 0x00000000, // ............
+ 0x00000000, // ............
+ 0x000007FC, // .*********..
+ 0x000007FC, // .*********..
+ 0x00000018, // .......**...
+ 0x00000018, // .......**...
+ 0x00000030, // ......**....
+ 0x00000060, // .....**.....
+ 0x000000C0, // ....**......
+ 0x00000180, // ...**.......
+ 0x00000300, // ..**........
+ 0x00000600, // .**.........
+ 0x000007FE, // .**********.
+ 0x000007FE, // .**********.
+ 0x00000000, // ............
+ 0x00000000, // ............
+ 0x00000000, // ............
+ 0x00000000, // ............
+ 0x00000000, // ............
},
{ // 189
20, 27,
@@ -4782,34 +4782,34 @@ cFont::tPixelData FontOsd_iso8859_2[][29] = {
0x00000000, // ............
},
{ // 191
- 14, 27,
- 0x00000000, // ..............
- 0x00000000, // ..............
- 0x00000000, // ..............
- 0x00000000, // ..............
- 0x00000000, // ..............
- 0x00000000, // ..............
- 0x00000000, // ..............
- 0x00000000, // ..............
- 0x00000000, // ..............
- 0x00000000, // ..............
- 0x000000C0, // ......**......
- 0x000000C0, // ......**......
- 0x00000000, // ..............
- 0x00000000, // ..............
- 0x00000000, // ..............
- 0x000000C0, // ......**......
- 0x000000C0, // ......**......
- 0x000001C0, // .....***......
- 0x00000380, // ....***.......
- 0x00000700, // ...***........
- 0x00000600, // ...**.........
- 0x00000C00, // ..**..........
- 0x00000C0C, // ..**......**..
- 0x00000C0C, // ..**......**..
- 0x00000E1C, // ..***....***..
- 0x000007F8, // ...********...
- 0x000003E0, // ....*****.....
+ 12, 27,
+ 0x00000000, // ............
+ 0x00000000, // ............
+ 0x00000000, // ............
+ 0x00000000, // ............
+ 0x00000000, // ............
+ 0x00000000, // ............
+ 0x00000060, // .....**.....
+ 0x00000060, // .....**.....
+ 0x00000000, // ............
+ 0x00000000, // ............
+ 0x000007FC, // .*********..
+ 0x000007FC, // .*********..
+ 0x00000018, // .......**...
+ 0x00000018, // .......**...
+ 0x00000030, // ......**....
+ 0x00000060, // .....**.....
+ 0x000000C0, // ....**......
+ 0x00000180, // ...**.......
+ 0x00000300, // ..**........
+ 0x00000600, // .**.........
+ 0x000007FE, // .**********.
+ 0x000007FE, // .**********.
+ 0x00000000, // ............
+ 0x00000000, // ............
+ 0x00000000, // ............
+ 0x00000000, // ............
+ 0x00000000, // ............
},
{ // 192
15, 27,
@@ -5113,10 +5113,10 @@ cFont::tPixelData FontOsd_iso8859_2[][29] = {
},
{ // 202
15, 27,
- 0x000000C0, // .......**......
- 0x000001E0, // ......****.....
- 0x00000320, // .....**..*.....
- 0x00000230, // .....*...**....
+ 0x00000000, // ...............
+ 0x00000000, // ...............
+ 0x00000000, // ...............
+ 0x00000000, // ...............
0x00000000, // ...............
0x00001FFE, // ..************.
0x00001FFE, // ..************.
@@ -5135,9 +5135,9 @@ cFont::tPixelData FontOsd_iso8859_2[][29] = {
0x00001800, // ..**...........
0x00001FFE, // ..************.
0x00001FFE, // ..************.
- 0x00000000, // ...............
- 0x00000000, // ...............
- 0x00000000, // ...............
+ 0x00000006, // ............**.
+ 0x00000006, // ............**.
+ 0x00000006, // ............**.
0x00000000, // ...............
0x00000000, // ...............
},
@@ -5323,10 +5323,10 @@ cFont::tPixelData FontOsd_iso8859_2[][29] = {
},
{ // 209
17, 27,
- 0x00000000, // .................
- 0x00000760, // ......***.**.....
- 0x00000FE0, // .....*******.....
+ 0x00000070, // ..........***....
+ 0x00000060, // ..........**.....
0x000000C0, // .........**......
+ 0x00000180, // ........**.......
0x00000000, // .................
0x0000600C, // ..**.........**..
0x0000700C, // ..***........**..
@@ -6078,9 +6078,9 @@ cFont::tPixelData FontOsd_iso8859_2[][29] = {
0x00000000, // .............
0x00000000, // .............
0x00000000, // .............
- 0x000000E0, // .....***.....
- 0x000000B0, // .....*.**....
- 0x00000190, // ....**..*....
+ 0x00000000, // .............
+ 0x00000000, // .............
+ 0x00000000, // .............
0x00000000, // .............
0x00000000, // .............
0x000001F0, // ....*****....
@@ -6095,9 +6095,9 @@ cFont::tPixelData FontOsd_iso8859_2[][29] = {
0x0000060C, // ..**.....**..
0x000007F8, // ..********...
0x000001F0, // ....*****....
- 0x00000000, // .............
- 0x00000000, // .............
- 0x00000000, // .............
+ 0x00000038, // .......***...
+ 0x00000070, // ......***....
+ 0x00000038, // .......***...
0x00000000, // .............
0x00000000, // .............
},
@@ -6288,9 +6288,9 @@ cFont::tPixelData FontOsd_iso8859_2[][29] = {
0x00000000, // .............
0x00000000, // .............
0x00000000, // .............
- 0x00000180, // ....**.......
- 0x000003F8, // ...*******...
- 0x00000270, // ...*..***....
+ 0x0000000C, // .........**..
+ 0x00000018, // ........**...
+ 0x00000030, // .......**....
0x00000000, // .............
0x00000000, // .............
0x000004F8, // ..*..*****...
diff --git a/i18n.c b/i18n.c
index 4080fd1..1bd20da 100644
--- a/i18n.c
+++ b/i18n.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: i18n.c 1.235 2006/01/15 12:22:15 kls Exp $
+ * $Id: i18n.c 1.240 2006/01/22 15:55:28 kls Exp $
*
* Translations provided by:
*
@@ -15,8 +15,8 @@
* French Jean-Claude Repetto <jc@repetto.org>, Olivier Jacques <jacquesolivier@hotmail.com>, Gregoire Favre <greg@magma.unil.ch>, Nicolas Huillard <nhuillard@e-dition.fr>
* Norwegian J�rgen Tvedt <pjtvedt@online.no>, Truls Slevigen <truls@slevigen.no>
* Finnish Hannu Savolainen <hannu@opensound.com>, Jaakko Hyv�tti <jaakko@hyvatti.iki.fi>, Niko Tarnanen <niko.tarnanen@hut.fi>, Rolf Ahrenberg <rahrenbe@cc.hut.fi>
- * Polish Michael Rakowski <mrak@gmx.de>
- * Spanish Ruben Nunez Francisco <ruben.nunez@tang-it.com>
+ * Polish Michael Rakowski <mrak@gmx.de>, Jaroslaw Swierczynski <swiergot@gmail.com>
+ * Spanish Ruben Nunez Francisco <ruben.nunez@tang-it.com>, Jesus Bravo Alvarez <jba@pobox.com>
* Greek Dimitrios Dimitrakos <mail@dimitrios.de>
* Swedish Tomas Prybil <tomas@prybil.se>, Jan Ekholm <chakie@infa.abo.fi>
* Romanian Paul Lacatus <paul@campina.iiruc.ro>, Lucian Muresan <lucianm@users.sourceforge.net>
@@ -112,8 +112,8 @@ const tI18nPhrase Phrases[] = {
"iso8859-1",
"iso8859-1",
"iso8859-15",
- "iso8859-1",
- "iso8859-1",
+ "iso8859-2",
+ "iso8859-15",
"iso8859-7",
"iso8859-1",
"iso8859-2",
@@ -198,7 +198,7 @@ const tI18nPhrase Phrases[] = {
"Cha�nes",
"Kanaler",
"Kanavat",
- "Kanaly",
+ "Kana�y",
"Canales",
"�������",
"Kanaler",
@@ -220,7 +220,7 @@ const tI18nPhrase Phrases[] = {
"Timere",
"Ajastimet",
"Timery",
- "Timer",
+ "Programar grabaciones",
"��������������������",
"Timers",
"Timer-e",
@@ -261,8 +261,8 @@ const tI18nPhrase Phrases[] = {
"Infos sur l'enregistrement",
"",// TODO
"Tallenteen tiedot",
- "",// TODO
- "",// TODO
+ "Informacje o nagraniu",
+ "Informaci�n de grabaci�n",
"����������� E�������",
"Inspelning",
"Detaliile �nregistr�rii",
@@ -282,7 +282,7 @@ const tI18nPhrase Phrases[] = {
"Configuration",
"Konfigurasjon",
"Asetukset",
- "Nastawy",
+ "Ustawienia",
"Configuraci�n",
"���������",
"Inst�llningar",
@@ -303,7 +303,7 @@ const tI18nPhrase Phrases[] = {
"Commandes",
"Kommandoer",
"Komennot",
- "Rozkazy",
+ "Polecenia",
"�rdenes",
"�������",
"Kommandon",
@@ -324,7 +324,7 @@ const tI18nPhrase Phrases[] = {
"Commandes d'enregistrement",
"",// TODO
"Tallennekomennot",
- "Rozkazy Nagran",
+ "Polecenia nagra�",
"�rdenes de grabaci�n",
"������� ��� ��������",
"Inspelningskommandon",
@@ -345,7 +345,7 @@ const tI18nPhrase Phrases[] = {
"Modifier une cha�ne",
"Editer kanal",
"Muokkaa kanavaa",
- "Ustawienie kanalu",
+ "Edycja kana�u",
"Modificar canal",
"����������� ��������",
"�ndra kanal",
@@ -366,8 +366,8 @@ const tI18nPhrase Phrases[] = {
"Changer la programmation",
"Editer timer",
"Muokkaa ajastinta",
- "Ustawienie timerow",
- "Modificar timer",
+ "Edycja timera",
+ "Modificar programaci�n",
"����������� ��������������������",
"�ndra timer",
"Modificare timer",
@@ -408,8 +408,8 @@ const tI18nPhrase Phrases[] = {
"Info",
"",//TODO
"Tiedot",
- "",//TODO
- "",//TODO
+ "Info",
+ "Info",
"�����������",
"Info",
"Info",
@@ -430,7 +430,7 @@ const tI18nPhrase Phrases[] = {
"Program Guide - %s",
"Ohjelmisto - %s",
"Program - %s",
- "Programa - %s",
+ "Gu�a de programaci�n - %s",
"��������� - %s",
"Program - %s",
"Programul canalului %s",
@@ -438,7 +438,7 @@ const tI18nPhrase Phrases[] = {
"Guia de Programaci� - %s",
"��������� - %s",
"Raspored - %s",
- "Programm - %s",
+ "Ajakava - %s",
"Program - %s",
},
{ "This event - %s",
@@ -449,17 +449,17 @@ const tI18nPhrase Phrases[] = {
"",//TODO
"",//TODO
"",//TODO
+ "T�m� tapahtuma - %s",
"",//TODO
+ "Este evento - %s",
"",//TODO
+ "Ta audycja - %s",
"",//TODO
"",//TODO
"",//TODO
"",//TODO
"",//TODO
- "",//TODO
- "",//TODO
- "",//TODO
- "",//TODO
+ "See s�ndmus - %s",
"",//TODO
},
{ "This event - all channels",
@@ -470,17 +470,17 @@ const tI18nPhrase Phrases[] = {
"",//TODO
"",//TODO
"",//TODO
+ "T�m� tapahtuma - kaikki kanavat",
"",//TODO
+ "Este evento - todos los canales",
"",//TODO
+ "Ta audycja - wszystkie kana�y",
"",//TODO
"",//TODO
"",//TODO
"",//TODO
"",//TODO
- "",//TODO
- "",//TODO
- "",//TODO
- "",//TODO
+ "See s�ndmus - k�ik kanalid",
"",//TODO
},
{ "All events - all channels",
@@ -491,17 +491,17 @@ const tI18nPhrase Phrases[] = {
"",//TODO
"",//TODO
"",//TODO
+ "Kaikki tapahtumat - kaikki kanavat",
"",//TODO
+ "Todos los eventos - todos los canales",
"",//TODO
+ "Wszystkie audycje - wszystkie kana�y",
"",//TODO
"",//TODO
"",//TODO
"",//TODO
"",//TODO
- "",//TODO
- "",//TODO
- "",//TODO
- "",//TODO
+ "K�ik s�ndmused - k�ik kanalid",
"",//TODO
},
{ "What's on now?",
@@ -513,7 +513,7 @@ const tI18nPhrase Phrases[] = {
"Programmes en cours",
"Hvilket program sendes n�?",
"Menossa nyt",
- "Program biezacy",
+ "Program bie��cy",
"�Qu� hay ahora?",
"������ ���������",
"Vad s�nds nu?",
@@ -534,8 +534,8 @@ const tI18nPhrase Phrases[] = {
"Prochains programmes",
"Hvilket program er neste?",
"Tulossa seuraavaksi",
- "Program nastepny",
- "�Qu� hay proximo?",
+ "Nast�pne audycje",
+ "�Qu� hay despu�s?",
"������� ���������",
"Vilket �r n�sta program?",
"Ce emisiuni urmeaz�?",
@@ -555,7 +555,7 @@ const tI18nPhrase Phrases[] = {
"R�sum�",
"Sammendrag",
"Yhteenveto",
- "Zawartosc",
+ "Podsumowanie",
"Resumen",
"�����������",
"Sammanfattning",
@@ -564,7 +564,7 @@ const tI18nPhrase Phrases[] = {
"Resum",
"��������",
"Sadr�aj",
- "Kokkuv�te",
+ "�levaade",
"Omtale",
},
// Button texts (should not be more than 10 characters!):
@@ -577,7 +577,7 @@ const tI18nPhrase Phrases[] = {
"Modifier",
"Editer",
"Muokkaa",
- "Edycja",
+ "Edytuj",
"Modificar",
"����������",
"�ndra",
@@ -619,7 +619,7 @@ const tI18nPhrase Phrases[] = {
"Supprimer",
"Slett",
"Poista",
- "Usunac",
+ "Usu�",
"Borrar",
"��������",
"Ta bort",
@@ -640,7 +640,7 @@ const tI18nPhrase Phrases[] = {
"Marquer",
"Marker",
"Siirr�",
- "Zaznaczyc",
+ "Zaznacz",
"Marcar",
"�������",
"M�rk",
@@ -661,7 +661,7 @@ const tI18nPhrase Phrases[] = {
"Marche/Arr",
"Av/P�",
"P��ll�/Pois",
- "Zal./ Wyl.",
+ "W�/Wy�",
"On/Off",
"A����/K������",
"P�/Av",
@@ -670,7 +670,7 @@ const tI18nPhrase Phrases[] = {
"On/Off",
"���/����",
"De-/Aktiviraj",
- "Sees/V�ljas",
+ "On/Off",
"Til/Fra",
},
{ "Timer",
@@ -682,6 +682,8 @@ const tI18nPhrase Phrases[] = {
"",// TODO
"",// TODO
"Ajastin",
+ "Timer",// TODO
+ "Programa",
"",// TODO
"",// TODO
"",// TODO
@@ -689,9 +691,7 @@ const tI18nPhrase Phrases[] = {
"",// TODO
"",// TODO
"",// TODO
- "",// TODO
- "",// TODO
- "",// TODO
+ "Taimer",
"",// TODO
},
{ "Button$Record",
@@ -703,7 +703,7 @@ const tI18nPhrase Phrases[] = {
"Enregistre",
"Ta opp",
"Tallenna",
- "Nagrywac",
+ "Nagraj",
"Grabar",
"�������",
"Inspelning",
@@ -724,7 +724,7 @@ const tI18nPhrase Phrases[] = {
"Lire",
"Spill av",
"Toista",
- "Odtwarzac",
+ "Odtw�rz",
"Play",
"�����������",
"Spela upp",
@@ -745,7 +745,7 @@ const tI18nPhrase Phrases[] = {
"Pause",
"",// TODO
"Tauko",
- "Przerwa",
+ "Pauza",
"Pausa",
"�����",
"Pausa",
@@ -766,7 +766,7 @@ const tI18nPhrase Phrases[] = {
"Retour",
"Spol tilbake",
"Alkuun",
- "Poczatek",
+ "Pocz�tek",
"Rebobinar",
"�������� ���� ����",
"�terspolning",
@@ -787,7 +787,7 @@ const tI18nPhrase Phrases[] = {
"Arr�t",
"Stopp",
"Lopeta",
- "Zakonczyc",
+ "Zatrzymaj",
"Parar",
"�����",
"Stopp",
@@ -808,7 +808,7 @@ const tI18nPhrase Phrases[] = {
"Reprendre",
"Fortsett",
"Jatka",
- "Dalej",
+ "Wzn�w",
"Continuar",
"���������",
"Forts�tt",
@@ -829,7 +829,7 @@ const tI18nPhrase Phrases[] = {
"Ouvrir",
"�pne",
"Avaa",
- "Otworzyc",
+ "Otw�rz",
"Abrir",
"�������",
"�ppna",
@@ -850,7 +850,7 @@ const tI18nPhrase Phrases[] = {
"Regarder",
"Skift til",
"Valitse",
- "Przelaczyc",
+ "Prze��cz",
"Cambiar",
"A�����",
"Byt",
@@ -892,8 +892,8 @@ const tI18nPhrase Phrases[] = {
"Apr�s",
"Neste",
"Seuraavaksi",
- "Nastepny",
- "Siguiente",
+ "Nast�pnie",
+ "Despu�s",
"�������",
"N�sta",
"Urm�tor",
@@ -901,7 +901,7 @@ const tI18nPhrase Phrases[] = {
"Seg�ent",
"�����",
"Slijedi",
- "J�rgmine",
+ "Tulekul",
"N�ste",
},
{ "Button$Schedule",
@@ -914,7 +914,7 @@ const tI18nPhrase Phrases[] = {
"Programmer",
"Ohjelmisto",
"Program",
- "Programa",
+ "Gu�a",
"���������",
"Program",
"Program",
@@ -922,7 +922,7 @@ const tI18nPhrase Phrases[] = {
"Programar",
"���������",
"Raspored",
- "Kava",
+ "Ajakava",
"Program",
},
{ "Button$ABC/abc",
@@ -955,7 +955,7 @@ const tI18nPhrase Phrases[] = {
"Ins�rer",
"",// TODO
"Lis��",
- "Wstawiac",
+ "Wstaw",
"Insertar",
"��������",
"Infoga",
@@ -976,7 +976,7 @@ const tI18nPhrase Phrases[] = {
"�craser",
"",// TODO
"Korvaa",
- "Przepisac",
+ "Nadpisz",
"Sobreescribir",
"�������������",
"Skriv �ver",
@@ -1039,8 +1039,8 @@ const tI18nPhrase Phrases[] = {
"Scan",
"",//TODO
"P�ivit�",
- "",//TODO
- "",//TODO
+ "Skanuj",
+ "Escanear",
"������",
"Skanna",
"C�utare canale",
@@ -1060,8 +1060,8 @@ const tI18nPhrase Phrases[] = {
"Audio",
"",// TODO
"��ni",
- "",// TODO
- "",// TODO
+ "D�wi�k",
+ "Audio",
"����",
"Ljud",
"Sunet",
@@ -1082,7 +1082,7 @@ const tI18nPhrase Phrases[] = {
"Supprimer la cha�ne?",
"Slette kanal?",
"Poistetaanko kanava?",
- "Usunac kanal?",
+ "Usun�� kana�?",
"�Eliminar canal?",
"�������� ��������?",
"Ta bort kanalen?",
@@ -1103,8 +1103,8 @@ const tI18nPhrase Phrases[] = {
"Supprimer la programmation?",
"Slette timer?",
"Poistetaanko ajastin?",
- "Usunac timer?",
- "�Eliminar timer?",
+ "Usun�� timer?",
+ "�Eliminar programaci�n?",
"�������� ��������������������;?",
"Ta bort timern?",
"�terg timer-ul?",
@@ -1124,7 +1124,7 @@ const tI18nPhrase Phrases[] = {
"Supprimer l'enregistrement?",
"Slette opptak?",
"Poistetaanko tallenne?",
- "Usunac nagranie?",
+ "Usun�� nagranie?",
"�Eliminar grabacion?",
"�������� ��������?",
"Ta bort inspelningen?",
@@ -1145,8 +1145,8 @@ const tI18nPhrase Phrases[] = {
"Enregistrement en cours - confirmez la suppression",
"Timer gj�r opptak - vil du slette likevel?",
"Ajastettu tallennus k�ynniss� - poistetaanko silti?",
- "Nagrywanie w trakcie - napewno usunac?",
- "�Timer activo - de verdad eliminarlo?",
+ "Trwa nagrywanie - na pewno usun��?",
+ "Todav�a est� grabando - �eliminar realmente?",
"�������������������� �� ������� - �������� �������?",
"Timerstyrd inspelning p�g�r - Avbryta �nd�?",
"Timer-ul tocmai �nregistreaz� - �terg, totu�i?",
@@ -1166,7 +1166,7 @@ const tI18nPhrase Phrases[] = {
"Arr�ter l'enregistrement?",
"Stoppe opptak?",
"Lopetetaanko tallennus?",
- "Zakonczyc nagranie?",
+ "Zatrzyma� nagrywanie?",
"�Parar grabaci�n?",
"������� ��������?",
"Stanna inspelning?",
@@ -1187,8 +1187,8 @@ const tI18nPhrase Phrases[] = {
"Annuler les modifications?",
"Avbryte redigering?",
"Perutaanko muokkaus?",
- "Zakonczyc montaz?",
- "�Cancelar modificaci�n?",
+ "Anulowa� monta�?",
+ "�Cancelar edici�n?",
"A������ ������������?",
"Avbryta redigeringen?",
"Opresc montajul �nregistr�rii?",
@@ -1208,8 +1208,8 @@ const tI18nPhrase Phrases[] = {
"Red�marrer?",
"Vil du virkelig starte p� nytt?",
"K�ynnistet��nk� uudelleen?",
- "Rzeczywiscie nowy start?",
- "�De verdad reiniciar?",
+ "Na pewno zrestartowa�?",
+ "�Reiniciar realmente?",
"N� ����� ������� ������������?",
"Vill du verkligen starta om?",
"Sigur repornesc?",
@@ -1229,8 +1229,8 @@ const tI18nPhrase Phrases[] = {
"Enregistrement en cours - red�marrer?",
"Gj�r opptak - starte p� nytt likevel?",
"Tallennus kesken - k�ynnistet��nk� uudelleen?",
- "Nagrywanie w trakcie - rzeczywiscie nowy start?",
- "Grabando - �reiniciar?",
+ "Trwa nagrywanie - zrestartowa� mimo to?",
+ "Grabaci�n en curso - �reiniciar igualmente?",
"������� ������� - ������ �� ����� ������������?",
"Inspelning p�g�r, vill du �nd� starta om?",
"Tocmai se �nregistreaz� - repornesc, totu�i?",
@@ -1250,8 +1250,8 @@ const tI18nPhrase Phrases[] = {
"Enregistrement en cours - confirmez l'arr�t",
"Gj�r opptak - sl� av likevel?",
"Tallennus kesken - sammutetaanko?",
- "Nagrywanie w trakcie - mimo to wylaczyc?",
- "Grabando - �apagar?",
+ "Trwa nagrywanie - wy��czy� mimo to?",
+ "Grabaci�n en curso - �apagar igualmente?",
"������� ������� - ������ �� ����� �����������?",
"Inspelning p�g�r, vill du �nd� avbryta?",
"Tocmai se �nregistreaz� - �nchid, totu�i?",
@@ -1271,8 +1271,8 @@ const tI18nPhrase Phrases[] = {
"Enregistrement dans %d minutes - confirmez l'arr�t",
"Skal gj�re opptak om %d minutter - sl� av likevel?",
"Tallennus alkaa %d min kuluttua - sammutetaanko?",
- "Nagrywanie za %d minut - mimo to wylaczyc?",
- "Grabando en %d minutos, �de verdad apagar?",
+ "Nagrywanie za %d minut - wy��czy� mimo to?",
+ "Grabaci�n dentro de %d minutos, �apagar realmente?",
"���������� ������� �� %d ����� - ������ �� �����������?",
"Inspelning startar om %d minuter, vill du avsluta?",
"�nregistrez peste %d minute - �nchid, totu�i?",
@@ -1292,7 +1292,7 @@ const tI18nPhrase Phrases[] = {
"Appuyez sur une touche pour annuler l'arr�t",
"Trykk en tast for ikke � sl� av",
"Peru sammutus painamalla mit� tahansa n�pp�int�",
- "Dowolny przycisk zatrzyma wylaczanie",
+ "Naci�nij dowolny klawisz aby nie wy��cza�",
"Pulse una tecla para interrumpir apagar",
"����� ��� ������� ��� ������� �����������",
"Tryck valfri knapp f�r att �terkalla avst�ngningen",
@@ -1335,7 +1335,7 @@ const tI18nPhrase Phrases[] = {
"Fr�quence",
"Frekvens",
"Taajuus",
- "Czestotliwosc",
+ "Cz�stotliwo��",
"Frecuencia",
"���������",
"Frekvens",
@@ -1377,8 +1377,8 @@ const tI18nPhrase Phrases[] = {
"Source",
"",//TODO
"L�hde",
- "Zrodlo",
- "",//TODO
+ "�r�d�o",
+ "Fuente",
"����",
"K�lla",
"Surs�",
@@ -1399,7 +1399,7 @@ const tI18nPhrase Phrases[] = {
"Srate",
"Symbolinopeus",
"Srate",
- "Srate",
+ "T.s�mbolos",
"Srate",
"Srate",
"Rat� simboluri",
@@ -1567,7 +1567,7 @@ const tI18nPhrase Phrases[] = {
"Kortleser",
"Salaus (CA)",
"CA",
- "CA",
+ "Acceso condicional (CA)",
"CA",
"Kortl�sare",
"CA (Acces Condi�ional)",
@@ -1586,17 +1586,17 @@ const tI18nPhrase Phrases[] = {
"",//TODO
"",//TODO
"",//TODO
+ "vapaa",
"",//TODO
+ "en abierto",
"",//TODO
+ "Otwarta transmisja",
"",//TODO
"",//TODO
"",//TODO
"",//TODO
"",//TODO
- "",//TODO
- "",//TODO
- "",//TODO
- "",//TODO
+ "FTA",
"",//TODO
},
{ "encrypted",
@@ -1607,17 +1607,17 @@ const tI18nPhrase Phrases[] = {
"",//TODO
"",//TODO
"",//TODO
+ "salattu",
"",//TODO
+ "cifrado",
"",//TODO
+ "szyfrowany",
"",//TODO
"",//TODO
"",//TODO
"",//TODO
"",//TODO
- "",//TODO
- "",//TODO
- "",//TODO
- "",//TODO
+ "kr�ptitud",
"",//TODO
},
{ "Sid",
@@ -1650,7 +1650,7 @@ const tI18nPhrase Phrases[] = {
"Inversion",
"Inversion",
"Inversio",
- "Inversion",
+ "Inwersja",
"Inversion",
"����������",
"Inversion",
@@ -1671,8 +1671,8 @@ const tI18nPhrase Phrases[] = {
"Bande passante",
"Bandwidth",
"Kaistanleveys",
- "Szerokosc pasma",
- "Bandwidth",
+ "Pasmo",
+ "Ancho de banda",
"����� ����������",
"Bandbredd",
"L�rgime de band�",
@@ -1735,7 +1735,7 @@ const tI18nPhrase Phrases[] = {
"Modulation",
"Modulaatio",
"Modulacja",
- "Modulation",
+ "Modulaci�n",
"����������",
"Modulation",
"Modula�ie",
@@ -1756,7 +1756,7 @@ const tI18nPhrase Phrases[] = {
"Transmission",
"Transmissio",
"Transmisja",
- "Transmission",
+ "Transmisi�n",
"��������",
"Transmission",
"Transmisiune",
@@ -1777,7 +1777,7 @@ const tI18nPhrase Phrases[] = {
"Guard",
"Suojav�li",
"Guard",
- "Guard",
+ "Int.Guarda",
"���������",
"Guard",
"Guard",
@@ -1797,8 +1797,8 @@ const tI18nPhrase Phrases[] = {
"Hi�rarchie",
"Hierarchy",
"Hierarkia",
- "Hierachia",
- "Hierarchy",
+ "Hierarchia",
+ "Jerarqu�a",
"���������",
"Hierarchy",
"Ierarhie",
@@ -1840,7 +1840,7 @@ const tI18nPhrase Phrases[] = {
"Cha�ne",
"Kanal",
"Kanava",
- "Kanal",
+ "Kana�",
"Canal",
"������",
"Kanal",
@@ -1861,7 +1861,7 @@ const tI18nPhrase Phrases[] = {
"Jour",
"Dag",
"P�iv�",
- "Dzien",
+ "Dzie�",
"D�a",
"�����",
"Dag",
@@ -1882,7 +1882,7 @@ const tI18nPhrase Phrases[] = {
"D�but",
"Start",
"Aloitus",
- "Poczatek",
+ "Pocz�tek",
"Comienzo",
"����",
"B�rjar",
@@ -1924,8 +1924,8 @@ const tI18nPhrase Phrases[] = {
"VPS",
"",// TODO
"VPS",
- "",// TODO
- "",// TODO
+ "VPS",
+ "VPS",
"VPS",
"VPS",
"VPS",
@@ -1966,8 +1966,8 @@ const tI18nPhrase Phrases[] = {
"Dur�e de vie",
"Levetid",
"Elinik�",
- "Trwalosc dni",
- "Durabilidad",
+ "Czas �ycia",
+ "Duraci�n",
"�������� ���������",
"Livstid",
"Timp de p�strare",
@@ -2008,7 +2008,7 @@ const tI18nPhrase Phrases[] = {
"Premier jour",
"F�rste dag",
"1. p�iv�",
- "Pierwszy dzien",
+ "Pierwszy dzie�",
"Primer d�a",
"����� ����",
"F�rsta dag",
@@ -2030,8 +2030,8 @@ const tI18nPhrase Phrases[] = {
"Cette cha�ne est en cours d'utilisation!",
"Kanalen er i bruk av en timer!",
"Kanava on ajastimen k�yt�ss�!",
- "Kanal jest zajety przez timer nagran",
- "�Canal est� ocupado por un timer!",
+ "Kana� jest u�ywany przez timer!",
+ "�Hay una grabaci�n programada para este canal!",
"�� ������ ��������������� ��� �������������������!",
"Kanalen anv�nds av en timer!",
"Canalul este utilizat de un timer!",
@@ -2051,8 +2051,8 @@ const tI18nPhrase Phrases[] = {
"Impossible de changer de cha�ne!",
"Ikke mulig � skifte kanal!",
"Kanavan vaihtaminen ei mahdollista!",
- "Kanal nie moze byc teraz przelaczony!",
- "�No puedo cambiar canal!",
+ "Nie mo�na prze��czy� kana�u!",
+ "�No se puede cambiar de canal!",
"������ �������� �������!",
"Om�jligt att byta kanal!",
"Nu pot comuta canalul!",
@@ -2073,7 +2073,7 @@ const tI18nPhrase Phrases[] = {
"Timer gj�r opptak!",
"Ajastintallennus k�ynniss�!",
"Timer nagrywa!",
- "�Timer esta grabando!",
+ "�Grabaci�n en curso!",
"������� ��������������� �������!",
"Timerstyrd inspelning p�g�r!",
"Timer-ul tocmai �nregistreaz�!",
@@ -2081,7 +2081,7 @@ const tI18nPhrase Phrases[] = {
"El temporitzador est� gravant!",
"���� ������ �� �������!",
"Snimanje po definiranom terminu!",
- "Taimeri salvestamine!",
+ "Taimeriga salvestamine aktiivne!",
"Timer optager nu!",
},
{ "Error while accessing recording!",
@@ -2093,7 +2093,7 @@ const tI18nPhrase Phrases[] = {
"Impossible d'acc�der � l'enregistrement",
"Feil under lesing av opptak!",
"Tallenteen toistaminen ep�onnistui!",
- "Blad - brak dostepu do nagrania!",
+ "Bl�d podczas dost�pu do nagrania!",
"�Error al acceder a la grabaci�n!",
"�������� ���� ���������� ��������!",
"Inspelningen g�r inte att l�sa!",
@@ -2114,7 +2114,7 @@ const tI18nPhrase Phrases[] = {
"Erreur de suppression de l'enregistrement!",
"Feil under sletting av opptak!",
"Tallenteen poistaminen ep�onnistui!",
- "Blad przy usuwaniu nagrania!",
+ "Bl�d podczas usuwania nagrania!",
"�Error al borrar la grabaci�n!",
"����� ���� ��� �������� ��� �������!",
"Inspelningen g�r inte att ta bort!",
@@ -2135,8 +2135,8 @@ const tI18nPhrase Phrases[] = {
"*** Cha�ne invalide! ***",
"*** Ugyldig Kanal! ***",
"*** Virheellinen kanavavalinta! ***",
- "*** Niewazny kanal ***",
- "*** Canal inv�lido ***",
+ "*** Niepoprawny kana� ***",
+ "*** Canal no v�lido ***",
"*** ����� ������ ***",
"*** Felaktig kanal ***",
"*** Canal invalid ***",
@@ -2157,7 +2157,7 @@ const tI18nPhrase Phrases[] = {
"Ingen ledige DVB enheter for opptak!",
"Ei vapaata DVB-viritint� tallennukselle!",
"Brak wolnej karty DVB do nagrywania!",
- "�No hay dispositivo DVB disponible para grabar!",
+ "�Ning�n dispositivo DVB disponible para grabar!",
"���������� DVB ������ ��� �������!",
"Det finns ingen ledig DVB enhet f�r inspelning!",
"Nu mai sunt dispozitive DVB disponibile pentru �nregistrare!",
@@ -2177,7 +2177,7 @@ const tI18nPhrase Phrases[] = {
"Cha�ne non disponible!",
"",//TODO
"Kanava ei ole k�ytett�viss�!",
- "Kanal jest niedostepny!",
+ "Kana� nie jest dost�pny!",
"!Canal no disponible!",
"�� ������ ��� ����� ���������!",
"Kanalen �r inte tillg�nglig!",
@@ -2198,7 +2198,7 @@ const tI18nPhrase Phrases[] = {
"Caract�ristiques des cha�nes ne sont pas uniques",
"",//TODO
"Kanava-asetukset eiv�t ole yksil�lliset!",
- "Nastawy kanalu sa niejednoznaczne!",
+ "Ustawienia kana�u nie s� unikalne!",
"!Propiedades de canal duplicadas!",
"�� ��������� ��� �������� ����������������!",
"Kanalinst�llningarna �r ej unika!",
@@ -2219,7 +2219,7 @@ const tI18nPhrase Phrases[] = {
"Cha�ne verrouill�e (enregistrement en cours)!",
"Kanalen er l�st (opptak)!",
"Kanava lukittu (tallennus k�ynniss�)!",
- "Kanal zablokowany (nagrywanie w toku)!",
+ "Kana� zablokowany (trwa nagrywanie)!",
"�Canal bloqueado (grabando)!",
"�� ������ ����� ������������ (������ �������)!",
"Kanalen �r l�st (inspelning p�g�r)!",
@@ -2240,8 +2240,8 @@ const tI18nPhrase Phrases[] = {
"Impossible d'utiliser le mode transfert!",
"Kan ikke starte transfer modus!",
"Siirtotilan aloitus ep�onnistui!",
- "Tryb transferowy jest niemozliwy!",
- "�No puedo iniciar modo de transferencia!",
+ "Nie mo�na uruchomi� trybu transferu!",
+ "�No se puede iniciar el modo de transferencia!",
"�������� ��������� ���������� ���������!",
"Kan inte starta Transfer Mode!",
"Nu pot porni modul de transfer!",
@@ -2261,8 +2261,8 @@ const tI18nPhrase Phrases[] = {
"Pas de marques d'�dition d�finies!",
"",//TODO
"Muokkausmerkinn�t puuttuvat!",
- "Brak znakow montazowych!",
- "",//TODO
+ "Nie zdefiniowano znacznik�w monta�u!",
+ "�No se definieron marcas de edici�n!",
"��� ����� ������� ������ ������������",
"Det finns inga redigeringsm�rken",//TODO
"Nu s-au pus marcaje de montaj pentru aceast� �nregistrare",
@@ -2282,8 +2282,8 @@ const tI18nPhrase Phrases[] = {
"Impossible de commencer le montage!",
"Kan ikke starte redigeringsprosessen!",
"Muokkauksen aloitus ep�onnistui!",
- "Uruchamianie montazu jest niemozliwe!",
- "�No puedo iniciar proceso de modificaci�n!",
+ "Nie mo�na uruchomi� procesu edycji!",
+ "�No se puede iniciar el proceso de edici�n!",
"�������� ��������� ��� ������������!",
"Kan inte starta redigering!",
"Nu pot porni montajul �nregistr�rii!",
@@ -2303,8 +2303,8 @@ const tI18nPhrase Phrases[] = {
"Montage d�j� en cours!",
"Redigeringsprosessen er allerede aktiv!",
"Muokkaus on jo k�ynniss�!",
- "Montaz w toku!",
- "�Proceso de modificaci�n ya fue iniciado!",
+ "Proces edycji jest ju� aktywny!",
+ "�El proceso de edici�n ya est� activo!",
"����������� ��������� �� �������!",
"Redigeringen �r redan aktiv!",
"Montajul �nregistr�rii este deja activ!",
@@ -2312,7 +2312,7 @@ const tI18nPhrase Phrases[] = {
"Proc�s d'edici� iniciat anteriorment!",
"������� ������������ ��� �������!",
"Ure�ivanje je ve� aktivirano!",
- "Redigeerimine on juba aktiivne!",
+ "Redigeerimine juba aktiivne!",
"Redigeringsproces er allerede aktiv!",
},
{ "Can't shutdown - option '-s' not given!",
@@ -2324,8 +2324,8 @@ const tI18nPhrase Phrases[] = {
"Arr�t impossible - option '-s' absente!",
"Kan ikke sl� av - startet uten parameteret '-s'!",
"Sammutus ei onnistu - '-s' parametri puuttuu!",
- "Wylaczenie niemozliwe - brak opcji '-s'!",
- "�No puedo apagar - opci�n '-s' ausente!",
+ "Nie mo�na wy��czy� - nie podano opcji '-s'!",
+ "�No se puede apagar - falta el par�metro '-s'!",
"�������� �� ����� �����������. ��������� � ���������� '-s'!",
"Kan inte avsluta, m�ste anv�nda parameter '-s'",
"Nu pot �nchide - vezi op�iunea '-s'",
@@ -2336,6 +2336,27 @@ const tI18nPhrase Phrases[] = {
"V�ljal�litamine eba�nnestus - '-s' parameeter puudub!",
"Kan ikke slukke - parameter '-s' ikke angivet!",
},
+ { "Not enough disk space to start recording!",
+ "Nicht gen�gend Plattenplatz f�r Aufnahme!",
+ "",//TODO
+ "",//TODO
+ "",//TODO
+ "",//TODO
+ "",//TODO
+ "",//TODO
+ "",//TODO
+ "",//TODO
+ "",//TODO
+ "",//TODO
+ "",//TODO
+ "",//TODO
+ "",//TODO
+ "",//TODO
+ "",//TODO
+ "",//TODO
+ "",//TODO
+ "",//TODO
+ },
{ "Low disk space!",
"Platte beinahe voll!",
"Premalo prostora na disku!",
@@ -2345,8 +2366,8 @@ const tI18nPhrase Phrases[] = {
"Disque presque plein!",
"Lite ledig diskplass!",
"Tallennustila loppumassa!",
- "Dysk wkrotce pelny!",
- "�Disco casi lleno",
+ "Ma�o miejsca na dysku!",
+ "�Poco espacio en disco!",
"� ������� �������� �� �������!",
"L�gt diskutrymme!",
"Spa�iul pe disc e foarte sc�zut!",
@@ -2354,7 +2375,7 @@ const tI18nPhrase Phrases[] = {
"Disc gaireb� ple!",
"������������ ����� �� �����!",
"Nedovoljno prostora na disku",
- "K�vaketas peaaegu t�is!",
+ "K�vaketas t�is!",
"Kun lidt diskplads tilbage!",
},
{ "Opening CAM menu...",
@@ -2366,8 +2387,8 @@ const tI18nPhrase Phrases[] = {
"",//TODO
"",//TODO
"Avataan CA-moduulin valikkoa...",
- "",//TODO
- "",//TODO
+ "Otwieram menu CAM...",
+ "Abriendo el men� CAM...",
"",//TODO
"������� CAM �����",
"",//TODO
@@ -2387,8 +2408,8 @@ const tI18nPhrase Phrases[] = {
"Impossible d'ouvrir le menu CAM!",
"",//TODO
"CA-moduulin valikko ei saatavilla",
- "CAM-Menu niedostepne!",
- "�No pudeo acceder al men� de la CAM!",
+ "Nie mo�na otworzy� menu CAM!",
+ "�No se puede abrir el men� CAM!",
"������� � �������� ��� CAM �����!",
"Det g�r inte att �ppna CAM menyn!",
"Nu pot deschide meniul CAM",
@@ -2408,8 +2429,8 @@ const tI18nPhrase Phrases[] = {
"",//TODO
"",//TODO
"CA-moduuli palautetaan alkutilaan...",
- "",//TODO
- "",//TODO
+ "Resetuj� CAM...",
+ "Reiniciando CAM...",
"",//TODO
"��������� CAM",
"",//TODO
@@ -2429,8 +2450,8 @@ const tI18nPhrase Phrases[] = {
"Impossible de r�initialiser la CAM!",
"",//TODO
"CA-moduulin palautus alkutilaan ep�onnistui!",
- "Nieudany CAM-Reset!",
- "�No puedo reiniciar la CAM!",
+ "Nie mo�na zresetowa� CAM!",
+ "�No se puede reiniciar CAM!",
"������� � ��������� ��� CAM",
"Kan inte �terst�lla CAM!",
"Nu pot reseta CAM",
@@ -2450,8 +2471,8 @@ const tI18nPhrase Phrases[] = {
"La CAM a �t� r�initialis�e",
"",//TODO
"CA-moduuli palautettu alkutilaan",
- "CAM-Reset wykonany",
- "CAM reiniciada",
+ "CAM zosta� zresetowany",
+ "CAM reiniciado",
"����� ��������� ��� CAM",
"CA modulen har �terst�llts",
"CAM-ul a fost resetat",
@@ -2471,8 +2492,8 @@ const tI18nPhrase Phrases[] = {
"",//TODO
"",//TODO
"Sy�t� %d numeroa!",
- "",//TODO
- "",//TODO
+ "Prosz� poda� %d cyfr!",
+ "�Escriba %d d�gitos!",
"",//TODO
"�������� ��������������� %d �������",
"",//TODO
@@ -2492,8 +2513,8 @@ const tI18nPhrase Phrases[] = {
"",//TODO
"Pas d'audio disponible!",
"��nen kieli ei ole valittavissa!",
- "",//TODO
- "",//TODO
+ "D�wi�k nie jest dost�pny!",
+ "�No hay audio disponible!",
"�� ���������� ����",
"Ljud saknas!"
"Lipse�te sunetul!",
@@ -2620,7 +2641,7 @@ const tI18nPhrase Phrases[] = {
"Opptak",
"Tallennus",
"Nagranie",
- "Opciones de Grabaci�n",
+ "Opciones de grabaci�n",
"�������",
"Inspelning",
"�nregistrare",
@@ -2641,7 +2662,7 @@ const tI18nPhrase Phrases[] = {
"Spill av",
"Toisto",
"Odtwarzanie",
- "Opciones de Reproducci�n",
+ "Opciones de reproducci�n",
"�����������",
"Uppspelning",
"Redare",
@@ -2661,7 +2682,7 @@ const tI18nPhrase Phrases[] = {
"Divers",
"Forskjellig",
"Sekalaiset",
- "Pozostale",
+ "R�ne",
"Varios",
"�������",
"Diverse",
@@ -2682,7 +2703,7 @@ const tI18nPhrase Phrases[] = {
"Plugins",
"Plugins",
"Laajennokset",
- "Plugins",
+ "Wtyczki",
"Plugins",
"����������",
"Moduler",
@@ -2703,7 +2724,7 @@ const tI18nPhrase Phrases[] = {
"Plugin",
"Plugin",
"Laajennos",
- "Plugin",
+ "Wtyczka",
"Plugin",
"��������",
"Modul",
@@ -2724,7 +2745,7 @@ const tI18nPhrase Phrases[] = {
"Red�marrer",
"Start p� nytt",
"K�ynnist� uudelleen",
- "Zastartowac",
+ "Restart",
"Reiniciar",
"������������",
"Omstart",
@@ -2746,7 +2767,7 @@ const tI18nPhrase Phrases[] = {
"Langue",
"Spr�k",
"Kieli",
- "Jezyk",
+ "J�zyk",
"Idioma",
"������",
"Spr�k",
@@ -2767,8 +2788,8 @@ const tI18nPhrase Phrases[] = {
"Skin",
"",// TODO
"Ulkoasu",
- "",// TODO
- "",// TODO
+ "Sk�rka",
+ "Skin",
"���������",
"Skin",
"Skin",
@@ -2788,8 +2809,8 @@ const tI18nPhrase Phrases[] = {
"Th�me",
"",// TODO
"Teema",
- "",// TODO
- "",// TODO
+ "Motyw",
+ "Tema",
"����",
"Tema",
"Tem�",
@@ -2809,8 +2830,8 @@ const tI18nPhrase Phrases[] = {
"Gauche",
"",// TODO
"Vaakakeskitys",
- "",// TODO
- "",// TODO
+ "Od lewej",
+ "Izquierda",
"��������",
"V�nster",
"St�nga",
@@ -2830,8 +2851,8 @@ const tI18nPhrase Phrases[] = {
"Haut",
"",// TODO
"Pystykeskitys",
- "",// TODO
- "",// TODO
+ "Od g�ry",
+ "Arriba",
"�����",
"�vre",
"Sus",
@@ -2851,7 +2872,7 @@ const tI18nPhrase Phrases[] = {
"Largeur",
"Bredde",
"Leveys",
- "Szerokosc",
+ "Szeroko��",
"Anchura",
"������",
"Bredd",
@@ -2872,7 +2893,7 @@ const tI18nPhrase Phrases[] = {
"Hauteur",
"H�yde",
"Korkeus",
- "Wysokosc",
+ "Wysoko��",
"Altura",
"����",
"H�jd",
@@ -2893,8 +2914,8 @@ const tI18nPhrase Phrases[] = {
"Dur�e affichage message (s)",
"Tid meldinger skal vises (s)",
"Viestien esitysaika (s)",
- "Czas wyswietlania wiadomosci (s)",
- "Duraci�n muestra mensajes (s)",
+ "Czas trwania wiadomo�ci (s)",
+ "Duraci�n de los mensajes (sg)",
"������ �������� ��������� (�)",
"Tid f�r meddelanden (sek)",
"Timp afi�are mesaje (sec)",
@@ -2914,8 +2935,8 @@ const tI18nPhrase Phrases[] = {
"Utiliser les petits caract�res",
"",// TODO
"K�yt� pieni� kirjasimia",
- "",// TODO
- "",// TODO
+ "U�ywaj ma�ej czcionki",
+ "Usar letra peque�a",
"������������� ������ ��������������",
"Anv�nd liten font",
"Utilizare fonturi mici",
@@ -2935,8 +2956,8 @@ const tI18nPhrase Phrases[] = {
"jamais",
"",// TODO
"ei koskaan",
- "",// TODO
- "",// TODO
+ "nigdy",
+ "nunca",
"����"
"aldrig",
"niciodat�",
@@ -2956,8 +2977,8 @@ const tI18nPhrase Phrases[] = {
"d�pend du skin",
"",// TODO
"ulkoasun mukaan",
- "",// TODO
- "",// TODO
+ "zal. od sk�rki",
+ "seg�n skin",
"�������� ��� ��� ���������",
"skin beroende",
"dep. de skin",
@@ -2977,8 +2998,8 @@ const tI18nPhrase Phrases[] = {
"toujours",
"",// TODO
"aina",
- "",// TODO
- "",// TODO
+ "zawsze",
+ "siempre",
"�����",
"alltid",
"�ntotdeauna",
@@ -2998,8 +3019,8 @@ const tI18nPhrase Phrases[] = {
"Position infos cha�nes",
"Posisjon p� kanalinformasjon",
"Kanavatiedon sijainti",
- "Lokalizacja informacji o kanale",
- "Posici�n para informaci�n canal",
+ "Pozycja informacji o kanale",
+ "Posici�n para informaci�n de canal",
"���� ����������� ��������",
"Placering av kanalinformation",
"Pozi�ia informa�iilor despre canal",
@@ -3019,8 +3040,8 @@ const tI18nPhrase Phrases[] = {
"Dur�e affichage infos cha�nes (s)",
"",// TODO
"Kanavatiedon esitysaika (s)",
- "",// TODO
- "",// TODO
+ "Czas trwania informacji o kanale (s)",
+ "Tiempo de informaci�n de canal (sg)",
"������ ��������� ����������� �������� �� (�)",
"Kanal information (s)",
"Durata afi��rii info-canal (s)",
@@ -3028,7 +3049,7 @@ const tI18nPhrase Phrases[] = {
"",// TODO
"����� ���������� � ������ (���)",
"Vrijeme prikaza informacije o programu (s)",
- "Kanaliteate esitusaeg (s)",
+ "Kanaliinfo esitusaeg (s)",
"Tid kanalinfo skal vises (s)",
},
{ "Setup.OSD$Info on channel switch",
@@ -3040,8 +3061,8 @@ const tI18nPhrase Phrases[] = {
"Affichage progr. en cours",
"Info ved kanalskifte",
"N�yt� kanavatieto vaihdettaessa",
- "Informacja przy zmianie kanalu",
- "Informaci�n para cambio de canal",
+ "Informacja przy zmianie kana�u",
+ "Mostrar info al cambiar de canal",
"����������� ���� ������ ��������",
"Information vid kanalbyte",
"Informa�ii la comutarea canalului",
@@ -3049,7 +3070,7 @@ const tI18nPhrase Phrases[] = {
"Informaci� del canvi de canal",
"���������� ���������� � ������",
"Informacije kod promjene kanala",
- "Kanaliteate n�itamine",
+ "Kanaliinfo n�itamine",
"Info ved kanalskift",
},
{ "Setup.OSD$Timeout requested channel info",
@@ -3061,6 +3082,8 @@ const tI18nPhrase Phrases[] = {
"", // TODO
"", // TODO
"Sulje kanavatieto pyydett�ess�",
+ "Czas oczekiwania na informacje",
+ "Auto-cerrar al solicitar info de canal",
"", // TODO
"", // TODO
"", // TODO
@@ -3068,9 +3091,7 @@ const tI18nPhrase Phrases[] = {
"", // TODO
"", // TODO
"", // TODO
- "", // TODO
- "", // TODO
- "", // TODO
+ "Kanaliinfo kuvamise ajapiirang",
"", // TODO
},
{ "Setup.OSD$Scroll pages",
@@ -3082,8 +3103,8 @@ const tI18nPhrase Phrases[] = {
"D�filement par pages",
"Rask rulling i menyer",
"Valikoiden vieritys sivuttain",
- "Przesuwac stronami",
- "Desplazar p�gina entera",
+ "Przesuwaj stronami",
+ "Deslizar p�ginas enteras",
"������ �������",
"Bl�ddra sidor",
"Deruleaz� pagini",
@@ -3103,8 +3124,8 @@ const tI18nPhrase Phrases[] = {
"D�filement rotatif",
"",// TODO
"Valikoiden vieritys ymp�ri",
- "",// TODO
- "",// TODO
+ "Skrajne pozycje s�siaduj�",
+ "Rotar arriba/abajo al deslizar",
"������ ����-����",
"Rulla texten",
"Derulare circular�",
@@ -3123,17 +3144,17 @@ const tI18nPhrase Phrases[] = {
"",// TODO
"",// TODO
"",// TODO
+ "Sulje valikkon�pp�imell�",
"",// TODO
+ "Cerrar al pulsar bot�n de men�",
"",// TODO
+ "Klawisz Menu zamyka",
"",// TODO
"",// TODO
"",// TODO
"",// TODO
"",// TODO
- "",// TODO
- "",// TODO
- "",// TODO
- "",// TODO
+ "Sulgemine Men�� klahviga",
"",// TODO
},
{ "Setup.OSD$Sort timers",
@@ -3145,8 +3166,8 @@ const tI18nPhrase Phrases[] = {
"Trier les programmations",
"Sorter timere",
"J�rjest� ajastimet",
- "Sortowanie timerow",
- "Ordenar timers",
+ "Sortuj timery",
+ "Ordenar programas de grabaci�n",
"�������� ��������������������",
"Sortera timers",
"Sortare timer-e",
@@ -3166,8 +3187,8 @@ const tI18nPhrase Phrases[] = {
"Dossiers d'enregistrements",
"Kataloger til opptak",
"N�yt� tallennehakemistot",
- "Wykaz nagran",
- "Gracaciones en directorios",
+ "Katalogi nagra�",
+ "Mostrar directorios de grabaciones",
"������� ��������",
"Kataloger f�r inspelningar",
"Directoare �nregistr�ri",
@@ -3187,8 +3208,8 @@ const tI18nPhrase Phrases[] = {
"Inactivit� avant rech. EPG (h)",
"Ledig tid f�r EPG-s�k (h)",
"Ohjelmaoppaan taustap�ivitys (h)",
- "Czas do skanu EPG (h)",
- "Tiempo hasta exploraci�n EPG (h)",
+ "Czas skanowania EPG (h)",
+ "Tiempo de exploraci�n de EPG (h)",
"������ ��������� �������� EPG �� ����",
"EPG s�kning timeout",
"Interval achizi�ie EPG (h)",
@@ -3208,8 +3229,8 @@ const tI18nPhrase Phrases[] = {
"Niveau de correction EPG",
"Niv� for EPG-feilretting",
"Ohjelmaoppaan korjaustaso",
- "Poziom bledow EPG",
- "Nivel para arreglar EPG",
+ "Stopie� poprawek b��d�w EPG",
+ "Nivel de correcci�n de EPG",
"������ ��������� ������ EPG",
"Niv� f�r EPG bugfix",
"Nivel corec�ie EPG",
@@ -3229,8 +3250,8 @@ const tI18nPhrase Phrases[] = {
"Montrer l'EPG p�rim� (min)",
"",// TODO
"Vanha tieto n�kyy (min)",
- "",// TODO
- "",// TODO
+ "Czas przechowywania EPG (min)",
+ "Mostrar datos antiguos de EPG (m)",
"������� ������������ ����������� (�����)",
"Visa gammal information (min)",
"Date EPG expirate cel mult (min)",
@@ -3250,7 +3271,7 @@ const tI18nPhrase Phrases[] = {
"Ajuster l'heure du syst�me",
"Juster system-klokken",
"Tahdista kellonaika",
- "Ustawianie czasu",
+ "Ustawiaj czas systemowy",
"Ajustar reloj de sistema",
"����������� ���� ����������",
"St�ll in systemtid",
@@ -3271,8 +3292,8 @@ const tI18nPhrase Phrases[] = {
"Utiliser l'heure de la cha�ne",
"Bruk klokke fra transponder",
"Vastaanota kellonaika transponderilta",
- "Transponder do ustawiania czasu",
- "Transponder para reloj de sistema",
+ "U�yj czasu z transpondera",
+ "Transponder del que tomar la hora",
"������������ ����������� ����",
"Anv�nd klockan fr�n transponder",
"Preia ora din transponder",
@@ -3292,8 +3313,8 @@ const tI18nPhrase Phrases[] = {
"Langues pr�f�r�es",
"",// TODO
"Suosikkikielet",
- "",// TODO
- "",// TODO
+ "Preferowanych j�zyk�w",
+ "Idiomas preferidos",
"������������� �������",
"�nskade spr�k",
"Limbi preferate",
@@ -3313,8 +3334,8 @@ const tI18nPhrase Phrases[] = {
"Langue pr�f�r�e",
"",// TODO
"Suosikkikieli",
- "",// TODO
- "",// TODO
+ "Preferowany j�zyk",
+ "Idioma preferido",
"������������ ������",
"�nskat spr�k",
"Limba preferat�",
@@ -3334,8 +3355,8 @@ const tI18nPhrase Phrases[] = {
"Carte DVB primaire",
"Hoved DVB-enhet",
"Ensisijainen DVB-sovitin",
- "Pierwotny interfejs DVB",
- "Primer interface DVB",
+ "Pierwszy interfejs DVB",
+ "Interfaz DVB primario",
"����� DVB �����",
"Prim�r DVB enhet",
"Dispozitiv DVB primar",
@@ -3355,8 +3376,8 @@ const tI18nPhrase Phrases[] = {
"Format d'affichage",
"",//TODO
"N�ytt�muoto",
- "",//TODO
- "",//TODO
+ "Format wy�wietlania obrazu",
+ "Formato de visualizaci�n",
"����� ����������� ������",
"Format f�r video display",
"Formatul red�rii video",
@@ -3439,8 +3460,8 @@ const tI18nPhrase Phrases[] = {
"Format vid�o",
"TV-Format",
"Kuvasuhde",
- "Format telewizyjny",
- "Formato V�deo",
+ "Format obrazu",
+ "Formato de v�deo",
"����� ������",
"Video format",
"Format video",
@@ -3460,8 +3481,8 @@ const tI18nPhrase Phrases[] = {
"Utiliser le Dolby Digital",
"",//TODO
"K�yt� Dolby Digital -��nt�",
- "",//TODO
- "",//TODO
+ "U�ywaj Dolby Digital",
+ "Usar Dolby Digital",
"����� ���� Dolby Digital",
"Anv�nd Dolby Digital",
"Sunet Dolby Digital",
@@ -3481,8 +3502,8 @@ const tI18nPhrase Phrases[] = {
"Mettre � jour les cha�nes",
"",// TODO
"P�ivit� kanavat",
- "",// TODO
- "",// TODO
+ "Aktualizuj kana�y",
+ "Actualizar canales",
"��������� ��������",
"Uppdatera kanaler",
"Actualizare canale",
@@ -3502,8 +3523,8 @@ const tI18nPhrase Phrases[] = {
"noms uniquement",
"",// TODO
"vain nimet",
- "",// TODO
- "",// TODO
+ "tylko nazwy",
+ "s�lo nombres",
"���� �������",
"bara namn",
"doar numele",
@@ -3523,8 +3544,8 @@ const tI18nPhrase Phrases[] = {
"noms et PIDs",
"",// TODO
"nimet ja PID:it",
- "",// TODO
- "",// TODO
+ "nazwy i PID-y",
+ "nombres y PIDs",
"������� ��� PIDs",
"namn och PID",
"nume si PID-uri",
@@ -3532,7 +3553,7 @@ const tI18nPhrase Phrases[] = {
"",// TODO
"�������� � PID�",
"imena i identifikatore (PIDs)",
- "nimed ja PID-id",
+ "nimi ja PID-id",
"navne og PIDs",
},
{ "add new channels",
@@ -3544,8 +3565,8 @@ const tI18nPhrase Phrases[] = {
"ajouter cha�nes",
"",// TODO
"uudet kanavat",
- "",// TODO
- "",// TODO
+ "dodawaj nowe kana�y",
+ "a�adir canales",
"�������� ���� ��������",
"l�gg till nya kanaler",
"ad�ugare canale noi",
@@ -3565,8 +3586,8 @@ const tI18nPhrase Phrases[] = {
"ajouter transpondeurs",
"",// TODO
"uudet transponderit",
- "",// TODO
- "",// TODO
+ "dodawaj nowe transpondery",
+ "a�adir transponders",
"�������� ���� �����������",
"l�gg till nya transponders",
"ad�ugare transpondere noi",
@@ -3586,8 +3607,8 @@ const tI18nPhrase Phrases[] = {
"Langues audio",
"",//TODO
"��nen kielet",
- "",//TODO
- "",//TODO
+ "J�zyk�w d�wi�ku",
+ "Idiomas de audio",
"������� ����",
"Antal ljudspr�k",
"Limbi sunet",
@@ -3607,8 +3628,8 @@ const tI18nPhrase Phrases[] = {
"Langue audio",
"",//TODO
"��nen kieli",
- "",//TODO
- "",//TODO
+ "J�zyk d�wi�ku",
+ "Idioma de audio",
"������ ����",
"Ljudspr�k",
"Limba sunetului",
@@ -3649,8 +3670,8 @@ const tI18nPhrase Phrases[] = {
"Fr�quence basse LNB (MHz)",
"LO-frekvens i lavb�ndet (MHz)",
"LNB-alataajuus (MHz)",
- "Dolna czestotliwosc LNB (MHz)",
- "Frecuencia baja LNB (MHz)",
+ "Dolna cz�stotliwo�� LNB (MHz)",
+ "Frecuencia inferior del LNB (MHz)",
"���� LNB-��������� (MHz)",
"Undre LNB frekvens (MHz)",
"Frecvn�� LNB inferioar� (Mhz)",
@@ -3670,8 +3691,8 @@ const tI18nPhrase Phrases[] = {
"Fr�quence haute LNB (MHz)",
"LO-frekvens i h�yb�ndet (MHz)",
"LNB-yl�taajuus (MHz)",
- "Gorna czestotliwosc LNB (MHz)",
- "Frecuencia alta LNB (MHz)",
+ "G�rna cz�stotliwo�� LNB (MHz)",
+ "Frecuencia superior del LNB (MHz)",
"��� LNB-��������� (MHz)",
"�vre LNB frekvens (MHz)",
"Frecvn�� LNB superioar� (MHz)",
@@ -3691,7 +3712,7 @@ const tI18nPhrase Phrases[] = {
"Utiliser le DiSEqC",
"Bruk DiSEqC",
"K�yt� DiSEqC-kytkint�",
- "Uzywac DiSEqC",
+ "U�ywaj DiSEqC",
"Utilizar DiSEqC",
"������������ DiSEqC",
"Anv�nd DiSEqC",
@@ -3733,7 +3754,7 @@ const tI18nPhrase Phrases[] = {
"Marge ant�rieure (min)",
"Opptaksmargin start (min)",
"Aloitusmarginaali (min)",
- "Poczatkowy czas buforowy (min)",
+ "Margines na pocz�tku (min)",
"Comenzar grabaci�n antes (min)",
"��������� ������ ���� ���� (�����)",
"Marginal f�r start (min)",
@@ -3754,8 +3775,8 @@ const tI18nPhrase Phrases[] = {
"Marge post�rieure (min)",
"Opptaksmargin slutt (min)",
"Lopetusmarginaali (min)",
- "Koncowy czas buforowy (min)",
- "Cortar grabaci�n despu�s (min)",
+ "Margines na ko�cu (min)",
+ "Acabar grabaci�n despu�s (min)",
"��������� ������ ��� ����� (�����)",
"Marginal f�r stopp (min)",
"Marj� la oprire (min)",
@@ -3775,7 +3796,7 @@ const tI18nPhrase Phrases[] = {
"Limite primaire",
"Prioritetsgrense HovedDVB",
"Ensisijaisen sovittimen prioriteettiraja",
- "Pierwotny limit",
+ "Podstawowy limit",
"L�mite primario",
"�������� ����",
"Prim�r gr�ns",
@@ -3784,7 +3805,7 @@ const tI18nPhrase Phrases[] = {
"L�mit primari",
"���. ��������� ������� ���. ����������",
"Standardno ograni�enje",
- "Esmase seadme prioriteet",
+ "Esmane prioriteet",
"Prim�r gr�nse",
},
{ "Setup.Recording$Default priority",
@@ -3796,8 +3817,8 @@ const tI18nPhrase Phrases[] = {
"Priorit� par d�faut",
"Normal prioritet (Timer)",
"Tallenteen oletusprioriteetti",
- "Priorytet pierwotny",
- "Prioridad predefinida",
+ "Domy�lny priorytet",
+ "Prioridad por defecto",
"�������������� �������������",
"Normal prioritet",
"Prioritate implicit�",
@@ -3817,8 +3838,8 @@ const tI18nPhrase Phrases[] = {
"Dur�e de vie par d�faut (j)",
"Normal levetid timer (d)",
"Tallenteen oletuselinik� (d)",
- "Pierwotna trwalosc (d)",
- "Duraci�n predefinida",
+ "Domy�lny czas �ycia (d)",
+ "Duraci�n por defecto (d�as)",
"�������������� �������� ��������� (������)",
"Normal livstid (dagar)",
"Timp de p�strare predefinit (zile)",
@@ -3838,8 +3859,8 @@ const tI18nPhrase Phrases[] = {
"Priorit� des pauses",
"",// TODO
"Taukotallenteen prioriteetti",
- "Priorytet przerwy",
- "",// TODO
+ "Priorytet pauzy",
+ "Prioridad en modo pausa",
"������������� ������������",
"Prioritet f�r direktinspelning",
"Prioritate pauz�",
@@ -3859,8 +3880,8 @@ const tI18nPhrase Phrases[] = {
"Dur�e de vie des pauses (j)",
"",// TODO
"Taukotallenteen elinik� (d)",
- "Okres trwania przerwy (d)",
- "",// TODO
+ "Czas �ycia pauzy (d)",
+ "Duraci�n en modo pausa (d�as)",
"�������� �����������",
"Livstid f�r direktinspelning (dagar)",
"P�strarea emisiunilor 'pauzate' (zile)",
@@ -3880,7 +3901,7 @@ const tI18nPhrase Phrases[] = {
"Utiliser le nom de l'�pisode",
"Bruk episodenavn",
"K�yt� jakson nime�",
- "Czy uzywac nazwe epizodu",
+ "U�ywaj nazwy epizodu",
"Utilizar nombre de episodo",
"����� �������� ����������",
"Anv�nd episodnamn",
@@ -3901,8 +3922,8 @@ const tI18nPhrase Phrases[] = {
"Utiliser le VPS",
"",// TODO
"K�yt� VPS-toimintoa",
- "",// TODO
- "",// TODO
+ "U�ywaj VPS",
+ "Usar servicio VPS",
"����� VPS",
"Anv�nd VPS",
"Utilizeaz� VPS",
@@ -3922,8 +3943,8 @@ const tI18nPhrase Phrases[] = {
"Marge VPS",
"",// TODO
"VPS-toiminnon aloitusmarginaali (s)",
- "",// TODO
- "",// TODO
+ "Margines VPS (s)",
+ "Margen VPS (sg)",
"��������� VPS (�)",
"VPS marginal (s)",
"Marj� de timp la utilizare VPS (s)",
@@ -3943,8 +3964,8 @@ const tI18nPhrase Phrases[] = {
"Marquage enregistr. imm�diats",
"Markere direkteopptak",
"Merkitse pikatallenne",
- "Zaznaczyc natychm. nagranie",
- "Marcar grabaciones instant�neas",
+ "Zaznaczaj natychm. nagrywanie",
+ "Marcar grabaciones inmediatas",
"������� ��������� ��������",
"M�rk direktinspelning",
"Marcheaz� �nregistrare imediat�",
@@ -3964,8 +3985,8 @@ const tI18nPhrase Phrases[] = {
"Noms enregistr. imm�diats",
"Navngi direkteopptak",
"Nime� pikatallenne",
- "Nazwac natychm. nagranie",
- "Nombrar grabaciones instant�neas",
+ "Nazywaj natychm. nagrywanie",
+ "Nombrar grabaciones inmediatas",
"�������� ��������� ��������",
"Namnge direktinspelning",
"Nume �nregistrare imediat�",
@@ -3985,8 +4006,8 @@ const tI18nPhrase Phrases[] = {
"Dur�e enregistr. imm�diat (min)",
"",//TODO
"Pikatallennuksen kesto (min)",
- "Dlugosc bezposredniego nagrania (min)",
- "Tiempo de grabaci�n instant�nea (min)",
+ "Czas natychm. nagrywania (min)",
+ "Tiempo de grabaci�n inmediata (min)",
"�������� ��������� �������� (�����)",
"Direktinspelning l�ngd (min)",
"Timpul de �nregistare imediat� (min)",
@@ -4006,8 +4027,8 @@ const tI18nPhrase Phrases[] = {
"Taille maxi des fichiers (MB)",
"Maksimal st�rrelse p� videofiler (MB)",
"Suurin tiedostokoko (Mt)",
- "Maks. wielkosc pliku (MB)",
- "Tama�o m�x. de fichero (MB)",
+ "Maksymalny rozmiar pliku (MB)",
+ "Tama�o m�ximo de fichero (MB)",
"������� ������� ������� (MB)",
"Maximal filstorlek f�r inspelning (MB)",
"Dimensiune maxim� a fi�ierului video (MB)",
@@ -4027,8 +4048,8 @@ const tI18nPhrase Phrases[] = {
"S�parer les s�quences �dit�es",
"Splitt redigerte filer",
"Jaottele muokatut tallenteet",
- "Dzielic montowane pliki",
- "Quebrar ficheros",
+ "Dziel edytowane pliki",
+ "Partir ficheros editados",
"����������� �������������� �������",
"Dela upp redigerade filer",
"Separare fi�iere montate",
@@ -4048,7 +4069,7 @@ const tI18nPhrase Phrases[] = {
"Mode multi-vitesses",
"Multispeed modus",
"K�yt� toiston moninopeustilaa",
- "Tryb wielopredkosciowy",
+ "Tryb wielopr�dko�ciowy",
"Modo multi-velocidad",
"������� ��������� ���������",
"Multispeed mode",
@@ -4069,8 +4090,8 @@ const tI18nPhrase Phrases[] = {
"Affichage mode de lecture",
"Vis avspillingsmodus",
"N�yt� toiston tila",
- "Wyswietlac status odtwarzania",
- "Mostrar modo de replay",
+ "Pokazuj tryb odtwarzania",
+ "Mostrar modo de reproducci�n",
"������� ���������� ������������",
"Visa uppspelningsl�ge",
"Afi�eaz� redarea",
@@ -4090,8 +4111,8 @@ const tI18nPhrase Phrases[] = {
"ID de reprise",
"Resume ID",// TODO
"Tallenteen paluutunniste",
- "ID odtwarzania",
- "Continuar ID",
+ "ID wznowienia",
+ "ID de continuaci�n",
"ID ������������",
"�teruppta ID",
"Identificator continuare",
@@ -4111,8 +4132,8 @@ const tI18nPhrase Phrases[] = {
"MinEventTimeout (min)",
"Minste hendelsespause (min)",
"Tapahtuman odotusaika (min)",
- "Min. czas do nast. akcji (Event) (min)",
- "Tiempo m�nimo pausa (min)",
+ "Minimalny czas audycji (min)",
+ "Tiempo m�n. antes de un evento (m)",
"��������� ������ ���������� (�����)",
"Minsta h�ndelse-pause (min)",
"Durat� minim� emisiuni (min)",
@@ -4132,8 +4153,8 @@ const tI18nPhrase Phrases[] = {
"Dur�e minimale d'inact. (min)",
"Minimumstid med inaktivitet (min)",
"K�ytt�j�toiminnon odotusaika (min)",
- "Min. brak aktywnosci uzytkownika (min)",
- "Tiempo m�nimo inactividad (min)",
+ "Minimalny czas nieaktywno�ci (min)",
+ "Tiempo m�n. de inactividad (m)",
"��������� ������ �������� (�����)",
"Minsta anv�ndar-inaktivitet (min)",
"Durata minim� de inactivitate (min)",
@@ -4153,8 +4174,8 @@ const tI18nPhrase Phrases[] = {
"Temps maxi SVDRP (s)",
"Ubrukt SVDRP-levetid (s)",
"SVDRP-komennon odotusaika (s)",
- "Min. brak aktywnosci SVDRP (s)",
- "SVDRP Timeout (s)",
+ "Czas oczekiwania na SVDRP (s)",
+ "Tiempo de espera de SVDRP (sg)",
"SVDRP ������� (�)",
"SVDRP Timeout (s)",
"Timeout SVDRP (sec)",
@@ -4174,8 +4195,8 @@ const tI18nPhrase Phrases[] = {
"Prise en compte cha�ne (s)",
"",// TODO
"Kanavavalinnan odotusaika (s)",
- "",// TODO
- "",// TODO
+ "Czas oczekiwania na zap (s)",
+ "Considerar canal como visto (sg)",
"������� ������� (�)",
"Zap timeout(s)",
"Interval zapping (s)",
@@ -4196,8 +4217,8 @@ const tI18nPhrase Phrases[] = {
"LMMJVSD",
"MTOTFLS",
"MTKTPLS",
- "PWSCPSN",
- "LMMJVSD",
+ "PW�CPSN",
+ "LMXJVSD",
"�������",
"MTOTFLS",
"LMMJVSD",
@@ -4217,7 +4238,7 @@ const tI18nPhrase Phrases[] = {
"LunMarMerJeuVenSamDim",
"ManTirOnsTorFreL�rS�n",
"Ma Ti Ke To Pe La Su ",
- "PonWtoSroCzwPiaSobNie",
+ "PonWto�roCzwPi�SobNie",
"LunMarMieJueVieSabDom",
"������������������K��",
"M�nTisOnsTorFreL�rS�n",
@@ -4239,8 +4260,8 @@ const tI18nPhrase Phrases[] = {
" a�bc�de���fghi�jklmno�pqrstu��vwxyz0123456789-.#~,/_@",
"",// TODO
" abcdefghijklmnopqrstuvwxyz���0123456789-.#~,/_@",
- " abcdefghijklmnopqrstuvwxyz0123456789-.#~,/_@",
- " a�bcde�fghi�jklmn�o�pqrstu�vwxyz0123456789-.#~,/_@",
+ " a�bc�de�fghijkl�mn�o�pqrs�tuvwxyz��0123456789-.#~,/_@",
+ " a�bc�de�fghi�jklmn�o�pqrstu�vwxyz0123456789-.#~,/_@",
" ��������������������������������0123456789-.#~,/_@abcdefghijklmnopqrstuvwxyz",
" abcdefghijklmnopqrstuvwxyz���0123456789-.#~,/_@",
" a��bcdefghi�jklmnopqrs�t�uvwxyz0123456789-.#~,/_@",
@@ -4261,6 +4282,8 @@ const tI18nPhrase Phrases[] = {
"",//TODO
"",//TODO
" 0\t-.#~,/_@1\tabc��2\tdef3\tghi4\tjkl5\tmno�6\tpqrs7\ttuv8\twxyz9",
+ " 0\t-.#~,/_@1\tabc2��\tdef3�\tghi4\tjkl5�\tmno6��\tpqrs7�\ttuv8\twxyz9��",
+ " 0\t-.#~,/_@1\tabc��2\tdef�3\tghi�4\tjkl5\tmno��6\tpqrs7\ttuv�8\twxyz9",
"",//TODO
"",//TODO
"",//TODO
@@ -4268,9 +4291,7 @@ const tI18nPhrase Phrases[] = {
"",//TODO
"",//TODO
"",//TODO
- "",//TODO
- "",//TODO
- "",//TODO
+ " 0\t-.#~,/_@1\tabc��2\tdef3\tghi4\tjkl5\tmno��6\tpqrs�7\ttuv�8\twxyz�9",
"",//TODO
},
// Learning keys:
@@ -4283,8 +4304,8 @@ const tI18nPhrase Phrases[] = {
"Apprentissage des codes de t�l�commande",
"L�re fjernkontrolltaster",
"Kaukos��timen opettaminen",
- "Nauka kodu pilota",
- "Aprendiendo teclas del telemando",
+ "Nauka klawiszy pilota",
+ "Aprendiendo teclas del mando",
"�������� �������� �������������",
"Inl�rning av fj�rrkontrollsknappar",
"�nv��are taste telecomand�",
@@ -4304,8 +4325,8 @@ const tI18nPhrase Phrases[] = {
"Phase 1: D�tection du type de code",
"Fase 1: Finne fjernkontroll-kodetype",
"Vaihe 1: Koodauksen tunnistaminen",
- "Faza 1: Detekcja typu kodu",
- "Fase 1: Detectando tipo de receptor",
+ "Etap 1: Wykrywanie rodzaju kodu pilota",
+ "Fase 1: Detectando tipo de mando",
"���� 1: ��������� ������ RC",
"Steg1: identifiering av kod",
"Faza 1: Detec�ia tipului telecomenzii",
@@ -4325,8 +4346,8 @@ const tI18nPhrase Phrases[] = {
"Appuyer sur une touche de la t�l�commande",
"Trykk en av tastene p� fjernkontrollen",
"Paina mit� tahansa kaukos��timen n�pp�int�",
- "Nacisnac klawisz pilota",
- "Pulse una tecla en el telemando",
+ "Naci�nij dowolny klawisz na pilocie",
+ "Pulse cualquier tecla en el mando",
"����� ��� ������� ��� ���������������",
"Tryck valfri tangent p� fj�rrkontrollen",
"Ap�sa�i o tast� pe telecomand�",
@@ -4346,8 +4367,8 @@ const tI18nPhrase Phrases[] = {
"Code de la t�l�commande d�tect�!",
"Fjernkontroll-kodetype funnet!",
"N�pp�inpainallus vastaanotettu!",
- "Kod pilota zostal poznany!",
- "�C�digo detectado!",
+ "Wykryto kod pilota!",
+ "�C�digo RC detectado!",
"������� ������� RC!",
"Koden detekterad!",
"S-a detectat tipul telecomenzii!",
@@ -4367,7 +4388,7 @@ const tI18nPhrase Phrases[] = {
"N'appuyer sur aucune touche ...",
"Ikke trykk p� noen av tastene...",
"�l� paina kaukos��timen n�pp�imi�...",
- "Nie naciskac klawiszy...",
+ "Nie naciskaj teraz �adnego klawisza...",
"No pulse ninguna tecla...",
"��� ����� �������...",
"Tryck inte p� n�gon knapp...",
@@ -4388,7 +4409,7 @@ const tI18nPhrase Phrases[] = {
"Phase 2: Apprentissage des codes des touches",
"Fase 2: L�re spesifikke tastekoder",
"Vaihe 2: N�pp�inkoodien opettelu",
- "Faza 2: Nauka pojedynczych klawiszy",
+ "Etap 2: Nauka konkretnych kod�w klawiszy",
"Fase 2: Aprendiendo c�digos espec�ficos",
"���� 2: �������� ����������� ��������",
"Fas 2: Inl�rning av specifika knapp-koder",
@@ -4409,8 +4430,8 @@ const tI18nPhrase Phrases[] = {
"Appuyer sur la touche '%s'",
"Trykk tasten for '%s'",
"Paina n�pp�int� toiminnolle '%s'",
- "Nacisnac klawisz dla '%s'",
- "Pulsar tecla para '%s'",
+ "Naci�nij klawisz dla '%s'",
+ "Pulse la tecla para '%s'",
"����� �� ������� ��� '%s'",
"Tryck p� knappen f�r '%s'",
"Ap�sa�i tasta pentru '%s'",
@@ -4430,7 +4451,7 @@ const tI18nPhrase Phrases[] = {
"Appuyer sur 'Haut' pour confirmer",
"Trykk 'Opp' for � bekrefte",
"Hyv�ksy painamalla 'Yl�s'",
- "Nacisnac 'Gora' do potwierdzenia",
+ "Naci�nij 'Do g�ry' aby potwierdzi�",
"Pulse 'Arriba' para confirmar",
"����� '����' ��� �������",
"Tryck 'Upp' f�r att bekr�fta",
@@ -4451,8 +4472,8 @@ const tI18nPhrase Phrases[] = {
"Appuyer sur 'Bas' pour continuer",
"Trykk Ned' for � fortsette",
"Jatka painamalla 'Alas'",
- "Nacisnac 'Dol' zeby kontynuowac",
- "Pulse 'Abajo' para confirmar",
+ "Naci�nij 'Na d�' aby kontynuowa�",
+ "Pulse 'Abajo' para continuar",
"����� '����' ��� ��������",
"Tryck 'Ner' f�r att bekr�fta",
"Ap�sa�i 'Jos' pentru continuare",
@@ -4472,7 +4493,7 @@ const tI18nPhrase Phrases[] = {
"(Appuyer sur 'Haut' pour revenir en arri�re)",
"(trykk 'Opp' for � g� tilbake)",
"(palaa takaisin painamalla 'Yl�s')",
- "(Nacisnac 'Gora' cofa)",
+ "(naci�nij 'Do g�ry' aby si� cofn��)",
"(Pulse 'Arriba' para retornar)",
"(����� '����' ��� ���������",
"(Tryck 'Upp' f�r att backa)",
@@ -4493,8 +4514,8 @@ const tI18nPhrase Phrases[] = {
"(Appuyer sur 'Bas' pour terminer)",
"(trykk 'Ned' for � avslutte innl�ring)",
"(lopeta opettaminen painamalla 'Alas')",
- "(Nacisnac 'Dol' by zakonczyc)",
- "(Pulse 'Abajo' para terminar programaci�n teclas)",
+ "(naci�nij 'Na d�' aby zako�czy� definiowanie)",
+ "(Pulse 'Abajo' para terminar el aprendizaje)",
"(����� '����' ��� ���������� �������� ��������)",
"(Tryck 'Ner' f�r att avsluta inl�rningen)",
"(Ap�sa�i 'Jos' pentru terminare)",
@@ -4514,8 +4535,8 @@ const tI18nPhrase Phrases[] = {
"('Menu' pour passer cette touche)",
"",// TODO
"n�pp�imen puuttuessa paina 'Valikko'",
- "(Nacisnac 'Menu' by ominac klawisz)",
- "Pulse 'Menu' para saltarse esta tecla",
+ "(naci�nij 'Menu' aby pomin�� ten klawisz)",
+ "Pulse 'Men�' para omitir esta tecla",
"����� '�����' ��� ���������� ����� ��� ��������",
"(Tryck 'Meny' f�r att hoppa �ver knappen.)",
"Ap�sa�i 'Meniu' pentru a s�ri peste aceast� tast�",
@@ -4535,8 +4556,8 @@ const tI18nPhrase Phrases[] = {
"Phase 3: Sauvegarde des codes des touches",
"Fase 3: Lagre tastekoder",
"Vaihe 3: N�pp�inkoodien tallentaminen",
- "Faza 3: Zapamietac Kod",
- "Fase 3: Guardar c�digos de teclas",
+ "Etap 3: Zapisywanie kod�w klawiszy",
+ "Fase 3: Guardando los c�digos de teclas",
"���� 3: ���������� �������",
"Fas 3: Spara knappkoder",
"Faza 3: Salvarea codurilor de taste",
@@ -4556,7 +4577,7 @@ const tI18nPhrase Phrases[] = {
"Appuyer sur 'Haut' pour sauvegarder, 'Bas' pour annuler",
"Trykk 'Opp' for � lagre, 'Ned' for � avbryte",
"Paina 'Yl�s' tallentaaksesi ja 'Alas' peruuttaaksesi",
- "'Gora' zapamietuje, 'Dol' przerywa",
+ "Naci�nij 'Do g�ry' aby zapisa�, 'Na d�' - aby anulowa�",
"Pulse 'Arriba' para guardar, 'Abajo' para anular",
"����� '����' ��� ����������, '����' ��� �������",
"Tryck 'Upp' f�r att spara eller 'Ner' f�r att avsluta.",
@@ -4578,7 +4599,7 @@ const tI18nPhrase Phrases[] = {
"Haut",
"Opp",
"Yl�s",
- "Gora",
+ "Do g�ry",
"Arriba",
"����",
"Upp",
@@ -4599,7 +4620,7 @@ const tI18nPhrase Phrases[] = {
"Bas",
"Ned",
"Alas",
- "Dol",
+ "Na d�",
"Abajo",
"����",
"Ner",
@@ -4621,7 +4642,7 @@ const tI18nPhrase Phrases[] = {
"Meny",
"Valikko",
"Menu",
- "Menu",
+ "Men�",
"�����",
"Meny",
"Meniu",
@@ -4683,7 +4704,7 @@ const tI18nPhrase Phrases[] = {
"Gauche",
"Venstre",
"Vasemmalle",
- "Lewo",
+ "W lewo",
"Izquierda",
"��������",
"V�nster",
@@ -4704,7 +4725,7 @@ const tI18nPhrase Phrases[] = {
"Droite",
"H�yre",
"Oikealle",
- "Prawo",
+ "W prawo",
"Derecha",
"�����",
"H�ger",
@@ -4767,7 +4788,7 @@ const tI18nPhrase Phrases[] = {
"Jaune",
"Gul",
"Keltainen",
- "Zolty",
+ "��ty",
"Amarillo",
"�������",
"Gul",
@@ -4809,8 +4830,8 @@ const tI18nPhrase Phrases[] = {
"Info",
"",//TODO
"Tiedot",
- "",//TODO
- "",//TODO
+ "Info",
+ "Info",
"�����������",
"Info",
"Info",
@@ -4830,7 +4851,7 @@ const tI18nPhrase Phrases[] = {
"Lecture",
"",// TODO
"Toista",
- "Odtworzenie",
+ "Odtw�rz",
"Reproducir",
"�����������",
"Spela upp",
@@ -4851,7 +4872,7 @@ const tI18nPhrase Phrases[] = {
"Pause",
"",// TODO
"Tauko",
- "Przerwa",
+ "Pauza",
"Pausa",
"�����",
"Pausa",
@@ -4893,7 +4914,7 @@ const tI18nPhrase Phrases[] = {
"Enregistrement",
"",// TODO
"Tallenna",
- "Nagrywac",
+ "Nagrywaj",
"Grabar",
"E������",
"Spela in",
@@ -4914,8 +4935,8 @@ const tI18nPhrase Phrases[] = {
"Avance rapide",
"",// TODO
"Pikakelaus >>",
- "Naprzod",
- "Adelante r�pido",
+ "Do przodu",
+ "Avance r�pido",
"�������� ������",
"Snabbspolning fram�t",
"Derulare �nainte",
@@ -4935,8 +4956,8 @@ const tI18nPhrase Phrases[] = {
"Retour rapide",
"",// TODO
"Pikakelaus <<",
- "Wstecz",
- "Atr�s r�pido",
+ "Do ty�u",
+ "Retroceso r�pido",
"�������� ����",
"Snabbspolning bak�t",
"Derulare �napoi",
@@ -4956,8 +4977,8 @@ const tI18nPhrase Phrases[] = {
"Veille", // This one caused some bug reports ;)
"Power",
"Virtakytkin",
- "Wylaczyc",
- "Corriente",
+ "Wy��cz",
+ "Apagar",
"K�������",
"P�/Av",
"�nchidere",
@@ -4977,8 +4998,8 @@ const tI18nPhrase Phrases[] = {
"Cha�ne+",
"",// TODO
"Kanava +",
- "Kanal+",
- "Canal +",
+ "Kana�+",
+ "Canal+",
"������+",
"Kanal+",
"Canal+",
@@ -4998,8 +5019,8 @@ const tI18nPhrase Phrases[] = {
"Cha�ne-",
"",// TODO
"Kanava -",
- "Kanal-",
- "Canal -",
+ "Kana�-",
+ "Canal-",
"������-",
"Kanal-",
"Canal-",
@@ -5019,7 +5040,7 @@ const tI18nPhrase Phrases[] = {
"Volume+",
"Volum+",
"��nenvoimakkuus +",
- "Glosnej",
+ "G�o�niej",
"Volumen+",
"������+",
"Volym+",
@@ -5061,7 +5082,7 @@ const tI18nPhrase Phrases[] = {
"Coupure du son",
"Lyd av",
"��net�n",
- "Cisza",
+ "Wycisz",
"Mudo",
"�������",
"Ljud Av",
@@ -5082,8 +5103,8 @@ const tI18nPhrase Phrases[] = {
"Audio",
"",// TODO
"��ni",
- "",// TODO
- "",// TODO
+ "D�wi�k",
+ "Audio",
"����",
"Ljud",
"Sunet",
@@ -5146,7 +5167,7 @@ const tI18nPhrase Phrases[] = {
"off",
"",// TODO
"pois",
- "wyl.",
+ "wy��cz",
"off",
"�������",
"av",
@@ -5167,7 +5188,7 @@ const tI18nPhrase Phrases[] = {
"aucun",
"",// TODO
"tyhj�",
- "zaden",
+ "brak",
"ninguno",
"������",
"ingen",
@@ -5209,8 +5230,8 @@ const tI18nPhrase Phrases[] = {
"haut",
"�vre",
"yl�reuna",
- "gora",
- "parte superior",
+ "g�ra",
+ "arriba",
"����",
"�vre",
"sus",
@@ -5230,8 +5251,8 @@ const tI18nPhrase Phrases[] = {
"bas",
"nedre",
"alareuna",
- "dol",
- "parte inferior",
+ "d�",
+ "abajo",
"����",
"undre",
"jos",
@@ -5251,7 +5272,7 @@ const tI18nPhrase Phrases[] = {
"Disque",
"Disk",
"Levy",
- "Disk",
+ "Dysk",
"Disco",
"������",
"Disk",
@@ -5272,7 +5293,7 @@ const tI18nPhrase Phrases[] = {
"restant",
"ledig",
"vapaana",
- "pozostalo",
+ "wolnego",
"libre",
"���������",
"ledigt",
@@ -5294,7 +5315,7 @@ const tI18nPhrase Phrases[] = {
"Hopp: ",
"Siirry: ",
"Skok: ",
- "Salta a: ",
+ "Saltar: ",
"����������: ",
"Hopp: ",
"Salt la: ",
@@ -5314,7 +5335,7 @@ const tI18nPhrase Phrases[] = {
"Volume ",
"Volum ",
"��nenvoimakkuus ",
- "Glosnosc ",
+ "G�o�no�� ",
"Volumen ",
"������ ",
"Volym ",
@@ -5335,7 +5356,7 @@ const tI18nPhrase Phrases[] = {
" Arr�ter la lecture",
" Stopp avspilling",
" Lopeta toisto",
- " Zatrzymac odtwarzanie",
+ " Zatrzymaj odtwarzanie",
" Parar reproduci�n",
" ����� ������������",
" Avsluta uppspelning",
@@ -5356,7 +5377,7 @@ const tI18nPhrase Phrases[] = {
" Arr�ter l'enregistrement ",
" Stopp opptak fra ",
" Lopeta tallennus ",
- " Zatrzymac nagrywanie ",
+ " Zatrzymaj nagrywanie ",
" Parar grabaci�n ",
" ����� ������� ",
" Avsluta inspelning ",
@@ -5377,8 +5398,8 @@ const tI18nPhrase Phrases[] = {
" Annuler le montage",
" Avbryt redigering",
" Peru muokkaus",
- " Przerwac montaz",
- " Anular modificaci�n ",
+ " Anuluj edycj�",
+ " Anular edici�n",
" ������� ������������",
" Avbryt redigering",
" Opre�te montajul �nregistr�rii",
@@ -5398,8 +5419,8 @@ const tI18nPhrase Phrases[] = {
"Changement de carte DVB primaire...",
"Bytter f�rste DVB-enhet...",
"Vaihdetaan ensisijaista DVB-sovitinta...",
- "Pierwszy interfejs DVB przelacza...",
- "Cambio al interface DVB primario...",
+ "Prz곱czam na pierwszy interfejs DVB...",
+ "Cambiando el interfaz DVB primario...",
"� ����� DVB ����� �������...",
"Byter prim�r DVB enhet...",
"Comut dispozitiv DVB primar...",
@@ -5419,8 +5440,8 @@ const tI18nPhrase Phrases[] = {
"Haut/Bas -> nouvelle place - OK -> d�placer",
"Opp/Ned for ny plass - OK for � flytte",
"'Yl�s/Alas' uusi paikka - 'OK' hyv�ksy",
- "Gora/Dol na nowa pozycje - Ok zmienia",
- "Arriba/Abajo para el nuevo lugar - OK para mover",
+ "Do g�ry/Na d� na now� pozycj� - Ok zatwierdza",
+ "Arriba/Abajo para mover - OK para confirmar",
"����/���� ��� ��� ����. ���� ��",
"Upp/Ner f�r nya platsen - d�refter OK f�r att flytta",
"Sus/Jos pentru noua loca�ie - OK pentru a muta",
@@ -5440,8 +5461,8 @@ const tI18nPhrase Phrases[] = {
"Op�ration de montage lanc�e",
"Redigeringsprosess startet",
"Muokkaus aloitettu",
- "Uruchomiony proces montazu",
- "Proceso modificaci�n iniciado",
+ "Proces edycji rozpocz�ty",
+ "Proceso de edici�n iniciado",
"������ � �����������",
"Redigeringen startar",
"Montajul �nregistr�rii a �nceput",
@@ -5461,8 +5482,8 @@ const tI18nPhrase Phrases[] = {
"Montage termin�",
"Redigeringsprosess avsluttet",
"Muokkaus valmis",
- "Proces montazu zakonczony",
- "Proceso de modificaci�n terminado",
+ "Proces edycji zako�czony",
+ "Proceso de edici�n terminado",
"� ����������� ��������",
"Redigering avslutad",
"Montajul �nregistr�rii s-a terminat",
@@ -5470,7 +5491,7 @@ const tI18nPhrase Phrases[] = {
"Proc�s d'edici� finalitzat",
"������ �������",
"Rezanje zavr�eno",
- "Redigeerimine on l�petatud",
+ "Redigeerimine l�petatud",
"Redigeringsproces afsluttet",
},
{ "Editing process failed!",
@@ -5482,8 +5503,8 @@ const tI18nPhrase Phrases[] = {
"Echec du montage!",
"Feil under redigering!",
"Muokkaus ep�onnistui!",
- "Bledny proces montazu!",
- "Modificaci�n ha fallado!",
+ "Proces edycji nie powi�d� si�!",
+ "�Proceso de edici�n fallido!",
"� ����������� �������!",
"Redigeringsprocessen misslyckades",
"Montajul �nregistr�rii a e�uat",
@@ -5503,6 +5524,8 @@ const tI18nPhrase Phrases[] = {
"",//TODO
"",//TODO
"Tallennus aloitettu",
+ "Rozpocz�to nagrywanie",
+ "Iniciando grabaci�n",
"",//TODO
"",//TODO
"",//TODO
@@ -5510,9 +5533,7 @@ const tI18nPhrase Phrases[] = {
"",//TODO
"",//TODO
"",//TODO
- "",//TODO
- "",//TODO
- "",//TODO
+ "Salvestamine algas",
"",//TODO
},
{ "Pausing live video...",
@@ -5524,8 +5545,8 @@ const tI18nPhrase Phrases[] = {
"Pause de l'�mission en direct...",
"",// TODO
"Pys�ytet��n l�hetys...",
- "Zatrzymany program biezacy...",
- "Emisi�n en directo parada...",
+ "Pauzuj� program na �ywo...",
+ "Pausa de la emisi�n en directo...",
"������ �������� �������",
"Pausar direktinspelningen",
"Trec �n pauz� emisiunea transmis�...",
@@ -5545,8 +5566,8 @@ const tI18nPhrase Phrases[] = {
"Mise � jour du guide des programmes",
"",// TODO
"Ohjelmaoppaan p�ivitys aloitettu",
- "",// TODO
- "",// TODO
+ "Rozpoczynam skanowanie EPG",
+ "Iniciando la exploraci�n de EPG",
"���� ������ EPG",
"P�b�rjar EPG skanning",
"Pornesc achizi�ia EPG",
@@ -5566,7 +5587,7 @@ const tI18nPhrase Phrases[] = {
"Ce plugin n'a pas de param�tres!",
"",// TODO
"T�ll� laajennoksella ei ole asetuksia!",
- "Ten plugin niema parametrow!",
+ "Ta wtyczka nie ma �adnych ustawie�!",
"Este plugin no admite configuraci�n",
"���� � �������� ��� ���� �����������!",
"Den h�r modulen har inga parametrar",
@@ -5587,8 +5608,8 @@ const tI18nPhrase Phrases[] = {
"VDR Classique",// TODO
"",// TODO
"Klassinen VDR",
- "",// TODO
- "",// TODO
+ "Klasyczny VDR",
+ "VDR cl�sico",
"������� VDR",
"Klassisk VDR",
"VDR clasic",
@@ -5608,8 +5629,8 @@ const tI18nPhrase Phrases[] = {
"Consoles ST:TNG",
"",// TODO
"ST:TNG konsoli",
- "",// TODO
- "",// TODO
+ "Panel ST:TNG",
+ "Paneles ST:TNG",
"������ ST:TNG",
"ST:TNG konsoll",
"Cons. ST:TNG",
@@ -5629,8 +5650,8 @@ const tI18nPhrase Phrases[] = {
"Sans titre",
"",// TODO
"Ei esityst�",
- "",// TODO
- "",// TODO
+ "Bez tytu�u",
+ "Sin t�tulo",
"����� �����",
"ingen titel",
"F�r� titlu",
diff --git a/keys.c b/keys.c
index 4215d7b..9fd5552 100644
--- a/keys.c
+++ b/keys.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: keys.c 1.10 2006/01/05 15:39:26 kls Exp $
+ * $Id: keys.c 1.11 2006/01/16 17:01:25 kls Exp $
*/
#include "keys.h"
@@ -250,9 +250,11 @@ cKeyMacros KeyMacros;
const cKeyMacro *cKeyMacros::Get(eKeys Key)
{
- for (cKeyMacro *k = First(); k; k = Next(k)) {
- if (*k->Macro() == Key)
- return k;
- }
+ if (Key != kNone) {
+ for (cKeyMacro *k = First(); k; k = Next(k)) {
+ if (*k->Macro() == Key)
+ return k;
+ }
+ }
return NULL;
}
diff --git a/menu.c b/menu.c
index dff1909..ec49b1c 100644
--- a/menu.c
+++ b/menu.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: menu.c 1.396 2006/01/15 15:02:36 kls Exp $
+ * $Id: menu.c 1.403 2006/01/22 16:06:39 kls Exp $
*/
#include "menu.h"
@@ -36,6 +36,8 @@
#define MAXRECORDCONTROLS (MAXDEVICES * MAXRECEIVERS)
#define MAXINSTANTRECTIME (24 * 60 - 1) // 23:59 hours
#define MAXWAITFORCAMMENU 4 // seconds to wait for the CAM menu to open
+#define MINFREEDISK 300 // minimum free disk space required to start recording
+#define NODISKSPACEDELTA 300 // seconds between "Not enough disk space to start recording!" messages
#define CHNUMWIDTH (numdigits(Channels.MaxNumber()) + 1)
@@ -2996,9 +2998,12 @@ static void SetTrackDescriptions(bool Live)
#define DIRECTCHANNELTIMEOUT 1000 //ms
+cDisplayChannel *cDisplayChannel::currentDisplayChannel = NULL;
+
cDisplayChannel::cDisplayChannel(int Number, bool Switched)
:cOsdObject(true)
{
+ currentDisplayChannel = this;
group = -1;
withInfo = !Switched || Setup.ShowInfoOnChSwitch;
displayChannel = Skins.Current()->DisplayChannel(withInfo);
@@ -3017,12 +3022,15 @@ cDisplayChannel::cDisplayChannel(int Number, bool Switched)
cDisplayChannel::cDisplayChannel(eKeys FirstKey)
:cOsdObject(true)
{
+ currentDisplayChannel = this;
group = -1;
number = 0;
+ timeout = true;
lastPresent = lastFollowing = NULL;
lastTime.Set();
withInfo = Setup.ShowInfoOnChSwitch;
displayChannel = Skins.Current()->DisplayChannel(withInfo);
+ channel = Channels.GetByNumber(cDevice::CurrentChannel());
ProcessKey(FirstKey);
}
@@ -3030,6 +3038,7 @@ cDisplayChannel::~cDisplayChannel()
{
delete displayChannel;
cStatus::MsgOsdClear();
+ currentDisplayChannel = NULL;
}
void cDisplayChannel::DisplayChannel(void)
@@ -3063,14 +3072,27 @@ void cDisplayChannel::DisplayInfo(void)
void cDisplayChannel::Refresh(void)
{
- channel = Channels.GetByNumber(cDevice::CurrentChannel());
DisplayChannel();
displayChannel->SetEvents(NULL, NULL);
- lastTime.Set();
+}
+
+cChannel *cDisplayChannel::NextAvailableChannel(cChannel *Channel, int Direction)
+{
+ if (Direction) {
+ while (Channel) {
+ Channel = Direction > 0 ? Channels.Next(Channel) : Channels.Prev(Channel);
+ if (Channel && !Channel->GroupSep() && cDevice::GetDevice(Channel, 0))
+ return Channel;
+ }
+ }
+ return NULL;
}
eOSState cDisplayChannel::ProcessKey(eKeys Key)
{
+ cChannel *NewChannel = NULL;
+ if (Key != kNone)
+ lastTime.Set();
switch (Key) {
case k0:
if (number == 0) {
@@ -3081,31 +3103,32 @@ eOSState cDisplayChannel::ProcessKey(eKeys Key)
case k1 ... k9:
if (number >= 0) {
number = number * 10 + Key - k0;
- if (number > 0) {
- channel = Channels.GetByNumber(number);
- displayChannel->SetEvents(NULL, NULL);
- withInfo = false;
- DisplayChannel();
- lastTime.Set();
- // Lets see if there can be any useful further input:
- int n = channel ? number * 10 : 0;
- cChannel *ch = channel;
- while (ch && (ch = Channels.Next(ch)) != NULL) {
- if (!ch->GroupSep()) {
- if (n <= ch->Number() && ch->Number() <= n + 9) {
- n = 0;
- break;
- }
- if (ch->Number() > n)
- n *= 10;
+ channel = Channels.GetByNumber(number);
+ displayChannel->SetEvents(NULL, NULL);
+ withInfo = false;
+ DisplayChannel();
+ // Lets see if there can be any useful further input:
+ int n = channel ? number * 10 : 0;
+ int m = 10;
+ cChannel *ch = channel;
+ while (ch && (ch = Channels.Next(ch)) != NULL) {
+ if (!ch->GroupSep()) {
+ if (n <= ch->Number() && ch->Number() < n + m) {
+ n = 0;
+ break;
+ }
+ if (ch->Number() > n) {
+ n *= 10;
+ m *= 10;
}
}
- if (n > 0) {
- // This channel is the only one that fits the input, so let's take it right away:
- displayChannel->Flush(); // makes sure the user sees his last input
- Channels.SwitchTo(number);
- return osEnd;
}
+ if (n > 0) {
+ // This channel is the only one that fits the input, so let's take it right away:
+ displayChannel->Flush(); // makes sure the user sees his last input
+ NewChannel = channel;
+ withInfo = true;
+ number = 0;
}
}
break;
@@ -3136,18 +3159,27 @@ eOSState cDisplayChannel::ProcessKey(eKeys Key)
group = -1;
}
}
- lastTime.Set();
break;
case kUp|k_Repeat:
case kUp:
case kDown|k_Repeat:
case kDown:
- cDevice::SwitchChannel(NORMALKEY(Key) == kUp ? 1 : -1);
- // no break here
case kChanUp|k_Repeat:
case kChanUp:
case kChanDn|k_Repeat:
- case kChanDn:
+ case kChanDn: {
+ eKeys k = NORMALKEY(Key);
+ cChannel *ch = NextAvailableChannel(channel, (k == kUp || k == kChanUp) ? 1 : -1);
+ if (ch)
+ channel = ch;
+ }
+ // no break here
+ case kUp|k_Release:
+ case kDown|k_Release:
+ case kChanUp|k_Release:
+ case kChanDn|k_Release:
+ if (!(Key & k_Repeat) && channel)
+ NewChannel = channel;
withInfo = true;
group = -1;
number = 0;
@@ -3155,43 +3187,57 @@ eOSState cDisplayChannel::ProcessKey(eKeys Key)
break;
case kNone:
if (number && lastTime.Elapsed() > DIRECTCHANNELTIMEOUT) {
- if (Channels.GetByNumber(number))
- Channels.SwitchTo(number);
- else {
- number = 0;
- channel = NULL;
- DisplayChannel();
- lastTime.Set();
- return osContinue;
- }
- return osEnd;
+ channel = Channels.GetByNumber(number);
+ if (channel)
+ NewChannel = channel;
+ withInfo = true;
+ number = 0;
+ Refresh();
+ lastTime.Set();
}
break;
//TODO
//XXX case kGreen: return osEventNow;
//XXX case kYellow: return osEventNext;
- case kOk: if (group >= 0) {
- channel = Channels.Get(Channels.GetNextNormal(group));
- if (channel)
- Channels.SwitchTo(channel->Number());
- withInfo = true;
- group = -1;
- Refresh();
- break;
- }
- else if (number > 0 && channel)
- Channels.SwitchTo(number);
- return osEnd;
- default: if ((Key & (k_Repeat | k_Release)) == 0) {
- cRemote::Put(Key);
- return osEnd;
- }
+ case kOk:
+ if (group >= 0) {
+ channel = Channels.Get(Channels.GetNextNormal(group));
+ if (channel)
+ NewChannel = channel;
+ withInfo = true;
+ group = -1;
+ Refresh();
+ }
+ else if (number > 0) {
+ channel = Channels.GetByNumber(number);
+ if (channel)
+ NewChannel = channel;
+ withInfo = true;
+ number = 0;
+ Refresh();
+ }
+ else
+ return osEnd;
+ break;
+ default:
+ if ((Key & (k_Repeat | k_Release)) == 0) {
+ cRemote::Put(Key);
+ return osEnd;
+ }
};
if (!timeout || lastTime.Elapsed() < (uint64)(Setup.ChannelInfoTime * 1000)) {
- if (!number && group < 0 && channel && channel->Number() != cDevice::CurrentChannel())
- Refresh(); // makes sure a channel switch through the SVDRP CHAN command is displayed
+ if (Key == kNone && !number && group < 0 && !NewChannel && channel && channel->Number() != cDevice::CurrentChannel()) {
+ // makes sure a channel switch through the SVDRP CHAN command is displayed
+ channel = Channels.GetByNumber(cDevice::CurrentChannel());
+ Refresh();
+ lastTime.Set();
+ }
DisplayInfo();
displayChannel->Flush();
+ if (NewChannel) {
+ Channels.SwitchTo(NewChannel->Number());
+ channel = NewChannel;
+ }
return osContinue;
}
return osEnd;
@@ -3520,6 +3566,23 @@ int cRecordControls::state = 0;
bool cRecordControls::Start(cTimer *Timer, bool Pause)
{
+ static time_t LastNoDiskSpaceMessage = 0;
+ int FreeMB = 0;
+ if (Timer) {
+ AssertFreeDiskSpace(Timer->Priority(), !Timer->Pending());
+ Timer->SetPending(true);
+ }
+ VideoDiskSpace(&FreeMB);
+ if (FreeMB < MINFREEDISK) {
+ if (!Timer || time(NULL) - LastNoDiskSpaceMessage > NODISKSPACEDELTA) {
+ isyslog("not enough disk space to start recording%s%s", Timer ? " timer " : "", Timer ? *Timer->ToDescr() : "");
+ Skins.Message(mtWarning, tr("Not enough disk space to start recording!"));
+ LastNoDiskSpaceMessage = time(NULL);
+ }
+ return false;
+ }
+ LastNoDiskSpaceMessage = 0;
+
ChangeState();
int ch = Timer ? Timer->Channel()->Number() : cDevice::CurrentChannel();
cChannel *channel = Channels.GetByNumber(ch);
@@ -3548,8 +3611,10 @@ bool cRecordControls::Start(cTimer *Timer, bool Pause)
}
}
}
- else if (!Timer || (Timer->Priority() >= Setup.PrimaryLimit && !Timer->Pending()))
+ else if (!Timer || (Timer->Priority() >= Setup.PrimaryLimit && !Timer->Pending())) {
isyslog("no free DVB device to record channel %d!", ch);
+ Skins.Message(mtError, tr("No free DVB device to record!"));
+ }
}
else
esyslog("ERROR: channel %d not defined!", ch);
diff --git a/menu.h b/menu.h
index f88a597..55d179c 100644
--- a/menu.h
+++ b/menu.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: menu.h 1.81 2006/01/06 11:30:38 kls Exp $
+ * $Id: menu.h 1.82 2006/01/22 14:24:31 kls Exp $
*/
#ifndef __MENU_H
@@ -82,14 +82,17 @@ private:
cChannel *channel;
const cEvent *lastPresent;
const cEvent *lastFollowing;
+ static cDisplayChannel *currentDisplayChannel;
void DisplayChannel(void);
void DisplayInfo(void);
void Refresh(void);
+ cChannel *NextAvailableChannel(cChannel *Channel, int Direction);
public:
cDisplayChannel(int Number, bool Switched);
cDisplayChannel(eKeys FirstKey);
virtual ~cDisplayChannel();
virtual eOSState ProcessKey(eKeys Key);
+ static bool IsOpen(void) { return currentDisplayChannel != NULL; }
};
class cDisplayVolume : public cOsdObject {
diff --git a/menuitems.c b/menuitems.c
index 88e8a50..455070d 100644
--- a/menuitems.c
+++ b/menuitems.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: menuitems.c 1.29 2006/01/07 15:37:03 kls Exp $
+ * $Id: menuitems.c 1.30 2006/01/21 12:27:14 kls Exp $
*/
#include "menuitems.h"
@@ -15,6 +15,8 @@
#include "skins.h"
#include "status.h"
+#define AUTO_ADVANCE_TIMEOUT 1500 // ms before auto advance when entering characters via numeric keys
+
const char *FileNameChars = " abcdefghijklmnopqrstuvwxyz0123456789-.#~,/_@";
// --- cMenuEditItem ---------------------------------------------------------
@@ -262,6 +264,23 @@ void cMenuEditStrItem::SetHelpKeys(void)
cSkinDisplay::Current()->SetButtons(NULL);
}
+void cMenuEditStrItem::AdvancePos(void)
+{
+ if (pos < length - 2 && pos < int(strlen(value)) ) {
+ if (++pos >= int(strlen(value))) {
+ if (pos >= 2 && value[pos - 1] == ' ' && value[pos - 2] == ' ')
+ pos--; // allow only two blanks at the end
+ else {
+ value[pos] = ' ';
+ value[pos + 1] = 0;
+ }
+ }
+ }
+ newchar = true;
+ if (!insert && isalpha(value[pos]))
+ uppercase = isupper(value[pos]);
+}
+
void cMenuEditStrItem::Set(void)
{
char buf[1000];
@@ -326,6 +345,13 @@ eOSState cMenuEditStrItem::ProcessKey(eKeys Key)
bool SameKey = Key == lastKey;
if (Key != kNone)
lastKey = Key;
+ else if (!newchar && autoAdvanceTimeout.TimedOut()) {
+ AdvancePos();
+ newchar = true;
+ currentChar = NULL;
+ Set();
+ return osContinue;
+ }
switch (Key) {
case kRed: // Switch between upper- and lowercase characters
if (InEditMode()) {
@@ -382,19 +408,7 @@ eOSState cMenuEditStrItem::ProcessKey(eKeys Key)
uppercase = isupper(value[pos]);
break;
case kRight|k_Repeat:
- case kRight: if (pos < length - 2 && pos < int(strlen(value)) ) {
- if (++pos >= int(strlen(value))) {
- if (pos >= 2 && value[pos - 1] == ' ' && value[pos - 2] == ' ')
- pos--; // allow only two blanks at the end
- else {
- value[pos] = ' ';
- value[pos + 1] = 0;
- }
- }
- }
- newchar = true;
- if (!insert && isalpha(value[pos]))
- uppercase = isupper(value[pos]);
+ case kRight: AdvancePos();
if (pos == 0)
SetHelpKeys();
break;
@@ -413,15 +427,19 @@ eOSState cMenuEditStrItem::ProcessKey(eKeys Key)
value[pos] = toupper(Inc(tolower(value[pos]), NORMALKEY(Key) == kUp));
else
value[pos] = Inc( value[pos], NORMALKEY(Key) == kUp);
- newchar = false;
+ newchar = true;
}
else
return cMenuEditItem::ProcessKey(Key);
break;
+ case k0|k_Repeat ... k9|k_Repeat:
case k0 ... k9: {
- if (!SameKey)
- currentChar = NULL;
if (InEditMode()) {
+ if (!SameKey) {
+ if (!newchar)
+ AdvancePos();
+ currentChar = NULL;
+ }
if (insert && newchar) {
// create a new character in insert mode
if (int(strlen(value)) < length - 1) {
@@ -445,6 +463,7 @@ eOSState cMenuEditStrItem::ProcessKey(eKeys Key)
currentChar++;
}
newchar = false;
+ autoAdvanceTimeout.Set(AUTO_ADVANCE_TIMEOUT);
}
else
return cMenuEditItem::ProcessKey(Key);
diff --git a/menuitems.h b/menuitems.h
index bfaf436..ec8e08f 100644
--- a/menuitems.h
+++ b/menuitems.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: menuitems.h 1.15 2006/01/06 15:16:25 kls Exp $
+ * $Id: menuitems.h 1.16 2006/01/21 10:45:55 kls Exp $
*/
#ifndef __MENUITEMS_H
@@ -85,7 +85,9 @@ private:
const char *charMap;
const char *currentChar;
eKeys lastKey;
+ cTimeMs autoAdvanceTimeout;
void SetHelpKeys(void);
+ void AdvancePos(void);
virtual void Set(void);
char Inc(char c, bool Up);
protected:
diff --git a/recording.c b/recording.c
index 0f704af..5c57e18 100644
--- a/recording.c
+++ b/recording.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: recording.c 1.132 2006/01/08 11:40:13 kls Exp $
+ * $Id: recording.c 1.133 2006/01/20 17:18:59 kls Exp $
*/
#include "recording.h"
@@ -117,7 +117,7 @@ void RemoveDeletedRecordings(void)
}
}
-void AssertFreeDiskSpace(int Priority)
+void AssertFreeDiskSpace(int Priority, bool Force)
{
static cMutex Mutex;
cMutexLock MutexLock(&Mutex);
@@ -126,7 +126,7 @@ void AssertFreeDiskSpace(int Priority)
// it will get removed during the next call.
static time_t LastFreeDiskCheck = 0;
int Factor = (Priority == -1) ? 10 : 1;
- if (time(NULL) - LastFreeDiskCheck > DISKCHECKDELTA / Factor) {
+ if (Force || time(NULL) - LastFreeDiskCheck > DISKCHECKDELTA / Factor) {
if (!VideoFileSpaceAvailable(MINDISKSPACE)) {
// Make sure only one instance of VDR does this:
cLockFile LockFile(VideoDirectory);
diff --git a/recording.h b/recording.h
index d79b6b4..7eaddcc 100644
--- a/recording.h
+++ b/recording.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: recording.h 1.48 2005/12/18 11:26:51 kls Exp $
+ * $Id: recording.h 1.49 2006/01/20 17:18:28 kls Exp $
*/
#ifndef __RECORDING_H
@@ -21,9 +21,11 @@
extern bool VfatFileSystem;
void RemoveDeletedRecordings(void);
-void AssertFreeDiskSpace(int Priority = 0);
+void AssertFreeDiskSpace(int Priority = 0, bool Force = false);
///< The special Priority value -1 means that we shall get rid of any
///< deleted recordings faster than normal (because we're cutting).
+ ///< If Force is true, the check will be done even if the timeout
+ ///< hasn't expired yet.
class cResumeFile {
private:
diff --git a/tools.c b/tools.c
index 33b2ec6..031c120 100644
--- a/tools.c
+++ b/tools.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: tools.c 1.110 2006/01/15 14:31:45 kls Exp $
+ * $Id: tools.c 1.112 2006/01/20 14:01:28 kls Exp $
*/
#include "tools.h"
@@ -26,9 +26,22 @@ extern "C" {
#include <unistd.h>
#include <utime.h>
#include "i18n.h"
+#include "thread.h"
int SysLogLevel = 3;
+#define MAXSYSLOGBUF 256
+
+void syslog_with_tid(int priority, const char *format, ...)
+{
+ va_list ap;
+ char fmt[MAXSYSLOGBUF];
+ snprintf(fmt, sizeof(fmt), "[%d] %s", cThread::ThreadId(), format);
+ va_start(ap, format);
+ vsyslog(priority, fmt, ap);
+ va_end(ap);
+}
+
int BCD2INT(int x)
{
return ((1000000 * BCDCHARTOINT((x >> 24) & 0xFF)) +
@@ -125,13 +138,14 @@ char *strn0cpy(char *dest, const char *src, size_t n)
char *strreplace(char *s, char c1, char c2)
{
- char *p = s;
-
- while (p && *p) {
- if (*p == c1)
- *p = c2;
- p++;
- }
+ if (s) {
+ char *p = s;
+ while (*p) {
+ if (*p == c1)
+ *p = c2;
+ p++;
+ }
+ }
return s;
}
diff --git a/tools.h b/tools.h
index 23afea5..7e57744 100644
--- a/tools.h
+++ b/tools.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: tools.h 1.89 2006/01/08 11:40:37 kls Exp $
+ * $Id: tools.h 1.90 2006/01/15 16:19:56 kls Exp $
*/
#ifndef __TOOLS_H
@@ -26,9 +26,9 @@ typedef unsigned long long int uint64;
extern int SysLogLevel;
-#define esyslog(a...) void( (SysLogLevel > 0) ? syslog(LOG_ERR, a) : void() )
-#define isyslog(a...) void( (SysLogLevel > 1) ? syslog(LOG_INFO, a) : void() )
-#define dsyslog(a...) void( (SysLogLevel > 2) ? syslog(LOG_DEBUG, a) : void() )
+#define esyslog(a...) void( (SysLogLevel > 0) ? syslog_with_tid(LOG_ERR, a) : void() )
+#define isyslog(a...) void( (SysLogLevel > 1) ? syslog_with_tid(LOG_INFO, a) : void() )
+#define dsyslog(a...) void( (SysLogLevel > 2) ? syslog_with_tid(LOG_DEBUG, a) : void() )
#define LOG_ERROR esyslog("ERROR (%s,%d): %m", __FILE__, __LINE__)
#define LOG_ERROR_STR(s) esyslog("ERROR: %s: %m", s)
@@ -52,6 +52,8 @@ template<class T> inline int sgn(T a) { return a < 0 ? -1 : a > 0 ? 1 : 0; }
template<class T> inline void swap(T &a, T &b) { T t = a; a = b; b = t; }
#endif
+void syslog_with_tid(int priority, const char *format, ...);
+
#define BCDCHARTOINT(x) (10 * ((x & 0xF0) >> 4) + (x & 0xF))
int BCD2INT(int x);
diff --git a/transfer.c b/transfer.c
index f34dea7..8a0db4d 100644
--- a/transfer.c
+++ b/transfer.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: transfer.c 1.30 2005/08/14 10:55:03 kls Exp $
+ * $Id: transfer.c 1.31 2006/01/21 14:13:16 kls Exp $
*/
#include "transfer.h"
@@ -63,6 +63,7 @@ void cTransfer::Action(void)
int Result = 0;
#ifdef FW_NEEDS_BUFFER_RESERVE_FOR_AC3
bool GotBufferReserve = false;
+ GotBufferReserve = true; //XXX remove this line if you absolutely need the buffer reserve
int RequiredBufferReserve = KILOBYTE(DvbCardWith4MBofSDRAM ? 288 : 576);
#endif
while (Running()) {
diff --git a/vdr.c b/vdr.c
index bd4f950..1658590 100644
--- a/vdr.c
+++ b/vdr.c
@@ -22,7 +22,7 @@
*
* The project's page is at http://www.cadsoft.de/vdr
*
- * $Id: vdr.c 1.238 2006/01/15 13:31:57 kls Exp $
+ * $Id: vdr.c 1.244 2006/01/22 15:59:13 kls Exp $
*/
#include <getopt.h>
@@ -447,7 +447,7 @@ int main(int argc, char *argv[])
// Log file:
if (SysLogLevel > 0)
- openlog("vdr", LOG_PID | LOG_CONS, SysLogTarget);
+ openlog("vdr", LOG_CONS, SysLogTarget); // LOG_PID doesn't work as expected under NPTL
// Check the video directory:
@@ -727,7 +727,7 @@ int main(int argc, char *argv[])
LastChannel = cDevice::CurrentChannel();
LastChannelChanged = time(NULL);
}
- if (time(NULL) - LastChannelChanged >= Setup.ZapTimeout && LastChannel != PreviousChannel[0] && LastChannel != PreviousChannel[1])
+ if (time(NULL) - LastChannelChanged >= Setup.ZapTimeout && LastChannel != PreviousChannel[PreviousChannelIndex])
PreviousChannel[PreviousChannelIndex ^= 1] = LastChannel;
// Timers and Recordings:
if (!Timers.BeingEdited()) {
@@ -822,6 +822,7 @@ int main(int argc, char *argv[])
}
}
break;
+ // Direct main menu functions:
#define DirectMainFunction(function)\
DELETE_MENU;\
if (cControl::Control())\
@@ -855,7 +856,15 @@ int main(int argc, char *argv[])
case kChanUp:
case kChanDn|k_Repeat:
case kChanDn:
- cDevice::SwitchChannel(NORMALKEY(key) == kChanUp ? 1 : -1);
+ if (!Interact)
+ Menu = new cDisplayChannel(NORMALKEY(key));
+ else if (cDisplayChannel::IsOpen()) {
+ Interact->ProcessKey(key);
+ continue;
+ }
+ else
+ cDevice::SwitchChannel(NORMALKEY(key) == kChanUp ? 1 : -1);
+ key = kNone; // nobody else needs to see these keys
break;
// Volume control:
case kVolUp|k_Repeat:
@@ -901,9 +910,7 @@ int main(int argc, char *argv[])
case kRecord:
if (!cControl::Control()) {
if (cRecordControls::Start())
- ;//XXX Skins.Message(mtInfo, tr("Recording"));
- else
- Skins.Message(mtError, tr("No free DVB device to record!"));
+ Skins.Message(mtInfo, tr("Recording started"));
key = kNone; // nobody else needs to see this key
}
break;
@@ -947,8 +954,6 @@ int main(int argc, char *argv[])
case osRecord: DELETE_MENU;
if (cRecordControls::Start())
Skins.Message(mtInfo, tr("Recording started"));
- else
- Skins.Message(mtError, tr("No free DVB device to record!"));
break;
case osRecordings:
DELETE_MENU;
@@ -985,7 +990,7 @@ int main(int argc, char *argv[])
}
else {
// Key functions in "normal" viewing mode:
- if (KeyMacros.Get(key)) {
+ if (key != kNone && KeyMacros.Get(key)) {
cRemote::PutMacro(key);
key = kNone;
}
@@ -999,21 +1004,17 @@ int main(int argc, char *argv[])
}
// Direct Channel Select:
case k1 ... k9:
- Menu = new cDisplayChannel(key);
- break;
// Left/Right rotates trough channel groups:
case kLeft|k_Repeat:
case kLeft:
case kRight|k_Repeat:
case kRight:
- Menu = new cDisplayChannel(NORMALKEY(key));
- break;
// Up/Down Channel Select:
case kUp|k_Repeat:
case kUp:
case kDown|k_Repeat:
case kDown:
- cDevice::SwitchChannel(NORMALKEY(key) == kUp ? 1 : -1);
+ Menu = new cDisplayChannel(NORMALKEY(key));
break;
// Viewing Control:
case kOk: LastChannel = -1; break; // forces channel display