mirror of
https://github.com/vdr-projects/vdr.git
synced 2025-03-01 10:50:46 +00:00
Version 2.1.8
VDR developer version 2.1.8 is now available at ftp://ftp.tvdr.de/vdr/Developer/vdr-2.1.8.tar.bz2 A 'diff' against the previous version is available at ftp://ftp.tvdr.de/vdr/Developer/vdr-2.1.7-2.1.8.diff MD5 checksums: 1d2751e87def9b18b448513f24e635e9 vdr-2.1.8.tar.bz2 0487e037278f6f6684a7933674910f05 vdr-2.1.7-2.1.8.diff WARNING: ======== This is a *developer* version. Even though *I* use it in my productive environment, I strongly recommend that you only use it under controlled conditions and for testing and debugging. From the HISTORY file: - Updated the Italian OSD texts (thanks to Diego Pierotto). - Fixed "warning: invalid suffix on literal" with GCC 4.8 and C++11 (thanks to Joerg Bornkessel). - Fixed the link to "svdrpsend (1)" in the vdr.1 man page (thanks to Chris Mayo). - Updated the Finnish OSD texts (thanks to Rolf Ahrenberg). - Updated the Romanian OSD texts (thanks to Lucian Muresan). - Added functionality based on the "jumpplay" patch from Torsten Kunkel and Thomas Günther: + 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. - Added support for "Satellite Channel Routing" (SCR) according to EN50607, also known as "JESS" (thanks to Manfred Völkel and Frank Neumann). - The keys '1' and '3' can now be used in replay mode to position an editing mark in "binary" mode (based on a patch from Rolf Ahrenberg, with modifications by Helmut Auer). See MANUAL, section "Editing a Recording". - 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). - Updated the Estonian OSD texts (thanks to Arthur Konovalov). - Added ARGSDIR to the ONEDIR section of Make.config.template (suggested by Derek Kelly). - Made cRecording::GetResume() public (suggested by Stefan Braun). - Fixed setting the read index in cDvbPlayer::Goto() in case Still is false. - 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).
This commit is contained in:
parent
2db7397542
commit
4ee983a294
11
CONTRIBUTORS
11
CONTRIBUTORS
@ -624,6 +624,7 @@ Helmut Auer <vdr@helmutauer.de>
|
||||
for helping to debug a problem with frame detection in MPEG-2 streams that have "bottom fields"
|
||||
or varying GOP structures
|
||||
for a patch that was used to implement the command line option --updindex
|
||||
for modifying the "binary skip" patch to move editing marks
|
||||
|
||||
Jeremy Hall <jhall@UU.NET>
|
||||
for fixing an incomplete initialization of the filter parameters in eit.c
|
||||
@ -1192,6 +1193,8 @@ Rolf Ahrenberg <Rolf.Ahrenberg@sci.fi>
|
||||
for adding support for "Pilot", "T2-System-Id" and "SISO/MISO" parameters
|
||||
for fixing a problem with subtitles not being displayed because the broadcaster
|
||||
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)
|
||||
|
||||
Ralf Klueber <ralf.klueber@vodafone.com>
|
||||
for reporting a bug in cutting a recording if there is only a single editing mark
|
||||
@ -2139,6 +2142,7 @@ Thomas G
|
||||
which results in using tr(FileNameChars)
|
||||
for fixing handling "none" color entries in XPM files
|
||||
for fixing displaying the frame number when setting an editing mark
|
||||
for the "jumpplay" patch
|
||||
|
||||
David Woodhouse <dwmw2@infradead.org>
|
||||
for his help in replacing the get/put_unaligned() macros from asm/unaligned.h with
|
||||
@ -2677,6 +2681,7 @@ Torsten Kunkel <vdrml@tkunkel.de>
|
||||
for pointing out that it was not obvious how to initiate internationalization
|
||||
support for a plugin
|
||||
for suggesting to add a section about "Logging" to PLUGINS.html
|
||||
for the "jumpplay" patch
|
||||
|
||||
Michael Nival <mnival@club-internet.fr>
|
||||
for translating OSD texts to the French language
|
||||
@ -2824,6 +2829,7 @@ Derek Kelly <user.vdr@gmail.com>
|
||||
are no short names at all
|
||||
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
|
||||
|
||||
Marcel Unbehaun <frostworks@gmx.de>
|
||||
for adding cRecordingInfo::GetEvent()
|
||||
@ -2969,6 +2975,7 @@ Dominik Strasser <dominik@die-strassers.de>
|
||||
Joerg Bornkessel <hd_brummy@gentoo.org>
|
||||
for adding LDFLAGS to the linker calls in the Makefiles
|
||||
for fixing font handling with fontconfig 2.9.0 or newer
|
||||
for fixing "warning: invalid suffix on literal" with GCC 4.8 and C++11
|
||||
|
||||
Andreas Oberritter <obi@opendreambox.org>
|
||||
for suggesting to retrieve the include path to the freetype2 header files
|
||||
@ -2981,6 +2988,7 @@ Frank Neumann <fnu@yavdr.org>
|
||||
for suggesting to reduce the thread and I/O priority cCuttingThread::Action()
|
||||
for reporting a problem with tuning timeouts when using SCR with multiple tuners
|
||||
for fixing the German translation of "VDR will shut down in %s minutes"
|
||||
for adding support for "Satellite Channel Routing" (SCR) according to EN50607 ("JESS")
|
||||
|
||||
Gerald Dachs <vdr@dachsweb.de>
|
||||
for reporting a problem with checking for minimum line length of 21 characters in
|
||||
@ -3045,6 +3053,7 @@ Frank Niederwipper <f.niederwipper@gmail.com>
|
||||
|
||||
Chris Mayo <aklhfex@gmail.com>
|
||||
for reporting a problem with detecting frames on radio channels
|
||||
for fixing the link to "svdrpsend (1)" in the vdr.1 man page
|
||||
|
||||
Dominic Evans <oldmanuk@gmail.com>
|
||||
for making the SVDRP command LSTC accepts channel IDs
|
||||
@ -3229,6 +3238,7 @@ Stefan Braun <louis.braun@gmx.de>
|
||||
for reporting an endless loop in the DrawEllipse() functions for very small ellipses
|
||||
for suggesting to add the menu category mcRecordingEdit for marking menus that edit
|
||||
recording properties
|
||||
for suggesting to make cRecording::GetResume() public
|
||||
|
||||
Jochen Dolze <vdr@dolze.de>
|
||||
for changing cThread::SetIOPriority() from "best effort class" to "idle class" in order
|
||||
@ -3243,6 +3253,7 @@ Seppo Ingalsuo <seppo.ingalsuo@iki.fi>
|
||||
Manfred Völkel <mvoelkel@digitaldevices.de>
|
||||
for suggesting to make all bonded devices (except for the master) turn off their LNB
|
||||
power completely to avoid problems when receiving vertically polarized transponders
|
||||
for adding support for "Satellite Channel Routing" (SCR) according to EN50607 ("JESS")
|
||||
|
||||
Thomas Maass <mase@setho.org>
|
||||
for reporting a difference in the internal sequence of actions when pressing the Blue
|
||||
|
58
HISTORY
58
HISTORY
@ -8394,3 +8394,61 @@ Video Disk Recorder Revision History
|
||||
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 (based on a patch from Helmut Auer).
|
||||
|
||||
2015-01-20: Version 2.0.7
|
||||
|
||||
- Fixed a possible division by zero in frame rate detection.
|
||||
- Fixed a bug in the Makefile when installing plugins with LCLBLD=1 (thanks to
|
||||
Stefan Huelswitt).
|
||||
- Fixed jumping to an absolute position via the Red key in case replay was paused
|
||||
(reported by Dieter Ferdinand).
|
||||
- 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
|
||||
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 you may want to do so again with this
|
||||
version to make sure the index is OK.
|
||||
|
||||
2015-02-01: Version 2.1.8
|
||||
|
||||
- Updated the Italian OSD texts (thanks to Diego Pierotto).
|
||||
- Fixed "warning: invalid suffix on literal" with GCC 4.8 and C++11 (thanks to Joerg
|
||||
Bornkessel).
|
||||
- Fixed the link to "svdrpsend (1)" in the vdr.1 man page (thanks to Chris Mayo).
|
||||
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
|
||||
- Updated the Romanian OSD texts (thanks to Lucian Muresan).
|
||||
- Added functionality based on the "jumpplay" patch from Torsten Kunkel and Thomas
|
||||
Günther:
|
||||
+ 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.
|
||||
- Added support for "Satellite Channel Routing" (SCR) according to EN50607, also
|
||||
known as "JESS" (thanks to Manfred Völkel and Frank Neumann).
|
||||
- The keys '1' and '3' can now be used in replay mode to position an editing mark
|
||||
in "binary" mode (based on a patch from Rolf Ahrenberg, with modifications by Helmut
|
||||
Auer). See MANUAL, section "Editing a Recording".
|
||||
- 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).
|
||||
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
|
||||
- Added ARGSDIR to the ONEDIR section of Make.config.template (suggested by Derek
|
||||
Kelly).
|
||||
- Made cRecording::GetResume() public (suggested by Stefan Braun).
|
||||
- Fixed setting the read index in cDvbPlayer::Goto() in case Still is false.
|
||||
- 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).
|
||||
|
5
INSTALL
5
INSTALL
@ -391,8 +391,9 @@ access your DiSEqC equipment (see man vdr(5) for details).
|
||||
A special form of DiSEqC is used to connect several receivers to one signal
|
||||
source using only a single cable. This method, known as "Satellite Channel Routing"
|
||||
according to EN50494 (aka "Unicable(TM)", "OLT(TM)", "SatCR", "Single Cable
|
||||
Distribution", "Channel Stacking System" or "Single Cable Interface") uses
|
||||
the file "scr.conf" to specify which SCR channels use which user band frequency.
|
||||
Distribution", "Channel Stacking System" or "Single Cable Interface") or
|
||||
EN50607 (aka "JESS") uses the file "scr.conf" to specify which SCR channels
|
||||
use which user band frequency.
|
||||
|
||||
If DVB-S devices need to be connected to the same satellite cable, but no
|
||||
"Satellite Channel Routing" is available, they can be set to be "bonded" in
|
||||
|
71
MANUAL
71
MANUAL
@ -363,15 +363,29 @@ 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.
|
||||
- 4, 6 Move an editing mark back and forward. You need to first jump to
|
||||
an editing mark for this to work.
|
||||
- 1, 3 Move an editing mark back and forward in "binary" 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.
|
||||
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
|
||||
first jump to an editing mark for this to work.
|
||||
- 7, 9 Jump back and forward between editing marks. Replay goes into still
|
||||
mode after jumping to a mark. If the current position is at the
|
||||
first or last mark, or if there are no marks at all, these keys
|
||||
jump to the very beginning or end, respectively, of the recording.
|
||||
- 8 Positions replay at a point 3 seconds before the current or next
|
||||
"begin" mark and starts replay.
|
||||
- 2 Start the actual cutting process.
|
||||
- 2 Starts the actual cutting process.
|
||||
|
||||
Editing marks are represented by black, vertical lines in the progress display.
|
||||
A small black triangle at the top of the mark means that this is a "begin"
|
||||
@ -831,7 +845,19 @@ Version 2.0
|
||||
if it is in the process of being reset, its current status
|
||||
is displayed. The "Red" key can be pressed to enter the CAM
|
||||
menu, and the "Green" key triggers a reset of the selected
|
||||
slot. The "Ok" key also opens the CAM menu.
|
||||
slot. The "Ok" key also opens the CAM menu. The "Yellow" key
|
||||
assigns the selected CAM to a device and switches it to the
|
||||
current channel. The CAM/device combination remains tuned to
|
||||
the current channel until the smart card in the CAM has been
|
||||
activated and thus starts to descramble, or until a recording
|
||||
needs this device. Pressing the "Yellow" key while a CAM is
|
||||
in activation mode cancels the activation. The activation mode
|
||||
remains in effect even if you switch to a different channel
|
||||
(provided there is more than one device in the system) or
|
||||
watch a recording. To activate your smart card simply switch
|
||||
to the channel you want to watch, open the "Setup/CAM" menu,
|
||||
select the CAM that contains the smart card (in case you
|
||||
have more than one CAM) and press the "Yellow" key.
|
||||
|
||||
Recording:
|
||||
|
||||
@ -943,6 +969,43 @@ Version 2.0
|
||||
Defines whether the player automatically goes into Pause
|
||||
mode when setting an editing mark.
|
||||
|
||||
Pause replay when jumping to a mark = yes
|
||||
By default replay is automatically paused whenever you jump
|
||||
to an editing mark with the '7' or '9' key in order to allow
|
||||
you to easily adjust those marks. If this option is set to
|
||||
'no', the '9' key will not pause if you are in Play mode and
|
||||
the mark you jump to is not within 3 seconds of the end of
|
||||
the recording.
|
||||
|
||||
Skip edited parts = no Defines whether the edited parts of a recording are
|
||||
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
|
||||
when it has reached the last "end" mark (if any). Note that
|
||||
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
|
||||
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".
|
||||
The valid range is 10...600.
|
||||
|
||||
Binary skip timeout (s) = 3
|
||||
Defines the number of seconds after which pressing the
|
||||
'1' or '3' key falls back to the "Binary skip initial value".
|
||||
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.
|
||||
|
||||
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
|
||||
files for each recording. The valid range is 0...99, with
|
||||
|
@ -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.1 2014/04/14 11:43:53 kls Exp $
|
||||
# $Id: Make.config.template 3.2 2015/01/30 15:18:47 kls Exp $
|
||||
|
||||
### The C compiler and options:
|
||||
|
||||
@ -58,6 +58,7 @@ ifdef ONEDIR
|
||||
VIDEODIR = /video
|
||||
CACHEDIR = $(VIDEODIR)
|
||||
CONFDIR = $(VIDEODIR)
|
||||
ARGSDIR = $(VIDEODIR)/conf.d
|
||||
RESDIR = $(VIDEODIR)
|
||||
endif
|
||||
|
||||
|
11
channels.c
11
channels.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: channels.c 3.7 2015/01/14 12:15:03 kls Exp $
|
||||
* $Id: channels.c 3.8 2015/02/01 13:47:05 kls Exp $
|
||||
*/
|
||||
|
||||
#include "channels.h"
|
||||
@ -248,6 +248,15 @@ void cChannel::SetId(int Nid, int Tid, int Sid, int Rid)
|
||||
}
|
||||
}
|
||||
|
||||
void cChannel::SetLcn(int Lcn)
|
||||
{
|
||||
if (lcn != Lcn) {
|
||||
if (Number())
|
||||
dsyslog("changing lcn of channel %d (%s) from %d to %d\n", Number(), name, lcn, Lcn);
|
||||
lcn = Lcn;
|
||||
}
|
||||
}
|
||||
|
||||
void cChannel::SetName(const char *Name, const char *ShortName, const char *Provider)
|
||||
{
|
||||
if (!isempty(Name)) {
|
||||
|
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: channels.h 3.2 2014/01/04 15:01:21 kls Exp $
|
||||
* $Id: channels.h 3.3 2015/02/01 13:30:26 kls Exp $
|
||||
*/
|
||||
|
||||
#ifndef __CHANNELS_H
|
||||
@ -121,6 +121,7 @@ private:
|
||||
int tid;
|
||||
int sid;
|
||||
int rid;
|
||||
int lcn; // Logical channel number assigned by data stream (or -1 if not available)
|
||||
int number; // Sequence number assigned on load
|
||||
bool groupSep;
|
||||
int __EndData__;
|
||||
@ -174,6 +175,7 @@ public:
|
||||
int Tid(void) const { return tid; }
|
||||
int Sid(void) const { return sid; }
|
||||
int Rid(void) const { return rid; }
|
||||
int Lcn(void) const { return lcn; }
|
||||
int Number(void) const { return number; }
|
||||
void SetNumber(int Number) { number = Number; }
|
||||
bool GroupSep(void) const { return groupSep; }
|
||||
@ -192,6 +194,7 @@ public:
|
||||
void CopyTransponderData(const cChannel *Channel);
|
||||
bool SetTransponderData(int Source, int Frequency, int Srate, const char *Parameters, bool Quiet = false);
|
||||
void SetId(int Nid, int Tid, int Sid, int Rid = 0);
|
||||
void SetLcn(int Lcn);
|
||||
void SetName(const char *Name, const char *ShortName, const char *Provider);
|
||||
void SetPortalName(const char *PortalName);
|
||||
void SetPids(int Vpid, int Ppid, int Vtype, int *Apids, int *Atypes, char ALangs[][MAXLANGCODE2], int *Dpids, int *Dtypes, char DLangs[][MAXLANGCODE2], int *Spids, char SLangs[][MAXLANGCODE2], int Tpid);
|
||||
|
90
ci.c
90
ci.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: ci.c 3.17 2015/01/15 09:14:57 kls Exp $
|
||||
* $Id: ci.c 3.18 2015/01/30 12:24:53 kls Exp $
|
||||
*/
|
||||
|
||||
#include "ci.h"
|
||||
@ -22,6 +22,7 @@
|
||||
#include "receiver.h"
|
||||
#include "remux.h"
|
||||
#include "libsi/si.h"
|
||||
#include "skins.h"
|
||||
#include "tools.h"
|
||||
|
||||
// Set these to 'true' for debug output:
|
||||
@ -236,6 +237,53 @@ void cCaPidReceiver::Receive(uchar *Data, int Length)
|
||||
}
|
||||
}
|
||||
|
||||
// --- cCaActivationReceiver -------------------------------------------------
|
||||
|
||||
// A receiver that is used to make the device stay on a given channel and
|
||||
// keep the CAM slot assigned.
|
||||
|
||||
#define UNSCRAMBLE_TIME 5 // seconds of receiving purely unscrambled data before considering the smart card "activated"
|
||||
#define TS_PACKET_FACTOR 1024 // only process every TS_PACKET_FACTORth packet to keep the load down
|
||||
|
||||
class cCaActivationReceiver : public cReceiver {
|
||||
private:
|
||||
cCamSlot *camSlot;
|
||||
time_t lastScrambledTime;
|
||||
int numTsPackets;
|
||||
protected:
|
||||
virtual void Receive(uchar *Data, int Length);
|
||||
public:
|
||||
cCaActivationReceiver(const cChannel *Channel, cCamSlot *CamSlot);
|
||||
virtual ~cCaActivationReceiver();
|
||||
};
|
||||
|
||||
cCaActivationReceiver::cCaActivationReceiver(const cChannel *Channel, cCamSlot *CamSlot)
|
||||
:cReceiver(Channel, MINPRIORITY + 1)
|
||||
{
|
||||
camSlot = CamSlot;
|
||||
lastScrambledTime = time(NULL);
|
||||
numTsPackets = 0;
|
||||
}
|
||||
|
||||
cCaActivationReceiver::~cCaActivationReceiver()
|
||||
{
|
||||
Detach();
|
||||
}
|
||||
|
||||
void cCaActivationReceiver::Receive(uchar *Data, int Length)
|
||||
{
|
||||
if (numTsPackets++ % TS_PACKET_FACTOR == 0) {
|
||||
time_t Now = time(NULL);
|
||||
if (TsIsScrambled(Data))
|
||||
lastScrambledTime = Now;
|
||||
else if (Now - lastScrambledTime > UNSCRAMBLE_TIME) {
|
||||
dsyslog("CAM %d: activated!", camSlot->SlotNumber());
|
||||
Skins.QueueMessage(mtInfo, tr("CAM activated!"));
|
||||
Detach();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// --- cTPDU -----------------------------------------------------------------
|
||||
|
||||
#define MAX_TPDU_SIZE 2048
|
||||
@ -1696,6 +1744,7 @@ cCamSlot::cCamSlot(cCiAdapter *CiAdapter, bool ReceiveCaPids)
|
||||
ciAdapter = CiAdapter;
|
||||
assignedDevice = NULL;
|
||||
caPidReceiver = ReceiveCaPids ? new cCaPidReceiver : NULL;
|
||||
caActivationReceiver = NULL;
|
||||
slotIndex = -1;
|
||||
lastModuleStatus = msReset; // avoids initial reset log message
|
||||
resetTime = 0;
|
||||
@ -1715,6 +1764,7 @@ cCamSlot::~cCamSlot()
|
||||
if (assignedDevice)
|
||||
assignedDevice->SetCamSlot(NULL);
|
||||
delete caPidReceiver;
|
||||
delete caActivationReceiver;
|
||||
CamSlots.Del(this, false);
|
||||
DeleteAllConnections();
|
||||
}
|
||||
@ -1735,8 +1785,10 @@ bool cCamSlot::Assign(cDevice *Device, bool Query)
|
||||
Device->SetCamSlot(this);
|
||||
dsyslog("CAM %d: assigned to device %d", slotNumber, Device->DeviceNumber() + 1);
|
||||
}
|
||||
else
|
||||
else {
|
||||
CancelActivation();
|
||||
dsyslog("CAM %d: unassigned", slotNumber);
|
||||
}
|
||||
}
|
||||
else
|
||||
return false;
|
||||
@ -1772,6 +1824,8 @@ void cCamSlot::DeleteAllConnections(void)
|
||||
void cCamSlot::Process(cTPDU *TPDU)
|
||||
{
|
||||
cMutexLock MutexLock(&mutex);
|
||||
if (caActivationReceiver && !caActivationReceiver->IsAttached())
|
||||
CancelActivation();
|
||||
if (TPDU) {
|
||||
int n = TPDU->Tcid();
|
||||
if (1 <= n && n <= MAX_CONNECTIONS_PER_CAM_SLOT) {
|
||||
@ -1795,6 +1849,7 @@ void cCamSlot::Process(cTPDU *TPDU)
|
||||
dbgprotocol("Slot %d: no module present\n", slotNumber);
|
||||
isyslog("CAM %d: no module present", slotNumber);
|
||||
DeleteAllConnections();
|
||||
CancelActivation();
|
||||
break;
|
||||
case msReset:
|
||||
dbgprotocol("Slot %d: module reset\n", slotNumber);
|
||||
@ -1856,6 +1911,37 @@ bool cCamSlot::Reset(void)
|
||||
return false;
|
||||
}
|
||||
|
||||
bool cCamSlot::CanActivate(void)
|
||||
{
|
||||
return ModuleStatus() == msReady;
|
||||
}
|
||||
|
||||
void cCamSlot::StartActivation(void)
|
||||
{
|
||||
cMutexLock MutexLock(&mutex);
|
||||
if (!caActivationReceiver) {
|
||||
if (cDevice *d = Device()) {
|
||||
if (cChannel *Channel = Channels.GetByNumber(cDevice::CurrentChannel())) {
|
||||
caActivationReceiver = new cCaActivationReceiver(Channel, this);
|
||||
d->AttachReceiver(caActivationReceiver);
|
||||
dsyslog("CAM %d: activating on device %d with channel %d (%s)", SlotNumber(), d->DeviceNumber() + 1, Channel->Number(), Channel->Name());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void cCamSlot::CancelActivation(void)
|
||||
{
|
||||
cMutexLock MutexLock(&mutex);
|
||||
delete caActivationReceiver;
|
||||
caActivationReceiver = NULL;
|
||||
}
|
||||
|
||||
bool cCamSlot::IsActivating(void)
|
||||
{
|
||||
return caActivationReceiver;
|
||||
}
|
||||
|
||||
eModuleStatus cCamSlot::ModuleStatus(void)
|
||||
{
|
||||
cMutexLock MutexLock(&mutex);
|
||||
|
23
ci.h
23
ci.h
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: ci.h 3.9 2015/01/15 09:18:09 kls Exp $
|
||||
* $Id: ci.h 3.11 2015/01/31 14:36:41 kls Exp $
|
||||
*/
|
||||
|
||||
#ifndef __CI_H
|
||||
@ -123,6 +123,7 @@ class cCiTransportConnection;
|
||||
class cCiSession;
|
||||
class cCiCaProgramData;
|
||||
class cCaPidReceiver;
|
||||
class cCaActivationReceiver;
|
||||
|
||||
class cCamSlot : public cListObject {
|
||||
friend class cCiAdapter;
|
||||
@ -133,6 +134,7 @@ private:
|
||||
cCiAdapter *ciAdapter;
|
||||
cDevice *assignedDevice;
|
||||
cCaPidReceiver *caPidReceiver;
|
||||
cCaActivationReceiver *caActivationReceiver;
|
||||
int slotIndex;
|
||||
int slotNumber;
|
||||
cCiTransportConnection *tc[MAX_CONNECTIONS_PER_CAM_SLOT + 1]; // connection numbering starts with 1
|
||||
@ -182,6 +184,23 @@ public:
|
||||
virtual bool Reset(void);
|
||||
///< Resets the CAM in this slot.
|
||||
///< Returns true if the operation was successful.
|
||||
virtual bool CanActivate(void);
|
||||
///< Returns true if there is a CAM in this slot that can be put into
|
||||
///< activation mode.
|
||||
virtual void StartActivation(void);
|
||||
///< Puts the CAM in this slot into a mode where an inserted smart card
|
||||
///< can be activated. The default action is to make IsActivating() return
|
||||
///< true, which causes the device this CAM slot is attached to to never
|
||||
///< automatically detach any receivers with negative priority if the
|
||||
///< PIDs they want to receive are not decrypted by the CAM.
|
||||
///< StartActivation() must be called *after* the CAM slot has been assigned
|
||||
///< to a device. The CAM slot will stay in activation mode until the CAM
|
||||
///< begins to decrypt, a call to CancelActivation() is made, or the device
|
||||
///< is needed for a recording.
|
||||
virtual void CancelActivation(void);
|
||||
///< Cancels a previously started activation (if any).
|
||||
virtual bool IsActivating(void);
|
||||
///< Returns true if this CAM slot is currently activating a smart card.
|
||||
virtual eModuleStatus ModuleStatus(void);
|
||||
///< Returns the status of the CAM in this slot.
|
||||
virtual const char *GetCamName(void);
|
||||
@ -201,7 +220,7 @@ public:
|
||||
virtual cCiEnquiry *GetEnquiry(void);
|
||||
///< Gets a pending enquiry, or NULL if there is no enquiry.
|
||||
int Priority(void);
|
||||
///< Returns the priority if the device this slot is currently assigned
|
||||
///< Returns the priority of the device this slot is currently assigned
|
||||
///< to, or IDLEPRIORITY if it is not assigned to any device.
|
||||
virtual bool ProvidesCa(const int *CaSystemIds);
|
||||
///< Returns true if the CAM in this slot provides one of the given
|
||||
|
17
config.c
17
config.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: config.c 3.3 2015/01/12 14:32:17 kls Exp $
|
||||
* $Id: config.c 3.6 2015/01/29 09:01:30 kls Exp $
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
@ -470,6 +470,11 @@ cSetup::cSetup(void)
|
||||
ShowRemainingTime = 0;
|
||||
ProgressDisplayTime = 0;
|
||||
PauseOnMarkSet = 0;
|
||||
PauseOnMarkJump = 1;
|
||||
SkipEdited = 0;
|
||||
PauseAtLastMark = 0;
|
||||
BinarySkipInitial = 120;
|
||||
BinarySkipTimeout = 3;
|
||||
ResumeID = 0;
|
||||
CurrentChannel = -1;
|
||||
CurrentVolume = MAXVOLUME;
|
||||
@ -683,6 +688,11 @@ bool cSetup::Parse(const char *Name, const char *Value)
|
||||
else if (!strcasecmp(Name, "ShowRemainingTime")) ShowRemainingTime = atoi(Value);
|
||||
else if (!strcasecmp(Name, "ProgressDisplayTime")) ProgressDisplayTime= atoi(Value);
|
||||
else if (!strcasecmp(Name, "PauseOnMarkSet")) PauseOnMarkSet = atoi(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, "ResumeID")) ResumeID = atoi(Value);
|
||||
else if (!strcasecmp(Name, "CurrentChannel")) CurrentChannel = atoi(Value);
|
||||
else if (!strcasecmp(Name, "CurrentVolume")) CurrentVolume = atoi(Value);
|
||||
@ -800,6 +810,11 @@ bool cSetup::Save(void)
|
||||
Store("ShowRemainingTime", ShowRemainingTime);
|
||||
Store("ProgressDisplayTime",ProgressDisplayTime);
|
||||
Store("PauseOnMarkSet", PauseOnMarkSet);
|
||||
Store("PauseOnMarkJump", PauseOnMarkJump);
|
||||
Store("SkipEdited", SkipEdited);
|
||||
Store("PauseAtLastMark", PauseAtLastMark);
|
||||
Store("BinarySkipInitial", BinarySkipInitial);
|
||||
Store("BinarySkipTimeout", BinarySkipTimeout);
|
||||
Store("ResumeID", ResumeID);
|
||||
Store("CurrentChannel", CurrentChannel);
|
||||
Store("CurrentVolume", CurrentVolume);
|
||||
|
15
config.h
15
config.h
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: config.h 3.10 2015/01/12 14:32:17 kls Exp $
|
||||
* $Id: config.h 3.13 2015/01/27 10:50:11 kls Exp $
|
||||
*/
|
||||
|
||||
#ifndef __CONFIG_H
|
||||
@ -22,13 +22,13 @@
|
||||
|
||||
// VDR's own version number:
|
||||
|
||||
#define VDRVERSION "2.1.7"
|
||||
#define VDRVERSNUM 20107 // Version * 10000 + Major * 100 + Minor
|
||||
#define VDRVERSION "2.1.8"
|
||||
#define VDRVERSNUM 20108 // Version * 10000 + Major * 100 + Minor
|
||||
|
||||
// The plugin API's version number:
|
||||
|
||||
#define APIVERSION "2.1.7"
|
||||
#define APIVERSNUM 20107 // Version * 10000 + Major * 100 + Minor
|
||||
#define APIVERSION "2.1.8"
|
||||
#define APIVERSNUM 20108 // 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
|
||||
@ -333,6 +333,11 @@ public:
|
||||
int ShowRemainingTime;
|
||||
int ProgressDisplayTime;
|
||||
int PauseOnMarkSet;
|
||||
int PauseOnMarkJump;
|
||||
int SkipEdited;
|
||||
int PauseAtLastMark;
|
||||
int BinarySkipInitial;
|
||||
int BinarySkipTimeout;
|
||||
int ResumeID;
|
||||
int CurrentChannel;
|
||||
int CurrentVolume;
|
||||
|
16
device.c
16
device.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: device.c 3.19 2015/01/14 12:02:44 kls Exp $
|
||||
* $Id: device.c 3.20 2015/01/30 12:11:30 kls Exp $
|
||||
*/
|
||||
|
||||
#include "device.h"
|
||||
@ -756,7 +756,7 @@ eSetChannelResult cDevice::SetChannel(const cChannel *Channel, bool LiveView)
|
||||
|
||||
cDevice *Device = (LiveView && IsPrimaryDevice()) ? GetDevice(Channel, LIVEPRIORITY, true) : this;
|
||||
|
||||
bool NeedsTransferMode = Device != this;
|
||||
bool NeedsTransferMode = LiveView && Device != PrimaryDevice();
|
||||
// If the CAM slot wants the TS data, we need to switch to Transfer Mode:
|
||||
if (!NeedsTransferMode && LiveView && IsPrimaryDevice() && CamSlot() && CamSlot()->WantsTsData())
|
||||
NeedsTransferMode = true;
|
||||
@ -767,7 +767,7 @@ eSetChannelResult cDevice::SetChannel(const cChannel *Channel, bool LiveView)
|
||||
// use the card that actually can receive it and transfer data from there:
|
||||
|
||||
if (NeedsTransferMode) {
|
||||
if (Device && CanReplay()) {
|
||||
if (Device && PrimaryDevice()->CanReplay()) {
|
||||
if (Device->SetChannel(Channel, false) == scrOk) // calling SetChannel() directly, not SwitchChannel()!
|
||||
cControl::Launch(new cTransferControl(Device, Channel));
|
||||
else
|
||||
@ -1585,13 +1585,13 @@ void cDevice::Action(void)
|
||||
bool DetachReceivers = false;
|
||||
bool DescramblingOk = false;
|
||||
int CamSlotNumber = 0;
|
||||
cCamSlot *cs = NULL;
|
||||
if (startScrambleDetection) {
|
||||
cCamSlot *cs = CamSlot();
|
||||
cs = CamSlot();
|
||||
CamSlotNumber = cs ? cs->SlotNumber() : 0;
|
||||
if (CamSlotNumber) {
|
||||
bool Scrambled = b[3] & TS_SCRAMBLING_CONTROL;
|
||||
int t = time(NULL) - startScrambleDetection;
|
||||
if (Scrambled) {
|
||||
if (TsIsScrambled(b)) {
|
||||
if (t > TS_SCRAMBLING_TIMEOUT)
|
||||
DetachReceivers = true;
|
||||
}
|
||||
@ -1605,7 +1605,7 @@ void cDevice::Action(void)
|
||||
Lock();
|
||||
for (int i = 0; i < MAXRECEIVERS; i++) {
|
||||
if (receiver[i] && receiver[i]->WantsPid(Pid)) {
|
||||
if (DetachReceivers) {
|
||||
if (DetachReceivers && cs && (!cs->IsActivating() || receiver[i]->Priority() >= LIVEPRIORITY)) {
|
||||
dsyslog("detaching receiver - won't decrypt channel %s with CAM %d", *receiver[i]->ChannelID().ToString(), CamSlotNumber);
|
||||
ChannelCamRelations.SetChecked(receiver[i]->ChannelID(), CamSlotNumber);
|
||||
Detach(receiver[i]);
|
||||
@ -1704,7 +1704,7 @@ void cDevice::Detach(cReceiver *Receiver)
|
||||
if (camSlot) {
|
||||
if (Receiver->priority > MINPRIORITY) { // priority check to avoid an infinite loop with the CAM slot's caPidReceiver
|
||||
camSlot->StartDecrypting();
|
||||
if (!camSlot->IsDecrypting())
|
||||
if (!camSlot->IsDecrypting() && !camSlot->IsActivating())
|
||||
camSlot->Assign(NULL);
|
||||
}
|
||||
}
|
||||
|
58
diseqc.c
58
diseqc.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: diseqc.c 3.3 2013/12/28 11:33:08 kls Exp $
|
||||
* $Id: diseqc.c 3.4 2015/01/26 12:02:14 kls Exp $
|
||||
*/
|
||||
|
||||
#include "diseqc.h"
|
||||
@ -164,7 +164,7 @@ bool cScr::Parse(const char *s)
|
||||
bool result = false;
|
||||
int fields = sscanf(s, "%d %u %d", &channel, &userBand, &pin);
|
||||
if (fields == 2 || fields == 3) {
|
||||
if (channel >= 0 && channel < 8) {
|
||||
if (channel >= 0 && channel < 32) {
|
||||
result = true;
|
||||
if (fields == 3 && (pin < 0 || pin > 255)) {
|
||||
esyslog("Error: invalid SCR pin '%d'", pin);
|
||||
@ -255,26 +255,52 @@ bool cDiseqc::Parse(const char *s)
|
||||
|
||||
uint cDiseqc::SetScrFrequency(uint SatFrequency, const cScr *Scr, uint8_t *Codes) const
|
||||
{
|
||||
uint t = SatFrequency == 0 ? 0 : (SatFrequency + Scr->UserBand() + 2) / 4 - 350; // '+ 2' together with '/ 4' results in rounding!
|
||||
if (t < 1024 && Scr->Channel() >= 0 && Scr->Channel() < 8) {
|
||||
Codes[3] = t >> 8 | (t == 0 ? 0 : scrBank << 2) | Scr->Channel() << 5;
|
||||
Codes[4] = t;
|
||||
if (t)
|
||||
return (t + 350) * 4 - SatFrequency;
|
||||
if ((Codes[0] & 0xF0) == 0x70 ) { // EN50607 aka JESS
|
||||
uint t = SatFrequency == 0 ? 0 : (SatFrequency - 100);
|
||||
if (t < 2048 && Scr->Channel() >= 0 && Scr->Channel() < 32) {
|
||||
Codes[1] = t >> 8 | Scr->Channel() << 3;
|
||||
Codes[2] = t;
|
||||
Codes[3] = (t == 0 ? 0 : scrBank);
|
||||
if (t)
|
||||
return Scr->UserBand();
|
||||
}
|
||||
}
|
||||
else { // EN50494 aka Unicable
|
||||
uint t = SatFrequency == 0 ? 0 : (SatFrequency + Scr->UserBand() + 2) / 4 - 350; // '+ 2' together with '/ 4' results in rounding!
|
||||
if (t < 1024 && Scr->Channel() >= 0 && Scr->Channel() < 8) {
|
||||
Codes[3] = t >> 8 | (t == 0 ? 0 : scrBank << 2) | Scr->Channel() << 5;
|
||||
Codes[4] = t;
|
||||
if (t)
|
||||
return (t + 350) * 4 - SatFrequency;
|
||||
}
|
||||
}
|
||||
esyslog("ERROR: invalid SCR channel number %d or frequency %d", Scr->Channel(),SatFrequency);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int cDiseqc::SetScrPin(const cScr *Scr, uint8_t *Codes) const
|
||||
{
|
||||
if (Scr->Pin() >= 0 && Scr->Pin() <= 255) {
|
||||
Codes[2] = 0x5C;
|
||||
Codes[5] = Scr->Pin();
|
||||
return 6;
|
||||
if ((Codes[0] & 0xF0) == 0x70 ) { // EN50607 aka JESS
|
||||
if (Scr->Pin() >= 0 && Scr->Pin() <= 255) {
|
||||
Codes[0] = 0x71;
|
||||
Codes[4] = Scr->Pin();
|
||||
return 5;
|
||||
}
|
||||
else {
|
||||
Codes[0] = 0x70;
|
||||
return 4;
|
||||
}
|
||||
}
|
||||
else {
|
||||
Codes[2] = 0x5A;
|
||||
return 5;
|
||||
else { // EN50494 aka Unicable
|
||||
if (Scr->Pin() >= 0 && Scr->Pin() <= 255) {
|
||||
Codes[2] = 0x5C;
|
||||
Codes[5] = Scr->Pin();
|
||||
return 6;
|
||||
}
|
||||
else {
|
||||
Codes[2] = 0x5A;
|
||||
return 5;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -319,7 +345,7 @@ const char *cDiseqc::GetScrBank(const char *s) const
|
||||
char *p = NULL;
|
||||
errno = 0;
|
||||
int n = strtol(s, &p, 10);
|
||||
if (!errno && p != s && n >= 0 && n < 8) {
|
||||
if (!errno && p != s && n >= 0 && n < 256) {
|
||||
if (parsing) {
|
||||
if (scrBank < 0)
|
||||
scrBank = n;
|
||||
|
24
diseqc.conf
24
diseqc.conf
@ -82,7 +82,7 @@ S13.0E 99999 H 10600 t V W15 [E0 10 38 F7] W15 B W15 T
|
||||
# S19.2E 12110 V 11080 t v
|
||||
# S19.2E 99999 V 10720 t v
|
||||
#
|
||||
# SCR (Satellite Channel Routing):
|
||||
# SCR (Satellite Channel Routing) EN50494:
|
||||
#
|
||||
# S19.2E 11700 V 9750 t V W10 S0 [E0 10 5A 00 00] W10 v
|
||||
# S19.2E 99999 V 10600 t V W10 S1 [E0 10 5A 00 00] W10 v
|
||||
@ -94,6 +94,28 @@ S13.0E 99999 H 10600 t V W15 [E0 10 38 F7] W15 B W15 T
|
||||
# S13.0E 11700 H 9750 t V W10 S6 [E0 10 5A 00 00] W10 v
|
||||
# S13.0E 99999 H 10600 t V W10 S7 [E0 10 5A 00 00] W10 v
|
||||
#
|
||||
# SCR (Satellite Channel Routing) EN50607 "JESS":
|
||||
#
|
||||
# S19.2E 11700 V 9750 t V W10 S0 [70 00 00 00] W10 v
|
||||
# S19.2E 99999 V 10600 t V W10 S1 [70 00 00 00] W10 v
|
||||
# S19.2E 11700 H 9750 t V W10 S2 [70 00 00 00] W10 v
|
||||
# S19.2E 99999 H 10600 t V W10 S3 [70 00 00 00] W10 v
|
||||
#
|
||||
# S13.0E 11700 V 9750 t V W10 S4 [70 00 00 00] W10 v
|
||||
# S13.0E 99999 V 10600 t V W10 S5 [70 00 00 00] W10 v
|
||||
# S13.0E 11700 H 9750 t V W10 S6 [70 00 00 00] W10 v
|
||||
# S13.0E 99999 H 10600 t V W10 S7 [70 00 00 00] W10 v
|
||||
#
|
||||
# S23.0E 11700 V 9750 t V W10 S8 [70 00 00 00] W10 v
|
||||
# S23.0E 99999 V 10600 t V W10 S9 [70 00 00 00] W10 v
|
||||
# S23.0E 11700 H 9750 t V W10 S10 [70 00 00 00] W10 v
|
||||
# S23.0E 99999 H 10600 t V W10 S11 [70 00 00 00] W10 v
|
||||
#
|
||||
# S28.2E 11700 V 9750 t V W10 S12 [70 00 00 00] W10 v
|
||||
# S28.2E 99999 V 10600 t V W10 S13 [70 00 00 00] W10 v
|
||||
# S28.2E 11700 H 9750 t V W10 S14 [70 00 00 00] W10 v
|
||||
# S28.2E 99999 H 10600 t V W10 S15 [70 00 00 00] W10 v
|
||||
#
|
||||
# Positioner for steerable dish:
|
||||
#
|
||||
# S360E 11700 V 9750 t V W20 P W20 t v
|
||||
|
90
dvbplayer.c
90
dvbplayer.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: dvbplayer.c 3.1 2013/12/25 13:24:07 kls Exp $
|
||||
* $Id: dvbplayer.c 3.3 2015/02/01 10:45:41 kls Exp $
|
||||
*/
|
||||
|
||||
#include "dvbplayer.h"
|
||||
@ -211,6 +211,7 @@ private:
|
||||
cNonBlockingFileReader *nonBlockingFileReader;
|
||||
cRingBufferFrame *ringBuffer;
|
||||
cPtsIndex ptsIndex;
|
||||
cMarks marks;
|
||||
cFileName *fileName;
|
||||
cIndexFile *index;
|
||||
cUnbufferedFile *replayFile;
|
||||
@ -296,6 +297,8 @@ 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()
|
||||
@ -402,8 +405,19 @@ void cDvbPlayer::Action(void)
|
||||
int pc = 0;
|
||||
|
||||
readIndex = Resume();
|
||||
if (readIndex >= 0)
|
||||
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();
|
||||
uint16_t FileNumber;
|
||||
off_t FileOffset;
|
||||
if (index->Get(Index, &FileNumber, &FileOffset) && NextFile(FileNumber, FileOffset)) {
|
||||
isyslog("starting replay at first mark %d (%s)", Index, *IndexToHMSF(Index, true, framesPerSecond));
|
||||
readIndex = Index;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
nonBlockingFileReader = new cNonBlockingFileReader;
|
||||
int Length = 0;
|
||||
@ -413,6 +427,8 @@ void cDvbPlayer::Action(void)
|
||||
uint32_t LastStc = 0;
|
||||
int LastReadIFrame = -1;
|
||||
int SwitchToPlayFrame = 0;
|
||||
bool CutIn = false;
|
||||
bool AtLastMark = false;
|
||||
|
||||
if (pauseLive)
|
||||
Goto(0, true);
|
||||
@ -431,7 +447,7 @@ void cDvbPlayer::Action(void)
|
||||
|
||||
// Read the next frame from the file:
|
||||
|
||||
if (playMode != pmStill && playMode != pmPause) {
|
||||
if (playMode != pmStill && playMode != pmPause && !AtLastMark) {
|
||||
if (!readFrame && (replayFile || readIndex >= 0)) {
|
||||
if (!nonBlockingFileReader->Reading()) {
|
||||
if (!SwitchToPlayFrame && (playMode == pmFast || (playMode == pmSlow && playDir == pdBackward))) {
|
||||
@ -468,8 +484,30 @@ void cDvbPlayer::Action(void)
|
||||
else if (index) {
|
||||
uint16_t FileNumber;
|
||||
off_t FileOffset;
|
||||
if (index->Get(readIndex + 1, &FileNumber, &FileOffset, &readIndependent, &Length) && NextFile(FileNumber, 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 (m && (m->Index() & 0x01) != 0) { // we're at an end mark
|
||||
m = marks.GetNextBegin(m);
|
||||
int Index = -1;
|
||||
if (m)
|
||||
Index = m->Position(); // skip to next begin mark
|
||||
else if (Setup.PauseAtLastMark)
|
||||
AtLastMark = true; // triggers going into Pause mode
|
||||
else if (index->IsStillRecording())
|
||||
Index = index->GetNextIFrame(index->Last() - int(round(MAXSTUCKATEOF * framesPerSecond)), false); // skip, but stay off end of live-recordings
|
||||
else
|
||||
AtLastMark = true; // triggers stopping replay
|
||||
if (Setup.SkipEdited && Index > readIndex) {
|
||||
isyslog("skipping from %d (%s) to %d (%s)", readIndex - 1, *IndexToHMSF(readIndex - 1, true, framesPerSecond), Index, *IndexToHMSF(Index, true, framesPerSecond));
|
||||
readIndex = Index;
|
||||
CutIn = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
eof = true;
|
||||
}
|
||||
@ -512,6 +550,11 @@ void cDvbPlayer::Action(void)
|
||||
// Store the frame in the buffer:
|
||||
|
||||
if (readFrame) {
|
||||
if (CutIn) {
|
||||
if (isPesRecording)
|
||||
cRemux::SetBrokenLink(readFrame->Data(), readFrame->Count());
|
||||
CutIn = false;
|
||||
}
|
||||
if (ringBuffer->Put(readFrame))
|
||||
readFrame = NULL;
|
||||
else
|
||||
@ -578,8 +621,17 @@ void cDvbPlayer::Action(void)
|
||||
p = NULL;
|
||||
}
|
||||
}
|
||||
else
|
||||
else {
|
||||
if (AtLastMark) {
|
||||
if (Setup.PauseAtLastMark) {
|
||||
playMode = pmPause;
|
||||
AtLastMark = false;
|
||||
}
|
||||
else
|
||||
eof = true;
|
||||
}
|
||||
Sleep = true;
|
||||
}
|
||||
|
||||
// Handle hitting begin/end of recording:
|
||||
|
||||
@ -800,18 +852,26 @@ void cDvbPlayer::Goto(int Index, bool Still)
|
||||
off_t FileOffset;
|
||||
int Length;
|
||||
Index = index->GetNextIFrame(Index, false, &FileNumber, &FileOffset, &Length);
|
||||
if (Index >= 0 && NextFile(FileNumber, FileOffset) && Still) {
|
||||
uchar b[MAXFRAMESIZE];
|
||||
int r = ReadFrame(replayFile, b, Length, sizeof(b));
|
||||
if (r > 0) {
|
||||
if (playMode == pmPause)
|
||||
DevicePlay();
|
||||
DeviceStillPicture(b, r);
|
||||
ptsIndex.Put(isPesRecording ? PesGetPts(b) : TsGetPts(b, r), Index);
|
||||
if (Index >= 0) {
|
||||
if (Still) {
|
||||
if (NextFile(FileNumber, FileOffset)) {
|
||||
uchar b[MAXFRAMESIZE];
|
||||
int r = ReadFrame(replayFile, b, Length, sizeof(b));
|
||||
if (r > 0) {
|
||||
if (playMode == pmPause)
|
||||
DevicePlay();
|
||||
DeviceStillPicture(b, r);
|
||||
ptsIndex.Put(isPesRecording ? PesGetPts(b) : TsGetPts(b, r), Index);
|
||||
}
|
||||
playMode = pmStill;
|
||||
readIndex = Index;
|
||||
}
|
||||
}
|
||||
else {
|
||||
readIndex = Index - 1; // Action() will first increment it!
|
||||
Play();
|
||||
}
|
||||
playMode = pmStill;
|
||||
}
|
||||
readIndex = Index;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: dvbplayer.h 3.0 2012/02/19 11:40:36 kls Exp $
|
||||
* $Id: dvbplayer.h 3.1 2015/02/01 11:20:54 kls Exp $
|
||||
*/
|
||||
|
||||
#ifndef __DVBPLAYER_H
|
||||
@ -56,7 +56,7 @@ public:
|
||||
// and >0 if this is multi speed mode.
|
||||
void Goto(int Index, bool Still = false);
|
||||
// Positions to the given index and displays that frame as a still picture
|
||||
// if Still is true.
|
||||
// if Still is true. If Still is false, Play() will be called.
|
||||
};
|
||||
|
||||
#endif //__DVBPLAYER_H
|
||||
|
@ -7,7 +7,7 @@
|
||||
* Original author: Marco Schluessler <marco@lordzodiac.de>
|
||||
* With some input from the "subtitles plugin" by Pekka Virtanen <pekka.virtanen@sci.fi>
|
||||
*
|
||||
* $Id: dvbsubtitle.c 3.9 2015/01/14 11:31:09 kls Exp $
|
||||
* $Id: dvbsubtitle.c 3.10 2015/01/20 14:53:57 kls Exp $
|
||||
*/
|
||||
|
||||
#include "dvbsubtitle.h"
|
||||
@ -1042,7 +1042,7 @@ void cDvbSubtitlePage::Parse(int64_t Pts, cBitStream &bs)
|
||||
default: dbgpages("unknown page state: %d<br>\n", pageState);
|
||||
}
|
||||
bs.SkipBits(2); // reserved
|
||||
dbgpages("<hr>\n<b>page</b> id %d version %d pts %"PRId64" timeout %d state %d<br>\n", pageId, pageVersionNumber, pts, pageTimeout, pageState);
|
||||
dbgpages("<hr>\n<b>page</b> id %d version %d pts %" PRId64 " timeout %d state %d<br>\n", pageId, pageVersionNumber, pts, pageTimeout, pageState);
|
||||
regionRefs.Clear();
|
||||
while (!bs.IsEOF())
|
||||
regionRefs.Add(new cSubtitleRegionRef(bs));
|
||||
@ -1073,7 +1073,7 @@ void cDvbSubtitlePage::ParsePgs(int64_t Pts, cBitStream &bs)
|
||||
default: dbgpages("unknown page state: %d<br>\n", pageState);
|
||||
}
|
||||
bs.SkipBits(6);
|
||||
dbgpages("<hr>\n<b>page</b> id %d version %d pts %"PRId64" timeout %d state %d<br>\n", pageId, pageVersionNumber, pts, pageTimeout, pageState);
|
||||
dbgpages("<hr>\n<b>page</b> id %d version %d pts %" PRId64 " timeout %d state %d<br>\n", pageId, pageVersionNumber, pts, pageTimeout, pageState);
|
||||
regionRefs.Clear();
|
||||
pending = true;
|
||||
}
|
||||
@ -1384,7 +1384,7 @@ int cDvbSubtitleConverter::ConvertFragments(const uchar *Data, int Length)
|
||||
if (Length > PayloadOffset + SubstreamHeaderLength) {
|
||||
int64_t pts = PesHasPts(Data) ? PesGetPts(Data) : -1;
|
||||
if (pts >= 0)
|
||||
dbgconverter("converter PTS: %"PRId64"<br>\n", pts);
|
||||
dbgconverter("converter PTS: %" PRId64 "<br>\n", pts);
|
||||
const uchar *data = Data + PayloadOffset + SubstreamHeaderLength; // skip substream header
|
||||
int length = Length - PayloadOffset - SubstreamHeaderLength; // skip substream header
|
||||
if (ResetSubtitleAssembler)
|
||||
@ -1420,7 +1420,7 @@ int cDvbSubtitleConverter::Convert(const uchar *Data, int Length)
|
||||
if (Length > PayloadOffset) {
|
||||
int64_t pts = PesHasPts(Data) ? PesGetPts(Data) : -1;
|
||||
if (pts >= 0)
|
||||
dbgconverter("converter PTS: %"PRId64"<br>\n", pts);
|
||||
dbgconverter("converter PTS: %" PRId64 "<br>\n", pts);
|
||||
const uchar *data = Data + PayloadOffset;
|
||||
int length = Length - PayloadOffset;
|
||||
if (length > 0) {
|
||||
@ -1488,7 +1488,7 @@ void cDvbSubtitleConverter::Action(void)
|
||||
dbgoutput("showing bitmap #%d of %d<br>\n", sb->Index() + 1, bitmaps->Count());
|
||||
sb->Draw(osd);
|
||||
Timeout.Set(sb->Timeout() * 1000);
|
||||
dbgconverter("PTS: %"PRId64" STC: %"PRId64" (%"PRId64") timeout: %d<br>\n", sb->Pts(), STC, Delta, sb->Timeout());
|
||||
dbgconverter("PTS: %" PRId64 " STC: %" PRId64 " (%" PRId64 ") timeout: %d<br>\n", sb->Pts(), STC, Delta, sb->Timeout());
|
||||
}
|
||||
}
|
||||
else
|
||||
|
4
keys.h
4
keys.h
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: keys.h 3.0 2012/12/04 12:51:25 kls Exp $
|
||||
* $Id: keys.h 3.1 2015/01/27 10:45:18 kls Exp $
|
||||
*/
|
||||
|
||||
#ifndef __KEYS_H
|
||||
@ -65,6 +65,8 @@ enum eKeys { // "Up" and "Down" must be the first two keys!
|
||||
|
||||
// This is in preparation for having more key codes:
|
||||
#define kMarkToggle k0
|
||||
#define kMarkSkipBack k1
|
||||
#define kMarkSkipForward k3
|
||||
#define kMarkMoveBack k4
|
||||
#define kMarkMoveForward k6
|
||||
#define kMarkJumpBack k7
|
||||
|
158
menu.c
158
menu.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: menu.c 3.28 2015/01/15 11:14:21 kls Exp $
|
||||
* $Id: menu.c 3.35 2015/02/01 10:42:11 kls Exp $
|
||||
*/
|
||||
|
||||
#include "menu.h"
|
||||
@ -3419,7 +3419,7 @@ cMenuSetupCAMItem::cMenuSetupCAMItem(cCamSlot *CamSlot)
|
||||
|
||||
bool cMenuSetupCAMItem::Changed(void)
|
||||
{
|
||||
char buffer[32];
|
||||
const char *Activating = "";
|
||||
const char *CamName = camSlot->GetCamName();
|
||||
if (!CamName) {
|
||||
switch (camSlot->ModuleStatus()) {
|
||||
@ -3429,7 +3429,10 @@ bool cMenuSetupCAMItem::Changed(void)
|
||||
default: CamName = "-"; break;
|
||||
}
|
||||
}
|
||||
snprintf(buffer, sizeof(buffer), " %d %s", camSlot->SlotNumber(), CamName);
|
||||
else if (camSlot->IsActivating())
|
||||
// TRANSLATORS: note the leading blank!
|
||||
Activating = tr(" (activating)");
|
||||
cString buffer = cString::sprintf(" %d %s%s", camSlot->SlotNumber(), CamName, Activating);
|
||||
if (strcmp(buffer, Text()) != 0) {
|
||||
SetText(buffer);
|
||||
return true;
|
||||
@ -3439,8 +3442,11 @@ bool cMenuSetupCAMItem::Changed(void)
|
||||
|
||||
class cMenuSetupCAM : public cMenuSetupBase {
|
||||
private:
|
||||
const char *activationHelp;
|
||||
eOSState Menu(void);
|
||||
eOSState Reset(void);
|
||||
eOSState Activate(void);
|
||||
void SetHelpKeys(void);
|
||||
public:
|
||||
cMenuSetupCAM(void);
|
||||
virtual eOSState ProcessKey(eKeys Key);
|
||||
@ -3448,13 +3454,33 @@ public:
|
||||
|
||||
cMenuSetupCAM::cMenuSetupCAM(void)
|
||||
{
|
||||
activationHelp = NULL;
|
||||
SetMenuCategory(mcSetupCam);
|
||||
SetSection(tr("CAM"));
|
||||
SetCols(15);
|
||||
SetHasHotkeys();
|
||||
for (cCamSlot *CamSlot = CamSlots.First(); CamSlot; CamSlot = CamSlots.Next(CamSlot))
|
||||
Add(new cMenuSetupCAMItem(CamSlot));
|
||||
SetHelp(tr("Button$Menu"), tr("Button$Reset"));
|
||||
SetHelpKeys();
|
||||
}
|
||||
|
||||
void cMenuSetupCAM::SetHelpKeys(void)
|
||||
{
|
||||
if (HasSubMenu())
|
||||
return;
|
||||
cMenuSetupCAMItem *item = (cMenuSetupCAMItem *)Get(Current());
|
||||
const char *NewActivationHelp = "";
|
||||
if (item) {
|
||||
cCamSlot *CamSlot = item->CamSlot();
|
||||
if (CamSlot->IsActivating())
|
||||
NewActivationHelp = tr("Button$Cancel activation");
|
||||
else if (CamSlot->CanActivate())
|
||||
NewActivationHelp = tr("Button$Activate");
|
||||
}
|
||||
if (NewActivationHelp != activationHelp) {
|
||||
activationHelp = NewActivationHelp;
|
||||
SetHelp(tr("Button$Menu"), tr("Button$Reset"), activationHelp);
|
||||
}
|
||||
}
|
||||
|
||||
eOSState cMenuSetupCAM::Menu(void)
|
||||
@ -3484,6 +3510,43 @@ eOSState cMenuSetupCAM::Menu(void)
|
||||
return osContinue;
|
||||
}
|
||||
|
||||
eOSState cMenuSetupCAM::Activate(void)
|
||||
{
|
||||
cMenuSetupCAMItem *item = (cMenuSetupCAMItem *)Get(Current());
|
||||
if (item) {
|
||||
cCamSlot *CamSlot = item->CamSlot();
|
||||
if (CamSlot->IsActivating())
|
||||
CamSlot->CancelActivation();
|
||||
else if (CamSlot->CanActivate()) {
|
||||
if (CamSlot->Priority() < LIVEPRIORITY) { // don't interrupt recordings
|
||||
if (cChannel *Channel = Channels.GetByNumber(cDevice::CurrentChannel())) {
|
||||
for (int i = 0; i < cDevice::NumDevices(); i++) {
|
||||
if (cDevice *Device = cDevice::GetDevice(i)) {
|
||||
if (Device->ProvidesChannel(Channel)) {
|
||||
if (Device->Priority() < LIVEPRIORITY) { // don't interrupt recordings
|
||||
if (CamSlot->CanActivate()) {
|
||||
if (CamSlot->Assign(Device, true)) { // query
|
||||
cControl::Shutdown(); // must end transfer mode before assigning CAM, otherwise it might be unassigned again
|
||||
if (CamSlot->Assign(Device)) {
|
||||
if (Device->SwitchChannel(Channel, true)) {
|
||||
CamSlot->StartActivation();
|
||||
return osContinue;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Skins.Message(mtError, tr("Can't activate CAM!"));
|
||||
}
|
||||
}
|
||||
return osContinue;
|
||||
}
|
||||
|
||||
eOSState cMenuSetupCAM::Reset(void)
|
||||
{
|
||||
cMenuSetupCAMItem *item = (cMenuSetupCAMItem *)Get(Current());
|
||||
@ -3505,12 +3568,14 @@ eOSState cMenuSetupCAM::ProcessKey(eKeys Key)
|
||||
case kOk:
|
||||
case kRed: return Menu();
|
||||
case kGreen: state = Reset(); break;
|
||||
case kYellow: state = Activate(); break;
|
||||
default: break;
|
||||
}
|
||||
for (cMenuSetupCAMItem *ci = (cMenuSetupCAMItem *)First(); ci; ci = (cMenuSetupCAMItem *)ci->Next()) {
|
||||
if (ci->Changed())
|
||||
DisplayItem(ci);
|
||||
}
|
||||
SetHelpKeys();
|
||||
}
|
||||
return state;
|
||||
}
|
||||
@ -3571,6 +3636,11 @@ cMenuSetupReplay::cMenuSetupReplay(void)
|
||||
Add(new cMenuEditBoolItem(tr("Setup.Replay$Show remaining time"), &data.ShowRemainingTime));
|
||||
Add(new cMenuEditIntItem( tr("Setup.Replay$Progress display time (s)"), &data.ProgressDisplayTime, 0, 60));
|
||||
Add(new cMenuEditBoolItem(tr("Setup.Replay$Pause replay when setting mark"), &data.PauseOnMarkSet));
|
||||
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$Resume ID"), &data.ResumeID, 0, 99));
|
||||
}
|
||||
|
||||
@ -4910,6 +4980,39 @@ bool cRecordControls::StateChanged(int &State)
|
||||
return Result;
|
||||
}
|
||||
|
||||
// --- cBinarySkipper --------------------------------------------------------
|
||||
|
||||
cBinarySkipper::cBinarySkipper(void)
|
||||
{
|
||||
initialValue = NULL;
|
||||
currentValue = 0;
|
||||
framesPerSecond = 0;
|
||||
lastKey = kNone;
|
||||
}
|
||||
|
||||
void cBinarySkipper::Initialize(int *InitialValue, double FramesPerSecond)
|
||||
{
|
||||
initialValue = InitialValue;
|
||||
framesPerSecond = FramesPerSecond;
|
||||
currentValue = 0;
|
||||
}
|
||||
|
||||
int cBinarySkipper::GetValue(eKeys Key)
|
||||
{
|
||||
if (!initialValue)
|
||||
return 0;
|
||||
if (timeout.TimedOut()) {
|
||||
currentValue = int(round(*initialValue * framesPerSecond));
|
||||
lastKey = Key;
|
||||
}
|
||||
else if (Key != lastKey) {
|
||||
currentValue /= 2;
|
||||
lastKey = kNone; // once the direction has changed, every further call halves the value
|
||||
}
|
||||
timeout.Set(Setup.BinarySkipTimeout * 1000);
|
||||
return max(currentValue, 1);
|
||||
}
|
||||
|
||||
// --- cReplayControl --------------------------------------------------------
|
||||
|
||||
cReplayControl *cReplayControl::currentReplayControl = NULL;
|
||||
@ -4931,6 +5034,7 @@ 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());
|
||||
SetTrackDescriptions(false);
|
||||
if (Setup.ProgressDisplayTime)
|
||||
ShowTimed(Setup.ProgressDisplayTime);
|
||||
@ -5158,8 +5262,6 @@ void cReplayControl::TimeSearchProcess(eKeys Key)
|
||||
Seconds = min(Total - STAY_SECONDS_OFF_END, Seconds);
|
||||
bool Still = Key == kDown || Key == kPause || Key == kOk;
|
||||
Goto(SecondsToFrames(Seconds, FramesPerSecond()), Still);
|
||||
if (!Still)
|
||||
Play();
|
||||
}
|
||||
timeSearchActive = false;
|
||||
break;
|
||||
@ -5223,6 +5325,14 @@ void cReplayControl::MarkJump(bool Forward)
|
||||
if (GetIndex(Current, Total)) {
|
||||
if (marks.Count()) {
|
||||
if (cMark *m = Forward ? marks.GetNext(Current) : marks.GetPrev(Current)) {
|
||||
if (!Setup.PauseOnMarkJump) {
|
||||
bool Playing, Fwd;
|
||||
int Speed;
|
||||
if (GetReplayMode(Playing, Fwd, Speed) && Playing && Forward && m->Position() < Total - SecondsToFrames(3, FramesPerSecond())) {
|
||||
Goto(m->Position());
|
||||
return;
|
||||
}
|
||||
}
|
||||
Goto(m->Position(), true);
|
||||
displayFrames = true;
|
||||
return;
|
||||
@ -5234,26 +5344,40 @@ void cReplayControl::MarkJump(bool Forward)
|
||||
}
|
||||
}
|
||||
|
||||
void cReplayControl::MarkMove(bool Forward)
|
||||
void cReplayControl::MarkMove(int Frames, bool MarkRequired)
|
||||
{
|
||||
int Current, Total;
|
||||
if (GetIndex(Current, Total)) {
|
||||
if (cMark *m = marks.Get(Current)) {
|
||||
bool Play, Forward;
|
||||
int Speed;
|
||||
GetReplayMode(Play, Forward, Speed);
|
||||
cMark *m = marks.Get(Current);
|
||||
if (!Play && m) {
|
||||
displayFrames = true;
|
||||
int p = SkipFrames(Forward ? 1 : -1);
|
||||
cMark *m2;
|
||||
if (Forward) {
|
||||
if (Frames > 0) {
|
||||
// Handle marks at the same offset:
|
||||
while ((m2 = marks.Next(m)) != NULL && m2->Position() == m->Position())
|
||||
m = m2;
|
||||
// Don't skip the next mark:
|
||||
if ((m2 = marks.Next(m)) != NULL)
|
||||
Frames = min(Frames, m2->Position() - m->Position() - 1);
|
||||
}
|
||||
else {
|
||||
// Handle marks at the same offset:
|
||||
while ((m2 = marks.Prev(m)) != NULL && m2->Position() == m->Position())
|
||||
m = m2;
|
||||
// Don't skip the next mark:
|
||||
if ((m2 = marks.Prev(m)) != NULL)
|
||||
Frames = -min(-Frames, m->Position() - m2->Position() - 1);
|
||||
}
|
||||
int p = SkipFrames(Frames);
|
||||
m->SetPosition(p);
|
||||
Goto(m->Position(), true);
|
||||
marksModified = true;
|
||||
}
|
||||
else if (!MarkRequired)
|
||||
Goto(SkipFrames(Frames), !Play);
|
||||
}
|
||||
}
|
||||
|
||||
@ -5287,12 +5411,10 @@ void cReplayControl::EditTest(void)
|
||||
if (!m)
|
||||
m = marks.GetNext(Current);
|
||||
if (m) {
|
||||
if ((m->Index() & 0x01) != 0)
|
||||
if ((m->Index() & 0x01) != 0 && !Setup.SkipEdited) // when skipping edited parts we also need to jump to end marks
|
||||
m = marks.Next(m);
|
||||
if (m) {
|
||||
if (m)
|
||||
Goto(m->Position() - SecondsToFrames(3, FramesPerSecond()));
|
||||
Play();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -5384,9 +5506,13 @@ eOSState cReplayControl::ProcessKey(eKeys Key)
|
||||
case kMarkJumpForward|k_Repeat:
|
||||
case kMarkJumpForward: MarkJump(true); break;
|
||||
case kMarkMoveBack|k_Repeat:
|
||||
case kMarkMoveBack: MarkMove(false); break;
|
||||
case kMarkMoveBack: MarkMove(-1, true); break;
|
||||
case kMarkMoveForward|k_Repeat:
|
||||
case kMarkMoveForward: MarkMove(true); break;
|
||||
case kMarkMoveForward: MarkMove(+1, true); break;
|
||||
case kMarkSkipBack|k_Repeat:
|
||||
case kMarkSkipBack: MarkMove(-binarySkipper.GetValue(RAWKEY(Key)), false); break;
|
||||
case kMarkSkipForward|k_Repeat:
|
||||
case kMarkSkipForward: MarkMove(+binarySkipper.GetValue(RAWKEY(Key)), false); break;
|
||||
case kEditCut: EditCut(); break;
|
||||
case kEditTest: EditTest(); break;
|
||||
default: {
|
||||
|
18
menu.h
18
menu.h
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: menu.h 3.6 2015/01/15 11:12:57 kls Exp $
|
||||
* $Id: menu.h 3.7 2015/01/27 11:38:20 kls Exp $
|
||||
*/
|
||||
|
||||
#ifndef __MENU_H
|
||||
@ -270,9 +270,23 @@ public:
|
||||
static bool StateChanged(int &State);
|
||||
};
|
||||
|
||||
class cBinarySkipper {
|
||||
private:
|
||||
int *initialValue;
|
||||
int currentValue;
|
||||
double framesPerSecond;
|
||||
eKeys lastKey;
|
||||
cTimeMs timeout;
|
||||
public:
|
||||
cBinarySkipper(void);
|
||||
void Initialize(int *InitialValue, double FramesPerSecond);
|
||||
int GetValue(eKeys Key);
|
||||
};
|
||||
|
||||
class cReplayControl : public cDvbPlayerControl {
|
||||
private:
|
||||
cSkinDisplayReplay *displayReplay;
|
||||
cBinarySkipper binarySkipper;
|
||||
cMarks marks;
|
||||
bool marksModified;
|
||||
bool visible, modeOnly, shown, displayFrames;
|
||||
@ -292,7 +306,7 @@ private:
|
||||
bool ShowProgress(bool Initial);
|
||||
void MarkToggle(void);
|
||||
void MarkJump(bool Forward);
|
||||
void MarkMove(bool Forward);
|
||||
void MarkMove(int Frames, bool MarkRequired);
|
||||
void EditCut(void);
|
||||
void EditTest(void);
|
||||
public:
|
||||
|
36
nit.c
36
nit.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: nit.c 3.3 2014/03/16 10:38:31 kls Exp $
|
||||
* $Id: nit.c 3.4 2015/02/01 13:46:00 kls Exp $
|
||||
*/
|
||||
|
||||
#include "nit.h"
|
||||
@ -357,6 +357,40 @@ 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
default: ;
|
||||
}
|
||||
delete d;
|
||||
|
33
po/ar.po
33
po/ar.po
@ -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-12 15:40+0100\n"
|
||||
"POT-Creation-Date: 2015-01-30 13:14+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"
|
||||
@ -23,6 +23,9 @@ msgstr ""
|
||||
msgid "*** Invalid Channel ***"
|
||||
msgstr "*** قناة خاطئة ***"
|
||||
|
||||
msgid "CAM activated!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Channel not available!"
|
||||
msgstr "القناة غير متاحة"
|
||||
|
||||
@ -1112,9 +1115,19 @@ msgstr "الكامة موجودة"
|
||||
msgid "CAM ready"
|
||||
msgstr "الكامة جاهزة"
|
||||
|
||||
#. TRANSLATORS: note the leading blank!
|
||||
msgid " (activating)"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM"
|
||||
msgstr "الكامة "
|
||||
|
||||
msgid "Button$Cancel activation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Activate"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Menu"
|
||||
msgstr "القائمة"
|
||||
|
||||
@ -1127,6 +1140,9 @@ msgstr "فتح قائمة الكامة"
|
||||
msgid "Can't open CAM menu!"
|
||||
msgstr "تعذر فتح قائمة الكامة"
|
||||
|
||||
msgid "Can't activate CAM!"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM is in use - really reset?"
|
||||
msgstr "الكامة مستخدمة الان هل تريد اعادة تشغيلها"
|
||||
|
||||
@ -1220,6 +1236,21 @@ msgstr "Progress display time (s)"
|
||||
msgid "Setup.Replay$Pause replay when setting mark"
|
||||
msgstr "Pause replay when setting mark"
|
||||
|
||||
msgid "Setup.Replay$Pause replay when jumping to a mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Skip edited parts"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Pause replay at last mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip initial value (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip timeout (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Resume ID"
|
||||
msgstr "رقم المواصلة"
|
||||
|
||||
|
33
po/ca_ES.po
33
po/ca_ES.po
@ -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-12 15:40+0100\n"
|
||||
"POT-Creation-Date: 2015-01-30 13:14+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"
|
||||
@ -22,6 +22,9 @@ msgstr ""
|
||||
msgid "*** Invalid Channel ***"
|
||||
msgstr "*** Canal incorrecte ***"
|
||||
|
||||
msgid "CAM activated!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Channel not available!"
|
||||
msgstr "Canal no disponible!"
|
||||
|
||||
@ -1111,9 +1114,19 @@ msgstr "CAM present"
|
||||
msgid "CAM ready"
|
||||
msgstr "CAM preparat"
|
||||
|
||||
#. TRANSLATORS: note the leading blank!
|
||||
msgid " (activating)"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM"
|
||||
msgstr "CAM"
|
||||
|
||||
msgid "Button$Cancel activation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Activate"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Menu"
|
||||
msgstr "Menú"
|
||||
|
||||
@ -1126,6 +1139,9 @@ msgstr "Obrint menu CAM..."
|
||||
msgid "Can't open CAM menu!"
|
||||
msgstr "No puc obrir el menú de la CAM!"
|
||||
|
||||
msgid "Can't activate CAM!"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM is in use - really reset?"
|
||||
msgstr "CAM en ús - reiniciar?"
|
||||
|
||||
@ -1219,6 +1235,21 @@ msgstr "Visualitzaci
|
||||
msgid "Setup.Replay$Pause replay when setting mark"
|
||||
msgstr "Pausar reproducció en establir marca"
|
||||
|
||||
msgid "Setup.Replay$Pause replay when jumping to a mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Skip edited parts"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Pause replay at last mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip initial value (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip timeout (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Resume ID"
|
||||
msgstr "ID de Continuar"
|
||||
|
||||
|
33
po/cs_CZ.po
33
po/cs_CZ.po
@ -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-12 15:40+0100\n"
|
||||
"POT-Creation-Date: 2015-01-30 13:14+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"
|
||||
@ -22,6 +22,9 @@ msgstr ""
|
||||
msgid "*** Invalid Channel ***"
|
||||
msgstr "*** Neplatný kanál ***"
|
||||
|
||||
msgid "CAM activated!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Channel not available!"
|
||||
msgstr "Kanál není dostupný!"
|
||||
|
||||
@ -1111,9 +1114,19 @@ msgstr "CAM přítomen"
|
||||
msgid "CAM ready"
|
||||
msgstr "CAM připraven"
|
||||
|
||||
#. TRANSLATORS: note the leading blank!
|
||||
msgid " (activating)"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM"
|
||||
msgstr "CAM"
|
||||
|
||||
msgid "Button$Cancel activation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Activate"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Menu"
|
||||
msgstr "Menu"
|
||||
|
||||
@ -1126,6 +1139,9 @@ msgstr "Otevírá se menu CAM..."
|
||||
msgid "Can't open CAM menu!"
|
||||
msgstr "Menu CAM není dostupné"
|
||||
|
||||
msgid "Can't activate CAM!"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM is in use - really reset?"
|
||||
msgstr "CAM se používá - opravdu restartovat?"
|
||||
|
||||
@ -1219,6 +1235,21 @@ msgstr "Čas zobrazení ukazatele průběhu (s)"
|
||||
msgid "Setup.Replay$Pause replay when setting mark"
|
||||
msgstr "Pozastavit přehrávání při nastavování značky"
|
||||
|
||||
msgid "Setup.Replay$Pause replay when jumping to a mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Skip edited parts"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Pause replay at last mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip initial value (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip timeout (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Resume ID"
|
||||
msgstr "ID obnovení"
|
||||
|
||||
|
33
po/da_DK.po
33
po/da_DK.po
@ -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-12 15:40+0100\n"
|
||||
"POT-Creation-Date: 2015-01-30 13:14+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"
|
||||
@ -19,6 +19,9 @@ msgstr ""
|
||||
msgid "*** Invalid Channel ***"
|
||||
msgstr "*** Ugyldig kanal! ***"
|
||||
|
||||
msgid "CAM activated!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Channel not available!"
|
||||
msgstr "Kanal er ikke tilgængelig!"
|
||||
|
||||
@ -1108,9 +1111,19 @@ msgstr "CAM til stede"
|
||||
msgid "CAM ready"
|
||||
msgstr "CAM klar"
|
||||
|
||||
#. TRANSLATORS: note the leading blank!
|
||||
msgid " (activating)"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM"
|
||||
msgstr "CAM"
|
||||
|
||||
msgid "Button$Cancel activation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Activate"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Menu"
|
||||
msgstr "Menu"
|
||||
|
||||
@ -1123,6 +1136,9 @@ msgstr "
|
||||
msgid "Can't open CAM menu!"
|
||||
msgstr "Kan ikke åbne CAM menuen!"
|
||||
|
||||
msgid "Can't activate CAM!"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM is in use - really reset?"
|
||||
msgstr "CAM er i brug - virkelig nulstille?"
|
||||
|
||||
@ -1216,6 +1232,21 @@ msgstr ""
|
||||
msgid "Setup.Replay$Pause replay when setting mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Pause replay when jumping to a mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Skip edited parts"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Pause replay at last mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip initial value (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip timeout (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Resume ID"
|
||||
msgstr "Genoptagelses ID"
|
||||
|
||||
|
33
po/de_DE.po
33
po/de_DE.po
@ -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-12 15:40+0100\n"
|
||||
"POT-Creation-Date: 2015-01-30 13:14+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"
|
||||
@ -19,6 +19,9 @@ msgstr ""
|
||||
msgid "*** Invalid Channel ***"
|
||||
msgstr "*** Ungültiger Kanal ***"
|
||||
|
||||
msgid "CAM activated!"
|
||||
msgstr "CAM aktiviert!"
|
||||
|
||||
msgid "Channel not available!"
|
||||
msgstr "Kanal nicht verfügbar!"
|
||||
|
||||
@ -1108,9 +1111,19 @@ msgstr "CAM vorhanden"
|
||||
msgid "CAM ready"
|
||||
msgstr "CAM bereit"
|
||||
|
||||
#. TRANSLATORS: note the leading blank!
|
||||
msgid " (activating)"
|
||||
msgstr " (wird aktiviert)"
|
||||
|
||||
msgid "CAM"
|
||||
msgstr "CAM"
|
||||
|
||||
msgid "Button$Cancel activation"
|
||||
msgstr "Aktivierung abbrechen"
|
||||
|
||||
msgid "Button$Activate"
|
||||
msgstr "Aktivieren"
|
||||
|
||||
msgid "Button$Menu"
|
||||
msgstr "Menü"
|
||||
|
||||
@ -1123,6 +1136,9 @@ msgstr "CAM-Men
|
||||
msgid "Can't open CAM menu!"
|
||||
msgstr "CAM-Menü kann nicht geöffnet werden!"
|
||||
|
||||
msgid "Can't activate CAM!"
|
||||
msgstr "CAM kann nicht aktiviert werden!"
|
||||
|
||||
msgid "CAM is in use - really reset?"
|
||||
msgstr "CAM wird benutzt - wirklich zurücksetzen?"
|
||||
|
||||
@ -1216,6 +1232,21 @@ msgstr "Anzeigedauer f
|
||||
msgid "Setup.Replay$Pause replay when setting mark"
|
||||
msgstr "Pause beim Setzen einer Schnittmarke"
|
||||
|
||||
msgid "Setup.Replay$Pause replay when jumping to a mark"
|
||||
msgstr "Pause beim Sprung auf eine Schnittmarke"
|
||||
|
||||
msgid "Setup.Replay$Skip edited parts"
|
||||
msgstr "Herausgeschnittene Teile überspringen"
|
||||
|
||||
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$Binary skip timeout (s)"
|
||||
msgstr "Zeitlimit für binäres Springen (ms)"
|
||||
|
||||
msgid "Setup.Replay$Resume ID"
|
||||
msgstr "Wiedergabe-ID"
|
||||
|
||||
|
33
po/el_GR.po
33
po/el_GR.po
@ -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-12 15:40+0100\n"
|
||||
"POT-Creation-Date: 2015-01-30 13:14+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"
|
||||
@ -19,6 +19,9 @@ msgstr ""
|
||||
msgid "*** Invalid Channel ***"
|
||||
msgstr "*** Áêõñï êáíÜëç ***"
|
||||
|
||||
msgid "CAM activated!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Channel not available!"
|
||||
msgstr "Ôï êáíÜëç äÝí åßíáé äéáèÝóéìï!"
|
||||
|
||||
@ -1108,9 +1111,19 @@ msgstr ""
|
||||
msgid "CAM ready"
|
||||
msgstr ""
|
||||
|
||||
#. TRANSLATORS: note the leading blank!
|
||||
msgid " (activating)"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM"
|
||||
msgstr "CAM"
|
||||
|
||||
msgid "Button$Cancel activation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Activate"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Menu"
|
||||
msgstr "Måíïý"
|
||||
|
||||
@ -1123,6 +1136,9 @@ msgstr ""
|
||||
msgid "Can't open CAM menu!"
|
||||
msgstr "Áäýíáôç ç ðñüóâáóç óôü CAM ìåíïý!"
|
||||
|
||||
msgid "Can't activate CAM!"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM is in use - really reset?"
|
||||
msgstr ""
|
||||
|
||||
@ -1216,6 +1232,21 @@ msgstr ""
|
||||
msgid "Setup.Replay$Pause replay when setting mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Pause replay when jumping to a mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Skip edited parts"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Pause replay at last mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip initial value (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip timeout (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Resume ID"
|
||||
msgstr "ID áíáìåôÜäïóçò"
|
||||
|
||||
|
33
po/es_ES.po
33
po/es_ES.po
@ -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-12 15:40+0100\n"
|
||||
"POT-Creation-Date: 2015-01-30 13:14+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"
|
||||
@ -20,6 +20,9 @@ msgstr ""
|
||||
msgid "*** Invalid Channel ***"
|
||||
msgstr "*** Canal no válido ***"
|
||||
|
||||
msgid "CAM activated!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Channel not available!"
|
||||
msgstr "¡Canal no disponible!"
|
||||
|
||||
@ -1109,9 +1112,19 @@ msgstr "CAM presente"
|
||||
msgid "CAM ready"
|
||||
msgstr "CAM preparado"
|
||||
|
||||
#. TRANSLATORS: note the leading blank!
|
||||
msgid " (activating)"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM"
|
||||
msgstr "CAM"
|
||||
|
||||
msgid "Button$Cancel activation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Activate"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Menu"
|
||||
msgstr "Menú"
|
||||
|
||||
@ -1124,6 +1137,9 @@ msgstr "Abriendo el men
|
||||
msgid "Can't open CAM menu!"
|
||||
msgstr "¡No se puede abrir el menú CAM!"
|
||||
|
||||
msgid "Can't activate CAM!"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM is in use - really reset?"
|
||||
msgstr "CAM en uso - ¿reiniciar?"
|
||||
|
||||
@ -1217,6 +1233,21 @@ msgstr "Visualizaci
|
||||
msgid "Setup.Replay$Pause replay when setting mark"
|
||||
msgstr "Pausar reproducción al establecer marca"
|
||||
|
||||
msgid "Setup.Replay$Pause replay when jumping to a mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Skip edited parts"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Pause replay at last mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip initial value (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip timeout (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Resume ID"
|
||||
msgstr "ID de continuación"
|
||||
|
||||
|
53
po/et_EE.po
53
po/et_EE.po
@ -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-12 15:40+0100\n"
|
||||
"POT-Creation-Date: 2015-01-30 13:14+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"
|
||||
@ -17,7 +17,10 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
msgid "*** Invalid Channel ***"
|
||||
msgstr "*** Vigane kanal ***"
|
||||
msgstr "*** Kehtetu kanal ***"
|
||||
|
||||
msgid "CAM activated!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Channel not available!"
|
||||
msgstr "Kanal ei ole kättesaadav!"
|
||||
@ -74,16 +77,16 @@ msgid "Rolloff"
|
||||
msgstr "Rolloff"
|
||||
|
||||
msgid "StreamId"
|
||||
msgstr "Stream-tunnus"
|
||||
msgstr "Vootunnus"
|
||||
|
||||
msgid "Pilot"
|
||||
msgstr ""
|
||||
msgstr "Piloot"
|
||||
|
||||
msgid "T2SystemId"
|
||||
msgstr ""
|
||||
msgstr "T2 tunnus"
|
||||
|
||||
msgid "SISO/MISO"
|
||||
msgstr ""
|
||||
msgstr "SISO/MISO"
|
||||
|
||||
msgid "Starting EPG scan"
|
||||
msgstr "EPG skaneerimine käivitatud"
|
||||
@ -573,10 +576,10 @@ msgid "Sid"
|
||||
msgstr "Sid"
|
||||
|
||||
msgid "Nid"
|
||||
msgstr ""
|
||||
msgstr "Nid"
|
||||
|
||||
msgid "Tid"
|
||||
msgstr ""
|
||||
msgstr "Tid"
|
||||
|
||||
msgid "Channel settings are not unique!"
|
||||
msgstr "Kanaliseaded ei ole unikaalsed!"
|
||||
@ -597,7 +600,7 @@ msgid "Button$Mark"
|
||||
msgstr "Märkimine"
|
||||
|
||||
msgid "Channel is being used by a timer!"
|
||||
msgstr "Kanal on taimeri kasutuses!"
|
||||
msgstr "Kanal on taimeris kasutusel!"
|
||||
|
||||
msgid "Delete channel?"
|
||||
msgstr "Kustutada kanal?"
|
||||
@ -1108,9 +1111,19 @@ msgstr "CAM esitletud"
|
||||
msgid "CAM ready"
|
||||
msgstr "CAM töövalmis"
|
||||
|
||||
#. TRANSLATORS: note the leading blank!
|
||||
msgid " (activating)"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM"
|
||||
msgstr "CAM"
|
||||
|
||||
msgid "Button$Cancel activation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Activate"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Menu"
|
||||
msgstr "Menüü"
|
||||
|
||||
@ -1123,6 +1136,9 @@ msgstr "CAM-menüü avamine..."
|
||||
msgid "Can't open CAM menu!"
|
||||
msgstr "Ei saa avada CAM menüüd!"
|
||||
|
||||
msgid "Can't activate CAM!"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM is in use - really reset?"
|
||||
msgstr "CAM on kasutuses - taaskäivitada?"
|
||||
|
||||
@ -1216,6 +1232,21 @@ msgstr "Edenemiseriba kuvamise aeg (s)"
|
||||
msgid "Setup.Replay$Pause replay when setting mark"
|
||||
msgstr "Taasesituse peatamine markeri seadmisel"
|
||||
|
||||
msgid "Setup.Replay$Pause replay when jumping to a mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Skip edited parts"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Pause replay at last mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip initial value (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip timeout (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Resume ID"
|
||||
msgstr "Jätkamise ID"
|
||||
|
||||
@ -1253,10 +1284,10 @@ msgid "Setup.Miscellaneous$Initial volume"
|
||||
msgstr "Helitugevus käivitamisel"
|
||||
|
||||
msgid "Setup.Miscellaneous$Volume steps"
|
||||
msgstr ""
|
||||
msgstr "Helitugevuse samm"
|
||||
|
||||
msgid "Setup.Miscellaneous$Volume linearize"
|
||||
msgstr ""
|
||||
msgstr "Helitugevuse lineariseerimine"
|
||||
|
||||
msgid "Setup.Miscellaneous$Channels wrap"
|
||||
msgstr "Kanalite ringkerimine"
|
||||
|
37
po/fi_FI.po
37
po/fi_FI.po
@ -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-12 15:40+0100\n"
|
||||
"POT-Creation-Date: 2015-01-30 13:14+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"
|
||||
@ -23,6 +23,9 @@ msgstr ""
|
||||
msgid "*** Invalid Channel ***"
|
||||
msgstr "*** Virheellinen kanavavalinta ***"
|
||||
|
||||
msgid "CAM activated!"
|
||||
msgstr "CA-moduuli aktivoitu!"
|
||||
|
||||
msgid "Channel not available!"
|
||||
msgstr "Kanava ei ole käytettävissä!"
|
||||
|
||||
@ -1112,9 +1115,19 @@ msgstr "CAM havaittu"
|
||||
msgid "CAM ready"
|
||||
msgstr "CAM valmis"
|
||||
|
||||
#. TRANSLATORS: note the leading blank!
|
||||
msgid " (activating)"
|
||||
msgstr " (aktivoidaan)"
|
||||
|
||||
msgid "CAM"
|
||||
msgstr "CAM"
|
||||
|
||||
msgid "Button$Cancel activation"
|
||||
msgstr "Peruuta aktivointi"
|
||||
|
||||
msgid "Button$Activate"
|
||||
msgstr "Aktivoi"
|
||||
|
||||
msgid "Button$Menu"
|
||||
msgstr "Valikko"
|
||||
|
||||
@ -1127,6 +1140,9 @@ msgstr "Avataan CA-moduulin valikkoa..."
|
||||
msgid "Can't open CAM menu!"
|
||||
msgstr "CA-moduulin valikko ei saatavilla"
|
||||
|
||||
msgid "Can't activate CAM!"
|
||||
msgstr "CA-moduulin aktivointi epäonnistui!"
|
||||
|
||||
msgid "CAM is in use - really reset?"
|
||||
msgstr "CA-moduuli käytössä - nollataanko?"
|
||||
|
||||
@ -1220,6 +1236,21 @@ msgstr "Näytä toiston kontrollit (s)"
|
||||
msgid "Setup.Replay$Pause replay when setting mark"
|
||||
msgstr "Pysäytä toisto asetettaessa merkki"
|
||||
|
||||
msgid "Setup.Replay$Pause replay when jumping to a mark"
|
||||
msgstr "Pysäytä toisto hypätessä merkkiin"
|
||||
|
||||
msgid "Setup.Replay$Skip edited parts"
|
||||
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$Binary skip timeout (s)"
|
||||
msgstr "Binäärihypyn odotusaika (ms)"
|
||||
|
||||
msgid "Setup.Replay$Resume ID"
|
||||
msgstr "Tallenteen paluutunniste"
|
||||
|
||||
@ -1257,10 +1288,10 @@ msgid "Setup.Miscellaneous$Initial volume"
|
||||
msgstr "Äänenvoimakkuus käynnistettäessä"
|
||||
|
||||
msgid "Setup.Miscellaneous$Volume steps"
|
||||
msgstr ""
|
||||
msgstr "Äänenvoimakkuuden askellus"
|
||||
|
||||
msgid "Setup.Miscellaneous$Volume linearize"
|
||||
msgstr ""
|
||||
msgstr "Äänenvoimakkuuden lineaarisuus"
|
||||
|
||||
msgid "Setup.Miscellaneous$Channels wrap"
|
||||
msgstr "Kanavien rullaus"
|
||||
|
33
po/fr_FR.po
33
po/fr_FR.po
@ -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-12 15:40+0100\n"
|
||||
"POT-Creation-Date: 2015-01-30 13:14+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"
|
||||
@ -29,6 +29,9 @@ msgstr ""
|
||||
msgid "*** Invalid Channel ***"
|
||||
msgstr "*** Chaîne invalide ! ***"
|
||||
|
||||
msgid "CAM activated!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Channel not available!"
|
||||
msgstr "Chaîne non disponible !"
|
||||
|
||||
@ -1118,9 +1121,19 @@ msgstr "CAM présent"
|
||||
msgid "CAM ready"
|
||||
msgstr "CAM prêt"
|
||||
|
||||
#. TRANSLATORS: note the leading blank!
|
||||
msgid " (activating)"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM"
|
||||
msgstr "CAM"
|
||||
|
||||
msgid "Button$Cancel activation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Activate"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Menu"
|
||||
msgstr "Menu"
|
||||
|
||||
@ -1133,6 +1146,9 @@ msgstr "Ouverture du menu CAM..."
|
||||
msgid "Can't open CAM menu!"
|
||||
msgstr "Impossible d'ouvrir le menu CAM !"
|
||||
|
||||
msgid "Can't activate CAM!"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM is in use - really reset?"
|
||||
msgstr "CAM en cours d'utilisation - confirmer réinitialisation ?"
|
||||
|
||||
@ -1226,6 +1242,21 @@ msgstr "Afficher la barre de progression (s)"
|
||||
msgid "Setup.Replay$Pause replay when setting mark"
|
||||
msgstr "Arrêt lecture si ajout marqueur"
|
||||
|
||||
msgid "Setup.Replay$Pause replay when jumping to a mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Skip edited parts"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Pause replay at last mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip initial value (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip timeout (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Resume ID"
|
||||
msgstr "ID de reprise"
|
||||
|
||||
|
33
po/hr_HR.po
33
po/hr_HR.po
@ -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-12 15:40+0100\n"
|
||||
"POT-Creation-Date: 2015-01-30 13:14+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"
|
||||
@ -21,6 +21,9 @@ msgstr ""
|
||||
msgid "*** Invalid Channel ***"
|
||||
msgstr "*** Neispravan Program ***"
|
||||
|
||||
msgid "CAM activated!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Channel not available!"
|
||||
msgstr "Program nije dostupan!"
|
||||
|
||||
@ -1110,9 +1113,19 @@ msgstr "CAM prisutan"
|
||||
msgid "CAM ready"
|
||||
msgstr "CAM spreman"
|
||||
|
||||
#. TRANSLATORS: note the leading blank!
|
||||
msgid " (activating)"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM"
|
||||
msgstr "CAM"
|
||||
|
||||
msgid "Button$Cancel activation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Activate"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Menu"
|
||||
msgstr "Izbornik"
|
||||
|
||||
@ -1125,6 +1138,9 @@ msgstr "Otvaram CAM izbornik..."
|
||||
msgid "Can't open CAM menu!"
|
||||
msgstr "Otvaranje CAM izbornika neuspje¹no!"
|
||||
|
||||
msgid "Can't activate CAM!"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM is in use - really reset?"
|
||||
msgstr "CAM se koristi - ponovno pokrenuti unatoè?"
|
||||
|
||||
@ -1218,6 +1234,21 @@ msgstr ""
|
||||
msgid "Setup.Replay$Pause replay when setting mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Pause replay when jumping to a mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Skip edited parts"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Pause replay at last mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip initial value (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip timeout (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Resume ID"
|
||||
msgstr "ID nastavka"
|
||||
|
||||
|
33
po/hu_HU.po
33
po/hu_HU.po
@ -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-12 15:40+0100\n"
|
||||
"POT-Creation-Date: 2015-01-30 13:14+0100\n"
|
||||
"PO-Revision-Date: 2013-03-01 19:22+0200\n"
|
||||
"Last-Translator: István Füley <ifuley@tigercomp.ro>\n"
|
||||
"Language-Team: Hungarian <vdr@linuxtv.org>\n"
|
||||
@ -23,6 +23,9 @@ msgstr ""
|
||||
msgid "*** Invalid Channel ***"
|
||||
msgstr "*** Érvénytelen csatorna ***"
|
||||
|
||||
msgid "CAM activated!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Channel not available!"
|
||||
msgstr "Az adó nem elérhető"
|
||||
|
||||
@ -1112,9 +1115,19 @@ msgstr "CAM jelen"
|
||||
msgid "CAM ready"
|
||||
msgstr "CAM működik"
|
||||
|
||||
#. TRANSLATORS: note the leading blank!
|
||||
msgid " (activating)"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM"
|
||||
msgstr "CAM"
|
||||
|
||||
msgid "Button$Cancel activation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Activate"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Menu"
|
||||
msgstr "Menü"
|
||||
|
||||
@ -1127,6 +1140,9 @@ msgstr "A CAM menü nyitása..."
|
||||
msgid "Can't open CAM menu!"
|
||||
msgstr "A CAM menü nem nyitható"
|
||||
|
||||
msgid "Can't activate CAM!"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM is in use - really reset?"
|
||||
msgstr "CAM használatban - valóban újraindítjuk?"
|
||||
|
||||
@ -1220,6 +1236,21 @@ msgstr "Lejátszósáv felüntetésének ideje (mp)"
|
||||
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 ""
|
||||
|
||||
msgid "Setup.Replay$Skip edited parts"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Pause replay at last mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip initial value (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip timeout (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Resume ID"
|
||||
msgstr "Lejátszás ID"
|
||||
|
||||
|
39
po/it_IT.po
39
po/it_IT.po
@ -11,8 +11,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: VDR 2.0.0\n"
|
||||
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
|
||||
"POT-Creation-Date: 2015-01-12 15:40+0100\n"
|
||||
"PO-Revision-Date: 2014-03-23 00:54+0100\n"
|
||||
"POT-Creation-Date: 2015-01-30 13:14+0100\n"
|
||||
"PO-Revision-Date: 2015-01-19 20:19+0100\n"
|
||||
"Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n"
|
||||
"Language-Team: Italian <vdr@linuxtv.org>\n"
|
||||
"Language: it\n"
|
||||
@ -26,6 +26,9 @@ msgstr ""
|
||||
msgid "*** Invalid Channel ***"
|
||||
msgstr "*** Canale NON valido ***"
|
||||
|
||||
msgid "CAM activated!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Channel not available!"
|
||||
msgstr "Canale non disponibile!"
|
||||
|
||||
@ -1115,9 +1118,19 @@ msgstr "La CAM è presente"
|
||||
msgid "CAM ready"
|
||||
msgstr "La CAM è pronta"
|
||||
|
||||
#. TRANSLATORS: note the leading blank!
|
||||
msgid " (activating)"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM"
|
||||
msgstr "Accesso condizionato CAM"
|
||||
|
||||
msgid "Button$Cancel activation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Activate"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Menu"
|
||||
msgstr "Menu"
|
||||
|
||||
@ -1130,6 +1143,9 @@ msgstr "Apertura menu CAM..."
|
||||
msgid "Can't open CAM menu!"
|
||||
msgstr "Impossibile aprire il menu CAM!"
|
||||
|
||||
msgid "Can't activate CAM!"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM is in use - really reset?"
|
||||
msgstr "La CAM è in uso - vuoi reimpostarla?"
|
||||
|
||||
@ -1223,6 +1239,21 @@ msgstr "Mostra tempo elaborazione (s)"
|
||||
msgid "Setup.Replay$Pause replay when setting mark"
|
||||
msgstr "Pausa riproduzione durante impostazione segni"
|
||||
|
||||
msgid "Setup.Replay$Pause replay when jumping to a mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Skip edited parts"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Pause replay at last mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip initial value (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip timeout (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Resume ID"
|
||||
msgstr "ID di ripristino"
|
||||
|
||||
@ -1260,10 +1291,10 @@ msgid "Setup.Miscellaneous$Initial volume"
|
||||
msgstr "Volume iniziale"
|
||||
|
||||
msgid "Setup.Miscellaneous$Volume steps"
|
||||
msgstr ""
|
||||
msgstr "Volume a tacche"
|
||||
|
||||
msgid "Setup.Miscellaneous$Volume linearize"
|
||||
msgstr ""
|
||||
msgstr "Volume lineare"
|
||||
|
||||
msgid "Setup.Miscellaneous$Channels wrap"
|
||||
msgstr "Riavvolgimento canali"
|
||||
|
33
po/lt_LT.po
33
po/lt_LT.po
@ -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-12 15:40+0100\n"
|
||||
"POT-Creation-Date: 2015-01-30 13:14+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"
|
||||
@ -19,6 +19,9 @@ msgstr ""
|
||||
msgid "*** Invalid Channel ***"
|
||||
msgstr "*** Blogi kanalo nustatymai ***"
|
||||
|
||||
msgid "CAM activated!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Channel not available!"
|
||||
msgstr "Kanalas neegzistuoja!"
|
||||
|
||||
@ -1108,9 +1111,19 @@ msgstr "Dekodavimo modulis (CAM) įjungtas"
|
||||
msgid "CAM ready"
|
||||
msgstr "Dekodavimo modulis (CAM) paruoštas darbui"
|
||||
|
||||
#. TRANSLATORS: note the leading blank!
|
||||
msgid " (activating)"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM"
|
||||
msgstr "Dekodavimo modulis (CAM)"
|
||||
|
||||
msgid "Button$Cancel activation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Activate"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Menu"
|
||||
msgstr "Meniu"
|
||||
|
||||
@ -1123,6 +1136,9 @@ msgstr "Atidaromas dekodavimo modulio meniu..."
|
||||
msgid "Can't open CAM menu!"
|
||||
msgstr "Negali atidaryti dekodavimo modulio meniu!"
|
||||
|
||||
msgid "Can't activate CAM!"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM is in use - really reset?"
|
||||
msgstr "Dekodavimo modulis šiuo metu naudojamas - tikrai perkrauti?"
|
||||
|
||||
@ -1216,6 +1232,21 @@ msgstr "Progreso rodymo laikas (s)"
|
||||
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 ""
|
||||
|
||||
msgid "Setup.Replay$Skip edited parts"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Pause replay at last mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip initial value (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip timeout (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Resume ID"
|
||||
msgstr "Kūrinio ID"
|
||||
|
||||
|
33
po/mk_MK.po
33
po/mk_MK.po
@ -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-12 15:40+0100\n"
|
||||
"POT-Creation-Date: 2015-01-30 13:14+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"
|
||||
@ -20,6 +20,9 @@ msgstr ""
|
||||
msgid "*** Invalid Channel ***"
|
||||
msgstr "*** Невалиден Канал ***"
|
||||
|
||||
msgid "CAM activated!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Channel not available!"
|
||||
msgstr "Каналот е недостапен!"
|
||||
|
||||
@ -1109,9 +1112,19 @@ msgstr "CAM присутен"
|
||||
msgid "CAM ready"
|
||||
msgstr "CAM спремен"
|
||||
|
||||
#. TRANSLATORS: note the leading blank!
|
||||
msgid " (activating)"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM"
|
||||
msgstr "CAM"
|
||||
|
||||
msgid "Button$Cancel activation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Activate"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Menu"
|
||||
msgstr "Мени"
|
||||
|
||||
@ -1124,6 +1137,9 @@ msgstr "Отварам CAM мени..."
|
||||
msgid "Can't open CAM menu!"
|
||||
msgstr "Неуспешно отварање на CAM менито!"
|
||||
|
||||
msgid "Can't activate CAM!"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM is in use - really reset?"
|
||||
msgstr "CAM е во употреба - рестартирај?"
|
||||
|
||||
@ -1217,6 +1233,21 @@ msgstr "Време на прикажување на прогрес (сек)"
|
||||
msgid "Setup.Replay$Pause replay when setting mark"
|
||||
msgstr "Паузирај репродукција кога се внесува ознака"
|
||||
|
||||
msgid "Setup.Replay$Pause replay when jumping to a mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Skip edited parts"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Pause replay at last mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip initial value (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip timeout (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Resume ID"
|
||||
msgstr "ID на продолжеток"
|
||||
|
||||
|
33
po/nl_NL.po
33
po/nl_NL.po
@ -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-12 15:40+0100\n"
|
||||
"POT-Creation-Date: 2015-01-30 13:14+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"
|
||||
@ -24,6 +24,9 @@ msgstr ""
|
||||
msgid "*** Invalid Channel ***"
|
||||
msgstr "*** Ongeldig kanaal ***"
|
||||
|
||||
msgid "CAM activated!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Channel not available!"
|
||||
msgstr "Kanaal niet beschikbaar"
|
||||
|
||||
@ -1113,9 +1116,19 @@ msgstr "CAM aanwezig"
|
||||
msgid "CAM ready"
|
||||
msgstr "CAM gereed"
|
||||
|
||||
#. TRANSLATORS: note the leading blank!
|
||||
msgid " (activating)"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM"
|
||||
msgstr "CAM"
|
||||
|
||||
msgid "Button$Cancel activation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Activate"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Menu"
|
||||
msgstr "Menu"
|
||||
|
||||
@ -1128,6 +1141,9 @@ msgstr "CAM-menu wordt geopend..."
|
||||
msgid "Can't open CAM menu!"
|
||||
msgstr "Kan CAM-menu niet openen!"
|
||||
|
||||
msgid "Can't activate CAM!"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM is in use - really reset?"
|
||||
msgstr "CAM wordt gebruikt - werkelijk herstarten?"
|
||||
|
||||
@ -1221,6 +1237,21 @@ msgstr "Verlopen tijd tijd (s)"
|
||||
msgid "Setup.Replay$Pause replay when setting mark"
|
||||
msgstr "Pauzeer wanneer markering wordt geplaatst"
|
||||
|
||||
msgid "Setup.Replay$Pause replay when jumping to a mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Skip edited parts"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Pause replay at last mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip initial value (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip timeout (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Resume ID"
|
||||
msgstr "Hervattings ID"
|
||||
|
||||
|
33
po/nn_NO.po
33
po/nn_NO.po
@ -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-12 15:40+0100\n"
|
||||
"POT-Creation-Date: 2015-01-30 13:14+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"
|
||||
@ -20,6 +20,9 @@ msgstr ""
|
||||
msgid "*** Invalid Channel ***"
|
||||
msgstr "*** Ugyldig Kanal! ***"
|
||||
|
||||
msgid "CAM activated!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Channel not available!"
|
||||
msgstr ""
|
||||
|
||||
@ -1109,9 +1112,19 @@ msgstr ""
|
||||
msgid "CAM ready"
|
||||
msgstr ""
|
||||
|
||||
#. TRANSLATORS: note the leading blank!
|
||||
msgid " (activating)"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM"
|
||||
msgstr "CAM"
|
||||
|
||||
msgid "Button$Cancel activation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Activate"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Menu"
|
||||
msgstr "Meny"
|
||||
|
||||
@ -1124,6 +1137,9 @@ msgstr ""
|
||||
msgid "Can't open CAM menu!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Can't activate CAM!"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM is in use - really reset?"
|
||||
msgstr ""
|
||||
|
||||
@ -1217,6 +1233,21 @@ msgstr ""
|
||||
msgid "Setup.Replay$Pause replay when setting mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Pause replay when jumping to a mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Skip edited parts"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Pause replay at last mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip initial value (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip timeout (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Resume ID"
|
||||
msgstr "Resume ID"
|
||||
|
||||
|
33
po/pl_PL.po
33
po/pl_PL.po
@ -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-12 15:40+0100\n"
|
||||
"POT-Creation-Date: 2015-01-30 13:14+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"
|
||||
@ -21,6 +21,9 @@ msgstr ""
|
||||
msgid "*** Invalid Channel ***"
|
||||
msgstr "*** Niepoprawny kana³ ***"
|
||||
|
||||
msgid "CAM activated!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Channel not available!"
|
||||
msgstr "Kana³ nie jest dostêpny!"
|
||||
|
||||
@ -1110,9 +1113,19 @@ msgstr "CAM obecny"
|
||||
msgid "CAM ready"
|
||||
msgstr "CAM gotowy"
|
||||
|
||||
#. TRANSLATORS: note the leading blank!
|
||||
msgid " (activating)"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM"
|
||||
msgstr "CAM"
|
||||
|
||||
msgid "Button$Cancel activation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Activate"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Menu"
|
||||
msgstr "Menu"
|
||||
|
||||
@ -1125,6 +1138,9 @@ msgstr "Otwieram menu CAM..."
|
||||
msgid "Can't open CAM menu!"
|
||||
msgstr "Nie mo¿na otworzyæ menu CAM!"
|
||||
|
||||
msgid "Can't activate CAM!"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM is in use - really reset?"
|
||||
msgstr "CAM jest w u¿yciu - naprawdê zresetowaæ?"
|
||||
|
||||
@ -1218,6 +1234,21 @@ msgstr "Wy
|
||||
msgid "Setup.Replay$Pause replay when setting mark"
|
||||
msgstr "Wstrzymaj odtwarzanie podczas ustawiania zaznaczania"
|
||||
|
||||
msgid "Setup.Replay$Pause replay when jumping to a mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Skip edited parts"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Pause replay at last mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip initial value (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip timeout (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Resume ID"
|
||||
msgstr "ID wznowienia"
|
||||
|
||||
|
33
po/pt_PT.po
33
po/pt_PT.po
@ -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-12 15:40+0100\n"
|
||||
"POT-Creation-Date: 2015-01-30 13:14+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"
|
||||
@ -20,6 +20,9 @@ msgstr ""
|
||||
msgid "*** Invalid Channel ***"
|
||||
msgstr "*** Canal inválido ***"
|
||||
|
||||
msgid "CAM activated!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Channel not available!"
|
||||
msgstr "Canal indisponível!"
|
||||
|
||||
@ -1109,9 +1112,19 @@ msgstr "CAM presente"
|
||||
msgid "CAM ready"
|
||||
msgstr "CAM pronta"
|
||||
|
||||
#. TRANSLATORS: note the leading blank!
|
||||
msgid " (activating)"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM"
|
||||
msgstr "CAM"
|
||||
|
||||
msgid "Button$Cancel activation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Activate"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Menu"
|
||||
msgstr "Menu"
|
||||
|
||||
@ -1124,6 +1137,9 @@ msgstr "A abrir menu da CAM..."
|
||||
msgid "Can't open CAM menu!"
|
||||
msgstr "Impossível abrir menu da CAM!"
|
||||
|
||||
msgid "Can't activate CAM!"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM is in use - really reset?"
|
||||
msgstr "CAM em uso - reiniciar mesmo?"
|
||||
|
||||
@ -1217,6 +1233,21 @@ msgstr ""
|
||||
msgid "Setup.Replay$Pause replay when setting mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Pause replay when jumping to a mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Skip edited parts"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Pause replay at last mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip initial value (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip timeout (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Resume ID"
|
||||
msgstr "ID de resumo"
|
||||
|
||||
|
145
po/ro_RO.po
145
po/ro_RO.po
@ -8,19 +8,22 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: VDR 2.0.0\n"
|
||||
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
|
||||
"POT-Creation-Date: 2015-01-12 15:40+0100\n"
|
||||
"PO-Revision-Date: 2013-02-09 23:01+0100\n"
|
||||
"Last-Translator: Lucian Muresan <lucianm@users.sorceforge.net>\n"
|
||||
"POT-Creation-Date: 2015-01-30 13:14+0100\n"
|
||||
"PO-Revision-Date: 2015-01-21 22:34+0100\n"
|
||||
"Last-Translator: Lucian Muresan <lucianm@users.sourceforge.net>\n"
|
||||
"Language-Team: Romanian <vdr@linuxtv.org>\n"
|
||||
"Language: ro\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.9\n"
|
||||
|
||||
msgid "*** Invalid Channel ***"
|
||||
msgstr "*** Canal invalid ***"
|
||||
|
||||
msgid "CAM activated!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Channel not available!"
|
||||
msgstr "Canal indisponibil"
|
||||
|
||||
@ -79,13 +82,13 @@ msgid "StreamId"
|
||||
msgstr "Identificator Stream"
|
||||
|
||||
msgid "Pilot"
|
||||
msgstr ""
|
||||
msgstr "Pilot"
|
||||
|
||||
msgid "T2SystemId"
|
||||
msgstr ""
|
||||
msgstr "ID sistem T2"
|
||||
|
||||
msgid "SISO/MISO"
|
||||
msgstr ""
|
||||
msgstr "SISO/MISO"
|
||||
|
||||
msgid "Starting EPG scan"
|
||||
msgstr "Pornesc achiziţia EPG"
|
||||
@ -575,10 +578,10 @@ msgid "Sid"
|
||||
msgstr "Sid"
|
||||
|
||||
msgid "Nid"
|
||||
msgstr ""
|
||||
msgstr "Nid"
|
||||
|
||||
msgid "Tid"
|
||||
msgstr ""
|
||||
msgstr "Tid"
|
||||
|
||||
msgid "Channel settings are not unique!"
|
||||
msgstr "Parametrii canalului nu sunt univoci!"
|
||||
@ -741,71 +744,71 @@ msgid "CAM not responding!"
|
||||
msgstr "CAM-ul nu reacţionează!"
|
||||
|
||||
msgid "Edit path"
|
||||
msgstr ""
|
||||
msgstr "Editează calea"
|
||||
|
||||
msgid "Folder"
|
||||
msgstr ""
|
||||
msgstr "Director"
|
||||
|
||||
msgid "This folder is currently in use - no changes are possible!"
|
||||
msgstr ""
|
||||
msgstr "Acest director tocmai este accesat - nu sunt posibile modificări!"
|
||||
|
||||
#, c-format
|
||||
msgid "Move entire folder containing %d recordings?"
|
||||
msgstr ""
|
||||
msgstr "Mut întregul director conținând %d înregistrări?"
|
||||
|
||||
msgid "Error while moving folder!"
|
||||
msgstr ""
|
||||
msgstr "Eroare la mutarea directorului!"
|
||||
|
||||
msgid "Edit recording"
|
||||
msgstr ""
|
||||
msgstr "Editează înregistrarea"
|
||||
|
||||
msgid "This recording is currently in use - no changes are possible!"
|
||||
msgstr ""
|
||||
msgstr "Această înregistrare tocmai este accesată - nu sunt posibile modificări!"
|
||||
|
||||
msgid "Button$Cancel cutting"
|
||||
msgstr ""
|
||||
msgstr "Anulează tăierea"
|
||||
|
||||
msgid "Button$Stop cutting"
|
||||
msgstr ""
|
||||
msgstr "Oprește tăierea"
|
||||
|
||||
msgid "Button$Cancel moving"
|
||||
msgstr ""
|
||||
msgstr "Anuleaza mutarea"
|
||||
|
||||
msgid "Button$Stop moving"
|
||||
msgstr ""
|
||||
msgstr "Oprește mutarea"
|
||||
|
||||
msgid "Button$Cancel copying"
|
||||
msgstr ""
|
||||
msgstr "Anulează copierea"
|
||||
|
||||
msgid "Button$Stop copying"
|
||||
msgstr ""
|
||||
msgstr "Oprește copierea"
|
||||
|
||||
msgid "Button$Cut"
|
||||
msgstr ""
|
||||
msgstr "Taie"
|
||||
|
||||
msgid "Button$Delete marks"
|
||||
msgstr ""
|
||||
msgstr "Șterge marcajele"
|
||||
|
||||
msgid "Recording vanished!"
|
||||
msgstr ""
|
||||
msgstr "Înregistrarea a dispărut!"
|
||||
|
||||
msgid "Edited version already exists - overwrite?"
|
||||
msgstr ""
|
||||
msgstr "Deja există o versiune editată - o suprascriu?"
|
||||
|
||||
msgid "Error while queueing recording for cutting!"
|
||||
msgstr ""
|
||||
msgstr "Eroare la punerea în coada pentru tăiere!"
|
||||
|
||||
msgid "Delete editing marks for this recording?"
|
||||
msgstr ""
|
||||
msgstr "Șterg marcajele de editare pentru această înregistrare?"
|
||||
|
||||
msgid "Error while deleting editing marks!"
|
||||
msgstr ""
|
||||
msgstr "Eroare la ștergerea marcajelor de editare!"
|
||||
|
||||
msgid "Error while changing priority/lifetime!"
|
||||
msgstr ""
|
||||
msgstr "Eroare la schimbarea priorității/timpului de păstrare!"
|
||||
|
||||
msgid "Error while changing folder/name!"
|
||||
msgstr ""
|
||||
msgstr "Eroare la schimbarea directorului/numelui!"
|
||||
|
||||
msgid "Recording info"
|
||||
msgstr "Detaliile înregistrării"
|
||||
@ -826,7 +829,7 @@ msgid "Delete recording?"
|
||||
msgstr "Şterg înregistrarea?"
|
||||
|
||||
msgid "Recording is being edited - really delete?"
|
||||
msgstr "Montajul înregistrării e în curs de desfășurare - șterg totuși?"
|
||||
msgstr "Editarea înregistrării e în curs de desfășurare - șterg totuși?"
|
||||
|
||||
msgid "Error while deleting recording!"
|
||||
msgstr "Eroare la ştergerea înregistrării!"
|
||||
@ -1075,31 +1078,31 @@ msgid "Setup.LNB$own"
|
||||
msgstr "propriu"
|
||||
|
||||
msgid "Setup.LNB$Use dish positioner"
|
||||
msgstr ""
|
||||
msgstr "Folosește actuator de poziționare"
|
||||
|
||||
msgid "Setup.LNB$Site latitude (degrees)"
|
||||
msgstr ""
|
||||
msgstr "Latitudinea locului (grade)"
|
||||
|
||||
msgid "South"
|
||||
msgstr ""
|
||||
msgstr "Sud"
|
||||
|
||||
msgid "North"
|
||||
msgstr ""
|
||||
msgstr "Nord"
|
||||
|
||||
msgid "Setup.LNB$Site longitude (degrees)"
|
||||
msgstr ""
|
||||
msgstr "Longitudinea locului (grade)"
|
||||
|
||||
msgid "West"
|
||||
msgstr ""
|
||||
msgstr "Vest"
|
||||
|
||||
msgid "East"
|
||||
msgstr ""
|
||||
msgstr "Est"
|
||||
|
||||
msgid "Setup.LNB$Max. positioner swing (degrees)"
|
||||
msgstr ""
|
||||
msgstr "Unghi maxim al actuatorului (grade)"
|
||||
|
||||
msgid "Setup.LNB$Positioner speed (degrees/s)"
|
||||
msgstr ""
|
||||
msgstr "Viteza actuatorului (grade/s)"
|
||||
|
||||
msgid "CAM reset"
|
||||
msgstr "Resetare CAM"
|
||||
@ -1110,9 +1113,19 @@ msgstr "CAM prezent"
|
||||
msgid "CAM ready"
|
||||
msgstr "CAM pregătit"
|
||||
|
||||
#. TRANSLATORS: note the leading blank!
|
||||
msgid " (activating)"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM"
|
||||
msgstr "CAM"
|
||||
|
||||
msgid "Button$Cancel activation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Activate"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Menu"
|
||||
msgstr "Meniu"
|
||||
|
||||
@ -1125,6 +1138,9 @@ msgstr "Deschid meniul CAM..."
|
||||
msgid "Can't open CAM menu!"
|
||||
msgstr "Nu pot deschide meniul CAM"
|
||||
|
||||
msgid "Can't activate CAM!"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM is in use - really reset?"
|
||||
msgstr "CAM-ul este in folosinţă - totuşi resetez?"
|
||||
|
||||
@ -1195,7 +1211,7 @@ msgid "Setup.Recording$Max. video file size (MB)"
|
||||
msgstr "Dimensiune maximă a fişierului video (MB)"
|
||||
|
||||
msgid "Setup.Recording$Split edited files"
|
||||
msgstr "Separare fişiere montate"
|
||||
msgstr "Separare fişiere editate"
|
||||
|
||||
msgid "Setup.Recording$Delete timeshift recording"
|
||||
msgstr "Şterge înregistrarea pentru vizionare decalată"
|
||||
@ -1216,7 +1232,22 @@ msgid "Setup.Replay$Progress display time (s)"
|
||||
msgstr "Durata afișării indicatorului de progres (s) "
|
||||
|
||||
msgid "Setup.Replay$Pause replay when setting mark"
|
||||
msgstr "Pauză la punerea marcajului de montaj"
|
||||
msgstr "Pauză la punerea marcajului de editare"
|
||||
|
||||
msgid "Setup.Replay$Pause replay when jumping to a mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Skip edited parts"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Pause replay at last mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip initial value (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip timeout (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Resume ID"
|
||||
msgstr "Identificator continuare"
|
||||
@ -1255,10 +1286,10 @@ msgid "Setup.Miscellaneous$Initial volume"
|
||||
msgstr "Volumul la pornire"
|
||||
|
||||
msgid "Setup.Miscellaneous$Volume steps"
|
||||
msgstr ""
|
||||
msgstr "Numărul de pași ai reglajului de volum"
|
||||
|
||||
msgid "Setup.Miscellaneous$Volume linearize"
|
||||
msgstr ""
|
||||
msgstr "Liniarizează caracteristica de volum"
|
||||
|
||||
msgid "Setup.Miscellaneous$Channels wrap"
|
||||
msgstr "Lista de canale în buclă"
|
||||
@ -1306,13 +1337,13 @@ msgstr "Continuă redarea"
|
||||
|
||||
#. TRANSLATORS: note the leading blank!
|
||||
msgid " Cancel editing"
|
||||
msgstr " Opreşte montajul înregistrării"
|
||||
msgstr " Anulează editarea înregistrării"
|
||||
|
||||
msgid "Stop recording?"
|
||||
msgstr "Opresc înregistrarea?"
|
||||
|
||||
msgid "Cancel editing?"
|
||||
msgstr "Opresc montajul înregistrării?"
|
||||
msgstr "Anulez editarea înregistrării?"
|
||||
|
||||
msgid "No audio available!"
|
||||
msgstr "Lipseşte sunetul!"
|
||||
@ -1340,19 +1371,19 @@ msgid "Jump: "
|
||||
msgstr "Salt la: "
|
||||
|
||||
msgid "No editing marks defined!"
|
||||
msgstr "Nu s-au pus marcaje de montaj pentru această înregistrare"
|
||||
msgstr "Nu s-au pus marcaje de editare pentru această înregistrare"
|
||||
|
||||
msgid "No editing sequences defined!"
|
||||
msgstr "Nu s-au definit secvențe pentru montaj!"
|
||||
msgstr "Nu s-au definit secvențe pentru editare!"
|
||||
|
||||
msgid "Can't start editing process!"
|
||||
msgstr "Nu pot porni montajul înregistrării!"
|
||||
msgstr "Nu pot porni editarea înregistrării!"
|
||||
|
||||
msgid "Editing process started"
|
||||
msgstr "Montajul înregistrării a început"
|
||||
msgstr "Editarea înregistrării a început"
|
||||
|
||||
msgid "Editing process already active!"
|
||||
msgstr "Montajul înregistrării este deja activ!"
|
||||
msgstr "Editarea înregistrării este deja activă!"
|
||||
|
||||
msgid "FileNameChars$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&"
|
||||
msgstr " aăâbcdefghiîjklmnopqrsştţuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&"
|
||||
@ -1394,7 +1425,7 @@ msgid "Can't shutdown - option '-s' not given!"
|
||||
msgstr "Nu pot închide - vezi opţiunea '-s'"
|
||||
|
||||
msgid "Editing - shut down anyway?"
|
||||
msgstr "Montajul tocmai se efectuează - închid, totuşi?"
|
||||
msgstr "Editarea tocmai se efectuează - închid, totuşi?"
|
||||
|
||||
msgid "Recording - shut down anyway?"
|
||||
msgstr "Tocmai se înregistrează - închid, totuşi?"
|
||||
@ -1411,7 +1442,7 @@ msgid "Plugin %s wakes up in %ld min, continue?"
|
||||
msgstr "Plugin-ul %s se va trezi +n %ld min, continui?"
|
||||
|
||||
msgid "Editing - restart anyway?"
|
||||
msgstr "Montajul tocmai se efectuează - repornesc, totuşi?"
|
||||
msgstr "Editarea tocmai se efectuează - repornesc, totuşi?"
|
||||
|
||||
msgid "Recording - restart anyway?"
|
||||
msgstr "Tocmai se înregistrează - repornesc, totuşi?"
|
||||
@ -1446,7 +1477,7 @@ msgstr "REDARE"
|
||||
|
||||
#, c-format
|
||||
msgid "Moving dish to %.1f..."
|
||||
msgstr ""
|
||||
msgstr "Rotesc antena la %.1f..."
|
||||
|
||||
msgid "ST:TNG Panels"
|
||||
msgstr "Cons. ST:TNG"
|
||||
@ -1499,10 +1530,10 @@ msgid "Switching primary DVB..."
|
||||
msgstr "Comut dispozitiv DVB primar..."
|
||||
|
||||
msgid "Editing process failed!"
|
||||
msgstr "Montajul înregistrării a eşuat"
|
||||
msgstr "Editarea înregistrării a eşuat"
|
||||
|
||||
msgid "Editing process finished"
|
||||
msgstr "Montajul înregistrării s-a terminat"
|
||||
msgstr "Editarea înregistrării s-a încheiat"
|
||||
|
||||
msgid "Press any key to cancel restart"
|
||||
msgstr "Apăsaţi orice tastă pentru a anula repornirea"
|
||||
|
33
po/ru_RU.po
33
po/ru_RU.po
@ -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-12 15:40+0100\n"
|
||||
"POT-Creation-Date: 2015-01-30 13:14+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"
|
||||
@ -20,6 +20,9 @@ msgstr ""
|
||||
msgid "*** Invalid Channel ***"
|
||||
msgstr "*** ½ÕßàÐÒØÛìÝëÙ ÚÐÝÐÛ ***"
|
||||
|
||||
msgid "CAM activated!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Channel not available!"
|
||||
msgstr "ºÐÝÐÛ ÝÕÔÞáâãßÕÝ!"
|
||||
|
||||
@ -1109,9 +1112,19 @@ msgstr "CAM
|
||||
msgid "CAM ready"
|
||||
msgstr "CAM ÓÞâÞÒ"
|
||||
|
||||
#. TRANSLATORS: note the leading blank!
|
||||
msgid " (activating)"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM"
|
||||
msgstr "ÃáÛÞÒÝëÙ ÔÞáâãß"
|
||||
|
||||
msgid "Button$Cancel activation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Activate"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Menu"
|
||||
msgstr "¼ÕÝî"
|
||||
|
||||
@ -1124,6 +1137,9 @@ msgstr "
|
||||
msgid "Can't open CAM menu!"
|
||||
msgstr "¼ÕÝî CAM-ÜÞÔãÛï ÝÕÔÞáâãßÝÞ!"
|
||||
|
||||
msgid "Can't activate CAM!"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM is in use - really reset?"
|
||||
msgstr "CAM ØáßÞÛì×ãÕâáï - ÔÕÙáâÒØâÕÛìÝÞ ßÕàÕÓàã×Øâì?"
|
||||
|
||||
@ -1217,6 +1233,21 @@ msgstr "
|
||||
msgid "Setup.Replay$Pause replay when setting mark"
|
||||
msgstr "¿Ðã×Ð ßàØ ãáâÐÝÞÒÚÕ ÜÐàÚØàÞÒÚØ"
|
||||
|
||||
msgid "Setup.Replay$Pause replay when jumping to a mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Skip edited parts"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Pause replay at last mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip initial value (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip timeout (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Resume ID"
|
||||
msgstr "ID ÒÞáßàÞØ×ÒÕÔÕÝØï"
|
||||
|
||||
|
33
po/sk_SK.po
33
po/sk_SK.po
@ -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-12 15:40+0100\n"
|
||||
"POT-Creation-Date: 2015-01-30 13:14+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"
|
||||
@ -19,6 +19,9 @@ msgstr ""
|
||||
msgid "*** Invalid Channel ***"
|
||||
msgstr "*** Neplatný kanál ***"
|
||||
|
||||
msgid "CAM activated!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Channel not available!"
|
||||
msgstr "Kanál nie je dostupný!"
|
||||
|
||||
@ -1108,9 +1111,19 @@ msgstr "CAM pr
|
||||
msgid "CAM ready"
|
||||
msgstr "CAM pripravený"
|
||||
|
||||
#. TRANSLATORS: note the leading blank!
|
||||
msgid " (activating)"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM"
|
||||
msgstr "CAM (modul podmieneného prístupu)"
|
||||
|
||||
msgid "Button$Cancel activation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Activate"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Menu"
|
||||
msgstr "Menu"
|
||||
|
||||
@ -1123,6 +1136,9 @@ msgstr "Otv
|
||||
msgid "Can't open CAM menu!"
|
||||
msgstr "Menu CAM nie je dostupné"
|
||||
|
||||
msgid "Can't activate CAM!"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM is in use - really reset?"
|
||||
msgstr "CAM sa pou¾íva - naozaj re¹tartova»?"
|
||||
|
||||
@ -1216,6 +1232,21 @@ msgstr "Doba zobrazenia ukazovate
|
||||
msgid "Setup.Replay$Pause replay when setting mark"
|
||||
msgstr "Pozastavi» prehrávanie pri stanovení znaèky"
|
||||
|
||||
msgid "Setup.Replay$Pause replay when jumping to a mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Skip edited parts"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Pause replay at last mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip initial value (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip timeout (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Resume ID"
|
||||
msgstr "ident. èíslo obnovenia prehrávania"
|
||||
|
||||
|
33
po/sl_SI.po
33
po/sl_SI.po
@ -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-12 15:40+0100\n"
|
||||
"POT-Creation-Date: 2015-01-30 13:14+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"
|
||||
@ -20,6 +20,9 @@ msgstr ""
|
||||
msgid "*** Invalid Channel ***"
|
||||
msgstr "*** Neznan kanal ***"
|
||||
|
||||
msgid "CAM activated!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Channel not available!"
|
||||
msgstr "Kanal ni razpolo¾ljiv!"
|
||||
|
||||
@ -1109,9 +1112,19 @@ msgstr "CAM prisoten"
|
||||
msgid "CAM ready"
|
||||
msgstr "CAM pripravljen"
|
||||
|
||||
#. TRANSLATORS: note the leading blank!
|
||||
msgid " (activating)"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM"
|
||||
msgstr "CAM"
|
||||
|
||||
msgid "Button$Cancel activation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Activate"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Menu"
|
||||
msgstr "Meni"
|
||||
|
||||
@ -1124,6 +1137,9 @@ msgstr "Odpiram CAM meni..."
|
||||
msgid "Can't open CAM menu!"
|
||||
msgstr "Ne morem odpreti CAM menija!"
|
||||
|
||||
msgid "Can't activate CAM!"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM is in use - really reset?"
|
||||
msgstr "CAM je v uporabi - zares resetiraj?"
|
||||
|
||||
@ -1217,6 +1233,21 @@ msgstr "Progresivni
|
||||
msgid "Setup.Replay$Pause replay when setting mark"
|
||||
msgstr "Pavza predvajanja pri postavitvi zanèke"
|
||||
|
||||
msgid "Setup.Replay$Pause replay when jumping to a mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Skip edited parts"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Pause replay at last mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip initial value (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip timeout (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Resume ID"
|
||||
msgstr "ID za predvajanje"
|
||||
|
||||
|
33
po/sr_RS.po
33
po/sr_RS.po
@ -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-12 15:40+0100\n"
|
||||
"POT-Creation-Date: 2015-01-30 13:14+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"
|
||||
@ -20,6 +20,9 @@ msgstr ""
|
||||
msgid "*** Invalid Channel ***"
|
||||
msgstr "*** Neispravan Kanal ***"
|
||||
|
||||
msgid "CAM activated!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Channel not available!"
|
||||
msgstr "Kanal nije dostupan!"
|
||||
|
||||
@ -1109,9 +1112,19 @@ msgstr "CAM prisutan"
|
||||
msgid "CAM ready"
|
||||
msgstr "CAM spreman"
|
||||
|
||||
#. TRANSLATORS: note the leading blank!
|
||||
msgid " (activating)"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM"
|
||||
msgstr "CAM"
|
||||
|
||||
msgid "Button$Cancel activation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Activate"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Menu"
|
||||
msgstr "Meni"
|
||||
|
||||
@ -1124,6 +1137,9 @@ msgstr "Otvaram CAM meni..."
|
||||
msgid "Can't open CAM menu!"
|
||||
msgstr "Otvaranje CAM menija neuspe¹no!"
|
||||
|
||||
msgid "Can't activate CAM!"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM is in use - really reset?"
|
||||
msgstr "CAM u upotrebi - stvarno ponovno pokrenuti?"
|
||||
|
||||
@ -1217,6 +1233,21 @@ msgstr "Trajanje prikazivanja progresa (s)"
|
||||
msgid "Setup.Replay$Pause replay when setting mark"
|
||||
msgstr "Pauziraj reprodukciju prilikom obele¾avanja"
|
||||
|
||||
msgid "Setup.Replay$Pause replay when jumping to a mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Skip edited parts"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Pause replay at last mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip initial value (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip timeout (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Resume ID"
|
||||
msgstr "ID reprodukcije"
|
||||
|
||||
|
33
po/sv_SE.po
33
po/sv_SE.po
@ -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-12 15:40+0100\n"
|
||||
"POT-Creation-Date: 2015-01-30 13:14+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"
|
||||
@ -23,6 +23,9 @@ msgstr ""
|
||||
msgid "*** Invalid Channel ***"
|
||||
msgstr "*** Felaktig kanal ***"
|
||||
|
||||
msgid "CAM activated!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Channel not available!"
|
||||
msgstr "Kanalen är inte tillgänglig!"
|
||||
|
||||
@ -1112,9 +1115,19 @@ msgstr "CAM n
|
||||
msgid "CAM ready"
|
||||
msgstr "CAM klar"
|
||||
|
||||
#. TRANSLATORS: note the leading blank!
|
||||
msgid " (activating)"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM"
|
||||
msgstr "CAM"
|
||||
|
||||
msgid "Button$Cancel activation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Activate"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Menu"
|
||||
msgstr "Meny"
|
||||
|
||||
@ -1127,6 +1140,9 @@ msgstr "
|
||||
msgid "Can't open CAM menu!"
|
||||
msgstr "Det går inte att öppna CAM menyn!"
|
||||
|
||||
msgid "Can't activate CAM!"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM is in use - really reset?"
|
||||
msgstr "CAM upptagen, vill du verkligen återställa?"
|
||||
|
||||
@ -1220,6 +1236,21 @@ msgstr "Tid f
|
||||
msgid "Setup.Replay$Pause replay when setting mark"
|
||||
msgstr "Pausa uppspelningen vid sättande av redigeringsmärke"
|
||||
|
||||
msgid "Setup.Replay$Pause replay when jumping to a mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Skip edited parts"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Pause replay at last mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip initial value (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip timeout (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Resume ID"
|
||||
msgstr "Återupptagnings-ID"
|
||||
|
||||
|
33
po/tr_TR.po
33
po/tr_TR.po
@ -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-12 15:40+0100\n"
|
||||
"POT-Creation-Date: 2015-01-30 13:14+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"
|
||||
@ -19,6 +19,9 @@ msgstr ""
|
||||
msgid "*** Invalid Channel ***"
|
||||
msgstr "*** Geçersiz kanal ***"
|
||||
|
||||
msgid "CAM activated!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Channel not available!"
|
||||
msgstr "Kanal kullanýlamýyor!"
|
||||
|
||||
@ -1108,9 +1111,19 @@ msgstr "CAM mevcut"
|
||||
msgid "CAM ready"
|
||||
msgstr "CAM hazýr"
|
||||
|
||||
#. TRANSLATORS: note the leading blank!
|
||||
msgid " (activating)"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM"
|
||||
msgstr "CAM"
|
||||
|
||||
msgid "Button$Cancel activation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Activate"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Menu"
|
||||
msgstr "Menü"
|
||||
|
||||
@ -1123,6 +1136,9 @@ msgstr "CAM men
|
||||
msgid "Can't open CAM menu!"
|
||||
msgstr "CAM menüsü açýlamýyor!"
|
||||
|
||||
msgid "Can't activate CAM!"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM is in use - really reset?"
|
||||
msgstr "CAM kullanýlýyor - gerçekden sýfýrla?"
|
||||
|
||||
@ -1216,6 +1232,21 @@ msgstr ""
|
||||
msgid "Setup.Replay$Pause replay when setting mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Pause replay when jumping to a mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Skip edited parts"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Pause replay at last mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip initial value (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip timeout (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Resume ID"
|
||||
msgstr "Gösteriþ ID'si"
|
||||
|
||||
|
33
po/uk_UA.po
33
po/uk_UA.po
@ -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-12 15:40+0100\n"
|
||||
"POT-Creation-Date: 2015-01-30 13:14+0100\n"
|
||||
"PO-Revision-Date: 2013-02-09 16:00+0100\n"
|
||||
"Last-Translator: Yarema aka Knedlyk <yupadmin@gmail.com>\n"
|
||||
"Language-Team: Ukrainian <vdr@linuxtv.org>\n"
|
||||
@ -20,6 +20,9 @@ msgstr ""
|
||||
msgid "*** Invalid Channel ***"
|
||||
msgstr "*** Неправильний канал ***"
|
||||
|
||||
msgid "CAM activated!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Channel not available!"
|
||||
msgstr "Канал недоступний!"
|
||||
|
||||
@ -1109,9 +1112,19 @@ msgstr "CAM присутній"
|
||||
msgid "CAM ready"
|
||||
msgstr "CAM готовий"
|
||||
|
||||
#. TRANSLATORS: note the leading blank!
|
||||
msgid " (activating)"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM"
|
||||
msgstr "CAM (Умовний доступ)"
|
||||
|
||||
msgid "Button$Cancel activation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Activate"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Menu"
|
||||
msgstr "Меню"
|
||||
|
||||
@ -1124,6 +1137,9 @@ msgstr "Відкривання меню CAM-модуля..."
|
||||
msgid "Can't open CAM menu!"
|
||||
msgstr "Меню CAM-модуля недоступне!"
|
||||
|
||||
msgid "Can't activate CAM!"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM is in use - really reset?"
|
||||
msgstr "CAM використовується - дійсно перезапустити?"
|
||||
|
||||
@ -1217,6 +1233,21 @@ msgstr "Час показу індикатора (с)"
|
||||
msgid "Setup.Replay$Pause replay when setting mark"
|
||||
msgstr "Пауза програвання при встановленні мітки"
|
||||
|
||||
msgid "Setup.Replay$Pause replay when jumping to a mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Skip edited parts"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Pause replay at last mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip initial value (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip timeout (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Resume ID"
|
||||
msgstr "ID продовження"
|
||||
|
||||
|
33
po/zh_CN.po
33
po/zh_CN.po
@ -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-12 15:40+0100\n"
|
||||
"POT-Creation-Date: 2015-01-30 13:14+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"
|
||||
@ -21,6 +21,9 @@ msgstr ""
|
||||
msgid "*** Invalid Channel ***"
|
||||
msgstr "***无效的频道 ***"
|
||||
|
||||
msgid "CAM activated!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Channel not available!"
|
||||
msgstr "频道不可用!"
|
||||
|
||||
@ -1110,9 +1113,19 @@ msgstr "存在的CAM"
|
||||
msgid "CAM ready"
|
||||
msgstr "CAM准备"
|
||||
|
||||
#. TRANSLATORS: note the leading blank!
|
||||
msgid " (activating)"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM"
|
||||
msgstr "CAM设置"
|
||||
|
||||
msgid "Button$Cancel activation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Activate"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Menu"
|
||||
msgstr "菜单"
|
||||
|
||||
@ -1125,6 +1138,9 @@ msgstr "打开CAM菜单..."
|
||||
msgid "Can't open CAM menu!"
|
||||
msgstr "不能打开CAM菜单"
|
||||
|
||||
msgid "Can't activate CAM!"
|
||||
msgstr ""
|
||||
|
||||
msgid "CAM is in use - really reset?"
|
||||
msgstr "CAM正在使用-是否重启?"
|
||||
|
||||
@ -1218,6 +1234,21 @@ msgstr "处理显示时间(s)"
|
||||
msgid "Setup.Replay$Pause replay when setting mark"
|
||||
msgstr "暂停回放时,设置标志"
|
||||
|
||||
msgid "Setup.Replay$Pause replay when jumping to a mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Skip edited parts"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Pause replay at last mark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip initial value (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Binary skip timeout (s)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setup.Replay$Resume ID"
|
||||
msgstr "恢复 ID"
|
||||
|
||||
|
10
recording.c
10
recording.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: recording.c 3.21 2015/01/17 14:52:28 kls Exp $
|
||||
* $Id: recording.c 3.24 2015/01/25 15:39:24 kls Exp $
|
||||
*/
|
||||
|
||||
#include "recording.h"
|
||||
@ -1749,7 +1749,7 @@ void cDirCopier::Action(void)
|
||||
off_t FileSizeSrc = FileSize(FileNameSrc);
|
||||
off_t FileSizeDst = FileSize(FileNameDst);
|
||||
if (FileSizeSrc != FileSizeDst) {
|
||||
esyslog("ERROR: file size discrepancy: %"PRId64" != %"PRId64, FileSizeSrc, FileSizeDst);
|
||||
esyslog("ERROR: file size discrepancy: %" PRId64 " != %" PRId64, FileSizeSrc, FileSizeDst);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -2072,7 +2072,7 @@ bool cMarks::Load(const char *RecordingFileName, double FramesPerSecond, bool Is
|
||||
bool cMarks::Update(void)
|
||||
{
|
||||
time_t t = time(NULL);
|
||||
if (t > nextUpdate) {
|
||||
if (t > nextUpdate && *fileName) {
|
||||
time_t LastModified = LastModifiedTime(fileName);
|
||||
if (LastModified != lastFileTime) // change detected, or first run
|
||||
lastChange = LastModified > 0 ? LastModified : t;
|
||||
@ -2476,7 +2476,7 @@ cIndexFile::cIndexFile(const char *FileName, bool Record, bool IsPesRecording, b
|
||||
delta = int(buf.st_size % sizeof(tIndexTs));
|
||||
if (delta) {
|
||||
delta = sizeof(tIndexTs) - delta;
|
||||
esyslog("ERROR: invalid file size (%"PRId64") in '%s'", buf.st_size, *fileName);
|
||||
esyslog("ERROR: invalid file size (%" PRId64 ") in '%s'", buf.st_size, *fileName);
|
||||
}
|
||||
last = int((buf.st_size + delta) / sizeof(tIndexTs) - 1);
|
||||
if ((!Record || Update) && last >= 0) {
|
||||
@ -2741,7 +2741,7 @@ int cIndexFile::Get(uint16_t FileNumber, off_t FileOffset)
|
||||
return -1;
|
||||
}
|
||||
|
||||
bool cIndexFile::IsStillRecording()
|
||||
bool cIndexFile::IsStillRecording(void)
|
||||
{
|
||||
return f >= 0;
|
||||
}
|
||||
|
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: recording.h 3.5 2015/01/17 14:33:05 kls Exp $
|
||||
* $Id: recording.h 3.6 2015/01/31 13:34:44 kls Exp $
|
||||
*/
|
||||
|
||||
#ifndef __RECORDING_H
|
||||
@ -117,7 +117,6 @@ private:
|
||||
static char *StripEpisodeName(char *s, bool Strip);
|
||||
char *SortName(void) const;
|
||||
void ClearSortName(void);
|
||||
int GetResume(void) const;
|
||||
time_t start;
|
||||
int priority;
|
||||
int lifetime;
|
||||
@ -160,6 +159,9 @@ public:
|
||||
int FileSizeMB(void) const;
|
||||
///< Returns the total file size of this recording (in MB), or -1 if the file
|
||||
///< size is unknown.
|
||||
int GetResume(void) const;
|
||||
///< Returns the index of the frame where replay of this recording shall
|
||||
///< be resumed, or -1 in case of an error.
|
||||
bool IsNew(void) const { return GetResume() <= 0; }
|
||||
bool IsEdited(void) const;
|
||||
bool IsPesRecording(void) const { return isPesRecording; }
|
||||
|
4
remote.c
4
remote.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: remote.c 3.2 2014/02/15 12:40:39 kls Exp $
|
||||
* $Id: remote.c 3.3 2015/01/20 14:53:57 kls Exp $
|
||||
*/
|
||||
|
||||
#include "remote.h"
|
||||
@ -124,7 +124,7 @@ bool cRemote::PutMacro(eKeys Key)
|
||||
bool cRemote::Put(uint64_t Code, bool Repeat, bool Release)
|
||||
{
|
||||
char buffer[32];
|
||||
snprintf(buffer, sizeof(buffer), "%016"PRIX64, Code);
|
||||
snprintf(buffer, sizeof(buffer), "%016" PRIX64, Code);
|
||||
return Put(buffer, Repeat, Release);
|
||||
}
|
||||
|
||||
|
22
scr.conf
22
scr.conf
@ -14,11 +14,17 @@
|
||||
#
|
||||
# Examples:
|
||||
|
||||
# 0 1284
|
||||
# 1 1400
|
||||
# 2 1516
|
||||
# 3 1632
|
||||
# 4 1748
|
||||
# 5 1864
|
||||
# 6 1980
|
||||
# 7 2096
|
||||
# EN50494 & EN50607 ("JESS")
|
||||
# 0 974
|
||||
# 1 1076
|
||||
# 2 1178
|
||||
# 3 1280
|
||||
# 4 1382
|
||||
# 5 1484
|
||||
# 6 1586
|
||||
# 7 1688
|
||||
# EN50607 ("JESS") only
|
||||
# 8 1790
|
||||
# 9 1892
|
||||
# 10 1994
|
||||
# 11 2096
|
||||
|
4
vdr.1
4
vdr.1
@ -8,7 +8,7 @@
|
||||
.\" License as specified in the file COPYING that comes with the
|
||||
.\" vdr distribution.
|
||||
.\"
|
||||
.\" $Id: vdr.1 3.3 2015/01/17 14:46:22 kls Exp $
|
||||
.\" $Id: vdr.1 3.4 2015/01/20 15:34:29 kls Exp $
|
||||
.\"
|
||||
.TH vdr 1 "31 Mar 2013" "2.0" "Video Disk Recorder"
|
||||
.SH NAME
|
||||
@ -299,7 +299,7 @@ also be read at program startup to have the full EPG data available immediately.
|
||||
If this file is present in the video directory, its last modification time will
|
||||
be used to trigger an update of the list of recordings in the "Recordings" menu.
|
||||
.SH SEE ALSO
|
||||
.BR vdr (5), svdrp(1)
|
||||
.BR vdr (5), svdrpsend (1)
|
||||
.SH AUTHOR
|
||||
Written by Klaus Schmidinger, with contributions from many others.
|
||||
See the file \fICONTRIBUTORS\fR in the \fBvdr\fR source distribution.
|
||||
|
Loading…
x
Reference in New Issue
Block a user