diff -Nru vdr-plugin-extrecmenu-1.1/COPYING vdr-plugin-extrecmenu-1.2.2.git20130304/COPYING --- vdr-plugin-extrecmenu-1.1/COPYING 2006-03-06 09:45:25.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/COPYING 2013-03-04 15:56:53.000000000 +0000 @@ -2,7 +2,7 @@ Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -15,7 +15,7 @@ General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to +the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not @@ -55,7 +55,7 @@ The precise terms and conditions for copying, distribution and modification follow. - + GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION @@ -110,7 +110,7 @@ License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) - + These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in @@ -168,7 +168,7 @@ access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. - + 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is @@ -225,7 +225,7 @@ This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. - + 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License @@ -278,7 +278,7 @@ POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS - + How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest @@ -305,7 +305,7 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. @@ -336,5 +336,5 @@ This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General +library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. diff -Nru vdr-plugin-extrecmenu-1.1/HISTORY vdr-plugin-extrecmenu-1.2.2.git20130304/HISTORY --- vdr-plugin-extrecmenu-1.1/HISTORY 2007-10-22 17:30:14.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/HISTORY 2013-03-04 15:56:53.000000000 +0000 @@ -1,6 +1,77 @@ VDR Plugin 'extrecmenu' Revision History ---------------------------------------- +2012-xx-xx: Version 1.2.3 +- [amair] Close replay OSD before starting cutter so that marks are saved to disk (submitted by mini73 @vdr-portal.de). +- [amair] Always use VDR's cutting feature in VDR >=1.7.32. +- [amair] Reduced calls to get the free disk space. +- [amair] Use new MBperMinute() function in VDR >=1.7.27. +- [amair] Fixed compiling with VDR 1.7.28. + +2012-04-29: Version 1.2.2 +- [amair] Updated Italian translation (Submitted by Gringo) (Closes #673). +- [amair] Don't show recordings menu if replay is stopped using kStop (Closes #934). +- [amair] Accept kPlay to start replay in recordings menu (Closes #936). +- [amair] Don't use deprecated member access (introduced in VDR 1.7.21). +- [amair] Changed UniqID() (Fixes #728). +- [amair] Fix prio/lifetime editing for TS recordings for VDR 1.7.18+. +- [amair] "Call plugin after playback" option now is used also if a recording has been watch to its end. + +2011-04-15: Version 1.2.1 +- [amair] Reducing I/O priority for cut/move thread (if VDR >= 1.7.6 is used). +- [amair] Fixed counting of hidden recordings if PIN plugin is used (Bug #421). +- [amair] Change default view for recordings menu to match VDR's recordings menu. +- [amair] "Call plugin after playback" option only changes BACK/EXIT key, BLUE key always jumps to LiveTV (suggested by Brougs78 @vdr-portal.de) +- [amair] Ignore comments in dircmds.conf (Submitted by TomG @vdr-portal.de). +- [amair] Updated Spanish translation (See #616). +- [sibbi] Added ability to configure items that should be shown in recording list. +- [amair] Merged following changes from v1.3-devel head (Submitted by Joe_D @vdr-portal.de). +- [amair] Lifetime and priority for TS recordings can be edited again. +- [amair] Use international characters for renaming recordings and creating directories like VDR. +- [amair] Updated Italian translation (Submitted by Diego Pierotto). +- [amair] Enable support for PIN plugin if USE_PINPLUGIN is set to "1" in Make.config. +- [amair] Reorganiced contrib directory. +- [amair] Fixed compiler warnings and errors. +- [amair] Optinally use VDR's cutting feature (Submitted by Helmut Auer) (Must be enabled by defining EXTRECMENU_USE_VDR_CUTTER as it has some usability issues). +- [amair] Added HDD archive feature (Submitted by Carsten Siebholz). +- [amair] Updated VDRSymbols font to version 20100612. +- [amair] Included Rating patch (Submitted by Carsten Siebholz). +- [amair] Remove obsolete i18n files and scripts. +- [amair] Require at least VDR v1.6.0 or v1.7.14. + +2010-05-29: Version 1.2 [amair] +- New homepage: http://projects.vdr-developer.org/projects/show/plg-extrecmenu + +2010-05-14: Version 1.2-test1-am3 [amair] +- Support new reccmds.conf file as introduced in VDR v1.7.12. +- Edit lifetime and priority only for PES recordings. +- include Make.global. + +2009-06-28: Version 1.2-test1-am2b [amair] +- fixed PES cutting using cutting queue (Reported by tomas @vdr-portal.de). +- fixed some gcc warnings and errors (Based on suggestions by Zzam @vdr-portal.de). + +2009-06-09: Version 1.2-test1-am2a [amair] +- Fixed access to 001.vdr/00001.ts and index.vdr/index (Length in recordings list works again). + +2009-06-09: Version 1.2-test1-am2 [amair] +- Adapt cutter thread to VDR v1.7.3. + +2008-08-19: Version 1.2-test1-am1 [amair] +- fixed wrong help keys if selected recording finishes cutting. +- plugins/extrecmenu/dircmds.conf for recording directory commands (same as reccmds.conf) +- "nice" the action thread. +- Use LimitBandwidth setting also for cutting. + +2008-03-22: Version 1.2-test1 (Martin Prochnow's "final" release) +- added italian translation; thanks to Diego +- added support for GraphTFT-plugin; thanks to Jörg Wendel for the patch +- added support for true type fonts and UTF-8; thanks to Andreas Mair for the + true type font and the patch +- removed patch font routine because it is useless now +- added true type font containing the needed icons +- changed i18n support to gettext + 2007-10-22: Version 1.1 - fixed an issue with starting an editing process; thank to Andreas Mair for the patch diff -Nru vdr-plugin-extrecmenu-1.1/Makefile vdr-plugin-extrecmenu-1.2.2.git20130304/Makefile --- vdr-plugin-extrecmenu-1.1/Makefile 2007-07-31 15:01:34.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/Makefile 2013-03-04 15:56:53.000000000 +0000 @@ -1,14 +1,13 @@ -############################################################################### # -# uncomment if you use the pin-plugin and want to protect your recordings -#WITHPINPLUGIN=1 +# Makefile for a Video Disk Recorder plugin # -############################################################################### - +# $Id$ # The official name of this plugin. # This name will be used in the '-P...' option of VDR to load the plugin. # By default the main source file also carries this name. +# IMPORTANT: the presence of this macro is important for the Make.config +# file. So it must be defined, even if it is not used here! # PLUGIN = extrecmenu @@ -19,7 +18,7 @@ ### The C++ compiler and options: CXX ?= g++ -CXXFLAGS ?= -fPIC -g -O2 -Wall -Woverloaded-virtual +CXXFLAGS ?= -fPIC -g -O2 -Wall -Woverloaded-virtual -Wno-parentheses ### The directory environment: @@ -27,11 +26,23 @@ LIBDIR = ../../lib TMPDIR = /tmp +### Make sure that necessary options are included: + +-include $(VDRDIR)/Make.global + ### Allow user defined options to overwrite defaults: -include $(VDRDIR)/Make.config -### The version number of VDR / VDR's plugin API (taken from VDR's "config.h"): +ifdef USE_PINPLUGIN +DEFINES += -DUSE_PINPLUGIN +endif + +ifdef EXTRECMENU_USE_VDR_CUTTER +DEFINES += -DUSE_VDR_CUTTER +endif + +### The version number of VDR's plugin API (taken from VDR's "config.h"): APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h) @@ -46,21 +57,20 @@ DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"' -ifdef WITHPINPLUGIN - DEFINES+=-DWITHPINPLUGIN -endif - ### The object files (add further files here): -OBJS = $(PLUGIN).o mymenurecordings.o myreplaycontrol.o i18n.o \ - mymenusetup.o mymenucommands.o patchfont.o tools.o mymenueditrecording.o +OBJS = $(PLUGIN).o mymenurecordings.o mymenueditrecording.o myreplaycontrol.o mymenucommands.o mymenusetup.o tools.o + +### The main target: + +all: libvdr-$(PLUGIN).so i18n ### Implicit rules: %.o: %.c $(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $< -# Dependencies: +### Dependencies: MAKEDEP = $(CXX) -MM -MG DEPFILE = .dependencies @@ -69,13 +79,36 @@ -include $(DEPFILE) -### Targets: +### Internationalization (I18N): -all: libvdr-$(PLUGIN).so +PODIR = po +LOCALEDIR = $(VDRDIR)/locale +I18Npo = $(wildcard $(PODIR)/*.po) +I18Nmsgs = $(addprefix $(LOCALEDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file)))))) +I18Npot = $(PODIR)/$(PLUGIN).pot + +%.mo: %.po + msgfmt -c -o $@ $< + +$(I18Npot): $(wildcard *.c) + xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --msgid-bugs-address='' -o $@ $^ + +%.po: $(I18Npot) + msgmerge -U --no-wrap --no-location --backup=none --no-fuzzy-matching -q $@ $< + @touch $@ + +$(I18Nmsgs): $(LOCALEDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo + @mkdir -p $(dir $@) + cp $< $@ + +.PHONY: i18n +i18n: $(I18Nmsgs) $(I18Npot) + +### Targets: libvdr-$(PLUGIN).so: $(OBJS) $(CXX) $(CXXFLAGS) -shared $(OBJS) -o $@ - @cp $@ $(LIBDIR)/$@.$(APIVERSION) + @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION) dist: clean @-rm -rf $(TMPDIR)/$(ARCHIVE) @@ -86,4 +119,4 @@ @echo Distribution package created as $(PACKAGE).tgz clean: - @-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~ + @-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~ $(PODIR)/*.mo $(PODIR)/*.pot diff -Nru vdr-plugin-extrecmenu-1.1/README vdr-plugin-extrecmenu-1.2.2.git20130304/README --- vdr-plugin-extrecmenu-1.1/README 2007-10-07 14:58:49.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/README 2013-03-04 15:56:53.000000000 +0000 @@ -1,7 +1,10 @@ This is a "plugin" for the Video Disk Recorder (VDR). -Written by: Martin Prochnow (nordlicht@martins-kabuff.de) -Project's homepage: http://martins-kabuff.de/extrecmenu_en.html +Current maintainers: see project's homepage +Project's homepage: http://projects.vdr-developer.org/projects/show/plg-extrecmenu + +Original author: Martin Prochnow (nordlicht@martins-kabuff.de) +Original homepage: http://martins-kabuff.de/extrecmenu_en.html See the file COPYING for license information. @@ -10,6 +13,10 @@ - Rolf Ahrenberg for the finnish translation - Patrice Staudt for the frensh translation - Vladimír Bárta for the czech translation +- Diego for the italian translation +- Andreas Mair for the true type font containg the + icons +- Carsten Siebholz for adding HDD Archive compatibility ------------------------------------------------------------------------------- Description @@ -38,14 +45,32 @@ ------------------------------------------------------------------------------- Installation ------------------------------------------------------------------------------- -Installation of the plugin itselfs is like any other plugin installation. Check -the Makefile if you use the PIN-plugin. You have to place the script -'dvdarchive.sh' from the scripts/-directory within your $PATH (maybe adjust the -permissions) for the DVDArchive-patch functionality. See the top of -'dvdarchive.sh' for the adjustments you maybe have to take. +Installation of the plugin itselfs is like any other plugin installation. + +Compile time configuration +------------------------------------------------------------------------------- +Some features of the ExtRecMenu must be activated before compiling the plugin. +This configuration has to be added to the Make.config file in the VDR's source +directory if you want to use it. + +USE_PINPLUGIN = 1 +Add support for protected recordings by using the PIN plugin. + +Font including required symbols +------------------------------------------------------------------------------- +In addition you have to copy the true type font in the ttf/-directory to a +location where freetype will find it (usually /usr/share/fonts/truetype) and +select it in the OSD setup menu of VDR so that the icons which this plugin uses +can be displayed. + +Notes +------------------------------------------------------------------------------- +You have to place the script 'dvdarchive.sh' from the scripts/-directory within +your $PATH (maybe adjust the permissions) for the DVDArchive-patch functionality. +See the top of 'dvdarchive.sh' for the adjustments you maybe have to take. If your /video-directory is a nfs mount, you have to mount it with the option -'hard' to make renaming and moving of recordings work. +'hard' to make renaming and moving of recordings possible. Check the options at the setup menu of the plugin. They are self-explaining. @@ -118,9 +143,3 @@ identifies the dvd as a video dvd. If you now select such a recording in the list you are asked to insert the dvd and after confirming this the DVD-plugin is started to play the video dvd. - -------------------------------------------------------------------------------- -Do you like this plugin? Support the developer! Go to the project homepage and -make a donation over the PayPal button. -------------------------------------------------------------------------------- - diff -Nru vdr-plugin-extrecmenu-1.1/contrib/README vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/README --- vdr-plugin-extrecmenu-1.1/contrib/README 2006-04-10 17:11:36.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/README 2013-03-04 15:56:53.000000000 +0000 @@ -8,7 +8,23 @@ Checks, if a dvd is in the drive. Used optionally by dvdarchive.sh Compile with 'gcc isodetect.c -o isodetect' -vdr-1.3.43-extrecmenu.diff +MainMenuHooks-v1_0.patch ------------------------------------------------------------------------------- A patch to replace VDR's recordings menu with the plugin -Apply with 'patch < vdr-1.3.43.extrecmenu.diff' +Apply with 'patch < MainMenuHooks-v1_0.patch' in VDR's source directory + +hddarchive +------------------------------------------------------------------------------- +see hddarchive/README + +rating +------------------------------------------------------------------------------- +see rating/README. + +reclist +------------------------------------------------------------------------------- +see reclist/README + +vdr-getcountryfrominfo.sh + vdr-getyearfrominfo.sh +------------------------------------------------------------------------------- +sample scripts to get the country/year out of the info file diff -Nru vdr-plugin-extrecmenu-1.1/contrib/hddarchive/README vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/hddarchive/README --- vdr-plugin-extrecmenu-1.1/contrib/hddarchive/README 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/hddarchive/README 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,28 @@ +The hddarchive feature of the extrecmenu plugin is similar to +the dvdarchive feature. Except that the recordings are moved to a +HDD and not burned to a DVD. +In my case, I have an external USB docking station for SATA HDDs in which +I plug in the HDD with the recording to play. + + +Installation +============ + +1. Copy the 'hddarchive.sh' to the same directory like 'dvdarchive.sh' + (in Gentoo Linux it is /usr/bin/hddarchive.sh) +2. Copy the 'hddarchive.conf' to the same directory like 'dvdarchive.conf' + (in Gentoo Linux it is located in /etc/vdr/) +3. Edit the 'hddarchive.conf'. MOUNTPOINT should be an existing path, in + which the HDD will be mounted. +4. Copy the script 'vdr_move_to_hdd.sh' to /usr/local/bin/ +5. Edit /usr/local/bin/vdr_move_to_hdd.sh: check that ARCHIVEHDD is the same + as MOUNTPOINT in 3. + VDRSETTINGSFILE is the path to the gentoo vdr config file (/etc/conf.d/vdr). + This is only used to get the envvar ${VIDEO}. Alternative, You can set + VIDEO=... manually. +6. Add the content of ./reccmds/reccmds.custom.conf to Your reccmds.conf. +7. Create a file hdd.vdr in the root direcory on each archive HDD (/hdd.vdr) + The content is used to identify the HDD and should be unique. + I have used 2 digits 01, 02... "99 harddisks ought to be enough for anybody" ;-) +8. If you use the "live" plugin you may want to patch it with + ./patches/live-ArchiveHDD.patch to support the archive HDDs. diff -Nru vdr-plugin-extrecmenu-1.1/contrib/hddarchive/hddarchive.conf vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/hddarchive/hddarchive.conf --- vdr-plugin-extrecmenu-1.1/contrib/hddarchive/hddarchive.conf 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/hddarchive/hddarchive.conf 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,17 @@ +# config file for /usr/bin/hddarchive.sh +# this is used by vdr-extrecmenu for hddarchives + +# Mountpoint, the same as in fstab +MOUNTPOINT="/mnt/archive-hdd" # no trailing '/' + +# Log warnings/errors in syslog. 1 = yes, 0 = no. +SYSLOG=1 + +# Create a length.vdr after mounting the dvd for the played recording. 1 = yes, 0 = no. +# Only for non-vfat and with index.vdr only on dvd. +GETLENGTH=1 + +# Put debug infos in file $DEBUGLOG. Only if $DEBUG=1. +DEBUG=0 +DEBUGLOG="/tmp/hddarchive.sh-debug.log" + diff -Nru vdr-plugin-extrecmenu-1.1/contrib/hddarchive/patches/live-ArchiveHDD.patch vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/hddarchive/patches/live-ArchiveHDD.patch --- vdr-plugin-extrecmenu-1.1/contrib/hddarchive/patches/live-ArchiveHDD.patch 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/hddarchive/patches/live-ArchiveHDD.patch 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,487 @@ +diff -Nurb live-0.2.0-org/i18n-generated.h live-0.2.0/i18n-generated.h +--- live-0.2.0-org/i18n-generated.h 2008-04-30 21:43:49.000000000 +0200 ++++ live-0.2.0/i18n-generated.h 2008-10-10 12:03:33.000000000 +0200 +@@ -501,6 +501,41 @@ + "", + #endif + }, ++ { "On archive HDD No.", ++ "Auf Archiv-HDD Nr.", ++ "", ++ "In archivio HDD No.", ++ "", ++ "", ++ "Sur le HDD archive no°", ++ "", ++ "Arkistointi-HDD:llä numero", ++ "", ++ "", ++ "", ++ "", ++ "", ++ "", ++ "", ++#if VDRVERSNUM >= 10302 ++ "", ++#endif ++#if VDRVERSNUM >= 10307 ++ "", ++#endif ++#if VDRVERSNUM >= 10313 ++ "", ++#endif ++#if VDRVERSNUM >= 10316 ++ "", ++#endif ++#if VDRVERSNUM >= 10342 ++ "", ++#endif ++#if VDRVERSNUM >= 10502 ++ "", ++#endif ++ }, + { "Couldn't find channel or no channels available.", + "Kann das Programm nicht finden oder keine vorhanden.", + "", +diff -Nurb live-0.2.0-org/i18n.cpp live-0.2.0/i18n.cpp +--- live-0.2.0-org/i18n.cpp 2007-08-19 21:48:54.000000000 +0200 ++++ live-0.2.0/i18n.cpp 2008-10-10 12:03:33.000000000 +0200 +@@ -3564,7 +3564,7 @@ + { "On archive DVD No.", // English + "Auf Archiv-DVD Nr.", // Deutsch + "", // Slovenski +- "", // Italiano ++ "In archivio DVD No.", // Italiano + "", // Nederlands + "", // Portuguęs + "Sur le DVD archive no°", // Français +@@ -3583,6 +3583,28 @@ + "", // Dansk + "", // Czech + }, ++ { "On archive HDD No.", // English ++ "Auf Archiv-HDD Nr.", // Deutsch ++ "", // Slovenski ++ "In archivio HDD No.", // Italiano ++ "", // Nederlands ++ "", // Portuguęs ++ "Sur le HDD archive no°", // Français ++ "", // Norsk ++ "Arkistointi-HDD:llä numero", ++ "", // Polski ++ "", // Espańol ++ "", // Greek ++ "", // Svenska ++ "", // Română ++ "", // Magyar ++ "", // Catalŕ ++ "", // Russian ++ "", // Hrvatski ++ "", // Eesti ++ "", // Dansk ++ "", // Czech ++ }, + { "Starts between", // English + "Beginnt zwischen", // Deutsch + "", // Slovenski +diff -Nurb live-0.2.0-org/po/ca_ES.po live-0.2.0/po/ca_ES.po +--- live-0.2.0-org/po/ca_ES.po 2008-04-21 00:35:22.000000000 +0200 ++++ live-0.2.0/po/ca_ES.po 2008-10-10 12:03:33.000000000 +0200 +@@ -59,6 +59,9 @@ + msgid "On archive DVD No." + msgstr "" + ++msgid "On archive HDD No." ++msgstr "" ++ + msgid "Couldn't find channel or no channels available." + msgstr "" + +diff -Nurb live-0.2.0-org/po/cs_CZ.po live-0.2.0/po/cs_CZ.po +--- live-0.2.0-org/po/cs_CZ.po 2008-04-21 00:35:22.000000000 +0200 ++++ live-0.2.0/po/cs_CZ.po 2008-10-10 12:03:33.000000000 +0200 +@@ -57,6 +57,9 @@ + msgid "On archive DVD No." + msgstr "" + ++msgid "On archive HDD No." ++msgstr "" ++ + msgid "Couldn't find channel or no channels available." + msgstr "" + +diff -Nurb live-0.2.0-org/po/da_DK.po live-0.2.0/po/da_DK.po +--- live-0.2.0-org/po/da_DK.po 2008-04-21 00:35:22.000000000 +0200 ++++ live-0.2.0/po/da_DK.po 2008-10-10 12:03:33.000000000 +0200 +@@ -57,6 +57,9 @@ + msgid "On archive DVD No." + msgstr "" + ++msgid "On archive HDD No." ++msgstr "" ++ + msgid "Couldn't find channel or no channels available." + msgstr "" + +diff -Nurb live-0.2.0-org/po/de_DE.po live-0.2.0/po/de_DE.po +--- live-0.2.0-org/po/de_DE.po 2008-04-21 00:35:22.000000000 +0200 ++++ live-0.2.0/po/de_DE.po 2008-10-10 12:03:33.000000000 +0200 +@@ -59,6 +59,9 @@ + msgid "On archive DVD No." + msgstr "Auf Archiv-DVD Nr." + ++msgid "On archive HDD No." ++msgstr "Auf Archiv-HDD Nr." ++ + msgid "Couldn't find channel or no channels available." + msgstr "Kann das Programm nicht finden oder keine vorhanden." + +diff -Nurb live-0.2.0-org/po/el_GR.po live-0.2.0/po/el_GR.po +--- live-0.2.0-org/po/el_GR.po 2008-04-21 00:35:22.000000000 +0200 ++++ live-0.2.0/po/el_GR.po 2008-10-10 12:03:33.000000000 +0200 +@@ -57,6 +57,9 @@ + msgid "On archive DVD No." + msgstr "" + ++msgid "On archive HDD No." ++msgstr "" ++ + msgid "Couldn't find channel or no channels available." + msgstr "" + +diff -Nurb live-0.2.0-org/po/es_ES.po live-0.2.0/po/es_ES.po +--- live-0.2.0-org/po/es_ES.po 2008-04-21 00:35:22.000000000 +0200 ++++ live-0.2.0/po/es_ES.po 2008-10-10 12:03:33.000000000 +0200 +@@ -57,6 +57,9 @@ + msgid "On archive DVD No." + msgstr "" + ++msgid "On archive HDD No." ++msgstr "" ++ + msgid "Couldn't find channel or no channels available." + msgstr "" + +diff -Nurb live-0.2.0-org/po/et_EE.po live-0.2.0/po/et_EE.po +--- live-0.2.0-org/po/et_EE.po 2008-04-21 00:35:22.000000000 +0200 ++++ live-0.2.0/po/et_EE.po 2008-10-10 12:03:33.000000000 +0200 +@@ -57,6 +57,9 @@ + msgid "On archive DVD No." + msgstr "" + ++msgid "On archive HDD No." ++msgstr "" ++ + msgid "Couldn't find channel or no channels available." + msgstr "" + +diff -Nurb live-0.2.0-org/po/fi_FI.po live-0.2.0/po/fi_FI.po +--- live-0.2.0-org/po/fi_FI.po 2008-04-27 12:49:36.000000000 +0200 ++++ live-0.2.0/po/fi_FI.po 2008-10-10 12:03:33.000000000 +0200 +@@ -57,6 +57,9 @@ + msgid "On archive DVD No." + msgstr "Arkistointi-DVD:llä numero" + ++msgid "On archive HDD No." ++msgstr "Arkistointi-HDD:llä numero" ++ + msgid "Couldn't find channel or no channels available." + msgstr "Kanavaa ei löydy tai yhtään kanavaa ei ole saatavilla." + +diff -Nurb live-0.2.0-org/po/fr_FR.po live-0.2.0/po/fr_FR.po +--- live-0.2.0-org/po/fr_FR.po 2008-04-21 00:35:22.000000000 +0200 ++++ live-0.2.0/po/fr_FR.po 2008-10-10 12:03:33.000000000 +0200 +@@ -60,6 +60,9 @@ + msgid "On archive DVD No." + msgstr "Sur le DVD archive no°" + ++msgid "On archive HDD No." ++msgstr "Sur le HDD archive noä" ++ + msgid "Couldn't find channel or no channels available." + msgstr "Impossible de trouver la chaîne ou pas de chaînes disponibles." + +diff -Nurb live-0.2.0-org/po/hr_HR.po live-0.2.0/po/hr_HR.po +--- live-0.2.0-org/po/hr_HR.po 2008-04-21 00:35:22.000000000 +0200 ++++ live-0.2.0/po/hr_HR.po 2008-10-10 12:03:33.000000000 +0200 +@@ -58,6 +58,9 @@ + msgid "On archive DVD No." + msgstr "" + ++msgid "On archive HDD No." ++msgstr "" ++ + msgid "Couldn't find channel or no channels available." + msgstr "" + +diff -Nurb live-0.2.0-org/po/hu_HU.po live-0.2.0/po/hu_HU.po +--- live-0.2.0-org/po/hu_HU.po 2008-04-21 00:35:22.000000000 +0200 ++++ live-0.2.0/po/hu_HU.po 2008-10-10 12:03:33.000000000 +0200 +@@ -58,6 +58,9 @@ + msgid "On archive DVD No." + msgstr "" + ++msgid "On archive HDD No." ++msgstr "" ++ + msgid "Couldn't find channel or no channels available." + msgstr "" + +diff -Nurb live-0.2.0-org/po/it_IT.po live-0.2.0/po/it_IT.po +--- live-0.2.0-org/po/it_IT.po 2008-04-21 00:35:22.000000000 +0200 ++++ live-0.2.0/po/it_IT.po 2008-10-10 12:03:33.000000000 +0200 +@@ -59,6 +59,9 @@ + msgid "On archive DVD No." + msgstr "In archivio DVD No." + ++msgid "On archive HDD No." ++msgstr "In archivio HDD No." ++ + msgid "Couldn't find channel or no channels available." + msgstr "Impossibile trovare canale o canali disponibili." + +diff -Nurb live-0.2.0-org/po/nl_NL.po live-0.2.0/po/nl_NL.po +--- live-0.2.0-org/po/nl_NL.po 2008-04-21 00:35:22.000000000 +0200 ++++ live-0.2.0/po/nl_NL.po 2008-10-10 12:03:33.000000000 +0200 +@@ -60,6 +60,9 @@ + msgid "On archive DVD No." + msgstr "" + ++msgid "On archive HDD No." ++msgstr "" ++ + msgid "Couldn't find channel or no channels available." + msgstr "" + +diff -Nurb live-0.2.0-org/po/nn_NO.po live-0.2.0/po/nn_NO.po +--- live-0.2.0-org/po/nn_NO.po 2008-04-21 00:35:22.000000000 +0200 ++++ live-0.2.0/po/nn_NO.po 2008-10-10 12:03:33.000000000 +0200 +@@ -58,6 +58,9 @@ + msgid "On archive DVD No." + msgstr "" + ++msgid "On archive HDD No." ++msgstr "" ++ + msgid "Couldn't find channel or no channels available." + msgstr "" + +diff -Nurb live-0.2.0-org/po/pl_PL.po live-0.2.0/po/pl_PL.po +--- live-0.2.0-org/po/pl_PL.po 2008-04-21 00:35:22.000000000 +0200 ++++ live-0.2.0/po/pl_PL.po 2008-10-10 12:03:33.000000000 +0200 +@@ -57,6 +57,9 @@ + msgid "On archive DVD No." + msgstr "" + ++msgid "On archive HDD No." ++msgstr "" ++ + msgid "Couldn't find channel or no channels available." + msgstr "" + +diff -Nurb live-0.2.0-org/po/pt_PT.po live-0.2.0/po/pt_PT.po +--- live-0.2.0-org/po/pt_PT.po 2008-04-21 00:35:22.000000000 +0200 ++++ live-0.2.0/po/pt_PT.po 2008-10-10 12:03:33.000000000 +0200 +@@ -57,6 +57,9 @@ + msgid "On archive DVD No." + msgstr "" + ++msgid "On archive HDD No." ++msgstr "" ++ + msgid "Couldn't find channel or no channels available." + msgstr "" + +diff -Nurb live-0.2.0-org/po/ro_RO.po live-0.2.0/po/ro_RO.po +--- live-0.2.0-org/po/ro_RO.po 2008-04-21 00:35:22.000000000 +0200 ++++ live-0.2.0/po/ro_RO.po 2008-10-10 12:03:33.000000000 +0200 +@@ -58,6 +58,9 @@ + msgid "On archive DVD No." + msgstr "" + ++msgid "On archive HDD No." ++msgstr "" ++ + msgid "Couldn't find channel or no channels available." + msgstr "" + +diff -Nurb live-0.2.0-org/po/ru_RU.po live-0.2.0/po/ru_RU.po +--- live-0.2.0-org/po/ru_RU.po 2008-04-21 00:35:22.000000000 +0200 ++++ live-0.2.0/po/ru_RU.po 2008-10-10 12:03:33.000000000 +0200 +@@ -57,6 +57,9 @@ + msgid "On archive DVD No." + msgstr "" + ++msgid "On archive HDD No." ++msgstr "" ++ + msgid "Couldn't find channel or no channels available." + msgstr "" + +diff -Nurb live-0.2.0-org/po/sl_SI.po live-0.2.0/po/sl_SI.po +--- live-0.2.0-org/po/sl_SI.po 2008-04-21 00:35:22.000000000 +0200 ++++ live-0.2.0/po/sl_SI.po 2008-10-10 12:03:33.000000000 +0200 +@@ -58,6 +58,9 @@ + msgid "On archive DVD No." + msgstr "" + ++msgid "On archive HDD No." ++msgstr "" ++ + msgid "Couldn't find channel or no channels available." + msgstr "" + +diff -Nurb live-0.2.0-org/po/sv_SE.po live-0.2.0/po/sv_SE.po +--- live-0.2.0-org/po/sv_SE.po 2008-04-21 00:35:22.000000000 +0200 ++++ live-0.2.0/po/sv_SE.po 2008-10-10 12:03:33.000000000 +0200 +@@ -58,6 +58,9 @@ + msgid "On archive DVD No." + msgstr "" + ++msgid "On archive HDD No." ++msgstr "" ++ + msgid "Couldn't find channel or no channels available." + msgstr "" + +diff -Nurb live-0.2.0-org/po/tr_TR.po live-0.2.0/po/tr_TR.po +--- live-0.2.0-org/po/tr_TR.po 2008-04-21 00:35:22.000000000 +0200 ++++ live-0.2.0/po/tr_TR.po 2008-10-10 12:03:33.000000000 +0200 +@@ -58,6 +58,9 @@ + msgid "On archive DVD No." + msgstr "" + ++msgid "On archive HDD No." ++msgstr "" ++ + msgid "Couldn't find channel or no channels available." + msgstr "" + +diff -Nurb live-0.2.0-org/recman.cpp live-0.2.0/recman.cpp +--- live-0.2.0-org/recman.cpp 2008-10-10 12:06:17.000000000 +0200 ++++ live-0.2.0/recman.cpp 2008-10-10 12:09:00.000000000 +0200 +@@ -1,5 +1,4 @@ + #include +-#include + #include + #include + #include +@@ -13,6 +12,7 @@ + #include "recman.h" + + #define INDEXFILESUFFIX "/index.vdr" ++#define LENGTHFILESUFFIX "/length.vdr" + + using namespace std::tr1; + using namespace std; +@@ -101,24 +101,28 @@ + Recordings.DelByName(name.c_str()); + } + +- bool RecordingsManager::IsArchived(cRecording const * recording) ++ int RecordingsManager::GetArchiveType(cRecording const * recording) + { + string filename = recording->FileName(); + +- string vdrFile = filename + "/001.vdr"; +- if (0 == access(vdrFile.c_str(), R_OK)) +- return false; +- +- filename += "/dvd.vdr"; +- return (0 == access(filename.c_str(), R_OK)); ++ string dvdFile = filename + "/dvd.vdr"; ++ if (0 == access(dvdFile.c_str(), R_OK)) { ++ return 1; ++ } ++ string hddFile = filename + "/hdd.vdr"; ++ if (0 == access(hddFile.c_str(), R_OK)) { ++ return 2; ++ } ++ return 0; + } + +- string const RecordingsManager::GetArchiveId(cRecording const * recording) ++ string const RecordingsManager::GetArchiveId(cRecording const * recording, int archiveType) + { + string filename = recording->FileName(); + +- filename += "/dvd.vdr"; +- ifstream dvd(filename.c_str()); ++ if (archiveType==1) { ++ string dvdFile = filename + "/dvd.vdr"; ++ ifstream dvd(dvdFile.c_str()); + + if (dvd) { + string archiveDisc; +@@ -130,17 +134,35 @@ + } + return archiveDisc; + } ++ } else if(archiveType==2) { ++ string hddFile = filename + "/hdd.vdr"; ++ ifstream hdd(hddFile.c_str()); ++ ++ if (hdd) { ++ string archiveDisc; ++ hdd >> archiveDisc; ++ return archiveDisc; ++ } ++ } + return ""; + } + + string const RecordingsManager::GetArchiveDescr(cRecording const * recording) + { ++ int archiveType; + string archived; +- if (IsArchived(recording)) { ++ archiveType = GetArchiveType(recording); ++ if (archiveType==1) { + archived += " ["; + archived += tr("On archive DVD No."); + archived += ": "; +- archived += GetArchiveId(recording); ++ archived += GetArchiveId(recording, archiveType); ++ archived += "]"; ++ } else if (archiveType==2) { ++ archived += " ["; ++ archived += tr("On archive HDD No."); ++ archived += ": "; ++ archived += GetArchiveId(recording, archiveType); + archived += "]"; + } + return archived; +@@ -266,6 +266,13 @@ + } + delete index; + #endif ++ if (RecLength == 0) { ++ cString lengthFile = cString::sprintf("%s%s", m_recording->FileName(), LENGTHFILESUFFIX); ++ ifstream length(*lengthFile); ++ if(length) ++ length >> RecLength; ++ } ++ + return RecLength; + } + +diff -Nurb live-0.2.0-org/recman.h live-0.2.0/recman.h +--- live-0.2.0-org/recman.h 2008-04-08 19:52:00.000000000 +0200 ++++ live-0.2.0/recman.h 2008-10-10 12:03:33.000000000 +0200 +@@ -78,14 +78,14 @@ + * Determine wether the recording has been archived on + * removable media (e.g. DVD-ROM) + */ +- static bool IsArchived(cRecording const * recording); ++ static int GetArchiveType(cRecording const * recording); + + /** + * Provide an identification of the removable media + * (e.g. DVD-ROM Number or Name) where the recording has + * been archived. + */ +- static std::string const GetArchiveId(cRecording const * recording); ++ static std::string const GetArchiveId(cRecording const * recording, int archiveType); + + static std::string const GetArchiveDescr(cRecording const * recording); + diff -Nru vdr-plugin-extrecmenu-1.1/contrib/hddarchive/reccmds/reccmds.custom.conf vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/hddarchive/reccmds/reccmds.custom.conf --- vdr-plugin-extrecmenu-1.1/contrib/hddarchive/reccmds/reccmds.custom.conf 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/hddarchive/reccmds/reccmds.custom.conf 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1 @@ +Move to Archive-HDD: /usr/share/vdr/bin/vdr-bg.sh /usr/local/bin/vdr_move_to_hdd.sh diff -Nru vdr-plugin-extrecmenu-1.1/contrib/hddarchive/reccmds/reccmds.custom.conf.de vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/hddarchive/reccmds/reccmds.custom.conf.de --- vdr-plugin-extrecmenu-1.1/contrib/hddarchive/reccmds/reccmds.custom.conf.de 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/hddarchive/reccmds/reccmds.custom.conf.de 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1 @@ +Auf Archiv-HDD verschieben: /usr/share/vdr/bin/vdr-bg.sh /usr/local/bin/vdr_move_to_hdd.sh diff -Nru vdr-plugin-extrecmenu-1.1/contrib/hddarchive/vdr_move_to_hdd.sh vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/hddarchive/vdr_move_to_hdd.sh --- vdr-plugin-extrecmenu-1.1/contrib/hddarchive/vdr_move_to_hdd.sh 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/hddarchive/vdr_move_to_hdd.sh 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,116 @@ +#!/bin/bash + +#LOGFILE=~/vdr_move_to_hdd.log + +#ARCHIVEHDD=~/Archive-HDD +ARCHIVEHDD=/mnt/archive-hdd + +#VDRSETTINGSFILE=~/vdr +VDRSETTINGSFILE=/etc/conf.d/vdr + +source ${VDRSETTINGSFILE} + +HDDMOUNTED=0 + + +#echo "" > ${LOGFILE} + +# Test, if recording has already moved? +if [ -f ${SRC_FULLPATH}/hdd.vdr ]; then + svdrpsend.pl mesg "Recording has already been moved to Archive-HDD!" +# echo "Recording has already been moved to Archive-HDD!" >> ${LOGFILE} + exit 1 +fi + + +# Test, if Archive-HDD can be mounted +if [ ! -f ${ARCHIVEHDD}/hdd.vdr ]; then + mount ${ARCHIVEHDD} + HDDMOUNTED=1 +fi +if [ ! -f ${ARCHIVEHDD}/hdd.vdr ]; then + svdrpsend.pl mesg "Archive-HDD could not be mounted!" +# echo "Archive-HDD could not be mounted!" >> ${LOGFILE} + exit 1 +fi + + +#echo "PARAMETER = $1" >> ${LOGFILE} +#echo "VDRSETTINGSFILE= ${VDRSETTINGSFILE}" >> ${LOGFILE} +#echo "VIDEO = ${VIDEO}" >> ${LOGFILE} +#echo "ARCHIVEHDD = ${ARCHIVEHDD}" >> ${LOGFILE} +#echo "" >> ${LOGFILE} + +VID_FULLPATH="`cd \"$VIDEO\" 2>/dev/null && pwd || echo \"$VIDEO\"`/" +#echo "VID_FULLPATH = ${VID_FULLPATH}" >> ${LOGFILE} + +SRC_FULLPATH="`cd \"$1\" 2>/dev/null && pwd || echo \"${1}\"`/" +#echo "SRC_FULLPATH = ${SRC_FULLPATH}" >> ${LOGFILE} +#echo "" >> ${LOGFILE} + + + +#RELPATH=$(echo ${SRC_FULLPATH} | sed -e "s#$VID_FULLPATH##") +RELPATH=${SRC_FULLPATH#$VID_FULLPATH} +#echo "RELPATH = ${RELPATH}" >> ${LOGFILE} + +MODPATH=$(echo "$RELPATH" | awk ' +BEGIN{ + FS="/"; +} +{ + MODPATH=""; + #printf "0: %s\n", MODPATH; + for (i=1; i<=NF; i++) { + if ((i==NF-2) && (index($i, "%")==1)) { # cutted movie + #printf "replace\n"; + MODPATH=MODPATH "" substr ($i, 2); + } else { + #printf "original\n"; + MODPATH=MODPATH "" $i; + } + if (i> ${LOGFILE} + +mkdir -p ${ARCHIVEHDD}/${MODPATH} +for i in ${SRC_FULLPATH}/0??.vdr; do + if [ -e "${i}" ]; then + B=$(basename $i) + svdrpsend.pl mesg "Moving $B..." +# sleep 5 + mv ${i} ${ARCHIVEHDD}/${MODPATH} + fi +done +for i in ${SRC_FULLPATH}/0????.ts; do + if [ -e "${i}" ]; then + B=$(basename $i) + svdrpsend.pl mesg "Moving $B..." +# sleep 5 + mv ${i} ${ARCHIVEHDD}/${MODPATH} + fi +done +mv ${SRC_FULLPATH}/index.vdr ${ARCHIVEHDD}/${MODPATH} +mv ${SRC_FULLPATH}/index ${ARCHIVEHDD}/${MODPATH} +cp ${SRC_FULLPATH}/info.vdr ${ARCHIVEHDD}/${MODPATH} +cp ${SRC_FULLPATH}/info ${ARCHIVEHDD}/${MODPATH} +rm ${SRC_FULLPATH}/resume.vdr +rm ${SRC_FULLPATH}/resume +rm ${SRC_FULLPATH}/marks.vdr +rm ${SRC_FULLPATH}/marks +cp ${ARCHIVEHDD}/hdd.vdr ${SRC_FULLPATH}/ + + +if [ "${HDDMOUNTED}" == "1" ]; then +# svdrpsend.pl mesg "umount." +# sleep 5 + umount ${ARCHIVEHDD} +#else +# svdrpsend.pl mesg "NO umount." +# sleep 5 +fi + +svdrpsend.pl mesg "Successfully moved Recording to Archive-HDD." diff -Nru vdr-plugin-extrecmenu-1.1/contrib/rating/README vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/rating/README --- vdr-plugin-extrecmenu-1.1/contrib/rating/README 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/rating/README 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,12 @@ +The rating feature of the extrecmenu plugin gives the possibility +to rate recordings. These ratings are shown in the Recordings menu +with up to 5 stars. + + +Installation +============ + +1. Copy ./vdr-rate-recording.sh to Your local file system +2. Edit your reccmds.conf file: add entries to rate a recording. + You may want to use ./reccmds/reccmds.custom.conf as a starting point. + Modify the path to vdr-rate-recording.sh (if neccessary) diff -Nru vdr-plugin-extrecmenu-1.1/contrib/rating/reccmds/reccmds.custom.conf vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/rating/reccmds/reccmds.custom.conf --- vdr-plugin-extrecmenu-1.1/contrib/rating/reccmds/reccmds.custom.conf 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/rating/reccmds/reccmds.custom.conf 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,12 @@ +=== Rate Recording === : echo "no function" +-rate with 10: /usr/share/vdr/bin/vdr-rate-recording.sh 10 +-rate with 9: /usr/share/vdr/bin/vdr-rate-recording.sh 9 +-rate with 8: /usr/share/vdr/bin/vdr-rate-recording.sh 8 +-rate with 7: /usr/share/vdr/bin/vdr-rate-recording.sh 7 +-rate with 6: /usr/share/vdr/bin/vdr-rate-recording.sh 6 +-rate with 5: /usr/share/vdr/bin/vdr-rate-recording.sh 5 +-rate with 4: /usr/share/vdr/bin/vdr-rate-recording.sh 4 +-rate with 3: /usr/share/vdr/bin/vdr-rate-recording.sh 3 +-rate with 2: /usr/share/vdr/bin/vdr-rate-recording.sh 2 +-rate with 1: /usr/share/vdr/bin/vdr-rate-recording.sh 1 +-remove rating: /usr/share/vdr/bin/vdr-rate-recording.sh 0 diff -Nru vdr-plugin-extrecmenu-1.1/contrib/rating/reccmds/reccmds.custom.conf.de vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/rating/reccmds/reccmds.custom.conf.de --- vdr-plugin-extrecmenu-1.1/contrib/rating/reccmds/reccmds.custom.conf.de 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/rating/reccmds/reccmds.custom.conf.de 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,12 @@ +=== Aufnahme bewerten === : echo "no function" +-bewerte mit 10: /usr/share/vdr/bin/vdr-rate-recording.sh 10 +-bewerte mit 9: /usr/share/vdr/bin/vdr-rate-recording.sh 9 +-bewerte mit 8: /usr/share/vdr/bin/vdr-rate-recording.sh 8 +-bewerte mit 7: /usr/share/vdr/bin/vdr-rate-recording.sh 7 +-bewerte mit 6: /usr/share/vdr/bin/vdr-rate-recording.sh 6 +-bewerte mit 5: /usr/share/vdr/bin/vdr-rate-recording.sh 5 +-bewerte mit 4: /usr/share/vdr/bin/vdr-rate-recording.sh 4 +-bewerte mit 3: /usr/share/vdr/bin/vdr-rate-recording.sh 3 +-bewerte mit 2: /usr/share/vdr/bin/vdr-rate-recording.sh 2 +-bewerte mit 1: /usr/share/vdr/bin/vdr-rate-recording.sh 1 +-entferne Bewertung: /usr/share/vdr/bin/vdr-rate-recording.sh 0 diff -Nru vdr-plugin-extrecmenu-1.1/contrib/rating/vdr-rate-recording.sh vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/rating/vdr-rate-recording.sh --- vdr-plugin-extrecmenu-1.1/contrib/rating/vdr-rate-recording.sh 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/rating/vdr-rate-recording.sh 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,8 @@ +#!/bin/sh + +[ $? -ne 2 ] && echo "Usage: $0 " && exit 1 + +rm ${2}/rated.vdr >/dev/null 2>&1 +if [ ! ${1} = "0" ]; then + echo "${1}" > $2/rated.vdr +fi diff -Nru vdr-plugin-extrecmenu-1.1/contrib/reclist/README vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/reclist/README --- vdr-plugin-extrecmenu-1.1/contrib/reclist/README 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/reclist/README 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,42 @@ +The reclist is independent of the extrecmenu plugin. +It's nothing else than a set of scripts to create a 'database' of all +recordings. And to create different user defined outputs of this DB. + + +Installation +============ + +1. Copy the include scripts to /usr/local/bin +2. Edit vdr_set_values_for_recording_lists.sh to meet Your needs. + VIDEODIR should contain Your video directory (eg: /video) + RECLISTDIR is the directory, the list will be created in + RECLISTFILE is the filename of the list + All other parameters are values to define the layout of the output +3. Edit Your commands.conf file: + You may want to use ./commands/commands.reclist.conf as a starting point. + Modify the path to vdr_get_recordings.sh and + vdr_generate_recording_list.sh (if neccessary) + + +Explanation of the scripts +-------------------------- +vdr_set_values_for_recording_lists.sh + sets values to generate the list and to generate the user defined outputs +vdr_get_recordings.sh + scans all recordings and calls 'vdr_add_recording.sh' for each recording +vdr_add_recording.sh + calls 'vdr_create_recording_list_entry.awk' to create an entry for each recording +vdr_create_recording_list_entry.awk + does the real work. It extracts the neccessary values out of info or info.vdr + and stores them in the reclist. Currently these values will be extracted: + Title, Genre, Country, Year, Length, Date, Size, Media, Path. +vdr_generate_recording_list.sh + creates the user defined outputs of the list. + usage: vdr_generate_recording_list.sh + where = (title|genre|country|year|length|date|size|media|path) + and = (all|head|tail) + 'all' shows all entries, 'head' shows the first n entries, 'tail' the last n entries + where n id the LINES_PER_PAGE defined in vdr_set_values_for_recording_lists.sh +vdr_crop_output.sh + is just a script for convenience. It can crop a lengthy output to the first/last + LINES_PER_PAGE lines diff -Nru vdr-plugin-extrecmenu-1.1/contrib/reclist/commands/commands.reclist.conf vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/reclist/commands/commands.reclist.conf --- vdr-plugin-extrecmenu-1.1/contrib/reclist/commands/commands.reclist.conf 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/reclist/commands/commands.reclist.conf 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,15 @@ +List of Recordings commands { + generate list of recordings : /usr/share/vdr/bin/vdr-bg.sh /usr/local/bin/vdr_get_recordings.sh + Recordings sorted by title : vdr_generate_recording_list.sh title all + Recordings sorted by genre : vdr_generate_recording_list.sh genre all + Recordings sorted by country : vdr_generate_recording_list.sh country all + Recordings sorted by year : vdr_generate_recording_list.sh year all + Recordings sorted by length : vdr_generate_recording_list.sh length all + Recordings sorted by media : vdr_generate_recording_list.sh media all + Recordings sorted by path : vdr_generate_recording_list.sh path all + Recordings sorted by size : vdr_generate_recording_list.sh size tail + '' (w/o Tatort+Kochen) : vdr_generate_recording_list.sh size all | grep -v "Kochen/" | grep -v "Tatort/" | vdr_crop_output.sh tail + '' (w/o Tatort,Kochen+Musik) : vdr_generate_recording_list.sh size all | grep -v "Kochen/" | grep -v "Tatort/" | grep -v "Musik/" | vdr_crop_output.sh tail + '' (only Movies) : vdr_generate_recording_list.sh size all | grep "Spielfilme/" | vdr_crop_output.sh tail + show newest Recordings : vdr_generate_recording_list.sh date tail +} diff -Nru vdr-plugin-extrecmenu-1.1/contrib/reclist/commands/commands.reclist.conf.de vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/reclist/commands/commands.reclist.conf.de --- vdr-plugin-extrecmenu-1.1/contrib/reclist/commands/commands.reclist.conf.de 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/reclist/commands/commands.reclist.conf.de 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,15 @@ +Liste der Aufnahmen { + generiere Liste der Aufnahmen : /usr/share/vdr/bin/vdr-bg.sh /usr/local/bin/vdr_get_recordings.sh + Aufnahmen sortiert nach Titel : vdr_generate_recording_list.sh title all + Aufnahmen sortiert nach Genre : vdr_generate_recording_list.sh genre all + Aufnahmen sortiert nach Land : vdr_generate_recording_list.sh country all + Aufnahmen sortiert nach Jahr : vdr_generate_recording_list.sh year all + Aufnahmen sortiert nach Länge : vdr_generate_recording_list.sh length all + Aufnahmen sortiert nach Medium : vdr_generate_recording_list.sh media all + Aufnahmen sortiert nach Verzeichnis : vdr_generate_recording_list.sh path all + Aufnahmen sortiert nach Größe : vdr_generate_recording_list.sh size tail + '' (ohne Tatort+Kochen) : vdr_generate_recording_list.sh size all | grep -v "Kochen/" | grep -v "Tatort/" | vdr_crop_output.sh tail + '' (ohne Tatort,Kochen+Musik) : vdr_generate_recording_list.sh size all | grep -v "Kochen/" | grep -v "Tatort/" | grep -v "Musik/" | vdr_crop_output.sh tail + '' (nur Spielfilme) : vdr_generate_recording_list.sh size all | grep "Spielfilme/" | vdr_crop_output.sh tail + neueste Aufnahmen anzeigen : vdr_generate_recording_list.sh date tail +} diff -Nru vdr-plugin-extrecmenu-1.1/contrib/reclist/vdr_add_recording.sh vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/reclist/vdr_add_recording.sh --- vdr-plugin-extrecmenu-1.1/contrib/reclist/vdr_add_recording.sh 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/reclist/vdr_add_recording.sh 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,13 @@ +#!/bin/sh + + +echo "${1}" | \ + awk -f /usr/local/bin/vdr_create_recording_list_entry.awk basedir="${VIDEODIR}" Seperator="${SEPERATOR}" \ + LenTitle="${LEN_TITLE}" \ + LenGenre="${LEN_GENRE}" \ + LenCountry="${LEN_COUNTRY}" \ + LenYear="${LEN_YEAR}" \ + LenLength="${LEN_LENGTH}" \ + LenDate="${LEN_DATE}" \ + LenSize="${LEN_SIZE}" \ + LenMedia="${LEN_MEDIA}" >> ${RECLISTDIR}/${RECLISTFILE} \ No newline at end of file diff -Nru vdr-plugin-extrecmenu-1.1/contrib/reclist/vdr_create_recording_list_entry.awk vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/reclist/vdr_create_recording_list_entry.awk --- vdr-plugin-extrecmenu-1.1/contrib/reclist/vdr_create_recording_list_entry.awk 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/reclist/vdr_create_recording_list_entry.awk 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,302 @@ +BEGIN { + debug=4; + BLANK=" "; + TAG_RECORDING=".rec"; + + + # set default values if not defined + if (basedir == "") {basedir="/var/vdr/data/_video/";} + if (Seperator == "") {Seperator="|";} + if (LenTitle == "") {LenTitle=50;} + if (LenGenre == "") {LenGenre=20;} + if (LenCountry == "") {LenCountry=5;} + if (LenYear == "") {LenYear=4;} + if (LenLength == "") {LenLength=4;} + if (LenDate == "") {LenDate=10;} + if (LenSize == "") {LenSize=9;} + if (LenMedia == "") {LenMedia=8;} +} + +{ + InputParam=$0 + InfoFile=InputParam; + if (debug>0) printf("InfoFile :%s\n", InfoFile) > "/dev/stderr"; + InfoFileBasename=""; + + Title=""; + SubTitle=""; + Genre=""; + Country=""; + Year=""; + Length=""; + Date=""; + Size=""; + Media="Internal"; + Path=""; + + Len=""; + Nr="----"; + FullDir=""; + + n = split (InfoFile, p, "/"); + if (debug>2) { + for (i=1; i<=n; i++) { + printf("p[%d] :%s\n", i, p[i]) > "/dev/stderr"; + } + } + if (n>2) { + Dir = p[1]; + FullDir = p[1]; + if (debug>2) printf("FullDir1 :%s\n", FullDir) > "/dev/stderr"; + InfoFileBasename = p[n]; + for (i=2; i<=n-1; i++) { + if (i<=n-2) { + Dir = Dir "/" p[i]; + if (debug>2) printf("Dir 2 :%s\n", Dir) > "/dev/stderr"; + } else { + Date = substr(p[i],1, 10); + if (debug>2) printf("Date :%s\n", Date) > "/dev/stderr"; + } + FullDir = FullDir "/" p[i]; + if (debug>2) printf("FullDir2 :%s\n", FullDir) > "/dev/stderr"; + } + if (index(Dir, basedir)==1) { + Path = substr(Dir, length(basedir)+1); + if (debug>2) printf("Path :%s\n", Path) > "/dev/stderr"; + } + } + if (FullDir != "") { + EscDir = FullDir; + gsub(/\"/, "\\\"", EscDir); + if (debug>0) printf("EscDir :%s\n", EscDir) > "/dev/stderr"; + getsize = "du \""EscDir"\""; + if ((getsize | getline duRes) > 0) { + n = split(duRes, s, " "); + Size = s[1]; + if (debug>1) printf("Size :%s\n", Size) > "/dev/stderr"; + close(getsize) + } + } + + + # check, if recording is valid (not deleted) + if (match(EscDir, /rec$/)) { + + # check for length file + LenFile=InputParam; + sub( InfoFileBasename, "length.vdr", LenFile ); + if (debug>0) printf("Looking for length...\n") > "/dev/stderr"; + if (debug>1) printf("LenFile1 :%s\n", LenFile) > "/dev/stderr"; + getline Len < LenFile; + if (debug>1) printf("Len 1 :%s\n", Len) > "/dev/stderr"; + if (Len != "") { + Length = sprintf("%d:%02d", Len/60, Len%60); + } else { + IndexFile=InputParam; + sub( InfoFileBasename, "index.vdr", IndexFile ); + gsub(/\"/, "\\\"", IndexFile); + if (debug>1) printf("IndexFile:%s\n", IndexFile) > "/dev/stderr"; + $1=""; + "stat -L -c %s \""IndexFile"\" 2>/dev/null" | getline; + if (debug>2) printf("Len 2 :%s\t%s\n", $1, IndexFile) > "/dev/stderr"; + if ($1 != "") { + Len=($1/12000); + if (debug>1) printf("Len 3 :%s\n", Len) > "/dev/stderr"; + Length = sprintf("%d:%02d", Len/60, Len%60); + } + } + + + # check for archive DVD + ExtFile=InputParam; + sub( InfoFileBasename, "dvd.vdr", ExtFile ); + if (debug>0) printf("Looking for archive DVD...\n") > "/dev/stderr"; + if (debug>1) printf("ExtFile1 :%s\n", ExtFile) > "/dev/stderr"; + getline Nr < ExtFile; + if (debug>1) printf("Nr 1 :%s\n", Nr) > "/dev/stderr"; + if (Nr != "----") { + Media="DVD "Nr; + } else { + # check for archive HDD + ExtFile=InputParam; + sub( InfoFileBasename, "hdd.vdr", ExtFile ); + if (debug>0) printf("Looking for archive HDD...\n") > "/dev/stderr"; + if (debug>1) printf("ExtFile2 :%s\n", ExtFile) > "/dev/stderr"; + getline Nr < ExtFile; + if (debug>1) printf("Nr 2 :%s\n", Nr) > "/dev/stderr"; + if (Nr != "----") { + Media="HDD "Nr; + } + } + + + do { + rc=getline line < InfoFile; + if ( rc>0 ) { + if ( substr(line, 1, 1)=="T" ) { + Title=substr(line, 3); + } else if ( substr(line, 1, 1)=="S" ) { + SubTitle=substr(line, 3); + } else if ( substr(line, 1, 1)=="D" ) { + + # D Horrorfilm, USA 1999||... + line=substr(line, 3); + # Horrorfilm, USA 1999||... + if (debug>2) printf("line3:%s\n", line) > "/dev/stderr"; + + if (debug>0) printf("Looking for values...\n") > "/dev/stderr"; + + # get Genre from tag (...|Genre: xxx|...) + Genre2=line; + if (debug>0) printf("Looking for Genre... ( tag '...|Genre: xxx|...' )\n") > "/dev/stderr"; + startIndex=index(Genre2, "|Genre: "); + if (startIndex>0) { + Genre3=substr(Genre2, startIndex+8); + if (debug>2) printf("c3 :%s\n", Genre3) > "/dev/stderr"; + stopIndex=index(Genre3, "|"); + if (stopIndex>1) { + Genre4=substr(Genre3, 0, stopIndex-1); + Genre=Genre4; + if (debug>1) printf("Found Genre: %s\n", Genre) > "/dev/stderr"; + } + } + + # get Year from tag (...|Year: xxx|...) + Year2=line; + if (debug>0) printf("Looking for Year... ( tag '...|Year: xxx|...' )\n") > "/dev/stderr"; + startIndex=index(Year2, "|Year: "); + if (startIndex>0) { + Year3=substr(Year2, startIndex+7); + if (debug>2) printf("y3 :%s\n", Year3) > "/dev/stderr"; + stopIndex=index(Year3, "|"); + if (stopIndex>1) { + Year4=substr(Year3, 0, stopIndex-1); + Year=Year4; + if (debug>1) printf("Found Year: %s\n", Year) > "/dev/stderr"; + } + } + + # get Country (and Year if not already filled) from tag (...|Land: XXX YYYY|...) + if(Country=="" || Year=="") { + Country2=line; + if (debug>0) printf("Looking for Country or Year... ( tag '...|Land: XXX YYYY|...' )\n") > "/dev/stderr"; + startIndex=index(Country2, "|Land: "); + if (startIndex>0) { + Country3=substr(Country2, startIndex+7); # USA 1999|... + if (debug>2) printf("c3 :%s\n", Country3) > "/dev/stderr"; + stopIndex=index(Country3, "|"); + if (stopIndex>1) { + Country4=substr(Country3, 0, stopIndex-1); # USA 1999 + if (debug>2) printf("c4 :%s\n", Country4) > "/dev/stderr"; + gsub(/^ +/, "", Country4); + gsub(/ +$/, "", Country4); + gsub(/ +/, " ", Country4); # USA 1999 + if (debug>2) printf("c5 :%s\n", Country4) > "/dev/stderr"; + n = split (Country4, F2, / *[, ] */ ); # split to 'USA' '1999' + for (i=1; i<=n; i++) { + if (match (F2[i], /^[0-9]+$/)) { # only digits + if (Year=="") { + Year = F2[i]; + if (debug>1) printf("Found Year: %s\n", Year) > "/dev/stderr"; + } + } else { + if (match (F2[i], /^[A-Z/]+$/)) { # only UPPERCASE + if (Country=="") { + Country = F2[i]; + if (debug>1) printf("Found Country: %s\n", Country) > "/dev/stderr"; + } + } + } + } + } + } + } + + + # if not filled already, get Genre, Country and Year from the beginning of the line (Horrorfilm, USA 1999||...) + if(Genre=="" || Country=="" || Year=="") { + if (debug>0) printf("Looking for Genre, Country or Year... ( tag 'D Horrorfilm, USA 1999||...' )\n") > "/dev/stderr"; + n = split (line, F1, "|"); + # F1[1]: Horrorfilm, USA 1999 + gsub(/^ +/, "", F1[1]); + gsub(/ +$/, "", F1[1]); + if (debug>2) printf("b1: F1[1]:%s\n", F1[1]) > "/dev/stderr"; + n = split (F1[1], F2, / *[, ] */ ); # split to 'Horrorfilm' 'USA' '1999' + for (i=1; i<=n; i++) { + if (debug>2) printf("b2: F2[%d]:%s\n", i, F2[i]) > "/dev/stderr"; + if (match (F2[i], /^[0-9]+$/)) { # only digits + if (Year=="") { + Year = F2[i]; + if (debug>1) printf("Found Year: %s\n", Year) > "/dev/stderr"; + } + } else { + if (match (F2[i], /^[A-Z/]+$/)) { # only UPPERCASE + if (Country=="") { + Country = F2[i]; + if (debug>1) printf("Found Country: %s\n", Country) > "/dev/stderr"; + } + } else { + if (Genre=="") { + Genre = F2[i]; + if (debug>1) printf("Found Genre: %s\n", Genre) > "/dev/stderr"; + } + } + } + } + } + + } else { + if (debug>2) printf("l :%s\n", line) > "/dev/stderr"; + } + } + } while (rc>0); +# close("/dev/stderr"); + + if (debug>0) { + printf("Title :%s\n", Title) > "/dev/stderr"; + printf("SubTitle :%s\n", SubTitle) > "/dev/stderr"; + printf("Genre :%s\n", Genre) > "/dev/stderr"; + printf("Country :%s\n", Country) > "/dev/stderr"; + printf("Year :%s\n", Year) > "/dev/stderr"; + printf("Length :%s\n", Length) > "/dev/stderr"; + printf("Date :%s\n", Date) > "/dev/stderr"; + printf("Size :%s\n", Size) > "/dev/stderr"; + printf("Media :%s\n", Media) > "/dev/stderr"; + printf("Path :%s\n\n\n", Path) > "/dev/stderr"; + } + + if (SubTitle != "") { + Title = Title": "SubTitle; + } + if (length(Title)>LenTitle) { Title = substr(Title, 1, LenTitle) }; + printf("%-"LenTitle"s%s", Title, Seperator); + + if (length(Genre)>LenGenre) { Genre = substr(Genre, 1, LenGenre) }; + printf("%-"LenGenre"s%s", Genre, Seperator); + + if (length(Media)>LenCountry) { Country = substr(Country, 1, LenCountry) }; + printf("%-"LenCountry"s%s", Country, Seperator); + + if (length(Year)>LenYear) { Year = substr(Year, length(Year)-LenYear+1, LenYear) }; + printf("%"LenYear"s%s", Year, Seperator); + + if (length(Media)>LenLength) { Length = substr(Length, length(Length)-LenLength+1, LenLength) }; + printf("%-"LenLength"s%s", Length, Seperator); + + if (length(Date)>LenDate) { Date = substr(Date, length(Date)-LenDate+1, LenDate) }; + printf("%"LenDate"s%s", Date, Seperator); + + if (length(Size)>LenSize) { Size = substr(Size, length(Size)-LenSize+1, LenSize) }; + printf("%"LenSize"s%s", Size, Seperator); + + if (length(Media)>LenMedia) { Media = substr(Media, length(Media)-LenMedia+1, LenMedia) }; + printf("%-"LenMedia"s%s", Media, Seperator); + + printf("%s\n", Path); + } else { + if (debug>1) printf("No regular recording. Ignoring.\n") > "/dev/stderr"; + } +} + +END { +} \ No newline at end of file diff -Nru vdr-plugin-extrecmenu-1.1/contrib/reclist/vdr_crop_output.sh vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/reclist/vdr_crop_output.sh --- vdr-plugin-extrecmenu-1.1/contrib/reclist/vdr_crop_output.sh 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/reclist/vdr_crop_output.sh 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,34 @@ +#!/bin/bash + +PRGNAME=$(basename $0) + +usage() { + echo "usage: ${PRGNAME} (all|head|tail)" +} + +what=${1} +if [[ -z ${what} ]]; then + usage + exit +fi + + + +# set values for the positions of each column and the sortpositions +. vdr_set_values_for_recording_lists.sh + + + +# crop vertically / lines +if [ "$what" == "head" ] ; then + LINEFILTER=" head -n ${LINES_PER_PAGE} |" +elif [ "$what" == "tail" ] ; then + LINEFILTER=" tail -n ${LINES_PER_PAGE} |" +else + LINEFILTER="" +fi + + +COMMAND="cat /dev/stdin | ${LINEFILTER} cut -b 1-${CHARS_PER_LINE}" +#echo "cmd: ${COMMAND}" +eval "${COMMAND}" diff -Nru vdr-plugin-extrecmenu-1.1/contrib/reclist/vdr_generate_recording_list.sh vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/reclist/vdr_generate_recording_list.sh --- vdr-plugin-extrecmenu-1.1/contrib/reclist/vdr_generate_recording_list.sh 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/reclist/vdr_generate_recording_list.sh 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,194 @@ +#!/bin/bash + +usage() { + echo "usage: ${PRGNAME} " + echo " where = (title|genre|country|year|length|date|size|media|path)" + echo " and = (all|head|tail)" +} + +PRGNAME=$(basename $0) +type=${1} +what=${2} + +if [[ -z ${type} ]]; then + usage + exit +fi +if [[ -z ${what} ]]; then + usage + exit +fi + + + +# set values for the column length +. vdr_set_values_for_recording_lists.sh + + + +# crop vertically / lines per page +if [ "$what" == "head" ] ; then + LINEFILTER=" head -n ${LINES_PER_PAGE} |" +elif [ "$what" == "tail" ] ; then + LINEFILTER=" tail -n ${LINES_PER_PAGE} |" +else + LINEFILTER="" +fi + + + +if [ "$type" == "title" ] ; then + COMMAND="cat ${RECLISTDIR}/${RECLISTFILE} | sort -t'|' -d -b -f -k 1 | ${LINEFILTER} awk ' \ + BEGIN{FS=\"|\"} { \ + c1=\$1; l1=32; \ + c2=\$2; l2=10; \ + c3=\$3; l3=3; \ + c4=\$4; l4=4; \ + c5=\$5; l5=4; \ + c6=\$8; l6=1; \ + printf (\"%-*s %-*s %-*s %-*s %-*s %-*s\n\", \ + l1, substr(c1,1,l1), \ + l2, substr(c2,1,l2), \ + l3, substr(c3,1,l3), \ + l4, substr(c4,1,l4), \ + l5, substr(c5,1,l5), \ + l6, substr(c6,1,l6) ); \ + }'" + +elif [ "$type" == "genre" ] ; then + COMMAND="cat ${RECLISTDIR}/${RECLISTFILE} | sort -t'|' -d -b -f -k2,2 -k1,1 | ${LINEFILTER} awk ' \ + BEGIN{FS=\"|\"} { \ + c1=\$2; l1=20; \ + c2=\$1; l2=22; \ + c3=\$3; l3=3; \ + c4=\$4; l4=4; \ + c5=\$5; l5=4; \ + c6=\$8; l6=1; \ + printf (\"%-*s %-*s %-*s %-*s %-*s %-*s\n\", \ + l1, substr(c1,1,l1), \ + l2, substr(c2,1,l2), \ + l3, substr(c3,1,l3), \ + l4, substr(c4,1,l4), \ + l5, substr(c5,1,l5), \ + l6, substr(c6,1,l6) ); \ + }'" + +elif [ "$type" == "country" ] ; then + COMMAND="cat ${RECLISTDIR}/${RECLISTFILE} | sort -t'|' -d -b -f -k3,3 -k1,1 | ${LINEFILTER} awk ' \ + BEGIN{FS=\"|\"} { \ + c1=\$3; l1=5; \ + c2=\$1; l2=30; \ + c3=\$2; l3=10; \ + c4=\$4; l4=4; \ + c5=\$5; l5=4; \ + c6=\$8; l6=1; \ + printf (\"%-*s %-*s %-*s %-*s %-*s %-*s\n\", \ + l1, substr(c1,1,l1), \ + l2, substr(c2,1,l2), \ + l3, substr(c3,1,l3), \ + l4, substr(c4,1,l4), \ + l5, substr(c5,1,l5), \ + l6, substr(c6,1,l6) ); \ + }'" + +elif [ "$type" == "year" ] ; then + COMMAND="cat ${RECLISTDIR}/${RECLISTFILE} | sort -t'|' -k4,4 -k1,1 | ${LINEFILTER} awk ' \ + BEGIN{FS=\"|\"} { \ + c1=\$4; l1=4; \ + c2=\$1; l2=32; \ + c3=\$2; l3=10; \ + c4=\$3; l4=3; \ + c5=\$5; l5=4; \ + c6=\$8; l6=1; \ + printf (\"%-*s %-*s %-*s %-*s %-*s %-*s\n\", \ + l1, substr(c1,1,l1), \ + l2, substr(c2,1,l2), \ + l3, substr(c3,1,l3), \ + l4, substr(c4,1,l4), \ + l5, substr(c5,1,l5), \ + l6, substr(c6,1,l6) ); \ + }'" + +elif [ "$type" == "length" ] ; then + COMMAND="cat ${RECLISTDIR}/${RECLISTFILE} | sort -t'|' -d -b -f -k5,5 -k1,1 | ${LINEFILTER} awk ' \ + BEGIN{FS=\"|\"} { \ + c1=\$5; l1=4; \ + c2=\$1; l2=32; \ + c3=\$2; l3=10; \ + c4=\$3; l4=3; \ + c5=\$4; l5=4; \ + c6=\$8; l6=1; \ + printf (\"%-*s %-*s %-*s %-*s %-*s %-*s\n\", \ + l1, substr(c1,1,l1), \ + l2, substr(c2,1,l2), \ + l3, substr(c3,1,l3), \ + l4, substr(c4,1,l4), \ + l5, substr(c5,1,l5), \ + l6, substr(c6,1,l6) ); \ + }'" + +elif [ "$type" == "date" ] ; then + COMMAND="cat ${RECLISTDIR}/${RECLISTFILE} | sort -t'|' -d -b -f -k6,6 -k1,1 | ${LINEFILTER} awk ' \ + BEGIN{FS=\"|\"} { \ + c1=\$6; l1=10; \ + c2=\$1; l2=22; \ + c3=\$2; l3=9; \ + c4=\$3; l4=3; \ + c5=\$4; l5=4; \ + c6=\$5; l6=4; \ + c7=\$8; l7=1; \ + printf (\"%-*s %-*s %-*s %-*s %-*s %-*s %-*s\n\", \ + l1, substr(c1,1,l1), \ + l2, substr(c2,1,l2), \ + l3, substr(c3,1,l3), \ + l4, substr(c4,1,l4), \ + l5, substr(c5,1,l5), \ + l6, substr(c6,1,l6), \ + l7, substr(c7,1,l7) ); \ + }'" + +elif [ "$type" == "size" ] ; then + COMMAND="cat ${RECLISTDIR}/${RECLISTFILE} | sort -t'|' -n -k7,7 -k1,1 | ${LINEFILTER} awk ' \ + BEGIN{FS=\"|\"} { \ + c1=\$7; l1=9; \ + c2=\$9; l2=49; \ + printf (\"%-*s %-*s\n\", \ + l1, substr(c1,1,l1), \ + l2, substr(c2,1,l2) ); \ + }'" + +elif [ "$type" == "media" ] ; then + COMMAND="cat ${RECLISTDIR}/${RECLISTFILE} | sort -t'|' -d -b -f -k8,8 -k1,1 | ${LINEFILTER} awk ' \ + BEGIN{FS=\"|\"} { \ + c1=\$8; l1=8; \ + c2=\$1; l2=25; \ + c3=\$2; l3=10; \ + c4=\$3; l4=3; \ + c5=\$4; l5=4; \ + c6=\$5; l6=4; \ + printf (\"%-*s %-*s %-*s %-*s %-*s %-*s\n\", \ + l1, substr(c1,1,l1), \ + l2, substr(c2,1,l2), \ + l3, substr(c3,1,l3), \ + l4, substr(c4,1,l4), \ + l5, substr(c5,1,l5), \ + l6, substr(c6,1,l6) ); \ + }'" + +elif [ "$type" == "path" ] ; then + COMMAND="cat ${RECLISTDIR}/${RECLISTFILE} | sort -t'|' -d -b -f -k9,9 | ${LINEFILTER} awk ' \ + BEGIN{FS=\"|\"} { \ + c1=\$9; l1=59; \ + printf (\"%-*s\n\", \ + l1, substr(c1,1,l1) ); \ + }'" + +fi + + +# crop horizontally / chars per line +COMMAND="${COMMAND} | cut -b 1-${CHARS_PER_LINE}" + + +#echo "cmd: ${COMMAND}" +eval "${COMMAND}" diff -Nru vdr-plugin-extrecmenu-1.1/contrib/reclist/vdr_get_recordings.sh vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/reclist/vdr_get_recordings.sh --- vdr-plugin-extrecmenu-1.1/contrib/reclist/vdr_get_recordings.sh 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/reclist/vdr_get_recordings.sh 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,33 @@ +#!/bin/sh + +# set values for the length of each column +. vdr_set_values_for_recording_lists.sh + +#echo "LEN_TITLE : ${LEN_TITLE}" +#echo "LEN_GENRE : ${LEN_GENRE}" +#echo "LEN_COUNTRY : ${LEN_COUNTRY}" +#echo "LEN_YEAR : ${LEN_YEAR}" +#echo "LEN_LENGTH : ${LEN_LENGTH}" +#echo "LEN_DATE : ${LEN_DATE}" +#echo "LEN_SIZE : ${LEN_SIZE}" +#echo "LEN_MEDIA : ${LEN_MEDIA}" +#echo "LEN_PATH : ${LEN_PATH}" + +#echo "VIDEODIR : ${VIDEODIR}" + +# find the info.vdr files and let awk create a recording list entry +rm ${RECLISTDIR}/${RECLISTFILE} 2>/dev/null + +find ${VIDEODIR} -name 'info.vdr' -exec vdr_add_recording.sh \{\} \; +find ${VIDEODIR} -name 'info' -exec vdr_add_recording.sh \{\} \; + +#find ${VIDEODIR} -name info.vdr -exec echo "{}" \; | \ +# awk -f /usr/local/bin/vdr_create_recording_list_entry.awk basedir="${VIDEODIR}" Seperator="${SEPERATOR}" \ +# LenTitle="${LEN_TITLE}" \ +# LenGenre="${LEN_GENRE}" \ +# LenCountry="${LEN_COUNTRY}" \ +# LenYear="${LEN_YEAR}" \ +# LenLength="${LEN_LENGTH}" \ +# LenDate="${LEN_DATE}" \ +# LenSize="${LEN_SIZE}" \ +# LenMedia="${LEN_MEDIA}" >> ${RECLISTDIR}/${RECLISTFILE} \ No newline at end of file diff -Nru vdr-plugin-extrecmenu-1.1/contrib/reclist/vdr_set_values_for_recording_lists.sh vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/reclist/vdr_set_values_for_recording_lists.sh --- vdr-plugin-extrecmenu-1.1/contrib/reclist/vdr_set_values_for_recording_lists.sh 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/reclist/vdr_set_values_for_recording_lists.sh 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh + +source /etc/conf.d/vdr +export VIDEODIR="${VIDEO}/" +export RECLISTDIR="$(dirname ${EPGFILE})/" +#export RECLISTDIR="/root/t/" +export RECLISTFILE="vdr_recordings.lst" + +PAGE_WIDTH=1139 +PAGE_HEIGHT=395 +FONTFIXSIZE=$[$(grep "FontFixSize " /etc/vdr/setup.conf | awk 'BEGIN{FS="="}{print $2}')] + +#export CHARS_PER_LINE=$[${PAGE_WIDTH}/(${FONTFIXSIZE}+1)] +export CHARS_PER_LINE=59 +#echo "CHARS_PER_LINE: ${CHARS_PER_LINE}" +#export LINES_PER_PAGE=$[${PAGE_HEIGHT}/${FONTFIXSIZE}] +export LINES_PER_PAGE=21 +#echo "LINES_PER_PAGE: ${LINES_PER_PAGE}" + + +export SEPERATOR="|" + + +export LEN_TITLE=50 +export LEN_GENRE=20 +export LEN_COUNTRY=8 +export LEN_YEAR=4 +export LEN_LENGTH=4 +export LEN_DATE=10 +export LEN_SIZE=9 +export LEN_MEDIA=8 diff -Nru vdr-plugin-extrecmenu-1.1/contrib/vdr-getcountryfrominfo.sh vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/vdr-getcountryfrominfo.sh --- vdr-plugin-extrecmenu-1.1/contrib/vdr-getcountryfrominfo.sh 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/vdr-getcountryfrominfo.sh 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,28 @@ +#!/bin/sh + +# old info file +infofile="$1/info.vdr" + +# use new info file if available +if [ -e "$1/info" ]; then + infofile="$1/info" +fi + +# try "Land: XXX 2010" first +country=`cat "${infofile}" | grep '|Land:' | sed -e 's/.*|Land: \([^ ]*\).*/\1/g'` +#echo "country1:>${country}<" + +if [ "$country" == "" ]; then + country=`cat ${infofile} | grep '|Country:' | sed -e 's/.*|Country: \([^|]*\).*/\1/g'` + #echo "country2:>${country}<" +fi + +if [ "$country" == "" ]; then + country=`cat ${infofile} | grep -e '^D .*' | sed -e 's/^D [^, ]*[, ]*\([A-Z/]*\).*/\1/g'` + #echo "country3:>${country}<" +fi + +if [ ! "$country" == "" ]; then + echo "${country}" > "$1/country.vdr" + echo "${country}" +fi diff -Nru vdr-plugin-extrecmenu-1.1/contrib/vdr-getyearfrominfo.sh vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/vdr-getyearfrominfo.sh --- vdr-plugin-extrecmenu-1.1/contrib/vdr-getyearfrominfo.sh 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/contrib/vdr-getyearfrominfo.sh 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,19 @@ +#!/bin/sh + +# old info file +infofile="$1/info.vdr" + +# use new info file if available +if [ -e "$1/info" ]; then + infofile="$1/info" +fi + +#try "|Year: XXXX|" first +year=`cat "${infofile}" | grep '|Year:' | sed -e 's/.*|Year: \([0-9]*\)|.*/\1/g'` +#echo "year1:>${year}<" + + +if [ ! "$year" == "" ]; then + echo "${year}" > "$1/year.vdr" + echo "${year}" +fi diff -Nru vdr-plugin-extrecmenu-1.1/debian/README.source vdr-plugin-extrecmenu-1.2.2.git20130304/debian/README.source --- vdr-plugin-extrecmenu-1.1/debian/README.source 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/debian/README.source 2010-09-01 12:33:21.000000000 +0000 @@ -0,0 +1,7 @@ +This package uses the dpatch system to save and apply patches to the +upstream source code of the software that is packaged. For details +about how to use dpatch read + + /usr/share/doc/dpatch/README.source.gz + +from the dpatch package. diff -Nru vdr-plugin-extrecmenu-1.1/debian/changelog vdr-plugin-extrecmenu-1.2.2.git20130304/debian/changelog --- vdr-plugin-extrecmenu-1.1/debian/changelog 2013-03-04 16:12:13.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/debian/changelog 2013-03-04 16:02:03.000000000 +0000 @@ -1,15 +1,121 @@ -vdr-plugin-extrecmenu (1.1-8ubuntu1) lucid; urgency=low +vdr-plugin-extrecmenu (1.2.2.git20130304-0yavdr0~precise) precise; urgency=low - * Fix FTBFS with gcc 4.4 (LP: #569917) - - Add debian/patches/02_fix_ftbfs_gcc_4.4.dpatch + * New upstream snapshot + * removed save-marks.diff patch - -- Felix Geyer Sun, 25 Apr 2010 23:10:04 +0200 -vdr-plugin-extrecmenu (1.1-8build1) intrepid; urgency=low + -- Marcus Brimmer Mon, 04 Mar 2013 16:40:36 +0100 - * Sync from e-tobi.net, no Ubuntu changes. +vdr-plugin-extrecmenu (1.2.2.git20120627-1yavdr3~precise) precise; urgency=medium - -- Timo Aaltonen Fri, 15 Aug 2008 10:51:44 +0300 + * rebuild + + -- Lars Hanisch Sun, 09 Dec 2012 19:23:42 +0100 + +vdr-plugin-extrecmenu (1.2.2.git20120627-1yavdr2~precise) precise; urgency=medium + + * rebuild + + -- Lars Hanisch Wed, 05 Dec 2012 21:04:08 +0100 + +vdr-plugin-extrecmenu (1.2.2.git20120627-1yavdr1~precise) precise; urgency=medium + + * rebuild + + -- Lars Hanisch Sat, 01 Dec 2012 15:51:21 +0100 + +vdr-plugin-extrecmenu (1.2.2.git20120627-1yavdr0~precise) precise; urgency=medium + + * hide replay control before cut to save marks + + -- Lars Hanisch Tue, 27 Nov 2012 19:16:08 +0100 + +vdr-plugin-extrecmenu (1.2.2.git20120627-0yavdr4~precise) precise; urgency=medium + + * rebuild + + -- Lars Hanisch Wed, 21 Nov 2012 20:02:45 +0100 + +vdr-plugin-extrecmenu (1.2.2.git20120627-0yavdr3~precise) precise; urgency=medium + + * rebuild + + -- Holger Schvestka Wed, 21 Nov 2012 13:14:58 +0200 + +vdr-plugin-extrecmenu (1.2.2.git20120627-0yavdr2~preciseubuntu1) precise; urgency=medium + + * use vdr cutter + + -- Lars Hanisch Wed, 21 Nov 2012 10:03:32 +0100 + +vdr-plugin-extrecmenu (1.2.2.git20120627-0yavdr1~precise) precise; urgency=medium + + * rebuild + + -- Holger Schvestka Thu, 11 Oct 2012 11:14:58 +0200 + +vdr-plugin-extrecmenu (1.2.2.git20120627-0yavdr0~precise) precise; urgency=medium + + * New upstream snapshot + + -- Holger Schvestka Wed, 27 Jun 2012 08:45:34 +0100 + +vdr-plugin-extrecmenu (1.2.1+git20111005-1yavdr2~precise) precise; urgency=medium + + * rebuild USE_GRAPHTFT=1 + + -- Holger Schvestka Wed, 11 Apr 2012 11:22:04 +0200 + +vdr-plugin-extrecmenu (1.2+git20110415-1yavdr1~lucid) lucid; urgency=low + + * rebuild USE_PINPLUGIN=1 + + -- Holger Schvestka Tue, 12 Apr 2011 10:24:19 +0200 + +vdr-plugin-extrecmenu (1.2+git20110402-0yavdr0~lucid) lucid; urgency=low + + * New upstream snapshot + + -- Holger Schvestka Sat, 02 Apr 2011 12:45:34 +0100 + +vdr-plugin-extrecmenu (1.2~test1-12yavdr1) lucid; urgency=low + + * added 90_extrecmenu-1.2-test1-am3.dpatch + * removed 90_extrecmenu-1.2-test1-am2b.dpatch + * removed 91_vdr-1.7.12-extrec + + -- Holger Schvestka Thu, 14 May 2010 13:46:30 +0100 + +vdr-plugin-extrecmenu (1.2~test1-3) experimental; urgency=low + + * Added 91_vdr-1.7.12-extrec.dpatch + * Standards-Version: 3.8.4 + + -- Thomas GĂźnther Mon, 15 Mar 2010 18:05:54 +0100 + +vdr-plugin-extrecmenu (1.2~test1-2) experimental; urgency=low + + * Removed non-standard shebang line from debian/rules + * Added README.source + * Standards-Version: 3.8.3 + + -- Tobias Grimm Mon, 09 Nov 2009 19:36:23 +0100 + +vdr-plugin-extrecmenu (1.2~test1-1) experimental; urgency=low + + * New upstream test version downloaded from + http://martins-kabuff.de/download/vdr-extrecmenu-1.2-test1.tgz + * Added 90_extrecmenu-1.2-test1-am2b.dpatch + * Added gettext to Build-Depends + * Added installation of locale files + * Added ${misc:Depends} + * Bumped standards version to 3.8.1 + * Updated debian/copyright + * Changed section to "video" + * Removed debian/docs (not necessary with cdbs) + * Removed DVBDIR from debian/rules + + -- Thomas GĂźnther Fri, 31 Jul 2009 00:07:13 +0200 vdr-plugin-extrecmenu (1.1-8) experimental; urgency=low diff -Nru vdr-plugin-extrecmenu-1.1/debian/compat vdr-plugin-extrecmenu-1.2.2.git20130304/debian/compat --- vdr-plugin-extrecmenu-1.1/debian/compat 2013-03-04 16:12:13.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/debian/compat 2010-09-01 13:17:48.000000000 +0000 @@ -1 +1 @@ -5 +7 diff -Nru vdr-plugin-extrecmenu-1.1/debian/control vdr-plugin-extrecmenu-1.2.2.git20130304/debian/control --- vdr-plugin-extrecmenu-1.1/debian/control 2013-03-04 16:12:13.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/debian/control 2012-04-11 09:43:57.000000000 +0000 @@ -1,17 +1,16 @@ Source: vdr-plugin-extrecmenu -Section: misc +Section: video Priority: extra -Maintainer: Ubuntu Developers -XSBC-Original-Maintainer: Debian VDR Team -Uploaders: Thomas GĂźnther , Tobias Grimm , Thomas Schmidt -Build-Depends: debhelper (>= 5), cdbs, dpatch, vdr-dev (>= 1.6.0-5) -Standards-Version: 3.8.0 +Maintainer: Debian VDR Team +Uploaders: Thomas GĂźnther , Tobias Grimm , Thomas Schmidt +Build-Depends: debhelper (>= 7.0.50~), vdr-dev (>= 1.7.20), gettext +Standards-Version: 3.9.2 Vcs-Svn: svn://svn.debian.org/pkg-vdr-dvb/vdr/vdr-plugin-extrecmenu/trunk/ Vcs-Browser: http://svn.debian.org/wsvn/pkg-vdr-dvb/vdr/vdr-plugin-extrecmenu/trunk/ Package: vdr-plugin-extrecmenu Architecture: any -Depends: ${shlibs:Depends}, ${vdr:Depends} +Depends: ${shlibs:Depends}, ${misc:Depends}, ${vdr:Depends} Description: Plugin for vdr for an enhanced recordings menu This plugin provides a recordings menu enhanced with the possibility to rename or move recordings. diff -Nru vdr-plugin-extrecmenu-1.1/debian/copyright vdr-plugin-extrecmenu-1.2.2.git20130304/debian/copyright --- vdr-plugin-extrecmenu-1.1/debian/copyright 2013-03-04 16:12:13.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/debian/copyright 2010-09-01 12:33:21.000000000 +0000 @@ -5,17 +5,18 @@ Martin Prochnow Debian Maintainers: - Tobias Grimm + Tobias Grimm Thomas GĂźnther Thomas Schmidt Stefan Wagner Copyright: - (C) 2006 - 2007 Martin Prochnow + (C) 2006 - 2008 Martin Prochnow (C) 2006 Mike Constabel (dvdarchive.sh) Copyright (Debian packaging): - (C) 2006 - 2008 Tobias Grimm, Thomas GĂźnther, Thomas Schmidt + (C) 2006 - 2010 Tobias Grimm, Thomas GĂźnther, Thomas Schmidt + (C) 2006 Stefan Wagner License: This program is free software; you can redistribute it and/or modify @@ -28,14 +29,13 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - 02110-1301, USA. + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. The complete text of the GNU General Public License can be found - in /usr/share/common-licenses/GPL on most Debian systems. + in /usr/share/common-licenses/GPL-2 on most Debian systems. License (Debian packaging): The Debian packaging is licensed under the GPL, version 2 or any - later version, see /usr/share/common-licenses/GPL. + later version, see /usr/share/common-licenses/GPL-2. diff -Nru vdr-plugin-extrecmenu-1.1/debian/docs vdr-plugin-extrecmenu-1.2.2.git20130304/debian/docs --- vdr-plugin-extrecmenu-1.1/debian/docs 2013-03-04 16:12:13.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/debian/docs 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -README diff -Nru vdr-plugin-extrecmenu-1.1/debian/install vdr-plugin-extrecmenu-1.2.2.git20130304/debian/install --- vdr-plugin-extrecmenu-1.1/debian/install 2013-03-04 16:12:13.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/debian/install 2012-04-11 09:45:20.000000000 +0000 @@ -1,2 +1,4 @@ libvdr-extrecmenu.so.* usr/lib/vdr/plugins/ scripts/dvdarchive.sh usr/share/vdr-plugin-extrecmenu/ +scripts/hddarchive.sh usr/share/vdr-plugin-extrecmenu/ +locale usr/share/ diff -Nru vdr-plugin-extrecmenu-1.1/debian/patches/00list vdr-plugin-extrecmenu-1.2.2.git20130304/debian/patches/00list --- vdr-plugin-extrecmenu-1.1/debian/patches/00list 2013-03-04 16:12:13.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/debian/patches/00list 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -01_dvdarchive-path -02_fix_ftbfs_gcc_4.4.dpatch diff -Nru vdr-plugin-extrecmenu-1.1/debian/patches/01_dvdarchive-path.dpatch vdr-plugin-extrecmenu-1.2.2.git20130304/debian/patches/01_dvdarchive-path.dpatch --- vdr-plugin-extrecmenu-1.1/debian/patches/01_dvdarchive-path.dpatch 2013-03-04 16:12:13.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/debian/patches/01_dvdarchive-path.dpatch 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 01_dvdarchive-path.dpatch by Tobias Grimm -## -## Thomas Günther -## - adapted to extrecmenu-0.8a -## - adapted to extrecmenu-0.9 -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Set path to dvdarchive.sh script. - -@DPATCH@ -diff -urNad vdr-plugin-extrecmenu-1.1~/mymenurecordings.c vdr-plugin-extrecmenu-1.1/mymenurecordings.c ---- vdr-plugin-extrecmenu-1.1~/mymenurecordings.c 2007-10-24 19:29:46.000000000 +0200 -+++ vdr-plugin-extrecmenu-1.1/mymenurecordings.c 2007-10-25 18:42:41.000000000 +0200 -@@ -380,7 +380,7 @@ - if(wasdvd&&!cControl::Control()) - { - char *cmd=NULL; -- asprintf(&cmd,"dvdarchive.sh umount \"%s\"",*strescape(myReplayControl::LastReplayed(),"'\\\"$")); -+ asprintf(&cmd,"/usr/share/vdr-plugin-extrecmenu/dvdarchive.sh umount \"%s\"",*strescape(myReplayControl::LastReplayed(),"'\\\"$")); - isyslog("[extrecmenu] calling %s to unmount dvd",cmd); - int result=SystemExec(cmd); - if(result) -@@ -746,7 +746,7 @@ - { - strcpy(path,recording->FileName()); - name=strrchr(path,'/')+1; -- asprintf(&msg,"dvdarchive.sh mount \"%s\" '%s'",*strescape(path,"'"),*strescape(name,"'\\\"$")); -+ asprintf(&msg,"/usr/share/vdr-plugin-extrecmenu/dvdarchive.sh mount \"%s\" '%s'",*strescape(path,"'"),*strescape(name,"'\\\"$")); - - isyslog("[extrecmenu] calling %s to mount dvd",msg); - int result=SystemExec(msg); diff -Nru vdr-plugin-extrecmenu-1.1/debian/patches/02_fix_ftbfs_gcc_4.4.dpatch vdr-plugin-extrecmenu-1.2.2.git20130304/debian/patches/02_fix_ftbfs_gcc_4.4.dpatch --- vdr-plugin-extrecmenu-1.1/debian/patches/02_fix_ftbfs_gcc_4.4.dpatch 2013-03-04 16:12:13.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/debian/patches/02_fix_ftbfs_gcc_4.4.dpatch 1970-01-01 00:00:00.000000000 +0000 @@ -1,54 +0,0 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -# Fix FTBFS with gcc 4.4 - -@DPATCH@ -diff -Nur vdr-plugin-extrecmenu-1.1.orig/mymenueditrecording.c vdr-plugin-extrecmenu-1.1/mymenueditrecording.c ---- vdr-plugin-extrecmenu-1.1.orig/mymenueditrecording.c 2007-08-19 14:12:34.000000000 +0200 -+++ vdr-plugin-extrecmenu-1.1/mymenueditrecording.c 2010-04-25 22:06:16.000000000 +0200 -@@ -25,15 +25,15 @@ - - if(recording) - { -- char *p=strrchr(recording->Name(),'~'); -+ const char *p=strrchr(recording->Name(),'~'); - if(p) - { - strn0cpy(name,++p,sizeof(name)); - strn0cpy(path,recording->Name(),sizeof(path)); - -- p=strrchr(path,'~'); -- if(p) -- *p=0; -+ char* p2=strrchr(path,'~'); -+ if(p2) -+ *p2=0; - } - else - strn0cpy(name,recording->Name(),sizeof(name)); -@@ -307,7 +307,7 @@ - asprintf(&dir,"%s%s%s",base?base:"",base?"~":"",item->Text()); - else // needed for move recording menu - { -- char *p=strrchr(recording->Name(),'~'); -+ const char *p=strrchr(recording->Name(),'~'); - asprintf(&dir,"%s%s%s~%s",base?base:"",base?"~":"",item->Text(),p?p+1:recording->Name()); - } - } -@@ -315,7 +315,7 @@ - { - if(!dirname) - { -- char *p=strrchr(recording->Name(),'~'); -+ const char *p=strrchr(recording->Name(),'~'); - asprintf(&dir,"%s",p?++p:recording->Name()); - } - } -@@ -326,7 +326,7 @@ - asprintf(&dir,"%s",base); - else - { -- char *p=strrchr(recording->Name(),'~'); -+ const char *p=strrchr(recording->Name(),'~'); - asprintf(&dir,"%s~%s",base,p?p:recording->Name()); - } - } diff -Nru vdr-plugin-extrecmenu-1.1/debian/patches/debian-path vdr-plugin-extrecmenu-1.2.2.git20130304/debian/patches/debian-path --- vdr-plugin-extrecmenu-1.1/debian/patches/debian-path 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/debian/patches/debian-path 2011-02-07 16:00:27.000000000 +0000 @@ -0,0 +1,20 @@ +--- vdr-plugin-extrecmenu-1.2+git20100901.orig/mymenurecordings.c ++++ vdr-plugin-extrecmenu-1.2+git20100901/mymenurecordings.c +@@ -463,7 +463,7 @@ myMenuRecordings::myMenuRecordings(const + if(wasdvd&&!cControl::Control()) + { + char *cmd=NULL; +- if(-1!=asprintf(&cmd,"dvdarchive.sh umount \"%s\"",*strescape(myReplayControl::LastReplayed(),"'\\\"$"))) ++ if(-1!=asprintf(&cmd,"/usr/share/vdr-plugin-extrecmenu/dvdarchive.sh umount \"%s\"",*strescape(myReplayControl::LastReplayed(),"'\\\"$"))) + { + isyslog("[extrecmenu] calling %s to unmount dvd",cmd); + int result=SystemExec(cmd); +@@ -913,7 +913,7 @@ eOSState myMenuRecordings::Play() + { + strcpy(path,recording->FileName()); + name=strrchr(path,'/')+1; +- if(-1!=asprintf(&msg,"dvdarchive.sh mount \"%s\" '%s'",*strescape(path,"'"),*strescape(name,"'\\\"$"))) ++ if(-1!=asprintf(&msg,"/usr/share/vdr-plugin-extrecmenu/dvdarchive.sh mount \"%s\" '%s'",*strescape(path,"'"),*strescape(name,"'\\\"$"))) + { + isyslog("[extrecmenu] calling %s to mount dvd",msg); + int result=SystemExec(msg); diff -Nru vdr-plugin-extrecmenu-1.1/debian/patches/graphtft-makefile vdr-plugin-extrecmenu-1.2.2.git20130304/debian/patches/graphtft-makefile --- vdr-plugin-extrecmenu-1.1/debian/patches/graphtft-makefile 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/debian/patches/graphtft-makefile 2012-04-11 09:47:07.000000000 +0000 @@ -0,0 +1,15 @@ +Index: vdr-plugin-extrecmenu-1.2.1+git20111005/Makefile +=================================================================== +--- vdr-plugin-extrecmenu-1.2.1+git20111005.orig/Makefile 2012-04-11 11:46:11.105979869 +0200 ++++ vdr-plugin-extrecmenu-1.2.1+git20111005/Makefile 2012-04-11 11:46:46.635979850 +0200 +@@ -38,6 +38,10 @@ + DEFINES += -DUSE_PINPLUGIN + endif + ++ifdef USE_GRAPHTFT ++DEFINES += -DUSE_GRAPHTFT ++endif ++ + ifdef EXTRECMENU_USE_VDR_CUTTER + DEFINES += -DUSE_VDR_CUTTER + endif diff -Nru vdr-plugin-extrecmenu-1.1/debian/patches/series vdr-plugin-extrecmenu-1.2.2.git20130304/debian/patches/series --- vdr-plugin-extrecmenu-1.1/debian/patches/series 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/debian/patches/series 2013-03-04 15:44:43.000000000 +0000 @@ -0,0 +1,3 @@ +debian-path +graphtft-makefile + diff -Nru vdr-plugin-extrecmenu-1.1/debian/rules vdr-plugin-extrecmenu-1.2.2.git20130304/debian/rules --- vdr-plugin-extrecmenu-1.1/debian/rules 2013-03-04 16:12:13.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/debian/rules 2012-11-21 09:02:57.000000000 +0000 @@ -1,19 +1,21 @@ -#! /bin/sh /usr/share/vdr-dev/make-special-vdr.sh +#!/usr/bin/make -f -include /usr/share/cdbs/1/rules/debhelper.mk -include /usr/share/cdbs/1/rules/dpatch.mk +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 -DEB_INSTALL_CHANGELOGS_ALL = HISTORY +MAKE_OPTIONS = VDRDIR=/usr/include/vdr LIBDIR=. LOCALEDIR=locale USE_PINPLUGIN=1 USE_GRAPHTFT=1 EXTRECMENU_USE_VDR_CUTTER=1 -MAKE_OPTIONS = DVBDIR=/usr VDRDIR=/usr/include/vdr LIBDIR=. \ - LOCALEDIR=debian/tmp/usr/share/locale -common-build-arch:: - $(MAKE) all $(MAKE_OPTIONS) +%: + dh $@ -cleanbuilddir:: +override_dh_auto_build: + dh_auto_build -- all $(MAKE_OPTIONS) + +override_dh_auto_clean: $(MAKE) -o .dependencies clean $(MAKE_OPTIONS) - rm -f libvdr-*.so.* + rm -rf locale libvdr-*.so.* -common-binary-predeb-arch:: +override_dh_gencontrol: sh /usr/share/vdr-dev/dependencies.sh + dh_gencontrol diff -Nru vdr-plugin-extrecmenu-1.1/debian/source/format vdr-plugin-extrecmenu-1.2.2.git20130304/debian/source/format --- vdr-plugin-extrecmenu-1.1/debian/source/format 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/debian/source/format 2013-03-04 16:12:14.126502826 +0000 @@ -0,0 +1 @@ +3.0 (quilt) diff -Nru vdr-plugin-extrecmenu-1.1/debian/watch vdr-plugin-extrecmenu-1.2.2.git20130304/debian/watch --- vdr-plugin-extrecmenu-1.1/debian/watch 2013-03-04 16:12:13.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/debian/watch 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -version=2 -http://martins-kabuff.de/extrecmenu.html .*/vdr-extrecmenu-(.*)\.tgz diff -Nru vdr-plugin-extrecmenu-1.1/extrecmenu.c vdr-plugin-extrecmenu-1.2.2.git20130304/extrecmenu.c --- vdr-plugin-extrecmenu-1.1/extrecmenu.c 2007-10-18 18:48:39.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/extrecmenu.c 2013-03-04 15:56:53.000000000 +0000 @@ -6,13 +6,22 @@ #include #include "mymenusetup.h" #include "mymenurecordings.h" -#include "i18n.h" #include "tools.h" +#if defined(APIVERSNUM) +# if APIVERSNUM < 10600 +# error "VDR-1.6.0 API version or greater is required!" +# else +# if APIVERSNUM >= 10700 && APIVERSNUM < 10714 +# error "VDR-1.7.14 API version or greater is required!" +# endif +# endif +#endif + using namespace std; -static const char *VERSION = "1.1"; -static const char *DESCRIPTION = "Extended recordings menu"; +static const char *VERSION = "1.2.2"; +static const char *DESCRIPTION = tr("Extended recordings menu"); static const char *MAINMENUENTRY = "ExtRecMenu"; // --- cPluginExtrecmenu ------------------------------------------------------ @@ -34,7 +43,7 @@ virtual const char *MainMenuEntry(void){return mysetup.HideMainMenuEntry?NULL:MAINMENUENTRY;} virtual cOsdObject *MainMenuAction(void); virtual cMenuSetupPage *SetupMenu(void); - virtual bool SetupParse(const char *Name,const char *Value); + virtual bool SetupParse(const char *_Name,const char *Value); virtual bool Service(const char *Id,void *Data = NULL); virtual const char **SVDRPHelpPages(void); virtual cString SVDRPCommand(const char *Command,const char *Option,int &ReplyCode); @@ -53,15 +62,13 @@ return NULL; } -bool cPluginExtrecmenu::ProcessArgs(int argc,char *argv[]) +bool cPluginExtrecmenu::ProcessArgs(int /* argc */,char ** /* argv */) { return true; } bool cPluginExtrecmenu::Initialize(void) { - RegisterI18n(Phrases); - return true; } @@ -70,8 +77,16 @@ mySortList=new SortList; mySortList->ReadConfigFile(); + Icons::InitCharSet(); + MoveCutterThread=new WorkerThread(); +#if VDRVERSNUM >= 10713 + RecordingDirCommands.Load(AddDirectory(cPlugin::ConfigDirectory(PLUGIN_NAME_I18N), "dircmds.conf")); +#else + RecordingDirCommands.Load(AddDirectory(cPlugin::ConfigDirectory(PLUGIN_NAME_I18N), "dircmds.conf"), true); +#endif + return true; } @@ -100,44 +115,137 @@ return new myMenuSetup(); } -bool cPluginExtrecmenu::SetupParse(const char *Name,const char *Value) +bool cPluginExtrecmenu::SetupParse(const char *_Name,const char *Value) { - if(!strcasecmp(Name,"IsOrgRecMenu")) + bool rc = true; + + if(!strcasecmp(_Name,"IsOrgRecMenu")) return (mysetup.ReplaceOrgRecMenu==false); // vdr-replace patch - if(!strcasecmp(Name,"ShowRecDate")) - mysetup.ShowRecDate=atoi(Value); - else if(!strcasecmp(Name,"ShowRecTime")) - mysetup.ShowRecTime=atoi(Value); - else if(!strcasecmp(Name,"ShowRecLength")) - mysetup.ShowRecLength=atoi(Value); - else if(!strcasecmp(Name,"HideMainMenuEntry")) + if(!strncasecmp(_Name,"RecListColumn.", 14)) { + char *tmp=NULL; + for (int i=0; i - -extern const tI18nPhrase Phrases[]; - -#endif //_I18N__H diff -Nru vdr-plugin-extrecmenu-1.1/mymenucommands.c vdr-plugin-extrecmenu-1.2.2.git20130304/mymenucommands.c --- vdr-plugin-extrecmenu-1.1/mymenucommands.c 2006-06-12 07:18:15.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/mymenucommands.c 2013-03-04 15:56:53.000000000 +0000 @@ -9,45 +9,140 @@ #include #include "mymenucommands.h" -myMenuCommands::myMenuCommands(const char *Title,cCommands *Commands,const char *Parameters):cOsdMenu(Title) +#if VDRVERSNUM > 10713 +myMenuCommands::myMenuCommands(const char *_Title,cList *_Commands,const char *Parameters):cOsdMenu(_Title) +#else +myMenuCommands::myMenuCommands(const char *_Title,cCommands *_Commands, const char *Parameters):cOsdMenu(_Title) +#endif { SetHasHotkeys(); - commands=Commands; + commands=_Commands; +#if VDRVERSNUM > 10713 + result=NULL; + parameters=Parameters; + for(cNestedItem *Command=commands->First();Command;Command=commands->Next(Command)) { + const char *s=Command->Text(); + if(Command->SubItems()) + Add(new cOsdItem(hk(cString::sprintf("%s...", s)))); + else if(Parse(s)) + Add(new cOsdItem(hk(title))); + } +#else parameters=Parameters?strdup(Parameters):NULL; for(cCommand *command=commands->First();command;command=commands->Next(command)) Add(new cOsdItem(hk(command->Title()))); +#endif } myMenuCommands::~myMenuCommands() { +#if VDRVERSNUM > 10713 + free(result); +#else free(parameters); +#endif } +#if VDRVERSNUM > 10713 +bool myMenuCommands::Parse(const char *s) +{ + const char *p=strchr(s,':'); + if(p) { + int l=p-s; + if(l>0) { + char t[l+1]; + stripspace(strn0cpy(t,s,l+1)); + l=strlen(t); + if(l>1&&t[l-1]=='?') { + t[l-1]=0; + confirm=true; + } + else + confirm=false; + title=t; + command=skipspace(p+1); + return true; + } + } + return false; +} +#endif + +#if VDRVERSNUM > 10713 +eOSState myMenuCommands::Execute() +{ + cNestedItem *Command=commands->Get(Current()); + if(Command) { + if(Command->SubItems()) + return AddSubMenu(new myMenuCommands(Title(),Command->SubItems(),parameters)); + if(Parse(Command->Text())) { + if(!confirm||Interface->Confirm(cString::sprintf("%s?",*title))) { + Skins.Message(mtStatus,cString::sprintf("%s...",*title)); + free(result); + result=NULL; + cString cmdbuf; + if(!isempty(parameters)) + cmdbuf=cString::sprintf("%s %s",*command,*parameters); + const char *cmd=*cmdbuf?*cmdbuf:*command; + dsyslog("executing command '%s'",cmd); + cPipe p; + if(p.Open(cmd,"r")) { + int l=0; + int c; + while((c=fgetc(p))!=EOF) { + if(l%20==0) + result=(char *)realloc(result,l+21); + result[l++]=char(c); + } + if(result) + result[l]=0; + p.Close(); + } + else + esyslog("ERROR: can't open pipe for command '%s'",cmd); + Skins.Message(mtStatus,NULL); + if(result) + return AddSubMenu(new cMenuText(title,result,fontFix)); + return osEnd; + } + } + } + return osContinue; +} +#else eOSState myMenuCommands::Execute() { cCommand *command=commands->Get(Current()); if(command) { char *buffer=NULL; - bool confirmed=true; + bool confirmed=false; #ifdef CMDSUBMENUVERSNUM - if (command->hasChilds()) { - AddSubMenu(new myMenuCommands(command->Title(), command->getChilds(), parameters)); - return osContinue; - } -#endif - if(command->Confirm()) { - asprintf(&buffer,"%s?",command->Title()); - confirmed=Interface->Confirm(buffer); - free(buffer); + if (command->hasChilds()) + { + AddSubMenu(new myMenuCommands(command->Title(), command->getChilds(), parameters)); + return osContinue; + } +#endif + if(command->Confirm()) + { + if(asprintf(&buffer,"%s?",command->Title())!=-1) + { + confirmed=Interface->Confirm(buffer); + free(buffer); + } + } else { + confirmed=true; } if(confirmed) { - asprintf(&buffer, "%s...",command->Title()); - Skins.Message(mtStatus,buffer); - free(buffer); + if(asprintf(&buffer, "%s...",command->Title())!=-1) + { + Skins.Message(mtStatus,buffer); + free(buffer); + } const char *Result=command->Execute(parameters); - Skins.Message(mtStatus, NULL); + Skins.Message(mtStatus,NULL); if(Result) return AddSubMenu(new cMenuText(command->Title(),Result,fontFix)); return osEnd; @@ -55,6 +150,7 @@ } return osContinue; } +#endif eOSState myMenuCommands::ProcessKey(eKeys Key) { diff -Nru vdr-plugin-extrecmenu-1.1/mymenucommands.h vdr-plugin-extrecmenu-1.2.2.git20130304/mymenucommands.h --- vdr-plugin-extrecmenu-1.1/mymenucommands.h 2006-03-16 18:26:17.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/mymenucommands.h 2013-03-04 15:56:53.000000000 +0000 @@ -1,11 +1,25 @@ class myMenuCommands:public cOsdMenu { private: +#if VDRVERSNUM > 10713 + cList *commands; + cString parameters; + cString title; + cString command; + bool confirm; + char *result; + bool Parse(const char *s); +#else cCommands *commands; char *parameters; +#endif eOSState Execute(void); public: +#if VDRVERSNUM > 10713 + myMenuCommands(const char *Title, cList *Commands, const char *Parameters = NULL); +#else myMenuCommands(const char *Title, cCommands *Commands, const char *Parameters = NULL); +#endif virtual ~myMenuCommands(); virtual eOSState ProcessKey(eKeys Key); }; diff -Nru vdr-plugin-extrecmenu-1.1/mymenueditrecording.c vdr-plugin-extrecmenu-1.2.2.git20130304/mymenueditrecording.c --- vdr-plugin-extrecmenu-1.1/mymenueditrecording.c 2007-08-19 12:12:34.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/mymenueditrecording.c 2013-03-04 15:56:53.000000000 +0000 @@ -25,18 +25,18 @@ if(recording) { - char *p=strrchr(recording->Name(),'~'); + char *p=(char*)strrchr(recording->Name(),'~'); //TODO if(p) { strn0cpy(name,++p,sizeof(name)); strn0cpy(path,recording->Name(),sizeof(path)); - + p=strrchr(path,'~'); if(p) *p=0; } else - strn0cpy(name,recording->Name(),sizeof(name)); + strn0cpy(name,recording->Name(),sizeof(name)); } else { @@ -45,7 +45,7 @@ if(DirBase) strn0cpy(path,DirBase,sizeof(path)); } - Add(new cMenuEditStrItem(tr("Name"),name,sizeof(name),tr(FileNameChars))); + Add(new cMenuEditStrItem(trVDR("Name"),name,sizeof(name),trVDR(FileNameChars))); cRemote::Put(kRight); } @@ -75,26 +75,36 @@ } if(isdir) - asprintf(&oldname,"%s%s%s/%s",VideoDirectory,tmppath?"/":"",dirbase?dirbase:"",dirname); + { + if(-1==asprintf(&oldname,"%s%s%s/%s",VideoDirectory,tmppath?"/":"",dirbase?dirbase:"",dirname)) + oldname=NULL; + } else oldname=strdup(recording->FileName()); - asprintf(&newname,"%s%s%s/%s%s",VideoDirectory,tmppath?"/":"",tmppath?tmppath:"",tmpname,isdir?"":strrchr(recording->FileName(),'/')); - - if(!MakeDirs(newname,true)) - Skins.Message(mtError,tr("Creating directories failed!")); - else + if(oldname) { - if(MoveRename(oldname,newname,isdir?NULL:recording,false)) - state=osBack; - else + if(-1==asprintf(&newname,"%s%s%s/%s%s",VideoDirectory,tmppath?"/":"",tmppath?tmppath:"",tmpname,isdir?"":strrchr(recording->FileName(),'/'))) + newname=NULL; + + if(newname) { - cRemote::Put(kRight); - state=osContinue; + if(!MakeDirs(newname,true)) + Skins.Message(mtError,tr("Creating directories failed!")); + else + { + if(MoveRename(oldname,newname,isdir?NULL:recording,false)) + state=osBack; + else + { + cRemote::Put(kRight); + state=osContinue; + } + } + free(newname); } + free(oldname); } - free(oldname); - free(newname); free(tmppath); free(tmpname); } @@ -106,7 +116,7 @@ // --- myMenuNewName ---------------------------------------------------------- bool myMenuMoveRecording::clearall=false; -char newname[128]; +char newname[128]; //TODO class myMenuNewName:public cOsdMenu { @@ -120,14 +130,14 @@ myMenuNewName::myMenuNewName():cOsdMenu(tr("New folder"),12) { strn0cpy(name,tr("New folder"),sizeof(name)); - Add(new cMenuEditStrItem(tr("Name"),name,sizeof(name),tr(FileNameChars))); + Add(new cMenuEditStrItem(trVDR("Name"),name,sizeof(name),trVDR(FileNameChars))); cRemote::Put(kRight); } eOSState myMenuNewName::ProcessKey(eKeys Key) { eOSState state=cOsdMenu::ProcessKey(Key); - + if(state==osContinue) { if(Key==kOk) @@ -147,7 +157,7 @@ if(Key==kBack) state=osBack; } - + return state; } @@ -161,17 +171,17 @@ myMenuMoveRecordingItem(const char *Title,int Level); myMenuMoveRecordingItem(cRecording *Recording,int Level); int Level(){return level;} - void SetLevel(int Level){level=Level;} + void SetLevel(int _Level){level=_Level;} }; -myMenuMoveRecordingItem::myMenuMoveRecordingItem(const char *Title,int Level) +myMenuMoveRecordingItem::myMenuMoveRecordingItem(const char *Title,int _Level) { - level=Level; + level=_Level; title=strdup(Title); SetText(title); } -myMenuMoveRecordingItem::myMenuMoveRecordingItem(cRecording *Recording,int Level) +myMenuMoveRecordingItem::myMenuMoveRecordingItem(cRecording *Recording,int _Level) { level=0; @@ -181,7 +191,7 @@ if(*s=='~') level++; } - if(LevelName(); const char *p=s; @@ -189,7 +199,7 @@ { if(*s=='~') { - if(Level--) + if(_Level--) p=s+1; else break; @@ -211,7 +221,7 @@ strn0cpy(newname,"",sizeof(newname)); recording=Recording; base=Base?strdup(Base):NULL; - + level=Level; Set(); SetHelp(tr("Button$Cancel"),NULL,tr("Button$Create"),tr("Button$Move")); @@ -234,11 +244,11 @@ char *lastitemtext=NULL; myMenuMoveRecordingItem *lastitem=NULL; - for(cRecording *recording=Recordings.First();recording;recording=Recordings.Next(recording)) + for(cRecording *_recording=Recordings.First();_recording;_recording=Recordings.Next(_recording)) { - if(!base||(strstr(recording->Name(),base)==recording->Name()&&recording->Name()[strlen(base)]=='~')) + if(!base||(strstr(_recording->Name(),base)==_recording->Name()&&_recording->Name()[strlen(base)]=='~')) { - myMenuMoveRecordingItem *item=new myMenuMoveRecordingItem(recording,level); + myMenuMoveRecordingItem *item=new myMenuMoveRecordingItem(_recording,level); if(*item->Text()) { if(lastitemtext&&!strcmp(lastitemtext,item->Text())) // same text @@ -286,215 +296,317 @@ eOSState myMenuMoveRecording::MoveRec() { char *oldname=NULL; - char *newname=NULL; + char *_newname=NULL; char *dir=NULL; char *tmpdirbase=dirbase?ExchangeChars(strdup(dirbase),true):NULL; char *tmpdirname=dirname?ExchangeChars(strdup(dirname),true):NULL; - + eOSState state=osContinue; if(dirname) - asprintf(&oldname,"%s%s%s/%s",VideoDirectory,dirbase?"/":"",tmpdirbase?tmpdirbase:"",tmpdirname); + { + if(-1==asprintf(&oldname,"%s%s%s/%s",VideoDirectory,dirbase?"/":"",tmpdirbase?tmpdirbase:"",tmpdirname)) + oldname=NULL; + } else oldname=strdup(recording->FileName()); - myMenuMoveRecordingItem *item=(myMenuMoveRecordingItem*)Get(Current()); - if(item) + if(oldname) { - if(strcmp(tr("[base dir]"),item->Text())) + myMenuMoveRecordingItem *item=(myMenuMoveRecordingItem*)Get(Current()); + if(item) { - if(dirname) - asprintf(&dir,"%s%s%s",base?base:"",base?"~":"",item->Text()); - else // needed for move recording menu + if(strcmp(tr("[base dir]"),item->Text())) { - char *p=strrchr(recording->Name(),'~'); - asprintf(&dir,"%s%s%s~%s",base?base:"",base?"~":"",item->Text(),p?p+1:recording->Name()); + if(dirname) + { + if(-1==asprintf(&dir,"%s%s%s",base?base:"",base?"~":"",item->Text())) + dir=NULL; + } + else // needed for move recording menu + { + const char *p=strrchr(recording->Name(),'~'); + if(-1==asprintf(&dir,"%s%s%s~%s",base?base:"",base?"~":"",item->Text(),p?p+1:recording->Name())) + dir=NULL; + } } - } - else - { - if(!dirname) + else { - char *p=strrchr(recording->Name(),'~'); - asprintf(&dir,"%s",p?++p:recording->Name()); + if(!dirname) + { + const char *p=strrchr(recording->Name(),'~'); + if(-1==asprintf(&dir,"%s",p?++p:recording->Name())) + dir=NULL; + } } } - } - else - { - if(dirname) - asprintf(&dir,"%s",base); else { - char *p=strrchr(recording->Name(),'~'); - asprintf(&dir,"%s~%s",base,p?p:recording->Name()); - } - } - if(dir) - dir=ExchangeChars(dir,true); - - asprintf(&newname,"%s%s%s%s",VideoDirectory,dir?"/":"",dir?dir:"",strrchr(dirname?oldname:recording->FileName(),'/')); - - // getting existing part of target path - string path=newname; - string::size_type pos=string::npos; - do - pos=path.rfind('/',pos)-1; - while(access(path.substr(0,pos+1).c_str(),R_OK)); - - path=path.substr(0,pos+1); - - struct stat stat1,stat2; - stat(oldname,&stat1); - stat(path.c_str(),&stat2); - // are source and target at the same filesystem? - if(stat1.st_dev==stat2.st_dev) - { - if(MoveRename(oldname,newname,dirname?NULL:recording,true)) - { - clearall=true; - state=osBack; + if(dirname) + { + if(-1==asprintf(&dir,"%s",base)) + dir=NULL; + } + else + { + const char *p=strrchr(recording->Name(),'~'); + if(-1==asprintf(&dir,"%s~%s",base,p?p:recording->Name())) + dir=NULL; + } } - } - else - { - struct statvfs fsstat; - if(!statvfs(path.c_str(),&fsstat)) - { - int freemb=int(fsstat.f_bavail/(1024.0*1024.0/fsstat.f_bsize)); - int recmb=0; + if(dir) + dir=ExchangeChars(dir,true); + + if(-1==asprintf(&_newname,"%s%s%s%s",VideoDirectory,dir?"/":"",dir?dir:"",strrchr(dirname?oldname:recording->FileName(),'/'))) + _newname=NULL; - // moving a single recording - if(recording) + if(_newname) + { + // getting existing part of target path + string path=_newname; + string::size_type pos=string::npos; + do + pos=path.rfind('/',pos)-1; + while(access(path.substr(0,pos+1).c_str(),R_OK)); + + path=path.substr(0,pos+1); + + struct stat stat1,stat2; + stat(oldname,&stat1); + stat(path.c_str(),&stat2); + // are source and target at the same filesystem? + if(stat1.st_dev==stat2.st_dev) { - recmb=DirSizeMB(recording->FileName()); - if(freemb-recmb > 0 || Interface->Confirm(tr("Target filesystem filled - try anyway?"))) + if(MoveRename(oldname,_newname,dirname?NULL:recording,true)) { - MoveCutterThread->AddToMoveList(oldname,newname); clearall=true; state=osBack; } } - // moving a directory else { - string buf=oldname; - buf+="/"; - if(!buf.compare(0,buf.length(),newname)) - Skins.Message(mtError,tr("Moving into own sub-directory not allowed!")); - else + struct statvfs fsstat; + if(!statvfs(path.c_str(),&fsstat)) { - cThreadLock RecordingsLock(&Recordings); - for(cRecording *rec=Recordings.First();rec;rec=Recordings.Next(rec)) + int freemb=int((double)fsstat.f_bavail/(1024.0*1024.0/fsstat.f_bsize)); + int recmb=0; + + // moving a single recording + if(recording) { - if(!strncmp(oldname,rec->FileName(),strlen(oldname))) - recmb+=DirSizeMB(rec->FileName()); + recmb=DirSizeMB(recording->FileName()); + if(freemb-recmb > 0 || Interface->Confirm(tr("Target filesystem filled - try anyway?"))) + { + MoveCutterThread->AddToMoveList(oldname,_newname); + clearall=true; + state=osBack; + } } - - if(freemb-recmb > 0 || Interface->Confirm(tr("Target filesystem filled - try anyway?"))) + // moving a directory + else { - for(cRecording *rec=Recordings.First();rec;rec=Recordings.Next(rec)) + string buf=oldname; + buf+="/"; + if(!buf.compare(0,buf.length(),_newname)) + Skins.Message(mtError,tr("Moving into own sub-directory not allowed!")); + else { - if(!strncmp(oldname,rec->FileName(),strlen(oldname))) + cThreadLock RecordingsLock(&Recordings); + for(cRecording *rec=Recordings.First();rec;rec=Recordings.Next(rec)) + { + if(!strncmp(oldname,rec->FileName(),strlen(oldname))) + recmb+=DirSizeMB(rec->FileName()); + } + + if(freemb-recmb > 0 || Interface->Confirm(tr("Target filesystem filled - try anyway?"))) { - char *buf=ExchangeChars(strdup(oldname+strlen(VideoDirectory)+1),false); - - if(strcmp(rec->Name(),buf)) + for(cRecording *rec=Recordings.First();rec;rec=Recordings.Next(rec)) { - free(buf); - asprintf(&buf,"%s%s",newname,rec->FileName()+strlen(oldname)); - - MoveCutterThread->AddToMoveList(rec->FileName(),buf); + if(!strncmp(oldname,rec->FileName(),strlen(oldname))) + { + char *_buf=ExchangeChars(strdup(oldname+strlen(VideoDirectory)+1),false); + + if(strcmp(rec->Name(),_buf)) + { + free(_buf); + if(-1==asprintf(&_buf,"%s%s",_newname,rec->FileName()+strlen(oldname))) + _buf=NULL; + + if(_buf) + MoveCutterThread->AddToMoveList(rec->FileName(),_buf); + } + free(_buf); + _buf=NULL; + } } - free(buf); + clearall=true; + state=osBack; } } - clearall=true; - state=osBack; } } + else + { + Skins.Message(mtError,tr("Can't get filesystem information")); + esyslog("[extrecmenu] %s",strerror(errno)); + } } + free(_newname); } - else - { - Skins.Message(mtError,tr("Can't get filesystem information")); - esyslog("[extrecmenu] %s",strerror(errno)); - } + free(oldname); } - free(oldname); - free(newname); free(dir); free(tmpdirbase); free(tmpdirname); - + return state; } eOSState myMenuMoveRecording::Create() { - return AddSubMenu(new myMenuNewName); + return AddSubMenu(new myMenuNewName); } eOSState myMenuMoveRecording::ProcessKey(eKeys Key) { - eOSState state=cOsdMenu::ProcessKey(Key); - - if(state==osUnknown) - { - switch(Key) + eOSState state=cOsdMenu::ProcessKey(Key); + + if(state==osUnknown) { - case kRed: clearall=true;break; - case kYellow: return Create(); - case kBlue: return MoveRec(); - case kOk: return Open(); - default: break; + switch(Key) + { + case kRed: clearall=true;break; + case kYellow: return Create(); + case kBlue: return MoveRec(); + case kOk: return Open(); + default: break; + } } - } - if(newname[0]!=0) - { - Add(new myMenuMoveRecordingItem(newname,level+2)); - Display(); - strn0cpy(newname,"",sizeof(newname)); - } + if(newname[0]!=0) + { + Add(new myMenuMoveRecordingItem(newname,level+2)); + Display(); + strn0cpy(newname,"",sizeof(newname)); + } - if(clearall) - return osBack; + if(clearall) + return osBack; - return state; + return state; } // --- myMenuRecordingDetails ------------------------------------------------- myMenuRecordingDetails::myMenuRecordingDetails(cRecording *Recording):cOsdMenu(tr("Details"),12) { - recording=Recording; - priority=recording->priority; - lifetime=recording->lifetime; + recording=Recording; +#if VDRVERSNUM > 10720 + priority = recording->Priority(); + lifetime = recording->Lifetime(); +#else + priority = recording->priority; + lifetime = recording->lifetime; +#endif - Add(new cMenuEditIntItem(tr("Priority"),&priority,0,MAXPRIORITY)); - Add(new cMenuEditIntItem(tr("Lifetime"),&lifetime,0,MAXLIFETIME)); + Add(new cMenuEditIntItem(trVDR("Priority"),&priority,0,MAXPRIORITY)); + Add(new cMenuEditIntItem(trVDR("Lifetime"),&lifetime,0,MAXLIFETIME)); } eOSState myMenuRecordingDetails::ProcessKey(eKeys Key) { - eOSState state=cOsdMenu::ProcessKey(Key); - if(state==osUnknown) - { - if(Key==kOk) + eOSState state=cOsdMenu::ProcessKey(Key); + if(state==osUnknown) { - char *oldname=strdup(recording->FileName()); - char *newname=strdup(recording->FileName()); + if(Key==kOk) + { +#if VDRVERSNUM > 10720 + int old_priority = recording->Priority(); + int old_lifetime = recording->Lifetime(); +#else + int old_priority = recording->priority; + int old_lifetime = recording->lifetime; +#endif + if((priority!=old_priority)||(lifetime!=old_lifetime)) + { +#if VDRVERSNUM > 10713 + if(recording->IsPesRecording()) +#endif + { + char *oldname=strdup(recording->FileName()); + char *_newname=strdup(recording->FileName()); - sprintf(newname+strlen(newname)-9,"%02d.%02d.rec",priority,lifetime); + sprintf(_newname+strlen(_newname)-9,"%02d.%02d.rec",priority,lifetime); - if(MoveRename(oldname,newname,recording,false)) - state=osBack; - else - state=osContinue; + if(MoveRename(oldname,_newname,recording,false)) + state=osBack; + else + state=osContinue; + + free(oldname); + free(_newname); + } +#if VDRVERSNUM > 10713 + else + { + cString buffer = cString::sprintf("P %d\nL %d", priority, lifetime); + if(ModifyInfo(recording,*buffer)) + { + cString fileName = recording->FileName(); + Recordings.Del(recording); + Recordings.AddByName(*fileName); + state=osBack; + } + else + state=osContinue; + } +#endif + } + else + state=osBack; + } + } + return state; +} - free(oldname); - free(newname); +#define INFOFILE_PES "info.vdr" +#define INFOFILE_TS "info" +bool myMenuRecordingDetails::ModifyInfo(cRecording *Recording, const char *Info) +{ //This has been taken from remotetimers-0.1.5, written by Frank Schmirler + +#if VDRVERSNUM > 10713 + cString InfoFileName=cString::sprintf(Recording->IsPesRecording()?"%s/"INFOFILE_PES:"%s/"INFOFILE_TS,Recording->FileName()); + FILE *f = fopen(InfoFileName, "a"); + if (f) + { + fprintf(f, "%s\n", Info); + fclose(f); + // Casting const away is nasty, but what the heck? + // The Recordings thread is locked and the object is going to be deleted anyway. + if (((cRecordingInfo *)Recording->Info())->Read() && Recording->WriteInfo()) + return true; + esyslog("[extrecmenu] Failed to update '%s'", *InfoFileName); + } + else + esyslog("[extrecmenu] writing to '%s' failed: %m", *InfoFileName); +#else + cString InfoFileName=cString::sprintf("%s/"INFOFILE_PES,Recording->FileName()); + // check for write access as cRecording::WriteInfo() always returns true + if(access(InfoFileName,W_OK)==0) + { + FILE *f=fmemopen((void *)Info,strlen(Info)*sizeof(char),"r"); + if(f) + { + // Casting const away is nasty, but what the heck? + // The Recordings thread is locked and the object is going to be deleted anyway. + if(((cRecordingInfo *)Recording->Info())->Read(f)&&Recording->WriteInfo()) + return true; + esyslog("[extrecmenu] error in info string '%s'",Info); + } + else + esyslog("[extrecmenu] error in fmemopen: %m"); } - } - return state; + else + esyslog("[extrecmenu] '%s' not writeable: %m",*InfoFileName); +#endif + return false; } diff -Nru vdr-plugin-extrecmenu-1.1/mymenurecordings.c vdr-plugin-extrecmenu-1.2.2.git20130304/mymenurecordings.c --- vdr-plugin-extrecmenu-1.1/mymenurecordings.c 2007-10-24 17:29:46.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/mymenurecordings.c 2013-03-04 15:56:53.000000000 +0000 @@ -17,9 +17,10 @@ #include "mymenurecordings.h" #include "mymenusetup.h" #include "mymenucommands.h" -#include "patchfont.h" #include "tools.h" +#define DISKSPACECHEK 5 // seconds between disk space checks + using namespace std; // --- myMenuRecordingInfo ---------------------------------------------------- @@ -37,9 +38,12 @@ myMenuRecordingInfo(const cRecording *Recording,bool WithButtons = false); virtual void Display(void); virtual eOSState ProcessKey(eKeys Key); +#ifdef USE_GRAPHTFT + virtual const char* MenuKind(){return "MenuExtRecording";} +#endif }; -myMenuRecordingInfo::myMenuRecordingInfo(const cRecording *Recording, bool WithButtons):cOsdMenu(tr("Recording info")) +myMenuRecordingInfo::myMenuRecordingInfo(const cRecording *Recording, bool WithButtons):cOsdMenu(trVDR("Recording info")) { recording=Recording; withButtons=WithButtons; @@ -51,6 +55,10 @@ { cOsdMenu::Display(); +#ifdef USE_GRAPHTFT + cStatus::MsgOsdSetRecording(recording); +#endif + if(mysetup.UseVDRsRecInfoMenu) { DisplayMenu()->SetRecording(recording); @@ -60,7 +68,12 @@ else { stringstream text; - text << *DateString(recording->start) << ", " << *TimeString(recording->start) << "\n\n"; +#if VDRVERSNUM > 10720 + time_t start = recording->Start(); +#else + time_t start = recording->start; +#endif + text << *DateString(start) << ", " << *TimeString(start) << "\n\n"; if(recording->Info()->Title()) { @@ -68,7 +81,7 @@ if(recording->Info()->Description()) text << recording->Info()->Description() << "\n\n"; } - + string recname=recording->Name(); string::size_type i=recname.rfind('~'); if(i!=string::npos) @@ -76,7 +89,7 @@ << tr("Path") << ": " << recname.substr(0,i) << "\n"; else text << tr("Name") << ": " << recname << "\n"; - + cChannel *chan=Channels.GetByChannelID(((cRecordingInfo*)recording->Info())->ChannelID()); if(chan) text << tr("Channel") << ": " << *ChannelString(chan,0) << "\n"; @@ -89,10 +102,18 @@ else text << tr("Size") << ": " << recmb << " MB\n"; - text << tr("Priority") << ": " << recording->priority << "\n"; - text << tr("Lifetime") << ": " << recording->lifetime << "\n"; +#if VDRVERSNUM > 10720 + int prio = recording->Priority(); + int lft = recording->Lifetime(); +#else + int prio = recording->priority; + int lft = recording->lifetime; +#endif + text << trVDR("Priority") << ": " << prio << "\n"; + text << trVDR("Lifetime") << ": " << lft << "\n"; DisplayMenu()->SetText(text.str().c_str(),false); + cStatus::MsgOsdTextItem(text.str().c_str()); } } @@ -136,10 +157,15 @@ { totalentries=newentries=0; isdvd=false; + ishdd=false; dirismoving=true; name=NULL; filename=Recording->FileName(); - +#if VDRVERSNUM > 10713 + isPesRecording=Recording->IsPesRecording(); +#else + isPesRecording=true; +#endif // get the level of this recording level=0; const char *s=Recording->Name(); @@ -164,11 +190,10 @@ break; } } - title=MALLOC(char,s-p+3); - *title='\t'; - *(title+1)='\t'; - strn0cpy(title+2,p,s-p+1); - name=strdup(title+2); + title=MALLOC(char,s-p+1); + strn0cpy(title,p,s-p+1); + name=strdup(title); + uniqid=name; } else @@ -178,110 +203,251 @@ string buffer; stringstream titlebuffer; stringstream idbuffer; - + + // date and time of recording + struct tm tm_r; +#if VDRVERSNUM > 10720 + time_t start = Recording->Start(); +#else + time_t start = Recording->start; +#endif + struct tm *t=localtime_r(&start,&tm_r); + + const char *c = strrchr(filename, '/'); + if (c) + idbuffer << (c + 1); + else + idbuffer << filename; + + + // display symbol buffer=filename; - buffer+="/001.vdr"; + if (isPesRecording) + buffer+="/001.vdr"; + else + buffer+="/00001.ts"; + if(access(buffer.c_str(),R_OK)) { buffer=filename; buffer+="/dvd.vdr"; isdvd=!access(buffer.c_str(),R_OK); + buffer=filename; + buffer+="/hdd.vdr"; + ishdd=!access(buffer.c_str(),R_OK); } - - // marker + if(MoveCutterThread->IsMoving(filename)) - titlebuffer << char(133); + titlebuffer << Icons::MovingRecording(); // moving recording + else if(ishdd) + titlebuffer << Icons::HDD(); // archive hdd else if(isdvd) - titlebuffer << char(129); + titlebuffer << Icons::DVD(); // archive dvd else if(MoveCutterThread->IsCutting(filename)) - titlebuffer << char(132); + titlebuffer << Icons::Scissor(); // cutting recording else if(Recording->IsNew() && !mysetup.PatchNew) titlebuffer << '*'; else if(!Recording->IsNew() && mysetup.PatchNew) - titlebuffer << char(128); - else titlebuffer << ' '; - + titlebuffer << Icons::Continue(); // alternative to new marker / rewind / continue + else titlebuffer << ' '; // no icon + titlebuffer << '\t'; - - // date and time of recording - struct tm tm_r; - struct tm *t=localtime_r(&Recording->start,&tm_r); - - if(mysetup.ShowRecDate) - titlebuffer << setw(2) << setfill('0') << t->tm_mday << '.' - << setw(2) << setfill('0') << t->tm_mon+1 << '.' - << setw(2) << setfill('0') << t->tm_year%100 << '\t'; - - if(mysetup.ShowRecTime) - titlebuffer << setw(2) << setfill('0') << t->tm_hour << '.' - << setw(2) << setfill('0') << t->tm_min << '\t'; - - - idbuffer << t->tm_mday << t->tm_mon << t->tm_year - << t->tm_hour << t->tm_min; - // recording length - if(mysetup.ShowRecLength) - { - buffer=filename; - buffer+="/index.vdr"; - struct stat statbuf; - if(!stat(buffer.c_str(),&statbuf)) - { - ostringstream strbuf; - strbuf << setw(3) << setfill(' ') << right << (int)(statbuf.st_size/12000) << "'"; - - titlebuffer << myStrReplace(strbuf.str(),' ',char(131)) << '\t'; + + // loop all columns and write each output to ostringstream + for (int i=0; itm_mday << '.' + << setw(2) << setfill('0') << t->tm_mon+1 << '.' + << setw(2) << setfill('0') << t->tm_year%100; } - else - { - // get recording length from file 'length.vdr' + + if(mysetup.RecListColumn[i].Type == COLTYPE_TIME) { + sbuffer << setw(2) << setfill('0') << t->tm_hour << '.' + << setw(2) << setfill('0') << t->tm_min; + } + + if(mysetup.RecListColumn[i].Type == COLTYPE_DATETIME) { + sbuffer << setw(2) << setfill('0') << t->tm_mday << '.' + << setw(2) << setfill('0') << t->tm_mon+1 << '.' + << setw(2) << setfill('0') << t->tm_year%100; + sbuffer << Icons::FixedBlank(); + sbuffer << setw(2) << setfill('0') << t->tm_hour << '.' + << setw(2) << setfill('0') << t->tm_min; + } + + if(mysetup.RecListColumn[i].Type == COLTYPE_LENGTH) { + buffer=filename; + if (isPesRecording) + buffer+="/index.vdr"; + else + buffer+="/index"; + + struct stat statbuf; + if(!stat(buffer.c_str(),&statbuf)) + { +#if APIVERSNUM >= 10714 + sbuffer << (int)(statbuf.st_size/480/Recording->FramesPerSecond()) << "'"; +#else + sbuffer << (int)(statbuf.st_size/12000) << "'"; +#endif + } + else + { + // get recording length from file 'length.vdr' + buffer=filename; + buffer+="/length.vdr"; + + ifstream in(buffer.c_str()); + if(in) + { + if(!in.eof()) + getline(in,buffer); + sbuffer << buffer << "'"; + in.close(); + } + } + } + + if(mysetup.RecListColumn[i].Type == COLTYPE_RATING) { + // get recording rating from file 'rated.vdr' + buffer=filename; + buffer+="/rated.vdr"; + + ifstream in(buffer.c_str()); + if(in) + { + if(!in.eof()) + getline(in,buffer); + int rated=atoi(buffer.c_str()); + if (rated>10) + rated=10; + + if (rated>0) { + while (rated>1) { + sbuffer << Icons::StarFull(); + rated = rated-2; + } + if (rated>0) { + sbuffer << Icons::StarHalf(); + rated--; + } + } + in.close(); + } + } + + if(mysetup.RecListColumn[i].Type == COLTYPE_FILE || + mysetup.RecListColumn[i].Type == COLTYPE_FILETHENCOMMAND) { + // get content from file buffer=filename; - buffer+="/length.vdr"; - + buffer+="/"; + buffer+=mysetup.RecListColumn[i].Op1; + ifstream in(buffer.c_str()); if(in) { if(!in.eof()) getline(in,buffer); - - buffer+="'"; - - while(buffer.length()<=3) - buffer.insert(0,1,char(131)); - - titlebuffer << buffer << '\t'; - + + // cut to maximum width + buffer = buffer.substr(0, mysetup.RecListColumn[i].Width); + sbuffer << buffer; in.close(); } else - titlebuffer << '\t'; + { + if(mysetup.RecListColumn[i].Type == COLTYPE_FILETHENCOMMAND) { + // execute the command given by Op2 + char result [1024]; + strcpy(result, mysetup.RecListColumn[i].Op2); + strcat(result, " \""); + strcat(result, filename); + strcat(result, "\""); + FILE *fp = popen(result, "r"); + int read = fread(result, 1, sizeof(result), fp); + pclose (fp); + + if(read>0) { + // use output of command + // strip trailing whitespaces + result[read]=0; + while (strlen(result)>0 && + (result[strlen(result)-1]==0x0a || result[strlen(result)-1]==0x0d || result[strlen(result)-1]==' ')) { + result[strlen(result)-1]=0; + } + result[mysetup.RecListColumn[i].Width]=0; + sbuffer << result; + } else { + // retry reading the file (useful when the execution of the command created the file) + buffer=filename; + buffer+="/"; + buffer+=mysetup.RecListColumn[i].Op1; + + ifstream in(buffer.c_str()); + if(in) + { + if(!in.eof()) + getline(in,buffer); + + // cut to maximum width + buffer = buffer.substr(0, mysetup.RecListColumn[i].Width); + sbuffer << buffer; + in.close(); + } + } + } + } } - } - if(!mysetup.ShowRecDate && !mysetup.ShowRecTime && !mysetup.ShowRecLength) - titlebuffer << '\t'; - + + // adjust alignment + int iLeftBlanks=0; + switch (mysetup.RecListColumn[i].Align) { + case 1: + // center alignment + iLeftBlanks = (mysetup.RecListColumn[i].Width - strlen(sbuffer.str().c_str())) / 2; // sbuffer.width()) / 2; + break; + case 2: + // right alignment + iLeftBlanks = (mysetup.RecListColumn[i].Width - strlen(sbuffer.str().c_str())); // sbuffer.width()); + break; + default: + // left alignment + break; + } + + if(iLeftBlanks>0) { + for (int j=0; jName(); - string::size_type i=s.rfind('~'); + string _s=Recording->Name(); + string::size_type i=_s.rfind('~'); if(i!=string::npos) { - titlebuffer << s.substr(i+1,s.length()-i); - idbuffer << s.substr(i+1,s.length()-i); + titlebuffer << _s.substr(i+1,_s.length()-i); + idbuffer << _s.substr(i+1,_s.length()-i); } else { - titlebuffer << s; - idbuffer << s; + titlebuffer << _s; + idbuffer << _s; } - + title=strdup(titlebuffer.str().c_str()); uniqid=idbuffer.str(); } else { if(Level>level) // any other - title=""; + title=strdup(""); } } SetText(title); @@ -298,75 +464,68 @@ totalentries++; if(IsNew) newentries++; - + char *buffer=NULL; - char entries[8]; - snprintf(entries,sizeof(entries),"%3d",totalentries); - strreplace(entries,' ',char(131)); + + ostringstream entries; + entries << setw(mysetup.RecsPerDir+1) << totalentries; if(mysetup.ShowNewRecs) { - asprintf(&buffer,"%c\t%s (%d)%s%s%s%s%s", - GetDirIsMoving()?char(134):char(130), - entries, - newentries, - (!mysetup.ShowRecDate&&!mysetup.ShowRecTime&&!mysetup.ShowRecLength)?"\t":"", - (mysetup.ShowRecDate||mysetup.ShowRecTime||mysetup.ShowRecLength)?"\t":"", - (mysetup.ShowRecDate&&mysetup.ShowRecTime||mysetup.ShowRecTime&&mysetup.ShowRecLength||mysetup.ShowRecLength&&mysetup.ShowRecDate)?"\t":"", - (mysetup.ShowRecDate&&mysetup.ShowRecTime&&mysetup.ShowRecLength)?"\t":"", - name); + if(-1==asprintf(&buffer,"%s\t%s\t(%d)\t\t\t%s", + GetDirIsMoving()?Icons::MovingDirectory():Icons::Directory(), + // replace leading spaces with fixed blank (right align) + myStrReplace(entries.str(),' ',Icons::FixedBlank()).c_str(), + newentries, + name)) + buffer=NULL; } else { - asprintf(&buffer,"%c\t%s%s%s%s%s%s", - GetDirIsMoving()?char(134):char(130), - entries, - (!mysetup.ShowRecDate&&!mysetup.ShowRecTime&&!mysetup.ShowRecLength)?"\t":"", - (mysetup.ShowRecDate||mysetup.ShowRecTime||mysetup.ShowRecLength)?"\t":"", - (mysetup.ShowRecDate&&mysetup.ShowRecTime||mysetup.ShowRecTime&&mysetup.ShowRecLength||mysetup.ShowRecLength&&mysetup.ShowRecDate)?"\t":"", - (mysetup.ShowRecDate&&mysetup.ShowRecTime&&mysetup.ShowRecLength)?"\t":"", - name); + if(-1==asprintf(&buffer,"%s\t%s\t\t\t\t%s", + GetDirIsMoving()?Icons::MovingDirectory():Icons::Directory(), + // replace leading spaces with fixed blank (right align) + myStrReplace(entries.str(),' ',Icons::FixedBlank()).c_str(), + name)) + buffer=NULL; } - SetText(buffer,false); + if(buffer) + SetText(buffer,false); } // --- myMenuRecordings ------------------------------------------------------- -#define MB_PER_MINUTE 25.75 // this is just an estimate! +#define MB_PER_MINUTE 25.75 // this is just an estimate! (taken over from VDR) bool myMenuRecordings::golastreplayed=false; bool myMenuRecordings::wasdvd; +bool myMenuRecordings::washdd; dev_t myMenuRecordings::fsid=0; -int myMenuRecordings::freediskspace=0; +time_t myMenuRecordings::lastDiskSpaceCheck=0; +int myMenuRecordings::lastFreeMB=-1; myMenuRecordings::myMenuRecordings(const char *Base,int Level):cOsdMenu("") { -#if VDRVERSNUM < 10503 - // only called if plugin menu was opened - if(Level==0 && mysetup.PatchFont) - { - // patch font - if(Setup.UseSmallFont==2) - PatchFont(fontSml); - else - PatchFont(fontOsd); - } -#endif - // set tabs - if(mysetup.ShowRecDate&&mysetup.ShowRecTime&&!mysetup.ShowRecLength) // recording date and time are shown, recording length not - SetCols(2,8,6); - else if(mysetup.ShowRecDate&&mysetup.ShowRecTime) // all details are shown - SetCols(2,8,6,4); - else if(mysetup.ShowRecDate&&!mysetup.ShowRecTime) // recording time is not shown - SetCols(2,8,4); - else if(!mysetup.ShowRecDate&&mysetup.ShowRecTime&&mysetup.ShowRecLength) // recording date is not shown - SetCols(2,6,4); - else // recording date and time are not shown; even if recording length should be not shown we must set two tabs because the details of the directories - { - if(mysetup.ShowNewRecs) - SetCols(2,8,3); - else - SetCols(2,4,3); - } + int c[MAX_RECLIST_COLUMNS],i=0; + + for (i=0; i 0)) { + c[i] = mysetup.RecListColumn[i].Width+1; + } + } + + // widen the first column if there isn't enough space for the number of recordings in a direcory + if (c[0] < mysetup.RecsPerDir+1) { + c[0] = mysetup.RecsPerDir+1; + } + // widen the second column if the number of new recordings should be displayed and + // there isn't enough space for the number of new recordings in a direcory + if (mysetup.ShowNewRecs && c[1] < mysetup.RecsPerDir+3) { + c[1] = mysetup.RecsPerDir+3; + } + + SetCols(2, c[0], c[1], c[2], c[3]); edit=false; level=Level; @@ -380,23 +539,44 @@ if(wasdvd&&!cControl::Control()) { char *cmd=NULL; - asprintf(&cmd,"dvdarchive.sh umount \"%s\"",*strescape(myReplayControl::LastReplayed(),"'\\\"$")); - isyslog("[extrecmenu] calling %s to unmount dvd",cmd); - int result=SystemExec(cmd); - if(result) - { - result=result/256; - if(result==1) - Skins.Message(mtError,tr("Error while mounting DVD!")); + if(-1!=asprintf(&cmd,"dvdarchive.sh umount \"%s\"",*strescape(myReplayControl::LastReplayed(),"'\\\"$"))) + { + isyslog("[extrecmenu] calling %s to unmount dvd",cmd); + int result=SystemExec(cmd); + if(result) + { + result=result/256; + if(result==1) + Skins.Message(mtError,tr("Error while mounting DVD!")); + } + isyslog("[extrecmenu] dvdarchive.sh returns %d",result); + free(cmd); } - isyslog("[extrecmenu] dvdarchive.sh returns %d",result); - free(cmd); wasdvd=false; } + if(washdd&&!cControl::Control()) + { + char *cmd=NULL; + if(-1!=asprintf(&cmd,"hddarchive.sh umount \"%s\"",*strescape(myReplayControl::LastReplayed(),"'\\\"$"))) + { + isyslog("[extrecmenu] calling %s to unmount Archive-HDD",cmd); + int result=SystemExec(cmd); + if(result) + { + result=result/256; + if(result==1) + Skins.Message(mtError,tr("Error while mounting Archive-HDD!")); + } + isyslog("[extrecmenu] hddarchive.sh returns %d",result); + free(cmd); + } + + washdd=false; + } Set(); - + if(myReplayControl::LastReplayed()) Open(); @@ -407,97 +587,108 @@ myMenuRecordings::~myMenuRecordings() { free(base); -#if VDRVERSNUM < 10503 - if(level==0) - { - if(Setup.UseSmallFont==2) - cFont::SetFont(fontSml); - else - cFont::SetFont(fontOsd); - } -#endif } int myMenuRecordings::FreeMB() { - if(mysetup.FileSystemFreeMB) + if (lastFreeMB<=0||time(NULL)-lastDiskSpaceCheck>DISKSPACECHEK) { - string path=VideoDirectory; - path+="/"; - char *tmpbase=base?ExchangeChars(strdup(base),true):NULL; - if(base) - path+=tmpbase; - - struct stat statdir; - if(!stat(path.c_str(),&statdir)) + int freediskspace=0; + if(mysetup.FileSystemFreeMB) { - if(statdir.st_dev!=fsid) + string path=VideoDirectory; + path+="/"; + char *tmpbase=base?ExchangeChars(strdup(base),true):NULL; + if(tmpbase) + path+=tmpbase; + + struct stat statdir; + if(!stat(path.c_str(),&statdir)) { - fsid=statdir.st_dev; - - struct statvfs fsstat; - if(!statvfs(path.c_str(),&fsstat)) + if(statdir.st_dev!=fsid) { - freediskspace=int(fsstat.f_bavail/(1024.0*1024.0/fsstat.f_bsize)); + fsid=statdir.st_dev; - for(cRecording *rec=DeletedRecordings.First();rec;rec=DeletedRecordings.Next(rec)) + struct statvfs fsstat; + if(!statvfs(path.c_str(),&fsstat)) { - if(!stat(rec->FileName(),&statdir)) + freediskspace=int((double)fsstat.f_bavail/(1024.0*1024.0/fsstat.f_bsize)); + + for(cRecording *rec=DeletedRecordings.First();rec;rec=DeletedRecordings.Next(rec)) { - if(statdir.st_dev==fsid) - freediskspace+=DirSizeMB(rec->FileName()); + if(!stat(rec->FileName(),&statdir)) + { + if(statdir.st_dev==fsid) + { + int ds=DirSizeMB(rec->FileName()); + if(ds>0) + freediskspace+=DirSizeMB(rec->FileName()); + else + esyslog("[extrecmenu] DirSizeMB(%s) failed!", rec->FileName()); + } + } } - } + } + else + { + esyslog("[extrecmenu] error while getting filesystem size - statvfs (%s): %s",path.c_str(),strerror(errno)); + freediskspace=0; + } } else { - esyslog("[extrecmenu] error while getting filesystem size - statvfs (%s): %s",path.c_str(),strerror(errno)); - freediskspace=0; + freediskspace=lastFreeMB; } } + else + { + esyslog("[extrecmenu] error while getting filesystem size - stat (%s): %s",path.c_str(),strerror(errno)); + freediskspace=0; + } + free(tmpbase); } else { - esyslog("[extrecmenu] error while getting filesystem size - stat (%s): %s",path.c_str(),strerror(errno)); - freediskspace=0; + VideoDiskSpace(&freediskspace); } - free(tmpbase); - } - else - { - int freemb; - VideoDiskSpace(&freemb); - return freemb; + lastFreeMB=freediskspace; + lastDiskSpaceCheck=time(NULL); } - return freediskspace; + return lastFreeMB; } void myMenuRecordings::Title() { int freemb=FreeMB(); +#if VDRVERSNUM >= 10727 + double MBperMinute = Recordings.MBperMinute(); + int minutes=int(double(freemb)/(MBperMinute>0?MBperMinute:MB_PER_MINUTE)); +#else int minutes=int(double(freemb)/MB_PER_MINUTE); +#endif stringstream buffer; if(MoveCutterThread->IsMoveListEmpty()) - buffer << char(133); + buffer << Icons::MovingRecording(); + if(MoveCutterThread->IsCutterQueueEmpty()) - buffer << char(132); - + buffer << Icons::Scissor(); + if(MoveCutterThread->IsMoveListEmpty() || MoveCutterThread->IsCutterQueueEmpty()) buffer << ' '; if(base) buffer << base; else - buffer << tr("Recordings"); - + buffer << trVDR("Recordings"); + buffer << " (" << minutes/60 << ":" << setw(2) << setfill('0') << minutes%60 << " " - << tr("free") + << trVDR("free") << ")"; - + SetTitle(buffer.str().c_str()); } @@ -540,7 +731,7 @@ switch(newhelpkeys) { case 0: SetHelp(NULL);break; - case 1: SetHelp(tr("Button$Open"),NULL,tr("Button$Edit"));break; + case 1: SetHelp(RecordingDirCommands.Count()?tr("Button$Commands"):tr("Button$Open"),NULL,tr("Button$Edit"));break; case 2: SetHelp(RecordingCommands.Count()?tr("Button$Commands"):tr("Button$Play"),tr("Button$Rewind"),tr("Button$Edit"),tr("Button$Info"));break; case 3: SetHelp(RecordingCommands.Count()?tr("Button$Commands"):tr("Button$Play"),tr("Button$Rewind"),tr("Button$Cancel"),tr("Button$Info"));break; case 4: SetHelp(RecordingCommands.Count()?tr("Button$Commands"):tr("Button$Play"),tr("Button$Rewind"),tr("Button$Edit"),NULL);break; @@ -554,13 +745,12 @@ } // create the menu list -void myMenuRecordings::Set(bool Refresh,char *current) +void myMenuRecordings::Set(bool Refresh,char *_current) { - const char *lastreplayed=current?current:myReplayControl::LastReplayed(); + const char *lastreplayed=_current?_current:myReplayControl::LastReplayed(); cThreadLock RecordingsLock(&Recordings); - - if(Refresh && !current) + if(Refresh && !_current) { fsid=0; myMenuRecordingsItem *item=(myMenuRecordingsItem*)Get(Current()); @@ -571,9 +761,9 @@ lastreplayed=recording->FileName(); } } - + Clear(); - + // create my own recordings list from VDR's myRecList *list=new myRecList(); for(cRecording *recording=Recordings.First();recording;recording=Recordings.Next(recording)) @@ -585,30 +775,36 @@ path+=base; list->Sort(mySortList->Find(path)); +#ifdef USE_PINPLUGIN + bool hidepinprotectedrecs=false; + cPlugin *pinplugin=cPluginManager::GetPlugin("pin"); + if(pinplugin) + hidepinprotectedrecs=pinplugin->SetupParse("hideProtectedRecordings","1"); +#endif + char *lastitemtext=NULL; myMenuRecordingsItem *lastitem=NULL; for(myRecListItem *listitem=list->First();listitem;listitem=list->Next(listitem)) { cRecording *recording=listitem->recording; - if(!base||(strstr(listitem->recording->Name(),base)==listitem->recording->Name()&&listitem->recording->Name()[strlen(base)]=='~')) + if(!base||(strstr(recording->Name(),base)==recording->Name()&&recording->Name()[strlen(base)]=='~')) { - myMenuRecordingsItem *recitem=new myMenuRecordingsItem(listitem->recording,level); -#ifdef WITHPINPLUGIN - bool hidepinprotectedrecs=false; - cPlugin *pinplugin=cPluginManager::GetPlugin("pin"); - if(pinplugin) - hidepinprotectedrecs=pinplugin->SetupParse("hideProtectedRecordings","1"); - - if((*recitem->UniqID() && ((!lastitem || strcmp(recitem->UniqID(),lastitemtext)))) && - !((cStatus::MsgReplayProtected(GetRecording(recitem),recitem->Name(),base,recitem->IsDirectory(),true)) && hidepinprotectedrecs)) -#else - if(*recitem->UniqID() && ((!lastitem || strcmp(recitem->UniqID(),lastitemtext)))) -#endif + myMenuRecordingsItem *recitem=new myMenuRecordingsItem(recording,level); + if(*recitem->UniqID() && (!lastitem || strcmp(recitem->UniqID(),lastitemtext))) { - Add(recitem); - lastitem=recitem; - free(lastitemtext); - lastitemtext=strdup(lastitem->UniqID()); +#ifdef USE_PINPLUGIN + if(!(hidepinprotectedrecs && cStatus::MsgReplayProtected(recording,recitem->Name(),base,recitem->IsDirectory(),true))) + { +#endif + Add(recitem); + lastitem=recitem; + free(lastitemtext); + lastitemtext=strdup(lastitem->UniqID()); +#ifdef USE_PINPLUGIN + } + else + lastitem=NULL; +#endif } else delete recitem; @@ -617,7 +813,7 @@ { if(!MoveCutterThread->IsMoving(recording->FileName())) lastitem->SetDirIsMoving(false); - + if(lastitem->IsDirectory()) lastitem->IncrementCounter(recording->IsNew()); if(lastreplayed && !strcmp(lastreplayed,recording->FileName())) @@ -628,7 +824,7 @@ if(recitem && !recitem->IsDirectory() && !cControl::Control() && !mysetup.GoLastReplayed) golastreplayed=false; } - if(recitem&&!recitem->IsDirectory()&&recitem->IsDVD()&&!cControl::Control()) + if(recitem&&!recitem->IsDirectory()&&(recitem->IsDVD()||recitem->IsHDD())&&!cControl::Control()) cReplayControl::ClearLastReplayed(cReplayControl::LastReplayed()); } } @@ -637,6 +833,7 @@ free(lastitemtext); delete list; + ForceFreeMbUpdate(); Title(); if(Refresh) Display(); @@ -645,45 +842,47 @@ // returns the corresponding recording to an item cRecording *myMenuRecordings::GetRecording(myMenuRecordingsItem *Item) { - cRecording *recording=Recordings.GetByName(Item->FileName()); - if(!recording) - Skins.Message(mtError,tr("Error while accessing recording!")); - return recording; + cRecording *recording=Recordings.GetByName(Item->FileName()); + if(!recording) + Skins.Message(mtError,trVDR("Error while accessing recording!")); + return recording; } // opens a subdirectory bool myMenuRecordings::Open() { - myMenuRecordingsItem *item=(myMenuRecordingsItem*)Get(Current()); - if(item&&item->IsDirectory()) - { - const char *t=item->Name(); - char *buffer=NULL; - if(base) + myMenuRecordingsItem *item=(myMenuRecordingsItem*)Get(Current()); + if(item && item->IsDirectory()) { - asprintf(&buffer,"%s~%s",base,t); - t=buffer; + const char *t=item->Name(); + char *buffer=NULL; + if(base) + { + if(-1==asprintf(&buffer,"%s~%s",base,t)) + buffer=NULL; + t=buffer; + } + if(t) + AddSubMenu(new myMenuRecordings(t,level+1)); + free(buffer); + return true; } - AddSubMenu(new myMenuRecordings(t,level+1)); - free(buffer); - return true; - } - return false; + return false; } // plays a recording eOSState myMenuRecordings::Play() { char *msg=NULL; - char *name=NULL; + const char *name=NULL; char path[MaxFileName]; myMenuRecordingsItem *item=(myMenuRecordingsItem*)Get(Current()); if(item) { -#ifdef WITHPINPLUGIN +#ifdef USE_PINPLUGIN if(cStatus::MsgReplayProtected(GetRecording(item),item->Name(),base,item->IsDirectory())==true) return osContinue; #endif @@ -694,92 +893,172 @@ cRecording *recording=GetRecording(item); if(recording) { - if(item->IsDVD()) + if(item->IsHDD()) { - bool isvideodvd=false; - char dvdnr[BUFSIZ]; + char hddnr[BUFSIZ]; char *buffer=NULL; FILE *f; - - asprintf(&buffer,"%s/dvd.vdr",recording->FileName()); - if((f=fopen(buffer,"r"))!=NULL) + + if(-1!=asprintf(&buffer,"%s/hdd.vdr",recording->FileName())) { - // get the dvd id - if(fgets(dvdnr,sizeof(dvdnr),f)) + if((f=fopen(buffer,"r"))!=NULL) { - char *p=strchr(dvdnr,'\n'); - if(p) - *p=0; + // get the hdd id + if(fgets(hddnr,sizeof(hddnr),f)) + { + char *p=strchr(hddnr,'\n'); + if(p) + *p=0; + } + fclose(f); } - // determine if dvd is a video dvd - char tmp[BUFSIZ]; - if(fgets(tmp,sizeof(dvdnr),f)) - isvideodvd=true; - - fclose(f); - } - free(buffer); + free(buffer); + buffer=NULL; - asprintf(&msg,tr("Please insert DVD %s"),dvdnr); - if(Interface->Confirm(msg)) - { - free(msg); - // recording is a video dvd - if(isvideodvd) + if(-1!=asprintf(&msg,tr("Please attach Archive-HDD %s"),hddnr)) { - cPlugin *plugin=cPluginManager::GetPlugin("dvd"); - if(plugin) + if(Interface->Confirm(msg)) { - cOsdObject *osd=plugin->MainMenuAction(); - delete osd; - osd=NULL; - return osEnd; + free(msg); + // recording is an archive hdd + strcpy(path,recording->FileName()); + name=strrchr(path,'/')+1; + if(-1!=asprintf(&msg,"hddarchive.sh mount \"%s\" '%s'",*strescape(path,"'"),*strescape(name,"'\\\"$"))) + { + isyslog("[extrecmenu] calling %s to mount Archive-HDD",msg); + int result=SystemExec(msg); + isyslog("[extrecmenu] hddarchive.sh returns %d",result); + free(msg); + msg=NULL; + if(result) + { + result=result/256; + if(result==1) + Skins.Message(mtError,tr("Error while mounting Archive-HDD!")); + if(result==3) + Skins.Message(mtError,tr("Recording not found on Archive-HDD!")); + if(result==4) + Skins.Message(mtError,tr("Error while linking [0-9]*.vdr!")); + if(result==5) + Skins.Message(mtError,tr("sudo or mount --bind / umount error (vfat system)")); + if(result==127) + Skins.Message(mtError,tr("Script 'hddarchive.sh' not found!")); + return osContinue; + } + washdd=true; + } + msg=NULL; } else { - Skins.Message(mtError,tr("DVD plugin is not installed!")); + free(msg); return osContinue; } } - // recording is an archive dvd - else + msg=NULL; + } + buffer=NULL; + } else if(item->IsDVD()) + { + bool isvideodvd=false; + char dvdnr[BUFSIZ]; + char *buffer=NULL; + FILE *f; + + if(-1!=asprintf(&buffer,"%s/dvd.vdr",recording->FileName())) + { + if((f=fopen(buffer,"r"))!=NULL) + { + // get the dvd id + if(fgets(dvdnr,sizeof(dvdnr),f)) + { + char *p=strchr(dvdnr,'\n'); + if(p) + *p=0; + } + // determine if dvd is a video dvd + char tmp[BUFSIZ]; + if(fgets(tmp,sizeof(dvdnr),f)) + isvideodvd=true; + + fclose(f); + } + free(buffer); + buffer=NULL; + + if(-1!=asprintf(&msg,tr("Please insert DVD %s"),dvdnr)) { - strcpy(path,recording->FileName()); - name=strrchr(path,'/')+1; - asprintf(&msg,"dvdarchive.sh mount \"%s\" '%s'",*strescape(path,"'"),*strescape(name,"'\\\"$")); - - isyslog("[extrecmenu] calling %s to mount dvd",msg); - int result=SystemExec(msg); - isyslog("[extrecmenu] dvdarchive.sh returns %d",result); - free(msg); - if(result) + if(Interface->Confirm(msg)) { - result=result/256; - if(result==1) - Skins.Message(mtError,tr("Error while mounting DVD!")); - if(result==2) - Skins.Message(mtError,tr("No DVD in drive!")); - if(result==3) - Skins.Message(mtError,tr("Recording not found on DVD!")); - if(result==4) - Skins.Message(mtError,tr("Error while linking [0-9]*.vdr!")); - if(result==5) - Skins.Message(mtError,tr("sudo or mount --bind / umount error (vfat system)")); - if(result==127) - Skins.Message(mtError,tr("Script 'dvdarchive.sh' not found!")); + free(msg); + msg=NULL; + // recording is a video dvd + if(isvideodvd) + { + cPlugin *plugin=cPluginManager::GetPlugin("dvd"); + if(plugin) + { + cOsdObject *osd=plugin->MainMenuAction(); + delete osd; + osd=NULL; + return osEnd; + } + else + { + Skins.Message(mtError,tr("DVD plugin is not installed!")); + return osContinue; + } + } + // recording is an archive dvd + else + { + strcpy(path,recording->FileName()); + name=strrchr(path,'/')+1; + if(-1!=asprintf(&msg,"dvdarchive.sh mount \"%s\" '%s'",*strescape(path,"'"),*strescape(name,"'\\\"$"))) + { + isyslog("[extrecmenu] calling %s to mount dvd",msg); + int result=SystemExec(msg); + isyslog("[extrecmenu] dvdarchive.sh returns %d",result); + free(msg); + msg=NULL; + if(result) + { + result=result/256; + if(result==1) + Skins.Message(mtError,tr("Error while mounting DVD!")); + if(result==2) + Skins.Message(mtError,tr("No DVD in drive!")); + if(result==3) + Skins.Message(mtError,tr("Recording not found on DVD!")); + if(result==4) + Skins.Message(mtError,tr("Error while linking [0-9]*.vdr!")); + if(result==5) + Skins.Message(mtError,tr("sudo or mount --bind / umount error (vfat system)")); + if(result==127) + Skins.Message(mtError,tr("Script 'dvdarchive.sh' not found!")); + return osContinue; + } + wasdvd=true; + } + msg=NULL; + } + } + else + { + free(msg); return osContinue; } - wasdvd=true; } + msg=NULL; } - else - { - free(msg); - return osContinue; - } + buffer=NULL; } golastreplayed=true; +#if VDRVERSNUM >= 10728 + myReplayControl::SetRecording(recording->FileName()); +#else myReplayControl::SetRecording(recording->FileName(),recording->Title()); +#endif cControl::Shutdown(); isyslog("[extrecmenu] starting replay of recording"); cControl::Launch(new myReplayControl()); @@ -793,18 +1072,22 @@ // plays a recording from the beginning eOSState myMenuRecordings::Rewind() { - if(HasSubMenu()||Count()==0) - return osContinue; + if(HasSubMenu()||Count()==0) + return osContinue; - myMenuRecordingsItem *item=(myMenuRecordingsItem*)Get(Current()); - if(item&&!item->IsDirectory()) - { - cDevice::PrimaryDevice()->StopReplay(); - cResumeFile ResumeFile(item->FileName()); - ResumeFile.Delete(); - return Play(); - } - return osContinue; + myMenuRecordingsItem *item=(myMenuRecordingsItem*)Get(Current()); + if(item&&!item->IsDirectory()) + { + cDevice::PrimaryDevice()->StopReplay(); +#if VDRVERSNUM > 10713 + cResumeFile ResumeFile(item->FileName(), item->IsPesRecording()); +#else + cResumeFile ResumeFile(item->FileName()); +#endif + ResumeFile.Delete(); + return Play(); + } + return osContinue; } // delete a recording @@ -816,12 +1099,12 @@ myMenuRecordingsItem *item=(myMenuRecordingsItem*)Get(Current()); if(item&&!item->IsDirectory()) { - if(Interface->Confirm(tr("Delete recording?"))) + if(Interface->Confirm(trVDR("Delete recording?"))) { cRecordControl *rc=cRecordControls::GetRecordControl(item->FileName()); if(rc) { - if(Interface->Confirm(tr("Timer still recording - really delete?"))) + if(Interface->Confirm(trVDR("Timer still recording - really delete?"))) { cTimer *timer=rc->Timer(); if(timer) @@ -849,12 +1132,13 @@ Recordings.DelByName(item->FileName()); cOsdMenu::Del(Current()); SetHelpKeys(); + ForceFreeMbUpdate(); Display(); if(!Count()) return osBack; } else - Skins.Message(mtError,tr("Error while deleting recording!")); + Skins.Message(mtError,trVDR("Error while deleting recording!")); } } } @@ -864,38 +1148,38 @@ // renames a recording eOSState myMenuRecordings::Rename() { - if(HasSubMenu()||Count()==0) - return osContinue; + if(HasSubMenu()||Count()==0) + return osContinue; - myMenuRecordingsItem *item=(myMenuRecordingsItem*)Get(Current()); - if(item) - { - if(item->IsDirectory()) - return AddSubMenu(new myMenuRenameRecording(NULL,base,item->Name())); - else + myMenuRecordingsItem *item=(myMenuRecordingsItem*)Get(Current()); + if(item) { - cRecording *recording=GetRecording(item); - if(recording) - return AddSubMenu(new myMenuRenameRecording(recording,NULL,NULL)); + if(item->IsDirectory()) + return AddSubMenu(new myMenuRenameRecording(NULL,base,item->Name())); + else + { + cRecording *recording=GetRecording(item); + if(recording) + return AddSubMenu(new myMenuRenameRecording(recording,NULL,NULL)); + } } - } - return osContinue; + return osContinue; } // edit details of a recording eOSState myMenuRecordings::Details() { - if(HasSubMenu()||Count()==0) - return osContinue; + if(HasSubMenu()||Count()==0) + return osContinue; - myMenuRecordingsItem *item=(myMenuRecordingsItem*)Get(Current()); - if(item&&!item->IsDirectory()) - { - cRecording *recording=GetRecording(item); - if(recording) - return AddSubMenu(new myMenuRecordingDetails(recording)); - } - return osContinue; + myMenuRecordingsItem *item=(myMenuRecordingsItem*)Get(Current()); + if(item && !item->IsDirectory()) + { + cRecording *recording=GetRecording(item); + if(recording) + return AddSubMenu(new myMenuRecordingDetails(recording)); + } + return osContinue; } // moves a recording @@ -923,14 +1207,14 @@ // opens an info screen to a recording eOSState myMenuRecordings::Info(void) { - if(HasSubMenu()||Count()==0) + if(HasSubMenu() || Count()==0) return osContinue; myMenuRecordingsItem *item=(myMenuRecordingsItem*)Get(Current()); - if(item&&!item->IsDirectory()) + if(item && !item->IsDirectory()) { cRecording *recording=GetRecording(item); - if(mysetup.UseVDRsRecInfoMenu && (!recording || recording && !recording->Info()->Title())) + if(mysetup.UseVDRsRecInfoMenu && (!recording || (recording && !recording->Info()->Title()))) return osContinue; else return AddSubMenu(new myMenuRecordingInfo(recording,true)); @@ -941,25 +1225,39 @@ // execute a command for a recording eOSState myMenuRecordings::Commands(eKeys Key) { - if(HasSubMenu()||Count()==0) - return osContinue; - myMenuRecordingsItem *item=(myMenuRecordingsItem*)Get(Current()); - if(item&&!item->IsDirectory()) - { - cRecording *recording=GetRecording(item); - if(recording) - { - char *parameter=NULL; - asprintf(¶meter,"\"%s\"",recording->FileName()); - myMenuCommands *menu; - eOSState state=AddSubMenu(menu=new myMenuCommands(tr("Recording commands"),&RecordingCommands,parameter)); - free(parameter); - if(Key!=kNone) - state=menu->ProcessKey(Key); - return state; + if(HasSubMenu() || Count()==0) + return osContinue; + + myMenuRecordingsItem *item=(myMenuRecordingsItem*)Get(Current()); + if(item) + { + cRecording *recording=GetRecording(item); + if(recording) + { + char *parameter=NULL; + if (item->IsDirectory()) + { + char *strBase=base?ExchangeChars(strdup(base), true):NULL; + char *strName=ExchangeChars(strdup(item->Name()), true); + if(-1==asprintf(¶meter,"\"%s/%s/%s\"",VideoDirectory,strBase?strBase:"", strName)) + parameter=NULL; + free(strBase); + free(strName); + } + else + { + if(-1==asprintf(¶meter,"\"%s\"",recording->FileName())) + parameter=NULL; + } + myMenuCommands *menu; + eOSState state=AddSubMenu(menu=new myMenuCommands(trVDR("Recording commands"),item->IsDirectory() ? &RecordingDirCommands : &RecordingCommands,parameter?parameter:"")); + free(parameter); + if(Key!=kNone) + state=menu->ProcessKey(Key); + return state; + } } - } - return osContinue; + return osContinue; } // change sorting @@ -983,12 +1281,12 @@ return osContinue; } } - mySortList->Add(new SortListItem(path)); + mySortList->Add(new SortListItem(path)); mySortList->WriteConfigFile(); Set(true); Skins.Message(mtInfo,tr("Sort by name"),1); - + return osContinue; } @@ -999,7 +1297,7 @@ if(edit) { myMenuRecordingsItem *item=(myMenuRecordingsItem*)Get(Current()); - if(Key==kRed || Key==kGreen || Key==kYellow || (!item->IsDVD() && Key==kBlue) || Key==kBack) + if(Key==kRed || Key==kGreen || Key==kYellow || (!item->IsDVD() && !item->IsHDD() && Key==kBlue) || Key==kBack) { edit=false; helpkeys=-1; @@ -1009,7 +1307,7 @@ case kRed: return Rename(); case kGreen: return MoveRec(); case kYellow: return Delete(); - case kBlue: if(item&&!item->IsDVD()) + case kBlue: if(item&&!item->IsDVD()&&!item->IsHDD()) return Details(); else break; @@ -1023,15 +1321,17 @@ state=cOsdMenu::ProcessKey(Key); if(state==osUnknown) { + myMenuRecordingsItem *item=(myMenuRecordingsItem*)Get(Current()); + switch(Key) { + case kPlay: case kOk: return Play(); - case kRed: return (helpkeys>1 && RecordingCommands.Count())?Commands():Play(); + case kRed: return (helpkeys>0 && item && ((item->IsDirectory() && RecordingDirCommands.Count()) || (!item->IsDirectory() && RecordingCommands.Count())))?Commands():Play(); case kGreen: return Rewind(); case kYellow: { if(!HasSubMenu()) { - myMenuRecordingsItem *item=(myMenuRecordingsItem*)Get(Current()); if(item) { if(item->IsDirectory()) @@ -1069,13 +1369,13 @@ cRecording *rec=GetRecording(item); if(rec) { -#ifdef WITHPINPLUGIN +#ifdef USE_PINPLUGIN if(cStatus::MsgReplayProtected(rec,item->Name(),base,item->IsDirectory())==true) break; #endif if(MoveCutterThread->IsCutting(rec->FileName())) { - if(Interface->Confirm(tr("Cancel editing?"))) + if(Interface->Confirm(trVDR("Cancel editing?"))) { MoveCutterThread->CancelCut(rec->FileName()); Set(true); @@ -1092,7 +1392,7 @@ else { edit=true; - SetHelp(tr("Button$Rename"),tr("Button$Move"),tr("Button$Delete"),(!item->IsDVD())?tr("Details"):NULL); + SetHelp(tr("Button$Rename"),tr("Button$Move"),tr("Button$Delete"),!item->IsDVD()&&!item->IsHDD()?tr("Details"):NULL); } } } @@ -1100,19 +1400,21 @@ } } break; + case kInfo: case kBlue: return Info(); case k1...k9: return Commands(Key); case k0: return ChangeSorting(); default: break; } } - if(Recordings.StateChanged(recordingsstate) || MoveCutterThread->IsCutterQueueEmpty()) - Set(true); - + bool stateChanged = Recordings.StateChanged(recordingsstate); + if(stateChanged || MoveCutterThread->IsCutterQueueEmpty()) + Set(true); + if(!Count() && level>0) state=osBack; - - if(!HasSubMenu() && Key!=kNone) + + if((!HasSubMenu() && Key!=kNone) || stateChanged) SetHelpKeys(); } return state; diff -Nru vdr-plugin-extrecmenu-1.1/mymenurecordings.h vdr-plugin-extrecmenu-1.2.2.git20130304/mymenurecordings.h --- vdr-plugin-extrecmenu-1.1/mymenurecordings.h 2007-09-29 20:25:35.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/mymenurecordings.h 2013-03-04 15:56:53.000000000 +0000 @@ -4,6 +4,8 @@ private: bool dirismoving; bool isdvd; + bool ishdd; + bool isPesRecording; int level,isdirectory; int totalentries,newentries; char *title; @@ -16,8 +18,10 @@ const char *FileName(){return filename;} const char *Name(){return name;} bool IsDirectory(){return name!=NULL;} + bool IsPesRecording(void) const { return isPesRecording; } void IncrementCounter(bool IsNew); bool IsDVD(){return isdvd;} + bool IsHDD(){return ishdd;} void SetDirIsMoving(bool moving){dirismoving=moving;} bool GetDirIsMoving(){return dirismoving;} const char *UniqID(){return uniqid.length()?uniqid.c_str():"";} @@ -29,9 +33,11 @@ private: bool edit; static bool wasdvd; + static bool washdd; static bool golastreplayed; static dev_t fsid; - static int freediskspace; + static time_t lastDiskSpaceCheck; + static int lastFreeMB; int level,helpkeys; int recordingsstate; char *base; @@ -54,6 +60,10 @@ ~myMenuRecordings(); void Set(bool Refresh=false,char *current=NULL); virtual eOSState ProcessKey(eKeys Key); +#ifdef USE_GRAPHTFT + virtual const char* MenuKind(){return"MenuExtRecordings";} +#endif + void ForceFreeMbUpdate(){lastDiskSpaceCheck=0;}; }; // --- myMenuRenameRecording -------------------------------------------------- @@ -102,4 +112,5 @@ public: myMenuRecordingDetails(cRecording *Recording); virtual eOSState ProcessKey(eKeys Key); + static bool ModifyInfo(cRecording *Recording, const char *Info); }; diff -Nru vdr-plugin-extrecmenu-1.1/mymenusetup.c vdr-plugin-extrecmenu-1.2.2.git20130304/mymenusetup.c --- vdr-plugin-extrecmenu-1.1/mymenusetup.c 2007-10-18 18:47:21.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/mymenusetup.c 2013-03-04 15:56:53.000000000 +0000 @@ -2,18 +2,59 @@ * See the README file for copyright information and how to reach the author. */ +#include #include #include "mymenusetup.h" +typedef struct { + int Width; + int Align; +} RecListDefaultType; + +RecListDefaultType recListDefaultValues[MAX_COLTYPES] = { + { 0,0}, + { 5,0}, + { 8,0}, + { 5,0}, + {14,0}, + { 4,2}, + { 7,0}, + { 5,0}, + { 5,0} +}; + + +#if VDRVERSNUM > 10713 +cNestedItemList RecordingDirCommands; +#else +cCommands RecordingDirCommands; +#endif + mySetup::mySetup() { mysetup.HideMainMenuEntry=0; mysetup.PatchNew=1; mysetup.ReplaceOrgRecMenu=0; - mysetup.ShowRecDate=1; - mysetup.ShowRecTime=1; - mysetup.ShowRecLength=0; + + for(int i=0; iSetSelectable(false); + Add(sItem); + + + // build up setup menu + for(int i=0; iSetSelectable(false); + Add(sItem); + + // restore current position + SetCurrent(Get(current)); +} + +eOSState myMenuSetupColumns::ProcessKey(eKeys Key) { + int iTemp_type [4], i; + for (i=0; i= 0) { + preclistcolumns[iChanged].Width = recListDefaultValues[preclistcolumns[iChanged].Type].Width; + preclistcolumns[iChanged].Align = recListDefaultValues[preclistcolumns[iChanged].Type].Align; + Set(); + Display(); + } + + if (state == osUnknown) { + switch (Key) { + case kOk: + return osBack; + + default: + break; + } + } + + return state; +} + +int msprintf(char **strp, const char *fmt, ...) { + va_list ap; + va_start (ap, fmt); + int res=vasprintf (strp, fmt, ap); + va_end (ap); + return res; +} + +char* IndentMenuItem(const char* szString, int indentions) { + char* szIndented = NULL; + msprintf(&szIndented, "%*s", strlen(szString)+indentions*2, szString); + return szIndented; +} diff -Nru vdr-plugin-extrecmenu-1.1/mymenusetup.h vdr-plugin-extrecmenu-1.2.2.git20130304/mymenusetup.h --- vdr-plugin-extrecmenu-1.1/mymenusetup.h 2007-10-18 18:45:39.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/mymenusetup.h 2013-03-04 15:56:53.000000000 +0000 @@ -1,16 +1,69 @@ #include +#if VDRVERSNUM >= 10713 +extern cNestedItemList RecordingDirCommands; +#else +extern cCommands RecordingDirCommands; +#endif + +#define STRN0CPY(dst, src) \ + do { \ + strn0cpy(dst, src, sizeof(dst)); \ + } while(0) +/* +#define STRN0CPYLOG(dst, src, Name) \ + do { \ + strn0cpy(dst, src, sizeof(dst)); \ + if(strlen(src) >= sizeof(dst)) \ + LOGMSG("WARNING: Setting %s truncated to %s !", Name, dst); \ + } while(0) +*/ + +#define MAX_RECLIST_COLUMNS 4 + +#define COLTYPE_NONE 0 +#define COLTYPE_BLANK 1 +#define COLTYPE_DATE 2 +#define COLTYPE_TIME 3 +#define COLTYPE_DATETIME 4 +#define COLTYPE_LENGTH 5 +#define COLTYPE_RATING 6 +#define COLTYPE_FILE 7 +#define COLTYPE_FILETHENCOMMAND 8 +#define MAX_COLTYPES 9 + + + +static const char * const RecsPerDir_texts[] = { + trNOOP("0-9"), + trNOOP("0-99"), + trNOOP("0-999"), + trNOOP("0-9999"), + trNOOP("0-99999"), + NULL}; + + +typedef struct { + int Type; + char Name[64]; + int Width; + int Align; + char Op1[1024]; + char Op2[1024]; +} RecListColumnType; + + + class mySetup { public: mySetup(); - int ShowRecDate; - int ShowRecTime; - int ShowRecLength; + RecListColumnType RecListColumn[MAX_RECLIST_COLUMNS]; int HideMainMenuEntry; int ReplaceOrgRecMenu; int PatchNew; int ShowNewRecs; + int RecsPerDir; int DescendSorting; int GoLastReplayed; int ReturnToPlugin; @@ -27,13 +80,12 @@ { private: const char *sortingtypetexts[2]; - int showrecdate; - int showrectime; - int showreclength; + RecListColumnType reclistcolumn[MAX_RECLIST_COLUMNS]; int hidemainmenuentry; int replaceorgrecmenu; int patchnew; int shownewrecs; + int recsperdir; int descendsorting; int golastreplayed; int returntoplugin; @@ -46,4 +98,28 @@ virtual void Store(); public: myMenuSetup(); +// virtual ~myMenuSetup(); + virtual eOSState ProcessKey(eKeys Key); }; + +class myMenuSetupColumns:public cOsdMenu +{ + private: + RecListColumnType * preclistcolumns; + const char* ColumnType_descriptions[9]; + const char* AlignmentType_names[3]; + public: + myMenuSetupColumns(RecListColumnType *prlcs); +// virtual ~myMenuSetupColumns(); + virtual void Set(); + virtual eOSState ProcessKey(eKeys Key); +}; + +char* IndentMenuItem(const char*, int indentions=1); + +static inline cString Label_SubMenu(const char *Label) { + return cString::sprintf("%s ...", Label); +} +static inline cOsdItem *SubMenuItem(const char *Label, eOSState state) { + return new cOsdItem(Label_SubMenu(Label), state); +} diff -Nru vdr-plugin-extrecmenu-1.1/myreplaycontrol.c vdr-plugin-extrecmenu-1.2.2.git20130304/myreplaycontrol.c --- vdr-plugin-extrecmenu-1.1/myreplaycontrol.c 2007-10-18 19:02:58.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/myreplaycontrol.c 2013-03-04 15:56:53.000000000 +0000 @@ -16,11 +16,12 @@ myReplayControl::myReplayControl() { timesearchactive=false; + fCallPlugin = mysetup.ReturnToPlugin; } myReplayControl::~myReplayControl() { - if(mysetup.ReturnToPlugin) + if(fCallPlugin) cRemote::CallPlugin("extrecmenu"); } @@ -47,10 +48,15 @@ Skins.Message(mtError,tr("Recording already in cutter queue!")); else { - cMarks marks; - marks.Load(filename); - - if(!marks.Count()) + Hide(); // save marks + cMarks _marks; + #if VDRVERSNUM > 10713 + cRecording Recording(filename); + _marks.Load(filename, Recording.FramesPerSecond(), Recording.IsPesRecording()); + #else + _marks.Load(filename); + #endif + if(!_marks.Count()) Skins.Message(mtError,tr("No editing marks defined!")); else { @@ -64,11 +70,16 @@ if(Key==kRed) timesearchactive=true; - } - if(Key==kBack) - return osEnd; + } } } - return cReplayControl::ProcessKey(Key); + eOSState lastState = cReplayControl::ProcessKey(Key); + if(lastState == osRecordings) + lastState = osEnd; + if(lastState == osEnd && mysetup.ReturnToPlugin) + fCallPlugin = true; + if(Key==kBlue || Key==kStop) + fCallPlugin = false; + return lastState; } diff -Nru vdr-plugin-extrecmenu-1.1/myreplaycontrol.h vdr-plugin-extrecmenu-1.2.2.git20130304/myreplaycontrol.h --- vdr-plugin-extrecmenu-1.1/myreplaycontrol.h 2007-07-29 21:32:12.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/myreplaycontrol.h 2013-03-04 15:56:53.000000000 +0000 @@ -2,6 +2,7 @@ { private: bool timesearchactive; + bool fCallPlugin; public: myReplayControl(); ~myReplayControl(); diff -Nru vdr-plugin-extrecmenu-1.1/patchfont.c vdr-plugin-extrecmenu-1.2.2.git20130304/patchfont.c --- vdr-plugin-extrecmenu-1.1/patchfont.c 2007-09-29 20:20:23.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/patchfont.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,358 +0,0 @@ -/* - * See the README file for copyright information and how to reach the author. - */ - -#include -#include "patchfont.h" -#include "mymenusetup.h" - -#if VDRVERSNUM < 10503 -void PatchFont(eDvbFont DvbFont) -{ - const cFont *font = cFont::GetFont(DvbFont); - int num_rows_global = font->Height(); - int num_rows = num_rows_global+2; - int i,j,num_char; - - cFont::tPixelData* font_data = new cFont::tPixelData[225*(num_rows)]; - - for (i = 0; i < 225; i++) - for (j = 0; j < num_rows; j++) - font_data[(i*num_rows)+j]=0x0000000000000000; - - font_data[0+0]=6;//font->CharData(0)->width; - font_data[0+1]=num_rows_global; - - for(num_char=33, i = 1; num_char<256; i++, num_char++) - { - const cFont::tCharData* char_data = font->CharData(num_char); - font_data[i*num_rows+0] = (num_char>=127 && num_char<=129)?6:char_data->width; - font_data[i*num_rows+1] = char_data->height; - - // alternative new marker - if(num_char==128&&mysetup.PatchNew) - { - if(DvbFont==fontOsd) - { - font_data[i*num_rows+ 0]=22; - font_data[i*num_rows+ 1]=27; - font_data[i*num_rows+ 6]=0x000f00; // .. .... .... #### .... .... - font_data[i*num_rows+ 7]=0x007fe0; // .. .... .### #### ###. .... - font_data[i*num_rows+ 8]=0x00fff0; // .. .... #### #### #### .... - font_data[i*num_rows+ 9]=0x01f0f8; // .. ...# #### .... #### #... - font_data[i*num_rows+10]=0x01c03c; // .. ...# ##.. .... ..## ##.. - font_data[i*num_rows+11]=0x03c01c; // .. ..## ##.. .... ...# ##.. - font_data[i*num_rows+12]=0x03801c; // .. ..## #... .... ...# ##.. - font_data[i*num_rows+13]=0x03800e; // .. ..## #... .... .... ###. - font_data[i*num_rows+14]=0x03800e; // .. ..## #... .... .... ###. - font_data[i*num_rows+15]=0x1ff00e; // .#.#### #### .... .... ###. - font_data[i*num_rows+16]=0x0fe00e; // .. #### ###. .... .... ###. - font_data[i*num_rows+17]=0x07c00e; // .. .### ##.. .... .... ###. - font_data[i*num_rows+18]=0x03800e; // .. ..## #... .... .... ###. - font_data[i*num_rows+19]=0x01001c; // .. ...# .... .... ...# ##.. - font_data[i*num_rows+20]=0x00001c; // .. .... .... .... ...# ##.. - font_data[i*num_rows+21]=0x00003c; // .. .... .... .... ..## ##.. - font_data[i*num_rows+22]=0x0000f8; // .. .... .... .... #### #... - font_data[i*num_rows+23]=0x000ff0; // .. .... .... #### #### .... - font_data[i*num_rows+24]=0x001fe0; // .. .... ...# #### ###. .... - font_data[i*num_rows+25]=0x000f00; // .. .... .... #### .... .... - } - else - { - font_data[i*num_rows+ 0]=22; - font_data[i*num_rows+ 1]=22; - font_data[i*num_rows+ 3]=0x000f00; // .. .... .... #### .... .... - font_data[i*num_rows+ 4]=0x007fe0; // .. .... .### #### ###. .... - font_data[i*num_rows+ 5]=0x00fff0; // .. .... #### #### #### .... - font_data[i*num_rows+ 6]=0x01f0f8; // .. ...# #### .... #### #... - font_data[i*num_rows+ 7]=0x01c03c; // .. ...# ##.. .... ..## ##.. - font_data[i*num_rows+ 8]=0x03c01c; // .. ..## ##.. .... ...# ##.. - font_data[i*num_rows+ 9]=0x03801c; // .. ..## #... .... ...# ##.. - font_data[i*num_rows+10]=0x03800e; // .. ..## #... .... .... ###. - font_data[i*num_rows+11]=0x03800e; // .. ..## #... .... .... ###. - font_data[i*num_rows+12]=0x1ff00e; // .#.#### #### .... .... ###. - font_data[i*num_rows+13]=0x0fe00e; // .. #### ###. .... .... ###. - font_data[i*num_rows+14]=0x07c00e; // .. .### ##.. .... .... ###. - font_data[i*num_rows+15]=0x03800e; // .. ..## #... .... .... ###. - font_data[i*num_rows+16]=0x01001c; // .. ...# .... .... ...# ##.. - font_data[i*num_rows+17]=0x00001c; // .. .... .... .... ...# ##.. - font_data[i*num_rows+18]=0x00003c; // .. .... .... .... ..## ##.. - font_data[i*num_rows+19]=0x0000f8; // .. .... .... .... #### #... - font_data[i*num_rows+20]=0x000ff0; // .. .... .... #### #### .... - font_data[i*num_rows+21]=0x001fe0; // .. .... ...# #### ###. .... - font_data[i*num_rows+22]=0x000f00; // .. .... .... #### .... .... - } - } - // dvd marker - else if(num_char==129) - { - if(DvbFont==fontOsd) - { - font_data[i*num_rows+ 0]=22; - font_data[i*num_rows+ 1]=27; - font_data[i*num_rows+ 6]=0x003f00; // .. .... ..## #### .... .... - font_data[i*num_rows+ 7]=0x01ffe0; // .. ...# #### #### ###. .... - font_data[i*num_rows+ 8]=0x03ff90; // .. ..## #### #### #..# .... - font_data[i*num_rows+ 9]=0x07ff08; // .. .### #### #### .... #... - font_data[i*num_rows+10]=0x0fff04; // .. #### #### #### .... .#.. - font_data[i*num_rows+11]=0x0ffe04; // .. #### #### ###. .... .#.. - font_data[i*num_rows+12]=0x0ffe0c; // .. #### #### ###. .... ##.. - font_data[i*num_rows+13]=0x1ffc3e; // .# #### #### ##.. ..## ###. - font_data[i*num_rows+14]=0x1ff2fe; // .# #### #### ..#. #### ###. - font_data[i*num_rows+15]=0x1fe1fe; // .# #### ###. ...# #### ###. - font_data[i*num_rows+16]=0x1fe1fe; // .# #### ###. ...# #### ###. - font_data[i*num_rows+17]=0x1fd3fe; // .# #### ##.# ..## #### ###. - font_data[i*num_rows+18]=0x1f0ffe; // .# #### .... #### #### ###. - font_data[i*num_rows+19]=0x0c1ffc; // .. ##.. ...# #### #### ##.. - font_data[i*num_rows+20]=0x081ffc; // .. #... ...# #### #### ##.. - font_data[i*num_rows+21]=0x083ffc; // .. #... ..## #### #### ##.. - font_data[i*num_rows+22]=0x043ff8; // .. .#.. ..## #### #### #... - font_data[i*num_rows+23]=0x027ff0; // .. ..#. .### #### #### .... - font_data[i*num_rows+24]=0x01ffe0; // .. ...# #### #### ###. .... - font_data[i*num_rows+25]=0x003f00; // .. .... ..## #### .... .... - } - else - { - font_data[i*num_rows+ 0]=22; - font_data[i*num_rows+ 1]=22; - font_data[i*num_rows+ 3]=0x003f00; // .. .... ..## #### .... .... - font_data[i*num_rows+ 4]=0x01ffe0; // .. ...# #### #### ###. .... - font_data[i*num_rows+ 5]=0x03ff90; // .. ..## #### #### #..# .... - font_data[i*num_rows+ 6]=0x07ff08; // .. .### #### #### .... #... - font_data[i*num_rows+ 7]=0x0fff04; // .. #### #### #### .... .#.. - font_data[i*num_rows+ 8]=0x0ffe04; // .. #### #### ###. .... .#.. - font_data[i*num_rows+ 9]=0x0ffe0c; // .. #### #### ###. .... ##.. - font_data[i*num_rows+10]=0x1ffc3e; // .# #### #### ##.. ..## ###. - font_data[i*num_rows+11]=0x1ff2fe; // .# #### #### ..#. #### ###. - font_data[i*num_rows+12]=0x1fe1fe; // .# #### ###. ...# #### ###. - font_data[i*num_rows+13]=0x1fe1fe; // .# #### ###. ...# #### ###. - font_data[i*num_rows+14]=0x1fd3fe; // .# #### ##.# ..## #### ###. - font_data[i*num_rows+15]=0x1f0ffe; // .# #### .... #### #### ###. - font_data[i*num_rows+16]=0x0c1ffc; // .. ##.. ...# #### #### ##.. - font_data[i*num_rows+17]=0x081ffc; // .. #... ...# #### #### ##.. - font_data[i*num_rows+18]=0x083ffc; // .. #... ..## #### #### ##.. - font_data[i*num_rows+19]=0x043ff8; // .. .#.. ..## #### #### #... - font_data[i*num_rows+20]=0x027ff0; // .. ..#. .### #### #### .... - font_data[i*num_rows+21]=0x01ffe0; // .. ...# #### #### ###. .... - font_data[i*num_rows+22]=0x003f00; // .. .... ..## #### .... .... - } - } - // folder - else if(num_char==130) - { - if(DvbFont==fontOsd) - { - font_data[i*num_rows+ 0]=22; - font_data[i*num_rows+ 1]=27; - font_data[i*num_rows+ 8]=0x1fe000; // .# #### ###. .... .... .... - font_data[i*num_rows+ 9]=0x1ff000; // .# #### #### .... .... .... - font_data[i*num_rows+10]=0x181800; // .# #... ...# #... .... .... - font_data[i*num_rows+11]=0x1ffffe; // .# #### #### #### #### ###. - font_data[i*num_rows+12]=0x1ffffe; // .# #### #### #### #### ###. - font_data[i*num_rows+13]=0x180006; // .# #... .... .... .... .##. - font_data[i*num_rows+14]=0x180006; // .# #... .... .... .... .##. - font_data[i*num_rows+15]=0x180006; // .# #... .... .... .... .##. - font_data[i*num_rows+16]=0x180006; // .# #... .... .... .... .##. - font_data[i*num_rows+17]=0x180006; // .# #... .... .... .... .##. - font_data[i*num_rows+18]=0x180006; // .# #... .... .... .... .##. - font_data[i*num_rows+19]=0x180006; // .# #... .... .... .... .##. - font_data[i*num_rows+20]=0x180006; // .# #... .... .... .... .##. - font_data[i*num_rows+21]=0x180006; // .# #... .... .... .... .##. - font_data[i*num_rows+22]=0x180006; // .# #... .... .... .... .##. - font_data[i*num_rows+23]=0x1ffffe; // .# #### #### #### #### ###. - font_data[i*num_rows+24]=0x1ffffe; // .# #### #### #### #### ###. - } - else - { - font_data[i*num_rows+ 0]=22; - font_data[i*num_rows+ 1]=22; - font_data[i*num_rows+ 5]=0x1fe000; // .# #### ###. .... .... .... - font_data[i*num_rows+ 6]=0x1ff000; // .# #### #### .... .... .... - font_data[i*num_rows+ 7]=0x181800; // .# #... ...# #... .... .... - font_data[i*num_rows+ 8]=0x1ffffe; // .# #### #### #### #### ###. - font_data[i*num_rows+ 9]=0x1ffffe; // .# #### #### #### #### ###. - font_data[i*num_rows+10]=0x180006; // .# #... .... .... .... .##. - font_data[i*num_rows+11]=0x180006; // .# #... .... .... .... .##. - font_data[i*num_rows+12]=0x180006; // .# #... .... .... .... .##. - font_data[i*num_rows+13]=0x180006; // .# #... .... .... .... .##. - font_data[i*num_rows+14]=0x180006; // .# #... .... .... .... .##. - font_data[i*num_rows+15]=0x180006; // .# #... .... .... .... .##. - font_data[i*num_rows+16]=0x180006; // .# #... .... .... .... .##. - font_data[i*num_rows+17]=0x180006; // .# #... .... .... .... .##. - font_data[i*num_rows+18]=0x180006; // .# #... .... .... .... .##. - font_data[i*num_rows+19]=0x180006; // .# #... .... .... .... .##. - font_data[i*num_rows+20]=0x1ffffe; // .# #### #### #### #### ###. - font_data[i*num_rows+21]=0x1ffffe; // .# #### #### #### #### ###. - } - } - // blank space with the same width as the numbers - else if(num_char==131) - { - if(DvbFont==fontOsd) - { - font_data[i*num_rows+ 0]=13; - font_data[i*num_rows+ 1]=27; - } - else - { - font_data[i*num_rows+ 0]=10; - font_data[i*num_rows+ 1]=22; - } - } - // scissor - else if(num_char==132) - { - if(DvbFont==fontOsd) - { - font_data[i*num_rows+ 0]=22; - font_data[i*num_rows+ 1]=27; - font_data[i*num_rows+ 8]=0x018060; // .. ...# #... .... .##. .... - font_data[i*num_rows+ 9]=0x018060; // .. ...# #... .... .##. .... - font_data[i*num_rows+10]=0x00c0c0; // .. .... ##.. .... ##.. .... - font_data[i*num_rows+11]=0x00c0c0; // .. .... ##.. .... ##.. .... - font_data[i*num_rows+12]=0x006180; // .. .... .##. ...# #... .... - font_data[i*num_rows+13]=0x006180; // .. .... .##. ...# #... .... - font_data[i*num_rows+14]=0x003300; // .. .... ..## ..## .... .... - font_data[i*num_rows+15]=0x003300; // .. .... ..## ..## .... .... - font_data[i*num_rows+16]=0x001e00; // .. .... ...# ###. .... .... - font_data[i*num_rows+17]=0x001e00; // .. .... ...# ###. .... .... - font_data[i*num_rows+18]=0x003300; // .. .... ..## ..## #... .... - font_data[i*num_rows+19]=0x01f3e0; // .. ...# #### ..## ###. .... - font_data[i*num_rows+20]=0x033330; // .. ..## ..## ..## ..## .... - font_data[i*num_rows+21]=0x033330; // .. ..## ..## ..## ..## .... - font_data[i*num_rows+22]=0x033330; // .. ..## ..## ..## ..## .... - font_data[i*num_rows+23]=0x033330; // .. ..## ..## ..## ..## .... - font_data[i*num_rows+24]=0x01f3e0; // .. ...# #### ..## ###. .... - } - else - { - font_data[i*num_rows+ 0]=22; - font_data[i*num_rows+ 1]=22; - font_data[i*num_rows+ 5]=0x018060; // .. ...# #... .... .##. .... - font_data[i*num_rows+ 6]=0x018060; // .. ...# #... .... .##. .... - font_data[i*num_rows+ 7]=0x00c0c0; // .. .... ##.. .... ##.. .... - font_data[i*num_rows+ 8]=0x00c0c0; // .. .... ##.. .... ##.. .... - font_data[i*num_rows+ 9]=0x006180; // .. .... .##. ...# #... .... - font_data[i*num_rows+10]=0x006180; // .. .... .##. ...# #... .... - font_data[i*num_rows+11]=0x003300; // .. .... ..## ..## .... .... - font_data[i*num_rows+12]=0x003300; // .. .... ..## ..## .... .... - font_data[i*num_rows+13]=0x001e00; // .. .... ...# ###. .... .... - font_data[i*num_rows+14]=0x001e00; // .. .... ...# ###. .... .... - font_data[i*num_rows+15]=0x003300; // .. .... ..## ..## #... .... - font_data[i*num_rows+16]=0x01f3e0; // .. ...# #### ..## ###. .... - font_data[i*num_rows+17]=0x033330; // .. ..## ..## ..## ..## .... - font_data[i*num_rows+18]=0x033330; // .. ..## ..## ..## ..## .... - font_data[i*num_rows+19]=0x033330; // .. ..## ..## ..## ..## .... - font_data[i*num_rows+20]=0x033330; // .. ..## ..## ..## ..## .... - font_data[i*num_rows+21]=0x01f3e0; // .. ...# #### ..## ###. .... - } - } - // move symbol - else if(num_char==133) - { - if(DvbFont==fontOsd) - { - font_data[i*num_rows+ 0]=22; - font_data[i*num_rows+ 1]=27; - font_data[i*num_rows+ 8]=0x0001fe; // .. .... .... ...# #### ###. - font_data[i*num_rows+ 9]=0x0001fe; // .. .... .... ...# #### ###. - font_data[i*num_rows+10]=0x000186; // .. .... .... ...# #... .##. - font_data[i*num_rows+11]=0x000186; // .. .... .... ...#.#... .##. - font_data[i*num_rows+12]=0x000006; // .. .... .... .... .... .##. - font_data[i*num_rows+13]=0x1fe7e6; // .# #### ###. .### ###. .##. - font_data[i*num_rows+14]=0x1fe3c6; // .# #### ###. ..## ##.. .##. - font_data[i*num_rows+15]=0x1847c6; // .# #... .#.. .### ##.. .##. - font_data[i*num_rows+16]=0x181f86; // .# #... ...# #### #... .##. - font_data[i*num_rows+17]=0x187906; // .# #... .### #..# .... .##. - font_data[i*num_rows+18]=0x19e07e; // .# #..# ###. .... .### ###. - font_data[i*num_rows+19]=0x1981fe; // .# #..# #... ...# #### ###. - font_data[i*num_rows+20]=0x182000; // .# #... ..#. .... .... .... - font_data[i*num_rows+21]=0x186000; // .# #... .##. .... .... .... - font_data[i*num_rows+22]=0x186000; // .# #... .##. .... .... .... - font_data[i*num_rows+23]=0x1fe000; // .# #### ###. .... .... .... - font_data[i*num_rows+24]=0x1fe000; // .# #### ###. .... .... .... - } - else - { - font_data[i*num_rows+ 0]=22; - font_data[i*num_rows+ 1]=22; - font_data[i*num_rows+ 5]=0x0001fe; // .. .... .... ...# #### ###. - font_data[i*num_rows+ 6]=0x0001fe; // .. .... .... ...# #### ###. - font_data[i*num_rows+ 7]=0x000186; // .. .... .... ...# #... .##. - font_data[i*num_rows+ 8]=0x000186; // .. .... .... ...#.#... .##. - font_data[i*num_rows+ 9]=0x000006; // .. .... .... .... .... .##. - font_data[i*num_rows+10]=0x1fe7e6; // .# #### ###. .### ###. .##. - font_data[i*num_rows+11]=0x1fe3c6; // .# #### ###. ..## ##.. .##. - font_data[i*num_rows+12]=0x1847c6; // .# #... .#.. .### ##.. .##. - font_data[i*num_rows+13]=0x181f86; // .# #... ...# #### #... .##. - font_data[i*num_rows+14]=0x187906; // .# #... .### #..# .... .##. - font_data[i*num_rows+15]=0x19e07e; // .# #..# ###. .... .### ###. - font_data[i*num_rows+16]=0x1981fe; // .# #..# #... ...# #### ###. - font_data[i*num_rows+17]=0x182000; // .# #... ..#. .... .... .... - font_data[i*num_rows+18]=0x186000; // .# #... .##. .... .... .... - font_data[i*num_rows+19]=0x186000; // .# #... .##. .... .... .... - font_data[i*num_rows+20]=0x1fe000; // .# #### ###. .... .... .... - font_data[i*num_rows+21]=0x1fe000; // .# #### ###. .... .... .... - } - } - else if(num_char==134) - { - if(DvbFont==fontOsd) - { - font_data[i*num_rows+ 0]=22; - font_data[i*num_rows+ 1]=27; - font_data[i*num_rows+ 8]=0x00fc00; // .. .... #### ##.. .... .... - font_data[i*num_rows+ 9]=0x00fe00; // .. .... #### ###. .... .... - font_data[i*num_rows+10]=0x00c300; // .. .... ##.. ..## .... .... - font_data[i*num_rows+11]=0x00fffe; // .. .... #### #### #### ###. - font_data[i*num_rows+12]=0x1ffffe; // .# #### #### #### #### ###. - font_data[i*num_rows+13]=0x1fc006; // .# #### ##.. .... .... .##. - font_data[i*num_rows+14]=0x186006; // .# #... .##. .... .... .##. - font_data[i*num_rows+15]=0x1fffc6; // .# #### #### #### ##.. .##. - font_data[i*num_rows+16]=0x1fffc6; // .# #### #### #### ##.. .##. - font_data[i*num_rows+17]=0x1800c6; // .# #... .... .... ##.. .##. - font_data[i*num_rows+18]=0x1800c6; // .# #... .... .... ##.. .##. - font_data[i*num_rows+19]=0x1800c6; // .# #... .... .... ##.. .##. - font_data[i*num_rows+20]=0x1800fe; // .# #... .... .... #### ###. - font_data[i*num_rows+21]=0x1800fe; // .# #... .... .... #### ###. - font_data[i*num_rows+22]=0x1800c0; // .# #... .... .... ##.. .... - font_data[i*num_rows+23]=0x1fffc0; // .# #### #### #### ##.. .... - font_data[i*num_rows+24]=0x1fffc0; // .# #### #### #### ##.. .... - } - else - { - font_data[i*num_rows+ 0]=22; - font_data[i*num_rows+ 1]=22; - font_data[i*num_rows+ 5]=0x00fc00; // .. .... #### ##.. .... .... - font_data[i*num_rows+ 6]=0x00fe00; // .. .... #### ###. .... .... - font_data[i*num_rows+ 7]=0x00c300; // .. .... ##.. ..## .... .... - font_data[i*num_rows+ 8]=0x00fffe; // .. .... #### #### #### ###. - font_data[i*num_rows+ 9]=0x1ffffe; // .# #### #### #### #### ###. - font_data[i*num_rows+10]=0x1fc006; // .# #### ##.. .... .... .##. - font_data[i*num_rows+11]=0x186006; // .# #... .##. .... .... .##. - font_data[i*num_rows+12]=0x1fffc6; // .# #### #### #### ##.. .##. - font_data[i*num_rows+13]=0x1fffc6; // .# #### #### #### ##.. .##. - font_data[i*num_rows+14]=0x1800c6; // .# #... .... .... ##.. .##. - font_data[i*num_rows+15]=0x1800c6; // .# #... .... .... ##.. .##. - font_data[i*num_rows+16]=0x1800c6; // .# #... .... .... ##.. .##. - font_data[i*num_rows+17]=0x1800fe; // .# #... .... .... #### ###. - font_data[i*num_rows+18]=0x1800fe; // .# #... .... .... #### ###. - font_data[i*num_rows+19]=0x1800c0; // .# #... .... .... ##.. .... - font_data[i*num_rows+20]=0x1fffc0; // .# #### #### #### ##.. .... - font_data[i*num_rows+21]=0x1fffc0; // .# #### #### #### ##.. .... - } - } - else - { - for(j = 0; j<(int)char_data->height; j++) - { - cFont::tPixelData Data = (cFont::tPixelData)char_data->lines[j]; - - font_data[(i*num_rows)+2+j] = Data; - } - } - } - cFont::SetFont(DvbFont, font_data); -} -#endif - diff -Nru vdr-plugin-extrecmenu-1.1/patchfont.h vdr-plugin-extrecmenu-1.2.2.git20130304/patchfont.h --- vdr-plugin-extrecmenu-1.1/patchfont.h 2006-03-17 14:57:14.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/patchfont.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -void PatchFont(eDvbFont DvbFont); diff -Nru vdr-plugin-extrecmenu-1.1/po/ca_ES.po vdr-plugin-extrecmenu-1.2.2.git20130304/po/ca_ES.po --- vdr-plugin-extrecmenu-1.1/po/ca_ES.po 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/po/ca_ES.po 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,273 @@ +# ExtRecMenu plugin language source file. +# Copyright (C) 2008 Martin Prochnow +# This file is distributed under the same license as the ExtRecMenu package. +# Marc Rovira Vall , 2003 +# Ramon Roca , 2003 +# Jordi Vilŕ , 2003 +# +msgid "" +msgstr "" +"Project-Id-Version: ExtRecMenu 1.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-06-24 08:43+0200\n" +"PO-Revision-Date: 2008-03-15 16:21+0100\n" +"Last-Translator: Jordi Vilŕ \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "Extended recordings menu" +msgstr "" + +msgid "Rename" +msgstr "" + +msgid "Invalid filename!" +msgstr "" + +msgid "Creating directories failed!" +msgstr "" + +msgid "New folder" +msgstr "" + +msgid "Button$Cancel" +msgstr "" + +msgid "Button$Create" +msgstr "" + +msgid "Button$Move" +msgstr "" + +msgid "[base dir]" +msgstr "" + +msgid "Target filesystem filled - try anyway?" +msgstr "" + +msgid "Moving into own sub-directory not allowed!" +msgstr "" + +msgid "Can't get filesystem information" +msgstr "" + +msgid "Details" +msgstr "" + +msgid "Rename/Move failed!" +msgstr "" + +msgid "Cutter queue not empty" +msgstr "" + +msgid "Move recordings in progress" +msgstr "" + +msgid "Can't start editing process!" +msgstr "" + +msgid "Recording already in cutter queue!" +msgstr "" + +msgid "No editing marks defined!" +msgstr "" + +msgid "Added recording to cutter queue" +msgstr "" + +msgid "Button$Play" +msgstr "" + +msgid "Button$Rewind" +msgstr "" + +msgid "Button$Back" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Path" +msgstr "" + +msgid "Channel" +msgstr "" + +msgid "Size" +msgstr "" + +msgid "Error while mounting DVD!" +msgstr "" + +msgid "Error while mounting Archive-HDD!" +msgstr "" + +msgid "Button$Commands" +msgstr "" + +msgid "Button$Open" +msgstr "" + +msgid "Button$Edit" +msgstr "" + +msgid "Button$Info" +msgstr "" + +#, c-format +msgid "Please attach Archive-HDD %s" +msgstr "" + +msgid "Recording not found on Archive-HDD!" +msgstr "" + +msgid "Error while linking [0-9]*.vdr!" +msgstr "" + +msgid "sudo or mount --bind / umount error (vfat system)" +msgstr "" + +msgid "Script 'hddarchive.sh' not found!" +msgstr "" + +#, c-format +msgid "Please insert DVD %s" +msgstr "" + +msgid "DVD plugin is not installed!" +msgstr "" + +msgid "No DVD in drive!" +msgstr "" + +msgid "Recording not found on DVD!" +msgstr "" + +msgid "Script 'dvdarchive.sh' not found!" +msgstr "" + +msgid "Sort by date" +msgstr "" + +msgid "Sort by name" +msgstr "" + +msgid "Cancel moving?" +msgstr "" + +msgid "Button$Rename" +msgstr "" + +msgid "Button$Delete" +msgstr "" + +msgid "ascending" +msgstr "" + +msgid "descending" +msgstr "" + +msgid "Show nr. of new recordings of a directory" +msgstr "" + +msgid "Maximum number of recordings per directory" +msgstr "" + +msgid "Items to show in recording list" +msgstr "" + +msgid "Show alternative to new marker" +msgstr "" + +msgid "Show free disk space for each file system" +msgstr "" + +msgid "Sorting" +msgstr "" + +msgid "Hide main menu entry" +msgstr "" + +msgid "Replace original recordings menu" +msgstr "" + +msgid "Jump to last replayed recording" +msgstr "" + +msgid "Call plugin after playback" +msgstr "" + +msgid "Limit bandwidth for move recordings" +msgstr "" + +msgid "Use VDR's recording info menu" +msgstr "" + +msgid "Use cutter queue" +msgstr "" + +msgid "--none--" +msgstr "" + +msgid "Blank" +msgstr "" + +msgid "Date of Recording" +msgstr "" + +msgid "Time of Recording" +msgstr "" + +msgid "Date and Time of Recording" +msgstr "" + +msgid "Length of Recording" +msgstr "" + +msgid "Rating of Recording" +msgstr "" + +msgid "Content of File" +msgstr "" + +msgid "Content of File, then Result of a Command" +msgstr "" + +msgid "left" +msgstr "" + +msgid "center" +msgstr "" + +msgid "right" +msgstr "" + +msgid "Icon" +msgstr "" + +msgid "(fixed to the first position)" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Width" +msgstr "" + +msgid "Alignment" +msgstr "" + +msgid "Filename" +msgstr "" + +msgid "Command" +msgstr "" + +msgid "Name of the recording" +msgstr "" + +msgid "(fixed to the last position)" +msgstr "" diff -Nru vdr-plugin-extrecmenu-1.1/po/cs_CZ.po vdr-plugin-extrecmenu-1.2.2.git20130304/po/cs_CZ.po --- vdr-plugin-extrecmenu-1.1/po/cs_CZ.po 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/po/cs_CZ.po 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,283 @@ +# ExtRecMenu plugin language source file. +# Copyright (C) 2008 Martin Prochnow +# This file is distributed under the same license as the ExtRecMenu package. +# Vladimír Bárta , 2006 +# +msgid "" +msgstr "" +"Project-Id-Version: ExtRecMenu 1.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-06-24 08:43+0200\n" +"PO-Revision-Date: 2008-03-15 16:21+0100\n" +"Last-Translator: Vladimír Bárta \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-2\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "Extended recordings menu" +msgstr "Rozšířené menu nahrávek" + +msgid "Rename" +msgstr "Přejmenovat" + +msgid "Invalid filename!" +msgstr "Chybné jméno souboru!" + +msgid "Creating directories failed!" +msgstr "" + +msgid "New folder" +msgstr "Nový adresář" + +msgid "Button$Cancel" +msgstr "Zrušit" + +msgid "Button$Create" +msgstr "Vytvořit" + +msgid "Button$Move" +msgstr "Přesunout" + +msgid "[base dir]" +msgstr "[základní adresář]" + +msgid "Target filesystem filled - try anyway?" +msgstr "Cílový oddíl je plný - zkusit znovu?" + +msgid "Moving into own sub-directory not allowed!" +msgstr "Přesun do vlastního podadresáře není povolen!" + +msgid "Can't get filesystem information" +msgstr "Nelze získat informace o souborovém systémy" + +msgid "Details" +msgstr "Detaily" + +msgid "Rename/Move failed!" +msgstr "Přejmenování/přesun selhal!" + +msgid "Cutter queue not empty" +msgstr "Střihová fronta není prázdná" + +msgid "Move recordings in progress" +msgstr "Probíhá přesouvání nahrávek" + +msgid "Can't start editing process!" +msgstr "" + +msgid "Recording already in cutter queue!" +msgstr "Nahrávka je již ve střihové frontě!" + +msgid "No editing marks defined!" +msgstr "" + +msgid "Added recording to cutter queue" +msgstr "Nahrávka přidána do střihové fronty" + +msgid "Button$Play" +msgstr "Přehrát" + +msgid "Button$Rewind" +msgstr "Na začátek" + +msgid "Button$Back" +msgstr "Zpět" + +msgid "Name" +msgstr "" + +msgid "Path" +msgstr "Cesta" + +msgid "Channel" +msgstr "" + +msgid "Size" +msgstr "Velikost" + +msgid "Error while mounting DVD!" +msgstr "Chyba během připojování DVD!" + +msgid "Error while mounting Archive-HDD!" +msgstr "" + +msgid "Button$Commands" +msgstr "Příkazy" + +msgid "Button$Open" +msgstr "Otevřít" + +msgid "Button$Edit" +msgstr "Editovat" + +msgid "Button$Info" +msgstr "Info" + +#, c-format +msgid "Please attach Archive-HDD %s" +msgstr "" + +msgid "Recording not found on Archive-HDD!" +msgstr "" + +msgid "Error while linking [0-9]*.vdr!" +msgstr "Chyba při spojování [0-9]*.vdr!" + +msgid "sudo or mount --bind / umount error (vfat system)" +msgstr "sudo nebo mount --bind / umount selhal (VFAT-systém)" + +msgid "Script 'hddarchive.sh' not found!" +msgstr "" + +#, c-format +msgid "Please insert DVD %s" +msgstr "Vložte prosím DVD %s" + +msgid "DVD plugin is not installed!" +msgstr "Modul DVD není nainstalován!" + +msgid "No DVD in drive!" +msgstr "V jednotce není DVD!" + +msgid "Recording not found on DVD!" +msgstr "Nahrávka nebyla na DVD nalezena!" + +msgid "Script 'dvdarchive.sh' not found!" +msgstr "Skript 'dvdarchive.sh' nebyl nalezen!" + +msgid "Sort by date" +msgstr "Třídit podle data" + +msgid "Sort by name" +msgstr "Třídit podle jména" + +msgid "Cancel moving?" +msgstr "Přerušit přesouvání?" + +msgid "Button$Rename" +msgstr "Přejmenovat" + +msgid "Button$Delete" +msgstr "Smazat" + +msgid "ascending" +msgstr "vzestupně" + +msgid "descending" +msgstr "sestupně" + +msgid "Show nr. of new recordings of a directory" +msgstr "Zobrazovat počet nových nahrávek v adresáři" + +msgid "Maximum number of recordings per directory" +msgstr "" + +msgid "Items to show in recording list" +msgstr "" + +msgid "Show alternative to new marker" +msgstr "Zobrazit alternativu k novým značkám" + +msgid "Show free disk space for each file system" +msgstr "Zobrazit volné místo pro každý souborový systém" + +msgid "Sorting" +msgstr "Třídění" + +msgid "Hide main menu entry" +msgstr "Skrýt položku v hlavním menu" + +msgid "Replace original recordings menu" +msgstr "Nahradit originální menu nahrávek" + +msgid "Jump to last replayed recording" +msgstr "Skočit na poslední přehrávanou nahrávku" + +msgid "Call plugin after playback" +msgstr "Návrat do modulu po ukončení přehrávání" + +msgid "Limit bandwidth for move recordings" +msgstr "Omezit rychlost pro přesun nahrávek" + +msgid "Use VDR's recording info menu" +msgstr "Používat info menu nahrávek VDR" + +msgid "Use cutter queue" +msgstr "" + +msgid "--none--" +msgstr "" + +msgid "Blank" +msgstr "" + +msgid "Date of Recording" +msgstr "" + +msgid "Time of Recording" +msgstr "" + +msgid "Date and Time of Recording" +msgstr "" + +msgid "Length of Recording" +msgstr "" + +msgid "Rating of Recording" +msgstr "" + +msgid "Content of File" +msgstr "" + +msgid "Content of File, then Result of a Command" +msgstr "" + +msgid "left" +msgstr "" + +msgid "center" +msgstr "" + +msgid "right" +msgstr "" + +msgid "Icon" +msgstr "" + +msgid "(fixed to the first position)" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Width" +msgstr "" + +msgid "Alignment" +msgstr "" + +msgid "Filename" +msgstr "" + +msgid "Command" +msgstr "" + +msgid "Name of the recording" +msgstr "" + +msgid "(fixed to the last position)" +msgstr "" + +#~ msgid "Show recording date" +#~ msgstr "Zobrazit datum nahrávky" + +#~ msgid "Show recording time" +#~ msgstr "Zobrazit čas nahrávky" + +#~ msgid "Show recording length" +#~ msgstr "Zobrazit délku nahrávky" + +#~ msgid "Patch font" +#~ msgstr "Upravit font" diff -Nru vdr-plugin-extrecmenu-1.1/po/da_DK.po vdr-plugin-extrecmenu-1.2.2.git20130304/po/da_DK.po --- vdr-plugin-extrecmenu-1.1/po/da_DK.po 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/po/da_DK.po 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,271 @@ +# ExtRecMenu plugin language source file. +# Copyright (C) 2008 Martin Prochnow +# This file is distributed under the same license as the ExtRecMenu package. +# Mogens Elneff , 2004 +# +msgid "" +msgstr "" +"Project-Id-Version: ExtRecMenu 1.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-06-24 08:43+0200\n" +"PO-Revision-Date: 2008-03-15 16:21+0100\n" +"Last-Translator: Mogens Elneff \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "Extended recordings menu" +msgstr "" + +msgid "Rename" +msgstr "" + +msgid "Invalid filename!" +msgstr "" + +msgid "Creating directories failed!" +msgstr "" + +msgid "New folder" +msgstr "" + +msgid "Button$Cancel" +msgstr "" + +msgid "Button$Create" +msgstr "" + +msgid "Button$Move" +msgstr "" + +msgid "[base dir]" +msgstr "" + +msgid "Target filesystem filled - try anyway?" +msgstr "" + +msgid "Moving into own sub-directory not allowed!" +msgstr "" + +msgid "Can't get filesystem information" +msgstr "" + +msgid "Details" +msgstr "" + +msgid "Rename/Move failed!" +msgstr "" + +msgid "Cutter queue not empty" +msgstr "" + +msgid "Move recordings in progress" +msgstr "" + +msgid "Can't start editing process!" +msgstr "" + +msgid "Recording already in cutter queue!" +msgstr "" + +msgid "No editing marks defined!" +msgstr "" + +msgid "Added recording to cutter queue" +msgstr "" + +msgid "Button$Play" +msgstr "" + +msgid "Button$Rewind" +msgstr "" + +msgid "Button$Back" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Path" +msgstr "" + +msgid "Channel" +msgstr "" + +msgid "Size" +msgstr "" + +msgid "Error while mounting DVD!" +msgstr "" + +msgid "Error while mounting Archive-HDD!" +msgstr "" + +msgid "Button$Commands" +msgstr "" + +msgid "Button$Open" +msgstr "" + +msgid "Button$Edit" +msgstr "" + +msgid "Button$Info" +msgstr "" + +#, c-format +msgid "Please attach Archive-HDD %s" +msgstr "" + +msgid "Recording not found on Archive-HDD!" +msgstr "" + +msgid "Error while linking [0-9]*.vdr!" +msgstr "" + +msgid "sudo or mount --bind / umount error (vfat system)" +msgstr "" + +msgid "Script 'hddarchive.sh' not found!" +msgstr "" + +#, c-format +msgid "Please insert DVD %s" +msgstr "" + +msgid "DVD plugin is not installed!" +msgstr "" + +msgid "No DVD in drive!" +msgstr "" + +msgid "Recording not found on DVD!" +msgstr "" + +msgid "Script 'dvdarchive.sh' not found!" +msgstr "" + +msgid "Sort by date" +msgstr "" + +msgid "Sort by name" +msgstr "" + +msgid "Cancel moving?" +msgstr "" + +msgid "Button$Rename" +msgstr "" + +msgid "Button$Delete" +msgstr "" + +msgid "ascending" +msgstr "" + +msgid "descending" +msgstr "" + +msgid "Show nr. of new recordings of a directory" +msgstr "" + +msgid "Maximum number of recordings per directory" +msgstr "" + +msgid "Items to show in recording list" +msgstr "" + +msgid "Show alternative to new marker" +msgstr "" + +msgid "Show free disk space for each file system" +msgstr "" + +msgid "Sorting" +msgstr "" + +msgid "Hide main menu entry" +msgstr "" + +msgid "Replace original recordings menu" +msgstr "" + +msgid "Jump to last replayed recording" +msgstr "" + +msgid "Call plugin after playback" +msgstr "" + +msgid "Limit bandwidth for move recordings" +msgstr "" + +msgid "Use VDR's recording info menu" +msgstr "" + +msgid "Use cutter queue" +msgstr "" + +msgid "--none--" +msgstr "" + +msgid "Blank" +msgstr "" + +msgid "Date of Recording" +msgstr "" + +msgid "Time of Recording" +msgstr "" + +msgid "Date and Time of Recording" +msgstr "" + +msgid "Length of Recording" +msgstr "" + +msgid "Rating of Recording" +msgstr "" + +msgid "Content of File" +msgstr "" + +msgid "Content of File, then Result of a Command" +msgstr "" + +msgid "left" +msgstr "" + +msgid "center" +msgstr "" + +msgid "right" +msgstr "" + +msgid "Icon" +msgstr "" + +msgid "(fixed to the first position)" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Width" +msgstr "" + +msgid "Alignment" +msgstr "" + +msgid "Filename" +msgstr "" + +msgid "Command" +msgstr "" + +msgid "Name of the recording" +msgstr "" + +msgid "(fixed to the last position)" +msgstr "" diff -Nru vdr-plugin-extrecmenu-1.1/po/de_DE.po vdr-plugin-extrecmenu-1.2.2.git20130304/po/de_DE.po --- vdr-plugin-extrecmenu-1.1/po/de_DE.po 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/po/de_DE.po 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,271 @@ +# ExtRecMenu plugin language source file. +# Copyright (C) 2008 Martin Prochnow +# This file is distributed under the same license as the ExtRecMenu package. +# Klaus Schmidinger , 2000 +# +msgid "" +msgstr "" +"Project-Id-Version: ExtRecMenu 1.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-06-24 08:43+0200\n" +"PO-Revision-Date: 2011-01-21 14:17+0100\n" +"Last-Translator: Carsten Siebholz helmutauer de>\n" +"Language-Team: \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "Extended recordings menu" +msgstr "Erweitertes Aufzeichnungs-Menü" + +msgid "Rename" +msgstr "Umbenennen" + +msgid "Invalid filename!" +msgstr "Ungültiger Dateiname!" + +msgid "Creating directories failed!" +msgstr "Erstellen des Verzeichnisses fehlgeschlagen!" + +msgid "New folder" +msgstr "Neues Verzeichnis" + +msgid "Button$Cancel" +msgstr "Abbrechen" + +msgid "Button$Create" +msgstr "Anlegen" + +msgid "Button$Move" +msgstr "Verschieben" + +msgid "[base dir]" +msgstr "[Stammverzeichnis]" + +msgid "Target filesystem filled - try anyway?" +msgstr "Zielpartition voll - trotzdem versuchen?" + +msgid "Moving into own sub-directory not allowed!" +msgstr "Verschieben in eigenes Unterverzeichnis nicht erlaubt!" + +msgid "Can't get filesystem information" +msgstr "Kann Dateisysteminformationen nicht ermitteln" + +msgid "Details" +msgstr "Details" + +msgid "Rename/Move failed!" +msgstr "Umbenennen/Verschieben fehlgeschlagen!" + +msgid "Cutter queue not empty" +msgstr "Schnitt-Warteschlange nicht leer" + +msgid "Move recordings in progress" +msgstr "Es werden Aufzeichnungen verschoben" + +msgid "Can't start editing process!" +msgstr "Kann Schneidevorgang nicht starten!" + +msgid "Recording already in cutter queue!" +msgstr "Aufzeichnung bereits in Schnitt-Warteschlange" + +msgid "No editing marks defined!" +msgstr "Keine Schnittmarken vorhanden!" + +msgid "Added recording to cutter queue" +msgstr "Aufzeichnung der Schnitt-Warteschlange hinzugefügt" + +msgid "Button$Play" +msgstr "Wiedergabe" + +msgid "Button$Rewind" +msgstr "Anfang" + +msgid "Button$Back" +msgstr "Zurück" + +msgid "Name" +msgstr "Name" + +msgid "Path" +msgstr "Pfad" + +msgid "Channel" +msgstr "Kanal" + +msgid "Size" +msgstr "Größe" + +msgid "Error while mounting DVD!" +msgstr "Fehler beim Einhängen der DVD!" + +msgid "Error while mounting Archive-HDD!" +msgstr "Fehler beim Einhängen der Archiv-HDD!" + +msgid "Button$Commands" +msgstr "Befehle" + +msgid "Button$Open" +msgstr "Öffnen" + +msgid "Button$Edit" +msgstr "Editieren" + +msgid "Button$Info" +msgstr "Info" + +#, c-format +msgid "Please attach Archive-HDD %s" +msgstr "Bitte Archiv-HDD %s anschliessen" + +msgid "Recording not found on Archive-HDD!" +msgstr "Aufzeichnung auf der Archiv-HDD nicht gefunden!" + +msgid "Error while linking [0-9]*.vdr!" +msgstr "Fehler beim Anlegen der Symlinks [0-9]*.vdr!" + +msgid "sudo or mount --bind / umount error (vfat system)" +msgstr "sudo oder mount --bind / umount Fehler (VFAT-System)" + +msgid "Script 'hddarchive.sh' not found!" +msgstr "Skript 'hddarchive.sh' wurde nicht gefunden!" + +#, c-format +msgid "Please insert DVD %s" +msgstr "Bitte DVD %s einlegen" + +msgid "DVD plugin is not installed!" +msgstr "Das DVD-Plugin ist nicht installiert!" + +msgid "No DVD in drive!" +msgstr "Keine DVD im Laufwerk!" + +msgid "Recording not found on DVD!" +msgstr "Aufzeichnung auf DVD nicht gefunden!" + +msgid "Script 'dvdarchive.sh' not found!" +msgstr "Skript 'dvdarchive.sh' wurde nicht gefunden!" + +msgid "Sort by date" +msgstr "Sortieren nach Datum" + +msgid "Sort by name" +msgstr "Sortieren nach Namen" + +msgid "Cancel moving?" +msgstr "Verschieben abbrechen?" + +msgid "Button$Rename" +msgstr "Umbenennen" + +msgid "Button$Delete" +msgstr "Löschen" + +msgid "ascending" +msgstr "aufsteigend" + +msgid "descending" +msgstr "absteigend" + +msgid "Show nr. of new recordings of a directory" +msgstr "Anzahl der neuen Aufz. eines Ordners anzeigen" + +msgid "Maximum number of recordings per directory" +msgstr "Maximale Zahl der Aufzeichnungen pro Ordner" + +msgid "Items to show in recording list" +msgstr "Anzuzeigende Elemente im Aufzeichnungs-Menü" + +msgid "Show alternative to new marker" +msgstr "Alternative zu Neu-Marker anzeigen" + +msgid "Show free disk space for each file system" +msgstr "Freien Speicherplatz für jede Partition anzeigen" + +msgid "Sorting" +msgstr "Sortierung" + +msgid "Hide main menu entry" +msgstr "Hauptmenüeintrag ausblenden" + +msgid "Replace original recordings menu" +msgstr "Originales Aufzeichnungsmenü ersetzen" + +msgid "Jump to last replayed recording" +msgstr "Springe zur zuletzt abgespielten Aufzeichnung" + +msgid "Call plugin after playback" +msgstr "Nach Wiedergabe Plugin aufrufen" + +msgid "Limit bandwidth for move recordings" +msgstr "Bandbreite beim Verschieben begrenzen" + +msgid "Use VDR's recording info menu" +msgstr "VDRs Aufzeichnungs-Info-Menü benutzen" + +msgid "Use cutter queue" +msgstr "Schnittwarteschlange benutzen" + +msgid "--none--" +msgstr "--leer--" + +msgid "Blank" +msgstr "Leerzeichen" + +msgid "Date of Recording" +msgstr "Datum der Aufzeichnung" + +msgid "Time of Recording" +msgstr "Uhrzeit der Aufzeichnung" + +msgid "Date and Time of Recording" +msgstr "Datum und Uhrzeit der Aufzeichnung" + +msgid "Length of Recording" +msgstr "Dauer der Aufzeichnung" + +msgid "Rating of Recording" +msgstr "Bewertung der Aufzeichnung" + +msgid "Content of File" +msgstr "Inhalt einer Datei" + +msgid "Content of File, then Result of a Command" +msgstr "Inhalt einer Datei, sonst Rückgabewert eines Befehls" + +msgid "left" +msgstr "linksbündig" + +msgid "center" +msgstr "zentriert" + +msgid "right" +msgstr "rechtsbündig" + +msgid "Icon" +msgstr "Symbol" + +msgid "(fixed to the first position)" +msgstr "(fest auf erster Position)" + +msgid "Item" +msgstr "Element" + +msgid "Width" +msgstr "Breite" + +msgid "Alignment" +msgstr "Ausrichtung" + +msgid "Filename" +msgstr "Dateiname" + +msgid "Command" +msgstr "Befehl" + +msgid "Name of the recording" +msgstr "Name der Aufzeichnung" + +msgid "(fixed to the last position)" +msgstr "(fest auf letzter Position)" diff -Nru vdr-plugin-extrecmenu-1.1/po/el_GR.po vdr-plugin-extrecmenu-1.2.2.git20130304/po/el_GR.po --- vdr-plugin-extrecmenu-1.1/po/el_GR.po 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/po/el_GR.po 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,271 @@ +# ExtRecMenu plugin language source file. +# Copyright (C) 2008 Martin Prochnow +# This file is distributed under the same license as the ExtRecMenu package. +# Dimitrios Dimitrakos , 2002 +# +msgid "" +msgstr "" +"Project-Id-Version: ExtRecMenu 1.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-06-24 08:43+0200\n" +"PO-Revision-Date: 2008-03-15 16:21+0100\n" +"Last-Translator: Dimitrios Dimitrakos \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-7\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "Extended recordings menu" +msgstr "" + +msgid "Rename" +msgstr "" + +msgid "Invalid filename!" +msgstr "" + +msgid "Creating directories failed!" +msgstr "" + +msgid "New folder" +msgstr "" + +msgid "Button$Cancel" +msgstr "" + +msgid "Button$Create" +msgstr "" + +msgid "Button$Move" +msgstr "" + +msgid "[base dir]" +msgstr "" + +msgid "Target filesystem filled - try anyway?" +msgstr "" + +msgid "Moving into own sub-directory not allowed!" +msgstr "" + +msgid "Can't get filesystem information" +msgstr "" + +msgid "Details" +msgstr "" + +msgid "Rename/Move failed!" +msgstr "" + +msgid "Cutter queue not empty" +msgstr "" + +msgid "Move recordings in progress" +msgstr "" + +msgid "Can't start editing process!" +msgstr "" + +msgid "Recording already in cutter queue!" +msgstr "" + +msgid "No editing marks defined!" +msgstr "" + +msgid "Added recording to cutter queue" +msgstr "" + +msgid "Button$Play" +msgstr "" + +msgid "Button$Rewind" +msgstr "" + +msgid "Button$Back" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Path" +msgstr "" + +msgid "Channel" +msgstr "" + +msgid "Size" +msgstr "" + +msgid "Error while mounting DVD!" +msgstr "" + +msgid "Error while mounting Archive-HDD!" +msgstr "" + +msgid "Button$Commands" +msgstr "" + +msgid "Button$Open" +msgstr "" + +msgid "Button$Edit" +msgstr "" + +msgid "Button$Info" +msgstr "" + +#, c-format +msgid "Please attach Archive-HDD %s" +msgstr "" + +msgid "Recording not found on Archive-HDD!" +msgstr "" + +msgid "Error while linking [0-9]*.vdr!" +msgstr "" + +msgid "sudo or mount --bind / umount error (vfat system)" +msgstr "" + +msgid "Script 'hddarchive.sh' not found!" +msgstr "" + +#, c-format +msgid "Please insert DVD %s" +msgstr "" + +msgid "DVD plugin is not installed!" +msgstr "" + +msgid "No DVD in drive!" +msgstr "" + +msgid "Recording not found on DVD!" +msgstr "" + +msgid "Script 'dvdarchive.sh' not found!" +msgstr "" + +msgid "Sort by date" +msgstr "" + +msgid "Sort by name" +msgstr "" + +msgid "Cancel moving?" +msgstr "" + +msgid "Button$Rename" +msgstr "" + +msgid "Button$Delete" +msgstr "" + +msgid "ascending" +msgstr "" + +msgid "descending" +msgstr "" + +msgid "Show nr. of new recordings of a directory" +msgstr "" + +msgid "Maximum number of recordings per directory" +msgstr "" + +msgid "Items to show in recording list" +msgstr "" + +msgid "Show alternative to new marker" +msgstr "" + +msgid "Show free disk space for each file system" +msgstr "" + +msgid "Sorting" +msgstr "" + +msgid "Hide main menu entry" +msgstr "" + +msgid "Replace original recordings menu" +msgstr "" + +msgid "Jump to last replayed recording" +msgstr "" + +msgid "Call plugin after playback" +msgstr "" + +msgid "Limit bandwidth for move recordings" +msgstr "" + +msgid "Use VDR's recording info menu" +msgstr "" + +msgid "Use cutter queue" +msgstr "" + +msgid "--none--" +msgstr "" + +msgid "Blank" +msgstr "" + +msgid "Date of Recording" +msgstr "" + +msgid "Time of Recording" +msgstr "" + +msgid "Date and Time of Recording" +msgstr "" + +msgid "Length of Recording" +msgstr "" + +msgid "Rating of Recording" +msgstr "" + +msgid "Content of File" +msgstr "" + +msgid "Content of File, then Result of a Command" +msgstr "" + +msgid "left" +msgstr "" + +msgid "center" +msgstr "" + +msgid "right" +msgstr "" + +msgid "Icon" +msgstr "" + +msgid "(fixed to the first position)" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Width" +msgstr "" + +msgid "Alignment" +msgstr "" + +msgid "Filename" +msgstr "" + +msgid "Command" +msgstr "" + +msgid "Name of the recording" +msgstr "" + +msgid "(fixed to the last position)" +msgstr "" diff -Nru vdr-plugin-extrecmenu-1.1/po/es_ES.po vdr-plugin-extrecmenu-1.2.2.git20130304/po/es_ES.po --- vdr-plugin-extrecmenu-1.1/po/es_ES.po 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/po/es_ES.po 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,276 @@ +# ExtRecMenu plugin language source file. +# Copyright (C) 2008 Martin Prochnow +# This file is distributed under the same license as the ExtRecMenu package. +# Ruben Nunez Francisco , 2002 +# +msgid "" +msgstr "" +"Project-Id-Version: ExtRecMenu 1.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-06-17 20:39+0200\n" +"PO-Revision-Date: 2008-03-15 16:21+0100\n" +"Last-Translator: Javier Bradineras \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "Extended recordings menu" +msgstr "Menú extendido de grabaciones" + +msgid "Rename" +msgstr "Renombrar" + +msgid "Invalid filename!" +msgstr "ĄFichero inválido!" + +msgid "Creating directories failed!" +msgstr "ĄLa creación de directorios ha fallado!" + +msgid "New folder" +msgstr "Carpeta nueva" + +msgid "Button$Cancel" +msgstr "Cancelar" + +msgid "Button$Create" +msgstr "Crear" + +msgid "Button$Move" +msgstr "Mover" + +msgid "[base dir]" +msgstr "[directorio base]" + +msgid "Target filesystem filled - try anyway?" +msgstr "Partición de destino llena - żintentar de nuevo?" + +msgid "Moving into own sub-directory not allowed!" +msgstr "No está permitido mover dentro del propio subdirectorio" + +msgid "Can't get filesystem information" +msgstr "No se puede acceder a la información de la partición" + +msgid "Details" +msgstr "Detalles" + +msgid "Button$Play" +msgstr "Reproducir" + +msgid "Button$Rewind" +msgstr "Rebobinar" + +msgid "Button$Back" +msgstr "Atrás" + +msgid "Name" +msgstr "Nombre" + +msgid "Path" +msgstr "Ruta/Camino" + +msgid "Channel" +msgstr "Canal" + +msgid "Size" +msgstr "Tamańo" + +msgid "Error while mounting DVD!" +msgstr "ĄError al montar DVD!" + +msgid "Error while mounting Archive-HDD!" +msgstr "ĄError al montar Archivo-HDD!" + +msgid "Button$Commands" +msgstr "Comandos" + +msgid "Button$Open" +msgstr "Abrir" + +msgid "Button$Edit" +msgstr "Modificar" + +msgid "Button$Info" +msgstr "Información" + +#, c-format +msgid "Please attach Archive-HDD %s" +msgstr "Por favor adjunte Archivo-HDD %s" + +msgid "Recording not found on Archive-HDD!" +msgstr "Grabación no encontrada en Archivo-HDD" + +msgid "Error while linking [0-9]*.vdr!" +msgstr "ĄError al enlazar [0-9]*.vdr!" + +msgid "sudo or mount --bind / umount error (vfat system)" +msgstr "Error sudo or mount --bind / umount (sistema vfat)" + +msgid "Script 'hddarchive.sh' not found!" +msgstr "No se encuentra el script 'hddarchive.sh'" + +#, c-format +msgid "Please insert DVD %s" +msgstr "Por favor, inserte DVD %s" + +msgid "DVD plugin is not installed!" +msgstr "ĄEl plugin DVD no está instalado!" + +msgid "No DVD in drive!" +msgstr "ĄNingún DVD en el lector!" + +msgid "Recording not found on DVD!" +msgstr "ĄGrabación no encontrada en el DVD!" + +msgid "Script 'dvdarchive.sh' not found!" +msgstr "No se encuentra el script 'dvdarchive.sh'" + +msgid "Sort by date" +msgstr "Ordenar por fecha" + +msgid "Sort by name" +msgstr "Ordenar por nombre" + +msgid "Cancel moving?" +msgstr "żCancelar mover?" + +msgid "Button$Rename" +msgstr "Renombrar" + +msgid "Button$Delete" +msgstr "Borrar" + +msgid "ascending" +msgstr "Ascendente" + +msgid "descending" +msgstr "Descendente" + +msgid "Show recording date" +msgstr "Mostrar la fecha de la grabación" + +msgid "Show recording rating" +msgstr "Mostrar clasificación de la grabación" + +msgid "Show nr. of new recordings of a directory" +msgstr "Mostrar el número de nuevas grabaciones" + +msgid "Maximum number of recordings per directory" +msgstr "Número máximo de grabaciones por directorio" + +msgid "Items to show in recording list" +msgstr "Elementos a mostrar en la lista de grabaciones" + +msgid "Show alternative to new marker" +msgstr "Mostrar alternativas al nuevo marcador" + +msgid "Show free disk space for each file system" +msgstr "Mostrar espacio libre de particiones" + +msgid "Sorting" +msgstr "Orden de la lista" + +msgid "Hide main menu entry" +msgstr "Ocultar en menú principal" + +msgid "Replace original recordings menu" +msgstr "Reemplazar el menú original de grabaciones" + +msgid "Jump to last replayed recording" +msgstr "Saltar a la última grabación reproducida" + +msgid "Call plugin after playback" +msgstr "Llamar al plugin después de reproducir" + +msgid "Limit bandwidth for move recordings" +msgstr "Ancho de banda límite para mover grabaciones" + +msgid "Use VDR's recording info menu" +msgstr "Usar el menú de información del VDR" + +msgid "Use cutter queue" +msgstr "Usar cola para recortar" + +msgid "Recording already in cutter queue!" +msgstr "ĄLa grabación está en la cola de recortado!" + +msgid "No editing marks defined!" +msgstr "No definidas marcas de edición" + +msgid "Added recording to cutter queue" +msgstr "Grabación ańadida a la cola de recortado" + +msgid "Rename/Move failed!" +msgstr "ĄRenombrar/Mover ha fallado!" + +msgid "Cutter queue not empty" +msgstr "La cola de recortado no está vacía" + +msgid "Move recordings in progress" +msgstr "Se está moviendo la grabación" + +msgid "Can't start editing process!" +msgstr "ĄNo se puede iniciar el proceso de edición!" + +msgid "--none--" +msgstr "--nada--" + +msgid "Blank" +msgstr "Vacío" + +msgid "Date of Recording" +msgstr "Fecha de la grabación" + +msgid "Time of Recording" +msgstr "Hora de la grabación" + +msgid "Date and Time of Recording" +msgstr "Fecha y hora de la grabación" + +msgid "Length of Recording" +msgstr "Duración de la grabación" + +msgid "Rating of Recording" +msgstr "Clasificación de la grabación" + +msgid "Content of File" +msgstr "Contenido del archivo" + +msgid "Content of File, then Result of a Command" +msgstr "Contenido del archivo, resultado del un comando" + +msgid "left" +msgstr "izquierda" + +msgid "center" +msgstr "centro" + +msgid "right" +msgstr "derecha" + +msgid "Icon" +msgstr "Símbolo" + +msgid "(fixed to the first position)" +msgstr "(fijado en la primera posición)" + +msgid "Item" +msgstr "Elemento" + +msgid "Width" +msgstr "Ancho" + +msgid "Alignment" +msgstr "Alineación" + +msgid "Filename" +msgstr "Nombre archivo" + +msgid "Command" +msgstr "Comando" + +msgid "Name of the recording" +msgstr "Nombre de la grabación" + +msgid "(fixed to the last position)" +msgstr "(fijado en la última posición)" diff -Nru vdr-plugin-extrecmenu-1.1/po/et_EE.po vdr-plugin-extrecmenu-1.2.2.git20130304/po/et_EE.po --- vdr-plugin-extrecmenu-1.1/po/et_EE.po 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/po/et_EE.po 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,271 @@ +# ExtRecMenu plugin language source file. +# Copyright (C) 2008 Martin Prochnow +# This file is distributed under the same license as the ExtRecMenu package. +# Arthur Konovalov , 2004 +# +msgid "" +msgstr "" +"Project-Id-Version: ExtRecMenu 1.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-06-24 08:43+0200\n" +"PO-Revision-Date: 2008-03-15 16:21+0100\n" +"Last-Translator: Arthur Konovalov \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-13\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "Extended recordings menu" +msgstr "" + +msgid "Rename" +msgstr "" + +msgid "Invalid filename!" +msgstr "" + +msgid "Creating directories failed!" +msgstr "" + +msgid "New folder" +msgstr "" + +msgid "Button$Cancel" +msgstr "" + +msgid "Button$Create" +msgstr "" + +msgid "Button$Move" +msgstr "" + +msgid "[base dir]" +msgstr "" + +msgid "Target filesystem filled - try anyway?" +msgstr "" + +msgid "Moving into own sub-directory not allowed!" +msgstr "" + +msgid "Can't get filesystem information" +msgstr "" + +msgid "Details" +msgstr "" + +msgid "Rename/Move failed!" +msgstr "" + +msgid "Cutter queue not empty" +msgstr "" + +msgid "Move recordings in progress" +msgstr "" + +msgid "Can't start editing process!" +msgstr "" + +msgid "Recording already in cutter queue!" +msgstr "" + +msgid "No editing marks defined!" +msgstr "" + +msgid "Added recording to cutter queue" +msgstr "" + +msgid "Button$Play" +msgstr "" + +msgid "Button$Rewind" +msgstr "" + +msgid "Button$Back" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Path" +msgstr "" + +msgid "Channel" +msgstr "" + +msgid "Size" +msgstr "" + +msgid "Error while mounting DVD!" +msgstr "" + +msgid "Error while mounting Archive-HDD!" +msgstr "" + +msgid "Button$Commands" +msgstr "" + +msgid "Button$Open" +msgstr "" + +msgid "Button$Edit" +msgstr "" + +msgid "Button$Info" +msgstr "" + +#, c-format +msgid "Please attach Archive-HDD %s" +msgstr "" + +msgid "Recording not found on Archive-HDD!" +msgstr "" + +msgid "Error while linking [0-9]*.vdr!" +msgstr "" + +msgid "sudo or mount --bind / umount error (vfat system)" +msgstr "" + +msgid "Script 'hddarchive.sh' not found!" +msgstr "" + +#, c-format +msgid "Please insert DVD %s" +msgstr "" + +msgid "DVD plugin is not installed!" +msgstr "" + +msgid "No DVD in drive!" +msgstr "" + +msgid "Recording not found on DVD!" +msgstr "" + +msgid "Script 'dvdarchive.sh' not found!" +msgstr "" + +msgid "Sort by date" +msgstr "" + +msgid "Sort by name" +msgstr "" + +msgid "Cancel moving?" +msgstr "" + +msgid "Button$Rename" +msgstr "" + +msgid "Button$Delete" +msgstr "" + +msgid "ascending" +msgstr "" + +msgid "descending" +msgstr "" + +msgid "Show nr. of new recordings of a directory" +msgstr "" + +msgid "Maximum number of recordings per directory" +msgstr "" + +msgid "Items to show in recording list" +msgstr "" + +msgid "Show alternative to new marker" +msgstr "" + +msgid "Show free disk space for each file system" +msgstr "" + +msgid "Sorting" +msgstr "" + +msgid "Hide main menu entry" +msgstr "" + +msgid "Replace original recordings menu" +msgstr "" + +msgid "Jump to last replayed recording" +msgstr "" + +msgid "Call plugin after playback" +msgstr "" + +msgid "Limit bandwidth for move recordings" +msgstr "" + +msgid "Use VDR's recording info menu" +msgstr "" + +msgid "Use cutter queue" +msgstr "" + +msgid "--none--" +msgstr "" + +msgid "Blank" +msgstr "" + +msgid "Date of Recording" +msgstr "" + +msgid "Time of Recording" +msgstr "" + +msgid "Date and Time of Recording" +msgstr "" + +msgid "Length of Recording" +msgstr "" + +msgid "Rating of Recording" +msgstr "" + +msgid "Content of File" +msgstr "" + +msgid "Content of File, then Result of a Command" +msgstr "" + +msgid "left" +msgstr "" + +msgid "center" +msgstr "" + +msgid "right" +msgstr "" + +msgid "Icon" +msgstr "" + +msgid "(fixed to the first position)" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Width" +msgstr "" + +msgid "Alignment" +msgstr "" + +msgid "Filename" +msgstr "" + +msgid "Command" +msgstr "" + +msgid "Name of the recording" +msgstr "" + +msgid "(fixed to the last position)" +msgstr "" diff -Nru vdr-plugin-extrecmenu-1.1/po/fi_FI.po vdr-plugin-extrecmenu-1.2.2.git20130304/po/fi_FI.po --- vdr-plugin-extrecmenu-1.1/po/fi_FI.po 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/po/fi_FI.po 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,286 @@ +# ExtRecMenu plugin language source file. +# Copyright (C) 2008 Martin Prochnow +# This file is distributed under the same license as the ExtRecMenu package. +# Hannu Savolainen , 2002 +# Jaakko Hyvätti , 2002 +# Niko Tarnanen , 2003 +# Rolf Ahrenberg , 2003 +# +msgid "" +msgstr "" +"Project-Id-Version: ExtRecMenu 1.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-06-24 08:43+0200\n" +"PO-Revision-Date: 2008-03-15 16:21+0100\n" +"Last-Translator: Rolf Ahrenberg \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "Extended recordings menu" +msgstr "Laajennettu tallennevalikko" + +msgid "Rename" +msgstr "Nimeä" + +msgid "Invalid filename!" +msgstr "Virheellinen tiedoston nimi!" + +msgid "Creating directories failed!" +msgstr "" + +msgid "New folder" +msgstr "Uusi kansio" + +msgid "Button$Cancel" +msgstr "Peruuta" + +msgid "Button$Create" +msgstr "Luo" + +msgid "Button$Move" +msgstr "Siirrä" + +msgid "[base dir]" +msgstr "[juurihakemisto]" + +msgid "Target filesystem filled - try anyway?" +msgstr "Kohdepartitio täynnä - yritetäänkö silti?" + +msgid "Moving into own sub-directory not allowed!" +msgstr "Siirto omaan alihakemistoon ei ole sallittu!" + +msgid "Can't get filesystem information" +msgstr "Tiedostojärjestelmän tietojen lukeminen epäonnistui" + +msgid "Details" +msgstr "Lisätiedot" + +msgid "Rename/Move failed!" +msgstr "Nimeäminen/siirto epäonnistui!" + +msgid "Cutter queue not empty" +msgstr "Leikkausjono ei ole tyhjä" + +msgid "Move recordings in progress" +msgstr "Tallenteiden siirto käynnissä" + +msgid "Can't start editing process!" +msgstr "" + +msgid "Recording already in cutter queue!" +msgstr "Tallenne on jo leikkausjonossa!" + +msgid "No editing marks defined!" +msgstr "" + +msgid "Added recording to cutter queue" +msgstr "Tallenne on lisätty leikkausjonoon" + +msgid "Button$Play" +msgstr "Toista" + +msgid "Button$Rewind" +msgstr "Alkuun" + +msgid "Button$Back" +msgstr "Takaisin" + +msgid "Name" +msgstr "" + +msgid "Path" +msgstr "Polku" + +msgid "Channel" +msgstr "" + +msgid "Size" +msgstr "Koko" + +msgid "Error while mounting DVD!" +msgstr "DVD:n avaaminen epäonnistui!" + +msgid "Error while mounting Archive-HDD!" +msgstr "" + +msgid "Button$Commands" +msgstr "Komennot" + +msgid "Button$Open" +msgstr "Avaa" + +msgid "Button$Edit" +msgstr "Muokkaa" + +msgid "Button$Info" +msgstr "Tiedot" + +#, c-format +msgid "Please attach Archive-HDD %s" +msgstr "" + +msgid "Recording not found on Archive-HDD!" +msgstr "" + +msgid "Error while linking [0-9]*.vdr!" +msgstr "Tiedostojen [0-9]*.vdr linkittäminen epäonnistui!" + +msgid "sudo or mount --bind / umount error (vfat system)" +msgstr "Sudo tai mount --bind / umount -komento epäonnistui (VFAT)!" + +msgid "Script 'hddarchive.sh' not found!" +msgstr "" + +#, c-format +msgid "Please insert DVD %s" +msgstr "Laita DVD %s asemaan" + +msgid "DVD plugin is not installed!" +msgstr "DVD-laajennosta ei löydy!" + +msgid "No DVD in drive!" +msgstr "Asemassa ei ole DVD-levyä!" + +msgid "Recording not found on DVD!" +msgstr "Tallennetta ei löydy DVD:ltä!" + +msgid "Script 'dvdarchive.sh' not found!" +msgstr "'dvdarchive.sh'-skriptiä ei löydetä!" + +msgid "Sort by date" +msgstr "Tallenteet järjestetään päivämäärän mukaan" + +msgid "Sort by name" +msgstr "Tallenteet järjestetään nimen mukaan" + +msgid "Cancel moving?" +msgstr "Peruutetaanko siirto?" + +msgid "Button$Rename" +msgstr "Nimeä" + +msgid "Button$Delete" +msgstr "Poista" + +msgid "ascending" +msgstr "nouseva" + +msgid "descending" +msgstr "laskeva" + +msgid "Show nr. of new recordings of a directory" +msgstr "Näytä uusien tallenteiden lukumäärä" + +msgid "Maximum number of recordings per directory" +msgstr "" + +msgid "Items to show in recording list" +msgstr "" + +msgid "Show alternative to new marker" +msgstr "Merkitse uudet tallenteet symbolilla" + +msgid "Show free disk space for each file system" +msgstr "Näytä vapaa levytila jokaisella tiedostojärjestelmällä" + +msgid "Sorting" +msgstr "Järjestys" + +msgid "Hide main menu entry" +msgstr "Piilota valinta päävalikosta" + +msgid "Replace original recordings menu" +msgstr "Korvaa alkuperäinen tallennevalikko" + +msgid "Jump to last replayed recording" +msgstr "Siirry viimeksi toistettuun tallenteeseen" + +msgid "Call plugin after playback" +msgstr "Avaa laajennos toiston loputtua" + +msgid "Limit bandwidth for move recordings" +msgstr "Rajoita tallenteiden siirtokaistaa" + +msgid "Use VDR's recording info menu" +msgstr "Käytä alkuperäistä tallenteen tiedot -valikkoa" + +msgid "Use cutter queue" +msgstr "" + +msgid "--none--" +msgstr "" + +msgid "Blank" +msgstr "" + +msgid "Date of Recording" +msgstr "" + +msgid "Time of Recording" +msgstr "" + +msgid "Date and Time of Recording" +msgstr "" + +msgid "Length of Recording" +msgstr "" + +msgid "Rating of Recording" +msgstr "" + +msgid "Content of File" +msgstr "" + +msgid "Content of File, then Result of a Command" +msgstr "" + +msgid "left" +msgstr "" + +msgid "center" +msgstr "" + +msgid "right" +msgstr "" + +msgid "Icon" +msgstr "" + +msgid "(fixed to the first position)" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Width" +msgstr "" + +msgid "Alignment" +msgstr "" + +msgid "Filename" +msgstr "" + +msgid "Command" +msgstr "" + +msgid "Name of the recording" +msgstr "" + +msgid "(fixed to the last position)" +msgstr "" + +#~ msgid "Show recording date" +#~ msgstr "Näytä tallenteen päiväys" + +#~ msgid "Show recording time" +#~ msgstr "Näytä tallenteen ajankohta" + +#~ msgid "Show recording length" +#~ msgstr "Näytä tallenteen kesto" + +#~ msgid "Patch font" +#~ msgstr "Käytä paikattua kirjasinta" diff -Nru vdr-plugin-extrecmenu-1.1/po/fr_FR.po vdr-plugin-extrecmenu-1.2.2.git20130304/po/fr_FR.po --- vdr-plugin-extrecmenu-1.1/po/fr_FR.po 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/po/fr_FR.po 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,286 @@ +# ExtRecMenu plugin language source file. +# Copyright (C) 2008 Martin Prochnow +# This file is distributed under the same license as the ExtRecMenu package. +# Jean-Claude Repetto , 2001 +# Olivier Jacques , 2003 +# Gregoire Favre , 2003 +# Nicolas Huillard , 2005 +# +msgid "" +msgstr "" +"Project-Id-Version: ExtRecMenu 1.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-06-24 08:43+0200\n" +"PO-Revision-Date: 2008-03-15 16:21+0100\n" +"Last-Translator: Nicolas Huillard \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "Extended recordings menu" +msgstr "Menu enregistrement étandu" + +msgid "Rename" +msgstr "Renommer" + +msgid "Invalid filename!" +msgstr "Nom de fichiers n'est pas valide'" + +msgid "Creating directories failed!" +msgstr "" + +msgid "New folder" +msgstr "Nouveau dossier" + +msgid "Button$Cancel" +msgstr "Interrompre" + +msgid "Button$Create" +msgstr "Créer" + +msgid "Button$Move" +msgstr "Déplacer" + +msgid "[base dir]" +msgstr "[Dossier racine]" + +msgid "Target filesystem filled - try anyway?" +msgstr "La partition de déstination est pleine - essayer tout de męme?" + +msgid "Moving into own sub-directory not allowed!" +msgstr "Déplacer dans le sous-dossier propre, n'est pas possible!" + +msgid "Can't get filesystem information" +msgstr "Impossible de déterminer les informations du systčme de fichiers" + +msgid "Details" +msgstr "Détails" + +msgid "Rename/Move failed!" +msgstr "Renommer/déplacer ŕ échoué!" + +msgid "Cutter queue not empty" +msgstr "Queue d'attente découpe n'est pas vide" + +msgid "Move recordings in progress" +msgstr "Des enregistrements sont en déplacement" + +msgid "Can't start editing process!" +msgstr "" + +msgid "Recording already in cutter queue!" +msgstr "L'enregistrement est déjŕ dans la queue d'attente découpe!" + +msgid "No editing marks defined!" +msgstr "" + +msgid "Added recording to cutter queue" +msgstr "Enregistrement ajouté ŕ la file d'attente de découpe" + +msgid "Button$Play" +msgstr "Montrer" + +msgid "Button$Rewind" +msgstr "Début" + +msgid "Button$Back" +msgstr "Retour" + +msgid "Name" +msgstr "" + +msgid "Path" +msgstr "Chemin" + +msgid "Channel" +msgstr "" + +msgid "Size" +msgstr "Taille" + +msgid "Error while mounting DVD!" +msgstr "Erreur lors du montage du DVD!" + +msgid "Error while mounting Archive-HDD!" +msgstr "" + +msgid "Button$Commands" +msgstr "Commande" + +msgid "Button$Open" +msgstr "Ouvrir" + +msgid "Button$Edit" +msgstr "Éditer" + +msgid "Button$Info" +msgstr "Info" + +#, c-format +msgid "Please attach Archive-HDD %s" +msgstr "" + +msgid "Recording not found on Archive-HDD!" +msgstr "" + +msgid "Error while linking [0-9]*.vdr!" +msgstr "Erreur lors de la création des racourcis [0-9]*.vdr!" + +msgid "sudo or mount --bind / umount error (vfat system)" +msgstr "Erreur sudo ou mount --bind / umount (Systeme VFAT)" + +msgid "Script 'hddarchive.sh' not found!" +msgstr "" + +#, c-format +msgid "Please insert DVD %s" +msgstr "Mettez le DVD %s dans le lecteur" + +msgid "DVD plugin is not installed!" +msgstr "Le plugin DVD n'est pas installé!" + +msgid "No DVD in drive!" +msgstr "Pas de DVD dans le lecteur!" + +msgid "Recording not found on DVD!" +msgstr "Il n'y a pas d'enregistrement sur le DVD!" + +msgid "Script 'dvdarchive.sh' not found!" +msgstr "Impossible de trouver le script 'dvdarchive.sh'!" + +msgid "Sort by date" +msgstr "Triage selon date" + +msgid "Sort by name" +msgstr "Triage selon le nom" + +msgid "Cancel moving?" +msgstr "Interrompre le déplacement?" + +msgid "Button$Rename" +msgstr "Renommer" + +msgid "Button$Delete" +msgstr "Effacer" + +msgid "ascending" +msgstr "montant" + +msgid "descending" +msgstr "descendant" + +msgid "Show nr. of new recordings of a directory" +msgstr "Afficher le nombre de nouveaux enregistrements dans les dossiers" + +msgid "Maximum number of recordings per directory" +msgstr "" + +msgid "Items to show in recording list" +msgstr "" + +msgid "Show alternative to new marker" +msgstr "Afficher les nouveaux symbols alternatifs" + +msgid "Show free disk space for each file system" +msgstr "Afficher la place libre de chaque partition" + +msgid "Sorting" +msgstr "Triage" + +msgid "Hide main menu entry" +msgstr "Menu Enregistrement étandu invisible" + +msgid "Replace original recordings menu" +msgstr "Remplacer le nenu original Enregistrement" + +msgid "Jump to last replayed recording" +msgstr "Retour au dernier enregistrement lu" + +msgid "Call plugin after playback" +msgstr "Aprčs la lecture démarer le plugin" + +msgid "Limit bandwidth for move recordings" +msgstr "Limiter la bande passante lors du déplacement" + +msgid "Use VDR's recording info menu" +msgstr "Utiliser le menu info enregistrement de VDR" + +msgid "Use cutter queue" +msgstr "" + +msgid "--none--" +msgstr "" + +msgid "Blank" +msgstr "" + +msgid "Date of Recording" +msgstr "" + +msgid "Time of Recording" +msgstr "" + +msgid "Date and Time of Recording" +msgstr "" + +msgid "Length of Recording" +msgstr "" + +msgid "Rating of Recording" +msgstr "" + +msgid "Content of File" +msgstr "" + +msgid "Content of File, then Result of a Command" +msgstr "" + +msgid "left" +msgstr "" + +msgid "center" +msgstr "" + +msgid "right" +msgstr "" + +msgid "Icon" +msgstr "" + +msgid "(fixed to the first position)" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Width" +msgstr "" + +msgid "Alignment" +msgstr "" + +msgid "Filename" +msgstr "" + +msgid "Command" +msgstr "" + +msgid "Name of the recording" +msgstr "" + +msgid "(fixed to the last position)" +msgstr "" + +#~ msgid "Show recording date" +#~ msgstr "Afiicher la date d'enregistrement" + +#~ msgid "Show recording time" +#~ msgstr "Afficher l'heure d'enregistrement" + +#~ msgid "Show recording length" +#~ msgstr "Afficher la longeur de l'enregistrement" + +#~ msgid "Patch font" +#~ msgstr "Patch des police" diff -Nru vdr-plugin-extrecmenu-1.1/po/hr_HR.po vdr-plugin-extrecmenu-1.2.2.git20130304/po/hr_HR.po --- vdr-plugin-extrecmenu-1.1/po/hr_HR.po 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/po/hr_HR.po 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,272 @@ +# ExtRecMenu plugin language source file. +# Copyright (C) 2008 Martin Prochnow +# This file is distributed under the same license as the ExtRecMenu package. +# Drazen Dupor , 2004 +# Dino Ravnic , 2004 +# +msgid "" +msgstr "" +"Project-Id-Version: ExtRecMenu 1.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-06-24 08:43+0200\n" +"PO-Revision-Date: 2008-03-15 16:21+0100\n" +"Last-Translator: Drazen Dupor \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-2\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "Extended recordings menu" +msgstr "" + +msgid "Rename" +msgstr "" + +msgid "Invalid filename!" +msgstr "" + +msgid "Creating directories failed!" +msgstr "" + +msgid "New folder" +msgstr "" + +msgid "Button$Cancel" +msgstr "" + +msgid "Button$Create" +msgstr "" + +msgid "Button$Move" +msgstr "" + +msgid "[base dir]" +msgstr "" + +msgid "Target filesystem filled - try anyway?" +msgstr "" + +msgid "Moving into own sub-directory not allowed!" +msgstr "" + +msgid "Can't get filesystem information" +msgstr "" + +msgid "Details" +msgstr "" + +msgid "Rename/Move failed!" +msgstr "" + +msgid "Cutter queue not empty" +msgstr "" + +msgid "Move recordings in progress" +msgstr "" + +msgid "Can't start editing process!" +msgstr "" + +msgid "Recording already in cutter queue!" +msgstr "" + +msgid "No editing marks defined!" +msgstr "" + +msgid "Added recording to cutter queue" +msgstr "" + +msgid "Button$Play" +msgstr "" + +msgid "Button$Rewind" +msgstr "" + +msgid "Button$Back" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Path" +msgstr "" + +msgid "Channel" +msgstr "" + +msgid "Size" +msgstr "" + +msgid "Error while mounting DVD!" +msgstr "" + +msgid "Error while mounting Archive-HDD!" +msgstr "" + +msgid "Button$Commands" +msgstr "" + +msgid "Button$Open" +msgstr "" + +msgid "Button$Edit" +msgstr "" + +msgid "Button$Info" +msgstr "" + +#, c-format +msgid "Please attach Archive-HDD %s" +msgstr "" + +msgid "Recording not found on Archive-HDD!" +msgstr "" + +msgid "Error while linking [0-9]*.vdr!" +msgstr "" + +msgid "sudo or mount --bind / umount error (vfat system)" +msgstr "" + +msgid "Script 'hddarchive.sh' not found!" +msgstr "" + +#, c-format +msgid "Please insert DVD %s" +msgstr "" + +msgid "DVD plugin is not installed!" +msgstr "" + +msgid "No DVD in drive!" +msgstr "" + +msgid "Recording not found on DVD!" +msgstr "" + +msgid "Script 'dvdarchive.sh' not found!" +msgstr "" + +msgid "Sort by date" +msgstr "" + +msgid "Sort by name" +msgstr "" + +msgid "Cancel moving?" +msgstr "" + +msgid "Button$Rename" +msgstr "" + +msgid "Button$Delete" +msgstr "" + +msgid "ascending" +msgstr "" + +msgid "descending" +msgstr "" + +msgid "Show nr. of new recordings of a directory" +msgstr "" + +msgid "Maximum number of recordings per directory" +msgstr "" + +msgid "Items to show in recording list" +msgstr "" + +msgid "Show alternative to new marker" +msgstr "" + +msgid "Show free disk space for each file system" +msgstr "" + +msgid "Sorting" +msgstr "" + +msgid "Hide main menu entry" +msgstr "" + +msgid "Replace original recordings menu" +msgstr "" + +msgid "Jump to last replayed recording" +msgstr "" + +msgid "Call plugin after playback" +msgstr "" + +msgid "Limit bandwidth for move recordings" +msgstr "" + +msgid "Use VDR's recording info menu" +msgstr "" + +msgid "Use cutter queue" +msgstr "" + +msgid "--none--" +msgstr "" + +msgid "Blank" +msgstr "" + +msgid "Date of Recording" +msgstr "" + +msgid "Time of Recording" +msgstr "" + +msgid "Date and Time of Recording" +msgstr "" + +msgid "Length of Recording" +msgstr "" + +msgid "Rating of Recording" +msgstr "" + +msgid "Content of File" +msgstr "" + +msgid "Content of File, then Result of a Command" +msgstr "" + +msgid "left" +msgstr "" + +msgid "center" +msgstr "" + +msgid "right" +msgstr "" + +msgid "Icon" +msgstr "" + +msgid "(fixed to the first position)" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Width" +msgstr "" + +msgid "Alignment" +msgstr "" + +msgid "Filename" +msgstr "" + +msgid "Command" +msgstr "" + +msgid "Name of the recording" +msgstr "" + +msgid "(fixed to the last position)" +msgstr "" diff -Nru vdr-plugin-extrecmenu-1.1/po/hu_HU.po vdr-plugin-extrecmenu-1.2.2.git20130304/po/hu_HU.po --- vdr-plugin-extrecmenu-1.1/po/hu_HU.po 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/po/hu_HU.po 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,272 @@ +# ExtRecMenu plugin language source file. +# Copyright (C) 2008 Martin Prochnow +# This file is distributed under the same license as the ExtRecMenu package. +# Istvan Koenigsberger , 2002 +# Guido Josten , 2002 +# +msgid "" +msgstr "" +"Project-Id-Version: ExtRecMenu 1.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-06-24 08:43+0200\n" +"PO-Revision-Date: 2008-03-15 16:21+0100\n" +"Last-Translator: Istvan Koenigsberger , Guido Josten \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-2\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "Extended recordings menu" +msgstr "" + +msgid "Rename" +msgstr "" + +msgid "Invalid filename!" +msgstr "" + +msgid "Creating directories failed!" +msgstr "" + +msgid "New folder" +msgstr "" + +msgid "Button$Cancel" +msgstr "" + +msgid "Button$Create" +msgstr "" + +msgid "Button$Move" +msgstr "" + +msgid "[base dir]" +msgstr "" + +msgid "Target filesystem filled - try anyway?" +msgstr "" + +msgid "Moving into own sub-directory not allowed!" +msgstr "" + +msgid "Can't get filesystem information" +msgstr "" + +msgid "Details" +msgstr "" + +msgid "Rename/Move failed!" +msgstr "" + +msgid "Cutter queue not empty" +msgstr "" + +msgid "Move recordings in progress" +msgstr "" + +msgid "Can't start editing process!" +msgstr "" + +msgid "Recording already in cutter queue!" +msgstr "" + +msgid "No editing marks defined!" +msgstr "" + +msgid "Added recording to cutter queue" +msgstr "" + +msgid "Button$Play" +msgstr "" + +msgid "Button$Rewind" +msgstr "" + +msgid "Button$Back" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Path" +msgstr "" + +msgid "Channel" +msgstr "" + +msgid "Size" +msgstr "" + +msgid "Error while mounting DVD!" +msgstr "" + +msgid "Error while mounting Archive-HDD!" +msgstr "" + +msgid "Button$Commands" +msgstr "" + +msgid "Button$Open" +msgstr "" + +msgid "Button$Edit" +msgstr "" + +msgid "Button$Info" +msgstr "" + +#, c-format +msgid "Please attach Archive-HDD %s" +msgstr "" + +msgid "Recording not found on Archive-HDD!" +msgstr "" + +msgid "Error while linking [0-9]*.vdr!" +msgstr "" + +msgid "sudo or mount --bind / umount error (vfat system)" +msgstr "" + +msgid "Script 'hddarchive.sh' not found!" +msgstr "" + +#, c-format +msgid "Please insert DVD %s" +msgstr "" + +msgid "DVD plugin is not installed!" +msgstr "" + +msgid "No DVD in drive!" +msgstr "" + +msgid "Recording not found on DVD!" +msgstr "" + +msgid "Script 'dvdarchive.sh' not found!" +msgstr "" + +msgid "Sort by date" +msgstr "" + +msgid "Sort by name" +msgstr "" + +msgid "Cancel moving?" +msgstr "" + +msgid "Button$Rename" +msgstr "" + +msgid "Button$Delete" +msgstr "" + +msgid "ascending" +msgstr "" + +msgid "descending" +msgstr "" + +msgid "Show nr. of new recordings of a directory" +msgstr "" + +msgid "Maximum number of recordings per directory" +msgstr "" + +msgid "Items to show in recording list" +msgstr "" + +msgid "Show alternative to new marker" +msgstr "" + +msgid "Show free disk space for each file system" +msgstr "" + +msgid "Sorting" +msgstr "" + +msgid "Hide main menu entry" +msgstr "" + +msgid "Replace original recordings menu" +msgstr "" + +msgid "Jump to last replayed recording" +msgstr "" + +msgid "Call plugin after playback" +msgstr "" + +msgid "Limit bandwidth for move recordings" +msgstr "" + +msgid "Use VDR's recording info menu" +msgstr "" + +msgid "Use cutter queue" +msgstr "" + +msgid "--none--" +msgstr "" + +msgid "Blank" +msgstr "" + +msgid "Date of Recording" +msgstr "" + +msgid "Time of Recording" +msgstr "" + +msgid "Date and Time of Recording" +msgstr "" + +msgid "Length of Recording" +msgstr "" + +msgid "Rating of Recording" +msgstr "" + +msgid "Content of File" +msgstr "" + +msgid "Content of File, then Result of a Command" +msgstr "" + +msgid "left" +msgstr "" + +msgid "center" +msgstr "" + +msgid "right" +msgstr "" + +msgid "Icon" +msgstr "" + +msgid "(fixed to the first position)" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Width" +msgstr "" + +msgid "Alignment" +msgstr "" + +msgid "Filename" +msgstr "" + +msgid "Command" +msgstr "" + +msgid "Name of the recording" +msgstr "" + +msgid "(fixed to the last position)" +msgstr "" diff -Nru vdr-plugin-extrecmenu-1.1/po/it_IT.po vdr-plugin-extrecmenu-1.2.2.git20130304/po/it_IT.po --- vdr-plugin-extrecmenu-1.1/po/it_IT.po 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/po/it_IT.po 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,288 @@ +# ExtRecMenu plugin language source file. +# Copyright (C) 2008 Martin Prochnow +# This file is distributed under the same license as the ExtRecMenu package. +# Alberto Carraro , 2001 +# Antonio Ospite , 2003 +# Sean Carlos , 2005 +# +msgid "" +msgstr "" +"Project-Id-Version: ExtRecMenu 1.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-04-24 12:27+0200\n" +"PO-Revision-Date: 2011-07-09 23:47+0100\n" +"Last-Translator: Diego Pierotto \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Italian\n" +"X-Poedit-Country: ITALY\n" +"X-Poedit-SourceCharset: utf-8\n" + +msgid "Extended recordings menu" +msgstr "Menu registrazioni avanzato" + +msgid "Rename" +msgstr "Rinomina" + +msgid "Invalid filename!" +msgstr "Nome file non valido!" + +msgid "Creating directories failed!" +msgstr "Creazione directory fallita!" + +msgid "New folder" +msgstr "Nuova directory" + +msgid "Button$Cancel" +msgstr "Annulla" + +msgid "Button$Create" +msgstr "Crea" + +msgid "Button$Move" +msgstr "Sposta" + +msgid "[base dir]" +msgstr "[dir. base]" + +msgid "Target filesystem filled - try anyway?" +msgstr "Destinazione senza spazio - provare comunque?" + +msgid "Moving into own sub-directory not allowed!" +msgstr "Spostamento nella sotto directory non permesso!" + +msgid "Can't get filesystem information" +msgstr "Impossibile ottenere info sulla partizione" + +msgid "Details" +msgstr "Dettagli" + +msgid "Rename/Move failed!" +msgstr "Ridenominazione/Spostamento fallito!" + +msgid "Cutter queue not empty" +msgstr "Coda tagli non vuota" + +msgid "Move recordings in progress" +msgstr "Spostamento registrazioni in corso" + +msgid "Can't start editing process!" +msgstr "Impossibile avviare il processo di modifica!" + +msgid "Recording already in cutter queue!" +msgstr "Registrazione giĂ  presente nella coda tagli!" + +msgid "No editing marks defined!" +msgstr "Nessun marcatore di modifica definito!" + +msgid "Added recording to cutter queue" +msgstr "Aggiunta registrazione alla coda tagli" + +msgid "Button$Play" +msgstr "Riproduci" + +msgid "Button$Rewind" +msgstr "Riavvolgi" + +msgid "Button$Back" +msgstr "Indietro" + +msgid "Name" +msgstr "Nome" + +msgid "Path" +msgstr "Percorso" + +msgid "Channel" +msgstr "Canale" + +msgid "Size" +msgstr "Dimensione" + +msgid "Error while mounting DVD!" +msgstr "Errore durante montaggio DVD!" + +msgid "Error while mounting Archive-HDD!" +msgstr "Errore durante montaggio archivio DVD!" + +msgid "Button$Commands" +msgstr "Comandi" + +msgid "Button$Open" +msgstr "Apri" + +msgid "Button$Edit" +msgstr "Modifica" + +msgid "Button$Info" +msgstr "Info" + +#, c-format +msgid "Please attach Archive-HDD %s" +msgstr "Allega archivio HDD %s" + +msgid "Recording not found on Archive-HDD!" +msgstr "Registrazione non trovata nell'archivio HDD!" + +msgid "Error while linking [0-9]*.vdr!" +msgstr "Errore creazione collegamento [0-9]*.vdr!" + +msgid "sudo or mount --bind / umount error (vfat system)" +msgstr "Errore sudo o mount --bind / umount (sistema vfat)" + +msgid "Script 'hddarchive.sh' not found!" +msgstr "Script 'hddarchive.sh' non trovato!" + +#, c-format +msgid "Please insert DVD %s" +msgstr "Inserisci il DVD %s" + +msgid "DVD plugin is not installed!" +msgstr "Plugin DVD non installato!" + +msgid "No DVD in drive!" +msgstr "Nessun DVD nel lettore!" + +msgid "Recording not found on DVD!" +msgstr "Registrazione non trovata nel DVD!" + +msgid "Script 'dvdarchive.sh' not found!" +msgstr "Script 'dvdarchive.sh non trovato!" + +msgid "Sort by date" +msgstr "Ordina per data" + +msgid "Sort by name" +msgstr "Ordina per nome" + +msgid "Cancel moving?" +msgstr "Annullare spostamento?" + +msgid "Button$Rename" +msgstr "Rinomina" + +msgid "Button$Delete" +msgstr "Elimina" + +msgid "ascending" +msgstr "crescente" + +msgid "descending" +msgstr "decrescente" + +msgid "Show nr. of new recordings of a directory" +msgstr "Mostra num. nuove reg. directory" + +msgid "Maximum number of recordings per directory" +msgstr "Numero massimo di registrazioni per directory" + +msgid "Items to show in recording list" +msgstr "Voci da mostrare nell'elenco reg." + +msgid "Show alternative to new marker" +msgstr "Mostra opzioni nuovo marcatore" + +msgid "Show free disk space for each file system" +msgstr "Mostra spazio disponibile partizioni" + +msgid "Sorting" +msgstr "Ordinamento" + +msgid "Hide main menu entry" +msgstr "Nascondi voce menu principale" + +msgid "Replace original recordings menu" +msgstr "Sostituisci menu reg. originale" + +msgid "Jump to last replayed recording" +msgstr "Vai all'ultima reg. riprodotta" + +msgid "Call plugin after playback" +msgstr "Chiama plugin dopo esecuzione" + +msgid "Limit bandwidth for move recordings" +msgstr "Limita banda spostamento reg." + +msgid "Use VDR's recording info menu" +msgstr "Utilizza menu info reg. di VDR" + +msgid "Use cutter queue" +msgstr "Utilizza coda tagli" + +msgid "--none--" +msgstr "--nessuna--" + +msgid "Blank" +msgstr "Vuota" + +msgid "Date of Recording" +msgstr "Data registrazione" + +msgid "Time of Recording" +msgstr "Ora registrazione" + +msgid "Date and Time of Recording" +msgstr "Data e ora registrazione" + +msgid "Length of Recording" +msgstr "Durata registrazione" + +msgid "Rating of Recording" +msgstr "Valutazione registrazione" + +msgid "Content of File" +msgstr "Contenuto file" + +msgid "Content of File, then Result of a Command" +msgstr "Contenuto file, poi risultato del comando" + +msgid "left" +msgstr "sinistra" + +msgid "center" +msgstr "centro" + +msgid "right" +msgstr "destra" + +msgid "Icon" +msgstr "Icona" + +msgid "(fixed to the first position)" +msgstr "(sistemato nella prima posizione)" + +msgid "Item" +msgstr "Voce" + +msgid "Width" +msgstr "Larghezza" + +msgid "Alignment" +msgstr "Allineamento" + +msgid "Filename" +msgstr "Nome file" + +msgid "Command" +msgstr "Comando" + +msgid "Name of the recording" +msgstr "Nome registrazione" + +msgid "(fixed to the last position)" +msgstr "(sistemato nell'ultima posizione)" + +#~ msgid "Show recording date" +#~ msgstr "Mostra data registrazione" + +#~ msgid "Show recording time" +#~ msgstr "Mostra ora registrazione" + +#~ msgid "Show recording length" +#~ msgstr "Mostra durata registrazione" + +#~ msgid "Show recording rating" +#~ msgstr "Mostra valutazione registrazione" diff -Nru vdr-plugin-extrecmenu-1.1/po/nl_NL.po vdr-plugin-extrecmenu-1.2.2.git20130304/po/nl_NL.po --- vdr-plugin-extrecmenu-1.1/po/nl_NL.po 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/po/nl_NL.po 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,273 @@ +# ExtRecMenu plugin language source file. +# Copyright (C) 2008 Martin Prochnow +# This file is distributed under the same license as the ExtRecMenu package. +# Arnold Niessen , 2001 +# Hans Dingemans , 2003 +# Maarten Wisse , 2005 +# +msgid "" +msgstr "" +"Project-Id-Version: ExtRecMenu 1.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-06-24 08:43+0200\n" +"PO-Revision-Date: 2008-03-15 16:21+0100\n" +"Last-Translator: Maarten Wisse \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "Extended recordings menu" +msgstr "" + +msgid "Rename" +msgstr "" + +msgid "Invalid filename!" +msgstr "" + +msgid "Creating directories failed!" +msgstr "" + +msgid "New folder" +msgstr "" + +msgid "Button$Cancel" +msgstr "" + +msgid "Button$Create" +msgstr "" + +msgid "Button$Move" +msgstr "" + +msgid "[base dir]" +msgstr "" + +msgid "Target filesystem filled - try anyway?" +msgstr "" + +msgid "Moving into own sub-directory not allowed!" +msgstr "" + +msgid "Can't get filesystem information" +msgstr "" + +msgid "Details" +msgstr "" + +msgid "Rename/Move failed!" +msgstr "" + +msgid "Cutter queue not empty" +msgstr "" + +msgid "Move recordings in progress" +msgstr "" + +msgid "Can't start editing process!" +msgstr "" + +msgid "Recording already in cutter queue!" +msgstr "" + +msgid "No editing marks defined!" +msgstr "" + +msgid "Added recording to cutter queue" +msgstr "" + +msgid "Button$Play" +msgstr "" + +msgid "Button$Rewind" +msgstr "" + +msgid "Button$Back" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Path" +msgstr "" + +msgid "Channel" +msgstr "" + +msgid "Size" +msgstr "" + +msgid "Error while mounting DVD!" +msgstr "" + +msgid "Error while mounting Archive-HDD!" +msgstr "" + +msgid "Button$Commands" +msgstr "" + +msgid "Button$Open" +msgstr "" + +msgid "Button$Edit" +msgstr "" + +msgid "Button$Info" +msgstr "" + +#, c-format +msgid "Please attach Archive-HDD %s" +msgstr "" + +msgid "Recording not found on Archive-HDD!" +msgstr "" + +msgid "Error while linking [0-9]*.vdr!" +msgstr "" + +msgid "sudo or mount --bind / umount error (vfat system)" +msgstr "" + +msgid "Script 'hddarchive.sh' not found!" +msgstr "" + +#, c-format +msgid "Please insert DVD %s" +msgstr "" + +msgid "DVD plugin is not installed!" +msgstr "" + +msgid "No DVD in drive!" +msgstr "" + +msgid "Recording not found on DVD!" +msgstr "" + +msgid "Script 'dvdarchive.sh' not found!" +msgstr "" + +msgid "Sort by date" +msgstr "" + +msgid "Sort by name" +msgstr "" + +msgid "Cancel moving?" +msgstr "" + +msgid "Button$Rename" +msgstr "" + +msgid "Button$Delete" +msgstr "" + +msgid "ascending" +msgstr "" + +msgid "descending" +msgstr "" + +msgid "Show nr. of new recordings of a directory" +msgstr "" + +msgid "Maximum number of recordings per directory" +msgstr "" + +msgid "Items to show in recording list" +msgstr "" + +msgid "Show alternative to new marker" +msgstr "" + +msgid "Show free disk space for each file system" +msgstr "" + +msgid "Sorting" +msgstr "" + +msgid "Hide main menu entry" +msgstr "" + +msgid "Replace original recordings menu" +msgstr "" + +msgid "Jump to last replayed recording" +msgstr "" + +msgid "Call plugin after playback" +msgstr "" + +msgid "Limit bandwidth for move recordings" +msgstr "" + +msgid "Use VDR's recording info menu" +msgstr "" + +msgid "Use cutter queue" +msgstr "" + +msgid "--none--" +msgstr "" + +msgid "Blank" +msgstr "" + +msgid "Date of Recording" +msgstr "" + +msgid "Time of Recording" +msgstr "" + +msgid "Date and Time of Recording" +msgstr "" + +msgid "Length of Recording" +msgstr "" + +msgid "Rating of Recording" +msgstr "" + +msgid "Content of File" +msgstr "" + +msgid "Content of File, then Result of a Command" +msgstr "" + +msgid "left" +msgstr "" + +msgid "center" +msgstr "" + +msgid "right" +msgstr "" + +msgid "Icon" +msgstr "" + +msgid "(fixed to the first position)" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Width" +msgstr "" + +msgid "Alignment" +msgstr "" + +msgid "Filename" +msgstr "" + +msgid "Command" +msgstr "" + +msgid "Name of the recording" +msgstr "" + +msgid "(fixed to the last position)" +msgstr "" diff -Nru vdr-plugin-extrecmenu-1.1/po/nn_NO.po vdr-plugin-extrecmenu-1.2.2.git20130304/po/nn_NO.po --- vdr-plugin-extrecmenu-1.1/po/nn_NO.po 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/po/nn_NO.po 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,272 @@ +# ExtRecMenu plugin language source file. +# Copyright (C) 2008 Martin Prochnow +# This file is distributed under the same license as the ExtRecMenu package. +# Jřrgen Tvedt , 2001 +# Truls Slevigen , 2002 +# +msgid "" +msgstr "" +"Project-Id-Version: ExtRecMenu 1.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-06-24 08:43+0200\n" +"PO-Revision-Date: 2008-03-15 16:21+0100\n" +"Last-Translator: Truls Slevigen \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "Extended recordings menu" +msgstr "" + +msgid "Rename" +msgstr "" + +msgid "Invalid filename!" +msgstr "" + +msgid "Creating directories failed!" +msgstr "" + +msgid "New folder" +msgstr "" + +msgid "Button$Cancel" +msgstr "" + +msgid "Button$Create" +msgstr "" + +msgid "Button$Move" +msgstr "" + +msgid "[base dir]" +msgstr "" + +msgid "Target filesystem filled - try anyway?" +msgstr "" + +msgid "Moving into own sub-directory not allowed!" +msgstr "" + +msgid "Can't get filesystem information" +msgstr "" + +msgid "Details" +msgstr "" + +msgid "Rename/Move failed!" +msgstr "" + +msgid "Cutter queue not empty" +msgstr "" + +msgid "Move recordings in progress" +msgstr "" + +msgid "Can't start editing process!" +msgstr "" + +msgid "Recording already in cutter queue!" +msgstr "" + +msgid "No editing marks defined!" +msgstr "" + +msgid "Added recording to cutter queue" +msgstr "" + +msgid "Button$Play" +msgstr "" + +msgid "Button$Rewind" +msgstr "" + +msgid "Button$Back" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Path" +msgstr "" + +msgid "Channel" +msgstr "" + +msgid "Size" +msgstr "" + +msgid "Error while mounting DVD!" +msgstr "" + +msgid "Error while mounting Archive-HDD!" +msgstr "" + +msgid "Button$Commands" +msgstr "" + +msgid "Button$Open" +msgstr "" + +msgid "Button$Edit" +msgstr "" + +msgid "Button$Info" +msgstr "" + +#, c-format +msgid "Please attach Archive-HDD %s" +msgstr "" + +msgid "Recording not found on Archive-HDD!" +msgstr "" + +msgid "Error while linking [0-9]*.vdr!" +msgstr "" + +msgid "sudo or mount --bind / umount error (vfat system)" +msgstr "" + +msgid "Script 'hddarchive.sh' not found!" +msgstr "" + +#, c-format +msgid "Please insert DVD %s" +msgstr "" + +msgid "DVD plugin is not installed!" +msgstr "" + +msgid "No DVD in drive!" +msgstr "" + +msgid "Recording not found on DVD!" +msgstr "" + +msgid "Script 'dvdarchive.sh' not found!" +msgstr "" + +msgid "Sort by date" +msgstr "" + +msgid "Sort by name" +msgstr "" + +msgid "Cancel moving?" +msgstr "" + +msgid "Button$Rename" +msgstr "" + +msgid "Button$Delete" +msgstr "" + +msgid "ascending" +msgstr "" + +msgid "descending" +msgstr "" + +msgid "Show nr. of new recordings of a directory" +msgstr "" + +msgid "Maximum number of recordings per directory" +msgstr "" + +msgid "Items to show in recording list" +msgstr "" + +msgid "Show alternative to new marker" +msgstr "" + +msgid "Show free disk space for each file system" +msgstr "" + +msgid "Sorting" +msgstr "" + +msgid "Hide main menu entry" +msgstr "" + +msgid "Replace original recordings menu" +msgstr "" + +msgid "Jump to last replayed recording" +msgstr "" + +msgid "Call plugin after playback" +msgstr "" + +msgid "Limit bandwidth for move recordings" +msgstr "" + +msgid "Use VDR's recording info menu" +msgstr "" + +msgid "Use cutter queue" +msgstr "" + +msgid "--none--" +msgstr "" + +msgid "Blank" +msgstr "" + +msgid "Date of Recording" +msgstr "" + +msgid "Time of Recording" +msgstr "" + +msgid "Date and Time of Recording" +msgstr "" + +msgid "Length of Recording" +msgstr "" + +msgid "Rating of Recording" +msgstr "" + +msgid "Content of File" +msgstr "" + +msgid "Content of File, then Result of a Command" +msgstr "" + +msgid "left" +msgstr "" + +msgid "center" +msgstr "" + +msgid "right" +msgstr "" + +msgid "Icon" +msgstr "" + +msgid "(fixed to the first position)" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Width" +msgstr "" + +msgid "Alignment" +msgstr "" + +msgid "Filename" +msgstr "" + +msgid "Command" +msgstr "" + +msgid "Name of the recording" +msgstr "" + +msgid "(fixed to the last position)" +msgstr "" diff -Nru vdr-plugin-extrecmenu-1.1/po/pl_PL.po vdr-plugin-extrecmenu-1.2.2.git20130304/po/pl_PL.po --- vdr-plugin-extrecmenu-1.1/po/pl_PL.po 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/po/pl_PL.po 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,271 @@ +# ExtRecMenu plugin language source file. +# Copyright (C) 2008 Martin Prochnow +# This file is distributed under the same license as the ExtRecMenu package. +# Michael Rakowski , 2002 +# +msgid "" +msgstr "" +"Project-Id-Version: ExtRecMenu 1.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-06-24 08:43+0200\n" +"PO-Revision-Date: 2008-03-15 16:21+0100\n" +"Last-Translator: Michael Rakowski \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-2\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "Extended recordings menu" +msgstr "" + +msgid "Rename" +msgstr "" + +msgid "Invalid filename!" +msgstr "" + +msgid "Creating directories failed!" +msgstr "" + +msgid "New folder" +msgstr "" + +msgid "Button$Cancel" +msgstr "" + +msgid "Button$Create" +msgstr "" + +msgid "Button$Move" +msgstr "" + +msgid "[base dir]" +msgstr "" + +msgid "Target filesystem filled - try anyway?" +msgstr "" + +msgid "Moving into own sub-directory not allowed!" +msgstr "" + +msgid "Can't get filesystem information" +msgstr "" + +msgid "Details" +msgstr "" + +msgid "Rename/Move failed!" +msgstr "" + +msgid "Cutter queue not empty" +msgstr "" + +msgid "Move recordings in progress" +msgstr "" + +msgid "Can't start editing process!" +msgstr "" + +msgid "Recording already in cutter queue!" +msgstr "" + +msgid "No editing marks defined!" +msgstr "" + +msgid "Added recording to cutter queue" +msgstr "" + +msgid "Button$Play" +msgstr "" + +msgid "Button$Rewind" +msgstr "" + +msgid "Button$Back" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Path" +msgstr "" + +msgid "Channel" +msgstr "" + +msgid "Size" +msgstr "" + +msgid "Error while mounting DVD!" +msgstr "" + +msgid "Error while mounting Archive-HDD!" +msgstr "" + +msgid "Button$Commands" +msgstr "" + +msgid "Button$Open" +msgstr "" + +msgid "Button$Edit" +msgstr "" + +msgid "Button$Info" +msgstr "" + +#, c-format +msgid "Please attach Archive-HDD %s" +msgstr "" + +msgid "Recording not found on Archive-HDD!" +msgstr "" + +msgid "Error while linking [0-9]*.vdr!" +msgstr "" + +msgid "sudo or mount --bind / umount error (vfat system)" +msgstr "" + +msgid "Script 'hddarchive.sh' not found!" +msgstr "" + +#, c-format +msgid "Please insert DVD %s" +msgstr "" + +msgid "DVD plugin is not installed!" +msgstr "" + +msgid "No DVD in drive!" +msgstr "" + +msgid "Recording not found on DVD!" +msgstr "" + +msgid "Script 'dvdarchive.sh' not found!" +msgstr "" + +msgid "Sort by date" +msgstr "" + +msgid "Sort by name" +msgstr "" + +msgid "Cancel moving?" +msgstr "" + +msgid "Button$Rename" +msgstr "" + +msgid "Button$Delete" +msgstr "" + +msgid "ascending" +msgstr "" + +msgid "descending" +msgstr "" + +msgid "Show nr. of new recordings of a directory" +msgstr "" + +msgid "Maximum number of recordings per directory" +msgstr "" + +msgid "Items to show in recording list" +msgstr "" + +msgid "Show alternative to new marker" +msgstr "" + +msgid "Show free disk space for each file system" +msgstr "" + +msgid "Sorting" +msgstr "" + +msgid "Hide main menu entry" +msgstr "" + +msgid "Replace original recordings menu" +msgstr "" + +msgid "Jump to last replayed recording" +msgstr "" + +msgid "Call plugin after playback" +msgstr "" + +msgid "Limit bandwidth for move recordings" +msgstr "" + +msgid "Use VDR's recording info menu" +msgstr "" + +msgid "Use cutter queue" +msgstr "" + +msgid "--none--" +msgstr "" + +msgid "Blank" +msgstr "" + +msgid "Date of Recording" +msgstr "" + +msgid "Time of Recording" +msgstr "" + +msgid "Date and Time of Recording" +msgstr "" + +msgid "Length of Recording" +msgstr "" + +msgid "Rating of Recording" +msgstr "" + +msgid "Content of File" +msgstr "" + +msgid "Content of File, then Result of a Command" +msgstr "" + +msgid "left" +msgstr "" + +msgid "center" +msgstr "" + +msgid "right" +msgstr "" + +msgid "Icon" +msgstr "" + +msgid "(fixed to the first position)" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Width" +msgstr "" + +msgid "Alignment" +msgstr "" + +msgid "Filename" +msgstr "" + +msgid "Command" +msgstr "" + +msgid "Name of the recording" +msgstr "" + +msgid "(fixed to the last position)" +msgstr "" diff -Nru vdr-plugin-extrecmenu-1.1/po/pt_PT.po vdr-plugin-extrecmenu-1.2.2.git20130304/po/pt_PT.po --- vdr-plugin-extrecmenu-1.1/po/pt_PT.po 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/po/pt_PT.po 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,271 @@ +# ExtRecMenu plugin language source file. +# Copyright (C) 2008 Martin Prochnow +# This file is distributed under the same license as the ExtRecMenu package. +# Paulo Lopes , 2001 +# +msgid "" +msgstr "" +"Project-Id-Version: ExtRecMenu 1.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-06-24 08:43+0200\n" +"PO-Revision-Date: 2008-03-15 16:21+0100\n" +"Last-Translator: Paulo Lopes \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "Extended recordings menu" +msgstr "" + +msgid "Rename" +msgstr "" + +msgid "Invalid filename!" +msgstr "" + +msgid "Creating directories failed!" +msgstr "" + +msgid "New folder" +msgstr "" + +msgid "Button$Cancel" +msgstr "" + +msgid "Button$Create" +msgstr "" + +msgid "Button$Move" +msgstr "" + +msgid "[base dir]" +msgstr "" + +msgid "Target filesystem filled - try anyway?" +msgstr "" + +msgid "Moving into own sub-directory not allowed!" +msgstr "" + +msgid "Can't get filesystem information" +msgstr "" + +msgid "Details" +msgstr "" + +msgid "Rename/Move failed!" +msgstr "" + +msgid "Cutter queue not empty" +msgstr "" + +msgid "Move recordings in progress" +msgstr "" + +msgid "Can't start editing process!" +msgstr "" + +msgid "Recording already in cutter queue!" +msgstr "" + +msgid "No editing marks defined!" +msgstr "" + +msgid "Added recording to cutter queue" +msgstr "" + +msgid "Button$Play" +msgstr "" + +msgid "Button$Rewind" +msgstr "" + +msgid "Button$Back" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Path" +msgstr "" + +msgid "Channel" +msgstr "" + +msgid "Size" +msgstr "" + +msgid "Error while mounting DVD!" +msgstr "" + +msgid "Error while mounting Archive-HDD!" +msgstr "" + +msgid "Button$Commands" +msgstr "" + +msgid "Button$Open" +msgstr "" + +msgid "Button$Edit" +msgstr "" + +msgid "Button$Info" +msgstr "" + +#, c-format +msgid "Please attach Archive-HDD %s" +msgstr "" + +msgid "Recording not found on Archive-HDD!" +msgstr "" + +msgid "Error while linking [0-9]*.vdr!" +msgstr "" + +msgid "sudo or mount --bind / umount error (vfat system)" +msgstr "" + +msgid "Script 'hddarchive.sh' not found!" +msgstr "" + +#, c-format +msgid "Please insert DVD %s" +msgstr "" + +msgid "DVD plugin is not installed!" +msgstr "" + +msgid "No DVD in drive!" +msgstr "" + +msgid "Recording not found on DVD!" +msgstr "" + +msgid "Script 'dvdarchive.sh' not found!" +msgstr "" + +msgid "Sort by date" +msgstr "" + +msgid "Sort by name" +msgstr "" + +msgid "Cancel moving?" +msgstr "" + +msgid "Button$Rename" +msgstr "" + +msgid "Button$Delete" +msgstr "" + +msgid "ascending" +msgstr "" + +msgid "descending" +msgstr "" + +msgid "Show nr. of new recordings of a directory" +msgstr "" + +msgid "Maximum number of recordings per directory" +msgstr "" + +msgid "Items to show in recording list" +msgstr "" + +msgid "Show alternative to new marker" +msgstr "" + +msgid "Show free disk space for each file system" +msgstr "" + +msgid "Sorting" +msgstr "" + +msgid "Hide main menu entry" +msgstr "" + +msgid "Replace original recordings menu" +msgstr "" + +msgid "Jump to last replayed recording" +msgstr "" + +msgid "Call plugin after playback" +msgstr "" + +msgid "Limit bandwidth for move recordings" +msgstr "" + +msgid "Use VDR's recording info menu" +msgstr "" + +msgid "Use cutter queue" +msgstr "" + +msgid "--none--" +msgstr "" + +msgid "Blank" +msgstr "" + +msgid "Date of Recording" +msgstr "" + +msgid "Time of Recording" +msgstr "" + +msgid "Date and Time of Recording" +msgstr "" + +msgid "Length of Recording" +msgstr "" + +msgid "Rating of Recording" +msgstr "" + +msgid "Content of File" +msgstr "" + +msgid "Content of File, then Result of a Command" +msgstr "" + +msgid "left" +msgstr "" + +msgid "center" +msgstr "" + +msgid "right" +msgstr "" + +msgid "Icon" +msgstr "" + +msgid "(fixed to the first position)" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Width" +msgstr "" + +msgid "Alignment" +msgstr "" + +msgid "Filename" +msgstr "" + +msgid "Command" +msgstr "" + +msgid "Name of the recording" +msgstr "" + +msgid "(fixed to the last position)" +msgstr "" diff -Nru vdr-plugin-extrecmenu-1.1/po/ro_RO.po vdr-plugin-extrecmenu-1.2.2.git20130304/po/ro_RO.po --- vdr-plugin-extrecmenu-1.1/po/ro_RO.po 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/po/ro_RO.po 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,272 @@ +# ExtRecMenu plugin language source file. +# Copyright (C) 2008 Martin Prochnow +# This file is distributed under the same license as the ExtRecMenu package. +# Paul Lacatus , 2002 +# Lucian Muresan , 2004 +# +msgid "" +msgstr "" +"Project-Id-Version: ExtRecMenu 1.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-06-24 08:43+0200\n" +"PO-Revision-Date: 2008-03-15 16:21+0100\n" +"Last-Translator: Lucian Muresan \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-2\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "Extended recordings menu" +msgstr "" + +msgid "Rename" +msgstr "" + +msgid "Invalid filename!" +msgstr "" + +msgid "Creating directories failed!" +msgstr "" + +msgid "New folder" +msgstr "" + +msgid "Button$Cancel" +msgstr "" + +msgid "Button$Create" +msgstr "" + +msgid "Button$Move" +msgstr "" + +msgid "[base dir]" +msgstr "" + +msgid "Target filesystem filled - try anyway?" +msgstr "" + +msgid "Moving into own sub-directory not allowed!" +msgstr "" + +msgid "Can't get filesystem information" +msgstr "" + +msgid "Details" +msgstr "" + +msgid "Rename/Move failed!" +msgstr "" + +msgid "Cutter queue not empty" +msgstr "" + +msgid "Move recordings in progress" +msgstr "" + +msgid "Can't start editing process!" +msgstr "" + +msgid "Recording already in cutter queue!" +msgstr "" + +msgid "No editing marks defined!" +msgstr "" + +msgid "Added recording to cutter queue" +msgstr "" + +msgid "Button$Play" +msgstr "" + +msgid "Button$Rewind" +msgstr "" + +msgid "Button$Back" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Path" +msgstr "" + +msgid "Channel" +msgstr "" + +msgid "Size" +msgstr "" + +msgid "Error while mounting DVD!" +msgstr "" + +msgid "Error while mounting Archive-HDD!" +msgstr "" + +msgid "Button$Commands" +msgstr "" + +msgid "Button$Open" +msgstr "" + +msgid "Button$Edit" +msgstr "" + +msgid "Button$Info" +msgstr "" + +#, c-format +msgid "Please attach Archive-HDD %s" +msgstr "" + +msgid "Recording not found on Archive-HDD!" +msgstr "" + +msgid "Error while linking [0-9]*.vdr!" +msgstr "" + +msgid "sudo or mount --bind / umount error (vfat system)" +msgstr "" + +msgid "Script 'hddarchive.sh' not found!" +msgstr "" + +#, c-format +msgid "Please insert DVD %s" +msgstr "" + +msgid "DVD plugin is not installed!" +msgstr "" + +msgid "No DVD in drive!" +msgstr "" + +msgid "Recording not found on DVD!" +msgstr "" + +msgid "Script 'dvdarchive.sh' not found!" +msgstr "" + +msgid "Sort by date" +msgstr "" + +msgid "Sort by name" +msgstr "" + +msgid "Cancel moving?" +msgstr "" + +msgid "Button$Rename" +msgstr "" + +msgid "Button$Delete" +msgstr "" + +msgid "ascending" +msgstr "" + +msgid "descending" +msgstr "" + +msgid "Show nr. of new recordings of a directory" +msgstr "" + +msgid "Maximum number of recordings per directory" +msgstr "" + +msgid "Items to show in recording list" +msgstr "" + +msgid "Show alternative to new marker" +msgstr "" + +msgid "Show free disk space for each file system" +msgstr "" + +msgid "Sorting" +msgstr "" + +msgid "Hide main menu entry" +msgstr "" + +msgid "Replace original recordings menu" +msgstr "" + +msgid "Jump to last replayed recording" +msgstr "" + +msgid "Call plugin after playback" +msgstr "" + +msgid "Limit bandwidth for move recordings" +msgstr "" + +msgid "Use VDR's recording info menu" +msgstr "" + +msgid "Use cutter queue" +msgstr "" + +msgid "--none--" +msgstr "" + +msgid "Blank" +msgstr "" + +msgid "Date of Recording" +msgstr "" + +msgid "Time of Recording" +msgstr "" + +msgid "Date and Time of Recording" +msgstr "" + +msgid "Length of Recording" +msgstr "" + +msgid "Rating of Recording" +msgstr "" + +msgid "Content of File" +msgstr "" + +msgid "Content of File, then Result of a Command" +msgstr "" + +msgid "left" +msgstr "" + +msgid "center" +msgstr "" + +msgid "right" +msgstr "" + +msgid "Icon" +msgstr "" + +msgid "(fixed to the first position)" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Width" +msgstr "" + +msgid "Alignment" +msgstr "" + +msgid "Filename" +msgstr "" + +msgid "Command" +msgstr "" + +msgid "Name of the recording" +msgstr "" + +msgid "(fixed to the last position)" +msgstr "" diff -Nru vdr-plugin-extrecmenu-1.1/po/ru_RU.po vdr-plugin-extrecmenu-1.2.2.git20130304/po/ru_RU.po --- vdr-plugin-extrecmenu-1.1/po/ru_RU.po 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/po/ru_RU.po 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,271 @@ +# ExtRecMenu plugin language source file. +# Copyright (C) 2008 Martin Prochnow +# This file is distributed under the same license as the ExtRecMenu package. +# Vyacheslav Dikonov , 2004 +# +msgid "" +msgstr "" +"Project-Id-Version: ExtRecMenu 1.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-06-24 08:43+0200\n" +"PO-Revision-Date: 2008-03-15 16:21+0100\n" +"Last-Translator: Vyacheslav Dikonov \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-5\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "Extended recordings menu" +msgstr "" + +msgid "Rename" +msgstr "" + +msgid "Invalid filename!" +msgstr "" + +msgid "Creating directories failed!" +msgstr "" + +msgid "New folder" +msgstr "" + +msgid "Button$Cancel" +msgstr "" + +msgid "Button$Create" +msgstr "" + +msgid "Button$Move" +msgstr "" + +msgid "[base dir]" +msgstr "" + +msgid "Target filesystem filled - try anyway?" +msgstr "" + +msgid "Moving into own sub-directory not allowed!" +msgstr "" + +msgid "Can't get filesystem information" +msgstr "" + +msgid "Details" +msgstr "" + +msgid "Rename/Move failed!" +msgstr "" + +msgid "Cutter queue not empty" +msgstr "" + +msgid "Move recordings in progress" +msgstr "" + +msgid "Can't start editing process!" +msgstr "" + +msgid "Recording already in cutter queue!" +msgstr "" + +msgid "No editing marks defined!" +msgstr "" + +msgid "Added recording to cutter queue" +msgstr "" + +msgid "Button$Play" +msgstr "" + +msgid "Button$Rewind" +msgstr "" + +msgid "Button$Back" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Path" +msgstr "" + +msgid "Channel" +msgstr "" + +msgid "Size" +msgstr "" + +msgid "Error while mounting DVD!" +msgstr "" + +msgid "Error while mounting Archive-HDD!" +msgstr "" + +msgid "Button$Commands" +msgstr "" + +msgid "Button$Open" +msgstr "" + +msgid "Button$Edit" +msgstr "" + +msgid "Button$Info" +msgstr "" + +#, c-format +msgid "Please attach Archive-HDD %s" +msgstr "" + +msgid "Recording not found on Archive-HDD!" +msgstr "" + +msgid "Error while linking [0-9]*.vdr!" +msgstr "" + +msgid "sudo or mount --bind / umount error (vfat system)" +msgstr "" + +msgid "Script 'hddarchive.sh' not found!" +msgstr "" + +#, c-format +msgid "Please insert DVD %s" +msgstr "" + +msgid "DVD plugin is not installed!" +msgstr "" + +msgid "No DVD in drive!" +msgstr "" + +msgid "Recording not found on DVD!" +msgstr "" + +msgid "Script 'dvdarchive.sh' not found!" +msgstr "" + +msgid "Sort by date" +msgstr "" + +msgid "Sort by name" +msgstr "" + +msgid "Cancel moving?" +msgstr "" + +msgid "Button$Rename" +msgstr "" + +msgid "Button$Delete" +msgstr "" + +msgid "ascending" +msgstr "" + +msgid "descending" +msgstr "" + +msgid "Show nr. of new recordings of a directory" +msgstr "" + +msgid "Maximum number of recordings per directory" +msgstr "" + +msgid "Items to show in recording list" +msgstr "" + +msgid "Show alternative to new marker" +msgstr "" + +msgid "Show free disk space for each file system" +msgstr "" + +msgid "Sorting" +msgstr "" + +msgid "Hide main menu entry" +msgstr "" + +msgid "Replace original recordings menu" +msgstr "" + +msgid "Jump to last replayed recording" +msgstr "" + +msgid "Call plugin after playback" +msgstr "" + +msgid "Limit bandwidth for move recordings" +msgstr "" + +msgid "Use VDR's recording info menu" +msgstr "" + +msgid "Use cutter queue" +msgstr "" + +msgid "--none--" +msgstr "" + +msgid "Blank" +msgstr "" + +msgid "Date of Recording" +msgstr "" + +msgid "Time of Recording" +msgstr "" + +msgid "Date and Time of Recording" +msgstr "" + +msgid "Length of Recording" +msgstr "" + +msgid "Rating of Recording" +msgstr "" + +msgid "Content of File" +msgstr "" + +msgid "Content of File, then Result of a Command" +msgstr "" + +msgid "left" +msgstr "" + +msgid "center" +msgstr "" + +msgid "right" +msgstr "" + +msgid "Icon" +msgstr "" + +msgid "(fixed to the first position)" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Width" +msgstr "" + +msgid "Alignment" +msgstr "" + +msgid "Filename" +msgstr "" + +msgid "Command" +msgstr "" + +msgid "Name of the recording" +msgstr "" + +msgid "(fixed to the last position)" +msgstr "" diff -Nru vdr-plugin-extrecmenu-1.1/po/sk_SK.po vdr-plugin-extrecmenu-1.2.2.git20130304/po/sk_SK.po --- vdr-plugin-extrecmenu-1.1/po/sk_SK.po 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/po/sk_SK.po 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,283 @@ +# ExtRecMenu plugin language source file. +# Copyright (C) 2008 Martin Prochnow +# This file is distributed under the same license as the ExtRecMenu package. +# Vladimír Bárta , 2006 +# +msgid "" +msgstr "" +"Project-Id-Version: ExtRecMenu 1.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-06-24 08:43+0200\n" +"PO-Revision-Date: 2011-02-15 21:20+0100\n" +"Last-Translator: Milan Hrala \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-2\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "Extended recordings menu" +msgstr "Rozšírené menu nahrávok" + +msgid "Rename" +msgstr "Premenovať" + +msgid "Invalid filename!" +msgstr "Chybné meno súboru!" + +msgid "Creating directories failed!" +msgstr "nepodarilo sa vytvoriť adresár!" + +msgid "New folder" +msgstr "Nový adresár" + +msgid "Button$Cancel" +msgstr "Zrušiť" + +msgid "Button$Create" +msgstr "Vytvoriť" + +msgid "Button$Move" +msgstr "Presunúť" + +msgid "[base dir]" +msgstr "[základný adresár]" + +msgid "Target filesystem filled - try anyway?" +msgstr "Cieľový oddiel je plný - zkusiť znovu?" + +msgid "Moving into own sub-directory not allowed!" +msgstr "Presunutie do vlastného pod adresára nie je povolený!" + +msgid "Can't get filesystem information" +msgstr "Nie je možné získať informácie o súborovom systéme" + +msgid "Details" +msgstr "Podrobnosti" + +msgid "Rename/Move failed!" +msgstr "Premenovanie/presun zlyhal!" + +msgid "Cutter queue not empty" +msgstr "Strihová fronta nie je prázdna" + +msgid "Move recordings in progress" +msgstr "Prebieha presúvanie nahrávok" + +msgid "Can't start editing process!" +msgstr "nemôže spustiť proces úprav!" + +msgid "Recording already in cutter queue!" +msgstr "nahrávka je už v strihovej fronte!" + +msgid "No editing marks defined!" +msgstr "žiadne značky nie sú určené!" + +msgid "Added recording to cutter queue" +msgstr "Nahrávka pridaná do strihovej fronty" + +msgid "Button$Play" +msgstr "Prehrať" + +msgid "Button$Rewind" +msgstr "Na začiatok" + +msgid "Button$Back" +msgstr "Zpäť" + +msgid "Name" +msgstr "Meno" + +msgid "Path" +msgstr "Cesta" + +msgid "Channel" +msgstr "Kanál" + +msgid "Size" +msgstr "Veľkosť" + +msgid "Error while mounting DVD!" +msgstr "Chyba během připojování DVD!" + +msgid "Error while mounting Archive-HDD!" +msgstr "" + +msgid "Button$Commands" +msgstr "Príkazy" + +msgid "Button$Open" +msgstr "Otevřít" + +msgid "Button$Edit" +msgstr "Upraviť" + +msgid "Button$Info" +msgstr "Info" + +#, c-format +msgid "Please attach Archive-HDD %s" +msgstr "" + +msgid "Recording not found on Archive-HDD!" +msgstr "" + +msgid "Error while linking [0-9]*.vdr!" +msgstr "Chyba pri spojení [0-9]*.vdr!" + +msgid "sudo or mount --bind / umount error (vfat system)" +msgstr "sudo alebo mount --bind / umount zlyhal (VFAT-systém)" + +msgid "Script 'hddarchive.sh' not found!" +msgstr "" + +#, c-format +msgid "Please insert DVD %s" +msgstr "Vložte prosím DVD %s" + +msgid "DVD plugin is not installed!" +msgstr "Modul DVD nie je nainštalovaný!" + +msgid "No DVD in drive!" +msgstr "V mechanike nie je DVD!" + +msgid "Recording not found on DVD!" +msgstr "Nahrávka nebola na DVD nájdená!" + +msgid "Script 'dvdarchive.sh' not found!" +msgstr "Skript 'dvdarchive.sh' nebol nájdený!" + +msgid "Sort by date" +msgstr "zoradiť podle dátumu" + +msgid "Sort by name" +msgstr "zoradiť podla abecedy" + +msgid "Cancel moving?" +msgstr "zrušiť presun?" + +msgid "Button$Rename" +msgstr "Premenovať" + +msgid "Button$Delete" +msgstr "zmazať" + +msgid "ascending" +msgstr "vzostupne" + +msgid "descending" +msgstr "zostupne" + +msgid "Show nr. of new recordings of a directory" +msgstr "Zobrazovať počet nových nahrávok v adresári" + +msgid "Maximum number of recordings per directory" +msgstr "" + +msgid "Items to show in recording list" +msgstr "" + +msgid "Show alternative to new marker" +msgstr "Zobraziť alternatívu k novým značkám" + +msgid "Show free disk space for each file system" +msgstr "Zobraziť volné miesto pre každý súborový systém" + +msgid "Sorting" +msgstr "Triedenie" + +msgid "Hide main menu entry" +msgstr "schovať v hlavnom menu" + +msgid "Replace original recordings menu" +msgstr "Nahradiť originál menu nahrávok" + +msgid "Jump to last replayed recording" +msgstr "Skočiť na posledný prehrávaný záznam" + +msgid "Call plugin after playback" +msgstr "vrátiť sa po prehratí záznamu do modulu" + +msgid "Limit bandwidth for move recordings" +msgstr "Obmedziť rýchlosť pre presun nahrávok" + +msgid "Use VDR's recording info menu" +msgstr "Používať info menu nahrávok VDR" + +msgid "Use cutter queue" +msgstr "použiť frontu strihania" + +msgid "--none--" +msgstr "" + +msgid "Blank" +msgstr "" + +msgid "Date of Recording" +msgstr "" + +msgid "Time of Recording" +msgstr "" + +msgid "Date and Time of Recording" +msgstr "" + +msgid "Length of Recording" +msgstr "" + +msgid "Rating of Recording" +msgstr "" + +msgid "Content of File" +msgstr "" + +msgid "Content of File, then Result of a Command" +msgstr "" + +msgid "left" +msgstr "" + +msgid "center" +msgstr "" + +msgid "right" +msgstr "" + +msgid "Icon" +msgstr "" + +msgid "(fixed to the first position)" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Width" +msgstr "" + +msgid "Alignment" +msgstr "" + +msgid "Filename" +msgstr "" + +msgid "Command" +msgstr "" + +msgid "Name of the recording" +msgstr "" + +msgid "(fixed to the last position)" +msgstr "" + +#~ msgid "Show recording date" +#~ msgstr "Zobraziť dátum nahrávky" + +#~ msgid "Show recording time" +#~ msgstr "Zobraziť čas nahrávky" + +#~ msgid "Show recording length" +#~ msgstr "Zobraziť dĺžku nahrávky" + +#~ msgid "Patch font" +#~ msgstr "Upraviť písmo" diff -Nru vdr-plugin-extrecmenu-1.1/po/sl_SI.po vdr-plugin-extrecmenu-1.2.2.git20130304/po/sl_SI.po --- vdr-plugin-extrecmenu-1.1/po/sl_SI.po 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/po/sl_SI.po 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,272 @@ +# ExtRecMenu plugin language source file. +# Copyright (C) 2008 Martin Prochnow +# This file is distributed under the same license as the ExtRecMenu package. +# Miha Setina , 2000 +# Matjaz Thaler , 2003 +# +msgid "" +msgstr "" +"Project-Id-Version: ExtRecMenu 1.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-06-24 08:43+0200\n" +"PO-Revision-Date: 2008-03-15 16:21+0100\n" +"Last-Translator: Matjaz Thaler \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-2\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "Extended recordings menu" +msgstr "" + +msgid "Rename" +msgstr "" + +msgid "Invalid filename!" +msgstr "" + +msgid "Creating directories failed!" +msgstr "" + +msgid "New folder" +msgstr "" + +msgid "Button$Cancel" +msgstr "" + +msgid "Button$Create" +msgstr "" + +msgid "Button$Move" +msgstr "" + +msgid "[base dir]" +msgstr "" + +msgid "Target filesystem filled - try anyway?" +msgstr "" + +msgid "Moving into own sub-directory not allowed!" +msgstr "" + +msgid "Can't get filesystem information" +msgstr "" + +msgid "Details" +msgstr "" + +msgid "Rename/Move failed!" +msgstr "" + +msgid "Cutter queue not empty" +msgstr "" + +msgid "Move recordings in progress" +msgstr "" + +msgid "Can't start editing process!" +msgstr "" + +msgid "Recording already in cutter queue!" +msgstr "" + +msgid "No editing marks defined!" +msgstr "" + +msgid "Added recording to cutter queue" +msgstr "" + +msgid "Button$Play" +msgstr "" + +msgid "Button$Rewind" +msgstr "" + +msgid "Button$Back" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Path" +msgstr "" + +msgid "Channel" +msgstr "" + +msgid "Size" +msgstr "" + +msgid "Error while mounting DVD!" +msgstr "" + +msgid "Error while mounting Archive-HDD!" +msgstr "" + +msgid "Button$Commands" +msgstr "" + +msgid "Button$Open" +msgstr "" + +msgid "Button$Edit" +msgstr "" + +msgid "Button$Info" +msgstr "" + +#, c-format +msgid "Please attach Archive-HDD %s" +msgstr "" + +msgid "Recording not found on Archive-HDD!" +msgstr "" + +msgid "Error while linking [0-9]*.vdr!" +msgstr "" + +msgid "sudo or mount --bind / umount error (vfat system)" +msgstr "" + +msgid "Script 'hddarchive.sh' not found!" +msgstr "" + +#, c-format +msgid "Please insert DVD %s" +msgstr "" + +msgid "DVD plugin is not installed!" +msgstr "" + +msgid "No DVD in drive!" +msgstr "" + +msgid "Recording not found on DVD!" +msgstr "" + +msgid "Script 'dvdarchive.sh' not found!" +msgstr "" + +msgid "Sort by date" +msgstr "" + +msgid "Sort by name" +msgstr "" + +msgid "Cancel moving?" +msgstr "" + +msgid "Button$Rename" +msgstr "" + +msgid "Button$Delete" +msgstr "" + +msgid "ascending" +msgstr "" + +msgid "descending" +msgstr "" + +msgid "Show nr. of new recordings of a directory" +msgstr "" + +msgid "Maximum number of recordings per directory" +msgstr "" + +msgid "Items to show in recording list" +msgstr "" + +msgid "Show alternative to new marker" +msgstr "" + +msgid "Show free disk space for each file system" +msgstr "" + +msgid "Sorting" +msgstr "" + +msgid "Hide main menu entry" +msgstr "" + +msgid "Replace original recordings menu" +msgstr "" + +msgid "Jump to last replayed recording" +msgstr "" + +msgid "Call plugin after playback" +msgstr "" + +msgid "Limit bandwidth for move recordings" +msgstr "" + +msgid "Use VDR's recording info menu" +msgstr "" + +msgid "Use cutter queue" +msgstr "" + +msgid "--none--" +msgstr "" + +msgid "Blank" +msgstr "" + +msgid "Date of Recording" +msgstr "" + +msgid "Time of Recording" +msgstr "" + +msgid "Date and Time of Recording" +msgstr "" + +msgid "Length of Recording" +msgstr "" + +msgid "Rating of Recording" +msgstr "" + +msgid "Content of File" +msgstr "" + +msgid "Content of File, then Result of a Command" +msgstr "" + +msgid "left" +msgstr "" + +msgid "center" +msgstr "" + +msgid "right" +msgstr "" + +msgid "Icon" +msgstr "" + +msgid "(fixed to the first position)" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Width" +msgstr "" + +msgid "Alignment" +msgstr "" + +msgid "Filename" +msgstr "" + +msgid "Command" +msgstr "" + +msgid "Name of the recording" +msgstr "" + +msgid "(fixed to the last position)" +msgstr "" diff -Nru vdr-plugin-extrecmenu-1.1/po/sv_SE.po vdr-plugin-extrecmenu-1.2.2.git20130304/po/sv_SE.po --- vdr-plugin-extrecmenu-1.1/po/sv_SE.po 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/po/sv_SE.po 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,272 @@ +# ExtRecMenu plugin language source file. +# Copyright (C) 2008 Martin Prochnow +# This file is distributed under the same license as the ExtRecMenu package. +# Tomas Prybil , 2002 +# Jan Ekholm , 2003 +# +msgid "" +msgstr "" +"Project-Id-Version: ExtRecMenu 1.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-06-24 08:43+0200\n" +"PO-Revision-Date: 2008-03-15 16:21+0100\n" +"Last-Translator: Tomas Prybil \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "Extended recordings menu" +msgstr "" + +msgid "Rename" +msgstr "" + +msgid "Invalid filename!" +msgstr "" + +msgid "Creating directories failed!" +msgstr "" + +msgid "New folder" +msgstr "" + +msgid "Button$Cancel" +msgstr "" + +msgid "Button$Create" +msgstr "" + +msgid "Button$Move" +msgstr "" + +msgid "[base dir]" +msgstr "" + +msgid "Target filesystem filled - try anyway?" +msgstr "" + +msgid "Moving into own sub-directory not allowed!" +msgstr "" + +msgid "Can't get filesystem information" +msgstr "" + +msgid "Details" +msgstr "" + +msgid "Rename/Move failed!" +msgstr "" + +msgid "Cutter queue not empty" +msgstr "" + +msgid "Move recordings in progress" +msgstr "" + +msgid "Can't start editing process!" +msgstr "" + +msgid "Recording already in cutter queue!" +msgstr "" + +msgid "No editing marks defined!" +msgstr "" + +msgid "Added recording to cutter queue" +msgstr "" + +msgid "Button$Play" +msgstr "" + +msgid "Button$Rewind" +msgstr "" + +msgid "Button$Back" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Path" +msgstr "" + +msgid "Channel" +msgstr "" + +msgid "Size" +msgstr "" + +msgid "Error while mounting DVD!" +msgstr "" + +msgid "Error while mounting Archive-HDD!" +msgstr "" + +msgid "Button$Commands" +msgstr "" + +msgid "Button$Open" +msgstr "" + +msgid "Button$Edit" +msgstr "" + +msgid "Button$Info" +msgstr "" + +#, c-format +msgid "Please attach Archive-HDD %s" +msgstr "" + +msgid "Recording not found on Archive-HDD!" +msgstr "" + +msgid "Error while linking [0-9]*.vdr!" +msgstr "" + +msgid "sudo or mount --bind / umount error (vfat system)" +msgstr "" + +msgid "Script 'hddarchive.sh' not found!" +msgstr "" + +#, c-format +msgid "Please insert DVD %s" +msgstr "" + +msgid "DVD plugin is not installed!" +msgstr "" + +msgid "No DVD in drive!" +msgstr "" + +msgid "Recording not found on DVD!" +msgstr "" + +msgid "Script 'dvdarchive.sh' not found!" +msgstr "" + +msgid "Sort by date" +msgstr "" + +msgid "Sort by name" +msgstr "" + +msgid "Cancel moving?" +msgstr "" + +msgid "Button$Rename" +msgstr "" + +msgid "Button$Delete" +msgstr "" + +msgid "ascending" +msgstr "" + +msgid "descending" +msgstr "" + +msgid "Show nr. of new recordings of a directory" +msgstr "" + +msgid "Maximum number of recordings per directory" +msgstr "" + +msgid "Items to show in recording list" +msgstr "" + +msgid "Show alternative to new marker" +msgstr "" + +msgid "Show free disk space for each file system" +msgstr "" + +msgid "Sorting" +msgstr "" + +msgid "Hide main menu entry" +msgstr "" + +msgid "Replace original recordings menu" +msgstr "" + +msgid "Jump to last replayed recording" +msgstr "" + +msgid "Call plugin after playback" +msgstr "" + +msgid "Limit bandwidth for move recordings" +msgstr "" + +msgid "Use VDR's recording info menu" +msgstr "" + +msgid "Use cutter queue" +msgstr "" + +msgid "--none--" +msgstr "" + +msgid "Blank" +msgstr "" + +msgid "Date of Recording" +msgstr "" + +msgid "Time of Recording" +msgstr "" + +msgid "Date and Time of Recording" +msgstr "" + +msgid "Length of Recording" +msgstr "" + +msgid "Rating of Recording" +msgstr "" + +msgid "Content of File" +msgstr "" + +msgid "Content of File, then Result of a Command" +msgstr "" + +msgid "left" +msgstr "" + +msgid "center" +msgstr "" + +msgid "right" +msgstr "" + +msgid "Icon" +msgstr "" + +msgid "(fixed to the first position)" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Width" +msgstr "" + +msgid "Alignment" +msgstr "" + +msgid "Filename" +msgstr "" + +msgid "Command" +msgstr "" + +msgid "Name of the recording" +msgstr "" + +msgid "(fixed to the last position)" +msgstr "" diff -Nru vdr-plugin-extrecmenu-1.1/po/tr_TR.po vdr-plugin-extrecmenu-1.2.2.git20130304/po/tr_TR.po --- vdr-plugin-extrecmenu-1.1/po/tr_TR.po 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/po/tr_TR.po 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,271 @@ +# ExtRecMenu plugin language source file. +# Copyright (C) 2008 Martin Prochnow +# This file is distributed under the same license as the ExtRecMenu package. +# Oktay Yolgeçen , 2007 +# +msgid "" +msgstr "" +"Project-Id-Version: ExtRecMenu 1.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-06-24 08:43+0200\n" +"PO-Revision-Date: 2008-03-15 16:21+0100\n" +"Last-Translator: Oktay Yolgeçen \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-9\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "Extended recordings menu" +msgstr "" + +msgid "Rename" +msgstr "" + +msgid "Invalid filename!" +msgstr "" + +msgid "Creating directories failed!" +msgstr "" + +msgid "New folder" +msgstr "" + +msgid "Button$Cancel" +msgstr "" + +msgid "Button$Create" +msgstr "" + +msgid "Button$Move" +msgstr "" + +msgid "[base dir]" +msgstr "" + +msgid "Target filesystem filled - try anyway?" +msgstr "" + +msgid "Moving into own sub-directory not allowed!" +msgstr "" + +msgid "Can't get filesystem information" +msgstr "" + +msgid "Details" +msgstr "" + +msgid "Rename/Move failed!" +msgstr "" + +msgid "Cutter queue not empty" +msgstr "" + +msgid "Move recordings in progress" +msgstr "" + +msgid "Can't start editing process!" +msgstr "" + +msgid "Recording already in cutter queue!" +msgstr "" + +msgid "No editing marks defined!" +msgstr "" + +msgid "Added recording to cutter queue" +msgstr "" + +msgid "Button$Play" +msgstr "" + +msgid "Button$Rewind" +msgstr "" + +msgid "Button$Back" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Path" +msgstr "" + +msgid "Channel" +msgstr "" + +msgid "Size" +msgstr "" + +msgid "Error while mounting DVD!" +msgstr "" + +msgid "Error while mounting Archive-HDD!" +msgstr "" + +msgid "Button$Commands" +msgstr "" + +msgid "Button$Open" +msgstr "" + +msgid "Button$Edit" +msgstr "" + +msgid "Button$Info" +msgstr "" + +#, c-format +msgid "Please attach Archive-HDD %s" +msgstr "" + +msgid "Recording not found on Archive-HDD!" +msgstr "" + +msgid "Error while linking [0-9]*.vdr!" +msgstr "" + +msgid "sudo or mount --bind / umount error (vfat system)" +msgstr "" + +msgid "Script 'hddarchive.sh' not found!" +msgstr "" + +#, c-format +msgid "Please insert DVD %s" +msgstr "" + +msgid "DVD plugin is not installed!" +msgstr "" + +msgid "No DVD in drive!" +msgstr "" + +msgid "Recording not found on DVD!" +msgstr "" + +msgid "Script 'dvdarchive.sh' not found!" +msgstr "" + +msgid "Sort by date" +msgstr "" + +msgid "Sort by name" +msgstr "" + +msgid "Cancel moving?" +msgstr "" + +msgid "Button$Rename" +msgstr "" + +msgid "Button$Delete" +msgstr "" + +msgid "ascending" +msgstr "" + +msgid "descending" +msgstr "" + +msgid "Show nr. of new recordings of a directory" +msgstr "" + +msgid "Maximum number of recordings per directory" +msgstr "" + +msgid "Items to show in recording list" +msgstr "" + +msgid "Show alternative to new marker" +msgstr "" + +msgid "Show free disk space for each file system" +msgstr "" + +msgid "Sorting" +msgstr "" + +msgid "Hide main menu entry" +msgstr "" + +msgid "Replace original recordings menu" +msgstr "" + +msgid "Jump to last replayed recording" +msgstr "" + +msgid "Call plugin after playback" +msgstr "" + +msgid "Limit bandwidth for move recordings" +msgstr "" + +msgid "Use VDR's recording info menu" +msgstr "" + +msgid "Use cutter queue" +msgstr "" + +msgid "--none--" +msgstr "" + +msgid "Blank" +msgstr "" + +msgid "Date of Recording" +msgstr "" + +msgid "Time of Recording" +msgstr "" + +msgid "Date and Time of Recording" +msgstr "" + +msgid "Length of Recording" +msgstr "" + +msgid "Rating of Recording" +msgstr "" + +msgid "Content of File" +msgstr "" + +msgid "Content of File, then Result of a Command" +msgstr "" + +msgid "left" +msgstr "" + +msgid "center" +msgstr "" + +msgid "right" +msgstr "" + +msgid "Icon" +msgstr "" + +msgid "(fixed to the first position)" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Width" +msgstr "" + +msgid "Alignment" +msgstr "" + +msgid "Filename" +msgstr "" + +msgid "Command" +msgstr "" + +msgid "Name of the recording" +msgstr "" + +msgid "(fixed to the last position)" +msgstr "" diff -Nru vdr-plugin-extrecmenu-1.1/scripts/dvdarchive.sh vdr-plugin-extrecmenu-1.2.2.git20130304/scripts/dvdarchive.sh --- vdr-plugin-extrecmenu-1.1/scripts/dvdarchive.sh 2006-06-10 17:09:05.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/scripts/dvdarchive.sh 2013-03-04 15:56:53.000000000 +0000 @@ -1,13 +1,13 @@ -#!/bin/bash +#!/bin/sh # -# Version 2.1 2006-06-02 +# Version 2.3-beta 2006-07-14 # # Author: Mike Constabel -# VDR-Portal: vejoun -# EMail: vejoun @ toppoint.de -# WWW: http://www.constabel.net/vdr/scripts.htm +# VDR-Portal.de: vejoun +# EMail: vejoun at toppoint dot de +# WWW: http://www.constabel.net/vdr/scripts.de.htm # -# ---> CONFIGURATION AT LINE 79 <--- +# ---> CONFIGURATION AT LINE 83 <--- # # MANUAL: # ------- @@ -35,7 +35,7 @@ # You find isodetect.c in the extrecmenu plugin source package. # # 4. -# Tools needed: mount, awk, find, test, stat +# Tools needed: mount, awk, find, test, stat, sed # Optional tools: isodetect # # 5. @@ -59,20 +59,37 @@ # # HISTORY: # -------- -# 2.1 - Fixed bug in testing if dvd is mounted +# 2006-07-14: Version 2.3-beta +# +# - should be compatible with ash, busybox +# stays beta until someone confirm this or 2.4 comes +# +# 2006-06-13: Version 2.2 +# +# - at mount, if third parameter is not given, take last part of path +# +# Version 2.1 +# +# - Fixed bug in testing if dvd is mounted # - more DEBUG=1 output # -# 2.0 - more logging +# Version 2.0 +# +# - more logging # - check if mountpoint and device exists # - Debug Log in file $DEBUGLOG if $DEBUG is 1, for easier error reporting # -# 1.9 - use "sudo mount --bind" for mounting if filesystem is vfat +# Version 1.9 +# +# - use "sudo mount --bind" for mounting if filesystem is vfat # - automatic fallback to 'sudo' and 'mount --bind' if filesystem is vfat # - mounting more failure tolerant # - added MANUAL part in script # - length.vdr creation, you must not use it ;) # -# 1.8 - remove sudo, is not necessary +# Version 1.8 +# +# - remove sudo, is not necessary # - on mount, if already mounted try to umount first # - logging per syslog, see $SYSLOG # @@ -81,31 +98,36 @@ # # Mountpoint, the same as in fstab -MOUNTPOINT="/media/cdrom" # no trailing '/' +MOUNTPOINT="/media/brenner" # no trailing '/' # Eject DVD for exit-codes 2 and 3 (no or wrong dvd). 1 = yes, 0 = no. -EJECTWRONG=0 +EJECTWRONG=1 # Eject DVD after unmounting. 1 = yes, 0 = no. EJECTUMOUNT=0 # Log warnings/errors in syslog. 1 = yes, 0 = no. -SYSLOG=0 +SYSLOG=1 # Create a length.vdr after mounting the dvd for the played recording. 1 = yes, 0 = no. # Only for non-vfat and with index.vdr only on dvd. -GETLENGTH=0 +GETLENGTH=1 # Put debug infos in file $DEBUGLOG. Only if $DEBUG=1. DEBUG=0 DEBUGLOG="/tmp/dvdarchive.sh-debug.log" # + +# read config file +. /etc/vdr/dvdarchive.conf + # # No changes needed after this mark # Remove trailing slash -MOUNTPOINT=${MOUNTPOINT/%\/} +MOUNTPOINT="$(echo "${MOUNTPOINT}" | sed -e 's/\/$//')" + if [ -L "$MOUNTPOINT" ]; then MOUNTPOINTT="$(find "$MOUNTPOINT" -printf "%l")" else @@ -123,6 +145,10 @@ REC="$2" NAME="$3" +if [ "$ACTION" = "mount" -a -z "$NAME" ]; then + NAME="basename ${REC})" +fi + # function to print help call() { echo -e "\nScript $0 needs three parameters for mount and two for umount. The first must be mount or umount, the second is the full path.\n" @@ -167,8 +193,8 @@ # Some checks before doing something [ "$ACTION" = "mount" -o "$ACTION" = "umount" ] || { call; exit 10; } -[ -z "$REC" ] && { call; exit 10; } -[ "$ACTION" = mount -a -z "$NAME" ] && { call; exit 10; } +[ -z "$REC" -o ! -d "$REC" ] && { call; exit 10; } +[ "$ACTION" = "mount" -a -z "$NAME" ] && { call; exit 10; } [ ! -d "$MOUNTPOINT" ] && { log error "Mountpoint $MOUNTPOINT doesn't exist"; exit 10; } [ ! -e "$DEVICE" ] && { log error "Device $DEVICE doesn't exist"; exit 10; } @@ -187,8 +213,7 @@ if mount | egrep -q " $MOUNTPOINTT "; then # check if dvd is in use if mount | egrep -q "^$DEVICET"; then - log error "dvd in use (at: check if dvd is in use)" - exit 1 + log warning "dvd in use (at: check if dvd is in use)" fi # if already mountet, try to umount log warning "dvd already mounted, try to umount" @@ -216,10 +241,14 @@ if [ "$(stat -f -c %T "$REC")" != "vfat" ]; then # link index.vdr if not exist if [ ! -e "${REC}/index.vdr" ]; then - cp -s "${DIR}/index.vdr" "${REC}/" || { log error "could not link index.vdr (at: link index.vdr from dvd to disk)"; } + ln -s "${DIR}/index.vdr" "${REC}/index.vdr" || { log error "could not link index.vdr (at: link index.vdr from dvd to disk)"; } fi # link [0-9]*.vdr files - cp -s "${DIR}"/[0-9]*.vdr "${REC}/" + #cp -s "${DIR}"/[0-9]*.vdr "${REC}/" + #find "${DIR}"/ -name "[0-9]*.vdr" -exec ln -s "${REC}/$(basename "{}")" + for FILE in "${DIR}/"[0-9]*.vdr; do + ln -s "$FILE" "${REC}/$(basename "$FILE")" + done # error while linking [0-9]*.vdr files? if [ $? -ne 0 ]; then log error "error while linking [0-9]*.vdr" diff -Nru vdr-plugin-extrecmenu-1.1/scripts/hddarchive.sh vdr-plugin-extrecmenu-1.2.2.git20130304/scripts/hddarchive.sh --- vdr-plugin-extrecmenu-1.1/scripts/hddarchive.sh 1970-01-01 00:00:00.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/scripts/hddarchive.sh 2013-03-04 15:56:53.000000000 +0000 @@ -0,0 +1,306 @@ +#!/bin/sh +# +# ---> CONFIGURATION AT LINE 83 <--- +# +# MANUAL: +# ------- +# 1. +# If you run VDR as user, you need in /etc/fstab the option "user" for your HDD mountpoint. +# +# Example: +# /dev/sdf /media/hdd auto defaults,ro,user,noauto 0 0 +# +# 2. +# If you use a VFAT partition for your video-data, you must configure sudo to allow the +# VDR-user to execute mount and umount as root. To edit sudoers run 'visudo' command as root. +# +# Example: +# # Cmnd alias specification +# Cmnd_Alias SYSTEM = /bin/mount, /bin/umount +# # User privilege specification +# vdr ALL=(root) NOPASSWD: SYSTEM +# +# With a vfat partition some things doesn't work: resume, marks +# +# 3. +# Tools needed: mount, awk, find, test, stat, sed +# +# 4. +# If you have some Archive-HDDs with the index.vdr only on Archive-HDD, you don't use vfat +# and you want to see the recording length in the menu, you can switch GETLENGTH to 1 and +# the script will create a length.vdr for you. +# +# 5. +# If something went wrong, set DEBUG=1 and send me the file which is defined in $DEBUGLOG. +# Use VDR-Portal or EMail. +# +# 6. +# Exitcodes: +# +# exit 0 - no error +# exit 1 - mount/umount error +# exit 3 - wrong hdd / recording not found +# exit 4 - error while linking [0-9]*.vdr +# exit 5 - sudo or mount --bind / umount error (vfat system) +# +# CONFIGURATION +# ------------- +# + +# Mountpoint, the same as in fstab +MOUNTPOINT="/mnt/archive-hdd" # no trailing '/' +# Log warnings/errors in syslog. 1 = yes, 0 = no. +SYSLOG=1 + +# Create a length.vdr after mounting the Archive-HDD for the played recording. 1 = yes, 0 = no. +# Only for non-vfat and with index.vdr only on Archive-HDD. +GETLENGTH=1 +# Put debug infos in file $DEBUGLOG. Only if $DEBUG=1. +DEBUG=0 +DEBUGLOG="/tmp/hddarchive.sh-debug.log" +VDRSETTINGSFILE=/etc/conf.d/vdr + +# +# No changes needed after this mark + +# read config file +if [ -f /etc/vdr/hddarchive.conf ]; then + . /etc/vdr/hddarchive.conf +fi + +# get VIDEO path +if [ -f ${VDRSETTINGSFILE} ]; then + source ${VDRSETTINGSFILE} +fi + +# Remove trailing slash +MOUNTPOINT="$(echo "${MOUNTPOINT}" | sed -e 's/\/$//')" +if [ -L "$MOUNTPOINT" ]; then + MOUNTPOINTT="$(find "$MOUNTPOINT" -printf "%l")" +else + MOUNTPOINTT="$MOUNTPOINT" +fi +# determine hdd-device +DEVICE="$(awk '( $1 !~ /^#/ ) && ( $2 == "'$MOUNTPOINT'" ) { printf("%s", $1); exit; }' /etc/fstab)" +if [ -L "$DEVICE" ]; then + DEVICET="$(find "$DEVICE" -printf "%l")" +else + DEVICET="$DEVICE" +fi + +ACTION="$1" +REC="$2" +NAME="$3" +if [ "$ACTION" = "mount" -a -z "$NAME" ]; then + NAME="basename ${REC})" +fi + +# function to print help +call() { + echo -e "\nScript $0 needs three parameters for mount and two for umount. The first must be mount or umount, the second is the full path.\n" + echo -e "Only for mounting the script needs a third parameter, the last part of the recording path.\n" + echo -e "Example: hddarchive.sh mount '/video0/Music/%Riverdance/2004-06-06.00:10.50.99.rec' '2004-06-06.00:10.50.99.rec'\n" + echo -e "Example: hddarchive.sh umount '/video0/Music/%Riverdance/2004-06-06.00:10.50.99.rec'\n" + echo -e "For more information read the MANUAL part inside this script.\n" +} + +# function to log messages +log() { + case "$1" in + info) + echo -e "INFO: $2" + [ $SYSLOG -eq 1 ] && logger -t "$0" "INFO: $2" + ;; + warning) + echo -e "WARNING: $2" + [ $SYSLOG -eq 1 ] && logger -t "$0" "WARNING: $2" + ;; + error) + echo -e "ERROR: $2" + [ $SYSLOG -eq 1 ] && logger -t "$0" "ERROR: $2" + if [ $DEBUG -eq 1 ]; then + echo "-------" >> $DEBUGLOG + echo -e "Parameters: $ACTION $REC $NAME\n" >> $DEBUGLOG + echo -e "ERROR: $2\n\n" >> $DEBUGLOG + echo -e "Mountpoint: $MOUNTPOINT\nDevice: $DEVICE\n" >> $DEBUGLOG + echo -e "MountpointT: $MOUNTPOINTT\nDeviceT: $DEVICET\n" >> $DEBUGLOG + FSTAB="$(awk '( $1 !~ /^#/ ) && ( $2 == "'$MOUNTPOINT'" || $2 == "'$MOUNTPOINTT'" ) { printf("%s", $0); }' /etc/fstab)" + echo -e "fstab: ${FSTAB}\n" >>$DEBUGLOG + echo -e "Filesystem: $(stat -f -c %T "$REC")\n" >> $DEBUGLOG + mount >> $DEBUGLOG + echo >> $DEBUGLOG + cat /proc/mounts >> $DEBUGLOG + echo >> $DEBUGLOG + sudo -l >> $DEBUGLOG + fi + ;; + esac +} + +# Some checks before doing something +[ "$ACTION" = "mount" -o "$ACTION" = "umount" ] || { call; exit 10; } +[ -z "$REC" -o ! -d "$REC" ] && { call; exit 10; } +[ "$ACTION" = "mount" -a -z "$NAME" ] && { call; exit 10; } +[ ! -d "$MOUNTPOINT" ] && { log error "Mountpoint $MOUNTPOINT doesn't exist"; exit 10; } +[ ! -e "$DEVICE" ] && { log error "Device $DEVICE doesn't exist"; exit 10; } + +case "$ACTION" in +mount) + # check if not mounted + if mount | egrep -q " $MOUNTPOINTT "; then + # check if hdd is in use + if mount | egrep -q "^$DEVICET"; then + log warning "hdd in use (at: check if hdd is in use)" + fi + + # if already mounted, try to umount + log warning "hdd already mounted, try to umount" + umount "$MOUNTPOINT" || { log error "hdd umount error (at: hdd already mounted, try to umount)"; exit 1; } + + # unlink broken existing links + for LINK in "${REC}/"*.vdr; do + if [ -L "$LINK" -a ! -s "$LINK" ]; then + rm "$LINK" + fi + done + for LINK in "${REC}/"*.ts; do + if [ -L "$LINK" -a ! -s "$LINK" ]; then + rm "$LINK" + fi + done + for LINK in "${REC}/"index*; do + if [ -L "$LINK" -a ! -s "$LINK" ]; then + rm "$LINK" + fi + done + fi + + # mount hdd + mount "$MOUNTPOINT" || { log error "hdd mount error (at: mount hdd)"; exit 1; } + # mount was OK. Now, find recording on hdd + + # search recording in the subtree (Movies/Action/) + RELPATH1=${REC#$VIDEO} + RELPATH=${RELPATH1%$NAME} + DIR="$(find "${MOUNTPOINT}/${RELPATH}" -name "$NAME")" + # if not found, seach recording on the whole disk + if [ -z "$DIR" ]; then + DIR="$(find "${MOUNTPOINT}/" -name "$NAME")" + fi + # if not found, umount + if [ -z "$DIR" ]; then + log error "wrong hdd / recording not found on hdd" + umount "$MOUNTPOINT" || { log error "hdd umount error (at: wrong hdd / recording not found on hdd)"; exit 1; } + exit 3 + fi + + # check if video partition is vfat + if [ "$(stat -f -c %T "$REC")" != "vfat" ]; then + + # link index.vdr if not exist + if [ -e "${DIR}/index.vdr" -a ! -e "${REC}/index.vdr" ]; then + ln -s "${DIR}/index.vdr" "${REC}/index.vdr" || { log error "could not link index.vdr (at: link index.vdr from hdd to disk)"; } + fi + if [ -e "${DIR}/index" -a ! -e "${REC}/index" ]; then + ln -s "${DIR}/index" "${REC}/index" || { log error "could not link index (at: link index from hdd to disk)"; } + fi + + # link [0-9]*.vdr files + for FILE in "${DIR}/"[0-9]*.vdr; do + if [ -e "${FILE}" ]; then + ln -s "$FILE" "${REC}/$(basename "$FILE")" + fi + done + # error while linking [0-9]*.vdr files? + if [ $? -ne 0 ]; then + log error "error while linking [0-9]*.vdr" + # umount hdd bevor unlinking + umount "$MOUNTPOINT" || { log error "hdd umount error (at: error while linking)"; exit 1; } + # unlink broken links + for LINK in "${REC}/"*.vdr; do + if [ -L "$LINK" -a ! -s "$LINK" ]; then + rm "$LINK" + fi + done + exit 4 + fi + for FILE in "${DIR}/"[0-9]*.ts; do + if [ -e "${FILE}" ]; then + ln -s "$FILE" "${REC}/$(basename "$FILE")" + fi + done + # error while linking [0-9]*.ts files? + if [ $? -ne 0 ]; then + log error "error while linking [0-9]*.ts" + # umount hdd bevor unlinking + umount "$MOUNTPOINT" || { log error "hdd umount error (at: error while linking)"; exit 1; } + # unlink broken links + for LINK in "${REC}/"*.ts; do + if [ -L "$LINK" -a ! -s "$LINK" ]; then + rm "$LINK" + fi + done + exit 4 + fi + + # If wanted, create length.vdr + if [ $GETLENGTH -eq 1 -a ! -s "${REC}/length.vdr" -a -L "${REC}/index.vdr" ]; then + echo $(( $(stat -L -c %s "${REC}/index.vdr")/12000 )) > "${REC}/length.vdr" + fi + if [ $GETLENGTH -eq 1 -a ! -s "${REC}/length.vdr" -a -L "${REC}/index" ]; then + echo $(( $(stat -L -c %s "${REC}/index")/12000 )) > "${REC}/length.vdr" + fi + else + if [ ! "$(sudo -l | egrep "\(root\) NOPASSWD: /bin/mount")" -o ! "$(sudo -l | egrep "\(root\) NOPASSWD: /bin/umount")" ]; then + log error "you must configure sudo and allow $(whoami) to use mount/umount!" + log info "$(sudo -l)" + umount "$MOUNTPOINT" || { log error "hdd umount error (at: you must configure sudo)"; exit 1; } + exit 5 + fi + # mount recording + sudo mount --bind "$DIR" "$REC" + if [ $? -ne 0 ]; then + log error "sudo mount --bind $DIR $REC" + umount "$MOUNTPOINT" || { log error "hdd umount error (at: sudo mount --bind)"; exit 1; } + exit 5 + fi + fi + ;; +umount) + # check if hdd is mounted + mount | egrep -q " $MOUNTPOINTT " || { log error "hdd not mounted (at: check if hdd is mounted)"; exit 1; } + # check if video partition is vfat + if [ "$(stat -f -c %T "$REC")" != "vfat" ]; then + # is mounted, umount hdd bevor unlinking + umount "$MOUNTPOINT" || { log error "hdd umount error (at: is mounted, umount hdd bevor unlinking)"; exit 1; } + # unlink broken links + for LINK in "${REC}/"index*; do + if [ -L "$LINK" -a ! -s "$LINK" ]; then + rm "$LINK" + fi + done + for LINK in "${REC}/"*.vdr; do + if [ -L "$LINK" -a ! -s "$LINK" ]; then + rm "$LINK" + fi + done + for LINK in "${REC}/"*.ts; do + if [ -L "$LINK" -a ! -s "$LINK" ]; then + rm "$LINK" + fi + done + else + # umount recording + sudo umount "$REC" || { log error "sudo umount $REC"; exit 5; } + # umount Archive-HDD at umount + umount "$MOUNTPOINT" || { log error "hdd umount error (at: umount hdd at umount)"; exit 1; } + fi + ;; +*) +# Output help + log error "\nWrong action $ACTION." + call + ;; +esac + +exit 0 diff -Nru vdr-plugin-extrecmenu-1.1/tools.c vdr-plugin-extrecmenu-1.2.2.git20130304/tools.c --- vdr-plugin-extrecmenu-1.1/tools.c 2007-08-28 16:40:36.000000000 +0000 +++ vdr-plugin-extrecmenu-1.2.2.git20130304/tools.c 2013-03-04 15:56:53.000000000 +0000 @@ -2,6 +2,7 @@ * See the README file for copyright information and how to reach the author. */ +#include #include #include #include @@ -37,12 +38,12 @@ return S; } -string myStrReplace(string S,char C1,char C2) +string myStrReplace(string S,char C1,const char* C2) { string::size_type i=0; while((i=S.find(C1,i))!=string::npos) { - S.replace(i,1,1,C2); + S.replace(i,1,C2); i++; } return S; @@ -53,7 +54,7 @@ { string configfile(cPlugin::ConfigDirectory()); configfile+=CONFIGFILE; - + ifstream in(configfile.c_str()); if(in) { @@ -69,23 +70,23 @@ void SortList::WriteConfigFile() { - string configfile(cPlugin::ConfigDirectory()); - configfile+=CONFIGFILE; - - ofstream outfile(configfile.c_str()); - - for(SortListItem *item=First();item;item=Next(item)) - outfile << item->Path() << endl; + string configfile(cPlugin::ConfigDirectory()); + configfile+=CONFIGFILE; + + ofstream outfile(configfile.c_str()); + + for(SortListItem *item=First();item;item=Next(item)) + outfile << item->Path() << endl; } bool SortList::Find(string Path) { - for(SortListItem *item=First();item;item=Next(item)) - { - if(item->Path()==Path) - return true; - } - return false; + for(SortListItem *item=First();item;item=Next(item)) + { + if(item->Path()==Path) + return true; + } + return false; } // --- MoveRename ------------------------------------------------------------- @@ -100,13 +101,13 @@ if(Recording) { isyslog("[extrecmenu] moving %s to %s",OldName,NewName); - + if(!MakeDirs(NewName,true)) { Skins.Message(mtError,tr("Creating directories failed!")); return false; } - + if(rename(OldName,NewName)==-1) { remove(NewName); // remove created directory @@ -118,24 +119,30 @@ cThreadLock RecordingsLock(&Recordings); Recordings.DelByName(OldName); Recordings.AddByName(NewName); - + // set user command for '-r'-option of VDR - asprintf(&buf,"%s \"%s\"",Move?"move":"rename",*strescape(OldName,"'\\\"$")); - cRecordingUserCommand::InvokeCommand(buf,NewName); - free(buf); + if(-1!=asprintf(&buf,"%s \"%s\"",Move?"move":"rename",*strescape(OldName,"'\\\"$"))) + { + cRecordingUserCommand::InvokeCommand(buf,NewName); + free(buf); + } + buf=NULL; } else { // is the new path within the old? - asprintf(&buf,"%s/",OldName); // we have to append a / to make sure that we search for a directory - if(!strncmp(buf,NewName,strlen(buf))) + if(-1!=asprintf(&buf,"%s/",OldName)) // we have to append a / to make sure that we search for a directory { - Skins.Message(mtError,tr("Moving into own sub-directory not allowed!")); + if(!strncmp(buf,NewName,strlen(buf))) + { + Skins.Message(mtError,tr("Moving into own sub-directory not allowed!")); + free(buf); + return false; + } free(buf); - return false; } - free(buf); - + buf=NULL; + myRecList *list=new myRecList(); for(cRecording *recording=Recordings.First();recording;recording=Recordings.Next(recording)) list->Add(new myRecListItem(recording)); @@ -146,27 +153,33 @@ if(!strncmp(OldName,item->recording->FileName(),strlen(OldName))) { buf=strdup(OldName+strlen(VideoDirectory)+1); - buf=ExchangeChars(buf,false); - - if(strcmp(item->recording->Name(),buf)) + if(buf) { - free(buf); - asprintf(&buf,"%s%s",NewName,item->recording->FileName()+strlen(OldName)); - if(!MakeDirs(buf,true)) - { - Skins.Message(mtError,tr("Creating directories failed!")); - free(buf); - delete list; - return false; - } - if(MoveRename(item->recording->FileName(),buf,item->recording,Move)==false) + buf=ExchangeChars(buf,false); + + if(strcmp(item->recording->Name(),buf)) { free(buf); - delete list; - return false; + if(-1!=asprintf(&buf,"%s%s",NewName,item->recording->FileName()+strlen(OldName))) + { + if(!MakeDirs(buf,true)) + { + Skins.Message(mtError,tr("Creating directories failed!")); + free(buf); + delete list; + return false; + } + if(MoveRename(item->recording->FileName(),buf,item->recording,Move)==false) + { + free(buf); + delete list; + return false; + } + } + buf=NULL; } + free(buf); } - free(buf); } item=list->Next(item); } @@ -212,11 +225,11 @@ if(SortByName) *s1=1; else - *(s2+1)=255; + *(s2+1)=(char)255; } else - *s1=255; - + *s1=(char)255; + if(s1 && s2 && !SortByName) memmove(s1+1,s2,t-s2+1); @@ -226,7 +239,7 @@ int myRecListItem::Compare(const cListObject &ListObject)const { myRecListItem *item=(myRecListItem*)&ListObject; - + char *s1=StripEpisodeName(strdup(filename+strlen(VideoDirectory))); char *s2=StripEpisodeName(strdup(item->filename+strlen(VideoDirectory))); @@ -235,10 +248,10 @@ compare=strcasecmp(s2,s1); else compare=strcasecmp(s1,s2); - + free(s1); free(s2); - + return compare; } @@ -255,7 +268,7 @@ cancelmove=cancelcut=false; CutterQueue=new CutterList(); MoveBetweenFileSystemsList=new MoveList(); - + Start(); } @@ -274,7 +287,7 @@ if(MoveBetweenFileSystemsList->First()!=NULL) return tr("Move recordings in progress"); - + return NULL; } @@ -282,13 +295,26 @@ { CutterListItem *cutteritem=NULL; MoveListItem *moveitem=NULL; - + + SetPriority(19); +#if VDRVERSNUM >= 10706 + SetIOPriority(7); +#endif + while(Running()) { if((cutteritem=CutterQueue->First())!=NULL) { cutteritem->SetCutInProgress(); +#ifdef USE_VDR_CUTTER +#if VDRVERSNUM > 10713 + if(!CutRecording(cutteritem->FileName().c_str())) +#else + if (!cCutter::Start(cutteritem->FileName().c_str())) +#endif + Skins.QueueMessage(mtError,tr("Can't start editing process!")); +#else // create filename for edited recording, check for recordings with this name, if exists -> delete recording // (based upon VDR's code (cutter.c)) cRecording rec(cutteritem->FileName().c_str()); @@ -296,7 +322,7 @@ if(editedfilename && RemoveVideoFile(editedfilename) && MakeDirs(editedfilename,true)) { char *s=strdup(editedfilename); - char *e=strrchr(s,'.'); + char *e=(char*)strrchr(s,'.'); //TODO if(e) { if(!strcmp(e,".rec")) @@ -313,8 +339,9 @@ } else Skins.QueueMessage(mtError,tr("Can't start editing process!")); +#endif CutterQueue->Del(cutteritem); - + Recordings.ChangeState(); } @@ -326,10 +353,10 @@ else // error occured -> empty move queue MoveBetweenFileSystemsList->Clear(); - + Recordings.ChangeState(); } - + sleep(1); } } @@ -359,12 +386,13 @@ cancelcut=true; else CutterQueue->Del(item); - + return; } } } +#ifndef USE_VDR_CUTTER // this based mainly upon VDR's code (cutter.c) void WorkerThread::Cut(string From,string To) { @@ -374,9 +402,39 @@ cMarks frommarks,tomarks; cMark *mark; const char *error=NULL; - uchar filenumber,picturetype,buffer[MAXFRAMESIZE]; - int fileoffset,length,index,currentfilenumber=0,filesize=0,lastiframe=0; + uchar buffer[MAXFRAMESIZE]; + int index,currentfilenumber=0,lastiframe=0; bool lastmark=false,cutin=true; + off_t maxVideoFileSize=MEGABYTE(Setup.MaxVideoFileSize); + +#if VDRVERSNUM > 10713 + bool isPesRecording; + uint16_t filenumber; + off_t fileoffset,filesize=0; + int length; + bool picturetype; + + cRecording Recording(From.c_str()); + isPesRecording=Recording.IsPesRecording(); + if(frommarks.Load(From.c_str(),Recording.FramesPerSecond(),isPesRecording) && frommarks.Count()) + { + fromfilename=new cFileName(From.c_str(),false,true,isPesRecording); + tofilename=new cFileName(To.c_str(),true,false,isPesRecording); + fromindex=new cIndexFile(From.c_str(),false,isPesRecording); + toindex=new cIndexFile(To.c_str(),true,isPesRecording); + tomarks.Load(To.c_str(),Recording.FramesPerSecond(),isPesRecording); + if(isPesRecording && maxVideoFileSize > MEGABYTE(MAXVIDEOFILESIZEPES)) + maxVideoFileSize=MEGABYTE(MAXVIDEOFILESIZEPES); + } + else + { + esyslog("[extrecmenu] no editing marks found for %s",From.c_str()); + return; + } +#else + uchar filenumber; + int fileoffset,length,filesize=0; + uchar picturetype; if(frommarks.Load(From.c_str()) && frommarks.Count()) { @@ -391,13 +449,18 @@ esyslog("[extrecmenu] no editing marks found for %s",From.c_str()); return; } +#endif if((mark=frommarks.First())!=NULL) { if(!(fromfile=fromfilename->Open()) || !(tofile=tofilename->Open())) return; fromfile->SetReadAhead(MEGABYTE(20)); +#if VDRVERSNUM > 10720 + index=mark->Position(); +#else index=mark->position; +#endif mark=frommarks.Next(mark); tomarks.Add(0); tomarks.Save(); @@ -438,11 +501,15 @@ error="fromfile"; break; } +#if VDRVERSNUM > 10713 + if(picturetype) +#else if(picturetype==I_FRAME) +#endif { if(lastmark) break; - if(filesize > MEGABYTE(Setup.MaxVideoFileSize)) + if(filesize > maxVideoFileSize) { tofile=tofilename->NextFile(); if(!tofile) @@ -455,7 +522,14 @@ lastiframe=0; if(cutin) { +#if VDRVERSNUM > 10713 + if(isPesRecording) + cRemux::SetBrokenLink(buffer,length); + else + TsSetTeiOnBrokenPackets(buffer,length); +#else cRemux::SetBrokenLink(buffer,length); +#endif cutin=false; } } @@ -464,7 +538,7 @@ error="safe_write"; break; } - if(!toindex->Write(picturetype,tofilename->Number(),filesize)) + if(!toindex->Write(picturetype,(uint16_t)(tofilename->Number()),filesize)) { error="toindex"; break; @@ -473,7 +547,11 @@ if(!lastiframe) lastiframe=toindex->Last(); +#if VDRVERSNUM > 10720 + if(mark && index >= mark->Position()) +#else if(mark && index >= mark->position) +#endif { mark=frommarks.Next(mark); tomarks.Add(lastiframe); @@ -482,7 +560,11 @@ tomarks.Save(); if(mark) { +#if VDRVERSNUM > 10720 + index=mark->Position(); +#else index=mark->position; +#endif mark=frommarks.Next(mark); currentfilenumber=0; cutin=true; @@ -500,6 +582,9 @@ else lastmark=true; } + + if(mysetup.LimitBandwidth) + usleep(10); } if(!Running() || cancelcut || error) { @@ -523,6 +608,7 @@ delete fromindex; delete toindex; } +#endif bool WorkerThread::IsMoving(string Path) { @@ -547,7 +633,7 @@ } else MoveBetweenFileSystemsList->Del(item); - + return; } } @@ -566,13 +652,13 @@ Skins.QueueMessage(mtError,tr("Creating directories failed!")); return false; } - + isyslog("[extrecmenu] moving '%s' to '%s'",From.c_str(),To.c_str()); - + DIR *dir=NULL; struct dirent *entry; int infile=-1,outfile=-1; - + if((dir=opendir(From.c_str()))!=NULL) { bool ok=true; @@ -582,7 +668,7 @@ string from,to; from=From+"/"+entry->d_name; to=To+"/"+entry->d_name; - + AssertFreeDiskSpace(-1); struct stat st; @@ -599,25 +685,25 @@ while(sz_read>0 && (sz_read=read(infile,buf,BUFFERSIZE))>0) { AssertFreeDiskSpace(-1); - + sz_write=0; do { if(cancelmove || !Running()) { cancelmove=false; - + close(infile); close(outfile); closedir(dir); - + isyslog("[extrecmenu] moving canceled"); - + RemoveVideoFile(To.c_str()); - + return true; } - + if((sz=write(outfile,buf+sz_write,sz_read-sz_write))<0) { close(infile); @@ -631,7 +717,7 @@ sz_write+=sz; } while(sz_write= 10732 +# define USE_VDR_CUTTER +# endif +#endif + +std::string myStrReplace(std::string S,char C1,const char* C2); class SortListItem:public cListObject { private: std::string path; public: - SortListItem(std::string Path){path=Path;}; + SortListItem(std::string _Path){path=_Path;}; std::string Path(){return path;} }; @@ -50,7 +56,7 @@ std::string from; std::string to; public: - MoveListItem(std::string From,std::string To){from=From;to=To;moveinprogress=false;movecanceled=false;} + MoveListItem(std::string _From,std::string _To){from=_From;to=_To;moveinprogress=false;movecanceled=false;} std::string From(){return from;} std::string To(){return to;} void SetMoveInProgress(){moveinprogress=true;} @@ -72,8 +78,8 @@ std::string filename; std::string newfilename; public: - CutterListItem(std::string FileName){filename=FileName;cutinprogress=false;}; - void SetNewFileName(std::string NewFileName){newfilename=NewFileName;} + CutterListItem(std::string _FileName){filename=_FileName;cutinprogress=false;}; + void SetNewFileName(std::string _NewFileName){newfilename=_NewFileName;} std::string FileName(){return filename;} std::string NewFileName(){return newfilename;} void SetCutInProgress(){cutinprogress=true;} @@ -112,3 +118,32 @@ extern WorkerThread *MoveCutterThread; +class Icons +{ + private: + static bool IsUTF8; + public: + static void InitCharSet(); + static const char* Continue(){return IsUTF8?"\ue000":"\x80";} + static const char* DVD(){return IsUTF8?"\ue001":"\x81";} + static const char* Directory(){return IsUTF8?"\ue002":"\x82";} + static const char* FixedBlank(){return IsUTF8?"\ue003":"\x83";} + static const char* Scissor(){return IsUTF8?"\ue004":"\x84";} + static const char* MovingRecording(){return IsUTF8?"\ue005":"\x85";} + static const char* MovingDirectory(){return IsUTF8?"\ue006":"\x86";} + static const char* ProgressStart(){return IsUTF8?"\ue007":"\x87";} + static const char* ProgressFilled(){return IsUTF8?"\ue008":"\x88";} + static const char* ProgressEmpty(){return IsUTF8?"\ue009":"\x89";} + static const char* ProgressEnd(){return IsUTF8?"\ue00a":"\x8a";} + static const char* Recording(){return IsUTF8?"\ue00b":"\x8b";} + static const char* AlarmClock(){return IsUTF8?"\ue00c":"\x8c";} + static const char* TVScrambled(){return IsUTF8?"\ue00d":"\x8d";} + static const char* Radio(){return IsUTF8?"\ue00e":"\x8e";} + static const char* TV(){return IsUTF8?"\ue00f":"\x8f";} + static const char* New(){return IsUTF8?"\ue010":"\x90";} + static const char* Repititive_timer(){return IsUTF8?"\ue011":"\x91";} + static const char* Running(){return IsUTF8?"\ue012":"\x92";} + static const char* HDD(){return IsUTF8?"\ue01c":"\x9c";} + static const char* StarFull(){return IsUTF8?"\ue018":"\x98";} + static const char* StarHalf(){return IsUTF8?"\ue019":"\x99";} +}; Binary files /tmp/4obMOhs9PV/vdr-plugin-extrecmenu-1.1/ttf/VDRSymbolsSans-Bold.ttf and /tmp/Vp5M5K2bWU/vdr-plugin-extrecmenu-1.2.2.git20130304/ttf/VDRSymbolsSans-Bold.ttf differ Binary files /tmp/4obMOhs9PV/vdr-plugin-extrecmenu-1.1/ttf/VDRSymbolsSans.ttf and /tmp/Vp5M5K2bWU/vdr-plugin-extrecmenu-1.2.2.git20130304/ttf/VDRSymbolsSans.ttf differ