Version 2.1.9

VDR developer version 2.1.9 is now available at

       ftp://ftp.tvdr.de/vdr/Developer/vdr-2.1.9.tar.bz2

A 'diff' against the previous version is available at

       ftp://ftp.tvdr.de/vdr/Developer/vdr-2.1.8-2.1.9.diff

MD5 checksums:

59a63596f3fcfe7c81df8e92b4486f78  vdr-2.1.9.tar.bz2
e70d236f79bee5110f763a8109dba3d9  vdr-2.1.8-2.1.9.diff

Approaching version 2.2.0:
==========================

If there are no more serious bug reports, the final version 2.2.0 of VDR
shall be released on February 19, 2015, which marks the 15th anniversary
of VDR.
So please test this developer version intensely and report any problems
you might encounter as soon as possible.

The following language files still have the given number of untranslated texts:

ar.po: 51
ca_ES.po: 51
cs_CZ.po: 51
da_DK.po: 184
el_GR.po: 247
es_ES.po: 51
et_EE.po: 4
fi_FI.po: 1
fr_FR.po: 51
hr_HR.po: 184
it_IT.po: 4
lt_LT.po: 4
mk_MK.po: 51
nl_NL.po: 51
nn_NO.po: 312
pl_PL.po: 51
pt_PT.po: 79
ro_RO.po: 1
ru_RU.po: 51
sk_SK.po: 51
sl_SI.po: 52
sr_RS.po: 51
sv_SE.po: 51
tr_TR.po: 184
uk_UA.po: 4
zh_CN.po: 51

If nobody takes care of these, they will remain untranslated in version 2.2.0.

DEADLINE FOR SUBMITTING TRANSLATIONS IS WEDNESDAY, FEBRUARY 18!

From the HISTORY file:
- Fixed a memory leak in case of broken Extended Event Descriptors (thanks to Lars
  Hanisch).
- Fixed the German translation of "Binary skip timeout (s)" (thanks to Matthias
  Senzel).
- Fixed the German translation of "VDR will shut down later - press Power to force".
- Fixed the Finnish translation of "Binary skip timeout (s)" (thanks to Rolf
  Ahrenberg).
- Updated the Lithuanian OSD texts (thanks to Valdemaras Pipiras).
- Added SDNOTIFY to Make.config.template (suggested by Christian Richter). Also
  added NO_KBD and BIDI.
- Added code from the "jumpplay" patch that makes the recording still be considered
  unviewed when stopping replay within RESUMEBACKUP seconds of the first mark.
- The new option "Setup/Replay/Alternate behavior for adaptive skipping" can be used
  to make adaptive skipping only halve the skip distance when the direction changes.
  That way you can reach the desired point in a recording even if you make one too
  many skips in a certain direction (see MANUAL for details).
- Fixed cCamSlot::Assign(), so that it actually ignores the value of Query if Device
  is NULL (as described in the header file).
- Added a missing VDRDIR="$(CWD)" to the clean-plugins target of the Makefile, to
  avoid error messages regarding the missing vdr.pc file.
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
- Updated the Ukrainian OSD texts (thanks to Yarema Aka Knedlyk).
- Updated the Romanian OSD texts (thanks to Lucian Muresan).
- Updated the Hungarian OSD texts (thanks to István Füley).
- Fixed switching channels in the Schedule menu after going through various Now and
  Schedule menus for different channels (reported by Matthias Senzel).
- Fixed setting the Blue button in the Schedule/Now/Next menus, so that it only shows
  "Switch" if the selected event is on a different channel.
- Added "NORDIG" to the list of "DVB/Standard compliance" options and using it to
  restrict the LCN (Logical Channel Numbers) parsing to networks that actually use
  this non-standard feature (thanks to Rolf Ahrenberg).
- In the "Edit recording" menu the '0' key can now be used on the "Name:" field to
  remove the name of the recording and replace it with the last element of the
  recording's folder path name (suggested by Christoph Haubrich). See MANUAL, section
  "Managing folders" for details.
- Updated the Italian OSD texts (thanks to Nino Gerbino).
- The "Select folder" menu now adds the folder names of all existing recordings to
  any names that have been predefined in "folders.conf" (suggested by Sören Moch).
- Updated the Italian OSD texts (thanks to Diego Pierotto).
- Fixed the German translations of "latitude" and "longitude" (they were swapped).
- Updated the Hungarian OSD texts (thanks to Mario Fenneis).
- Modified runvdr.template to improve compatibility with the "bash" and "dash" shells.
- Changed the German translations if the texts related to "binary skipping" (based
  on a suggestion by Thomas Reufer).
- Updated sources.conf to reflect the fact that Astra 4A and SES5 are actually in
  two separate positions (thanks to Arthur Konovalov).
- Fixed cMarks::GetNextBegin() and cMarks::GetNextEnd() (thanks to Stefan Herdler).
  The behavior of these two functions is now exacly as described in the header file.
  Editing marks that are placed at exactly the same offset in a recording are now
  preserved in the cutting process.
- Changed the naming of "binary skip mode" to "adaptive skip mode" (suggested by
  Rolf Ahrenberg and Derek Kelly).
- cDvbPlayer and cReplayControl now use the same list of editing marks. This avoids
  inconsistent behavior with the "Skip edited parts" or "Pause replay at last mark"
  functions when the editing marks are manipulated during replay.
- Fixed setting an empty recording name or folder to a blank in the "Edit recording"
  menu (reported by Christoph Haubrich).
- Added a confirmation before renaming a recording to its folder name (suggested
  by Christoph Haubrich).
- Modified EntriesOnSameFileSystem(), so that it returns 'true' if either of the given
  files doesn't exist (to avoid any actions that might be triggered if files are on
  different file system), and changed handling the 'error' variable in cDirCopier, so
  that it is initialized to 'true' and will only be set to 'false' if the entire
  copy process has been successful (problem reported by Christoph Haubrich).
- Added the UPDATE-2.2.0 file.
This commit is contained in:
Klaus Schmidinger 2015-02-08 15:17:00 +01:00 committed by Dieter Hametner
parent 4ee983a294
commit bb4ef3b380
65 changed files with 1688 additions and 536 deletions

View File

@ -1195,6 +1195,7 @@ Rolf Ahrenberg <Rolf.Ahrenberg@sci.fi>
doesn't set the data's version numbers as required by the DVB standard
for the "binary skip" patch
for adding support for LCN (Logical Channel Numbers)
for suggesting to change the naming of "binary skip mode" to "adaptive skip mode"
Ralf Klueber <ralf.klueber@vodafone.com>
for reporting a bug in cutting a recording if there is only a single editing mark
@ -1728,6 +1729,8 @@ Arthur Konovalov <artlov@gmail.com>
for reporting that the video stream type was set to 2 even if the vpid was 0
for updates to 'sources.conf'
for reporting a wrong initialization of Setup.PositionerSwing
for updating sources.conf to reflect the fact that Astra 4A and SES5 are actually in
two separate positions
Milos Kapoun <m.kapoun@cra.cz>
for suggesting to skip code table info in SI data
@ -2412,6 +2415,12 @@ Christoph Haubrich <christoph1.haubrich@arcor.de>
for suggesting to replace "Schnitt" with "Bearbeitung" in the German OSD texts
for reporting a superfluous call to the skin's SetRecording() function after renaming
a recording
for suggesting to add a function to remove the name of a recording and replace it
with the last element of the recording's folder path name
for reporting a bug in setting an empty recording name or folder to a blank in the
"Edit recording" menu
for suggesting to add a confirmation before renaming a recording to its folder name
for reporting a problem with data loss in case renaming a recording fails
Pekka Mauno <pekka.mauno@iki.fi>
for fixing cSchedule::GetFollowingEvent() in case there is currently no present
@ -2830,6 +2839,7 @@ Derek Kelly <user.vdr@gmail.com>
for reporting an incompatible change from DTV_DVBT2_PLP_ID to DTV_STREAM_ID in DVB API 5.8
for reporting a missing template for DVBDIR in Make.config.template
for suggesting to add ARGSDIR to the ONEDIR section of Make.config.template
for suggesting to change the naming of "binary skip mode" to "adaptive skip mode"
Marcel Unbehaun <frostworks@gmx.de>
for adding cRecordingInfo::GetEvent()
@ -2909,6 +2919,7 @@ Lars Hanisch <dvb@flensrocker.de>
for fixing learning keyboard remote control codes
for making VDR read command line options from *.conf files in /etc/vdr/conf.d
for adding a missing backslash to the help text of the SVDRP command MOVR
for fixing a memory leak in case of broken Extended Event Descriptors
Alex Lasnier <alex@fepg.org>
for adding tuning support for ATSC devices
@ -3118,6 +3129,7 @@ Marco Skambraks <marco@ammec.de>
Christian Richter <cr@crichter.net>
for extending the interface to the script that gets called for recordings, so that in
the "edited" case it also provides the name of the original recording
for suggesting to add SDNOTIFY to Make.config.template
Christian Kaiser <chr-kaiser@arcor.de>
for adding DeleteEvent() to the EPG handler interface
@ -3167,6 +3179,8 @@ S
changed after VDR has been started
for reporting that the change "Fixed some compiler warnings with Clang 3.4.1" caused
ci.c to no longer compile with older versions of gcc
for suggesting to make the "Select folder" menu add the folder names of all existing
recordings to any names that have been predefined in "folders.conf"
Peter Münster <pmlists@free.fr>
for fixing 'make install' to not overwrite existing configuration files
@ -3213,6 +3227,9 @@ Matthias Senzel <matthias.senzel@t-online.de>
for reporting a problem with switching back to live viewing after replay in a setup
with device bonding
for reporting a problem with handling overlapping pending timers
for fixing the German translation of "Binary skip timeout (s)"
for reporting a bug in switching channels in the Schedule menu after going through
various Now and Schedule menus for different channels
Marek Nazarko <mnazarko@gmail.com>
for translating OSD texts to the Polish language
@ -3284,6 +3301,8 @@ Thomas Reufer <thomas@reufer.ch>
for adding handling for DTS audio tracks to cPatPmtParser::ParsePmt()
for adding support for PGS subtitles
for adding cOsdProvider::OsdSizeChanged()
for suggesting to change the German translations if the texts related to "binary
skipping"
Eike Sauer <EikeSauer@t-online.de>
for reporting a problem with channels that need more than 5 TS packets for detecting
@ -3340,3 +3359,9 @@ Jasmin Jessich <jasmin@anw.at>
Martin Schirrmacher <schirrmie@gmail.com>
for suggesting to provide a way for skin plugins to get informed about the currently
used sort mode of a menu
Mario Fenneis <admin@mediastreambox.at>
for translating OSD texts to the Hungarian language
Stefan Herdler <herdler@gmx.de>
for fixing cMarks::GetNextBegin() and cMarks::GetNextEnd()

73
HISTORY
View File

@ -8384,7 +8384,7 @@ Video Disk Recorder Revision History
- Now returning from removing deleted recordings after at most 10 seconds, or if the
user presses a remote control key, to keep the system from getting unresponsive
when removing a huge number of files (reported by Dieter Ferdinand).
- Fixed generating the index file of an existing recording in case at the of a TS file
- Fixed generating the index file of an existing recording in case at the end of a TS file
there is less data in the buffer than needed by the frame detector. In such a case
it was possible that frames were missed, and there was most likely a distortion
when replaying that part of a recording. This is mostly a problem for recordings that
@ -8405,7 +8405,7 @@ Video Disk Recorder Revision History
- Now returning from removing deleted recordings after at most 10 seconds, or if the
user presses a remote control key, to keep the system from getting unresponsive
when removing a huge number of files (reported by Dieter Ferdinand).
- Fixed generating the index file of an existing recording in case at the of a TS file
- Fixed generating the index file of an existing recording in case at the end of a TS file
there is less data in the buffer than needed by the frame detector. In such a case
it was possible that frames were missed, and there was most likely a distortion
when replaying that part of a recording. This is mostly a problem for recordings that
@ -8452,3 +8452,72 @@ Video Disk Recorder Revision History
- The function cDvbPlayer::Goto() now automatically calls Play() if Still is false.
- Added support for LCN (Logical Channel Numbers), which plugins may use to sort
channels (thanks to Rolf Ahrenberg).
2015-02-08: Version 2.1.9
- Fixed a memory leak in case of broken Extended Event Descriptors (thanks to Lars
Hanisch).
- Fixed the German translation of "Binary skip timeout (s)" (thanks to Matthias
Senzel).
- Fixed the German translation of "VDR will shut down later - press Power to force".
- Fixed the Finnish translation of "Binary skip timeout (s)" (thanks to Rolf
Ahrenberg).
- Updated the Lithuanian OSD texts (thanks to Valdemaras Pipiras).
- Added SDNOTIFY to Make.config.template (suggested by Christian Richter). Also
added NO_KBD and BIDI.
- Added code from the "jumpplay" patch that makes the recording still be considered
unviewed when stopping replay within RESUMEBACKUP seconds of the first mark.
- The new option "Setup/Replay/Alternate behavior for adaptive skipping" can be used
to make adaptive skipping only halve the skip distance when the direction changes.
That way you can reach the desired point in a recording even if you make one too
many skips in a certain direction (see MANUAL for details).
- Fixed cCamSlot::Assign(), so that it actually ignores the value of Query if Device
is NULL (as described in the header file).
- Added a missing VDRDIR="$(CWD)" to the clean-plugins target of the Makefile, to
avoid error messages regarding the missing vdr.pc file.
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
- Updated the Ukrainian OSD texts (thanks to Yarema Aka Knedlyk).
- Updated the Romanian OSD texts (thanks to Lucian Muresan).
- Updated the Hungarian OSD texts (thanks to István Füley).
- Fixed switching channels in the Schedule menu after going through various Now and
Schedule menus for different channels (reported by Matthias Senzel).
- Fixed setting the Blue button in the Schedule/Now/Next menus, so that it only shows
"Switch" if the selected event is on a different channel.
- Added "NORDIG" to the list of "DVB/Standard compliance" options and using it to
restrict the LCN (Logical Channel Numbers) parsing to networks that actually use
this non-standard feature (thanks to Rolf Ahrenberg).
- In the "Edit recording" menu the '0' key can now be used on the "Name:" field to
remove the name of the recording and replace it with the last element of the
recording's folder path name (suggested by Christoph Haubrich). See MANUAL, section
"Managing folders" for details.
- Updated the Italian OSD texts (thanks to Nino Gerbino).
- The "Select folder" menu now adds the folder names of all existing recordings to
any names that have been predefined in "folders.conf" (suggested by Sören Moch).
- Updated the Italian OSD texts (thanks to Diego Pierotto).
- Fixed the German translations of "latitude" and "longitude" (they were swapped).
- Updated the Hungarian OSD texts (thanks to Mario Fenneis).
- Modified runvdr.template to improve compatibility with the "bash" and "dash" shells.
- Changed the German translations if the texts related to "binary skipping" (based
on a suggestion by Thomas Reufer).
- Updated sources.conf to reflect the fact that Astra 4A and SES5 are actually in
two separate positions (thanks to Arthur Konovalov).
- Fixed cMarks::GetNextBegin() and cMarks::GetNextEnd() (thanks to Stefan Herdler).
The behavior of these two functions is now exacly as described in the header file.
Editing marks that are placed at exactly the same offset in a recording are now
preserved in the cutting process.
- Changed the naming of "binary skip mode" to "adaptive skip mode" (suggested by
Rolf Ahrenberg and Derek Kelly).
- cDvbPlayer and cReplayControl now use the same list of editing marks. This avoids
inconsistent behavior with the "Skip edited parts" or "Pause replay at last mark"
functions when the editing marks are manipulated during replay.
- Fixed setting an empty recording name or folder to a blank in the "Edit recording"
menu (reported by Christoph Haubrich).
- Added a confirmation before renaming a recording to its folder name (suggested
by Christoph Haubrich).
- Modified EntriesOnSameFileSystem(), so that it returns 'true' if either of the given
files doesn't exist (to avoid any actions that might be triggered if files are on
different file system), and changed handling the 'error' variable in cDirCopier, so
that it is initialized to 'true' and will only be set to 'false' if the entire
copy process has been successful (problem reported by Christoph Haubrich).
- Added the UPDATE-2.2.0 file.

66
MANUAL
View File

@ -363,18 +363,19 @@ Version 2.0
- 0 Toggles an editing mark. If the mark indicator shows a red triangle,
the current mark is deleted. Otherwise a new mark is set at the
current position.
- 1, 3 Move an editing mark back and forward in "binary" mode. Pressing
- 1, 3 Move an editing mark back and forward in "adaptive" mode. Pressing
either of these keys for the first time moves the mark 120 seconds
in the given direction (configurable via "Setup/Replay/Binary skip
initial value"). Further presses of the same key keep moving
the mark by the same value. Once the other key is pressed, the value
is divided by 2 (hence the name "binary") with every further press
of either key. Pressing '1' and '3' alternatingly divides the
distance all the way down to a single I-frame. That way a particular
place in a recording (for instance the beginning or end of a
commercial break) can be found very quickly. If none of these two
keys is pressed for a while (configurable via "Setup/Replay/Binary
skip timeout") the distance falls back to the initial value.
in the given direction (configurable via "Setup/Replay/Initial
duration for adaptive skipping"). Further presses of the same key
keep moving the mark by the same value. Once the other key is
pressed, the value is divided by 2 (hence the name "adaptive") with
every further press of either key. Pressing '1' and '3'
alternatingly divides the distance all the way down to a single
I-frame. That way a particular place in a recording (for instance
the beginning or end of a commercial break) can be found very
quickly. If none of these two keys is pressed for a while
(configurable via "Setup/Replay/Reset timeout for adaptive
skipping") the distance falls back to the initial value.
If replay is not in Pause mode, or if there is no mark at the
current position, the skip is performed without moving any mark.
- 4, 6 Move an editing mark back and forward by one I-frame. You need to
@ -540,8 +541,16 @@ Version 2.0
the selected recording (if there are any and the recording is not currently
being cut). To directly edit the folder or name of the recording, position the
cursor to the respective line and press the Right key to start editing (press
Ok to confirm the edit, or Back to return to the previous value). Once you are
finished with editing the recording properties, press Ok to confirm the changes.
Ok to confirm the edit, or Back to return to the previous value). If you want
to remove the name of the recording and make the folder name the actual
recording's name, you can position the cursor to the "Name:" field and press
the '0' key. This will take the last element of the recording's folder path
and make it the actual name of the recording. You can do this in turn until
the recording is moved all the way up to the root of the video directory.
Note that, in case you inadvertently pressed the '0' key, you can leave the
"Edit recording" menu with the "Back" key and any changes you have made so far
will not be applied. Once you are finished with editing the recording
properties, press Ok to confirm the changes.
* Parameters in the "Setup" menu
@ -743,6 +752,7 @@ Version 2.0
Defines the standard compliance mode:
0 = DVB
1 = ANSI/SCTE
2 = NORDIG
Video format = 4:3 The video format (or aspect ratio) of the tv set in use
(4:3 or 16:9). Applies only to SD output devices.
@ -981,8 +991,6 @@ Version 2.0
automatically skipped during replay. This includes jumping
to the first mark if replay starts at the beginning of the
recording, and stopping at the last mark.
In order to work, this option must be enabled before starting
replay.
Pause replay at last mark = no
If enabled, replay of a recording will go into Pause mode
@ -990,21 +998,33 @@ Version 2.0
the actual position at which the pause occurs may be a couple
of frames before the last "end" mark, depending on how much
data is buffered by your output device.
In order to work, this option must be enabled before starting
replay.
Binary skip initial value (s) = 120
Initial duration for adaptive skipping (s) = 120
Defines the number of seconds to jump from the current replay
position in either direction, when pressing the '1' or '3'
key for the first time after the "Binary skip timeout".
key for the first time after the "Reset timeout for adaptive
skipping".
The valid range is 10...600.
Binary skip timeout (s) = 3
Reset timeout for adaptive skipping (s) = 3
Defines the number of seconds after which pressing the
'1' or '3' key falls back to the "Binary skip initial value".
'1' or '3' key falls back to the "Initial duration for adaptive
skipping".
The valid range is 0...10. Setting the timeout to 0 disables
the binary mode and makes '1' and '3' always skip the number
of seconds configured as the initial value.
the adaptive mode and makes '1' and '3' always skip the number
of seconds configured as the initial duration.
Alternate behavior for adaptive skipping = no
When skipping in adaptive mode with the '1' and '3' keys, the
distance of the skip is halved with every key press after the
first change of direction. While this allows for locating a
particular position in a recording very fast, once you make
one step too many in the current direction you have no chance
of ever reaching the desired point any more. You will have to
wait for the timeout to occur and start adaptive skipping anew.
If this option is set to 'yes', the skip distance will only be
halved if the direction actually changes. That way, even if
you missed the target point, you can still back up to it.
Resume ID = 0 Defines an additional ID that can be used in a multi user
environment, so that every user has his/her own resume

View File

@ -6,7 +6,7 @@
# See the main source file 'vdr.c' for copyright information and
# how to reach the author.
#
# $Id: Make.config.template 3.2 2015/01/30 15:18:47 kls Exp $
# $Id: Make.config.template 3.3 2015/02/02 09:07:07 kls Exp $
### The C compiler and options:
@ -67,12 +67,20 @@ endif
#PLGCFG = $(CONFDIR)/plugins.mk
### The remote control:
LIRC_DEVICE = /var/run/lirc/lircd
### Define if you don't want keyboard remote control:
#NO_KBD = 1
### Define if you want vdr to not run as root:
#VDR_USER = vdr
### Define if you want to compile in 'bidi' support:
#BIDI = 1
### Define if you want 'systemd' notification:
#SDNOTIFY = 1
### Fallback for plugins with old makefiles:
ifdef PLUGIN
CFLAGS += -fPIC

View File

@ -4,7 +4,7 @@
# See the main source file 'vdr.c' for copyright information and
# how to reach the author.
#
# $Id: Makefile 3.4 2015/01/01 13:52:07 kls Exp $
# $Id: Makefile 3.5 2015/02/02 14:47:24 kls Exp $
.DELETE_ON_ERROR:
@ -250,7 +250,7 @@ plugins: include-dir vdr.pc
if [ -n "$$failed" ] ; then echo; echo "*** failed plugins:$$failed"; echo; exit 1; fi
clean-plugins:
@for i in `ls $(PLUGINDIR)/src | grep -v '[^a-z0-9]'`; do $(MAKE) --no-print-directory -C "$(PLUGINDIR)/src/$$i" clean; done
@for i in `ls $(PLUGINDIR)/src | grep -v '[^a-z0-9]'`; do $(MAKE) --no-print-directory -C "$(PLUGINDIR)/src/$$i" VDRDIR="$(CWD)" clean; done
@-rm -f $(PLUGINDIR)/lib/lib*-*.so.$(APIVERSION)
# Install the files (note that 'install-pc' must be first!):

View File

@ -0,0 +1,128 @@
# VDR plugin language source file
# Copyright (C) 2011 Andreas Regel
# This file is distributed under the same license as the dvbhddevice package.
# Arthur Konovalov, 2015
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-dvbhddevice 0.0.4\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2014-09-21 14:01+0200\n"
"PO-Revision-Date: 2011-04-25 21:44+0200\n"
"Last-Translator: Arthur Konovalov <artlov@gmail.com>\n"
"Language-Team: Estonian <vdr@linuxtv.org>\n"
"Language: et\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "HD Full Featured DVB device"
msgstr "Täisfunktsionaalne HD DVB seade"
msgid "Video Conversion"
msgstr "Video konverteerimine"
msgid "TV on"
msgstr "TV sisse"
msgid "TV off"
msgstr "TV välja"
msgid "Automatic"
msgstr "automaatne"
msgid "Letterbox 16/9"
msgstr "letterbox 16:9"
msgid "Letterbox 14/9"
msgstr "letterbox 14:9"
msgid "Pillarbox"
msgstr "pillarbox"
msgid "CentreCutOut"
msgstr "center cut out"
msgid "Always 16/9"
msgstr "alati 16:9"
msgid "Zoom 16/9"
msgstr "suum 16/9"
msgid "Off"
msgstr "väljas"
msgid "Frame rate"
msgstr "kaadrisagedus"
msgid "HD Only"
msgstr "ainult HD-resolutsioon"
msgid "Always"
msgstr "alati"
msgid "Disabled"
msgstr "keelatud"
msgid "Analogue only"
msgstr "ainult analoog"
msgid "HDMI only"
msgstr "ainult HDMI"
msgid "Follow resolution"
msgstr "vastavalt resolutsioonile"
msgid "none"
msgstr "ei"
msgid "Resolution"
msgstr "Resolutsioon"
msgid "Video Mode Adaption"
msgstr "Videorežiimi sobitus"
msgid "TV format"
msgstr "TV külgsuhe"
msgid "Analogue Video"
msgstr "Analoogvideo"
msgid "Audio Delay (ms)"
msgstr "Heli viide (ms)"
msgid "Audio Downmix"
msgstr "Heli downmix"
msgid "A/V Sync Shift (ms)"
msgstr "A/V-sünkro nihe (ms)"
msgid "OSD Size"
msgstr "Ekraanimenüü suurus"
msgid "HDMI CEC"
msgstr "HDMI CEC"
msgid "CEC: Switch TV on"
msgstr "CEC: TV sisselülitus"
msgid "CEC: Switch TV off"
msgstr "CEC: TV väljalülitus"
msgid "Remote Control Protocol"
msgstr "Kaugjuhtimispuldi protokoll"
msgid "Remote Control Address"
msgstr "Kaugjuhtimispuldi aadress"
msgid "High Level OSD"
msgstr "Kõrgema taseme ekraanimenüü"
msgid "Allow True Color OSD"
msgstr "True Color ekraanimenüü"
msgid "True Color format"
msgstr "True Color formaat"
msgid "Hide mainmenu entry"
msgstr "Peita peamenüü valikus"

View File

@ -122,7 +122,7 @@ msgid "Allow True Color OSD"
msgstr "Salli tosivärit kuvaruutunäytölle"
msgid "True Color format"
msgstr ""
msgstr "Näytä tosivärit muodossa"
msgid "Hide mainmenu entry"
msgstr "Piilota valinta päävalikosta"

View File

@ -0,0 +1,129 @@
# VDR language source file.
# Copyright (C) 2011 Andreas Regel
# This file is distributed under the same license as the dvbhddevice package.
# Yarema Aka Knedlyk <yupadmin@gmail.com>, 2015
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-dvbhddevice 0.0.4\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2015-02-03 13:28+0100\n"
"PO-Revision-Date: 2015-02-01 23:31+0100\n"
"Last-Translator: Yarema aka Knedlyk <yupadmin@gmail.com>\n"
"Language-Team: Ukrainian <vdr@linuxtv.org>\n"
"Language: uk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.7.3\n"
msgid "HD Full Featured DVB device"
msgstr "HD Full Featured DVB device"
msgid "Video Conversion"
msgstr "Конвертація відео"
msgid "TV on"
msgstr "Вкл ТБ"
msgid "TV off"
msgstr "Викл ТБ"
msgid "Automatic"
msgstr "Автоматично"
msgid "Letterbox 16/9"
msgstr "Конверт 16:9"
msgid "Letterbox 14/9"
msgstr "Конверт 14:9"
msgid "Pillarbox"
msgstr "Pillarbox"
msgid "CentreCutOut"
msgstr "Вірізання від центру"
msgid "Always 16/9"
msgstr "Завжди 16:9"
msgid "Zoom 16/9"
msgstr "Допасувати до 16:9"
msgid "Off"
msgstr "Викл"
msgid "Frame rate"
msgstr "Частота кадрів"
msgid "HD Only"
msgstr "Тільки HD"
msgid "Always"
msgstr "Завжди"
msgid "Disabled"
msgstr "Відключено"
msgid "Analogue only"
msgstr "Тільки аналоговий"
msgid "HDMI only"
msgstr "Тільки HDMI"
msgid "Follow resolution"
msgstr "Відносно розд. здатн."
msgid "none"
msgstr "немає"
msgid "Resolution"
msgstr "Розд. здатність"
msgid "Video Mode Adaption"
msgstr "Адаптація відео режиму"
msgid "TV format"
msgstr "Формат ТБ"
msgid "Analogue Video"
msgstr "Аналогове відео"
msgid "Audio Delay (ms)"
msgstr "Затримка аудіо (мс)"
msgid "Audio Downmix"
msgstr "Міксування аудіо"
msgid "A/V Sync Shift (ms)"
msgstr "А/В зсув синхронізації (мс)"
msgid "OSD Size"
msgstr "Розмір OSD"
msgid "HDMI CEC"
msgstr "HDMI CEC"
msgid "CEC: Switch TV on"
msgstr "CEC: включити ТБ"
msgid "CEC: Switch TV off"
msgstr "CEC: виключити ТБ"
msgid "Remote Control Protocol"
msgstr "Протокол пульта"
msgid "Remote Control Address"
msgstr "Адрес пульта"
msgid "High Level OSD"
msgstr "High Level OSD"
msgid "Allow True Color OSD"
msgstr "Включити True Color OSD"
msgid "True Color format"
msgstr "Формат True Color"
msgid "Hide mainmenu entry"
msgstr "Приховати в головному меню"

View File

@ -1,7 +1,7 @@
# VDR plugin language source file.
# Copyright (C) 2013 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Arthur Konovalov <kasjas@hot.ee>, 2004
# Arthur Konovalov <artlov@gmail.com>, 2004, 2015
#
msgid ""
msgstr ""
@ -9,27 +9,27 @@ msgstr ""
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2007-08-11 12:34+0200\n"
"Last-Translator: Arthur Konovalov <kasjas@hot.ee>\n"
"Last-Translator: Arthur Konovalov <artlov@gmail.com>\n"
"Language-Team: Estonian <vdr@linuxtv.org>\n"
"Language: et\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-13\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "A friendly greeting"
msgstr ""
msgstr "Sõbralik tervitus"
msgid "Hello"
msgstr ""
msgstr "Tere"
msgid "Greeting time (s)"
msgstr ""
msgstr "Tervituse kestus (s)"
msgid "Use alternate greeting"
msgstr ""
msgstr "Vahelduv tervitus"
msgid "Howdy folks!"
msgstr ""
msgstr "Kuidas käsi käib?"
msgid "Hello world!"
msgstr ""
msgstr "Tere, maailm!"

View File

@ -0,0 +1,33 @@
# VDR plugin language source file.
# Copyright (C) 2013 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Arthur Konovalov <artlov@gmail.com>, 2015
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-pictures 0.1.3\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 12:57+0100\n"
"PO-Revision-Date: 2008-01-12 17:41+0100\n"
"Last-Translator: Arthur Konovalov <artlov@gmail.com>\n"
"Language-Team: Estonian <vdr@linuxtv.org>\n"
"Language: et\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Pictures"
msgstr "Pildid"
msgid "A simple picture viewer"
msgstr "Lihtne pildivaatur"
msgid "Picture directory"
msgstr "Pildikaust"
msgid "Slide show delay (s)"
msgstr "Slaidiseanssi viide (s)"
msgid "No picture directory has been defined!"
msgstr "Pildikaust on määramata!"

View File

@ -122,3 +122,7 @@ VDR Plugin 'skincurses' Revision History
2014-01-01: Version 2.1.1
- Avoiding unnecessary pkg-config warnings in plugin Makefiles.
2015-02-08: Version 2.1.2
- Added a missing trailing blank in some translations.

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: vdr-skincurses 0.1.12\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 14:04+0100\n"
"POT-Creation-Date: 2015-02-08 11:16+0100\n"
"PO-Revision-Date: 2007-08-15 16:07+0200\n"
"Last-Translator: Klaus Schmidinger <vdr@tvdr.de>\n"
"Language-Team: German <vdr@linuxtv.org>\n"
@ -22,8 +22,9 @@ msgstr "Eine reine Text-Oberfl
msgid "Key$Mute"
msgstr "Stumm"
#. TRANSLATORS: note the trailing blank!
msgid "Volume "
msgstr "Lautstärke"
msgstr "Lautstärke "
msgid "Text mode"
msgstr "Text-Modus"

View File

@ -0,0 +1,30 @@
# VDR plugin language source file.
# Copyright (C) 2013 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Arthur Konovalov <artlov@gmail.com>, 2015
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-skincurses 0.1.12\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2015-02-08 11:16+0100\n"
"PO-Revision-Date: 2007-08-14 20:48+0300\n"
"Last-Translator: Arthur Konovalov <artlov@gmail.com>\n"
"Language-Team: Estonian <vdr@linuxtv.org>\n"
"Language: et\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "A text only skin"
msgstr "Tekstipõhine kest"
msgid "Key$Mute"
msgstr "Hääletu"
#. TRANSLATORS: note the trailing blank!
msgid "Volume "
msgstr "Helitugevus "
msgid "Text mode"
msgstr "Tekst"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: vdr-skincurses 0.1.12\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 14:04+0100\n"
"POT-Creation-Date: 2015-02-08 11:16+0100\n"
"PO-Revision-Date: 2007-08-14 20:48+0300\n"
"Last-Translator: Rolf Ahrenberg <Rolf.Ahrenberg@sci.fi>\n"
"Language-Team: Finnish <vdr@linuxtv.org>\n"
@ -22,6 +22,7 @@ msgstr "Tekstipohjainen ulkoasu"
msgid "Key$Mute"
msgstr "Mykistys"
#. TRANSLATORS: note the trailing blank!
msgid "Volume "
msgstr "Äänenvoimakkuus "

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: vdr-skincurses 0.1.12\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 14:04+0100\n"
"POT-Creation-Date: 2015-02-08 11:16+0100\n"
"PO-Revision-Date: 2008-01-27 20:35+0100\n"
"Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n"
"Language-Team: Italian <vdr@linuxtv.org>\n"
@ -22,6 +22,7 @@ msgstr "Una interfaccia solo testo"
msgid "Key$Mute"
msgstr "Muto"
#. TRANSLATORS: note the trailing blank!
msgid "Volume "
msgstr "Volume "

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: vdr-skincurses 0.1.12\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 14:04+0100\n"
"POT-Creation-Date: 2015-02-08 11:16+0100\n"
"PO-Revision-Date: 2010-02-22 18:18+0200\n"
"Last-Translator: Valdemaras Pipiras <varas@ambernet.lt>\n"
"Language-Team: Lithuanian <vdr@linuxtv.org>\n"
@ -22,6 +22,7 @@ msgstr "Tekstinis apvalkalas"
msgid "Key$Mute"
msgstr "Išjungti garsą"
#. TRANSLATORS: note the trailing blank!
msgid "Volume "
msgstr "Garsas "

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: vdr-skincurses 0.1.12\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 14:04+0100\n"
"POT-Creation-Date: 2015-02-08 11:16+0100\n"
"PO-Revision-Date: 2008-03-14 00:21+0100\n"
"Last-Translator: Alexander Gross <Bikalexander@gmail.com>\n"
"Language-Team: Russian <vdr@linuxtv.org>\n"
@ -23,8 +23,9 @@ msgstr "
msgid "Key$Mute"
msgstr "²ëÚÛ. ÓàÞÜÚÞáâì"
#. TRANSLATORS: note the trailing blank!
msgid "Volume "
msgstr "³àÞÜÚÞáâì"
msgstr "³àÞÜÚÞáâì "
msgid "Text mode"
msgstr "ÀÕÖØÜ âÕÚáâÐ"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: vdr-skincurses 0.1.12\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 14:04+0100\n"
"POT-Creation-Date: 2015-02-08 11:16+0100\n"
"PO-Revision-Date: 2009-09-30 12:52+0100\n"
"Last-Translator: Milan Hrala <hrala.milan@gmail.com>\n"
"Language-Team: Slovak <vdr@linuxtv.org>\n"
@ -22,8 +22,9 @@ msgstr "Iba text vzh
msgid "Key$Mute"
msgstr "Stlmi» zvuk"
#. TRANSLATORS: note the trailing blank!
msgid "Volume "
msgstr "Hlasitos»"
msgstr "Hlasitos» "
msgid "Text mode"
msgstr "Textový re¾im"

View File

@ -3,7 +3,7 @@
*
* See the README file for copyright information and how to reach the author.
*
* $Id: skincurses.c 3.1 2014/01/05 10:56:27 kls Exp $
* $Id: skincurses.c 3.2 2015/02/08 10:19:00 kls Exp $
*/
#include <ncurses.h>
@ -12,7 +12,7 @@
#include <vdr/skins.h>
#include <vdr/videodir.h>
static const char *VERSION = "2.1.1";
static const char *VERSION = "2.1.2";
static const char *DESCRIPTION = trNOOP("A text only skin");
static const char *MAINMENUENTRY = NULL;
@ -614,6 +614,7 @@ void cSkinCursesDisplayVolume::SetVolume(int Current, int Total, bool Mute)
osd->DrawText(0, 0, tr("Key$Mute"), clrGreen, clrBackground, &Font);
}
else {
// TRANSLATORS: note the trailing blank!
const char *Prompt = tr("Volume ");
int l = Utf8StrLen(Prompt);
int p = (ScOsdWidth - l) * Current / Total;

388
UPDATE-2.2.0 Normal file
View File

@ -0,0 +1,388 @@
This is a summary of the changes in VDR 2.2.0 since the last stable
version 2.0.0. It only contains things that are of actual importance
to the user and doesn't mention the many fixes and improvements that
have been made "behind the scenes".
See the file HISTORY for a detailed list of all changes.
Support for steerable satellite dishes:
- Added basic support for positioners to control steerable satellite dishes.
+ Supports GotoN (aka "DiSEqC 1.2") and GotoX (aka "USALS").
+ The new DiSEqC command code 'P' can be used to instruct a positioner to move the
dish to the required satellite position. When a 'P' code is processed, further
execution of the remaining DiSEqC sequence (if any) is postponed until the positioner
has reached the new satellite position.
+ The new special source value of "S360E" can be used in diseqc.conf to indicate that
an entry using a positioner can move the dish to any requested position within its
range. Think of it as "full circle".
+ The devices a particular cDiseqc or cScr applies to are now stored directly in each
cDiseqc or cScr, respectively.
+ A plugin can implement a custom positioner control (see PLUGINS.html, section "Positioners").
+ The new function cSkinDisplayChannel::SetPositioner() can be implemented by skins to
show the user a progress display when the dish is being moved. The default implementation
calls SetMessage() with a string indicating the new position the dish is being moved to.
The LCARS skin shows a progress bar indicating the movement of the dish.
+ The new parameters "Site latitude", "Site longitude", "Positioner speed", and
"Positioner swing" in the "Setup/LNB" menu can be used to configure the necessary
values for a steerable dish.
+ The cDvbTuner now has a new status tsPositioning, in which it waits until a steerable
dish has reached its target position. Parsing SI data is paused until the target
position has been reached.
- Changed the sign of the satellite position value in cSource to reflect the standard
of western values being negative. The new member function cSource::Position() can be
used to retrieve the orbital position of a satellite.
Conditional Access:
- The new function cCamSlot::Decrypt() can be used by derived classes to implement a
CAM slot that can be freely assigned to any device, without being directly inserted
into the full TS data stream in hardware. A derived class that implements Decrypt()
will also need to set the new parameter WantsTsData in the call to the cCamSlot
base class constructor to true, in order to receive all the TS packets that
contain data necessary for decrypting.
- Many member functions of cCamSlot have been made virtual to allow for easier
implementation of derived classes.
- cDvbDevice::GetTSPacket() now calls CamSlot()->Decrypt() in order to allow CAM slots
that can be freely assigned to any device access to the TS data stream.
- Improved locking for CAM slots and made the pure functions of cCiAdapter have
default implementations, to fix a possible crash with CI adapters and CAM slots
that are implemented in a plugin.
- Added logging the supported system ids of a CAM.
- Now waiting explicitly until all CAM slots are ready before switching to the
initial channel when VDR is started. This is necessary in case CI adapters are
used that are not physically connected to a dedicated device. The respective checks
in cDvbDevice have been removed to avoid redundancy.
- Now unassigning CAMs from their devices when they are no longer used.
- Now making sure the primary device goes into transfer mode for live viewing if the
CAM wants to receive the TS data.
- Added a log message in case a receiver is detached from its device because the
assigned CAM can't decrypt the channel.
- The pid of the PMT in which the CA descriptors of a given channel are broadcast
is now stored together with the CA descriptors and can be retrieved by calling
GetPmtPid() (this information is only required to receive encrypted channels
with the OctopusNet receiver via the 'satip' plugin).
- Modified the CAM API so that it is possible to implement CAMs that can be freely
assigned to any devices.
- The Yellow button in the "Setup/CAM" menu can now be used to put the selected
CAM into a mode where it remains assigned to a device that is tuned to the current
channel until the smart card it contains is activated and the CAM thus starts to
descramble (see MANUAL, section "Setup/CAM" for details).
- Fixed cCamSlot::Assign(), so that it actually ignores the value of Query if Device
is NULL (as described in the header file).
Satellite Channel Routing:
- Added support for "Satellite Channel Routing" (SCR) according to EN50607, also
known as "JESS".
Subtitles:
- Improved displaying DVB subtitles.
- The debug output now goes into an HTML file named dbg-log.htm and shows the actual
bitmaps (dbg-nnn.jpg) used to display the subtitles. That way it is much easier to
see what's actually going on.
- The new function cOsd::DrawScaledBitmap() is now used for drawing subtitles.
This function can be reimplemented by high level OSDs which may be able to do
the scaling in hardware or otherwise more efficiently.
- Fixed (well, actually worked around) a problem with subtitles not being displayed
because the broadcaster doesn't set the data's version numbers as required by the
DVB standard.
- Added support for PGS subtitles.
Plugins:
- A plugin can implement a custom positioner control (see PLUGINS.html, section "Positioners").
- The new menu category mcRecordingEdit is now used to mark menus that edit recording
properties.
- The Recordings menu can now be called with a cRecordingFilter, which allows the
caller to have it display only a certain subset of the recordings.
- cDevice::TrickSpeed() now has an additional parameter named Forward, which indicates
the direction in which replay is being done. This information may be necessary for
some output devices in order to properly implement trick modes. Authors of plugins
that implement output devices will need to add this parameter to their derived cDevice
class, regardless of whether they will make use of it or not.
- Avoiding unnecessary pkg-config warnings in plugin Makefiles.
Plugin authors may want to apply the following change to their Makefile:
-PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell pkg-config --variable=$(1) vdr || pkg-config --variable=$(1) ../../../vdr.pc))
+PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell PKG_CONFIG_PATH="$$PKG_CONFIG_PATH:../../.." pkg-config --variable=$(1) vdr))
- The new function cStatus::ChannelChange() can be implemented by plugins to be
informed about changes to the parameters of a channel that may require a retune.
This may, for instance, be useful for plugins that implement live streaming, so that
they can react on changes to a channel's PIDs or CA descriptors.
- The new function cOsd::DrawScaledBitmap() is now used for drawing subtitles.
This function can be reimplemented by high level OSDs which may be able to do
the scaling in hardware or otherwise more efficiently.
- Use of the function cOsd::GetBitmap() outside of derived classes is now deprecated,
and it may be made 'protected' in a future version, since it doesn't work with
TrueColor OSDs. Plugin authors may want to modify their code so that it
works without this function.
- Modified the descriptions of several threads, so that the important information
(like device or frontend numbers) is within the first 15 characters of the
string, because only these are displayed in thread listings. Plugin authors may
want to do the same.
- Plugins can now implement the function SetMenuSortMode() in their skin objects
derived from cSkinDisplayMenu, to get informed about the currently used sort
mode, if applicable.
- Added cOsdProvider::OsdSizeChanged(), which plugins that implement an output device
can call to signal a change in the OSD that requires a redraw of the currently
displayed object.
Skins:
- The new function cSkinDisplayChannel::SetPositioner() can be implemented by skins to
show the user a progress display when the dish is being moved. The default implementation
calls SetMessage() with a string indicating the new position the dish is being moved to.
The LCARS skin shows a progress bar indicating the movement of the dish.
- The LCARS skin now shows the source value of the current channel in its channel display.
- Plugins can now implement the function SetMenuSortMode() in their skin objects
derived from cSkinDisplayMenu, to get informed about the currently used sort
mode, if applicable.
Remote control:
- Revised the section on "Learning the remote control keys" in the INSTALL file to
avoid the impression that there actually is a default remote.conf file, and to
not use any alphabetic keys for special functions, so that they remain available
for textual input.
- The LIRC remote control now connects to the socket even if it doesn't yet exist when
VDR is started.
- Added handling UTF-8 'umlaut' characters to cKbdRemote.
Devices:
- The cDvbTuner now has a new status tsPositioning, in which it waits until a steerable
dish has reached its target position. Parsing SI data is paused until the target
position has been reached.
- cDevice::IsPrimaryDevice() now also checks whether the primary device actually has
a decoder and returns false otherwise. This should improve device allocation on
systems that are only used as a receiver and don't actually display anything.
- All bonded devices (except for the master) now turn off their LNB power completely
to avoid problems when receiving vertically polarized transponders.
- cDevice::TrickSpeed() now has an additional parameter named Forward, which indicates
the direction in which replay is being done. This information may be necessary for
some output devices in order to properly implement trick modes. Authors of plugins
that implement output devices will need to add this parameter to their derived cDevice
class, regardless of whether they will make use of it or not.
- Now checking whether the primary device actually has a decoder before retuning the
current channel after a change in its parameters. This fixes broken recordings on
the primary device on "headless" systems.
- Refactored setup parameter handling for output devices:
+ The function cDevice::GetVideoSystem() has been deprecated and will be removed
in a future version. In order to check whether a particular plugin needs to be
modified if this function is removed, you can comment out the line
#define DEPRECATED_VIDEOSYSTEM
in device.h.
+ Handling the "video (display) format" (things like 16:9, 4:3, pan&scan, letterbox
etc) shall now be done by the individual output devices, because the types and
numbers of parameters are too device specific. The Setup/DVB parameters
"Video format" and "Video display format" are still there for now and can be used
by SD devices. HD devices, however, shall not use these parameters (any more),
but rather implement their own setup menu with the necessary parameters for
controlling output.
+ The dvbhdffdevice plugin has been modified accordingly.
+ Made it clear that cDevice::SetDigitalAudioDevice() merely tells the output device
that the current audio track is Dolby Digital. This function was only used by the
original "full featured" DVB cards - do not use it for new developments!
If an output device has several ways of replaying audio (like HDMI or analog jack)
it shall implement the proper options in its plugin's SetupMenu() function.
- Added support for "Pilot", "T2-System-Id" and "SISO/MISO" parameters.
- Added subsystem id support for DVB devices connected via USB.
DiSEqC:
- The new DiSEqC command code 'P' can be used to instruct a positioner to move the
dish to the required satellite position. When a 'P' code is processed, further
execution of the remaining DiSEqC sequence (if any) is postponed until the positioner
has reached the new satellite position.
EPG:
- Added Begin/EndSegmentTransfer() to the EPG handler interface.
OSD:
- In the "Select folder" menu pressing Ok now selects the folder, even if this is a
folder that contains sub folders (marked with "..."). To open such a folder you
can press the Red key.
- The Recordings menu now remembers the last recording the cursor was positioned on,
independent of the last replayed recording. When a replay ends, however, the cursor
will initially be positioned to the last replayed recording again when the menu
is opened.
- Added cOsdProvider::OsdSizeChanged(), which plugins that implement an output device
can call to signal a change in the OSD that requires a redraw of the currently
displayed object.
- The "Select folder" menu now adds the folder names of all existing recordings to
any names that have been predefined in "folders.conf".
- Fixed an inconsistent behavior between opening the Recordings menu manually via the
main menu and by pressing the Recordings key. In the latter case it automatically
opened all sub folders to position the cursor to the last replayed recording, which
is unexpected at this point. You can still navigate to
the last replayed recording (if any) by pressing Ok repeatedly in the Recordings
menu.
Channels:
- Channels that are no longer contained in the current SDT of a transponder are now
marked with the keyword OBSOLETE in their name and provider fields. That way you can
identify obsolete channels when you switch to them, and you can get the complete
overview of all obsolete channels by sorting the Channels list by provider (by
pressing the 0 key twice). Automatic deletion of obsolete channels may follow later.
- Added support for LCN (Logical Channel Numbers), which plugins may use to sort
channels.
- Added "NORDIG" to the list of "DVB/Standard compliance" options and using it to
restrict the LCN (Logical Channel Numbers) parsing to networks that actually use
this non-standard feature.
Recordings:
- The code for distributing recordings over several video directories has been
removed. VDR now by default assumes that the video directory is one big disk.
Distributing the video directory over several disks was a useful feature in times
when disks were still relatively small, but it also caused serious problems in case
one of the disks failed. Nowadays hard disks come in sizes measured in terabytes,
and tools like "mhddfs" can be used to combine several disks to form one large volume.
A recommended method for a relatively safe disk setup in a VDR system is to use two
1TB (or larger) disks and use them as a RAID-1 (mirrored). That way, if one disk
fails, you can replace it without data loss.
- If you absolutely need to use several separate disks to store recordings, you can
write a plugin that uses the new cVideoDirectory API to implement the necessary
functionality (see PLUGINS.html, section "The video directory"). You can copy the
respective code from previous versions of videodir.c.
IMPORTANT NOTE: If you write a plugin that implements a distributed video directory,
=============== be sure to make cVideoDirectory::Rename() follow symbolic links!
This functionality was never implemented in VDR and it therefore
used a workaround in cutter.c. See the section marked with
// XXX this can be removed once RenameVideoFile() follows symlinks
in previous versions of cutter.c.
+ CloseVideoFile() is obsolete and has been removed.
+ The functions OpenVideoFile(), RenameVideoFile(), RemoveVideoFile(), VideoFileSpaceAvailable(),
VideoDiskSpace(), RemoveEmptyVideoDirectories(), IsOnVideoDirectoryFileSystem() and
PrefixVideoFileName() are now static members of cVideoDirectory and need to be called
with the proper prefix.
+ The name of the video directory is now available through cVideoDirectory::Name().
- Added renaming and moving recordings and folders, editing a recording's priority and
lifetime, and queueing cutting jobs.
+ The "Recording info" menu now has a new Blue button named "Edit", which opens a
dialog in which several properties of the selected recording can be changed. It can
be renamed or moved into another folder and its priority and lifetime can be
modified.
The new blue "Edit" button in the "Recordings" menu opens a dialog in which a folder
can be renamed or moved. See MANUAL, section "Managing folders".
+ In the "Edit recording" menu the Yellow button ("Delete marks") allows you to delete
all editing marks of the selected recording.
+ cCutter is no longer a static class. Cutting requests should now be invoked by
calling RecordingsHandler.Add(ruCut, FileName). See the new cRecordingsHandler
class in recording.h.
+ Cutting jobs are now placed in a queue (together with any move or copy jobs) and
are processed one by one.
+ The new SVDRP command MOVR can be used to rename a recording
+ Note that in several places in the source code a "copy" operation is mentioned,
however there is no user interface for this, yet.
- The function cRecordings::MBperMinute() now only takes into account recordings with
less than 5 seconds per megabyte, in an attempt to filter out radio recordings
The result of this function was way off any realistic
value in case there are many radio recordings in the video directory.
- When cutting a recording it is now checked whether there is already an edited
version of this recording (with the same name, but starting with '%'), and the
user is prompted for confirmation to overwrite it.
- Fixed numbering frames. Previously they were numbered starting from 1, while it
is apparently standard to number them from 0. Any existing recordings with editing
marks (which will now be off by one) can still be cut with all VDR versions from
1.7.32, because these will automatically adjust editing marks to I-frames.
Users of stable releases shouldn't notice any problems.
- Now returning from removing deleted recordings after at most 10 seconds, or if the
user presses a remote control key, to keep the system from getting unresponsive
when removing a huge number of files.
- Fixed generating the index file of an existing recording in case at the end of a TS file
there is less data in the buffer than needed by the frame detector. In such a case
it was possible that frames were missed, and there was most likely a distortion
when replaying that part of a recording. This is mostly a problem for recordings that
consist of more than one *.ts file. Single file recordings could only lose some
frames at their very end, which probably doesn't matter. At any rate, if you have
generated an index file with VDR version 2.0.6, 2.1.5 or 2.1.6, you may want to
do so again with this version to make sure the index is OK.
- Added the new command line option --updindex, which can be used to update an
incomplete index of a recording.
- In the "Edit recording" menu the '0' key can now be used on the "Name:" field to
remove the name of the recording and replace it with the last element of the
recording's folder path name. See MANUAL, section "Managing folders" for details.
Replay:
- The new option "Setup/Replay/Pause replay when jumping to a mark" can be used to
turn off pausing replay when jumping to an editing mark with the '9' key.
- The new option "Setup/Replay/Skip edited parts" can be used to automatically skip
the edited parts of a recording during replay, without the need to actually cut
the recording.
- The new option "Setup/Replay/Pause replay at last mark" can be used to make replay
go into Pause mode when it has reached the last "end" mark.
- The '8' key for testing an edited sequence now also jumps to the next *end*
mark if "Setup/Replay/Skip edited parts" is active. This allows for testing edits
in recordings that have actually been cut, as well as recordings that have not
been cut, in case "Skip edited parts" is enabled.
- A recording is now still considered unviewed when stopping replay within 10 seconds
of the first mark.
- The keys '1' and '3' can now be used in replay mode to position an editing mark
in "adaptive" mode. See MANUAL, section "Editing a Recording".
- The new option "Setup/Replay/Alternate behavior for adaptive skipping" can be used
to make adaptive skipping only halve the skip distance when the direction changes.
That way you can reach the desired point in a recording even if you make one too
many skips in a certain direction (see MANUAL for details).
SVDRP:
- The new SVDRP command MOVR can be used to rename a recording
Audio:
- Added the new parameters "Setup/Miscellaneous/Volume steps" and
".../Volume linearize". See the MANUAL for details.
- Added handling for DTS audio tracks to cPatPmtParser::ParsePmt().
Misc:
- Reverted the change from version 1.5.7 that made all logging go to LOG_ERR.
- The Yellow button in the main menu no longer acts as "Pause" if "Pause key handling"
is set to "do not pause live video".
- Added code for parsing LCN and AVC descriptors to libsi.
- Changes in the teletext PID no longer cause retuning (and thus interrupting a
recording).
- Made it clear that the Data parameter in cDevice::StillPicture() may point to a
series of packets, not just a single one.
- Changed '%a' to the POSIX compliant '%m' in all scanf() calls.
- cTSBuffer now provides the number of available bytes in its Get() function.
- The script given to VDR with the '-r' option is now also called after the recording
process has actually started.
- Updated 'sources.conf'.
- Increased MIN_TS_PACKETS_FOR_FRAME_DETECTOR to 100 and introduced counting the number
of actual video TS packets in cTsPayload in order to be able to record channels that
sometimes need many TS packets for detecting frame borders.
- Improved PAT/PMT scanning to speed up initial tuning to encrypted channels on
transponders with many PAT entries.
- The SDT is now only parsed *after* the NIT has been read, and it explicitly uses
the source value derived from the NIT. This should prevent new channels from being
created with the wrong source.
- Added support for systemd. To activate this you need to add "SDNOTIFY=1" to the
'make' call.
- No longer logging an error message in DirSizeMB() if the given directory doesn't
exist. This avoids lots of log entries in case several VDRs use the same video
directory and one of them has already physically removed a recording directory,
while the others still have it in their list of deleted recordings.
- VDR now reads command line options from *.conf files in /etc/vdr/conf.d.
See vdr.1 and vdr.5 for details.
- Added the functions IndexOf(), InsertUnique(), AppendUnique() and RemoveElement()
to the cVector class.
- Added functions to set and retrieve the priority of a cReceiver.
- Changed the German weekday names from "MonDieMitDonFreSamSon" to
"Mo.Di.Mi.Do.Fr.Sa.So.".
- Added the channel name to log messages that reference a channel.
- Added ARGSDIR to the ONEDIR section of Make.config.template.
- Added SDNOTIFY, NO_KBD and BIDI to Make.config.template.
- Modified runvdr.template to improve compatibility with the "bash" and "dash" shells.
- Updated sources.conf to reflect the fact that Astra 4A and SES5 are actually in
two separate positions.
- Fixed cMarks::GetNextBegin() and cMarks::GetNextEnd(). The behavior of these two
functions is now exacly as described in the header file. Editing marks that are
placed at exactly the same offset in a recording are now preserved in the cutting
process.

4
ci.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: ci.c 3.18 2015/01/30 12:24:53 kls Exp $
* $Id: ci.c 3.19 2015/02/02 13:57:39 kls Exp $
*/
#include "ci.h"
@ -1776,7 +1776,7 @@ bool cCamSlot::Assign(cDevice *Device, bool Query)
if (ciAdapter->Assign(Device, true)) {
if (!Device && assignedDevice)
assignedDevice->SetCamSlot(NULL);
if (!Query) {
if (!Query || !Device) {
StopDecrypting();
source = transponder = 0;
if (ciAdapter->Assign(Device)) {

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: config.c 3.6 2015/01/29 09:01:30 kls Exp $
* $Id: config.c 3.8 2015/02/06 10:10:22 kls Exp $
*/
#include "config.h"
@ -473,8 +473,9 @@ cSetup::cSetup(void)
PauseOnMarkJump = 1;
SkipEdited = 0;
PauseAtLastMark = 0;
BinarySkipInitial = 120;
BinarySkipTimeout = 3;
AdaptiveSkipInitial = 120;
AdaptiveSkipTimeout = 3;
AdaptiveSkipAlternate = 0;
ResumeID = 0;
CurrentChannel = -1;
CurrentVolume = MAXVOLUME;
@ -691,8 +692,9 @@ bool cSetup::Parse(const char *Name, const char *Value)
else if (!strcasecmp(Name, "PauseOnMarkJump")) PauseOnMarkJump = atoi(Value);
else if (!strcasecmp(Name, "SkipEdited")) SkipEdited = atoi(Value);
else if (!strcasecmp(Name, "PauseAtLastMark")) PauseAtLastMark = atoi(Value);
else if (!strcasecmp(Name, "BinarySkipInitial")) BinarySkipInitial = atoi(Value);
else if (!strcasecmp(Name, "BinarySkipTimeout")) BinarySkipTimeout = atoi(Value);
else if (!strcasecmp(Name, "AdaptiveSkipInitial")) AdaptiveSkipInitial= atoi(Value);
else if (!strcasecmp(Name, "AdaptiveSkipTimeout")) AdaptiveSkipTimeout= atoi(Value);
else if (!strcasecmp(Name, "AdaptiveSkipAlternate")) AdaptiveSkipAlternate = atoi(Value);
else if (!strcasecmp(Name, "ResumeID")) ResumeID = atoi(Value);
else if (!strcasecmp(Name, "CurrentChannel")) CurrentChannel = atoi(Value);
else if (!strcasecmp(Name, "CurrentVolume")) CurrentVolume = atoi(Value);
@ -813,8 +815,9 @@ bool cSetup::Save(void)
Store("PauseOnMarkJump", PauseOnMarkJump);
Store("SkipEdited", SkipEdited);
Store("PauseAtLastMark", PauseAtLastMark);
Store("BinarySkipInitial", BinarySkipInitial);
Store("BinarySkipTimeout", BinarySkipTimeout);
Store("AdaptiveSkipInitial",AdaptiveSkipInitial);
Store("AdaptiveSkipTimeout",AdaptiveSkipTimeout);
Store("AdaptiveSkipAlternate", AdaptiveSkipAlternate);
Store("ResumeID", ResumeID);
Store("CurrentChannel", CurrentChannel);
Store("CurrentVolume", CurrentVolume);

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: config.h 3.13 2015/01/27 10:50:11 kls Exp $
* $Id: config.h 3.17 2015/02/06 09:53:50 kls Exp $
*/
#ifndef __CONFIG_H
@ -22,13 +22,13 @@
// VDR's own version number:
#define VDRVERSION "2.1.8"
#define VDRVERSNUM 20108 // Version * 10000 + Major * 100 + Minor
#define VDRVERSION "2.1.9"
#define VDRVERSNUM 20109 // Version * 10000 + Major * 100 + Minor
// The plugin API's version number:
#define APIVERSION "2.1.8"
#define APIVERSNUM 20108 // Version * 10000 + Major * 100 + Minor
#define APIVERSION "2.1.9"
#define APIVERSNUM 20109 // Version * 10000 + Major * 100 + Minor
// When loading plugins, VDR searches them by their APIVERSION, which
// may be smaller than VDRVERSION in case there have been no changes to
@ -65,6 +65,7 @@
#define STANDARD_DVB 0
#define STANDARD_ANSISCTE 1
#define STANDARD_NORDIG 2
typedef uint32_t in_addr_t; //XXX from /usr/include/netinet/in.h (apparently this is not defined on systems with glibc < 2.2)
@ -336,8 +337,9 @@ public:
int PauseOnMarkJump;
int SkipEdited;
int PauseAtLastMark;
int BinarySkipInitial;
int BinarySkipTimeout;
int AdaptiveSkipInitial;
int AdaptiveSkipTimeout;
int AdaptiveSkipAlternate;
int ResumeID;
int CurrentChannel;
int CurrentVolume;

View File

@ -4,13 +4,12 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: dvbplayer.c 3.3 2015/02/01 10:45:41 kls Exp $
* $Id: dvbplayer.c 3.5 2015/02/06 15:08:51 kls Exp $
*/
#include "dvbplayer.h"
#include <math.h>
#include <stdlib.h>
#include "recording.h"
#include "remux.h"
#include "ringbuffer.h"
#include "thread.h"
@ -211,7 +210,7 @@ private:
cNonBlockingFileReader *nonBlockingFileReader;
cRingBufferFrame *ringBuffer;
cPtsIndex ptsIndex;
cMarks marks;
cMarks *marks;
cFileName *fileName;
cIndexFile *index;
cUnbufferedFile *replayFile;
@ -240,6 +239,7 @@ protected:
public:
cDvbPlayer(const char *FileName, bool PauseLive);
virtual ~cDvbPlayer();
void SetMarks(cMarks *Marks);
bool Active(void) { return cThread::Running(); }
void Pause(void);
void Play(void);
@ -265,6 +265,7 @@ cDvbPlayer::cDvbPlayer(const char *FileName, bool PauseLive)
{
nonBlockingFileReader = NULL;
ringBuffer = NULL;
marks = NULL;
index = NULL;
cRecording Recording(FileName);
framesPerSecond = Recording.FramesPerSecond();
@ -297,8 +298,6 @@ cDvbPlayer::cDvbPlayer(const char *FileName, bool PauseLive)
}
else if (PauseLive)
framesPerSecond = cRecording(FileName).FramesPerSecond(); // the fps rate might have changed from the default
if (Setup.SkipEdited || Setup.PauseAtLastMark)
marks.Load(FileName, framesPerSecond, isPesRecording);
}
cDvbPlayer::~cDvbPlayer()
@ -309,6 +308,12 @@ cDvbPlayer::~cDvbPlayer()
delete index;
delete fileName;
delete ringBuffer;
// don't delete marks here, we don't own them!
}
void cDvbPlayer::SetMarks(cMarks *Marks)
{
marks = Marks;
}
void cDvbPlayer::TrickSpeed(int Increment)
@ -377,6 +382,12 @@ bool cDvbPlayer::Save(void)
if (index) {
int Index = ptsIndex.FindIndex(DeviceGetSTC());
if (Index >= 0) {
if (Setup.SkipEdited && marks) {
marks->Lock();
if (marks->First() && abs(Index - marks->First()->Position()) <= int(round(RESUMEBACKUP * framesPerSecond)))
Index = 0; // when stopping within RESUMEBACKUP seconds of the first mark the recording shall still be considered unviewed
marks->Unlock();
}
Index -= int(round(RESUMEBACKUP * framesPerSecond));
if (Index > 0)
Index = index->GetNextIFrame(Index, false);
@ -407,9 +418,10 @@ void cDvbPlayer::Action(void)
readIndex = Resume();
if (readIndex > 0)
isyslog("resuming replay at index %d (%s)", readIndex, *IndexToHMSF(readIndex, true, framesPerSecond));
else if (Setup.SkipEdited) {
if (marks.First() && index) {
int Index = marks.First()->Position();
else if (Setup.SkipEdited && marks) {
marks->Lock();
if (marks->First() && index) {
int Index = marks->First()->Position();
uint16_t FileNumber;
off_t FileOffset;
if (index->Get(Index, &FileNumber, &FileOffset) && NextFile(FileNumber, FileOffset)) {
@ -417,6 +429,7 @@ void cDvbPlayer::Action(void)
readIndex = Index;
}
}
marks->Unlock();
}
nonBlockingFileReader = new cNonBlockingFileReader;
@ -486,11 +499,11 @@ void cDvbPlayer::Action(void)
off_t FileOffset;
if (index->Get(readIndex + 1, &FileNumber, &FileOffset, &readIndependent, &Length) && NextFile(FileNumber, FileOffset)) {
readIndex++;
if (Setup.SkipEdited || Setup.PauseAtLastMark) {
marks.Update();
cMark *m = marks.Get(readIndex);
if ((Setup.SkipEdited || Setup.PauseAtLastMark) && marks) {
marks->Lock();
cMark *m = marks->Get(readIndex);
if (m && (m->Index() & 0x01) != 0) { // we're at an end mark
m = marks.GetNextBegin(m);
m = marks->GetNextBegin(m);
int Index = -1;
if (m)
Index = m->Position(); // skip to next begin mark
@ -506,6 +519,7 @@ void cDvbPlayer::Action(void)
CutIn = true;
}
}
marks->Unlock();
}
}
else
@ -929,6 +943,12 @@ cDvbPlayerControl::~cDvbPlayerControl()
Stop();
}
void cDvbPlayerControl::SetMarks(cMarks *Marks)
{
if (player)
player->SetMarks(Marks);
}
bool cDvbPlayerControl::Active(void)
{
return player && player->Active();

View File

@ -4,13 +4,14 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: dvbplayer.h 3.1 2015/02/01 11:20:54 kls Exp $
* $Id: dvbplayer.h 3.2 2015/02/06 12:27:39 kls Exp $
*/
#ifndef __DVBPLAYER_H
#define __DVBPLAYER_H
#include "player.h"
#include "recording.h"
#include "thread.h"
class cDvbPlayer;
@ -25,6 +26,7 @@ public:
// file of the recording is long enough to allow the player to display
// the first frame in still picture mode.
virtual ~cDvbPlayerControl();
void SetMarks(cMarks *Marks);
bool Active(void);
void Stop(void);
// Stops the current replay session (if any).

6
eit.c
View File

@ -8,7 +8,7 @@
* Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>.
* Adapted to 'libsi' for VDR 1.3.0 by Marcel Wiesweg <marcel.wiesweg@gmx.de>.
*
* $Id: eit.c 3.5 2014/02/08 14:20:27 kls Exp $
* $Id: eit.c 3.6 2015/02/01 14:55:27 kls Exp $
*/
#include "eit.h"
@ -136,8 +136,8 @@ cEIT::cEIT(cSchedules *Schedules, int Source, u_char Tid, const u_char *Data, bo
UseExtendedEventDescriptor = true;
}
if (UseExtendedEventDescriptor) {
ExtendedEventDescriptors->Add(eed);
d = NULL; // so that it is not deleted
if (ExtendedEventDescriptors->Add(eed))
d = NULL; // so that it is not deleted
}
if (eed->getDescriptorNumber() == eed->getLastDescriptorNumber())
UseExtendedEventDescriptor = false;

View File

@ -6,7 +6,7 @@
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* $Id: si.c 3.1 2013/10/30 10:16:18 kls Exp $
* $Id: si.c 3.2 2015/02/01 14:55:27 kls Exp $
* *
***************************************************************************/
@ -198,17 +198,18 @@ void DescriptorGroup::Delete() {
}
}
void DescriptorGroup::Add(GroupDescriptor *d) {
bool DescriptorGroup::Add(GroupDescriptor *d) {
if (!array) {
length=d->getLastDescriptorNumber()+1;
array=new GroupDescriptor*[length]; //numbering is zero-based
for (int i=0;i<length;i++)
array[i]=0;
} else if (length != d->getLastDescriptorNumber()+1)
return; //avoid crash in case of misuse
return false; //avoid crash in case of misuse
if (length <= d->getDescriptorNumber())
return; // see http://www.vdr-portal.de/board60-linux/board14-betriebssystem/board69-c-t-vdr/p1025777-segfault-mit-vdr-1-7-21/#post1025777
return false; // see http://www.vdr-portal.de/board60-linux/board14-betriebssystem/board69-c-t-vdr/p1025777-segfault-mit-vdr-1-7-21/#post1025777
array[d->getDescriptorNumber()]=d;
return true;
}
bool DescriptorGroup::isComplete() {

View File

@ -6,7 +6,7 @@
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* $Id: si.h 3.2 2014/02/08 14:11:32 kls Exp $
* $Id: si.h 3.3 2015/02/01 14:55:27 kls Exp $
* *
***************************************************************************/
@ -483,7 +483,7 @@ class DescriptorGroup {
public:
DescriptorGroup(bool deleteOnDesctruction=true);
~DescriptorGroup();
void Add(GroupDescriptor *d);
bool Add(GroupDescriptor *d);
void Delete();
int getLength() { return length; }
GroupDescriptor **getDescriptors() { return array; }

176
menu.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: menu.c 3.35 2015/02/01 10:42:11 kls Exp $
* $Id: menu.c 3.46 2015/02/07 15:56:26 kls Exp $
*/
#include "menu.h"
@ -766,8 +766,48 @@ void cMenuFolder::SetHelpKeys(void)
}
}
#define FOLDERDELIMCHARSUBST 0x01
static void AddRecordingFolders(cList<cNestedItem> *List, char *Path)
{
if (Path) {
char *p = strchr(Path, FOLDERDELIMCHARSUBST);
if (p)
*p++ = 0;
cNestedItem *Folder;
for (Folder = List->First(); Folder; Folder = List->Next(Folder)) {
if (strcmp(Path, Folder->Text()) == 0)
break;
}
if (!Folder)
List->Add(Folder = new cNestedItem(Path));
if (p) {
Folder->SetSubItems(true);
AddRecordingFolders(Folder->SubItems(), p);
}
}
else {
cThreadLock RecordingsLock(&Recordings);
cStringList Dirs;
for (cRecording *Recording = Recordings.First(); Recording; Recording = Recordings.Next(Recording)) {
cString Folder = Recording->Folder();
strreplace((char *)*Folder, FOLDERDELIMCHAR, FOLDERDELIMCHARSUBST); // makes sure parent folders come before subfolders
if (Dirs.Find(Folder) < 0)
Dirs.Append(strdup(Folder));
}
Dirs.Sort();
for (int i = 0; i < Dirs.Size(); i++) {
char *s = Dirs[i];
if (*s)
AddRecordingFolders(&Folders, s);
}
}
}
void cMenuFolder::Set(const char *CurrentFolder)
{
static int RecordingsState = -1;
if (list == &Folders && Recordings.StateChanged(RecordingsState))
AddRecordingFolders(&Folders, NULL);
firstFolder = NULL;
Clear();
if (!isempty(dir)) {
@ -1377,6 +1417,7 @@ void cMenuScheduleItem::SetMenuItem(cSkinDisplayMenu *DisplayMenu, int Index, bo
class cMenuWhatsOn : public cOsdMenu {
private:
bool now;
bool canSwitch;
int helpKeys;
int timerState;
eOSState Record(void);
@ -1401,7 +1442,8 @@ cMenuWhatsOn::cMenuWhatsOn(const cSchedules *Schedules, bool Now, int CurrentCha
{
SetMenuCategory(Now ? mcScheduleNow : mcScheduleNext);
now = Now;
helpKeys = -1;
canSwitch = false;
helpKeys = 0;
timerState = 0;
Timers.Modified(timerState);
for (cChannel *Channel = Channels.First(); Channel; Channel = Channels.Next(Channel)) {
@ -1434,16 +1476,27 @@ bool cMenuWhatsOn::Update(void)
void cMenuWhatsOn::SetHelpKeys(void)
{
cMenuScheduleItem *item = (cMenuScheduleItem *)Get(Current());
canSwitch = false;
int NewHelpKeys = 0;
if (item) {
if (item->timerMatch == tmFull)
NewHelpKeys = 2;
NewHelpKeys |= 0x02; // "Timer"
else
NewHelpKeys = 1;
NewHelpKeys |= 0x01; // "Record"
if (now)
NewHelpKeys |= 0x04; // "Next"
else
NewHelpKeys |= 0x08; // "Now"
if (cChannel *Channel = Channels.GetByChannelID(item->event->ChannelID(), true)) {
if (Channel->Number() != cDevice::CurrentChannel()) {
NewHelpKeys |= 0x10; // "Switch"
canSwitch = true;
}
}
}
if (NewHelpKeys != helpKeys) {
const char *Red[] = { NULL, tr("Button$Record"), tr("Button$Timer") };
SetHelp(Red[NewHelpKeys], now ? tr("Button$Next") : tr("Button$Now"), tr("Button$Schedule"), tr("Button$Switch"));
SetHelp(Red[NewHelpKeys & 0x03], now ? tr("Button$Next") : tr("Button$Now"), tr("Button$Schedule"), canSwitch ? tr("Button$Switch") : NULL);
helpKeys = NewHelpKeys;
}
}
@ -1519,10 +1572,12 @@ eOSState cMenuWhatsOn::ProcessKey(eKeys Key)
}
}
break;
case kBlue: return Switch();
case kBlue: if (canSwitch)
return Switch();
break;
case kInfo:
case kOk: if (Count())
return AddSubMenu(new cMenuEvent(((cMenuScheduleItem *)Get(Current()))->event, true, true));
return AddSubMenu(new cMenuEvent(((cMenuScheduleItem *)Get(Current()))->event, canSwitch, true));
break;
default: break;
}
@ -1543,7 +1598,7 @@ private:
cSchedulesLock schedulesLock;
const cSchedules *schedules;
bool now, next;
int otherChannel;
bool canSwitch;
int helpKeys;
int timerState;
eOSState Number(void);
@ -1566,8 +1621,8 @@ cMenuSchedule::cMenuSchedule(void)
{
SetMenuCategory(mcSchedule);
now = next = false;
otherChannel = 0;
helpKeys = -1;
canSwitch = false;
helpKeys = 0;
timerState = 0;
Timers.Modified(timerState);
cMenuScheduleItem::SetSortMode(cMenuScheduleItem::ssmAllThis);
@ -1673,16 +1728,23 @@ bool cMenuSchedule::Update(void)
void cMenuSchedule::SetHelpKeys(void)
{
cMenuScheduleItem *item = (cMenuScheduleItem *)Get(Current());
canSwitch = false;
int NewHelpKeys = 0;
if (item) {
if (item->timerMatch == tmFull)
NewHelpKeys = 2;
NewHelpKeys |= 0x02; // "Timer"
else
NewHelpKeys = 1;
NewHelpKeys |= 0x01; // "Record"
if (cChannel *Channel = Channels.GetByChannelID(item->event->ChannelID(), true)) {
if (Channel->Number() != cDevice::CurrentChannel()) {
NewHelpKeys |= 0x10; // "Switch"
canSwitch = true;
}
}
}
if (NewHelpKeys != helpKeys) {
const char *Red[] = { NULL, tr("Button$Record"), tr("Button$Timer") };
SetHelp(Red[NewHelpKeys], tr("Button$Now"), tr("Button$Next"));
SetHelp(Red[NewHelpKeys & 0x03], tr("Button$Now"), tr("Button$Next"), canSwitch ? tr("Button$Switch") : NULL);
helpKeys = NewHelpKeys;
}
}
@ -1748,9 +1810,12 @@ eOSState cMenuSchedule::Record(void)
eOSState cMenuSchedule::Switch(void)
{
if (otherChannel) {
if (Channels.SwitchTo(otherChannel))
return osEnd;
cMenuScheduleItem *item = (cMenuScheduleItem *)Get(Current());
if (item) {
if (cChannel *Channel = Channels.GetByChannelID(item->event->ChannelID(), true)) {
if (Channels.SwitchTo(Channel->Number()))
return osEnd;
}
}
Skins.Message(mtError, tr("Can't switch channel!"));
return osContinue;
@ -1784,12 +1849,12 @@ eOSState cMenuSchedule::ProcessKey(eKeys Key)
case kYellow: if (schedules)
return AddSubMenu(new cMenuWhatsOn(schedules, false, cMenuWhatsOn::CurrentChannel()));
break;
case kBlue: if (Count() && otherChannel)
case kBlue: if (canSwitch)
return Switch();
break;
case kInfo:
case kOk: if (Count())
return AddSubMenu(new cMenuEvent(((cMenuScheduleItem *)Get(Current()))->event, otherChannel, true));
return AddSubMenu(new cMenuEvent(((cMenuScheduleItem *)Get(Current()))->event, canSwitch, true));
break;
default: break;
}
@ -1802,10 +1867,6 @@ eOSState cMenuSchedule::ProcessKey(eKeys Key)
if (channel) {
cMenuScheduleItem::SetSortMode(cMenuScheduleItem::ssmAllThis);
PrepareScheduleAllThis(NULL, channel);
if (channel->Number() != cDevice::CurrentChannel()) {
otherChannel = channel->Number();
SetHelp(Count() ? tr("Button$Record") : NULL, tr("Button$Now"), tr("Button$Next"), tr("Button$Switch"));
}
Display();
}
}
@ -2190,8 +2251,10 @@ eOSState cMenuPathEdit::Folder(void)
eOSState cMenuPathEdit::ApplyChanges(void)
{
if (!*name)
if (!*name) {
*name = ' '; // name must not be empty!
name[1] = 0;
}
cString NewPath = *folder ? cString::sprintf("%s%c%s", folder, FOLDERDELIMCHAR, name) : name;
NewPath.CompactChars(FOLDERDELIMCHAR);
if (strcmp(NewPath, path)) {
@ -2239,6 +2302,7 @@ private:
int priority;
int lifetime;
cMenuEditStrItem *folderItem;
cMenuEditStrItem *nameItem;
const char *buttonFolder;
const char *buttonAction;
const char *buttonDeleteMarks;
@ -2251,6 +2315,7 @@ private:
eOSState SetFolder(void);
eOSState Folder(void);
eOSState Action(void);
eOSState RemoveName(void);
eOSState DeleteMarks(void);
eOSState ApplyChanges(void);
public:
@ -2270,6 +2335,7 @@ cMenuRecordingEdit::cMenuRecordingEdit(cRecording *Recording)
priority = recording->Priority();
lifetime = recording->Lifetime();
folderItem = NULL;
nameItem = NULL;
buttonFolder = NULL;
buttonAction = NULL;
buttonDeleteMarks = NULL;
@ -2287,7 +2353,7 @@ void cMenuRecordingEdit::Set(void)
cOsdItem *p;
Add(p = folderItem = new cMenuEditStrItem(tr("Folder"), folder, sizeof(folder)));
p->SetSelectable(!recordingIsInUse);
Add(p = new cMenuEditStrItem(tr("Name"), name, sizeof(name)));
Add(p = nameItem = new cMenuEditStrItem(tr("Name"), name, sizeof(name)));
p->SetSelectable(!recordingIsInUse);
Add(p = new cMenuEditIntItem(tr("Priority"), &priority, 0, MAXPRIORITY));
p->SetSelectable(!recordingIsInUse);
@ -2366,6 +2432,24 @@ eOSState cMenuRecordingEdit::Action(void)
return osContinue;
}
eOSState cMenuRecordingEdit::RemoveName(void)
{
if (Get(Current()) == nameItem) {
if (Interface->Confirm(tr("Rename recording to folder name?"))) {
char *s = strrchr(folder, FOLDERDELIMCHAR);
if (s)
*s++ = 0;
else
s = folder;
strn0cpy(name, s, sizeof(name));
if (s == folder)
*s = 0;
Set();
}
}
return osContinue;
}
eOSState cMenuRecordingEdit::DeleteMarks(void)
{
if (buttonDeleteMarks && Interface->Confirm(tr("Delete editing marks for this recording?"))) {
@ -2387,8 +2471,10 @@ eOSState cMenuRecordingEdit::ApplyChanges(void)
}
Modified = true;
}
if (!*name)
if (!*name) {
*name = ' '; // name must not be empty!
name[1] = 0;
}
cString NewName = *folder ? cString::sprintf("%s%c%s", folder, FOLDERDELIMCHAR, name) : name;
NewName.CompactChars(FOLDERDELIMCHAR);
if (strcmp(NewName, recording->Name())) {
@ -2414,6 +2500,7 @@ eOSState cMenuRecordingEdit::ProcessKey(eKeys Key)
eOSState state = cOsdMenu::ProcessKey(Key);
if (state == osUnknown) {
switch (Key) {
case k0: return RemoveName();
case kRed: return buttonFolder ? Folder() : osContinue;
case kGreen: return buttonAction ? Action() : osContinue;
case kYellow: return buttonDeleteMarks ? DeleteMarks() : osContinue;
@ -3181,7 +3268,7 @@ private:
void Setup(void);
const char *videoDisplayFormatTexts[3];
const char *updateChannelsTexts[6];
const char *standardComplianceTexts[2];
const char *standardComplianceTexts[3];
public:
cMenuSetupDVB(void);
virtual eOSState ProcessKey(eKeys Key);
@ -3207,6 +3294,7 @@ cMenuSetupDVB::cMenuSetupDVB(void)
updateChannelsTexts[5] = tr("add new transponders");
standardComplianceTexts[0] = "DVB";
standardComplianceTexts[1] = "ANSI/SCTE";
standardComplianceTexts[2] = "NORDIG";
SetSection(tr("DVB"));
SetHelp(NULL, tr("Button$Audio"), tr("Button$Subtitles"), NULL);
@ -3220,7 +3308,7 @@ void cMenuSetupDVB::Setup(void)
Clear();
Add(new cMenuEditIntItem( tr("Setup.DVB$Primary DVB interface"), &data.PrimaryDVB, 1, cDevice::NumDevices()));
Add(new cMenuEditStraItem(tr("Setup.DVB$Standard compliance"), &data.StandardCompliance, 2, standardComplianceTexts));
Add(new cMenuEditStraItem(tr("Setup.DVB$Standard compliance"), &data.StandardCompliance, 3, standardComplianceTexts));
Add(new cMenuEditBoolItem(tr("Setup.DVB$Video format"), &data.VideoFormat, "4:3", "16:9"));
if (data.VideoFormat == 0)
Add(new cMenuEditStraItem(tr("Setup.DVB$Video display format"), &data.VideoDisplayFormat, 3, videoDisplayFormatTexts));
@ -3639,8 +3727,9 @@ cMenuSetupReplay::cMenuSetupReplay(void)
Add(new cMenuEditBoolItem(tr("Setup.Replay$Pause replay when jumping to a mark"), &data.PauseOnMarkJump));
Add(new cMenuEditBoolItem(tr("Setup.Replay$Skip edited parts"), &data.SkipEdited));
Add(new cMenuEditBoolItem(tr("Setup.Replay$Pause replay at last mark"), &data.PauseAtLastMark));
Add(new cMenuEditIntItem( tr("Setup.Replay$Binary skip initial value (s)"), &data.BinarySkipInitial, 10, 600));
Add(new cMenuEditIntItem( tr("Setup.Replay$Binary skip timeout (s)"), &data.BinarySkipTimeout, 0, 10));
Add(new cMenuEditIntItem( tr("Setup.Replay$Initial duration for adaptive skipping (s)"), &data.AdaptiveSkipInitial, 10, 600));
Add(new cMenuEditIntItem( tr("Setup.Replay$Reset timeout for adaptive skipping (s)"), &data.AdaptiveSkipTimeout, 0, 10));
Add(new cMenuEditBoolItem(tr("Setup.Replay$Alternate behavior for adaptive skipping"), &data.AdaptiveSkipAlternate));
Add(new cMenuEditIntItem(tr("Setup.Replay$Resume ID"), &data.ResumeID, 0, 99));
}
@ -4980,9 +5069,9 @@ bool cRecordControls::StateChanged(int &State)
return Result;
}
// --- cBinarySkipper --------------------------------------------------------
// --- cAdaptiveSkipper ------------------------------------------------------
cBinarySkipper::cBinarySkipper(void)
cAdaptiveSkipper::cAdaptiveSkipper(void)
{
initialValue = NULL;
currentValue = 0;
@ -4990,14 +5079,14 @@ cBinarySkipper::cBinarySkipper(void)
lastKey = kNone;
}
void cBinarySkipper::Initialize(int *InitialValue, double FramesPerSecond)
void cAdaptiveSkipper::Initialize(int *InitialValue, double FramesPerSecond)
{
initialValue = InitialValue;
framesPerSecond = FramesPerSecond;
currentValue = 0;
}
int cBinarySkipper::GetValue(eKeys Key)
int cAdaptiveSkipper::GetValue(eKeys Key)
{
if (!initialValue)
return 0;
@ -5007,9 +5096,12 @@ int cBinarySkipper::GetValue(eKeys Key)
}
else if (Key != lastKey) {
currentValue /= 2;
lastKey = kNone; // once the direction has changed, every further call halves the value
if (Setup.AdaptiveSkipAlternate)
lastKey = Key; // only halve the value when the direction is changed
else
lastKey = kNone; // once the direction has changed, every further call halves the value
}
timeout.Set(Setup.BinarySkipTimeout * 1000);
timeout.Set(Setup.AdaptiveSkipTimeout * 1000);
return max(currentValue, 1);
}
@ -5034,7 +5126,8 @@ cReplayControl::cReplayControl(bool PauseLive)
cRecording Recording(fileName);
cStatus::MsgReplaying(this, Recording.Name(), Recording.FileName(), true);
marks.Load(fileName, Recording.FramesPerSecond(), Recording.IsPesRecording());
binarySkipper.Initialize(&Setup.BinarySkipInitial, Recording.FramesPerSecond());
SetMarks(&marks);
adaptiveSkipper.Initialize(&Setup.AdaptiveSkipInitial, Recording.FramesPerSecond());
SetTrackDescriptions(false);
if (Setup.ProgressDisplayTime)
ShowTimed(Setup.ProgressDisplayTime);
@ -5303,10 +5396,15 @@ void cReplayControl::MarkToggle(void)
int Current, Total;
if (GetIndex(Current, Total, true)) {
lastCurrent = -1; // triggers redisplay
if (cMark *m = marks.Get(Current))
if (cMark *m = marks.Get(Current)) {
marks.Lock();
marks.Del(m);
marks.Unlock();
}
else {
marks.Lock();
marks.Add(Current);
marks.Unlock();
bool Play, Forward;
int Speed;
if (Setup.PauseOnMarkSet || GetReplayMode(Play, Forward, Speed) && !Play) {
@ -5510,9 +5608,9 @@ eOSState cReplayControl::ProcessKey(eKeys Key)
case kMarkMoveForward|k_Repeat:
case kMarkMoveForward: MarkMove(+1, true); break;
case kMarkSkipBack|k_Repeat:
case kMarkSkipBack: MarkMove(-binarySkipper.GetValue(RAWKEY(Key)), false); break;
case kMarkSkipBack: MarkMove(-adaptiveSkipper.GetValue(RAWKEY(Key)), false); break;
case kMarkSkipForward|k_Repeat:
case kMarkSkipForward: MarkMove(+binarySkipper.GetValue(RAWKEY(Key)), false); break;
case kMarkSkipForward: MarkMove(+adaptiveSkipper.GetValue(RAWKEY(Key)), false); break;
case kEditCut: EditCut(); break;
case kEditTest: EditTest(); break;
default: {

8
menu.h
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: menu.h 3.7 2015/01/27 11:38:20 kls Exp $
* $Id: menu.h 3.8 2015/02/06 09:47:30 kls Exp $
*/
#ifndef __MENU_H
@ -270,7 +270,7 @@ public:
static bool StateChanged(int &State);
};
class cBinarySkipper {
class cAdaptiveSkipper {
private:
int *initialValue;
int currentValue;
@ -278,7 +278,7 @@ private:
eKeys lastKey;
cTimeMs timeout;
public:
cBinarySkipper(void);
cAdaptiveSkipper(void);
void Initialize(int *InitialValue, double FramesPerSecond);
int GetValue(eKeys Key);
};
@ -286,7 +286,7 @@ public:
class cReplayControl : public cDvbPlayerControl {
private:
cSkinDisplayReplay *displayReplay;
cBinarySkipper binarySkipper;
cAdaptiveSkipper adaptiveSkipper;
cMarks marks;
bool marksModified;
bool visible, modeOnly, shown, displayFrames;

60
nit.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: nit.c 3.4 2015/02/01 13:46:00 kls Exp $
* $Id: nit.c 3.5 2015/02/04 09:13:54 kls Exp $
*/
#include "nit.h"
@ -357,39 +357,41 @@ void cNitFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
}
}
break;
case SI::LogicalChannelDescriptorTag: {
SI::LogicalChannelDescriptor *lcd = (SI::LogicalChannelDescriptor *)d;
SI::LogicalChannelDescriptor::LogicalChannel LogicalChannel;
for (SI::Loop::Iterator it4; lcd->logicalChannelLoop.getNext(LogicalChannel, it4); ) {
int lcn = LogicalChannel.getLogicalChannelNumber();
int sid = LogicalChannel.getServiceId();
if (LogicalChannel.getVisibleServiceFlag()) {
for (cChannel *Channel = Channels.First(); Channel; Channel = Channels.Next(Channel)) {
if (!Channel->GroupSep() && Channel->Sid() == sid && Channel->Nid() == ts.getOriginalNetworkId() && Channel->Tid() == ts.getTransportStreamId()) {
Channel->SetLcn(lcn);
break;
case SI::LogicalChannelDescriptorTag:
if (Setup.StandardCompliance == STANDARD_NORDIG) {
SI::LogicalChannelDescriptor *lcd = (SI::LogicalChannelDescriptor *)d;
SI::LogicalChannelDescriptor::LogicalChannel LogicalChannel;
for (SI::Loop::Iterator it4; lcd->logicalChannelLoop.getNext(LogicalChannel, it4); ) {
int lcn = LogicalChannel.getLogicalChannelNumber();
int sid = LogicalChannel.getServiceId();
if (LogicalChannel.getVisibleServiceFlag()) {
for (cChannel *Channel = Channels.First(); Channel; Channel = Channels.Next(Channel)) {
if (!Channel->GroupSep() && Channel->Sid() == sid && Channel->Nid() == ts.getOriginalNetworkId() && Channel->Tid() == ts.getTransportStreamId()) {
Channel->SetLcn(lcn);
break;
}
}
}
}
}
}
}
}
break;
case SI::HdSimulcastLogicalChannelDescriptorTag: {
SI::HdSimulcastLogicalChannelDescriptor *lcd = (SI::HdSimulcastLogicalChannelDescriptor *)d;
SI::HdSimulcastLogicalChannelDescriptor::HdSimulcastLogicalChannel HdSimulcastLogicalChannel;
for (SI::Loop::Iterator it4; lcd->hdSimulcastLogicalChannelLoop.getNext(HdSimulcastLogicalChannel, it4); ) {
int lcn = HdSimulcastLogicalChannel.getLogicalChannelNumber();
int sid = HdSimulcastLogicalChannel.getServiceId();
if (HdSimulcastLogicalChannel.getVisibleServiceFlag()) {
for (cChannel *Channel = Channels.First(); Channel; Channel = Channels.Next(Channel)) {
if (!Channel->GroupSep() && Channel->Sid() == sid && Channel->Nid() == ts.getOriginalNetworkId() && Channel->Tid() == ts.getTransportStreamId()) {
Channel->SetLcn(lcn);
break;
case SI::HdSimulcastLogicalChannelDescriptorTag:
if (Setup.StandardCompliance == STANDARD_NORDIG) {
SI::HdSimulcastLogicalChannelDescriptor *lcd = (SI::HdSimulcastLogicalChannelDescriptor *)d;
SI::HdSimulcastLogicalChannelDescriptor::HdSimulcastLogicalChannel HdSimulcastLogicalChannel;
for (SI::Loop::Iterator it4; lcd->hdSimulcastLogicalChannelLoop.getNext(HdSimulcastLogicalChannel, it4); ) {
int lcn = HdSimulcastLogicalChannel.getLogicalChannelNumber();
int sid = HdSimulcastLogicalChannel.getServiceId();
if (HdSimulcastLogicalChannel.getVisibleServiceFlag()) {
for (cChannel *Channel = Channels.First(); Channel; Channel = Channels.Next(Channel)) {
if (!Channel->GroupSep() && Channel->Sid() == sid && Channel->Nid() == ts.getOriginalNetworkId() && Channel->Tid() == ts.getTransportStreamId()) {
Channel->SetLcn(lcn);
break;
}
}
}
}
}
}
}
}
break;
default: ;
}

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.0.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2015-01-30 13:14+0100\n"
"POT-Creation-Date: 2015-02-07 17:08+0100\n"
"PO-Revision-Date: 2008-10-16 11:16-0400\n"
"Last-Translator: Osama Alrawab <alrawab@hotmail.com>\n"
"Language-Team: Arabic <ar@li.org>\n"
@ -800,6 +800,9 @@ msgstr ""
msgid "Error while queueing recording for cutting!"
msgstr ""
msgid "Rename recording to folder name?"
msgstr ""
msgid "Delete editing marks for this recording?"
msgstr ""
@ -1245,10 +1248,13 @@ msgstr ""
msgid "Setup.Replay$Pause replay at last mark"
msgstr ""
msgid "Setup.Replay$Binary skip initial value (s)"
msgid "Setup.Replay$Initial duration for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Binary skip timeout (s)"
msgid "Setup.Replay$Reset timeout for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Alternate behavior for adaptive skipping"
msgstr ""
msgid "Setup.Replay$Resume ID"

View File

@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.0.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2015-01-30 13:14+0100\n"
"POT-Creation-Date: 2015-02-07 17:08+0100\n"
"PO-Revision-Date: 2008-03-02 19:02+0100\n"
"Last-Translator: Luca Olivetti <luca@ventoso.org>\n"
"Language-Team: Catalan <vdr@linuxtv.org>\n"
@ -799,6 +799,9 @@ msgstr ""
msgid "Error while queueing recording for cutting!"
msgstr ""
msgid "Rename recording to folder name?"
msgstr ""
msgid "Delete editing marks for this recording?"
msgstr ""
@ -1244,10 +1247,13 @@ msgstr ""
msgid "Setup.Replay$Pause replay at last mark"
msgstr ""
msgid "Setup.Replay$Binary skip initial value (s)"
msgid "Setup.Replay$Initial duration for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Binary skip timeout (s)"
msgid "Setup.Replay$Reset timeout for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Alternate behavior for adaptive skipping"
msgstr ""
msgid "Setup.Replay$Resume ID"

View File

@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.0.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2015-01-30 13:14+0100\n"
"POT-Creation-Date: 2015-02-07 17:08+0100\n"
"PO-Revision-Date: 2010-05-06 11:00+0200\n"
"Last-Translator: Aleš Juřík <ajurik@quick.cz>\n"
"Language-Team: Czech <vdr@linuxtv.org>\n"
@ -799,6 +799,9 @@ msgstr ""
msgid "Error while queueing recording for cutting!"
msgstr ""
msgid "Rename recording to folder name?"
msgstr ""
msgid "Delete editing marks for this recording?"
msgstr ""
@ -1244,10 +1247,13 @@ msgstr ""
msgid "Setup.Replay$Pause replay at last mark"
msgstr ""
msgid "Setup.Replay$Binary skip initial value (s)"
msgid "Setup.Replay$Initial duration for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Binary skip timeout (s)"
msgid "Setup.Replay$Reset timeout for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Alternate behavior for adaptive skipping"
msgstr ""
msgid "Setup.Replay$Resume ID"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.0.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2015-01-30 13:14+0100\n"
"POT-Creation-Date: 2015-02-07 17:08+0100\n"
"PO-Revision-Date: 2007-08-12 14:17+0200\n"
"Last-Translator: Mogens Elneff <mogens@elneff.dk>\n"
"Language-Team: Danish <vdr@linuxtv.org>\n"
@ -796,6 +796,9 @@ msgstr ""
msgid "Error while queueing recording for cutting!"
msgstr ""
msgid "Rename recording to folder name?"
msgstr ""
msgid "Delete editing marks for this recording?"
msgstr ""
@ -1241,10 +1244,13 @@ msgstr ""
msgid "Setup.Replay$Pause replay at last mark"
msgstr ""
msgid "Setup.Replay$Binary skip initial value (s)"
msgid "Setup.Replay$Initial duration for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Binary skip timeout (s)"
msgid "Setup.Replay$Reset timeout for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Alternate behavior for adaptive skipping"
msgstr ""
msgid "Setup.Replay$Resume ID"

View File

@ -1,13 +1,13 @@
# VDR language source file.
# Copyright (C) 2013 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Klaus Schmidinger <vdr@tvdr.de>, 2000-2008
# Klaus Schmidinger <vdr@tvdr.de>, 2000-2015
#
msgid ""
msgstr ""
"Project-Id-Version: VDR 2.0.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2015-01-30 13:14+0100\n"
"POT-Creation-Date: 2015-02-07 17:08+0100\n"
"PO-Revision-Date: 2010-01-16 16:46+0100\n"
"Last-Translator: Klaus Schmidinger <vdr@tvdr.de>\n"
"Language-Team: German <vdr@linuxtv.org>\n"
@ -796,6 +796,9 @@ msgstr "Geschnittene Version existiert bereits -
msgid "Error while queueing recording for cutting!"
msgstr "Fehler beim Hinzufügen der Aufnahme zur Schnittwarteschlange"
msgid "Rename recording to folder name?"
msgstr "Aufnahme in Ordnername umbenennen?"
msgid "Delete editing marks for this recording?"
msgstr "Schnittmarken für diese Aufnahme löschen?"
@ -1079,7 +1082,7 @@ msgid "Setup.LNB$Use dish positioner"
msgstr "Antennen-Positionierer benutzen"
msgid "Setup.LNB$Site latitude (degrees)"
msgstr "Standort Längengrad"
msgstr "Standort Breitengrad"
msgid "South"
msgstr "Süd"
@ -1088,7 +1091,7 @@ msgid "North"
msgstr "Nord"
msgid "Setup.LNB$Site longitude (degrees)"
msgstr "Standort Breitengrad"
msgstr "Standort Längengrad"
msgid "West"
msgstr "West"
@ -1241,11 +1244,14 @@ msgstr "Herausgeschnittene Teile
msgid "Setup.Replay$Pause replay at last mark"
msgstr "Pause an der letzten Schnittmarke"
msgid "Setup.Replay$Binary skip initial value (s)"
msgstr "Anfangswert für binäres Springen (s)"
msgid "Setup.Replay$Initial duration for adaptive skipping (s)"
msgstr "Anfangswert beim Halbieren der Sprungweite (s)"
msgid "Setup.Replay$Binary skip timeout (s)"
msgstr "Zeitlimit für binäres Springen (ms)"
msgid "Setup.Replay$Reset timeout for adaptive skipping (s)"
msgstr "Zeitlimit beim Halbieren der Sprungweite (s)"
msgid "Setup.Replay$Alternate behavior for adaptive skipping"
msgstr "Sprungweite nur bei Richtungswechsel halbieren"
msgid "Setup.Replay$Resume ID"
msgstr "Wiedergabe-ID"
@ -1519,7 +1525,7 @@ msgid "Recording started"
msgstr "Aufzeichnung gestartet"
msgid "VDR will shut down later - press Power to force"
msgstr "VDR schaltet später aus - Power zum erzwingen"
msgstr "VDR schaltet später aus - Power zum Erzwingen"
msgid "Press any key to cancel shutdown"
msgstr "Taste drücken, um Ausschalten abzubrechen"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.0.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2015-01-30 13:14+0100\n"
"POT-Creation-Date: 2015-02-07 17:08+0100\n"
"PO-Revision-Date: 2007-08-12 14:17+0200\n"
"Last-Translator: Dimitrios Dimitrakos <mail@dimitrios.de>\n"
"Language-Team: Greek <vdr@linuxtv.org>\n"
@ -796,6 +796,9 @@ msgstr ""
msgid "Error while queueing recording for cutting!"
msgstr ""
msgid "Rename recording to folder name?"
msgstr ""
msgid "Delete editing marks for this recording?"
msgstr ""
@ -1241,10 +1244,13 @@ msgstr ""
msgid "Setup.Replay$Pause replay at last mark"
msgstr ""
msgid "Setup.Replay$Binary skip initial value (s)"
msgid "Setup.Replay$Initial duration for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Binary skip timeout (s)"
msgid "Setup.Replay$Reset timeout for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Alternate behavior for adaptive skipping"
msgstr ""
msgid "Setup.Replay$Resume ID"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.0.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2015-01-30 13:14+0100\n"
"POT-Creation-Date: 2015-02-07 17:08+0100\n"
"PO-Revision-Date: 2008-03-02 19:02+0100\n"
"Last-Translator: Luca Olivetti <luca@ventoso.org>\n"
"Language-Team: Spanish <vdr@linuxtv.org>\n"
@ -797,6 +797,9 @@ msgstr ""
msgid "Error while queueing recording for cutting!"
msgstr ""
msgid "Rename recording to folder name?"
msgstr ""
msgid "Delete editing marks for this recording?"
msgstr ""
@ -1242,10 +1245,13 @@ msgstr ""
msgid "Setup.Replay$Pause replay at last mark"
msgstr ""
msgid "Setup.Replay$Binary skip initial value (s)"
msgid "Setup.Replay$Initial duration for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Binary skip timeout (s)"
msgid "Setup.Replay$Reset timeout for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Alternate behavior for adaptive skipping"
msgstr ""
msgid "Setup.Replay$Resume ID"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.0.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2015-01-30 13:14+0100\n"
"POT-Creation-Date: 2015-02-07 17:08+0100\n"
"PO-Revision-Date: 2007-08-12 14:17+0200\n"
"Last-Translator: Arthur Konovalov <artlov@gmail.com>\n"
"Language-Team: Estonian <vdr@linuxtv.org>\n"
@ -20,7 +20,7 @@ msgid "*** Invalid Channel ***"
msgstr "*** Kehtetu kanal ***"
msgid "CAM activated!"
msgstr ""
msgstr "CAM aktiveeritud!"
msgid "Channel not available!"
msgstr "Kanal ei ole kättesaadav!"
@ -796,6 +796,9 @@ msgstr "Redigeeritud versioon juba olemas - kirjutada üle?"
msgid "Error while queueing recording for cutting!"
msgstr "Salvestuse lõikamiseks lisamine ebaõnnestus!"
msgid "Rename recording to folder name?"
msgstr ""
msgid "Delete editing marks for this recording?"
msgstr "Kustutada selle salvestuse markerid?"
@ -1113,16 +1116,16 @@ msgstr "CAM töövalmis"
#. TRANSLATORS: note the leading blank!
msgid " (activating)"
msgstr ""
msgstr " (aktiveerimine)"
msgid "CAM"
msgstr "CAM"
msgid "Button$Cancel activation"
msgstr ""
msgstr "Aktiveerimise tühistamine"
msgid "Button$Activate"
msgstr ""
msgstr "Aktiveeri"
msgid "Button$Menu"
msgstr "Menüü"
@ -1137,7 +1140,7 @@ msgid "Can't open CAM menu!"
msgstr "Ei saa avada CAM menüüd!"
msgid "Can't activate CAM!"
msgstr ""
msgstr "Ei saa CAM'i aktiveerida!"
msgid "CAM is in use - really reset?"
msgstr "CAM on kasutuses - taaskäivitada?"
@ -1230,21 +1233,24 @@ msgid "Setup.Replay$Progress display time (s)"
msgstr "Edenemiseriba kuvamise aeg (s)"
msgid "Setup.Replay$Pause replay when setting mark"
msgstr "Taasesituse peatamine markeri seadmisel"
msgstr "Paus markeri seadmisel"
msgid "Setup.Replay$Pause replay when jumping to a mark"
msgstr ""
msgstr "Paus markerile siirdamisel"
msgid "Setup.Replay$Skip edited parts"
msgstr ""
msgstr "Redigeeritud osade vahelejätmine"
msgid "Setup.Replay$Pause replay at last mark"
msgstr "Paus viimasel markeril"
msgid "Setup.Replay$Initial duration for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Binary skip initial value (s)"
msgid "Setup.Replay$Reset timeout for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Binary skip timeout (s)"
msgid "Setup.Replay$Alternate behavior for adaptive skipping"
msgstr ""
msgid "Setup.Replay$Resume ID"
@ -1287,7 +1293,7 @@ msgid "Setup.Miscellaneous$Volume steps"
msgstr "Helitugevuse samm"
msgid "Setup.Miscellaneous$Volume linearize"
msgstr "Helitugevuse lineariseerimine"
msgstr "Helitugevuse lineaarsus"
msgid "Setup.Miscellaneous$Channels wrap"
msgstr "Kanalite ringkerimine"
@ -1322,7 +1328,7 @@ msgstr "Kava"
#. TRANSLATORS: note the leading blank!
msgid " Stop replaying"
msgstr " Lõpetada taasesitamine"
msgstr " Lõpetada taasesitus"
msgid "Button$Pause"
msgstr "Paus"
@ -1331,7 +1337,7 @@ msgid "Button$Stop"
msgstr "Stopp"
msgid "Button$Resume"
msgstr "Jätkata"
msgstr "Jätkamine"
#. TRANSLATORS: note the leading blank!
msgid " Cancel editing"

View File

@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.0.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2015-01-30 13:14+0100\n"
"POT-Creation-Date: 2015-02-07 17:08+0100\n"
"PO-Revision-Date: 2007-08-15 15:52+0200\n"
"Last-Translator: Matti Lehtimäki <matti.lehtimaki@gmail.com>\n"
"Language-Team: Finnish <vdr@linuxtv.org>\n"
@ -800,6 +800,9 @@ msgstr "Muokattava versio on jo olemassa - ylikirjoitetaanko?"
msgid "Error while queueing recording for cutting!"
msgstr "Tallenteen lisääminen leikkausjonoon epäonnistui!"
msgid "Rename recording to folder name?"
msgstr ""
msgid "Delete editing marks for this recording?"
msgstr "Poistetaanko muokkausmerkinnät tallenteelta?"
@ -1245,11 +1248,14 @@ msgstr "Ohita muokatut kohdat"
msgid "Setup.Replay$Pause replay at last mark"
msgstr "Pysäytä toisto viimeiseen merkkiin"
msgid "Setup.Replay$Binary skip initial value (s)"
msgstr "Binäärihypyn oletuspituus (s)"
msgid "Setup.Replay$Initial duration for adaptive skipping (s)"
msgstr "Mukautuvan hypyn oletuskesto (s)"
msgid "Setup.Replay$Binary skip timeout (s)"
msgstr "Binäärihypyn odotusaika (ms)"
msgid "Setup.Replay$Reset timeout for adaptive skipping (s)"
msgstr "Mukautuvan hypyn nollausviive (s)"
msgid "Setup.Replay$Alternate behavior for adaptive skipping"
msgstr "Käytä vaihtoehtoista mukautuvaa hyppyä"
msgid "Setup.Replay$Resume ID"
msgstr "Tallenteen paluutunniste"

View File

@ -17,7 +17,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.0.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2015-01-30 13:14+0100\n"
"POT-Creation-Date: 2015-02-07 17:08+0100\n"
"PO-Revision-Date: 2013-02-24 12:56+0100\n"
"Last-Translator: Dominique Plu <dplu@free.fr>\n"
"Language-Team: French <vdr@linuxtv.org>\n"
@ -806,6 +806,9 @@ msgstr ""
msgid "Error while queueing recording for cutting!"
msgstr ""
msgid "Rename recording to folder name?"
msgstr ""
msgid "Delete editing marks for this recording?"
msgstr ""
@ -1251,10 +1254,13 @@ msgstr ""
msgid "Setup.Replay$Pause replay at last mark"
msgstr ""
msgid "Setup.Replay$Binary skip initial value (s)"
msgid "Setup.Replay$Initial duration for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Binary skip timeout (s)"
msgid "Setup.Replay$Reset timeout for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Alternate behavior for adaptive skipping"
msgstr ""
msgid "Setup.Replay$Resume ID"

View File

@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.0.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2015-01-30 13:14+0100\n"
"POT-Creation-Date: 2015-02-07 17:08+0100\n"
"PO-Revision-Date: 2008-03-17 19:00+0100\n"
"Last-Translator: Adrian Caval <anrxc@sysphere.org>\n"
"Language-Team: Croatian <vdr@linuxtv.org>\n"
@ -798,6 +798,9 @@ msgstr ""
msgid "Error while queueing recording for cutting!"
msgstr ""
msgid "Rename recording to folder name?"
msgstr ""
msgid "Delete editing marks for this recording?"
msgstr ""
@ -1243,10 +1246,13 @@ msgstr ""
msgid "Setup.Replay$Pause replay at last mark"
msgstr ""
msgid "Setup.Replay$Binary skip initial value (s)"
msgid "Setup.Replay$Initial duration for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Binary skip timeout (s)"
msgid "Setup.Replay$Reset timeout for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Alternate behavior for adaptive skipping"
msgstr ""
msgid "Setup.Replay$Resume ID"

View File

@ -4,30 +4,31 @@
# Istvan Koenigsberger <istvnko@hotmail.com>, 2002, 2003, 2006
# Guido Josten <guido.josten@t-online.de>, 2002, 2003, 2006
# Thomas Günther <tom@toms-cafe.de>, 2007
# István Füley <ifuley@tigercomp.ro>, 2007, 2012, 2013
# István Füley <ifuley@tigercomp.ro>, 2007, 2012, 2013, 2015
# Mario Fenneis <admin@mediastreambox.at>, 2015
#
msgid ""
msgstr ""
"Project-Id-Version: VDR 2.0.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2015-01-30 13:14+0100\n"
"PO-Revision-Date: 2013-03-01 19:22+0200\n"
"PO-Revision-Date: 2015-02-03 11:35+0200\n"
"Last-Translator: István Füley <ifuley@tigercomp.ro>\n"
"Language-Team: Hungarian <vdr@linuxtv.org>\n"
"Language: hu\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.5.5\n"
"X-Generator: Poedit 1.6.11\n"
msgid "*** Invalid Channel ***"
msgstr "*** Érvénytelen csatorna ***"
msgid "CAM activated!"
msgstr ""
msgstr "CAM aktiválva!"
msgid "Channel not available!"
msgstr "Az adó nem elérhető"
msgstr "A csatorna nem elérhető!"
msgid "Can't start Transfer Mode!"
msgstr "Transfer-Mode nem indítható!"
@ -69,7 +70,7 @@ msgid "Bandwidth"
msgstr "Sávszélesség"
msgid "Transmission"
msgstr "Átvitel"
msgstr "Transmission"
msgid "Guard"
msgstr "Guard"
@ -84,22 +85,22 @@ msgid "StreamId"
msgstr "Stream azonosító"
msgid "Pilot"
msgstr ""
msgstr "Pilot"
msgid "T2SystemId"
msgstr ""
msgstr "T2 rendszer azonosító"
msgid "SISO/MISO"
msgstr ""
msgstr "SISO/MISO"
msgid "Starting EPG scan"
msgstr "EPG adatok aktualizálása"
msgstr "EPG adatok frissítése"
msgid "Content$Movie/Drama"
msgstr "Film/Dráma"
msgid "Content$Detective/Thriller"
msgstr "Nyomozó/Thriller"
msgstr "Nyomozó/Krimi"
msgid "Content$Adventure/Western/War"
msgstr "Kaland/Western/Háborús"
@ -117,7 +118,7 @@ msgid "Content$Romance"
msgstr "Romantikus film"
msgid "Content$Serious/Classical/Religious/Historical Movie/Drama"
msgstr "Komolyzenei/Klasszikus/Vallási/Történelmi film/Dráma"
msgstr "Komoly/Klasszikus/Vallási/Történelmi film/Dráma"
msgid "Content$Adult Movie/Drama"
msgstr "Felnőtt tartalom/Dráma"
@ -159,7 +160,7 @@ msgid "Content$Sport Magazine"
msgstr "Sporthíradó"
msgid "Content$Football/Soccer"
msgstr "Fotball/Labdarúgás"
msgstr "Futball/Labdarúgás"
msgid "Content$Tennis/Squash"
msgstr "Tenisz/Squash"
@ -180,13 +181,13 @@ msgid "Content$Winter Sports"
msgstr "Télisportok"
msgid "Content$Equestrian"
msgstr "Biliárd"
msgstr "Lovassport"
msgid "Content$Martial Sports"
msgstr "Közdősport"
msgid "Content$Children's/Youth Programme"
msgstr "Gyerekprogram/Fiataloknak"
msgstr "Gyerek/Ifjúsági"
msgid "Content$Pre-school Children's Programme"
msgstr "Óvodáskorú gyerekeknek"
@ -228,10 +229,10 @@ msgid "Content$Arts/Culture"
msgstr "Művészet/Kultúra"
msgid "Content$Performing Arts"
msgstr "Előadás"
msgstr "Előadóművészet"
msgid "Content$Fine Arts"
msgstr "Belle arte"
msgstr "Képzőművészet"
msgid "Content$Religion"
msgstr "Vallás"
@ -246,7 +247,7 @@ msgid "Content$Film/Cinema"
msgstr "Film/Mozi"
msgid "Content$Experimental Film/Video"
msgstr "Amatőr film/video"
msgstr "Avantgárd/Videó"
msgid "Content$Broadcasting/Press"
msgstr "Közvetítés/Sajtó"
@ -279,16 +280,16 @@ msgid "Content$Nature/Animals/Environment"
msgstr "Természet/Állatok/Környezet"
msgid "Content$Technology/Natural Sciences"
msgstr "Technológia/Természettudomány"
msgstr "Technika/Természettudomány"
msgid "Content$Medicine/Physiology/Psychology"
msgstr "Gyógyászat/Pszichológia/Orvostan"
msgstr "Gyógyászat/Fiziológia/Pszichológia"
msgid "Content$Foreign Countries/Expeditions"
msgstr "Idegen országok/Expedíciók"
msgstr "Külföld/Expedíciók"
msgid "Content$Social/Spiritual Sciences"
msgstr "Társadalmi/Lélektudomány"
msgstr "Társadalmi/Lélektudományok"
msgid "Content$Further Education"
msgstr "Továbbképzés"
@ -297,7 +298,7 @@ msgid "Content$Languages"
msgstr "Nyelvek"
msgid "Content$Leisure/Hobbies"
msgstr "Hobbi"
msgstr "Szabadidő/Hobbi"
msgid "Content$Tourism/Travel"
msgstr "Turizmus/Utazás"
@ -306,7 +307,7 @@ msgid "Content$Handicraft"
msgstr "Kézműves"
msgid "Content$Motoring"
msgstr "Motor"
msgstr "Autók, Motorok"
msgid "Content$Fitness & Health"
msgstr "Fitness és egészség"
@ -379,7 +380,7 @@ msgid "(press 'Down' to end key definition)"
msgstr "('Le' megnyomása a befejezéshez)"
msgid "(press 'Menu' to skip this key)"
msgstr "A Menü gombot nyomni ennek a gombnak a kihagyásához"
msgstr "('Menü' megnyomása ennek a gombnak a kihagyásához)"
msgid "Learning Remote Control Keys"
msgstr "Távirányító betanítása"
@ -463,7 +464,7 @@ msgid "Key$Channel-"
msgstr "Csatorna-"
msgid "Key$PrevChannel"
msgstr "Az előző adás"
msgstr "Az előző csatorna"
msgid "Key$Volume+"
msgstr "Hangerő+"
@ -472,7 +473,7 @@ msgid "Key$Volume-"
msgstr "Hangerő-"
msgid "Key$Mute"
msgstr "Csend"
msgstr "Néma üzemmód"
msgid "Key$Audio"
msgstr "Hang"
@ -535,7 +536,7 @@ msgid "encrypted"
msgstr "Kódolt"
msgid "Edit channel"
msgstr "Csatornák beállítása"
msgstr "Csatorna szerkesztése"
msgid "Name"
msgstr "Név"
@ -580,13 +581,13 @@ msgid "Sid"
msgstr "Sid"
msgid "Nid"
msgstr ""
msgstr "Nid"
msgid "Tid"
msgstr ""
msgstr "Tid"
msgid "Channel settings are not unique!"
msgstr "Az adóbeállítások nem egyértelműek"
msgstr "A csatornabeállítások nem egyértelműek!"
msgid "Channels"
msgstr "Csatornák"
@ -601,10 +602,10 @@ msgid "Button$Delete"
msgstr "Törölni"
msgid "Button$Mark"
msgstr "Megjelölni"
msgstr "Kijelölni"
msgid "Channel is being used by a timer!"
msgstr "Az adót az időzítő használja!"
msgstr "A csatornát az időzítő használja!"
msgid "Delete channel?"
msgstr "Csatorna törlése?"
@ -623,7 +624,7 @@ msgstr "Ez a könyvtárnév már létezik!"
#, c-format
msgid "Folder name must not contain '%c'!"
msgstr "A könyvtár neve nem tartalmazhatja: '%c'!"
msgstr "A könyvtár neve nem tartalmazhat '%c'!"
msgid "Button$Open"
msgstr "Kinyitni"
@ -635,10 +636,10 @@ msgid "Delete folder?"
msgstr "Töröljem a könyvtárat?"
msgid "Edit timer"
msgstr "Időzítő megváltoztatása"
msgstr "Időzítő szerkesztése"
msgid "Active"
msgstr "Aktiv"
msgstr "Aktív"
msgid "Channel"
msgstr "Csatorna"
@ -662,7 +663,7 @@ msgid "Lifetime"
msgstr "Élettartam"
msgid "File"
msgstr "File"
msgstr "Fájl"
msgid "Button$Folder"
msgstr "Könyvtár"
@ -695,7 +696,7 @@ msgid "Timer still recording - really delete?"
msgstr "Felvétel folyamatban van - biztos töröljem?"
msgid "Event"
msgstr "Esemény"
msgstr "Adás"
msgid "Button$Timer"
msgstr "Időzítő"
@ -707,10 +708,10 @@ msgid "Button$Switch"
msgstr "Átkapcsolni"
msgid "What's on now?"
msgstr "Most adásban"
msgstr "Most adásban?"
msgid "What's on next?"
msgstr "Mi következik?"
msgstr "Következik?"
msgid "Button$Next"
msgstr "Következő"
@ -722,7 +723,7 @@ msgid "Button$Schedule"
msgstr "Műsorújság"
msgid "Can't switch channel!"
msgstr "Az adót nem lehet elkapcsolni"
msgstr "A csatornát nem lehet elkapcsolni!"
#, c-format
msgid "Schedule - %s"
@ -733,10 +734,10 @@ msgid "This event - %s"
msgstr "Ez az adás - %s"
msgid "This event - all channels"
msgstr "Ez az adás - összes adón"
msgstr "Ez az adás - összes csatornák"
msgid "All events - all channels"
msgstr "Az összes adás - az összes adón"
msgstr "Az összes adás - összes csatornák"
#, c-format
msgid "Please enter %d digits!"
@ -746,77 +747,77 @@ msgid "CAM not responding!"
msgstr "A CAM nem válaszol!"
msgid "Edit path"
msgstr ""
msgstr "Elérés szerkesztése"
msgid "Folder"
msgstr ""
msgstr "Könyvtár"
msgid "This folder is currently in use - no changes are possible!"
msgstr ""
msgstr "Ez a könyvtár használatban van - szerkesztés nem lehetséges!"
#, c-format
msgid "Move entire folder containing %d recordings?"
msgstr ""
msgstr "A teljes könytár %d felvételt tartalmaz, áthelyezzem?"
msgid "Error while moving folder!"
msgstr ""
msgstr "Hiba a könyvtár áthelyezése közben!"
msgid "Edit recording"
msgstr ""
msgstr "Felvétel szerkesztése"
msgid "This recording is currently in use - no changes are possible!"
msgstr ""
msgstr "A felvétel használatban van - szerkesztés nem lehetséges!"
msgid "Button$Cancel cutting"
msgstr ""
msgstr "Vágás mégse"
msgid "Button$Stop cutting"
msgstr ""
msgstr "Vágás leállítása"
msgid "Button$Cancel moving"
msgstr ""
msgstr "Áthelyezés mégse"
msgid "Button$Stop moving"
msgstr ""
msgstr "Áthelyezés leállítása"
msgid "Button$Cancel copying"
msgstr ""
msgstr "Másolás mégse"
msgid "Button$Stop copying"
msgstr ""
msgstr "Másolása leállítása"
msgid "Button$Cut"
msgstr ""
msgstr "Vágás"
msgid "Button$Delete marks"
msgstr ""
msgstr "Vágópontok törlése"
msgid "Recording vanished!"
msgstr ""
msgstr "A felvétel eltűnt!"
msgid "Edited version already exists - overwrite?"
msgstr ""
msgstr "A szerkesztett változat már létezik - felülírjam?"
msgid "Error while queueing recording for cutting!"
msgstr ""
msgstr "Hiba a felvétel vágásra előkészítése közben!"
msgid "Delete editing marks for this recording?"
msgstr ""
msgstr "Töröljem a felvétel vágópontjait?"
msgid "Error while deleting editing marks!"
msgstr ""
msgstr "Hiba a vágópontok törlése közben!"
msgid "Error while changing priority/lifetime!"
msgstr ""
msgstr "Hiba a prioritás/élettartam változtatása közben!"
msgid "Error while changing folder/name!"
msgstr ""
msgstr "Hiba a könyvtár/név változtatása közben!"
msgid "Recording info"
msgstr "Felvétel infó"
msgid "Button$Play"
msgstr "Lejátszani"
msgstr "Lejátszás"
msgid "Button$Rewind"
msgstr "Vissza az elejére"
@ -831,13 +832,13 @@ msgid "Delete recording?"
msgstr "Felvétel törlése?"
msgid "Recording is being edited - really delete?"
msgstr "A felvétel szerkesztés alatt - biztos törölni?"
msgstr "A felvétel szerkesztés alatt - biztos töröljem?"
msgid "Error while deleting recording!"
msgstr "Hiba a felvétel törlésénél!"
msgid "Recording commands"
msgstr "Parancsok a felvett filmekhez"
msgstr "Parancsok a felvételekhez"
msgid "never"
msgstr "soha"
@ -873,7 +874,7 @@ msgid "Setup.OSD$Height (%)"
msgstr "Magasság (%)"
msgid "Setup.OSD$Message time (s)"
msgstr "Információ feltűntetésének időtartama"
msgstr "Információ feltüntetésének időtartama (mp)"
msgid "Setup.OSD$Use small font"
msgstr "Kisbetűt használni"
@ -909,10 +910,10 @@ msgid "top"
msgstr "Fent"
msgid "Setup.OSD$Channel info time (s)"
msgstr "Adásinformáció feltűntetésének időtartama (s)"
msgstr "Adásinformáció feltűntetésének időtartama (mp)"
msgid "Setup.OSD$Info on channel switch"
msgstr "Információ az adó váltásánál"
msgstr "Információ a csatorna váltásánál"
msgid "Setup.OSD$Timeout requested channel info"
msgstr "A lekérdezett adásinformáció bezárása"
@ -936,7 +937,7 @@ msgid "Setup.OSD$Always sort folders first"
msgstr "Könyvtárakat rendezd előre"
msgid "Setup.OSD$Number keys for characters"
msgstr "Számgombok a betűkön"
msgstr "Betűk a számgombokon"
msgid "Setup.OSD$Color key 0"
msgstr "Színes gomb 0"
@ -963,7 +964,7 @@ msgid "Setup.EPG$EPG bugfix level"
msgstr "Hibaelhárítás szintje"
msgid "Setup.EPG$EPG linger time (min)"
msgstr "Eltelt EPG adatok kijelzése (perc)"
msgstr "Eltelt EPG adatok kijelzése (p)"
msgid "Setup.EPG$Set system time"
msgstr "Óra állítása TP időhöz"
@ -986,7 +987,7 @@ msgid "letterbox"
msgstr "letterbox"
msgid "center cut out"
msgstr "képközép kivágás"
msgstr "teljeskitöltés"
msgid "no"
msgstr "nem"
@ -1001,7 +1002,7 @@ msgid "names and PIDs"
msgstr "nevek és PIDek"
msgid "add new channels"
msgstr "új adók hozzáadása"
msgstr "új csatornák hozzáadása"
msgid "add new transponders"
msgstr "új transponderek hozzáadása"
@ -1016,22 +1017,22 @@ msgid "Button$Subtitles"
msgstr "Feliratok"
msgid "Setup.DVB$Primary DVB interface"
msgstr "Első DVB interface"
msgstr "Elsődleges DVB eszköz"
msgid "Setup.DVB$Standard compliance"
msgstr "Vételi norma"
msgid "Setup.DVB$Video format"
msgstr "Video formátum"
msgstr "Videó formátum"
msgid "Setup.DVB$Video display format"
msgstr "Képernyőformátum"
msgstr "Megjelenítő formátum"
msgid "Setup.DVB$Use Dolby Digital"
msgstr "Dolby-Digital hangot használni"
msgid "Setup.DVB$Update channels"
msgstr "Adók aktualizálása"
msgstr "Csatornák frissítése"
msgid "Setup.DVB$Audio languages"
msgstr "Hangsáv nyelvek"
@ -1074,37 +1075,37 @@ msgstr "Felső LNB-frekvencia (MHz)"
#, c-format
msgid "Setup.LNB$Device %d connected to sat cable"
msgstr "Fejkábel a %d. tunerhez"
msgstr "Fejkábel a %d. tunerhez csatlakoztatva"
msgid "Setup.LNB$own"
msgstr "saját"
msgid "Setup.LNB$Use dish positioner"
msgstr ""
msgstr "Forgató használata"
msgid "Setup.LNB$Site latitude (degrees)"
msgstr ""
msgstr "Szélesség (fok)"
msgid "South"
msgstr ""
msgstr "Dél"
msgid "North"
msgstr ""
msgstr "Észak"
msgid "Setup.LNB$Site longitude (degrees)"
msgstr ""
msgstr "Hosszúság (fok)"
msgid "West"
msgstr ""
msgstr "Nyugat"
msgid "East"
msgstr ""
msgstr "Kelet"
msgid "Setup.LNB$Max. positioner swing (degrees)"
msgstr ""
msgstr "Forgató maximális intervalluma (fok)"
msgid "Setup.LNB$Positioner speed (degrees/s)"
msgstr ""
msgstr "Forgató sebessége (fok/mp)"
msgid "CAM reset"
msgstr "CAM újraindítás"
@ -1117,16 +1118,16 @@ msgstr "CAM működik"
#. TRANSLATORS: note the leading blank!
msgid " (activating)"
msgstr ""
msgstr " (aktiválás)"
msgid "CAM"
msgstr "CAM"
msgid "Button$Cancel activation"
msgstr ""
msgstr "Aktiválás mégse"
msgid "Button$Activate"
msgstr ""
msgstr "Aktiválás"
msgid "Button$Menu"
msgstr "Menü"
@ -1141,7 +1142,7 @@ msgid "Can't open CAM menu!"
msgstr "A CAM menü nem nyitható"
msgid "Can't activate CAM!"
msgstr ""
msgstr "CAM aktiválás sikertelen!"
msgid "CAM is in use - really reset?"
msgstr "CAM használatban - valóban újraindítjuk?"
@ -1168,16 +1169,16 @@ msgid "Recording"
msgstr "Felvétel"
msgid "Setup.Recording$Margin at start (min)"
msgstr "Időeltolás a kezdésnél (perc)"
msgstr "Időeltolás a kezdésnél (p)"
msgid "Setup.Recording$Margin at stop (min)"
msgstr "Időeltolás a befejezésnél (perc)"
msgstr "Időeltolás a befejezésnél (p)"
msgid "Setup.Recording$Default priority"
msgstr "Alapértelmezett prioritás"
msgid "Setup.Recording$Default lifetime (d)"
msgstr "Alapértelmezett élettartam"
msgstr "Alapértelmezett élettartam (n)"
msgid "Setup.Recording$Pause key handling"
msgstr "A szünet gomb működése"
@ -1186,7 +1187,7 @@ msgid "Setup.Recording$Pause priority"
msgstr "Időeltolás prioritása"
msgid "Setup.Recording$Pause lifetime (d)"
msgstr "Időeltolás élettartama"
msgstr "Időeltolás élettartama (n)"
msgid "Setup.Recording$Use episode name"
msgstr "Epizódnév"
@ -1198,22 +1199,22 @@ msgid "Setup.Recording$VPS margin (s)"
msgstr "Időeltolás VPS-nél (mp)"
msgid "Setup.Recording$Mark instant recording"
msgstr "Direktfelvétel megjelölése"
msgstr "Egygombos felvétel megjelölése"
msgid "Setup.Recording$Name instant recording"
msgstr "Direktfelvétel megnevezése"
msgstr "Egygombos felvétel megnevezése"
msgid "Setup.Recording$Instant rec. time (min)"
msgstr "Direktfelvétel időtartama (perc)"
msgstr "Egygombos felvétel időtartama (p)"
msgid "Setup.Recording$present event"
msgstr "Most futó műsor"
msgid "Setup.Recording$Max. video file size (MB)"
msgstr "Max. video file méret (MB)"
msgstr "Max. videó fájl méret (MB)"
msgid "Setup.Recording$Split edited files"
msgstr "Feldolgozott file-ok felosztása"
msgstr "Feldolgozott fájlok felosztása"
msgid "Setup.Recording$Delete timeshift recording"
msgstr "Időeltolásos felvétel törlése"
@ -1237,22 +1238,25 @@ msgid "Setup.Replay$Pause replay when setting mark"
msgstr "A visszajátszás megállítása vágópont kijelölésnél"
msgid "Setup.Replay$Pause replay when jumping to a mark"
msgstr ""
msgstr "Szünet a lejátszásban, mikor egy vágópontra ugrik"
msgid "Setup.Replay$Skip edited parts"
msgstr ""
msgstr "Vágott részek kihagyása"
msgid "Setup.Replay$Pause replay at last mark"
msgstr ""
msgstr "Utolsó vágópontnál szünet a lejátszásban"
msgid "Setup.Replay$Binary skip initial value (s)"
msgstr ""
msgid "Setup.Replay$Initial duration for adaptive skipping (s)"
msgstr "Felezett ugrás kezdeti értéke (mp)"
msgid "Setup.Replay$Binary skip timeout (s)"
msgstr ""
msgid "Setup.Replay$Reset timeout for adaptive skipping (s)"
msgstr "Felezett ugrás időkorláta (mp)"
msgid "Setup.Replay$Alternate behavior for adaptive skipping"
msgstr "Felezett ugrás csak irányváltoztatásnál"
msgid "Setup.Replay$Resume ID"
msgstr "Lejátszás ID"
msgstr "Lejátszás azonosító"
msgid "Miscellaneous"
msgstr "Egyéb"
@ -1261,22 +1265,22 @@ msgid "Setup.Miscellaneous$Min. event timeout (min)"
msgstr "VDR leáll ha nem következik felvétel (p)"
msgid "Setup.Miscellaneous$Min. user inactivity (min)"
msgstr "VDR leáll használat nélkül (perc)"
msgstr "VDR leáll használat nélkül (p)"
msgid "Setup.Miscellaneous$SVDRP timeout (s)"
msgstr "SVDRP szétkapcsol használat nélkül(s)"
msgstr "SVDRP szétkapcsol használat nélkül(mp)"
msgid "Setup.Miscellaneous$Zap timeout (s)"
msgstr "Adásváltás ideje (s)"
msgstr "Adásváltás ideje (mp)"
msgid "Setup.Miscellaneous$Channel entry timeout (ms)"
msgstr "Csatornaváltás timeout (ms)"
msgstr "Csatornaváltás timeout (emp)"
msgid "Setup.Miscellaneous$Remote control repeat delay (ms)"
msgstr "Távirányító ismétlés késleltetése (ms)"
msgstr "Távirányító ismétlés késleltetése (emp)"
msgid "Setup.Miscellaneous$Remote control repeat delta (ms)"
msgstr "Távirányító ismétlés deltája (ms)"
msgstr "Távirányító ismétlés deltája (emp)"
msgid "Setup.Miscellaneous$Initial channel"
msgstr "Csatorna induláskor"
@ -1288,10 +1292,10 @@ msgid "Setup.Miscellaneous$Initial volume"
msgstr "Hangerő indulásnál"
msgid "Setup.Miscellaneous$Volume steps"
msgstr ""
msgstr "Hangerőállítás léptéke"
msgid "Setup.Miscellaneous$Volume linearize"
msgstr ""
msgstr "Hangerő linearizálása"
msgid "Setup.Miscellaneous$Channels wrap"
msgstr "Csatornalista görgetése"
@ -1303,7 +1307,7 @@ msgid "Setup.Miscellaneous$Emergency exit"
msgstr "Vészleállítás"
msgid "Plugins"
msgstr "Plugins"
msgstr "Pluginok"
msgid "This plugin has no setup parameters!"
msgstr "Ennek a plugin-nak nincs setup-paramétere!"
@ -1342,13 +1346,13 @@ msgid " Cancel editing"
msgstr " Vágást megszakítani"
msgid "Stop recording?"
msgstr "Felvétel befejezni?"
msgstr "Felvételt befejezni?"
msgid "Cancel editing?"
msgstr "Vágást befejezni?"
msgid "No audio available!"
msgstr "Hang nem lehetséges!"
msgstr "Hang nem elérhetö!"
msgid "No subtitles"
msgstr "Felirat ki"
@ -1360,7 +1364,7 @@ msgid "Not enough disk space to start recording!"
msgstr "Nincs elegendő hely a felvételre"
msgid "No free DVB device to record!"
msgstr "Nincs szabad DVB kártya a felvételhez!"
msgstr "Nincs szabad DVB eszköz a felvételhez!"
msgid "Pausing live video..."
msgstr "Az élő adás megállítva..."
@ -1406,10 +1410,10 @@ msgid "Plugin"
msgstr "Plugin"
msgid "Up/Dn for new location - OK to move"
msgstr "Fel/Le egy új opcióért - aztán OK"
msgstr "Fel/Le egy új pozícióért - aztán OK"
msgid "Channel locked (recording)!"
msgstr "Az adó blokkolva (felvétel)!"
msgstr "A csatorna blokkolva (felvétel)!"
msgid "Low disk space!"
msgstr "A merevlemez majdnem tele!"
@ -1434,7 +1438,7 @@ msgstr "Felvétel folyamatban van - mégis kikapcsolni?"
#, c-format
msgid "Recording in %ld minutes, shut down anyway?"
msgstr "Felvétel %ld perc mulva kezdődik - mégis kikapcsolni?"
msgstr "Felvétel %ld perc múlva kezdődik - mégis kikapcsolni?"
msgid "shut down anyway?"
msgstr "mégis kikapcsolni?"
@ -1479,7 +1483,7 @@ msgstr "LEJÁTSZÁS"
#, c-format
msgid "Moving dish to %.1f..."
msgstr ""
msgstr "Antenna forgatása %.1f..."
msgid "ST:TNG Panels"
msgstr "ST:TNG Konzol"
@ -1529,7 +1533,7 @@ msgid "Press any key to cancel shutdown"
msgstr "Nyomj egy gombot a leállás megszakításához"
msgid "Switching primary DVB..."
msgstr "Elsődleges DVB kártya váltása folyamatban..."
msgstr "Elsődleges DVB eszköz váltása folyamatban..."
msgid "Editing process failed!"
msgstr "Vágás sikertelen!"

View File

@ -4,30 +4,29 @@
# Alberto Carraro <bertocar@tin.it>, 2001
# Antonio Ospite <ospite@studenti.unina.it>, 2003, 2006
# Sean Carlos <seanc@libero.it>, 2005
# Nino Gerbino <ngerb@interfree.it>, 2006
# Diego Pierotto <vdr-italian@tiscali.it>, 2007-2010, 2012, 2013
# Nino Gerbino <ngerb@interfree.it>, 2006, 2015
# Diego Pierotto <vdr-italian@tiscali.it>, 2007-2010, 2012, 2013, 2015
#
msgid ""
msgstr ""
"Project-Id-Version: VDR 2.0.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2015-01-30 13:14+0100\n"
"PO-Revision-Date: 2015-01-19 20:19+0100\n"
"POT-Creation-Date: 2015-02-07 17:08+0100\n"
"PO-Revision-Date: 2015-02-05 00:09+0100\n"
"Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n"
"Language-Team: Italian <vdr@linuxtv.org>\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Italian\n"
"X-Poedit-Country: ITALY\n"
"X-Poedit-SourceCharset: utf-8\n"
"X-Poedit-SourceCharset: UTF-8\n"
"X-Generator: Poedit 1.5.4\n"
msgid "*** Invalid Channel ***"
msgstr "*** Canale NON valido ***"
msgid "CAM activated!"
msgstr ""
msgstr "CAM attivata!"
msgid "Channel not available!"
msgstr "Canale non disponibile!"
@ -803,6 +802,9 @@ msgstr "Versione modificata già esistente. Sovrascrivere?"
msgid "Error while queueing recording for cutting!"
msgstr "Errore durante l'accodamento della registrazione per il taglio!"
msgid "Rename recording to folder name?"
msgstr ""
msgid "Delete editing marks for this recording?"
msgstr "Eliminare i marcatori di modifica della registrazione?"
@ -1120,16 +1122,16 @@ msgstr "La CAM è pronta"
#. TRANSLATORS: note the leading blank!
msgid " (activating)"
msgstr ""
msgstr "(attivazione)"
msgid "CAM"
msgstr "Accesso condizionato CAM"
msgid "Button$Cancel activation"
msgstr ""
msgstr "Annulla attivazione"
msgid "Button$Activate"
msgstr ""
msgstr "Attiva"
msgid "Button$Menu"
msgstr "Menu"
@ -1144,7 +1146,7 @@ msgid "Can't open CAM menu!"
msgstr "Impossibile aprire il menu CAM!"
msgid "Can't activate CAM!"
msgstr ""
msgstr "Impossibile attivare CAM!"
msgid "CAM is in use - really reset?"
msgstr "La CAM è in uso - vuoi reimpostarla?"
@ -1237,21 +1239,24 @@ msgid "Setup.Replay$Progress display time (s)"
msgstr "Mostra tempo elaborazione (s)"
msgid "Setup.Replay$Pause replay when setting mark"
msgstr "Pausa riproduzione durante impostazione segni"
msgstr "Pausa riproduzione durante impostazione marcatori"
msgid "Setup.Replay$Pause replay when jumping to a mark"
msgstr ""
msgstr "Pausa riproduzione se si passa ad un marcatore"
msgid "Setup.Replay$Skip edited parts"
msgstr ""
msgstr "Salta parti modificate"
msgid "Setup.Replay$Pause replay at last mark"
msgstr "Pausa riproduzione all'ultimo marcatore"
msgid "Setup.Replay$Initial duration for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Binary skip initial value (s)"
msgid "Setup.Replay$Reset timeout for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Binary skip timeout (s)"
msgid "Setup.Replay$Alternate behavior for adaptive skipping"
msgstr ""
msgid "Setup.Replay$Resume ID"

View File

@ -1,13 +1,13 @@
# VDR language source file.
# Copyright (C) 2013 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Valdemaras Pipiras <varas@ambernet.lt>, 2009, 2010, 2013.
# Valdemaras Pipiras <varas@ambernet.lt>, 2009, 2010, 2013, 2015.
#
msgid ""
msgstr ""
"Project-Id-Version: VDR 2.0.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2015-01-30 13:14+0100\n"
"POT-Creation-Date: 2015-02-07 17:08+0100\n"
"PO-Revision-Date: 2010-10-30 11:55+0200\n"
"Last-Translator: Valdemaras Pipiras <varas@ambernet.lt>\n"
"Language-Team: Lithuanian <vdr@linuxtv.org>\n"
@ -20,7 +20,7 @@ msgid "*** Invalid Channel ***"
msgstr "*** Blogi kanalo nustatymai ***"
msgid "CAM activated!"
msgstr ""
msgstr "Dekodavimo modulis aktyvuotas!"
msgid "Channel not available!"
msgstr "Kanalas neegzistuoja!"
@ -80,13 +80,13 @@ msgid "StreamId"
msgstr "StreamId"
msgid "Pilot"
msgstr ""
msgstr "Pilotas"
msgid "T2SystemId"
msgstr ""
msgstr "T2 Sistemos ID"
msgid "SISO/MISO"
msgstr ""
msgstr "SISO/MISO"
msgid "Starting EPG scan"
msgstr "Pradedamas EPG skanavimas"
@ -573,13 +573,13 @@ msgid "CA"
msgstr "CA (dekodavimo sistema)"
msgid "Sid"
msgstr "Serviso id"
msgstr "Serviso id (Sid)"
msgid "Nid"
msgstr ""
msgstr "Tinklo id (Nid)"
msgid "Tid"
msgstr ""
msgstr "Tid"
msgid "Channel settings are not unique!"
msgstr "Kanalų nustatymai neunikalūs!"
@ -742,71 +742,74 @@ msgid "CAM not responding!"
msgstr "Dekodavimo modulis (CAM) neveikia!"
msgid "Edit path"
msgstr ""
msgstr "Koreguoti kelią"
msgid "Folder"
msgstr ""
msgstr "Katalogas"
msgid "This folder is currently in use - no changes are possible!"
msgstr ""
msgstr "Šis katalogas šiuo metu naudojamas, tad šiuo metu negalimi jokie pakeitimai!"
#, c-format
msgid "Move entire folder containing %d recordings?"
msgstr ""
msgstr "Perkelti šį katalogą kurio viduje yra %d įrašų?"
msgid "Error while moving folder!"
msgstr ""
msgstr "Klaida perkeliant katalogą!"
msgid "Edit recording"
msgstr ""
msgstr "Koreguoti įrašus"
msgid "This recording is currently in use - no changes are possible!"
msgstr ""
msgstr "Šis įrašas šiuo metu naudojamas, tad šiuo metu negalimi jokie pakeitimai!"
msgid "Button$Cancel cutting"
msgstr ""
msgstr "Button$Atšaukti karpymą"
msgid "Button$Stop cutting"
msgstr ""
msgstr "Button$Sustabdyti karpymą"
msgid "Button$Cancel moving"
msgstr ""
msgstr "Button$Atšaukti perkėlimą"
msgid "Button$Stop moving"
msgstr ""
msgstr "Button$Sustabdyti perkėlimą"
msgid "Button$Cancel copying"
msgstr ""
msgstr "Button$Atšaukti kopijavimą"
msgid "Button$Stop copying"
msgstr ""
msgstr "Button$Sustabdyti kopijavimą"
msgid "Button$Cut"
msgstr ""
msgstr "Button$Iškirpti"
msgid "Button$Delete marks"
msgstr ""
msgstr "Button$Ištrinti žymes"
msgid "Recording vanished!"
msgstr ""
msgstr "Įrašai išvalyti!"
msgid "Edited version already exists - overwrite?"
msgstr ""
msgstr "Tokia koreguota versija jau yra, vistiek perašyti?"
msgid "Error while queueing recording for cutting!"
msgstr "Klaida sustatant įrašus į karpymo eilę!"
msgid "Rename recording to folder name?"
msgstr ""
msgid "Delete editing marks for this recording?"
msgstr ""
msgstr "Ar tikrai ištrinti šio įrašo koregavimo žymes?"
msgid "Error while deleting editing marks!"
msgstr ""
msgstr "Klaida trinant koregavimo žymes!"
msgid "Error while changing priority/lifetime!"
msgstr ""
msgstr "Klaida keičiant prioritetą/galiojimo laiką!"
msgid "Error while changing folder/name!"
msgstr ""
msgstr "Klaida keičiant katalogą/pavadinimą!"
msgid "Recording info"
msgstr "Informacija apie įrašus"
@ -1076,31 +1079,31 @@ msgid "Setup.LNB$own"
msgstr "savas"
msgid "Setup.LNB$Use dish positioner"
msgstr ""
msgstr "Setup.LNB$Naudoti pozicionierių"
msgid "Setup.LNB$Site latitude (degrees)"
msgstr ""
msgstr "Setup.LNB$Vitovės platuma (laipsniais)"
msgid "South"
msgstr ""
msgstr "Pietūs"
msgid "North"
msgstr ""
msgstr "Šiaurė"
msgid "Setup.LNB$Site longitude (degrees)"
msgstr ""
msgstr "Setup.LNB$Vietovės ilgima (laipsniais)"
msgid "West"
msgstr ""
msgstr "Vakarai"
msgid "East"
msgstr ""
msgstr "Rytai"
msgid "Setup.LNB$Max. positioner swing (degrees)"
msgstr ""
msgstr "Maksimalus pozicionieriaus pasukimas (laipsniais)"
msgid "Setup.LNB$Positioner speed (degrees/s)"
msgstr ""
msgstr "Pozicionieriaus kreitis (laipsniais/s)"
msgid "CAM reset"
msgstr "Dekodavimo modulis (CAM) perkrautas"
@ -1113,16 +1116,16 @@ msgstr "Dekodavimo modulis (CAM) paruoštas darbui"
#. TRANSLATORS: note the leading blank!
msgid " (activating)"
msgstr ""
msgstr " (aktyvuojama)"
msgid "CAM"
msgstr "Dekodavimo modulis (CAM)"
msgid "Button$Cancel activation"
msgstr ""
msgstr "Button$Atšaukti aktyvaciją"
msgid "Button$Activate"
msgstr ""
msgstr "Button$Aktyvuoti"
msgid "Button$Menu"
msgstr "Meniu"
@ -1137,7 +1140,7 @@ msgid "Can't open CAM menu!"
msgstr "Negali atidaryti dekodavimo modulio meniu!"
msgid "Can't activate CAM!"
msgstr ""
msgstr "Negali aktyvuoti dekodavimo modulio!"
msgid "CAM is in use - really reset?"
msgstr "Dekodavimo modulis šiuo metu naudojamas - tikrai perkrauti?"
@ -1233,18 +1236,21 @@ msgid "Setup.Replay$Pause replay when setting mark"
msgstr "Pristabdyti pakartojimą kai vyksta žymėjimas"
msgid "Setup.Replay$Pause replay when jumping to a mark"
msgstr ""
msgstr "Setup.Replay$Pristabdyti pakartojim1 kol pereinama prie žymės"
msgid "Setup.Replay$Skip edited parts"
msgstr ""
msgstr "Setup.Replay$Praleisti koreguotas dalis"
msgid "Setup.Replay$Pause replay at last mark"
msgstr "Setup.Replay$Pristabdyti pakartojimą pasiekus paskutinę žymę"
msgid "Setup.Replay$Initial duration for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Binary skip initial value (s)"
msgid "Setup.Replay$Reset timeout for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Binary skip timeout (s)"
msgid "Setup.Replay$Alternate behavior for adaptive skipping"
msgstr ""
msgid "Setup.Replay$Resume ID"
@ -1284,10 +1290,10 @@ msgid "Setup.Miscellaneous$Initial volume"
msgstr "Garsas įjungimo metu"
msgid "Setup.Miscellaneous$Volume steps"
msgstr ""
msgstr "Setup.Miscellaneous$Garso reguliavimo žingsniai"
msgid "Setup.Miscellaneous$Volume linearize"
msgstr ""
msgstr "Setup.Miscellaneous$Garso lygiavimas"
msgid "Setup.Miscellaneous$Channels wrap"
msgstr "Kanalų pridengimas"
@ -1475,7 +1481,7 @@ msgstr "GROTI"
#, c-format
msgid "Moving dish to %.1f..."
msgstr ""
msgstr "Lėkštė sukama į %.1f..."
msgid "ST:TNG Panels"
msgstr "ST:TNG Skydeliai"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.0.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2015-01-30 13:14+0100\n"
"POT-Creation-Date: 2015-02-07 17:08+0100\n"
"PO-Revision-Date: 2012-11-19 15:18+0100\n"
"Last-Translator: Dimitar Petrovski <dimeptr@gmail.com>\n"
"Language-Team: Macedonian <en@li.org>\n"
@ -797,6 +797,9 @@ msgstr ""
msgid "Error while queueing recording for cutting!"
msgstr ""
msgid "Rename recording to folder name?"
msgstr ""
msgid "Delete editing marks for this recording?"
msgstr ""
@ -1242,10 +1245,13 @@ msgstr ""
msgid "Setup.Replay$Pause replay at last mark"
msgstr ""
msgid "Setup.Replay$Binary skip initial value (s)"
msgid "Setup.Replay$Initial duration for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Binary skip timeout (s)"
msgid "Setup.Replay$Reset timeout for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Alternate behavior for adaptive skipping"
msgstr ""
msgid "Setup.Replay$Resume ID"

View File

@ -12,7 +12,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.0.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2015-01-30 13:14+0100\n"
"POT-Creation-Date: 2015-02-07 17:08+0100\n"
"PO-Revision-Date: 2008-02-26 17:20+0100\n"
"Last-Translator: Cedric Dewijs <cedric.dewijs@telfort.nl>\n"
"Language-Team: Dutch <vdr@linuxtv.org>\n"
@ -801,6 +801,9 @@ msgstr ""
msgid "Error while queueing recording for cutting!"
msgstr ""
msgid "Rename recording to folder name?"
msgstr ""
msgid "Delete editing marks for this recording?"
msgstr ""
@ -1246,10 +1249,13 @@ msgstr ""
msgid "Setup.Replay$Pause replay at last mark"
msgstr ""
msgid "Setup.Replay$Binary skip initial value (s)"
msgid "Setup.Replay$Initial duration for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Binary skip timeout (s)"
msgid "Setup.Replay$Reset timeout for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Alternate behavior for adaptive skipping"
msgstr ""
msgid "Setup.Replay$Resume ID"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.0.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2015-01-30 13:14+0100\n"
"POT-Creation-Date: 2015-02-07 17:08+0100\n"
"PO-Revision-Date: 2007-08-12 14:17+0200\n"
"Last-Translator: Truls Slevigen <truls@slevigen.no>\n"
"Language-Team: Norwegian Nynorsk <vdr@linuxtv.org>\n"
@ -797,6 +797,9 @@ msgstr ""
msgid "Error while queueing recording for cutting!"
msgstr ""
msgid "Rename recording to folder name?"
msgstr ""
msgid "Delete editing marks for this recording?"
msgstr ""
@ -1242,10 +1245,13 @@ msgstr ""
msgid "Setup.Replay$Pause replay at last mark"
msgstr ""
msgid "Setup.Replay$Binary skip initial value (s)"
msgid "Setup.Replay$Initial duration for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Binary skip timeout (s)"
msgid "Setup.Replay$Reset timeout for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Alternate behavior for adaptive skipping"
msgstr ""
msgid "Setup.Replay$Resume ID"

View File

@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.0.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2015-01-30 13:14+0100\n"
"POT-Creation-Date: 2015-02-07 17:08+0100\n"
"PO-Revision-Date: 2008-03-09 12:59+0100\n"
"Last-Translator: Marek Nazarko <mnazarko@gmail.com>\n"
"Language-Team: Polish <vdr@linuxtv.org>\n"
@ -798,6 +798,9 @@ msgstr ""
msgid "Error while queueing recording for cutting!"
msgstr ""
msgid "Rename recording to folder name?"
msgstr ""
msgid "Delete editing marks for this recording?"
msgstr ""
@ -1243,10 +1246,13 @@ msgstr ""
msgid "Setup.Replay$Pause replay at last mark"
msgstr ""
msgid "Setup.Replay$Binary skip initial value (s)"
msgid "Setup.Replay$Initial duration for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Binary skip timeout (s)"
msgid "Setup.Replay$Reset timeout for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Alternate behavior for adaptive skipping"
msgstr ""
msgid "Setup.Replay$Resume ID"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.0.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2015-01-30 13:14+0100\n"
"POT-Creation-Date: 2015-02-07 17:08+0100\n"
"PO-Revision-Date: 2010-03-28 22:49+0100\n"
"Last-Translator: Cris Silva <hudokkow@gmail.com>\n"
"Language-Team: Portuguese <vdr@linuxtv.org>\n"
@ -797,6 +797,9 @@ msgstr ""
msgid "Error while queueing recording for cutting!"
msgstr ""
msgid "Rename recording to folder name?"
msgstr ""
msgid "Delete editing marks for this recording?"
msgstr ""
@ -1242,10 +1245,13 @@ msgstr ""
msgid "Setup.Replay$Pause replay at last mark"
msgstr ""
msgid "Setup.Replay$Binary skip initial value (s)"
msgid "Setup.Replay$Initial duration for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Binary skip timeout (s)"
msgid "Setup.Replay$Reset timeout for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Alternate behavior for adaptive skipping"
msgstr ""
msgid "Setup.Replay$Resume ID"

View File

@ -2,14 +2,14 @@
# Copyright (C) 2013 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Paul Lacatus <paul@campina.iiruc.ro>, 2002
# Lucian Muresan <lucianm@users.sourceforge.net>, 2004-2006, 2008, 2010-2013
# Lucian Muresan <lucianm@users.sourceforge.net>, 2004-2006, 2008, 2010-2015
#
msgid ""
msgstr ""
"Project-Id-Version: VDR 2.0.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2015-01-30 13:14+0100\n"
"PO-Revision-Date: 2015-01-21 22:34+0100\n"
"POT-Creation-Date: 2015-02-07 17:08+0100\n"
"PO-Revision-Date: 2015-02-06 23:15+0100\n"
"Last-Translator: Lucian Muresan <lucianm@users.sourceforge.net>\n"
"Language-Team: Romanian <vdr@linuxtv.org>\n"
"Language: ro\n"
@ -22,7 +22,7 @@ msgid "*** Invalid Channel ***"
msgstr "*** Canal invalid ***"
msgid "CAM activated!"
msgstr ""
msgstr "CAM activat!"
msgid "Channel not available!"
msgstr "Canal indisponibil"
@ -798,6 +798,9 @@ msgstr "Deja există o versiune editată - o suprascriu?"
msgid "Error while queueing recording for cutting!"
msgstr "Eroare la punerea în coada pentru tăiere!"
msgid "Rename recording to folder name?"
msgstr ""
msgid "Delete editing marks for this recording?"
msgstr "Șterg marcajele de editare pentru această înregistrare?"
@ -1115,16 +1118,16 @@ msgstr "CAM pregătit"
#. TRANSLATORS: note the leading blank!
msgid " (activating)"
msgstr ""
msgstr " (activez)"
msgid "CAM"
msgstr "CAM"
msgid "Button$Cancel activation"
msgstr ""
msgstr "Anulează activarea"
msgid "Button$Activate"
msgstr ""
msgstr "Activează"
msgid "Button$Menu"
msgstr "Meniu"
@ -1139,7 +1142,7 @@ msgid "Can't open CAM menu!"
msgstr "Nu pot deschide meniul CAM"
msgid "Can't activate CAM!"
msgstr ""
msgstr "Nu pot activa CAM-ul!"
msgid "CAM is in use - really reset?"
msgstr "CAM-ul este in folosinţă - totuşi resetez?"
@ -1235,19 +1238,22 @@ msgid "Setup.Replay$Pause replay when setting mark"
msgstr "Pauză la punerea marcajului de editare"
msgid "Setup.Replay$Pause replay when jumping to a mark"
msgstr ""
msgstr "Pauză după săritura la marcaj"
msgid "Setup.Replay$Skip edited parts"
msgstr ""
msgstr "Săritură peste părțile editate"
msgid "Setup.Replay$Pause replay at last mark"
msgstr ""
msgstr "Pauză la ultimul marcaj"
msgid "Setup.Replay$Binary skip initial value (s)"
msgstr ""
msgid "Setup.Replay$Initial duration for adaptive skipping (s)"
msgstr "Durata inițială (s) pentru săritul adaptiv al marcajelor"
msgid "Setup.Replay$Binary skip timeout (s)"
msgstr ""
msgid "Setup.Replay$Reset timeout for adaptive skipping (s)"
msgstr "Timeout (s) de resetare pentru săritul adaptiv al marcajelor"
msgid "Setup.Replay$Alternate behavior for adaptive skipping"
msgstr "Strategie alternativă pentru săritul adaptiv al marcajelor"
msgid "Setup.Replay$Resume ID"
msgstr "Identificator continuare"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.0.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2015-01-30 13:14+0100\n"
"POT-Creation-Date: 2015-02-07 17:08+0100\n"
"PO-Revision-Date: 2013-03-10 17:13+0100\n"
"Last-Translator: Oleg Roitburd <oroitburd@gmail.com>\n"
"Language-Team: Russian <vdr@linuxtv.org>\n"
@ -797,6 +797,9 @@ msgstr ""
msgid "Error while queueing recording for cutting!"
msgstr ""
msgid "Rename recording to folder name?"
msgstr ""
msgid "Delete editing marks for this recording?"
msgstr ""
@ -1242,10 +1245,13 @@ msgstr ""
msgid "Setup.Replay$Pause replay at last mark"
msgstr ""
msgid "Setup.Replay$Binary skip initial value (s)"
msgid "Setup.Replay$Initial duration for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Binary skip timeout (s)"
msgid "Setup.Replay$Reset timeout for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Alternate behavior for adaptive skipping"
msgstr ""
msgid "Setup.Replay$Resume ID"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.0.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2015-01-30 13:14+0100\n"
"POT-Creation-Date: 2015-02-07 17:08+0100\n"
"PO-Revision-Date: 2013-03-04 21:24+0100\n"
"Last-Translator: Milan Hrala <hrala.milan@gmail.com>\n"
"Language-Team: Slovak <vdr@linuxtv.org>\n"
@ -796,6 +796,9 @@ msgstr ""
msgid "Error while queueing recording for cutting!"
msgstr ""
msgid "Rename recording to folder name?"
msgstr ""
msgid "Delete editing marks for this recording?"
msgstr ""
@ -1241,10 +1244,13 @@ msgstr ""
msgid "Setup.Replay$Pause replay at last mark"
msgstr ""
msgid "Setup.Replay$Binary skip initial value (s)"
msgid "Setup.Replay$Initial duration for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Binary skip timeout (s)"
msgid "Setup.Replay$Reset timeout for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Alternate behavior for adaptive skipping"
msgstr ""
msgid "Setup.Replay$Resume ID"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.0.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2015-01-30 13:14+0100\n"
"POT-Creation-Date: 2015-02-07 17:08+0100\n"
"PO-Revision-Date: 2013-03-04 12:46+0100\n"
"Last-Translator: Matjaz Thaler <matjaz.thaler@guest.arnes.si>\n"
"Language-Team: Slovenian <vdr@linuxtv.org>\n"
@ -797,6 +797,9 @@ msgstr ""
msgid "Error while queueing recording for cutting!"
msgstr ""
msgid "Rename recording to folder name?"
msgstr ""
msgid "Delete editing marks for this recording?"
msgstr ""
@ -1242,10 +1245,13 @@ msgstr ""
msgid "Setup.Replay$Pause replay at last mark"
msgstr ""
msgid "Setup.Replay$Binary skip initial value (s)"
msgid "Setup.Replay$Initial duration for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Binary skip timeout (s)"
msgid "Setup.Replay$Reset timeout for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Alternate behavior for adaptive skipping"
msgstr ""
msgid "Setup.Replay$Resume ID"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.0.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2015-01-30 13:14+0100\n"
"POT-Creation-Date: 2015-02-07 17:08+0100\n"
"PO-Revision-Date: 2013-03-16 15:05+0100\n"
"Last-Translator: Zoran Turalija <zoran.turalija@gmail.com>\n"
"Language-Team: Serbian <vdr@linuxtv.org>\n"
@ -797,6 +797,9 @@ msgstr ""
msgid "Error while queueing recording for cutting!"
msgstr ""
msgid "Rename recording to folder name?"
msgstr ""
msgid "Delete editing marks for this recording?"
msgstr ""
@ -1242,10 +1245,13 @@ msgstr ""
msgid "Setup.Replay$Pause replay at last mark"
msgstr ""
msgid "Setup.Replay$Binary skip initial value (s)"
msgid "Setup.Replay$Initial duration for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Binary skip timeout (s)"
msgid "Setup.Replay$Reset timeout for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Alternate behavior for adaptive skipping"
msgstr ""
msgid "Setup.Replay$Resume ID"

View File

@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.0.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2015-01-30 13:14+0100\n"
"POT-Creation-Date: 2015-02-07 17:08+0100\n"
"PO-Revision-Date: 2013-02-18 17:04+0100\n"
"Last-Translator: Richard Lithvall <r-vdr@boomer.se>\n"
"Language-Team: Swedish <vdr@linuxtv.org>\n"
@ -800,6 +800,9 @@ msgstr ""
msgid "Error while queueing recording for cutting!"
msgstr ""
msgid "Rename recording to folder name?"
msgstr ""
msgid "Delete editing marks for this recording?"
msgstr ""
@ -1245,10 +1248,13 @@ msgstr ""
msgid "Setup.Replay$Pause replay at last mark"
msgstr ""
msgid "Setup.Replay$Binary skip initial value (s)"
msgid "Setup.Replay$Initial duration for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Binary skip timeout (s)"
msgid "Setup.Replay$Reset timeout for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Alternate behavior for adaptive skipping"
msgstr ""
msgid "Setup.Replay$Resume ID"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.0.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2015-01-30 13:14+0100\n"
"POT-Creation-Date: 2015-02-07 17:08+0100\n"
"PO-Revision-Date: 2008-02-28 00:33+0100\n"
"Last-Translator: Oktay Yolgeçen <oktay_73@yahoo.de>\n"
"Language-Team: Turkish <vdr@linuxtv.org>\n"
@ -796,6 +796,9 @@ msgstr ""
msgid "Error while queueing recording for cutting!"
msgstr ""
msgid "Rename recording to folder name?"
msgstr ""
msgid "Delete editing marks for this recording?"
msgstr ""
@ -1241,10 +1244,13 @@ msgstr ""
msgid "Setup.Replay$Pause replay at last mark"
msgstr ""
msgid "Setup.Replay$Binary skip initial value (s)"
msgid "Setup.Replay$Initial duration for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Binary skip timeout (s)"
msgid "Setup.Replay$Reset timeout for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Alternate behavior for adaptive skipping"
msgstr ""
msgid "Setup.Replay$Resume ID"

View File

@ -7,21 +7,21 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.0.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2015-01-30 13:14+0100\n"
"PO-Revision-Date: 2013-02-09 16:00+0100\n"
"POT-Creation-Date: 2015-02-07 17:08+0100\n"
"PO-Revision-Date: 2015-02-01 23:31+0100\n"
"Last-Translator: Yarema aka Knedlyk <yupadmin@gmail.com>\n"
"Language-Team: Ukrainian <vdr@linuxtv.org>\n"
"Language: uk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.5.4\n"
"X-Generator: Poedit 1.7.3\n"
msgid "*** Invalid Channel ***"
msgstr "*** Неправильний канал ***"
msgid "CAM activated!"
msgstr ""
msgstr "CAM активовано!"
msgid "Channel not available!"
msgstr "Канал недоступний!"
@ -78,19 +78,19 @@ msgid "Rolloff"
msgstr "Крен"
msgid "StreamId"
msgstr "StreamId"
msgstr "Id потоку"
msgid "Pilot"
msgstr ""
msgstr "Пілот"
msgid "T2SystemId"
msgstr ""
msgstr "T2SystemId"
msgid "SISO/MISO"
msgstr ""
msgstr "SISO/MISO"
msgid "Starting EPG scan"
msgstr "Починаю EPG-сканування"
msgstr "Початок сканування EPG"
msgid "Content$Movie/Drama"
msgstr "Фільм/Драма"
@ -249,7 +249,7 @@ msgid "Content$Broadcasting/Press"
msgstr "Трансляція/Преса"
msgid "Content$New Media"
msgstr "Нові медія"
msgstr "Нові медіа"
msgid "Content$Arts/Culture Magazine"
msgstr "Мистецтво/Культурний журнал"
@ -424,7 +424,7 @@ msgid "Key$Info"
msgstr "Інфо"
msgid "Key$Play/Pause"
msgstr "Програвати/Пауза"
msgstr "Програвання/Пауза"
msgid "Key$Play"
msgstr "Програвання"
@ -577,10 +577,10 @@ msgid "Sid"
msgstr "Sid"
msgid "Nid"
msgstr ""
msgstr "Nid"
msgid "Tid"
msgstr ""
msgstr "Tid"
msgid "Channel settings are not unique!"
msgstr "Настройки каналу не єдині!"
@ -604,7 +604,7 @@ msgid "Channel is being used by a timer!"
msgstr "Канал зайнятий таймером!"
msgid "Delete channel?"
msgstr "Видалити канал?"
msgstr "Вилучити канал?"
msgid "Edit folder"
msgstr "Редагувати теку"
@ -719,7 +719,7 @@ msgid "Button$Schedule"
msgstr "Програма"
msgid "Can't switch channel!"
msgstr "Неможливо переключити канал!"
msgstr "Неможливо перемкнути канал!"
#, c-format
msgid "Schedule - %s"
@ -743,71 +743,74 @@ msgid "CAM not responding!"
msgstr "CAM не відповідає!"
msgid "Edit path"
msgstr ""
msgstr "Редагувати шлях"
msgid "Folder"
msgstr ""
msgstr "Тека"
msgid "This folder is currently in use - no changes are possible!"
msgstr ""
msgstr "Ця тека зараз використовується - не дозволено жодних змін!"
#, c-format
msgid "Move entire folder containing %d recordings?"
msgstr ""
msgstr "Перемістити цілу теку, що містить %d записів?"
msgid "Error while moving folder!"
msgstr ""
msgstr "Помилка перенесення теки!"
msgid "Edit recording"
msgstr ""
msgstr "Редагувати запис"
msgid "This recording is currently in use - no changes are possible!"
msgstr ""
msgstr "Цей запис зараз використовується - не дозволено жодних змін!"
msgid "Button$Cancel cutting"
msgstr ""
msgstr "Відмінити обрізання"
msgid "Button$Stop cutting"
msgstr ""
msgstr "Зупинити обрізання"
msgid "Button$Cancel moving"
msgstr ""
msgstr "Відмінити перенесення"
msgid "Button$Stop moving"
msgstr ""
msgstr "Зупинити перенесення"
msgid "Button$Cancel copying"
msgstr ""
msgstr "Відмінити копіювання"
msgid "Button$Stop copying"
msgstr ""
msgstr "Зупинити копіювання"
msgid "Button$Cut"
msgstr ""
msgstr "Обрізання"
msgid "Button$Delete marks"
msgstr ""
msgstr "Вилучити мітки"
msgid "Recording vanished!"
msgstr ""
msgstr "Запис зник!"
msgid "Edited version already exists - overwrite?"
msgstr ""
msgstr "Вже існує редагована версія - перезаписати?"
msgid "Error while queueing recording for cutting!"
msgstr "Помилка перешуковування запису для обрізання!"
msgid "Rename recording to folder name?"
msgstr ""
msgid "Delete editing marks for this recording?"
msgstr ""
msgstr "Вилучити мітки редагування для цього запису?"
msgid "Error while deleting editing marks!"
msgstr ""
msgstr "Помилка вилучення міток редагування!"
msgid "Error while changing priority/lifetime!"
msgstr ""
msgstr "Помилка при зміні пріоритету/тривалості!"
msgid "Error while changing folder/name!"
msgstr ""
msgstr "Помилка при зміні теки/назви!"
msgid "Recording info"
msgstr "Про запис"
@ -831,7 +834,7 @@ msgid "Recording is being edited - really delete?"
msgstr "Запис редагується - дійсно вилучити?"
msgid "Error while deleting recording!"
msgstr "Помилка видалення запису!"
msgstr "Помилка вилучення запису!"
msgid "Recording commands"
msgstr "Команди запису"
@ -840,7 +843,7 @@ msgid "never"
msgstr "ніколи"
msgid "skin dependent"
msgstr "згідно з стилем"
msgstr "згідно зі стилем"
msgid "always"
msgstr "завжди"
@ -1077,31 +1080,31 @@ msgid "Setup.LNB$own"
msgstr "власне"
msgid "Setup.LNB$Use dish positioner"
msgstr ""
msgstr "Використання позиціонеру тарілки"
msgid "Setup.LNB$Site latitude (degrees)"
msgstr ""
msgstr "Широта (градуси)"
msgid "South"
msgstr ""
msgstr "Південь"
msgid "North"
msgstr ""
msgstr "Північ"
msgid "Setup.LNB$Site longitude (degrees)"
msgstr ""
msgstr "Довгота (градуси)"
msgid "West"
msgstr ""
msgstr "Захід"
msgid "East"
msgstr ""
msgstr "Схід"
msgid "Setup.LNB$Max. positioner swing (degrees)"
msgstr ""
msgstr "Макс. кут позиціонера (градуси)"
msgid "Setup.LNB$Positioner speed (degrees/s)"
msgstr ""
msgstr "Швидкість позиціонера (градуси/с)"
msgid "CAM reset"
msgstr "Перезавантаження CAM"
@ -1114,16 +1117,16 @@ msgstr "CAM готовий"
#. TRANSLATORS: note the leading blank!
msgid " (activating)"
msgstr ""
msgstr " (активування)"
msgid "CAM"
msgstr "CAM (Умовний доступ)"
msgid "Button$Cancel activation"
msgstr ""
msgstr "Відмінити активацію"
msgid "Button$Activate"
msgstr ""
msgstr "Активувати"
msgid "Button$Menu"
msgstr "Меню"
@ -1138,7 +1141,7 @@ msgid "Can't open CAM menu!"
msgstr "Меню CAM-модуля недоступне!"
msgid "Can't activate CAM!"
msgstr ""
msgstr "Не можу активувати CAM!"
msgid "CAM is in use - really reset?"
msgstr "CAM використовується - дійсно перезапустити?"
@ -1222,10 +1225,10 @@ msgid "Setup.Replay$Multi speed mode"
msgstr "Багатошвидкісний режим"
msgid "Setup.Replay$Show replay mode"
msgstr "Віображати режим перегляду"
msgstr "Показати режим перегляду"
msgid "Setup.Replay$Show remaining time"
msgstr "Показати час що зашився"
msgstr "Показати час що залишився"
msgid "Setup.Replay$Progress display time (s)"
msgstr "Час показу індикатора (с)"
@ -1234,18 +1237,21 @@ msgid "Setup.Replay$Pause replay when setting mark"
msgstr "Пауза програвання при встановленні мітки"
msgid "Setup.Replay$Pause replay when jumping to a mark"
msgstr ""
msgstr "Призупинити програвання при перескакуванні до мітки"
msgid "Setup.Replay$Skip edited parts"
msgstr ""
msgstr "Пропустити редаговані частини"
msgid "Setup.Replay$Pause replay at last mark"
msgstr "Призупинити програвання на останній мітці"
msgid "Setup.Replay$Initial duration for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Binary skip initial value (s)"
msgid "Setup.Replay$Reset timeout for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Binary skip timeout (s)"
msgid "Setup.Replay$Alternate behavior for adaptive skipping"
msgstr ""
msgid "Setup.Replay$Resume ID"
@ -1261,13 +1267,13 @@ msgid "Setup.Miscellaneous$Min. user inactivity (min)"
msgstr "Мін. час очікування вводу (хв)"
msgid "Setup.Miscellaneous$SVDRP timeout (s)"
msgstr "Затримкка обриву з'єднання SVDRP (сек)"
msgstr "Затримка обриву з'єднання SVDRP (сек)"
msgid "Setup.Miscellaneous$Zap timeout (s)"
msgstr "Затримка переключання каналу (сек)"
msgid "Setup.Miscellaneous$Channel entry timeout (ms)"
msgstr "Затримка часу для впровадження каналу (ms)"
msgstr "Затримка часу для впровадження каналу (мс)"
msgid "Setup.Miscellaneous$Remote control repeat delay (ms)"
msgstr "Затримка повтору кнопок пульта (мс)"
@ -1285,10 +1291,10 @@ msgid "Setup.Miscellaneous$Initial volume"
msgstr "Гучність при включенні"
msgid "Setup.Miscellaneous$Volume steps"
msgstr ""
msgstr "Кроки гучності"
msgid "Setup.Miscellaneous$Volume linearize"
msgstr ""
msgstr "Лінеаризована гучність"
msgid "Setup.Miscellaneous$Channels wrap"
msgstr "Кінець каналів"
@ -1363,7 +1369,7 @@ msgid "Pausing live video..."
msgstr "Режим відкладеного перегляду..."
msgid "Delete timeshift recording?"
msgstr "Видалити запис з часовим зсувом?"
msgstr "Вилучити запис з часовим зсувом?"
#. TRANSLATORS: note the trailing blank!
msgid "Jump: "
@ -1476,7 +1482,7 @@ msgstr "ПРОГРАВАННЯ"
#, c-format
msgid "Moving dish to %.1f..."
msgstr ""
msgstr "Повертання тарілки до %.1f..."
msgid "ST:TNG Panels"
msgstr "ST:TNG панелі"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.0.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2015-01-30 13:14+0100\n"
"POT-Creation-Date: 2015-02-07 17:08+0100\n"
"PO-Revision-Date: 2013-03-04 14:52+0800\n"
"Last-Translator: NFVDR <nfvdr@live.com>\n"
"Language-Team: Chinese (simplified) <nfvdr@live.com>\n"
@ -798,6 +798,9 @@ msgstr ""
msgid "Error while queueing recording for cutting!"
msgstr ""
msgid "Rename recording to folder name?"
msgstr ""
msgid "Delete editing marks for this recording?"
msgstr ""
@ -1243,10 +1246,13 @@ msgstr ""
msgid "Setup.Replay$Pause replay at last mark"
msgstr ""
msgid "Setup.Replay$Binary skip initial value (s)"
msgid "Setup.Replay$Initial duration for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Binary skip timeout (s)"
msgid "Setup.Replay$Reset timeout for adaptive skipping (s)"
msgstr ""
msgid "Setup.Replay$Alternate behavior for adaptive skipping"
msgstr ""
msgid "Setup.Replay$Resume ID"

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: recording.c 3.24 2015/01/25 15:39:24 kls Exp $
* $Id: recording.c 3.27 2015/02/07 15:28:02 kls Exp $
*/
#include "recording.h"
@ -1676,7 +1676,7 @@ cDirCopier::cDirCopier(const char *DirNameSrc, const char *DirNameDst)
{
dirNameSrc = DirNameSrc;
dirNameDst = DirNameDst;
error = false;
error = true; // prepare for the worst!
suspensionLogged = false;
}
@ -1790,6 +1790,7 @@ void cDirCopier::Action(void)
else {
// We're done:
dsyslog("done copying directory '%s' to '%s'", *dirNameSrc, *dirNameDst);
error = false;
return;
}
}
@ -1802,7 +1803,6 @@ void cDirCopier::Action(void)
}
else
esyslog("ERROR: can't access '%s'", *dirNameDst);
error = true;
}
void cDirCopier::Stop(void)
@ -2059,6 +2059,7 @@ cString cMarks::MarksFileName(const cRecording *Recording)
bool cMarks::Load(const char *RecordingFileName, double FramesPerSecond, bool IsPesRecording)
{
cMutexLock MutexLock(this);
recordingFileName = RecordingFileName;
fileName = AddDirectory(RecordingFileName, IsPesRecording ? MARKSFILESUFFIX ".vdr" : MARKSFILESUFFIX);
framesPerSecond = FramesPerSecond;
@ -2071,6 +2072,7 @@ bool cMarks::Load(const char *RecordingFileName, double FramesPerSecond, bool Is
bool cMarks::Update(void)
{
cMutexLock MutexLock(this);
time_t t = time(NULL);
if (t > nextUpdate && *fileName) {
time_t LastModified = LastModifiedTime(fileName);
@ -2102,6 +2104,7 @@ bool cMarks::Update(void)
bool cMarks::Save(void)
{
cMutexLock MutexLock(this);
if (cConfig<cMark>::Save()) {
lastFileTime = LastModifiedTime(fileName);
return true;
@ -2111,6 +2114,7 @@ bool cMarks::Save(void)
void cMarks::Align(void)
{
cMutexLock MutexLock(this);
cIndexFile IndexFile(recordingFileName, false, isPesRecording);
for (cMark *m = First(); m; m = Next(m)) {
int p = IndexFile.GetClosestIFrame(m->Position());
@ -2123,6 +2127,7 @@ void cMarks::Align(void)
void cMarks::Sort(void)
{
cMutexLock MutexLock(this);
for (cMark *m1 = First(); m1; m1 = Next(m1)) {
for (cMark *m2 = Next(m1); m2; m2 = Next(m2)) {
if (m2->Position() < m1->Position()) {
@ -2135,6 +2140,7 @@ void cMarks::Sort(void)
void cMarks::Add(int Position)
{
cMutexLock MutexLock(this);
cConfig<cMark>::Add(new cMark(Position, NULL, framesPerSecond));
Sort();
}
@ -2169,7 +2175,7 @@ cMark *cMarks::GetNext(int Position)
cMark *cMarks::GetNextBegin(cMark *EndMark)
{
cMark *BeginMark = EndMark ? Next(EndMark) : First();
if (BeginMark) {
if (BeginMark && EndMark && BeginMark->Position() == EndMark->Position()) {
while (cMark *NextMark = Next(BeginMark)) {
if (BeginMark->Position() == NextMark->Position()) { // skip Begin/End at the same position
if (!(BeginMark = Next(NextMark)))
@ -2187,7 +2193,7 @@ cMark *cMarks::GetNextEnd(cMark *BeginMark)
if (!BeginMark)
return NULL;
cMark *EndMark = Next(BeginMark);
if (EndMark) {
if (EndMark && BeginMark && BeginMark->Position() == EndMark->Position()) {
while (cMark *NextMark = Next(EndMark)) {
if (EndMark->Position() == NextMark->Position()) { // skip End/Begin at the same position
if (!(EndMark = Next(NextMark)))
@ -2202,6 +2208,7 @@ cMark *cMarks::GetNextEnd(cMark *BeginMark)
int cMarks::GetNumSequences(void)
{
cMutexLock MutexLock(this);
int NumSequences = 0;
if (cMark *BeginMark = GetNextBegin()) {
while (cMark *EndMark = GetNextEnd(BeginMark)) {

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: recording.h 3.6 2015/01/31 13:34:44 kls Exp $
* $Id: recording.h 3.8 2015/02/07 14:29:14 kls Exp $
*/
#ifndef __RECORDING_H
@ -350,7 +350,7 @@ public:
bool Save(FILE *f);
};
class cMarks : public cConfig<cMark> {
class cMarks : public cConfig<cMark>, public cMutex {
private:
cString recordingFileName;
cString fileName;
@ -369,6 +369,11 @@ public:
void Align(void);
void Sort(void);
void Add(int Position);
///< If this cMarks object is used by multiple threads, the caller must Lock()
///< it before calling Add() and Unlock() it afterwards. The same applies to
///< calls to Del(), or any of the functions that return a "cMark *", in case
///< an other thread might modifiy the list while the returned pointer is
///< considered valid.
cMark *Get(int Position);
cMark *GetPrev(int Position);
cMark *GetNext(int Position);

View File

@ -20,7 +20,7 @@
# See the main source file 'vdr.c' for copyright information and
# how to reach the author.
#
# $Id: runvdr.template 3.0 2011/04/17 12:34:30 kls Exp $
# $Id: runvdr.template 3.1 2015/02/05 10:28:53 kls Exp $
VDRPRG="./vdr"
@ -43,19 +43,21 @@ KILL="/usr/bin/killall -q -TERM"
# Detect whether the DVB driver is already loaded
# and return 0 if it *is* loaded, 1 if not:
function DriverLoaded()
DriverLoaded()
{
return 1
}
# Load all DVB driver modules needed for your hardware:
function LoadDriver()
LoadDriver()
{
return 0
}
# Unload all DVB driver modules loaded in LoadDriver():
function UnloadDriver()
UnloadDriver()
{
return 0
}
# Load driver if it hasn't been loaded already:

View File

@ -21,7 +21,8 @@
S3E Eutelsat 3A/3D & Rascom 1R
S4E Eutelsat 4B
S4.8E Astra 4A & SES 5
S4.8E Astra 4A
S5E SES 5
S7E Eutelsat 7A
S9E Eutelsat 9A/Ka-Sat 9A
S10E Eutelsat 10A

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: tools.c 3.3 2014/03/22 14:22:55 kls Exp $
* $Id: tools.c 3.4 2015/02/07 15:09:17 kls Exp $
*/
#include "tools.h"
@ -404,7 +404,7 @@ bool EntriesOnSameFileSystem(const char *File1, const char *File2)
}
else
LOG_ERROR_STR(File1);
return false;
return true; // we only return false if both files actually exist and are in different file systems!
}
int FreeDiskSpaceMB(const char *Directory, int *UsedMB)

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: tools.h 3.6 2015/01/14 09:09:06 kls Exp $
* $Id: tools.h 3.7 2015/02/07 15:12:26 kls Exp $
*/
#ifndef __TOOLS_H
@ -234,6 +234,9 @@ cString dtoa(double d, const char *Format = "%f");
cString itoa(int n);
cString AddDirectory(const char *DirName, const char *FileName);
bool EntriesOnSameFileSystem(const char *File1, const char *File2);
///< Checks whether the given files are on the same file system. If either of the
///< files doesn't exist, this function returns *true* to avoid any actions that might be
///< triggered if files are on different file system.
int FreeDiskSpaceMB(const char *Directory, int *UsedMB = NULL);
bool DirectoryOk(const char *DirName, bool LogErrors = false);
bool MakeDirs(const char *FileName, bool IsDirectory = false);