# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
-*.[oa]
*~
-Makefile.in
-Makefile
-*.so
-*.so.0.0
-*.cxx
-.deps
-COPYING
-INSTALL
+*.a
aclocal.m4
autom4te.cache/
config.guess
config.sub
configure
depcomp
+.deps/
+enigma2_config.h
+enigma2_config.h.in
enigma2.pc
+index-enigma2.xml
+INSTALL
install-sh
-lib/actions/actionids.h
-lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.d
-lib/python/enigma.py
-missing
-py-compile
-po/
-main/enigma2
-version.h
-*.d
*.la
-*.lo
.libs/
-*.tar.gz
-config.h
libtool
+*.lo
ltmain.sh
+Makefile
+Makefile.in
+missing
+moc_*.cpp
+*.o
+py-compile
stamp-h1
+*.tar.bz2
+*.tar.gz
--- /dev/null
+See LICENSE.
SUBDIRS = include lib main data po tools
-installdir = $(pkglibdir)/python
+ACLOCAL_AMFLAGS = -I m4
+installdir = $(pkglibdir)/python
install_PYTHON = \
Navigation.py NavigationInstance.py RecordTimer.py SleepTimer.py ServiceReference.py \
keyids.py keymapparser.py mytest.py skin.py timer.py tools.py GlobalActions.py \
e2reactor.py
-install-exec-hook:
- $(PYTHON) $(srcdir)/tools/genmetaindex.py $(DESTDIR)$(datadir)/meta/plugin_*.xml > $(DESTDIR)$(datadir)/meta/index-enigma2.xml
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = enigma2.pc
+
+metadir = $(datadir)/meta
+meta_DATA = index-enigma2.xml
+CLEANFILES = index-enigma2.xml
+
+EXTRA_DIST = lamedb
-uninstall-hook:
- $(RM) $(DESTDIR)$(datadir)/meta/index-enigma2.xml
+index-enigma2.xml: $(top_srcdir)/tools/genmetaindex.py $(top_srcdir)/lib/python/Plugins/*/*/meta/plugin_*.xml
+ $(AM_V_GEN)$(PYTHON) $^ > $@
+To build enigma2 on Ubuntu 10.04, follow these steps:
+
+0.) Consider using OE to build it for a Dreambox instead.
+
+ To build this version for a Dreambox, you will need
+ a recent OE (branch "opendreambox-1.6" will do, but "3.0" won't)
+ or at least a backported BitBake recipe from there.
+
+ See http://opendreambox.org/.
+
+ Stop reading here. It's not very useful for most people
+ to build enigma2 for a PC.
+
+1.) Install these packages:
+
+autoconf
+automake
+build-essential
+gettext
+libdvdnav-dev
+libfreetype6-dev
+libfribidi-dev
+libgif-dev
+libgstreamer0.10-dev
+libgstreamer-plugins-base0.10-dev
+libjpeg62-dev
+libpng12-dev
+libsdl1.2-dev
+libsigc++-1.2-dev
+libtool
+libxml2-dev
+libxslt1-dev
+python-dev
+swig
+
+2.) Build and install libdvbsi++:
+
+git clone git://git.opendreambox.org/git/obi/libdvbsi++.git
+cd libdvbsi++
+dpkg-buildpackage -uc -us
+cd ..
+sudo dpkg -i libdvbsi++*.deb
+
+3.) Build and install libxmlccwrap:
+
+git clone git://git.opendreambox.org/git/obi/libxmlccwrap.git
+cd libxmlccwrap
+dpkg-buildpackage -uc -us
+cd ..
+sudo dpkg -i libxmlccwrap*.deb
+
+4.) Build and install libdreamdvd:
+
+git clone git://schwerkraft.elitedvb.net/libdreamdvd/libdreamdvd.git
+cd libdreamdvd
+dpkg-buildpackage -uc -us
+cd ..
+sudo dpkg -i libdreamdvd*.deb
+
+5.) Build and install enigma2:
+
+git clone git://git.opendreambox.org/git/enigma2.git
+cd enigma2
+autoreconf -i
+./configure --prefix=$HOME/enigma2 --with-libsdl
+make
+make install
+
timersanitycheck = TimerSanityCheck(NavigationInstance.instance.RecordTimer.timer_list, dummyentry)
if not timersanitycheck.check():
simulTimerList = timersanitycheck.getSimulTimerList()
- new_end = simulTimerList[1].begin
- del simulTimerList
- new_end -= 30 # 30 Sekunden Prepare-Zeit lassen
- del dummyentry
+ if simulTimerList is not None and len(simulTimerList) > 1:
+ new_end = simulTimerList[1].begin
+ new_end -= 30 # 30 Sekunden Prepare-Zeit lassen
if new_end <= time():
return False
self.end = new_end
return True
-
-
+
def sendStandbyNotification(self, answer):
if answer:
Notifications.AddNotification(Screens.Standby.Standby)
checkit = True
for timer in root.findall("timer"):
newTimer = createTimer(timer)
- if (self.record(newTimer, True, True) is not None) and (checkit == True):
+ if (self.record(newTimer, True, dosave=False) is not None) and (checkit == True):
from Tools.Notifications import AddPopup
from Screens.MessageBox import MessageBox
AddPopup(_("Timer overlap in timers.xml detected!\nPlease recheck it!"), type = MessageBox.TYPE_ERROR, timeout = 0, id = "TimerLoadFailed")
+++ /dev/null
-AC_DEFUN([TUXBOX_APPS],[
-
-INSTALL="$INSTALL -p"
-
-AC_GNU_SOURCE
-AC_SYS_LARGEFILE
-
-AC_ARG_WITH(target,
- [ --with-target=TARGET target for compilation [[native,cdk]]],
- [TARGET="$withval"],[TARGET="native"])
-
-AC_ARG_WITH(targetprefix,
- [ --with-targetprefix=PATH prefix relative to target root (only applicable in cdk mode)],
- [targetprefix="$withval"],[targetprefix="NONE"])
-
-AC_ARG_WITH(debug,
- [ --without-debug disable debugging code],
- [DEBUG="$withval"],[DEBUG="yes"])
-
-if test "$DEBUG" = "yes"; then
- DEBUG_CFLAGS="-g3 -ggdb"
- AC_DEFINE(DEBUG,1,[Enable debug messages])
-fi
-
-AC_MSG_CHECKING(target)
-
-if test "$TARGET" = "native"; then
- AC_MSG_RESULT(native)
-
- if test "$CFLAGS" = "" -a "$CXXFLAGS" = ""; then
- CFLAGS="-Wall -O2 -pipe $DEBUG_CFLAGS"
- CXXFLAGS="-Wall -O2 -pipe $DEBUG_CFLAGS"
- fi
- if test "$prefix" = "NONE"; then
- prefix=/usr/local
- fi
- targetprefix=$prefix
-elif test "$TARGET" = "cdk"; then
- AC_MSG_RESULT(cdk)
-
- if test "$CC" = "" -a "$CXX" = ""; then
- CC=powerpc-tuxbox-linux-gnu-gcc CXX=powerpc-tuxbox-linux-gnu-g++
- fi
- if test "$CFLAGS" = "" -a "$CXXFLAGS" = ""; then
- CFLAGS="-Wall -Os -mcpu=823 -pipe $DEBUG_CFLAGS"
- CXXFLAGS="-Wall -Os -mcpu=823 -pipe $DEBUG_CFLAGS"
- fi
- if test "$prefix" = "NONE"; then
- AC_MSG_ERROR(invalid prefix, you need to specify one in cdk mode)
- fi
- if test "$targetprefix" = "NONE"; then
- targetprefix=""
- fi
- if test "$host_alias" = ""; then
- cross_compiling=yes
- host_alias=powerpc-tuxbox-linux-gnu
- fi
-else
- AC_MSG_RESULT(none)
- AC_MSG_ERROR([invalid target $TARGET, choose on from native,cdk]);
-fi
-
-AC_CANONICAL_BUILD
-AC_CANONICAL_HOST
-
-check_path () {
- return $(perl -e "if(\"$1\"=~m#^/usr/(local/)?bin#){print \"0\"}else{print \"1\";}")
-}
-
-])
-
-AC_DEFUN([TUXBOX_APPS_DIRECTORY_ONE],[
-AC_ARG_WITH($1,[ $6$7 [[PREFIX$4$5]]],[
- _$2=$withval
- if test "$TARGET" = "cdk"; then
- $2=`eval echo "${targetprefix}$withval"`
- else
- $2=$withval
- fi
-],[
- $2="\${$3}$5"
- if test "$TARGET" = "cdk"; then
- _$2=`eval echo "${target$3}$5"`
- else
- _$2=`eval echo "${$3}$5"`
- fi
-])
-
-dnl automake <= 1.6 don't support this
-dnl AC_SUBST($2)
-AC_DEFINE_UNQUOTED($2,"$_$2",$7)
-])
-
-AC_DEFUN([TUXBOX_APPS_DIRECTORY],[
-AC_REQUIRE([TUXBOX_APPS])
-
-if test "$TARGET" = "cdk"; then
- datadir="\${prefix}/share"
- tuxboxdatadir="\${prefix}/share/tuxbox"
- zoneinfodir="\${datadir}/zoneinfo"
- sysconfdir="\${prefix}/etc"
- localstatedir="\${prefix}/var"
- localedir="\${prefix}/var"
- libdir="\${prefix}/lib"
- targetdatadir="\${targetprefix}/share"
- targetsysconfdir="\${targetprefix}/etc"
- targetlocalstatedir="\${targetprefix}/var"
- targetlibdir="\${targetprefix}/lib"
-fi
-
-TUXBOX_APPS_DIRECTORY_ONE(configdir,CONFIGDIR,sysconfdir,/etc,,
- [--with-configdir=PATH ],[where to find the config files])
-
-TUXBOX_APPS_DIRECTORY_ONE(datadir,DATADIR,datadir,/share,,
- [--with-datadir=PATH ],[where to find data])
-
-TUXBOX_APPS_DIRECTORY_ONE(fontdir,FONTDIR,datadir,/share,/fonts,
- [--with-fontdir=PATH ],[where to find the fonts])
-
-TUXBOX_APPS_DIRECTORY_ONE(libdir,LIBDIR,libdir,/lib,,
- [--with-libdir=PATH ],[where to find the internal libs])
-])
-
-dnl automake <= 1.6 needs this specifications
-AC_SUBST(CONFIGDIR)
-AC_SUBST(DATADIR)
-AC_SUBST(FONTDIR)
-AC_SUBST(LIBDIR)
-dnl end workaround
-
-AC_DEFUN([TUXBOX_APPS_DVB],[
-AC_ARG_WITH(dvbincludes,
- [ --with-dvbincludes=PATH path for dvb includes [[NONE]]],
- [DVBINCLUDES="$withval"],[DVBINCLUDES=""])
-
-if test "$DVBINCLUDES"; then
- CPPFLAGS="$CPPFLAGS -I$DVBINCLUDES"
-fi
-
-AC_CHECK_HEADERS(ost/dmx.h,[
- DVB_API_VERSION=1
- AC_MSG_NOTICE([found dvb version 1])
-])
-
-if test -z "$DVB_API_VERSION"; then
-AC_CHECK_HEADERS(linux/dvb/version.h,[
- AC_LANG_PREPROC_REQUIRE()
- AC_REQUIRE([AC_PROG_EGREP])
- AC_LANG_CONFTEST([AC_LANG_SOURCE([[
-#include <linux/dvb/version.h>
-version DVB_API_VERSION
- ]])])
- DVB_API_VERSION=`(eval "$ac_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD | $EGREP "^version" | sed "s,version\ ,,"`
- rm -f conftest*
-
- AC_MSG_NOTICE([found dvb version $DVB_API_VERSION])
-])
-fi
-
-if test "$DVB_API_VERSION"; then
- AC_DEFINE(HAVE_DVB,1,[Define to 1 if you have the dvb includes])
- AC_DEFINE_UNQUOTED(HAVE_DVB_API_VERSION,$DVB_API_VERSION,[Define to the version of the dvb api])
-else
- AC_MSG_ERROR([can't find dvb headers])
-fi
-])
-
-AC_DEFUN([_TUXBOX_APPS_LIB_CONFIG],[
-AC_PATH_PROG($1_CONFIG,$2,no)
-if test "$$1_CONFIG" != "no"; then
- if test "$TARGET" = "cdk" && check_path "$$1_CONFIG"; then
- AC_MSG_$3([could not find a suitable version of $2]);
- else
- $1_CFLAGS=$($$1_CONFIG --cflags)
- $1_LIBS=$($$1_CONFIG --libs)
- fi
-fi
-
-AC_SUBST($1_CFLAGS)
-AC_SUBST($1_LIBS)
-])
-
-AC_DEFUN([TUXBOX_APPS_LIB_CONFIG],[
-_TUXBOX_APPS_LIB_CONFIG($1,$2,ERROR)
-if test "$$1_CONFIG" = "no"; then
- AC_MSG_ERROR([could not find $2]);
-fi
-])
-
-AC_DEFUN([TUXBOX_APPS_LIB_CONFIG_CHECK],[
-_TUXBOX_APPS_LIB_CONFIG($1,$2,WARN)
-])
-
-AC_DEFUN([TUXBOX_APPS_PKGCONFIG],[
-AC_PATH_PROG(PKG_CONFIG, pkg-config,no)
-if test "$PKG_CONFIG" = "no" ; then
- AC_MSG_ERROR([could not find pkg-config]);
-fi
-])
-
-AC_DEFUN([_TUXBOX_APPS_LIB_PKGCONFIG],[
-PKG_CHECK_MODULES($1,$2)
-AC_SUBST($1_CFLAGS)
-AC_SUBST($1_LIBS)
-])
-
-AC_DEFUN([_TUXBOX_APPS_LIB_PKGCONFIG_OPTIONAL],[
-PKG_CHECK_MODULES($1,$2,$3="yes",$3="no")
-if test "$$3" = "yes"; then
- AC_DEFINE($3, 1, [$2 available])
-else
- $1_CFLAGS=""
- $1_LIBS=""
-fi
-AC_SUBST($1_CFLAGS)
-AC_SUBST($1_LIBS)
-])
-
-AC_DEFUN([TUXBOX_APPS_LIB_PKGCONFIG],[
-_TUXBOX_APPS_LIB_PKGCONFIG($1,$2)
-if test -z "$$1_CFLAGS" ; then
- AC_MSG_ERROR([could not find package $2]);
-fi
-])
-
-AC_DEFUN([TUXBOX_APPS_LIB_PKGCONFIG_CHECK],[
-_TUXBOX_APPS_LIB_PKGCONFIG($1,$2)
-])
-
-AC_DEFUN([_TUXBOX_APPS_LIB_SYMBOL],[
-AC_CHECK_LIB($2,$3,HAVE_$1="yes",HAVE_$1="no")
-if test "$HAVE_$1" = "yes"; then
- $1_LIBS=-l$2
-fi
-
-AC_SUBST($1_LIBS)
-])
-
-AC_DEFUN([TUXBOX_APPS_LIB_SYMBOL],[
-_TUXBOX_APPS_LIB_SYMBOL($1,$2,$3,ERROR)
-if test "$HAVE_$1" = "no"; then
- AC_MSG_ERROR([could not find $2]);
-fi
-])
-
-AC_DEFUN([TUXBOX_APPS_LIB_CONFIG_SYMBOL],[
-_TUXBOX_APPS_LIB_SYMBOL($1,$2,$3,WARN)
-])
-
-AC_DEFUN([TUXBOX_APPS_GETTEXT],[
-AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
- [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 &&
- (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
- :)
-AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
-
-AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
- [$ac_dir/$ac_word --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 &&
- (if $ac_dir/$ac_word --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
- :)
-
-AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,[$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1],:)
-
-AC_MSG_CHECKING([whether NLS is requested])
-AC_ARG_ENABLE(nls,
- [ --disable-nls do not use Native Language Support],
- USE_NLS=$enableval, USE_NLS=yes)
-AC_MSG_RESULT($USE_NLS)
-AC_SUBST(USE_NLS)
-
-if test "$USE_NLS" = "yes"; then
- AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,[
- AC_TRY_LINK([
- #include <libintl.h>
- #ifndef __GNU_GETTEXT_SUPPORTED_REVISION
- #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
- #endif
- extern int _nl_msg_cat_cntr;
- extern int *_nl_domain_bindings;
- ],[
- bindtextdomain ("", "");
- return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_domain_bindings;
- ], gt_cv_func_gnugettext_libc=yes, gt_cv_func_gnugettext_libc=no
- )]
- )
-
- if test "$gt_cv_func_gnugettext_libc" = "yes"; then
- AC_DEFINE(ENABLE_NLS, 1, [Define to 1 if translation of program messages to the user's native language is requested.])
- gt_use_preinstalled_gnugettext=yes
- else
- USE_NLS=no
- fi
-fi
-
-if test -f "$srcdir/po/LINGUAS"; then
- ALL_LINGUAS=$(sed -e "/^#/d" "$srcdir/po/LINGUAS")
-fi
-
-POFILES=
-GMOFILES=
-UPDATEPOFILES=
-DUMMYPOFILES=
-for lang in $ALL_LINGUAS; do
- POFILES="$POFILES $srcdirpre$lang.po"
- GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
- UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
- DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
-done
-INST_LINGUAS=
-if test -n "$ALL_LINGUAS"; then
- for presentlang in $ALL_LINGUAS; do
- useit=no
- if test -n "$LINGUAS"; then
- desiredlanguages="$LINGUAS"
- else
- desiredlanguages="$ALL_LINGUAS"
- fi
- for desiredlang in $desiredlanguages; do
- case "$desiredlang" in
- "$presentlang"*) useit=yes;;
- esac
- done
- if test $useit = yes; then
- INST_LINGUAS="$INST_LINGUAS $presentlang"
- fi
- done
-fi
-CATALOGS=
-if test -n "$INST_LINGUAS"; then
- for lang in $INST_LINGUAS; do
- CATALOGS="$CATALOGS $lang.gmo"
- done
-fi
-AC_SUBST(POFILES)
-AC_SUBST(GMOFILES)
-AC_SUBST(UPDATEPOFILES)
-AC_SUBST(DUMMYPOFILES)
-AC_SUBST(CATALOGS)
-])
-
-dnl backward compatiblity
-AC_DEFUN([AC_GNU_SOURCE],
-[AH_VERBATIM([_GNU_SOURCE],
-[/* Enable GNU extensions on systems that have them. */
-#ifndef _GNU_SOURCE
-# undef _GNU_SOURCE
-#endif])dnl
-AC_BEFORE([$0], [AC_COMPILE_IFELSE])dnl
-AC_BEFORE([$0], [AC_RUN_IFELSE])dnl
-AC_DEFINE([_GNU_SOURCE])
-])
-
-AC_DEFUN([AC_PROG_EGREP],
-[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
- [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
- then ac_cv_prog_egrep='grep -E'
- else ac_cv_prog_egrep='egrep'
- fi])
- EGREP=$ac_cv_prog_egrep
- AC_SUBST([EGREP])
-])
-
-AC_DEFUN([AC_PYTHON_DEVEL],[
- #
- # should allow for checking of python version here...
- #
- if test $cross_compiling = "yes"; then
- # Check for Python include path
- AC_MSG_CHECKING([for Python include path])
-
- # FIXME: yes, this is wrong. sorry about that. (tmbinc)
- cross_PYTHON_VERSION=$PYTHON_VERSION
- python_path=
- for i in $CPPFLAGS ; do
- p=`echo $i | sed "s,^-I,,"`
- p=`echo $p | sed "s,^-isystem,,"`
- if test -f "$p/python$cross_PYTHON_VERSION/Python.h"; then
- python_path="$p/python$cross_PYTHON_VERSION"
- break
- fi
- done
- AC_MSG_RESULT([$python_path])
- if test -z "$python_path" ; then
- AC_MSG_ERROR([cannot find Python include path])
- fi
- AC_SUBST([PYTHON_CPPFLAGS],[-I$python_path])
-
- # Check for Python library path
- AC_MSG_CHECKING([for Python library path])
- python_path=
- for i in $LDFLAGS; do
- l=`echo $i | sed "s,^-L,,"`
- python_path=`find $l -type f -name libpython$cross_PYTHON_VERSION.* -print | sed "1q"`
- if test -n "$python_path" ; then
- break
- fi
- done
- python_path=`echo $python_path | sed "s,/libpython.*$,,"`
- AC_MSG_RESULT([$python_path])
- if test -z "$python_path" ; then
- AC_MSG_ERROR([cannot find Python library path])
- fi
- AC_SUBST([PYTHON_LDFLAGS],["-L$python_path -lpython$cross_PYTHON_VERSION"])
- #
- python_site=`echo $python_path | sed "s/config/site-packages/"`
- AC_SUBST([PYTHON_SITE_PKG],[$python_site])
- else
- AC_REQUIRE([AM_PATH_PYTHON])
-
- # Check for Python include path
- AC_MSG_CHECKING([for Python include path])
- python_path=`echo $PYTHON | sed "s,/bin.*$,,"`
- for i in "$python_path/include/python$PYTHON_VERSION/" "$python_path/include/python/" "$python_path/" ; do
- python_path=`find $i -type f -name Python.h -print | sed "1q"`
- if test -n "$python_path" ; then
- break
- fi
- done
- python_path=`echo $python_path | sed "s,/Python.h$,,"`
- AC_MSG_RESULT([$python_path])
- if test -z "$python_path" ; then
- AC_MSG_ERROR([cannot find Python include path])
- fi
- AC_SUBST([PYTHON_CPPFLAGS],[-I$python_path])
-
- # Check for Python library path
- AC_MSG_CHECKING([for Python library path])
- python_path=`echo $PYTHON | sed "s,/bin.*$,,"`
- for i in "$python_path/lib/python$PYTHON_VERSION/config/" "$python_path/lib/python$PYTHON_VERSION/" "$python_path/lib/python/config/" "$python_path/lib/python/" "$python_path/" ; do
- python_path=`find $i -type f -name libpython$PYTHON_VERSION.* -print | sed "1q"`
- if test -n "$python_path" ; then
- break
- fi
- done
- python_path=`echo $python_path | sed "s,/libpython.*$,,"`
- AC_MSG_RESULT([$python_path])
- if test -z "$python_path" ; then
- AC_MSG_ERROR([cannot find Python library path])
- fi
- AC_SUBST([PYTHON_LDFLAGS],["-L$python_path -lpython$PYTHON_VERSION"])
- #
- python_site=`echo $python_path | sed "s/config/site-packages/"`
- AC_SUBST([PYTHON_SITE_PKG],[$python_site])
- fi
-])
#!/bin/sh
-
-package="enigma2"
-
-srcdir=`dirname $0`
-test -z "$srcdir" && srcdir=.
-
-cd "$srcdir"
-DIE=0
-
-(autoconf --version) < /dev/null > /dev/null 2>&1 || {
- echo
- echo "You must have autoconf installed to compile $package."
- echo "Download the appropriate package for your system,"
- echo "or get the source from one of the GNU ftp sites"
- echo "listed in http://www.gnu.org/order/ftp.html"
- DIE=1
-}
-
-(automake --version) < /dev/null > /dev/null 2>&1 || {
- echo
- echo "You must have automake installed to compile $package."
- echo "Download the appropriate package for your system,"
- echo "or get the source from one of the GNU ftp sites"
- echo "listed in http://www.gnu.org/order/ftp.html"
- DIE=1
-}
-
-(libtool --version) < /dev/null > /dev/null 2>&1 || {
- echo
- echo "You must have libtool installed to compile $package."
- echo "Download the appropriate package for your system,"
- echo "or get the source from one of the GNU ftp sites"
- echo "listed in http://www.gnu.org/order/ftp.html"
- DIE=1
-}
-
-if test "$DIE" -eq 1; then
- exit 1
-fi
-
-if [ ! -e acinclude.m4 ]; then
- for i in .. ../.. ../../..; do
- if [ -e `pwd`/$i/acinclude.m4 ]; then
- ln -s `pwd`/$i/acinclude.m4 .
- fi
- done
-fi
-
-echo "Generating configuration files for $package, please wait...."
-
-echo " aclocal"
-aclocal
-echo " libtoolize --automake"
-libtoolize --automake
-echo " autoconf"
-autoconf
-echo " automake --add-missing"
-automake --add-missing
-
+autoreconf -i
+++ /dev/null
-/* config.h.in. Generated from configure.ac by autoheader. */
-
-/* where to find the config files */
-#undef CONFIGDIR
-
-/* where to find data */
-#undef DATADIR
-
-/* Enable debug messages */
-#undef DEBUG
-
-/* Define to 1 if translation of program messages to the user's native
- language is requested. */
-#undef ENABLE_NLS
-
-/* where to find the fonts */
-#undef FONTDIR
-
-/* where games data is stored */
-#undef GAMESDIR
-
-/* Define to 1 if you have the dvb includes */
-#undef HAVE_DVB
-
-/* Define to the version of the dvb api */
-#undef HAVE_DVB_API_VERSION
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* Define to 1 if you have the <linux/dvb/version.h> header file. */
-#undef HAVE_LINUX_DVB_VERSION_H
-
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define to 1 if you have the <ost/dmx.h> header file. */
-#undef HAVE_OST_DMX_H
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* where to find the internal libs */
-#undef LIBDIR
-
-/* where to find locales */
-#undef LOCALEDIR
-
-/* Name of package */
-#undef PACKAGE
-
-/* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT
-
-/* Define to the full name of this package. */
-#undef PACKAGE_NAME
-
-/* Define to the full name and version of this package. */
-#undef PACKAGE_STRING
-
-/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
-
-/* Define to the version of this package. */
-#undef PACKAGE_VERSION
-
-/* where to find the plugins */
-#undef PLUGINDIR
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* where to find tuxbox data */
-#undef TUXBOXDATADIR
-
-/* Version number of package */
-#undef VERSION
-
-/* With SDL */
-#undef WITH_SDL
-
-/* where to find zoneinfo db */
-#undef ZONEINFODIR
-
-/* Number of bits in a file offset, on hosts where this is settable. */
-#undef _FILE_OFFSET_BITS
-
-/* Enable GNU extensions on systems that have them. */
-#ifndef _GNU_SOURCE
-# undef _GNU_SOURCE
-#endif
-
-/* Define for large files, on AIX-style hosts. */
-#undef _LARGE_FILES
-AC_INIT(enigma2,2.4)
-AM_INIT_AUTOMAKE(enigma2,2.4)
+AC_INIT([enigma2],[3.0.0],[enigma2-devel@lists.elitedvb.net])
+AM_INIT_AUTOMAKE([dist-bzip2 no-define tar-pax -Wno-portability])
+AC_CONFIG_HEADERS([enigma2_config.h])
-TUXBOX_APPS
-TUXBOX_APPS_DIRECTORY
+# Silent rules are available since 1.11, but older versions
+# are still in use. So don't use them unconditionally.
+m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
+
+AC_USE_SYSTEM_EXTENSIONS
+AC_SYS_LARGEFILE
AC_PROG_CC
AC_PROG_CXX
-AC_PROG_RANLIB
+m4_ifdef([LT_INIT], [LT_INIT], [AC_PROG_LIBTOOL])
+AC_CONFIG_MACRO_DIR([m4])
+
+AC_CHECK_HEADERS([dbox/fp.h dbox/lcd-ks0713.h])
+
+AC_PATH_PROG(MSGFMT, msgfmt, AC_MSG_ERROR(Could not find msgfmt))
+
+AM_PATH_PYTHON
+AX_PYTHON_DEVEL
+AX_PKG_SWIG
+AX_SWIG_ENABLE_CXX
+AX_SWIG_PYTHON
+AX_PTHREAD
+
+TUXBOX_APPS_DVB
+
+AM_CONDITIONAL(HAVE_GIT_DIR, test -d "$srcdir/.git")
+AM_CONDITIONAL(HAVE_FAKE_GIT_DIR, test -f "$srcdir/.git/last_commit_info")
+
+PKG_CHECK_MODULES(BASE, [freetype2 fribidi gstreamer-0.10 gstreamer-pbutils-0.10 libdvbsi++ libpng libxml-2.0 sigc++-1.2])
+PKG_CHECK_MODULES(LIBDDVD, libdreamdvd, HAVE_LIBDDVD="yes", HAVE_LIBDDVD="no")
+AM_CONDITIONAL(HAVE_LIBDDVD, test "$HAVE_LIBDDVD" = "yes")
+
+AC_CHECK_LIB([dl], [dlopen], [LIBDL_LIBS="-ldl"], [AC_MSG_ERROR([Could not find libdl])])
+AC_SUBST(LIBDL_LIBS)
+AC_CHECK_LIB([jpeg], [jpeg_set_defaults], [LIBJPEG_LIBS="-ljpeg"], [AC_MSG_ERROR([Could not find libjpeg])])
+AC_SUBST(LIBJPEG_LIBS)
+AC_CHECK_LIB([ungif], [DGifOpen], [LIBGIF_LIBS="-lungif"], [AC_CHECK_LIB([gif], [DGifOpen], [LIBGIF_LIBS="-lgif"], [AC_MSG_ERROR([Could not find libgif or libungif])])])
+AC_SUBST(LIBGIF_LIBS)
+
+AC_LANG_PUSH([C++])
+AC_CHECK_LIB([xmlccwrap], [exit], [LIBXMLCCWRAP_LIBS="-lxmlccwrap"], [AC_MSG_ERROR([Could not find libxmlccwrap])])
+AC_SUBST(LIBXMLCCWRAP_LIBS)
+AC_LANG_POP
AC_ARG_WITH(libsdl,
- AC_HELP_STRING([--with-libsdl], [use sdl, yes or no]),
- [[withsdl=$withval]],
- [[withsdl=yes]]
-)
-
-AC_CHECK_HEADER(dreamdvd/ddvdlib.h,have_ddvdlib="yes",have_ddvdlib="no")
-if test x"${have_ddvdlib}" = xyes ; then
- AC_DEFINE(HAVE_DDVDLIB, 1,[Define if ddvdlib is available])
-else
- AC_MSG_NOTICE([ddvdlib not found... dont build dvd plugin])
+ AS_HELP_STRING([--with-libsdl],[use libsdl, yes or no]),
+ [with_libsdl=$withval],[with_libsdl=no])
+if test "$with_libsdl" = "yes"; then
+ PKG_CHECK_MODULES(LIBSDL, sdl)
fi
-AM_CONDITIONAL(HAVE_DDVDLIB, test "$have_ddvdlib" = "yes")
+AM_CONDITIONAL(HAVE_LIBSDL, test "$with_libsdl" = "yes")
-AM_PATH_PYTHON()
-AC_PYTHON_DEVEL
-#AM_PATH_XINE(1.1.0,, AC_MSG_ERROR([*** Please install xine-lib (devel) first ***]))
+AC_ARG_WITH(libxine,
+ AS_HELP_STRING([--with-libxine],[use libxine, yes or no]),
+ [with_libxine=$withval],[with_libxine=no])
+if test "$with_libxine" = "yes"; then
+ PKG_CHECK_MODULES(LIBXINE, libxine)
+ AC_DEFINE([WITH_XINE],[1],[Define to 1 if you have libxine])
+fi
+AM_CONDITIONAL(HAVE_LIBXINE, test "$with_libxine" = "yes")
-TUXBOX_APPS_DVB
+AC_ARG_WITH(debug,
+ AS_HELP_STRING([--without-debug],[disable debugging code]),
+ [with_debug="$withval"],[with_debug="yes"])
+if test "$with_debug" = "yes"; then
+ DEBUG_CFLAGS="-ggdb3"
+ AC_DEFINE([DEBUG],[1],[Define to 1 to enable debugging code])
+fi
-_TUXBOX_APPS_LIB_PKGCONFIG_OPTIONAL(FREETYPE, freetype2, HAVE_FREETYPE2)
-if test "$HAVE_FREETYPE2" = "no" ; then
- TUXBOX_APPS_LIB_CONFIG(FREETYPE, freetype-config)
+AC_ARG_WITH(memcheck,
+ AS_HELP_STRING([--with-memcheck],[enable memory leak checks]),
+ [with_memcheck="$withval"],[with_memcheck="no"])
+if test "$with_memcheck" = "yes"; then
+ AC_DEFINE([MEMLEAK_CHECK],[1],[Define to 1 to enable memory leak checks])
fi
-TUXBOX_APPS_LIB_PKGCONFIG(FRIBIDI,fribidi)
-TUXBOX_APPS_LIB_PKGCONFIG(ID3TAG,id3tag)
-TUXBOX_APPS_LIB_PKGCONFIG(MAD,mad)
-#TUXBOX_APPS_LIB_PKGCONFIG(PLUGINS,tuxbox-plugins)
-TUXBOX_APPS_LIB_PKGCONFIG(PNG,libpng)
-TUXBOX_APPS_LIB_PKGCONFIG(SIGC,sigc++-1.2)
-TUXBOX_APPS_LIB_PKGCONFIG(DVBSI,libdvbsi++)
-_TUXBOX_APPS_LIB_PKGCONFIG_OPTIONAL(GSTREAMER,gstreamer,HAVE_GSTREAMER)
-_TUXBOX_APPS_LIB_PKGCONFIG_OPTIONAL(GSTREAMERPBUTILS,gstreamer-pbutils,HAVE_GSTSTREAMERPBUTILS)
-_TUXBOX_APPS_LIB_PKGCONFIG_OPTIONAL(LIBXINE,libxine,HAVE_LIBXINE)
-AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
-JPEG_LIBS="-ljpeg"
-AC_SUBST(JPEG_LIBS)
-
-AC_SUBST(LIBUNGIF_LIBS,"")
-AC_CHECK_HEADERS(gif_lib.h,
- AC_CHECK_LIB(ungif,DGifOpen,
- [AC_DEFINE(HAVE_LIBUNGIF,1,[Define if you have libgif/libungif including devel headers])
- LIBUNGIF_LIBS="-lungif"],
- [AC_CHECK_LIB(gif,DGifOpen,
- [AC_DEFINE(HAVE_LIUNBGIF,1)
- LIBUNGIF_LIBS="-lgif"])]))
-
-TUXBOX_APPS_LIB_PKGCONFIG(XML2,libxml-2.0)
-
-# ok, we are in trouble: XMLCCWRAP only defines C++ symbols. So let's just check if linking works,
-# and assume everything will be ok. Then just check for the "exit" symbol, which should be always there.
-AC_LANG_SAVE
-AC_LANG_CPLUSPLUS
-TUXBOX_APPS_LIB_SYMBOL(XMLCCWRAP, xmlccwrap, exit)
-AC_LANG_RESTORE
-
-if test "$withsdl" = "yes" ; then
- _TUXBOX_APPS_LIB_PKGCONFIG_OPTIONAL(SDL,sdl,WITH_SDL)
- if test "$WITH_SDL" = "no" ; then
- TUXBOX_APPS_LIB_CONFIG(SDL,sdl-config)
- AC_DEFINE_UNQUOTED([WITH_SDL],[$withsdl],[With SDL])
+
+AC_ARG_WITH(po,
+ AS_HELP_STRING([--with-po],[enable updating of po files]),
+ [with_po="$withval"],[with_po="no"])
+if test "$with_po" = "yes"; then
+ AC_PATH_PROG(MSGINIT, msginit)
+ AC_PATH_PROG(MSGMERGE, msgmerge)
+ AC_PATH_PROG(MSGUNIQ, msguniq)
+ AC_PATH_PROG(XGETTEXT, xgettext)
+ if test -z "$MSGINIT" -o -z "$MSGMERGE" -o -z "$MSGUNIQ" -o -z "$XGETTEXT"; then
+ AC_MSG_ERROR([Could not find required gettext tools])
fi
fi
-# allow 'if WITH_SDL' conditionals in Makefile.am
-AM_CONDITIONAL(WITH_SDL, test "$WITH_SDL" = "yes")
+AM_CONDITIONAL(UPDATE_PO, test "$with_po" = "yes")
-CPPFLAGS="$CPPFLAGS "'-I$(top_srcdir)'
-CPPFLAGS="$CPPFLAGS -D_REENTRANT $PYTHON_CPPFLAGS $MD5SUM_CFLAGS $FREETYPE_CFLAGS $FRIBIDI_CFLAGS $ID3TAG_CFLAGS $MAD_CFLAGS $PLUGINS_CFLAGS $PNG_CFLAGS $SDL_CFLAGS $SIGC_CFLAGS $XMLTREE_CFLAGS $DVBSI_CFLAGS $GSTREAMER_CFLAGS $GSTREAMERPBUTILS_CFLAGS $LIBXINE_CFLAGS $LIBUNGIF_CFLAGS"
-#CPPFLAGS="$CPPFLAGS -DMEMLEAK_CHECK"
-CXXFLAGS="$CXXFLAGS -fno-rtti -fno-exceptions -Wall"
-LDFLAGS="$LDFLAGS -pthread $PYTHON_LDFLAGS $SDL_LDFLAGS $GSTREAMER_LDFLAGS $GSTREAMERPBUTILS_LDFLAGS $LIBXINE_LDFLAGS $LIBUNGIF_LDFLAGS"
-#LDFLAGS="-rdynamic $LDFLAGS"
+ENIGMA2_CFLAGS="-fno-rtti -fno-exceptions"
+AC_SUBST(ENIGMA2_CFLAGS)
-TUXBOX_APPS_GETTEXT
+CPPFLAGS="$CPPFLAGS $PYTHON_CPPFLAGS"
+CFLAGS="$CFLAGS $DEBUG_CFLAGS -Wall"
+CXXFLAGS="$CXXFLAGS $DEBUG_CFLAGS -Wall $BASE_CFLAGS $ENIGMA2_CFLAGS $PTHREAD_CFLAGS"
-AC_OUTPUT([
+AC_CONFIG_FILES([
Makefile
data/Makefile
data/fonts/Makefile
data/defaults/Dream/hdbouquets/Makefile
data/defaults/Dream/sdbouquets/Makefile
data/extensions/Makefile
+data/keymaps/Makefile
data/skin_default/Makefile
data/skin_default/menu/Makefile
data/skin_default/icons/Makefile
lib/Makefile
lib/actions/Makefile
lib/base/Makefile
+lib/base/eenv.cpp
lib/driver/Makefile
lib/dvb/Makefile
lib/dvb/lowlevel/Makefile
po/Makefile
main/Makefile
tools/Makefile
+tools/enigma2.sh
enigma2.pc
])
-
-#lib/python/Plugins/Extensions/SimpleRSS/Makefile
-#lib/python/Plugins/Extensions/FileManager/Makefile
+AC_OUTPUT
-SUBDIRS = countries fonts defaults extensions skin_default
+SUBDIRS = countries fonts defaults extensions keymaps skin_default
dist_pkgdata_DATA = \
defaultsatlists.xml \
bouquets.tv \
dm800se.info \
dm500hd.info \
+ dm7020hd.info \
dm7025.info \
dm8000.info \
dm800.info \
settings.800se \
settings.500hd \
+ settings.7020hd \
settings.7025 \
settings.800 \
- settings.8000
+ settings.8000 \
+ settings.c \
+ settings.t
<satellite type="192" />
</prerequisites>
</file-->
- <file type="favourites" directory="" name="bouquets.tv" />
- <file type="favourites" directory="hdbouquets/" name="userbouquet.favourites.tv" />
+ <file type="favourites" directory="" name="bouquets.tv">
+ <prerequisites>
+ <bcastsystem type="DVB-S" />
+ <!--satellite type="192" /-->
+ </prerequisites>
+ </file>
+ <file type="favourites" directory="hdbouquets/" name="userbouquet.favourites.tv">
+ <prerequisites>
+ <bcastsystem type="DVB-S" />
+ <!--satellite type="192" /-->
+ </prerequisites>
+ </file>
+ <file type="config" name="settings.c">
+ <prerequisites>
+ <bcastsystem type="DVB-C" />
+ </prerequisites>
+ </file>
+ <file type="config" name="settings.t">
+ <prerequisites>
+ <bcastsystem type="DVB-T" />
+ </prerequisites>
+ </file>
<!--file type="package" directory="packages/" name="small-test_1.0_mipsel.ipk" /-->
</files>
</default>
--- /dev/null
+<default>
+ <prerequisites>
+ <!-- hardware can occur more than once -->
+ <hardware type="dm7020hd" />
+ </prerequisites>
+
+ <info>
+ <author>Dream Multimedia GmbH</author>
+ <name>Dream Multimedia Default</name>
+ </info>
+
+ <!-- available types: "directories" -->
+ <files type="directories">
+ <!--file type="skin" directory="test_skin/" flag="default" name="Default Skin" /-->
+ <file type="config" name="settings.7020hd" />
+ <!--file type="services" name="lamedb.192">
+ <prerequisites>
+ <bcastsystem type="DVB-S" />
+ <satellite type="192" />
+ </prerequisites>
+ </file-->
+ <file type="favourites" directory="" name="bouquets.tv">
+ <prerequisites>
+ <bcastsystem type="DVB-S" />
+ <!--satellite type="192" /-->
+ </prerequisites>
+ </file>
+ <file type="favourites" directory="hdbouquets/" name="userbouquet.favourites.tv">
+ <prerequisites>
+ <bcastsystem type="DVB-S" />
+ <!--satellite type="192" /-->
+ </prerequisites>
+ </file>
+ <file type="config" name="settings.c">
+ <prerequisites>
+ <bcastsystem type="DVB-C" />
+ </prerequisites>
+ </file>
+ <file type="config" name="settings.t">
+ <prerequisites>
+ <bcastsystem type="DVB-T" />
+ </prerequisites>
+ </file>
+ <!--file type="package" directory="packages/" name="small-test_1.0_mipsel.ipk" /-->
+ </files>
+</default>
<satellite type="192" />
</prerequisites>
</file-->
- <file type="favourites" directory="" name="bouquets.tv" />
- <file type="favourites" directory="sdbouquets/" name="userbouquet.favourites.tv" />
+ <file type="favourites" directory="" name="bouquets.tv">
+ <prerequisites>
+ <bcastsystem type="DVB-S" />
+ <!--satellite type="192" /-->
+ </prerequisites>
+ </file>
+ <file type="favourites" directory="sdbouquets/" name="userbouquet.favourites.tv">
+ <prerequisites>
+ <bcastsystem type="DVB-S" />
+ <!--satellite type="192" /-->
+ </prerequisites>
+ </file>
+ <file type="config" name="settings.c">
+ <prerequisites>
+ <bcastsystem type="DVB-C" />
+ </prerequisites>
+ </file>
+ <file type="config" name="settings.t">
+ <prerequisites>
+ <bcastsystem type="DVB-T" />
+ </prerequisites>
+ </file>
<!--file type="package" directory="packages/" name="small-test_1.0_mipsel.ipk" /-->
</files>
</default>
<satellite type="192" />
</prerequisites>
</file-->
- <file type="favourites" directory="" name="bouquets.tv" />
- <file type="favourites" directory="hdbouquets/" name="userbouquet.favourites.tv" />
+ <file type="favourites" directory="" name="bouquets.tv">
+ <prerequisites>
+ <bcastsystem type="DVB-S" />
+ <!--satellite type="192" /-->
+ </prerequisites>
+ </file>
+ <file type="favourites" directory="hdbouquets/" name="userbouquet.favourites.tv">
+ <prerequisites>
+ <bcastsystem type="DVB-S" />
+ <!--satellite type="192" /-->
+ </prerequisites>
+ </file>
+ <file type="config" name="settings.c">
+ <prerequisites>
+ <bcastsystem type="DVB-C" />
+ </prerequisites>
+ </file>
+ <file type="config" name="settings.t">
+ <prerequisites>
+ <bcastsystem type="DVB-T" />
+ </prerequisites>
+ </file>
<!--file type="package" directory="packages/" name="small-test_1.0_mipsel.ipk" /-->
</files>
</default>
<satellite type="192" />
</prerequisites>
</file-->
- <file type="favourites" directory="" name="bouquets.tv" />
- <file type="favourites" directory="hdbouquets/" name="userbouquet.favourites.tv" />
+ <file type="favourites" directory="" name="bouquets.tv">
+ <prerequisites>
+ <bcastsystem type="DVB-S" />
+ <!--satellite type="192" /-->
+ </prerequisites>
+ </file>
+ <file type="favourites" directory="hdbouquets/" name="userbouquet.favourites.tv">
+ <prerequisites>
+ <bcastsystem type="DVB-S" />
+ <!--satellite type="192" /-->
+ </prerequisites>
+ </file>
+ <file type="config" name="settings.c">
+ <prerequisites>
+ <bcastsystem type="DVB-C" />
+ </prerequisites>
+ </file>
+ <file type="config" name="settings.t">
+ <prerequisites>
+ <bcastsystem type="DVB-T" />
+ </prerequisites>
+ </file>
<!--file type="package" directory="packages/" name="small-test_1.0_mipsel.ipk" /-->
</files>
</default>
<satellite type="192" />
</prerequisites>
</file-->
- <file type="favourites" directory="" name="bouquets.tv" />
- <file type="favourites" directory="hdbouquets/" name="userbouquet.favourites.tv" />
+ <file type="favourites" directory="" name="bouquets.tv">
+ <prerequisites>
+ <bcastsystem type="DVB-S" />
+ <!--satellite type="192" /-->
+ </prerequisites>
+ </file>
+ <file type="favourites" directory="hdbouquets/" name="userbouquet.favourites.tv">
+ <prerequisites>
+ <bcastsystem type="DVB-S" />
+ <!--satellite type="192" /-->
+ </prerequisites>
+ </file>
+ <file type="config" name="settings.c">
+ <prerequisites>
+ <bcastsystem type="DVB-C" />
+ </prerequisites>
+ </file>
+ <file type="config" name="settings.t">
+ <prerequisites>
+ <bcastsystem type="DVB-T" />
+ </prerequisites>
+ </file>
<!--file type="package" directory="packages/" name="small-test_1.0_mipsel.ipk" /-->
</files>
</default>
--- /dev/null
+config.misc.rcused=1
\ No newline at end of file
--- /dev/null
+config.tv.lastroot=1:7:1:0:0:0:0:0:0:0:(type == 1) || (type == 17) || (type == 22) || (type == 25) || (type == 134) || (type == 195) ORDER BY name;
--- /dev/null
+config.tv.lastroot=1:7:1:0:0:0:0:0:0:0:(type == 1) || (type == 17) || (type == 22) || (type == 25) || (type == 134) || (type == 195) ORDER BY name;
self.disableKeys = True
</code>
</step>
- <step id="nopackages" nextstep="finisheddefaultsatlists">
+
+ <!--step id="nopackages" nextstep="finisheddefaultsatlists"-->
+ <step id="nopackages" nextstep="scanquestion">
<text value="There are no default services lists in your image." />
</step>
- <step id="nothingtoinstall" nextstep="finisheddefaultsatlists">
+ <!--step id="nothingtoinstall" nextstep="finisheddefaultsatlists"-->
+ <step id="nothingtoinstall" nextstep="scanquestion">
<condition>
if self.runWizard:
self.condition = True
pol ISO8859-2
rus ISO8859-5
bul ISO8859-5
+tha ISO8859-11
cze ISO6397
ces ISO6397
slo ISO6397
0xc95 0x3 # Astra 23.5°E 12.109 H - SkyLink
0xbc6 0x3 # Astra 23.5°E 12.525 V - CS Link / SkyLink
0xbc7 0x3 # Astra 23.5°E 12.565 H - SkyLink
+200 318 #Hotbird Eutelsat (Eurosport)
+300 318 #Hotbird Eutelsat (Eurosport, Animal Pl.HD)
400 318 #Hotbird 13.0 Cyfra+
1000 318 #Hotbird 13.0 Grupa ITI
1500 318 #Hotbird 13.0 Cyfra+
1600 318 #Hotbird 13.0 Cyfra+
+2800 318 #Hotbird 13.0 MTV Networks (Comedy Central)
7400 113 #Hotbird 13.0 Cyfrowy Polsat
7800 113 #Hotbird 13.0 Cyfrowy Polsat
7900 113 #Hotbird 13.0 Cyfrowy Polsat
8100 113 #Hotbird 13.0 Universal (Cyfra+)
+8100 318 #Hotbird 13.0 Eutelsat (Universal)
11000 318 #Hotbird 13.0 Cyfra+
11400 318 #Hotbird 13.0 Cyfra+
+11600 318 #Hotbird 13.0 BBC HD, ITI
+11700 318 #Hotbird 13.0 Eurosport2
11900 318 #Hotbird 13.0 Cyfra+
12200 318 #Hotbird 13.0 Disney Channel Polska and other
12800 318 #Hotbird 13.0 Viacom ... MTV / VH1 Polska
13000 318 #Hotbird 13.0 BBC Polska and other
+13100 318 #Hotbird 13.0 Crime and Investigation
13200 113 #Hotbird 13.0 Cyfrowy Polsat
#Fallback encoding table for single transponders
#ISO6397 also enables two byte char encoding
#TSID ONID ISO8859-X
-12800 318 ISO6397 #Viacom ... MTV / VH1 Polska
+#12800 318 ISO6397 #Viacom ... MTV / VH1 Polska
21100 126 ISO8859-9 # Digital Platform 7°E 10.928 H 30.000 2/3 8PSK
41200 126 ISO8859-9 # Digital Platform 7°E 11.451 V 25.066 2/3
50100 126 ISO8859-9 # Digital Platform 7°E 11.471 H 30.000 3/4
-installdir = $(FONTDIR)
+installdir = $(datadir)/fonts
dist_install_DATA = \
ae_AlMateen.ttf \
lcd.ttf \
md_khmurabi_10.ttf \
- nmsbd.ttf
+ nmsbd.ttf \
+ tuxtxt.ttf
<device name="Console">
<key id="KEY_ASCII" mapto="gotAsciiCode" flags="mr" />
</device>
+ <device name="SDL">
+ <key id="KEY_ASCII" mapto="gotAsciiCode" flags="mr" />
+ </device>
</map>
<map context="InputBoxActions">
<map context="InfobarMenuActions">
<key id="KEY_MENU" mapto="mainMenu" flags="mr" />
+ <key id="KEY_SPACE" mapto="mainMenu" flags="mr" />
</map>
<map context="MenuActions">
<key id="KEY_MENU" mapto="menu" flags="mr" />
+ <key id="KEY_SPACE" mapto="menu" flags="mr" />
</map>
<map context="InfobarShowHideActions">
<map context="MovieSelectionActions">
<key id="KEY_MENU" mapto="contextMenu" flags="m" />
+ <key id="KEY_SPACE" mapto="contextMenu" flags="m" />
<key id="KEY_INFO" mapto="showEventInfo" flags="m" />
</map>
<map context="ChannelSelectEditActions">
<key id="KEY_MENU" mapto="contextMenu" flags="m" />
+ <key id="KEY_SPACE" mapto="contextMenu" flags="m" />
</map>
<map context="TvRadioActions">
</device>
<key id="KEY_MENU" mapto="menu" flags="m" />
+ <key id="KEY_SPACE" mapto="menu" flags="m" />
<key id="KEY_2" mapto="skipListbegin" flags="m" />
<key id="KEY_8" mapto="skipListend" flags="m" />
--- /dev/null
+keymapsdir = $(datadir)/keymaps
+keymaps_DATA = \
+ dream-de.info \
+ dream-de.kmap \
+ eng.info \
+ eng.kmap
--- /dev/null
+kmap=dream-de.kmap
+name=Dreambox Keyboard Deutsch
--- /dev/null
+kmap=eng.kmap
+name=Keyboard English
<item level="1" text="Alternative radio mode">config.usage.e1like_radio_mode</item>
<item level="1" text="Action on long powerbutton press">config.usage.on_long_powerpress</item>
<item level="1" text="Action on short powerbutton press">config.usage.on_short_powerpress</item>
+ <item level="1" text="Position of finished Timers in Timerlist">config.usage.timerlist_finished_timer_position</item>
<item level="0" text="Infobar timeout">config.usage.infobar_timeout</item>
<item level="1" text="12V output" requires="12V_Output">config.usage.output_12V</item>
<item level="0" text="Show event-progress in channel selection">config.usage.show_event_progress_in_servicelist</item>
<item level="2" text="Fast Forward speeds">config.seek.speeds_forward</item>
<item level="2" text="Rewind speeds">config.seek.speeds_backward</item>
<item level="2" text="Slow Motion speeds">config.seek.speeds_slowmotion</item>
-<!-- TRANSLATORS: Note that "Enter" in the two strings below should *not*
- be interpreted as "Give speed as input". The intended meaning is
- instead "Initial speed when starting winding", i.e. the speed at
- which "winding mode" is entered when first pressing "rewind" or
- "fast forward". -->
- <item level="2" text="Enter Fast Forward at speed">config.seek.enter_forward</item>
- <item level="2" text="Enter Rewind at speed">config.seek.enter_backward</item>
-<!-- TRANSLATORS: The effect of "Non-smooth winding" is that rather
- than using ordinary "continuous" or "smooth" winding, a fast
- sequence of stills is shown when winding at high speeds. This
- makes it much easier too follow when almost each frame comes from
- a new scene. The effect is achieved by repeating each shown frame
- a couple of times. The settings control both at which speed this
- winding mode sets in, and how many times each frame should be
- repeated. This was previously called "Discontinuous playback"
- which was incomprehensible. "Non-smooth winding" may be a better
- term, but note that there is nothing irregular about it. Synonyms
- better suited for translation to other languages may be "stepwise
- winding/playback", or "winding/playback using stills". -->
- <item level="2" text="Use non-smooth winding at speeds above">config.seek.stepwise_minspeed</item>
- <item level="2" text="Frame repeat count during non-smooth winding">config.seek.stepwise_repeat</item>
+<!-- TRANSLATORS: The following is the speed you get on the first press on fast-forward.
+ It was previously called "enter fast forward at speed" which was easily misunderstood. -->
+ <item level="2" text="Initial Fast Forward speed">config.seek.enter_forward</item>
+ <item level="2" text="Initial Rewind speed">config.seek.enter_backward</item>
<item level="2" text="Behavior of 'pause' when paused">config.seek.on_pause</item>
<item level="2" text="Behavior of 0 key in PiP-mode">config.usage.pip_zero_button</item>
<item level="2" text="Alternative services tuner priority">config.usage.alternatives_priority</item>
<pixmap pos="bpBottomRight" filename="skin_default/b_br.png" />
</borderset>
</windowstyle>
- <!-- Main screen colors (id=1 LCD) -->
- <windowstyle type="skinned" id="1">
- <color name="Background" color="#000000" />
- <color name="LabelForeground" color="#ffffff" />
- <color name="ListboxBackground" color="#000000" />
- <color name="ListboxForeground" color="#ffffff" />
- <color name="ListboxSelectedBackground" color="#000000" />
- <color name="ListboxSelectedForeground" color="#ffffff" />
- <color name="ListboxMarkedBackground" color="#000000" />
- <color name="ListboxMarkedForeground" color="#ffffff" />
- <color name="ListboxMarkedAndSelectedBackground" color="#000000" />
- <color name="ListboxMarkedAndSelectedForeground" color="#ffffff" />
- <color name="WindowTitleForeground" color="#ffffff" />
- <color name="WindowTitleBackground" color="#000000" />
- </windowstyle>
- <windowstyle type="skinned" id="2">
- <color name="Background" color="#000000" />
- <color name="LabelForeground" color="#ffffff" />
- <color name="ListboxBackground" color="#000000" />
- <color name="ListboxForeground" color="#ffffff" />
- <color name="ListboxSelectedBackground" color="#000000" />
- <color name="ListboxSelectedForeground" color="#ffffff" />
- <color name="ListboxMarkedBackground" color="#000000" />
- <color name="ListboxMarkedForeground" color="#ffffff" />
- <color name="ListboxMarkedAndSelectedBackground" color="#000000" />
- <color name="ListboxMarkedAndSelectedForeground" color="#ffffff" />
- <color name="WindowTitleForeground" color="#ffffff" />
- <color name="WindowTitleBackground" color="#000000" />
- </windowstyle>
<!-- Fonts -->
<fonts>
<!-- <font filename="md_khmurabi_10.ttf" name="Regular" scale="90" /> -->
<skin>
+ <!-- Main screen colors (id=1 LCD) -->
+ <windowstyle type="skinned" id="1">
+ <color name="Background" color="#000000" />
+ <color name="LabelForeground" color="#ffffff" />
+ <color name="ListboxBackground" color="#000000" />
+ <color name="ListboxForeground" color="#ffffff" />
+ <color name="ListboxSelectedBackground" color="#000000" />
+ <color name="ListboxSelectedForeground" color="#ffffff" />
+ <color name="ListboxMarkedBackground" color="#000000" />
+ <color name="ListboxMarkedForeground" color="#ffffff" />
+ <color name="ListboxMarkedAndSelectedBackground" color="#000000" />
+ <color name="ListboxMarkedAndSelectedForeground" color="#ffffff" />
+ <color name="WindowTitleForeground" color="#ffffff" />
+ <color name="WindowTitleBackground" color="#000000" />
+ </windowstyle>
+ <!-- Main screen colors (id=2 Color OLED (dm800se)) -->
+ <windowstyle type="skinned" id="2">
+ <color name="Background" color="#000000" />
+ <color name="LabelForeground" color="#ffffff" />
+ <color name="ListboxBackground" color="#000000" />
+ <color name="ListboxForeground" color="#ffffff" />
+ <color name="ListboxSelectedBackground" color="#000000" />
+ <color name="ListboxSelectedForeground" color="#ffffff" />
+ <color name="ListboxMarkedBackground" color="#000000" />
+ <color name="ListboxMarkedForeground" color="#ffffff" />
+ <color name="ListboxMarkedAndSelectedBackground" color="#000000" />
+ <color name="ListboxMarkedAndSelectedForeground" color="#ffffff" />
+ <color name="WindowTitleForeground" color="#ffffff" />
+ <color name="WindowTitleBackground" color="#000000" />
+ </windowstyle>
+ <fonts>
+ <font filename="nmsbd.ttf" name="Display" scale="90"/>
+ </fonts>
<!-- Screwed Stone II skin (skin_default.xml) /Nemesis -->
<!-- About screen -->
<screen name="About" position="center,center" size="420,350" title="About">
<!-- LCD screen (channelselection) -->
<screen name="ChannelSelection_summary" position="0,0" size="132,64" id="1">
- <widget source="parent.ServiceEvent" render="Label" position="6,0" size="120,25" font="Regular;14" halign="center" valign="center" >
+ <widget source="parent.ServiceEvent" render="Label" position="6,0" size="120,25" font="Display;14" halign="center" valign="center" >
<convert type="ServiceName">Name</convert>
</widget>
<widget source="parent.ServiceEvent" render="Progress" position="16,27" size="100,5" borderWidth="1">
<convert type="EventTime">Progress</convert>
</widget>
- <widget source="global.CurrentTime" render="Label" position="6,32" size="90,32" font="Regular;32" halign="right" valign="top">
+ <widget source="global.CurrentTime" render="Label" position="6,32" size="90,32" font="Display;32" halign="right" valign="top">
<convert type="ClockToText">Format:%H:%M</convert>
</widget>
- <widget source="global.CurrentTime" render="Label" position="100,34" zPosition="1" size="26,30" font="Regular;16" valign="top">
+ <widget source="global.CurrentTime" render="Label" position="100,34" zPosition="1" size="26,30" font="Display;16" valign="top">
<convert type="ClockToText">Format:%S</convert>
</widget>
</screen>
<!-- Color OLED screen (ChannelSelection) -->
<screen name="ChannelSelection_summary" position="0,0" size="96,64" id="2">
- <widget source="parent.ServiceEvent" render="Label" position="0,0" size="96,28" font="Regular;16" halign="center" valign="center" >
+ <widget source="parent.ServiceEvent" render="Label" position="0,0" size="96,28" font="Display;16" halign="center" valign="center" >
<convert type="ServiceName">Name</convert>
</widget>
<widget source="session.Event_Now" render="Progress" position="0,30" size="96,8" borderWidth="1" backgroundColor="dark">
<convert type="EventTime">Progress</convert>
</widget>
- <widget source="global.CurrentTime" render="Label" position="0,38" size="96,26" font="Regular;32" halign="center" valign="center" foregroundColor="#FFFFFF" backgroundColor="#000000" >
+ <widget source="global.CurrentTime" render="Label" position="0,38" size="96,26" font="Display;32" halign="center" valign="center" foregroundColor="#FFFFFF" backgroundColor="#000000" >
<convert type="ClockToText">Format:%H:%M</convert>
</widget>
</screen>
<!-- LCD screen (main) -->
<screen name="InfoBarSummary" position="0,0" size="132,64" id="1">
- <widget source="session.CurrentService" render="Label" position="6,0" size="120,25" font="Regular;14" halign="center" valign="center" >
+ <widget source="session.CurrentService" render="Label" position="6,0" size="120,25" font="Display;14" halign="center" valign="center" >
<convert type="ServiceName">Name</convert>
</widget>
<widget source="session.Event_Now" render="Progress" position="16,27" size="100,5" borderWidth="1">
<convert type="EventTime">Progress</convert>
</widget>
- <widget source="global.CurrentTime" render="Label" position="6,32" size="90,32" font="Regular;32" halign="right" valign="top">
+ <widget source="global.CurrentTime" render="Label" position="6,32" size="90,32" font="Display;32" halign="right" valign="top">
<convert type="ClockToText">Format:%H:%M</convert>
</widget>
- <widget source="global.CurrentTime" render="Label" position="100,34" zPosition="1" size="26,30" font="Regular;16" valign="top">
+ <widget source="global.CurrentTime" render="Label" position="100,34" zPosition="1" size="26,30" font="Display;16" valign="top">
<convert type="ClockToText">Format:%S</convert>
</widget>
- <widget source="session.RecordState" render="FixedLabel" text=" " position="6,30" zPosition="1" size="120,34">
+ <widget source="session.RecordState" render="FixedLabel" text=" " position="6,32" zPosition="1" size="126,32">
<convert type="ConfigEntryTest">config.usage.blinking_display_clock_during_recording,True,CheckSourceBoolean</convert>
<convert type="ConditionalShowHide">Blink</convert>
</widget>
</screen>
<!-- Color OLED screen (main) -->
<screen name="InfoBarSummary" position="0,0" size="96,64" id="2">
- <widget source="session.CurrentService" render="Label" position="0,0" size="96,28" font="Regular;16" halign="center" valign="center" >
+ <widget source="session.CurrentService" render="Label" position="0,0" size="96,28" font="Display;16" halign="center" valign="center" >
<convert type="ServiceName">Name</convert>
</widget>
<widget source="session.Event_Now" render="Progress" position="0,30" size="96,8" borderWidth="1" backgroundColor="dark">
<convert type="EventTime">Progress</convert>
</widget>
- <widget source="global.CurrentTime" render="Label" position="0,38" size="96,26" font="Regular;32" halign="center" valign="center" foregroundColor="#FFFFFF" backgroundColor="#000000" >
+ <widget source="global.CurrentTime" render="Label" position="0,38" size="96,26" font="Display;32" halign="center" valign="center" foregroundColor="#FFFFFF" backgroundColor="#000000" >
<convert type="ClockToText">Format:%H:%M</convert>
</widget>
- <widget source="session.RecordState" render="FixedLabel" text=" " position="0,38" zPosition="1" size="96,30">
+ <widget source="session.RecordState" render="FixedLabel" text=" " position="0,38" zPosition="1" size="96,26">
<convert type="ConfigEntryTest">config.usage.blinking_display_clock_during_recording,True,CheckSourceBoolean</convert>
<convert type="ConditionalShowHide">Blink</convert>
</widget>
</screen>
<!-- LCD screen (movieplayer) -->
<screen name="InfoBarMoviePlayerSummary" position="0,0" size="132,64" id="1">
- <widget source="session.CurrentService" render="Label" position="6,0" size="120,25" font="Regular;14" halign="center" valign="center" >
+ <widget source="session.CurrentService" render="Label" position="6,0" size="120,25" font="Display;14" halign="center" valign="center" >
<convert type="ServiceName">Name</convert>
</widget>
<widget source="session.CurrentService" render="Progress" position="16,27" size="100,5" borderWidth="1">
<convert type="ServicePosition">Position</convert>
</widget>
- <widget source="global.CurrentTime" render="Label" position="6,32" size="120,32" font="Regular;32" halign="center" valign="center">
+ <widget source="global.CurrentTime" render="Label" position="6,32" size="120,32" font="Display;32" halign="center" valign="center">
<convert type="ClockToText">Format:%H:%M</convert>
</widget>
<widget source="session.RecordState" render="FixedLabel" text=" " position="6,32" zPosition="1" size="120,32">
</screen>
<!-- Color OLED screen (movieplayer) -->
<screen name="InfoBarMoviePlayerSummary" position="0,0" size="96,64" id="2">
- <widget source="session.CurrentService" render="Label" position="0,0" size="96,28" font="Regular;16" halign="center" valign="center" >
+ <widget source="session.CurrentService" render="Label" position="0,0" size="96,28" font="Display;16" halign="center" valign="center" >
<convert type="ServiceName">Name</convert>
</widget>
<widget source="session.Event_Now" render="Progress" position="0,30" size="96,8" borderWidth="1" backgroundColor="dark">
<convert type="EventTime">Progress</convert>
</widget>
- <widget source="global.CurrentTime" render="Label" position="0,38" size="96,26" font="Regular;32" halign="center" valign="center" foregroundColor="#FFFFFF" backgroundColor="#000000" >
+ <widget source="global.CurrentTime" render="Label" position="0,38" size="96,26" font="Display;32" halign="center" valign="center" foregroundColor="#FFFFFF" backgroundColor="#000000" >
<convert type="ClockToText">Format:%H:%M</convert>
</widget>
- <widget source="session.RecordState" render="FixedLabel" text=" " position="0,38" zPosition="1" size="96,30">
+ <widget source="session.RecordState" render="FixedLabel" text=" " position="0,38" zPosition="1" size="96,26">
<convert type="ConfigEntryTest">config.usage.blinking_display_clock_during_recording,True,CheckSourceBoolean</convert>
<convert type="ConditionalShowHide">Blink</convert>
</widget>
</screen>
<!-- LCD screen (ChoiceBox) -->
<screen name="ChoiceBox_summary" position="0,0" size="132,64" id="1">
- <widget source="parent.summary_list" render="Label" position="6,0" size="126,64" font="Regular;11" />
+ <widget source="parent.summary_list" render="Label" position="6,0" size="126,64" font="Display;11" />
</screen>
<!-- Color OLED screen (ChoiceBox) -->
<screen name="ChoiceBox_summary" position="0,0" size="96,64" id="2">
- <widget source="parent.summary_list" render="Label" position="0,0" size="96,64" font="Regular;10" />
+ <widget source="parent.summary_list" render="Label" position="0,0" size="96,64" font="Display;10" />
</screen>
<!-- LCD screen (MessageBox) -->
<screen name="MessageBox_summary" position="0,0" size="132,64" id="1">
- <widget source="parent.Text" render="Label" position="0,0" size="132,52" font="Regular;11" halign="center" valign="center" />
- <widget source="parent.selectedChoice" render="Label" position="6,50" size="120,14" font="Regular;14" halign="center" valign="center" />
+ <widget source="parent.Text" render="Label" position="0,0" size="132,52" font="Display;11" halign="center" valign="center" />
+ <widget source="parent.selectedChoice" render="Label" position="6,50" size="120,14" font="Display;14" halign="center" valign="center" />
</screen>
<!-- Color OLED screen (MessageBox) -->
<screen name="MessageBox_summary" position="0,0" size="96,64" id="2">
- <widget source="parent.Text" render="Label" position="0,0" size="96,52" font="Regular;10" halign="center" valign="center" />
- <widget source="parent.selectedChoice" render="Label" position="0,50" size="96,14" font="Regular;12" halign="center" valign="center" />
+ <widget source="parent.Text" render="Label" position="0,0" size="96,52" font="Display;10" halign="center" valign="center" />
+ <widget source="parent.selectedChoice" render="Label" position="0,50" size="96,14" font="Display;12" halign="center" valign="center" />
</screen>
<!-- LCD screen (menus) -->
<screen name="MenuSummary" position="0,0" size="132,64" id="1">
- <widget source="parent.title" render="Label" position="6,0" size="120,32" font="Regular;14" halign="center" valign="center"/>
- <widget source="parent.menu" render="Label" position="6,32" size="120,32" font="Regular;16" halign="center" valign="center">
+ <widget source="parent.title" render="Label" position="6,0" size="120,32" font="Display;14" halign="center" valign="center"/>
+ <widget source="parent.menu" render="Label" position="6,32" size="120,32" font="Display;16" halign="center" valign="center">
<convert type="StringListSelection" />
</widget>
</screen>
<!-- Color OLED screen (menus) -->
<screen name="MenuSummary" position="0,0" size="96,64" id="2">
- <widget source="parent.title" render="Label" position="0,0" size="96,32" font="Regular;15" halign="center" valign="center"/>
- <widget source="parent.menu" render="Label" position="0,32" size="96,32" font="Regular;16" halign="center" valign="top">
+ <widget source="parent.title" render="Label" position="0,0" size="96,32" font="Display;15" halign="center" valign="center"/>
+ <widget source="parent.menu" render="Label" position="0,32" size="96,32" font="Display;16" halign="center" valign="top">
<convert type="StringListSelection" />
</widget>
</screen>
<!-- LCD screen (ServiceScan) -->
<screen name="ServiceScanSummary" position="0,0" size="132,64" id="1">
- <widget name="Title" position="6,4" size="120,42" font="Regular;16" transparent="1" />
- <widget name="Service" position="6,22" size="120,26" font="Regular;12" transparent="1" />
+ <widget name="Title" position="6,4" size="120,42" font="Display;16" transparent="1" />
+ <widget name="Service" position="6,22" size="120,26" font="Display;12" transparent="1" />
<widget name="scan_progress" position="6,50" zPosition="1" borderWidth="1" size="56,12" backgroundColor="dark" />
</screen>
<!-- Color OLED screen (ServiceScan) -->
<screen name="ServiceScanSummary" position="0,0" size="96,64" id="2">
- <widget name="Title" position="0,0" size="96,30" font="Regular;14" transparent="1" />
- <widget name="Service" position="0,30" size="96,20" font="Regular;10" transparent="1" />
+ <widget name="Title" position="0,0" size="96,30" font="Display;14" transparent="1" />
+ <widget name="Service" position="0,30" size="96,20" font="Display;10" transparent="1" />
<widget name="scan_progress" position="0,50" zPosition="1" borderWidth="1" size="96,12" backgroundColor="dark" />
</screen>
<!-- LCD screen (setup) -->
<screen name="SetupSummary" position="0,0" size="132,64" id="1">
- <widget source="SetupTitle" render="Label" position="6,0" size="120,16" font="Regular;12" />
- <widget source="SetupEntry" render="Label" position="6,16" size="120,32" font="Regular;12" />
- <widget source="SetupValue" render="Label" position="6,48" size="120,16" font="Regular;12" />
+ <widget source="SetupTitle" render="Label" position="6,0" size="120,24" halign="left" font="Display;12" />
+ <widget source="SetupEntry" render="Label" position="6,24" size="120,24" halign="center" font="Display;12" />
+ <widget source="SetupValue" render="Label" position="6,48" size="120,16" halign="right" font="Display;12" />
</screen>
<!-- Color OLED screen (setup) -->
<screen name="SetupSummary" position="0,0" size="96,64" id="2">
- <widget source="SetupTitle" render="Label" position="0,0" size="96,16" font="Regular;10" />
- <widget source="SetupEntry" render="Label" position="0,16" size="96,32" font="Regular;10" />
- <widget source="SetupValue" render="Label" position="0,48" size="96,16" font="Regular;10" />
+ <widget source="SetupTitle" render="Label" position="0,0" size="96,24" halign="left" font="Display;10" />
+ <widget source="SetupEntry" render="Label" position="0,24" size="96,24" halign="center" font="Display;10" />
+ <widget source="SetupValue" render="Label" position="0,48" size="96,16" halign="right" font="Display;10" />
</screen>
<!-- LCD screen (misc) -->
<screen name="SimpleSummary" position="0,0" size="132,64" id="1">
- <widget source="parent.Title" render="Label" position="6,0" size="120,64" font="Regular;16" halign="center" valign="center" />
+ <widget source="parent.Title" render="Label" position="6,0" size="120,64" font="Display;16" halign="center" valign="center" />
</screen>
<!-- Color OLED screen (misc) -->
<screen name="SimpleSummary" position="0,0" size="96,64" id="2">
- <widget source="parent.Title" render="Label" position="0,0" size="96,64" font="Regular;14" halign="center" valign="center" />
+ <widget source="parent.Title" render="Label" position="0,0" size="96,64" font="Display;14" halign="center" valign="center" />
</screen>
<!-- LCD screen (standby) -->
<screen name="StandbySummary" position="0,0" size="132,64" id="1">
- <widget source="global.CurrentTime" render="Label" position="6,0" size="120,64" font="Regular;40" halign="center" valign="center">
+ <widget source="global.CurrentTime" render="Label" position="6,0" size="120,64" font="Display;40" halign="center" valign="center">
<convert type="ClockToText">Format:%H:%M</convert>
</widget>
<widget source="session.RecordState" render="FixedLabel" position="6,0" zPosition="1" size="120,64" text=" ">
</screen>
<!-- Color OLED screen (standby) -->
<screen name="StandbySummary" position="0,0" size="96,64" id="2">
- <widget source="global.CurrentTime" render="Label" position="0,0" size="96,64" font="Regular;38" halign="center" valign="center">
+ <widget source="global.CurrentTime" render="Label" position="0,0" size="96,64" font="Display;38" halign="center" valign="center">
<convert type="ClockToText">Format:%H:%M</convert>
</widget>
<widget source="session.RecordState" render="FixedLabel" position="0,0" zPosition="1" size="96,64" text=" ">
</screen>
<!-- LCD screen (JobView) -->
<screen name="JobView_summary" position="0,0" size="132,64" id="1">
- <widget source="parent.summary_job_name" render="Label" position="6,4" size="120,42" font="Regular;16" />
- <widget source="parent.summary_job_task" render="Label" position="6,22" size="120,26" font="Regular;12" />
+ <widget source="parent.summary_job_name" render="Label" position="6,4" size="120,42" font="Display;16" />
+ <widget source="parent.summary_job_task" render="Label" position="6,22" size="120,26" font="Display;12" />
<widget source="parent.summary_job_progress" render="Progress" position="6,50" size="60,12" borderWidth="1" zPosition="1" />
- <widget source="parent.summary_job_progress" render="Label" position="66,50" size="50,12" font="Regular;12" zPosition="2" halign="center" transparent="1" >
+ <widget source="parent.summary_job_progress" render="Label" position="66,50" size="50,12" font="Display;12" zPosition="2" halign="center" transparent="1" >
<convert type="ProgressToText" />
</widget>
</screen>
<!-- Color OLED screen (JobView) -->
<screen name="JobView_summary" position="0,0" size="96,64" id="2">
- <widget source="parent.summary_job_name" render="Label" position="0,4" size="96,42" font="Regular;14" />
- <widget source="parent.summary_job_task" render="Label" position="0,22" size="96,26" font="Regular;10" />
+ <widget source="parent.summary_job_name" render="Label" position="0,4" size="96,42" font="Display;14" />
+ <widget source="parent.summary_job_task" render="Label" position="0,22" size="96,26" font="Display;10" />
<widget source="parent.summary_job_progress" render="Progress" position="0,50" size="60,12" borderWidth="1" zPosition="1" />
- <widget source="parent.summary_job_progress" render="Label" position="60,50" size="36,12" font="Regular;10" zPosition="2" halign="center" transparent="1" >
+ <widget source="parent.summary_job_progress" render="Label" position="60,50" size="36,12" font="Display;10" zPosition="2" halign="center" transparent="1" >
<convert type="ProgressToText" />
</widget>
</screen>
<!-- LCD screen (Wizard) -->
<screen name="WizardSummary" position="0,0" size="132,64" id="1">
- <widget source="text" render="Label" position="6,0" size="120,16" font="Regular;16" transparent="1" />
- <widget source="parent.list" render="Label" position="6,18" size="120,46" font="Regular;12">
+ <widget source="text" render="Label" position="6,0" size="120,16" font="Display;16" transparent="1" />
+ <widget source="parent.list" render="Label" position="6,18" size="120,46" font="Display;12">
<convert type="StringListSelection" />
</widget>
</screen>
<!-- Color OLED screen (Wizard) -->
<screen name="WizardSummary" position="0,0" size="96,64" id="2">
- <widget source="text" render="Label" position="0,0" size="96,16" font="Regular;14" transparent="1" />
- <widget source="parent.list" render="Label" position="0,18" size="96,46" font="Regular;12">
+ <widget source="text" render="Label" position="0,0" size="96,16" font="Display;14" transparent="1" />
+ <widget source="parent.list" render="Label" position="0,18" size="96,46" font="Display;12">
<convert type="StringListSelection" />
</widget>
</screen>
mp_buttons.png \
network_wired.png \
network_wired-active.png \
- network_wired-inactive.png \
+ network_wired-inactive.png \
network_wireless.png \
network_wireless-active.png \
- network_wireless-inactive.png \
+ network_wireless-inactive.png \
plugin.png \
rass_logo.png \
rass_page1.png \
+++ /dev/null
-#!/bin/sh
-
-/home/dump/tmb/oe-mono/build/tmp/work/gdb-cross-6.3-r0/install/gdb-cross/usr/local/mipsel/oe/bin/mipsel-linux-gdb main/enigma2 -x debug.gdb
-
+++ /dev/null
-set solib-absolute-prefix /home/tmbinc/mips/target
-target remote 10.0.0.203:1234
-continue
--- /dev/null
+DESCRIPTION = "Enigma2 is an experimental, but useful framebuffer-based frontend for DVB functions"
+DESCRIPTION_append_enigma2-plugin-extensions-cutlisteditor = "enables you to cut your movies."
+DESCRIPTION_append_enigma2-plugin-extensions-graphmultiepg = "shows a graphical timeline EPG."
+DESCRIPTION_append_enigma2-plugin-extensions-pictureplayer = "displays photos on the TV."
+DESCRIPTION_append_enigma2-plugin-systemplugins-frontprocessorupdate = "keeps your frontprocessor up to date."
+DESCRIPTION_append_enigma2-plugin-systemplugins-positionersetup = "helps you installing a motorized dish."
+DESCRIPTION_append_enigma2-plugin-systemplugins-satelliteequipmentcontrol = "allows you to fine-tune DiSEqC-settings."
+DESCRIPTION_append_enigma2-plugin-systemplugins-satfinder = "helps you to align your dish."
+DESCRIPTION_append_enigma2-plugin-systemplugins-skinselector = "shows a menu with selectable skins."
+DESCRIPTION_append_enigma2-plugin-systemplugins-videomode = "selects advanced video modes"
+DESCRIPTION_append_enigma2-plugin-systemplugins-crashlogautosubmit = "automatically send crashlogs to Dream Multimedia"
+DESCRIPTION_append_enigma2-plugin-systemplugins-cleanupwizard = "informs you on low internal memory on system startup."
+DESCRIPTION_append_enigma2-plugin-extenstions-modem = "opens a menu to connect to internet via builtin modem."
+DESCRIPTION_append_enigma2-plugin-systemplugins-wirelesslan = "helps you configuring your wireless lan"
+DESCRIPTION_append_enigma2-plugin-systemplugins-networkwizard = "provides easy step by step network configuration"
+
+DEPENDS = "jpeg libungif libpng libsigc++-1.2 gettext-native \
+ dreambox-dvbincludes freetype libdvbsi++ python swig-native \
+ libfribidi libxmlccwrap libdreamdvd gstreamer gst-plugin-dvbmediasink \
+ gst-plugins-bad gst-plugins-good gst-plugins-ugly python-wifi"
+
+RDEPENDS = "python-codecs python-core python-lang python-re python-threading \
+ python-xml python-fcntl gst-plugin-decodebin gst-plugin-decodebin2 python-stringold \
+ python-pickle gst-plugin-app \
+ gst-plugin-id3demux gst-plugin-mad gst-plugin-ogg gst-plugin-playbin \
+ gst-plugin-typefindfunctions gst-plugin-audioconvert gst-plugin-audioresample \
+ gst-plugin-wavparse python-netclient gst-plugin-mpegstream gst-plugin-selector \
+ gst-plugin-flac gst-plugin-dvbmediasink gst-plugin-mpegdemux \
+ gst-plugin-souphttpsrc gst-plugin-mpegaudioparse gst-plugin-subparse \
+ gst-plugin-apetag gst-plugin-icydemux gst-plugin-autodetect \
+ glibc-gconv-iso8859-15 ethtool"
+
+GST_ALSA_RDEPENDS = "gst-plugin-alsa alsa-conf"
+GST_DVD_RDEPENDS = "gst-plugin-cdxaparse gst-plugin-cdio gst-plugin-vcdsrc"
+GST_MISC_RDEPENDS = "gst-plugin-matroska gst-plugin-qtdemux gst-plugin-vorbis gst-plugin-audioparsersbad"
+GST_RTSP_RDEPENDS = "gst-plugin-udp gst-plugin-rtsp gst-plugin-rtp gst-plugin-rtpmanager"
+GST_BASE_RDEPENDS = "${GST_ALSA_RDEPENDS} ${GST_MISC_RDEPENDS} ${GST_RTSP_RDEPENDS}"
+
+RDEPENDS_append_dm800 = " ${GST_BASE_RDEPENDS} gst-plugin-ivorbisdec"
+RDEPENDS_append_dm8000 = " ${GST_BASE_RDEPENDS} ${GST_DVD_RDEPENDS} gst-plugin-avi"
+RDEPENDS_append_dm500hd = " ${GST_BASE_RDEPENDS} ${GST_DVD_RDEPENDS} gst-plugin-avi"
+RDEPENDS_append_dm800se = " ${GST_BASE_RDEPENDS} ${GST_DVD_RDEPENDS} gst-plugin-avi"
+
+RDEPENDS_enigma2-plugin-extensions-cutlisteditor = "aio-grab"
+RDEPENDS_enigma2-plugin-extensions-dvdplayer = "libdreamdvd0"
+RDEPENDS_enigma2-plugin-systemplugins-nfiflash = "python-twisted-web"
+RDEPENDS_enigma2-plugin-systemplugins-softwaremanager = "python-twisted-web"
+RDEPENDS_enigma2-plugin-systemplugins-crashlogautosubmit = "twisted-mail twisted-names python-compression python-mime python-email"
+RDEPENDS_enigma2-plugin-extensions-modem = "dreambox-modem-ppp-scripts ppp"
+RDEPENDS_enigma2-plugin-systemplugins-wirelesslan = "wpa-supplicant wireless-tools python-wifi"
+
+RCONFLICTS_enigma2-plugin-systemplugins-softwaremanager = "enigma2-plugin-systemplugins-configurationbackup enigma2-plugin-systemplugins-softwareupdate"
+RREPLACES_enigma2-plugin-systemplugins-softwaremanager = "enigma2-plugin-systemplugins-configurationbackup enigma2-plugin-systemplugins-softwareupdate"
+
+PV = "${GITVER}"
+
+inherit srctree autotools gitver pkgconfig
+
+EXTRA_OECONF = " \
+ BUILD_SYS=${BUILD_SYS} \
+ HOST_SYS=${HOST_SYS} \
+ STAGING_INCDIR=${STAGING_INCDIR} \
+ STAGING_LIBDIR=${STAGING_LIBDIR} \
+"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+PACKAGES += "${PN}-meta"
+
+FILES_${PN} += "${datadir}/fonts"
+FILES_${PN}-meta = "${datadir}/meta"
+
+python populate_packages_prepend () {
+ enigma2_plugindir = bb.data.expand('${libdir}/enigma2/python/Plugins', d)
+ do_split_packages(d, enigma2_plugindir, '(.*?/.*?)/.*', 'enigma2-plugin-%s', '%s ', recursive=True, match_path=True, prepend=True)
+}
Name: enigma2
Description: Enigma2
Version: @VERSION@
-Libs:
-Cflags: -I${includedir}/enigma2
+Cflags: -I${includedir}/enigma2 @ENIGMA2_CFLAGS@
+Requires.private: sigc++-1.2
-EXTRA_DIST = \
+pkginclude_HEADERS = \
connection.h \
libsig_comp.h
--- /dev/null
+actionids.h
-INCLUDES = \
- -I$(top_srcdir)/include
+AM_CPPFLAGS = \
+ -I$(top_builddir) \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/include \
+ -include Python.h \
+ -include $(top_builddir)/enigma2_config.h
+
+EXTRA_DIST = parseactions.py
noinst_LIBRARIES = libenigma_actions.a
libenigma_actions_a_SOURCES = \
- action.cpp
+ action.cpp
-CLEANFILES = actionids.h
+actionsincludedir = $(pkgincludedir)/lib/actions
+actionsinclude_HEADERS = \
+ action.h
-action.cpp: actionids.h
+nodist_actionsinclude_HEADERS = \
+ actionids.h
+
+BUILT_SOURCES = actionids.h
+CLEANFILES = actionids.h
-actionids.h:
- python ./parseactions.py include ../gui/*.h > actionids.h
- python ./parseactions.py parse ../gui/*.h >> actionids.h
+actionids.h: $(srcdir)/parseactions.py $(top_srcdir)/lib/gui/*.h
+ $(AM_V_GEN)$(PYTHON) $(srcdir)/parseactions.py include $(top_srcdir)/lib/gui/*.h > $@
+ $(AM_V_at)$(PYTHON) $(srcdir)/parseactions.py parse $(top_srcdir)/lib/gui/*.h >> $@
#include <lib/base/object.h>
- /* avoid warnigs :) */
-#include <features.h>
-#undef _POSIX_C_SOURCE
-#define _POSIX_C_SOURCE 200112L
#include <lib/python/python.h>
#include <string>
#include <map>
if mode == "include":
# hack hack hack!!
- print "#include <lib" + f[2:] + ">"
+ print "#include <lib/" + '/'.join(f.split('/')[-2:]) + ">"
else:
print "\t// " + f
-INCLUDES = \
- -I$(top_srcdir)/include
+AM_CPPFLAGS = \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/include \
+ -include Python.h \
+ -include $(top_builddir)/enigma2_config.h
noinst_LIBRARIES = libenigma_base.a
libenigma_base_a_SOURCES = \
- buffer.cpp ebase.cpp eerror.cpp elock.cpp \
- init.cpp message.cpp thread.cpp \
- smartptr.cpp estring.cpp connection.cpp \
- filepush.cpp encoding.cpp console.cpp rawfile.cpp \
- nconfig.cpp ioprio.cpp etpm.cpp
+ buffer.cpp \
+ connection.cpp \
+ console.cpp \
+ ebase.cpp \
+ eenv.cpp \
+ eerror.cpp \
+ elock.cpp \
+ encoding.cpp \
+ estring.cpp \
+ etpm.cpp \
+ filepush.cpp \
+ init.cpp \
+ ioprio.cpp \
+ message.cpp \
+ nconfig.cpp \
+ rawfile.cpp \
+ smartptr.cpp \
+ thread.cpp
+EXTRA_DIST = \
+ eenv.cpp.in
+
+baseincludedir = $(pkgincludedir)/lib/base
+baseinclude_HEADERS = \
+ buffer.h \
+ console.h \
+ ebase.h \
+ eenv.h \
+ eerror.h \
+ elock.h \
+ encoding.h \
+ eptrlist.h \
+ estring.h \
+ etpm.h \
+ filepush.h \
+ i18n.h \
+ itssource.h \
+ init.h \
+ init_num.h \
+ ioprio.h \
+ message.h \
+ nconfig.h \
+ object.h \
+ rawfile.h \
+ ringbuffer.h \
+ smartptr.h \
+ thread.h
int ret = -1;
Py_ssize_t argc = PyTuple_Size(args);
if (argc > 1)
- ret = PyArg_ParseTuple(args, "si", &data, &len);
+ ret = !PyArg_ParseTuple(args, "si", &data, &len);
else if (argc == 1)
{
PyObject *ob;
#ifndef __LIB_BASE_CONSOLE_H__
#define __LIB_BASE_CONSOLE_H__
-#include "Python.h"
#include <string>
#include <lib/base/ebase.h>
#include <lib/python/connections.h>
--- /dev/null
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+#include <wordexp.h>
+#include <lib/base/eenv.h>
+#include <lib/base/eerror.h>
+
+bool eEnv::initialized = false;
+
+void eEnv::initialize()
+{
+ static const struct {
+ std::string name;
+ std::string value;
+ } cfgenv[] = {
+ { "prefix", "@prefix@" },
+ { "exec_prefix", "@exec_prefix@" },
+ { "bindir", "@bindir@" },
+ { "sbindir", "@sbindir@" },
+ { "libexecdir", "@libexecdir@" },
+ { "datarootdir", "@datarootdir@" },
+ { "datadir", "@datadir@" },
+ { "sysconfdir", "@sysconfdir@" },
+ { "sharedstatedir", "@sharedstatedir@" },
+ { "localstatedir", "@localstatedir@" },
+ { "libdir", "@libdir@" },
+ { "localedir", "@localedir@" },
+ };
+ size_t i;
+
+ // 1st pass, as generated by configure.
+ // Variables set by the user will not be overwritten.
+ for (i = 0; i < (sizeof(cfgenv) / sizeof(*cfgenv)); i++) {
+ eDebug("setenv('%s', '%s', 0)", cfgenv[i].name.c_str(), cfgenv[i].value.c_str());
+ setenv(cfgenv[i].name.c_str(), cfgenv[i].value.c_str(), 0);
+ }
+
+ // 2nd pass: Resolve directories.
+ for (i = 0; i < (sizeof(cfgenv) / sizeof(*cfgenv)); i++) {
+ std::string dest;
+ eEnv::resolveVar(dest, "${" + cfgenv[i].name + "}");
+ eDebug("setenv('%s', '%s', 1)", cfgenv[i].name.c_str(), dest.c_str());
+ setenv(cfgenv[i].name.c_str(), dest.c_str(), 1);
+ }
+}
+
+int eEnv::resolveVar(std::string &dest, const char *src)
+{
+ size_t i = 0;
+ int ret;
+ wordexp_t p;
+
+ ret = wordexp(src, &p, WRDE_NOCMD | WRDE_UNDEF);
+ if (ret != 0) {
+ switch (ret) {
+ case WRDE_BADCHAR:
+ eDebug("%s: bad character", __func__);
+ break;
+ case WRDE_BADVAL:
+ eDebug("%s: bad value", __func__);
+ break;
+ case WRDE_CMDSUB:
+ eDebug("%s: invalid command substitution", __func__);
+ break;
+ case WRDE_NOSPACE:
+ eDebug("%s: out of memory", __func__);
+ break;
+ case WRDE_SYNTAX:
+ eDebug("%s: syntax error", __func__);
+ break;
+ default:
+ eDebug("%s: unknown error", __func__);
+ break;
+ }
+
+ return -1;
+ }
+
+ while (i < p.we_wordc) {
+ if (strchr(p.we_wordv[i], '$')) {
+ ret = eEnv::resolveVar(dest, p.we_wordv[i]);
+ if (ret < 0)
+ break;
+ } else {
+ dest.append(p.we_wordv[i]);
+ }
+
+ if (++i < p.we_wordc)
+ dest.append(" ");
+ }
+
+ wordfree(&p);
+ return ret;
+}
+
+int eEnv::resolveVar(std::string &dest, const std::string &src)
+{
+ return eEnv::resolveVar(dest, src.c_str());
+}
+
+std::string eEnv::resolve(const std::string &src)
+{
+ std::string dest;
+
+ if (!initialized) {
+ eEnv::initialize();
+ initialized = true;
+ }
+
+ eDebug("%s: resolve %s", __func__, src.c_str());
+
+ eEnv::resolveVar(dest, src);
+
+ eDebug("%s: -> %s", __func__, dest.c_str());
+
+ return dest;
+}
--- /dev/null
+#ifndef __lib_base_paths_h
+#define __lib_base_paths_h
+
+#include <string>
+
+class eEnv {
+private:
+ static bool initialized;
+ static void initialize();
+ static int resolveVar(std::string &dest, const char *src);
+ static int resolveVar(std::string &dest, const std::string &src);
+public:
+ static std::string resolve(const std::string &path);
+};
+
+#endif
#include <cstdlib>
#include <lib/base/encoding.h>
#include <lib/base/eerror.h>
+#include <lib/base/eenv.h>
eDVBTextEncodingHandler encodingHandler; // the one and only instance
eDVBTextEncodingHandler::eDVBTextEncodingHandler()
{
- const char * file=DATADIR "/enigma2/encoding.conf";
- FILE *f = fopen(file, "rt");
+ std::string file = eEnv::resolve("${datadir}/enigma2/encoding.conf");
+ FILE *f = fopen(file.c_str(), "rt");
if (f)
{
char *line = (char*) malloc(256);
free(line);
}
else
- eDebug("[eDVBTextEncodingHandler] couldn't open %s !", file);
+ eDebug("[eDVBTextEncodingHandler] couldn't open %s !", file.c_str());
}
void eDVBTextEncodingHandler::getTransponderDefaultMapping(int tsidonid, int &table)
{
setIoPrio(prio_class, prio);
- off_t dest_pos = 0, source_pos = 0;
+ off_t dest_pos = 0;
size_t bytes_read = 0;
off_t current_span_offset = 0;
sigaction(SIGUSR1, &act, 0);
hasStarted();
-
- source_pos = m_raw_source.lseek(0, SEEK_CUR);
-
+
/* m_stop must be evaluated after each syscall. */
while (!m_stop)
{
if (m_sg && !current_span_remaining)
{
- m_sg->getNextSourceSpan(source_pos, bytes_read, current_span_offset, current_span_remaining);
+ m_sg->getNextSourceSpan(m_current_position, bytes_read, current_span_offset, current_span_remaining);
ASSERT(!(current_span_remaining % m_blocksize));
-
- if (source_pos != current_span_offset)
- source_pos = m_raw_source.lseek(current_span_offset, SEEK_SET);
+ m_current_position = current_span_offset;
bytes_read = 0;
}
-
+
size_t maxread = sizeof(m_buffer);
/* if we have a source span, don't read past the end */
m_buf_start = 0;
m_filter_end = 0;
m_buf_end = 0;
-
+
if (maxread)
- m_buf_end = m_raw_source.read(m_buffer, maxread);
+ m_buf_end = m_source->read(m_current_position, m_buffer, maxread);
if (m_buf_end < 0)
{
/* a read might be mis-aligned in case of a short read. */
int d = m_buf_end % m_blocksize;
if (d)
- {
- m_raw_source.lseek(-d, SEEK_CUR);
m_buf_end -= d;
- }
if (m_buf_end == 0)
{
sleep(1);
continue;
}
-#if 0
- eDebug("FILEPUSH: end-of-file! (currently unhandled)");
- if (!m_raw_source.lseek(0, SEEK_SET))
- {
- eDebug("(looping)");
- continue;
- }
-#endif
break;
} else
{
- source_pos += m_buf_end;
+ m_current_position += m_buf_end;
bytes_read += m_buf_end;
if (m_sg)
current_span_remaining -= m_buf_end;
eDebug("FILEPUSH THREAD STOP");
}
-void eFilePushThread::start(int fd_source, int fd_dest)
+void eFilePushThread::start(int fd, int fd_dest)
{
- m_raw_source.setfd(fd_source);
- m_fd_dest = fd_dest;
- resume();
+ eRawFile *f = new eRawFile();
+ ePtr<iTsSource> source = f;
+ f->setfd(fd);
+ start(source, fd_dest);
}
-int eFilePushThread::start(const char *filename, int fd_dest)
+int eFilePushThread::start(const char *file, int fd_dest)
{
- if (m_raw_source.open(filename) < 0)
+ eRawFile *f = new eRawFile();
+ ePtr<iTsSource> source = f;
+ if (f->open(file) < 0)
return -1;
+ start(source, fd_dest);
+ return 0;
+}
+
+void eFilePushThread::start(ePtr<iTsSource> &source, int fd_dest)
+{
+ m_source = source;
m_fd_dest = fd_dest;
+ m_current_position = 0;
resume();
- return 0;
}
void eFilePushThread::stop()
stop();
}
-void eFilePushThread::seek(int whence, off_t where)
-{
- m_raw_source.lseek(where, whence);
-}
-
void eFilePushThread::resume()
{
m_stop = 0;
void stop();
void start(int sourcefd, int destfd);
int start(const char *filename, int destfd);
-
+
+ void start(ePtr<iTsSource> &source, int destfd);
+
void pause();
- void seek(int whence, off_t where);
void resume();
/* flushes the internal readbuffer */
int m_send_pvr_commit;
int m_stream_mode;
int m_blocksize;
+ off_t m_current_position;
+
+ ePtr<iTsSource> m_source;
- eRawFile m_raw_source;
-
eFixedMessagePump<int> m_messagepump;
-
+
void recvEvent(const int &evt);
};
--- /dev/null
+#ifndef __lib_base_idatasource_h
+#define __lib_base_idatasource_h
+
+#include <lib/base/object.h>
+
+class iTsSource: public iObject
+{
+public:
+ /* NOTE: should only be used to get current position or filelength */
+ virtual off_t lseek(off_t offset, int whence)=0;
+
+ /* NOTE: you must be able to handle short reads! */
+ virtual ssize_t read(off_t offset, void *buf, size_t count)=0; /* NOTE: this is what you in normal case have to use!! */
+
+ virtual off_t length()=0;
+ virtual int valid()=0;
+};
+
+#endif
#include <lib/base/rawfile.h>
#include <lib/base/eerror.h>
+DEFINE_REF(eRawFile);
+
eRawFile::eRawFile()
+ :m_lock(false)
{
m_fd = -1;
m_file = 0;
off_t eRawFile::lseek(off_t offset, int whence)
{
+ eSingleLocker l(m_lock);
+ m_current_offset = lseek_internal(offset, whence);
+ return m_current_offset;
+}
+
+off_t eRawFile::lseek_internal(off_t offset, int whence)
+{
// eDebug("lseek: %lld, %d", offset, whence);
/* if there is only one file, use the native lseek - the file could be growing! */
if (m_nrfiles < 2)
return ::lseek(m_fd, offset, whence);
else
{
- ::fseeko(m_file, offset, whence);
+ if (::fseeko(m_file, offset, whence) < 0)
+ perror("fseeko");
return ::ftello(m_file);
}
}
}
}
-ssize_t eRawFile::read(void *buf, size_t count)
+ssize_t eRawFile::read(off_t offset, void *buf, size_t count)
{
-// eDebug("read: %p, %d", buf, count);
+ eSingleLocker l(m_lock);
+
+ if (offset != m_current_offset)
+ {
+ m_current_offset = lseek_internal(offset, SEEK_SET);
+ if (m_current_offset < 0)
+ return m_current_offset;
+ }
+
switchOffset(m_current_offset);
-
+
if (m_nrfiles >= 2)
{
if (m_current_offset + count > m_totallength)
#define __lib_base_rawfile_h
#include <string>
+#include <lib/base/itssource.h>
-class eRawFile
+class eRawFile: public iTsSource
{
+ DECLARE_REF(eRawFile);
+ eSingleLock m_lock;
public:
eRawFile();
~eRawFile();
-
int open(const char *filename, int cached = 0);
void setfd(int fd);
- off_t lseek(off_t offset, int whence);
int close();
- ssize_t read(void *buf, size_t count); /* NOTE: you must be able to handle short reads! */
+
+ // iTsSource
+ off_t lseek(off_t offset, int whence);
+ ssize_t read(off_t offset, void *buf, size_t count);
off_t length();
int valid();
private:
int m_fd; /* for uncached */
FILE *m_file; /* for cached */
-
int m_cached;
std::string m_basename;
off_t m_splitsize, m_totallength, m_current_offset, m_base_offset, m_last_offset;
void scan();
int m_current_file;
int switchOffset(off_t off);
+
+ off_t lseek_internal(off_t offset, int whence);
FILE *openFileCached(int nr);
int openFileUncached(int nr);
};
-INCLUDES = \
- -I$(top_srcdir)/include
+AM_CPPFLAGS = \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/include \
+ -include Python.h \
+ -include $(top_builddir)/enigma2_config.h
noinst_LIBRARIES = libenigma_components.a
-libenigma_components_a_SOURCES = scan.cpp file_eraser.cpp
+libenigma_components_a_SOURCES = \
+ file_eraser.cpp \
+ scan.cpp
+
+componentsincludedir = $(pkgincludedir)/lib/components
+componentsinclude_HEADERS = \
+ file_eraser.h \
+ scan.h
-INCLUDES = \
- -I$(top_srcdir)/include
+AM_CPPFLAGS = \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/include \
+ -include Python.h \
+ -include $(top_builddir)/enigma2_config.h
+
+AM_CXXFLAGS = \
+ $(LIBSDL_CFLAGS)
noinst_LIBRARIES = libenigma_driver.a
libenigma_driver_a_SOURCES = \
- rc.cpp rcinput.cpp rcconsole.cpp avswitch.cpp rfmod.cpp etimezone.cpp misc_options.cpp
+ avswitch.cpp \
+ etimezone.cpp \
+ misc_options.cpp \
+ rc.cpp \
+ rcconsole.cpp \
+ rcinput.cpp \
+ rfmod.cpp
+
+driverincludedir = $(pkgincludedir)/lib/driver
+driverinclude_HEADERS = \
+ avswitch.h \
+ etimezone.h \
+ input_fake.h \
+ misc_options.h \
+ rc.h \
+ rcconsole.h \
+ rcdbox.h \
+ rcdreambox2.h \
+ rcinput.h \
+ rfmod.h
+
+if HAVE_LIBSDL
+libenigma_driver_a_SOURCES += \
+ rcsdl.cpp \
+ rcsdl.h
+endif
#include <stdio.h>
#include <fcntl.h>
-eRCConsoleDriver::eRCConsoleDriver(const char *filename): eRCDriver(eRCInput::getInstance())
+eRCConsoleDriver::eRCConsoleDriver(const char *filename): eRCDriver(eRCInput::getInstance()), m_escape(false)
{
handle=open(filename, O_RDONLY|O_NONBLOCK);
if (handle<0)
unsigned char data[16];
unsigned char *d = data;
int num = read(handle, data, 16);
- int code=-1;
+ unsigned char code;
int km = input->getKeyboardMode();
while (num--)
{
-// eDebug("console code %08x\n", *d);
- if (km == eRCInput::kmAll)
- code = *d++;
- else
- {
- if (*d == 27) // escape code
- {
- while (num)
- {
- num--;
- if (*++d != '[')
- break;
- }
- code = -1;
- } else
- code = *d;
- ++d;
-
- if (code < 32) /* control characters */
- code = -1;
- else switch(code)
- {
- case 0x7E: // mute, einfg, entf
- case 0x7F: // backspace
- code = -1;
- default:
- break;
+ code = *d++;
+// eDebug("console code %02x\n", code);
+ if (km == eRCInput::kmAscii) {
+ if (m_escape) {
+ if (code != '[')
+ m_escape = false;
+ continue;
}
+
+ if (code == 27) // escape code
+ m_escape = true;
+
+ if ((code < 32) || // control characters
+ (code == 0x7e) || // mute, einfg, entf
+ (code == 0x7f)) // backspace
+ continue;
}
- if (code != -1)
- for (std::list<eRCDevice*>::iterator i(listeners.begin()); i!=listeners.end(); ++i)
- {
-// eDebug("ascii %08x", code);
- (*i)->handleCode(code);
- }
+ for (std::list<eRCDevice*>::iterator i(listeners.begin()); i!=listeners.end(); ++i)
+ {
+// eDebug("ascii %02x", code);
+ (*i)->handleCode(code);
+ }
}
}
eRCConsoleDriver driver;
eRCConsole device;
public:
- eRCConsoleInit(): driver("/dev/vc/0"), device(&driver)
+ eRCConsoleInit(): driver("/dev/tty0"), device(&driver)
{
}
};
protected:
int handle;
ePtr<eSocketNotifier> sn;
+ bool m_escape;
void keyPressed(int);
public:
eRCConsoleDriver(const char *filename);
--- /dev/null
+#include <lib/base/etrace.h>
+#include <lib/driver/rcsdl.h>
+//#include <lib/actions/action.h>
+#include <lib/base/init.h>
+#include <lib/base/init_num.h>
+#include <lib/driver/input_fake.h>
+
+/*
+ * eSDLInputDevice
+ */
+
+eSDLInputDevice::eSDLInputDevice(eRCDriver *driver) : eRCDevice("SDL", driver), m_escape(false), m_unicode(0)
+{
+}
+
+eSDLInputDevice::~eSDLInputDevice()
+{
+}
+
+void eSDLInputDevice::handleCode(long arg)
+{
+ D_ENTER();
+
+ const SDL_KeyboardEvent *event = (const SDL_KeyboardEvent *)arg;
+ const SDL_keysym *key = &event->keysym;
+ int km = input->getKeyboardMode();
+ int code, flags;
+
+ if (event->type == SDL_KEYDOWN) {
+ m_unicode = key->unicode;
+ flags = eRCKey::flagMake;
+ } else {
+ flags = eRCKey::flagBreak;
+ }
+
+ if (km == eRCInput::kmNone) {
+ code = translateKey(key->sym);
+ D_PRINT("translated code: %d", code);
+ } else {
+ code = m_unicode;
+ D_PRINT("native virtual code: %d / sym: %d", code, key->sym);
+ if ((code == 0) && (key->sym < 128)) {
+ code = key->sym;
+ D_PRINT("ASCII code: %u", code);
+ }
+
+ if ((km == eRCInput::kmAscii) &&
+ ((code < SDLK_SPACE) ||
+ (code == 0x7e) ||
+ (code == SDLK_DELETE) ||
+ (code > 255))) {
+ code = translateKey(key->sym);
+ } else {
+ // ASCII keys should only generate key press events
+ if (flags == eRCKey::flagBreak)
+ D_RETURN();
+
+ if (km == eRCInput::kmAscii) {
+ // skip ESC c or ESC '[' c
+ if (m_escape) {
+ if (code != '[')
+ m_escape = false;
+ D_RETURN();
+ }
+ if (code == SDLK_ESCAPE)
+ m_escape = true;
+ }
+ flags |= eRCKey::flagAscii;
+ }
+ }
+
+ D_PRINT("code=%d (%#x) flags=%d (%#x)", code, code, flags, flags);
+ input->keyPressed(eRCKey(this, code, flags));
+ D_RETURN();
+}
+
+const char *eSDLInputDevice::getDescription() const
+{
+ return "SDL";
+}
+
+int eSDLInputDevice::translateKey(SDLKey key)
+{
+ #define P(a) case SDLK_##a: return KEY_##a
+ #define P2(a,b) case SDLK_##a: return KEY_##b
+
+ switch (key) {
+ P(BACKSPACE);
+ P(TAB);
+ P(CLEAR);
+ P2(RETURN,ENTER);
+ P(PAUSE);
+ P2(ESCAPE,ESC);
+ P(SPACE);
+#if 0
+ P(EXCLAIM);
+ P(QUOTEDBL);
+ P(HASH);
+#endif
+ P(DOLLAR);
+#if 0
+ P(AMPERSAND);
+#endif
+ P2(QUOTE,APOSTROPHE);
+#if 0
+ P(LEFTPAREN);
+ P(RIGHTPAREN);
+ P(ASTERISK);
+ P(PLUS);
+#endif
+ P(COMMA);
+ P(MINUS);
+ P2(PERIOD,DOT);
+ P(SLASH);
+ P(0);
+ P(1);
+ P(2);
+ P(3);
+ P(4);
+ P(5);
+ P(6);
+ P(7);
+ P(8);
+ P(9);
+#if 0
+ P(COLON);
+#endif
+ P(SEMICOLON);
+#if 0
+ P(LESS);
+#endif
+ P2(EQUALS,EQUAL);
+#if 0
+ P(GREATER);
+#endif
+ P(QUESTION);
+#if 0
+ P(AT);
+#endif
+ P2(LEFTBRACKET,LEFTBRACE);
+ P(BACKSLASH);
+ P2(RIGHTBRACKET,RIGHTBRACE);
+ P2(CARET,GRAVE);
+#if 0
+ P(UNDERSCORE);
+ P(BACKQUOTE);
+#endif
+ P2(a,A);
+ P2(b,B);
+ P2(c,C);
+ P2(d,D);
+ P2(e,E);
+ P2(f,F);
+ P2(g,G);
+ P2(h,H);
+ P2(i,I);
+ P2(j,J);
+ P2(k,K);
+ P2(l,L);
+ P2(m,M);
+ P2(n,N);
+ P2(o,O);
+ P2(p,P);
+ P2(q,Q);
+ P2(r,R);
+ P2(s,S);
+ P2(t,T);
+ P2(u,U);
+ P2(v,V);
+ P2(w,W);
+ P2(x,X);
+ P2(y,Y);
+ P2(z,Z);
+ P(DELETE);
+#if 0
+ P(WORLD_0);
+ P(WORLD_1);
+ P(WORLD_2);
+ P(WORLD_3);
+ P(WORLD_4);
+ P(WORLD_5);
+ P(WORLD_6);
+ P(WORLD_7);
+ P(WORLD_8);
+ P(WORLD_9);
+ P(WORLD_10);
+ P(WORLD_11);
+ P(WORLD_12);
+ P(WORLD_13);
+ P(WORLD_14);
+ P(WORLD_15);
+ P(WORLD_16);
+ P(WORLD_17);
+ P(WORLD_18);
+ P(WORLD_19);
+ P(WORLD_20);
+ P(WORLD_21);
+ P(WORLD_22);
+ P(WORLD_23);
+ P(WORLD_24);
+ P(WORLD_25);
+ P(WORLD_26);
+ P(WORLD_27);
+ P(WORLD_28);
+ P(WORLD_29);
+ P(WORLD_30);
+ P(WORLD_31);
+ P(WORLD_32);
+ P(WORLD_33);
+ P(WORLD_34);
+ P(WORLD_35);
+ P(WORLD_36);
+ P(WORLD_37);
+ P(WORLD_38);
+ P(WORLD_39);
+ P(WORLD_40);
+ P(WORLD_41);
+ P(WORLD_42);
+ P(WORLD_43);
+ P(WORLD_44);
+ P(WORLD_45);
+ P(WORLD_46);
+ P(WORLD_47);
+ P(WORLD_48);
+ P(WORLD_49);
+ P(WORLD_50);
+ P(WORLD_51);
+ P(WORLD_52);
+ P(WORLD_53);
+ P(WORLD_54);
+ P(WORLD_55);
+ P(WORLD_56);
+ P(WORLD_57);
+ P(WORLD_58);
+ P(WORLD_59);
+ P(WORLD_60);
+ P(WORLD_61);
+ P(WORLD_62);
+ P(WORLD_63);
+ P(WORLD_64);
+ P(WORLD_65);
+ P(WORLD_66);
+ P(WORLD_67);
+ P(WORLD_68);
+ P(WORLD_69);
+ P(WORLD_70);
+ P(WORLD_71);
+ P(WORLD_72);
+ P(WORLD_73);
+ P(WORLD_74);
+ P(WORLD_75);
+ P(WORLD_76);
+ P(WORLD_77);
+ P(WORLD_78);
+ P(WORLD_79);
+ P(WORLD_80);
+ P(WORLD_81);
+ P(WORLD_82);
+ P(WORLD_83);
+ P(WORLD_84);
+ P(WORLD_85);
+ P(WORLD_86);
+ P(WORLD_87);
+ P(WORLD_88);
+ P(WORLD_89);
+ P(WORLD_90);
+ P(WORLD_91);
+ P(WORLD_92);
+ P(WORLD_93);
+ P(WORLD_94);
+ P(WORLD_95);
+#endif
+ P(KP0);
+ P(KP1);
+ P(KP2);
+ P(KP3);
+ P(KP4);
+ P(KP5);
+ P(KP6);
+ P(KP7);
+ P(KP8);
+ P(KP9);
+ P2(KP_PERIOD,KPDOT);
+ P2(KP_DIVIDE,KPSLASH);
+ P2(KP_MULTIPLY,KPASTERISK);
+ P2(KP_MINUS,KPMINUS);
+ P2(KP_PLUS,KPPLUS);
+ P2(KP_ENTER,KPENTER);
+ P2(KP_EQUALS,KPEQUAL);
+ P(UP);
+ P(DOWN);
+ P(RIGHT);
+ P(LEFT);
+ P(INSERT);
+ P(HOME);
+ P(END);
+ P(PAGEUP);
+ P(PAGEDOWN);
+ P(F1);
+ P(F2);
+ P(F3);
+ P(F4);
+ P(F5);
+ P(F6);
+ P(F7);
+ P(F8);
+ P(F9);
+ P(F10);
+ P(F11);
+ P(F12);
+ P(F13);
+ P(F14);
+ P(F15);
+ P(NUMLOCK);
+ P(CAPSLOCK);
+ P2(SCROLLOCK,SCROLLLOCK);
+ P2(RSHIFT,RIGHTSHIFT);
+ P2(LSHIFT,LEFTSHIFT);
+ P2(RCTRL,RIGHTCTRL);
+ P2(LCTRL,LEFTCTRL);
+ P2(RALT,RIGHTALT);
+ P2(LALT,LEFTALT);
+ P2(RMETA,RIGHTMETA);
+ P2(LMETA,LEFTMETA);
+#if 0
+ P(LSUPER);
+ P(RSUPER);
+#endif
+ P(MODE);
+ P(COMPOSE);
+ P(HELP);
+ P(PRINT);
+ P2(SYSREQ,SYSRQ);
+ P(BREAK);
+ P(MENU);
+ P(POWER);
+ P(EURO);
+ P(UNDO);
+ default:
+ eDebug("unhandled SDL keycode: %d", key);
+ return KEY_RESERVED;
+ }
+
+ #undef P2
+ #undef P
+}
+
+/*
+ * eSDLInputDriver
+ */
+
+eSDLInputDriver *eSDLInputDriver::instance;
+
+eSDLInputDriver::eSDLInputDriver() : eRCDriver(eRCInput::getInstance())
+{
+ ASSERT(instance == 0);
+ instance = this;
+}
+
+eSDLInputDriver::~eSDLInputDriver()
+{
+ instance = 0;
+}
+
+void eSDLInputDriver::keyPressed(const SDL_KeyboardEvent *key)
+{
+ eDebug("km=%d enabled=%d locked=%d",
+ input->getKeyboardMode(), enabled, input->islocked());
+
+ if (!enabled || input->islocked())
+ return;
+
+ std::list<eRCDevice*>::iterator i(listeners.begin());
+ while (i != listeners.end()) {
+ (*i)->handleCode((long)key);
+ ++i;
+ }
+}
+
+class eRCSDLInit
+{
+private:
+ eSDLInputDriver driver;
+ eSDLInputDevice device;
+
+public:
+ eRCSDLInit(): driver(), device(&driver)
+ {
+ }
+};
+
+eAutoInitP0<eRCSDLInit> init_rcSDL(eAutoInitNumbers::rc+1, "SDL RC Driver");
--- /dev/null
+#ifndef __lib_driver_rcsdl_h
+#define __lib_driver_rcsdl_h
+
+#include <lib/driver/rc.h>
+
+#include <SDL.h>
+
+class eSDLInputDevice : public eRCDevice
+{
+private:
+ bool m_escape;
+ unsigned int m_unicode;
+ int translateKey(SDLKey key);
+
+public:
+ eSDLInputDevice(eRCDriver *driver);
+ ~eSDLInputDevice();
+
+ virtual void handleCode(long arg);
+ virtual const char *getDescription() const;
+};
+
+class eSDLInputDriver : public eRCDriver
+{
+private:
+ static eSDLInputDriver *instance;
+
+public:
+ eSDLInputDriver();
+ ~eSDLInputDriver();
+
+ static eSDLInputDriver *getInstance() { return instance; }
+
+ void keyPressed(const SDL_KeyboardEvent *key);
+};
+
+#endif
SUBDIRS = lowlevel
-INCLUDES = \
- -I$(top_srcdir)/include
+AM_CPPFLAGS = \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/include \
+ -include Python.h \
+ -include $(top_builddir)/enigma2_config.h
noinst_LIBRARIES = libenigma_dvb.a
-libenigma_dvb_a_SOURCES = dvb.cpp demux.cpp frontend.cpp esection.cpp db.cpp \
- sec.cpp scan.cpp crc32.cpp pmt.cpp decoder.cpp eit.cpp rotor_calc.cpp \
- epgcache.cpp dvbtime.cpp metaparser.cpp volume.cpp tstools.cpp pvrparse.cpp \
- pesparse.cpp teletext.cpp radiotext.cpp subtitle.cpp
+libenigma_dvb_a_SOURCES = \
+ crc32.cpp \
+ db.cpp \
+ decoder.cpp \
+ demux.cpp \
+ dvb.cpp \
+ dvbtime.cpp \
+ eit.cpp \
+ epgcache.cpp \
+ esection.cpp \
+ frontend.cpp \
+ metaparser.cpp \
+ pesparse.cpp \
+ pmt.cpp \
+ pvrparse.cpp \
+ radiotext.cpp \
+ rotor_calc.cpp \
+ scan.cpp \
+ sec.cpp \
+ subtitle.cpp \
+ teletext.cpp \
+ tstools.cpp \
+ volume.cpp
+dvbincludedir = $(pkgincludedir)/lib/dvb
+dvbinclude_HEADERS = \
+ crc32.h \
+ db.h \
+ decoder.h \
+ demux.h \
+ dvb.h \
+ dvbtime.h \
+ eit.h \
+ epgcache.h \
+ esection.h \
+ frontend.h \
+ frontendparms.h \
+ idemux.h \
+ idvb.h \
+ isection.h \
+ list.h \
+ metaparser.h \
+ pesparse.h \
+ pmt.h \
+ pvrparse.h \
+ radiotext.h \
+ rotor_calc.h \
+ scan.h \
+ sec.h \
+ specs.h \
+ subtitle.h \
+ teletext.h \
+ tstools.h \
+ volume.h
#include <lib/dvb/dvb.h>
#include <lib/dvb/frontend.h>
#include <lib/dvb/epgcache.h>
+#include <lib/base/eenv.h>
#include <lib/base/eerror.h>
#include <lib/base/estring.h>
#include <xmlccwrap/xmlccwrap.h>
RESULT eBouquet::flushChanges()
{
- FILE *f=fopen((CONFIGDIR"/enigma2/"+m_filename).c_str(), "w");
+ FILE *f=fopen(eEnv::resolve("${sysconfdir}/enigma2/" + m_filename).c_str(), "w");
if (!f)
return -1;
if ( fprintf(f, "#NAME %s\r\n", m_bouquet_name.c_str()) < 0 )
void eDVBDB::reloadServicelist()
{
- loadServicelist(CONFIGDIR"/enigma2/lamedb");
+ loadServicelist(eEnv::resolve("${sysconfdir}/enigma2/lamedb").c_str());
}
void eDVBDB::parseServiceData(ePtr<eDVBService> s, std::string str)
{
eDebug("---- opening lame channel db");
FILE *f=fopen(file, "rt");
- if (!f && strcmp(file, CONFIGDIR"/enigma2/lamedb") == 0)
- {
- struct stat s;
- if ( !stat("lamedb", &s) )
- {
- if ( !stat(CONFIGDIR"/enigma2", &s) )
- {
- rename("lamedb", CONFIGDIR"/enigma2/lamedb" );
- reloadServicelist();
- }
- }
+ if (!f) {
+ eDebug("can't open %s: %m", file);
return;
}
+
char line[256];
int version=3;
if ((!fgets(line, 256, f)) || sscanf(line, "eDVB services /%d/", &version) != 1)
void eDVBDB::saveServicelist()
{
- saveServicelist(CONFIGDIR"/enigma2/lamedb");
+ saveServicelist(eEnv::resolve("${sysconfdir}/enigma2/lamedb").c_str());
}
void eDVBDB::loadBouquet(const char *path)
std::list<eServiceReference> &list = bouquet.m_services;
list.clear();
- std::string p = CONFIGDIR"/enigma2/";
+ std::string p = eEnv::resolve("${sysconfdir}/enigma2/");
p+=path;
eDebug("loading bouquet... %s", p.c_str());
FILE *fp=fopen(p.c_str(), "rt");
- int entries=0;
if (!fp)
{
- struct stat s;
- if ( !stat(path, &s) )
- {
- rename(path, p.c_str() );
- loadBouquet(path);
- return;
- }
- eDebug("failed to open.");
- if ( strstr(path, "bouquets.tv") )
+ eDebug("can't open %s: %m", p.c_str());
+ if (!strcmp(path, "bouquets.tv"))
{
eDebug("recreate bouquets.tv");
bouquet.m_bouquet_name="Bouquets (TV)";
bouquet.flushChanges();
}
- else if ( strstr(path, "bouquets.radio") )
+ else if (!strcmp(path, "bouquets.radio"))
{
eDebug("recreate bouquets.radio");
bouquet.m_bouquet_name="Bouquets (Radio)";
}
return;
}
+ int entries=0;
char line[256];
bool read_descr=false;
eServiceReference *e = NULL;
case aLPCM:
bypass = 6;
break;
+ case aDTSHD:
+ bypass = 0x10;
+ break;
}
eDebugNoNewLine("AUDIO_SET_BYPASS(%d) - ", bypass);
if (f >= 0)
{
struct stat s;
+ size_t written=0;
fstat(f, &s);
if (m_video_clip_fd == -1)
- m_video_clip_fd = open("/dev/dvb/adapter0/video0", O_WRONLY|O_NONBLOCK);
+ m_video_clip_fd = open("/dev/dvb/adapter0/video0", O_WRONLY);
if (m_video_clip_fd >= 0)
{
bool seq_end_avail = false;
ePtr<eDVBDemux> m_demux;
int m_fd, m_fd_demux, m_dev, m_is_freezed;
public:
- enum { aMPEG, aAC3, aDTS, aAAC, aAACHE, aLPCM };
+ enum { aMPEG, aAC3, aDTS, aAAC, aAACHE, aLPCM, aDTSHD };
eDVBAudio(eDVBDemux *demux, int dev);
enum { aMonoLeft, aStereo, aMonoRight };
void setChannel(int channel);
return ::open(filename, O_RDWR);
}
+int eDVBDemux::openDVR(int flags)
+{
+ char filename[128];
+ snprintf(filename, 128, "/dev/dvb/adapter%d/dvr%d", adapter, demux);
+ return ::open(filename, flags);
+}
+
DEFINE_REF(eDVBDemux)
RESULT eDVBDemux::setSourceFrontend(int fenum)
RESULT eDVBTSRecorder::stop()
{
+ int state=3;
+
for (std::map<int,int>::iterator i(m_pids.begin()); i != m_pids.end(); ++i)
stopPID(i->first);
if (!m_running)
return -1;
+
+#if HAVE_DVB_API_VERSION >= 5
+ /* workaround for record thread stop */
+ if (::ioctl(m_source_fd, DMX_STOP) < 0)
+ perror("DMX_STOP");
+ else
+ state &= ~1;
+
+ if (::close(m_source_fd) < 0)
+ perror("close");
+ else
+ state &= ~2;
+#endif
+
m_thread->stop();
-
- close(m_source_fd);
+
+ if (state & 3)
+ ::close(m_source_fd);
+
+ m_running = 0;
m_source_fd = -1;
-
+
m_thread->stopSaveMetaInformation();
-
return 0;
}
RESULT getCADemuxID(uint8_t &id) { id = demux; return 0; }
RESULT flush();
RESULT connectEvent(const Slot1<void,int> &event, ePtr<eConnection> &conn);
-
+ int openDVR(int flags);
+
int getRefCount() { return ref; }
private:
int adapter, demux, source;
m_boxtype = DM500HD;
else if (!strncmp(tmp, "dm800se\n", rd))
m_boxtype = DM800SE;
+ else if (!strncmp(tmp, "dm7020hd\n", rd))
+ m_boxtype = DM7020HD;
else {
eDebug("boxtype detection via /proc/stb/info not possible... use fallback via demux count!\n");
if (m_demux.size() == 3)
m_boxtype = DM8000;
}
- eDebug("found %d adapter, %d frontends(%d sim) and %d demux, boxtype %d",
+ eDebug("found %zd adapter, %zd frontends(%zd sim) and %zd demux, boxtype %d",
m_adapter.size(), m_frontend.size(), m_simulate_frontend.size(), m_demux.size(), m_boxtype);
eDVBCAService::registerChannelCallback(this);
}
if (assigned != m_frontend.size()) {
char blasel[256];
- sprintf(blasel, "eDVBResourceManager::setFrontendSlotInformations .. assigned %d socket informations, but %d registered frontends!",
+ sprintf(blasel, "eDVBResourceManager::setFrontendSlotInformations .. assigned %zd socket informations, but %d registered frontends!",
m_frontend.size(), assigned);
PyErr_SetString(PyExc_StandardError, blasel);
return NULL;
ePtr<eDVBRegisteredDemux> unused;
- if (m_boxtype == DM800 || m_boxtype == DM500HD || m_boxtype == DM800SE) // dm800 / 500hd
+ if (m_boxtype == DM800) // dm800
{
cap |= capHoldDecodeReference; // this is checked in eDVBChannel::getDemux
for (; i != m_demux.end(); ++i, ++n)
}
}
}
- else if (m_boxtype == DM8000)
+ else if (m_boxtype == DM8000 || m_boxtype == DM500HD || m_boxtype == DM800SE || m_boxtype == DM7020HD)
{
cap |= capHoldDecodeReference; // this is checked in eDVBChannel::getDemux
for (; i != m_demux.end(); ++i, ++n)
size = max;
else
size = aligned_end - current_offset;
- eDebug("HIT, %lld < %lld < %lld, size: %d", i->first, current_offset, i->second, size);
+ eDebug("HIT, %lld < %lld < %lld, size: %zd", i->first, current_offset, i->second, size);
return;
}
if (current_offset < aligned_start)
len = aligned_end - aligned_start;
start = aligned_end - len;
- eDebug("skipping to %llx, %d", start, len);
+ eDebug("skipping to %llx, %zd", start, len);
}
- eDebug("result: %llx, %x (%llx %llx)", start, size, aligned_start, aligned_end);
+ eDebug("result: %llx, %zx (%llx %llx)", start, size, aligned_start, aligned_end);
return;
}
}
{
start = current_offset;
size = max;
- eDebug("NO CUESHEET. (%08llx, %d)", start, size);
+ eDebug("NO CUESHEET. (%08llx, %zd)", start, size);
} else
{
start = current_offset;
RESULT eDVBChannel::playFile(const char *file)
{
+ eRawFile *f = new eRawFile();
+ ePtr<iTsSource> source = f;
+
+ if (f->open(file) < 0)
+ {
+ eDebug("can't open PVR file %s (%m)", file);
+ return -ENOENT;
+ }
+
+ return playSource(source, file);
+}
+
+RESULT eDVBChannel::playSource(ePtr<iTsSource> &source, const char *streaminfo_file)
+{
ASSERT(!m_frontend);
if (m_pvr_thread)
{
m_pvr_thread = 0;
}
- m_tstools.openFile(file);
+ if (!source->valid())
+ {
+ eDebug("PVR source is not valid!");
+ return -ENOENT;
+ }
+
+ m_tstools.setSource(source, streaminfo_file);
/* DON'T EVEN THINK ABOUT FIXING THIS. FIX THE ATI SOURCES FIRST,
THEN DO A REAL FIX HERE! */
/* (this codepath needs to be improved anyway.) */
#if HAVE_DVB_API_VERSION < 3
m_pvr_fd_dst = open("/dev/pvr", O_WRONLY);
-#else
- m_pvr_fd_dst = open("/dev/misc/pvr", O_WRONLY);
-#endif
if (m_pvr_fd_dst < 0)
{
- eDebug("can't open /dev/misc/pvr - you need to buy the new(!) $$$ box! (%m)"); // or wait for the driver to be improved.
+ eDebug("can't open /dev/pvr - you need to buy the new(!) $$$ box! (%m)"); // or wait for the driver to be improved.
return -ENODEV;
}
+#else
+ ePtr<eDVBAllocatedDemux> &demux = m_demux ? m_demux : m_decoder_demux;
+ if (demux)
+ {
+ m_pvr_fd_dst = demux->get().openDVR(O_WRONLY);
+ if (m_pvr_fd_dst < 0)
+ {
+ eDebug("can't open /dev/dvb/adapterX/dvrX - you need to buy the new(!) $$$ box! (%m)"); // or wait for the driver to be improved.
+ return -ENODEV;
+ }
+ }
+ else
+ {
+ eDebug("no demux allocated yet.. so its not possible to open the dvr device!!");
+ return -ENODEV;
+ }
+#endif
}
m_pvr_thread = new eDVBChannelFilePush();
m_event(this, evtPreStart);
- if (m_pvr_thread->start(file, m_pvr_fd_dst))
- {
- delete m_pvr_thread;
- m_pvr_thread = 0;
- ::close(m_pvr_fd_dst);
- m_pvr_fd_dst = -1;
- eDebug("can't open PVR file %s (%m)", file);
- return -ENOENT;
- }
+ m_pvr_thread->start(source, m_pvr_fd_dst);
CONNECT(m_pvr_thread->m_event, eDVBChannel::pvrEvent);
m_state = state_ok;
return 0;
}
-void eDVBChannel::stopFile()
+void eDVBChannel::stopSource()
{
if (m_pvr_thread)
{
}
if (m_pvr_fd_dst >= 0)
::close(m_pvr_fd_dst);
+ ePtr<iTsSource> d;
+ m_tstools.setSource(d);
+}
+
+void eDVBChannel::stopFile()
+{
+ stopSource();
}
void eDVBChannel::setCueSheet(eCueSheet *cuesheet)
DECLARE_REF(eDVBResourceManager);
int avail, busy;
- enum { DM7025, DM800, DM500HD, DM800SE, DM8000 };
+ enum { DM7025, DM800, DM500HD, DM800SE, DM8000, DM7020HD };
int m_boxtype;
/* iDVBPVRChannel */
RESULT playFile(const char *file);
void stopFile();
-
+
+ RESULT playSource(ePtr<iTsSource>& source, const char *priv=NULL);
+ void stopSource();
+
void setCueSheet(eCueSheet *cuesheet);
RESULT getLength(pts_t &len);
std::list<std::pair<off_t, off_t> > m_source_span;
void getNextSourceSpan(off_t current_offset, size_t bytes_read, off_t &start, size_t &size);
void flushPVR(iDVBDemux *decoding_demux=0);
-
+
eSingleLock m_cuesheet_lock;
friend class eUsePtr<eDVBChannel>;
DEFINE_REF(eEPGCache)
eEPGCache::eEPGCache()
- :messages(this,1), cleanTimer(eTimer::create(this))//, paused(0)
+ :messages(this,1), cleanTimer(eTimer::create(this)), m_running(0)//, paused(0)
{
- eDebug("[EPGC] Initialized EPGCache");
+ eDebug("[EPGC] Initialized EPGCache (wait for setCacheFile call now)");
CONNECT(messages.recv_msg, eEPGCache::gotMessage);
CONNECT(eDVBLocalTimeHandler::getInstance()->m_timeUpdated, eEPGCache::timeUpdated);
if (!res_mgr)
eDebug("[eEPGCache] no resource manager !!!!!!!");
else
- {
res_mgr->connectChannelAdded(slot(*this,&eEPGCache::DVBChannelAdded), m_chanAddedConn);
+
+ instance=this;
+ memset(m_filename, 0, sizeof(m_filename));
+}
+
+void eEPGCache::setCacheFile(const char *path)
+{
+ bool inited = !!strlen(m_filename);
+ strncpy(m_filename, path, 1024);
+ if (!inited)
+ {
+ eDebug("[EPGC] setCacheFile read/write epg data from/to '%s'", m_filename);
if (eDVBLocalTimeHandler::getInstance()->ready())
timeUpdated();
}
- instance=this;
}
void eEPGCache::timeUpdated()
{
- if (!sync())
+ if (strlen(m_filename))
{
- eDebug("[EPGC] time updated.. start EPG Mainloop");
- run();
- } else
- messages.send(Message(Message::timeChanged));
+ if (!sync())
+ {
+ eDebug("[EPGC] time updated.. start EPG Mainloop");
+ run();
+ singleLock s(channel_map_lock);
+ channelMapIterator it = m_knownChannels.begin();
+ for (; it != m_knownChannels.end(); ++it)
+ {
+ if (it->second->state == -1) {
+ it->second->state=0;
+ messages.send(Message(Message::startChannel, it->first));
+ }
+ }
+ } else
+ messages.send(Message(Message::timeChanged));
+ }
+ else
+ eDebug("[EPGC] time updated.. but cache file not set yet.. dont start epg!!");
}
void eEPGCache::DVBChannelAdded(eDVBChannel *chan)
return;
}
#endif
- messages.send(Message(Message::startChannel, chan));
- // -> gotMessage -> changedService
+ if (m_running) {
+ data.state=0;
+ messages.send(Message(Message::startChannel, chan));
+ // -> gotMessage -> changedService
+ }
+ else
+ data.state=-1;
}
}
}
case iDVBChannel::state_release:
{
eDebug("[eEPGCache] remove channel %p", chan);
- messages.send(Message(Message::leaveChannel, chan));
+ if (it->second->state >= 0)
+ messages.send(Message(Message::leaveChannel, chan));
pthread_mutex_lock(&it->second->channel_active);
singleLock s(channel_map_lock);
m_knownChannels.erase(it);
void eEPGCache::thread()
{
hasStarted();
+ m_running=1;
nice(4);
load();
cleanLoop();
runLoop();
save();
+ m_running=0;
}
void eEPGCache::load()
{
- FILE *f = fopen("/hdd/epg.dat", "r");
+ FILE *f = fopen(m_filename, "r");
if (f)
{
- unlink("/hdd/epg.dat");
+ unlink(m_filename);
int size=0;
int cnt=0;
-#if 0
- unsigned char md5_saved[16];
- unsigned char md5[16];
- bool md5ok=false;
- if (!md5_file("/hdd/epg.dat", 1, md5))
- {
- FILE *f = fopen("/hdd/epg.dat.md5", "r");
- if (f)
- {
- fread( md5_saved, 16, 1, f);
- fclose(f);
- if ( !memcmp(md5_saved, md5, 16) )
- md5ok=true;
- }
- }
- if ( md5ok )
-#endif
{
unsigned int magic=0;
fread( &magic, sizeof(int), 1, f);
eventDB[key]=std::pair<eventMap,timeMap>(evMap,tmMap);
}
eventData::load(f);
- eDebug("[EPGC] %d events read from /hdd/epg.dat", cnt);
+ eDebug("[EPGC] %d events read from %s", cnt, m_filename);
#ifdef ENABLE_PRIVATE_EPG
char text2[11];
fread( text2, 11, 1, f);
void eEPGCache::save()
{
- struct statfs s;
- off64_t tmp;
- if (statfs("/hdd", &s)<0)
- tmp=0;
- else
+ /* create empty file */
+ FILE *f = fopen(m_filename, "w");
+
+ if (!f)
{
- tmp=s.f_blocks;
- tmp*=s.f_bsize;
+ eDebug("[EPGC] couldn't save epg data to '%s'(%m)", m_filename);
+ return;
}
- // prevent writes to builtin flash
- if ( tmp < 1024*1024*50 ) // storage size < 50MB
+ char *buf = realpath(m_filename, NULL);
+ if (!buf)
+ {
+ eDebug("[EPGC] realpath to '%s' failed in save (%m)", m_filename);
+ fclose(f);
return;
+ }
+
+ eDebug("[EPGC] store epg to realpath '%s'", buf);
+
+ struct statfs s;
+ off64_t tmp;
+ if (statfs(buf, &s) < 0) {
+ eDebug("[EPGC] statfs '%s' failed in save (%m)", buf);
+ fclose(f);
+ return;
+ }
+
+ free(buf);
// check for enough free space on storage
tmp=s.f_bfree;
tmp*=s.f_bsize;
if ( tmp < (eventData::CacheSize*12)/10 ) // 20% overhead
+ {
+ eDebug("[EPGC] not enough free space at path '%s' %lld bytes availd but %d needed", buf, tmp, (eventData::CacheSize*12)/10);
+ fclose(f);
return;
+ }
- FILE *f = fopen("/hdd/epg.dat", "w");
int cnt=0;
- if ( f )
- {
- unsigned int magic = 0x98765432;
- fwrite( &magic, sizeof(int), 1, f);
- const char *text = "UNFINISHED_V7";
- fwrite( text, 13, 1, f );
- int size = eventDB.size();
- fwrite( &size, sizeof(int), 1, f );
- for (eventCache::iterator service_it(eventDB.begin()); service_it != eventDB.end(); ++service_it)
- {
- timeMap &timemap = service_it->second.second;
- fwrite( &service_it->first, sizeof(uniqueEPGKey), 1, f);
- size = timemap.size();
- fwrite( &size, sizeof(int), 1, f);
- for (timeMap::iterator time_it(timemap.begin()); time_it != timemap.end(); ++time_it)
- {
- __u8 len = time_it->second->ByteSize;
- fwrite( &time_it->second->type, sizeof(__u8), 1, f );
- fwrite( &len, sizeof(__u8), 1, f);
- fwrite( time_it->second->EITdata, len, 1, f);
- ++cnt;
- }
+ unsigned int magic = 0x98765432;
+ fwrite( &magic, sizeof(int), 1, f);
+ const char *text = "UNFINISHED_V7";
+ fwrite( text, 13, 1, f );
+ int size = eventDB.size();
+ fwrite( &size, sizeof(int), 1, f );
+ for (eventCache::iterator service_it(eventDB.begin()); service_it != eventDB.end(); ++service_it)
+ {
+ timeMap &timemap = service_it->second.second;
+ fwrite( &service_it->first, sizeof(uniqueEPGKey), 1, f);
+ size = timemap.size();
+ fwrite( &size, sizeof(int), 1, f);
+ for (timeMap::iterator time_it(timemap.begin()); time_it != timemap.end(); ++time_it)
+ {
+ __u8 len = time_it->second->ByteSize;
+ fwrite( &time_it->second->type, sizeof(__u8), 1, f );
+ fwrite( &len, sizeof(__u8), 1, f);
+ fwrite( time_it->second->EITdata, len, 1, f);
+ ++cnt;
}
- eDebug("[EPGC] %d events written to /hdd/epg.dat", cnt);
- eventData::save(f);
+ }
+ eDebug("[EPGC] %d events written to %s", cnt, m_filename);
+ eventData::save(f);
#ifdef ENABLE_PRIVATE_EPG
- const char* text3 = "PRIVATE_EPG";
- fwrite( text3, 11, 1, f );
- size = content_time_tables.size();
+ const char* text3 = "PRIVATE_EPG";
+ fwrite( text3, 11, 1, f );
+ size = content_time_tables.size();
+ fwrite( &size, sizeof(int), 1, f);
+ for (contentMaps::iterator a = content_time_tables.begin(); a != content_time_tables.end(); ++a)
+ {
+ contentMap &content_time_table = a->second;
+ fwrite( &a->first, sizeof(uniqueEPGKey), 1, f);
+ int size = content_time_table.size();
fwrite( &size, sizeof(int), 1, f);
- for (contentMaps::iterator a = content_time_tables.begin(); a != content_time_tables.end(); ++a)
+ for (contentMap::iterator i = content_time_table.begin(); i != content_time_table.end(); ++i )
{
- contentMap &content_time_table = a->second;
- fwrite( &a->first, sizeof(uniqueEPGKey), 1, f);
- int size = content_time_table.size();
+ int size = i->second.size();
+ fwrite( &i->first, sizeof(int), 1, f);
fwrite( &size, sizeof(int), 1, f);
- for (contentMap::iterator i = content_time_table.begin(); i != content_time_table.end(); ++i )
- {
- int size = i->second.size();
- fwrite( &i->first, sizeof(int), 1, f);
- fwrite( &size, sizeof(int), 1, f);
- for ( contentTimeMap::iterator it(i->second.begin());
- it != i->second.end(); ++it )
- {
- fwrite( &it->first, sizeof(time_t), 1, f);
- fwrite( &it->second.first, sizeof(time_t), 1, f);
- fwrite( &it->second.second, sizeof(__u16), 1, f);
- }
- }
- }
-#endif
- // write version string after binary data
- // has been written to disk.
- fsync(fileno(f));
- fseek(f, sizeof(int), SEEK_SET);
- fwrite("ENIGMA_EPG_V7", 13, 1, f);
- fclose(f);
-#if 0
- unsigned char md5[16];
- if (!md5_file("/hdd/epg.dat", 1, md5))
- {
- FILE *f = fopen("/hdd/epg.dat.md5", "w");
- if (f)
+ for ( contentTimeMap::iterator it(i->second.begin());
+ it != i->second.end(); ++it )
{
- fwrite( md5, 16, 1, f);
- fclose(f);
+ fwrite( &it->first, sizeof(time_t), 1, f);
+ fwrite( &it->second.first, sizeof(time_t), 1, f);
+ fwrite( &it->second.second, sizeof(__u16), 1, f);
}
}
-#endif
}
+#endif
+ // write version string after binary data
+ // has been written to disk.
+ fsync(fileno(f));
+ fseek(f, sizeof(int), SEEK_SET);
+ fwrite("ENIGMA_EPG_V7", 13, 1, f);
+ fclose(f);
}
eEPGCache::channel_data::channel_data(eEPGCache *ml)
:cache(ml)
- ,abortTimer(eTimer::create(ml)), zapTimer(eTimer::create(ml)), state(0)
+ ,abortTimer(eTimer::create(ml)), zapTimer(eTimer::create(ml)), state(-2)
,isRunning(0), haveData(0)
#ifdef ENABLE_PRIVATE_EPG
,startPrivateTimer(eTimer::create(ml))
eEPGCache *cache;
ePtr<eTimer> abortTimer, zapTimer;
int prevChannelState;
- __u8 state, isRunning, haveData;
+ int state;
+ __u8 isRunning, haveData;
ePtr<eDVBChannel> channel;
ePtr<eConnection> m_stateChangedConn, m_NowNextConn, m_ScheduleConn, m_ScheduleOtherConn, m_ViasatConn;
ePtr<iDVBSectionReader> m_NowNextReader, m_ScheduleReader, m_ScheduleOtherReader, m_ViasatReader;
void thread(); // thread function
// called from epgcache thread
+ int m_running;
+ char m_filename[1024];
void save();
void load();
#ifdef ENABLE_PRIVATE_EPG
#endif
#endif
+ // must be called once!
+ void setCacheFile(const char *filename);
+
// called from main thread
inline void Lock();
inline void Unlock();
else
TABLE_eDebugNoNewLine("-");
- TABLE_eDebug(" %d/%d TID %02x", avail.size(), max, data[0]);
+ TABLE_eDebug(" %zd/%d TID %02x", avail.size(), max, data[0]);
if (avail.size() == max)
{
int first;
ePtr<iDVBDemux> m_demux;
eMainloop *ml;
+
+ /* needed to detect broken table version handling (seen on some m2ts files) */
+ struct timespec m_prev_table_update;
+ int m_table_cnt;
public:
eAUTable()
int begin(eMainloop *m, const eDVBTableSpec &spec, ePtr<iDVBDemux> demux)
{
+ m_table_cnt = 0;
ml = m;
m_demux = demux;
first= 1;
if (current && (!current->getSpec(spec)))
{
+ /* detect broken table version handling (seen on some m2ts files) */
+ if (m_table_cnt)
+ {
+ if (abs(timeout_usec(m_prev_table_update)) > 500000)
+ m_table_cnt = -1;
+ else if (m_table_cnt > 1) // two pmt update within one second
+ {
+ eDebug("Seen two consecutive table version changes within 500ms. "
+ "This seems broken, so auto update for pid %04x, table %02x is now disabled!!",
+ spec.pid, spec.tid);
+ m_table_cnt = 0;
+ return;
+ }
+ }
+
+ ++m_table_cnt;
+ clock_gettime(CLOCK_MONOTONIC, &m_prev_table_update);
+
next = new Table();
CONNECT(next->tableReady, eAUTable::slotTableReady);
spec.flags &= ~(eDVBTableSpec::tfAnyVersion|eDVBTableSpec::tfThisVersion|eDVBTableSpec::tfHaveTimeout);
int slotid = sec_fe->m_slotid;
// FIXMEEEEEE hardcoded i2c devices for dm7025 and dm8000
if (slotid < 2)
- sprintf(dev, "/dev/i2c/%d", slotid);
+ sprintf(dev, "/dev/i2c-%d", slotid);
else if (slotid == 2)
- sprintf(dev, "/dev/i2c/2"); // first nim socket on DM8000 use /dev/i2c/2
+ sprintf(dev, "/dev/i2c-2"); // first nim socket on DM8000 use /dev/i2c-2
else if (slotid == 3)
- sprintf(dev, "/dev/i2c/4"); // second nim socket on DM8000 use /dev/i2c/4
+ sprintf(dev, "/dev/i2c-4"); // second nim socket on DM8000 use /dev/i2c-4
int fd = ::open(dev, O_RDWR);
unsigned char data[2];
return -EINVAL;
}
#if HAVE_DVB_API_VERSION < 5
- parm_inversion |= (feparm.rolloff << 2); // Hack.. we use bit 2..3 of inversion param for rolloff
- parm_inversion |= (feparm.pilot << 4); // Hack.. we use bit 4..5 of inversion param for pilot
+ parm_inversion = (fe_spectral_inversion_t)((feparm.rolloff << 2) | parm_inversion); // Hack.. we use bit 2..3 of inversion param for rolloff
+ parm_inversion = (fe_spectral_inversion_t)((feparm.pilot << 4) | parm_inversion); // Hack.. we use bit 4..5 of inversion param for pilot
if (feparm.modulation == eDVBFrontendParametersSatellite::Modulation_8PSK)
{
parm_u_qpsk_fec_inner = (fe_code_rate_t)((int)parm_u_qpsk_fec_inner+9);
#include <lib/base/object.h>
#include <lib/base/ebase.h>
#include <lib/base/elock.h>
+#include <lib/base/itssource.h>
#include <lib/service/service.h>
#include <libsig_comp.h>
#include <connection.h>
virtual RESULT playFile(const char *file) = 0;
virtual void stopFile() = 0;
+ /* new interface */
+ virtual RESULT playSource(ePtr<iTsSource> &source, const char *priv=NULL) = 0;
+ virtual void stopSource() = 0;
+
virtual void setCueSheet(eCueSheet *cuesheet) = 0;
virtual RESULT getLength(pts_t &pts) = 0;
virtual RESULT getSTC(pts_t &pts, int num=0)=0;
virtual RESULT getCADemuxID(uint8_t &id)=0;
virtual RESULT flush()=0;
+ virtual int openDVR(int flags)=0;
};
#if HAVE_DVB_API_VERSION < 3 && !defined(VIDEO_EVENT_SIZE_CHANGED)
/** Set Displayed Video PID and type */
virtual RESULT setVideoPID(int vpid, int type)=0;
- enum { af_MPEG, af_AC3, af_DTS, af_AAC };
+ enum { af_MPEG, af_AC3, af_DTS, af_AAC, af_DTSHD };
/** Set Displayed Audio PID and type */
virtual RESULT setAudioPID(int apid, int type)=0;
-EXTRA_DIST = \
+lowlevelincludedir = $(pkgincludedir)/lib/dvb/lowlevel
+lowlevelinclude_HEADERS = \
eit.h \
mhw.h
#include <dvbsi++/registration_descriptor.h>
eDVBServicePMTHandler::eDVBServicePMTHandler()
- :m_ca_servicePtr(0), m_dvb_scan(0), m_decode_demux_num(0xFF)
+ :m_ca_servicePtr(0), m_dvb_scan(0), m_decode_demux_num(0xFF), m_no_pat_entry_delay(eTimer::create())
{
m_use_decode_demux = 0;
m_pmt_pid = -1;
eDVBResourceManager::getInstance(m_resourceManager);
CONNECT(m_PMT.tableReady, eDVBServicePMTHandler::PMTready);
CONNECT(m_PAT.tableReady, eDVBServicePMTHandler::PATready);
+ CONNECT(m_no_pat_entry_delay->timeout, eDVBServicePMTHandler::sendEventNoPatEntry);
}
eDVBServicePMTHandler::~eDVBServicePMTHandler()
&& (state == iDVBChannel::state_ok) && (!m_demux))
{
if (m_channel)
- if (m_channel->getDemux(m_demux, (!m_use_decode_demux) ? 0 : iDVBChannel::capDecode))
+ {
+ if (m_pvr_demux_tmp)
+ {
+ m_demux = m_pvr_demux_tmp;
+ m_pvr_demux_tmp = NULL;
+ }
+ else if (m_channel->getDemux(m_demux, (!m_use_decode_demux) ? 0 : iDVBChannel::capDecode))
eDebug("Allocating %s-decoding a demux for now tuned-in channel failed.", m_use_decode_demux ? "" : "non-");
+ }
serviceEvent(eventTuned);
}
}
+void eDVBServicePMTHandler::sendEventNoPatEntry()
+{
+ serviceEvent(eventNoPATEntry);
+}
+
void eDVBServicePMTHandler::PATready(int)
{
+ eDebug("PATready");
ePtr<eTable<ProgramAssociationSection> > ptr;
if (!m_PAT.getCurrent(ptr))
{
+ int service_id_single = -1;
+ int pmtpid_single = -1;
int pmtpid = -1;
+ int cnt=0;
std::vector<ProgramAssociationSection*>::const_iterator i;
for (i = ptr->getSections().begin(); pmtpid == -1 && i != ptr->getSections().end(); ++i)
{
const ProgramAssociationSection &pat = **i;
ProgramAssociationConstIterator program;
for (program = pat.getPrograms()->begin(); pmtpid == -1 && program != pat.getPrograms()->end(); ++program)
+ {
+ ++cnt;
if (eServiceID((*program)->getProgramNumber()) == m_reference.getServiceID())
pmtpid = (*program)->getProgramMapPid();
+ if (++cnt == 1 && pmtpid_single == -1 && pmtpid == -1)
+ {
+ pmtpid_single = (*program)->getProgramMapPid();
+ service_id_single = (*program)->getProgramNumber();
+ }
+ else
+ pmtpid_single = service_id_single = -1;
+ }
}
- if (pmtpid == -1)
- serviceEvent(eventNoPATEntry);
- else
+ if (pmtpid_single != -1) // only one PAT entry .. and not valid pmtpid found
+ {
+ eDebug("use single pat entry!");
+ m_reference.setServiceID(eServiceID(service_id_single));
+ pmtpid = pmtpid_single;
+ }
+ if (pmtpid == -1) {
+ eDebug("no PAT entry found.. start delay");
+ m_no_pat_entry_delay->start(1000, true);
+ }
+ else {
+ eDebug("use pmtpid %04x for service_id %04x", pmtpid, m_reference.getServiceID().get());
+ m_no_pat_entry_delay->stop();
m_PMT.begin(eApp, eDVBPMTSpec(pmtpid, m_reference.getServiceID().get()), m_demux);
+ }
} else
serviceEvent(eventNoPAT);
}
-PyObject *eDVBServicePMTHandler::getCaIds()
+PyObject *eDVBServicePMTHandler::getCaIds(bool pair)
{
ePyObject ret;
if ( !getProgramInfo(prog) )
{
- int cnt=prog.caids.size();
- if (cnt)
+ if (pair)
+ {
+ int cnt=prog.caids.size();
+ if (cnt)
+ {
+ ret=PyList_New(cnt);
+ std::list<program::capid_pair>::iterator it(prog.caids.begin());
+ while(cnt--)
+ {
+ ePyObject tuple = PyTuple_New(2);
+ PyTuple_SET_ITEM(tuple, 0, PyInt_FromLong(it->caid));
+ PyTuple_SET_ITEM(tuple, 1, PyInt_FromLong((it++)->capid));
+ PyList_SET_ITEM(ret, cnt, tuple);
+ }
+ }
+ }
+ else
{
+ std::set<program::capid_pair> set(prog.caids.begin(), prog.caids.end());
+ std::set<program::capid_pair>::iterator it(set.begin());
+ int cnt=set.size();
ret=PyList_New(cnt);
- std::set<uint16_t>::iterator it(prog.caids.begin());
while(cnt--)
- PyList_SET_ITEM(ret, cnt, PyInt_FromLong(*it++));
+ PyList_SET_ITEM(ret, cnt, PyInt_FromLong((it++)->caid));
}
}
return ret ? (PyObject*)ret : (PyObject*)PyList_New(0);
}
-int eDVBServicePMTHandler::getProgramInfo(struct program &program)
+int eDVBServicePMTHandler::getProgramInfo(program &program)
{
ePtr<eTable<ProgramMapSection> > ptr;
int cached_apid_ac3 = -1;
for (i = ptr->getSections().begin(); i != ptr->getSections().end(); ++i)
{
const ProgramMapSection &pmt = **i;
+ int is_hdmv = 0;
+
program.pcrPid = pmt.getPcrPid();
+ for (DescriptorConstIterator desc = pmt.getDescriptors()->begin();
+ desc != pmt.getDescriptors()->end(); ++desc)
+ {
+ if ((*desc)->getTag() == CA_DESCRIPTOR)
+ {
+ CaDescriptor *descr = (CaDescriptor*)(*desc);
+ program::capid_pair pair;
+ pair.caid = descr->getCaSystemId();
+ pair.capid = descr->getCaPid();
+ program.caids.push_back(pair);
+ }
+ else if ((*desc)->getTag() == REGISTRATION_DESCRIPTOR)
+ {
+ RegistrationDescriptor *d = (RegistrationDescriptor*)(*desc);
+ if (d->getFormatIdentifier() == 0x48444d56) // HDMV
+ is_hdmv = 1;
+ }
+ }
+
ElementaryStreamInfoConstIterator es;
for (es = pmt.getEsInfo()->begin(); es != pmt.getEsInfo()->end(); ++es)
{
audio.type = audioStream::atAACHE;
forced_audio = 1;
}
- case 0x80: // user private ... but blueray LPCM
- if (!isvideo && !isaudio)
+ case 0x80: // user private ... but bluray LPCM
+ case 0xA0: // bluray secondary LPCM
+ if (!isvideo && !isaudio && is_hdmv)
{
isaudio = 1;
audio.type = audioStream::atLPCM;
}
- case 0x81: // user private ... but blueray AC3
- if (!isvideo && !isaudio)
+ case 0x81: // user private ... but bluray AC3
+ case 0xA1: // bluray secondary AC3
+ if (!isvideo && !isaudio && is_hdmv)
{
isaudio = 1;
audio.type = audioStream::atAC3;
}
- case 0x82: // Blueray DTS (dvb user private...)
- case 0xA2: // Blueray secondary DTS
- if (!isvideo && !isaudio)
+ case 0x82: // bluray DTS (dvb user private...)
+ case 0xA2: // bluray secondary DTS
+ if (!isvideo && !isaudio && is_hdmv)
{
isaudio = 1;
audio.type = audioStream::atDTS;
}
+ case 0x86: // bluray DTS-HD (dvb user private...)
+ case 0xA6: // bluray secondary DTS-HD
+ if (!isvideo && !isaudio && is_hdmv)
+ {
+ isaudio = 1;
+ audio.type = audioStream::atDTSHD;
+ }
case 0x06: // PES Private
case 0xEA: // TS_PSI_ST_SMPTE_VC1
{
case CA_DESCRIPTOR:
{
CaDescriptor *descr = (CaDescriptor*)(*desc);
- program.caids.insert(descr->getCaSystemId());
+ program::capid_pair pair;
+ pair.caid = descr->getCaSystemId();
+ pair.capid = descr->getCaPid();
+ program.caids.push_back(pair);
break;
}
default:
default:
break;
}
- if (isteletext && (isaudio || isvideo))
+ if (isteletext && (isaudio || isvideo))
{
- eDebug("ambiguous streamtype for PID %04x detected.. forced as teletext!", (*es)->getPid());
+ eDebug("ambiguous streamtype for PID %04x detected.. forced as teletext!", (*es)->getPid());
continue; // continue with next PID
}
else if (issubtitle && (isaudio || isvideo))
else
continue;
}
- for (DescriptorConstIterator desc = pmt.getDescriptors()->begin();
- desc != pmt.getDescriptors()->end(); ++desc)
- {
- if ((*desc)->getTag() == CA_DESCRIPTOR)
- {
- CaDescriptor *descr = (CaDescriptor*)(*desc);
- program.caids.insert(descr->getCaSystemId());
- }
- }
}
ret = 0;
program.textPid = cached_tpid;
}
CAID_LIST &caids = m_service->m_ca;
- for (CAID_LIST::iterator it(caids.begin()); it != caids.end(); ++it)
- program.caids.insert(*it);
+ for (CAID_LIST::iterator it(caids.begin()); it != caids.end(); ++it) {
+ program::capid_pair pair;
+ pair.caid = *it;
+ pair.capid = -1; // not known yet
+ program.caids.push_back(pair);
+ }
if ( cnt )
ret = 0;
}
int eDVBServicePMTHandler::tune(eServiceReferenceDVB &ref, int use_decode_demux, eCueSheet *cue, bool simulate, eDVBService *service)
{
+ ePtr<iTsSource> s;
+ return tuneExt(ref, use_decode_demux, s, NULL, cue, simulate, service);
+}
+
+int eDVBServicePMTHandler::tuneExt(eServiceReferenceDVB &ref, int use_decode_demux, ePtr<iTsSource> &source, const char *streaminfo_file, eCueSheet *cue, bool simulate, eDVBService *service)
+{
RESULT res=0;
m_reference = ref;
-
m_use_decode_demux = use_decode_demux;
+ m_no_pat_entry_delay->stop();
/* use given service as backup. This is used for timeshift where we want to clone the live stream using the cache, but in fact have a PVR channel */
m_service = service;
{
if (!ref.getServiceID().get() /* incorrect sid in meta file or recordings.epl*/ )
{
- eWarning("no .meta file found, trying to find PMT pid");
eDVBTSTools tstools;
- if (tstools.openFile(ref.path.c_str()))
- eWarning("failed to open file");
- else
+ bool b = source || !tstools.openFile(ref.path.c_str(), 1);
+ eWarning("no .meta file found, trying to find PMT pid");
+ if (source)
+ tstools.setSource(source, NULL);
+ if (b)
{
int service_id, pmt_pid;
if (!tstools.findPMT(pmt_pid, service_id))
m_pmt_pid = pmt_pid;
}
}
+ else
+ eWarning("no valid source to find PMT pid!");
}
eDebug("alloc PVR");
/* allocate PVR */
if (m_pvr_channel)
{
m_pvr_channel->setCueSheet(cue);
- m_pvr_channel->playFile(ref.path.c_str());
+
+ if (m_pvr_channel->getDemux(m_pvr_demux_tmp, (!m_use_decode_demux) ? 0 : iDVBChannel::capDecode))
+ eDebug("Allocating %s-decoding a demux for PVR channel failed.", m_use_decode_demux ? "" : "non-");
+ else if (source)
+ m_pvr_channel->playSource(source, streaminfo_file);
+ else
+ m_pvr_channel->playFile(ref.path.c_str());
}
}
eUsePtr<iDVBChannel> m_channel;
eUsePtr<iDVBPVRChannel> m_pvr_channel;
ePtr<eDVBResourceManager> m_resourceManager;
- ePtr<iDVBDemux> m_demux;
-
+ ePtr<iDVBDemux> m_demux, m_pvr_demux_tmp;
+
void channelStateChanged(iDVBChannel *);
ePtr<eConnection> m_channelStateChanged_connection;
void channelEvent(iDVBChannel *, int event);
int m_use_decode_demux;
uint8_t m_decode_demux_num;
+ ePtr<eTimer> m_no_pat_entry_delay;
public:
eDVBServicePMTHandler();
~eDVBServicePMTHandler();
{
int pid,
rdsPid; // hack for some radio services which transmit radiotext on different pid (i.e. harmony fm, HIT RADIO FFH, ...)
- enum { atMPEG, atAC3, atDTS, atAAC, atAACHE, atLPCM };
+ enum { atMPEG, atAC3, atDTS, atAAC, atAACHE, atLPCM, atDTSHD };
int type; // mpeg2, ac3, dts, ...
int component_tag;
struct program
{
+ struct capid_pair
+ {
+ uint16_t caid;
+ int capid;
+ bool operator< (const struct capid_pair &t) const { return t.caid < caid; }
+ };
std::vector<videoStream> videoStreams;
std::vector<audioStream> audioStreams;
int defaultAudioStream;
std::vector<subtitleStream> subtitleStreams;
- std::set<uint16_t> caids;
+ std::list<capid_pair> caids;
int pcrPid;
int pmtPid;
int textPid;
PyObject *createPythonObject();
};
- int getProgramInfo(struct program &program);
+ int getProgramInfo(program &program);
int getDataDemux(ePtr<iDVBDemux> &demux);
int getDecodeDemux(ePtr<iDVBDemux> &demux);
- PyObject *getCaIds();
+ PyObject *getCaIds(bool pair=false); // caid / ecmpid pair
int getPVRChannel(ePtr<iDVBPVRChannel> &pvr_channel);
int getServiceReference(eServiceReferenceDVB &service) { service = m_reference; return 0; }
int getPMT(ePtr<eTable<ProgramMapSection> > &ptr) { return m_PMT.getCurrent(ptr); }
int getChannel(eUsePtr<iDVBChannel> &channel);
void resetCachedProgram() { m_have_cached_program = false; }
+ void sendEventNoPatEntry();
+ /* deprecated interface */
int tune(eServiceReferenceDVB &ref, int use_decode_demux, eCueSheet *sg=0, bool simulate=false, eDVBService *service = 0);
+
+ /* new interface */
+ int tuneExt(eServiceReferenceDVB &ref, int use_decode_demux, ePtr<iTsSource> &, const char *streaminfo_file, eCueSheet *sg=0, bool simulate=false, eDVBService *service = 0);
+
void free();
private:
bool m_have_cached_program;
pts_t current = i->second - currentDelta;
pts_t diff = current - lastpts_t;
- if (llabs(diff) > (90000*5)) // 5sec diff
+ if (llabs(diff) > (90000*10)) // 10sec diff
{
// eDebug("%llx < %llx, have discont. new timestamp is %llx (diff is %llx)!", current, lastpts_t, i->second, diff);
currentDelta = i->second - lastpts_t; /* FIXME: should be the extrapolated new timestamp, based on the current rate */
#include <lib/dvb/esection.h>
#include <lib/dvb/scan.h>
#include <lib/dvb/frontend.h>
+#include <lib/base/eenv.h>
#include <lib/base/eerror.h>
#include <lib/base/estring.h>
#include <lib/python/python.h>
if (m_channel->getDemux(m_demux))
SCAN_eDebug("scan: failed to allocate demux!");
m_channel->connectStateChange(slot(*this, &eDVBScan::stateChange), m_stateChanged_connection);
- FILE *f = fopen("/etc/enigma2/scan_tp_valid_check.py", "r");
+ std::string filename = eEnv::resolve("${sysconfdir}/scan_tp_valid_check.py");
+ FILE *f = fopen(filename.c_str(), "r");
if (f)
{
char code[16384];
if (rd)
{
code[rd]=0;
- m_additional_tsid_onid_check_func = Py_CompileString(code, "/etc/enigma2/scan_tp_valid_check.py", Py_file_input);
+ m_additional_tsid_onid_check_func = Py_CompileString(code, filename.c_str(), Py_file_input);
}
fclose(f);
}
if (m_ch_toScan.empty())
{
SCAN_eDebug("no channels left to scan.");
- SCAN_eDebug("%d channels scanned, %d were unavailable.",
+ SCAN_eDebug("%zd channels scanned, %zd were unavailable.",
m_ch_scanned.size(), m_ch_unavailable.size());
- SCAN_eDebug("%d channels in database.", m_new_channels.size());
+ SCAN_eDebug("%zd channels in database.", m_new_channels.size());
m_event(evtFinish);
return -ENOENT;
}
eSecDebugNoSimulate("ret5 %d", ret);
- if (ret && lnb_param.SatCR_idx == -1)
+ if (ret && !is_unicable)
{
int lof = sat.frequency > lnb_param.m_lof_threshold ?
lnb_param.m_lof_hi : lnb_param.m_lof_lo;
if ( sit != lnb_param.m_satellites.end())
{
eSecCommandList sec_sequence;
-
- lnb_param.guard_offset = 0; //HACK
-
- frontend.setData(eDVBFrontend::SATCR, lnb_param.SatCR_idx);
-
eDVBSatelliteSwitchParameters &sw_param = sit->second;
bool doSetFrontend = true;
bool doSetVoltageToneFrontend = true;
eDVBSatelliteDiseqcParameters::t_diseqc_mode diseqc_mode = di_param.m_diseqc_mode;
eDVBSatelliteSwitchParameters::t_voltage_mode voltage_mode = sw_param.m_voltage_mode;
bool diseqc13V = voltage_mode == eDVBSatelliteSwitchParameters::HV_13;
+ bool is_unicable = lnb_param.SatCR_idx != -1;
+
+ lnb_param.guard_offset = 0; //HACK
+
+ frontend.setData(eDVBFrontend::SATCR, lnb_param.SatCR_idx);
if (diseqc13V)
voltage_mode = eDVBSatelliteSwitchParameters::HV;
int lof = (band&1)?lnb_param.m_lof_hi:lnb_param.m_lof_lo;
- int local=0;
-
-
- if(lnb_param.SatCR_idx == -1)
+ if(!is_unicable)
{
- // calc Frequency
- local = abs(sat.frequency
+ // calc Frequency
+ int local= abs(sat.frequency
- lof);
parm.FREQUENCY = ((((local * 2) / 125) + 1) / 2) * 125;
frontend.setData(eDVBFrontend::FREQ_OFFSET, sat.frequency - parm.FREQUENCY);
if ( send_mask )
{
+ int diseqc_repeats = diseqc_mode > eDVBSatelliteDiseqcParameters::V1_0 ? di_param.m_repeats : 0;
int vlt = iDVBFrontend::voltageOff;
eSecCommand::pair compare;
compare.steps = +3;
if ( send_mask & 2 )
++loops;
- loops <<= di_param.m_repeats;
+ loops <<= diseqc_repeats;
for ( int i = 0; i < loops;) // fill commands...
{
int tmp = m_params[DELAY_BETWEEN_DISEQC_REPEATS];
if (cmd)
{
- int delay = di_param.m_repeats ? (tmp - 54) / 2 : tmp; // standard says 100msek between two repeated commands
+ int delay = diseqc_repeats ? (tmp - 54) / 2 : tmp; // standard says 100msek between two repeated commands
sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, delay) );
diseqc.data[2]=cmd;
diseqc.data[3]=(cmd==0x38) ? csw : ucsw;
if ( RotorCmd != -1 && RotorCmd != lastRotorCmd )
{
eSecCommand::pair compare;
- if (!send_mask && lnb_param.SatCR_idx == -1)
+ if (!send_mask && !is_unicable)
{
compare.steps = +3;
compare.tone = iDVBFrontend::toneOff;
diseqc.data[3] = RotorCmd;
diseqc.data[4] = 0x00;
}
-// if(lnb_param.SatCR_idx == -1)
+// if(!is_unicable)
{
int mrt = m_params[MOTOR_RUNNING_TIMEOUT]; // in seconds!
- if ( rotor_param.m_inputpower_parameters.m_use || lnb_param.SatCR_idx == -1)
+ if ( rotor_param.m_inputpower_parameters.m_use && !is_unicable)
{ // use measure rotor input power to detect rotor state
bool turn_fast = need_turn_fast(rotor_param.m_inputpower_parameters.m_turning_speed);
eSecCommand::rotor cmd;
sec_fe->setData(eDVBFrontend::NEW_UCSW, ucsw);
sec_fe->setData(eDVBFrontend::NEW_TONEBURST, di_param.m_toneburst_param);
- if ((doSetVoltageToneFrontend) && (lnb_param.SatCR_idx == -1))
+ if (doSetVoltageToneFrontend && !is_unicable)
{
eSecCommand::pair compare;
compare.voltage = voltage;
sec_sequence.push_back( eSecCommand(eSecCommand::UPDATE_CURRENT_SWITCHPARMS) );
- if(lnb_param.SatCR_idx != -1)
+ if(is_unicable)
{
// check if voltage is disabled
eSecCommand::pair compare;
#include <stdio.h>
eDVBTSTools::eDVBTSTools()
- :m_file_lock(true)
{
m_pid = -1;
m_maxrange = 256*1024;
m_futile = 0;
}
+void eDVBTSTools::closeSource()
+{
+ m_source = NULL;
+}
+
eDVBTSTools::~eDVBTSTools()
{
- closeFile();
+ closeSource();
}
int eDVBTSTools::openFile(const char *filename, int nostreaminfo)
{
+ eRawFile *f = new eRawFile();
+ ePtr<iTsSource> src = f;
+
+ if (f->open(filename, 1) < 0)
+ return -1;
+
+ setSource(src, nostreaminfo ? NULL : filename);
+
+ return 0;
+}
+
+void eDVBTSTools::setSource(ePtr<iTsSource> &source, const char *stream_info_filename)
+{
closeFile();
-
- if (!nostreaminfo)
+
+ m_source = source;
+
+ if (stream_info_filename)
{
- eDebug("loading streaminfo for %s", filename);
- m_streaminfo.load(filename);
+ eDebug("loading streaminfo for %s", stream_info_filename);
+ m_streaminfo.load(stream_info_filename);
}
if (!m_streaminfo.empty())
// eDebug("no recorded stream information available");
m_use_streaminfo = 0;
}
-
- m_samples_taken = 0;
- eSingleLocker l(m_file_lock);
- if (m_file.open(filename, 1) < 0)
- return -1;
- return 0;
+ m_samples_taken = 0;
}
void eDVBTSTools::closeFile()
{
- eSingleLocker l(m_file_lock);
- m_file.close();
+ if (m_source)
+ closeSource();
}
void eDVBTSTools::setSyncPID(int pid)
if (!m_streaminfo.getPTS(offset, pts))
return 0;
- if (!m_file.valid())
+ if (!m_source || !m_source->valid())
return -1;
offset -= offset % 188;
- eSingleLocker l(m_file_lock);
- if (m_file.lseek(offset, SEEK_SET) < 0)
- {
- eDebug("lseek failed");
- return -1;
- }
-
int left = m_maxrange;
while (left >= 188)
{
unsigned char packet[188];
- if (m_file.read(packet, 188) != 188)
+ if (m_source->read(offset, packet, 188) != 188)
{
eDebug("read error");
break;
}
left -= 188;
offset += 188;
-
+
if (packet[0] != 0x47)
{
eDebug("resync");
if (packet[i] == 0x47)
break;
++i;
+ --offset;
}
- offset = m_file.lseek(i - 188, SEEK_CUR);
continue;
}
break;
case 0x71: // AC3 / DTS
break;
+ case 0x72: // DTS - HD
+ break;
default:
eDebug("skip unknwn stream_id_extension %02x\n", payload[9+offs]);
continue;
void eDVBTSTools::calcBegin()
{
- if (!m_file.valid())
+ if (!m_source || !m_source->valid())
return;
if (!(m_begin_valid || m_futile))
void eDVBTSTools::calcEnd()
{
- if (!m_file.valid())
+ if (!m_source || !m_source->valid())
return;
- eSingleLocker l(m_file_lock);
- off_t end = m_file.lseek(0, SEEK_END);
+ off_t end = m_source->lseek(0, SEEK_END);
if (llabs(end - m_last_filelength) > 1*1024*1024)
{
int eDVBTSTools::findPMT(int &pmt_pid, int &service_id)
{
/* FIXME: this will be factored out soon! */
- if (!m_file.valid())
+ if (!m_source || !m_source->valid())
{
eDebug(" file not valid");
return -1;
}
- eSingleLocker l(m_file_lock);
- if (m_file.lseek(0, SEEK_SET) < 0)
- {
- eDebug("seek failed");
- return -1;
- }
+ off_t position=0;
int left = 5*1024*1024;
while (left >= 188)
{
unsigned char packet[188];
- if (m_file.read(packet, 188) != 188)
+ int ret = m_source->read(position, packet, 188);
+ if (ret != 188)
{
eDebug("read error");
break;
}
left -= 188;
-
+ position += 188;
+
if (packet[0] != 0x47)
{
int i = 0;
{
if (packet[i] == 0x47)
break;
+ --position;
++i;
}
- m_file.lseek(i - 188, SEEK_CUR);
continue;
}
-
int pid = ((packet[1] << 8) | packet[2]) & 0x1FFF;
int pusi = !!(packet[1] & 0x40);
else if (direction == +1)
direction = 0;
}
- /* let's find the next frame after the given offset */
off_t start = offset;
+#if 0
+ /* backtrack to find the previous sequence start, in case of MPEG2 */
+ if ((data & 0xFF) == 0x00) {
+ do {
+ --start;
+ if (m_streaminfo.getStructureEntry(start, data, 0))
+ {
+ eDebug("get previous failed");
+ return -1;
+ }
+ } while (((data & 0xFF) != 9) && ((data & 0xFF) != 0x00) && ((data & 0xFF) != 0xB3)); /* sequence start or previous frame */
+ if ((data & 0xFF) != 0xB3)
+ start = offset; /* Failed to find corresponding sequence start, so never mind */
+ }
+
+#endif
+
+ /* let's find the next frame after the given offset */
do {
if (m_streaminfo.getStructureEntry(offset, data, 1))
{
// eDebug("%08llx@%llx (next)", data, offset);
} while (((data & 0xFF) != 9) && ((data & 0xFF) != 0x00)); /* next frame */
+#if 0
/* align to TS pkt start */
-// start = start - (start % 188);
-// offset = offset - (offset % 188);
+ start = start - (start % 188);
+ offset = offset - (offset % 188);
+#endif
len = offset - start;
_offset = start;
eDVBTSTools();
~eDVBTSTools();
+ void setSource(ePtr<iTsSource> &source, const char *streaminfo_filename=NULL);
+ void closeSource();
+
int openFile(const char *filename, int nostreaminfo = 0);
void closeFile();
-
+
void setSyncPID(int pid);
void setSearchRange(int maxrange);
int m_pid;
int m_maxrange;
- eSingleLock m_file_lock;
- eRawFile m_file;
+ ePtr<iTsSource> m_source;
int m_begin_valid, m_end_valid;
pts_t m_pts_begin, m_pts_end;
-INCLUDES = \
- -I$(top_srcdir)/include
+AM_CPPFLAGS = \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/include \
+ -include Python.h \
+ -include $(top_builddir)/enigma2_config.h
noinst_LIBRARIES = libenigma_dvb_ci.a
-libenigma_dvb_ci_a_SOURCES = dvbci.cpp dvbci_session.cpp dvbci_resmgr.cpp \
- dvbci_appmgr.cpp dvbci_camgr.cpp \
- dvbci_datetimemgr.cpp dvbci_mmi.cpp \
- dvbci_ui.cpp
+libenigma_dvb_ci_a_SOURCES = \
+ dvbci.cpp \
+ dvbci_appmgr.cpp \
+ dvbci_camgr.cpp \
+ dvbci_datetimemgr.cpp \
+ dvbci_mmi.cpp \
+ dvbci_resmgr.cpp \
+ dvbci_session.cpp \
+ dvbci_ui.cpp
+dvbciincludedir = $(pkgincludedir)/lib/dvb_ci
+dvbciinclude_HEADERS = \
+ dvbci.h \
+ dvbci_appmgr.h \
+ dvbci_camgr.h \
+ dvbci_datetimemgr.h \
+ dvbci_mmi.h \
+ dvbci_resmgr.h \
+ dvbci_session.h \
+ dvbci_ui.h
if (!pmthandler->getProgramInfo(p))
{
int cnt=0;
- for (caidSet::reverse_iterator x(p.caids.rbegin()); x != p.caids.rend(); ++x, ++cnt)
- caids.push_front(*x);
+ std::set<eDVBServicePMTHandler::program::capid_pair> set(p.caids.begin(), p.caids.end());
+ for (std::set<eDVBServicePMTHandler::program::capid_pair>::reverse_iterator x(set.rbegin()); x != set.rend(); ++x, ++cnt)
+ caids.push_front(x->caid);
if (service && cnt)
service->m_ca = caids;
}
if (!slot)
{
char tmp[255];
- snprintf(tmp, 255, "eDVBCIInterfaces::getDescrambleRules try to get rules for CI Slot %d... but just %d slots are available", slotid, m_slots.size());
+ snprintf(tmp, 255, "eDVBCIInterfaces::getDescrambleRules try to get rules for CI Slot %d... but just %zd slots are available", slotid, m_slots.size());
PyErr_SetString(PyExc_StandardError, tmp);
return 0;
}
if (!slot)
{
char tmp[255];
- snprintf(tmp, 255, "eDVBCIInterfaces::setDescrambleRules try to set rules for CI Slot %d... but just %d slots are available", slotid, m_slots.size());
+ snprintf(tmp, 255, "eDVBCIInterfaces::setDescrambleRules try to set rules for CI Slot %d... but just %zd slots are available", slotid, m_slots.size());
PyErr_SetString(PyExc_StandardError, tmp);
return -1;
}
if (PyTuple_Size(tuple) != 2)
{
char buf[255];
- snprintf(buf, 255, "eDVBCIInterfaces::setDescrambleRules provider tuple has %d instead of 2 entries!!", PyTuple_Size(tuple));
+ snprintf(buf, 255, "eDVBCIInterfaces::setDescrambleRules provider tuple has %zd instead of 2 entries!!", PyTuple_Size(tuple));
PyErr_SetString(PyExc_StandardError, buf);
return -1;
}
if (!slot)
{
char tmp[255];
- snprintf(tmp, 255, "eDVBCIInterfaces::readCICaIds try to get CAIds for CI Slot %d... but just %d slots are available", slotid, m_slots.size());
+ snprintf(tmp, 255, "eDVBCIInterfaces::readCICaIds try to get CAIds for CI Slot %d... but just %zd slots are available", slotid, m_slots.size());
PyErr_SetString(PyExc_StandardError, tmp);
}
else
-INCLUDES = \
- -I$(top_srcdir)/include -I$(top_srcdir)/lib/gdi/ati
+AM_CPPFLAGS = \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/include \
+ -include Python.h \
+ -include $(top_builddir)/enigma2_config.h
+
+AM_CXXFLAGS = \
+ $(LIBSDL_CFLAGS)
noinst_LIBRARIES = libenigma_gdi.a
libenigma_gdi_a_SOURCES = \
- region.cpp grc.cpp epng.cpp erect.cpp fb.cpp font.cpp font_arabic.cpp gfbdc.cpp \
- glcddc.cpp gpixmap.cpp lcd.cpp gfont.cpp accel.cpp picload.cpp picexif.cpp \
- compositing.cpp bcm.cpp
+ accel.cpp \
+ bcm.cpp \
+ compositing.cpp \
+ epng.cpp \
+ erect.cpp \
+ fb.cpp \
+ font.cpp \
+ font_arabic.cpp \
+ gfont.cpp \
+ glcddc.cpp \
+ gmaindc.cpp \
+ gpixmap.cpp \
+ grc.cpp \
+ lcd.cpp \
+ picexif.cpp \
+ picload.cpp \
+ region.cpp
-if WITH_SDL
-libenigma_gdi_a_SOURCES += sdl.cpp
-endif
+gdiincludedir = $(pkgincludedir)/lib/gdi
+gdiinclude_HEADERS = \
+ accel.h \
+ compositing.h \
+ epng.h \
+ epoint.h \
+ erect.h \
+ esize.h \
+ fb.h \
+ font.h \
+ gfont.h \
+ glcddc.h \
+ gpixmap.h \
+ grc.h \
+ lcd.h \
+ picexif.h \
+ picload.h \
+ region.h
-# ati/2dablt.cpp ati/2dcore.cpp ati/ati_core.cpp ati/test.cpp ati/2dutil.cpp
+if HAVE_LIBSDL
+libenigma_gdi_a_SOURCES += \
+ sdl.cpp \
+ sdl.h
+else
+libenigma_gdi_a_SOURCES += \
+ gfbdc.cpp \
+ gfbdc.h
+endif
pal_addr = src->stride * src->y;
unsigned long *pal = (unsigned long*)(((unsigned char*)src->data) + pal_addr);
pal_addr += src->data_phys;
- for (i = 0; i < 256; ++i)
+ for (i = 0; i < src->clut.colors; ++i)
*pal++ = src->clut.data[i].argb() ^ 0xFF000000;
} else
return -1; /* unsupported source format */
col);
return 0;
#endif
-#if 0 // def BCM_ACCEL
- bcm_accel_fill(
- dst->data_phys, dst->x, dst->y, dst->stride,
- area.left(), area.top(), area.width(), area.height(),
- col);
- return 0;
+#ifdef BCM_ACCEL
+ if (!m_bcm_accel_state) {
+ bcm_accel_fill(
+ dst->data_phys, dst->x, dst->y, dst->stride,
+ area.left(), area.top(), area.width(), area.height(),
+ col);
+ return 0;
+ }
#endif
return -1;
}
int bcm_accel_init(void)
{
- fb_fd = open("/dev/fb/0", O_RDWR);
+ fb_fd = open("/dev/fb0", O_RDWR);
if (fb_fd < 0)
{
- perror("/dev/fb/0");
+ perror("/dev/fb0");
return 1;
}
if (exec_list())
int x, int y, int width, int height,
unsigned long color)
{
-// printf("unimplemented bcm_accel_fill\n");
+ C(0x43); // reset source
+ C(0x53); // reset dest
+ C(0x5b); // reset pattern
+ C(0x67); // reset blend
+ C(0x75); // reset output
+
+ // clear dest surface
+ P(0x0, 0);
+ P(0x1, 0);
+ P(0x2, 0);
+ P(0x3, 0);
+ P(0x4, 0);
+ C(0x45);
+
+ // clear src surface
+ P(0x0, 0);
+ P(0x1, 0);
+ P(0x2, 0);
+ P(0x3, 0);
+ P(0x4, 0);
+ C(0x5);
+
+ P(0x2d, color);
+
+ P(0x2e, x); // prepare output rect
+ P(0x2f, y);
+ P(0x30, width);
+ P(0x31, height);
+ C(0x6e); // set this rect as output rect
+
+ P(0x0, dst_addr); // prepare output surface
+ P(0x1, dst_stride);
+ P(0x2, dst_width);
+ P(0x3, dst_height);
+ P(0x4, 0x7e48888);
+ C(0x69); // set output surface
+
+ P(0x6f, 0);
+ P(0x70, 0);
+ P(0x71, 2);
+ P(0x72, 2);
+ C(0x73); // select color keying
+
+ C(0x77); // do it
+
+ exec_list();
}
+#define PNG_SKIP_SETJMP_CHECK
#include <png.h>
#include <stdio.h>
#include <lib/gdi/epng.h>
int fbClass::showConsole(int state)
{
- int fd=open("/dev/vc/0", O_RDWR);
+ int fd=open("/dev/tty0", O_RDWR);
if(fd>=0)
{
if(ioctl(fd, KDSETMODE, state?KD_TEXT:KD_GRAPHICS)<0)
{
- eDebug("setting /dev/vc/0 status failed.");
+ eDebug("setting /dev/tty0 status failed.");
}
close(fd);
}
int m_number_of_pages;
int m_phys_mem;
#ifdef SWIG
- fbClass(const char *fb="/dev/fb/0");
+ fbClass(const char *fb="/dev/fb0");
~fbClass();
public:
#else
unsigned int Stride() { return stride; }
fb_cmap *CMAP() { return &cmap; }
- fbClass(const char *fb="/dev/fb/0");
+ fbClass(const char *fb="/dev/fb0");
~fbClass();
// low level gfx stuff
// use this for init Freetype...
#include <ft2build.h>
#include FT_FREETYPE_H
-#ifdef HAVE_FREETYPE2
#define FTC_Image_Cache_New(a,b) FTC_ImageCache_New(a,b)
#define FTC_Image_Cache_Lookup(a,b,c,d) FTC_ImageCache_Lookup(a,b,c,d,NULL)
#define FTC_SBit_Cache_New(a,b) FTC_SBitCache_New(a,b)
#define FTC_SBit_Cache_Lookup(a,b,c,d) FTC_SBitCache_Lookup(a,b,c,d,NULL)
-#endif
#include <lib/base/eerror.h>
#include <lib/gdi/lcd.h>
#include <lib/base/init.h>
#include <lib/base/init_num.h>
-#define HAVE_FRIBIDI
-// until we have it in the cdk
-
-#ifdef HAVE_FRIBIDI
#include <fribidi/fribidi.h>
-#endif
#include <map>
static pthread_mutex_t ftlock=PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP;
-#ifndef HAVE_FREETYPE2
-static FTC_Font cache_current_font=0;
-#endif
-
struct fntColorCacheKey
{
gRGB start, end;
return 0;
singleLock s(ftlock);
FT_Face current_face;
-#ifdef HAVE_FREETYPE2
if ((FTC_Manager_LookupFace(cacheManager, fnt->scaler.face_id, ¤t_face) < 0) ||
(FTC_Manager_LookupSize(cacheManager, &fnt->scaler, &fnt->size) < 0))
-#else
- if (FTC_Manager_Lookup_Size(cacheManager, &fnt->font.font, ¤t_face, &fnt->size)<0)
-#endif
{
eDebug("FTC_Manager_Lookup_Size failed!");
return 0;
Font::Font(fontRenderClass *render, FTC_FaceID faceid, int isize, int tw): tabwidth(tw)
{
renderer=render;
-#ifdef HAVE_FREETYPE2
font.face_id = faceid;
font.width = isize;
font.height = isize;
scaler.width = isize;
scaler.height = isize;
scaler.pixel = 1;
-#else
- font.font.face_id=faceid;
- font.font.pix_width = isize;
- font.font.pix_height = isize;
- font.image_type = ftc_image_grays;
-#endif
height=isize;
if (tabwidth==-1)
tabwidth=8*isize;
// we ask for replacment_font first becauseof the cache
if (replacement_font)
{
-#ifdef HAVE_FREETYPE2
if ((FTC_Manager_LookupFace(fontRenderClass::instance->cacheManager,
replacement_font->scaler.face_id,
&replacement_face) < 0) ||
(FTC_Manager_LookupSize(fontRenderClass::instance->cacheManager,
&replacement_font->scaler,
&replacement_font->size) < 0))
-#else
- if (FTC_Manager_Lookup_Size(fontRenderClass::instance->cacheManager,
- &replacement_font->font.font, &replacement_face,
- &replacement_font->size)<0)
-#endif
{
eDebug("FTC_Manager_Lookup_Size failed!");
return;
}
if (current_font)
{
-#ifdef HAVE_FREETYPE2
if ((FTC_Manager_LookupFace(fontRenderClass::instance->cacheManager,
current_font->scaler.face_id,
¤t_face) < 0) ||
(FTC_Manager_LookupSize(fontRenderClass::instance->cacheManager,
¤t_font->scaler,
¤t_font->size) < 0))
-#else
- if (FTC_Manager_Lookup_Size(fontRenderClass::instance->cacheManager, ¤t_font->font.font, ¤t_face, ¤t_font->size)<0)
-#endif
{
eDebug("FTC_Manager_Lookup_Size failed!");
return;
}
}
-#ifndef HAVE_FREETYPE2
- cache_current_font=¤t_font->font.font;
-#endif
previous=0;
use_kerning=FT_HAS_KERNING(current_face);
}
if (!current_font)
return -1;
-#ifdef HAVE_FREETYPE2
if ((FTC_Manager_LookupFace(fontRenderClass::instance->cacheManager,
current_font->scaler.face_id,
¤t_face) < 0) ||
eDebug("FTC_Manager_Lookup_Size failed!");
return -1;
}
-#else
- if (¤t_font->font.font != cache_current_font)
- {
- if (FTC_Manager_Lookup_Size(fontRenderClass::instance->cacheManager, ¤t_font->font.font, ¤t_face, ¤t_font->size)<0)
- {
- eDebug("FTC_Manager_Lookup_Size failed!");
- return -1;
- }
- cache_current_font=¤t_font->font.font;
- }
-#endif
if (!current_face)
eFatal("eTextPara::renderString: no current_face");
// now do the usual logical->visual reordering
int size=uc_shape.size();
-#ifdef HAVE_FRIBIDI
FriBidiCharType dir=FRIBIDI_TYPE_ON;
uc_visual.resize(size);
// gaaanz lahm, aber anders geht das leider nicht, sorry.
std::copy(uc_shape.begin(), uc_shape.end(), array);
fribidi_log2vis(array, size, &dir, target, 0, 0, 0);
uc_visual.assign(target, target+size);
-#else
- uc_visual=uc_shape;
-#endif
glyphs.reserve(size);
}
bboxValid=false;
calc_bbox();
-#ifdef HAVE_FRIBIDI
if (dir & FRIBIDI_MASK_RTL)
{
realign(dirRight);
doTopBottomReordering=true;
}
-#endif
if (charCount)
{
if (!current_font)
return;
-#ifdef HAVE_FREETYPE2
if ((FTC_Manager_LookupFace(fontRenderClass::instance->cacheManager,
current_font->scaler.face_id,
¤t_face) < 0) ||
eDebug("FTC_Manager_Lookup_Size failed!");
return;
}
-#else
- if (¤t_font->font.font != cache_current_font)
- {
- if (FTC_Manager_Lookup_Size(fontRenderClass::instance->cacheManager, ¤t_font->font.font, ¤t_face, ¤t_font->size)<0)
- {
- eDebug("FTC_Manager_Lookup_Size failed!");
- return;
- }
- cache_current_font=¤t_font->font.font;
- }
-#endif
ePtr<gPixmap> target;
dc.getPixmap(target);
#include FT_CACHE_H
#include FT_CACHE_IMAGE_H
#include FT_CACHE_SMALL_BITMAPS_H
-#ifdef HAVE_FREETYPE2
typedef FTC_ImageCache FTC_Image_Cache;
typedef FTC_ImageTypeRec FTC_Image_Desc;
typedef FTC_SBitCache FTC_SBit_Cache;
-#endif
#include <vector>
#include <list>
{
DECLARE_REF(Font);
public:
-#ifdef HAVE_FREETYPE2
FTC_ScalerRec scaler;
-#endif
FTC_Image_Desc font;
fontRenderClass *renderer;
FT_Error getGlyphBitmap(FT_ULong glyph_index, FTC_SBit *sbit);
#include <time.h>
-gFBDC *gFBDC::instance;
-
-ePtr<gFBDC> NewgFBDCPtr(void)
-{
- ePtr<gFBDC> ptr;
- gFBDC::getInstance(ptr);
- return ptr;
-}
-
gFBDC::gFBDC()
{
- instance=this;
fb=new fbClass;
if (!fb->Available())
{
delete fb;
delete[] surface.clut.data;
- instance=0;
}
void gFBDC::calcRamp()
fb->PutCMAP();
}
-void gFBDC::exec(gOpcode *o)
+void gFBDC::exec(const gOpcode *o)
{
switch (o->opcode)
{
setPalette();
}
-// eAutoInitPtr<gFBDC> init_gFBDC(eAutoInitNumbers::graphic-1, "GFBDC");
-#ifndef WITH_SDL
eAutoInitPtr<gFBDC> init_gFBDC(eAutoInitNumbers::graphic-1, "GFBDC");
-#endif
#include "fb.h"
#include "gpixmap.h"
-#include "grc.h"
+#include "gmaindc.h"
-class gFBDC;
-
-SWIG_IGNORE(gFBDC);
-class gFBDC: public gDC
+class gFBDC: public gMainDC
{
-#ifndef SWIG
fbClass *fb;
- static gFBDC *instance;
- void exec(gOpcode *opcode);
+ void exec(const gOpcode *opcode);
unsigned char ramp[256], rampalpha[256]; // RGB ramp 0..255
int brightness, gamma, alpha;
void calcRamp();
gSurface surface, surface_back;
int m_enable_double_buffering;
int m_xres, m_yres;
-#else
- gFBDC();
- virtual ~gFBDC();
-#endif
public:
void setResolution(int xres, int yres);
-#ifndef SWIG
void reloadSettings();
void setAlpha(int alpha);
void setBrightness(int brightness);
gFBDC();
virtual ~gFBDC();
- static int getInstance(ePtr<gFBDC> &ptr) { if (!instance) return -1; ptr = instance; return 0; }
int islocked() { return fb->islocked(); }
-#endif
};
-SWIG_TEMPLATE_TYPEDEF(ePtr<gFBDC>, gFBDC);
-SWIG_EXTEND(ePtr<gFBDC>,
- static ePtr<gFBDC> getInstance()
- {
- extern ePtr<gFBDC> NewgFBDCPtr(void);
- return NewgFBDCPtr();
- }
-);
#endif
instance=0;
}
-void gLCDDC::exec(gOpcode *o)
+void gLCDDC::exec(const gOpcode *o)
{
switch (o->opcode)
{
eLCD *lcd;
static gLCDDC *instance;
int update;
- void exec(gOpcode *opcode);
+ void exec(const gOpcode *opcode);
gSurface surface;
public:
gLCDDC();
--- /dev/null
+#include <lib/gdi/gmaindc.h>
+
+gMainDC *gMainDC::m_instance;
+
+ePtr<gMainDC> NewgMainDCPtr(void)
+{
+ ePtr<gMainDC> ptr;
+ gMainDC::getInstance(ptr);
+ return ptr;
+}
+
+gMainDC::gMainDC()
+{
+ ASSERT(m_instance == 0);
+ m_instance = this;
+}
+
+gMainDC::gMainDC(gPixmap *pixmap) : gDC(pixmap)
+{
+ ASSERT(m_instance == 0);
+ m_instance = this;
+}
+
+gMainDC::~gMainDC()
+{
+ m_instance = 0;
+}
+
--- /dev/null
+#ifndef __lib_gdi_gmaindc_h
+#define __lib_gdi_gmaindc_h
+
+#include "grc.h"
+
+class gMainDC;
+
+SWIG_IGNORE(gMainDC);
+class gMainDC: public gDC
+{
+protected:
+ static gMainDC *m_instance;
+
+ gMainDC();
+ gMainDC(gPixmap *pixmap);
+ virtual ~gMainDC();
+public:
+ virtual void setResolution(int xres, int yres) = 0;
+#ifndef SWIG
+ static int getInstance(ePtr<gMainDC> &ptr) { if (!m_instance) return -1; ptr = m_instance; return 0; }
+#endif
+};
+
+SWIG_TEMPLATE_TYPEDEF(ePtr<gMainDC>, gMainDC);
+SWIG_EXTEND(ePtr<gMainDC>,
+ static ePtr<gMainDC> getInstance()
+ {
+ extern ePtr<gMainDC> NewgMainDCPtr(void);
+ return NewgMainDCPtr();
+ }
+);
+
+#endif
delete[] m_spinner_pic;
}
-void gDC::exec(gOpcode *o)
+void gDC::exec(const gOpcode *o)
{
switch (o->opcode)
{
eRect m_spinner_pos;
int m_spinner_num, m_spinner_i;
public:
- virtual void exec(gOpcode *opcode);
+ virtual void exec(const gOpcode *opcode);
gDC(gPixmap *pixmap);
gDC();
virtual ~gDC();
virtual eSize size() { return m_pixmap->size(); }
virtual int islocked() { return 0; }
- void enableSpinner();
- void disableSpinner();
- void incrementSpinner();
- void setSpinner(eRect pos, ePtr<gPixmap> *pic, int len);
+ virtual void enableSpinner();
+ virtual void disableSpinner();
+ virtual void incrementSpinner();
+ virtual void setSpinner(eRect pos, ePtr<gPixmap> *pic, int len);
};
#endif
#include <fcntl.h>
#include <sys/ioctl.h>
+#if defined(HAVE_DBOX_FP_H) && defined(HAVE_DBOX_LCD_KS0713_H)
#include <dbox/fp.h>
#include <dbox/lcd-ks0713.h>
+#else
+#define NO_LCD 1
+#endif
#include <lib/gdi/esize.h>
#include <lib/base/init.h>
eDebug("found OLED display!");
is_oled = 1;
}
-#else
- lcdfd = -1;
-#endif
- instance=this;
if (lcdfd<0)
eDebug("couldn't open LCD - load lcd.o!");
is_oled = 3;
}
}
+#endif
+ instance=this;
+
setSize(xres, yres, bpp);
}
int eDBoxLCD::setLCDContrast(int contrast)
{
+#ifndef NO_LCD
int fp;
if((fp=open("/dev/dbox/fp0", O_RDWR))<=0)
{
eDebug("[LCD] can't set lcd contrast");
}
close(fp);
+#endif
return(0);
}
int eDBoxLCD::setLCDBrightness(int brightness)
{
+#ifndef NO_LCD
eDebug("setLCDBrightness %d", brightness);
FILE *f=fopen("/proc/stb/lcd/oled_brightness", "w");
if (!f)
eDebug("[LCD] can't set lcd brightness (%m)");
close(fp);
}
+#endif
return(0);
}
case 6: strcpy(m_exifinfo->Orientation,"Right-Top"); break;
case 7: strcpy(m_exifinfo->Orientation,"Right-Bottom"); break;
case 8: strcpy(m_exifinfo->Orientation,"Left-Bottom"); break;
- default: strcpy(m_exifinfo->Orientation,"Undefined rotation value");
+ default: strcpy(m_exifinfo->Orientation,"Undefined"); break;
}
break;
case TAG_EXIF_IMAGELENGTH:
-#include <png.h> // must be included before Python.h because of setjmp
+#define PNG_SKIP_SETJMP_CHECK
+#include <png.h>
#include <fcntl.h>
#include <lib/gdi/picload.h>
-#ifdef WITH_SDL
#include <lib/gdi/sdl.h>
-
+#include <lib/actions/action.h>
#include <lib/base/init.h>
#include <lib/base/init_num.h>
+#include <lib/driver/input_fake.h>
+#include <lib/driver/rcsdl.h>
#include <SDL.h>
-gSDLDC *gSDLDC::m_instance;
-
-gSDLDC::gSDLDC()
+gSDLDC::gSDLDC() : m_pump(eApp, 1)
{
- if (SDL_Init(SDL_INIT_VIDEO) < 0)
- {
+ if (SDL_Init(SDL_INIT_VIDEO) < 0) {
eWarning("Could not initialize SDL: %s", SDL_GetError());
return;
}
-
- m_screen = SDL_SetVideoMode(720, 576, 32, SDL_HWSURFACE);
- if (!m_screen)
- {
- eWarning("Could not create SDL surface: %s", SDL_GetError());
- return;
- }
- m_instance=this;
-
+ setResolution(720, 576);
+
+ CONNECT(m_pump.recv_msg, gSDLDC::pumpEvent);
+
m_surface.type = 0;
- m_surface.x = m_screen->w;
- m_surface.y = m_screen->h;
- m_surface.bpp = m_screen->format->BitsPerPixel;
- m_surface.bypp = m_screen->format->BytesPerPixel;
- m_surface.stride = m_screen->pitch;
- m_surface.data = m_screen->pixels;
- m_surface.clut.colors=256;
- m_surface.clut.data=new gRGB[m_surface.clut.colors];
-
+ m_surface.clut.colors = 256;
+ m_surface.clut.data = new gRGB[m_surface.clut.colors];
+
m_pixmap = new gPixmap(&m_surface);
-
+
memset(m_surface.clut.data, 0, sizeof(*m_surface.clut.data)*m_surface.clut.colors);
+
+ run();
}
gSDLDC::~gSDLDC()
{
+ pushEvent(EV_QUIT);
+ kill();
SDL_Quit();
- m_instance=0;
}
-void gSDLDC::setPalette()
+void gSDLDC::keyEvent(const SDL_Event &event)
{
- if (!m_surface.clut.data)
- return;
-
-/* for (int i=0; i<256; ++i)
- {
- fb->CMAP()->red[i]=ramp[m_surface.clut.data[i].r]<<8;
- fb->CMAP()->green[i]=ramp[m_surface.clut.data[i].g]<<8;
- fb->CMAP()->blue[i]=ramp[m_surface.clut.data[i].b]<<8;
- fb->CMAP()->transp[i]=rampalpha[m_surface.clut.data[i].a]<<8;
- if (!fb->CMAP()->red[i])
- fb->CMAP()->red[i]=0x100;
- }
- fb->PutCMAP(); */
+ eSDLInputDriver *driver = eSDLInputDriver::getInstance();
+
+ eDebug("SDL Key %s: key=%d", (event.type == SDL_KEYDOWN) ? "Down" : "Up", event.key.keysym.sym);
+
+ if (driver)
+ driver->keyPressed(&event.key);
}
-void gSDLDC::exec(gOpcode *o)
+void gSDLDC::pumpEvent(const SDL_Event &event)
{
- switch (o->opcode)
- {
- case gOpcode::setPalette:
- {
- gDC::exec(o);
- setPalette();
+ switch (event.type) {
+ case SDL_KEYDOWN:
+ case SDL_KEYUP:
+ keyEvent(event);
+ break;
+ case SDL_QUIT:
+ eDebug("SDL Quit");
+ extern void quitMainloop(int exit_code);
+ quitMainloop(0);
break;
}
+}
+
+void gSDLDC::pushEvent(enum event code, void *data1, void *data2)
+{
+ SDL_Event event;
+
+ event.type = SDL_USEREVENT;
+ event.user.code = code;
+ event.user.data1 = data1;
+ event.user.data2 = data2;
+
+ SDL_PushEvent(&event);
+}
+
+void gSDLDC::exec(const gOpcode *o)
+{
+ switch (o->opcode) {
case gOpcode::flush:
- SDL_Flip(m_screen);
+ pushEvent(EV_FLIP);
eDebug("FLUSH");
break;
default:
}
}
-eAutoInitPtr<gSDLDC> init_gSDLDC(eAutoInitNumbers::graphic-1, "gSDLDC");
+void gSDLDC::setResolution(int xres, int yres)
+{
+ pushEvent(EV_SET_VIDEO_MODE, (void *)xres, (void *)yres);
+}
+
+/*
+ * SDL thread below...
+ */
+
+void gSDLDC::evSetVideoMode(unsigned long xres, unsigned long yres)
+{
+ m_screen = SDL_SetVideoMode(xres, yres, 32, SDL_HWSURFACE);
+ if (!m_screen) {
+ eFatal("Could not create SDL surface: %s", SDL_GetError());
+ return;
+ }
-#endif
+ m_surface.x = m_screen->w;
+ m_surface.y = m_screen->h;
+ m_surface.bpp = m_screen->format->BitsPerPixel;
+ m_surface.bypp = m_screen->format->BytesPerPixel;
+ m_surface.stride = m_screen->pitch;
+ m_surface.data = m_screen->pixels;
+
+ SDL_EnableUNICODE(1);
+}
+
+void gSDLDC::evFlip()
+{
+ SDL_Flip(m_screen);
+}
+
+void gSDLDC::thread()
+{
+ hasStarted();
+
+ bool stop = false;
+ while (!stop) {
+ SDL_Event event;
+ if (SDL_WaitEvent(&event)) {
+ switch (event.type) {
+ case SDL_KEYDOWN:
+ case SDL_KEYUP:
+ case SDL_QUIT:
+ m_pump.send(event);
+ break;
+ case SDL_USEREVENT:
+ switch (event.user.code) {
+ case EV_SET_VIDEO_MODE:
+ evSetVideoMode((unsigned long)event.user.data1, (unsigned long)event.user.data2);
+ break;
+ case EV_FLIP:
+ evFlip();
+ break;
+ case EV_QUIT:
+ stop = true;
+ break;
+ }
+ break;
+ }
+ }
+ }
+}
+
+eAutoInitPtr<gSDLDC> init_gSDLDC(eAutoInitNumbers::graphic-1, "gSDLDC");
#ifndef __lib_gdi_sdl_h
#define __lib_gdi_sdl_h
-#include "fb.h"
-#include "gpixmap.h"
-#include "grc.h"
+#include <lib/base/thread.h>
+#include <lib/gdi/gmaindc.h>
#include <SDL.h>
-class gSDLDC: public gDC
+class gSDLDC: public gMainDC, public eThread, public Object
{
+private:
SDL_Surface *m_screen;
- static gSDLDC *m_instance;
- void exec(gOpcode *opcode);
+ void exec(const gOpcode *opcode);
- void setPalette();
gSurface m_surface;
+
+ eFixedMessagePump<SDL_Event> m_pump;
+ void keyEvent(const SDL_Event &event);
+ void pumpEvent(const SDL_Event &event);
+ virtual void thread();
+
+ enum event {
+ EV_SET_VIDEO_MODE,
+ EV_FLIP,
+ EV_QUIT,
+ };
+
+ void pushEvent(enum event code, void *data1 = 0, void *data2 = 0);
+ void evSetVideoMode(unsigned long xres, unsigned long yres);
+ void evFlip();
+
public:
-
+ void setResolution(int xres, int yres);
gSDLDC();
virtual ~gSDLDC();
- static int getInstance(ePtr<gSDLDC> &ptr) { if (!m_instance) return -1; ptr = m_instance; return 0; }
int islocked() { return 0; }
};
-
#endif
-INCLUDES = \
+AM_CPPFLAGS = \
+ -I$(top_srcdir) \
-I$(top_srcdir)/include \
- -I$(top_srcdir)/src
+ -include Python.h \
+ -include $(top_builddir)/enigma2_config.h
noinst_LIBRARIES = libenigma_gui.a
libenigma_gui_a_SOURCES = \
- ebutton.cpp elabel.cpp eslider.cpp ewidget.cpp ewidgetdesktop.cpp \
- ewindow.cpp ewindowstyle.cpp elistbox.cpp elistboxcontent.cpp \
- epixmap.cpp ewindowstyleskinned.cpp einput.cpp einputstring.cpp einputnumber.cpp \
- ewidgetanimation.cpp epositiongauge.cpp evideo.cpp esubtitle.cpp ecanvas.cpp
+ ebutton.cpp \
+ ecanvas.cpp \
+ einput.cpp \
+ einputnumber.cpp \
+ einputstring.cpp \
+ elabel.cpp \
+ elistbox.cpp \
+ elistboxcontent.cpp \
+ epixmap.cpp \
+ epositiongauge.cpp \
+ eslider.cpp \
+ esubtitle.cpp \
+ evideo.cpp \
+ ewidget.cpp \
+ ewidgetanimation.cpp \
+ ewidgetdesktop.cpp \
+ ewindow.cpp \
+ ewindowstyle.cpp \
+ ewindowstyleskinned.cpp
+
+guiincludedir = $(pkgincludedir)/lib/gui
+guiinclude_HEADERS = \
+ ebutton.h \
+ ecanvas.h \
+ einput.h \
+ einputnumber.h \
+ einputstring.h \
+ elabel.h \
+ elistbox.h \
+ elistboxcontent.h \
+ epixmap.h \
+ epositiongauge.h \
+ eslider.h \
+ esubtitle.h \
+ evideo.h \
+ ewidget.h \
+ ewidgetanimation.h \
+ ewidgetdesktop.h \
+ ewindow.h \
+ ewindowstyle.h \
+ ewindowstyleskinned.h
{
Py_XDECREF(m_buildFunc);
Py_XDECREF(m_selectableFunc);
+ Py_XDECREF(m_template);
}
void eListboxPythonMultiContent::setSelectionClip(eRect &rect, bool update)
if ((icolor & 0xFF000000) == 0xFF000000)
{
int index = icolor & 0xFFFFFF;
- eDebug("[eListboxPythonMultiContent] template color index: %d", index);
+ if (PyTuple_GetItem(data, index) == Py_None)
+ return ePyObject();
return PyTuple_GetItem(data, index);
}
if (ppixmap)
{
ePtr<gPixmap> pixmap;
+ if (PyInt_Check(ppixmap) && data) /* if the pixmap is in fact a number, it refers to the data list */
+ ppixmap = PyTuple_GetItem(data, PyInt_AsLong(ppixmap));
+
if (SwigFromPython(pixmap, ppixmap))
{
eDebug("eListboxPythonMultiContent (Pixmap) get pixmap failed");
void eListboxPythonMultiContent::setTemplate(ePyObject tmplate)
{
+ Py_XDECREF(m_template);
m_template = tmplate;
+ Py_XINCREF(m_template);
}
// painter.fill(eRect(0, 10, s.width(), s.height()-20));
pts_t in = 0, out = 0;
+ int xm, xm_last = -1;
std::multiset<cueEntry>::iterator i(m_cue_entries.begin());
continue;
} else if (i->what == 1) /* out */
out = i++->where;
- else if (i->what == 2) /* mark */
+ else /* mark or last */
{
- int xm = scale(i->where);
- painter.setForegroundColor(gRGB(0xFF8080));
- painter.fill(eRect(xm - 2, 0, 4, s.height()));
+ xm = scale(i->where);
+ if (i->what == 2) {
+ painter.setForegroundColor(gRGB(0xFF8080));
+ if (xm - 2 < xm_last) /* Make sure last is not overdrawn */
+ painter.fill(eRect(xm_last, 0, 2 + xm - xm_last, s.height()));
+ else
+ painter.fill(eRect(xm - 2, 0, 4, s.height()));
+ } else if (i->what == 3) {
+ painter.setForegroundColor(gRGB(0x80FF80));
+ painter.fill(eRect(xm - 1, 0, 3, s.height()));
+ xm_last = xm + 2;
+ }
i++;
continue;
- } else /* other marker, like last position */
- {
- ++i;
- continue;
}
}
struct ePangoSubtitlePage
{
- pts_t show_pts;
+ pts_t m_show_pts;
int m_timeout; /* in milliseconds */
std::vector<ePangoSubtitlePageElement> m_elements;
void clear() { m_elements.clear(); }
};
+struct eVobSubtitlePage
+{
+ pts_t m_show_pts;
+ int m_timeout; /* in milliseconds */
+ ePtr<gPixmap> m_pixmap;
+};
+
class eDVBTeletextSubtitlePage;
-class eDVBPangoSubtitlePage;
-class ePangoSubtitlePage;
+class eDVBSubtitlePage;
class eSubtitleWidget: public eWidget, public Object
{
ePtr<gPixmap> target_pixmap;
m_screen.m_dc->getPixmap(target_pixmap);
- ASSERT(target_pixmap);
+ if (!target_pixmap) {
+ eDebug("no target pixmap! assuming bpp > 8 for accelerated graphics.");
+ return;
+ }
if (target_pixmap->surface && target_pixmap->surface->bpp > 8)
return;
void eWindowStyleManager::getStyle(int style_id, ePtr<eWindowStyle> &style)
{
- style = m_current_style[style_id];
+ std::map<int, ePtr<eWindowStyle> >::iterator it = m_current_style.find(style_id);
+ ASSERT(it != m_current_style.end());
+ style = it->second;
}
void eWindowStyleManager::setStyle(int style_id, eWindowStyle *style)
-INCLUDES = \
- -I$(top_srcdir)/include
+AM_CPPFLAGS = \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/include \
+ -include Python.h \
+ -include $(top_builddir)/enigma2_config.h
noinst_LIBRARIES = libenigma_mmi.a
-libenigma_mmi_a_SOURCES = mmi_ui.cpp
+libenigma_mmi_a_SOURCES = \
+ mmi_ui.cpp
+
+mmiincludedir = $(pkgincludedir)/lib/mmi
+mmiinclude_HEADERS = \
+ mmi_ui.h
-INCLUDES = \
- -I$(top_srcdir)/include
+AM_CPPFLAGS = \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/include \
+ -include Python.h \
+ -include $(top_builddir)/enigma2_config.h
noinst_LIBRARIES = libenigma_nav.a
libenigma_nav_a_SOURCES = \
- core.cpp pcore.cpp
-
+ core.cpp \
+ pcore.cpp
+navincludedir = $(pkgincludedir)/lib/nav
+navinclude_HEADERS = \
+ core.h \
+ pcore.h
--- /dev/null
+enigma.py
+enigma_python.cpp
def installIPK(self, directory, name):
if self.blocking:
- os.system("ipkg install " + directory + name)
+ os.system("opkg install " + directory + name)
self.installNext()
else:
self.ipkg = IpkgComponent()
"mpeg": "movie",
"mkv": "movie",
"mp4": "movie",
- "mov": "movie"
+ "mov": "movie",
+ "m2ts": "movie",
}
def FileEntryComponent(name, absolute = None, isDir = False):
import time
from Components.Console import Console
+def MajorMinor(path):
+ rdev = stat(path).st_rdev
+ return (major(rdev),minor(rdev))
+
def readFile(filename):
file = open(filename)
data = file.read().strip()
file.close()
return data
-class Harddisk:
- DEVTYPE_UDEV = 0
- DEVTYPE_DEVFS = 1
+DEVTYPE_UDEV = 0
+DEVTYPE_DEVFS = 1
+class Harddisk:
def __init__(self, device):
self.device = device
if access("/dev/.udev", 0):
- self.type = self.DEVTYPE_UDEV
+ self.type = DEVTYPE_UDEV
elif access("/dev/.devfsd", 0):
- self.type = self.DEVTYPE_DEVFS
+ self.type = DEVTYPE_DEVFS
else:
print "Unable to determine structure of /dev"
self.disk_path = ''
self.phys_path = path.realpath(self.sysfsPath('device'))
- if self.type == self.DEVTYPE_UDEV:
+ if self.type == DEVTYPE_UDEV:
self.dev_path = '/dev/' + self.device
self.disk_path = self.dev_path
- elif self.type == self.DEVTYPE_DEVFS:
+ elif self.type == DEVTYPE_DEVFS:
tmp = readFile(self.sysfsPath('dev')).split(':')
s_major = int(tmp[0])
s_minor = int(tmp[1])
return self.device < ob.device
def partitionPath(self, n):
- if self.type == self.DEVTYPE_UDEV:
+ if self.type == DEVTYPE_UDEV:
return self.dev_path + n
- elif self.type == self.DEVTYPE_DEVFS:
+ elif self.type == DEVTYPE_DEVFS:
return self.dev_path + '/part' + n
def sysfsPath(self, filename):
def bus(self):
# CF (7025 specific)
- if self.type == self.DEVTYPE_UDEV:
+ if self.type == DEVTYPE_UDEV:
ide_cf = False # FIXME
- elif self.type == self.DEVTYPE_DEVFS:
+ elif self.type == DEVTYPE_DEVFS:
ide_cf = self.device[:2] == "hd" and "host0" not in self.dev_path
internal = "pci" in self.phys_path
for line in lines:
parts = line.strip().split(" ")
- if path.realpath(parts[0]).startswith(self.dev_path):
- try:
+ real_path = path.realpath(parts[0])
+ if not real_path[-1].isdigit():
+ continue
+ try:
+ if MajorMinor(real_path) == MajorMinor(self.partitionPath(real_path[-1])):
stat = statvfs(parts[1])
- except OSError:
- continue
- return stat.f_bfree/1000 * stat.f_bsize/1000
-
+ return stat.f_bfree/1000 * stat.f_bsize/1000
+ except OSError:
+ pass
return -1
def numPartitions(self):
numPart = -1
- if self.type == self.DEVTYPE_UDEV:
+ if self.type == DEVTYPE_UDEV:
try:
devdir = listdir('/dev')
except OSError:
if filename.startswith(self.device):
numPart += 1
- elif self.type == self.DEVTYPE_DEVFS:
+ elif self.type == DEVTYPE_DEVFS:
try:
idedir = listdir(self.dev_path)
except OSError:
cmd = "umount"
- for line in lines:
- parts = line.strip().split(" ")
- if path.realpath(parts[0]).startswith(self.dev_path):
- cmd = ' ' . join([cmd, parts[1]])
+ for line in lines:
+ parts = line.strip().split(" ")
+ real_path = path.realpath(parts[0])
+ if not real_path[-1].isdigit():
+ continue
+ try:
+ if MajorMinor(real_path) == MajorMinor(self.partitionPath(real_path[-1])):
+ cmd = ' ' . join([cmd, parts[1]])
+ break
+ except OSError:
+ pass
res = system(cmd)
return (res >> 8)
def createPartition(self):
- cmd = 'printf "0,\n;\n;\n;\ny\n" | sfdisk -f ' + self.disk_path
+ cmd = 'printf "8,\n;0,0\n;0,0\n;0,0\ny\n" | sfdisk -f -uS ' + self.disk_path
res = system(cmd)
return (res >> 8)
res = -1
for line in lines:
parts = line.strip().split(" ")
- if path.realpath(parts[0]) == self.partitionPath("1"):
- cmd = "mount -t ext3 " + parts[0]
- res = system(cmd)
- break
+ real_path = path.realpath(parts[0])
+ if not real_path[-1].isdigit():
+ continue
+ try:
+ if MajorMinor(real_path) == MajorMinor(self.partitionPath(real_path[-1])):
+ cmd = "mount -t ext3 " + parts[0]
+ res = system(cmd)
+ break
+ except OSError:
+ pass
return (res >> 8)
return True
return False
-DEVICEDB = \
+DEVICEDB_SR = \
{"dm8000":
{
- # dm8000:
- "/devices/platform/brcm-ehci.0/usb1/1-1/1-1.1/1-1.1:1.0": "Front USB Slot",
- "/devices/platform/brcm-ehci.0/usb1/1-1/1-1.2/1-1.2:1.0": "Back, upper USB Slot",
- "/devices/platform/brcm-ehci.0/usb1/1-1/1-1.3/1-1.3:1.0": "Back, lower USB Slot",
- "/devices/platform/brcm-ehci-1.1/usb2/2-1/2-1:1.0/host1/target1:0:0/1:0:0:0": "DVD Drive",
+ "/devices/pci0000:01/0000:01:00.0/host0/target0:0:0/0:0:0:0": _("DVD Drive"),
+ "/devices/pci0000:01/0000:01:00.0/host1/target1:0:0/1:0:0:0": _("DVD Drive"),
+ "/devices/platform/brcm-ehci-1.1/usb2/2-1/2-1:1.0/host3/target3:0:0/3:0:0:0": _("DVD Drive"),
+ },
+ "dm800":
+ {
+ },
+ "dm7025":
+ {
+ }
+ }
+
+DEVICEDB = \
+ {"dm8000":
+ {
+ "/devices/platform/brcm-ehci.0/usb1/1-1/1-1.1/1-1.1:1.0": _("Front USB Slot"),
+ "/devices/platform/brcm-ehci.0/usb1/1-1/1-1.2/1-1.2:1.0": _("Back, upper USB Slot"),
+ "/devices/platform/brcm-ehci.0/usb1/1-1/1-1.3/1-1.3:1.0": _("Back, lower USB Slot"),
+ "/devices/platform/brcm-ehci.0/usb1/1-1/1-1.1/1-1.1:1.0": _("Front USB Slot"),
+ "/devices/platform/brcm-ehci-1.1/usb2/2-1/2-1:1.0/": _("Internal USB Slot"),
+ "/devices/platform/brcm-ohci-1.1/usb4/4-1/4-1:1.0/": _("Internal USB Slot"),
},
"dm800":
{
- # dm800:
"/devices/platform/brcm-ehci.0/usb1/1-2/1-2:1.0": "Upper USB Slot",
"/devices/platform/brcm-ehci.0/usb1/1-1/1-1:1.0": "Lower USB Slot",
},
"dm7025":
{
- # dm7025:
"/devices/pci0000:00/0000:00:14.1/ide1/1.0": "CF Card Slot", #hdc
"/devices/pci0000:00/0000:00:14.1/ide0/0.0": "Internal Harddisk"
}
self.hdd = [ ]
self.cd = ""
self.partitions = [ ]
+ self.devices_scanned_on_init = [ ]
self.on_partition_list_change = CList()
def enumerateBlockDevices(self):
print "enumerating block devices..."
for blockdev in listdir("/sys/block"):
- error, blacklisted, removable, is_cdrom, partitions, medium_found = self.getBlockDevInfo(blockdev)
- print "found block device '%s':" % blockdev,
- if error:
- print "error querying properties"
- elif blacklisted:
- print "blacklisted"
- elif not medium_found:
- print "no medium"
- else:
- print "ok, removable=%s, cdrom=%s, partitions=%s, device=%s" % (removable, is_cdrom, partitions, blockdev)
-
- self.addHotplugPartition(blockdev)
- for part in partitions:
- self.addHotplugPartition(part)
+ error, blacklisted, removable, is_cdrom, partitions, medium_found = self.addHotplugPartition(blockdev)
+ if not error and not blacklisted:
+ if medium_found:
+ for part in partitions:
+ self.addHotplugPartition(part)
+ self.devices_scanned_on_init.append((blockdev, removable, is_cdrom, medium_found))
def getAutofsMountpoint(self, device):
return "/autofs/%s/" % (device)
+ def is_hard_mounted(self, device):
+ mounts = file('/proc/mounts').read().split('\n')
+ for x in mounts:
+ if x.find('/autofs') == -1 and x.find(device) != -1:
+ return True
+ return False
+
def addHotplugPartition(self, device, physdev = None):
if not physdev:
dev, part = self.splitDeviceName(device)
physdev = dev
print "couldn't determine blockdev physdev for device", device
- # device is the device name, without /dev
- # physdev is the physical device path, which we (might) use to determine the userfriendly name
- description = self.getUserfriendlyDeviceName(device, physdev)
+ error, blacklisted, removable, is_cdrom, partitions, medium_found = self.getBlockDevInfo(device)
+ print "found block device '%s':" % device,
- p = Partition(mountpoint = self.getAutofsMountpoint(device), description = description, force_mounted = True, device = device)
- self.partitions.append(p)
- self.on_partition_list_change("add", p)
+ if blacklisted:
+ print "blacklisted"
+ else:
+ if error:
+ print "error querying properties"
+ elif not medium_found:
+ print "no medium"
+ else:
+ print "ok, removable=%s, cdrom=%s, partitions=%s" % (removable, is_cdrom, partitions)
+
+ l = len(device)
+ if l:
+ # see if this is a harddrive
+ if not device[l-1].isdigit() and not removable and not is_cdrom:
+ self.hdd.append(Harddisk(device))
+ self.hdd.sort()
+ SystemInfo["Harddisk"] = len(self.hdd) > 0
+
+ if (not removable or medium_found) and not self.is_hard_mounted(device):
+ # device is the device name, without /dev
+ # physdev is the physical device path, which we (might) use to determine the userfriendly name
+ description = self.getUserfriendlyDeviceName(device, physdev)
+ p = Partition(mountpoint = self.getAutofsMountpoint(device), description = description, force_mounted = True, device = device)
+ self.partitions.append(p)
+ self.on_partition_list_change("add", p)
- # see if this is a harddrive
- l = len(device)
- if l and not device[l-1].isdigit():
- error, blacklisted, removable, is_cdrom, partitions, medium_found = self.getBlockDevInfo(device)
- if not blacklisted and not removable and not is_cdrom and medium_found:
- self.hdd.append(Harddisk(device))
- self.hdd.sort()
- SystemInfo["Harddisk"] = len(self.hdd) > 0
+ return error, blacklisted, removable, is_cdrom, partitions, medium_found
def removeHotplugPartition(self, device):
mountpoint = self.getAutofsMountpoint(device)
def getUserfriendlyDeviceName(self, dev, phys):
dev, part = self.splitDeviceName(dev)
description = "External Storage %s" % dev
+ have_model_descr = False
try:
description = readFile("/sys" + phys + "/model")
+ have_model_descr = True
except IOError, s:
print "couldn't read model: ", s
from Tools.HardwareInfo import HardwareInfo
- for physdevprefix, pdescription in DEVICEDB.get(HardwareInfo().device_name,{}).items():
+ if dev.find('sr') == 0 and dev[2].isdigit():
+ devicedb = DEVICEDB_SR
+ else:
+ devicedb = DEVICEDB
+ for physdevprefix, pdescription in devicedb.get(HardwareInfo().device_name,{}).items():
if phys.startswith(physdevprefix):
- description = pdescription
-
+ if have_model_descr:
+ description = pdescription + ' - ' + description
+ else:
+ description = pdescription
# not wholedisk and not partition 1
if part and part != 1:
description += " (Partition %d)" % part
CMD_UPDATE = 3
CMD_UPGRADE = 4
- def __init__(self, ipkg = '/usr/bin/ipkg'):
+ def __init__(self, ipkg = 'opkg'):
self.ipkg = ipkg
- self.opkgAvail = fileExists('/usr/bin/opkg')
self.cmd = eConsoleAppContainer()
self.cache = None
self.callbackList = []
if data.find('Downloading') == 0:
self.callCallbacks(self.EVENT_DOWNLOAD, data.split(' ', 5)[1].strip())
elif data.find('Upgrading') == 0:
- if self.opkgAvail:
- self.callCallbacks(self.EVENT_UPGRADE, data.split(' ', 1)[1].split(' ')[0])
- else:
- self.callCallbacks(self.EVENT_UPGRADE, data.split(' ', 1)[1].split(' ')[0])
+ self.callCallbacks(self.EVENT_UPGRADE, data.split(' ', 1)[1].split(' ')[0])
elif data.find('Installing') == 0:
self.callCallbacks(self.EVENT_INSTALL, data.split(' ', 1)[1].split(' ')[0])
elif data.find('Removing') == 0:
from Components.Console import Console
from os import listdir as os_listdir, path as os_path
from re import compile as re_compile
+from enigma import eEnv
class Keyboard:
def __init__(self):
self.readKeyboardMapFiles()
def readKeyboardMapFiles(self):
- for keymapfile in os_listdir('/usr/share/keymaps/'):
+ for keymapfile in os_listdir(eEnv.resolve('${datadir}/keymaps/')):
if (keymapfile.endswith(".info")):
- f = open('/usr/share/keymaps/' + keymapfile)
+ f = open(eEnv.resolve('${datadir}/keymaps/') + keymapfile)
mapfile = None
mapname = None
for line in f:
try:
keymap = self.keyboardmaps[index]
print "Activating keymap:",keymap[1]
- keymappath = '/usr/share/keymaps/' + keymap[0]
+ keymappath = eEnv.resolve('${datadir}/keymaps/') + keymap[0]
if os_path.exists(keymappath):
Console().ePopen(("loadkmap < " + str(keymappath)))
except:
def IPaddrFinished(self, result, retval, extra_args):
(iface, callback ) = extra_args
- data = { 'up': False, 'dhcp': False, 'preup' : False, 'postdown' : False }
+ data = { 'up': False, 'dhcp': False, 'preup' : False, 'predown' : False }
globalIPpattern = re_compile("scope global")
ipRegexp = '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'
netRegexp = '[0-9]{1,2}'
if iface.has_key('gateway'):
fp.write(" gateway %d.%d.%d.%d\n" % tuple(iface['gateway']))
if iface.has_key("configStrings"):
- fp.write("\n" + iface["configStrings"] + "\n")
+ fp.write(iface["configStrings"])
if iface["preup"] is not False and not iface.has_key("configStrings"):
fp.write(iface["preup"])
- fp.write(iface["postdown"])
- fp.write("\n")
+ if iface["predown"] is not False and not iface.has_key("configStrings"):
+ fp.write(iface["predown"])
+ fp.write("\n")
fp.close()
self.writeNameserverConfig()
if (split[0] == "pre-up"):
if self.ifaces[currif].has_key("preup"):
self.ifaces[currif]["preup"] = i
- if (split[0] == "post-down"):
- if self.ifaces[currif].has_key("postdown"):
- self.ifaces[currif]["postdown"] = i
+ if (split[0] in ("pre-down","post-down")):
+ if self.ifaces[currif].has_key("predown"):
+ self.ifaces[currif]["predown"] = i
for ifacename, iface in ifaces.items():
if self.ifaces.has_key(ifacename):
eDVBSatelliteDiseqcParameters as diseqcParam, \
eDVBSatelliteSwitchParameters as switchParam, \
eDVBSatelliteRotorParameters as rotorParam, \
- eDVBResourceManager, eDVBDB
+ eDVBResourceManager, eDVBDB, eEnv
from time import localtime, mktime
from datetime import datetime
if currLnb.diseqcMode.value == "1_0":
currCO = currLnb.commandOrder1_0.value
+ sec.setRepeats(0)
else:
currCO = currLnb.commandOrder.value
unicablelnbproducts = {}
unicablematrixproducts = {}
- doc = xml.etree.cElementTree.parse("/usr/share/enigma2/unicable.xml")
+ doc = xml.etree.cElementTree.parse(eEnv.resolve("${datadir}/enigma2/unicable.xml"))
root = doc.getroot()
entry = root.find("lnb")
from MenuList import MenuList
-from Components.ParentalControl import parentalControl, IMG_WHITESERVICE, IMG_WHITEBOUQUET, IMG_BLACKSERVICE, IMG_BLACKBOUQUET
+from Components.ParentalControl import IMG_WHITESERVICE, IMG_WHITEBOUQUET, IMG_BLACKSERVICE, IMG_BLACKBOUQUET
from Tools.Directories import SCOPE_SKIN_IMAGE, resolveFilename
from enigma import eListboxPythonMultiContent, gFont, RT_HALIGN_LEFT
self.l.setItemHeight(32)
def toggleSelectedLock(self):
+ from Components.ParentalControl import parentalControl
print "self.l.getCurrentSelection():", self.l.getCurrentSelection()
print "self.l.getCurrentSelectionIndex():", self.l.getCurrentSelectionIndex()
curSel = self.l.getCurrentSelection()
if curSel[0][2]:
parentalControl.unProtectService(self.l.getCurrentSelection()[0][0])
else:
- parentalControl.protectService(self.l.getCurrentSelection()[0][0])
+ parentalControl.protectService(self.l.getCurrentSelection()[0][0])
#Instead of just negating the locked- flag, now I call the getProtectionType every time...
self.list[self.l.getCurrentSelectionIndex()] = ParentalControlEntryComponent(curSel[0][0], curSel[0][1], parentalControl.getProtectionType(curSel[0][0]))
self.l.setList(self.list)
import keymapparser
class PluginComponent:
+ firstRun = True
+ restartRequired = False
+
def __init__(self):
self.plugins = {}
self.pluginList = [ ]
+ self.installedPluginList = [ ]
self.setPluginPrefix("Plugins.")
self.resetWarnings()
self.prefix = prefix
def addPlugin(self, plugin):
- self.pluginList.append(plugin)
- for x in plugin.where:
- self.plugins.setdefault(x, []).append(plugin)
- if x == PluginDescriptor.WHERE_AUTOSTART:
- plugin(reason=0)
-
+ if self.firstRun or plugin.needsRestart is False:
+ self.pluginList.append(plugin)
+ for x in plugin.where:
+ self.plugins.setdefault(x, []).append(plugin)
+ if x == PluginDescriptor.WHERE_AUTOSTART:
+ plugin(reason=0)
+ else:
+ self.restartRequired = True
+
def removePlugin(self, plugin):
self.pluginList.remove(plugin)
for x in plugin.where:
directory_category = directory + c
if not os_path.isdir(directory_category):
continue
- open(directory_category + "/__init__.py", "a").close()
for pluginname in os_listdir(directory_category):
path = directory_category + "/" + pluginname
if os_path.isdir(path):
plugins = [ plugins ]
for p in plugins:
+ p.path = path
p.updateIcon(path)
new_plugins.append(p)
# internally, the "fnc" argument will be compared with __eq__
plugins_added = [p for p in new_plugins if p not in self.pluginList]
plugins_removed = [p for p in self.pluginList if not p.internal and p not in new_plugins]
+
+ #ignore already installed but reloaded plugins
+ for p in plugins_removed:
+ for pa in plugins_added:
+ if pa.path == p.path and pa.where == p.where:
+ pa.needsRestart = False
for p in plugins_removed:
self.removePlugin(p)
for p in plugins_added:
- self.addPlugin(p)
+ if self.firstRun or p.needsRestart is False:
+ self.addPlugin(p)
+ else:
+ for installed_plugin in self.installedPluginList:
+ if installed_plugin.path == p.path:
+ if installed_plugin.where == p.where:
+ p.needsRestart = False
+ self.addPlugin(p)
+
+ if self.firstRun:
+ self.firstRun = False
+ self.installedPluginList = self.pluginList
def getPlugins(self, where):
"""Get list of plugins in a specific category"""
for x in where:
res.extend(self.plugins.get(x, [ ]))
-
- return res
+ res.sort(key=lambda x:x.weight)
+ return res
def getPluginsForMenu(self, menuid):
res = [ ]
## Picon renderer by Gruffy .. some speedups by Ghost
##
from Renderer import Renderer
-from enigma import ePixmap
+from enigma import ePixmap, eEnv
from Tools.Directories import fileExists, SCOPE_SKIN_IMAGE, SCOPE_CURRENT_SKIN, resolveFilename
class Picon(Renderer):
- searchPaths = ('/usr/share/enigma2/%s/',
+ searchPaths = (eEnv.resolve('${datadir}/enigma2/%s/'),
'/media/cf/%s/',
'/media/usb/%s/')
def newService(self, ref):
if not self.service or not ref or self.service != ref:
self.service = ref
- if not ref or (ref.flags & Ref.flagDirectory) == Ref.flagDirectory or ref.flags & Ref.isMarker:
+ if not ref:
self.changed((self.CHANGED_CLEAR,))
else:
self.changed((self.CHANGED_ALL,))
from time import localtime, mktime, gmtime
from ServiceReference import ServiceReference
from enigma import iServiceInformation, eServiceCenter, eServiceReference
+from timer import TimerEntry
class TimerSanityCheck:
def __init__(self, timerlist, newtimer=None):
self.rep_eventlist.append((begin, idx))
begin += 86400
rflags >>= 1
- else:
+ elif timer.state < TimerEntry.StateEnded:
self.nrep_eventlist.extend([(timer.begin,self.bflag,idx),(timer.end,self.eflag,idx)])
idx += 1
from Components.Harddisk import harddiskmanager
from config import ConfigSubsection, ConfigYesNo, config, ConfigSelection, ConfigText, ConfigNumber, ConfigSet, ConfigLocations
from Tools.Directories import resolveFilename, SCOPE_HDD
-from enigma import Misc_Options, setTunerTypePriorityOrder;
+from enigma import Misc_Options, setTunerTypePriorityOrder, eEnv;
from SystemInfo import SystemInfo
import os
SystemInfo["12V_Output"] = Misc_Options.getInstance().detected_12V_output()
- config.usage.keymap = ConfigText(default = "/usr/share/enigma2/keymap.xml")
+ config.usage.keymap = ConfigText(default = eEnv.resolve("${datadir}/enigma2/keymap.xml"))
config.seek = ConfigSubsection()
config.seek.selfdefined_13 = ConfigNumber(default=15)
config.seek.selfdefined_79 = ConfigNumber(default=300)
config.seek.speeds_forward = ConfigSet(default=[2, 4, 8, 16, 32, 64, 128], choices=[2, 4, 6, 8, 12, 16, 24, 32, 48, 64, 96, 128])
- config.seek.speeds_backward = ConfigSet(default=[8, 16, 32, 64, 128], choices=[1, 2, 4, 6, 8, 12, 16, 24, 32, 48, 64, 96, 128])
+ config.seek.speeds_backward = ConfigSet(default=[2, 4, 8, 16, 32, 64, 128], choices=[1, 2, 4, 6, 8, 12, 16, 24, 32, 48, 64, 96, 128])
config.seek.speeds_slowmotion = ConfigSet(default=[2, 4, 8], choices=[2, 4, 6, 8, 12, 16, 25])
config.seek.enter_forward = ConfigSelection(default = "2", choices = ["2", "4", "6", "8", "12", "16", "24", "32", "48", "64", "96", "128"])
config.seek.enter_backward = ConfigSelection(default = "1", choices = ["1", "2", "4", "6", "8", "12", "16", "24", "32", "48", "64", "96", "128"])
- config.seek.stepwise_minspeed = ConfigSelection(default = "16", choices = ["Never", "2", "4", "6", "8", "12", "16", "24", "32", "48", "64", "96", "128"])
- config.seek.stepwise_repeat = ConfigSelection(default = "3", choices = ["2", "3", "4", "5", "6"])
config.seek.on_pause = ConfigSelection(default = "play", choices = [
("play", _("Play")),
("step", _("Singlestep (GOP)")),
("last", _("Last speed")) ])
+ config.usage.timerlist_finished_timer_position = ConfigSelection(default = "beginning", choices = [("beginning", _("at beginning")), ("end", _("at end"))])
+
def updateEnterForward(configElement):
if not configElement.value:
configElement.value = [2]
self.pickle_this("config", self.saved_value, result)
return ''.join(result)
- def unpickle(self, lines):
+ def unpickle(self, lines, base_file=True):
tree = { }
for l in lines:
if not l or l[0] == '#':
continue
n = l.find('=')
+ name = l[:n]
val = l[n+1:].strip()
- names = l[:n].split('.')
+ names = name.split('.')
# if val.find(' ') != -1:
# val = val[:val.find(' ')]
base[names[-1]] = val
+ if not base_file: # not the initial config file..
+ #update config.x.y.value when exist
+ try:
+ configEntry = eval(name)
+ if configEntry is not None:
+ configEntry.value = val
+ except (SyntaxError, KeyError):
+ pass
+
# we inherit from ConfigSubsection, so ...
#object.__setattr__(self, "saved_value", tree["config"])
if "config" in tree:
def saveToFile(self, filename):
text = self.pickle()
- f = open(filename, "w")
- f.write(text)
- f.close()
+ try:
+ f = open(filename, "w")
+ f.write(text)
+ f.close()
+ except IOError:
+ print "Config: Couldn't write %s" % filename
- def loadFromFile(self, filename):
+ def loadFromFile(self, filename, base_file=False):
f = open(filename, "r")
- self.unpickle(f.readlines())
+ self.unpickle(f.readlines(), base_file)
f.close()
config = Config()
def load(self):
try:
- config.loadFromFile(self.CONFIG_FILE)
+ config.loadFromFile(self.CONFIG_FILE, True)
except IOError, e:
print "unable to load config (%s), assuming defaults..." % str(e)
-INCLUDES = \
+AM_CPPFLAGS = \
+ -I$(top_srcdir) \
-I$(top_srcdir)/include \
- -I$(top_srcdir)/src
+ -include Python.h \
+ -include $(top_builddir)/enigma2_config.h
SUBDIRS = Components Tools Screens Plugins
noinst_LIBRARIES = libenigma_python.a
libenigma_python_a_SOURCES = \
- python.cpp enigma_python_wrap.cxx connections.cpp
+ connections.cpp \
+ python.cpp
-enigma_python_wrap.cxx: enigma_python.i
- swig -I$(top_srcdir)/ -c++ -python -O -nortti -nothreads enigma_python.i
- python enigma_py_patcher.py
+pythonincludedir = $(pkgincludedir)/lib/python
+pythoninclude_HEADERS = \
+ connections.h \
+ python.h \
+ swig.h
-enigma.py: enigma_python_wrap.cxx
+nodist_libenigma_python_a_SOURCES = \
+ enigma_python.cpp
-CLEANFILES = enigma.py enigma_python_wrap.cxx
+noinst_PYTHON = \
+ enigma_py_patcher.py
+
+EXTRA_DIST = \
+ enigma_python.i
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/enigma_python.Pcpp@am__quote@
+
+.i.cpp:
+ $(AM_V_GEN)$(SWIG) $(AX_SWIG_PYTHON_OPT) -MT $@ -MD -MF $(DEPDIR)/$*.Tpo -I$(top_srcdir) -O -nortti -nothreads -o $@ $<
+ $(AM_V_at)mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Pcpp
+ $(AM_V_at)$(PYTHON) $(srcdir)/enigma_py_patcher.py
+
+enigma.py: enigma_python.cpp
+
+CLEANFILES = enigma.py enigma_python.cpp
installdir = $(pkglibdir)/python
install_PYTHON = \
enigma.py
+
-installdir = $(LIBDIR)/enigma2/python/Plugins/DemoPlugins/TPMDemo
+installdir = $(pkglibdir)/python/Plugins/DemoPlugins/TPMDemo
install_PYTHON = \
__init__.py \
# would start your plugin here
def Plugins(**kwargs):
- return [PluginDescriptor(name = "TPM Demo", description = _("A demo plugin for TPM usage."), where = PluginDescriptor.WHERE_EXTENSIONSMENU, fnc = main),
- PluginDescriptor(name = "TPM Demo", description = _("A demo plugin for TPM usage."), icon = "plugin.png", where = PluginDescriptor.WHERE_PLUGINMENU, fnc = main)]
+ return [PluginDescriptor(name = "TPM Demo", description = _("A demo plugin for TPM usage."), where = PluginDescriptor.WHERE_EXTENSIONSMENU, needsRestart = False, fnc = main),
+ PluginDescriptor(name = "TPM Demo", description = _("A demo plugin for TPM usage."), icon = "plugin.png", where = PluginDescriptor.WHERE_PLUGINMENU, needsRestart = False, fnc = main)]
\ No newline at end of file
print "You entered", returnValue
def Plugins(**kwargs):
- return PluginDescriptor(name="Test", description="plugin to test some capabilities", where = PluginDescriptor.WHERE_PLUGINMENU, fnc=main)
+ return PluginDescriptor(name="Test", description="plugin to test some capabilities", where = PluginDescriptor.WHERE_PLUGINMENU, needsRestart = False, fnc=main)
session.open(CutListEditor, service)
def Plugins(**kwargs):
- return PluginDescriptor(name="Cutlist Editor", description=_("Cutlist editor..."), where = PluginDescriptor.WHERE_MOVIELIST, fnc=main)
+ return PluginDescriptor(name="Cutlist Editor", description=_("Cutlist editor..."), where = PluginDescriptor.WHERE_MOVIELIST, needsRestart = False, fnc=main)
from Components.config import config, ConfigSubsection, ConfigInteger, ConfigText, ConfigSelection, getConfigListEntry, ConfigSequence, ConfigSubList
import DVDTitle
import xml.dom.minidom
+from Tools.Directories import resolveFilename, SCOPE_PLUGINS, SCOPE_FONTS
class ConfigColor(ConfigSequence):
def __init__(self, default = [128,128,128]):
for key in self.filekeys:
val = self.settings.dict()[key].getValue()
if not fileExists(val):
+ if val[0] != "/":
+ if key.find("font") == 0:
+ val = resolveFilename(SCOPE_FONTS)+val
+ else:
+ val = resolveFilename(SCOPE_PLUGINS)+"Extensions/DVDBurn/"+val
+ if fileExists(val):
+ self.settings.dict()[key].setValue(val)
+ continue
self.error += "\n%s '%s' not found" % (key, val)
#except AttributeError:
#print "loadProject AttributeError", self.error
<settings
name="Dreambox DVD record"
authormode="menu_linked"
- menutemplate="/usr/lib/enigma2/python/Plugins/Extensions/DVDBurn/Thumbs_menu_clouds.ddvdm.xml"
+ menutemplate="Thumbs_menu_clouds.ddvdm.xml"
titlesetmode="multi"
- vmgm="/usr/lib/enigma2/python/Plugins/Extensions/DVDBurn/vmgmdream.mpg"
+ vmgm="vmgmdream.mpg"
output="dvd"
- isopath="/media/hdd/movie/"
+ isopath="/hdd/movie/"
dataformat="iso9660_4"
/>
<titles> </titles>
title = job.project.titles[job.i]
self.global_preconditions.append(DiskspacePrecondition(title.estimatedDiskspace))
self.setTool("projectx")
- self.args += [inputfile, "-demux", "-out", self.job.workspace ]
+ self.args += [inputfile, "-demux", "-set", "ExportPanel.Streamtype.Subpicture=0", "-set", "ExportPanel.Streamtype.Teletext=0", "-out", self.job.workspace ]
self.end = 300
self.prog_state = 0
self.weighting = 1000
print "[DemuxTask::cleanup]"
self.mplex_streamfiles = [ self.mplex_videofile ]
for pid in self.relevantAudioPIDs:
- self.mplex_streamfiles.append(self.mplex_audiofiles[pid])
+ if pid in self.mplex_audiofiles:
+ self.mplex_streamfiles.append(self.mplex_audiofiles[pid])
print self.mplex_streamfiles
if failed:
<settings
titleformat="$i. $t"
subtitleformat="$D.$M.$Y, $T $C, $d"
- menubg="/usr/lib/enigma2/python/Plugins/Extensions/DVDBurn/dreamdvd_boat.jpg"
- menuaudio="/usr/lib/enigma2/python/Plugins/Extensions/DVDBurn/silence.mp2"
+ menubg="dreamdvd_boat.jpg"
+ menuaudio="silence.mp2"
dimensions="(720, 576)"
rows="5"
cols="1"
color_button="[8, 0, 0]"
color_highlight="[0, 192, 192]"
color_headline="[0, 0, 128]"
- fontface_headline="/usr/share/fonts/nmsbd.ttf"
- fontface_title="/usr/share/fonts/nmsbd.ttf"
- fontface_subtitle="/usr/share/fonts/nmsbd.ttf"
+ fontface_headline="nmsbd.ttf"
+ fontface_title="nmsbd.ttf"
+ fontface_subtitle="nmsbd.ttf"
fontsize_headline="46"
fontsize_title="24"
fontsize_subtitle="14"
<settings
titleformat="$t"
subtitleformat="$d"
- menubg="/usr/lib/enigma2/python/Plugins/Extensions/DVDBurn/dreamdvd_clouds.jpg"
- menuaudio="/usr/lib/enigma2/python/Plugins/Extensions/DVDBurn/silence.mp2"
+ menubg="dreamdvd_clouds.jpg"
+ menuaudio="silence.mp2"
dimensions="(720, 576)"
rows="2"
cols="2"
color_button="[8, 0, 0]"
color_highlight="[128, 0, 0]"
color_headline="[128, 0, 0]"
- fontface_headline="/usr/share/fonts/nmsbd.ttf"
- fontface_title="/usr/share/fonts/nmsbd.ttf"
- fontface_subtitle="/usr/share/fonts/nmsbd.ttf"
+ fontface_headline="nmsbd.ttf"
+ fontface_title="nmsbd.ttf"
+ fontface_subtitle="nmsbd.ttf"
fontsize_headline="46"
fontsize_title="18"
fontsize_subtitle="12"
def Plugins(**kwargs):
descr = _("Burn to DVD")
- return [PluginDescriptor(name="DVD Burn", description=descr, where = PluginDescriptor.WHERE_MOVIELIST, fnc=main_add, icon="dvdburn.png"),
- PluginDescriptor(name="DVD Burn", description=descr, where = PluginDescriptor.WHERE_PLUGINMENU, fnc=main, icon="dvdburn.png") ]
+ return [PluginDescriptor(name="DVD Burn", description=descr, where = PluginDescriptor.WHERE_MOVIELIST, needsRestart = True, fnc=main_add, icon="dvdburn.png"),
+ PluginDescriptor(name="DVD Burn", description=descr, where = PluginDescriptor.WHERE_PLUGINMENU, needsRestart = True, fnc=main, icon="dvdburn.png") ]
-if HAVE_DDVDLIB
SUBDIRS = src meta
installdir = $(pkglibdir)/python/Plugins/Extensions/DVDPlayer
plugin.py \
keymap.xml \
LICENSE
-endif
<key id="KEY_PREVIOUS" mapto="prevChapter" flags="m" />
<key id="KEY_NEXT" mapto="nextChapter" flags="m" />
<key id="KEY_TV" mapto="tv" flags="m" />
- <key id="KEY_AUDIO" mapto="dvdAudioMenu" flags="m" />
+ <key id="KEY_AUDIO" mapto="AudioSelection" flags="m" />
+ <key id="KEY_AUDIO" mapto="dvdAudioMenu" flags="l" />
<key id="KEY_RADIO" mapto="nextAudioTrack" flags="m" />
<key id="KEY_TEXT" mapto="nextSubtitleTrack" flags="m" />
<key id="KEY_VIDEO" mapto="nextAngle" flags="m" />
from Screens.MessageBox import MessageBox
from Screens.ChoiceBox import ChoiceBox
from Screens.HelpMenu import HelpableScreen
-from Screens.InfoBarGenerics import InfoBarSeek, InfoBarPVRState, InfoBarCueSheetSupport, InfoBarShowHide, InfoBarNotifications
+from Screens.InfoBarGenerics import InfoBarSeek, InfoBarPVRState, InfoBarCueSheetSupport, InfoBarShowHide, InfoBarNotifications, InfoBarAudioSelection, InfoBarSubtitleSupport
from Components.ActionMap import ActionMap, NumberActionMap, HelpableActionMap
from Components.Label import Label
from Components.Sources.StaticText import StaticText
currDir = "/media/dvd/"
if not pathExists(currDir):
currDir = "/"
+ if lastpath == "": # 'None' is magic to start at the list of mountpoints
+ currDir = None
- self.filelist = FileList(currDir, matchingPattern = "(?i)^.*\.(iso)", useServiceRef = True)
+ inhibitDirs = ["/bin", "/boot", "/dev", "/etc", "/home", "/lib", "/proc", "/sbin", "/share", "/sys", "/tmp", "/usr", "/var"]
+ self.filelist = FileList(currDir, matchingPattern = "(?i)^.*\.(iso|img)", useServiceRef = True)
self["filelist"] = self.filelist
self["FilelistActions"] = ActionMap(["SetupActions"],
lastpath = (pathname.rstrip("/").rsplit("/",1))[0]
print "lastpath video_ts.ifo=", lastpath
self.close(pathname)
+ if fileExists(pathname+"VIDEO_TS/VIDEO_TS.IFO"):
+ print "dvd structure found, trying to open..."
+ lastpath = (pathname.rstrip("/").rsplit("/",1))[0]
+ print "lastpath video_ts.ifo=", lastpath
+ pathname += "VIDEO_TS"
+ self.close(pathname)
else:
lastpath = filename[0:filename.rfind("/")]
print "lastpath directory=", lastpath
self.Timer.callback.append(self.keyOK)
self.Timer.start(3000, True)
-class DVDPlayer(Screen, InfoBarBase, InfoBarNotifications, InfoBarSeek, InfoBarPVRState, InfoBarShowHide, HelpableScreen, InfoBarCueSheetSupport):
+class DVDPlayer(Screen, InfoBarBase, InfoBarNotifications, InfoBarSeek, InfoBarPVRState, InfoBarShowHide, HelpableScreen, InfoBarCueSheetSupport, InfoBarAudioSelection, InfoBarSubtitleSupport):
ALLOW_SUSPEND = Screen.SUSPEND_PAUSES
ENABLE_RESUME_SUPPORT = True
self.saved_config_speeds_backward = config.seek.speeds_backward.value
self.saved_config_enter_forward = config.seek.enter_forward.value
self.saved_config_enter_backward = config.seek.enter_backward.value
- self.saved_config_seek_stepwise_minspeed = config.seek.stepwise_minspeed.value
- self.saved_config_seek_stepwise_repeat = config.seek.stepwise_repeat.value
self.saved_config_seek_on_pause = config.seek.on_pause.value
self.saved_config_seek_speeds_slowmotion = config.seek.speeds_slowmotion.value
config.seek.speeds_slowmotion.value = [ ]
config.seek.enter_forward.value = "2"
config.seek.enter_backward.value = "2"
- config.seek.stepwise_minspeed.value = "Never"
- config.seek.stepwise_repeat.value = "3"
config.seek.on_pause.value = "play"
def restore_infobar_seek_config(self):
config.seek.speeds_slowmotion.value = self.saved_config_seek_speeds_slowmotion
config.seek.enter_forward.value = self.saved_config_enter_forward
config.seek.enter_backward.value = self.saved_config_enter_backward
- config.seek.stepwise_minspeed.value = self.saved_config_seek_stepwise_minspeed
- config.seek.stepwise_repeat.value = self.saved_config_seek_stepwise_repeat
config.seek.on_pause.value = self.saved_config_seek_on_pause
def __init__(self, session, dvd_device = None, dvd_filelist = [ ], args = None):
InfoBarNotifications.__init__(self)
InfoBarCueSheetSupport.__init__(self, actionmap = "MediaPlayerCueSheetActions")
InfoBarShowHide.__init__(self)
+ InfoBarAudioSelection.__init__(self)
+ InfoBarSubtitleSupport.__init__(self)
HelpableScreen.__init__(self)
self.save_infobar_seek_config()
self.change_infobar_seek_config()
- InfoBarSeek.__init__(self, useSeekBackHack=False)
+ InfoBarSeek.__init__(self)
InfoBarPVRState.__init__(self)
self.dvdScreen = self.session.instantiateDialog(DVDOverlay)
"prevTitle": (self.prevTitle, _("jump back to the previous title")),
"tv": (self.askLeavePlayer, _("exit DVD player or return to file browser")),
"dvdAudioMenu": (self.enterDVDAudioMenu, _("(show optional DVD audio menu)")),
+ "AudioSelection": (self.enterAudioSelection, _("Select audio track")),
"nextAudioTrack": (self.nextAudioTrack, _("switch to the next audio track")),
"nextSubtitleTrack": (self.nextSubtitleTrack, _("switch to the next subtitle language")),
"nextAngle": (self.nextAngle, _("switch to the next angle")),
keys.keyPressed(key)
return keys
+ def enterAudioSelection(self):
+ self.audioSelection()
+
def nextAudioTrack(self):
self.sendKey(iServiceKeys.keyUser)
newref = eServiceReference(4369, 0, val)
print "play", newref.toString()
if curref is None or curref != newref:
+ if newref.toString().endswith("/VIDEO_TS") or newref.toString().endswith("/"):
+ names = newref.toString().rsplit("/",3)
+ if names[2].startswith("Disk ") or names[2].startswith("DVD "):
+ name = str(names[1]) + " - " + str(names[2])
+ else:
+ name = names[2]
+ print "setting name to: ", self.service
+ newref.setName(str(name))
self.session.nav.playService(newref)
self.service = self.session.nav.getCurrentService()
print "self.service", self.service
)]
def Plugins(**kwargs):
- return [PluginDescriptor(name = "DVDPlayer", description = "Play DVDs", where = PluginDescriptor.WHERE_MENU, fnc = menu),
- PluginDescriptor(where = PluginDescriptor.WHERE_FILESCAN, fnc = filescan)]
+ return [PluginDescriptor(name = "DVDPlayer", description = "Play DVDs", where = PluginDescriptor.WHERE_MENU, needsRestart = True, fnc = menu),
+ PluginDescriptor(where = PluginDescriptor.WHERE_FILESCAN, needsRestart = True, fnc = filescan)]
-OBJS := servicedvd.cpp
+AM_CPPFLAGS = \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/include \
+ -include Python.h \
+ -include $(top_builddir)/enigma2_config.h
--include $(OBJS:.cpp=.d)
+AM_CXXFLAGS = @LIBDDVD_CFLAGS@
-installdir = $(pkglibdir)/python/Plugins/Extensions/DVDPlayer
+plugindir = $(pkglibdir)/python/Plugins/Extensions/DVDPlayer
-install_PYTHON = \
- servicedvd.so
+plugin_LTLIBRARIES = servicedvd.la
-servicedvd.so:
- $(CXX) $(CPPFLAGS) -MD $(CXXFLAGS) $(DEFS) -I$(top_srcdir)/include \
- -Wall -W $(OBJS) -shared -fPIC -Wl,-soname,servicedvd.so -o servicedvd.so \
- $(LDFLAGS) -ldreamdvd
+servicedvd_la_SOURCES = \
+ servicedvd.cpp \
+ servicedvd.h
-all: servicedvd.so
-
-CLEANFILES = servicedvd.so servicedvd.d
+servicedvd_la_LDFLAGS = -avoid-version -module
+servicedvd_la_LIBADD = @LIBDDVD_LIBS@
{
std::list<std::string> extensions;
extensions.push_back("iso");
+ extensions.push_back("img");
sc->addServiceFactory(eServiceFactoryDVD::id, this, extensions);
}
}
return 0;
}
+RESULT eServiceDVD::audioTracks(ePtr<iAudioTrackSelection> &ptr)
+{
+ ptr = this;
+ return 0;
+}
+
+int eServiceDVD::getNumberOfTracks()
+{
+ int i = 0;
+ ddvd_get_audio_count(m_ddvdconfig, &i);
+ return i;
+}
+
+int eServiceDVD::getCurrentTrack()
+{
+ int audio_id,audio_type;
+ uint16_t audio_lang;
+ ddvd_get_last_audio(m_ddvdconfig, &audio_id, &audio_lang, &audio_type);
+ return audio_id;
+}
+
+RESULT eServiceDVD::selectTrack(unsigned int i)
+{
+ ddvd_set_audio(m_ddvdconfig, i);
+ return 0;
+}
+
+RESULT eServiceDVD::getTrackInfo(struct iAudioTrackInfo &info, unsigned int audio_id)
+{
+ int audio_type;
+ uint16_t audio_lang;
+ ddvd_get_audio_byid(m_ddvdconfig, audio_id, &audio_lang, &audio_type);
+ char audio_string[3]={audio_lang >> 8, audio_lang, 0};
+ info.m_pid = audio_id+1;
+ info.m_language = audio_string;
+ switch(audio_type)
+ {
+ case DDVD_MPEG:
+ info.m_description = "MPEG";
+ break;
+ case DDVD_AC3:
+ info.m_description = "AC3";
+ break;
+ case DDVD_DTS:
+ info.m_description = "DTS";
+ break;
+ case DDVD_LPCM:
+ info.m_description = "LPCM";
+ break;
+ default:
+ info.m_description = "und";
+ }
+ return 0;
+}
+
RESULT eServiceDVD::keys(ePtr<iServiceKeys> &ptr)
{
ptr=this;
if ( m_ddvd_titlestring[0] != '\0' )
name = m_ddvd_titlestring;
else
- name = m_ref.path;
+ if ( !m_ref.name.empty() )
+ name = m_ref.name;
+ else
+ name = m_ref.path;
return 0;
}
Py_RETURN_NONE;
}
-RESULT eServiceDVD::enableSubtitles(eWidget *parent, SWIG_PYOBJECT(ePyObject) /*entry*/)
+RESULT eServiceDVD::enableSubtitles(eWidget *parent, ePyObject tuple)
{
delete m_subtitle_widget;
+ eSize size = eSize(720, 576);
m_subtitle_widget = new eSubtitleWidget(parent);
m_subtitle_widget->resize(parent->size());
- eSize size = eSize(720, 576);
+ int pid = -1;
+
+ if ( tuple != Py_None )
+ {
+ ePyObject entry;
+ int tuplesize = PyTuple_Size(tuple);
+ if (!PyTuple_Check(tuple))
+ goto error_out;
+ if (tuplesize < 1)
+ goto error_out;
+ entry = PyTuple_GET_ITEM(tuple, 1);
+ if (!PyInt_Check(entry))
+ goto error_out;
+ pid = PyInt_AsLong(entry)-1;
+
+ ddvd_set_spu(m_ddvdconfig, pid);
+ m_event(this, evUser+7);
+ }
+ eDebug("eServiceDVD::enableSubtitles %i", pid);
if (!m_pixmap)
{
m_subtitle_widget->show();
return 0;
+
+error_out:
+ return -1;
}
RESULT eServiceDVD::disableSubtitles(eWidget */*parent*/)
PyObject *eServiceDVD::getSubtitleList()
{
- eDebug("eServiceDVD::getSubtitleList nyi");
- Py_RETURN_NONE;
+ ePyObject l = PyList_New(0);
+ unsigned int spu_count = 0;
+ ddvd_get_spu_count(m_ddvdconfig, &spu_count);
+
+ for ( unsigned int spu_id = 0; spu_id < spu_count; spu_id++ )
+ {
+ uint16_t spu_lang;
+ ddvd_get_spu_byid(m_ddvdconfig, spu_id, &spu_lang);
+ char spu_string[3]={spu_lang >> 8, spu_lang, 0};
+
+ ePyObject tuple = PyTuple_New(5);
+ PyTuple_SetItem(tuple, 0, PyInt_FromLong(2));
+ PyTuple_SetItem(tuple, 1, PyInt_FromLong(spu_id+1));
+ PyTuple_SetItem(tuple, 2, PyInt_FromLong(5));
+ PyTuple_SetItem(tuple, 3, PyInt_FromLong(0));
+ PyTuple_SetItem(tuple, 4, PyString_FromString(spu_string));
+ PyList_Append(l, tuple);
+ Py_DECREF(tuple);
+ }
+ return l;
}
PyObject *eServiceDVD::getCachedSubtitle()
RESULT offlineOperations(const eServiceReference &, ePtr<iServiceOfflineOperations> &ptr);
};
-class eServiceDVD: public iPlayableService, public iPauseableService, public iSeekableService,
+class eServiceDVD: public iPlayableService, public iPauseableService, public iSeekableService, public iAudioTrackSelection,
public iServiceInformation, public iSubtitleOutput, public iServiceKeys, public iCueSheet, public eThread, public Object
{
friend class eServiceFactoryDVD;
virtual ~eServiceDVD();
// not implemented (yet)
RESULT audioChannel(ePtr<iAudioChannelSelection> &ptr) { ptr = 0; return -1; }
- RESULT audioTracks(ePtr<iAudioTrackSelection> &ptr) { ptr = 0; return -1; }
+ RESULT audioTracks(ePtr<iAudioTrackSelection> &ptr);
RESULT frontendInfo(ePtr<iFrontendInformation> &ptr) { ptr = 0; return -1; }
RESULT subServices(ePtr<iSubserviceList> &ptr) { ptr = 0; return -1; }
RESULT timeshift(ePtr<iTimeshiftService> &ptr) { ptr = 0; return -1; }
void setCutList(SWIG_PYOBJECT(ePyObject));
void setCutListEnable(int enable);
- // iServiceKeys
+ // iAudioTrackSelection
+ int getNumberOfTracks();
+ RESULT selectTrack(unsigned int i);
+ RESULT getTrackInfo(struct iAudioTrackInfo &, unsigned int n);
+ int getCurrentTrack();
+
+ // iServiceKeys
RESULT keyPressed(int key);
+
private:
eServiceDVD(eServiceReference ref);
def Plugins(**kwargs):
name = _("Graphical Multi EPG")
descr = _("A graphical EPG for all services of an specific bouquet")
- return [ PluginDescriptor(name=name, description=descr, where = PluginDescriptor.WHERE_EVENTINFO, fnc=main),
- PluginDescriptor(name=name, description=descr, where = PluginDescriptor.WHERE_EXTENSIONSMENU, fnc=main) ]
+ return [PluginDescriptor(name=name, description=descr, where = PluginDescriptor.WHERE_EVENTINFO, needsRestart = False, fnc=main),
+ PluginDescriptor(name=name, description=descr, where = PluginDescriptor.WHERE_EXTENSIONSMENU, needsRestart = False, fnc=main)]
installdir = $(pkglibdir)/python/Plugins/Extensions
-SUBDIRS = TuxboxPlugins CutListEditor PicturePlayer MediaScanner MediaPlayer GraphMultiEPG SocketMMI DVDPlayer DVDBurn Modem
+SUBDIRS = TuxboxPlugins CutListEditor PicturePlayer MediaScanner MediaPlayer GraphMultiEPG SocketMMI DVDBurn Modem
+
+if HAVE_LIBDDVD
+SUBDIRS += DVDPlayer
+endif
install_PYTHON = \
__init__.py
# 'None' is magic to start at the list of mountpoints
defaultDir = config.mediaplayer.defaultDir.getValue()
- self.filelist = FileList(defaultDir, matchingPattern = "(?i)^.*\.(mp2|mp3|ogg|ts|wav|wave|m3u|pls|e2pls|mpg|vob|avi|divx|m4v|mkv|mp4|m4a|dat|flac|mov)", useServiceRef = True, additionalExtensions = "4098:m3u 4098:e2pls 4098:pls")
+ self.filelist = FileList(defaultDir, matchingPattern = "(?i)^.*\.(mp2|mp3|ogg|ts|wav|wave|m3u|pls|e2pls|mpg|vob|avi|divx|m4v|mkv|mp4|m4a|dat|flac|mov|m2ts)", useServiceRef = True, additionalExtensions = "4098:m3u 4098:e2pls 4098:pls")
self["filelist"] = self.filelist
self.playlist = MyPlayList()
from Plugins.Plugin import PluginDescriptor
def Plugins(**kwargs):
return [
- PluginDescriptor(name = "MediaPlayer", description = "Play back media files", where = PluginDescriptor.WHERE_MENU, fnc = menu),
- PluginDescriptor(name = "MediaPlayer", where = PluginDescriptor.WHERE_FILESCAN, fnc = filescan)
+ PluginDescriptor(name = "MediaPlayer", description = "Play back media files", where = PluginDescriptor.WHERE_MENU, needsRestart = False, fnc = menu),
+ PluginDescriptor(name = "MediaPlayer", where = PluginDescriptor.WHERE_FILESCAN, needsRestart = False, fnc = filescan)
]
def Plugins(**kwargs):
return [
- PluginDescriptor(name="MediaScanner", description=_("Scan Files..."), where = PluginDescriptor.WHERE_PLUGINMENU, fnc=main),
+ PluginDescriptor(name="MediaScanner", description=_("Scan Files..."), where = PluginDescriptor.WHERE_PLUGINMENU, needsRestart = True, fnc=main),
# PluginDescriptor(where = PluginDescriptor.WHERE_MENU, fnc=menuHook),
- PluginDescriptor(where = PluginDescriptor.WHERE_SESSIONSTART, fnc = sessionstart),
- PluginDescriptor(where = PluginDescriptor.WHERE_AUTOSTART, fnc = autostart)
+ PluginDescriptor(where = PluginDescriptor.WHERE_SESSIONSTART, needsRestart = True, fnc = sessionstart),
+ PluginDescriptor(where = PluginDescriptor.WHERE_AUTOSTART, needsRestart = True, fnc = autostart)
]
session.open(ModemSetup)
def Plugins(**kwargs):
- return PluginDescriptor(name="Modem", description="plugin to connect to internet via builtin modem", where = PluginDescriptor.WHERE_PLUGINMENU, fnc=main)
+ return PluginDescriptor(name="Modem", description="plugin to connect to internet via builtin modem", where = PluginDescriptor.WHERE_PLUGINMENU, needsRestart = False, fnc=main)
def Plugins(**kwargs):
return \
- [PluginDescriptor(name=_("PicturePlayer"), description=_("fileformats (BMP, PNG, JPG, GIF)"), icon="pictureplayer.png", where = PluginDescriptor.WHERE_PLUGINMENU, fnc=main),
- PluginDescriptor(name=_("PicturePlayer"), where = PluginDescriptor.WHERE_FILESCAN, fnc = filescan)]
+ [PluginDescriptor(name=_("PicturePlayer"), description=_("fileformats (BMP, PNG, JPG, GIF)"), icon="pictureplayer.png", where = PluginDescriptor.WHERE_PLUGINMENU, needsRestart = False, fnc=main),
+ PluginDescriptor(name=_("PicturePlayer"), where = PluginDescriptor.WHERE_FILESCAN, needsRestart = False, fnc = filescan)]
socketHandler = SocketMMIMessageHandler()
def Plugins(**kwargs):
- return [ PluginDescriptor(name = "SocketMMI", description = _("Python frontend for /tmp/mmi.socket"), where = PluginDescriptor.WHERE_MENU, fnc = menu),
- PluginDescriptor(where = PluginDescriptor.WHERE_SESSIONSTART, fnc = sessionstart),
- PluginDescriptor(where = PluginDescriptor.WHERE_AUTOSTART, fnc = autostart) ]
+ return [ PluginDescriptor(name = "SocketMMI", description = _("Python frontend for /tmp/mmi.socket"), where = PluginDescriptor.WHERE_MENU, needsRestart = True, fnc = menu),
+ PluginDescriptor(where = PluginDescriptor.WHERE_SESSIONSTART, needsRestart = True, fnc = sessionstart),
+ PluginDescriptor(where = PluginDescriptor.WHERE_AUTOSTART, needsRestart = True, fnc = autostart) ]
+
-OBJS = socket_mmi.cpp
+AM_CPPFLAGS = \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/include \
+ -include Python.h \
+ -include $(top_builddir)/enigma2_config.h
--include $(OBJS:.cpp=.d)
+plugindir = $(pkglibdir)/python/Plugins/Extensions/SocketMMI
-installdir = $(pkglibdir)/python/Plugins/Extensions/SocketMMI
+plugin_LTLIBRARIES = socketmmi.la
-install_PYTHON = \
- socketmmi.so
+socketmmi_la_SOURCES = \
+ socket_mmi.cpp \
+ socket_mmi.h
-socketmmi.so: socket_mmi.cpp socket_mmi.h
- $(CXX) $(CPPFLAGS) -MD $(CXXFLAGS) $(DEFS) -I$(top_srcdir)/include \
- -Wall -W $(OBJS) -shared -fPIC -Wl,-soname,socketmmi.so -o socketmmi.so \
- $(LDFLAGS)
-
-all: socketmmi.so
-
-CLEANFILES = socketmmi.so socketmmi.d
+socketmmi_la_LDFLAGS = -avoid-version -module
int eSocketMMIHandler::send_to_mmisock( void* buf, size_t len)
{
- int ret = write(connfd, buf, len);
+ ssize_t ret = write(connfd, buf, len);
if ( ret < 0 )
eDebug("[eSocketMMIHandler] write (%m)");
- else if ( (uint)ret != len )
- eDebug("[eSocketMMIHandler] only %d bytes sent.. %d bytes should be sent", ret, len );
+ else if ( (size_t)ret != len )
+ eDebug("[eSocketMMIHandler] only %zd bytes sent.. %zu bytes should be sent", ret, len );
else
return 0;
return ret;
for x in dir:
if x[-3:] == "cfg":
params = getPluginParams(x)
- pluginlist.append(PluginDescriptor(name=params["name"], description=params["desc"], where = PluginDescriptor.WHERE_PLUGINMENU, icon="tuxbox.png", fnc=boundFunction(main, plugin=x)))
+ pluginlist.append(PluginDescriptor(name=params["name"], description=params["desc"], where = PluginDescriptor.WHERE_PLUGINMENU, icon="tuxbox.png", needsRestart = True, fnc=boundFunction(main, plugin=x)))
return pluginlist
WHERE_SOFTWAREMANAGER = 14
- def __init__(self, name = "Plugin", where = [ ], description = "", icon = None, fnc = None, wakeupfnc = None, internal = False):
+ def __init__(self, name = "Plugin", where = [ ], description = "", icon = None, fnc = None, wakeupfnc = None, needsRestart = None, internal = False, weight = 0):
self.name = name
self.internal = internal
+ self.needsRestart = needsRestart
+ self.path = None
if isinstance(where, list):
self.where = where
else:
else:
self.icon = icon
+ self.weight = weight
+
self.wakeupfnc = wakeupfnc
self.__call__ = fnc
if self.NextStep is not 'end':
if not self.Console:
self.Console = Console()
- cmd = "ipkg list_installed | grep enigma2"
+ cmd = "opkg list_installed | grep enigma2"
self.Console.ePopen(cmd, self.buildListInstalled_Finished)
self.buildListRef = self.session.openWithCallback(self.buildListfinishedCB, MessageBox, _("Please wait while searching for removable packages..."), type = MessageBox.TYPE_INFO, enable_input = False)
else:
def Plugins(**kwargs):
list = []
- list.append(PluginDescriptor(name=_("CleanupWizard"), description=_("Cleanup Wizard settings"),where=PluginDescriptor.WHERE_MENU, fnc=selSetup))
+ list.append(PluginDescriptor(name=_("CleanupWizard"), description=_("Cleanup Wizard settings"),where=PluginDescriptor.WHERE_MENU, needsRestart = False, fnc=selSetup))
if config.plugins.cleanupwizard.enable.value:
if not config.misc.firstrun.value:
if internalMemoryExceeded:
- list.append(PluginDescriptor(name=_("Cleanup Wizard"), where = PluginDescriptor.WHERE_WIZARD, fnc=(1, CleanupWizard)))
+ list.append(PluginDescriptor(name=_("Cleanup Wizard"), where = PluginDescriptor.WHERE_WIZARD, needsRestart = False, fnc=(1, CleanupWizard)))
return list
from Plugins.Plugin import PluginDescriptor
from xml.etree.cElementTree import parse as ci_parse
from Tools.XMLTools import elementsWithTag, mergeText, stringToXML
-from enigma import eDVBCI_UI, eDVBCIInterfaces
+from enigma import eDVBCI_UI, eDVBCIInterfaces, eEnv
from os import system, path as os_path
Screen.__init__(self, session)
self.ci_slot=ci_slot
- self.filename="/etc/enigma2/ci"+str(self.ci_slot)+".xml"
+ self.filename = eEnv.resolve("${sysconfdir}/enigma2/ci") + str(self.ci_slot) + ".xml"
self["key_red"] = StaticText(_("Delete"))
self["key_green"] = StaticText(_("add Service"))
return Len > 0 and definitions[Len-1].text or default
for ci in range(NUM_CI):
- filename="/etc/enigma2/ci"+str(ci)+".xml"
+ filename = eEnv.resolve("${sysconfdir}/enigma2/ci") + str(ci) + ".xml"
if not os_path.exists(filename):
print "[CI_Activate_Config_CI%d] no config file found" %ci
def Plugins(**kwargs):
if config.usage.setup_level.index > 1:
- return [PluginDescriptor( where = PluginDescriptor.WHERE_SESSIONSTART, fnc = sessionstart ),
- PluginDescriptor( where = PluginDescriptor.WHERE_AUTOSTART, fnc = autostart ),
- PluginDescriptor( name = "CommonInterfaceAssignment", description = _("a gui to assign services/providers/caids to common interface modules"), where = PluginDescriptor.WHERE_MENU, fnc = menu )]
+ return [PluginDescriptor( where = PluginDescriptor.WHERE_SESSIONSTART, needsRestart = False, fnc = sessionstart ),
+ PluginDescriptor( where = PluginDescriptor.WHERE_AUTOSTART, needsRestart = False, fnc = autostart ),
+ PluginDescriptor( name = "CommonInterfaceAssignment", description = _("a gui to assign services/providers/caids to common interface modules"), where = PluginDescriptor.WHERE_MENU, needsRestart = False, fnc = menu )]
else:
- return [PluginDescriptor( where = PluginDescriptor.WHERE_SESSIONSTART, fnc = sessionstart ),
- PluginDescriptor( where = PluginDescriptor.WHERE_AUTOSTART, fnc = autostart ),
- PluginDescriptor( name = "CommonInterfaceAssignment", description = _("a gui to assign services/providers to common interface modules"), where = PluginDescriptor.WHERE_MENU, fnc = menu )]
+ return [PluginDescriptor( where = PluginDescriptor.WHERE_SESSIONSTART, needsRestart = False, fnc = sessionstart ),
+ PluginDescriptor( where = PluginDescriptor.WHERE_AUTOSTART, needsRestart = False, fnc = autostart ),
+ PluginDescriptor( name = "CommonInterfaceAssignment", description = _("a gui to assign services/providers to common interface modules"), where = PluginDescriptor.WHERE_MENU, needsRestart = False, fnc = menu )]
def Plugins(**kwargs):
- return [PluginDescriptor(where = [PluginDescriptor.WHERE_SESSIONSTART, PluginDescriptor.WHERE_AUTOSTART], fnc = autostart),
- PluginDescriptor(name=_("CrashlogAutoSubmit"), description=_("CrashlogAutoSubmit settings"),where=PluginDescriptor.WHERE_MENU, fnc=selSetup)]
+ return [PluginDescriptor(where = [PluginDescriptor.WHERE_SESSIONSTART, PluginDescriptor.WHERE_AUTOSTART], needsRestart = False, fnc = autostart),
+ PluginDescriptor(name=_("CrashlogAutoSubmit"), description=_("CrashlogAutoSubmit settings"),where=PluginDescriptor.WHERE_MENU, needsRestart = False, fnc=selSetup)]
session.open(DefaultServicesScannerPlugin)
def Plugins(**kwargs):
- return PluginDescriptor(name="Default Services Scanner", description=_("Scans default lamedbs sorted by satellite with a connected dish positioner"), where = PluginDescriptor.WHERE_PLUGINMENU, fnc=DefaultServicesScannerMain)
+ return PluginDescriptor(name="Default Services Scanner", description=_("Scans default lamedbs sorted by satellite with a connected dish positioner"), where = PluginDescriptor.WHERE_PLUGINMENU, needsRestart = False, fnc=DefaultServicesScannerMain)
resourcemanager.addResource("DiseqcTester", DiseqcTesterMain)
def Plugins(**kwargs):
- return [ PluginDescriptor(name="DiSEqC Tester", description=_("Test DiSEqC settings"), where = PluginDescriptor.WHERE_PLUGINMENU, fnc=DiseqcTesterMain),
- PluginDescriptor(where = PluginDescriptor.WHERE_AUTOSTART, fnc = autostart)]
+ return [ PluginDescriptor(name="DiSEqC Tester", description=_("Test DiSEqC settings"), where = PluginDescriptor.WHERE_PLUGINMENU, needsRestart = False, fnc=DiseqcTesterMain),
+ PluginDescriptor(where = PluginDescriptor.WHERE_AUTOSTART, needsRestart = False, fnc = autostart)]
newversion = getUpgradeVersion() or 0
list = []
if version is not None and version < newversion:
- list.append(PluginDescriptor(name="FP Upgrade", where = PluginDescriptor.WHERE_WIZARD, fnc=(8, FPUpgrade)))
+ list.append(PluginDescriptor(name="FP Upgrade", where = PluginDescriptor.WHERE_WIZARD, needsRestart = True, fnc=(8, FPUpgrade)))
try:
msg = open("/proc/stb/message").read()
- list.append(PluginDescriptor(name="System Message Check", where = PluginDescriptor.WHERE_WIZARD, fnc=(9, SystemMessage, msg)))
+ list.append(PluginDescriptor(name="System Message Check", where = PluginDescriptor.WHERE_WIZARD, needsRestart = True, fnc=(9, SystemMessage, msg)))
except:
pass
from Plugins.Plugin import PluginDescriptor
-from twisted.internet.protocol import Protocol, Factory
-from twisted.internet import reactor
from Components.Harddisk import harddiskmanager
+from Tools.Directories import fileExists
hotplugNotifier = [ ]
+bdpoll = None
-class Hotplug(Protocol):
- def connectionMade(self):
- self.received = ""
+def processHotplugData(self, v):
+ print "hotplug:", v
+ action = v.get("ACTION")
+ device = v.get("DEVPATH")
+ physdevpath = v.get("PHYSDEVPATH")
+ media_state = v.get("X_E2_MEDIA_STATUS")
- def dataReceived(self, data):
- self.received += data
+ dev = device.split('/')[-1]
- def connectionLost(self, reason):
- data = self.received.split('\0')[:-1]
+ if action is not None and action == "add":
+ error, blacklisted, removable, is_cdrom, partitions, medium_found = harddiskmanager.addHotplugPartition(dev, physdevpath)
+ if bdpoll and removable or is_cdrom:
+ bdpoll.addDevice(dev, is_cdrom, medium_found)
+ elif action is not None and action == "remove":
+ if bdpoll:
+ bdpoll.removeDevice(dev)
+ harddiskmanager.removeHotplugPartition(dev)
+ elif media_state is not None:
+ if media_state == '1':
+ harddiskmanager.removeHotplugPartition(dev)
+ harddiskmanager.addHotplugPartition(dev, physdevpath)
+ elif media_state == '0':
+ harddiskmanager.removeHotplugPartition(dev)
- v = {}
+ for callback in hotplugNotifier:
+ try:
+ callback(dev, action or media_state)
+ except AttributeError:
+ hotplugNotifier.remove(callback)
- for x in data:
- i = x.find('=')
- var, val = x[:i], x[i+1:]
- v[var] = val
+CDROM_DRIVE_STATUS = 0x5326
+CDROM_MEDIA_CHANGED = 0x5325
+CDSL_CURRENT = ((int)(~0>>1))
+CDS_NO_INFO = 0
+CDS_NO_DISC = 1
+CDS_TRAY_OPEN = 2
+CDS_DRIVE_NOT_READY = 3
+CDS_DISC_OK = 4
+ENOMEDIUM = 159
+IOC_NRBITS = 8
+IOC_NRSHIFT = 0
+IOC_TYPESHIFT = (IOC_NRSHIFT+IOC_NRBITS)
+BLKRRPART = ((0x12<<IOC_TYPESHIFT) | (95<<IOC_NRSHIFT))
- print "hotplug:", v
+def autostart(reason, **kwargs):
+ if reason == 0:
+ print "starting hotplug handler"
- action = v.get("ACTION")
- device = v.get("DEVPATH")
- physdevpath = v.get("PHYSDEVPATH")
- media_state = v.get("X_E2_MEDIA_STATUS")
+ if fileExists('/dev/.udev'):
+ global netlink
+ global bdpoll
+ from enigma import eSocketNotifier, eTimer, ePythonMessagePump
+ import socket
+ from select import POLLIN, POLLPRI
- dev = device.split('/')[-1]
+ class Netlink:
+ def __init__(self):
+ self.netlink = socket.socket(socket.AF_NETLINK, socket.SOCK_DGRAM, 15)
+ self.netlink.setsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF, 65536)
+ self.netlink.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, 65536)
+ self.netlink.bind((0, 1))
+ self.sn = eSocketNotifier(self.netlink.fileno(), POLLIN|POLLPRI)
+ self.sn.callback.append(self.dataAvail)
- if action is not None and action == "add":
- harddiskmanager.addHotplugPartition(dev, physdevpath)
- elif action is not None and action == "remove":
- harddiskmanager.removeHotplugPartition(dev)
- elif media_state is not None:
- if media_state == '1':
- harddiskmanager.removeHotplugPartition(dev)
- harddiskmanager.addHotplugPartition(dev, physdevpath)
- elif media_state == '0':
- harddiskmanager.removeHotplugPartition(dev)
-
- for callback in hotplugNotifier:
- try:
- callback(dev, action or media_state)
- except AttributeError:
- hotplugNotifier.remove(callback)
+ def dataAvail(self, what):
+ received = self.netlink.recvfrom(16384)
+# print "HOTPLUG(%d):" %(what), received
-def autostart(reason, **kwargs):
- if reason == 0:
- print "starting hotplug handler"
- factory = Factory()
- factory.protocol = Hotplug
+ data = received[0].split('\0')[:-1]
+ v = {}
+
+ for x in data:
+ i = x.find('=')
+ var, val = x[:i], x[i+1:]
+ v[var] = val
+
+ if v['SUBSYSTEM'] == 'block' and v['ACTION'] in ('add', 'remove'):
+ processHotplugData(self, v)
+
+ from threading import Thread, Semaphore, Lock
+
+ class ThreadQueue:
+ def __init__(self):
+ self.__list = [ ]
+ self.__lock = Lock()
+
+ def push(self, val):
+ list = self.__list
+ lock = self.__lock
+ lock.acquire()
+ list.append(val)
+ lock.release()
+
+ def pop(self):
+ list = self.__list
+ lock = self.__lock
+ lock.acquire()
+ ret = list[0]
+ del list[0]
+ lock.release()
+ return ret
- try:
import os
- os.remove("/tmp/hotplug.socket")
- except OSError:
- pass
+ import errno
+ import fcntl
+
+ class BDPoll(Thread):
+ CHECK_INTERVAL = 2000
+ MSG_MEDIUM_REMOVED = 1
+ MSG_MEDIUM_INSERTED = 2
+ MSG_POLL_FINISHED = 4
+ def __init__(self):
+ Thread.__init__(self)
+ self.__sema = Semaphore(0)
+ self.__lock = Lock()
+ self.running = False
+ self.devices_to_poll = { }
+ self.messages = ThreadQueue()
+ self.checkTimer = eTimer()
+ self.checkTimer.callback.append(self.timeout)
+ self.checkTimer.start(BDPoll.CHECK_INTERVAL, True)
+ self.mp = ePythonMessagePump()
+ self.mp.recv_msg.get().append(self.gotThreadMsg)
+ self.start()
+
+ def gotThreadMsg(self, msg):
+ msg = self.messages.pop()
+ if msg[0] == BDPoll.MSG_MEDIUM_REMOVED:
+ print "MSG_MEDIUM_REMOVED"
+ harddiskmanager.removeHotplugPartition(msg[1])
+ elif msg[0] == BDPoll.MSG_MEDIUM_INSERTED:
+ print "MSG_MEDIUM_INSERTED"
+ harddiskmanager.addHotplugPartition(msg[1])
+ elif msg[0] == BDPoll.MSG_POLL_FINISHED:
+ self.checkTimer.start(BDPoll.CHECK_INTERVAL, True)
+
+ def timeout(self):
+ self.__sema.release() # start bdpoll loop in thread
+
+ def is_mounted(self, dev):
+ mounts = file('/proc/mounts').read()
+ return mounts.find(dev) != -1
+
+ def run(self):
+ sema = self.__sema
+ lock = self.__lock
+ messages = self.messages
+ mp = self.mp
+ self.running = True
+ while self.running:
+ sema.acquire()
+ self.__lock.acquire()
+ devices_to_poll = self.devices_to_poll.items()
+ self.__lock.release()
+ devices_to_poll_processed = [ ]
+ for device, state in devices_to_poll:
+ got_media = False
+ is_cdrom, prev_media_state = state
+ if is_cdrom:
+ try:
+ fd = os.open("/dev/" + device, os.O_RDONLY | os.O_NONBLOCK | os.O_EXCL)
+ except OSError, err:
+ if err.errno == errno.EBUSY:
+ print "open cdrom exclusive failed:",
+ if not self.is_mounted(device):
+ print "not mounted"
+ continue
+ try:
+ print "mounted... try non exclusive"
+ fd = os.open("/dev/" + device, os.O_RDONLY | os.O_NONBLOCK)
+ except OSError, err:
+ print "open cdrom not exclusive failed", os.strerror(err.errno)
+ continue
+ #here the fs must be valid!
+ try:
+ ret = fcntl.ioctl(fd, CDROM_DRIVE_STATUS, CDSL_CURRENT)
+ except IOError, err:
+ print "ioctl CDROM_DRIVE_STATUS failed", os.strerror(err.errno)
+ else:
+ if ret in (CDS_NO_INFO, CDS_NO_DISC, CDS_TRAY_OPEN, CDS_DRIVE_NOT_READY):
+ pass
+ elif ret == CDS_DISC_OK:
+ #todo new kernels support events to userspace event on media change
+ #but not 2.6.18.... see hotplug-ng bdpoll.c
+ got_media = True
+ os.close(fd)
+ else:
+ try:
+ fd = os.open("/dev/" + device, os.O_RDONLY)
+ except OSError, err:
+ if err.errno == ENOMEDIUM:
+ pass
+ else:
+ print "open non cdrom failed", os.strerror(err.errno)
+ continue
+ else:
+ got_media = True
+ os.close(fd)
+ if prev_media_state:
+ if not got_media:
+ print "media removal detected on", device
+ try:
+ fd = os.open("/dev/" + device, os.O_RDONLY | os.O_NONBLOCK)
+ except OSError, err:
+ print "open device for blkrrpart ioctl failed", os.strerror(err.errno)
+ else:
+ try:
+ fcntl.ioctl(fd, BLKRRPART)
+ except IOError, err:
+ print "ioctl BLKRRPART failed", os.strerror(err.errno)
+ os.close(fd)
+ else:
+ if got_media:
+ print "media insertion detected on", device
+ devices_to_poll_processed.append((device, is_cdrom, got_media))
+ self.__lock.acquire()
+ for device, is_cdrom, state in devices_to_poll_processed:
+ old_state = self.devices_to_poll.get(device)
+ if old_state is not None and old_state[1] != state:
+ msg = state and BDPoll.MSG_MEDIUM_INSERTED or BDPoll.MSG_MEDIUM_REMOVED
+ self.devices_to_poll[device] = (is_cdrom, state)
+ messages.push((msg, device))
+ mp.send(0)
+
+ self.__lock.release()
+ messages.push((self.MSG_POLL_FINISHED,))
+ mp.send(0)
+
+ def addDevice(self, device, is_cdrom, inserted):
+ self.__lock.acquire()
+ if device in self.devices_to_poll:
+ print "device", device, "already in bdpoll"
+ else:
+ print "add device", device, "to bdpoll current state:",
+ if inserted:
+ print "medium inserted"
+ else:
+ print "medium removed"
+ self.devices_to_poll[device] = (is_cdrom, inserted)
+ self.__lock.release()
+
+ def removeDevice(self, device):
+ self.__lock.acquire()
+ if device in self.devices_to_poll:
+ print "device", device, "removed from bdpoll"
+ del self.devices_to_poll[device]
+ else:
+ print "try to del not exist device", device, "from bdpoll"
+ self.__lock.release()
+
+ netlink = Netlink()
+ bdpoll = BDPoll()
+ for blockdev, removable, is_cdrom, medium_found in harddiskmanager.devices_scanned_on_init:
+ if removable or is_cdrom:
+ bdpoll.addDevice(blockdev, is_cdrom, medium_found)
+ else:
+ from twisted.internet.protocol import Protocol, Factory
+ from twisted.internet import reactor
+
+ try:
+ import os
+ os.remove("/tmp/hotplug.socket")
+ except OSError:
+ pass
+
+ class Hotplug(Protocol):
+ def connectionMade(self):
+ print "HOTPLUG connection!"
+ self.received = ""
+
+ def dataReceived(self, data):
+ print "hotplug:", data
+ self.received += data
+ print "complete", self.received
+
+ def connectionLost(self, reason):
+ print "HOTPLUG connection lost!"
+ data = self.received.split('\0')[:-1]
+ v = {}
+
+ for x in data:
+ i = x.find('=')
+ var, val = x[:i], x[i+1:]
+ v[var] = val
+
+ processHotplugData(self, v)
- reactor.listenUNIX("/tmp/hotplug.socket", factory)
+ factory = Factory()
+ factory.protocol = Hotplug
+ reactor.listenUNIX("/tmp/hotplug.socket", factory)
def Plugins(**kwargs):
- return PluginDescriptor(name = "Hotplug", description = "listens to hotplug events", where = PluginDescriptor.WHERE_AUTOSTART, fnc = autostart)
+ return PluginDescriptor(name = "Hotplug", description = "listens to hotplug events", where = PluginDescriptor.WHERE_AUTOSTART, needsRestart = True, fnc = autostart)
from Components.ScrollLabel import ScrollLabel
from Components.Harddisk import harddiskmanager
from Components.Task import Task, Job, job_manager, Condition
-from Tools.Directories import fileExists, isMount
+from Tools.Directories import fileExists, isMount, resolveFilename, SCOPE_HDD, SCOPE_MEDIA
from Tools.HardwareInfo import HardwareInfo
from Tools.Downloader import downloadWithProgress
from enigma import eConsoleAppContainer, gFont, RT_HALIGN_LEFT, RT_HALIGN_CENTER, RT_VALIGN_CENTER, RT_WRAP, eTimer
self.box = HardwareInfo().get_device_name()
self.feed_base = "http://www.dreamboxupdate.com/opendreambox" #/1.5/%s/images/" % self.box
- self.usbmountpoint = "/mnt/usb/"
+ self.usbmountpoint = resolveFilename(SCOPE_MEDIA)+"usb/"
self.menulist = []
def ackedDestination(self):
print "[ackedDestination]", self.branch, self.target_dir
- self.container.setCWD("/mnt")
+ self.container.setCWD(resolveFilename(SCOPE_MEDIA)+"usb/")
if self.target_dir[:8] == "/autofs/":
self.target_dir = "/dev/" + self.target_dir[8:-1]
self.umountCallback()
def main(session, **kwargs):
- session.open(NFIDownload,"/home/root")
+ session.open(NFIDownload,resolveFilename(SCOPE_HDD))
def filescan_open(list, session, **kwargs):
dev = "/dev/" + (list[0].path).rsplit('/',1)[0][7:]
- print "mounting device " + dev + " to /mnt/usb..."
- system("mount "+dev+" /mnt/usb/ -o rw,sync")
- session.open(NFIDownload,"/mnt/usb/")
+ print "mounting device " + dev + " to /media/usb..."
+ usbmountpoint = resolveFilename(SCOPE_MEDIA)+"usb/"
+ system("mount %s %s -o rw,sync" % (dev, usbmountpoint))
+ session.open(NFIDownload,usbmountpoint)
def filescan(**kwargs):
from Components.Scanner import Scanner, ScanPath
from Tools.Directories import fileExists
from Tools.HardwareInfo import HardwareInfo
from os import system
-from enigma import eConsoleAppContainer, quitMainloop
+from enigma import eConsoleAppContainer, quitMainloop, eEnv
from Components.About import about
class md5Postcondition(Condition):
class writeNAND(Task):
def __init__(self, job, param, box):
Task.__init__(self,job, ("Writing image file to NAND Flash"))
- self.setTool("/usr/lib/enigma2/python/Plugins/SystemPlugins/NFIFlash/writenfi-mipsel-2.6.18-r1")
+ self.setTool(eEnv.resolve("${libdir}/enigma2/python/Plugins/SystemPlugins/NFIFlash/writenfi-mipsel-2.6.18-r1"))
if box == "dm7025":
self.end = 256
elif box[:5] == "dm800":
if self.job.status == self.job.FINISHED:
self["status"].text = ("rebooting...")
from os import system
- system("/usr/lib/enigma2/python/Plugins/SystemPlugins/NFIFlash/kill_e2_reboot.sh")
+ system(eEnv.resolve("${libdir}/enigma2/python/Plugins/SystemPlugins/NFIFlash/kill_e2_reboot.sh"))
description=_("Download .NFI-Files for USB-Flasher"),
icon = "flash.png",
where = PluginDescriptor.WHERE_SOFTWAREMANAGER,
+ needsRestart = False,
fnc={"SoftwareSupported": NFICallFnc, "menuEntryName": lambda x: _("NFI Image Flashing"),
"menuEntryDescription": lambda x: _("Download .NFI-Files for USB-Flasher")}),
- PluginDescriptor(name="nfi", where = PluginDescriptor.WHERE_FILESCAN, fnc = filescan)]
+ PluginDescriptor(name="nfi", where = PluginDescriptor.WHERE_FILESCAN, needsRestart = False, fnc = filescan)]
def Plugins(**kwargs):
list = []
if config.misc.firstrun.value:
- list.append(PluginDescriptor(name=_("Network Wizard"), where = PluginDescriptor.WHERE_WIZARD, fnc=(25, NetworkWizard)))
+ list.append(PluginDescriptor(name=_("Network Wizard"), where = PluginDescriptor.WHERE_WIZARD, needsRestart = False, fnc=(25, NetworkWizard)))
return list
class Upgrade(Screen):
skin = """
- <screen position="100,100" size="550,400" title="IPKG upgrade..." >
+ <screen position="100,100" size="550,400" title="opkg upgrade..." >
<widget name="text" position="0,0" size="550,400" font="Regular;15" />
</screen>"""
self.close()
def doUpdateDelay(self):
- lines = popen("ipkg update && ipkg upgrade -force-defaults -force-overwrite", "r").readlines()
+ lines = popen("opkg update && opkg upgrade -force-defaults -force-overwrite", "r").readlines()
string = ""
for x in lines:
string += x
class Ipkg(Screen):
skin = """
- <screen position="100,100" size="550,400" title="IPKG upgrade..." >
+ <screen position="100,100" size="550,400" title="opkg upgrade..." >
<widget name="list" position="0,0" size="550,400" scrollbarMode="showOnDemand" />
</screen>"""
def fillPacketList(self):
- lines = popen("ipkg list", "r").readlines()
+ lines = popen("opkg list", "r").readlines()
packetlist = []
for x in lines:
split = x.split(' - ')
packetlist.append([split[0].strip(), split[1].strip()])
- lines = popen("ipkg list_installed", "r").readlines()
+ lines = popen("opkg list_installed", "r").readlines()
installedlist = {}
for x in lines:
self.close()
def doUpdateDelay(self):
- lines = popen("ipkg update && ipkg upgrade", "r").readlines()
+ lines = popen("opkg update && opkg upgrade", "r").readlines()
string = ""
for x in lines:
string += x
def Plugins(**kwargs):
return [PluginDescriptor(name="Old Softwareupdate", description="Updates your receiver's software", icon="update.png", where = PluginDescriptor.WHERE_PLUGINMENU, fnc=UpgradeMain),
- PluginDescriptor(name="IPKG", description="IPKG frontend", icon="update.png", where = PluginDescriptor.WHERE_PLUGINMENU, fnc=IpkgMain)]
+ PluginDescriptor(name="opkg", description="opkg frontend", icon="update.png", where = PluginDescriptor.WHERE_PLUGINMENU, fnc=IpkgMain)]
self.scan_sat.system.value = eDVBFrontendParametersSatellite.System_DVB_S
self.list.append(getConfigListEntry(_('Frequency'), self.scan_sat.frequency))
self.list.append(getConfigListEntry(_('Inversion'), self.scan_sat.inversion))
- self.list.append(getConfigListEntry(_('Symbol Rate'), self.scan_sat.symbolrate))
- self.list.append(getConfigListEntry(_("Polarity"), self.scan_sat.polarization))
+ self.list.append(getConfigListEntry(_('Symbol rate'), self.scan_sat.symbolrate))
+ self.list.append(getConfigListEntry(_('Polarization'), self.scan_sat.polarization))
if self.scan_sat.system.value == eDVBFrontendParametersSatellite.System_DVB_S:
self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec))
elif self.scan_sat.system.value == eDVBFrontendParametersSatellite.System_DVB_S2:
self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec_s2))
self.modulationEntry = getConfigListEntry(_('Modulation'), self.scan_sat.modulation)
self.list.append(self.modulationEntry)
- self.list.append(getConfigListEntry(_('Rolloff'), self.scan_sat.rolloff))
+ self.list.append(getConfigListEntry(_('Roll-off'), self.scan_sat.rolloff))
self.list.append(getConfigListEntry(_('Pilot'), self.scan_sat.pilot))
elif tuning.type.value == "predefined_transponder":
self.list.append(getConfigListEntry(_("Transponder"), tuning.transponder))
def Plugins(**kwargs):
if (nimmanager.hasNimType("DVB-S")):
- return PluginDescriptor(name=_("Positioner setup"), description="Setup your positioner", where = PluginDescriptor.WHERE_MENU, fnc=PositionerSetupStart)
+ return PluginDescriptor(name=_("Positioner setup"), description="Setup your positioner", where = PluginDescriptor.WHERE_MENU, needsRestart = False, fnc=PositionerSetupStart)
else:
return []
def Plugins(**kwargs):
if (nimmgr.hasNimType("DVB-S")):
- return PluginDescriptor(name=_("Satellite Equipment Setup"), description="Setup your satellite equipment", where = PluginDescriptor.WHERE_MENU, fnc=SecSetupStart)
+ return PluginDescriptor(name=_("Satellite Equipment Setup"), description="Setup your satellite equipment", where = PluginDescriptor.WHERE_MENU, needsRestart = False, fnc=SecSetupStart)
else:
return []
self.scan_sat.system.value = eDVBFrontendParametersSatellite.System_DVB_S
self.list.append(getConfigListEntry(_('Frequency'), self.scan_sat.frequency))
self.list.append(getConfigListEntry(_('Inversion'), self.scan_sat.inversion))
- self.list.append(getConfigListEntry(_('Symbol Rate'), self.scan_sat.symbolrate))
- self.list.append(getConfigListEntry(_("Polarity"), self.scan_sat.polarization))
+ self.list.append(getConfigListEntry(_('Symbol rate'), self.scan_sat.symbolrate))
+ self.list.append(getConfigListEntry(_('Polarization'), self.scan_sat.polarization))
if self.scan_sat.system.value == eDVBFrontendParametersSatellite.System_DVB_S:
self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec))
elif self.scan_sat.system.value == eDVBFrontendParametersSatellite.System_DVB_S2:
self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec_s2))
self.modulationEntry = getConfigListEntry(_('Modulation'), self.scan_sat.modulation)
self.list.append(self.modulationEntry)
- self.list.append(getConfigListEntry(_('Rolloff'), self.scan_sat.rolloff))
+ self.list.append(getConfigListEntry(_('Roll-off'), self.scan_sat.rolloff))
self.list.append(getConfigListEntry(_('Pilot'), self.scan_sat.pilot))
elif self.tuning_transponder and self.tuning_type.value == "predefined_transponder":
self.list.append(getConfigListEntry(_("Transponder"), self.tuning_transponder))
def Plugins(**kwargs):
if (nimmanager.hasNimType("DVB-S")):
- return PluginDescriptor(name=_("Satfinder"), description="Helps setting up your dish", where = PluginDescriptor.WHERE_MENU, fnc=SatfinderStart)
+ return PluginDescriptor(name=_("Satfinder"), description="Helps setting up your dish", where = PluginDescriptor.WHERE_MENU, needsRestart = False, fnc=SatfinderStart)
else:
return []
from Components.config import config
from Tools.Directories import resolveFilename, SCOPE_PLUGINS
from os import path, walk
+from enigma import eEnv
class SkinSelector(Screen):
# for i18n:
# _("Choose your Skin")
skinlist = []
- root = "/usr/share/enigma2/"
+ root = eEnv.resolve("${datadir}/enigma2/")
def __init__(self, session, args = None):
return []
def Plugins(**kwargs):
- return PluginDescriptor(name="Skinselector", description="Select Your Skin", where = PluginDescriptor.WHERE_MENU, fnc=SkinSelSetup)
+ return PluginDescriptor(name="Skinselector", description="Select Your Skin", where = PluginDescriptor.WHERE_MENU, needsRestart = False, fnc=SkinSelSetup)
from Components.ConfigList import ConfigList,ConfigListScreen
from Components.FileList import MultiFileSelectList
from Plugins.Plugin import PluginDescriptor
-from enigma import eTimer
+from enigma import eTimer, eEnv
from Tools.Directories import *
from os import popen, path, makedirs, listdir, access, stat, rename, remove, W_OK, R_OK
from time import gmtime, strftime, localtime
config.plugins.configurationbackup = ConfigSubsection()
config.plugins.configurationbackup.backuplocation = ConfigText(default = '/media/hdd/', visible_width = 50, fixed_size = False)
-config.plugins.configurationbackup.backupdirs = ConfigLocations(default=['/etc/enigma2/', '/etc/network/interfaces', '/etc/wpa_supplicant.conf', '/etc/resolv.conf', '/etc/default_gw', '/etc/hostname'])
+config.plugins.configurationbackup.backupdirs = ConfigLocations(default=[eEnv.resolve('${sysconfdir}/enigma2/'), '/etc/network/interfaces', '/etc/wpa_supplicant.conf', '/etc/resolv.conf', '/etc/default_gw', '/etc/hostname'])
def getBackupPath():
backuppath = config.plugins.configurationbackup.backuplocation.value
from Tools.Directories import fileExists, resolveFilename, SCOPE_PLUGINS, SCOPE_SKIN_IMAGE
from Components.Pixmap import Pixmap, MovingPixmap, MultiPixmap
from os import popen, path, makedirs, listdir, access, stat, rename, remove, W_OK, R_OK
+from enigma import eEnv
from Components.config import config, getConfigListEntry, ConfigSubsection, ConfigText, ConfigLocations, ConfigBoolean
from Components.Harddisk import harddiskmanager
config.misc.firstrun = ConfigBoolean(default = True)
config.plugins.configurationbackup = ConfigSubsection()
config.plugins.configurationbackup.backuplocation = ConfigText(default = '/media/hdd/', visible_width = 50, fixed_size = False)
-config.plugins.configurationbackup.backupdirs = ConfigLocations(default=['/etc/enigma2/', '/etc/network/interfaces', '/etc/wpa_supplicant.conf'])
+config.plugins.configurationbackup.backupdirs = ConfigLocations(default=[eEnv.resolve('${sysconfdir}/enigma2/'), '/etc/network/interfaces', '/etc/wpa_supplicant.conf'])
backupfile = "enigma2settingsbackup.tar.gz"
if self.list_updating:
if not self.UpdateConsole:
self.UpdateConsole = Console()
- cmd = "ipkg list"
+ cmd = "opkg list"
self.UpdateConsole.ePopen(cmd, self.IpkgListAvailableCB, callback)
def IpkgListAvailableCB(self, result, retval, extra_args = None):
if self.NetworkConnectionAvailable == True:
if not self.UpdateConsole:
self.UpdateConsole = Console()
- cmd = "ipkg install enigma2-meta enigma2-plugins-meta enigma2-skins-meta"
+ cmd = "opkg install enigma2-meta enigma2-plugins-meta enigma2-skins-meta"
self.UpdateConsole.ePopen(cmd, self.InstallMetaPackageCB, callback)
else:
self.InstallMetaPackageCB(True)
callback(False)
def startIpkgListInstalled(self, callback = None):
- print "STARTIPKGLISTINSTALLED"
if callback is not None:
self.list_updating = True
if self.list_updating:
if not self.UpdateConsole:
self.UpdateConsole = Console()
- cmd = "ipkg list_installed"
+ cmd = "opkg list-installed"
self.UpdateConsole.ePopen(cmd, self.IpkgListInstalledCB, callback)
def IpkgListInstalledCB(self, result, retval, extra_args = None):
def startIpkgUpdate(self, callback = None):
if not self.Console:
self.Console = Console()
- cmd = "ipkg update"
+ cmd = "opkg update"
self.Console.ePopen(cmd, self.IpkgUpdateCB, callback)
def IpkgUpdateCB(self, result, retval, extra_args = None):
callback = None
def cleanupSoftwareTools(self):
+ self.list_updating = False
if self.NotifierCallback is not None:
self.NotifierCallback = None
self.ipkg.stop()
return False
return True
-iSoftwareTools = SoftwareTools()
\ No newline at end of file
+iSoftwareTools = SoftwareTools()
from Tools.Directories import pathExists, fileExists, resolveFilename, SCOPE_PLUGINS, SCOPE_CURRENT_PLUGIN, SCOPE_CURRENT_SKIN, SCOPE_METADIR
from Tools.LoadPixmap import LoadPixmap
from Tools.NumericalTextInput import NumericalTextInput
-from enigma import eTimer, quitMainloop, RT_HALIGN_LEFT, RT_VALIGN_CENTER, eListboxPythonMultiContent, eListbox, gFont, getDesktop, ePicLoad, eRCInput, getPrevAsciiCode
+from enigma import eTimer, quitMainloop, RT_HALIGN_LEFT, RT_VALIGN_CENTER, eListboxPythonMultiContent, eListbox, gFont, getDesktop, ePicLoad, eRCInput, getPrevAsciiCode, eEnv
from cPickle import dump, load
from os import path as os_path, system as os_system, unlink, stat, mkdir, popen, makedirs, listdir, access, rename, remove, W_OK, R_OK, F_OK
from time import time, gmtime, strftime, localtime
config.plugins.configurationbackup = ConfigSubsection()
config.plugins.configurationbackup.backuplocation = ConfigText(default = '/media/hdd/', visible_width = 50, fixed_size = False)
-config.plugins.configurationbackup.backupdirs = ConfigLocations(default=['/etc/enigma2/', '/etc/network/interfaces', '/etc/wpa_supplicant.conf', '/etc/resolv.conf', '/etc/default_gw', '/etc/hostname'])
+config.plugins.configurationbackup.backupdirs = ConfigLocations(default=[eEnv.resolve('${sysconfdir}/enigma2/'), '/etc/network/interfaces', '/etc/wpa_supplicant.conf', '/etc/resolv.conf', '/etc/default_gw', '/etc/hostname'])
config.plugins.SoftwareManager = ConfigSubsection()
config.plugins.SoftwareManager.overwriteConfigFiles = ConfigSelection(
for x in parts:
if not access(x[1], F_OK|R_OK|W_OK) or x[1] == '/':
parts.remove(x)
- for x in parts:
- if x[1].startswith('/autofs/'):
- parts.remove(x)
if len(parts):
self.session.openWithCallback(self.backuplocation_choosen, ChoiceBox, title = _("Please select medium to use as backup location"), list = parts)
elif (currentEntry == "backupfiles"):
def backupfiles_choosen(self, ret):
self.backupdirs = ' '.join( config.plugins.configurationbackup.backupdirs.value )
-
+ config.plugins.configurationbackup.backupdirs.save()
+ config.plugins.configurationbackup.save()
+ config.save()
+
def backuplocation_choosen(self, option):
+ oldpath = config.plugins.configurationbackup.backuplocation.getValue()
if option is not None:
config.plugins.configurationbackup.backuplocation.value = str(option[1])
config.plugins.configurationbackup.backuplocation.save()
config.plugins.configurationbackup.save()
config.save()
- self.createBackupfolders()
+ newpath = config.plugins.configurationbackup.backuplocation.getValue()
+ if newpath != oldpath:
+ self.createBackupfolders()
def runUpgrade(self, result):
if result:
name = x[0].strip()
details = x[1].strip()
description = x[2].strip()
+ if description == "":
+ description = "No description available."
packagename = x[3].strip()
selectState = self.getSelectionState(details)
if iSoftwareTools.installed_packetlist.has_key(packagename):
self.close()
def runExecuteFinished(self):
- self.session.openWithCallback(self.ExecuteReboot, MessageBox, _("Install or remove finished.") +" "+_("Do you want to reboot your Dreambox?"), MessageBox.TYPE_YESNO)
-
- def ExecuteReboot(self, result):
- if result is None:
- return
- if result is False:
- self.reloadPluginlist()
+ self.reloadPluginlist()
+ restartRequired = plugins.restartRequired
+ if restartRequired:
+ self.session.openWithCallback(self.ExecuteReboot, MessageBox, _("Install or remove finished.") +" "+_("Do you want to reboot your Dreambox?"), MessageBox.TYPE_YESNO)
+ else:
self.selectedFiles = []
self.detailsClosed(True)
+
+ def ExecuteReboot(self, result):
if result:
quitMainloop(3)
+ else:
+ self.selectedFiles = []
+ self.detailsClosed(True)
def reloadPluginlist(self):
plugins.readPluginList(resolveFilename(SCOPE_PLUGINS))
self.session.openWithCallback(self.runUpgradeFinished, Ipkg, cmdList = self.cmdList)
def runUpgradeFinished(self):
- self.session.openWithCallback(self.UpgradeReboot, MessageBox, _("Installation finished.") +" "+_("Do you want to reboot your Dreambox?"), MessageBox.TYPE_YESNO)
-
- def UpgradeReboot(self, result):
- if result is None:
- return
- if result is False:
+ self.reloadPluginlist()
+ restartRequired = plugins.restartRequired
+ if restartRequired:
+ self.session.openWithCallback(self.UpgradeReboot, MessageBox, _("Installation finished.") +" "+_("Do you want to reboot your Dreambox?"), MessageBox.TYPE_YESNO)
+ else:
self.close(True)
+ def UpgradeReboot(self, result):
if result:
quitMainloop(3)
+ else:
+ self.close(True)
def runRemove(self, result):
if result:
self.session.openWithCallback(self.runRemoveFinished, Ipkg, cmdList = self.cmdList)
def runRemoveFinished(self):
- self.session.openWithCallback(self.RemoveReboot, MessageBox, _("Remove finished.") +" "+_("Do you want to reboot your Dreambox?"), MessageBox.TYPE_YESNO)
-
- def RemoveReboot(self, result):
- if result is None:
- return
- if result is False:
- self.close(True)
- if result:
- quitMainloop(3)
+ self.close(True)
def reloadPluginlist(self):
plugins.readPluginList(resolveFilename(SCOPE_PLUGINS))
self["slider"] = self.slider
self.activityslider = Slider(0, 100)
self["activityslider"] = self.activityslider
- self.status = StaticText(_("Upgrading Dreambox... Please wait"))
+ self.status = StaticText(_("Please wait..."))
self["status"] = self.status
- self.package = StaticText()
+ self.package = StaticText(_("Verifying your internet connection..."))
self["package"] = self.package
self.oktext = _("Press OK on your remote control to continue.")
self.activity = 0
self.activityTimer = eTimer()
self.activityTimer.callback.append(self.doActivityTimer)
- self.activityTimer.start(100, False)
self.ipkg = IpkgComponent()
self.ipkg.addCallback(self.ipkgCallback)
- self.updating = True
- self.package.setText(_("Package list update"))
- self.ipkg.startCmd(IpkgComponent.CMD_UPDATE)
+ self.updating = False
self["actions"] = ActionMap(["WizardActions"],
{
"ok": self.exit,
"back": self.exit
}, -1)
+
+ iNetwork.checkNetworkState(self.checkNetworkCB)
+ self.onClose.append(self.cleanup)
+
+ def cleanup(self):
+ iNetwork.stopPingConsole()
+
+ def checkNetworkCB(self,data):
+ if data is not None:
+ if data <= 2:
+ self.updating = True
+ self.activityTimer.start(100, False)
+ self.package.setText(_("Package list update"))
+ self.status.setText(_("Upgrading Dreambox... Please wait"))
+ self.ipkg.startCmd(IpkgComponent.CMD_UPDATE)
+ else:
+ self.package.setText(_("Your network is not working. Please try again."))
+ self.status.setText(self.oktext)
def doActivityTimer(self):
self.activity += 1
self.session.openWithCallback(self.exitAnswer, MessageBox, _("Upgrade finished.") +" "+_("Do you want to reboot your Dreambox?"))
else:
self.close()
+ else:
+ if not self.updating:
+ self.close()
def exitAnswer(self, result):
if result is not None and result:
def fill_list(self):
self.flist = []
- self.path = '/etc/ipkg/'
+ self.path = '/etc/opkg/'
if (os_path.exists(self.path) == False):
self.entry = False
return
self.list_updating = True
self.packetlist = []
self.installed_packetlist = {}
+ self.upgradeable_packages = {}
self.Console = Console()
self.cmdList = []
self.cachelist = []
self.cache_ttl = 86400 #600 is default, 0 disables, Seconds cache is considered valid (24h should be ok for caching ipkgs)
- self.cache_file = '/usr/lib/enigma2/python/Plugins/SystemPlugins/SoftwareManager/packetmanager.cache' #Path to cache directory
+ self.cache_file = eEnv.resolve('${libdir}/enigma2/python/Plugins/SystemPlugins/SoftwareManager/packetmanager.cache') #Path to cache directory
self.oktext = _("\nAfter pressing OK, please wait!")
self.unwanted_extensions = ('-dbg', '-dev', '-doc', 'busybox')
self.list_updating = False
if not self.Console:
self.Console = Console()
- cmd = "ipkg list"
+ cmd = "opkg list"
self.Console.ePopen(cmd, self.IpkgList_Finished)
#print event, "-", param
pass
def IpkgList_Finished(self, result, retval, extra_args = None):
if result:
self.packetlist = []
+ last_name = ""
for x in result.splitlines():
- tokens = x.split(' - ') #self.blacklisted_packages
+ tokens = x.split(' - ')
name = tokens[0].strip()
if not any(name.endswith(x) for x in self.unwanted_extensions):
l = len(tokens)
version = l > 1 and tokens[1].strip() or ""
descr = l > 2 and tokens[2].strip() or ""
+ if name == last_name:
+ continue
+ last_name = name
self.packetlist.append([name, version, descr])
+
if not self.Console:
self.Console = Console()
- cmd = "ipkg list_installed"
+ cmd = "opkg list-installed"
self.Console.ePopen(cmd, self.IpkgListInstalled_Finished)
def IpkgListInstalled_Finished(self, result, retval, extra_args = None):
if result:
self.installed_packetlist = {}
for x in result.splitlines():
- tokens = x.split(' - ') #self.blacklisted_packages
+ tokens = x.split(' - ')
name = tokens[0].strip()
if not any(name.endswith(x) for x in self.unwanted_extensions):
l = len(tokens)
version = l > 1 and tokens[1].strip() or ""
self.installed_packetlist[name] = version
- self.buildPacketList()
+ if not self.Console:
+ self.Console = Console()
+ cmd = "opkg list-upgradable"
+ self.Console.ePopen(cmd, self.OpkgListUpgradeable_Finished)
+ def OpkgListUpgradeable_Finished(self, result, retval, extra_args = None):
+ if result:
+ self.upgradeable_packages = {}
+ for x in result.splitlines():
+ tokens = x.split(' - ')
+ name = tokens[0].strip()
+ if not any(name.endswith(x) for x in self.unwanted_extensions):
+ l = len(tokens)
+ version = l > 2 and tokens[2].strip() or ""
+ self.upgradeable_packages[name] = version
+ self.buildPacketList()
+
def buildEntryComponent(self, name, version, description, state):
divpng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/div-h.png"))
+ if description == "":
+ description = "No description available."
if state == 'installed':
installedpng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_PLUGIN, "SystemPlugins/SoftwareManager/installed.png"))
- return((name, version, description, state, installedpng, divpng))
+ return((name, version, _(description), state, installedpng, divpng))
elif state == 'upgradeable':
upgradeablepng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_PLUGIN, "SystemPlugins/SoftwareManager/upgradeable.png"))
- return((name, version, description, state, upgradeablepng, divpng))
+ return((name, version, _(description), state, upgradeablepng, divpng))
else:
installablepng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_PLUGIN, "SystemPlugins/SoftwareManager/installable.png"))
- return((name, version, description, state, installablepng, divpng))
+ return((name, version, _(description), state, installablepng, divpng))
def buildPacketList(self):
self.list = []
self.cachelist = []
-
if self.cache_ttl > 0 and self.vc != 0:
print 'Loading packagelist cache from ',self.cache_file
try:
print 'rebuilding fresh package list'
for x in self.packetlist:
status = ""
- if self.installed_packetlist.has_key(x[0].strip()):
- if self.installed_packetlist[x[0].strip()] == x[1].strip():
- status = "installed"
- self.list.append(self.buildEntryComponent(x[0].strip(), x[1].strip(), x[2].strip(), status))
- else:
+ if self.installed_packetlist.has_key(x[0]):
+ if self.upgradeable_packages.has_key(x[0]):
status = "upgradeable"
- self.list.append(self.buildEntryComponent(x[0].strip(), x[1].strip(), x[2].strip(), status))
+ else:
+ status = "installed"
else:
status = "installable"
- self.list.append(self.buildEntryComponent(x[0].strip(), x[1].strip(), x[2].strip(), status))
- if not any(x[0].strip().endswith(x) for x in self.unwanted_extensions):
- self.cachelist.append([x[0].strip(), x[1].strip(), x[2].strip(), status])
+ self.list.append(self.buildEntryComponent(x[0], x[1], x[2], status))
+ self.cachelist.append([x[0], x[1], x[2], status])
write_cache(self.cache_file, self.cachelist)
self['list'].setList(self.list)
def reloadPluginlist(self):
plugins.readPluginList(resolveFilename(SCOPE_PLUGINS))
+
class IpkgInstaller(Screen):
skin = """
<screen name="IpkgInstaller" position="center,center" size="550,450" title="Install extensions" >
global plugin_path
plugin_path = path
list = [
- PluginDescriptor(name=_("Software management"), description=_("Manage your receiver's software"), where = PluginDescriptor.WHERE_MENU, fnc=startSetup),
- PluginDescriptor(name=_("Ipkg"), where = PluginDescriptor.WHERE_FILESCAN, fnc = filescan)
+ PluginDescriptor(name=_("Software management"), description=_("Manage your receiver's software"), where = PluginDescriptor.WHERE_MENU, needsRestart = False, fnc=startSetup),
+ PluginDescriptor(name=_("Ipkg"), where = PluginDescriptor.WHERE_FILESCAN, needsRestart = False, fnc = filescan)
]
if config.usage.setup_level.index >= 2: # expert+
- list.append(PluginDescriptor(name=_("Software management"), description=_("Manage your receiver's software"), where = PluginDescriptor.WHERE_EXTENSIONSMENU, fnc=UpgradeMain))
+ list.append(PluginDescriptor(name=_("Software management"), description=_("Manage your receiver's software"), where = PluginDescriptor.WHERE_EXTENSIONSMENU, needsRestart = False, fnc=UpgradeMain))
return list
-installdir = $(LIBDIR)/enigma2/python/Plugins/SystemPlugins/TempFanControl
+installdir = $(pkglibdir)/python/Plugins/SystemPlugins/TempFanControl
SUBDIRS = meta
__init__.py \
plugin.py
-dist_install_DATA = LICENSE
\ No newline at end of file
+dist_install_DATA = LICENSE
<prerequisites>
<hardware type="dm8000" />
<hardware type="dm500hd" />
+ <hardware type="dm800se" />
+ <hardware type="dm7020hd" />
<tag type="System" />
</prerequisites>
<info>
return [(_("Temperature and Fan control"), main, "tempfancontrol", 80)]
def Plugins(**kwargs):
- return PluginDescriptor(name = "Temperature and Fan control", description = _("Temperature and Fan control"), where = PluginDescriptor.WHERE_MENU, fnc = startMenu)
+ return PluginDescriptor(name = "Temperature and Fan control", description = _("Temperature and Fan control"), where = PluginDescriptor.WHERE_MENU, needsRestart = False, fnc = startMenu)
<hardware type="dm8000" />
<hardware type="dm800" />
<hardware type="dm500hd" />
+ <hardware type="dm800se" />
+ <hardware type="dm7020hd" />
<tag type="Display" />
<tag type="System" />
</prerequisites>
def Plugins(**kwargs):
list = []
if config.usage.setup_level.index >= 2 and os_path.exists("/proc/stb/vmpeg/0/pep_apply"):
- list.append(PluginDescriptor(name=_("Videoenhancement Setup"), description=_("Advanced Video Enhancement Setup"), where = PluginDescriptor.WHERE_MENU, fnc=startSetup))
+ list.append(PluginDescriptor(name=_("Videoenhancement Setup"), description=_("Advanced Video Enhancement Setup"), where = PluginDescriptor.WHERE_MENU, needsRestart = False, fnc=startSetup))
return list
def Plugins(**kwargs):
return [
- PluginDescriptor(name=_("Video Fine-Tuning"), description=_("fine-tune your display"), where = PluginDescriptor.WHERE_MENU, fnc=startSetup),
- PluginDescriptor(name=_("Video Fine-Tuning Wizard"), where = PluginDescriptor.WHERE_WIZARD, fnc=(1, videoFinetuneWizard))
+ PluginDescriptor(name=_("Video Fine-Tuning"), description=_("fine-tune your display"), where = PluginDescriptor.WHERE_MENU, needsRestart = False, fnc=startSetup),
+ PluginDescriptor(name=_("Video Fine-Tuning Wizard"), where = PluginDescriptor.WHERE_WIZARD, needsRestart = False, fnc=(1, videoFinetuneWizard))
]
print "saveMode", port, mode, rate
config.av.videoport.value = port
config.av.videoport.save()
- config.av.videomode[port].value = mode
- config.av.videomode[port].save()
- config.av.videorate[mode].value = rate
- config.av.videorate[mode].save()
+ if port in config.av.videomode:
+ config.av.videomode[port].value = mode
+ config.av.videomode[port].save()
+ if mode in config.av.videorate:
+ config.av.videorate[mode].value = rate
+ config.av.videorate[mode].save()
def isPortAvailable(self, port):
# fixme
portlist = self.getPortList()
for port in portlist:
descr = port
- if descr == 'DVI' and hw_type in ('dm500hd', 'dm800se'):
+ if descr == 'DVI' and hw_type in ('dm500hd', 'dm800se', 'dm7020hd'):
descr = 'HDMI'
- elif descr == 'DVI-PC' and hw_type in ('dm500hd', 'dm800se'):
+ elif descr == 'DVI-PC' and hw_type in ('dm500hd', 'dm800se', 'dm7020hd'):
descr = 'HDMI-PC'
lst.append((port, descr))
for port in self.hw.getPortList():
if self.hw.isPortUsed(port):
descr = port
- if descr == 'DVI' and hw_type in ('dm500hd', 'dm800se'):
+ if descr == 'DVI' and hw_type in ('dm500hd', 'dm800se', 'dm7020hd'):
descr = 'HDMI'
if port != "DVI-PC":
list.append((descr,port))
self.inputSelect(self.selection)
if self["portpic"].instance is not None:
picname = self.selection
- if picname == "DVI" and HardwareInfo().get_device_name() in ("dm500hd", "dm800se"):
+ if picname == "DVI" and HardwareInfo().get_device_name() in ("dm500hd", "dm800se", "dm7020hd"):
picname = "HDMI"
self["portpic"].instance.setPixmapFromFile(resolveFilename(SCOPE_PLUGINS, "SystemPlugins/Videomode/" + picname + ".png"))
def Plugins(**kwargs):
list = [
# PluginDescriptor(where = [PluginDescriptor.WHERE_SESSIONSTART, PluginDescriptor.WHERE_AUTOSTART], fnc = autostart),
- PluginDescriptor(name=_("Video Setup"), description=_("Advanced Video Setup"), where = PluginDescriptor.WHERE_MENU, fnc=startSetup)
+ PluginDescriptor(name=_("Video Setup"), description=_("Advanced Video Setup"), where = PluginDescriptor.WHERE_MENU, needsRestart = False, fnc=startSetup)
]
if config.misc.videowizardenabled.value:
- list.append(PluginDescriptor(name=_("Video Wizard"), where = PluginDescriptor.WHERE_WIZARD, fnc=(0, VideoWizard)))
+ list.append(PluginDescriptor(name=_("Video Wizard"), where = PluginDescriptor.WHERE_WIZARD, needsRestart = False, fnc=(0, VideoWizard)))
return list
fp.write('\tssid="'+essid+'"\n')
fp.write('\tscan_ssid=0\n')
if encrypted:
- if encryption == 'WPA' or encryption == 'WPA2' or encryption == 'WPA/WPA2' :
+ if encryption in ('WPA', 'WPA2', 'WPA/WPA2'):
fp.write('\tkey_mgmt=WPA-PSK\n')
-
+
if encryption == 'WPA':
fp.write('\tproto=WPA\n')
fp.write('\tpairwise=TKIP\n')
fp.write('\tgroup=TKIP\n')
elif encryption == 'WPA2':
+ fp.write('\tproto=RSN\n')
+ fp.write('\tpairwise=CCMP\n')
+ fp.write('\tgroup=CCMP\n')
+ else:
fp.write('\tproto=WPA RSN\n')
fp.write('\tpairwise=CCMP TKIP\n')
- fp.write('\tgroup=CCMP TKIP\n')
- else:
- fp.write('\tproto=WPA WPA2\n')
- fp.write('\tpairwise=CCMP\n')
- fp.write('\tgroup=TKIP\n')
+ fp.write('\tgroup=CCMP TKIP\n')
fp.write('\tpsk="'+psk+'"\n')
-
elif encryption == 'WEP':
fp.write('\tkey_mgmt=NONE\n')
if wepkeytype == 'ASCII':
elif split[0] == 'proto':
config.plugins.wlan.encryption.enabled.value = True
- if split[1] == "WPA" :
+ if split[1] == 'WPA' :
mode = 'WPA'
- if split[1] == "WPA WPA2" :
- mode = 'WPA/WPA2'
- if split[1] == "WPA RSN" :
+ if split[1] == 'RSN':
mode = 'WPA2'
+ if split[1] in ('WPA RSN', 'WPA WPA2'):
+ mode = 'WPA/WPA2'
+
config.plugins.wlan.encryption.type.value = mode
print "[Wlan.py] Got Encryption: "+mode
- #currently unused !
- #elif split[0] == 'key_mgmt':
- # print "split[1]",split[1]
- # if split[1] == "WPA-PSK" :
- # config.plugins.wlan.encryption.enabled.value = True
- # config.plugins.wlan.encryption.type.value = "WPA/WPA2"
- # print "[Wlan.py] Got Encryption: "+ config.plugins.wlan.encryption.type.value
-
elif split[0] == 'wep_key0':
config.plugins.wlan.encryption.enabled.value = True
config.plugins.wlan.encryption.type.value = 'WEP'
print "[Wlan.py] WS-CONFIG-->",wsconfig
return wsconfig
-
- def restart(self, iface):
- system("start-stop-daemon -K -x /usr/sbin/wpa_supplicant")
- system("start-stop-daemon -S -x /usr/sbin/wpa_supplicant -- -B -i"+iface+" -c/etc/wpa_supplicant.conf")
class Status:
def __init__(self):
def stopWlanConsole(self):
if self.WlanConsole is not None:
print "killing self.WlanConsole"
+ self.WlanConsole.killAll()
self.WlanConsole = None
def getDataForInterface(self, iface, callback = None):
-from enigma import eTimer, eTPM
+from enigma import eTimer, eTPM, eEnv
from Screens.Screen import Screen
from Components.ActionMap import ActionMap, NumberActionMap
from Components.Pixmap import Pixmap,MultiPixmap
from Wlan import Wlan, wpaSupplicant, iStatus
import sha
-plugin_path = "/usr/lib/enigma2/python/Plugins/SystemPlugins/WirelessLan"
+plugin_path = eEnv.resolve("${libdir}/enigma2/python/Plugins/SystemPlugins/WirelessLan")
list = []
list.append("WEP")
driver = iNetwork.detectWlanModule(iface)
else:
driver = 'dreambox'
- if driver in ('ralink', 'zydas'):
- return " pre-up /usr/sbin/wpa_supplicant -i"+iface+" -c/etc/wpa_supplicant.conf -B -D"+driver+"\n post-down wpa_cli terminate"
- else:
- if config.plugins.wlan.essid.value == "hidden...":
- return ' pre-up iwconfig '+iface+' essid "'+config.plugins.wlan.hiddenessid.value+'"\n pre-up /usr/sbin/wpa_supplicant -i'+iface+' -c/etc/wpa_supplicant.conf -B -dd -D'+driver+'\n post-down wpa_cli terminate'
- else:
- return ' pre-up iwconfig '+iface+' essid "'+config.plugins.wlan.essid.value+'"\n pre-up /usr/sbin/wpa_supplicant -i'+iface+' -c/etc/wpa_supplicant.conf -B -dd -D'+driver+'\n post-down wpa_cli terminate'
+ ret = ""
+ if driver == 'madwifi' and config.plugins.wlan.essid.value == "hidden...":
+ ret += "\tpre-up iwconfig " + iface + " essid \"" + config.plugins.wlan.hiddenessid.value + "\" || true\n"
+ ret += "\tpre-up wpa_supplicant -i" + iface + " -c/etc/wpa_supplicant.conf -B -dd -D" + driver + " || true\n"
+ ret += "\tpre-down wpa_cli -i" + iface + " terminate || true\n"
+ return ret
def Plugins(**kwargs):
- return PluginDescriptor(name=_("Wireless LAN"), description=_("Connect to a Wireless Network"), where = PluginDescriptor.WHERE_NETWORKSETUP, fnc={"ifaceSupported": callFunction, "configStrings": configStrings, "WlanPluginEntry": lambda x: "Wireless Network Configuartion..."})
+ return PluginDescriptor(name=_("Wireless LAN"), description=_("Connect to a Wireless Network"), where = PluginDescriptor.WHERE_NETWORKSETUP, needsRestart = False, fnc={"ifaceSupported": callFunction, "configStrings": configStrings, "WlanPluginEntry": lambda x: "Wireless Network Configuartion..."})
file.close()
makefile = open(pluginpath + "/Makefile.am", "w")
-makefile.write("""installdir = $(LIBDIR)/enigma2/python/Plugins/%s/%s
+makefile.write("""installdir = $(pkglibdir)/python/Plugins/%s/%s
install_PYTHON = \\
__init__.py \\
"cancel": self.cancel,
"up": self.keyUp,
"down": self.keyDown,
- }, -3)
+ }, -2)
self.settings = ConfigSubsection()
choicelist = [(PAGE_AUDIO,_("audio tracks")), (PAGE_SUBTITLES,_("Subtitles"))]
streams = []
conflist = []
selectedidx = 0
-
- service = self.session.nav.getCurrentService()
- self.audioTracks = audio = service and service.audioTracks()
- n = audio and audio.getNumberOfTracks() or 0
-
+
if self.settings.menupage.getValue() == PAGE_AUDIO:
self.setTitle(_("Select audio track"))
+ service = self.session.nav.getCurrentService()
+ self.audioTracks = audio = service and service.audioTracks()
+ n = audio and audio.getNumberOfTracks() or 0
if SystemInfo["CanDownmixAC3"]:
self.settings.downmix = ConfigOnOff(default=config.av.downmix_ac3.value)
self.settings.downmix.addNotifier(self.changeAC3Downmix, initial_call = False)
if n > 0:
self.audioChannel = service.audioChannel()
- choicelist = [("0",_("left")), ("1",_("stereo")), ("2", _("right"))]
- self.settings.channelmode = ConfigSelection(choices = choicelist, default = str(self.audioChannel.getCurrentChannel()))
- self.settings.channelmode.addNotifier(self.changeMode, initial_call = False)
- conflist.append(getConfigListEntry(_("Channel"), self.settings.channelmode))
- self["key_green"].setBoolean(True)
+ if self.audioChannel:
+ choicelist = [("0",_("left")), ("1",_("stereo")), ("2", _("right"))]
+ self.settings.channelmode = ConfigSelection(choices = choicelist, default = str(self.audioChannel.getCurrentChannel()))
+ self.settings.channelmode.addNotifier(self.changeMode, initial_call = False)
+ conflist.append(getConfigListEntry(_("Channel"), self.settings.channelmode))
+ self["key_green"].setBoolean(True)
+ else:
+ conflist.append(('',))
+ self["key_green"].setBoolean(False)
selectedAudio = self.audioTracks.getCurrentTrack()
for x in range(n):
number = str(x)
language = _("<unknown>")
selected = ""
- if sel and x[:4] == sel[:4]:
+ if sel and x == sel:
selected = _("Running")
selectedidx = idx
number = "%x%02x" % (x[3],x[2])
elif x[0] == 2:
- types = ("UTF-8 text","SSA / AAS",".SRT file")
+ types = (_("<unknown>"), "UTF-8 text", "SSA", "AAS", ".SRT file", "VOB", "PGS (unsupported)")
description = types[x[2]]
streams.append((x, "", number, description, language, selected))
conflist.append(getConfigListEntry(Plugins[0][0], ConfigNothing()))
self.plugincallfunc = Plugins[0][1]
if len(Plugins) > 1:
- print "these plugins are installed but not displayed in the dialog box:", Plugins[1:]
+ print "plugin(s) installed but not displayed in the dialog box:", Plugins[1:]
self["config"].list = conflist
self["config"].l.setList(conflist)
config.av.downmix_ac3.save()
def changeMode(self, mode):
- if mode is not None:
+ if mode is not None and self.audioChannel:
self.audioChannel.selectChannel(int(mode.getValue()))
def changeAudio(self, audio):
from Components.ServiceEventTracker import ServiceEventTracker, InfoBarBase
profile("ChannelSelection.py 1")
from EpgSelection import EPGSelection
-from enigma import eServiceReference, eEPGCache, eServiceCenter, eRCInput, eTimer, eDVBDB, iPlayableService, iServiceInformation, getPrevAsciiCode
+from enigma import eServiceReference, eEPGCache, eServiceCenter, eRCInput, eTimer, eDVBDB, iPlayableService, iServiceInformation, getPrevAsciiCode, eEnv
from Components.config import config, ConfigSubsection, ConfigText
from Tools.NumericalTextInput import NumericalTextInput
profile("ChannelSelection.py 2")
class ChannelContextMenu(Screen):
def __init__(self, session, csel):
- from Components.ParentalControl import parentalControl
+
Screen.__init__(self, session)
#raise Exception("we need a better summary screen here")
self.csel = csel
isPlayable = not (current_sel_flags & (eServiceReference.isMarker|eServiceReference.isDirectory))
if isPlayable:
if config.ParentalControl.configured.value:
+ from Components.ParentalControl import parentalControl
if parentalControl.getProtectionLevel(csel.getCurrentSelection().toCompareString()) == -1:
append_when_current_valid(current, menu, (_("add to parental protection"), boundFunction(self.addParentalProtection, csel.getCurrentSelection())), level = 0)
else:
self.close()
def addParentalProtection(self, service):
+ from Components.ParentalControl import parentalControl
parentalControl.protectService(service.toCompareString())
self.close()
def pinEntered(self, service, result):
if result:
+ from Components.ParentalControl import parentalControl
parentalControl.unProtectService(service)
self.close()
else:
refstr = refstr[pos+14:]
pos = refstr.find('"')
if pos != -1:
- filename = '/etc/enigma2/' + refstr[:pos] # FIXMEEE !!! HARDCODED /etc/enigma2
+ filename = eEnv.resolve('${sysconfdir}/enigma2/') + refstr[:pos]
self.removeCurrentService()
try:
if filename is not None:
self["arrowup2"] = MovingPixmap()
def setDirectory(self):
- os_system("mount %s %s" % (resolveFilename(SCOPE_DEFAULTPARTITION), resolveFilename(SCOPE_DEFAULTPARTITIONMOUNTDIR)))
self.directory = resolveFilename(SCOPE_DEFAULTPARTITIONMOUNTDIR)
self.xmlfile = "defaultwizard.xml"
+ if self.directory:
+ os_system("mount %s %s" % (resolveFilename(SCOPE_DEFAULTPARTITION), self.directory))
def markDone(self):
config.misc.defaultchosen.value = 0
self.session.nav.stopService()
elif answer == "restart":
self.doSeek(0)
+ self.setSeekState(self.SEEK_STATE_PLAY)
def doEofInternal(self, playing):
if not self.execing:
SEEK_STATE_PAUSE = (1, 0, 0, "||")
SEEK_STATE_EOF = (1, 0, 0, "END")
- def __init__(self, actionmap = "InfobarSeekActions", useSeekBackHack=True):
+ def __init__(self, actionmap = "InfobarSeekActions"):
self.__event_tracker = ServiceEventTracker(screen=self, eventmap=
{
iPlayableService.evSeekableStatusChanged: self.__seekableStatusChanged,
self.__seekableStatusChanged()
def makeStateForward(self, n):
-# minspeed = config.seek.stepwise_minspeed.value
-# repeat = int(config.seek.stepwise_repeat.value)
-# if minspeed != "Never" and n >= int(minspeed) and repeat > 1:
-# return (0, n * repeat, repeat, ">> %dx" % n)
-# else:
- return (0, n, 0, ">> %dx" % n)
+ return (0, n, 0, ">> %dx" % n)
def makeStateBackward(self, n):
-# minspeed = config.seek.stepwise_minspeed.value
-# repeat = int(config.seek.stepwise_repeat.value)
-# if minspeed != "Never" and n >= int(minspeed) and repeat > 1:
-# return (0, -n * repeat, repeat, "<< %dx" % n)
-# else:
- return (0, -n, 0, "<< %dx" % n)
+ return (0, -n, 0, "<< %dx" % n)
def makeStateSlowMotion(self, n):
return (0, 0, n, "/%d" % n)
answer[1][1]()
from Tools.BoundFunction import boundFunction
+import inspect
# depends on InfoBarExtensions
return name
def getPluginList(self):
- list = [((boundFunction(self.getPluginName, p.name), boundFunction(self.runPlugin, p), lambda: True), None, p.name) for p in plugins.getPlugins(where = PluginDescriptor.WHERE_EXTENSIONSMENU)]
- list.sort(key = lambda e: e[2]) # sort by name
- return list
+ l = []
+ for p in plugins.getPlugins(where = PluginDescriptor.WHERE_EXTENSIONSMENU):
+ args = inspect.getargspec(p.__call__)[0]
+ if len(args) == 1 or len(args) == 2 and isinstance(self, InfoBarChannelSelection):
+ l.append(((boundFunction(self.getPluginName, p.name), boundFunction(self.runPlugin, p), lambda: True), None, p.name))
+ l.sort(key = lambda e: e[2]) # sort by name
+ return l
def runPlugin(self, plugin):
if isinstance(self, InfoBarChannelSelection):
recording = RecordTimerEntry(serviceref, begin, end, name, description, eventid, dirname = preferredInstantRecordPath())
recording.dontSave = True
-
+
if event is None or limitEvent == False:
recording.autoincrease = True
- if recording.setAutoincreaseEnd():
- self.session.nav.RecordTimer.record(recording)
- self.recording.append(recording)
+ recording.setAutoincreaseEnd()
+
+ simulTimerList = self.session.nav.RecordTimer.record(recording)
+
+ if simulTimerList is None: # no conflict
+ self.recording.append(recording)
else:
- simulTimerList = self.session.nav.RecordTimer.record(recording)
- if simulTimerList is not None: # conflict with other recording
- name = simulTimerList[1].name
- name_date = ' '.join((name, strftime('%c', localtime(simulTimerList[1].begin))))
- print "[TIMER] conflicts with", name_date
- recording.autoincrease = True # start with max available length, then increment
- if recording.setAutoincreaseEnd():
- self.session.nav.RecordTimer.record(recording)
- self.recording.append(recording)
- self.session.open(MessageBox, _("Record time limited due to conflicting timer %s") % name_date, MessageBox.TYPE_INFO)
- else:
- self.session.open(MessageBox, _("Couldn't record due to conflicting timer %s") % name, MessageBox.TYPE_INFO)
- recording.autoincrease = False
- else:
+ if len(simulTimerList) > 1: # with other recording
+ name = simulTimerList[1].name
+ name_date = ' '.join((name, strftime('%c', localtime(simulTimerList[1].begin))))
+ print "[TIMER] conflicts with", name_date
+ recording.autoincrease = True # start with max available length, then increment
+ if recording.setAutoincreaseEnd():
+ self.session.nav.RecordTimer.record(recording)
self.recording.append(recording)
+ self.session.open(MessageBox, _("Record time limited due to conflicting timer %s") % name_date, MessageBox.TYPE_INFO)
+ else:
+ self.session.open(MessageBox, _("Couldn't record due to conflicting timer %s") % name, MessageBox.TYPE_INFO)
+ else:
+ self.session.open(MessageBox, _("Couldn't record due to invalid service %s") % serviceref, MessageBox.TYPE_INFO)
+ recording.autoincrease = False
def isInstantRecordRunning(self):
print "self.recording:", self.recording
return True
def jumpPreviousMark(self):
- # we add 2 seconds, so if the play position is <2s after
+ # we add 5 seconds, so if the play position is <5s after
# the mark, the mark before will be used
self.jumpPreviousNextMark(lambda x: -x-5*90000, start=True)
def jumpNextMark(self):
- if not self.jumpPreviousNextMark(lambda x: x):
+ if not self.jumpPreviousNextMark(lambda x: x-90000):
self.doSeek(-1)
def getNearestCutPoint(self, pts, cmp=abs, start=False):
# can be optimized
- beforecut = False
+ beforecut = True
nearest = None
+ bestdiff = -1
+ instate = True
if start:
- beforecut = True
bestdiff = cmp(0 - pts)
if bestdiff >= 0:
nearest = [0, False]
beforecut = False
if cp[1] == self.CUT_TYPE_IN: # Start is here, disregard previous marks
diff = cmp(cp[0] - pts)
- if diff >= 0:
+ if start and diff >= 0:
nearest = cp
bestdiff = diff
else:
nearest = None
- if cp[1] in (self.CUT_TYPE_MARK, self.CUT_TYPE_LAST):
+ bestdiff = -1
+ if cp[1] == self.CUT_TYPE_IN:
+ instate = True
+ elif cp[1] == self.CUT_TYPE_OUT:
+ instate = False
+ elif cp[1] in (self.CUT_TYPE_MARK, self.CUT_TYPE_LAST):
diff = cmp(cp[0] - pts)
- if diff >= 0 and (nearest is None or bestdiff > diff):
+ if instate and diff >= 0 and (nearest is None or bestdiff > diff):
nearest = cp
bestdiff = diff
return nearest
"9": self.keyNumberGlobal,
"0": self.keyNumberGlobal
}, -1)
+
if self["input"].type == Input.TEXT:
- rcinput = eRCInput.getInstance()
- rcinput.setKeyboardMode(rcinput.kmAscii)
+ self.onExecBegin.append(self.setKeyboardModeAscii)
+ else:
+ self.onExecBegin.append(self.setKeyboardModeNone)
def gotAsciiCode(self):
self["input"].handleAscii(getPrevAsciiCode())
self["input"].delete()
def go(self):
- rcinput = eRCInput.getInstance()
- rcinput.setKeyboardMode(rcinput.kmNone)
self.close(self["input"].getText())
def cancel(self):
- rcinput = eRCInput.getInstance()
- rcinput.setKeyboardMode(rcinput.kmNone)
self.close(None)
def keyHome(self):
pass
def closePinWrong(self, *args):
- rcinput = eRCInput.getInstance()
- rcinput.setKeyboardMode(rcinput.kmNone)
print "args:", args
self.close(False)
def closePinCorrect(self, *args):
- rcinput = eRCInput.getInstance()
- rcinput.setKeyboardMode(rcinput.kmNone)
self.close(True)
def closePinCancel(self, *args):
- rcinput = eRCInput.getInstance()
- rcinput.setKeyboardMode(rcinput.kmNone)
self.close(None)
def cancel(self):
from Components.ActionMap import NumberActionMap
from Components.config import config, getConfigListEntry, ConfigNothing, NoSave, ConfigPIN
from Components.ParentalControlList import ParentalControlEntryComponent, ParentalControlList
-from Components.ParentalControl import parentalControl
+
from Components.Sources.StaticText import StaticText
from Screens.ChoiceBox import ChoiceBox
from Screens.MessageBox import MessageBox
elif self["config"].l.getCurrentSelection() == self.changeSetupPin:
self.session.open(ParentalControlChangePin, config.ParentalControl.setuppin, _("setup PIN"))
elif self["config"].l.getCurrentSelection() == self.reloadLists:
+ from Components.ParentalControl import parentalControl
parentalControl.open()
else:
ConfigListScreen.keyRight(self)
self.session.openWithCallback(self.letterChosen, ChoiceBox, title=_("Show services beginning with"), list=mylist, keys = [], selection = sel)
def letterChosen(self, result):
+ from Components.ParentalControl import parentalControl
if result is not None:
print "result:", result
self.currentLetter = result[1]
}, -1)
def cancel(self):
+ from Components.ParentalControl import parentalControl
parentalControl.save()
self.close()
self.bouquetlist = list.getContent("CN", True)
def selectBouquet(self):
+ from Components.ParentalControl import parentalControl
self.list = [ParentalControlEntryComponent(x[0], x[1], parentalControl.getProtectionType(x[0])) for x in self.bouquetlist]
self.bouquetslist.setList(self.list)
def runInstall(self, val):
if val:
if self.type == self.DOWNLOAD:
- self.session.openWithCallback(self.installFinished, Console, cmdlist = ["ipkg install " + "enigma2-plugin-" + self["list"].l.getCurrentSelection()[0].name])
+ self.session.openWithCallback(self.installFinished, Console, cmdlist = ["opkg install " + "enigma2-plugin-" + self["list"].l.getCurrentSelection()[0].name])
elif self.type == self.REMOVE:
- self.session.openWithCallback(self.installFinished, Console, cmdlist = ["ipkg remove " + "enigma2-plugin-" + self["list"].l.getCurrentSelection()[0].name])
+ self.session.openWithCallback(self.installFinished, Console, cmdlist = ["opkg remove " + "enigma2-plugin-" + self["list"].l.getCurrentSelection()[0].name])
def setWindowTitle(self):
if self.type == self.DOWNLOAD:
self.setTitle(_("Remove plugins"))
def startIpkgListInstalled(self):
- self.container.execute("ipkg list_installed enigma2-plugin-*")
+ self.container.execute("opkg list_installed enigma2-plugin-*")
def startIpkgListAvailable(self):
- self.container.execute("ipkg list enigma2-plugin-*")
+ self.container.execute("opkg list enigma2-plugin-*")
def startRun(self):
self["list"].instance.hide()
if self.type == self.DOWNLOAD:
if not PluginDownloadBrowser.lastDownloadDate or (time() - PluginDownloadBrowser.lastDownloadDate) > 3600:
# Only update from internet once per hour
- self.container.execute("ipkg update")
+ self.container.execute("opkg update")
PluginDownloadBrowser.lastDownloadDate = time()
else:
self.startIpkgListAvailable()
self.list = list
self["list"].l.setList(list)
-language.addCallback(languageChanged)
\ No newline at end of file
+language.addCallback(languageChanged)
if raw_channel:
frontend = raw_channel.getFrontend()
if frontend:
+ frontend.closeFrontend() # immediate close...
del frontend
del raw_channel
return True
def cableTransponderSearchSessionClosed(self, *val):
print "cableTransponderSearchSessionClosed, val", val
- self.resetTimeout()
self.cable_search_container.appClosed.remove(self.cableTransponderSearchClosed)
self.cable_search_container.dataAvail.remove(self.getCableTransponderData)
+ if val and len(val):
+ if val[0]:
+ self.setCableTransponderSearchResult(self.__tlist)
+ else:
+ self.cable_search_container.sendCtrlC()
+ self.setCableTransponderSearchResult(None)
self.cable_search_container = None
self.cable_search_session = None
- if val and len(val) and val[0]:
- self.setCableTransponderSearchResult(self.__tlist)
self.__tlist = None
self.cableTransponderSearchFinished()
parm.modulation = qam[data[4]]
parm.inversion = inv[data[5]]
self.__tlist.append(parm)
- tmpstr = _("Try to find used Transponders in cable network.. please wait...")
- tmpstr += "\n\n"
- tmpstr += data[1]
- tmpstr += " kHz "
- tmpstr += data[0]
- self.cable_search_session["text"].setText(tmpstr)
-
- def setTimeout(self):
- try:
- self.oldtimeoutvalue = open("/sys/module/dvb_core/parameters/dvb_shutdown_timeout", "r").readline()
- open("/sys/module/dvb_core/parameters/dvb_shutdown_timeout", "w").write("0")
- except:
- print "[info] no /sys/module/dvb_core/parameters/dvb_shutdown_timeout available"
-
- def resetTimeout(self):
- try:
- open("/sys/module/dvb_core/parameters/dvb_shutdown_timeout", "w").write(self.oldtimeoutvalue)
- except:
- print "[info] no /sys/module/dvb_core/parameters/dvb_shutdown_timeout available"
+ tmpstr = _("Try to find used Transponders in cable network.. please wait...")
+ tmpstr += "\n\n"
+ tmpstr += data[1]
+ tmpstr += " kHz "
+ tmpstr += data[0]
+ self.cable_search_session["text"].setText(tmpstr)
def startCableTransponderSearch(self, nim_idx):
if not self.tryGetRawFrontend(nim_idx):
self.cable_search_container.execute(cmd)
tmpstr = _("Try to find used transponders in cable network.. please wait...")
tmpstr += "\n\n..."
- self.setTimeout()
self.cable_search_session = self.session.openWithCallback(self.cableTransponderSearchSessionClosed, MessageBox, tmpstr, MessageBox.TYPE_INFO)
class DefaultSatLists(DefaultWizard):
self.list.append(getConfigListEntry(_('Satellite'), self.scan_satselection[index_to_scan]))
self.list.append(getConfigListEntry(_('Frequency'), self.scan_sat.frequency))
self.list.append(getConfigListEntry(_('Inversion'), self.scan_sat.inversion))
- self.list.append(getConfigListEntry(_('Symbol Rate'), self.scan_sat.symbolrate))
- self.list.append(getConfigListEntry(_("Polarity"), self.scan_sat.polarization))
+ self.list.append(getConfigListEntry(_('Symbol rate'), self.scan_sat.symbolrate))
+ self.list.append(getConfigListEntry(_('Polarization'), self.scan_sat.polarization))
if self.scan_sat.system.value == eDVBFrontendParametersSatellite.System_DVB_S:
self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec))
elif self.scan_sat.system.value == eDVBFrontendParametersSatellite.System_DVB_S2:
self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec_s2))
self.modulationEntry = getConfigListEntry(_('Modulation'), self.scan_sat.modulation)
self.list.append(self.modulationEntry)
- self.list.append(getConfigListEntry(_('Rolloff'), self.scan_sat.rolloff))
+ self.list.append(getConfigListEntry(_('Roll-off'), self.scan_sat.rolloff))
self.list.append(getConfigListEntry(_('Pilot'), self.scan_sat.pilot))
elif self.scan_type.value == "single_satellite":
self.updateSatList()
if self.scan_typecable.value == "single_transponder":
self.list.append(getConfigListEntry(_("Frequency"), self.scan_cab.frequency))
self.list.append(getConfigListEntry(_("Inversion"), self.scan_cab.inversion))
- self.list.append(getConfigListEntry(_("Symbol Rate"), self.scan_cab.symbolrate))
+ self.list.append(getConfigListEntry(_("Symbol rate"), self.scan_cab.symbolrate))
self.list.append(getConfigListEntry(_("Modulation"), self.scan_cab.modulation))
self.list.append(getConfigListEntry(_("FEC"), self.scan_cab.fec))
elif nim.isCompatible("DVB-T"):
self.list.append(getConfigListEntry(_("Frequency"), self.scan_ter.frequency))
self.list.append(getConfigListEntry(_("Inversion"), self.scan_ter.inversion))
self.list.append(getConfigListEntry(_("Bandwidth"), self.scan_ter.bandwidth))
- self.list.append(getConfigListEntry(_("Code rate high"), self.scan_ter.fechigh))
- self.list.append(getConfigListEntry(_("Code rate low"), self.scan_ter.feclow))
+ self.list.append(getConfigListEntry(_("Code rate HP"), self.scan_ter.fechigh))
+ self.list.append(getConfigListEntry(_("Code rate LP"), self.scan_ter.feclow))
self.list.append(getConfigListEntry(_("Modulation"), self.scan_ter.modulation))
self.list.append(getConfigListEntry(_("Transmission mode"), self.scan_ter.transmission))
- self.list.append(getConfigListEntry(_("Guard interval mode"), self.scan_ter.guard))
- self.list.append(getConfigListEntry(_("Hierarchy mode"), self.scan_ter.hierarchy))
+ self.list.append(getConfigListEntry(_("Guard interval"), self.scan_ter.guard))
+ self.list.append(getConfigListEntry(_("Hierarchy info"), self.scan_ter.hierarchy))
self.list.append(getConfigListEntry(_("Network scan"), self.scan_networkScan))
self.list.append(getConfigListEntry(_("Clear before scan"), self.scan_clearallservices))
self.list.append(getConfigListEntry(_("Only Free scan"), self.scan_onlyfree))
(eDVBFrontendParametersSatellite.System_DVB_S2, _("DVB-S2"))])
self.scan_sat.frequency = ConfigInteger(default = defaultSat["frequency"], limits = (1, 99999))
self.scan_sat.inversion = ConfigSelection(default = defaultSat["inversion"], choices = [
- (eDVBFrontendParametersSatellite.Inversion_Off, _("off")),
- (eDVBFrontendParametersSatellite.Inversion_On, _("on")),
+ (eDVBFrontendParametersSatellite.Inversion_Off, _("Off")),
+ (eDVBFrontendParametersSatellite.Inversion_On, _("On")),
(eDVBFrontendParametersSatellite.Inversion_Unknown, _("Auto"))])
self.scan_sat.symbolrate = ConfigInteger(default = defaultSat["symbolrate"], limits = (1, 99999))
self.scan_sat.polarization = ConfigSelection(default = defaultSat["polarization"], choices = [
(eDVBFrontendParametersSatellite.RollOff_alpha_0_25, "0.25"),
(eDVBFrontendParametersSatellite.RollOff_alpha_0_20, "0.20")])
self.scan_sat.pilot = ConfigSelection(default = defaultSat.get("pilot", eDVBFrontendParametersSatellite.Pilot_Unknown), choices = [
- (eDVBFrontendParametersSatellite.Pilot_Off, _("off")),
- (eDVBFrontendParametersSatellite.Pilot_On, _("on")),
+ (eDVBFrontendParametersSatellite.Pilot_Off, _("Off")),
+ (eDVBFrontendParametersSatellite.Pilot_On, _("On")),
(eDVBFrontendParametersSatellite.Pilot_Unknown, _("Auto"))])
# cable
self.scan_cab.frequency = ConfigInteger(default = defaultCab["frequency"], limits = (50, 999))
self.scan_cab.inversion = ConfigSelection(default = defaultCab["inversion"], choices = [
- (eDVBFrontendParametersCable.Inversion_Off, _("off")),
- (eDVBFrontendParametersCable.Inversion_On, _("on")),
+ (eDVBFrontendParametersCable.Inversion_Off, _("Off")),
+ (eDVBFrontendParametersCable.Inversion_On, _("On")),
(eDVBFrontendParametersCable.Inversion_Unknown, _("Auto"))])
self.scan_cab.modulation = ConfigSelection(default = defaultCab["modulation"], choices = [
(eDVBFrontendParametersCable.Modulation_QAM16, "16-QAM"),
# terrestial
self.scan_ter.frequency = ConfigInteger(default = 466000, limits = (50000, 999000))
self.scan_ter.inversion = ConfigSelection(default = defaultTer["inversion"], choices = [
- (eDVBFrontendParametersTerrestrial.Inversion_Off, _("off")),
- (eDVBFrontendParametersTerrestrial.Inversion_On, _("on")),
+ (eDVBFrontendParametersTerrestrial.Inversion_Off, _("Off")),
+ (eDVBFrontendParametersTerrestrial.Inversion_On, _("On")),
(eDVBFrontendParametersTerrestrial.Inversion_Unknown, _("Auto"))])
# WORKAROUND: we can't use BW-auto
self.scan_ter.bandwidth = ConfigSelection(default = defaultTer["bandwidth"], choices = [
self.tlist = tlist
def cableTransponderSearchFinished(self):
- self.startScan(self.tlist, self.flags, self.feid)
+ if self.tlist is None:
+ self.tlist = []
+ else:
+ self.startScan(self.tlist, self.flags, self.feid)
def startScan(self, tlist, flags, feid):
if len(tlist):
self.session.open(MessageBox, _("Nothing to scan!\nPlease setup your tuner settings before you start a service scan."), MessageBox.TYPE_ERROR)
def setCableTransponderSearchResult(self, tlist):
- self.scanList.append({"transponders": tlist, "feid": self.feid, "flags": self.flags})
+ if tlist is not None:
+ self.scanList.append({"transponders": tlist, "feid": self.feid, "flags": self.flags})
def cableTransponderSearchFinished(self):
self.buildTransponderList()
from Components.Sources.Source import Source
profile("LOAD:GUIComponent")
from Components.GUIComponent import GUIComponent
+profile("LOAD:eRCInput")
+from enigma import eRCInput
class Screen(dict, GUISkin):
# stand alone screens (for example web screens)
# don't care about having or not having focus.
self.stand_alone = False
+ self.keyboardMode = None
+
+ def saveKeyboardMode(self):
+ rcinput = eRCInput.getInstance()
+ self.keyboardMode = rcinput.getKeyboardMode()
+
+ def setKeyboardModeAscii(self):
+ rcinput = eRCInput.getInstance()
+ rcinput.setKeyboardMode(rcinput.kmAscii)
+
+ def setKeyboardModeNone(self):
+ rcinput = eRCInput.getInstance()
+ rcinput.setKeyboardMode(rcinput.kmNone)
+
+ def restoreKeyboardMode(self):
+ rcinput = eRCInput.getInstance()
+ if self.keyboardMode is not None:
+ rcinput.setKeyboardMode(self.keyboardMode)
def execBegin(self):
self.active_components = [ ]
self.feinfo = None
else:
self.type = TYPE_SERVICE_INFO
- self["red"] = Label(_("Serviceinfo"))
+ self["red"] = Label(_("Service"))
self["green"] = Label(_("PIDs"))
- self["yellow"] = Label(_("Transponder"))
+ self["yellow"] = Label(_("Multiplex"))
self["blue"] = Label(_("Tuner status"))
service = session.nav.getCurrentService()
if service is not None:
name = ServiceReference(self.session.nav.getCurrentlyPlayingServiceReference()).getServiceName()
refstr = self.session.nav.getCurrentlyPlayingServiceReference().toString()
else:
- name = "N/A"
- refstr = "N/A"
+ name = _("N/A")
+ refstr = _("N/A")
aspect = self.getServiceInfoValue(iServiceInformation.sAspect)
if aspect in ( 1, 2, 5, 6, 9, 0xA, 0xD, 0xE ):
- aspect = "4:3"
+ aspect = _("4:3")
else:
- aspect = "16:9"
+ aspect = _("16:9")
width = self.info and self.info.getInfo(iServiceInformation.sVideoWidth) or -1
height = self.info and self.info.getInfo(iServiceInformation.sVideoHeight) or -1
if width != -1 and height != -1:
- Labels = ( ("Name", name, TYPE_TEXT),
- ("Provider", self.getServiceInfoValue(iServiceInformation.sProvider), TYPE_TEXT),
- ("Videoformat", aspect, TYPE_TEXT),
- ("Videosize", "%dx%d" %(width, height), TYPE_TEXT),
- ("Namespace", self.getServiceInfoValue(iServiceInformation.sNamespace), TYPE_VALUE_HEX, 8),
- ("Service Reference", refstr, TYPE_TEXT))
+ Labels = ( (_("Name"), name, TYPE_TEXT),
+ (_("Provider"), self.getServiceInfoValue(iServiceInformation.sProvider), TYPE_TEXT),
+ (_("Aspect ratio"), aspect, TYPE_TEXT),
+ (_("Resolution"), "%dx%d" %(width, height), TYPE_TEXT),
+ (_("Namespace"), self.getServiceInfoValue(iServiceInformation.sNamespace), TYPE_VALUE_HEX, 8),
+ (_("Service reference"), refstr, TYPE_TEXT))
else:
- Labels = ( ("Name", name, TYPE_TEXT),
- ("Provider", self.getServiceInfoValue(iServiceInformation.sProvider), TYPE_TEXT),
- ("Videoformat", aspect, TYPE_TEXT),
- ("Namespace", self.getServiceInfoValue(iServiceInformation.sNamespace), TYPE_VALUE_HEX, 8),
- ("Service Reference", refstr, TYPE_TEXT))
+ Labels = ( (_("Name"), name, TYPE_TEXT),
+ (_("Provider"), self.getServiceInfoValue(iServiceInformation.sProvider), TYPE_TEXT),
+ (_("Aspect ratio"), aspect, TYPE_TEXT),
+ (_("Namespace"), self.getServiceInfoValue(iServiceInformation.sNamespace), TYPE_VALUE_HEX, 8),
+ (_("Service reference"), refstr, TYPE_TEXT))
self.fillList(Labels)
else:
if self.transponder_info:
tp_info = ConvertToHumanReadable(self.transponder_info)
- conv = { "tuner_type" : _("Transponder Type"),
- "system" : _("System"),
- "modulation" : _("Modulation"),
- "orbital_position" : _("Orbital Position"),
- "frequency" : _("Frequency"),
- "symbol_rate" : _("Symbolrate"),
- "bandwidth" : _("Bandwidth"),
- "polarization" : _("Polarization"),
- "inversion" : _("Inversion"),
- "pilot" : _("Pilot"),
- "rolloff" : _("Rolloff"),
- "fec_inner" : _("FEC"),
- "code_rate_lp" : _("Coderate LP"),
- "code_rate_hp" : _("Coderate HP"),
- "constellation" : _("Constellation"),
- "transmission_mode": _("Transmission Mode"),
- "guard_interval" : _("Guard Interval"),
- "hierarchy_information": _("Hierarchy Information") }
+ conv = { "tuner_type" : _("Type"),
+ "system" : _("System"),
+ "modulation" : _("Modulation"),
+ "orbital_position" : _("Orbital position"),
+ "frequency" : _("Frequency"),
+ "symbol_rate" : _("Symbol rate"),
+ "bandwidth" : _("Bandwidth"),
+ "polarization" : _("Polarization"),
+ "inversion" : _("Inversion"),
+ "pilot" : _("Pilot"),
+ "rolloff" : _("Roll-off"),
+ "fec_inner" : _("FEC"),
+ "code_rate_lp" : _("Code rate LP"),
+ "code_rate_hp" : _("Code rate HP"),
+ "constellation" : _("Constellation"),
+ "transmission_mode" : _("Transmission mode"),
+ "guard_interval" : _("Guard interval"),
+ "hierarchy_information" : _("Hierarchy info") }
Labels = [(conv[i], tp_info[i], TYPE_VALUE_DEC) for i in tp_info.keys()]
self.fillList(Labels)
def pids(self):
if self.type == TYPE_SERVICE_INFO:
- Labels = ( ("VideoPID", self.getServiceInfoValue(iServiceInformation.sVideoPID), TYPE_VALUE_HEX_DEC, 4),
- ("AudioPID", self.getServiceInfoValue(iServiceInformation.sAudioPID), TYPE_VALUE_HEX_DEC, 4),
- ("PCRPID", self.getServiceInfoValue(iServiceInformation.sPCRPID), TYPE_VALUE_HEX_DEC, 4),
- ("PMTPID", self.getServiceInfoValue(iServiceInformation.sPMTPID), TYPE_VALUE_HEX_DEC, 4),
- ("TXTPID", self.getServiceInfoValue(iServiceInformation.sTXTPID), TYPE_VALUE_HEX_DEC, 4),
- ("TSID", self.getServiceInfoValue(iServiceInformation.sTSID), TYPE_VALUE_HEX_DEC, 4),
- ("ONID", self.getServiceInfoValue(iServiceInformation.sONID), TYPE_VALUE_HEX_DEC, 4),
- ("SID", self.getServiceInfoValue(iServiceInformation.sSID), TYPE_VALUE_HEX_DEC, 4))
+ Labels = ( (_("Video PID"), self.getServiceInfoValue(iServiceInformation.sVideoPID), TYPE_VALUE_HEX_DEC, 4),
+ (_("Audio PID"), self.getServiceInfoValue(iServiceInformation.sAudioPID), TYPE_VALUE_HEX_DEC, 4),
+ (_("PCR PID"), self.getServiceInfoValue(iServiceInformation.sPCRPID), TYPE_VALUE_HEX_DEC, 4),
+ (_("PMT PID"), self.getServiceInfoValue(iServiceInformation.sPMTPID), TYPE_VALUE_HEX_DEC, 4),
+ (_("TXT PID"), self.getServiceInfoValue(iServiceInformation.sTXTPID), TYPE_VALUE_HEX_DEC, 4),
+ (_("TSID"), self.getServiceInfoValue(iServiceInformation.sTSID), TYPE_VALUE_HEX_DEC, 4),
+ (_("ONID"), self.getServiceInfoValue(iServiceInformation.sONID), TYPE_VALUE_HEX_DEC, 4),
+ (_("SID"), self.getServiceInfoValue(iServiceInformation.sSID), TYPE_VALUE_HEX_DEC, 4))
self.fillList(Labels)
def showFrontendData(self, real):
if frontendDataOrg and len(frontendDataOrg):
frontendData = ConvertToHumanReadable(frontendDataOrg)
if frontendDataOrg["tuner_type"] == "DVB-S":
- return (("NIM", ('A', 'B', 'C', 'D')[frontendData["tuner_number"]], TYPE_TEXT),
- ("Type", frontendData["system"], TYPE_TEXT),
- ("Modulation", frontendData["modulation"], TYPE_TEXT),
- ("Orbital position", frontendData["orbital_position"], TYPE_VALUE_DEC),
- ("Frequency", frontendData["frequency"], TYPE_VALUE_DEC),
- ("Symbolrate", frontendData["symbol_rate"], TYPE_VALUE_DEC),
- ("Polarization", frontendData["polarization"], TYPE_TEXT),
- ("Inversion", frontendData["inversion"], TYPE_TEXT),
- ("FEC inner", frontendData["fec_inner"], TYPE_TEXT),
- ("Pilot", frontendData.get("pilot", None), TYPE_TEXT),
- ("Rolloff", frontendData.get("rolloff", None), TYPE_TEXT))
+ return ((_("NIM"), ('A', 'B', 'C', 'D')[frontendData["tuner_number"]], TYPE_TEXT),
+ (_("Type"), frontendData["tuner_type"], TYPE_TEXT),
+ (_("System"), frontendData["system"], TYPE_TEXT),
+ (_("Modulation"), frontendData["modulation"], TYPE_TEXT),
+ (_("Orbital position"), frontendData["orbital_position"], TYPE_VALUE_DEC),
+ (_("Frequency"), frontendData["frequency"], TYPE_VALUE_DEC),
+ (_("Symbol rate"), frontendData["symbol_rate"], TYPE_VALUE_DEC),
+ (_("Polarization"), frontendData["polarization"], TYPE_TEXT),
+ (_("Inversion"), frontendData["inversion"], TYPE_TEXT),
+ (_("FEC"), frontendData["fec_inner"], TYPE_TEXT),
+ (_("Pilot"), frontendData.get("pilot", None), TYPE_TEXT),
+ (_("Roll-off"), frontendData.get("rolloff", None), TYPE_TEXT))
elif frontendDataOrg["tuner_type"] == "DVB-C":
- return (("NIM", ('A', 'B', 'C', 'D')[frontendData["tuner_number"]], TYPE_TEXT),
- ("Type", frontendData["tuner_type"], TYPE_TEXT),
- ("Frequency", frontendData["frequency"], TYPE_VALUE_DEC),
- ("Symbolrate", frontendData["symbol_rate"], TYPE_VALUE_DEC),
- ("Modulation", frontendData["modulation"], TYPE_TEXT),
- ("Inversion", frontendData["inversion"], TYPE_TEXT),
- ("FEC inner", frontendData["fec_inner"], TYPE_TEXT))
+ return ((_("NIM"), ('A', 'B', 'C', 'D')[frontendData["tuner_number"]], TYPE_TEXT),
+ (_("Type"), frontendData["tuner_type"], TYPE_TEXT),
+ (_("Modulation"), frontendData["modulation"], TYPE_TEXT),
+ (_("Frequency"), frontendData["frequency"], TYPE_VALUE_DEC),
+ (_("Symbol rate"), frontendData["symbol_rate"], TYPE_VALUE_DEC),
+ (_("Inversion"), frontendData["inversion"], TYPE_TEXT),
+ (_("FEC"), frontendData["fec_inner"], TYPE_TEXT))
elif frontendDataOrg["tuner_type"] == "DVB-T":
- return (("NIM", ('A', 'B', 'C', 'D')[frontendData["tuner_number"]], TYPE_TEXT),
- ("Type", frontendData["tuner_type"], TYPE_TEXT),
- ("Frequency", frontendData["frequency"], TYPE_VALUE_DEC),
- ("Inversion", frontendData["inversion"], TYPE_TEXT),
- ("Bandwidth", frontendData["bandwidth"], TYPE_VALUE_DEC),
- ("CodeRateLP", frontendData["code_rate_lp"], TYPE_TEXT),
- ("CodeRateHP", frontendData["code_rate_hp"], TYPE_TEXT),
- ("Constellation", frontendData["constellation"], TYPE_TEXT),
- ("Transmission Mode", frontendData["transmission_mode"], TYPE_TEXT),
- ("Guard Interval", frontendData["guard_interval"], TYPE_TEXT),
- ("Hierarchy Inform.", frontendData["hierarchy_information"], TYPE_TEXT))
+ return ((_("NIM"), ('A', 'B', 'C', 'D')[frontendData["tuner_number"]], TYPE_TEXT),
+ (_("Type"), frontendData["tuner_type"], TYPE_TEXT),
+ (_("Frequency"), frontendData["frequency"], TYPE_VALUE_DEC),
+ (_("Inversion"), frontendData["inversion"], TYPE_TEXT),
+ (_("Bandwidth"), frontendData["bandwidth"], TYPE_VALUE_DEC),
+ (_("Code rate LP"), frontendData["code_rate_lp"], TYPE_TEXT),
+ (_("Code rate HP"), frontendData["code_rate_hp"], TYPE_TEXT),
+ (_("Constellation"), frontendData["constellation"], TYPE_TEXT),
+ (_("Transmission mode"), frontendData["transmission_mode"], TYPE_TEXT),
+ (_("Guard interval"), frontendData["guard_interval"], TYPE_TEXT),
+ (_("Hierarchy info"), frontendData["hierarchy_information"], TYPE_TEXT))
return [ ]
def fillList(self, Labels):
if v == -2:
v = self.info.getInfoString(what)
elif v == -1:
- v = "N/A"
+ v = _("N/A")
return v
from Components.SystemInfo import SystemInfo
from Components.ConfigList import ConfigListScreen
from Components.Sources.StaticText import StaticText
+from enigma import eEnv
import xml.etree.cElementTree
setupfile = file('data/setup.xml', 'r')
except:
# if not found in the current path, we use the global datadir-path
- setupfile = file('/usr/share/enigma2/setup.xml', 'r')
+ setupfile = file(eEnv.resolve('${datadir}/enigma2/setup.xml'), 'r')
setupdom = xml.etree.cElementTree.parse(setupfile)
setupfile.close()
config.SleepTimer.defaulttime.setValue(time)
config.SleepTimer.defaulttime.save()
config.SleepTimer.action.save()
+ config.SleepTimer.ask.save()
self.session.nav.SleepTimer.setSleepTime(time)
self.session.openWithCallback(self.close, MessageBox, _("The sleep timer has been activated."), MessageBox.TYPE_INFO)
else:
self.conntected=False
self.session.nav.record_event.remove(self.getRecordEvent)
if value:
- # hack .. we dont like to show any other screens when this screen has closed
- self.onClose = [self.__closed]
- self.session.dialog_stack = []
- self.session.summary_stack = [None]
- MessageBox.close(self, True)
-
- def __closed(self):
- quitMainloop(self.retval)
+ quitMainloop(self.retval)
+ else:
+ MessageBox.close(self, True)
def __onShow(self):
global inTryQuitMainloop
from TimerEntry import TimerEntry, TimerLog
from Tools.BoundFunction import boundFunction
from time import time
+from timer import TimerEntry as RealTimerEntry
class TimerEditList(Screen):
EMPTY = 0
if not timersanitycheck.check():
t.disable()
print "Sanity check failed"
- self.session.openWithCallback(self.finishedEdit, TimerSanityConflict, timersanitycheck.getSimulTimerList())
+ simulTimerList = timersanitycheck.getSimulTimerList()
+ if simulTimerList is not None:
+ self.session.openWithCallback(self.finishedEdit, TimerSanityConflict, simulTimerList)
else:
print "Sanity check passed"
if timersanitycheck.doubleCheck():
self.key_blue_choice = self.EMPTY
def fillTimerList(self):
+ #helper function to move finished timers to end of list
+ def eol_compare(x, y):
+ if x[0].state != y[0].state and x[0].state == RealTimerEntry.StateEnded or y[0].state == RealTimerEntry.StateEnded:
+ return cmp(x[0].state, y[0].state)
+ return cmp(x[0].begin, y[0].begin)
+
list = self.list
del list[:]
list.extend([(timer, False) for timer in self.session.nav.RecordTimer.timer_list])
list.extend([(timer, True) for timer in self.session.nav.RecordTimer.processed_timers])
- list.sort(cmp = lambda x, y: x[0].begin < y[0].begin)
+ if config.usage.timerlist_finished_timer_position.index: #end of list
+ list.sort(cmp = eol_compare)
+ else:
+ list.sort(key = lambda x: x[0].begin)
def showLog(self):
cur=self["timerlist"].getCurrent()
from Components.MenuList import MenuList
from Components.ConfigList import ConfigList
from Components.Sources.List import List
-from enigma import eTimer
+from enigma import eTimer, eEnv
from xml.sax import make_parser
from xml.sax.handler import ContentHandler
parser.setContentHandler(wizardHandler)
for xmlfile in self.xmlfile:
if xmlfile[0] != '/':
- parser.parse('/usr/share/enigma2/' + xmlfile)
+ parser.parse(eEnv.resolve('${datadir}/enigma2/') + xmlfile)
else:
parser.parse(xmlfile)
from os import path as os_path, mkdir, rmdir, system, walk, stat as os_stat, listdir, readlink, makedirs, error as os_error, symlink, access, F_OK, R_OK, W_OK
from stat import S_IMODE
from re import compile
+from enigma import eEnv
try:
from os import chmod
PATH_DONTCREATE = 1
PATH_FALLBACK = 2
defaultPaths = {
- SCOPE_TRANSPONDERDATA: ("/etc/", PATH_DONTCREATE),
- SCOPE_SYSETC: ("/etc/", PATH_DONTCREATE),
- SCOPE_FONTS: ("/usr/share/fonts/", PATH_DONTCREATE),
- SCOPE_CONFIG: ("/etc/enigma2/", PATH_CREATE),
- SCOPE_PLUGINS: ("/usr/lib/enigma2/python/Plugins/", PATH_CREATE),
+ SCOPE_TRANSPONDERDATA: (eEnv.resolve("${sysconfdir}/"), PATH_DONTCREATE),
+ SCOPE_SYSETC: (eEnv.resolve("${sysconfdir}/"), PATH_DONTCREATE),
+ SCOPE_FONTS: (eEnv.resolve("${datadir}/fonts/"), PATH_DONTCREATE),
+ SCOPE_CONFIG: (eEnv.resolve("${sysconfdir}/enigma2/"), PATH_CREATE),
+ SCOPE_PLUGINS: (eEnv.resolve("${libdir}/enigma2/python/Plugins/"), PATH_CREATE),
- SCOPE_LANGUAGE: ("/usr/share/enigma2/po/", PATH_DONTCREATE),
+ SCOPE_LANGUAGE: (eEnv.resolve("${datadir}/enigma2/po/"), PATH_DONTCREATE),
- SCOPE_SKIN: ("/usr/share/enigma2/", PATH_DONTCREATE),
- SCOPE_SKIN_IMAGE: ("/usr/share/enigma2/", PATH_DONTCREATE),
+ SCOPE_SKIN: (eEnv.resolve("${datadir}/enigma2/"), PATH_DONTCREATE),
+ SCOPE_SKIN_IMAGE: (eEnv.resolve("${datadir}/enigma2/"), PATH_DONTCREATE),
SCOPE_HDD: ("/hdd/movie/", PATH_DONTCREATE),
SCOPE_MEDIA: ("/media/", PATH_DONTCREATE),
- SCOPE_PLAYLIST: ("/etc/enigma2/playlist/", PATH_CREATE),
+ SCOPE_PLAYLIST: (eEnv.resolve("${sysconfdir}/enigma2/playlist/"), PATH_CREATE),
SCOPE_USERETC: ("", PATH_DONTCREATE), # user home directory
- SCOPE_DEFAULTDIR: ("/usr/share/enigma2/defaults/", PATH_CREATE),
- SCOPE_DEFAULTPARTITION: ("/dev/mtdblock/6", PATH_DONTCREATE),
- SCOPE_DEFAULTPARTITIONMOUNTDIR: ("/usr/share/enigma2/dealer", PATH_CREATE),
- SCOPE_METADIR: ("/usr/share/meta", PATH_CREATE),
+ SCOPE_DEFAULTDIR: (eEnv.resolve("${datadir}/enigma2/defaults/"), PATH_CREATE),
+ SCOPE_DEFAULTPARTITION: ("/dev/mtdblock6", PATH_DONTCREATE),
+ SCOPE_DEFAULTPARTITIONMOUNTDIR: (eEnv.resolve("${datadir}/enigma2/dealer"), PATH_CREATE),
+ SCOPE_METADIR: (eEnv.resolve("${datadir}/meta"), PATH_CREATE),
}
FILE_COPY = 0 # copy files from fallback dir to the basedir
PATH_MOVE = 3 # move the fallback dir to the basedir (can be used for changes in paths)
fallbackPaths = {
SCOPE_CONFIG: [("/home/root/", FILE_MOVE),
- ("/usr/share/enigma2/defaults/", FILE_COPY)],
+ (eEnv.resolve("${datadir}/enigma2/defaults/"), FILE_COPY)],
SCOPE_HDD: [("/hdd/movies", PATH_MOVE)]
}
if flags == PATH_CREATE:
if not pathExists(path):
- mkdir(path)
+ try:
+ mkdir(path)
+ except OSError:
+ print "resolveFilename: Couldn't create %s" % path
+ return None
fallbackPath = fallbackPaths.get(scope)
# returns a list of tuples containing pathname and filename matching the given pattern
# example-pattern: match all txt-files: ".*\.txt$"
def crawlDirectory(directory, pattern):
- expression = compile(pattern)
list = []
- for root, dirs, files in walk(directory):
- for file in files:
- if expression.match(file) is not None:
- list.append((root, file))
+ if directory:
+ expression = compile(pattern)
+ for root, dirs, files in walk(directory):
+ for file in files:
+ if expression.match(file) is not None:
+ list.append((root, file))
return list
def copyfile(src, dst):
return
if self.lang == 'de_DE':
- self.mapping.append (u".,?'+\"0-()@/:_$!=") # 0
- self.mapping.append (u" 1") # 1
- self.mapping.append (u"aäbc2AÄBC") # 2
+ self.mapping.append (u"0,?!&@=*'+\"()$~") # 0
+ self.mapping.append (u" 1.:/-_") # 1
+ self.mapping.append (u"abcä2ABCÄ") # 2
self.mapping.append (u"def3DEF") # 3
self.mapping.append (u"ghi4GHI") # 4
self.mapping.append (u"jkl5JKL") # 5
self.mapping.append (u"mnoö6MNOÖ") # 6
self.mapping.append (u"pqrsß7PQRSß") # 7
- self.mapping.append (u"tuüv8TUÜV") # 8
+ self.mapping.append (u"tuvü8TUVÜ") # 8
self.mapping.append (u"wxyz9WXYZ") # 9
elif self.lang == 'es_ES':
- self.mapping.append (u".,?'+\"0-()@/:_$!=") # 0
- self.mapping.append (u" 1") # 1
+ self.mapping.append (u"0,?!&@=*'+\"()$~") # 0
+ self.mapping.append (u" 1.:/-_") # 1
self.mapping.append (u"abcáà2ABCÁÀ") # 2
self.mapping.append (u"deéèf3DEFÉÈ") # 3
self.mapping.append (u"ghiíì4GHIÍÌ") # 4
self.mapping.append (u"tuvúù8TUVÚÙ") # 8
self.mapping.append (u"wxyz9WXYZ") # 9
if self.lang in ('sv_SE', 'fi_FI'):
- self.mapping.append (u".,?'+\"0-()@/:_$!=") # 0
- self.mapping.append (u" 1") # 1
+ self.mapping.append (u"0,?!&@=*'+\"()$~") # 0
+ self.mapping.append (u" 1.:/-_") # 1
self.mapping.append (u"abcåä2ABCÅÄ") # 2
self.mapping.append (u"defé3DEFÉ") # 3
self.mapping.append (u"ghi4GHI") # 4
self.mapping.append (u"tuv8TUV") # 8
self.mapping.append (u"wxyz9WXYZ") # 9
else:
- self.mapping.append (u".,?'+\"0-()@/:_$!=") # 0
- self.mapping.append (u" 1") # 1
+ self.mapping.append (u"0,?!&@=*'+\"()$~") # 0
+ self.mapping.append (u" 1.:/-_") # 1
self.mapping.append (u"abc2ABC") # 2
self.mapping.append (u"def3DEF") # 3
self.mapping.append (u"ghi4GHI") # 4
from enigma import eDVBFrontendParametersSatellite, eDVBFrontendParametersCable, eDVBFrontendParametersTerrestrial
+from Components.NimManager import nimmanager
def ConvertToHumanReadable(tp, type = None):
ret = { }
eDVBFrontendParametersSatellite.Modulation_QPSK : "QPSK",
eDVBFrontendParametersSatellite.Modulation_QAM16 : "QAM16",
eDVBFrontendParametersSatellite.Modulation_8PSK : "8PSK"}[tp["modulation"]]
+ ret["orbital_position"] = nimmanager.getSatName(int(tp["orbital_position"]))
ret["polarization"] = {
eDVBFrontendParametersSatellite.Polarisation_Horizontal : _("Horizontal"),
eDVBFrontendParametersSatellite.Polarisation_Vertical : _("Vertical"),
#include <libsig_comp.h>
- /* avoid warnigs :) */
-#include <features.h>
-#undef _POSIX_C_SOURCE
-#define _POSIX_C_SOURCE 200112L
-
#include <lib/python/python.h>
class PSignal
}
};
+template <class R, class V0, class V1, class V2>
+class PSignal3: public PSignal, public Signal3<R,V0,V1,V2>
+{
+public:
+ R operator()(V0 a0, V1 a1, V2 a2)
+ {
+ if (m_list)
+ {
+ PyObject *pArgs = PyTuple_New(3);
+ PyTuple_SET_ITEM(pArgs, 0, PyFrom(a0));
+ PyTuple_SET_ITEM(pArgs, 1, PyFrom(a1));
+ PyTuple_SET_ITEM(pArgs, 2, PyFrom(a2));
+ callPython(pArgs);
+ Org_Py_DECREF(pArgs);
+ }
+ return Signal3<R,V0,V1,V2>::operator()(a0, a1, a2);
+ }
+};
+
#endif
#define SWIG_COMPILE
#include <lib/base/ebase.h>
#include <lib/base/smartptr.h>
+#include <lib/base/eenv.h>
#include <lib/base/eerror.h>
#include <lib/base/etpm.h>
#include <lib/base/nconfig.h>
#include <lib/gdi/fb.h>
#include <lib/gdi/font.h>
#include <lib/gdi/gpixmap.h>
-#include <lib/gdi/gfbdc.h>
+#include <lib/gdi/gmaindc.h>
#include <lib/gui/ewidget.h>
#include <lib/gui/elabel.h>
#include <lib/gui/einput.h>
%include "std_string.i"
%include <lib/python/swig.h>
%include <lib/base/object.h>
+%include <lib/base/eenv.h>
%include <lib/base/eerror.h>
%immutable eSocketNotifier::activated;
%include <lib/gdi/fb.h>
%include <lib/gdi/font.h>
%include <lib/gdi/gpixmap.h>
-%include <lib/gdi/gfbdc.h>
+%include <lib/gdi/gmaindc.h>
%include <lib/gdi/epoint.h>
%include <lib/gdi/erect.h>
%include <lib/gdi/esize.h>
#define __lib_python_python_class_h
#endif
-#include <Python.h>
#include <string>
#include <lib/base/object.h>
-INCLUDES = \
- -I$(top_srcdir)/include
+AM_CPPFLAGS = \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/include \
+ -include Python.h \
+ -include $(top_builddir)/enigma2_config.h
+
+AM_CXXFLAGS = \
+ $(LIBXINE_CFLAGS)
noinst_LIBRARIES = libenigma_service.a
libenigma_service_a_SOURCES = \
- listboxservice.cpp service.cpp servicemp3.cpp servicedvb.cpp servicefs.cpp \
- event.cpp servicedvbrecord.cpp
-
+ event.cpp \
+ listboxservice.cpp \
+ service.cpp \
+ servicedvb.cpp \
+ servicedvbrecord.cpp \
+ servicefs.cpp \
+ servicemp3.cpp \
+ servicem2ts.cpp
+
+serviceincludedir = $(pkgincludedir)/lib/service
+serviceinclude_HEADERS = \
+ event.h \
+ iservice.h \
+ listboxservice.h \
+ service.h \
+ servicedvb.h \
+ servicedvbrecord.h \
+ servicefs.h \
+ servicemp3.h \
+ servicem2ts.h
+
+if HAVE_LIBXINE
+libenigma_service_a_SOURCES += \
+ servicexine.cpp
+serviceinclude_HEADERS += \
+ servicexine.h
+endif
sFileSize,
sCAIDs,
+ sCAIDPIDs,
sVideoType, /* MPEG2 MPEG4 */
sTags, /* space seperated list of tags */
return 0;
}
+RESULT eServiceCenter::addFactoryExtension(int id, const char *extension)
+{
+ std::map<int, std::list<std::string> >::iterator it = extensions.find(id);
+ if (it == extensions.end())
+ return -1;
+ it->second.push_back(extension);
+ return 0;
+}
+
+RESULT eServiceCenter::removeFactoryExtension(int id, const char *extension)
+{
+ std::map<int, std::list<std::string> >::iterator it = extensions.find(id);
+ if (it == extensions.end())
+ return -1;
+ it->second.remove(extension);
+ return 0;
+}
+
+
int eServiceCenter::getServiceTypeForExtension(const char *str)
{
for (std::map<int, std::list<std::string> >::iterator sit(extensions.begin()); sit != extensions.end(); ++sit)
static RESULT getPrivInstance(ePtr<eServiceCenter> &ptr) { ptr = instance; return 0; }
RESULT addServiceFactory(int id, iServiceHandler *hnd, std::list<std::string> &extensions);
RESULT removeServiceFactory(int id);
+ RESULT addFactoryExtension(int id, const char *extension);
+ RESULT removeFactoryExtension(int id, const char *extension);
#endif
static SWIG_VOID(RESULT) getInstance(ePtr<iServiceHandler> &SWIG_NAMED_OUTPUT(ptr)) { ptr = instance; return 0; }
};
RESULT eStaticServiceDVBPVRInformation::getName(const eServiceReference &ref, std::string &name)
{
ASSERT(ref == m_ref);
- if (m_parser.m_name.size())
+ if (!ref.name.empty())
+ name = ref.name;
+ else if (!m_parser.m_name.empty())
name = m_parser.m_name;
else
{
int err = f.open(m_ref.path.c_str(), 0);
if (err < 0)
return -1;
-
+
+ off_t offset = 0;
off_t length = f.length();
unsigned char buffer[188*256*4];
while (1)
{
- off_t offset = f.lseek(0, SEEK_CUR);
eDebug("at %08llx / %08llx (%d %%)", offset, length, (int)(offset * 100 / length));
- int r = f.read(buffer, sizeof(buffer));
+ int r = f.read(offset, buffer, sizeof(buffer));
if (!r)
break;
if (r < 0)
return r;
+ offset += r;
parser.parseData(offset, buffer, r);
}
/* we are sure to have a ..DVB reference as the info() call was forwarded here according to it's ID. */
if ((err = db->getService((eServiceReferenceDVB&)ref, service)) != 0)
{
- eDebug("getService failed!");
+// eDebug("getService failed!");
return err;
}
}
if (m_skipmode < 0)
m_cue->seekTo(0, -1000);
- m_service_handler_timeshift.tune(r, 1, m_cue, 0, m_dvb_service); /* use the decoder demux for everything */
+ ePtr<iTsSource> source = createTsSource(r);
+ m_service_handler_timeshift.tuneExt(r, 1, source, r.path.c_str(), m_cue, 0, m_dvb_service); /* use the decoder demux for everything */
m_event((iPlayableService*)this, evUser+1);
}
m_service_handler_timeshift.free();
resetTimeshift(1);
- m_service_handler_timeshift.tune(r, 1, m_cue, 0, m_dvb_service); /* use the decoder demux for everything */
+ ePtr<iTsSource> source = createTsSource(r);
+ m_service_handler_timeshift.tuneExt(r, 1, source, m_timeshift_file_next.c_str(), m_cue, 0, m_dvb_service); /* use the decoder demux for everything */
m_event((iPlayableService*)this, evUser+1);
}
m_event(this, evStart);
m_first_program_info = 1;
- m_service_handler.tune(service, m_is_pvr, m_cue, false, m_dvb_service);
+ ePtr<iTsSource> source = createTsSource(service);
+ m_service_handler.tuneExt(service, m_is_pvr, source, service.path.c_str(), m_cue, false, m_dvb_service);
if (m_is_pvr)
{
{
eDVBServicePMTHandler::program program;
- if (w == sCAIDs)
+ if (w == sCAIDs || w == sCAIDPIDs)
return resIsPyObject;
eDVBServicePMTHandler &h = m_timeshift_active ? m_service_handler_timeshift : m_service_handler;
{
case sCAIDs:
return m_service_handler.getCaIds();
+ case sCAIDPIDs:
+ return m_service_handler.getCaIds(true);
case sTransponderData:
return eStaticServiceDVBInformation().getInfoObject(m_reference, w);
default:
info.m_description = "AAC-HE";
else if (program.audioStreams[i].type == eDVBServicePMTHandler::audioStream::atDTS)
info.m_description = "DTS";
+ else if (program.audioStreams[i].type == eDVBServicePMTHandler::audioStream::atDTSHD)
+ info.m_description = "DTS-HD";
else
info.m_description = "???";
m_timeshift_active = 0;
}
+ePtr<iTsSource> eDVBServicePlay::createTsSource(eServiceReferenceDVB &ref)
+{
+ eRawFile *f = new eRawFile();
+ f->open(ref.path.c_str());
+ return ePtr<iTsSource>(f);
+}
+
void eDVBServicePlay::switchToTimeshift()
{
if (m_timeshift_active)
r.path = m_timeshift_file;
m_cue->seekTo(0, -1000);
- m_service_handler_timeshift.tune(r, 1, m_cue, 0, m_dvb_service); /* use the decoder demux for everything */
+
+ ePtr<iTsSource> source = createTsSource(r);
+ m_service_handler_timeshift.tuneExt(r, 1, source, m_timeshift_file.c_str(), m_cue, 0, m_dvb_service); /* use the decoder demux for everything */
eDebug("eDVBServicePlay::switchToTimeshift, in pause mode now.");
pause();
eDebug("getting program info failed.");
else
{
- eDebugNoNewLine("have %d video stream(s)", program.videoStreams.size());
+ eDebugNoNewLine("have %zd video stream(s)", program.videoStreams.size());
if (!program.videoStreams.empty())
{
eDebugNoNewLine(" (");
}
eDebugNoNewLine(")");
}
- eDebugNoNewLine(", and %d audio stream(s)", program.audioStreams.size());
+ eDebugNoNewLine(", and %zd audio stream(s)", program.audioStreams.size());
if (!program.audioStreams.empty())
{
eDebugNoNewLine(" (");
m_cue_entries.insert(cueEntry(where, what));
}
fclose(f);
- eDebug("%d entries", m_cue_entries.size());
+ eDebug("%zd entries", m_cue_entries.size());
} else
eDebug("cutfile not found!");
RESULT stream(ePtr<iStreamableService> &ptr);
PyObject *getStreamingData();
-private:
+protected:
friend class eServiceFactoryDVB;
eServiceReference m_reference;
ePtr<eConnection> m_video_event_connection;
void video_event(struct iTSMPEGDecoder::videoEvent);
+
+ virtual ePtr<iTsSource> createTsSource(eServiceReferenceDVB &ref);
};
class eStaticServiceDVBBouquetInformation: public iStaticServiceInformation
int timing_pid = -1, timing_pid_type = -1;
- eDebugNoNewLine("RECORD: have %d video stream(s)", program.videoStreams.size());
+ eDebugNoNewLine("RECORD: have %zd video stream(s)", program.videoStreams.size());
if (!program.videoStreams.empty())
{
eDebugNoNewLine(" (");
}
eDebugNoNewLine(")");
}
- eDebugNoNewLine(", and %d audio stream(s)", program.audioStreams.size());
+ eDebugNoNewLine(", and %zd audio stream(s)", program.audioStreams.size());
if (!program.audioStreams.empty())
{
eDebugNoNewLine(" (");
--- /dev/null
+#include <lib/base/init_num.h>
+#include <lib/base/init.h>
+#include <lib/dvb/metaparser.h>
+#include <lib/service/servicem2ts.h>
+
+DEFINE_REF(eServiceFactoryM2TS)
+
+class eM2TSFile: public iTsSource
+{
+ DECLARE_REF(eM2TSFile);
+ eSingleLock m_lock;
+public:
+ eM2TSFile(const char *filename, bool cached=false);
+ ~eM2TSFile();
+
+ // iTsSource
+ off_t lseek(off_t offset, int whence);
+ ssize_t read(off_t offset, void *buf, size_t count);
+ off_t length();
+ int valid();
+private:
+ int m_sync_offset;
+ int m_fd; /* for uncached */
+ FILE *m_file; /* for cached */
+ off_t m_current_offset, m_length;
+ bool m_cached;
+ off_t lseek_internal(off_t offset, int whence);
+};
+
+class eStaticServiceM2TSInformation: public iStaticServiceInformation
+{
+ DECLARE_REF(eStaticServiceM2TSInformation);
+ eServiceReference m_ref;
+ eDVBMetaParser m_parser;
+public:
+ eStaticServiceM2TSInformation(const eServiceReference &ref);
+ RESULT getName(const eServiceReference &ref, std::string &name);
+ int getLength(const eServiceReference &ref);
+ RESULT getEvent(const eServiceReference &ref, ePtr<eServiceEvent> &SWIG_OUTPUT, time_t start_time);
+ int isPlayable(const eServiceReference &ref, const eServiceReference &ignore) { return 1; }
+ int getInfo(const eServiceReference &ref, int w);
+ std::string getInfoString(const eServiceReference &ref,int w);
+ PyObject *getInfoObject(const eServiceReference &r, int what);
+};
+
+DEFINE_REF(eStaticServiceM2TSInformation);
+
+eStaticServiceM2TSInformation::eStaticServiceM2TSInformation(const eServiceReference &ref)
+{
+ m_ref = ref;
+ m_parser.parseFile(ref.path);
+}
+
+RESULT eStaticServiceM2TSInformation::getName(const eServiceReference &ref, std::string &name)
+{
+ ASSERT(ref == m_ref);
+ if (m_parser.m_name.size())
+ name = m_parser.m_name;
+ else
+ {
+ name = ref.path;
+ size_t n = name.rfind('/');
+ if (n != std::string::npos)
+ name = name.substr(n + 1);
+ }
+ return 0;
+}
+
+int eStaticServiceM2TSInformation::getLength(const eServiceReference &ref)
+{
+ ASSERT(ref == m_ref);
+
+ eDVBTSTools tstools;
+
+ struct stat s;
+ stat(ref.path.c_str(), &s);
+
+ eM2TSFile *file = new eM2TSFile(ref.path.c_str());
+ ePtr<iTsSource> source = file;
+
+ if (!source->valid())
+ return 0;
+
+ tstools.setSource(source);
+
+ /* check if cached data is still valid */
+ if (m_parser.m_data_ok && (s.st_size == m_parser.m_filesize) && (m_parser.m_length))
+ return m_parser.m_length / 90000;
+
+ /* open again, this time with stream info */
+ tstools.setSource(source, ref.path.c_str());
+
+ /* otherwise, re-calc length and update meta file */
+ pts_t len;
+ if (tstools.calcLen(len))
+ return 0;
+
+ m_parser.m_length = len;
+ m_parser.m_filesize = s.st_size;
+ m_parser.updateMeta(ref.path);
+ return m_parser.m_length / 90000;
+}
+
+int eStaticServiceM2TSInformation::getInfo(const eServiceReference &ref, int w)
+{
+ switch (w)
+ {
+ case iServiceInformation::sDescription:
+ return iServiceInformation::resIsString;
+ case iServiceInformation::sServiceref:
+ return iServiceInformation::resIsString;
+ case iServiceInformation::sFileSize:
+ return m_parser.m_filesize;
+ case iServiceInformation::sTimeCreate:
+ if (m_parser.m_time_create)
+ return m_parser.m_time_create;
+ else
+ return iServiceInformation::resNA;
+ default:
+ return iServiceInformation::resNA;
+ }
+}
+
+std::string eStaticServiceM2TSInformation::getInfoString(const eServiceReference &ref,int w)
+{
+ switch (w)
+ {
+ case iServiceInformation::sDescription:
+ return m_parser.m_description;
+ case iServiceInformation::sServiceref:
+ return m_parser.m_ref.toString();
+ case iServiceInformation::sTags:
+ return m_parser.m_tags;
+ default:
+ return "";
+ }
+}
+
+PyObject *eStaticServiceM2TSInformation::getInfoObject(const eServiceReference &r, int what)
+{
+ switch (what)
+ {
+ case iServiceInformation::sFileSize:
+ return PyLong_FromLongLong(m_parser.m_filesize);
+ default:
+ Py_RETURN_NONE;
+ }
+}
+
+RESULT eStaticServiceM2TSInformation::getEvent(const eServiceReference &ref, ePtr<eServiceEvent> &evt, time_t start_time)
+{
+ if (!ref.path.empty())
+ {
+ ePtr<eServiceEvent> event = new eServiceEvent;
+ std::string filename = ref.path;
+ filename.erase(filename.length()-4, 2);
+ filename+="eit";
+ if (!event->parseFrom(filename, (m_parser.m_ref.getTransportStreamID().get()<<16)|m_parser.m_ref.getOriginalNetworkID().get()))
+ {
+ evt = event;
+ return 0;
+ }
+ }
+ evt = 0;
+ return -1;
+}
+
+DEFINE_REF(eM2TSFile);
+
+eM2TSFile::eM2TSFile(const char *filename, bool cached)
+ :m_lock(false), m_sync_offset(0), m_fd(-1), m_file(NULL), m_current_offset(0), m_length(0), m_cached(cached)
+{
+ if (!m_cached)
+ m_fd = ::open(filename, O_RDONLY | O_LARGEFILE);
+ else
+ m_file = ::fopen64(filename, "rb");
+ if (valid())
+ m_current_offset = m_length = lseek_internal(0, SEEK_END);
+}
+
+eM2TSFile::~eM2TSFile()
+{
+ if (m_cached)
+ {
+ if (m_file)
+ {
+ ::fclose(m_file);
+ m_file = 0;
+ }
+ }
+ else
+ {
+ if (m_fd >= 0)
+ ::close(m_fd);
+ m_fd = -1;
+ }
+}
+
+off_t eM2TSFile::lseek(off_t offset, int whence)
+{
+ eSingleLocker l(m_lock);
+
+ offset = (offset % 188) + (offset * 192) / 188;
+
+ if (offset != m_current_offset)
+ m_current_offset = lseek_internal(offset, whence);
+
+ return m_current_offset;
+}
+
+off_t eM2TSFile::lseek_internal(off_t offset, int whence)
+{
+ off_t ret;
+
+ if (!m_cached)
+ ret = ::lseek(m_fd, offset, whence);
+ else
+ {
+ if (::fseeko(m_file, offset, whence) < 0)
+ perror("fseeko");
+ ret = ::ftello(m_file);
+ }
+ return ret <= 0 ? ret : (ret % 192) + (ret*188) / 192;
+}
+
+ssize_t eM2TSFile::read(off_t offset, void *b, size_t count)
+{
+ eSingleLocker l(m_lock);
+ unsigned char tmp[192*3];
+ unsigned char *buf = (unsigned char*)b;
+
+ size_t rd=0;
+ offset = (offset % 188) + (offset * 192) / 188;
+
+sync:
+ if ((offset+m_sync_offset) != m_current_offset)
+ {
+// eDebug("seekTo %lld", offset+m_sync_offset);
+ m_current_offset = lseek_internal(offset+m_sync_offset, SEEK_SET);
+ if (m_current_offset < 0)
+ return m_current_offset;
+ }
+
+ while (rd < count) {
+ size_t ret;
+ if (!m_cached)
+ ret = ::read(m_fd, tmp, 192);
+ else
+ ret = ::fread(tmp, 1, 192, m_file);
+ if (ret < 0 || ret < 192)
+ return rd ? rd : ret;
+
+ if (tmp[4] != 0x47)
+ {
+ if (rd > 0) {
+ eDebug("short read at pos %lld async!!", m_current_offset);
+ return rd;
+ }
+ else {
+ int x=0;
+ if (!m_cached)
+ ret = ::read(m_fd, tmp+192, 384);
+ else
+ ret = ::fread(tmp+192, 1, 384, m_file);
+
+#if 0
+ eDebugNoNewLine("m2ts out of sync at pos %lld, real %lld:", offset + m_sync_offset, m_current_offset);
+ for (; x < 192; ++x)
+ eDebugNoNewLine(" %02x", tmp[x]);
+ eDebug("");
+ x=0;
+#else
+ eDebug("m2ts out of sync at pos %lld, real %lld", offset + m_sync_offset, m_current_offset);
+#endif
+ for (; x < 192; ++x)
+ {
+ if (tmp[x] == 0x47 && tmp[x+192] == 0x47)
+ {
+ int add_offs = (x - 4);
+ eDebug("sync found at pos %d, sync_offset is now %d, old was %d", x, add_offs + m_sync_offset, m_sync_offset);
+ m_sync_offset += add_offs;
+ goto sync;
+ }
+ }
+ }
+ }
+
+ memcpy(buf+rd, tmp+4, 188);
+
+ rd += 188;
+ m_current_offset += 188;
+ }
+
+ m_sync_offset %= 188;
+
+ return rd;
+}
+
+int eM2TSFile::valid()
+{
+ if (!m_cached)
+ return m_fd != -1;
+ else
+ return !!m_file;
+}
+
+off_t eM2TSFile::length()
+{
+ return m_length;
+}
+
+eServiceFactoryM2TS::eServiceFactoryM2TS()
+{
+ ePtr<eServiceCenter> sc;
+ eServiceCenter::getPrivInstance(sc);
+ if (sc)
+ {
+ std::list<std::string> extensions;
+ extensions.push_back("m2ts");
+ extensions.push_back("mts");
+ sc->addServiceFactory(eServiceFactoryM2TS::id, this, extensions);
+ }
+}
+
+eServiceFactoryM2TS::~eServiceFactoryM2TS()
+{
+ ePtr<eServiceCenter> sc;
+
+ eServiceCenter::getPrivInstance(sc);
+ if (sc)
+ sc->removeServiceFactory(eServiceFactoryM2TS::id);
+}
+
+RESULT eServiceFactoryM2TS::play(const eServiceReference &ref, ePtr<iPlayableService> &ptr)
+{
+ ptr = new eServiceM2TS(ref);
+ return 0;
+}
+
+RESULT eServiceFactoryM2TS::record(const eServiceReference &ref, ePtr<iRecordableService> &ptr)
+{
+ ptr=0;
+ return -1;
+}
+
+RESULT eServiceFactoryM2TS::list(const eServiceReference &ref, ePtr<iListableService> &ptr)
+{
+ ptr=0;
+ return -1;
+}
+
+RESULT eServiceFactoryM2TS::info(const eServiceReference &ref, ePtr<iStaticServiceInformation> &ptr)
+{
+ ptr=new eStaticServiceM2TSInformation(ref);
+ return 0;
+}
+
+RESULT eServiceFactoryM2TS::offlineOperations(const eServiceReference &ref, ePtr<iServiceOfflineOperations> &ptr)
+{
+ ptr = 0;
+ return -1;
+}
+
+eServiceM2TS::eServiceM2TS(const eServiceReference &ref)
+ :eDVBServicePlay(ref, NULL)
+{
+}
+
+ePtr<iTsSource> eServiceM2TS::createTsSource(eServiceReferenceDVB &ref)
+{
+ ePtr<iTsSource> source = new eM2TSFile(ref.path.c_str());
+ return source;
+}
+
+RESULT eServiceM2TS::isCurrentlySeekable()
+{
+ return 1; // for fast winding we need index files... so only skip forward/backward yet
+}
+
+eAutoInitPtr<eServiceFactoryM2TS> init_eServiceFactoryM2TS(eAutoInitNumbers::service+1, "eServiceFactoryM2TS");
--- /dev/null
+#ifndef __servicem2ts_h
+#define __servicem2ts_h
+
+#include <lib/service/servicedvb.h>
+
+class eServiceFactoryM2TS: public iServiceHandler
+{
+ DECLARE_REF(eServiceFactoryM2TS);
+public:
+ eServiceFactoryM2TS();
+ virtual ~eServiceFactoryM2TS();
+ enum { id = 0x3 };
+
+ // iServiceHandler
+ RESULT play(const eServiceReference &, ePtr<iPlayableService> &ptr);
+ RESULT record(const eServiceReference &, ePtr<iRecordableService> &ptr);
+ RESULT list(const eServiceReference &, ePtr<iListableService> &ptr);
+ RESULT info(const eServiceReference &, ePtr<iStaticServiceInformation> &ptr);
+ RESULT offlineOperations(const eServiceReference &, ePtr<iServiceOfflineOperations> &ptr);
+};
+
+class eServiceM2TS: public eDVBServicePlay
+{
+ friend class eServiceFactoryM2TS;
+protected:
+ eServiceM2TS(const eServiceReference &ref);
+ ePtr<iTsSource> createTsSource(eServiceReferenceDVB &ref);
+
+ // iSeekableService
+ RESULT isCurrentlySeekable();
+};
+
+#endif
-#ifdef HAVE_GSTREAMER
-
/* note: this requires gstreamer 0.10.x and a big list of plugins. */
/* it's currently hardcoded to use a big-endian alsasink as sink. */
#include <lib/base/ebase.h>
#include <lib/gui/esubtitle.h>
#include <lib/service/servicemp3.h>
#include <lib/service/service.h>
+#include <lib/gdi/gpixmap.h>
#include <string>
m_currentTrickRatio = 0;
m_subs_to_pull = 0;
m_buffer_size = 1*1024*1024;
+ m_prev_decoder_time = -1;
+ m_decoder_time_valid_state = 0;
+ m_errorInfo.missing_codec = "";
+
CONNECT(m_seekTimeout->timeout, eServiceMP3::seekTimeoutCB);
CONNECT(m_subtitle_sync_timer->timeout, eServiceMP3::pushSubtitles);
CONNECT(m_pump.recv_msg, eServiceMP3::gstPoll);
m_gst_playbin = gst_element_factory_make("playbin2", "playbin");
if (!m_gst_playbin)
- m_error_message = "failed to create GStreamer pipeline!\n";
+ m_errorInfo.error_message = "failed to create GStreamer pipeline!\n";
g_object_set (G_OBJECT (m_gst_playbin), "uri", uri, NULL);
- int flags = 0x47; // ( == GST_PLAY_FLAG_VIDEO | GST_PLAY_FLAG_AUDIO | GST_PLAY_FLAG_NATIVE_VIDEO | GST_PLAY_FLAG_TEXT )
+ int flags = 0x47; // ( GST_PLAY_FLAG_VIDEO | GST_PLAY_FLAG_AUDIO | GST_PLAY_FLAG_NATIVE_VIDEO | GST_PLAY_FLAG_TEXT );
g_object_set (G_OBJECT (m_gst_playbin), "flags", flags, NULL);
g_free(uri);
else
{
m_subs_to_pull_handler_id = g_signal_connect (subsink, "new-buffer", G_CALLBACK (gstCBsubtitleAvail), this);
- g_object_set (G_OBJECT (subsink), "caps", gst_caps_from_string("text/plain; text/x-plain; text/x-pango-markup"), NULL);
+ g_object_set (G_OBJECT (subsink), "caps", gst_caps_from_string("text/plain; text/x-plain; text/x-pango-markup; video/x-dvd-subpicture; subpicture/x-pgs"), NULL);
g_object_set (G_OBJECT (m_gst_playbin), "text-sink", subsink, NULL);
+
}
if ( m_gst_playbin )
{
eDebug("eServiceMP3::subtitle uri: %s", g_filename_to_uri(srt_filename, NULL, NULL));
g_object_set (G_OBJECT (m_gst_playbin), "suburi", g_filename_to_uri(srt_filename, NULL, NULL), NULL);
- subtitleStream subs;
- subs.type = stSRT;
- subs.language_code = std::string("und");
- m_subtitleStreams.push_back(subs);
}
if ( m_sourceinfo.is_streaming )
{
if (m_gst_playbin)
gst_object_unref(GST_OBJECT(m_gst_playbin));
- eDebug("eServiceMP3::sorry, can't play: %s",m_error_message.c_str());
+ eDebug("eServiceMP3::sorry, can't play: %s",m_errorInfo.error_message.c_str());
m_gst_playbin = 0;
}
eServiceMP3::~eServiceMP3()
{
// disconnect subtitle callback
- GstElement *sink;
- g_object_get (G_OBJECT (m_gst_playbin), "text-sink", &sink, NULL);
- if (sink)
+ GstElement *appsink = gst_bin_get_by_name(GST_BIN(m_gst_playbin), "subtitle_sink");
+
+ if (appsink)
{
- g_signal_handler_disconnect (sink, m_subs_to_pull_handler_id);
- gst_object_unref(sink);
+ g_signal_handler_disconnect (appsink, m_subs_to_pull_handler_id);
+ gst_object_unref(appsink);
}
delete m_subtitle_widget;
if (m_state == stStopped)
return -1;
+
+ //GST_DEBUG_BIN_TO_DOT_FILE(GST_BIN(m_gst_playbin),GST_DEBUG_GRAPH_SHOW_ALL,"e2-playbin");
eDebug("eServiceMP3::stop %s", m_ref.path.c_str());
gst_element_set_state(m_gst_playbin, GST_STATE_NULL);
if (!(ret = seekToImpl(to)))
{
m_subtitle_pages.clear();
+ m_prev_decoder_time = -1;
+ m_decoder_time_valid_state = 0;
m_subs_to_pull = 0;
}
}
/* pos is in nanoseconds. we have 90 000 pts per second. */
pts = pos / 11111;
+// eDebug("gst_element_query_position %lld pts (%lld ms)", pts, pos/1000000);
return 0;
}
tag = "channel-mode";
break;
case sUser+12:
- return m_error_message;
+ return m_errorInfo.error_message;
default:
return "";
}
return 0;
}
+subtype_t getSubtitleType(GstPad* pad, gchar *g_codec=NULL)
+{
+ subtype_t type = stUnknown;
+ GstCaps* caps = gst_pad_get_negotiated_caps(pad);
+
+ if ( caps )
+ {
+ GstStructure* str = gst_caps_get_structure(caps, 0);
+ const gchar *g_type = gst_structure_get_name(str);
+ eDebug("getSubtitleType::subtitle probe caps type=%s", g_type);
+
+ if ( !strcmp(g_type, "video/x-dvd-subpicture") )
+ type = stVOB;
+ else if ( !strcmp(g_type, "text/x-pango-markup") )
+ type = stSSA;
+ else if ( !strcmp(g_type, "text/plain") )
+ type = stPlainText;
+ else if ( !strcmp(g_type, "subpicture/x-pgs") )
+ type = stPGS;
+ else
+ eDebug("getSubtitleType::unsupported subtitle caps %s (%s)", g_type, g_codec);
+ }
+ else if ( g_codec )
+ {
+ eDebug("getSubtitleType::subtitle probe codec tag=%s", g_codec);
+ if ( !strcmp(g_codec, "VOB") )
+ type = stVOB;
+ else if ( !strcmp(g_codec, "SubStation Alpha") || !strcmp(g_codec, "SSA") )
+ type = stSSA;
+ else if ( !strcmp(g_codec, "ASS") )
+ type = stASS;
+ else if ( !strcmp(g_codec, "UTF-8 plain text") )
+ type = stPlainText;
+ else
+ eDebug("getSubtitleType::unsupported subtitle codec %s", g_codec);
+ }
+ else
+ eDebug("getSubtitleType::unidentifiable subtitle stream!");
+
+ return type;
+}
+
void eServiceMP3::gstBusCall(GstBus *bus, GstMessage *msg)
{
if (!msg)
return;
gchar *sourceName;
GstObject *source;
-
source = GST_MESSAGE_SRC(msg);
+ if (!GST_IS_OBJECT(source))
+ return;
sourceName = gst_object_get_name(source);
#if 0
+ gchar *string;
if (gst_message_get_structure(msg))
- {
- gchar *string = gst_structure_to_string(gst_message_get_structure(msg));
- eDebug("eServiceMP3::gst_message from %s: %s", sourceName, string);
- g_free(string);
- }
+ string = gst_structure_to_string(gst_message_get_structure(msg));
else
- eDebug("eServiceMP3::gst_message from %s: %s (without structure)", sourceName, GST_MESSAGE_TYPE_NAME(msg));
+ string = g_strdup(GST_MESSAGE_TYPE_NAME(msg));
+ eDebug("eTsRemoteSource::gst_message from %s: %s", sourceName, string);
+ g_free(string);
#endif
switch (GST_MESSAGE_TYPE (msg))
{
} break;
case GST_STATE_CHANGE_READY_TO_PAUSED:
{
- GstElement *sink;
- g_object_get (G_OBJECT (m_gst_playbin), "text-sink", &sink, NULL);
- if (sink)
- {
- g_object_set (G_OBJECT (sink), "max-buffers", 2, NULL);
- g_object_set (G_OBJECT (sink), "sync", FALSE, NULL);
- g_object_set (G_OBJECT (sink), "async", FALSE, NULL);
- g_object_set (G_OBJECT (sink), "emit-signals", TRUE, NULL);
- gst_object_unref(sink);
- }
+ GstElement *appsink = gst_bin_get_by_name(GST_BIN(m_gst_playbin), "subtitle_sink");
+ if (appsink)
+ {
+ g_object_set (G_OBJECT (appsink), "max-buffers", 2, NULL);
+ g_object_set (G_OBJECT (appsink), "sync", FALSE, NULL);
+ g_object_set (G_OBJECT (appsink), "emit-signals", TRUE, NULL);
+ eDebug("eServiceMP3::appsink properties set!");
+ gst_object_unref(appsink);
+ }
setAC3Delay(ac3_delay);
setPCMDelay(pcm_delay);
} break;
continue;
GstStructure* str = gst_caps_get_structure(caps, 0);
const gchar *g_type = gst_structure_get_name(str);
- eDebug("AUDIO STRUCT=%s", g_type);
audio.type = gstCheckAudioPad(str);
g_codec = g_strdup(g_type);
g_lang = g_strdup_printf ("und");
}
for (i = 0; i < n_text; i++)
- {
- gchar *g_lang;
-// gchar *g_type;
-// GstPad* pad = 0;
-// g_signal_emit_by_name (m_gst_playbin, "get-text-pad", i, &pad);
-// GstCaps* caps = gst_pad_get_negotiated_caps(pad);
-// GstStructure* str = gst_caps_get_structure(caps, 0);
-// g_type = gst_structure_get_name(str);
-// g_signal_emit_by_name (m_gst_playbin, "get-text-tags", i, &tags);
+ {
+ gchar *g_codec = NULL, *g_lang = NULL;
+ g_signal_emit_by_name (m_gst_playbin, "get-text-tags", i, &tags);
subtitleStream subs;
- subs.type = stPlainText;
+// int ret;
+
g_lang = g_strdup_printf ("und");
if ( tags && gst_is_tag_list(tags) )
+ {
gst_tag_list_get_string(tags, GST_TAG_LANGUAGE_CODE, &g_lang);
+ gst_tag_list_get_string(tags, GST_TAG_SUBTITLE_CODEC, &g_codec);
+ gst_tag_list_free(tags);
+ }
+
subs.language_code = std::string(g_lang);
- eDebug("eServiceMP3::subtitle stream=%i language=%s"/* type=%s*/, i, g_lang/*, g_type*/);
+ eDebug("eServiceMP3::subtitle stream=%i language=%s codec=%s", i, g_lang, g_codec);
+
+ GstPad* pad = 0;
+ g_signal_emit_by_name (m_gst_playbin, "get-text-pad", i, &pad);
+ if ( pad )
+ g_signal_connect (G_OBJECT (pad), "notify::caps", G_CALLBACK (gstTextpadHasCAPS), this);
+ subs.type = getSubtitleType(pad, g_codec);
+
m_subtitleStreams.push_back(subs);
g_free (g_lang);
-// g_free (g_type);
}
m_event((iPlayableService*)this, evUpdatedEventInfo);
+
+ if ( m_errorInfo.missing_codec != "" )
+ {
+ if ( m_errorInfo.missing_codec.find("video/") == 0 || ( m_errorInfo.missing_codec.find("audio/") == 0 && getNumberOfTracks() == 0 ) )
+ m_event((iPlayableService*)this, evUser+12);
+ }
break;
}
case GST_MESSAGE_ELEMENT:
{
- if ( gst_is_missing_plugin_message(msg) )
+ if (const GstStructure *msgstruct = gst_message_get_structure(msg))
{
- gchar *description = gst_missing_plugin_message_get_description(msg);
- if ( description )
+ if ( gst_is_missing_plugin_message(msg) )
{
- m_error_message = "GStreamer plugin " + (std::string)description + " not available!\n";
- g_free(description);
- m_event((iPlayableService*)this, evUser+12);
- }
- }
- else if (const GstStructure *msgstruct = gst_message_get_structure(msg))
- {
- const gchar *eventname = gst_structure_get_name(msgstruct);
- if ( eventname )
- {
- if (!strcmp(eventname, "eventSizeChanged") || !strcmp(eventname, "eventSizeAvail"))
- {
- gst_structure_get_int (msgstruct, "aspect_ratio", &m_aspect);
- gst_structure_get_int (msgstruct, "width", &m_width);
- gst_structure_get_int (msgstruct, "height", &m_height);
- if (strstr(eventname, "Changed"))
- m_event((iPlayableService*)this, evVideoSizeChanged);
- }
- else if (!strcmp(eventname, "eventFrameRateChanged") || !strcmp(eventname, "eventFrameRateAvail"))
+ GstCaps *caps;
+ gst_structure_get (msgstruct, "detail", GST_TYPE_CAPS, &caps, NULL);
+ std::string codec = (const char*) gst_caps_to_string(caps);
+ gchar *description = gst_missing_plugin_message_get_description(msg);
+ if ( description )
{
- gst_structure_get_int (msgstruct, "frame_rate", &m_framerate);
- if (strstr(eventname, "Changed"))
- m_event((iPlayableService*)this, evVideoFramerateChanged);
+ eDebug("eServiceMP3::m_errorInfo.missing_codec = %s", codec.c_str());
+ m_errorInfo.error_message = "GStreamer plugin " + (std::string)description + " not available!\n";
+ m_errorInfo.missing_codec = codec.substr(0,(codec.find_first_of(',')));
+ g_free(description);
}
- else if (!strcmp(eventname, "eventProgressiveChanged") || !strcmp(eventname, "eventProgressiveAvail"))
+ gst_caps_unref(caps);
+ }
+ else
+ {
+ const gchar *eventname = gst_structure_get_name(msgstruct);
+ if ( eventname )
{
- gst_structure_get_int (msgstruct, "progressive", &m_progressive);
- if (strstr(eventname, "Changed"))
- m_event((iPlayableService*)this, evVideoProgressiveChanged);
+ if (!strcmp(eventname, "eventSizeChanged") || !strcmp(eventname, "eventSizeAvail"))
+ {
+ gst_structure_get_int (msgstruct, "aspect_ratio", &m_aspect);
+ gst_structure_get_int (msgstruct, "width", &m_width);
+ gst_structure_get_int (msgstruct, "height", &m_height);
+ if (strstr(eventname, "Changed"))
+ m_event((iPlayableService*)this, evVideoSizeChanged);
+ }
+ else if (!strcmp(eventname, "eventFrameRateChanged") || !strcmp(eventname, "eventFrameRateAvail"))
+ {
+ gst_structure_get_int (msgstruct, "frame_rate", &m_framerate);
+ if (strstr(eventname, "Changed"))
+ m_event((iPlayableService*)this, evVideoFramerateChanged);
+ }
+ else if (!strcmp(eventname, "eventProgressiveChanged") || !strcmp(eventname, "eventProgressiveAvail"))
+ {
+ gst_structure_get_int (msgstruct, "progressive", &m_progressive);
+ if (strstr(eventname, "Changed"))
+ m_event((iPlayableService*)this, evVideoProgressiveChanged);
+ }
}
}
}
GstBusSyncReply eServiceMP3::gstBusSyncHandler(GstBus *bus, GstMessage *message, gpointer user_data)
{
eServiceMP3 *_this = (eServiceMP3*)user_data;
- _this->m_pump.send(1);
+ _this->m_pump.send(Message(1));
/* wake */
return GST_BUS_PASS;
}
return atUnknown;
}
-void eServiceMP3::gstPoll(const int &msg)
+void eServiceMP3::gstPoll(const Message &msg)
{
- /* ok, we have a serious problem here. gstBusSyncHandler sends
- us the wakup signal, but likely before it was posted.
- the usleep, an EVIL HACK (DON'T DO THAT!!!) works around this.
-
- I need to understand the API a bit more to make this work
- proplerly. */
- if (msg == 1)
+ if (msg.type == 1)
{
GstBus *bus = gst_pipeline_get_bus (GST_PIPELINE (m_gst_playbin));
GstMessage *message;
- usleep(1);
- while ((message = gst_bus_pop (bus)))
+ while ((message = gst_bus_pop(bus)))
{
gstBusCall(bus, message);
gst_message_unref (message);
}
}
- else
+ else if (msg.type == 2)
pullSubtitle();
+ else if (msg.type == 3)
+ gstTextpadHasCAPS_synced(msg.d.pad);
+ else
+ eDebug("gstPoll unhandled Message %d\n", msg.type);
}
eAutoInitPtr<eServiceFactoryMP3> init_eServiceFactoryMP3(eAutoInitNumbers::service+1, "eServiceFactoryMP3");
void eServiceMP3::gstCBsubtitleAvail(GstElement *appsink, gpointer user_data)
{
- eServiceMP3 *_this = (eServiceMP3*)user_data;
+ eServiceMP3 *_this = (eServiceMP3*)user_data;
eSingleLocker l(_this->m_subs_to_pull_lock);
++_this->m_subs_to_pull;
- _this->m_pump.send(2);
+ _this->m_pump.send(Message(2));
+}
+
+void eServiceMP3::gstTextpadHasCAPS(GstPad *pad, GParamSpec * unused, gpointer user_data)
+{
+ eServiceMP3 *_this = (eServiceMP3*)user_data;
+
+ gst_object_ref (pad);
+
+ _this->m_pump.send(Message(3, pad));
+}
+
+// after messagepump
+void eServiceMP3::gstTextpadHasCAPS_synced(GstPad *pad)
+{
+ GstCaps *caps;
+
+ g_object_get (G_OBJECT (pad), "caps", &caps, NULL);
+
+ eDebug("gstTextpadHasCAPS:: signal::caps = %s", gst_caps_to_string(caps));
+
+ if (caps)
+ {
+ subtitleStream subs;
+
+// eDebug("gstGhostpadHasCAPS_synced %p %d", pad, m_subtitleStreams.size());
+
+ if (!m_subtitleStreams.empty())
+ subs = m_subtitleStreams[m_currentSubtitleStream];
+ else {
+ subs.type = stUnknown;
+ subs.pad = pad;
+ }
+
+ if ( subs.type == stUnknown )
+ {
+ GstTagList *tags;
+// eDebug("gstGhostpadHasCAPS::m_subtitleStreams[%i].type == stUnknown...", m_currentSubtitleStream);
+
+ gchar *g_lang;
+ g_signal_emit_by_name (m_gst_playbin, "get-text-tags", m_currentSubtitleStream, &tags);
+
+ g_lang = g_strdup_printf ("und");
+ if ( tags && gst_is_tag_list(tags) )
+ gst_tag_list_get_string(tags, GST_TAG_LANGUAGE_CODE, &g_lang);
+
+ subs.language_code = std::string(g_lang);
+ subs.type = getSubtitleType(pad);
+
+ if (!m_subtitleStreams.empty())
+ m_subtitleStreams[m_currentSubtitleStream] = subs;
+ else
+ m_subtitleStreams.push_back(subs);
+
+ g_free (g_lang);
+ }
+
+// eDebug("gstGhostpadHasCAPS:: m_gst_prev_subtitle_caps=%s equal=%i",gst_caps_to_string(m_gst_prev_subtitle_caps),gst_caps_is_equal(m_gst_prev_subtitle_caps, caps));
+
+ gst_caps_unref (caps);
+ }
+
+ gst_object_unref (pad);
}
void eServiceMP3::pullSubtitle()
{
GstElement *sink;
g_object_get (G_OBJECT (m_gst_playbin), "text-sink", &sink, NULL);
+
if (sink)
{
while (m_subs_to_pull && m_subtitle_pages.size() < 2)
gint64 buf_pos = GST_BUFFER_TIMESTAMP(buffer);
gint64 duration_ns = GST_BUFFER_DURATION(buffer);
size_t len = GST_BUFFER_SIZE(buffer);
- unsigned char line[len+1];
- memcpy(line, GST_BUFFER_DATA(buffer), len);
- line[len] = 0;
- eDebug("got new subtitle @ buf_pos = %lld ns (in pts=%lld): '%s' ", buf_pos, buf_pos/11111, line);
- ePangoSubtitlePage page;
- gRGB rgbcol(0xD0,0xD0,0xD0);
- page.m_elements.push_back(ePangoSubtitlePageElement(rgbcol, (const char*)line));
- page.show_pts = buf_pos / 11111L;
- page.m_timeout = duration_ns / 1000000;
- m_subtitle_pages.push_back(page);
- pushSubtitles();
+ eDebug("pullSubtitle m_subtitleStreams[m_currentSubtitleStream].type=%i",m_subtitleStreams[m_currentSubtitleStream].type);
+
+ if ( m_subtitleStreams[m_currentSubtitleStream].type )
+ {
+ if ( m_subtitleStreams[m_currentSubtitleStream].type < stVOB )
+ {
+ unsigned char line[len+1];
+ SubtitlePage page;
+ memcpy(line, GST_BUFFER_DATA(buffer), len);
+ line[len] = 0;
+ eDebug("got new text subtitle @ buf_pos = %lld ns (in pts=%lld): '%s' ", buf_pos, buf_pos/11111, line);
+ gRGB rgbcol(0xD0,0xD0,0xD0);
+ page.type = SubtitlePage::Pango;
+ page.pango_page.m_elements.push_back(ePangoSubtitlePageElement(rgbcol, (const char*)line));
+ page.pango_page.m_show_pts = buf_pos / 11111L;
+ page.pango_page.m_timeout = duration_ns / 1000000;
+ m_subtitle_pages.push_back(page);
+ if (m_subtitle_pages.size()==1)
+ pushSubtitles();
+ }
+ else
+ {
+ eDebug("unsupported subpicture... ignoring");
+ }
+ }
gst_buffer_unref(buffer);
}
}
void eServiceMP3::pushSubtitles()
{
- ePangoSubtitlePage page;
- pts_t running_pts;
while ( !m_subtitle_pages.empty() )
{
+ SubtitlePage &frontpage = m_subtitle_pages.front();
+ pts_t running_pts;
+ gint64 diff_ms = 0;
+ gint64 show_pts = 0;
+
getPlayPosition(running_pts);
- page = m_subtitle_pages.front();
- gint64 diff_ms = ( page.show_pts - running_pts ) / 90;
- eDebug("eServiceMP3::pushSubtitles show_pts = %lld running_pts = %lld diff = %lld", page.show_pts, running_pts, diff_ms);
- if (diff_ms < -100)
- {
- GstFormat fmt = GST_FORMAT_TIME;
- gint64 now;
- if (gst_element_query_position(m_gst_playbin, &fmt, &now) != -1)
- {
- now /= 11111;
- diff_ms = abs((now - running_pts) / 90);
- eDebug("diff < -100ms check decoder/pipeline diff: decoder: %lld, pipeline: %lld, diff: %lld", running_pts, now, diff_ms);
- if (diff_ms > 100000)
- {
- eDebug("high decoder/pipeline difference.. assume decoder has now started yet.. check again in 1sec");
- m_subtitle_sync_timer->start(1000, true);
- break;
- }
+
+ if (m_decoder_time_valid_state < 4) {
+ ++m_decoder_time_valid_state;
+ if (m_prev_decoder_time == running_pts)
+ m_decoder_time_valid_state = 0;
+ if (m_decoder_time_valid_state < 4) {
+// if (m_decoder_time_valid_state)
+// eDebug("%d: decoder time not valid! prev %lld, now %lld\n", m_decoder_time_valid_state, m_prev_decoder_time/90, running_pts/90);
+// else
+// eDebug("%d: decoder time not valid! now %lld\n", m_decoder_time_valid_state, running_pts/90);
+ m_subtitle_sync_timer->start(25, true);
+ m_prev_decoder_time = running_pts;
+ break;
}
- else
- eDebug("query position for decoder/pipeline check failed!");
- eDebug("subtitle to late... drop");
+ }
+
+ if (frontpage.type == SubtitlePage::Pango)
+ show_pts = frontpage.pango_page.m_show_pts;
+
+ diff_ms = ( show_pts - running_pts ) / 90;
+ eDebug("check subtitle: decoder: %lld, show_pts: %lld, diff: %lld ms", running_pts/90, show_pts/90, diff_ms);
+
+ if ( diff_ms < -100 )
+ {
+ eDebug("subtitle too late... drop");
m_subtitle_pages.pop_front();
}
else if ( diff_ms > 20 )
{
-// eDebug("start recheck timer");
- m_subtitle_sync_timer->start(diff_ms > 1000 ? 1000 : diff_ms, true);
+ eDebug("start timer");
+ m_subtitle_sync_timer->start(diff_ms, true);
break;
}
else // immediate show
{
- if (m_subtitle_widget)
- m_subtitle_widget->setPage(page);
+ if ( m_subtitle_widget )
+ {
+ eDebug("show!\n");
+ if ( frontpage.type == SubtitlePage::Pango)
+ m_subtitle_widget->setPage(frontpage.pango_page);
+ m_subtitle_widget->show();
+ }
m_subtitle_pages.pop_front();
}
}
pullSubtitle();
}
+
RESULT eServiceMP3::enableSubtitles(eWidget *parent, ePyObject tuple)
{
+ eDebug ("eServiceMP3::enableSubtitles m_currentSubtitleStream=%i this=%p",m_currentSubtitleStream, this);
ePyObject entry;
int tuplesize = PyTuple_Size(tuple);
int pid, type;
gint text_pid = 0;
+ eSingleLocker l(m_subs_to_pull_lock);
+
+// GstPad *pad = 0;
+// g_signal_emit_by_name (m_gst_playbin, "get-text-pad", m_currentSubtitleStream, &pad);
+// gst_element_get_static_pad(m_gst_subtitlebin, "sink");
+// gulong subprobe_handler_id = gst_pad_add_buffer_probe (pad, G_CALLBACK (gstCBsubtitleDrop), NULL);
if (!PyTuple_Check(tuple))
goto error_out;
if (m_currentSubtitleStream != pid)
{
- eSingleLocker l(m_subs_to_pull_lock);
g_object_set (G_OBJECT (m_gst_playbin), "current-text", pid, NULL);
+ eDebug ("eServiceMP3::enableSubtitles g_object_set current-text = %i", pid);
m_currentSubtitleStream = pid;
m_subs_to_pull = 0;
+ m_prev_decoder_time = -1;
m_subtitle_pages.clear();
}
g_object_get (G_OBJECT (m_gst_playbin), "current-text", &text_pid, NULL);
eDebug ("eServiceMP3::switched to subtitle stream %i", text_pid);
+// gst_pad_remove_buffer_probe (pad, subprobe_handler_id);
+
+ m_event((iPlayableService*)this, evUpdatedInfo);
return 0;
PyObject *eServiceMP3::getSubtitleList()
{
- eDebug("eServiceMP3::getSubtitleList");
-
+// eDebug("eServiceMP3::getSubtitleList");
ePyObject l = PyList_New(0);
- int stream_count[sizeof(subtype_t)];
- for ( unsigned int i = 0; i < sizeof(subtype_t); i++ )
- stream_count[i] = 0;
-
+ int stream_idx = 0;
+
for (std::vector<subtitleStream>::iterator IterSubtitleStream(m_subtitleStreams.begin()); IterSubtitleStream != m_subtitleStreams.end(); ++IterSubtitleStream)
{
subtype_t type = IterSubtitleStream->type;
- ePyObject tuple = PyTuple_New(5);
- PyTuple_SET_ITEM(tuple, 0, PyInt_FromLong(2));
- PyTuple_SET_ITEM(tuple, 1, PyInt_FromLong(stream_count[type]));
- PyTuple_SET_ITEM(tuple, 2, PyInt_FromLong(int(type)));
- PyTuple_SET_ITEM(tuple, 3, PyInt_FromLong(0));
- PyTuple_SET_ITEM(tuple, 4, PyString_FromString((IterSubtitleStream->language_code).c_str()));
- PyList_Append(l, tuple);
- Py_DECREF(tuple);
- stream_count[type]++;
+ switch(type)
+ {
+ case stUnknown:
+ case stVOB:
+ case stPGS:
+ break;
+ default:
+ {
+ ePyObject tuple = PyTuple_New(5);
+// eDebug("eServiceMP3::getSubtitleList idx=%i type=%i, code=%s", stream_idx, int(type), (IterSubtitleStream->language_code).c_str());
+ PyTuple_SET_ITEM(tuple, 0, PyInt_FromLong(2));
+ PyTuple_SET_ITEM(tuple, 1, PyInt_FromLong(stream_idx));
+ PyTuple_SET_ITEM(tuple, 2, PyInt_FromLong(int(type)));
+ PyTuple_SET_ITEM(tuple, 3, PyInt_FromLong(0));
+ PyTuple_SET_ITEM(tuple, 4, PyString_FromString((IterSubtitleStream->language_code).c_str()));
+ PyList_Append(l, tuple);
+ Py_DECREF(tuple);
+ }
+ }
+ stream_idx++;
}
+ eDebug("eServiceMP3::getSubtitleList finished");
return l;
}
}
}
-#else
-#warning gstreamer not available, not building media player
-#endif
#ifndef __servicemp3_h
#define __servicemp3_h
-#ifdef HAVE_GSTREAMER
#include <lib/base/message.h>
#include <lib/service/iservice.h>
#include <lib/dvb/pmt.h>
typedef struct _GstElement GstElement;
typedef enum { atUnknown, atMPEG, atMP3, atAC3, atDTS, atAAC, atPCM, atOGG, atFLAC } audiotype_t;
-typedef enum { stPlainText, stSSA, stSRT } subtype_t;
+typedef enum { stUnknown, stPlainText, stSSA, stASS, stSRT, stVOB, stPGS } subtype_t;
typedef enum { ctNone, ctMPEGTS, ctMPEGPS, ctMKV, ctAVI, ctMP4, ctVCD, ctCDA } containertype_t;
class eServiceMP3: public iPlayableService, public iPauseableService,
int bufferPercent;
int avgInRate;
int avgOutRate;
- long long bufferingLeft;
+ int64_t bufferingLeft;
bufferInfo()
:bufferPercent(0), avgInRate(0), avgOutRate(0), bufferingLeft(-1)
{
}
};
+ struct errorInfo
+ {
+ std::string error_message;
+ std::string missing_codec;
+ };
+
private:
static int pcm_delay;
static int ac3_delay;
eServiceReference m_ref;
int m_buffer_size;
bufferInfo m_bufferInfo;
+ errorInfo m_errorInfo;
eServiceMP3(eServiceReference ref);
Signal2<void,iPlayableService*,int> m_event;
enum
{
stIdle, stRunning, stStopped,
+ };
+ int m_state;
+ GstElement *m_gst_playbin;
+ GstTagList *m_stream_tags;
+
+ struct Message
+ {
+ Message()
+ :type(-1)
+ {}
+ Message(int type)
+ :type(type)
+ {}
+ Message(int type, GstPad *pad)
+ :type(type)
+ {
+ d.pad=pad;
+ }
+
+ int type;
+ union {
+ GstPad *pad; // for msg type 3
+ } d;
+ };
+
+ eFixedMessagePump<Message> m_pump;
+
+ audiotype_t gstCheckAudioPad(GstStructure* structure);
+ void gstBusCall(GstBus *bus, GstMessage *msg);
+ static GstBusSyncReply gstBusSyncHandler(GstBus *bus, GstMessage *message, gpointer user_data);
+ static void gstTextpadHasCAPS(GstPad *pad, GParamSpec * unused, gpointer user_data);
+ void gstTextpadHasCAPS_synced(GstPad *pad);
+ static void gstCBsubtitleAvail(GstElement *element, gpointer user_data);
+ GstPad* gstCreateSubtitleSink(eServiceMP3* _this, subtype_t type);
+ void gstPoll(const Message&);
+ static void gstHTTPSourceSetAgent(GObject *source, GParamSpec *unused, gpointer user_data);
+
+ struct SubtitlePage
+ {
+ enum { Unknown, Pango, Vob } type;
+ ePangoSubtitlePage pango_page;
+ eVobSubtitlePage vob_page;
};
- int m_state;
- GstElement *m_gst_playbin;
- GstTagList *m_stream_tags;
- eFixedMessagePump<int> m_pump;
- std::string m_error_message;
-
- audiotype_t gstCheckAudioPad(GstStructure* structure);
- void gstBusCall(GstBus *bus, GstMessage *msg);
- static GstBusSyncReply gstBusSyncHandler(GstBus *bus, GstMessage *message, gpointer user_data);
- static void gstCBsubtitleAvail(GstElement *element, gpointer user_data);
- GstPad* gstCreateSubtitleSink(eServiceMP3* _this, subtype_t type);
- void gstPoll(const int&);
- static void gstHTTPSourceSetAgent(GObject *source, GParamSpec *unused, gpointer user_data);
-
- std::list<ePangoSubtitlePage> m_subtitle_pages;
- ePtr<eTimer> m_subtitle_sync_timer;
-
- ePtr<eTimer> m_streamingsrc_timeout;
- void pushSubtitles();
- void pullSubtitle();
- void sourceTimeout();
- int m_subs_to_pull;
- sourceStream m_sourceinfo;
+
+ std::list<SubtitlePage> m_subtitle_pages;
+ ePtr<eTimer> m_subtitle_sync_timer;
+
+ ePtr<eTimer> m_streamingsrc_timeout;
+ pts_t m_prev_decoder_time;
+ int m_decoder_time_valid_state;
+
+ void pushSubtitles();
+ void pullSubtitle();
+ void sourceTimeout();
+ int m_subs_to_pull;
+ sourceStream m_sourceinfo;
eSingleLock m_subs_to_pull_lock;
gulong m_subs_to_pull_handler_id;
std::string m_useragent;
RESULT trickSeek(gdouble ratio);
};
-#endif
#endif
--- /dev/null
+libtool.m4
+ltoptions.m4
+ltsugar.m4
+ltversion.m4
+lt~obsolete.m4
--- /dev/null
+# ===========================================================================
+# http://www.gnu.org/software/autoconf-archive/ax_pkg_swig.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+# AX_PKG_SWIG([major.minor.micro], [action-if-found], [action-if-not-found])
+#
+# DESCRIPTION
+#
+# This macro searches for a SWIG installation on your system. If found,
+# then SWIG is AC_SUBST'd; if not found, then $SWIG is empty. If SWIG is
+# found, then SWIG_LIB is set to the SWIG library path, and AC_SUBST'd.
+#
+# You can use the optional first argument to check if the version of the
+# available SWIG is greater than or equal to the value of the argument. It
+# should have the format: N[.N[.N]] (N is a number between 0 and 999. Only
+# the first N is mandatory.) If the version argument is given (e.g.
+# 1.3.17), AX_PKG_SWIG checks that the swig package is this version number
+# or higher.
+#
+# As usual, action-if-found is executed if SWIG is found, otherwise
+# action-if-not-found is executed.
+#
+# In configure.in, use as:
+#
+# AX_PKG_SWIG(1.3.17, [], [ AC_MSG_ERROR([SWIG is required to build..]) ])
+# AX_SWIG_ENABLE_CXX
+# AX_SWIG_MULTI_MODULE_SUPPORT
+# AX_SWIG_PYTHON
+#
+# LICENSE
+#
+# Copyright (c) 2008 Sebastian Huber <sebastian-huber@web.de>
+# Copyright (c) 2008 Alan W. Irwin <irwin@beluga.phys.uvic.ca>
+# Copyright (c) 2008 Rafael Laboissiere <rafael@laboissiere.net>
+# Copyright (c) 2008 Andrew Collier <colliera@ukzn.ac.za>
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation; either version 2 of the License, or (at your
+# option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# 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, see <http://www.gnu.org/licenses/>.
+#
+# As a special exception, the respective Autoconf Macro's copyright owner
+# gives unlimited permission to copy, distribute and modify the configure
+# scripts that are the output of Autoconf when processing the Macro. You
+# need not follow the terms of the GNU General Public License when using
+# or distributing such scripts, even though portions of the text of the
+# Macro appear in them. The GNU General Public License (GPL) does govern
+# all other use of the material that constitutes the Autoconf Macro.
+#
+# This special exception to the GPL applies to versions of the Autoconf
+# Macro released by the Autoconf Archive. When you make and distribute a
+# modified version of the Autoconf Macro, you may extend this special
+# exception to the GPL to apply to your modified version as well.
+
+#serial 7
+
+AC_DEFUN([AX_PKG_SWIG],[
+ AC_PATH_PROG([SWIG],[swig])
+ if test -z "$SWIG" ; then
+ m4_ifval([$3],[$3],[:])
+ elif test -n "$1" ; then
+ AC_MSG_CHECKING([SWIG version])
+ [swig_version=`$SWIG -version 2>&1 | grep 'SWIG Version' | sed 's/.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*/\1/g'`]
+ AC_MSG_RESULT([$swig_version])
+ if test -n "$swig_version" ; then
+ # Calculate the required version number components
+ [required=$1]
+ [required_major=`echo $required | sed 's/[^0-9].*//'`]
+ if test -z "$required_major" ; then
+ [required_major=0]
+ fi
+ [required=`echo $required | sed 's/[0-9]*[^0-9]//'`]
+ [required_minor=`echo $required | sed 's/[^0-9].*//'`]
+ if test -z "$required_minor" ; then
+ [required_minor=0]
+ fi
+ [required=`echo $required | sed 's/[0-9]*[^0-9]//'`]
+ [required_patch=`echo $required | sed 's/[^0-9].*//'`]
+ if test -z "$required_patch" ; then
+ [required_patch=0]
+ fi
+ # Calculate the available version number components
+ [available=$swig_version]
+ [available_major=`echo $available | sed 's/[^0-9].*//'`]
+ if test -z "$available_major" ; then
+ [available_major=0]
+ fi
+ [available=`echo $available | sed 's/[0-9]*[^0-9]//'`]
+ [available_minor=`echo $available | sed 's/[^0-9].*//'`]
+ if test -z "$available_minor" ; then
+ [available_minor=0]
+ fi
+ [available=`echo $available | sed 's/[0-9]*[^0-9]//'`]
+ [available_patch=`echo $available | sed 's/[^0-9].*//'`]
+ if test -z "$available_patch" ; then
+ [available_patch=0]
+ fi
+ # Convert the version tuple into a single number for easier comparison.
+ # Using base 100 should be safe since SWIG internally uses BCD values
+ # to encode its version number.
+ required_swig_vernum=`expr $required_major \* 10000 \
+ \+ $required_minor \* 100 \+ $required_patch`
+ available_swig_vernum=`expr $available_major \* 10000 \
+ \+ $available_minor \* 100 \+ $available_patch`
+
+ if test $available_swig_vernum -lt $required_swig_vernum; then
+ AC_MSG_WARN([SWIG version >= $1 is required. You have $swig_version.])
+ SWIG=''
+ m4_ifval([$3],[$3],[])
+ else
+ AC_MSG_CHECKING([for SWIG library])
+ SWIG_LIB=`$SWIG -swiglib`
+ AC_MSG_RESULT([$SWIG_LIB])
+ m4_ifval([$2],[$2],[])
+ fi
+ else
+ AC_MSG_WARN([cannot determine SWIG version])
+ SWIG=''
+ m4_ifval([$3],[$3],[])
+ fi
+ fi
+ AC_SUBST([SWIG_LIB])
+])
--- /dev/null
+# ===========================================================================
+# http://www.gnu.org/software/autoconf-archive/ax_pthread.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+# AX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
+#
+# DESCRIPTION
+#
+# This macro figures out how to build C programs using POSIX threads. It
+# sets the PTHREAD_LIBS output variable to the threads library and linker
+# flags, and the PTHREAD_CFLAGS output variable to any special C compiler
+# flags that are needed. (The user can also force certain compiler
+# flags/libs to be tested by setting these environment variables.)
+#
+# Also sets PTHREAD_CC to any special C compiler that is needed for
+# multi-threaded programs (defaults to the value of CC otherwise). (This
+# is necessary on AIX to use the special cc_r compiler alias.)
+#
+# NOTE: You are assumed to not only compile your program with these flags,
+# but also link it with them as well. e.g. you should link with
+# $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS
+#
+# If you are only building threads programs, you may wish to use these
+# variables in your default LIBS, CFLAGS, and CC:
+#
+# LIBS="$PTHREAD_LIBS $LIBS"
+# CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+# CC="$PTHREAD_CC"
+#
+# In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant
+# has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name
+# (e.g. PTHREAD_CREATE_UNDETACHED on AIX).
+#
+# ACTION-IF-FOUND is a list of shell commands to run if a threads library
+# is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it
+# is not found. If ACTION-IF-FOUND is not specified, the default action
+# will define HAVE_PTHREAD.
+#
+# Please let the authors know if this macro fails on any platform, or if
+# you have any other suggestions or comments. This macro was based on work
+# by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help
+# from M. Frigo), as well as ac_pthread and hb_pthread macros posted by
+# Alejandro Forero Cuervo to the autoconf macro repository. We are also
+# grateful for the helpful feedback of numerous users.
+#
+# LICENSE
+#
+# Copyright (c) 2008 Steven G. Johnson <stevenj@alum.mit.edu>
+#
+# This program is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation, either version 3 of the License, or (at your
+# option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# 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, see <http://www.gnu.org/licenses/>.
+#
+# As a special exception, the respective Autoconf Macro's copyright owner
+# gives unlimited permission to copy, distribute and modify the configure
+# scripts that are the output of Autoconf when processing the Macro. You
+# need not follow the terms of the GNU General Public License when using
+# or distributing such scripts, even though portions of the text of the
+# Macro appear in them. The GNU General Public License (GPL) does govern
+# all other use of the material that constitutes the Autoconf Macro.
+#
+# This special exception to the GPL applies to versions of the Autoconf
+# Macro released by the Autoconf Archive. When you make and distribute a
+# modified version of the Autoconf Macro, you may extend this special
+# exception to the GPL to apply to your modified version as well.
+
+#serial 11
+
+AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD])
+AC_DEFUN([AX_PTHREAD], [
+AC_REQUIRE([AC_CANONICAL_HOST])
+AC_LANG_SAVE
+AC_LANG_C
+ax_pthread_ok=no
+
+# We used to check for pthread.h first, but this fails if pthread.h
+# requires special compiler flags (e.g. on True64 or Sequent).
+# It gets checked for in the link test anyway.
+
+# First of all, check if the user has set any of the PTHREAD_LIBS,
+# etcetera environment variables, and if threads linking works using
+# them:
+if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+ save_LIBS="$LIBS"
+ LIBS="$PTHREAD_LIBS $LIBS"
+ AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS])
+ AC_TRY_LINK_FUNC(pthread_join, ax_pthread_ok=yes)
+ AC_MSG_RESULT($ax_pthread_ok)
+ if test x"$ax_pthread_ok" = xno; then
+ PTHREAD_LIBS=""
+ PTHREAD_CFLAGS=""
+ fi
+ LIBS="$save_LIBS"
+ CFLAGS="$save_CFLAGS"
+fi
+
+# We must check for the threads library under a number of different
+# names; the ordering is very important because some systems
+# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
+# libraries is broken (non-POSIX).
+
+# Create a list of thread flags to try. Items starting with a "-" are
+# C compiler flags, and other items are library names, except for "none"
+# which indicates that we try without any flags at all, and "pthread-config"
+# which is a program returning the flags for the Pth emulation library.
+
+ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
+
+# The ordering *is* (sometimes) important. Some notes on the
+# individual items follow:
+
+# pthreads: AIX (must check this before -lpthread)
+# none: in case threads are in libc; should be tried before -Kthread and
+# other compiler flags to prevent continual compiler warnings
+# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
+# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
+# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
+# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)
+# -pthreads: Solaris/gcc
+# -mthreads: Mingw32/gcc, Lynx/gcc
+# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
+# doesn't hurt to check since this sometimes defines pthreads too;
+# also defines -D_REENTRANT)
+# ... -mt is also the pthreads flag for HP/aCC
+# pthread: Linux, etcetera
+# --thread-safe: KAI C++
+# pthread-config: use pthread-config program (for GNU Pth library)
+
+case "${host_cpu}-${host_os}" in
+ *solaris*)
+
+ # On Solaris (at least, for some versions), libc contains stubbed
+ # (non-functional) versions of the pthreads routines, so link-based
+ # tests will erroneously succeed. (We need to link with -pthreads/-mt/
+ # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather
+ # a function called by this macro, so we could check for that, but
+ # who knows whether they'll stub that too in a future libc.) So,
+ # we'll just look for -pthreads and -lpthread first:
+
+ ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags"
+ ;;
+
+ *-darwin*)
+ ax_pthread_flags="-pthread $ax_pthread_flags"
+ ;;
+esac
+
+if test x"$ax_pthread_ok" = xno; then
+for flag in $ax_pthread_flags; do
+
+ case $flag in
+ none)
+ AC_MSG_CHECKING([whether pthreads work without any flags])
+ ;;
+
+ -*)
+ AC_MSG_CHECKING([whether pthreads work with $flag])
+ PTHREAD_CFLAGS="$flag"
+ ;;
+
+ pthread-config)
+ AC_CHECK_PROG(ax_pthread_config, pthread-config, yes, no)
+ if test x"$ax_pthread_config" = xno; then continue; fi
+ PTHREAD_CFLAGS="`pthread-config --cflags`"
+ PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
+ ;;
+
+ *)
+ AC_MSG_CHECKING([for the pthreads library -l$flag])
+ PTHREAD_LIBS="-l$flag"
+ ;;
+ esac
+
+ save_LIBS="$LIBS"
+ save_CFLAGS="$CFLAGS"
+ LIBS="$PTHREAD_LIBS $LIBS"
+ CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+
+ # Check for various functions. We must include pthread.h,
+ # since some functions may be macros. (On the Sequent, we
+ # need a special flag -Kthread to make this header compile.)
+ # We check for pthread_join because it is in -lpthread on IRIX
+ # while pthread_create is in libc. We check for pthread_attr_init
+ # due to DEC craziness with -lpthreads. We check for
+ # pthread_cleanup_push because it is one of the few pthread
+ # functions on Solaris that doesn't have a non-functional libc stub.
+ # We try pthread_create on general principles.
+ AC_TRY_LINK([#include <pthread.h>
+ static void routine(void* a) {a=0;}
+ static void* start_routine(void* a) {return a;}],
+ [pthread_t th; pthread_attr_t attr;
+ pthread_create(&th,0,start_routine,0);
+ pthread_join(th, 0);
+ pthread_attr_init(&attr);
+ pthread_cleanup_push(routine, 0);
+ pthread_cleanup_pop(0); ],
+ [ax_pthread_ok=yes])
+
+ LIBS="$save_LIBS"
+ CFLAGS="$save_CFLAGS"
+
+ AC_MSG_RESULT($ax_pthread_ok)
+ if test "x$ax_pthread_ok" = xyes; then
+ break;
+ fi
+
+ PTHREAD_LIBS=""
+ PTHREAD_CFLAGS=""
+done
+fi
+
+# Various other checks:
+if test "x$ax_pthread_ok" = xyes; then
+ save_LIBS="$LIBS"
+ LIBS="$PTHREAD_LIBS $LIBS"
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+
+ # Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
+ AC_MSG_CHECKING([for joinable pthread attribute])
+ attr_name=unknown
+ for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
+ AC_TRY_LINK([#include <pthread.h>], [int attr=$attr; return attr;],
+ [attr_name=$attr; break])
+ done
+ AC_MSG_RESULT($attr_name)
+ if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then
+ AC_DEFINE_UNQUOTED(PTHREAD_CREATE_JOINABLE, $attr_name,
+ [Define to necessary symbol if this constant
+ uses a non-standard name on your system.])
+ fi
+
+ AC_MSG_CHECKING([if more special flags are required for pthreads])
+ flag=no
+ case "${host_cpu}-${host_os}" in
+ *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";;
+ *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";;
+ esac
+ AC_MSG_RESULT(${flag})
+ if test "x$flag" != xno; then
+ PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
+ fi
+
+ LIBS="$save_LIBS"
+ CFLAGS="$save_CFLAGS"
+
+ # More AIX lossage: must compile with xlc_r or cc_r
+ if test x"$GCC" != xyes; then
+ AC_CHECK_PROGS(PTHREAD_CC, xlc_r cc_r, ${CC})
+ else
+ PTHREAD_CC=$CC
+ fi
+else
+ PTHREAD_CC="$CC"
+fi
+
+AC_SUBST(PTHREAD_LIBS)
+AC_SUBST(PTHREAD_CFLAGS)
+AC_SUBST(PTHREAD_CC)
+
+# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
+if test x"$ax_pthread_ok" = xyes; then
+ ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1])
+ :
+else
+ ax_pthread_ok=no
+ $2
+fi
+AC_LANG_RESTORE
+])dnl AX_PTHREAD
--- /dev/null
+# ===========================================================================
+# http://www.gnu.org/software/autoconf-archive/ax_python_devel.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+# AX_PYTHON_DEVEL([version])
+#
+# DESCRIPTION
+#
+# Note: Defines as a precious variable "PYTHON_VERSION". Don't override it
+# in your configure.ac.
+#
+# This macro checks for Python and tries to get the include path to
+# 'Python.h'. It provides the $(PYTHON_CPPFLAGS) and $(PYTHON_LDFLAGS)
+# output variables. It also exports $(PYTHON_EXTRA_LIBS) and
+# $(PYTHON_EXTRA_LDFLAGS) for embedding Python in your code.
+#
+# You can search for some particular version of Python by passing a
+# parameter to this macro, for example ">= '2.3.1'", or "== '2.4'". Please
+# note that you *have* to pass also an operator along with the version to
+# match, and pay special attention to the single quotes surrounding the
+# version number. Don't use "PYTHON_VERSION" for this: that environment
+# variable is declared as precious and thus reserved for the end-user.
+#
+# This macro should work for all versions of Python >= 2.1.0. As an end
+# user, you can disable the check for the python version by setting the
+# PYTHON_NOVERSIONCHECK environment variable to something else than the
+# empty string.
+#
+# If you need to use this macro for an older Python version, please
+# contact the authors. We're always open for feedback.
+#
+# LICENSE
+#
+# Copyright (c) 2009 Sebastian Huber <sebastian-huber@web.de>
+# Copyright (c) 2009 Alan W. Irwin <irwin@beluga.phys.uvic.ca>
+# Copyright (c) 2009 Rafael Laboissiere <rafael@laboissiere.net>
+# Copyright (c) 2009 Andrew Collier <colliera@ukzn.ac.za>
+# Copyright (c) 2009 Matteo Settenvini <matteo@member.fsf.org>
+# Copyright (c) 2009 Horst Knorr <hk_classes@knoda.org>
+#
+# This program is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation, either version 3 of the License, or (at your
+# option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# 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, see <http://www.gnu.org/licenses/>.
+#
+# As a special exception, the respective Autoconf Macro's copyright owner
+# gives unlimited permission to copy, distribute and modify the configure
+# scripts that are the output of Autoconf when processing the Macro. You
+# need not follow the terms of the GNU General Public License when using
+# or distributing such scripts, even though portions of the text of the
+# Macro appear in them. The GNU General Public License (GPL) does govern
+# all other use of the material that constitutes the Autoconf Macro.
+#
+# This special exception to the GPL applies to versions of the Autoconf
+# Macro released by the Autoconf Archive. When you make and distribute a
+# modified version of the Autoconf Macro, you may extend this special
+# exception to the GPL to apply to your modified version as well.
+
+#serial 8
+
+AU_ALIAS([AC_PYTHON_DEVEL], [AX_PYTHON_DEVEL])
+AC_DEFUN([AX_PYTHON_DEVEL],[
+ #
+ # Allow the use of a (user set) custom python version
+ #
+ AC_ARG_VAR([PYTHON_VERSION],[The installed Python
+ version to use, for example '2.3'. This string
+ will be appended to the Python interpreter
+ canonical name.])
+
+ AC_PATH_PROG([PYTHON],[python[$PYTHON_VERSION]])
+ if test -z "$PYTHON"; then
+ AC_MSG_ERROR([Cannot find python$PYTHON_VERSION in your system path])
+ PYTHON_VERSION=""
+ fi
+
+ #
+ # Check for a version of Python >= 2.1.0
+ #
+ AC_MSG_CHECKING([for a version of Python >= '2.1.0'])
+ ac_supports_python_ver=`$PYTHON -c "import sys; \
+ ver = sys.version.split ()[[0]]; \
+ print (ver >= '2.1.0')"`
+ if test "$ac_supports_python_ver" != "True"; then
+ if test -z "$PYTHON_NOVERSIONCHECK"; then
+ AC_MSG_RESULT([no])
+ AC_MSG_FAILURE([
+This version of the AC@&t@_PYTHON_DEVEL macro
+doesn't work properly with versions of Python before
+2.1.0. You may need to re-run configure, setting the
+variables PYTHON_CPPFLAGS, PYTHON_LDFLAGS, PYTHON_SITE_PKG,
+PYTHON_EXTRA_LIBS and PYTHON_EXTRA_LDFLAGS by hand.
+Moreover, to disable this check, set PYTHON_NOVERSIONCHECK
+to something else than an empty string.
+])
+ else
+ AC_MSG_RESULT([skip at user request])
+ fi
+ else
+ AC_MSG_RESULT([yes])
+ fi
+
+ #
+ # if the macro parameter ``version'' is set, honour it
+ #
+ if test -n "$1"; then
+ AC_MSG_CHECKING([for a version of Python $1])
+ ac_supports_python_ver=`$PYTHON -c "import sys; \
+ ver = sys.version.split ()[[0]]; \
+ print (ver $1)"`
+ if test "$ac_supports_python_ver" = "True"; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ AC_MSG_ERROR([this package requires Python $1.
+If you have it installed, but it isn't the default Python
+interpreter in your system path, please pass the PYTHON_VERSION
+variable to configure. See ``configure --help'' for reference.
+])
+ PYTHON_VERSION=""
+ fi
+ fi
+
+ #
+ # Check if you have distutils, else fail
+ #
+ AC_MSG_CHECKING([for the distutils Python package])
+ ac_distutils_result=`$PYTHON -c "import distutils" 2>&1`
+ if test -z "$ac_distutils_result"; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ AC_MSG_ERROR([cannot import Python module "distutils".
+Please check your Python installation. The error was:
+$ac_distutils_result])
+ PYTHON_VERSION=""
+ fi
+
+ #
+ # Check for Python include path
+ #
+ AC_MSG_CHECKING([for Python include path])
+ if test -z "$PYTHON_CPPFLAGS"; then
+ python_path=`$PYTHON -c "import distutils.sysconfig; \
+ print (distutils.sysconfig.get_python_inc ());"`
+ if test -n "${python_path}"; then
+ python_path="-I$python_path"
+ fi
+ PYTHON_CPPFLAGS=$python_path
+ fi
+ AC_MSG_RESULT([$PYTHON_CPPFLAGS])
+ AC_SUBST([PYTHON_CPPFLAGS])
+
+ #
+ # Check for Python library path
+ #
+ AC_MSG_CHECKING([for Python library path])
+ if test -z "$PYTHON_LDFLAGS"; then
+ # (makes two attempts to ensure we've got a version number
+ # from the interpreter)
+ ac_python_version=`cat<<EOD | $PYTHON -
+
+# join all versioning strings, on some systems
+# major/minor numbers could be in different list elements
+from distutils.sysconfig import *
+ret = ''
+for e in get_config_vars ('VERSION'):
+ if (e != None):
+ ret += e
+print (ret)
+EOD`
+
+ if test -z "$ac_python_version"; then
+ if test -n "$PYTHON_VERSION"; then
+ ac_python_version=$PYTHON_VERSION
+ else
+ ac_python_version=`$PYTHON -c "import sys; \
+ print (sys.version[[:3]])"`
+ fi
+ fi
+
+ # Make the versioning information available to the compiler
+ AC_DEFINE_UNQUOTED([HAVE_PYTHON], ["$ac_python_version"],
+ [If available, contains the Python version number currently in use.])
+
+ # First, the library directory:
+ ac_python_libdir=`cat<<EOD | $PYTHON -
+
+# There should be only one
+import distutils.sysconfig
+for e in distutils.sysconfig.get_config_vars ('LIBDIR'):
+ if e != None:
+ print (e)
+ break
+EOD`
+
+ # Before checking for libpythonX.Y, we need to know
+ # the extension the OS we're on uses for libraries
+ # (we take the first one, if there's more than one fix me!):
+ ac_python_soext=`$PYTHON -c \
+ "import distutils.sysconfig; \
+ print (distutils.sysconfig.get_config_vars('SO')[[0]])"`
+
+ # Now, for the library:
+ ac_python_soname=`$PYTHON -c \
+ "import distutils.sysconfig; \
+ print (distutils.sysconfig.get_config_vars('LDLIBRARY')[[0]])"`
+
+ # Strip away extension from the end to canonicalize its name:
+ ac_python_library=`echo "$ac_python_soname" | sed "s/${ac_python_soext}$//"`
+
+ # This small piece shamelessly adapted from PostgreSQL python macro;
+ # credits goes to momjian, I think. I'd like to put the right name
+ # in the credits, if someone can point me in the right direction... ?
+ #
+ if test -n "$ac_python_libdir" -a -n "$ac_python_library" \
+ -a x"$ac_python_library" != x"$ac_python_soname"
+ then
+ # use the official shared library
+ ac_python_library=`echo "$ac_python_library" | sed "s/^lib//"`
+ PYTHON_LDFLAGS="-L$ac_python_libdir -l$ac_python_library"
+ else
+ # old way: use libpython from python_configdir
+ ac_python_libdir=`$PYTHON -c \
+ "from distutils.sysconfig import get_python_lib as f; \
+ import os; \
+ print (os.path.join(f(plat_specific=1, standard_lib=1), 'config'));"`
+ PYTHON_LDFLAGS="-L$ac_python_libdir -lpython$ac_python_version"
+ fi
+
+ if test -z "PYTHON_LDFLAGS"; then
+ AC_MSG_ERROR([
+ Cannot determine location of your Python DSO. Please check it was installed with
+ dynamic libraries enabled, or try setting PYTHON_LDFLAGS by hand.
+ ])
+ fi
+ fi
+ AC_MSG_RESULT([$PYTHON_LDFLAGS])
+ AC_SUBST([PYTHON_LDFLAGS])
+
+ #
+ # Check for site packages
+ #
+ AC_MSG_CHECKING([for Python site-packages path])
+ if test -z "$PYTHON_SITE_PKG"; then
+ PYTHON_SITE_PKG=`$PYTHON -c "import distutils.sysconfig; \
+ print (distutils.sysconfig.get_python_lib(0,0));"`
+ fi
+ AC_MSG_RESULT([$PYTHON_SITE_PKG])
+ AC_SUBST([PYTHON_SITE_PKG])
+
+ #
+ # libraries which must be linked in when embedding
+ #
+ AC_MSG_CHECKING(python extra libraries)
+ if test -z "$PYTHON_EXTRA_LIBS"; then
+ PYTHON_EXTRA_LIBS=`$PYTHON -c "import distutils.sysconfig; \
+ conf = distutils.sysconfig.get_config_var; \
+ print (conf('LOCALMODLIBS') + ' ' + conf('LIBS'))"`
+ fi
+ AC_MSG_RESULT([$PYTHON_EXTRA_LIBS])
+ AC_SUBST(PYTHON_EXTRA_LIBS)
+
+ #
+ # linking flags needed when embedding
+ #
+ AC_MSG_CHECKING(python extra linking flags)
+ if test -z "$PYTHON_EXTRA_LDFLAGS"; then
+ PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "import distutils.sysconfig; \
+ conf = distutils.sysconfig.get_config_var; \
+ print (conf('LINKFORSHARED'))"`
+ fi
+ AC_MSG_RESULT([$PYTHON_EXTRA_LDFLAGS])
+ AC_SUBST(PYTHON_EXTRA_LDFLAGS)
+
+ #
+ # final check to see if everything compiles alright
+ #
+ AC_MSG_CHECKING([consistency of all components of python development environment])
+ # save current global flags
+ ac_save_LIBS="$LIBS"
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ LIBS="$ac_save_LIBS $PYTHON_LDFLAGS $PYTHON_EXTRA_LDFLAGS $PYTHON_EXTRA_LIBS"
+ CPPFLAGS="$ac_save_CPPFLAGS $PYTHON_CPPFLAGS"
+ AC_LANG_PUSH([C])
+ AC_LINK_IFELSE([
+ AC_LANG_PROGRAM([[#include <Python.h>]],
+ [[Py_Initialize();]])
+ ],[pythonexists=yes],[pythonexists=no])
+ AC_LANG_POP([C])
+ # turn back to default flags
+ CPPFLAGS="$ac_save_CPPFLAGS"
+ LIBS="$ac_save_LIBS"
+
+ AC_MSG_RESULT([$pythonexists])
+
+ if test ! "x$pythonexists" = "xyes"; then
+ AC_MSG_FAILURE([
+ Could not link test program to Python. Maybe the main Python library has been
+ installed in some non-standard library path. If so, pass it to configure,
+ via the LDFLAGS environment variable.
+ Example: ./configure LDFLAGS="-L/usr/non-standard-path/python/lib"
+ ============================================================================
+ ERROR!
+ You probably have to install the development version of the Python package
+ for your distribution. The exact name of this package varies among them.
+ ============================================================================
+ ])
+ PYTHON_VERSION=""
+ fi
+
+ #
+ # all done!
+ #
+])
--- /dev/null
+# ===========================================================================
+# http://www.gnu.org/software/autoconf-archive/ax_swig_enable_cxx.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+# AX_SWIG_ENABLE_CXX
+#
+# DESCRIPTION
+#
+# Enable SWIG C++ support. This affects all invocations of $(SWIG).
+#
+# LICENSE
+#
+# Copyright (c) 2008 Sebastian Huber <sebastian-huber@web.de>
+# Copyright (c) 2008 Alan W. Irwin <irwin@beluga.phys.uvic.ca>
+# Copyright (c) 2008 Rafael Laboissiere <rafael@laboissiere.net>
+# Copyright (c) 2008 Andrew Collier <colliera@ukzn.ac.za>
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation; either version 2 of the License, or (at your
+# option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# 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, see <http://www.gnu.org/licenses/>.
+#
+# As a special exception, the respective Autoconf Macro's copyright owner
+# gives unlimited permission to copy, distribute and modify the configure
+# scripts that are the output of Autoconf when processing the Macro. You
+# need not follow the terms of the GNU General Public License when using
+# or distributing such scripts, even though portions of the text of the
+# Macro appear in them. The GNU General Public License (GPL) does govern
+# all other use of the material that constitutes the Autoconf Macro.
+#
+# This special exception to the GPL applies to versions of the Autoconf
+# Macro released by the Autoconf Archive. When you make and distribute a
+# modified version of the Autoconf Macro, you may extend this special
+# exception to the GPL to apply to your modified version as well.
+
+#serial 6
+
+AU_ALIAS([SWIG_ENABLE_CXX], [AX_SWIG_ENABLE_CXX])
+AC_DEFUN([AX_SWIG_ENABLE_CXX],[
+ AC_REQUIRE([AX_PKG_SWIG])
+ AC_REQUIRE([AC_PROG_CXX])
+ SWIG="$SWIG -c++"
+])
--- /dev/null
+# ===========================================================================
+# http://www.gnu.org/software/autoconf-archive/ax_swig_python.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+# AX_SWIG_PYTHON([use-shadow-classes = {no, yes}])
+#
+# DESCRIPTION
+#
+# Checks for Python and provides the $(AX_SWIG_PYTHON_CPPFLAGS), and
+# $(AX_SWIG_PYTHON_OPT) output variables.
+#
+# $(AX_SWIG_PYTHON_OPT) contains all necessary SWIG options to generate
+# code for Python. Shadow classes are enabled unless the value of the
+# optional first argument is exactly 'no'. If you need multi module
+# support (provided by the AX_SWIG_MULTI_MODULE_SUPPORT macro) use
+# $(AX_SWIG_PYTHON_LIBS) to link against the appropriate library. It
+# contains the SWIG Python runtime library that is needed by the type
+# check system for example.
+#
+# LICENSE
+#
+# Copyright (c) 2008 Sebastian Huber <sebastian-huber@web.de>
+# Copyright (c) 2008 Alan W. Irwin <irwin@beluga.phys.uvic.ca>
+# Copyright (c) 2008 Rafael Laboissiere <rafael@laboissiere.net>
+# Copyright (c) 2008 Andrew Collier <colliera@ukzn.ac.za>
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation; either version 2 of the License, or (at your
+# option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# 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, see <http://www.gnu.org/licenses/>.
+#
+# As a special exception, the respective Autoconf Macro's copyright owner
+# gives unlimited permission to copy, distribute and modify the configure
+# scripts that are the output of Autoconf when processing the Macro. You
+# need not follow the terms of the GNU General Public License when using
+# or distributing such scripts, even though portions of the text of the
+# Macro appear in them. The GNU General Public License (GPL) does govern
+# all other use of the material that constitutes the Autoconf Macro.
+#
+# This special exception to the GPL applies to versions of the Autoconf
+# Macro released by the Autoconf Archive. When you make and distribute a
+# modified version of the Autoconf Macro, you may extend this special
+# exception to the GPL to apply to your modified version as well.
+
+#serial 7
+
+AU_ALIAS([SWIG_PYTHON], [AX_SWIG_PYTHON])
+AC_DEFUN([AX_SWIG_PYTHON],[
+ AC_REQUIRE([AX_PKG_SWIG])
+ AC_REQUIRE([AX_PYTHON_DEVEL])
+ test "x$1" != "xno" || swig_shadow=" -noproxy"
+ AC_SUBST([AX_SWIG_PYTHON_OPT],[-python$swig_shadow])
+ AC_SUBST([AX_SWIG_PYTHON_CPPFLAGS],[$PYTHON_CPPFLAGS])
+])
--- /dev/null
+AC_DEFUN([TUXBOX_APPS_DVB],[
+AC_ARG_WITH(dvbincludes,
+ [ --with-dvbincludes=PATH path for dvb includes [[NONE]]],
+ [DVBINCLUDES="$withval"],[DVBINCLUDES=""])
+
+if test "$DVBINCLUDES"; then
+ CPPFLAGS="$CPPFLAGS -I$DVBINCLUDES"
+fi
+
+AC_CHECK_HEADERS(ost/dmx.h,[
+ DVB_API_VERSION=1
+ AC_MSG_NOTICE([found dvb version 1])
+])
+
+if test -z "$DVB_API_VERSION"; then
+AC_CHECK_HEADERS(linux/dvb/version.h,[
+ AC_LANG_PREPROC_REQUIRE()
+ AC_REQUIRE([AC_PROG_EGREP])
+ AC_LANG_CONFTEST([AC_LANG_SOURCE([[
+#include <linux/dvb/version.h>
+version DVB_API_VERSION
+ ]])])
+ DVB_API_VERSION=`(eval "$ac_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD | $EGREP "^version" | sed "s,version\ ,,"`
+ rm -f conftest*
+
+ AC_MSG_NOTICE([found dvb version $DVB_API_VERSION])
+])
+fi
+
+if test "$DVB_API_VERSION"; then
+ AC_DEFINE(HAVE_DVB,1,[Define to 1 if you have the dvb includes])
+ AC_DEFINE_UNQUOTED(HAVE_DVB_API_VERSION,$DVB_API_VERSION,[Define to the version of the dvb api])
+else
+ AC_MSG_ERROR([can't find dvb headers])
+fi
+])
-entries
+enigma2
+version.h
-INCLUDES = \
- -I$(top_srcdir)/include
+AM_CPPFLAGS = \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/include \
+ -include Python.h \
+ -include $(top_builddir)/enigma2_config.h
+
+AM_CXXFLAGS = \
+ $(LIBSDL_CFLAGS)
bin_PROGRAMS = enigma2
enigma2_SOURCES = \
- enigma.cpp bsod.cpp
-
-CLEANFILES = version.h
-
-bsod.o: version.h
-
-enigma.o: version.h
-
-# when there is no ../CVS/Entries, don't worry.
-../CVS/Entries:
-
-../CVS/Root:
+ bsod.cpp \
+ bsod.h \
+ enigma.cpp \
+ xmlgenerator.cpp \
+ xmlgenerator.h \
+ version_info.cpp \
+ version_info.h \
+ version.h
-.PHONY: .svn/entries
-
-entries: .svn/entries
- @if [ ! -f entries ]; then touch entries; fi
- @if [ -f .svn/entries ] && ! diff -q entries .svn/entries 2>/dev/null; then \
- cp --no-preserve=mode .svn/entries entries; \
- fi;
-
-version.h: entries
- > version.h
- @if [ -d .svn ]; then \
- echo "#define ENIGMA2_LAST_CHANGE_DATE \"`LANG="en" svn info | grep 'Last Changed Date:' | cut -d' ' -f4`\"" >> version.h; \
- elif [ -d ../.git ]; then \
- if [ -f ../.git/last_commit_info ]; then \
- echo "#define ENIGMA2_LAST_CHANGE_DATE \"`cat ../.git/last_commit_info | grep 'Date:' | cut -d' ' -f4`\"" >> version.h; \
- echo "#define ENIGMA2_BRANCH \"`cat ../.git/branch`\"" >> version.h; \
- else \
- echo "#define ENIGMA2_LAST_CHANGE_DATE \"`LANG="en" git log --max-count=1 --date=short | grep 'Date:' | cut -d' ' -f4`\"" >> version.h; \
- echo "#define ENIGMA2_BRANCH \"`LANG="en" git branch | grep '* ' | cut -d' ' -f2`\"" >> version.h; \
- fi; \
- fi;
+EXTRA_DIST = \
+ enigma-dvbtest.cpp \
+ enigma-gdi.cpp \
+ enigma-gui.cpp \
+ enigma-playlist.cpp \
+ enigma-scan.cpp
enigma2_LDADD_WHOLE = \
$(top_builddir)/lib/actions/libenigma_actions.a \
$(top_builddir)/lib/service/libenigma_service.a
enigma2_LDADD = \
- @FREETYPE_LIBS@ \
- @ID3TAG_LIBS@ \
- @MAD_LIBS@ \
- @PNG_LIBS@ \
- @SDL_LIBS@ \
- @SIGC_LIBS@ \
- @DVBSI_LIBS@ \
- @FRIBIDI_LIBS@ \
- @GSTREAMER_LIBS@ \
- @GSTREAMERPBUTILS_LIBS@ \
- @JPEG_LIBS@ \
- @LIBUNGIF_LIBS@ \
- @XML2_LIBS@ \
- @XMLCCWRAP_LIBS@ \
- -ldl -lpthread -lcrypt -lresolv -lrt
+ @BASE_LIBS@ \
+ @LIBGIF_LIBS@ \
+ @LIBJPEG_LIBS@ \
+ @LIBSDL_LIBS@ \
+ @LIBXINE_LIBS@ \
+ @LIBXMLCCWRAP_LIBS@ \
+ @PTHREAD_LIBS@ \
+ @PYTHON_LDFLAGS@
+
+enigma2_LDFLAGS = -Wl,--export-dynamic
+
+if HAVE_GIT_DIR
+GIT_DIR = $(top_srcdir)/.git
+GIT = git --git-dir=$(GIT_DIR)
+
+if HAVE_FAKE_GIT_DIR
+ENIGMA2_COMMIT_DATE = `grep '^CommitDate:' $(GIT_DIR)/last_commit_info | cut -d' ' -f2`
+ENIGMA2_BRANCH = `cat $(GIT_DIR)/branch`
+else
+ENIGMA2_COMMIT_DATE = `$(GIT) log --no-color -n 1 --pretty=format:%cd --date=short`
+ENIGMA2_BRANCH = `$(GIT) branch --no-color 2>/dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'`
+ENIGMA2_REV = `$(GIT) describe --abbrev=7 --always --long --tags`
+endif
+endif
+
+BUILT_SOURCES = version-intermediate.h
+.INTERMEDIATE: version-intermediate.h
+.PHONY: version-intermediate.h
+version-intermediate.h:
+ $(AM_V_GEN)touch $@
+ -$(AM_V_at)[ -n "$(ENIGMA2_COMMIT_DATE)" ] && echo "#define ENIGMA2_COMMIT_DATE \"$(ENIGMA2_COMMIT_DATE)\"" >> $@
+ -$(AM_V_at)[ -n "$(ENIGMA2_BRANCH)" ] && echo "#define ENIGMA2_BRANCH \"$(ENIGMA2_BRANCH)\"" >> $@
+ -$(AM_V_at)[ -n "$(ENIGMA2_REV)" ] && echo "#define ENIGMA2_REV \"$(ENIGMA2_REV)\"" >> $@
+ $(AM_V_at)([ -f version.h ] && diff -q version.h $@ >/dev/null) || $(INSTALL_HEADER) $@ version.h
enigma2$(EXEEXT): $(enigma2_OBJECTS) $(enigma2_DEPENDENCIES) $(enigma2_LDADD_WHOLE)
-# @rm -f enigma2$(EXEEXT)
- $(CXXLINK) $(enigma2_LDFLAGS) $(enigma2_OBJECTS) -Wl,--export-dynamic -Wl,--whole-archive $(enigma2_LDADD_WHOLE) -Wl,--no-whole-archive $(enigma2_LDADD) $(LIBS)
-# g++ -o enigma2$(EXEEXT) $(enigma2_LDFLAGS) $(enigma2_OBJECTS) -Wl,--export-dynamic -Wl,--whole-archive $(enigma2_LDADD_WHOLE) -Wl,--no-whole-archive $(enigma2_LDADD) $(LIBS)
+ $(AM_V_CXXLD)$(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ $(enigma2_LDFLAGS) $(enigma2_OBJECTS) \
+ -Wl,--whole-archive $(enigma2_LDADD_WHOLE) -Wl,--no-whole-archive $(enigma2_LDADD) $(LIBS)
-#include <string.h>
-#include <signal.h>
-#include <asm/ptrace.h>
-
+#include <csignal>
+#include <fstream>
+#include <sstream>
+#include <lib/base/eenv.h>
#include <lib/base/eerror.h>
-#include <lib/base/smartptr.h>
#include <lib/base/nconfig.h>
-#include <lib/gdi/grc.h>
-#include <lib/gdi/gfbdc.h>
-#ifdef WITH_SDL
-#include <lib/gdi/sdl.h>
+#include <lib/gdi/gmaindc.h>
+
+#if defined(__MIPSEL__)
+#include <asm/ptrace.h>
+#else
+#warning "no oops support!"
+#define NO_OOPS_SUPPORT
#endif
-#include "version.h"
+#include "xmlgenerator.h"
+#include "version_info.h"
/************************************************/
#define CRASH_EMAILADDR "crashlog@dream-multimedia-tv.de"
-#define STDBUFFER_SIZE 512
+#define INFOFILE "/maintainer.info"
+
#define RINGBUFFER_SIZE 16384
static char ringbuffer[RINGBUFFER_SIZE];
-static int ringbuffer_head;
+static unsigned int ringbuffer_head;
-static void addToLogbuffer(const char *data, int len)
+static void addToLogbuffer(const char *data, unsigned int len)
{
while (len)
{
- int remaining = RINGBUFFER_SIZE - ringbuffer_head;
-
+ unsigned int remaining = RINGBUFFER_SIZE - ringbuffer_head;
+
if (remaining > len)
remaining = len;
-
+
memcpy(ringbuffer + ringbuffer_head, data, remaining);
len -= remaining;
data += remaining;
ringbuffer_head += remaining;
- if (ringbuffer_head >= RINGBUFFER_SIZE)
+ ASSERT(ringbuffer_head <= RINGBUFFER_SIZE);
+ if (ringbuffer_head == RINGBUFFER_SIZE)
ringbuffer_head = 0;
}
}
-static std::string getLogBuffer()
+static const std::string getLogBuffer()
{
- int begin = ringbuffer_head;
+ unsigned int begin = ringbuffer_head;
while (ringbuffer[begin] == 0)
{
++begin;
if (begin == ringbuffer_head)
return "";
}
+
if (begin < ringbuffer_head)
return std::string(ringbuffer + begin, ringbuffer_head - begin);
else
- {
return std::string(ringbuffer + begin, RINGBUFFER_SIZE - begin) + std::string(ringbuffer, ringbuffer_head);
- }
}
static void addToLogbuffer(int level, const std::string &log)
addToLogbuffer(log.c_str(), log.size());
}
-static std::string getConfigFileValue(const char *entry)
+static const std::string getConfigString(const std::string &key, const std::string &defaultValue)
{
- std::string configfile = "/etc/enigma2/settings";
- std::string configvalue;
- if (entry)
- {
- ePythonConfigQuery::getConfigValue(entry, configvalue);
- if (configvalue != "") //we get at least the default value if python is still alive
- {
- return configvalue;
- }
- else // get value from enigma2 settings file
- {
- FILE *f = fopen(configfile.c_str(), "r");
- if (!f)
- {
- return "Error";
- }
- while (1)
- {
- char line[1024];
- if (!fgets(line, 1024, f))
- break;
- if (!strncmp(line, entry, strlen(entry) ))
- {
- if (strlen(line) && line[strlen(line)-1] == '\r')
- line[strlen(line)-1] = 0;
- if (strlen(line) && line[strlen(line)-1] == '\n')
- line[strlen(line)-1] = 0;
- std::string tmp = line;
- int posEqual = tmp.find("=", 0);
- configvalue = tmp.substr(posEqual+1);
- }
- }
- fclose(f);
- return configvalue;
- }
- }
-}
+ std::string value;
-static std::string getFileContent(const char *file)
-{
- std::string filecontent;
+ ePythonConfigQuery::getConfigValue(key.c_str(), value);
+ //we get at least the default value if python is still alive
+ if (!value.empty())
+ return value;
- if (file)
- {
- FILE *f = fopen(file, "r");
- if (!f)
- {
- return "Error";
- }
- while (1)
- {
- char line[1024];
- if (!fgets(line, 1024, f))
+ value = defaultValue;
+
+ // get value from enigma2 settings file
+ std::ifstream in(eEnv::resolve("${sysconfdir}/enigma2/settings").c_str());
+ if (in.good()) {
+ do {
+ std::string line;
+ std::getline(in, line);
+ size_t size = key.size();
+ if (!key.compare(0, size, line) && line[size] == '=') {
+ value = line.substr(size + 1);
break;
- std::string tmp = line;
- std::string password;
- int pwdpos = tmp.find(".password=", 0);
- if( pwdpos != std::string::npos)
- {
- filecontent += tmp.substr(0,pwdpos +10);
- for ( int pos = pwdpos +10; pos < tmp.length()-1; ++pos )
- {
- filecontent += "X";
- }
- filecontent += "\n";
}
- else {
- filecontent += line;
- }
- }
- fclose(f);
+ } while (in.good());
+ in.close();
}
- return filecontent;
-}
-static std::string execCommand(char* cmd) {
- FILE* pipe = popen(cmd, "r");
- if (!pipe)
- return "Error";
- char buffer[STDBUFFER_SIZE];
- std::string result = "";
- while(!feof(pipe))
- {
- if(!fgets(buffer,STDBUFFER_SIZE, pipe))
- break;
- result += buffer;
- }
- pclose(pipe);
- return result;
+ return value;
}
-extern std::string execCommand();
-extern std::string getConfigFileValue();
-extern std::string getFileContent();
-extern std::string getLogBuffer();
+static bool getConfigBool(const std::string &key, bool defaultValue)
+{
+ std::string value = getConfigString(key, defaultValue ? "true" : "false");
+ const char *cvalue = value.c_str();
-#define INFOFILE "/maintainer.info"
+ if (!strcasecmp(cvalue, "true"))
+ return true;
+ if (!strcasecmp(cvalue, "false"))
+ return false;
+
+ return defaultValue;
+}
void bsodFatal(const char *component)
{
- char logfile[128];
- sprintf(logfile, "/media/hdd/enigma2_crash_%u.log", (unsigned int)time(0));
- FILE *f = fopen(logfile, "wb");
+ std::ostringstream os;
+ os << time(0);
+
+ std::string logfile("/media/hdd/enigma2_crash_" + os.str() + ".log");
+
+ FILE *f = fopen(logfile.c_str(), "wb");
std::string lines = getLogBuffer();
/* find python-tracebacks, and extract " File "-strings */
size_t start = 0;
- char crash_emailaddr[256] = CRASH_EMAILADDR;
- char crash_component[256] = "enigma2";
+ std::string crash_emailaddr = CRASH_EMAILADDR;
+ std::string crash_component = "enigma2";
if (component)
- snprintf(crash_component, 256, component);
+ crash_component = component;
else
{
while ((start = lines.find("\n File \"", start)) != std::string::npos)
if (end == std::string::npos)
break;
- if (end - start >= (256 - strlen(INFOFILE)))
- continue;
- char filename[256];
- snprintf(filename, 256, "%s%s", lines.substr(start, end - start).c_str(), INFOFILE);
- FILE *cf = fopen(filename, "r");
- if (cf)
- {
- fgets(crash_emailaddr, sizeof crash_emailaddr, cf);
- if (*crash_emailaddr && crash_emailaddr[strlen(crash_emailaddr)-1] == '\n')
- crash_emailaddr[strlen(crash_emailaddr)-1] = 0;
-
- fgets(crash_component, sizeof crash_component, cf);
- if (*crash_component && crash_component[strlen(crash_component)-1] == '\n')
- crash_component[strlen(crash_component)-1] = 0;
- fclose(cf);
+
+ std::string filename(lines.substr(start, end - start) + INFOFILE);
+ std::ifstream in(filename.c_str());
+ if (in.good()) {
+ std::getline(in, crash_emailaddr) && std::getline(in, crash_component);
+ in.close();
}
}
}
if (f)
{
time_t t = time(0);
- char crashtime[STDBUFFER_SIZE];
- sprintf(crashtime, "%s",ctime(&t));
- if (strlen(crashtime) && crashtime[strlen(crashtime)-1] == '\n')
- crashtime[strlen(crashtime)-1] = 0;
- fprintf(f, "<?xml version=\"1.0\" encoding=\"iso-8859-1\" ?>\n<opendreambox>\n");
- fprintf(f, "\t<enigma2>\n");
- fprintf(f, "\t\t<crashdate>%s</crashdate>\n", crashtime);
-#ifdef ENIGMA2_CHECKOUT_TAG
- fprintf(f, "\t\t<checkouttag>" ENIGMA2_CHECKOUT_TAG "</checkouttag>\n");
-#else
- fprintf(f, "\t\t<compiledate>" __DATE__ "</compiledate>\n");
-#endif
-#ifdef ENIGMA2_CHECKOUT_ROOT
- fprintf(f, "\t\t<checkoutroot>" ENIGMA2_CHECKOUT_ROOT "</checkoutroot>\n");
-#endif
- fprintf(f, "\t\t<contactemail>%s</contactemail>\n", crash_emailaddr);
- fprintf(f, "\t\t<!-- Please email this crashlog to above address -->\n");
- std::string activeSkin = getConfigFileValue("config.skin.primary_skin");
- if (activeSkin != "Error")
- {
- if (activeSkin == "")
- activeSkin = "Default Skin";
- fprintf(f, "\t\t<skin>%s</skin>\n", activeSkin.c_str());
- }
- fprintf(f, "\t</enigma2>\n");
+ struct tm tm;
+ char tm_str[32];
- fprintf(f, "\t<image>\n");
- std::string model = getFileContent("/proc/stb/info/model");
- if (model != "Error")
- {
- char modelname[STDBUFFER_SIZE];
- sprintf(modelname, "%s",model.c_str());
- if (strlen(modelname) && modelname[strlen(modelname)-1] == '\n')
- modelname[strlen(modelname)-1] = 0;
- fprintf(f, "\t\t<dreamboxmodel>%s</dreamboxmodel>\n", modelname);
- }
- std::string kernel = getFileContent("/proc/cmdline");
- if (kernel != "Error")
- {
- char kernelcmd[STDBUFFER_SIZE];
- sprintf(kernelcmd, "%s",kernel.c_str());
- if (strlen(kernelcmd) && kernelcmd[strlen(kernelcmd)-1] == '\n')
- kernelcmd[strlen(kernelcmd)-1] = 0;
- fprintf(f, "\t\t<kernelcmdline>%s</kernelcmdline>\n", kernelcmd);
- }
- std::string sendAnonCrashlog = getConfigFileValue("config.plugins.crashlogautosubmit.sendAnonCrashlog");
- if (sendAnonCrashlog == "False" || sendAnonCrashlog == "false") // defaults to true... default anonymized crashlogs
- {
- std::string ca = getFileContent("/proc/stb/info/ca");
- if (ca != "Error")
- {
- char dreamboxca[STDBUFFER_SIZE];
- sprintf(dreamboxca, "%s",ca.c_str());
- if (strlen(dreamboxca) && dreamboxca[strlen(dreamboxca)-1] == '\n')
- dreamboxca[strlen(dreamboxca)-1] = 0;
- fprintf(f, "\t\t<dreamboxca>\n\t\t<![CDATA[\n%s\n\t\t]]>\n\t\t</dreamboxca>\n", dreamboxca);
- }
- std::string settings = getFileContent("/etc/enigma2/settings");
- if (settings != "Error")
- {
- fprintf(f, "\t\t<enigma2settings>\n\t\t<![CDATA[\n%s\t\t]]>\n\t\t</enigma2settings>\n", settings.c_str());
- }
- }
- std::string addNetwork = getConfigFileValue("config.plugins.crashlogautosubmit.addNetwork");
- if (addNetwork == "True" || addNetwork == "true")
- {
- std::string nwinterfaces = getFileContent("/etc/network/interfaces");
- if (nwinterfaces != "Error")
- {
- fprintf(f, "\t\t<networkinterfaces>\n\t\t<![CDATA[\n%s\t\t]]>\n\t\t</networkinterfaces>\n", nwinterfaces.c_str());
- }
- std::string dns = getFileContent("/etc/resolv.conf");
- if (dns != "Error")
- {
- fprintf(f, "\t\t<dns>\n\t\t<![CDATA[\n%s\t\t]]>\n\t\t</dns>\n", dns.c_str());
- }
- std::string defaultgw = getFileContent("/etc/default_gw");
- if (defaultgw != "Error")
- {
- char gateway[STDBUFFER_SIZE];
- sprintf(gateway, "%s",defaultgw.c_str());
- if (strlen(gateway) && gateway[strlen(gateway)-1] == '\n')
- gateway[strlen(gateway)-1] = 0;
- fprintf(f, "\t\t<defaultgateway>\n\t\t<![CDATA[\n%s\t\t]]>\n\t\t</defaultgateway>\n", gateway);
- }
- }
- std::string addWlan = getConfigFileValue("config.plugins.crashlogautosubmit.addWlan");
- if (addWlan == "True" || addWlan == "true")
- {
- std::string wpasupplicant = getFileContent("/etc/wpa_supplicant.conf");
- if (wpasupplicant != "Error")
- {
- fprintf(f, "\t\t<wpasupplicant>\n\t\t<![CDATA[\n%s\t\t]]>\n\t\t</wpasupplicant>\n", wpasupplicant.c_str());
- }
- }
- std::string imageversion = getFileContent("/etc/image-version");
- if (imageversion != "Error")
- {
- fprintf(f, "\t\t<imageversion>\n\t\t<![CDATA[\n%s\t\t]]>\n\t\t</imageversion>\n", imageversion.c_str());
+ localtime_r(&t, &tm);
+ strftime(tm_str, sizeof(tm_str), "%a %b %_d %T %Y", &tm);
+
+ XmlGenerator xml(f);
+
+ xml.open("opendreambox");
+
+ xml.open("enigma2");
+ xml.string("crashdate", tm_str);
+ xml.string("compiledate", __DATE__);
+ xml.string("contactemail", crash_emailaddr);
+ xml.comment("Please email this crashlog to above address");
+
+ xml.string("skin", getConfigString("config.skin.primary_skin", "Default Skin"));
+ xml.string("sourcedate", enigma2_date);
+ xml.string("branch", enigma2_branch);
+ xml.string("rev", enigma2_rev);
+ xml.string("version", PACKAGE_VERSION);
+ xml.close();
+
+ xml.open("image");
+ xml.stringFromFile("dreamboxmodel", "/proc/stb/info/model");
+ xml.stringFromFile("kernelcmdline", "/proc/cmdline");
+ xml.stringFromFile("nimsockets", "/proc/bus/nim_sockets");
+ if (!getConfigBool("config.plugins.crashlogautosubmit.sendAnonCrashlog", true)) {
+ xml.cDataFromFile("dreamboxca", "/proc/stb/info/ca");
+ xml.cDataFromFile("enigma2settings", eEnv::resolve("${sysconfdir}/enigma2/settings"), ".password=");
}
- std::string imageissue = getFileContent("/etc/issue.net");
- if (imageissue != "Error")
- {
- fprintf(f, "\t\t<imageissue>\n\t\t<![CDATA[\n%s\t\t]]>\n\t\t</imageissue>\n", imageissue.c_str());
+ if (getConfigBool("config.plugins.crashlogautosubmit.addNetwork", false)) {
+ xml.cDataFromFile("networkinterfaces", "/etc/network/interfaces");
+ xml.cDataFromFile("dns", "/etc/resolv.conf");
+ xml.cDataFromFile("defaultgateway", "/etc/default_gw");
}
- fprintf(f, "\t</image>\n");
-
- fprintf(f, "\t<software>\n");
- std::string installedplugins = execCommand("ipkg list_installed | grep enigma2");
- fprintf(f, "\t\t<enigma2software>\n\t\t<![CDATA[\n%s\t\t]]>\n\t\t</enigma2software>\n", installedplugins.c_str());
- std::string dreambox = execCommand("ipkg list_installed | grep dream");
- fprintf(f, "\t\t<dreamboxsoftware>\n\t\t<![CDATA[\n%s\t\t]]>\n\t\t</dreamboxsoftware>\n", dreambox.c_str());
- std::string gstreamer = execCommand("ipkg list_installed | grep gst");
- fprintf(f, "\t\t<gstreamersoftware>\n\t\t<![CDATA[\n%s\t\t]]>\n\t\t</gstreamersoftware>\n", gstreamer.c_str());
- fprintf(f, "\t</software>\n");
-
- fprintf(f, "\t<crashlogs>\n");
- std::string buffer = getLogBuffer();
- fprintf(f, "\t\t<enigma2crashlog>\n\t\t<![CDATA[\n%s\t\t]]>\n\t\t</enigma2crashlog>\n", buffer.c_str());
- std::string pythonmd5 = execCommand("find /usr/lib/enigma2/python/ -name \"*.py\" | xargs md5sum");
- fprintf(f, "\t\t<pythonMD5sum>\n\t\t<![CDATA[\n%s\t\t]]>\n\t\t</pythonMD5sum>\n", pythonmd5.c_str());
- fprintf(f, "\t</crashlogs>\n");
-
- fprintf(f, "\n</opendreambox>\n");
+ if (getConfigBool("config.plugins.crashlogautosubmit.addWlan", false))
+ xml.cDataFromFile("wpasupplicant", "/etc/wpa_supplicant.conf");
+ xml.cDataFromFile("imageversion", "/etc/image-version");
+ xml.cDataFromFile("imageissue", "/etc/issue.net");
+ xml.close();
+
+ xml.open("software");
+ xml.cDataFromCmd("enigma2software", "opkg list_installed | grep enigma2");
+ xml.cDataFromCmd("dreamboxsoftware", "opkg list_installed | grep dream");
+ xml.cDataFromCmd("gstreamersoftware", "opkg list_installed | grep gst");
+ xml.close();
+
+ xml.open("crashlogs");
+ xml.cDataFromString("enigma2crashlog", getLogBuffer());
+ xml.cDataFromCmd("pythonMD5sum", "find " + eEnv::resolve("${libdir}/enigma2/python/") + " -name \"*.py\" | xargs md5sum");
+ xml.close();
+
+ xml.close();
+
fclose(f);
-
}
-
-#ifdef WITH_SDL
- ePtr<gSDLDC> my_dc;
- gSDLDC::getInstance(my_dc);
-#else
- ePtr<gFBDC> my_dc;
- gFBDC::getInstance(my_dc);
-#endif
-
- {
- gPainter p(my_dc);
- p.resetOffset();
- p.resetClip(eRect(ePoint(0, 0), my_dc->size()));
-#ifdef ENIGMA2_CHECKOUT_TAG
- if (ENIGMA2_CHECKOUT_TAG[0] == 'T') /* tagged checkout (release) */
- p.setBackgroundColor(gRGB(0x0000C0));
- else if (ENIGMA2_CHECKOUT_TAG[0] == 'D') /* dated checkout (daily experimental build) */
- {
- srand(time(0));
- int r = rand();
- unsigned int col = 0;
- if (r & 1)
- col |= 0x800000;
- if (r & 2)
- col |= 0x008000;
- if (r & 4)
- col |= 0x0000c0;
- p.setBackgroundColor(gRGB(col));
- }
-#else
- p.setBackgroundColor(gRGB(0x008000));
-#endif
- p.setForegroundColor(gRGB(0xFFFFFF));
-
- ePtr<gFont> font = new gFont("Regular", 20);
- p.setFont(font);
- p.clear();
-
- eRect usable_area = eRect(100, 70, my_dc->size().width() - 150, 100);
-
- char text[512];
- snprintf(text, 512, "We are really sorry. Your Dreambox encountered "
- "a software problem, and needs to be restarted. "
- "Please send the logfile created in /hdd/ to %s.\n"
- "Your Dreambox restarts in 10 seconds!\n"
- "Component: %s",
- crash_emailaddr, crash_component);
-
- p.renderText(usable_area, text, gPainter::RT_WRAP|gPainter::RT_HALIGN_LEFT);
-
- usable_area = eRect(100, 170, my_dc->size().width() - 180, my_dc->size().height() - 20);
+ ePtr<gMainDC> my_dc;
+ gMainDC::getInstance(my_dc);
- int i;
+ gPainter p(my_dc);
+ p.resetOffset();
+ p.resetClip(eRect(ePoint(0, 0), my_dc->size()));
+ p.setBackgroundColor(gRGB(0x008000));
+ p.setForegroundColor(gRGB(0xFFFFFF));
+
+ ePtr<gFont> font = new gFont("Regular", 20);
+ p.setFont(font);
+ p.clear();
+
+ eRect usable_area = eRect(100, 70, my_dc->size().width() - 150, 100);
- size_t start = std::string::npos + 1;
- for (i=0; i<20; ++i)
+ std::string text("We are really sorry. Your Dreambox encountered "
+ "a software problem, and needs to be restarted. "
+ "Please send the logfile created in /hdd/ to " + crash_emailaddr + ".\n"
+ "Your Dreambox restarts in 10 seconds!\n"
+ "Component: " + crash_component);
+
+ p.renderText(usable_area, text.c_str(), gPainter::RT_WRAP|gPainter::RT_HALIGN_LEFT);
+
+ usable_area = eRect(100, 170, my_dc->size().width() - 180, my_dc->size().height() - 20);
+
+ int i;
+
+ start = std::string::npos + 1;
+ for (i=0; i<20; ++i)
+ {
+ start = lines.rfind('\n', start - 1);
+ if (start == std::string::npos)
{
- start = lines.rfind('\n', start - 1);
- if (start == std::string::npos)
- {
- start = 0;
- break;
- }
+ start = 0;
+ break;
}
-
- font = new gFont("Regular", 14);
- p.setFont(font);
-
- p.renderText(usable_area,
- lines.substr(start), gPainter::RT_HALIGN_LEFT);
- sleep(10);
}
+ font = new gFont("Regular", 14);
+ p.setFont(font);
+
+ p.renderText(usable_area,
+ lines.substr(start), gPainter::RT_HALIGN_LEFT);
+ sleep(10);
+
raise(SIGKILL);
}
eDebug(" (end)");
}
}
-#else
-#warning "no oops support!"
-#define NO_OOPS_SUPPORT
#endif
void handleFatalSignal(int signum, siginfo_t *si, void *ctx)
{
+#ifndef NO_OOPS_SUPPORT
ucontext_t *uc = (ucontext_t*)ctx;
-#ifndef NO_OOPS_SUPPORT
oops(uc->uc_mcontext, signum == SIGSEGV || signum == SIGABRT);
#endif
eDebug("-------");
void bsodCatchSignals()
{
struct sigaction act;
- act.sa_handler = SIG_DFL;
act.sa_sigaction = handleFatalSignal;
act.sa_flags = SA_RESTART | SA_SIGINFO;
if (sigemptyset(&act.sa_mask) == -1)
#include <stdio.h>
#include <libsig_comp.h>
#include <lib/base/ebase.h>
+#include <lib/base/eenv.h>
#include <lib/base/eerror.h>
#include <lib/base/init.h>
#include <lib/base/init_num.h>
#include <unistd.h>
#include <lib/gdi/grc.h>
-#include <lib/gdi/gfbdc.h>
+#include <lib/gdi/gmaindc.h>
#include <lib/gdi/font.h>
#include <lib/gui/ewidget.h>
eInit init;
init.setRunlevel(eAutoInitNumbers::main);
- ePtr<gFBDC> my_dc;
- gFBDC::getInstance(my_dc);
+ ePtr<gMainDC> my_dc;
+ gMainDC::getInstance(my_dc);
gPainter p(my_dc);
pal[a | 0x10] = (0x111111 * a) | 0xFF;
p.setPalette(pal, 0, 256);
- fontRenderClass::getInstance()->AddFont(FONTDIR "/arial.ttf", "Regular", 100);
+ fontRenderClass::getInstance()->AddFont(eEnv::resolve("${datadir}/fonts/arial.ttf"), "Regular", 100);
p.resetClip(gRegion(eRect(0, 0, 720, 576)));
#include <unistd.h>
#include <lib/gdi/grc.h>
-#include <lib/gdi/gfbdc.h>
+#include <lib/gdi/gmaindc.h>
#include <lib/gdi/font.h>
#include <lib/gui/ewidget.h>
eInit init;
init.setRunlevel(eAutoInitNumbers::main);
- ePtr<gFBDC> my_dc;
- gFBDC::getInstance(my_dc);
+ ePtr<gMainDC> my_dc;
+ gMainDC::getInstance(my_dc);
gPainter p(my_dc);
pal[a | 0x10] = (0x111111 * a) | 0xFF;
p.setPalette(pal, 0, 256);
- fontRenderClass::getInstance()->AddFont(FONTDIR "/arial.ttf", "Regular", 100);
+ fontRenderClass::getInstance()->AddFont(eEnv::resolve("${datadir}/fonts/arial.ttf"), "Regular", 100);
eWidgetDesktop dsk(eSize(720, 576));
dsk.setDC(my_dc);
#include <lib/driver/rc.h>
#include <lib/base/ioprio.h>
#include <lib/base/ebase.h>
+#include <lib/base/eenv.h>
#include <lib/base/eerror.h>
#include <lib/base/init.h>
#include <lib/base/init_num.h>
-#include <lib/gdi/gfbdc.h>
+#include <lib/gdi/gmaindc.h>
#include <lib/gdi/glcddc.h>
#include <lib/gdi/grc.h>
-#ifdef WITH_SDL
-#include <lib/gdi/sdl.h>
-#endif
#include <lib/gdi/epng.h>
#include <lib/gdi/font.h>
#include <lib/gui/ebutton.h>
#include <lib/python/python.h>
#include "bsod.h"
+#include "version_info.h"
-#ifdef HAVE_GSTREAMER
#include <gst/gst.h>
-#endif
#ifdef OBJECT_DEBUG
int object_total_remaining;
atexit(object_dump);
#endif
-#ifdef HAVE_GSTREAMER
gst_init(&argc, &argv);
-#endif
// set pythonpath if unset
- setenv("PYTHONPATH", LIBDIR "/enigma2/python", 0);
+ setenv("PYTHONPATH", eEnv::resolve("${libdir}/enigma2/python").c_str(), 0);
printf("PYTHONPATH: %s\n", getenv("PYTHONPATH"));
bsodLogInit();
eMain main;
#if 1
-#ifdef WITH_SDL
- ePtr<gSDLDC> my_dc;
- gSDLDC::getInstance(my_dc);
-#else
- ePtr<gFBDC> my_dc;
- gFBDC::getInstance(my_dc);
+ ePtr<gMainDC> my_dc;
+ gMainDC::getInstance(my_dc);
- int double_buffer = my_dc->haveDoubleBuffering();
-#endif
+ //int double_buffer = my_dc->haveDoubleBuffering();
ePtr<gLCDDC> my_lcd_dc;
gLCDDC::getInstance(my_lcd_dc);
dsk_lcd.setDC(my_lcd_dc);
ePtr<gPixmap> m_pm;
- loadPNG(m_pm, DATADIR "/enigma2/skin_default/pal.png");
+ loadPNG(m_pm, eEnv::resolve("${datadir}/enigma2/skin_default/pal.png").c_str());
if (!m_pm)
{
eFatal("pal.png not found!");
ePtr<gPixmap> wait[MAX_SPINNER];
for (i=0; i<MAX_SPINNER; ++i)
{
- char filename[strlen(DATADIR) + 41];
- sprintf(filename, DATADIR "/enigma2/skin_default/spinner/wait%d.png", i + 1);
- loadPNG(wait[i], filename);
+ char filename[64];
+ std::string rfilename;
+ snprintf(filename, sizeof(filename), "${datadir}/enigma2/skin_default/spinner/wait%d.png", i + 1);
+ rfilename = eEnv::resolve(filename);
+ loadPNG(wait[i], rfilename.c_str());
if (!wait[i])
{
if (!i)
- eDebug("failed to load %s! (%m)", filename);
+ eDebug("failed to load %s! (%m)", rfilename.c_str());
else
eDebug("found %d spinner!\n", i);
break;
setIoPrio(IOPRIO_CLASS_BE, 3);
// python.execute("mytest", "__main__");
- python.execFile("/usr/lib/enigma2/python/mytest.py");
+ python.execFile(eEnv::resolve("${libdir}/enigma2/python/mytest.py").c_str());
extern void setFullsize(); // definend in lib/gui/evideo.cpp
setFullsize();
{
gPainter p(my_lcd_dc);
- p.resetClip(eRect(0, 0, 132, 64));
+ p.resetClip(eRect(ePoint(0, 0), my_lcd_dc->size()));
p.clear();
+ p.flush();
}
return exit_code;
return eApp;
}
-void runMainloop()
-{
- eApp->runLoop();
-}
-
void quitMainloop(int exitCode)
{
FILE *f = fopen("/proc/stb/fp/was_timer_wakeup", "w");
eApp->quit(0);
}
-#include "version.h"
+static void sigterm_handler(int num)
+{
+ quitMainloop(128 + num);
+}
+
+void runMainloop()
+{
+ struct sigaction act;
+
+ act.sa_handler = sigterm_handler;
+ act.sa_flags = SA_RESTART;
+
+ if (sigemptyset(&act.sa_mask) == -1)
+ perror("sigemptyset");
+ if (sigaction(SIGTERM, &act, 0) == -1)
+ perror("SIGTERM");
+
+ eApp->runLoop();
+}
const char *getEnigmaVersionString()
{
- std::string date =
-#ifdef ENIGMA2_LAST_CHANGE_DATE
- ENIGMA2_LAST_CHANGE_DATE;
-#else
- __DATE__;
-#endif
- std::string branch =
-#ifdef ENIGMA2_BRANCH
- ENIGMA2_BRANCH;
-#else
- "HEAD";
-#endif
+ std::string date = enigma2_date;
+ std::string branch = enigma2_branch;
return std::string(date + '-' + branch).c_str();
}
--- /dev/null
+#include "version_info.h"
+#include "version.h"
+
+#ifndef ENIGMA2_COMMIT_DATE
+#define ENIGMA2_COMMIT_DATE __DATE__
+#endif
+const char *enigma2_date = ENIGMA2_COMMIT_DATE;
+
+#ifndef ENIGMA2_BRANCH
+#define ENIGMA2_BRANCH "(no branch)"
+#endif
+const char *enigma2_branch = ENIGMA2_BRANCH;
+
+#ifndef ENIGMA2_REV
+#define ENIGMA2_REV ""
+#endif
+const char *enigma2_rev = ENIGMA2_REV;
+
--- /dev/null
+#ifndef __main_version_info_h__
+#define __main_version_info_h__
+
+extern const char *enigma2_date;
+extern const char *enigma2_branch;
+extern const char *enigma2_rev;
+
+#endif
--- /dev/null
+#include <fstream>
+#include <lib/base/eerror.h>
+#include "xmlgenerator.h"
+
+XmlGenerator::XmlGenerator(FILE *f) : m_file(f), m_indent(true), m_level(0)
+{
+ ::fprintf(m_file, "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
+}
+
+XmlGenerator::~XmlGenerator()
+{
+}
+
+void XmlGenerator::vprint(const char *fmt, va_list ap, bool newline)
+{
+ unsigned int i;
+
+ if (m_indent)
+ for (i = 0; i < m_level; i++)
+ ::fprintf(m_file, "\t");
+
+ ::vfprintf(m_file, fmt, ap);
+
+ if (newline)
+ ::fprintf(m_file, "\n");
+}
+
+void XmlGenerator::print(const char *fmt, ...)
+{
+ va_list ap;
+
+ ::va_start(ap, fmt);
+ vprint(fmt, ap, false);
+ ::va_end(ap);
+}
+
+void XmlGenerator::printLn(const char *fmt, ...)
+{
+ va_list ap;
+
+ ::va_start(ap, fmt);
+ vprint(fmt, ap, true);
+ ::va_end(ap);
+}
+
+void XmlGenerator::open(const std::string &tag, bool newline)
+{
+ if (newline) {
+ printLn("<%s>", tag.c_str());
+ } else {
+ print("<%s>", tag.c_str());
+ m_indent = false;
+ }
+
+ m_tags.push(tag);
+ m_level++;
+}
+
+void XmlGenerator::open(const std::string &tag)
+{
+ open(tag, true);
+}
+
+void XmlGenerator::close()
+{
+ ASSERT(!m_tags.empty());
+ ASSERT(m_level > 0);
+ m_level--;
+
+ printLn("</%s>", m_tags.top().c_str());
+ m_indent = true;
+
+ m_tags.pop();
+}
+
+void XmlGenerator::comment(const std::string &str)
+{
+ printLn("<!-- %s -->", str.c_str());
+}
+
+void XmlGenerator::commentFromErrno(const std::string &tag)
+{
+ open(tag);
+ comment(strerror(errno));
+ close();
+}
+
+std::string XmlGenerator::cDataEscape(const std::string &str)
+{
+ const std::string search = "]]>";
+ const std::string replace = "]]]]><![CDATA[>";
+ std::string ret;
+ size_t pos = 0, opos;
+
+ for (;;) {
+ opos = pos;
+ pos = str.find(search, opos);
+ if (pos == std::string::npos)
+ break;
+ ret.append(str, opos, pos - opos);
+ ret.append(replace);
+ pos += search.size();
+ }
+
+ ret.append(str, opos, std::string::npos);
+ return ret;
+}
+
+void XmlGenerator::cDataFromCmd(const std::string &tag, const std::string &cmd)
+{
+ FILE *pipe = ::popen(cmd.c_str(), "re");
+
+ if (pipe == 0) {
+ commentFromErrno(tag);
+ return;
+ }
+
+ std::string result;
+ char *lineptr = NULL;
+ size_t n = 0;
+
+ for (;;) {
+ ssize_t ret = ::getline(&lineptr, &n, pipe);
+ if (ret < 0)
+ break;
+ result.append(lineptr, ret);
+ }
+
+ if (lineptr)
+ ::free(lineptr);
+
+ ::pclose(pipe);
+ cDataFromString(tag, result);
+}
+
+void XmlGenerator::cDataFromFile(const std::string &tag, const std::string &filename, const char *filter)
+{
+ std::ifstream in(filename.c_str());
+ std::string line;
+ std::string content;
+
+ if (!in.good()) {
+ commentFromErrno(tag);
+ return;
+ }
+
+ while (std::getline(in, line))
+ if (!filter || !line.find(filter))
+ content += line + '\n';
+
+ in.close();
+ cDataFromString(tag, content);
+}
+
+void XmlGenerator::cDataFromString(const std::string &tag, const std::string &str)
+{
+ bool indent = false;
+
+ open(tag);
+ printLn("<![CDATA[");
+ std::swap(m_indent, indent);
+ print("%s", cDataEscape(str).c_str());
+ printLn("]]>");
+ std::swap(m_indent, indent);
+ close();
+}
+
+void XmlGenerator::string(const std::string &tag, const std::string &str)
+{
+ open(tag, false);
+ print("%s", str.c_str());
+ close();
+}
+
+void XmlGenerator::stringFromFile(const std::string &tag, const std::string &filename)
+{
+ std::ifstream in(filename.c_str());
+ std::string line;
+
+ if (!in.good()) {
+ commentFromErrno(tag);
+ return;
+ }
+
+ std::getline(in, line);
+ in.close();
+ string(tag, line);
+}
--- /dev/null
+#ifndef _main_xmlgenerator_h__
+#define _main_xmlgenerator_h__
+
+#include <cstdarg>
+#include <cstdio>
+#include <stack>
+#include <string>
+
+class XmlGenerator
+{
+private:
+ FILE *m_file;
+ bool m_indent;
+ unsigned int m_level;
+ std::stack<std::string> m_tags;
+
+ void vprint(const char *fmt, va_list ap, bool newline);
+ void __attribute__ ((__format__(__printf__, 2, 3))) print(const char *fmt, ...);
+ void __attribute__ ((__format__(__printf__, 2, 3))) printLn(const char *fmt, ...);
+
+ void open(const std::string &tag, bool newline);
+ void commentFromErrno(const std::string &tag);
+
+ std::string cDataEscape(const std::string &str);
+
+public:
+ XmlGenerator(FILE *f);
+ ~XmlGenerator();
+
+ void open(const std::string &tag);
+ void close();
+
+ void comment(const std::string &str);
+
+ void cDataFromCmd(const std::string &tag, const std::string &cmd);
+ void cDataFromFile(const std::string &tag, const std::string &filename, const char *filter = 0);
+ void cDataFromString(const std::string &tag, const std::string &str);
+
+ void string(const std::string &tag, const std::string &str);
+ void stringFromFile(const std::string &tag, const std::string &filename);
+};
+
+#endif
profile("PYTHON_START")
from enigma import runMainloop, eDVBDB, eTimer, quitMainloop, \
- getDesktop, ePythonConfigQuery, eAVSwitch, eServiceEvent
+ getDesktop, ePythonConfigQuery, eAVSwitch, eServiceEvent, \
+ eEPGCache
from tools import *
profile("LANGUAGE")
config.misc.useTransponderTime = ConfigYesNo(default=True)
config.misc.startCounter = ConfigInteger(default=0) # number of e2 starts...
config.misc.standbyCounter = NoSave(ConfigInteger(default=0)) # number of standby
+config.misc.epgcache_filename = ConfigText(default = "/hdd/epg.dat")
+
+def setEPGCachePath(configElement):
+ eEPGCache.getInstance().setCacheFile(configElement.value)
+
#demo code for use of standby enter leave callbacks
#def leaveStandby():
self.summary.show()
c.addSummary(self.summary)
+ c.saveKeyboardMode()
c.execBegin()
# when execBegin opened a new dialog, don't bother showing the old one.
self.in_exec = False
self.current_dialog.execEnd()
+ self.current_dialog.restoreKeyboardMode()
self.current_dialog.hide()
if last:
else:
session.open(screen, *args)
+ config.misc.epgcache_filename.addNotifier(setEPGCachePath)
+
runNextScreen(session, screensToRun)
profile("Init:VolumeControl")
--- /dev/null
+*.mo
+*.pot
+++ /dev/null
-ar ca cs da de el en es et fi fr fy hr hu is it lt lv nl no pl pt ru sv sk sl sr tr uk
-DOMAIN=enigma2
-#GETTEXT=./pygettext.py
-GETTEXT=xgettext
+dist_noinst_SCRIPTS = xml2po.py
-#MSGFMT = ./msgfmt.py
-MSGFMT = msgfmt
+LANGS = ar ca cs da de el en es et fi fr fy hr hu is it lt lv nl no pl pt ru sv sk sl sr tr uk
+LANGMO = $(LANGS:=.mo)
+LANGPO = $(LANGS:=.po)
-LANGS := $(shell cat $(srcdir)/LINGUAS)
-LANGPO := $(foreach LANG, $(LANGS),$(LANG).po)
-LANGMO := $(foreach LANG, $(LANGS),$(LANG).mo)
+EXTRA_DIST = $(LANGPO)
-default: enigma2.pot $(LANGMO)
- for lang in $(LANGS); do \
- mkdir -p $$lang/LC_MESSAGES; \
- cp $$lang.mo $$lang/LC_MESSAGES/enigma2.mo; \
- done
-
-rebuild: clean cleanall enigma2.pot $(LANGPO) merge default
+if UPDATE_PO
+# the TRANSLATORS: allows putting translation comments before the to-be-translated line.
+enigma2-py.pot: $(top_srcdir)/*.py $(top_srcdir)/lib/python/*/*.py $(top_srcdir)/lib/python/Plugins/*/*/*.py
+ $(XGETTEXT) -L Python --from-code=UTF-8 --add-comments="TRANSLATORS:" -d @PACKAGE_NAME@ -s -o $@ $^
-merge:
- for lang in $(LANGS); do \
- msgmerge --no-location -s -N -U $$lang.po enigma2.pot; \
- done
+enigma2-xml.pot: $(srcdir)/xml2po.py $(top_srcdir)/data/*.xml $(top_srcdir)/lib/python/Plugins/SystemPlugins/*/*.xml
+ $(PYTHON) $^ > $@
+enigma2.pot: enigma2-py.pot enigma2-xml.pot
+ cat $^ | $(MSGUNIQ) --no-location -o $@ -
-# the TRANSLATORS: allows putting translation comments before the to-be-translated line.
-enigma2.pot:
- $(GETTEXT) -L python --add-comments="TRANSLATORS:" -d enigma2 -s -o enigma2.pot ../lib/python/Screens/*.py ../lib/python/Components/*.py \
- ../lib/python/Tools/*.py \
- ../*.py \
- ../lib/python/Plugins/*/*/*.py
-
- ./xml2po.py ../data/ >> enigma2.pot
- ./xml2po.py ../lib/python/Plugins/SystemPlugins/Videomode/ >> enigma2.pot
- ./xml2po.py ../lib/python/Plugins/SystemPlugins/SoftwareManager/ >> enigma2.pot
- ./xml2po.py ../lib/python/Plugins/SystemPlugins/CleanupWizard/ >> enigma2.pot
- ./xml2po.py ../lib/python/Plugins/SystemPlugins/NetworkWizard/ >> enigma2.pot
- msguniq --no-location -o enigma2uniq.pot enigma2.pot
- $(RM) enigma2.pot
- mv enigma2uniq.pot enigma2.pot
-
-%.mo: %.po
- $(MSGFMT) -o $@ $<
+%.po: enigma2.pot
+ if [ -f $@ ]; then \
+ $(MSGMERGE) --backup=none --no-location -s -N -U $@ $< && touch $@; \
+ else \
+ $(MSGINIT) -l $@ -o $@ -i $< --no-translator; \
+ fi
+endif
-%.po:
- msginit -l $@ -o $@ -i enigma2.pot --no-translator
+.po.mo:
+ $(MSGFMT) -o $@ $<
-CLEANFILES = $(foreach LANG, $(LANGS),$(LANG).mo)
+BUILT_SOURCES = $(LANGMO)
+CLEANFILES = $(LANGMO) enigma2-py.pot enigma2-xml.pot enigma2.pot
-cleanall:
- $(RM) enigma2.pot
+dist-hook: $(LANGPO)
-clean-local:
- $(RM) -r $(LANGS)
+install-data-local: $(LANGMO)
+ for lang in $(LANGS); do \
+ $(mkinstalldirs) $(DESTDIR)$(pkgdatadir)/po/$$lang/LC_MESSAGES; \
+ $(INSTALL_DATA) $$lang.mo $(DESTDIR)$(pkgdatadir)/po/$$lang/LC_MESSAGES/@PACKAGE_NAME@.mo; \
+ done
-install-data-am: default
+uninstall-local:
for lang in $(LANGS); do \
- mkdir -p $(DESTDIR)$(pkgdatadir)/po/$$lang/LC_MESSAGES; \
- cp $$lang.mo $(DESTDIR)$(pkgdatadir)/po/$$lang/LC_MESSAGES/$(DOMAIN).mo; \
+ $(RM) $(DESTDIR)$(pkgdatadir)/po/$$lang/LC_MESSAGES/@PACKAGE_NAME@.mo; \
done
+++ /dev/null
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#: ../enigma2_experimental/lib/python/Screens/About.py:63
-#: ../enigma2_master/lib/python/Screens/About.py:63
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-11-01 13:01+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:148
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:148
-msgid ""
-"\n"
-"Advanced options and settings."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:233
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:560
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1171
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1688
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:233
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:560
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1171
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1687
-msgid ""
-"\n"
-"After pressing OK, please wait!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:131
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:131
-msgid ""
-"\n"
-"Backup your Dreambox settings."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:155
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:155
-msgid ""
-"\n"
-"Edit the upgrade source address."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:128
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:128
-msgid ""
-"\n"
-"Manage extensions or plugins for your Dreambox"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:129
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:129
-msgid ""
-"\n"
-"Online update of your Dreambox software."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:121
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:121
-msgid ""
-"\n"
-"Press OK on your remote control to continue."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:132
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:132
-msgid ""
-"\n"
-"Restore your Dreambox settings."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:130
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:130
-msgid ""
-"\n"
-"Restore your Dreambox with a new firmware."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:150
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:150
-msgid ""
-"\n"
-"Restore your backups by date."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:133
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:133
-msgid ""
-"\n"
-"Scan for local extensions and install them."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:151
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:151
-msgid ""
-"\n"
-"Select your backup device.\n"
-"Current device: "
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:256
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:256
-msgid ""
-"\n"
-"System will restart after the restore!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:154
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:154
-msgid ""
-"\n"
-"View, install and remove available or installed packages."
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/AC3setup.py:65
-msgid " "
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:314
-msgid " Results"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:876
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:876
-msgid " extensions."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InputDeviceSetup.py:225
-#: ../enigma2_master/lib/python/Screens/InputDeviceSetup.py:225
-msgid " ms"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:676
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:688
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:676
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:688
-msgid " packages selected."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:204
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:209
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:630
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:674
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:685
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:204
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:209
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:630
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:674
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:685
-msgid " updates available."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:359
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:359
-msgid " wireless networks found!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1280
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1281
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1430
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1432
-#: ../enigma2_master/lib/python/Components/NimManager.py:1280
-#: ../enigma2_master/lib/python/Components/NimManager.py:1281
-#: ../enigma2_master/lib/python/Components/NimManager.py:1430
-#: ../enigma2_master/lib/python/Components/NimManager.py:1432
-msgid "%H:%M"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Standby.py:125
-#: ../enigma2_master/lib/python/Screens/Standby.py:125
-#, python-format
-msgid "%d jobs are running in the background!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/EventView.py:150
-#: ../enigma2_master/lib/python/Screens/EventView.py:150
-#, python-format
-msgid "%d min"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/ServiceScan.py:33
-#: ../enigma2_experimental/lib/python/Components/ServiceScan.py:96
-#: ../enigma2_experimental/lib/python/Components/ServiceScan.py:98
-#: ../enigma2_master/lib/python/Components/ServiceScan.py:33
-#: ../enigma2_master/lib/python/Components/ServiceScan.py:96
-#: ../enigma2_master/lib/python/Components/ServiceScan.py:98
-#, python-format
-msgid "%d services found!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimeDateInput.py:40
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:111
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:122
-#: ../enigma2_master/lib/python/Screens/TimeDateInput.py:40
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:111
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:122
-msgid "%d.%B %Y"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/AC3main.py:58
-#: ../enigma2_plugins/ac3lipsync/src/AC3main.py:140
-#: ../enigma2_plugins/ac3lipsync/src/AC3main.py:227
-#: ../enigma2_plugins/ac3lipsync/src/AC3main.py:231
-#: ../enigma2_plugins/ac3lipsync/src/AC3main.py:232
-#, python-format
-msgid "%i ms"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/About.py:38
-#: ../enigma2_master/lib/python/Screens/About.py:38
-#, python-format
-msgid ""
-"%s\n"
-"(%s, %d MB free)"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/PluginBrowser.py:54
-#: ../enigma2_master/lib/python/Screens/PluginBrowser.py:54
-#, python-format
-msgid "%s (%s)\n"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/TimerList.py:37
-#: ../enigma2_experimental/lib/python/Components/TimerList.py:39
-#: ../enigma2_experimental/lib/python/Components/TimerList.py:45
-#: ../enigma2_experimental/lib/python/Components/TimerList.py:47
-#: ../enigma2_master/lib/python/Components/TimerList.py:37
-#: ../enigma2_master/lib/python/Components/TimerList.py:39
-#: ../enigma2_master/lib/python/Components/TimerList.py:45
-#: ../enigma2_master/lib/python/Components/TimerList.py:47
-msgid "(ZAP)"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:585
-#: ../enigma2_master/lib/python/Components/NimManager.py:585
-msgid "(empty)"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:347
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:347
-msgid "(show optional DVD audio menu)"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:65
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:65
-msgid "* Only available if more than one interface is active."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:357
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:357
-msgid "1 wireless network found!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1175
-#: ../enigma2_master/lib/python/Components/NimManager.py:1175
-msgid "1.0"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1175
-#: ../enigma2_master/lib/python/Components/NimManager.py:1175
-msgid "1.1"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1174
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1175
-#: ../enigma2_master/lib/python/Components/NimManager.py:1174
-#: ../enigma2_master/lib/python/Components/NimManager.py:1175
-msgid "1.2"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1171
-#: ../enigma2_master/lib/python/Components/NimManager.py:1171
-msgid "13 V"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/AVSwitch.py:91
-#: ../enigma2_master/lib/python/Components/AVSwitch.py:91
-msgid "16:10"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/AVSwitch.py:83
-#: ../enigma2_master/lib/python/Components/AVSwitch.py:83
-msgid "16:10 Letterbox"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/AVSwitch.py:84
-#: ../enigma2_master/lib/python/Components/AVSwitch.py:84
-msgid "16:10 PanScan"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/AVSwitch.py:81
-#: ../enigma2_experimental/lib/python/Components/AVSwitch.py:90
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/DVDTitle.py:15
-#: ../enigma2_master/lib/python/Components/AVSwitch.py:81
-#: ../enigma2_master/lib/python/Components/AVSwitch.py:90
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/DVDTitle.py:15
-msgid "16:9"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/AVSwitch.py:85
-#: ../enigma2_master/lib/python/Components/AVSwitch.py:85
-msgid "16:9 Letterbox"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/AVSwitch.py:82
-#: ../enigma2_master/lib/python/Components/AVSwitch.py:82
-msgid "16:9 always"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1171
-#: ../enigma2_master/lib/python/Components/NimManager.py:1171
-msgid "18 V"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/ParentalControl.py:29
-#: ../enigma2_experimental/lib/python/Components/ParentalControl.py:30
-#: ../enigma2_master/lib/python/Components/ParentalControl.py:29
-#: ../enigma2_master/lib/python/Components/ParentalControl.py:30
-msgid "30 minutes"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/AVSwitch.py:89
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/DVDTitle.py:15
-#: ../enigma2_master/lib/python/Components/AVSwitch.py:89
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/DVDTitle.py:15
-msgid "4:3"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/AVSwitch.py:79
-#: ../enigma2_master/lib/python/Components/AVSwitch.py:79
-msgid "4:3 Letterbox"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/AVSwitch.py:80
-#: ../enigma2_master/lib/python/Components/AVSwitch.py:80
-msgid "4:3 PanScan"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/ParentalControl.py:29
-#: ../enigma2_experimental/lib/python/Components/ParentalControl.py:30
-#: ../enigma2_master/lib/python/Components/ParentalControl.py:29
-#: ../enigma2_master/lib/python/Components/ParentalControl.py:30
-msgid "5 minutes"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/ParentalControl.py:29
-#: ../enigma2_experimental/lib/python/Components/ParentalControl.py:30
-#: ../enigma2_master/lib/python/Components/ParentalControl.py:29
-#: ../enigma2_master/lib/python/Components/ParentalControl.py:30
-msgid "60 minutes"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/RecordPaths.py:54
-#: ../enigma2_master/lib/python/Screens/RecordPaths.py:54
-msgid "<Current movielist location>"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/RecordPaths.py:54
-#: ../enigma2_master/lib/python/Screens/RecordPaths.py:54
-msgid "<Default movie location>"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/RecordPaths.py:54
-#: ../enigma2_master/lib/python/Screens/RecordPaths.py:54
-msgid "<Last timer location>"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/AudioSelection.py:90
-#: ../enigma2_experimental/lib/python/Screens/AudioSelection.py:105
-#: ../enigma2_experimental/lib/python/Screens/AudioSelection.py:137
-#: ../enigma2_experimental/lib/python/Components/TimerList.py:64
-#: ../enigma2_master/lib/python/Screens/AudioSelection.py:90
-#: ../enigma2_master/lib/python/Screens/AudioSelection.py:105
-#: ../enigma2_master/lib/python/Screens/AudioSelection.py:137
-#: ../enigma2_master/lib/python/Components/TimerList.py:64
-msgid "<unknown>"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Menu.py:155
-#: ../enigma2_experimental/lib/python/Screens/Menu.py:158
-#: ../enigma2_master/lib/python/Screens/Menu.py:155
-#: ../enigma2_master/lib/python/Screens/Menu.py:158
-msgid "??"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1173
-#: ../enigma2_master/lib/python/Components/NimManager.py:1173
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "A"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Ipkg.py:115
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1406
-#: ../enigma2_master/lib/python/Screens/Ipkg.py:115
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1406
-#, python-format
-msgid ""
-"A configuration file (%s) was modified since Installation.\n"
-"Do you want to keep your version?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/DemoPlugins/TPMDemo/plugin.py:85
-#: ../enigma2_experimental/lib/python/Plugins/DemoPlugins/TPMDemo/plugin.py:86
-#: ../enigma2_master/lib/python/Plugins/DemoPlugins/TPMDemo/plugin.py:85
-#: ../enigma2_master/lib/python/Plugins/DemoPlugins/TPMDemo/plugin.py:86
-msgid "A demo plugin for TPM usage."
-msgstr ""
-
-#: ../enigma2_experimental/RecordTimer.py:300
-#: ../enigma2_master/RecordTimer.py:300
-msgid ""
-"A finished record timer wants to set your\n"
-"Dreambox to standby. Do that now?"
-msgstr ""
-
-#: ../enigma2_experimental/RecordTimer.py:306
-#: ../enigma2_master/RecordTimer.py:306
-msgid ""
-"A finished record timer wants to shut down\n"
-"your Dreambox. Shutdown now?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/GraphMultiEPG/plugin.py:96
-#: ../enigma2_master/lib/python/Plugins/Extensions/GraphMultiEPG/plugin.py:96
-msgid "A graphical EPG for all services of an specific bouquet"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountEdit.py:267
-msgid ""
-"A mount entry with this name already exists!\n"
-"Update existing entry and continue?\n"
-msgstr ""
-
-#: ../enigma2_experimental/RecordTimer.py:381
-#: ../enigma2_master/RecordTimer.py:381
-#, python-format
-msgid ""
-"A record has been started:\n"
-"%s"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1648
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1648
-msgid ""
-"A recording is currently running.\n"
-"What do you want to do?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:589
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:589
-msgid ""
-"A recording is currently running. Please stop the recording before trying to "
-"configure the positioner."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:264
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:264
-msgid ""
-"A recording is currently running. Please stop the recording before trying to "
-"start the satfinder."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Task.py:389
-#: ../enigma2_master/lib/python/Components/Task.py:389
-#, python-format
-msgid "A required tool (%s) was not found."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:212
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:212
-msgid "A search for available updates is currently in progress."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:582
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:582
-msgid ""
-"A second configured interface has been found.\n"
-"\n"
-"Do you want to disable the second network interface?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TaskView.py:128
-#: ../enigma2_experimental/SleepTimer.py:34
-#: ../enigma2_master/lib/python/Screens/TaskView.py:128
-#: ../enigma2_master/SleepTimer.py:34
-msgid ""
-"A sleep timer wants to set your\n"
-"Dreambox to standby. Do that now?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TaskView.py:125
-#: ../enigma2_experimental/SleepTimer.py:29
-#: ../enigma2_master/lib/python/Screens/TaskView.py:125
-#: ../enigma2_master/SleepTimer.py:29
-msgid ""
-"A sleep timer wants to shut down\n"
-"your Dreambox. Shutdown now?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1076
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1076
-msgid "A small overview of the available icon states and actions."
-msgstr ""
-
-#: ../enigma2_experimental/RecordTimer.py:250
-#: ../enigma2_master/RecordTimer.py:250
-msgid ""
-"A timer failed to record!\n"
-"Disable TV and try again?\n"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:18
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:221
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:18
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:221
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "A/V Settings"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1149
-#: ../enigma2_master/lib/python/Components/NimManager.py:1149
-msgid "AA"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1149
-#: ../enigma2_master/lib/python/Components/NimManager.py:1149
-msgid "AB"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:98
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:98
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "AC3 default"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/AudioSelection.py:75
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:100
-#: ../enigma2_master/lib/python/Screens/AudioSelection.py:75
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:100
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "AC3 downmix"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/Modem/plugin.py:270
-#: ../enigma2_master/lib/python/Plugins/Extensions/Modem/plugin.py:270
-msgid "Abort"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SkinSelector/plugin.py:81
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SkinSelector/plugin.py:81
-msgid "About..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:258
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:76
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:258
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:76
-msgid "Accesspoint:"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/SleepTimerEdit.py:76
-#: ../enigma2_experimental/lib/python/Screens/SleepTimerEdit.py:78
-#: ../enigma2_master/lib/python/Screens/SleepTimerEdit.py:76
-#: ../enigma2_master/lib/python/Screens/SleepTimerEdit.py:78
-msgid "Action:"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:137
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1432
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:137
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1432
-msgid "Activate Picture in Picture"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountEdit.py:176
-msgid "Active"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountView.py:61
-msgid ""
-"Active/\n"
-"Inactive"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:885
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:885
-msgid "Adapter settings"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:240
-#: ../enigma2_experimental/lib/python/Screens/TimerEdit.py:44
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:187
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:240
-#: ../enigma2_master/lib/python/Screens/TimerEdit.py:44
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:187
-#: ../enigma2_plugins/autotimer/src/AutoTimerOverview.py:76
-msgid "Add"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/LocationBox.py:199
-#: ../enigma2_master/lib/python/Screens/LocationBox.py:199
-msgid "Add Bookmark"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:126
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:126
-msgid "Add WLAN configuration?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/CutListEditor/plugin.py:178
-#: ../enigma2_master/lib/python/Plugins/Extensions/CutListEditor/plugin.py:178
-msgid "Add a mark"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountManager.py:73
-msgid "Add a new NFS or CIFS mount point to your Dreambox."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:62
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:193
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:62
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:193
-msgid "Add a new title"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:125
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:125
-msgid "Add network configuration?"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerOverview.py:103
-msgid "Add new AutoTimer"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountManager.py:73
-msgid "Add new network mount point"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/EpgSelection.py:75
-#: ../enigma2_experimental/lib/python/Screens/EpgSelection.py:222
-#: ../enigma2_experimental/lib/python/Screens/EpgSelection.py:257
-#: ../enigma2_experimental/lib/python/Screens/EpgSelection.py:373
-#: ../enigma2_experimental/lib/python/Screens/EventView.py:40
-#: ../enigma2_experimental/lib/python/Screens/EventView.py:71
-#: ../enigma2_experimental/lib/python/Screens/EventView.py:107
-#: ../enigma2_experimental/lib/python/Screens/EventView.py:167
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/GraphMultiEPG/GraphMultiEpg.py:576
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/GraphMultiEPG/GraphMultiEpg.py:611
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/GraphMultiEPG/GraphMultiEpg.py:662
-#: ../enigma2_master/lib/python/Screens/EpgSelection.py:75
-#: ../enigma2_master/lib/python/Screens/EpgSelection.py:222
-#: ../enigma2_master/lib/python/Screens/EpgSelection.py:257
-#: ../enigma2_master/lib/python/Screens/EpgSelection.py:373
-#: ../enigma2_master/lib/python/Screens/EventView.py:40
-#: ../enigma2_master/lib/python/Screens/EventView.py:71
-#: ../enigma2_master/lib/python/Screens/EventView.py:107
-#: ../enigma2_master/lib/python/Screens/EventView.py:167
-#: ../enigma2_master/lib/python/Plugins/Extensions/GraphMultiEPG/GraphMultiEpg.py:576
-#: ../enigma2_master/lib/python/Plugins/Extensions/GraphMultiEPG/GraphMultiEpg.py:611
-#: ../enigma2_master/lib/python/Plugins/Extensions/GraphMultiEPG/GraphMultiEpg.py:662
-msgid "Add timer"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerSettings.py:44
-msgid "Add timer as disabled on conflict"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:62
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:80
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:62
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:80
-msgid "Add title"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1760
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1760
-msgid "Add to bouquet"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1762
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1762
-msgid "Add to favourites"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:464
-msgid "Add zap timer instead of record timer?"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:1103
-#: ../enigma2_plugins/mytube/src/plugin.py:1341
-msgid "Added: "
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:179
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:179
-msgid ""
-"Adds enigma2 settings and dreambox model informations like SN, rev... if "
-"enabled."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:182
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:182
-msgid "Adds network configuration if enabled."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:185
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:185
-msgid "Adds wlan configuration if enabled."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoTune/VideoFinetune.py:205
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoTune/VideoFinetune.py:205
-msgid ""
-"Adjust the color settings so that all the color shades are distinguishable, "
-"but appear as saturated as possible. If you are happy with the result, press "
-"OK to close the video fine-tuning, or use the number keys to select other "
-"test screens."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:88
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:148
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:88
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:148
-msgid "Advanced Options"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:163
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:163
-msgid "Advanced Software"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:167
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:167
-msgid "Advanced Software Plugin"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:397
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:397
-msgid "Advanced Video Enhancement Setup"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:230
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:230
-msgid "Advanced Video Setup"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:150
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:150
-msgid "Advanced restore"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TaskView.py:59
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:195
-#: ../enigma2_master/lib/python/Screens/TaskView.py:59
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:195
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:528
-#: ../enigma2_plugins/autotimer/src/AutoTimerImporter.py:173
-msgid "After event"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:129
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:129
-msgid "Album"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:708
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:850
-#: ../enigma2_experimental/lib/python/Screens/MovieSelection.py:207
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:526
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:708
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:850
-#: ../enigma2_master/lib/python/Screens/MovieSelection.py:207
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:526
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:180
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:200
-#: ../enigma2_plugins/mytube/src/plugin.py:71
-#: ../enigma2_plugins/mytube/src/plugin.py:91
-msgid "All"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1168
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1169
-#: ../enigma2_master/lib/python/Components/NimManager.py:1168
-#: ../enigma2_master/lib/python/Components/NimManager.py:1169
-msgid "All Satellites"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:168
-#: ../enigma2_plugins/mytube/src/plugin.py:59
-msgid "All Time"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/plugin.py:22
-msgid "All non-repeating timers"
-msgstr ""
-
-#: ../enigma2_plugins/webinterface/src/WebIfConfig.py:62
-msgid "Allow zapping via Webinterface"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:53
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:53
-msgid "Always ask"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:21
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:21
-msgid "Always ask before sending"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:546
-msgid "Ammount of recordings left"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/LocationBox.py:389
-#: ../enigma2_master/lib/python/Screens/LocationBox.py:389
-msgid "An empty filename is illegal."
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:480
-msgid "An error occured."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Task.py:347
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/DVDToolbox.py:180
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/Process.py:300
-#: ../enigma2_master/lib/python/Components/Task.py:347
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/DVDToolbox.py:180
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/Process.py:300
-msgid "An unknown error occured!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:124
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:124
-msgid "Anonymize crashlog?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Language.py:18
-#: ../enigma2_master/lib/python/Components/Language.py:18
-msgid "Arabic"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:568
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:568
-msgid ""
-"Are you sure you want to activate this network configuration?\n"
-"\n"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:271
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:271
-msgid ""
-"Are you sure you want to delete\n"
-"following backup:\n"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Wizard.py:300
-#: ../enigma2_master/lib/python/Screens/Wizard.py:300
-msgid "Are you sure you want to exit this wizard?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:815
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:815
-msgid ""
-"Are you sure you want to restart your network interfaces?\n"
-"\n"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:256
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:256
-msgid ""
-"Are you sure you want to restore\n"
-"following backup:\n"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:242
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:242
-msgid ""
-"Are you sure you want to restore your Enigma2 backup?\n"
-"Enigma2 will restart after the restore"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountEdit.py:269
-msgid ""
-"Are you sure you want to save this network mount?\n"
-"\n"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:125
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:125
-msgid "Artist"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:228
-#: ../enigma2_plugins/mytube/src/plugin.py:119
-msgid "Ascending"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/SleepTimerEdit.py:90
-#: ../enigma2_experimental/lib/python/Screens/SleepTimerEdit.py:92
-#: ../enigma2_master/lib/python/Screens/SleepTimerEdit.py:90
-#: ../enigma2_master/lib/python/Screens/SleepTimerEdit.py:92
-msgid "Ask before shutdown:"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:41
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:43
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:45
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:41
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:43
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:45
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:249
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:252
-#: ../enigma2_plugins/mytube/src/plugin.py:139
-#: ../enigma2_plugins/mytube/src/plugin.py:142
-msgid "Ask user"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py:90
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:78
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py:90
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:78
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Aspect Ratio"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Network.py:348
-#: ../enigma2_master/lib/python/Components/Network.py:348
-msgid "Atheros"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1672
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1672
-msgid "Audio Options..."
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/plugin.py:36
-msgid "Audio Sync"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/plugin.py:35
-msgid "Audio Sync Setup"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:201
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:208
-#: ../enigma2_plugins/mytube/src/plugin.py:92
-#: ../enigma2_plugins/mytube/src/plugin.py:99
-msgid "Australia"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1211
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1211
-#: ../enigma2_plugins/mytube/src/plugin.py:1338
-msgid "Author: "
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:151
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:151
-msgid "Authoring mode"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Ci.py:25
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:572
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:580
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:607
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:614
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:622
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:637
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:650
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:657
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:662
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:666
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:672
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:678
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1146
-#: ../enigma2_experimental/lib/python/Tools/Transponder.py:10
-#: ../enigma2_experimental/lib/python/Tools/Transponder.py:15
-#: ../enigma2_experimental/lib/python/Tools/Transponder.py:26
-#: ../enigma2_experimental/lib/python/Tools/Transponder.py:44
-#: ../enigma2_experimental/lib/python/Tools/Transponder.py:50
-#: ../enigma2_experimental/lib/python/Tools/Transponder.py:57
-#: ../enigma2_experimental/lib/python/Tools/Transponder.py:62
-#: ../enigma2_experimental/lib/python/Tools/Transponder.py:72
-#: ../enigma2_experimental/lib/python/Tools/Transponder.py:77
-#: ../enigma2_experimental/lib/python/Tools/Transponder.py:84
-#: ../enigma2_experimental/lib/python/Tools/Transponder.py:91
-#: ../enigma2_experimental/lib/python/Tools/Transponder.py:96
-#: ../enigma2_experimental/lib/python/Tools/Transponder.py:100
-#: ../enigma2_experimental/lib/python/Tools/Transponder.py:106
-#: ../enigma2_experimental/lib/python/Tools/Transponder.py:112
-#: ../enigma2_master/lib/python/Screens/Ci.py:25
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:572
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:580
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:607
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:614
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:622
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:637
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:650
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:657
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:662
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:666
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:672
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:678
-#: ../enigma2_master/lib/python/Components/NimManager.py:1146
-#: ../enigma2_master/lib/python/Tools/Transponder.py:10
-#: ../enigma2_master/lib/python/Tools/Transponder.py:15
-#: ../enigma2_master/lib/python/Tools/Transponder.py:26
-#: ../enigma2_master/lib/python/Tools/Transponder.py:44
-#: ../enigma2_master/lib/python/Tools/Transponder.py:50
-#: ../enigma2_master/lib/python/Tools/Transponder.py:57
-#: ../enigma2_master/lib/python/Tools/Transponder.py:62
-#: ../enigma2_master/lib/python/Tools/Transponder.py:72
-#: ../enigma2_master/lib/python/Tools/Transponder.py:77
-#: ../enigma2_master/lib/python/Tools/Transponder.py:84
-#: ../enigma2_master/lib/python/Tools/Transponder.py:91
-#: ../enigma2_master/lib/python/Tools/Transponder.py:96
-#: ../enigma2_master/lib/python/Tools/Transponder.py:100
-#: ../enigma2_master/lib/python/Tools/Transponder.py:106
-#: ../enigma2_master/lib/python/Tools/Transponder.py:112
-msgid "Auto"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py:96
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py:96
-msgid "Auto chapter split every ? minutes (0=never)"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:97
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:97
-msgid "Auto flesh"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:95
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:95
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Auto scart switching"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:373
-msgid "AutoTimer Editor"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:790
-msgid "AutoTimer Filters"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:994
-msgid "AutoTimer Services"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerSettings.py:33
-msgid "AutoTimer Settings"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerOverview.py:110
-msgid "AutoTimer overview"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/AVSwitch.py:92
-#: ../enigma2_master/lib/python/Components/AVSwitch.py:92
-msgid "Automatic"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:933
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:933
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Automatic Scan"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:182
-#: ../enigma2_plugins/mytube/src/plugin.py:73
-msgid "Autos & Vehicles"
-msgstr ""
-
-#: ../enigma2_plugins/webinterface/src/WebIfConfig.py:63
-msgid "Autowrite timer"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:117
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:117
-msgid "Available format variables"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1173
-#: ../enigma2_master/lib/python/Components/NimManager.py:1173
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "B"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1149
-#: ../enigma2_master/lib/python/Components/NimManager.py:1149
-msgid "BA"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1149
-#: ../enigma2_master/lib/python/Components/NimManager.py:1149
-msgid "BB"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1270
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1275
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1280
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1285
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1290
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:507
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:658
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1270
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1275
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1280
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1285
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1290
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:507
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:658
-msgid "Back"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TaskView.py:32
-#: ../enigma2_master/lib/python/Screens/TaskView.py:32
-msgid "Background"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:305
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:305
-msgid "Backup done."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:307
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:307
-msgid "Backup failed."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:66
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:81
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:83
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:66
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:81
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:83
-msgid "Backup is running..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:131
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:131
-msgid "Backup system settings"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1172
-#: ../enigma2_master/lib/python/Components/NimManager.py:1172
-msgid "Band"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:411
-#: ../enigma2_experimental/lib/python/Screens/ServiceInfo.py:140
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:411
-#: ../enigma2_master/lib/python/Screens/ServiceInfo.py:140
-msgid "Bandwidth"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:537
-msgid "Begin of \"after event\" timespan"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:509
-#: ../enigma2_plugins/autotimer/src/AutoTimerWizard.py:78
-msgid "Begin of timespan"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:50
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:344
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:117
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py:97
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:50
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:344
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:117
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py:97
-msgid "Begin time"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:262
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:80
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:262
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:80
-msgid "Bitrate:"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:101
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:101
-msgid "Block noise reduction"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:99
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:99
-msgid "Blue boost"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/LocationBox.py:71
-#: ../enigma2_master/lib/python/Screens/LocationBox.py:71
-msgid "Bookmarks"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:1005
-msgid "Bouquets"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:202
-#: ../enigma2_plugins/mytube/src/plugin.py:93
-msgid "Brazil"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:92
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoTune/VideoFinetune.py:85
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:92
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoTune/VideoFinetune.py:85
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Brightness"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/NetworkBrowser.py:157
-msgid "Browse network neighbourhood"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/DVDProject.py:35
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/Process.py:894
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/Process.py:935
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/Process.py:956
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:66
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:122
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/DVDProject.py:35
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/Process.py:894
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/Process.py:935
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/Process.py:956
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:66
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:122
-msgid "Burn DVD"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:125
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:125
-msgid "Burn existing image to DVD"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/plugin.py:15
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/plugin.py:15
-msgid "Burn to DVD"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/HarddiskSetup.py:49
-#: ../enigma2_master/lib/python/Screens/HarddiskSetup.py:49
-msgid "Bus: "
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1078
-#: ../enigma2_master/lib/python/Components/NimManager.py:1078
-msgid "C-Band"
-msgstr ""
-
-#: ../enigma2_plugins/cdinfo/src/plugin.py:73
-msgid "CDInfo"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:71
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:166
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:71
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:166
-msgid "CI assignment"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountEdit.py:98
-msgid "CIFS share"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/AVSwitch.py:71
-#: ../enigma2_master/lib/python/Components/AVSwitch.py:71
-msgid "CVBS"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:965
-#: ../enigma2_experimental/lib/python/Components/ServiceScan.py:69
-#: ../enigma2_experimental/lib/python/Tools/Transponder.py:48
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:476
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:965
-#: ../enigma2_master/lib/python/Components/ServiceScan.py:69
-#: ../enigma2_master/lib/python/Tools/Transponder.py:48
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:476
-msgid "Cable"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:179
-#: ../enigma2_master/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:179
-msgid "Cache Thumbnails"
-msgstr ""
-
-#: ../enigma2_plugins/genuinedreambox/src/plugin.py:108
-msgid "Can't connect to server. Please check your network!"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:203
-#: ../enigma2_plugins/mytube/src/plugin.py:94
-msgid "Canada"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InputDeviceSetup.py:171
-#: ../enigma2_experimental/lib/python/Screens/LocationBox.py:94
-#: ../enigma2_experimental/lib/python/Screens/LocationBox.py:128
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:239
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:375
-#: ../enigma2_experimental/lib/python/Screens/ParentalControlSetup.py:57
-#: ../enigma2_experimental/lib/python/Screens/ParentalControlSetup.py:334
-#: ../enigma2_experimental/lib/python/Screens/RecordPaths.py:24
-#: ../enigma2_experimental/lib/python/Screens/Setup.py:84
-#: ../enigma2_experimental/lib/python/Screens/TimeDateInput.py:14
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:31
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:60
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:108
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py:41
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:52
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/settings.py:27
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/settings.py:69
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:164
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:367
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/DiseqcTester/plugin.py:582
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:293
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:561
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:717
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:115
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:205
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:351
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:977
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1552
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/TempFanControl/plugin.py:102
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:47
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:302
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:36
-#: ../enigma2_master/lib/python/Screens/InputDeviceSetup.py:171
-#: ../enigma2_master/lib/python/Screens/LocationBox.py:94
-#: ../enigma2_master/lib/python/Screens/LocationBox.py:128
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:239
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:375
-#: ../enigma2_master/lib/python/Screens/ParentalControlSetup.py:57
-#: ../enigma2_master/lib/python/Screens/ParentalControlSetup.py:334
-#: ../enigma2_master/lib/python/Screens/RecordPaths.py:24
-#: ../enigma2_master/lib/python/Screens/Setup.py:84
-#: ../enigma2_master/lib/python/Screens/TimeDateInput.py:14
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:31
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:60
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:108
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py:41
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:52
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/settings.py:27
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/settings.py:69
-#: ../enigma2_master/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:164
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:367
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/DiseqcTester/plugin.py:582
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:293
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:561
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:717
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:115
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:205
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:351
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:977
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1552
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/TempFanControl/plugin.py:102
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:47
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:302
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:36
-#: ../enigma2_plugins/ac3lipsync/src/AC3main.py:66
-#: ../enigma2_plugins/ac3lipsync/src/AC3setup.py:63
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:393
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:811
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:1014
-#: ../enigma2_plugins/autotimer/src/AutoTimerImporter.py:44
-#: ../enigma2_plugins/autotimer/src/AutoTimerImporter.py:118
-#: ../enigma2_plugins/autotimer/src/AutoTimerPreview.py:59
-#: ../enigma2_plugins/autotimer/src/AutoTimerSettings.py:54
-#: ../enigma2_plugins/cdinfo/src/plugin.py:56
-#: ../enigma2_plugins/genuinedreambox/src/plugin.py:81
-#: ../enigma2_plugins/networkbrowser/src/MountEdit.py:65
-#: ../enigma2_plugins/networkbrowser/src/NetworkBrowser.py:498
-#: ../enigma2_plugins/webinterface/src/WebIfConfig.py:34
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Cancel"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/HarddiskSetup.py:48
-#: ../enigma2_master/lib/python/Screens/HarddiskSetup.py:48
-msgid "Capacity: "
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Harddisk.py:437
-#: ../enigma2_master/lib/python/Components/Harddisk.py:437
-msgid "Card"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Language.py:19
-#: ../enigma2_master/lib/python/Components/Language.py:19
-msgid "Catalan"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/MovableScreen.py:32
-msgid "Center screen at the lower border"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/MovableScreen.py:26
-msgid "Center screen at the upper border"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/AC3main.py:76
-#: ../enigma2_plugins/ac3lipsync/src/AC3main.py:77
-msgid "Change active delay"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:469
-msgid "Change default recording offset?"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountManager.py:76
-msgid "Change hostname"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:198
-#: ../enigma2_experimental/lib/python/Screens/ParentalControlSetup.py:311
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:198
-#: ../enigma2_master/lib/python/Screens/ParentalControlSetup.py:311
-msgid "Change pin code"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ParentalControlSetup.py:90
-#: ../enigma2_master/lib/python/Screens/ParentalControlSetup.py:90
-msgid "Change service PIN"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ParentalControlSetup.py:87
-#: ../enigma2_master/lib/python/Screens/ParentalControlSetup.py:87
-msgid "Change service PINs"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ParentalControlSetup.py:81
-#: ../enigma2_master/lib/python/Screens/ParentalControlSetup.py:81
-msgid "Change setup PIN"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:315
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:315
-msgid "Change step size"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountManager.py:76
-msgid "Change the hostname of your Dreambox."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:756
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:756
-msgid "Changelog"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/AudioSelection.py:83
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:261
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:273
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:284
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:185
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/DVDTitle.py:21
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:117
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py:97
-#: ../enigma2_master/lib/python/Screens/AudioSelection.py:83
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:261
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:273
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:284
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:185
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/DVDTitle.py:21
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:117
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py:97
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Channel"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:85
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Channel Selection"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/AC3main.py:61
-msgid "Channel audio:"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEdit.py:333
-#: ../enigma2_master/lib/python/Screens/TimerEdit.py:333
-msgid "Channel not in services list"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:187
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:187
-msgid "Channel:"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:1004
-msgid "Channels"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:429
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:429
-msgid "Chap."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:430
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:430
-msgid "Chapter"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:165
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:165
-msgid "Chapter:"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/HarddiskSetup.py:55
-#: ../enigma2_master/lib/python/Screens/HarddiskSetup.py:55
-msgid "Check"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/HarddiskSetup.py:29
-#: ../enigma2_master/lib/python/Screens/HarddiskSetup.py:29
-msgid "Checking Filesystem..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:224
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:224
-msgid "Choose a wireless network"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:152
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:152
-msgid "Choose backup files"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:151
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:151
-msgid "Choose backup location"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:735
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:735
-msgid "Choose image to download"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:231
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:231
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:331
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:459
-msgid "Choose target folder"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:155
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:155
-msgid "Choose upgrade source"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Tools/Transponder.py:33
-#: ../enigma2_master/lib/python/Tools/Transponder.py:33
-msgid "Circular left"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Tools/Transponder.py:34
-#: ../enigma2_master/lib/python/Tools/Transponder.py:34
-msgid "Circular right"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/plugin.py:27
-msgid "Classic"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEdit.py:167
-#: ../enigma2_master/lib/python/Screens/TimerEdit.py:167
-msgid "Cleanup"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CleanupWizard/plugin.py:43
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CleanupWizard/plugin.py:133
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CleanupWizard/plugin.py:43
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CleanupWizard/plugin.py:133
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CleanupWizard/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CleanupWizard/
-msgid "Cleanup Wizard"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CleanupWizard/plugin.py:63
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CleanupWizard/plugin.py:125
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CleanupWizard/plugin.py:129
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CleanupWizard/plugin.py:63
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CleanupWizard/plugin.py:125
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CleanupWizard/plugin.py:129
-msgid "Cleanup Wizard settings"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CleanupWizard/plugin.py:129
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CleanupWizard/plugin.py:129
-msgid "CleanupWizard"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:419
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:924
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:419
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:924
-msgid "Clear before scan"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:438
-msgid "Clear history on Exit:"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:414
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:414
-msgid "Clear log"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InputDeviceSetup.py:49
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:39
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:696
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1098
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1356
-#: ../enigma2_experimental/lib/python/Screens/TaskView.py:51
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:186
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:60
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:235
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CleanupWizard/plugin.py:57
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:33
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:417
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:525
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:78
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:399
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:495
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SkinSelector/plugin.py:30
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:171
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:471
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:553
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:680
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1075
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1154
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1465
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1676
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1972
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:95
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:205
-#: ../enigma2_master/lib/python/Screens/InputDeviceSetup.py:49
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:39
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:696
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1098
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1356
-#: ../enigma2_master/lib/python/Screens/TaskView.py:51
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:186
-#: ../enigma2_master/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:60
-#: ../enigma2_master/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:235
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CleanupWizard/plugin.py:57
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:33
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:417
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:525
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:78
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:399
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:495
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SkinSelector/plugin.py:30
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:171
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:471
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:553
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:680
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1075
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1154
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1465
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1676
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1944
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:95
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:205
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:398
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:562
-#: ../enigma2_plugins/mytube/src/plugin.py:281
-#: ../enigma2_plugins/mytube/src/plugin.py:1280
-#: ../enigma2_plugins/mytube/src/plugin.py:1466
-#: ../enigma2_plugins/networkbrowser/src/MountManager.py:54
-#: ../enigma2_plugins/networkbrowser/src/MountView.py:63
-#: ../enigma2_plugins/networkbrowser/src/NetworkBrowser.py:107
-#: ../enigma2_plugins/networkbrowser/src/UserDialog.py:91
-#: ../enigma2_plugins/networkbrowser/src/UserManager.py:50
-msgid "Close"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerOverview.py:89
-msgid "Close and forget changes"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerOverview.py:101
-msgid "Close and save changes"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:191
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:191
-msgid "Close title selection"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:412
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:412
-msgid "Code rate high"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:413
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:413
-msgid "Code rate low"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ServiceInfo.py:147
-#: ../enigma2_master/lib/python/Screens/ServiceInfo.py:147
-msgid "Coderate HP"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ServiceInfo.py:146
-#: ../enigma2_master/lib/python/Screens/ServiceInfo.py:146
-msgid "Coderate LP"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:150
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:150
-msgid "Collection name"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:139
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:65
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:139
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:65
-msgid "Collection settings"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:91
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:91
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Color Format"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:189
-#: ../enigma2_plugins/mytube/src/plugin.py:80
-msgid "Comedy"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:315
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:327
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:315
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:327
-msgid "Command order"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:311
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:311
-msgid "Committed DiSEqC command"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:634
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:634
-msgid "Common Interface Assignment"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:860
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:860
-msgid "CommonInterface"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:874
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:874
-msgid "Communication"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Harddisk.py:438
-#: ../enigma2_master/lib/python/Components/Harddisk.py:438
-msgid "Compact Flash"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:535
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:536
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/DiseqcTester/plugin.py:592
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:535
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:536
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/DiseqcTester/plugin.py:592
-msgid "Complete"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/DVDProject.py:34
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/DVDProject.py:34
-msgid "Complex (allows mixing audio tracks and aspects)"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:106
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:160
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:194
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:258
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:361
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:106
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:160
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:194
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:258
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:361
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Configuration Mode"
-msgstr ""
-
-#: ../enigma2_plugins/webinterface/src/plugin.py:540
-msgid "Configuration for the Webinterface"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerSettings.py:71
-msgid "Configure AutoTimer behavior"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:406
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:406
-msgid "Configure your internal LAN"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:405
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:405
-msgid "Configure your wireless LAN again"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Ipkg.py:106
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1397
-#: ../enigma2_master/lib/python/Screens/Ipkg.py:106
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1397
-msgid "Configuring"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEdit.py:329
-#: ../enigma2_master/lib/python/Screens/TimerEdit.py:329
-msgid "Conflicting timer"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/Modem/plugin.py:274
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:206
-#: ../enigma2_master/lib/python/Plugins/Extensions/Modem/plugin.py:274
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:206
-msgid "Connect"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:466
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:466
-msgid "Connect to a Wireless Network"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:142
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:299
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:142
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:299
-msgid "Connected to"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/Modem/plugin.py:163
-#: ../enigma2_master/lib/python/Plugins/Extensions/Modem/plugin.py:163
-msgid "Connected!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ServiceInfo.py:148
-#: ../enigma2_master/lib/python/Screens/ServiceInfo.py:148
-msgid "Constellation"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/Process.py:294
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/Process.py:294
-msgid "Content does not fit on DVD!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:612
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:612
-msgid "Continue"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:525
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:525
-msgid "Continue playing"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:89
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoTune/VideoFinetune.py:145
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:89
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoTune/VideoFinetune.py:145
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Contrast"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:646
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:646
-msgid "Could not connect to Dreambox .NFI Image Feed Server:"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/Process.py:293
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/Process.py:293
-msgid "Could not load Medium! No disc inserted?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:222
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:222
-msgid "Could not open Picture in Picture"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1555
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1555
-#, python-format
-msgid "Couldn't record due to conflicting timer %s"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:420
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:420
-msgid "Crashlog settings"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:425
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:425
-msgid "CrashlogAutoSubmit"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:425
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:425
-msgid "CrashlogAutoSubmit settings"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:91
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:91
-msgid "CrashlogAutoSubmit settings..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:339
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:339
-msgid ""
-"Crashlogs found!\n"
-"Send them to Dream Multimedia?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/DVDProject.py:35
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/Process.py:900
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/Process.py:941
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:124
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/DVDProject.py:35
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/Process.py:900
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/Process.py:941
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:124
-msgid "Create DVD-ISO"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerOverview.py:220
-msgid "Create a new timer using the classic editor"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerOverview.py:222
-msgid "Create a new timer using the wizard"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Harddisk.py:236
-#: ../enigma2_master/lib/python/Components/Harddisk.py:236
-msgid "Create movie folder failed"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/LocationBox.py:250
-#: ../enigma2_master/lib/python/Screens/LocationBox.py:250
-#, python-format
-msgid "Creating directory %s failed."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Harddisk.py:236
-#: ../enigma2_master/lib/python/Components/Harddisk.py:236
-msgid "Creating partition failed"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Language.py:20
-#: ../enigma2_master/lib/python/Components/Language.py:20
-msgid "Croatian"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:986
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:986
-msgid "Current Transponder"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InputDeviceSetup.py:223
-#: ../enigma2_master/lib/python/Screens/InputDeviceSetup.py:223
-msgid "Current device: "
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:362
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:362
-msgid "Current settings:"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InputDeviceSetup.py:225
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:113
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:330
-#: ../enigma2_master/lib/python/Screens/InputDeviceSetup.py:225
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:113
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:330
-msgid "Current value: "
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/FrontprocessorUpgrade/plugin.py:35
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/FrontprocessorUpgrade/plugin.py:35
-msgid "Current version:"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:738
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:738
-msgid "Currently installed image"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:287
-#, python-format
-msgid "Custom (%s)"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:554
-msgid "Custom location"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:513
-msgid "Custom offset"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/CutListEditor/plugin.py:84
-#: ../enigma2_master/lib/python/Plugins/Extensions/CutListEditor/plugin.py:84
-msgid "Cut"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/CutListEditor/plugin.py:409
-#: ../enigma2_master/lib/python/Plugins/Extensions/CutListEditor/plugin.py:409
-msgid "Cutlist editor..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Language.py:21
-#: ../enigma2_master/lib/python/Components/Language.py:21
-msgid "Czech"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:204
-#: ../enigma2_plugins/mytube/src/plugin.py:95
-msgid "Czech Republic"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1335
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1335
-msgid "DHCP"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:322
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:322
-msgid "DUAL LAYER DVD"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:566
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:566
-msgid "DVB-S"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:567
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:567
-msgid "DVB-S2"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:65
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:57
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:65
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:57
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "DVD File Browser"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:715
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:715
-msgid "DVD Player"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:102
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:102
-msgid "DVD Titlelist"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/DVDToolbox.py:58
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/DVDToolbox.py:163
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:119
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/DVDToolbox.py:58
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/DVDToolbox.py:163
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:119
-msgid "DVD media toolbox"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Language.py:22
-#: ../enigma2_master/lib/python/Components/Language.py:22
-msgid "Danish"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimeDateInput.py:46
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:171
-#: ../enigma2_master/lib/python/Screens/TimeDateInput.py:46
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:171
-msgid "Date"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CleanupWizard/plugin.py:93
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CleanupWizard/plugin.py:93
-msgid "Decide if you want to enable or disable the Cleanup Wizard."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:162
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:162
-msgid "Decide what should be done when crashlogs are found."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:165
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:165
-msgid "Decide what should happen to the crashlogs after submission."
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/AC3main.py:79
-msgid "Decrease delay"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/AC3main.py:83
-#: ../enigma2_plugins/ac3lipsync/src/AC3main.py:85
-#: ../enigma2_plugins/ac3lipsync/src/AC3main.py:87
-#, python-format
-msgid "Decrease delay by %i ms (can be set)"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/SleepTimerEdit.py:82
-#: ../enigma2_master/lib/python/Screens/SleepTimerEdit.py:82
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Deep Standby"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:118
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:50
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:118
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:50
-msgid "Default"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:862
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:862
-msgid "Default Settings"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/RecordPaths.py:91
-#: ../enigma2_experimental/lib/python/Screens/RecordPaths.py:109
-#: ../enigma2_master/lib/python/Screens/RecordPaths.py:91
-#: ../enigma2_master/lib/python/Screens/RecordPaths.py:109
-msgid "Default movie location"
-msgstr ""
-
-#: ../enigma2_plugins/cdinfo/src/plugin.py:58
-msgid "Defaults"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:241
-#: ../enigma2_experimental/lib/python/Screens/TimerEdit.py:133
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:120
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:207
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:241
-#: ../enigma2_master/lib/python/Screens/TimerEdit.py:133
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:120
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:207
-#: ../enigma2_plugins/autotimer/src/AutoTimerOverview.py:75
-#: ../enigma2_plugins/networkbrowser/src/UserManager.py:52
-msgid "Delete"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:23
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:23
-msgid "Delete crashlogs"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:411
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:502
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:411
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:502
-msgid "Delete entry"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/MovieSelection.py:145
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:663
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:722
-#: ../enigma2_master/lib/python/Screens/MovieSelection.py:145
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:663
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:722
-msgid "Delete failed!"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountView.py:64
-msgid "Delete mount"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:401
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:401
-#, python-format
-msgid ""
-"Delete no more configured satellite\n"
-"%s?"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:229
-#: ../enigma2_plugins/mytube/src/plugin.py:120
-msgid "Descending"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:142
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/DVDTitle.py:20
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:117
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py:81
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py:97
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:142
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/DVDTitle.py:20
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:117
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py:81
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py:97
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:493
-#: ../enigma2_plugins/autotimer/src/AutoTimerWizard.py:86
-msgid "Description"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:153
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:153
-msgid "Deselect"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1178
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1178
-msgid "Details for plugin: "
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/About.py:34
-#: ../enigma2_master/lib/python/Screens/About.py:34
-msgid "Detected HDD:"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/About.py:17
-#: ../enigma2_master/lib/python/Screens/About.py:17
-msgid "Detected NIMs:"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:515
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1156
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:515
-#: ../enigma2_master/lib/python/Components/NimManager.py:1156
-msgid "DiSEqC A/B"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:515
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1156
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:515
-#: ../enigma2_master/lib/python/Components/NimManager.py:1156
-msgid "DiSEqC A/B/C/D"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:307
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:307
-msgid "DiSEqC mode"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:330
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:330
-msgid "DiSEqC repeats"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/DiseqcTester/plugin.py:568
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/DiseqcTester/plugin.py:568
-msgid "DiSEqC-Tester settings"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/Modem/plugin.py:189
-#: ../enigma2_master/lib/python/Plugins/Extensions/Modem/plugin.py:189
-msgid "Dialing:"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:103
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:103
-msgid "Digital contour removal"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountView.py:85
-msgid "Dir:"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/DVDProject.py:33
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/DVDProject.py:33
-msgid "Direct playback of linked titles without menu"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/MovieSelection.py:388
-#: ../enigma2_master/lib/python/Screens/MovieSelection.py:388
-#, python-format
-msgid "Directory %s nonexistent."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/settings.py:43
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/settings.py:43
-msgid "Directory browser"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEdit.py:146
-#: ../enigma2_experimental/lib/python/Screens/TimerEdit.py:416
-#: ../enigma2_experimental/lib/python/Screens/TimerEdit.py:436
-#: ../enigma2_master/lib/python/Screens/TimerEdit.py:146
-#: ../enigma2_master/lib/python/Screens/TimerEdit.py:416
-#: ../enigma2_master/lib/python/Screens/TimerEdit.py:436
-msgid "Disable"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1430
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1430
-msgid "Disable Picture in Picture"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:21
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:21
-msgid "Disable crashlog reporting"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/SleepTimerEdit.py:78
-#: ../enigma2_master/lib/python/Screens/SleepTimerEdit.py:78
-msgid "Disable timer"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/SleepTimerEdit.py:32
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py:105
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py:471
-#: ../enigma2_master/lib/python/Screens/SleepTimerEdit.py:32
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py:105
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py:471
-msgid "Disabled"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/AC3main.py:75
-#: ../enigma2_plugins/ac3lipsync/src/AC3main.py:80
-msgid "Discard changes and close plugin"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/MovableScreen.py:18
-#: ../enigma2_plugins/ac3lipsync/src/MovableScreen.py:23
-msgid "Discard changes and close screen"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/Modem/plugin.py:268
-#: ../enigma2_master/lib/python/Plugins/Extensions/Modem/plugin.py:268
-msgid "Disconnect"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:86
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:86
-msgid "Display 16:9 content as"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:82
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:82
-msgid "Display 4:3 content as"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:83
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:83
-msgid "Display >16:9 content as"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:870
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:870
-msgid "Display and Userinterface"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:419
-msgid "Display search results by:"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/PluginBrowser.py:153
-#: ../enigma2_master/lib/python/Screens/PluginBrowser.py:153
-#, python-format
-msgid ""
-"Do you really want to REMOVE\n"
-"the plugin \"%s\"?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/HarddiskSetup.py:84
-#: ../enigma2_master/lib/python/Screens/HarddiskSetup.py:84
-msgid ""
-"Do you really want to check the filesystem?\n"
-"This could take lots of time!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/EpgSelection.py:236
-#: ../enigma2_experimental/lib/python/Screens/EventView.py:86
-#: ../enigma2_experimental/lib/python/Screens/InfoBar.py:204
-#: ../enigma2_experimental/lib/python/Screens/MovieSelection.py:128
-#: ../enigma2_experimental/lib/python/Screens/TimerEdit.py:205
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/GraphMultiEPG/GraphMultiEpg.py:590
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:655
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:708
-#: ../enigma2_master/lib/python/Screens/EpgSelection.py:236
-#: ../enigma2_master/lib/python/Screens/EventView.py:86
-#: ../enigma2_master/lib/python/Screens/InfoBar.py:204
-#: ../enigma2_master/lib/python/Screens/MovieSelection.py:128
-#: ../enigma2_master/lib/python/Screens/TimerEdit.py:205
-#: ../enigma2_master/lib/python/Plugins/Extensions/GraphMultiEPG/GraphMultiEpg.py:590
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:655
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:708
-#: ../enigma2_plugins/autotimer/src/AutoTimerOverview.py:183
-#, python-format
-msgid "Do you really want to delete %s?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/PluginBrowser.py:151
-#: ../enigma2_master/lib/python/Screens/PluginBrowser.py:151
-#, python-format
-msgid ""
-"Do you really want to download\n"
-"the plugin \"%s\"?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:376
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:376
-msgid "Do you really want to exit?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/HarddiskSetup.py:82
-#: ../enigma2_master/lib/python/Screens/HarddiskSetup.py:82
-msgid ""
-"Do you really want to initialize the harddisk?\n"
-"All data on the disk will be lost!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/LocationBox.py:269
-#: ../enigma2_master/lib/python/Screens/LocationBox.py:269
-#, python-format
-msgid "Do you really want to remove directory %s from the disk?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/LocationBox.py:224
-#: ../enigma2_master/lib/python/Screens/LocationBox.py:224
-#, python-format
-msgid "Do you really want to remove your bookmark of %s?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/Process.py:434
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:255
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/Process.py:434
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:255
-msgid "Do you want to burn this collection to DVD medium?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:560
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:560
-#, python-format
-msgid "Do you want to download the image to %s ?"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/NetworkBrowser.py:391
-#: ../enigma2_plugins/networkbrowser/src/NetworkBrowser.py:393
-#: ../enigma2_plugins/networkbrowser/src/NetworkBrowser.py:406
-msgid "Do you want to enter a username and password for this host?\n"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1280
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1789
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1280
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1787
-msgid "Do you want to install the package:\n"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:608
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:608
-msgid "Do you want to play DVD in drive?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/Process.py:418
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/Process.py:418
-msgid "Do you want to preview this DVD before burning?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:921
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1287
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1302
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1440
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1796
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1818
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:921
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1287
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1302
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1440
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1794
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1816
-msgid "Do you want to reboot your Dreambox?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1273
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1781
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1273
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1779
-msgid "Do you want to remove the package:\n"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:239
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:239
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/
-msgid "Do you want to restore your settings?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1912
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1912
-msgid "Do you want to resume this playback?"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:757
-msgid "Do you want to see more entries?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:168
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:168
-msgid ""
-"Do you want to submit your email address and name so that we can contact you "
-"if needed?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:233
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:233
-msgid "Do you want to update your Dreambox?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/OldSoftwareUpdate/plugin.py:37
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/OldSoftwareUpdate/plugin.py:136
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/OldSoftwareUpdate/plugin.py:37
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/OldSoftwareUpdate/plugin.py:136
-msgid ""
-"Do you want to update your Dreambox?\n"
-"After pressing OK, please wait!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1785
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1783
-msgid "Do you want to upgrade the package:\n"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:21
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:21
-msgid "Don't ask, just send"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEdit.py:102
-#: ../enigma2_master/lib/python/Screens/TimerEdit.py:102
-msgid "Don't stop current event but disable coming events"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1420
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1420
-#, python-format
-msgid "Done - Installed or upgraded %d packages"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Ipkg.py:58
-#: ../enigma2_master/lib/python/Screens/Ipkg.py:58
-#, python-format
-msgid "Done - Installed, upgraded or removed %d packages with %d errors"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:499
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:508
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:499
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:508
-msgid "Download"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:523
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:724
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:731
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:523
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:724
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:731
-#, python-format
-msgid "Download %s from Server"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:31
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:812
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/plugin.py:20
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/plugin.py:24
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:31
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:812
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/plugin.py:20
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/plugin.py:24
-msgid "Download .NFI-Files for USB-Flasher"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/PluginBrowser.py:76
-#: ../enigma2_master/lib/python/Screens/PluginBrowser.py:76
-msgid "Download Plugins"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:538
-msgid "Download Video"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:435
-msgid "Download location"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/PluginBrowser.py:164
-#: ../enigma2_master/lib/python/Screens/PluginBrowser.py:164
-msgid "Downloadable new plugins"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Ipkg.py:83
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:73
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:101
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1374
-#: ../enigma2_master/lib/python/Screens/Ipkg.py:83
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:73
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:101
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1374
-msgid "Downloading"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/PluginBrowser.py:122
-#: ../enigma2_master/lib/python/Screens/PluginBrowser.py:122
-msgid "Downloading plugin information. Please wait..."
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:1309
-msgid "Downloading screenshots. Please wait..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/DVDProject.py:33
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/DVDProject.py:33
-msgid "Dreambox format data DVD (HDTV compatible)"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1006
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1006
-msgid "Dreambox software because updates are available."
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:1103
-#: ../enigma2_plugins/mytube/src/plugin.py:1335
-msgid "Duration: "
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Language.py:23
-#: ../enigma2_master/lib/python/Components/Language.py:23
-msgid "Dutch"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:100
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:100
-msgid "Dynamic contrast"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:973
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:397
-#: ../enigma2_experimental/lib/python/Components/ServiceScan.py:51
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:484
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:973
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:397
-#: ../enigma2_master/lib/python/Components/ServiceScan.py:51
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:484
-msgid "E"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:498
-msgid "EPG encoding"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/ServiceScan.py:101
-#: ../enigma2_master/lib/python/Components/ServiceScan.py:101
-#, python-format
-msgid "ERROR - failed to scan (%s)!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1163
-#: ../enigma2_master/lib/python/Components/NimManager.py:1163
-msgid "East"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEdit.py:424
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:34
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1466
-#: ../enigma2_master/lib/python/Screens/TimerEdit.py:424
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:34
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1466
-msgid "Edit"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:421
-msgid "Edit AutoTimer"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:832
-msgid "Edit AutoTimer filters"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:1035
-msgid "Edit AutoTimer services"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:376
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:376
-msgid "Edit DNS"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/plugin.py:158
-#: ../enigma2_plugins/autotimer/src/plugin.py:163
-msgid "Edit Timers and scan for new Events"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py:43
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py:43
-msgid "Edit Title"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ParentalControlSetup.py:99
-#: ../enigma2_master/lib/python/Screens/ParentalControlSetup.py:99
-msgid "Edit bouquets list"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:128
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:128
-msgid "Edit chapters of current title"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerOverview.py:216
-msgid "Edit new timer defaults"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerOverview.py:88
-msgid "Edit selected AutoTimer"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ParentalControlSetup.py:96
-#: ../enigma2_master/lib/python/Screens/ParentalControlSetup.py:96
-msgid "Edit services list"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1353
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:510
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/settings.py:66
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1353
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:510
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/settings.py:66
-msgid "Edit settings"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:850
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:850
-msgid "Edit the Nameserver configuration of your Dreambox.\n"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:846
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:846
-msgid "Edit the network configuration of your Dreambox.\n"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:188
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:188
-msgid "Edit title"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1591
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1591
-msgid "Edit upgrade source url."
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:1057
-msgid "Editing"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerSettings.py:45
-msgid "Editor for new AutoTimers"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:193
-#: ../enigma2_plugins/mytube/src/plugin.py:84
-msgid "Education"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:872
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:872
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Electronic Program Guide"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEdit.py:138
-#: ../enigma2_experimental/lib/python/Screens/TimerEdit.py:408
-#: ../enigma2_experimental/lib/python/Screens/TimerEdit.py:428
-#: ../enigma2_master/lib/python/Screens/TimerEdit.py:138
-#: ../enigma2_master/lib/python/Screens/TimerEdit.py:408
-#: ../enigma2_master/lib/python/Screens/TimerEdit.py:428
-msgid "Enable"
-msgstr ""
-
-#: ../enigma2_plugins/webinterface/src/WebIfConfig.py:61
-msgid "Enable /media"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:199
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:199
-msgid "Enable 5V for active antenna"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CleanupWizard/plugin.py:75
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CleanupWizard/plugin.py:75
-msgid "Enable Cleanup Wizard?"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:876
-msgid "Enable Filtering"
-msgstr ""
-
-#: ../enigma2_plugins/webinterface/src/WebIfConfig.py:65
-msgid "Enable HTTP Access"
-msgstr ""
-
-#: ../enigma2_plugins/webinterface/src/WebIfConfig.py:71
-msgid "Enable HTTP Authentication"
-msgstr ""
-
-#: ../enigma2_plugins/webinterface/src/WebIfConfig.py:76
-msgid "Enable HTTPS Access"
-msgstr ""
-
-#: ../enigma2_plugins/webinterface/src/WebIfConfig.py:81
-msgid "Enable HTTPS Authentication"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:1056
-msgid "Enable Service Restriction"
-msgstr ""
-
-#: ../enigma2_plugins/webinterface/src/WebIfConfig.py:87
-msgid "Enable Streaming Authentication"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ParentalControlSetup.py:73
-#: ../enigma2_master/lib/python/Screens/ParentalControlSetup.py:73
-msgid "Enable parental control"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerSettings.py:41
-msgid ""
-"Enable this to be able to access the AutoTimer Overview from within the "
-"extension menu."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/SleepTimerEdit.py:76
-#: ../enigma2_master/lib/python/Screens/SleepTimerEdit.py:76
-msgid "Enable timer"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/SleepTimerEdit.py:30
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py:109
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py:475
-#: ../enigma2_master/lib/python/Screens/SleepTimerEdit.py:30
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py:109
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py:475
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:492
-#: ../enigma2_plugins/autotimer/src/AutoTimerImporter.py:128
-#: ../enigma2_plugins/autotimer/src/AutoTimerWizard.py:85
-msgid "Enabled"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:461
-msgid ""
-"Encoding the channel uses for it's EPG data. You only need to change this if "
-"you're searching for special characters like the german umlauts."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:276
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:276
-msgid "Encrypted: "
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:522
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:522
-msgid "Encryption"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:530
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:533
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:530
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:533
-msgid "Encryption Key"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:529
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:529
-msgid "Encryption Keytype"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:526
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:526
-msgid "Encryption Type"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:263
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:81
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:263
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:81
-msgid "Encryption:"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:538
-msgid "End of \"after event\" timespan"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:510
-#: ../enigma2_plugins/autotimer/src/AutoTimerWizard.py:79
-msgid "End of timespan"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:51
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:345
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:51
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:345
-msgid "End time"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:181
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:181
-msgid "EndTime"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Language.py:16
-#: ../enigma2_master/lib/python/Components/Language.py:16
-msgid "English"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SkinSelector/plugin.py:80
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SkinSelector/plugin.py:80
-msgid ""
-"Enigma2 Skinselector\n"
-"\n"
-"If you experience any problems please contact\n"
-"stephan@reichholf.net\n"
-"\n"
-"© 2006 - Stephan Reichholf"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/NetworkBrowser.py:526
-msgid "Enter IP to scan..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:379
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:379
-msgid "Enter main menu..."
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountManager.py:108
-msgid "Enter new hostname for your Dreambox"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountEdit.py:215
-msgid "Enter options:"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountEdit.py:219
-#: ../enigma2_plugins/networkbrowser/src/UserDialog.py:141
-msgid "Enter password:"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ParentalControlSetup.py:19
-#: ../enigma2_master/lib/python/Screens/ParentalControlSetup.py:19
-msgid "Enter pin code"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountEdit.py:213
-msgid "Enter share directory:"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountEdit.py:211
-msgid "Enter share name:"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:198
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:198
-msgid "Enter the service pin"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/UserDialog.py:94
-msgid "Enter user and password for host: "
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountEdit.py:217
-#: ../enigma2_plugins/networkbrowser/src/UserDialog.py:139
-msgid "Enter username:"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:171
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:171
-msgid "Enter your email address so that we can contact you if needed."
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:577
-msgid "Enter your search term(s)"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:192
-#: ../enigma2_plugins/mytube/src/plugin.py:83
-msgid "Entertainment"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Task.py:284
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:224
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:614
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1430
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1756
-#: ../enigma2_master/lib/python/Components/Task.py:284
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:224
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:614
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1430
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1754
-msgid "Error"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/TuxboxPlugins/pluginrunner.py:34
-#: ../enigma2_master/lib/python/Plugins/Extensions/TuxboxPlugins/pluginrunner.py:34
-msgid "Error executing plugin"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Task.py:282
-#: ../enigma2_master/lib/python/Components/Task.py:282
-#, python-format
-msgid ""
-"Error: %s\n"
-"Retry?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Language.py:24
-#: ../enigma2_master/lib/python/Components/Language.py:24
-msgid "Estonian"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Harddisk.py:236
-#: ../enigma2_master/lib/python/Components/Harddisk.py:236
-msgid "Everything is fine"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerImporter.py:143
-msgid "Exact match"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:312
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:315
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:312
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:315
-msgid "Exceeds dual layer medium!"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:885
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:902
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:927
-msgid "Exclude"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:532
-msgid "Execute \"after event\" during timespan"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Console.py:43
-#: ../enigma2_master/lib/python/Screens/Console.py:43
-msgid "Execution Progress:"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Console.py:55
-#: ../enigma2_master/lib/python/Screens/Console.py:55
-msgid "Execution finished!!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:91
-#: ../enigma2_master/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:91
-msgid "Exif"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/DVDToolbox.py:32
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:130
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:525
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/DVDToolbox.py:32
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:130
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:525
-msgid "Exit"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/CutListEditor/plugin.py:180
-#: ../enigma2_master/lib/python/Plugins/Extensions/CutListEditor/plugin.py:180
-msgid "Exit editor"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InputDeviceSetup.py:60
-#: ../enigma2_experimental/lib/python/Screens/InputDeviceSetup.py:66
-#: ../enigma2_master/lib/python/Screens/InputDeviceSetup.py:60
-#: ../enigma2_master/lib/python/Screens/InputDeviceSetup.py:66
-msgid "Exit input device selection."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:159
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:407
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:159
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:407
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/
-msgid "Exit network wizard"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CleanupWizard/CleanupWizard.py:65
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CleanupWizard/CleanupWizard.py:71
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CleanupWizard/CleanupWizard.py:65
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CleanupWizard/CleanupWizard.py:71
-msgid "Exit the cleanup wizard"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:50
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:50
-#: ../enigma2_plugins/networkbrowser/src/NetworkBrowser.py:110
-msgid "Expert"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:908
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:908
-msgid "Extended Networksetup Plugin..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:904
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:904
-msgid "Extended Setup..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:141
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:141
-msgid "Extended Software"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:145
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:145
-msgid "Extended Software Plugin"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:574
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:574
-msgid "Extensions management"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:377
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:379
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:406
-#: ../enigma2_experimental/lib/python/Screens/ServiceInfo.py:145
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:447
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:449
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:85
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:87
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:377
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:379
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:406
-#: ../enigma2_master/lib/python/Screens/ServiceInfo.py:145
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:447
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:449
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:85
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:87
-msgid "FEC"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Task.py:42
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/Process.py:458
-#: ../enigma2_master/lib/python/Components/Task.py:42
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/Process.py:458
-msgid "Failed"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Sensors.py:70
-#: ../enigma2_master/lib/python/Components/Sensors.py:70
-#, python-format
-msgid "Fan %d"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/TempFanControl/plugin.py:127
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/TempFanControl/plugin.py:127
-#, python-format
-msgid "Fan %d PWM"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/TempFanControl/plugin.py:126
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/TempFanControl/plugin.py:126
-#, python-format
-msgid "Fan %d Voltage"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1165
-#: ../enigma2_master/lib/python/Components/NimManager.py:1165
-msgid "Fast"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:312
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:312
-msgid "Fast DiSEqC"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1165
-#: ../enigma2_master/lib/python/Components/NimManager.py:1165
-msgid "Fast epoch"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:711
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:528
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:711
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:528
-msgid "Favourites"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:417
-#: ../enigma2_plugins/mytube/src/plugin.py:476
-msgid "Fetching feed entries"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:478
-msgid "Fetching search entries"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Harddisk.py:236
-#: ../enigma2_master/lib/python/Components/Harddisk.py:236
-msgid "Filesystem contains uncorrectable errors"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:181
-#: ../enigma2_plugins/mytube/src/plugin.py:72
-msgid "Film & Animation"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:877
-msgid "Filter"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Task.py:42
-#: ../enigma2_master/lib/python/Components/Task.py:42
-msgid "Finished"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:218
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:218
-msgid "Finished configuring your network"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:975
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:975
-#: ../enigma2_plugins/networkbrowser/src/MountManager.py:132
-msgid "Finished restarting your network"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Language.py:25
-#: ../enigma2_master/lib/python/Components/Language.py:25
-msgid "Finnish"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/flasher.py:167
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/flasher.py:167
-msgid "Flash"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/flasher.py:211
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/flasher.py:211
-msgid "Flashing failed"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:979
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:979
-msgid "Following tasks will be done after you press OK!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/DVDToolbox.py:135
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/DVDToolbox.py:135
-msgid "Format"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerResource.py:18
-#: ../enigma2_plugins/autotimer/src/plugin.py:116
-#, python-format
-msgid ""
-"Found a total of %d matching Events.\n"
-"%d Timer were added and %d modified."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:181
-#: ../enigma2_master/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:181
-msgid "Frame size in full view"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:205
-#: ../enigma2_plugins/mytube/src/plugin.py:96
-msgid "France"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Language.py:26
-#: ../enigma2_master/lib/python/Components/Language.py:26
-msgid "French"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:263
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:277
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:288
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:372
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:402
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:409
-#: ../enigma2_experimental/lib/python/Screens/ServiceInfo.py:138
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:442
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:80
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:263
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:277
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:288
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:372
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:402
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:409
-#: ../enigma2_master/lib/python/Screens/ServiceInfo.py:138
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:442
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:80
-msgid "Frequency"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1458
-#: ../enigma2_master/lib/python/Components/NimManager.py:1458
-msgid "Frequency bands"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:182
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:182
-msgid "Frequency scan step size(khz)"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1458
-#: ../enigma2_master/lib/python/Components/NimManager.py:1458
-msgid "Frequency steps"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/EpgSelection.py:326
-#: ../enigma2_experimental/lib/python/Components/EpgList.py:38
-#: ../enigma2_experimental/lib/python/Components/TimerList.py:24
-#: ../enigma2_experimental/lib/python/Tools/FuzzyDate.py:13
-#: ../enigma2_master/lib/python/Screens/EpgSelection.py:326
-#: ../enigma2_master/lib/python/Components/EpgList.py:38
-#: ../enigma2_master/lib/python/Components/TimerList.py:24
-#: ../enigma2_master/lib/python/Tools/FuzzyDate.py:13
-msgid "Fri"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:124
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:167
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:124
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:167
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:48
-msgid "Friday"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Language.py:44
-#: ../enigma2_master/lib/python/Components/Language.py:44
-msgid "Frisian"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/About.py:23
-#: ../enigma2_master/lib/python/Screens/About.py:23
-#, python-format
-msgid "Frontprocessor version: %d"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Harddisk.py:236
-#: ../enigma2_master/lib/python/Components/Harddisk.py:236
-msgid "Fsck failed"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SkinSelector/plugin.py:102
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SkinSelector/plugin.py:102
-msgid ""
-"GUI needs a restart to apply a new skin\n"
-"Do you want to Restart the GUI now?"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:188
-#: ../enigma2_plugins/mytube/src/plugin.py:79
-msgid "Gaming"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:366
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:401
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:404
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:502
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:366
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:401
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:404
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:502
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Gateway"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:102
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:102
-msgid "General AC3 Delay"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:103
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:103
-msgid "General PCM Delay"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:133
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:133
-msgid "Genre"
-msgstr ""
-
-#: ../enigma2_plugins/genuinedreambox/src/plugin.py:71
-msgid "Genuine Dreambox"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:398
-#: ../enigma2_plugins/mytube/src/plugin.py:422
-#: ../enigma2_plugins/mytube/src/plugin.py:464
-msgid "Genuine Dreambox validation failed!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Language.py:17
-#: ../enigma2_master/lib/python/Components/Language.py:17
-msgid "German"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:206
-#: ../enigma2_plugins/mytube/src/plugin.py:97
-msgid "Germany"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:731
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:731
-msgid "Get latest experimental image"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:724
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:724
-msgid "Get latest release image"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/PluginBrowser.py:124
-#: ../enigma2_master/lib/python/Screens/PluginBrowser.py:124
-msgid "Getting plugin information. Please wait..."
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/AC3main.py:54
-msgid "Global delay"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:195
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:253
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:195
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:253
-msgid "Goto 0"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:250
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:250
-msgid "Goto position"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/GraphMultiEPG/plugin.py:95
-#: ../enigma2_master/lib/python/Plugins/Extensions/GraphMultiEPG/plugin.py:95
-msgid "Graphical Multi EPG"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:207
-#: ../enigma2_plugins/mytube/src/plugin.py:98
-msgid "Great Britain"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Language.py:27
-#: ../enigma2_master/lib/python/Components/Language.py:27
-msgid "Greek"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:98
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:98
-msgid "Green boost"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ServiceInfo.py:150
-#: ../enigma2_master/lib/python/Screens/ServiceInfo.py:150
-msgid "Guard Interval"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:416
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:416
-msgid "Guard interval mode"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerSettings.py:43
-msgid "Guess existing timer based on begin/end"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:237
-#: ../enigma2_plugins/mytube/src/plugin.py:128
-#: ../enigma2_plugins/mytube/src/plugin.py:790
-msgid "HD videos"
-msgstr ""
-
-#: ../enigma2_plugins/webinterface/src/WebIfConfig.py:70
-msgid "HTTP Port"
-msgstr ""
-
-#: ../enigma2_plugins/webinterface/src/WebIfConfig.py:80
-msgid "HTTPS Port"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Harddisk.py:436
-#: ../enigma2_master/lib/python/Components/Harddisk.py:436
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Harddisk"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:1484
-msgid "Help"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:517
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:517
-msgid "Hidden network SSID"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py:75
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py:77
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py:83
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py:85
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py:430
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py:432
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py:438
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py:440
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py:75
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py:77
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py:83
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py:85
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py:430
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py:432
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py:438
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py:440
-msgid "Hidden networkname"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ServiceInfo.py:151
-#: ../enigma2_master/lib/python/Screens/ServiceInfo.py:151
-msgid "Hierarchy Information"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:417
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:417
-msgid "Hierarchy mode"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Ci.py:335
-#: ../enigma2_master/lib/python/Screens/Ci.py:335
-msgid "High bitrate support"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:283
-msgid "History"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:209
-#: ../enigma2_plugins/mytube/src/plugin.py:100
-msgid "Holland"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:210
-#: ../enigma2_plugins/mytube/src/plugin.py:101
-msgid "Hong Kong"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Tools/Transponder.py:31
-#: ../enigma2_master/lib/python/Tools/Transponder.py:31
-msgid "Horizontal"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1624
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1624
-msgid "How many minutes do you want to record?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:119
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:119
-msgid "How to handle found crashlogs?"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:194
-#: ../enigma2_plugins/mytube/src/plugin.py:85
-msgid "Howto & Style"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:91
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:91
-msgid "Hue"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Language.py:28
-#: ../enigma2_master/lib/python/Components/Language.py:28
-msgid "Hungarian"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:364
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:497
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1341
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:364
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:497
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1341
-#: ../enigma2_plugins/networkbrowser/src/NetworkBrowser.py:514
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "IP Address"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountView.py:84
-msgid "IP:"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/Process.py:299
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/Process.py:299
-msgid "ISO file is too large for this filesystem!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:154
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:154
-msgid "ISO path"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Language.py:31
-#: ../enigma2_master/lib/python/Components/Language.py:31
-msgid "Icelandic"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerSettings.py:43
-#, python-format
-msgid ""
-"If this is enabled an existing timer will also be considered recording an "
-"event if it records at least 80% of the it."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Scart.py:30
-#: ../enigma2_experimental/lib/python/Screens/Scart.py:32
-#: ../enigma2_master/lib/python/Screens/Scart.py:30
-#: ../enigma2_master/lib/python/Screens/Scart.py:32
-msgid ""
-"If you see this, something is wrong with\n"
-"your scart connection. Press OK to return."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoTune/VideoFinetune.py:87
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoTune/VideoFinetune.py:87
-msgid ""
-"If your TV has a brightness or contrast enhancement, disable it. If there is "
-"something called \"dynamic\", set it to standard. Adjust the backlight level "
-"to a value suiting your taste. Turn down contrast on your TV as much as "
-"possible.\n"
-"Then turn the brightness setting as low as possible, but make sure that the "
-"two lowermost shades of gray stay distinguishable.\n"
-"Do not care about the bright shades now. They will be set up in the next "
-"step.\n"
-"If you are happy with the result, press OK."
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerImporter.py:220
-msgid "Import AutoTimer"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerOverview.py:213
-msgid "Import existing Timer"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerOverview.py:214
-msgid "Import from EPG"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Task.py:42
-#: ../enigma2_master/lib/python/Components/Task.py:42
-msgid "In Progress"
-msgstr ""
-
-#: ../enigma2_experimental/RecordTimer.py:253
-#: ../enigma2_master/RecordTimer.py:253
-msgid ""
-"In order to record a timer, the TV was switched to the recording service!\n"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:890
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:907
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:928
-msgid "Include"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:121
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:121
-msgid "Include your email and name (optional) in the mail?"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/AC3main.py:78
-msgid "Increase delay"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/AC3main.py:84
-#: ../enigma2_plugins/ac3lipsync/src/AC3main.py:86
-#: ../enigma2_plugins/ac3lipsync/src/AC3main.py:88
-#, python-format
-msgid "Increase delay by %i ms (can be set)"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:303
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:303
-msgid "Increased voltage"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:211
-#: ../enigma2_plugins/mytube/src/plugin.py:102
-msgid "India"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:250
-#: ../enigma2_master/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:250
-msgid "Info"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Ci.py:322
-#: ../enigma2_master/lib/python/Screens/Ci.py:322
-msgid "Init"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/RecordPaths.py:125
-#: ../enigma2_master/lib/python/Screens/RecordPaths.py:125
-msgid "Initial location in new timers"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/HarddiskSetup.py:53
-#: ../enigma2_master/lib/python/Screens/HarddiskSetup.py:53
-msgid "Initialize"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/HarddiskSetup.py:26
-#: ../enigma2_master/lib/python/Screens/HarddiskSetup.py:26
-msgid "Initializing Harddisk..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InputBox.py:11
-#: ../enigma2_master/lib/python/Screens/InputBox.py:11
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Input"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InputDeviceSetup.py:154
-#: ../enigma2_master/lib/python/Screens/InputDeviceSetup.py:154
-msgid "Input device setup"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:662
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1215
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1973
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:662
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1215
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1945
-msgid "Install"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:2006
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1978
-msgid "Install extensions."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:133
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:133
-msgid "Install local extension"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:921
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:921
-msgid "Install or remove finished."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/DefaultWizard.py:107
-#: ../enigma2_master/lib/python/Screens/DefaultWizard.py:107
-msgid "Install settings, skins, software..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1287
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1287
-msgid "Installation finished."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Ipkg.py:94
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1018
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1385
-#: ../enigma2_master/lib/python/Screens/Ipkg.py:94
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1018
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1385
-msgid "Installing"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1490
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1490
-msgid "Instant Record..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/RecordPaths.py:95
-#: ../enigma2_master/lib/python/Screens/RecordPaths.py:95
-msgid "Instant record location"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:276
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:276
-msgid "Interface: "
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:49
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:49
-msgid "Intermediate"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Harddisk.py:443
-#: ../enigma2_master/lib/python/Components/Harddisk.py:443
-msgid "Internal Flash"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Network.py:340
-#: ../enigma2_master/lib/python/Components/Network.py:340
-msgid "Internal LAN adapter."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/LocationBox.py:401
-#: ../enigma2_master/lib/python/Screens/LocationBox.py:401
-msgid "Invalid Location"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/LocationBox.py:275
-#: ../enigma2_master/lib/python/Screens/LocationBox.py:275
-#, python-format
-msgid "Invalid directory selected: %s"
-msgstr ""
-
-#: ../enigma2_plugins/genuinedreambox/src/plugin.py:304
-msgid "Invalid response from Security service pls restart again"
-msgstr ""
-
-#: ../enigma2_plugins/genuinedreambox/src/plugin.py:132
-msgid "Invalid response from server."
-msgstr ""
-
-#: ../enigma2_plugins/genuinedreambox/src/plugin.py:177
-#, python-format
-msgid "Invalid response from server. Please report: %s"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/AC3main.py:212
-#: ../enigma2_plugins/ac3lipsync/src/AC3main.py:266
-msgid "Invalid selection"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:373
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:403
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:410
-#: ../enigma2_experimental/lib/python/Screens/ServiceInfo.py:142
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:443
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:81
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:373
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:403
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:410
-#: ../enigma2_master/lib/python/Screens/ServiceInfo.py:142
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:443
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:81
-msgid "Inversion"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:2025
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1997
-msgid "Ipkg"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:212
-#: ../enigma2_plugins/mytube/src/plugin.py:103
-msgid "Ireland"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:145
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:145
-msgid "Is this videomode ok?"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:213
-#: ../enigma2_plugins/mytube/src/plugin.py:104
-msgid "Israel"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Language.py:32
-#: ../enigma2_master/lib/python/Components/Language.py:32
-msgid "Italian"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:214
-#: ../enigma2_plugins/mytube/src/plugin.py:105
-msgid "Italy"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:215
-#: ../enigma2_plugins/mytube/src/plugin.py:106
-msgid "Japan"
-msgstr ""
-
-#. TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect)
-#: ../enigma2_experimental/lib/python/Components/AVSwitch.py:100
-#: ../enigma2_experimental/lib/python/Components/AVSwitch.py:110
-#: ../enigma2_master/lib/python/Components/AVSwitch.py:100
-#: ../enigma2_master/lib/python/Components/AVSwitch.py:110
-msgid "Just Scale"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/AC3main.py:264
-#, python-format
-msgid "Key %(Key)s successfully set to %(delay)i ms"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/AC3main.py:247
-#, python-format
-msgid "Key %(key)s (current value: %(value)i ms)"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1319
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1319
-msgid "LAN Adapter"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Network.py:326
-#: ../enigma2_experimental/lib/python/Components/Network.py:329
-#: ../enigma2_master/lib/python/Components/Network.py:326
-#: ../enigma2_master/lib/python/Components/Network.py:329
-msgid "LAN connection"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:244
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:244
-msgid "LNB"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:249
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:249
-msgid "LOF"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:253
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:265
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:253
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:265
-msgid "LOF/H"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:252
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:264
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:252
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:264
-msgid "LOF/L"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Language.py:97
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:161
-#: ../enigma2_master/lib/python/Components/Language.py:97
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:161
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Language selection"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:49
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:49
-msgid "Last config"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:116
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:116
-msgid "Last speed"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:40
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:334
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:40
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:334
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Latitude"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Language.py:30
-#: ../enigma2_master/lib/python/Components/Language.py:30
-msgid "Latvian"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:532
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:532
-msgid "Leave DVD Player?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoEnhancement/VideoEnhancement.py:149
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoEnhancement/VideoEnhancement.py:149
-msgid "Left"
-msgstr ""
-
-#. TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term.
-#: ../enigma2_experimental/lib/python/Components/AVSwitch.py:96
-#: ../enigma2_master/lib/python/Components/AVSwitch.py:96
-msgid "Letterbox"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:245
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:245
-msgid "Limit east"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:244
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:244
-msgid "Limit west"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:243
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:243
-msgid "Limits off"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:246
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:246
-msgid "Limits on"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:260
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:78
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:260
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:78
-msgid "Link Quality:"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:867
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:146
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:867
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:146
-msgid "Link:"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/DVDProject.py:33
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/DVDProject.py:33
-msgid "Linked titles with a DVD menu"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/config.py:1138
-#: ../enigma2_experimental/lib/python/Components/FileList.py:177
-#: ../enigma2_experimental/lib/python/Components/FileList.py:397
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:561
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:717
-#: ../enigma2_master/lib/python/Components/config.py:1138
-#: ../enigma2_master/lib/python/Components/FileList.py:177
-#: ../enigma2_master/lib/python/Components/FileList.py:397
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:561
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:717
-msgid "List of Storage Devices"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Language.py:29
-#: ../enigma2_master/lib/python/Components/Language.py:29
-msgid "Lithuanian"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:110
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:110
-msgid "Load"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:423
-msgid "Load feed on startup:"
-msgstr ""
-
-#: ../enigma2_plugins/webinterface/src/WebIfConfig.py:64
-msgid "Load movie-length"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1328
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1328
-msgid "Local Network"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountEdit.py:178
-msgid "Local share name"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:188
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:188
-#: ../enigma2_plugins/autotimer/src/AutoTimerImporter.py:191
-msgid "Location"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/RecordPaths.py:133
-#: ../enigma2_master/lib/python/Screens/RecordPaths.py:133
-msgid "Location for instant recordings"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/DiseqcTester/plugin.py:606
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/DiseqcTester/plugin.py:606
-msgid "Log results to harddisk"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/HelpMenu.py:38
-#: ../enigma2_master/lib/python/Screens/HelpMenu.py:38
-msgid "Long Keypress"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/RecordingConfig.py:14
-#: ../enigma2_master/lib/python/Components/RecordingConfig.py:14
-msgid "Long filenames"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:38
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:332
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:38
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:332
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Longitude"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:476
-msgid "Lower bound of timespan."
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:467
-msgid ""
-"Lower bound of timespan. Nothing before this time will be matched. Offsets "
-"are not taken into account!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Harddisk.py:439
-#: ../enigma2_master/lib/python/Components/Harddisk.py:439
-msgid "MMC Card"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/CutListEditor/plugin.py:175
-#: ../enigma2_master/lib/python/Plugins/Extensions/CutListEditor/plugin.py:175
-msgid "Make this mark an 'in' point"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/CutListEditor/plugin.py:176
-#: ../enigma2_master/lib/python/Plugins/Extensions/CutListEditor/plugin.py:176
-msgid "Make this mark an 'out' point"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/CutListEditor/plugin.py:177
-#: ../enigma2_master/lib/python/Plugins/Extensions/CutListEditor/plugin.py:177
-msgid "Make this mark just a mark"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/PluginBrowser.py:70
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:128
-#: ../enigma2_master/lib/python/Screens/PluginBrowser.py:70
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:128
-msgid "Manage extensions"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/plugin.py:33
-msgid "Manage network shares"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/plugin.py:33
-msgid "Manage your network shares..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:2024
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:2028
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1996
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:2000
-msgid "Manage your receiver's software"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:469
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:140
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:469
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:140
-msgid "Manual transponder"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:271
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:282
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:271
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:282
-msgid "Manufacturer"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerImporter.py:155
-#, python-format
-msgid "Match Timespan: %02d:%02d - %02d:%02d"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:494
-#: ../enigma2_plugins/autotimer/src/AutoTimerWizard.py:87
-msgid "Match title"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerImporter.py:137
-#, python-format
-msgid "Match title: %s"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:276
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:276
-msgid "Max. Bitrate: "
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:526
-msgid "Maximum duration (in m)"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:473
-msgid ""
-"Maximum event duration to match. If an event is longer than this ammount of "
-"time (without offset) it won't be matched."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:964
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:964
-msgid "Media player"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/DVDToolbox.py:149
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/DVDToolbox.py:179
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/Process.py:292
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/DVDToolbox.py:149
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/DVDToolbox.py:179
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/Process.py:292
-msgid "Medium is not a writeable DVD!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/Process.py:297
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/Process.py:297
-msgid "Medium is not empty!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/AudioSelection.py:168
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:156
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:158
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:159
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:160
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:161
-#: ../enigma2_master/lib/python/Screens/AudioSelection.py:168
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:156
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:158
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:159
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:160
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:161
-#: ../enigma2_plugins/ac3lipsync/src/AC3main.py:205
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Menu"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:216
-#: ../enigma2_plugins/mytube/src/plugin.py:107
-msgid "Mexico"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Harddisk.py:236
-#: ../enigma2_master/lib/python/Components/Harddisk.py:236
-msgid "Mkfs failed"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:110
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:62
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:110
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:62
-msgid "Mode"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/HarddiskSetup.py:47
-#: ../enigma2_master/lib/python/Screens/HarddiskSetup.py:47
-msgid "Model: "
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerSettings.py:42
-msgid "Modify existing timers"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:380
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:405
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:414
-#: ../enigma2_experimental/lib/python/Screens/ServiceInfo.py:136
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:450
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:88
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:380
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:405
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:414
-#: ../enigma2_master/lib/python/Screens/ServiceInfo.py:136
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:450
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:88
-msgid "Modulation"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/EpgSelection.py:326
-#: ../enigma2_experimental/lib/python/Components/EpgList.py:38
-#: ../enigma2_experimental/lib/python/Components/TimerList.py:24
-#: ../enigma2_experimental/lib/python/Tools/FuzzyDate.py:13
-#: ../enigma2_master/lib/python/Screens/EpgSelection.py:326
-#: ../enigma2_master/lib/python/Components/EpgList.py:38
-#: ../enigma2_master/lib/python/Components/TimerList.py:24
-#: ../enigma2_master/lib/python/Tools/FuzzyDate.py:13
-msgid "Mon"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:109
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:109
-msgid "Mon-Fri"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:124
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:163
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:124
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:163
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:44
-msgid "Monday"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:285
-msgid "Monthly"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:968
-msgid "More video entries."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:102
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:102
-msgid "Mosquito noise reduction"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:241
-#: ../enigma2_plugins/mytube/src/plugin.py:132
-#: ../enigma2_plugins/mytube/src/plugin.py:797
-msgid "Most discussed"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:243
-#: ../enigma2_plugins/mytube/src/plugin.py:134
-#: ../enigma2_plugins/mytube/src/plugin.py:798
-msgid "Most linked"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:795
-msgid "Most popular"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:245
-#: ../enigma2_plugins/mytube/src/plugin.py:136
-#: ../enigma2_plugins/mytube/src/plugin.py:796
-msgid "Most recent"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:244
-#: ../enigma2_plugins/mytube/src/plugin.py:135
-#: ../enigma2_plugins/mytube/src/plugin.py:800
-msgid "Most responded"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:238
-#: ../enigma2_plugins/mytube/src/plugin.py:129
-#: ../enigma2_plugins/mytube/src/plugin.py:794
-msgid "Most viewed"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Harddisk.py:236
-#: ../enigma2_master/lib/python/Components/Harddisk.py:236
-msgid "Mount failed"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountView.py:60
-msgid "Mount informations"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountEdit.py:192
-msgid "Mount options"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountEdit.py:180
-msgid "Mount type"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountManager.py:64
-#: ../enigma2_plugins/networkbrowser/src/plugin.py:33
-msgid "MountManager"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountView.py:59
-msgid ""
-"Mounted/\n"
-"Unmounted"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountManager.py:74
-msgid "Mountpoints management"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountEdit.py:69
-msgid "Mounts editor"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/NetworkBrowser.py:108
-msgid "Mounts management"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1438
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1438
-msgid "Move Picture in Picture"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:236
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:236
-msgid "Move east"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/AC3main.py:202
-msgid "Move plugin screen"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/MovableScreen.py:22
-msgid "Move screen down"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/MovableScreen.py:29
-msgid "Move screen to the center of your TV"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/MovableScreen.py:19
-msgid "Move screen to the left"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/MovableScreen.py:31
-msgid "Move screen to the lower left corner"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/MovableScreen.py:33
-msgid "Move screen to the lower right corner"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/MovableScreen.py:28
-msgid "Move screen to the middle of the left border"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/MovableScreen.py:30
-msgid "Move screen to the middle of the right border"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/MovableScreen.py:20
-msgid "Move screen to the right"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/MovableScreen.py:25
-msgid "Move screen to the upper left corner"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/MovableScreen.py:27
-msgid "Move screen to the upper right corner"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/MovableScreen.py:21
-msgid "Move screen up"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:233
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:233
-msgid "Move west"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/RecordPaths.py:98
-#: ../enigma2_experimental/lib/python/Screens/RecordPaths.py:111
-#: ../enigma2_master/lib/python/Screens/RecordPaths.py:98
-#: ../enigma2_master/lib/python/Screens/RecordPaths.py:111
-msgid "Movie location"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/EventView.py:213
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:601
-#: ../enigma2_master/lib/python/Screens/EventView.py:213
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:601
-msgid "Multi EPG"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:868
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:868
-msgid "Multimedia"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Ci.py:333
-#: ../enigma2_master/lib/python/Screens/Ci.py:333
-msgid "Multiple service support"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:534
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:534
-msgid "Multisat"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:183
-#: ../enigma2_plugins/mytube/src/plugin.py:74
-msgid "Music"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:1797
-msgid "My TubePlayer"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:525
-#: ../enigma2_plugins/mytube/src/plugin.py:531
-msgid "MyTube Settings"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:434
-msgid "MyTubePlayer"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:504
-#: ../enigma2_plugins/mytube/src/plugin.py:506
-#: ../enigma2_plugins/mytube/src/plugin.py:513
-msgid "MyTubePlayer Help"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:575
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:591
-msgid "MyTubePlayer active video downloads"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:412
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:415
-msgid "MyTubePlayer settings"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:1350
-msgid "MyTubeVideoInfoScreen"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:1493
-msgid "MyTubeVideohelpScreen"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:387
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:391
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:394
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:398
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:402
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:733
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:741
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:887
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py:234
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:387
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:391
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:394
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:398
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:402
-#: ../enigma2_master/lib/python/Components/NimManager.py:733
-#: ../enigma2_master/lib/python/Components/NimManager.py:741
-#: ../enigma2_master/lib/python/Components/NimManager.py:887
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py:234
-msgid "N/A"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/plugin.py:19
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/plugin.py:23
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/plugin.py:19
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/plugin.py:23
-msgid "NFI Image Flashing"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/flasher.py:202
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/flasher.py:202
-msgid "NFI image flashing completed. Press Yellow to Reboot!"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountEdit.py:97
-msgid "NFS share"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/AVSwitch.py:112
-#: ../enigma2_master/lib/python/Components/AVSwitch.py:112
-msgid "NTSC"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:141
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:141
-msgid "Name"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1347
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1347
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Nameserver"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:277
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:277
-#, python-format
-msgid "Nameserver %d"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:886
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:886
-msgid "Nameserver settings"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:365
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:498
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:365
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:498
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Netmask"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:858
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:858
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Network"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Harddisk.py:440
-#: ../enigma2_master/lib/python/Components/Harddisk.py:440
-msgid "Network Mount"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:515
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:520
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:515
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:520
-msgid "Network SSID"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/plugin.py:12
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/plugin.py:21
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/plugin.py:12
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/plugin.py:21
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/
-msgid "Network Wizard"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:418
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:418
-msgid "Network scan"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:887
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:887
-msgid "Network test"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1305
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1305
-msgid "Network test: "
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:372
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:865
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:144
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:372
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:865
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:144
-msgid "Network:"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/plugin.py:32
-msgid "NetworkBrowser"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:150
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:913
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:150
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:913
-msgid "NetworkWizard"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:285
-msgid "Never"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:957
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:957
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:814
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:1017
-msgid "New"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ParentalControlSetup.py:320
-#: ../enigma2_master/lib/python/Screens/ParentalControlSetup.py:320
-msgid "New PIN"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:217
-#: ../enigma2_plugins/mytube/src/plugin.py:108
-msgid "New Zealand"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/FrontprocessorUpgrade/plugin.py:36
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/FrontprocessorUpgrade/plugin.py:36
-msgid "New version:"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:191
-#: ../enigma2_plugins/mytube/src/plugin.py:82
-msgid "News & Politics"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/EpgSelection.py:61
-#: ../enigma2_master/lib/python/Screens/EpgSelection.py:61
-msgid "Next"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Ci.py:25
-#: ../enigma2_experimental/lib/python/Screens/Ci.py:27
-#: ../enigma2_experimental/lib/python/Screens/InfoBar.py:169
-#: ../enigma2_experimental/lib/python/Screens/InfoBar.py:176
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:401
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:272
-#: ../enigma2_master/lib/python/Screens/Ci.py:25
-#: ../enigma2_master/lib/python/Screens/Ci.py:27
-#: ../enigma2_master/lib/python/Screens/InfoBar.py:169
-#: ../enigma2_master/lib/python/Screens/InfoBar.py:176
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:401
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:272
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:292
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:176
-#: ../enigma2_plugins/mytube/src/plugin.py:67
-#: ../enigma2_plugins/mytube/src/plugin.py:620
-#: ../enigma2_plugins/mytube/src/plugin.py:626 ../enigma2_experimental/data/
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Videomode/
-#: ../enigma2_master/data/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Videomode/
-#: ../enigma2_plugins/autotimer/src/
-msgid "No"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/Process.py:296
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/Process.py:296
-msgid "No (supported) DVDROM found!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py:70
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py:425
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py:454
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py:70
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py:425
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py:454
-msgid "No Connection"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1643
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1643
-msgid "No HDD found or HDD not initialized!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:454
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:454
-msgid "No Networks found"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:2216
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:2216
-msgid ""
-"No data on transponder!\n"
-"(Timeout reading PAT)"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1209
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1209
-msgid "No description available."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/flasher.py:180
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/flasher.py:180
-msgid "No details for this image file"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaScanner/plugin.py:29
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaScanner/plugin.py:29
-msgid "No displayable files on this medium found!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1530
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1530
-msgid "No event info found, recording indefinitely."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:950
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:986
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:950
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:986
-msgid ""
-"No fast winding possible yet.. but you can use the number buttons to skip "
-"forward/backward!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:2214
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:2214
-msgid "No free tuner!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:214
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:640
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:214
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:640
-msgid "No network connection available."
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/NetworkBrowser.py:193
-msgid "No network devices found!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:338
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:346
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:338
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:346
-msgid "No networks found"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1427
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1427
-msgid ""
-"No packages were upgraded yet. So you can check your network and try again."
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:1751
-msgid "No playable video found! Stop playing this movie?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:586
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:586
-msgid "No positioner capable frontend found."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:261
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:261
-msgid "No satellite frontend found!!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/MovieSelection.py:431
-#: ../enigma2_master/lib/python/Screens/MovieSelection.py:431
-msgid "No tags are set on these movies."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:401
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:401
-msgid "No to all"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:601
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:601
-msgid "No tuner is configured for use with a diseqc positioner!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:744
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:744
-msgid ""
-"No tuner is enabled!\n"
-"Please setup your tuner settings before you start a service scan."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ParentalControlSetup.py:159
-#: ../enigma2_master/lib/python/Screens/ParentalControlSetup.py:159
-msgid ""
-"No valid service PIN found!\n"
-"Do you like to change the service PIN now?\n"
-"When you say 'No' here the service protection stay disabled!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ParentalControlSetup.py:157
-#: ../enigma2_master/lib/python/Screens/ParentalControlSetup.py:157
-msgid ""
-"No valid setup PIN found!\n"
-"Do you like to change the setup PIN now?\n"
-"When you say 'No' here the setup protection stay disabled!"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:483
-msgid "No videos to display"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:355
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:355
-msgid "No wireless networks found! Please refresh."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:33
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:33
-msgid ""
-"No working local network adapter found.\n"
-"Please verify that you have attached a network cable and your network is "
-"configured correctly."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:32
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:32
-msgid ""
-"No working wireless network adapter found.\n"
-"Please verify that you have attached a compatible WLAN device and your "
-"network is configured correctly."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:706
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:706
-msgid ""
-"No working wireless network interface found.\n"
-" Please verify that you have attached a compatible WLAN device or enable "
-"your local network interface."
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:1744
-msgid "No, but play video again"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBar.py:177
-#: ../enigma2_master/lib/python/Screens/InfoBar.py:177
-msgid "No, but restart from begin"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:621
-msgid "No, but switch to video entries."
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:627
-msgid "No, but switch to video search."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:52
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:52
-msgid "No, never"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:278
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:278
-msgid "No, not now"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:279
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:279
-msgid "No, send them never"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:586
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:629
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:674
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1149
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1152
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1173
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1175
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1181
-#: ../enigma2_experimental/lib/python/Tools/Transponder.py:14
-#: ../enigma2_experimental/lib/python/Tools/Transponder.py:61
-#: ../enigma2_experimental/lib/python/Tools/Transponder.py:107
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:586
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:629
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:674
-#: ../enigma2_master/lib/python/Components/NimManager.py:1149
-#: ../enigma2_master/lib/python/Components/NimManager.py:1152
-#: ../enigma2_master/lib/python/Components/NimManager.py:1173
-#: ../enigma2_master/lib/python/Components/NimManager.py:1175
-#: ../enigma2_master/lib/python/Components/NimManager.py:1181
-#: ../enigma2_master/lib/python/Tools/Transponder.py:14
-#: ../enigma2_master/lib/python/Tools/Transponder.py:61
-#: ../enigma2_master/lib/python/Tools/Transponder.py:107
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:316
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:339
-#: ../enigma2_plugins/autotimer/src/plugin.py:20
-msgid "None"
-msgstr ""
-
-#. TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right)
-#: ../enigma2_experimental/lib/python/Components/AVSwitch.py:108
-#: ../enigma2_master/lib/python/Components/AVSwitch.py:108
-msgid "Nonlinear"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:195
-#: ../enigma2_plugins/mytube/src/plugin.py:86
-msgid "Nonprofits & Activism"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1164
-#: ../enigma2_master/lib/python/Components/NimManager.py:1164
-msgid "North"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Language.py:33
-#: ../enigma2_master/lib/python/Components/Language.py:33
-msgid "Norwegian"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Task.py:368
-#: ../enigma2_master/lib/python/Components/Task.py:368
-#, python-format
-msgid ""
-"Not enough diskspace. Please free up some diskspace and try again. (%d MB "
-"required, %d MB available)"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:485
-msgid "Not fetching feed entries"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:321
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:859
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:861
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:1009
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:1011
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/DefaultServicesScanner/plugin.py:90
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:321
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:859
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:861
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:1009
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:1011
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/DefaultServicesScanner/plugin.py:90
-msgid ""
-"Nothing to scan!\n"
-"Please setup your tuner settings before you start a service scan."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoTune/VideoFinetune.py:147
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoTune/VideoFinetune.py:147
-msgid ""
-"Now, use the contrast setting to turn up the brightness of the background as "
-"much as possible, but make sure that you can still see the difference "
-"between the two brightest levels of shades.If you have done that, press OK."
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:479
-msgid "Number of scheduled recordings left."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InputDeviceSetup.py:172
-#: ../enigma2_experimental/lib/python/Screens/LocationBox.py:91
-#: ../enigma2_experimental/lib/python/Screens/ParentalControlSetup.py:58
-#: ../enigma2_experimental/lib/python/Screens/ParentalControlSetup.py:335
-#: ../enigma2_experimental/lib/python/Screens/Setup.py:85
-#: ../enigma2_experimental/lib/python/Screens/TimeDateInput.py:13
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:30
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:61
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:109
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:221
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py:42
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:53
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:165
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/DiseqcTester/plugin.py:583
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:352
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/TempFanControl/plugin.py:103
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:48
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:303
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:37
-#: ../enigma2_master/lib/python/Screens/InputDeviceSetup.py:172
-#: ../enigma2_master/lib/python/Screens/LocationBox.py:91
-#: ../enigma2_master/lib/python/Screens/ParentalControlSetup.py:58
-#: ../enigma2_master/lib/python/Screens/ParentalControlSetup.py:335
-#: ../enigma2_master/lib/python/Screens/Setup.py:85
-#: ../enigma2_master/lib/python/Screens/TimeDateInput.py:13
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:30
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:61
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:109
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:221
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py:42
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:53
-#: ../enigma2_master/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:165
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/DiseqcTester/plugin.py:583
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:352
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/TempFanControl/plugin.py:103
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:48
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:303
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:37
-#: ../enigma2_plugins/ac3lipsync/src/AC3main.py:67
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:394
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:1015
-#: ../enigma2_plugins/autotimer/src/AutoTimerImporter.py:45
-#: ../enigma2_plugins/autotimer/src/AutoTimerImporter.py:119
-#: ../enigma2_plugins/autotimer/src/AutoTimerSettings.py:53
-#: ../enigma2_plugins/cdinfo/src/plugin.py:57
-#: ../enigma2_plugins/webinterface/src/WebIfConfig.py:35
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "OK"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CleanupWizard/CleanupWizard.py:70
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CleanupWizard/CleanupWizard.py:70
-msgid "OK, remove another extensions"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CleanupWizard/CleanupWizard.py:64
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CleanupWizard/CleanupWizard.py:64
-msgid "OK, remove some extensions"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:107
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:107
-msgid "OSD visibility"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1172
-#: ../enigma2_experimental/lib/python/Tools/Transponder.py:12
-#: ../enigma2_experimental/lib/python/Tools/Transponder.py:46
-#: ../enigma2_experimental/lib/python/Tools/Transponder.py:59
-#: ../enigma2_experimental/lib/python/Tools/Transponder.py:114
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoEnhancement/VideoEnhancement.py:148
-#: ../enigma2_master/lib/python/Components/NimManager.py:1172
-#: ../enigma2_master/lib/python/Tools/Transponder.py:12
-#: ../enigma2_master/lib/python/Tools/Transponder.py:46
-#: ../enigma2_master/lib/python/Tools/Transponder.py:59
-#: ../enigma2_master/lib/python/Tools/Transponder.py:114
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoEnhancement/VideoEnhancement.py:148
-msgid "Off"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:519
-msgid "Offset after recording (in m)"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:518
-msgid "Offset before recording (in m)"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1172
-#: ../enigma2_experimental/lib/python/Tools/Transponder.py:11
-#: ../enigma2_experimental/lib/python/Tools/Transponder.py:45
-#: ../enigma2_experimental/lib/python/Tools/Transponder.py:58
-#: ../enigma2_experimental/lib/python/Tools/Transponder.py:113
-#: ../enigma2_master/lib/python/Components/NimManager.py:1172
-#: ../enigma2_master/lib/python/Tools/Transponder.py:11
-#: ../enigma2_master/lib/python/Tools/Transponder.py:45
-#: ../enigma2_master/lib/python/Tools/Transponder.py:58
-#: ../enigma2_master/lib/python/Tools/Transponder.py:113
-msgid "On"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:294
-msgid "On any service"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:293
-msgid "On same service"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1181
-#: ../enigma2_master/lib/python/Components/NimManager.py:1181
-msgid "One"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/plugin.py:21
-msgid "Only AutoTimers created during this session"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:420
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:420
-msgid "Only Free scan"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:978
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:978
-msgid "Only extensions."
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:503
-#: ../enigma2_plugins/autotimer/src/AutoTimerWizard.py:72
-msgid "Only match during timespan"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerImporter.py:164
-#, python-format
-msgid "Only on Service: %s"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerOverview.py:95
-msgid "Open Context Menu"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/AC3main.py:73
-msgid "Open plugin menu"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:175
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:175
-msgid "Optionally enter your name if you want to."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ServiceInfo.py:137
-#: ../enigma2_master/lib/python/Screens/ServiceInfo.py:137
-msgid "Orbital Position"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/AC3setup.py:42
-msgid "Outer Bound (+/-)"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:502
-msgid "Override found with alternative service"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:365
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:365
-msgid "Overwrite configuration files ?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:376
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:376
-msgid "Overwrite configuration files during software upgrade?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/AVSwitch.py:112
-#: ../enigma2_master/lib/python/Components/AVSwitch.py:112
-msgid "PAL"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ServiceInfo.py:85
-#: ../enigma2_master/lib/python/Screens/ServiceInfo.py:85
-msgid "PIDs"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:610
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1357
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1752
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:610
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1357
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1750
-msgid "Package list update"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:154
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:154
-msgid "Packet management"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1744
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1742
-msgid "Packet manager"
-msgstr ""
-
-#. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term
-#: ../enigma2_experimental/lib/python/Components/AVSwitch.py:98
-#: ../enigma2_experimental/lib/python/Components/AVSwitch.py:106
-#: ../enigma2_master/lib/python/Components/AVSwitch.py:98
-#: ../enigma2_master/lib/python/Components/AVSwitch.py:106
-msgid "Pan&Scan"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/FileList.py:179
-#: ../enigma2_experimental/lib/python/Components/FileList.py:399
-#: ../enigma2_master/lib/python/Components/FileList.py:179
-#: ../enigma2_master/lib/python/Components/FileList.py:399
-msgid "Parent Directory"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/ParentalControl.py:111
-#: ../enigma2_master/lib/python/Components/ParentalControl.py:111
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Parental control"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ParentalControlSetup.py:45
-#: ../enigma2_master/lib/python/Screens/ParentalControlSetup.py:45
-msgid "Parental control setup"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ParentalControlSetup.py:85
-#: ../enigma2_master/lib/python/Screens/ParentalControlSetup.py:85
-msgid "Parental control type"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/Modem/plugin.py:113
-#: ../enigma2_master/lib/python/Plugins/Extensions/Modem/plugin.py:113
-#: ../enigma2_plugins/networkbrowser/src/MountEdit.py:197
-#: ../enigma2_plugins/networkbrowser/src/UserDialog.py:130
-msgid "Password"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:45
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:45
-msgid "Pause movie at end"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:190
-#: ../enigma2_plugins/mytube/src/plugin.py:81
-msgid "People & Blogs"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:184
-#: ../enigma2_plugins/mytube/src/plugin.py:75
-msgid "Pets & Animals"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/Modem/plugin.py:114
-#: ../enigma2_master/lib/python/Plugins/Extensions/Modem/plugin.py:114
-msgid "Phone number"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:125
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:628
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:629
-#: ../enigma2_master/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:125
-#: ../enigma2_master/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:628
-#: ../enigma2_master/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:629
-msgid "PicturePlayer"
-msgstr ""
-
-#. TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term.
-#: ../enigma2_experimental/lib/python/Components/AVSwitch.py:104
-#: ../enigma2_master/lib/python/Components/AVSwitch.py:104
-msgid "Pillarbox"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:383
-#: ../enigma2_experimental/lib/python/Screens/ServiceInfo.py:143
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:453
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:91
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:383
-#: ../enigma2_master/lib/python/Screens/ServiceInfo.py:143
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:453
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:91
-msgid "Pilot"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:114
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:114
-msgid "Play"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:490
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:1034
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:490
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:1034
-msgid "Play Audio-CD..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:531
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:756
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:531
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:756
-msgid "Play DVD"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:1022
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:1022
-msgid "Play Music..."
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:1798
-msgid "Play YouTube movies"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:249
-#: ../enigma2_plugins/mytube/src/plugin.py:139
-msgid "Play next video"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBar.py:45
-#: ../enigma2_master/lib/python/Screens/InfoBar.py:45
-msgid "Play recorded movies..."
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:249
-#: ../enigma2_plugins/mytube/src/plugin.py:139
-msgid "Play video again"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Harddisk.py:236
-#: ../enigma2_master/lib/python/Components/Harddisk.py:236
-msgid "Please Reboot"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaScanner/plugin.py:48
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaScanner/plugin.py:48
-msgid "Please Select Medium to be Scanned"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:299
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:299
-msgid "Please add titles to the compilation."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1609
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1609
-msgid "Please change recording endtime"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:646
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:646
-msgid "Please check your network settings!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:602
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1359
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:602
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1359
-msgid "Please choose an extension..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/DefaultWizard.py:95
-#: ../enigma2_master/lib/python/Screens/DefaultWizard.py:95
-msgid "Please choose he package..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/plugin.py:56
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/plugin.py:56
-msgid "Please do not change any values unless you know what you are doing!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:186
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:186
-msgid "Please enter a name for the new bouquet"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:260
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:260
-msgid "Please enter a name for the new marker"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/LocationBox.py:377
-#: ../enigma2_master/lib/python/Screens/LocationBox.py:377
-msgid "Please enter a new filename"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:608
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:608
-msgid "Please enter filename (empty = use current date)"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/LocationBox.py:239
-#: ../enigma2_master/lib/python/Screens/LocationBox.py:239
-msgid "Please enter name of the new directory"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ParentalControlSetup.py:25
-#: ../enigma2_master/lib/python/Screens/ParentalControlSetup.py:25
-msgid "Please enter the correct pin code"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ParentalControlSetup.py:348
-#: ../enigma2_master/lib/python/Screens/ParentalControlSetup.py:348
-msgid "Please enter the old PIN code"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:103
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:103
-msgid "Please enter your email address here:"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:105
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:105
-msgid "Please enter your name here (optional):"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:485
-msgid "Please enter your search term."
-msgstr ""
-
-#: ../enigma2_experimental/RecordTimer.py:383
-#: ../enigma2_master/RecordTimer.py:383
-msgid ""
-"Please note that the previously selected media could not be accessed and "
-"therefore the default directory is being used instead."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:283
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:264
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:283
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:264
-msgid "Please press OK to continue."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/OldSoftwareUpdate/plugin.py:21
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/OldSoftwareUpdate/plugin.py:21
-msgid "Please press OK!"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerImporter.py:299
-msgid "Please provide a Text to match"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:650
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:650
-msgid "Please select a playlist to delete..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:629
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:629
-msgid "Please select a playlist..."
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:483
-msgid "Please select a standard feed or try searching for videos."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:350
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:350
-msgid "Please select a subservice to record..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1769
-#: ../enigma2_experimental/lib/python/Screens/SubservicesQuickzap.py:116
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1769
-#: ../enigma2_master/lib/python/Screens/SubservicesQuickzap.py:116
-msgid "Please select a subservice..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/flasher.py:103
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/flasher.py:103
-msgid "Please select an NFI file and press green key to flash!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CleanupWizard/CleanupWizard.py:143
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CleanupWizard/CleanupWizard.py:151
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CleanupWizard/CleanupWizard.py:143
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CleanupWizard/CleanupWizard.py:151
-msgid "Please select an option below."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:268
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:268
-msgid "Please select medium to use as backup location"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/MovieSelection.py:428
-#: ../enigma2_master/lib/python/Screens/MovieSelection.py:428
-msgid "Please select tag to filter..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/MovieSelection.py:373
-#: ../enigma2_master/lib/python/Screens/MovieSelection.py:373
-msgid "Please select the movie path..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/PiPSetup.py:34
-#: ../enigma2_master/lib/python/Screens/PiPSetup.py:34
-msgid ""
-"Please use direction keys to move the PiP window.\n"
-"Press Bouquet +/- to resize the window.\n"
-"Press OK to go back to the TV mode or EXIT to cancel the moving."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Language.py:96
-#: ../enigma2_master/lib/python/Components/Language.py:96
-msgid ""
-"Please use the UP and DOWN keys to select your language. Afterwards press "
-"the OK button."
-msgstr ""
-
-#: ../enigma2_plugins/genuinedreambox/src/plugin.py:137
-msgid "Please wait (Step 2)"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:617
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:617
-msgid "Please wait for activation of your network configuration..."
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountEdit.py:326
-msgid "Please wait for activation of your network mount..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CleanupWizard/CleanupWizard.py:160
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CleanupWizard/CleanupWizard.py:160
-msgid "Please wait while removing selected package..."
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountView.py:113
-msgid "Please wait while removing your network mount..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/DiseqcTester/plugin.py:236
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/DiseqcTester/plugin.py:236
-msgid "Please wait while scanning is in progress..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CleanupWizard/CleanupWizard.py:93
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CleanupWizard/CleanupWizard.py:93
-msgid "Please wait while searching for removable packages..."
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountEdit.py:289
-msgid "Please wait while updating your network mount..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:205
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:205
-msgid "Please wait while we configure your network..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:185
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:185
-msgid "Please wait while we prepare your network interfaces..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:228
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:274
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:228
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:274
-msgid "Please wait while we test your network..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:962
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:962
-#: ../enigma2_plugins/networkbrowser/src/MountManager.py:119
-msgid "Please wait while your network is restarting..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1199
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1222
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1229
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:138
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:139
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:140
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:141
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:142
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:143
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1199
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1222
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1229
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:138
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:139
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:140
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:141
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:142
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:143
-msgid "Please wait..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/MovieSelection.py:185
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/DVDToolbox.py:67
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:404
-#: ../enigma2_master/lib/python/Screens/MovieSelection.py:185
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/DVDToolbox.py:67
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:404
-msgid "Please wait... Loading list..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:985
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:985
-msgid "Plugin manager activity information"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1082
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1082
-msgid "Plugin manager help"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/AC3setup.py:60
-#, python-format
-msgid "Plugin: %(plugin)s , Version: %(version)s"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:218
-#: ../enigma2_plugins/mytube/src/plugin.py:109
-msgid "Poland"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:375
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:445
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:83
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:375
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:445
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:83
-msgid "Polarity"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ServiceInfo.py:141
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1171
-#: ../enigma2_master/lib/python/Screens/ServiceInfo.py:141
-#: ../enigma2_master/lib/python/Components/NimManager.py:1171
-msgid "Polarization"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Language.py:34
-#: ../enigma2_master/lib/python/Components/Language.py:34
-msgid "Polish"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerSettings.py:40
-msgid "Poll Interval (in h)"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerSettings.py:39
-msgid "Poll automatically"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:25
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:25
-msgid "Port A"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:28
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:28
-msgid "Port B"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:30
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:30
-msgid "Port C"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:31
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:31
-msgid "Port D"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Language.py:35
-#: ../enigma2_master/lib/python/Components/Language.py:35
-msgid "Portuguese"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:535
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1157
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:535
-#: ../enigma2_master/lib/python/Components/NimManager.py:1157
-msgid "Positioner"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:192
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:192
-msgid "Positioner fine movement"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:191
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:191
-msgid "Positioner movement"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:605
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:611
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:605
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:611
-msgid "Positioner setup"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:194
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:194
-msgid "Positioner storage"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:474
-msgid ""
-"Power state to change to after recordings. Select \"standard\" to not change "
-"the default behavior of enigma2 or values changed by yourself."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:46
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:340
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:46
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:340
-msgid "Power threshold in mA"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:470
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:140
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:470
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:140
-msgid "Predefined transponder"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:736
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:736
-msgid "Prepare another USB stick for image flashing"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Ipkg.py:21
-#: ../enigma2_master/lib/python/Screens/Ipkg.py:21
-msgid "Preparing... Please wait"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:123
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:123
-msgid "Press INFO on your remote control for additional information."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:122
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:122
-msgid "Press MENU on your remote control for additional options."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:34
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:330
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:704
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1342
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:34
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:330
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:704
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1342
-msgid "Press OK on your remote control to continue."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SkinSelector/plugin.py:31
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SkinSelector/plugin.py:31
-msgid "Press OK to activate the selected skin."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:243
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:374
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:243
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:374
-#: ../enigma2_plugins/networkbrowser/src/MountEdit.py:64
-msgid "Press OK to activate the settings."
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/NetworkBrowser.py:364
-msgid "Press OK to collapse this host"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/UserManager.py:51
-msgid "Press OK to edit selected settings."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InputDeviceSetup.py:47
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:35
-#: ../enigma2_master/lib/python/Screens/InputDeviceSetup.py:47
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:35
-#: ../enigma2_plugins/networkbrowser/src/MountView.py:62
-msgid "Press OK to edit the settings."
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/NetworkBrowser.py:366
-msgid "Press OK to expand this host"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/DiseqcTester/plugin.py:560
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/DiseqcTester/plugin.py:560
-#, python-format
-msgid "Press OK to get further details for %s"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/NetworkBrowser.py:360
-msgid "Press OK to mount this share!"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/NetworkBrowser.py:111
-msgid "Press OK to mount!"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/UserDialog.py:90
-msgid "Press OK to save settings."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:934
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:934
-msgid "Press OK to scan"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:421
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:529
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:421
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:529
-msgid "Press OK to select a Provider."
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountManager.py:55
-msgid "Press OK to select."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:369
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:369
-msgid "Press OK to select/deselect a CAId."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:319
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:319
-msgid "Press OK to start the scan"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1974
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1946
-msgid "Press OK to toggle the selection."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:36
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:36
-msgid "Press yellow to set this interface as default interface."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/EpgSelection.py:60
-#: ../enigma2_master/lib/python/Screens/EpgSelection.py:60
-msgid "Prev"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerOverview.py:212
-msgid "Preview"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerPreview.py:76
-msgid "Preview AutoTimer"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:127
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:127
-msgid "Preview menu"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:358
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:358
-msgid "Primary DNS"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:248
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:248
-msgid "Priority"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:689
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:689
-msgid "Process"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:63
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py:72
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:63
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py:72
-msgid "Properties of current title"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ParentalControlSetup.py:83
-#: ../enigma2_master/lib/python/Screens/ParentalControlSetup.py:83
-msgid "Protect services"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ParentalControlSetup.py:79
-#: ../enigma2_master/lib/python/Screens/ParentalControlSetup.py:79
-msgid "Protect setup"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:710
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:846
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1460
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:710
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:846
-#: ../enigma2_master/lib/python/Components/NimManager.py:1460
-msgid "Provider"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:166
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:166
-msgid "Provider to scan"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:955
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:470
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:955
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:470
-msgid "Providers"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:163
-#: ../enigma2_plugins/mytube/src/plugin.py:54
-msgid "Published"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/SocketMMI/plugin.py:25
-#: ../enigma2_master/lib/python/Plugins/Extensions/SocketMMI/plugin.py:25
-msgid "Python frontend for /tmp/mmi.socket"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/DiseqcTester/plugin.py:592
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/DiseqcTester/plugin.py:592
-msgid "Quick"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1760
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1762
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1765
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1760
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1762
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1765
-msgid "Quickzap"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/AVSwitch.py:71
-#: ../enigma2_master/lib/python/Components/AVSwitch.py:71
-msgid "RGB"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Network.py:352
-#: ../enigma2_experimental/lib/python/Components/Network.py:354
-#: ../enigma2_master/lib/python/Components/Network.py:352
-#: ../enigma2_master/lib/python/Components/Network.py:354
-msgid "Ralink"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Harddisk.py:441
-#: ../enigma2_master/lib/python/Components/Harddisk.py:441
-msgid "Ram Disk"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/DiseqcTester/plugin.py:592
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/DiseqcTester/plugin.py:592
-msgid "Random"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:164
-#: ../enigma2_plugins/mytube/src/plugin.py:55
-msgid "Rating"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:1103
-msgid "Ratings: "
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InputDeviceSetup.py:263
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:652
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:440
-#: ../enigma2_experimental/lib/python/Components/ConfigList.py:237
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:222
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:408
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:174
-#: ../enigma2_master/lib/python/Screens/InputDeviceSetup.py:263
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:652
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:440
-#: ../enigma2_master/lib/python/Components/ConfigList.py:237
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:222
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:408
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:174
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:627
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:957
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:1127
-#: ../enigma2_plugins/autotimer/src/AutoTimerImporter.py:226
-#: ../enigma2_plugins/autotimer/src/AutoTimerOverview.py:197
-msgid "Really close without saving settings?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEdit.py:192
-#: ../enigma2_master/lib/python/Screens/TimerEdit.py:192
-msgid "Really delete done timers?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/SubservicesQuickzap.py:127
-#: ../enigma2_master/lib/python/Screens/SubservicesQuickzap.py:127
-msgid "Really exit the subservices quickzap?"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:629
-msgid "Really quit MyTube Player?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Standby.py:130
-#: ../enigma2_master/lib/python/Screens/Standby.py:130
-msgid "Really reboot now?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Standby.py:134
-#: ../enigma2_master/lib/python/Screens/Standby.py:134
-msgid "Really restart now?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Standby.py:128
-#: ../enigma2_master/lib/python/Screens/Standby.py:128
-msgid "Really shutdown now?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/flasher.py:223
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/flasher.py:223
-msgid "Reboot"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:240
-#: ../enigma2_plugins/mytube/src/plugin.py:131
-#: ../enigma2_plugins/mytube/src/plugin.py:799
-msgid "Recently featured"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:117
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:117
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Record"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:541
-msgid "Record a maximum of x times"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:1066
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:1119
-msgid "Record on"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1553
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1553
-#, python-format
-msgid "Record time limited due to conflicting timer %s"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/MovieSelection.py:357
-#: ../enigma2_master/lib/python/Screens/MovieSelection.py:357
-msgid "Recorded files..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/EventView.py:117
-#: ../enigma2_master/lib/python/Screens/EventView.py:117
-msgid "Recording"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Standby.py:119
-#: ../enigma2_master/lib/python/Screens/Standby.py:119
-msgid "Recording(s) are in progress or coming up in few seconds!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:856
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:856
-msgid "Recordings"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ParentalControlSetup.py:321
-#: ../enigma2_master/lib/python/Screens/ParentalControlSetup.py:321
-msgid "Reenter new PIN"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:66
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:66
-msgid "Refresh Rate"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:976
-msgid "Related video entries."
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:161
-#: ../enigma2_plugins/mytube/src/plugin.py:52
-msgid "Relevance"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1677
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1677
-msgid "Reload"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ParentalControlSetup.py:102
-#: ../enigma2_master/lib/python/Screens/ParentalControlSetup.py:102
-msgid "Reload Black-/Whitelists"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ParentalControlSetup.py:93
-#: ../enigma2_master/lib/python/Screens/ParentalControlSetup.py:93
-msgid "Remember service PIN"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ParentalControlSetup.py:95
-#: ../enigma2_master/lib/python/Screens/ParentalControlSetup.py:95
-msgid "Remember service PIN cancel"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1219
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1219
-msgid "Remove"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/LocationBox.py:93
-#: ../enigma2_experimental/lib/python/Screens/LocationBox.py:206
-#: ../enigma2_master/lib/python/Screens/LocationBox.py:93
-#: ../enigma2_master/lib/python/Screens/LocationBox.py:206
-msgid "Remove Bookmark"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/PluginBrowser.py:75
-#: ../enigma2_master/lib/python/Screens/PluginBrowser.py:75
-msgid "Remove Plugins"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/CutListEditor/plugin.py:179
-#: ../enigma2_master/lib/python/Plugins/Extensions/CutListEditor/plugin.py:179
-msgid "Remove a mark"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:64
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:64
-msgid "Remove currently selected title"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1302
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1796
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1302
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1794
-msgid "Remove finished."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/PluginBrowser.py:166
-#: ../enigma2_master/lib/python/Screens/PluginBrowser.py:166
-msgid "Remove plugins"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerOverview.py:102
-msgid "Remove selected AutoTimer"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/EpgSelection.py:254
-#: ../enigma2_experimental/lib/python/Screens/EpgSelection.py:370
-#: ../enigma2_experimental/lib/python/Screens/EventView.py:104
-#: ../enigma2_experimental/lib/python/Screens/EventView.py:164
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/GraphMultiEPG/GraphMultiEpg.py:608
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/GraphMultiEPG/GraphMultiEpg.py:659
-#: ../enigma2_master/lib/python/Screens/EpgSelection.py:254
-#: ../enigma2_master/lib/python/Screens/EpgSelection.py:370
-#: ../enigma2_master/lib/python/Screens/EventView.py:104
-#: ../enigma2_master/lib/python/Screens/EventView.py:164
-#: ../enigma2_master/lib/python/Plugins/Extensions/GraphMultiEPG/GraphMultiEpg.py:608
-#: ../enigma2_master/lib/python/Plugins/Extensions/GraphMultiEPG/GraphMultiEpg.py:659
-msgid "Remove timer"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:64
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:293
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:64
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:293
-msgid "Remove title"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Ipkg.py:100
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1020
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1391
-#: ../enigma2_master/lib/python/Screens/Ipkg.py:100
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1020
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1391
-msgid "Removing"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/LocationBox.py:285
-#: ../enigma2_master/lib/python/Screens/LocationBox.py:285
-#, python-format
-msgid "Removing directory %s failed. (Maybe not empty.)"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/LocationBox.py:92
-#: ../enigma2_master/lib/python/Screens/LocationBox.py:92
-msgid "Rename"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:23
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:23
-msgid "Rename crashlogs"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:145
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:145
-msgid "Repeat Type"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEdit.py:104
-#: ../enigma2_master/lib/python/Screens/TimerEdit.py:104
-msgid "Repeating event currently recording... What do you want to do?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:151
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:151
-msgid "Repeats"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:549
-msgid "Require description to be unique"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:322
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:332
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:322
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:332
-msgid "Required medium type:"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/NetworkBrowser.py:109
-msgid "Rescan"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Ci.py:321
-#: ../enigma2_master/lib/python/Screens/Ci.py:321
-msgid "Reset"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:129
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:129
-msgid "Reset and renumerate title names"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:547
-msgid "Reset count"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/MovableScreen.py:34
-msgid "Reset saved position"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:250
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:250
-msgid "Reset video enhancement settings to system defaults?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:213
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:213
-msgid "Reset video enhancement settings to your last configuration?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:64
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:64
-msgid "Resolution"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:984
-msgid "Response video entries."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SkinSelector/plugin.py:103
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SkinSelector/plugin.py:103
-msgid "Restart GUI now?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:888
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:888
-msgid "Restart network"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1299
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1422
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1299
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1422
-msgid "Restart test"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:856
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:856
-msgid "Restart your network connection and interfaces.\n"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:206
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:206
-msgid "Restore"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:237
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:237
-msgid "Restore backups"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/flasher.py:217
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:312
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:320
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:322
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/flasher.py:217
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:312
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:320
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:322
-msgid "Restore is running..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:264
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:264
-msgid "Restore running"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:132
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:132
-msgid "Restore system settings"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:475
-msgid "Restrict \"after event\" to a certain timespan?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:41
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:41
-msgid "Resume from last position"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1912
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1912
-#, python-format
-msgid "Resume position at %s"
-msgstr ""
-
-#. TRANSLATORS: The string "Resuming playback" flashes for a moment
-#. TRANSLATORS: at the start of a movie, when the user has selected
-#. TRANSLATORS: "Resume from last position" as start behavior.
-#. TRANSLATORS: The purpose is to notify the user that the movie starts
-#. TRANSLATORS: in the middle somewhere and not from the beginning.
-#. TRANSLATORS: (Some translators seem to have interpreted it as a
-#. TRANSLATORS: question or a choice, but it is a statement.)
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1921
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1921
-msgid "Resuming playback"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:527
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:527
-msgid "Return to file browser"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:43
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:45
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:43
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:45
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:249
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:252
-#: ../enigma2_plugins/mytube/src/plugin.py:139
-#: ../enigma2_plugins/mytube/src/plugin.py:142
-msgid "Return to movie list"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:43
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:45
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:43
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:45
-msgid "Return to previous service"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoEnhancement/VideoEnhancement.py:150
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoEnhancement/VideoEnhancement.py:150
-msgid "Right"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:382
-#: ../enigma2_experimental/lib/python/Screens/ServiceInfo.py:144
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:452
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:90
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:382
-#: ../enigma2_master/lib/python/Screens/ServiceInfo.py:144
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:452
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:90
-msgid "Rolloff"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:47
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:341
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:47
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:341
-msgid "Rotor turning speed"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/AudioSelection.py:95
-#: ../enigma2_experimental/lib/python/Screens/AudioSelection.py:141
-#: ../enigma2_master/lib/python/Screens/AudioSelection.py:95
-#: ../enigma2_master/lib/python/Screens/AudioSelection.py:141
-msgid "Running"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:219
-#: ../enigma2_plugins/mytube/src/plugin.py:110
-msgid "Russia"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Language.py:36
-#: ../enigma2_master/lib/python/Components/Language.py:36
-msgid "Russian"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/AVSwitch.py:71
-#: ../enigma2_master/lib/python/Components/AVSwitch.py:71
-msgid "S-Video"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:332
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:332
-msgid "SINGLE LAYER DVD"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:259
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:77
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:259
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:77
-msgid "SSID:"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/EpgSelection.py:326
-#: ../enigma2_experimental/lib/python/Components/EpgList.py:38
-#: ../enigma2_experimental/lib/python/Components/TimerList.py:24
-#: ../enigma2_experimental/lib/python/Tools/FuzzyDate.py:13
-#: ../enigma2_master/lib/python/Screens/EpgSelection.py:326
-#: ../enigma2_master/lib/python/Components/EpgList.py:38
-#: ../enigma2_master/lib/python/Components/TimerList.py:24
-#: ../enigma2_master/lib/python/Tools/FuzzyDate.py:13
-msgid "Sat"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:22
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:147
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:363
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:371
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:387
-#: ../enigma2_experimental/lib/python/Components/ServiceScan.py:40
-#: ../enigma2_experimental/lib/python/Tools/Transponder.py:8
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:430
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:67
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:22
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:147
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:363
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:371
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:387
-#: ../enigma2_master/lib/python/Components/ServiceScan.py:40
-#: ../enigma2_master/lib/python/Tools/Transponder.py:8
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:430
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:67
-msgid "Satellite"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/plugin.py:68
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/plugin.py:74
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/plugin.py:68
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/plugin.py:74
-msgid "Satellite Equipment Setup"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:864
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:864
-msgid "Satellite equipment"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:709
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:848
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:709
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:848
-msgid "Satellites"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:273
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:279
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:273
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:279
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Satfinder"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:516
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:516
-msgid "Sats"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:90
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:90
-msgid "Saturation"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:124
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:168
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:124
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:168
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:49
-msgid "Saturday"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/RecordPaths.py:25
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:112
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:221
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:224
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/settings.py:70
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CleanupWizard/plugin.py:58
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:368
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:79
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:116
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1553
-#: ../enigma2_master/lib/python/Screens/RecordPaths.py:25
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:112
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:221
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:224
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/settings.py:70
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CleanupWizard/plugin.py:58
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:368
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:79
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:116
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1553
-#: ../enigma2_plugins/ac3lipsync/src/AC3setup.py:64
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:812
-#: ../enigma2_plugins/autotimer/src/AutoTimerOverview.py:74
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:399
-msgid "Save"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:608
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:608
-msgid "Save Playlist"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/AC3main.py:82
-msgid "Save current delay to key"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/AC3main.py:68
-msgid "Save to key"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/AC3main.py:74
-#: ../enigma2_plugins/ac3lipsync/src/AC3main.py:81
-msgid "Save values and close plugin"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/MovableScreen.py:17
-#: ../enigma2_plugins/ac3lipsync/src/MovableScreen.py:24
-msgid "Save values and close screen"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:93
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:110
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:93
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:110
-msgid "Scaler sharpness"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:178
-#: ../enigma2_master/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:178
-msgid "Scaling Mode"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:930
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:930
-msgid "Scan "
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaScanner/plugin.py:94
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaScanner/plugin.py:94
-msgid "Scan Files..."
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/NetworkBrowser.py:499
-msgid "Scan NFS share"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:186
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:186
-msgid "Scan QAM128"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:183
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:183
-msgid "Scan QAM16"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:187
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:187
-msgid "Scan QAM256"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:184
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:184
-msgid "Scan QAM32"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:185
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:185
-msgid "Scan QAM64"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:189
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:189
-msgid "Scan SR6875"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:188
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:188
-msgid "Scan SR6900"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:897
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:897
-msgid "Scan Wireless Networks"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:190
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:191
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:190
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:191
-msgid "Scan additional SR"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:175
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:175
-msgid "Scan band EU HYPER"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:170
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:170
-msgid "Scan band EU MID"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:174
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:174
-msgid "Scan band EU SUPER"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:172
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:172
-msgid "Scan band EU UHF IV"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:173
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:173
-msgid "Scan band EU UHF V"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:169
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:169
-msgid "Scan band EU VHF I"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:171
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:171
-msgid "Scan band EU VHF III"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:178
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:178
-msgid "Scan band US HIGH"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:180
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:180
-msgid "Scan band US HYPER"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:176
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:176
-msgid "Scan band US LOW"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:177
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:177
-msgid "Scan band US MID"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:179
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:179
-msgid "Scan band US SUPER"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/NetworkBrowser.py:500
-msgid "Scan range"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:852
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:852
-msgid ""
-"Scan your network for wireless access points and connect to them using your "
-"selected wireless device.\n"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/DefaultServicesScanner/plugin.py:137
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/DefaultServicesScanner/plugin.py:137
-msgid ""
-"Scans default lamedbs sorted by satellite with a connected dish positioner"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:196
-#: ../enigma2_plugins/mytube/src/plugin.py:87
-msgid "Science & Technology"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:438
-msgid "Search Term(s)"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:421
-msgid "Search category:"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:235
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:235
-msgid "Search east"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/plugin.py:32
-msgid "Search for network shares"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/plugin.py:32
-msgid "Search for network shares..."
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:422
-msgid "Search region:"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:420
-msgid "Search restricted content:"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:500
-msgid "Search strictness"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:499
-msgid "Search type"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:234
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:234
-msgid "Search west"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:607
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:607
-msgid "Searching for available updates. Please wait..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:610
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:610
-msgid "Searching for new installed or removed packages. Please wait..."
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/NetworkBrowser.py:189
-msgid "Searching your network. Please wait..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:359
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:359
-msgid "Secondary DNS"
-msgstr ""
-
-#: ../enigma2_plugins/genuinedreambox/src/plugin.py:160
-msgid "Security service not running."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InputDeviceSetup.py:50
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:40
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:155
-#: ../enigma2_master/lib/python/Screens/InputDeviceSetup.py:50
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:40
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:155
-msgid "Select"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:462
-msgid ""
-"Select \"exact match\" to enforce \"Match title\" to match exactly or "
-"\"partial match\" if you only want to search for a part of the event title."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/LocationBox.py:51
-#: ../enigma2_master/lib/python/Screens/LocationBox.py:51
-msgid "Select Location"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerImporter.py:59
-msgid "Select a timer to import"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/AudioSelection.py:71
-#: ../enigma2_master/lib/python/Screens/AudioSelection.py:71
-msgid "Select audio track"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:1103
-msgid "Select bouquet to record on"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:225
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:272
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:225
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:272
-msgid "Select channel to record from"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:1097
-msgid "Select channel to record on"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:735
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:735
-msgid "Select desired image from feed list"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:152
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:152
-msgid "Select files for backup."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:148
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:148
-msgid "Select files/folders to backup"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InputDeviceSetup.py:78
-#: ../enigma2_master/lib/python/Screens/InputDeviceSetup.py:78
-msgid "Select input device"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InputDeviceSetup.py:61
-#: ../enigma2_experimental/lib/python/Screens/InputDeviceSetup.py:67
-#: ../enigma2_master/lib/python/Screens/InputDeviceSetup.py:61
-#: ../enigma2_master/lib/python/Screens/InputDeviceSetup.py:67
-msgid "Select input device."
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:802
-msgid "Select new feed to view."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:428
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:428
-msgid "Select provider to add..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:533
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:533
-msgid "Select service to add..."
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/AC3main.py:241
-#, python-format
-msgid "Select the key you want to set to %i ms"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:483
-msgid "Select the location to save the recording to."
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:925
-msgid "Select type of Filter"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1495
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1495
-msgid "Select upgrade source to edit."
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:463
-msgid "Select whether or not you want to enforce case correctness."
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:528
-#: ../enigma2_plugins/mytube/src/plugin.py:543
-msgid "Select your choice."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:23
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:23
-msgid "Send DiSEqC"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:34
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:34
-msgid "Send DiSEqC only on satellite change"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/DVDProject.py:33
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/DVDProject.py:33
-msgid "Seperate titles with a main menu"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:313
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:313
-msgid "Sequence repeat"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Language.py:37
-#: ../enigma2_master/lib/python/Components/Language.py:37
-msgid "Serbian"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountEdit.py:182
-msgid "Server IP"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountEdit.py:184
-msgid "Server share"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/AC3main.py:53
-msgid "Service delay"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1793
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1793
-msgid "Service has been added to the favourites."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1799
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1799
-msgid "Service has been added to the selected bouquet."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:2218
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:2218
-msgid ""
-"Service invalid!\n"
-"(Timeout reading PMT)"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:2217
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:2217
-msgid ""
-"Service not found!\n"
-"(SID not found in PAT)"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:2223
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:2223
-msgid ""
-"Service unavailable!\n"
-"Check tuner configuration!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ServiceInfo.py:84
-#: ../enigma2_master/lib/python/Screens/ServiceInfo.py:84
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Serviceinfo"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:959
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:959
-msgid "Services"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:178
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:178
-msgid "Set End Time"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:33
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:33
-msgid "Set Voltage and 22KHz"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CleanupWizard/plugin.py:95
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CleanupWizard/plugin.py:95
-msgid "Set available internal memory threshold for the warning."
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/AC3main.py:89
-#: ../enigma2_plugins/ac3lipsync/src/AC3main.py:90
-#: ../enigma2_plugins/ac3lipsync/src/AC3main.py:91
-#: ../enigma2_plugins/ac3lipsync/src/AC3main.py:92
-#, python-format
-msgid "Set delay to %i ms (can be set)"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:65
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:65
-msgid "Set interface as default Interface"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:193
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:193
-msgid "Set limits"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:522
-msgid "Set maximum duration"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:458
-msgid "Set this NO to disable this AutoTimer."
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/AC3main.py:252
-msgid "Setting key canceled"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:65
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:82
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:153
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:65
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:82
-#: ../enigma2_master/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:153
-msgid "Settings"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:63
-#: ../enigma2_master/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:63
-#: ../enigma2_plugins/autotimer/src/AutoTimerOverview.py:215
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Setup"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/plugin.py:35
-msgid "Setup for the Audio Sync Plugin"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/flasher.py:151
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/flasher.py:151
-#, python-format
-msgid ""
-"Shall the USB stick wizard proceed and program the image file %s into flash "
-"memory?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:96
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:96
-msgid "Sharpness"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:187
-#: ../enigma2_plugins/mytube/src/plugin.py:78
-msgid "Short Movies"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/RecordingConfig.py:13
-#: ../enigma2_master/lib/python/Components/RecordingConfig.py:13
-msgid "Short filenames"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:466
-msgid "Should this AutoTimer be restricted to a timespan?"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:472
-msgid "Should this AutoTimer only match up to a certain event duration?"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:482
-msgid ""
-"Should timers created by this AutoTimer be recorded to a custom location?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1322
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1332
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1338
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1344
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1350
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1322
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1332
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1338
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1344
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1350
-msgid "Show Info"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:899
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:899
-msgid "Show WLAN Status"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerSettings.py:41
-msgid "Show in extension menu"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ParentalControlSetup.py:255
-#: ../enigma2_master/lib/python/Screens/ParentalControlSetup.py:255
-msgid "Show services beginning with"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBar.py:46
-#: ../enigma2_master/lib/python/Screens/InfoBar.py:46
-msgid "Show the radio player..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBar.py:47
-#: ../enigma2_master/lib/python/Screens/InfoBar.py:47
-msgid "Show the tv player..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:854
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:854
-msgid "Shows the state of your wireless LAN connection.\n"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/SleepTimerEdit.py:84
-#: ../enigma2_master/lib/python/Screens/SleepTimerEdit.py:84
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Shutdown"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/SleepTimerEdit.py:43
-#: ../enigma2_master/lib/python/Screens/SleepTimerEdit.py:43
-msgid "Shutdown Dreambox after"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:261
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:79
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:261
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:79
-msgid "Signal Strength:"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:276
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:276
-msgid "Signal: "
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/EventView.py:192
-#: ../enigma2_master/lib/python/Screens/EventView.py:192
-msgid "Similar"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/EventView.py:186
-#: ../enigma2_master/lib/python/Screens/EventView.py:186
-msgid "Similar broadcasts:"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:48
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:48
-msgid "Simple"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/DVDProject.py:34
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/DVDProject.py:34
-msgid "Simple titleset (compatibility for legacy players)"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:515
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1155
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:515
-#: ../enigma2_master/lib/python/Components/NimManager.py:1155
-msgid "Single"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/EventView.py:212
-#: ../enigma2_master/lib/python/Screens/EventView.py:212
-msgid "Single EPG"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:534
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:534
-msgid "Single satellite"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:534
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:535
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:536
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:534
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:535
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:536
-msgid "Single transponder"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:115
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:115
-msgid "Singlestep (GOP)"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SkinSelector/plugin.py:128
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SkinSelector/plugin.py:128
-msgid "Skin"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:854
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:854
-msgid "Skins"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/SleepTimerEdit.py:85
-#: ../enigma2_experimental/lib/python/Screens/SleepTimerEdit.py:87
-#: ../enigma2_master/lib/python/Screens/SleepTimerEdit.py:85
-#: ../enigma2_master/lib/python/Screens/SleepTimerEdit.py:87
-msgid "Sleep timer action:"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:177
-#: ../enigma2_master/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:177
-msgid "Slideshow Interval (sec.)"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Ci.py:300
-#: ../enigma2_experimental/lib/python/Screens/Ci.py:304
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:55
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:57
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:59
-#: ../enigma2_master/lib/python/Screens/Ci.py:300
-#: ../enigma2_master/lib/python/Screens/Ci.py:304
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:55
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:57
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:59
-#, python-format
-msgid "Slot %d"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Language.py:38
-#: ../enigma2_master/lib/python/Components/Language.py:38
-msgid "Slovakian"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Language.py:39
-#: ../enigma2_master/lib/python/Components/Language.py:39
-msgid "Slovenian"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1165
-#: ../enigma2_master/lib/python/Components/NimManager.py:1165
-msgid "Slow"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:866
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:866
-msgid "Software"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:193
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:2017
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:2024
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:2028
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:193
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1989
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1996
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:2000
-msgid "Software management"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:339
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:339
-msgid "Software manager setup"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:130
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:130
-msgid "Software restore"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:129
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:129
-msgid "Software update"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:480
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:480
-msgid "Softwaremanager information"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/PluginBrowser.py:52
-#: ../enigma2_master/lib/python/Screens/PluginBrowser.py:52
-msgid "Some plugins are not available:\n"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:250
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:250
-msgid "Sorry MediaScanner is not installed!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:244
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:244
-msgid "Sorry no backups found!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:86
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:88
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:86
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py:88
-msgid ""
-"Sorry your backup destination is not writeable.\n"
-"Please choose an other one."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:755
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:755
-msgid "Sorry, no Details available!"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:722
-msgid "Sorry, video is not available!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:301
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:301
-msgid ""
-"Sorry, your backup destination is not writeable.\n"
-"\n"
-"Please choose another one."
-msgstr ""
-
-#. TRANSLATORS: This must fit into the header button in the EPG-List
-#: ../enigma2_experimental/lib/python/Screens/EpgSelection.py:213
-#: ../enigma2_master/lib/python/Screens/EpgSelection.py:213
-msgid "Sort A-Z"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerPreview.py:82
-msgid "Sort AutoTimer"
-msgstr ""
-
-#. TRANSLATORS: This must fit into the header button in the EPG-List
-#: ../enigma2_experimental/lib/python/Screens/EpgSelection.py:210
-#: ../enigma2_master/lib/python/Screens/EpgSelection.py:210
-#: ../enigma2_plugins/autotimer/src/AutoTimerPreview.py:80
-msgid "Sort Time"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1164
-#: ../enigma2_master/lib/python/Components/NimManager.py:1164
-msgid "South"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:220
-#: ../enigma2_plugins/mytube/src/plugin.py:111
-msgid "South Korea"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:221
-#: ../enigma2_plugins/mytube/src/plugin.py:112
-msgid "Spain"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Language.py:40
-#: ../enigma2_master/lib/python/Components/Language.py:40
-msgid "Spanish"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:94
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:94
-msgid "Split preview mode"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:185
-#: ../enigma2_plugins/mytube/src/plugin.py:76
-msgid "Sports"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/SleepTimerEdit.py:87
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:55
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:60
-#: ../enigma2_master/lib/python/Screens/SleepTimerEdit.py:87
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:55
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:60
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Standby"
-msgstr ""
-
-#: ../enigma2_experimental/mytest.py:384 ../enigma2_master/mytest.py:384
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Standby / Restart"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/TempFanControl/plugin.py:129
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/TempFanControl/plugin.py:129
-#, python-format
-msgid "Standby Fan %d PWM"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/TempFanControl/plugin.py:128
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/TempFanControl/plugin.py:128
-#, python-format
-msgid "Standby Fan %d Voltage"
-msgstr ""
-
-#: ../enigma2_plugins/webinterface/src/WebIfConfig.py:60
-msgid "Start Webinterface"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:41
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:41
-msgid "Start from the beginning"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1659
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1659
-msgid "Start recording?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1357
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1357
-msgid "Start test"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:426
-msgid "Start with following feed:"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:175
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:175
-msgid "StartTime"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:153
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:153
-msgid "Starting on"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:282
-msgid "Std. Feeds"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:240
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:240
-msgid "Step east"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/AC3setup.py:43
-msgid "Step in ms for arrow keys"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/AC3setup.py:48
-#: ../enigma2_plugins/ac3lipsync/src/AC3setup.py:49
-#: ../enigma2_plugins/ac3lipsync/src/AC3setup.py:50
-#, python-format
-msgid "Step in ms for key %i"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/AC3setup.py:45
-#: ../enigma2_plugins/ac3lipsync/src/AC3setup.py:46
-#: ../enigma2_plugins/ac3lipsync/src/AC3setup.py:47
-#, python-format
-msgid "Step in ms for keys '%s'"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:239
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:239
-msgid "Step west"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:228
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:229
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:230
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:231
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:228
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:229
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:230
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:231
-msgid "Stop"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1233
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1233
-msgid "Stop Timeshift?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEdit.py:101
-#: ../enigma2_master/lib/python/Screens/TimerEdit.py:101
-msgid "Stop current event and disable coming events"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEdit.py:100
-#: ../enigma2_master/lib/python/Screens/TimerEdit.py:100
-msgid "Stop current event but not coming events"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBar.py:181
-#: ../enigma2_master/lib/python/Screens/InfoBar.py:181
-#: ../enigma2_plugins/mytube/src/plugin.py:1749
-msgid "Stop playing this movie?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1186
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1358
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1186
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1358
-msgid "Stop test"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/DiseqcTester/plugin.py:597
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/DiseqcTester/plugin.py:597
-msgid "Stop testing plane after # failed transponders"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/DiseqcTester/plugin.py:601
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/DiseqcTester/plugin.py:601
-msgid "Stop testing plane after # successful transponders"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:249
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:249
-msgid "Store position"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:355
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:355
-msgid "Stored position"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1686
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1686
-msgid "Subservice list..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/AudioSelection.py:118
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:173
-#: ../enigma2_master/lib/python/Screens/AudioSelection.py:118
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:173
-msgid "Subtitle selection"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/AudioSelection.py:52
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:159
-#: ../enigma2_master/lib/python/Screens/AudioSelection.py:52
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:159
-msgid "Subtitles"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/EpgSelection.py:326
-#: ../enigma2_experimental/lib/python/Components/EpgList.py:38
-#: ../enigma2_experimental/lib/python/Components/TimerList.py:24
-#: ../enigma2_experimental/lib/python/Tools/FuzzyDate.py:13
-#: ../enigma2_master/lib/python/Screens/EpgSelection.py:326
-#: ../enigma2_master/lib/python/Components/EpgList.py:38
-#: ../enigma2_master/lib/python/Components/TimerList.py:24
-#: ../enigma2_master/lib/python/Tools/FuzzyDate.py:13
-msgid "Sun"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:124
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:169
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:124
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:169
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:50
-msgid "Sunday"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1435
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1435
-msgid "Swap Services"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:222
-#: ../enigma2_plugins/mytube/src/plugin.py:113
-msgid "Sweden"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Language.py:41
-#: ../enigma2_master/lib/python/Components/Language.py:41
-msgid "Swedish"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1691
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1691
-msgid "Switch to next subservice"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1692
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1692
-msgid "Switch to previous subservice"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:550
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:550
-msgid "Switchable tuner types:"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:374
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:404
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:444
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:82
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:374
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:404
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:444
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:82
-msgid "Symbol Rate"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ServiceInfo.py:139
-#: ../enigma2_master/lib/python/Screens/ServiceInfo.py:139
-msgid "Symbolrate"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:366
-#: ../enigma2_experimental/lib/python/Screens/ServiceInfo.py:135
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:437
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:75
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:852
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:366
-#: ../enigma2_master/lib/python/Screens/ServiceInfo.py:135
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:437
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:75
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:852
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "System"
-msgstr ""
-
-#. TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline)
-#: ../enigma2_experimental/lib/python/Screens/About.py:58
-#: ../enigma2_master/lib/python/Screens/About.py:58
-msgid "TRANSLATOR_INFO"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/Process.py:298
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/Process.py:298
-msgid "TS file is too large for ISO9660 level 1!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:295
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:295
-msgid "Table of content for collection"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/MovieSelection.py:322
-#: ../enigma2_master/lib/python/Screens/MovieSelection.py:322
-msgid "Tag 1"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/MovieSelection.py:327
-#: ../enigma2_master/lib/python/Screens/MovieSelection.py:327
-msgid "Tag 2"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/MovieSelection.py:334
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:189
-#: ../enigma2_master/lib/python/Screens/MovieSelection.py:334
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:189
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:556
-#: ../enigma2_plugins/autotimer/src/AutoTimerImporter.py:200
-msgid "Tags"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:484
-msgid "Tags the Timer/Recording will have."
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:1347
-msgid "Tags: "
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:223
-#: ../enigma2_plugins/mytube/src/plugin.py:114
-msgid "Taiwan"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/TempFanControl/plugin.py:166
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/TempFanControl/plugin.py:169
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/TempFanControl/plugin.py:166
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/TempFanControl/plugin.py:169
-msgid "Temperature and Fan control"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:967
-#: ../enigma2_experimental/lib/python/Components/ServiceScan.py:81
-#: ../enigma2_experimental/lib/python/Tools/Transponder.py:70
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:478
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:967
-#: ../enigma2_master/lib/python/Components/ServiceScan.py:81
-#: ../enigma2_master/lib/python/Tools/Transponder.py:70
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:478
-msgid "Terrestrial"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:198
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:198
-msgid "Terrestrial provider"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/DiseqcTester/plugin.py:682
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/DiseqcTester/plugin.py:682
-msgid "Test DiSEqC settings"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/DiseqcTester/plugin.py:593
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/DiseqcTester/plugin.py:593
-msgid "Test Type"
-msgstr ""
-
-#: ../enigma2_plugins/genuinedreambox/src/plugin.py:80
-msgid "Test again"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:848
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:848
-msgid "Test the network configuration of your Dreambox.\n"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/DemoPlugins/TestPlugin/plugin.py:47
-#: ../enigma2_master/lib/python/Plugins/DemoPlugins/TestPlugin/plugin.py:47
-msgid "Test-Messagebox?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:353
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:353
-msgid ""
-"The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to "
-"create a Dreambox format data DVD (which will not play in stand-alone DVD "
-"players) instead?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:225
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:225
-msgid ""
-"The NetworkWizard extension is not installed!\n"
-"Please install it."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ParentalControlSetup.py:367
-#: ../enigma2_master/lib/python/Screens/ParentalControlSetup.py:367
-msgid "The PIN code has been changed successfully."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ParentalControlSetup.py:369
-#: ../enigma2_master/lib/python/Screens/ParentalControlSetup.py:369
-msgid "The PIN codes you entered are different."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/PluginBrowser.py:95
-#: ../enigma2_master/lib/python/Screens/PluginBrowser.py:95
-msgid ""
-"The Softwaremanagement extension is not installed!\n"
-"Please install it."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:601
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:601
-msgid ""
-"The USB stick was prepared to be bootable.\n"
-"Now you can download an NFI image file!"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:480
-msgid ""
-"The counter can automatically be reset to the limit at certain intervals."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/RecordPaths.py:48
-#: ../enigma2_master/lib/python/Screens/RecordPaths.py:48
-#, python-format
-msgid ""
-"The directory %s is not writable.\n"
-"Make sure you select a writable directory instead."
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerSettings.py:45
-msgid ""
-"The editor to be used for new AutoTimers. This can either be the Wizard or "
-"the classic editor."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:716
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:716
-#, python-format
-msgid ""
-"The following device was found:\n"
-"\n"
-"%s\n"
-"\n"
-"Do you want to write the USB flasher to this stick?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaScanner/plugin.py:35
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaScanner/plugin.py:35
-msgid "The following files were found..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:283
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:283
-msgid "The installation of the default services lists is finished."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/DefaultWizard.py:40
-#: ../enigma2_master/lib/python/Screens/DefaultWizard.py:40
-msgid ""
-"The installation of the default settings is finished. You can now continue "
-"configuring your Dreambox by pressing the OK button on the remote control."
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:644
-msgid "The match attribute is mandatory."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/flasher.py:27
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/flasher.py:27
-msgid "The md5sum validation failed, the file may be corrupted!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CleanupWizard/CleanupWizard.py:149
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CleanupWizard/CleanupWizard.py:149
-msgid "The package:"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/LocationBox.py:258
-#: ../enigma2_master/lib/python/Screens/LocationBox.py:258
-#, python-format
-msgid "The path %s already exists."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:205
-#: ../enigma2_experimental/lib/python/Screens/ParentalControlSetup.py:37
-#: ../enigma2_experimental/lib/python/Components/ParentalControl.py:238
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:205
-#: ../enigma2_master/lib/python/Screens/ParentalControlSetup.py:37
-#: ../enigma2_master/lib/python/Components/ParentalControl.py:238
-msgid "The pin code you entered is wrong."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/DiseqcTester/plugin.py:528
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/DiseqcTester/plugin.py:528
-#, python-format
-msgid "The results have been written to %s."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/SleepTimerEdit.py:107
-#: ../enigma2_master/lib/python/Screens/SleepTimerEdit.py:107
-msgid "The sleep timer has been activated."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/SleepTimerEdit.py:110
-#: ../enigma2_master/lib/python/Screens/SleepTimerEdit.py:110
-msgid "The sleep timer has been disabled."
-msgstr ""
-
-#: ../enigma2_experimental/RecordTimer.py:501
-#: ../enigma2_master/RecordTimer.py:501
-msgid "The timer file (timers.xml) is corrupt and could not be loaded."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:750
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:777
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:798
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:924
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:750
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:777
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:798
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:924
-msgid ""
-"The wireless LAN plugin is not installed!\n"
-"Please install it."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:614
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:614
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/
-msgid ""
-"The wizard can backup your current settings. Do you want to do a backup now?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/flasher.py:207
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/flasher.py:207
-#, python-format
-msgid ""
-"The wizard found a configuration backup. Do you want to restore your old "
-"settings from %s?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:204
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:209
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:630
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:674
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:685
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:204
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:209
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:630
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:674
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:685
-msgid "There are at least "
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:678
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:691
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:678
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:691
-msgid "There are currently no outstanding actions."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:632
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:632
-msgid "There are no updates available."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CleanupWizard/CleanupWizard.py:142
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CleanupWizard/CleanupWizard.py:150
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CleanupWizard/CleanupWizard.py:142
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CleanupWizard/CleanupWizard.py:150
-msgid "There are now "
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/LocationBox.py:364
-#: ../enigma2_master/lib/python/Screens/LocationBox.py:364
-msgid ""
-"There might not be enough Space on the selected Partition.\n"
-"Do you really want to continue?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:614
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1756
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:614
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1754
-msgid "There was an error downloading the packetlist. Please try again."
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:480
-msgid "There was an error getting the feed entries. Please try again."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CleanupWizard/CleanupWizard.py:141
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CleanupWizard/CleanupWizard.py:141
-msgid "There was an error. The package:"
-msgstr ""
-
-#: ../enigma2_plugins/genuinedreambox/src/plugin.py:130
-msgid ""
-"There's a certificate update available for your dreambox. Would you like to "
-"apply this update now?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/DVDToolbox.py:178
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/DVDToolbox.py:178
-msgid ""
-"This DVD RW medium is already formatted - reformatting will erase all "
-"content on the disc."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:280
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:286
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:280
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:286
-#, python-format
-msgid "This Dreambox can't decode %s streams!"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:169
-#: ../enigma2_plugins/mytube/src/plugin.py:60
-msgid "This Month"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:170
-#: ../enigma2_plugins/mytube/src/plugin.py:61
-msgid "This Week"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:459
-msgid ""
-"This is a name you can give the AutoTimer. It will be shown in the Overview "
-"and the Preview."
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerSettings.py:40
-msgid ""
-"This is the delay in hours that the AutoTimer will wait after a search to "
-"search the EPG again."
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:1488
-msgid "This is the help screen. Feed me with something to display."
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:460
-msgid ""
-"This is what will be looked for in event titles. Note that looking for e.g. "
-"german umlauts can be tricky as you have to know the encoding the channel "
-"uses."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:693
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:693
-msgid ""
-"This plugin creates a USB stick which can be used to update the firmware of "
-"your Dreambox without the need for a network or WLAN connection.\n"
-"First, a USB stick needs to be prepared so that it becomes bootable.\n"
-"In the next step, an NFI image file can be downloaded from the update server "
-"and saved on the USB stick.\n"
-"If you already have a prepared bootable USB stick, please insert it now. "
-"Otherwise plug in a USB stick with a minimum size of 64 MB!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1101
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1101
-msgid "This plugin is installed."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1103
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1103
-msgid "This plugin is not installed."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1105
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1105
-msgid "This plugin will be installed."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1107
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1107
-msgid "This plugin will be removed."
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerSettings.py:42
-msgid "This setting controls the behavior when a timer matches a found event."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1287
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1287
-msgid ""
-"This test checks for configured Nameservers.\n"
-"If you get a \"unconfirmed\" message:\n"
-"- please check your DHCP, cabling and Adapter setup\n"
-"- if you configured your Nameservers manually please verify your entries in "
-"the \"Nameserver\" Configuration"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1272
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1272
-msgid ""
-"This test checks whether a network cable is connected to your LAN-Adapter.\n"
-"If you get a \"disconnected\" message:\n"
-"- verify that a network cable is attached\n"
-"- verify that the cable is not broken"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1282
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1282
-msgid ""
-"This test checks whether a valid IP Address is found for your LAN Adapter.\n"
-"If you get a \"unconfirmed\" message:\n"
-"- no valid IP Address was found\n"
-"- please check your DHCP, cabling and adapter setup"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1277
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1277
-msgid ""
-"This test checks whether your LAN Adapter is set up for automatic IP Address "
-"configuration with DHCP.\n"
-"If you get a \"disabled\" message:\n"
-" - then your LAN Adapter is configured for manual IP Setup\n"
-"- verify thay you have entered correct IP informations in the AdapterSetup "
-"dialog.\n"
-"If you get an \"enabeld\" message:\n"
-"-verify that you have a configured and working DHCP Server in your network."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1267
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1267
-msgid "This test detects your configured LAN-Adapter."
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerSettings.py:44
-msgid ""
-"This toggles the behavior on timer conflicts. If an AutoTimer matches an "
-"event that conflicts with an existing timer it will not ignore this event "
-"but add it disabled."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1181
-#: ../enigma2_master/lib/python/Components/NimManager.py:1181
-msgid "Three"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:254
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:266
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:254
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:266
-msgid "Threshold"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/EpgSelection.py:326
-#: ../enigma2_experimental/lib/python/Components/EpgList.py:38
-#: ../enigma2_experimental/lib/python/Components/TimerList.py:24
-#: ../enigma2_experimental/lib/python/Tools/FuzzyDate.py:13
-#: ../enigma2_master/lib/python/Screens/EpgSelection.py:326
-#: ../enigma2_master/lib/python/Components/EpgList.py:38
-#: ../enigma2_master/lib/python/Components/TimerList.py:24
-#: ../enigma2_master/lib/python/Tools/FuzzyDate.py:13
-msgid "Thu"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:61
-#: ../enigma2_master/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:61
-msgid "Thumbnails"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:124
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:166
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:124
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:166
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:47
-msgid "Thursday"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimeDateInput.py:47
-#: ../enigma2_master/lib/python/Screens/TimeDateInput.py:47
-msgid "Time"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:471
-msgid "Time in minutes to append to recording."
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:470
-msgid "Time in minutes to prepend to recording."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:143
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:143
-msgid "Timer Type"
-msgstr ""
-
-#: ../enigma2_experimental/RecordTimer.py:523
-#: ../enigma2_master/RecordTimer.py:523
-msgid ""
-"Timer overlap in timers.xml detected!\n"
-"Please recheck it!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/RecordPaths.py:93
-#: ../enigma2_master/lib/python/Screens/RecordPaths.py:93
-msgid "Timer record location"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/SleepTimerEdit.py:30
-#: ../enigma2_experimental/lib/python/Screens/SleepTimerEdit.py:32
-#: ../enigma2_master/lib/python/Screens/SleepTimerEdit.py:30
-#: ../enigma2_master/lib/python/Screens/SleepTimerEdit.py:32
-msgid "Timer status:"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:501
-#: ../enigma2_plugins/autotimer/src/AutoTimerImporter.py:182
-#: ../enigma2_plugins/autotimer/src/AutoTimerWizard.py:88
-msgid "Timer type"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/RecordPaths.py:100
-#: ../enigma2_master/lib/python/Screens/RecordPaths.py:100
-msgid "Timeshift location"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1203
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1203
-msgid "Timeshift not possible!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/DVDTitle.py:19
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:117
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:158
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py:80
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py:97
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:431
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:127
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/DVDTitle.py:19
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:117
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:158
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py:80
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py:97
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:431
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:127
-msgid "Title"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:63
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:294
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:63
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:294
-msgid "Title properties"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:171
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:171
-msgid "Titleset mode"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:634
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:634
-msgid ""
-"To update your Dreambox firmware, please follow these steps:\n"
-"1) Turn off your box with the rear power switch and make sure the bootable "
-"USB stick is plugged in.\n"
-"2) Turn mains back on and hold the DOWN button on the front panel pressed "
-"for 10 seconds.\n"
-"3) Wait for bootup and follow instructions of the wizard."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/EpgSelection.py:336
-#: ../enigma2_experimental/lib/python/Tools/FuzzyDate.py:10
-#: ../enigma2_master/lib/python/Screens/EpgSelection.py:336
-#: ../enigma2_master/lib/python/Tools/FuzzyDate.py:10
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:171
-#: ../enigma2_plugins/mytube/src/plugin.py:62
-msgid "Today"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:158
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:158
-msgid "Tone Amplitude"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:304
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:304
-msgid "Tone mode"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:310
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:310
-msgid "Toneburst"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:515
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1155
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:515
-#: ../enigma2_master/lib/python/Components/NimManager.py:1155
-msgid "Toneburst A/B"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:242
-#: ../enigma2_plugins/mytube/src/plugin.py:133
-#: ../enigma2_plugins/mytube/src/plugin.py:793
-msgid "Top favorites"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:239
-#: ../enigma2_plugins/mytube/src/plugin.py:130
-#: ../enigma2_plugins/mytube/src/plugin.py:792
-msgid "Top rated"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:117
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py:79
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:117
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py:79
-msgid "Track"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ServiceInfo.py:149
-#: ../enigma2_master/lib/python/Screens/ServiceInfo.py:149
-msgid "Transmission Mode"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:415
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:415
-msgid "Transmission mode"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ServiceInfo.py:86
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:455
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:93
-#: ../enigma2_master/lib/python/Screens/ServiceInfo.py:86
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:455
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:93
-msgid "Transponder"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ServiceInfo.py:134
-#: ../enigma2_master/lib/python/Screens/ServiceInfo.py:134
-msgid "Transponder Type"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:186
-#: ../enigma2_plugins/mytube/src/plugin.py:77
-msgid "Travel & Events"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InputBox.py:175
-#: ../enigma2_master/lib/python/Screens/InputBox.py:175
-msgid "Tries left:"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:159
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:159
-msgid "Try to find used Transponders in cable network.. please wait..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:261
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:261
-msgid "Try to find used transponders in cable network.. please wait..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1752
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1750
-msgid "Trying to download a new packetlist. Please wait..."
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:417
-#: ../enigma2_plugins/mytube/src/plugin.py:476
-msgid "Trying to download the Youtube feed entries. Please wait..."
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:478
-msgid "Trying to download the Youtube search results. Please wait..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/EpgSelection.py:326
-#: ../enigma2_experimental/lib/python/Components/EpgList.py:38
-#: ../enigma2_experimental/lib/python/Components/TimerList.py:24
-#: ../enigma2_experimental/lib/python/Tools/FuzzyDate.py:13
-#: ../enigma2_master/lib/python/Screens/EpgSelection.py:326
-#: ../enigma2_master/lib/python/Components/EpgList.py:38
-#: ../enigma2_master/lib/python/Components/TimerList.py:24
-#: ../enigma2_master/lib/python/Tools/FuzzyDate.py:13
-msgid "Tue"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:124
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:164
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:124
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:164
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:45
-msgid "Tuesday"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:190
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:222
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:428
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:65
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:190
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:222
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:428
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:65
-msgid "Tune"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:2215
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:2215
-msgid "Tune failed!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:124
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:133
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:510
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:341
-#: ../enigma2_experimental/lib/python/Components/ServiceScan.py:137
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:124
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:133
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:510
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:341
-#: ../enigma2_master/lib/python/Components/ServiceScan.py:137
-msgid "Tuner"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:528
-#: ../enigma2_master/lib/python/Components/NimManager.py:528
-msgid "Tuner "
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ServiceInfo.py:87
-#: ../enigma2_master/lib/python/Screens/ServiceInfo.py:87
-msgid "Tuner status"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:102
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:102
-msgid "Tuner type"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Language.py:42
-#: ../enigma2_master/lib/python/Components/Language.py:42
-msgid "Turkish"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1181
-#: ../enigma2_master/lib/python/Components/NimManager.py:1181
-msgid "Two"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:272
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:283
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:272
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:283
-msgid "Type"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:352
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:355
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:358
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:352
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:355
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:358
-msgid "Type of scan"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:537
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1159
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:537
-#: ../enigma2_master/lib/python/Components/NimManager.py:1159
-msgid "USALS"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Harddisk.py:442
-#: ../enigma2_master/lib/python/Components/Harddisk.py:442
-msgid "USB Stick"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:118
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:736
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:118
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:736
-msgid "USB stick wizard"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Language.py:43
-#: ../enigma2_master/lib/python/Components/Language.py:43
-msgid "Ukrainian"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/HarddiskSetup.py:75
-#: ../enigma2_master/lib/python/Screens/HarddiskSetup.py:75
-msgid ""
-"Unable to complete filesystem check.\n"
-"Error: "
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/HarddiskSetup.py:73
-#: ../enigma2_master/lib/python/Screens/HarddiskSetup.py:73
-msgid ""
-"Unable to initialize harddisk.\n"
-"Error: "
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:328
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:328
-msgid "Uncommitted DiSEqC command"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:668
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:668
-msgid "Undo install"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:666
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:666
-msgid "Undo uninstall"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1077
-#: ../enigma2_master/lib/python/Components/NimManager.py:1077
-msgid "Unicable"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1138
-#: ../enigma2_master/lib/python/Components/NimManager.py:1138
-msgid "Unicable LNB"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1139
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1196
-#: ../enigma2_master/lib/python/Components/NimManager.py:1139
-#: ../enigma2_master/lib/python/Components/NimManager.py:1196
-msgid "Unicable Martix"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:660
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:660
-msgid "Uninstall"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:224
-#: ../enigma2_plugins/mytube/src/plugin.py:115
-msgid "United States"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1076
-#: ../enigma2_master/lib/python/Components/NimManager.py:1076
-msgid "Universal LNB"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Network.py:358
-#: ../enigma2_master/lib/python/Components/Network.py:358
-msgid "Unknown network adapter."
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerSettings.py:39
-msgid ""
-"Unless this is enabled AutoTimer will NOT automatically look for events "
-"matching your AutoTimers but only when you leave the GUI with the green "
-"button."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Harddisk.py:236
-#: ../enigma2_master/lib/python/Components/Harddisk.py:236
-msgid "Unmount failed"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py:459
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py:469
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py:459
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py:469
-msgid "Unsupported"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/DVDToolbox.py:33
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:686
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/DVDToolbox.py:33
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:686
-msgid "Update"
-msgstr ""
-
-#: ../enigma2_plugins/genuinedreambox/src/plugin.py:167
-msgid "Update done..."
-msgstr ""
-
-#: ../enigma2_plugins/genuinedreambox/src/plugin.py:170
-msgid ""
-"Update done... The genuine dreambox test will now be rerun and should not "
-"ask you to update again."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:638
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:638
-msgid "Updatefeed not available."
-msgstr ""
-
-#: ../enigma2_plugins/genuinedreambox/src/plugin.py:150
-msgid ""
-"Updating failed. Nothing is broken, just the update couldn't be applied."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/OldSoftwareUpdate/plugin.py:46
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/OldSoftwareUpdate/plugin.py:145
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/OldSoftwareUpdate/plugin.py:46
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/OldSoftwareUpdate/plugin.py:145
-msgid "Updating finished. Here is the result:"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:607
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:607
-msgid "Updating software catalog"
-msgstr ""
-
-#: ../enigma2_plugins/genuinedreambox/src/plugin.py:118
-msgid "Updating, please wait..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/OldSoftwareUpdate/plugin.py:52
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/OldSoftwareUpdate/plugin.py:151
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/OldSoftwareUpdate/plugin.py:52
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/OldSoftwareUpdate/plugin.py:151
-msgid "Updating... Please wait... This can take some minutes..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1440
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1818
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1440
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1816
-msgid "Upgrade finished."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Ipkg.py:88
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1022
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1379
-#: ../enigma2_master/lib/python/Screens/Ipkg.py:88
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1022
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1379
-msgid "Upgrading"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1338
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1338
-msgid "Upgrading Dreambox... Please wait"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:477
-msgid "Upper bound of timespan."
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:468
-msgid ""
-"Upper bound of timespan. Nothing after this time will be matched. Offsets "
-"are not taken into account!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/settings.py:28
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:319
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/settings.py:28
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:319
-msgid "Use"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:494
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:494
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Use DHCP"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:490
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:490
-msgid "Use Interface"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:43
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:337
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:43
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:337
-msgid "Use Power Measurement"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:552
-msgid "Use a custom location"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:499
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:499
-msgid "Use a gateway"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:60
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:60
-msgid "Use the Networkwizard to configure selected network adapter"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:858
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:858
-msgid "Use the Networkwizard to configure your Network\n"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InputDeviceSetup.py:252
-#: ../enigma2_master/lib/python/Screens/InputDeviceSetup.py:252
-msgid "Use this input device settings?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:397
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:397
-msgid "Use this settings?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:164
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:164
-msgid "Use this video enhancement settings?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/SleepTimerEdit.py:93
-#: ../enigma2_master/lib/python/Screens/SleepTimerEdit.py:93
-msgid "Use time of currently running service"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:352
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:352
-msgid "Use usals for this sat"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:163
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:163
-msgid "Used service scan type"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1079
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1140
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1196
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1198
-#: ../enigma2_master/lib/python/Components/NimManager.py:1079
-#: ../enigma2_master/lib/python/Components/NimManager.py:1140
-#: ../enigma2_master/lib/python/Components/NimManager.py:1196
-#: ../enigma2_master/lib/python/Components/NimManager.py:1198
-msgid "User defined"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountManager.py:75
-msgid "User management"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/UserManager.py:60
-msgid "Usermanager"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/Modem/plugin.py:112
-#: ../enigma2_master/lib/python/Plugins/Extensions/Modem/plugin.py:112
-#: ../enigma2_plugins/networkbrowser/src/MountEdit.py:195
-#: ../enigma2_plugins/networkbrowser/src/UserDialog.py:128
-msgid "Username"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:173
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:173
-msgid "VMGM (intro trailer)"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:398
-#: ../enigma2_plugins/mytube/src/plugin.py:422
-#: ../enigma2_plugins/mytube/src/plugin.py:464
-msgid ""
-"Verify your Dreambox authenticity by running the genuine dreambox plugin!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Tools/Transponder.py:32
-#: ../enigma2_master/lib/python/Tools/Transponder.py:32
-msgid "Vertical"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoTune/plugin.py:33
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoTune/plugin.py:37
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoTune/plugin.py:33
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoTune/plugin.py:37
-msgid "Video Fine-Tuning"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoTune/plugin.py:38
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoTune/plugin.py:38
-msgid "Video Fine-Tuning Wizard"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:56
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:56
-msgid "Video Output"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:230
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:230
-msgid "Video Setup"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:233
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:233
-msgid "Video Wizard"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:310
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:310
-msgid "Video enhancement preview"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:392
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:392
-msgid "Video enhancement settings"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:58
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:58
-msgid "Video enhancement setup"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:428
-msgid "Videobrowser exit behavior:"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:397
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py:397
-msgid "Videoenhancement Setup"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:427
-msgid "Videoplayer stop/exit behavior:"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:162
-#: ../enigma2_plugins/mytube/src/plugin.py:53
-msgid "View Count"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:1003
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:1003
-msgid "View Movies..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:622
-#: ../enigma2_master/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:622
-msgid "View Photos..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:1427
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:1427
-msgid "View Rass interactive..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:1013
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:1013
-msgid "View Video CD..."
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:539
-msgid "View active downloads"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:671
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:671
-msgid "View details"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:876
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:876
-msgid "View list of available "
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:860
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:860
-msgid "View list of available CommonInterface extensions"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:870
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:870
-msgid "View list of available Display and Userinterface extensions."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:872
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:872
-msgid "View list of available EPG extensions."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:864
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:864
-msgid "View list of available Satellite equipment extensions."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:874
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:874
-msgid "View list of available communication extensions."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:862
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:862
-msgid "View list of available default settings"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:868
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:868
-msgid "View list of available multimedia extensions."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:858
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:858
-msgid "View list of available networking extensions"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:856
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:856
-msgid "View list of available recording extensions"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:854
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:854
-msgid "View list of available skins"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:866
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:866
-msgid "View list of available software extensions"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:852
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:852
-msgid "View list of available system extensions"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:533
-msgid "View related videos"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:534
-msgid "View response videos"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:2128
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:2128
-msgid "View teletext..."
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountManager.py:74
-msgid "View, edit or delete mountpoints on your Dreambox."
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountManager.py:75
-msgid "View, edit or delete usernames and passwords for your network."
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:1103
-#: ../enigma2_plugins/mytube/src/plugin.py:1344
-msgid "Views: "
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:302
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:302
-msgid "Voltage mode"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:971
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:395
-#: ../enigma2_experimental/lib/python/Components/ServiceScan.py:49
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:482
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:971
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:395
-#: ../enigma2_master/lib/python/Components/ServiceScan.py:49
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:482
-msgid "W"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:431
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:431
-msgid "WEP"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Network.py:348
-#: ../enigma2_experimental/lib/python/Components/Network.py:350
-#: ../enigma2_experimental/lib/python/Components/Network.py:352
-#: ../enigma2_experimental/lib/python/Components/Network.py:354
-#: ../enigma2_experimental/lib/python/Components/Network.py:356
-#: ../enigma2_master/lib/python/Components/Network.py:348
-#: ../enigma2_master/lib/python/Components/Network.py:350
-#: ../enigma2_master/lib/python/Components/Network.py:352
-#: ../enigma2_master/lib/python/Components/Network.py:354
-#: ../enigma2_master/lib/python/Components/Network.py:356
-msgid "WLAN adapter."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Network.py:333
-#: ../enigma2_experimental/lib/python/Components/Network.py:336
-#: ../enigma2_master/lib/python/Components/Network.py:333
-#: ../enigma2_master/lib/python/Components/Network.py:336
-msgid "WLAN connection"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:432
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:432
-msgid "WPA"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:434
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:434
-msgid "WPA or WPA2"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:433
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:433
-msgid "WPA2"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:93
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Videomode/plugin.py:93
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "WSS on 4:3"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/AC3setup.py:44
-msgid "Wait time in ms before activation:"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Task.py:42
-#: ../enigma2_master/lib/python/Components/Task.py:42
-msgid "Waiting"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CleanupWizard/plugin.py:76
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CleanupWizard/plugin.py:76
-msgid "Warn if free space drops below (kB):"
-msgstr ""
-
-#: ../enigma2_plugins/webinterface/src/plugin.py:540
-msgid "Webinterface"
-msgstr ""
-
-#: ../enigma2_plugins/webinterface/src/WebIfConfig.py:93
-msgid "Webinterface: Main Setup"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/EpgSelection.py:326
-#: ../enigma2_experimental/lib/python/Components/EpgList.py:38
-#: ../enigma2_experimental/lib/python/Components/TimerList.py:24
-#: ../enigma2_experimental/lib/python/Tools/FuzzyDate.py:13
-#: ../enigma2_master/lib/python/Screens/EpgSelection.py:326
-#: ../enigma2_master/lib/python/Components/EpgList.py:38
-#: ../enigma2_master/lib/python/Components/TimerList.py:24
-#: ../enigma2_master/lib/python/Tools/FuzzyDate.py:13
-msgid "Wed"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:124
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:165
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:124
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:165
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:46
-msgid "Wednesday"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:160
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:160
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:52
-msgid "Weekday"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:51
-msgid "Weekend"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:285
-msgid "Weekly (Monday)"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:285
-msgid "Weekly (Sunday)"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/CutListEditor/plugin.py:207
-#: ../enigma2_master/lib/python/Plugins/Extensions/CutListEditor/plugin.py:207
-msgid ""
-"Welcome to the Cutlist editor.\n"
-"\n"
-"Seek to the start of the stuff you want to cut away. Press OK, select 'start "
-"cut'.\n"
-"\n"
-"Then seek to the end, press OK, select 'end cut'. That's it."
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:272
-msgid ""
-"Welcome to the MyTube Youtube Player.\n"
-"\n"
-"Use the Bouqet+ button to navigate to the search field and the Bouqet- to "
-"navigate to the video entries.\n"
-"\n"
-"To play a movie just press OK on your remote control.\n"
-"\n"
-"Press info to see the movie description.\n"
-"\n"
-"Press the Menu button for additional options.\n"
-"\n"
-"The Help button shows this help again."
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:271
-msgid ""
-"Welcome to the MyTube Youtube Player.\n"
-"\n"
-"While entering your search term(s) you will get suggestions displayed "
-"matching your search term.\n"
-"\n"
-"To select a suggestion press DOWN on your remote, select the desired result "
-"and press OK on your remote to start the search.\n"
-"\n"
-"Press exit to get back to the input field."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1163
-#: ../enigma2_master/lib/python/Components/NimManager.py:1163
-msgid "West"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:120
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:120
-msgid "What to do with submitted crashlogs?"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:481
-msgid ""
-"When this option is enabled the AutoTimer won't match events where another "
-"timer with the same description already exists in the timer list."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/FactoryReset.py:5
-#: ../enigma2_master/lib/python/Screens/FactoryReset.py:5
-msgid ""
-"When you do a factory reset, you will lose ALL your configuration data\n"
-"(including bouquets, services, satellite data ...)\n"
-"After completion of factory reset, your receiver will restart "
-"automatically!\n"
-"\n"
-"Really do a factory reset?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/LocationBox.py:522
-#: ../enigma2_master/lib/python/Screens/LocationBox.py:522
-msgid "Where to save temporary timeshift recordings?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:466
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:466
-msgid "Wireless LAN"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1326
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1326
-msgid "Wireless Network"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:116
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:116
-msgid "Wireless Network State"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:465
-msgid ""
-"With this option enabled the channel to record on can be changed to a "
-"alternative service it is restricted to."
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:478
-msgid ""
-"With this option you can restrict the AutoTimer to a certain ammount of "
-"scheduled recordings. Set this to 0 to disable this functionality."
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/plugin.py:28
-msgid "Wizard"
-msgstr ""
-
-#: ../enigma2_experimental/RecordTimer.py:376
-#: ../enigma2_master/RecordTimer.py:376
-msgid "Write error while recording. Disk full?\n"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/Process.py:295
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/Process.py:295
-msgid "Write failed!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/AVSwitch.py:75
-#: ../enigma2_master/lib/python/Components/AVSwitch.py:75
-msgid "YPbPr"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:117
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:131
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:117
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:131
-msgid "Year"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Ci.py:25
-#: ../enigma2_experimental/lib/python/Screens/Ci.py:27
-#: ../enigma2_experimental/lib/python/Screens/InfoBar.py:168
-#: ../enigma2_experimental/lib/python/Screens/InfoBar.py:173
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:401
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:276
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:561
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:717
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:272
-#: ../enigma2_master/lib/python/Screens/Ci.py:25
-#: ../enigma2_master/lib/python/Screens/Ci.py:27
-#: ../enigma2_master/lib/python/Screens/InfoBar.py:168
-#: ../enigma2_master/lib/python/Screens/InfoBar.py:173
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:401
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:276
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:561
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:717
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:272
-#: ../enigma2_plugins/mytube/src/MyTubeSearch.py:175
-#: ../enigma2_plugins/mytube/src/plugin.py:66
-#: ../enigma2_plugins/mytube/src/plugin.py:619
-#: ../enigma2_plugins/mytube/src/plugin.py:625
-#: ../enigma2_plugins/mytube/src/plugin.py:1743 ../enigma2_experimental/data/
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Videomode/
-#: ../enigma2_master/data/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Videomode/
-#: ../enigma2_plugins/autotimer/src/
-msgid "Yes"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:401
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:401
-msgid "Yes to all"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:51
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:51
-msgid "Yes, always"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBar.py:175
-#: ../enigma2_master/lib/python/Screens/InfoBar.py:175
-msgid "Yes, and delete this movie"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:277
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:277
-msgid "Yes, and don't ask again"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:1745
-msgid "Yes, but play next video"
-msgstr ""
-
-#: ../enigma2_plugins/mytube/src/plugin.py:1746
-msgid "Yes, but play previous video"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBar.py:174
-#: ../enigma2_master/lib/python/Screens/InfoBar.py:174
-msgid "Yes, returning to movie list"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1105
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1105
-msgid "You can cancel the installation."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1107
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1107
-msgid "You can cancel the removal."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1103
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1103
-msgid "You can install this plugin."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:215
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:215
-msgid "You can only burn Dreambox recordings!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1101
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1101
-msgid "You can remove this plugin."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBar.py:211
-#: ../enigma2_experimental/lib/python/Screens/MovieSelection.py:130
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:710
-#: ../enigma2_master/lib/python/Screens/InfoBar.py:211
-#: ../enigma2_master/lib/python/Screens/MovieSelection.py:130
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:710
-msgid "You cannot delete this!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:282
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:282
-msgid "You didn't select a channel to record from."
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:653
-#: ../enigma2_plugins/autotimer/src/AutoTimerImporter.py:241
-#, python-format
-msgid ""
-"You entered \"%s\" as Text to match.\n"
-"Do you want to remove trailing whitespaces?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:715
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:715
-msgid ""
-"You have chosen to create a new .NFI flasher bootable USB stick. This will "
-"repartition the USB stick and therefore all data on it will be erased."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InputBox.py:104
-#: ../enigma2_master/lib/python/Screens/InputBox.py:104
-#, python-format
-msgid "You have to wait %s!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:257
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:257
-msgid ""
-"Your Dreambox is now ready to use.\n"
-"\n"
-"Your internet connection is working now.\n"
-"\n"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:705
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:705
-msgid "Your Dreambox will restart after pressing OK on your remote control."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:325
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:325
-msgid ""
-"Your collection exceeds the size of a single layer medium, you will need a "
-"blank dual layer DVD!"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/plugin.py:87
-#, python-format
-msgid ""
-"Your config file is not well-formed:\n"
-"%s"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:239
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:376
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:239
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:376
-msgid "Your current collection will get lost!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1429
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1429
-msgid ""
-"Your dreambox isn't connected to the internet properly. Please check it and "
-"try again."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:122
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:122
-msgid "Your email address:"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/FrontprocessorUpgrade/plugin.py:34
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/FrontprocessorUpgrade/plugin.py:34
-msgid ""
-"Your frontprocessor firmware must be upgraded.\n"
-"Press OK to start upgrade."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:123
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py:123
-msgid "Your name (optional):"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:632
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:634
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:632
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:634
-msgid "Your network configuration has been activated."
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountEdit.py:339
-msgid "Your network mount has been activated."
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountView.py:128
-msgid "Your network mount has been removed."
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountEdit.py:301
-msgid "Your network mount has been updated."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ServiceStopScreen.py:33
-#: ../enigma2_master/lib/python/Screens/ServiceStopScreen.py:33
-msgid "Zap back to previously tuned service?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:158
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py:158
-msgid "Zap back to service before positioner setup?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:217
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py:217
-msgid "Zap back to service before satfinder?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:406
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:442
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:463
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:406
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:442
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:463
-msgid "Zap back to service before tuner setup?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/Network.py:350
-#: ../enigma2_master/lib/python/Components/Network.py:350
-msgid "Zydas"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:565
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:565
-msgid "[alternative edit]"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:569
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:569
-msgid "[bouquet edit]"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:571
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:571
-msgid "[favourite edit]"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:663
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:663
-msgid "[move mode]"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:645
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:645
-msgid "a gui to assign services/providers to common interface modules"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:641
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:641
-msgid "a gui to assign services/providers/caids to common interface modules"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:171
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:171
-msgid "abort alternatives edit"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:165
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:165
-msgid "abort bouquet edit"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:168
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:168
-msgid "abort favourites edit"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/TimerList.py:55
-#: ../enigma2_master/lib/python/Components/TimerList.py:55
-msgid "about to start"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:249
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:249
-msgid "activate current configuration"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:338
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:338
-msgid "activate network adapter configuration"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/plugin.py:164
-#: ../enigma2_plugins/autotimer/src/plugin.py:165
-msgid "add AutoTimer..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:122
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:122
-msgid "add Provider"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:121
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:121
-msgid "add Service"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:255
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:255
-msgid "add a nameserver entry"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:158
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:158
-msgid "add alternatives"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/LocationBox.py:408
-#: ../enigma2_master/lib/python/Screens/LocationBox.py:408
-msgid "add bookmark"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:140
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:140
-msgid "add bouquet"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:493
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:493
-msgid "add directory to playlist"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:154
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:154
-msgid "add file to playlist"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:495
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:495
-msgid "add files to playlist"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:427
-msgid "add filters"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:148
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:148
-msgid "add marker"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1652
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1662
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1652
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1662
-msgid "add recording (enter recording duration)"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1653
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1663
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1653
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1663
-msgid "add recording (enter recording endtime)"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1651
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1661
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1651
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1661
-msgid "add recording (indefinitely)"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1650
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1660
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1650
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1660
-msgid "add recording (stop after current event)"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:120
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:120
-msgid "add service to bouquet"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:123
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:123
-msgid "add service to favourites"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:433
-msgid "add services"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:110
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:110
-msgid "add to parental protection"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:63
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:543
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1434
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:63
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:543
-#: ../enigma2_master/lib/python/Components/NimManager.py:1434
-msgid "advanced"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/MovieSelection.py:75
-#: ../enigma2_master/lib/python/Screens/MovieSelection.py:75
-msgid "alphabetic sort"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:124
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:124
-msgid "assigned CAIds:"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:126
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:126
-msgid "assigned Services/Provider:"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py:87
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py:87
-#, python-format
-msgid "audio track (%s) format"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py:88
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py:88
-#, python-format
-msgid "audio track (%s) language"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/AudioSelection.py:52
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:117
-#: ../enigma2_master/lib/python/Screens/AudioSelection.py:52
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:117
-msgid "audio tracks"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:102
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:102
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:241
-#: ../enigma2_plugins/autotimer/src/AutoTimerImporter.py:29
-msgid "auto"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CleanupWizard/CleanupWizard.py:142
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CleanupWizard/CleanupWizard.py:150
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CleanupWizard/CleanupWizard.py:142
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CleanupWizard/CleanupWizard.py:150
-msgid "available"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:173
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/CutListEditor/plugin.py:56
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:173
-#: ../enigma2_master/lib/python/Plugins/Extensions/CutListEditor/plugin.py:56
-msgid "back"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:160
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:160
-msgid "background image"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:183
-#: ../enigma2_master/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:183
-msgid "backgroundcolor"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:23
-#: ../enigma2_master/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:23
-msgid "better"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:28
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:29
-#: ../enigma2_master/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:28
-#: ../enigma2_master/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:29
-msgid "black"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/ParentalControl.py:33
-#: ../enigma2_master/lib/python/Components/ParentalControl.py:33
-msgid "blacklist"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:28
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:29
-#: ../enigma2_master/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:28
-#: ../enigma2_master/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:29
-msgid "blue"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py:85
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py:85
-#, python-format
-msgid "burn audio track (%s)"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:181
-msgid "case-insensitive search"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:181
-msgid "case-sensitive search"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1654
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1654
-msgid "change recording (duration)"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1655
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1655
-msgid "change recording (endtime)"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:117
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py:101
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:117
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py:101
-msgid "chapters"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:577
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:577
-msgid "circular left"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:578
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:578
-msgid "circular right"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:171
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:501
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:171
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:501
-msgid "clear playlist"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/ParentalControl.py:28
-#: ../enigma2_master/lib/python/Components/ParentalControl.py:28
-msgid "complex"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1395
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1409
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1395
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1409
-msgid "confirmed"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1384
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1440
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:295
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1384
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1440
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:295
-msgid "connected"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:756
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:504
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:756
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py:504
-msgid "continue"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:129
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:129
-msgid "copy to bouquets"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CleanupWizard/CleanupWizard.py:141
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CleanupWizard/CleanupWizard.py:141
-msgid "could not be removed"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/LocationBox.py:412
-#: ../enigma2_master/lib/python/Screens/LocationBox.py:412
-msgid "create directory"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NFIFlash/flasher.py:103
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NFIFlash/flasher.py:103
-#, python-format
-msgid "currently installed image: %s"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:109
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:109
-msgid "daily"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:117
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:117
-msgid "day"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:813
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:1016
-msgid "delete"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/CutListEditor/plugin.py:69
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/CutListEditor/plugin.py:71
-#: ../enigma2_master/lib/python/Plugins/Extensions/CutListEditor/plugin.py:69
-#: ../enigma2_master/lib/python/Plugins/Extensions/CutListEditor/plugin.py:71
-msgid "delete cut"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:498
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:498
-msgid "delete file"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:170
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:170
-msgid "delete playlist entry"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:509
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:509
-msgid "delete saved playlist"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/MovieSelection.py:69
-#: ../enigma2_master/lib/python/Screens/MovieSelection.py:69
-msgid "delete..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1207
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1207
-msgid "description"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/config.py:449
-#: ../enigma2_master/lib/python/Components/config.py:449
-#: ../enigma2_plugins/autotimer/src/AutoTimerImporter.py:128
-msgid "disable"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:160
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:160
-msgid "disable move mode"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1213
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1501
-#: ../enigma2_experimental/lib/python/Components/TimerList.py:69
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1213
-#: ../enigma2_master/lib/python/Components/NimManager.py:1501
-#: ../enigma2_master/lib/python/Components/TimerList.py:69
-msgid "disabled"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1369
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1388
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1435
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1369
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1388
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1435
-msgid "disconnected"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:28
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:28
-msgid "do not change"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1656
-#: ../enigma2_experimental/lib/python/Screens/TaskView.py:51
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:102
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1656
-#: ../enigma2_master/lib/python/Screens/TaskView.py:51
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:102
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:238
-#: ../enigma2_plugins/autotimer/src/AutoTimerImporter.py:26
-msgid "do nothing"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1664
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1664
-msgid "don't record"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/TimerList.py:62
-#: ../enigma2_experimental/lib/python/Components/TimerList.py:66
-#: ../enigma2_master/lib/python/Components/TimerList.py:62
-#: ../enigma2_master/lib/python/Components/TimerList.py:66
-msgid "done!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:154
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:154
-msgid "edit alternatives"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:425
-msgid "edit filters"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:431
-msgid "edit services"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:576
-#: ../enigma2_master/lib/python/Components/NimManager.py:576
-msgid "empty"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/config.py:449
-#: ../enigma2_master/lib/python/Components/config.py:449
-#: ../enigma2_plugins/autotimer/src/AutoTimerImporter.py:128
-msgid "enable"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:150
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:150
-msgid "enable bouquet edit"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:152
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:152
-msgid "enable favourite edit"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:146
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:146
-msgid "enable move mode"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1209
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:548
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1448
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1488
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1209
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:548
-#: ../enigma2_master/lib/python/Components/NimManager.py:1448
-#: ../enigma2_master/lib/python/Components/NimManager.py:1488
-msgid "enabled"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:170
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:170
-msgid "end alternatives edit"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:164
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:164
-msgid "end bouquet edit"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/CutListEditor/plugin.py:64
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/CutListEditor/plugin.py:66
-#: ../enigma2_master/lib/python/Plugins/Extensions/CutListEditor/plugin.py:64
-#: ../enigma2_master/lib/python/Plugins/Extensions/CutListEditor/plugin.py:66
-msgid "end cut here"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:167
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:167
-msgid "end favourites edit"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:463
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:319
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:368
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:294
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:340
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:365
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:463
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:319
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:368
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:294
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:340
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:365
-msgid "enter hidden network SSID"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:68
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:508
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1436
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:68
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:508
-#: ../enigma2_master/lib/python/Components/NimManager.py:1436
-msgid "equal to"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:180
-msgid "exact match"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:346
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:346
-msgid "exit DVD player or return to file browser"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:155
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:155
-msgid "exit mediaplayer"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/MovieSelection.py:237
-#: ../enigma2_master/lib/python/Screens/MovieSelection.py:237
-msgid "exit movielist"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:248
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:254
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:248
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:254
-msgid "exit nameserver configuration"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:337
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:343
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:337
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:343
-msgid "exit network adapter configuration"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:52
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:58
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:52
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:58
-msgid "exit network interface list"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:718
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:724
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:718
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:724
-msgid "exit networkadapter setup menu"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:628
-#: ../enigma2_master/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:628
-msgid "fileformats (BMP, PNG, JPG, GIF)"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:117
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:237
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:117
-#: ../enigma2_master/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:237
-msgid "filename"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/VideoTune/plugin.py:37
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/VideoTune/plugin.py:37
-msgid "fine-tune your display"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:342
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:342
-msgid "forward to the next chapter"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:322
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:332
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:322
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:332
-msgid "free"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/DiskInfo.py:30
-#: ../enigma2_master/lib/python/Components/DiskInfo.py:30
-msgid "free diskspace"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TaskView.py:48
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:99
-#: ../enigma2_master/lib/python/Screens/TaskView.py:48
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:99
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:240
-#: ../enigma2_plugins/autotimer/src/AutoTimerImporter.py:27
-msgid "go to deep standby"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TaskView.py:51
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:102
-#: ../enigma2_master/lib/python/Screens/TaskView.py:51
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:102
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:239
-#: ../enigma2_plugins/autotimer/src/AutoTimerImporter.py:28
-msgid "go to standby"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/CutListEditor/plugin.py:83
-#: ../enigma2_master/lib/python/Plugins/Extensions/CutListEditor/plugin.py:83
-msgid "grab this frame as bitmap"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:28
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:29
-#: ../enigma2_master/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:28
-#: ../enigma2_master/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:29
-msgid "green"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBar.py:63
-#: ../enigma2_master/lib/python/Screens/InfoBar.py:63
-msgid "hear radio..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/MovieSelection.py:85
-#: ../enigma2_master/lib/python/Screens/MovieSelection.py:85
-msgid "hide extended description"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:505
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:505
-msgid "hide player"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:575
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:575
-msgid "horizontal"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:25
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:25
-msgid "hour"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:25
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:26
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:25
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:26
-msgid "hours"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:54
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:59
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:54
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:59
-msgid "immediate shutdown"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:796
-msgid "in Description"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:795
-msgid "in Shortdescription"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:794
-msgid "in Title"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Ci.py:327
-#: ../enigma2_experimental/lib/python/Screens/Ci.py:351
-#: ../enigma2_master/lib/python/Screens/Ci.py:327
-#: ../enigma2_master/lib/python/Screens/Ci.py:351
-msgid "init module"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:57
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:57
-msgid "init modules"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/CutListEditor/plugin.py:79
-#: ../enigma2_master/lib/python/Plugins/Extensions/CutListEditor/plugin.py:79
-msgid "insert mark here"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:345
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:345
-msgid "jump back to the previous title"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:344
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:344
-msgid "jump forward to the next title"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:166
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:166
-msgid "jump to listbegin"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:167
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:167
-msgid "jump to listend"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1883
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1883
-msgid "jump to next marked position"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1882
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1882
-msgid "jump to previous marked position"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBar.py:141
-#: ../enigma2_master/lib/python/Screens/InfoBar.py:141
-msgid "leave movie player..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/AudioSelection.py:80
-#: ../enigma2_master/lib/python/Screens/AudioSelection.py:80
-msgid "left"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:117
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:117
-msgid "length"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:490
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:490
-msgid "list of EPG views..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/MovieSelection.py:80
-#: ../enigma2_master/lib/python/Screens/MovieSelection.py:80
-msgid "list style compact"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/MovieSelection.py:79
-#: ../enigma2_master/lib/python/Screens/MovieSelection.py:79
-msgid "list style compact with description"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/MovieSelection.py:78
-#: ../enigma2_master/lib/python/Screens/MovieSelection.py:78
-msgid "list style default"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/MovieSelection.py:81
-#: ../enigma2_master/lib/python/Screens/MovieSelection.py:81
-msgid "list style single line"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:506
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:506
-msgid "load playlist"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/TunerInfo.py:77
-#: ../enigma2_master/lib/python/Components/TunerInfo.py:77
-msgid "locked"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:72
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:507
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1439
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:72
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:507
-#: ../enigma2_master/lib/python/Components/NimManager.py:1439
-msgid "loopthrough to"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:539
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1159
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:539
-#: ../enigma2_master/lib/python/Components/NimManager.py:1159
-msgid "manual"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/LocationBox.py:147
-#: ../enigma2_experimental/lib/python/Screens/MovieSelection.py:223
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/CutListEditor/plugin.py:181
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:71
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:165
-#: ../enigma2_master/lib/python/Screens/LocationBox.py:147
-#: ../enigma2_master/lib/python/Screens/MovieSelection.py:223
-#: ../enigma2_master/lib/python/Plugins/Extensions/CutListEditor/plugin.py:181
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/TitleList.py:71
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:165
-msgid "menu"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:860
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:860
-msgid "menulist"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/TimerList.py:39
-#: ../enigma2_experimental/lib/python/Components/TimerList.py:41
-#: ../enigma2_experimental/lib/python/Components/TimerList.py:47
-#: ../enigma2_experimental/lib/python/Components/TimerList.py:49
-#: ../enigma2_master/lib/python/Components/TimerList.py:39
-#: ../enigma2_master/lib/python/Components/TimerList.py:41
-#: ../enigma2_master/lib/python/Components/TimerList.py:47
-#: ../enigma2_master/lib/python/Components/TimerList.py:49
-#: ../enigma2_plugins/autotimer/src/AutoTimerPreview.py:52
-msgid "mins"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:23
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:23
-msgid "minute"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InputBox.py:104
-#: ../enigma2_experimental/lib/python/Screens/SleepTimerEdit.py:44
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:23
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:24
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:25
-#: ../enigma2_master/lib/python/Screens/InputBox.py:104
-#: ../enigma2_master/lib/python/Screens/SleepTimerEdit.py:44
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:23
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:24
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:25
-msgid "minutes"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:117
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:117
-msgid "month"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:32
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:32
-msgid "move PiP to main picture"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:713
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:713
-msgid "move down to last entry"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:711
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:711
-msgid "move down to next entry"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:712
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:712
-msgid "move up to first entry"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:710
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:710
-msgid "move up to previous entry"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1138
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1139
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1140
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1138
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1139
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1140
-msgid "movie list"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/AVSwitch.py:112
-#: ../enigma2_master/lib/python/Components/AVSwitch.py:112
-msgid "multinorm"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/ParentalControl.py:29
-#: ../enigma2_experimental/lib/python/Components/ParentalControl.py:30
-#: ../enigma2_master/lib/python/Components/ParentalControl.py:29
-#: ../enigma2_master/lib/python/Components/ParentalControl.py:30
-msgid "never"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:299
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:299
-msgid "next channel"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:301
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:301
-msgid "next channel in history"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/MessageBox.py:44
-#: ../enigma2_experimental/lib/python/Screens/MessageBox.py:46
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:537
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:923
-#: ../enigma2_experimental/lib/python/Screens/SleepTimerEdit.py:92
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:114
-#: ../enigma2_experimental/lib/python/Components/config.py:439
-#: ../enigma2_master/lib/python/Screens/MessageBox.py:44
-#: ../enigma2_master/lib/python/Screens/MessageBox.py:46
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:537
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:923
-#: ../enigma2_master/lib/python/Screens/SleepTimerEdit.py:92
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:114
-#: ../enigma2_master/lib/python/Components/config.py:439
-msgid "no"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:231
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:234
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:231
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:234
-msgid "no CAId selected"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:62
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:62
-msgid "no CI slots found"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/HarddiskSetup.py:100
-#: ../enigma2_master/lib/python/Screens/HarddiskSetup.py:100
-msgid "no HDD found"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:189
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:189
-msgid "no Services/Providers selected"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Ci.py:325
-#: ../enigma2_experimental/lib/python/Screens/Ci.py:349
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:55
-#: ../enigma2_master/lib/python/Screens/Ci.py:325
-#: ../enigma2_master/lib/python/Screens/Ci.py:349
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:55
-msgid "no module found"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:22
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:22
-msgid "no standby"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:15
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:15
-msgid "no timeout"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/About.py:40
-#: ../enigma2_master/lib/python/Screens/About.py:40
-msgid "none"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:61
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:512
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:61
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:512
-msgid "not configured"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/TunerInfo.py:79
-#: ../enigma2_master/lib/python/Components/TunerInfo.py:79
-msgid "not locked"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:587
-#: ../enigma2_master/lib/python/Components/NimManager.py:587
-msgid "not supported"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1219
-#: ../enigma2_master/lib/python/Components/NimManager.py:1219
-msgid "not used"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:546
-#: ../enigma2_experimental/lib/python/Components/FileList.py:200
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1161
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1433
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1449
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1489
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:546
-#: ../enigma2_master/lib/python/Components/FileList.py:200
-#: ../enigma2_master/lib/python/Components/NimManager.py:1161
-#: ../enigma2_master/lib/python/Components/NimManager.py:1433
-#: ../enigma2_master/lib/python/Components/NimManager.py:1449
-#: ../enigma2_master/lib/python/Components/NimManager.py:1489
-msgid "nothing connected"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/DVDToolbox.py:140
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/DVDToolbox.py:140
-msgid "of a DUAL layer medium used."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/DVDToolbox.py:143
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/DVDToolbox.py:143
-msgid "of a SINGLE layer medium used."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:570
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:605
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:612
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:635
-#: ../enigma2_experimental/lib/python/Components/config.py:444
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:28
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:570
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:605
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:612
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:635
-#: ../enigma2_master/lib/python/Components/config.py:444
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:28
-msgid "off"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:571
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:606
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:613
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:636
-#: ../enigma2_experimental/lib/python/Components/config.py:444
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:28
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:571
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:606
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:613
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:636
-#: ../enigma2_master/lib/python/Components/config.py:444
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:28
-msgid "on"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/DVDToolbox.py:146
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/DVDToolbox.py:146
-msgid "on READ ONLY medium."
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:797
-msgid "on Weekday"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:103
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:103
-msgid "once"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:344
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:344
-msgid "open nameserver configuration"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:302
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:302
-msgid "open servicelist"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:297
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:297
-msgid "open servicelist(down)"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:296
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:296
-msgid "open servicelist(up)"
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:180
-msgid "partial match"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/ServiceScan.py:137
-#: ../enigma2_master/lib/python/Components/ServiceScan.py:137
-msgid "pass"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:755
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:161
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:755
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:161
-msgid "pause"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:160
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:160
-msgid "play entry"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:164
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:164
-msgid "play from next mark or playlist entry"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:163
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:163
-msgid "play from previous mark or playlist entry"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Ci.py:93
-#: ../enigma2_master/lib/python/Screens/Ci.py:93
-msgid "please press OK when ready"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/Process.py:462
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:473
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/Process.py:462
-#: ../enigma2_master/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:473
-msgid "please wait, loading picture..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:298
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:298
-msgid "previous channel"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:300
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:300
-msgid "previous channel in history"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:97
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:97
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:187
-#: ../enigma2_plugins/autotimer/src/AutoTimerImporter.py:182
-msgid "record"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/TimerList.py:60
-#: ../enigma2_master/lib/python/Components/TimerList.py:60
-msgid "recording..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:28
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:29
-#: ../enigma2_master/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:28
-#: ../enigma2_master/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:29
-msgid "red"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:256
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:256
-msgid "remove a nameserver entry"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/CutListEditor/plugin.py:74
-#: ../enigma2_master/lib/python/Plugins/Extensions/CutListEditor/plugin.py:74
-msgid "remove after this position"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:156
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:156
-msgid "remove all alternatives"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:131
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:131
-msgid "remove all new found flags"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/CutListEditor/plugin.py:73
-#: ../enigma2_master/lib/python/Plugins/Extensions/CutListEditor/plugin.py:73
-msgid "remove before this position"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/LocationBox.py:418
-#: ../enigma2_master/lib/python/Screens/LocationBox.py:418
-msgid "remove bookmark"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/LocationBox.py:413
-#: ../enigma2_master/lib/python/Screens/LocationBox.py:413
-msgid "remove directory"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:133
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:141
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:133
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:141
-msgid "remove entry"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:112
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:112
-msgid "remove from parental protection"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:135
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:135
-msgid "remove new found flag"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:126
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:126
-msgid "remove selected satellite"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/CutListEditor/plugin.py:81
-#: ../enigma2_master/lib/python/Plugins/Extensions/CutListEditor/plugin.py:81
-msgid "remove this mark"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/settings.py:92
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/settings.py:92
-msgid "repeat playlist"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:103
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:103
-msgid "repeated"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:343
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:343
-msgid "rewind to the previous chapter"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/AudioSelection.py:80
-#: ../enigma2_master/lib/python/Screens/AudioSelection.py:80
-msgid "right"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/settings.py:94
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/settings.py:94
-msgid "save last directory on exit"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:508
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:508
-msgid "save playlist"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/settings.py:93
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/settings.py:93
-msgid "save playlist on exit"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/ServiceScan.py:96
-#: ../enigma2_experimental/lib/python/Components/ServiceScan.py:98
-#: ../enigma2_master/lib/python/Components/ServiceScan.py:96
-#: ../enigma2_master/lib/python/Components/ServiceScan.py:98
-msgid "scan done!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/ServiceScan.py:33
-#: ../enigma2_master/lib/python/Components/ServiceScan.py:33
-#, python-format
-msgid "scan in progress - %d%% done!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ServiceScan.py:48
-#: ../enigma2_master/lib/python/Screens/ServiceScan.py:48
-msgid "scan state"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:15
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:15
-msgid "second"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:70
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:509
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1437
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:70
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:509
-#: ../enigma2_master/lib/python/Components/NimManager.py:1437
-msgid "second cable of motorized LNB"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InputBox.py:104
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:15
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:16
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:17
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:22
-#: ../enigma2_master/lib/python/Screens/InputBox.py:104
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:15
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:16
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:17
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:22
-msgid "seconds"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/LocationBox.py:127
-#: ../enigma2_master/lib/python/Screens/LocationBox.py:127
-msgid "select"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:123
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:123
-msgid "select CAId"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:381
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py:381
-msgid "select CAId's"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:53
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:59
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:53
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:59
-msgid "select interface"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:719
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:719
-msgid "select menu entry"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/MovieSelection.py:238
-#: ../enigma2_master/lib/python/Screens/MovieSelection.py:238
-msgid "select movie"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/MovieSelection.py:217
-#: ../enigma2_master/lib/python/Screens/MovieSelection.py:217
-msgid "select the movie path"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ParentalControlSetup.py:118
-#: ../enigma2_experimental/lib/python/Screens/ParentalControlSetup.py:147
-#: ../enigma2_master/lib/python/Screens/ParentalControlSetup.py:118
-#: ../enigma2_master/lib/python/Screens/ParentalControlSetup.py:147
-msgid "service PIN"
-msgstr ""
-
-#: ../enigma2_plugins/ac3lipsync/src/plugin.py:36
-msgid "sets the Audio Delay (LipSync)"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ParentalControlSetup.py:120
-#: ../enigma2_experimental/lib/python/Screens/ParentalControlSetup.py:140
-#: ../enigma2_master/lib/python/Screens/ParentalControlSetup.py:120
-#: ../enigma2_master/lib/python/Screens/ParentalControlSetup.py:140
-msgid "setup PIN"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:340
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:340
-msgid "show DVD main menu"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:489
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:489
-msgid "show EPG..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:180
-#: ../enigma2_master/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:180
-msgid "show Infoline"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/MovieSelection.py:229
-#: ../enigma2_master/lib/python/Screens/MovieSelection.py:229
-msgid "show all"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:155
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:155
-msgid "show alternatives"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:402
-#: ../enigma2_experimental/lib/python/Screens/MovieSelection.py:224
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:178
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:402
-#: ../enigma2_master/lib/python/Screens/MovieSelection.py:224
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:178
-msgid "show event details"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/MovieSelection.py:87
-#: ../enigma2_master/lib/python/Screens/MovieSelection.py:87
-msgid "show extended description"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/MovieSelection.py:230
-#: ../enigma2_master/lib/python/Screens/MovieSelection.py:230
-msgid "show first selected tag"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/MovieSelection.py:231
-#: ../enigma2_master/lib/python/Screens/MovieSelection.py:231
-msgid "show second selected tag"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:53
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:58
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:53
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:58
-msgid "show shutdown menu"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:600
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:600
-msgid "show single service EPG..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/MovieSelection.py:232
-#: ../enigma2_master/lib/python/Screens/MovieSelection.py:232
-msgid "show tag menu"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ChannelSelection.py:103
-#: ../enigma2_master/lib/python/Screens/ChannelSelection.py:103
-msgid "show transponder info"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:172
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:504
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:172
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:504
-msgid "shuffle playlist"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TaskView.py:50
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:101
-#: ../enigma2_master/lib/python/Screens/TaskView.py:50
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:101
-msgid "shut down"
-msgstr ""
-
-#: ../enigma2_experimental/SleepTimer.py:14 ../enigma2_master/SleepTimer.py:14
-msgid "shutdown"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:62
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:541
-#: ../enigma2_experimental/lib/python/Components/NimManager.py:1434
-#: ../enigma2_experimental/lib/python/Components/ParentalControl.py:28
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:23
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:62
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:541
-#: ../enigma2_master/lib/python/Components/NimManager.py:1434
-#: ../enigma2_master/lib/python/Components/ParentalControl.py:28
-#: ../enigma2_master/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:23
-msgid "simple"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:760
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:760
-msgid "skip backward"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:761
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:761
-msgid "skip backward (enter time)"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:758
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:758
-msgid "skip forward"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:759
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:759
-msgid "skip forward (enter time)"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:182
-#: ../enigma2_master/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:182
-msgid "slide picture in loop"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/MovieSelection.py:73
-#: ../enigma2_master/lib/python/Screens/MovieSelection.py:73
-msgid "sort by date"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ParentalControlSetup.py:249
-#: ../enigma2_master/lib/python/Screens/ParentalControlSetup.py:249
-msgid "special characters"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/RecordingConfig.py:12
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:31
-#: ../enigma2_master/lib/python/Components/RecordingConfig.py:12
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:31
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:238
-msgid "standard"
-msgstr ""
-
-#: ../enigma2_experimental/SleepTimer.py:14 ../enigma2_master/SleepTimer.py:14
-msgid "standby"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/CutListEditor/plugin.py:59
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/CutListEditor/plugin.py:61
-#: ../enigma2_master/lib/python/Plugins/Extensions/CutListEditor/plugin.py:59
-#: ../enigma2_master/lib/python/Plugins/Extensions/CutListEditor/plugin.py:61
-msgid "start cut here"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/settings.py:96
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/settings.py:96
-msgid "start directory"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1175
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1175
-msgid "start timeshift"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/AudioSelection.py:80
-#: ../enigma2_master/lib/python/Screens/AudioSelection.py:80
-msgid "stereo"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:32
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:32
-msgid "stop PiP"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:162
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:162
-msgid "stop entry"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1649
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1649
-msgid "stop recording"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1176
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1176
-msgid "stop timeshift"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/UsageConfig.py:31
-#: ../enigma2_master/lib/python/Components/UsageConfig.py:31
-msgid "swap PiP and main picture"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/LocationBox.py:141
-#: ../enigma2_experimental/lib/python/Screens/LocationBox.py:407
-#: ../enigma2_master/lib/python/Screens/LocationBox.py:141
-#: ../enigma2_master/lib/python/Screens/LocationBox.py:407
-msgid "switch to bookmarks"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/LocationBox.py:142
-#: ../enigma2_experimental/lib/python/Screens/LocationBox.py:417
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:169
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:500
-#: ../enigma2_master/lib/python/Screens/LocationBox.py:142
-#: ../enigma2_master/lib/python/Screens/LocationBox.py:417
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:169
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:500
-msgid "switch to filelist"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:168
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:496
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:168
-#: ../enigma2_master/lib/python/Plugins/Extensions/MediaPlayer/plugin.py:496
-msgid "switch to playlist"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:350
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:350
-msgid "switch to the next angle"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:348
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:348
-msgid "switch to the next audio track"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:349
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:349
-msgid "switch to the next subtitle language"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:156
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py:156
-msgid "template file"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:184
-#: ../enigma2_master/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:184
-msgid "textcolor"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBar.py:200
-#: ../enigma2_experimental/lib/python/Screens/MovieSelection.py:121
-#: ../enigma2_master/lib/python/Screens/InfoBar.py:200
-#: ../enigma2_master/lib/python/Screens/MovieSelection.py:121
-msgid "this recording"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/ParentalControl.py:111
-#: ../enigma2_master/lib/python/Components/ParentalControl.py:111
-msgid "this service is protected by a parental control pin"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1884
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1884
-msgid "toggle a cut mark at the current position"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:341
-#: ../enigma2_master/lib/python/Plugins/Extensions/DVDPlayer/plugin.py:341
-msgid "toggle time, chapter, audio, subtitle info"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Satconfig.py:552
-#: ../enigma2_master/lib/python/Screens/Satconfig.py:552
-msgid "tuner is not supported"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:338
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:346
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:294
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:340
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:338
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py:346
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:294
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py:340
-msgid "unavailable"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1399
-#: ../enigma2_experimental/lib/python/Screens/NetworkSetup.py:1413
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1399
-#: ../enigma2_master/lib/python/Screens/NetworkSetup.py:1413
-msgid "unconfirmed"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1199
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1204
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1199
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1204
-msgid "unknown"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/EventView.py:123
-#: ../enigma2_master/lib/python/Screens/EventView.py:123
-msgid "unknown service"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/ParentalControl.py:29
-#: ../enigma2_experimental/lib/python/Components/ParentalControl.py:30
-#: ../enigma2_master/lib/python/Components/ParentalControl.py:29
-#: ../enigma2_master/lib/python/Components/ParentalControl.py:30
-msgid "until standby/restart"
-msgstr ""
-
-#: ../enigma2_plugins/networkbrowser/src/MountEdit.py:186
-msgid "use as HDD replacement"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:109
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:109
-msgid "user defined"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:576
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:576
-msgid "vertical"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBarGenerics.py:1307
-#: ../enigma2_master/lib/python/Screens/InfoBarGenerics.py:1307
-msgid "view extensions..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/InfoBar.py:62
-#: ../enigma2_master/lib/python/Screens/InfoBar.py:62
-msgid "view recordings..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/Ci.py:32
-#: ../enigma2_master/lib/python/Screens/Ci.py:32
-msgid "wait for ci..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/SocketMMI/SocketMMI.py:21
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/SocketMMI/SocketMMI.py:28
-#: ../enigma2_master/lib/python/Plugins/Extensions/SocketMMI/SocketMMI.py:21
-#: ../enigma2_master/lib/python/Plugins/Extensions/SocketMMI/SocketMMI.py:28
-msgid "wait for mmi..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/TimerList.py:53
-#: ../enigma2_master/lib/python/Components/TimerList.py:53
-msgid "waiting"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CleanupWizard/CleanupWizard.py:149
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CleanupWizard/CleanupWizard.py:149
-msgid "was removed successfully"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:109
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:109
-msgid "weekly"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/ParentalControl.py:33
-#: ../enigma2_master/lib/python/Components/ParentalControl.py:33
-msgid "whitelist"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/DiseqcTester/plugin.py:261
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/DiseqcTester/plugin.py:261
-msgid "working"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:28
-#: ../enigma2_experimental/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:29
-#: ../enigma2_master/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:28
-#: ../enigma2_master/lib/python/Plugins/Extensions/PicturePlayer/plugin.py:29
-msgid "yellow"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/MessageBox.py:44
-#: ../enigma2_experimental/lib/python/Screens/MessageBox.py:46
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:537
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:923
-#: ../enigma2_experimental/lib/python/Screens/SleepTimerEdit.py:90
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:114
-#: ../enigma2_experimental/lib/python/Components/config.py:439
-#: ../enigma2_master/lib/python/Screens/MessageBox.py:44
-#: ../enigma2_master/lib/python/Screens/MessageBox.py:46
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:537
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:923
-#: ../enigma2_master/lib/python/Screens/SleepTimerEdit.py:90
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:114
-#: ../enigma2_master/lib/python/Components/config.py:439
-msgid "yes"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:537
-#: ../enigma2_experimental/lib/python/Screens/ScanSetup.py:923
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:537
-#: ../enigma2_master/lib/python/Screens/ScanSetup.py:923
-msgid "yes (keep feeds)"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1425
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py:1425
-msgid ""
-"your dreambox might be unusable now. Please consult the manual for further "
-"assistance before rebooting your dreambox."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Screens/TimerEntry.py:97
-#: ../enigma2_master/lib/python/Screens/TimerEntry.py:97
-#: ../enigma2_plugins/autotimer/src/AutoTimerEditor.py:187
-#: ../enigma2_plugins/autotimer/src/AutoTimerImporter.py:182
-msgid "zap"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Components/TimerList.py:58
-#: ../enigma2_master/lib/python/Components/TimerList.py:58
-msgid "zapped"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "#000000"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "#0064c7"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "#25062748"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "#389416"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "#80000000"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "#80ffffff"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "#bab329"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "#f23d21"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "#ffffff"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "#ffffffff"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "0"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "1"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "12V output"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "2"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "3"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "4"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "5"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "6"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "7"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "8"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "9"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "About"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Action on long powerbutton press"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Action on short powerbutton press"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Activate network settings"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid ""
-"After the start wizard is completed, you need to protect single services. "
-"Refer to your dreambox's manual on how to do that."
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Alpha"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Alternative radio mode"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Alternative services tuner priority"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Audio"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "BER"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "BER:"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Behavior of 'pause' when paused"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Behavior of 0 key in PiP-mode"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Behavior when a movie is started"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Behavior when a movie is stopped"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Behavior when a movie reaches the end"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid ""
-"By pressing the OK Button on your remote control, the info bar is being "
-"displayed."
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "C"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Change bouquets in quickzap"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Channellist menu"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Choose Tuner"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Choose bouquet"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Choose your Skin"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Command execution..."
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Common Interface"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Composition of the recording filenames"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Continue in background"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Custom skip time for '1'/'3'-keys"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Custom skip time for '4'/'6'-keys"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Custom skip time for '7'/'9'-keys"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Customize"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "D"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Default services lists"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Delay"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "DiSEqC"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Dish"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Display Setup"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Do you want to do a service scan?"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Do you want to do another manual service scan?"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Do you want to enable the parental control feature on your dreambox?"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Do you want to install default sat lists?"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Do you want to view a tutorial?"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Downloadable plugins"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "EPG Selection"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Enable multiple bouquets"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Enter Fast Forward at speed"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Enter Rewind at speed"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Eventview"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Exit wizard"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Extensions"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Factory reset"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Fast Forward speeds"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Filesystem Check"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Finetune"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Frame repeat count during non-smooth winding"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "General AC3 delay (ms)"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "General PCM delay (ms)"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Harddisk setup"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Harddisk standby after"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Index"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "InfoBar"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Infobar timeout"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Information"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Initialization"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Input devices"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Installing Software..."
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Installing default sat lists... Please wait..."
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Installing defaults... Please wait..."
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Installing package content... Please wait..."
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Job View"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Keyboard"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Keyboard Map"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Keyboard Setup"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Keymap"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Language"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Limited character set for recording filenames"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Load Length of Movies in Movielist"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Lock:"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "MORE"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Main menu"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Mainmenu"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Manual Scan"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Margin after record"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Margin before record (minutes)"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "MediaPlayer"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Message"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Message..."
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Modulator"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Movielist menu"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Mute"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "NEXT"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "NOW"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Nameserver Setup"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Network Configuration..."
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Network Setup"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Network setup"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Network test..."
-msgstr ""
-
-#: ../enigma2_experimental/data/
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/
-#: ../enigma2_master/data/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/
-msgid "No, just start my dreambox"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "No, scan later manually"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Now Playing"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "OSD Settings"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Parental control services Editor"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "PiPSetup"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Pin code needed"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid ""
-"Please be aware, that anyone can disable the parental control, if you have "
-"not set a PIN."
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Please choose the default services lists you want to install."
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Please set up tuner B"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Please set up tuner C"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Please set up tuner D"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Plugin browser"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Plugins"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "RC Menu"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "RF output"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Radio"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Reception Settings"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Recording paths"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Recordings always have priority"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Repeat"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Restart"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Restart GUI"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Rewind speeds"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "SNR"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "SNR:"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Sat / Dish Setup"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Seek"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Select HDD"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Select Network Adapter"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Select a movie"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Service"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Service Scan"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Service Searching"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Service scan"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Setup Mode"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Show Message when Recording starts"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Show blinking clock in display during recording"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Show event-progress in channel selection"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Show infobar on channel change"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Show infobar on event change"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Show infobar on skip forward/backward"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Show positioner movement"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Sleep Timer"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Slow Motion speeds"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Sound"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Soundcarrier"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Subservices"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "TV System"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Test mode"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid ""
-"Thank you for using the wizard. Your box is now ready to use.\n"
-"Please press OK to start using your Dreambox."
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "The package doesn't contain anything."
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "There are no default services lists in your image."
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "There are no default settings in your image."
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "This is step number 2."
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Time/Date Input"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Timer"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Timer Edit"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Timer Editor"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Timer entry"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Timer log"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Timer sanity error"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Timer selection"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Timeshift"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Timezone"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Translation"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Translation:"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Tuner Slot"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Tuner configuration"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "UnhandledKey"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Use non-smooth winding at speeds above"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Use power measurement"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid ""
-"Use the left and right buttons to change an option.\n"
-"\n"
-"Please set up tuner A"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid ""
-"Use the up/down keys on your remote control to select an option. After that, "
-"press OK."
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Use wizard to set up basic features"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "VCR scart"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Virtual KeyBoard"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Volume"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Welcome..."
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid ""
-"Welcome.\n"
-"\n"
-"This start wizard will guide you through the basic setup of your Dreambox.\n"
-"Press the OK button on your remote control to move to the next step."
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "What do you want to scan?"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Yes, do a manual scan now"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Yes, do an automatic scan now"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Yes, do another manual scan now"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "Yes, view the tutorial"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid ""
-"You can choose some default settings now. Please select the settings you "
-"want to be installed."
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "You can choose, what you want to install..."
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "You chose not to install any default services lists."
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid ""
-"You chose not to install any default settings. You can however install the "
-"default settings later in the settings menu."
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid ""
-"You chose not to install anything. Please press OK finish the install wizard."
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid ""
-"You need to set a PIN code and hide it from your children.\n"
-"\n"
-"Do you want to set the pin now?"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "config menu"
-msgstr ""
-
-#: ../enigma2_experimental/data/ ../enigma2_master/data/
-msgid "help..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Videomode/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Videomode/
-msgid "No picture on TV? Press EXIT and retry."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Videomode/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Videomode/
-msgid "Refresh rate selection."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Videomode/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Videomode/
-msgid "Select refresh rate"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Videomode/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Videomode/
-msgid "Select video input with up/down buttons"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Videomode/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Videomode/
-msgid "Select video mode"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Videomode/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Videomode/
-msgid ""
-"The input port should be configured now.\n"
-"You can now configure the screen by displaying some test pictures. Do you "
-"want to do that now?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Videomode/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Videomode/
-msgid ""
-"Video input selection\n"
-"\n"
-"Please press OK if you can see this page on your TV (or select a different "
-"input port).\n"
-"\n"
-"The next input port will be automatically probed in 10 seconds."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/Videomode/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/Videomode/
-msgid "Video mode selection."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/
-msgid "Exit the wizard"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/
-msgid "Install a new image with a USB stick"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/
-msgid "Install a new image with your web browser"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/
-msgid "No backup needed"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/
-msgid "No, do nothing."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/
-msgid "OK, guide me through the upgrade process"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/
-msgid "The backup failed. Please choose a different backup location."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CleanupWizard/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CleanupWizard/
-msgid "The wizard is finished now."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/
-msgid ""
-"Welcome to the Image upgrade wizard. The wizard will assist you in upgrading "
-"the firmware of your Dreambox by providing a backup facility for your "
-"current settings and a short explanation of how to upgrade your firmware."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/
-msgid "Where do you want to backup your settings?"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/
-msgid "Yes, backup my settings!"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/
-msgid "Yes, perform a shutdown now."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/
-msgid "Yes, restore the settings now"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/
-msgid ""
-"You have chosen to backup your settings. Please press OK to start the backup "
-"now."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/
-msgid ""
-"You have chosen to restore your settings. Enigma2 will restart after "
-"restore. Please press OK to start the restore now."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/
-msgid ""
-"You need a PC connected to your dreambox. If you need further instructions, "
-"please visit the website http://www.dm7025.de.\n"
-"Your dreambox will now be halted. After you have performed the update "
-"instructions from the website, your new firmware will ask you to restore "
-"your settings."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/
-msgid ""
-"Your backup succeeded. We will now continue to explain the further upgrade "
-"process."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/SoftwareManager/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/SoftwareManager/
-msgid "Your dreambox is shutting down. Please stand by..."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CleanupWizard/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CleanupWizard/
-msgid "Package removal failed.\n"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CleanupWizard/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CleanupWizard/
-msgid "Package removed successfully.\n"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CleanupWizard/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CleanupWizard/
-msgid "Please select an extension to remove."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CleanupWizard/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CleanupWizard/
-msgid "Remove failed."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CleanupWizard/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CleanupWizard/
-msgid "Removed successfully."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CleanupWizard/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CleanupWizard/
-msgid "Select package"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/CleanupWizard/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/CleanupWizard/
-msgid ""
-"Welcome to the cleanup wizard.\n"
-"\n"
-"We have detected that your available internal memory has dropped below 2MB.\n"
-"To ensure stable operation of your Dreambox, the internal memory should be "
-"cleaned up.\n"
-"You can use this wizard to remove some extensions.\n"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/
-msgid "Configure interface"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/
-msgid "Configure nameservers"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/
-msgid "Configure your network again"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/
-msgid ""
-"Please configure or verify your Nameservers by filling out the required "
-"values.\n"
-"When you are ready press OK to continue."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/
-msgid ""
-"Please configure your internet connection by filling out the required "
-"values.\n"
-"When you are ready press OK to continue."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/
-msgid "Please follow the instructions on the TV"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/
-msgid ""
-"Please select the network interface that you want to use for your internet "
-"connection.\n"
-"\n"
-"Please press OK to continue."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/
-msgid ""
-"Please select the wireless network that you want to connect to.\n"
-"\n"
-"Please press OK to continue."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/
-msgid "Select interface"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/
-msgid "Select wireless network"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/
-msgid ""
-"Thank you for using the wizard.\n"
-"Please press OK to continue."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/
-msgid ""
-"The wireless LAN plugin is not installed!\n"
-"Please install it and choose what you want to do next."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/
-msgid ""
-"Welcome.\n"
-"\n"
-"If you want to connect your Dreambox to the Internet, this wizard will guide "
-"you through the basic network setup of your Dreambox.\n"
-"\n"
-"Press OK to start configuring your network"
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/
-msgid ""
-"Your Dreambox is now ready to use.\n"
-"\n"
-"Your internet connection is working now.\n"
-"\n"
-"Please press OK to continue."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/
-msgid ""
-"Your internet connection is not working!\n"
-"Please choose what you want to do next."
-msgstr ""
-
-#: ../enigma2_experimental/lib/python/Plugins/SystemPlugins/NetworkWizard/
-#: ../enigma2_master/lib/python/Plugins/SystemPlugins/NetworkWizard/
-msgid ""
-"Your wireless LAN internet connection could not be started!\n"
-"Have you attached your USB WLAN Stick?\n"
-"\n"
-"Please choose what you want to do next."
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/
-msgid "Abort this Wizard."
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/
-msgid "Create a new AutoTimer."
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/
-msgid ""
-"Filters are another powerful tool when matching events. An AutoTimer can be "
-"restricted to certain Weekdays or only match an event with a text inside eg "
-"it's Description.\n"
-"Press BLUE to add a new restriction and YELLOW to remove the selected one."
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/
-msgid ""
-"It's possible to restrict an AutoTimer to certain Services or Bouquets or to "
-"deny specific ones.\n"
-"An Event will only match this AutoTimer if it's on a specific and not denied "
-"Service (inside a Bouquet).\n"
-"Press BLUE to add a new restriction and YELLOW to remove the selected one."
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/
-msgid "No, remove them."
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/
-msgid ""
-"Thank you for using the wizard. Your new AutoTimer has been added to the "
-"List.\n"
-"Please press OK to continue."
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/
-msgid ""
-"The Timer will not be added to the List.\n"
-"Please press OK to close this Wizard."
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/
-msgid ""
-"The Timespan of an AutoTimer is the first 'advanced' attribute. If a "
-"timespan is specified an event will only match this AutoTimer if it lies "
-"inside of this timespan."
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/
-msgid ""
-"Welcome.\n"
-"\n"
-"This Wizard will help you to create a new AutoTimer by providing "
-"descriptions for common settings."
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/
-msgid "Yes, keep them."
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/
-msgid ""
-"You can set the basic properties of an AutoTimer here.\n"
-"While 'Name' is just a human-readable name displayed in the Overview, 'Match "
-"in title' is what is looked for in the EPG."
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/
-msgid ""
-"You did not provide a valid 'Match in title' Attribute for your new "
-"AutoTimer.\n"
-"As this is a mandatory Attribute you cannot continue without doing so."
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/
-msgid ""
-"You successfully configured a new AutoTimer. Do you want to add it to the "
-"list?\n"
-"\n"
-"You can go back a step by pressing EXIT on your remote."
-msgstr ""
-
-#: ../enigma2_plugins/autotimer/src/
-msgid ""
-"Your 'Match in title' Attribute ends with a Whitespace.\n"
-"Please confirm if this was intentional, if not they will be removed."
-msgstr ""
-
-#: ../meta_skins/skin_basic-hd.xml
-msgid "BASIC-HD Skin for Dreambox Images created from Ismail Demir"
-msgstr ""
-
-#: ../meta_skins/skin_basic-hd.xml
-msgid "BASIC-HD Skin by Ismail Demir"
-msgstr ""
-
-#: ../meta_skins/skin_brushedalu-hd.xml
-msgid "A nice looking HD skin in Brushed Alu Design from Kerni."
-msgstr ""
-
-#: ../meta_skins/skin_brushedalu-hd.xml
-msgid "Kerni's BrushedAlu-HD skin"
-msgstr ""
-
-#: ../meta_skins/skin_dmm-hd.xml ../meta_skins/skin_dreammm-hd.xml
-#: ../meta_skins/skin_elgato-hd.xml ../meta_skins/skin_ultraviolet.xml
-#: ../meta_skins/skin_yads-hd.xml
-msgid "a HD skin from Kerni"
-msgstr ""
-
-#: ../meta_skins/skin_dmm-hd.xml
-msgid "Kerni's dmm-HD skin"
-msgstr ""
-
-#: ../meta_skins/skin_dreammm-hd.xml
-msgid "Kerni's DreamMM-HD skin"
-msgstr ""
-
-#: ../meta_skins/skin_dreamtv-hd.xml ../meta_skins/skin_dtv-hd-reloaded.xml
-#: ../meta_skins/skin_dtv-hd.xml
-msgid "A nice looking HD skin from Kerni"
-msgstr ""
-
-#: ../meta_skins/skin_dreamtv-hd.xml
-msgid "Kerni's dreamTV-HD skin"
-msgstr ""
-
-#: ../meta_skins/skin_dtv-hd-reloaded.xml
-msgid "Kerni's dTV-HD-Reloaded skin"
-msgstr ""
-
-#: ../meta_skins/skin_dtv-hd.xml
-msgid "Kerni's dTV-HD skin"
-msgstr ""
-
-#: ../meta_skins/skin_elgato-hd.xml
-msgid "Kerni's Elgato-HD skin"
-msgstr ""
-
-#: ../meta_skins/skin_kerni-hd1.xml
-msgid "Kerni-HD1 skin"
-msgstr ""
-
-#: ../meta_skins/skin_kerni-hd1.xml
-msgid "Kernis HD1 skin"
-msgstr ""
-
-#: ../meta_skins/skin_kerni-hd1r2.xml
-msgid "Kerni-HD1R2 skin"
-msgstr ""
-
-#: ../meta_skins/skin_kerni-hd1r2.xml
-msgid "redesigned Kerni-HD1 skin"
-msgstr ""
-
-#: ../meta_skins/skin_nemesis.blackbox.xml
-msgid "Nemesis BlackBox Skin"
-msgstr ""
-
-#: ../meta_skins/skin_nemesis.blackbox.xml
-msgid "Nemesis BlackBox Skin for the Dreambox"
-msgstr ""
-
-#: ../meta_skins/skin_nemesis.blueline.extended.xml
-msgid "Nemesis Blueline.Extended Skin for the Dreambox"
-msgstr ""
-
-#: ../meta_skins/skin_nemesis.blueline.extended.xml
-msgid "Nemesis Blueline.Extended Skin"
-msgstr ""
-
-#: ../meta_skins/skin_nemesis.blueline.single.xml
-msgid "Nemesis Blueline Single Skin"
-msgstr ""
-
-#: ../meta_skins/skin_nemesis.blueline.single.xml
-msgid "Nemesis Blueline Single Skin for the Dreambox"
-msgstr ""
-
-#: ../meta_skins/skin_nemesis.blueline.xml
-msgid "Nemesis Blueline Skin"
-msgstr ""
-
-#: ../meta_skins/skin_nemesis.blueline.xml
-msgid "Nemesis Blueline Skin for the Dreambox"
-msgstr ""
-
-#: ../meta_skins/skin_nemesis.chromeline.cobolt.xml
-msgid "Nemesis ChromeLine Cobolt Skin for the Dreambox"
-msgstr ""
-
-#: ../meta_skins/skin_nemesis.chromeline.cobolt.xml
-msgid "Nemesis ChromeLine Cobolt Skin"
-msgstr ""
-
-#: ../meta_skins/skin_nemesis.chromeline.xml
-msgid "Nemesis ChromeLine Skin"
-msgstr ""
-
-#: ../meta_skins/skin_nemesis.chromeline.xml
-msgid "Nemesis ChromeLine Skin for the Dreambox"
-msgstr ""
-
-#: ../meta_skins/skin_nemesis.flatline.blue.xml
-msgid "Nemesis Flatline Blue Skin"
-msgstr ""
-
-#: ../meta_skins/skin_nemesis.flatline.blue.xml
-msgid "Nemesis Flatline Blue Skin for the Dreambox"
-msgstr ""
-
-#: ../meta_skins/skin_nemesis.flatline.xml
-msgid "Nemesis Flatline Skin for the Dreambox"
-msgstr ""
-
-#: ../meta_skins/skin_nemesis.flatline.xml
-msgid "Nemesis Flatline Skin"
-msgstr ""
-
-#: ../meta_skins/skin_nemesis.glassline.xml
-msgid "Nemesis GlassLine Skin"
-msgstr ""
-
-#: ../meta_skins/skin_nemesis.glassline.xml
-msgid "Nemesis GlassLine Skin for the Dreambox"
-msgstr ""
-
-#: ../meta_skins/skin_nemesis.greenline.extended.xml
-msgid "Nemesis Greenline Extended Skin for the Dreambox"
-msgstr ""
-
-#: ../meta_skins/skin_nemesis.greenline.extended.xml
-msgid "Nemesis Greenline Extended Skin"
-msgstr ""
-
-#: ../meta_skins/skin_nemesis.greenline.single.xml
-msgid "Nemesis Greenline Single Skin"
-msgstr ""
-
-#: ../meta_skins/skin_nemesis.greenline.single.xml
-msgid "Nemesis Greenline Single Skin for the Dreambox"
-msgstr ""
-
-#: ../meta_skins/skin_nemesis.greenline.xml
-msgid "Nemesis Greenline Skin"
-msgstr ""
-
-#: ../meta_skins/skin_nemesis.greenline.xml
-msgid "Nemesis Greenline Skin for the Dreambox"
-msgstr ""
-
-#: ../meta_skins/skin_nemesis.greyline.extended.xml
-msgid "Nemesis Greyline Extended Skin for the Dreambox"
-msgstr ""
-
-#: ../meta_skins/skin_nemesis.greyline.extended.xml
-msgid "Nemesis Greyline Extended Skin"
-msgstr ""
-
-#: ../meta_skins/skin_nemesis.greyline.single.xml
-msgid "Nemesis Greyline Single Skin for the Dreambox"
-msgstr ""
-
-#: ../meta_skins/skin_nemesis.greyline.single.xml
-msgid "Nemesis Greyline Single Skin"
-msgstr ""
-
-#: ../meta_skins/skin_nemesis.greyline.xml
-msgid "Nemesis Greyline Skin for the Dreambox"
-msgstr ""
-
-#: ../meta_skins/skin_nemesis.greyline.xml
-msgid "Nemesis Greyline Skin"
-msgstr ""
-
-#: ../meta_skins/skin_nemesis.shadowline.xml
-msgid "Nemesis ShadowLine Skin for the Dreambox"
-msgstr ""
-
-#: ../meta_skins/skin_nemesis.shadowline.xml
-msgid "Nemesis ShadowLine Skin"
-msgstr ""
-
-#: ../meta_skins/skin_simple.xml ../meta_skins/skin_swain-hd.xml
-#: ../meta_skins/skin_swain.xml
-msgid "A nice looking skin from Kerni"
-msgstr ""
-
-#: ../meta_skins/skin_simple.xml
-msgid "Kerni's simple skin"
-msgstr ""
-
-#: ../meta_skins/skin_swain-hd.xml
-msgid "Kerni's SWAIN-HD skin"
-msgstr ""
-
-#: ../meta_skins/skin_swain.xml
-msgid "Kerni's SWAIN skin"
-msgstr ""
-
-#: ../meta_skins/skin_ultraviolet.xml
-msgid "Kerni's UltraViolet skin"
-msgstr ""
-
-#: ../meta_skins/skin_vali-xd.xml
-msgid "Vali-XD skin"
-msgstr ""
-
-#: ../meta_skins/skin_vali-xd.xml
-msgid "The skin is in KingSize-definition 1024x576"
-msgstr ""
-
-#: ../meta_skins/skin_vali.hd.nano.xml
-msgid "Vali.HD.nano skin"
-msgstr ""
-
-#: ../meta_skins/skin_vali.hd.nano.xml
-msgid "A BackToTheRoots-Skin .. or good old times."
-msgstr ""
-
-#: ../meta_skins/skin_vali.hd.nano.xml
-msgid "A BackToTheRoots-Skin ... or good old times."
-msgstr ""
-
-#: ../meta_skins/skin_yads-hd.xml
-msgid "Kerni's YADS-HD skin"
-msgstr ""
-
-#: ../meta_plugins/plugin_aihdcontrol.xml
-msgid "First generate your skin-style with the Ai.HD-Control plugin."
-msgstr ""
-
-#: ../meta_plugins/plugin_aihdcontrol.xml
-msgid "Ai.HD skin-style control plugin"
-msgstr ""
-
-#: ../meta_plugins/plugin_antiscrollbar.xml
-msgid ""
-"With AntiScrollbar you can cover up annoying ticker lines (e.g. in news "
-"channels)."
-msgstr ""
-
-#: ../meta_plugins/plugin_antiscrollbar.xml
-msgid "Overlay for scrolling bars"
-msgstr ""
-
-#: ../meta_plugins/plugin_ardmediathek.xml
-msgid "Access to the ARD-Mediathek online video database."
-msgstr ""
-
-#: ../meta_plugins/plugin_ardmediathek.xml
-msgid "Access to the ARD-Mediathek"
-msgstr ""
-
-#: ../meta_plugins/plugin_audiosync.xml
-msgid ""
-"AudoSync allows delaying the sound output (Bitstream/PCM) so that it is "
-"synchronous to the picture."
-msgstr ""
-
-#: ../meta_plugins/plugin_audiosync.xml
-msgid "Set Bitstream/PCM audio delays"
-msgstr ""
-
-#: ../meta_plugins/plugin_automatictimerlistcleanup.xml
-msgid "Cleanup timerlist automatically."
-msgstr ""
-
-#: ../meta_plugins/plugin_automatictimerlistcleanup.xml
-msgid "Cleanup timerlist automatically"
-msgstr ""
-
-#: ../meta_plugins/plugin_automaticvolumeadjustment.xml
-msgid "Automatic volume adjustment"
-msgstr ""
-
-#: ../meta_plugins/plugin_automaticvolumeadjustment.xml
-msgid "Automatic volume adjustment for ac3/dts services."
-msgstr ""
-
-#: ../meta_plugins/plugin_autoresolution.xml
-msgid "Automatically change video resolution"
-msgstr ""
-
-#: ../meta_plugins/plugin_autoresolution.xml
-msgid ""
-"Automatically changes the output resolution depending on the video "
-"resolution you are watching."
-msgstr ""
-
-#: ../meta_plugins/plugin_autotimer.xml
-msgid ""
-"AutoTimer scans the EPG and creates Timers depending on user-defined search "
-"criteria."
-msgstr ""
-
-#: ../meta_plugins/plugin_autotimer.xml
-msgid "Automatically create timer events based on keywords"
-msgstr ""
-
-#: ../meta_plugins/plugin_babelzapper.xml
-msgid "Control your dreambox with only the MUTE button"
-msgstr ""
-
-#: ../meta_plugins/plugin_babelzapper.xml
-msgid "Control your dreambox with only the MUTE button."
-msgstr ""
-
-#: ../meta_plugins/plugin_bitrateviewer.xml
-msgid "Shows average bitrate of video and audio"
-msgstr ""
-
-#: ../meta_plugins/plugin_bonjour.xml
-msgid "Bonjour/Avahi control plugin."
-msgstr ""
-
-#: ../meta_plugins/plugin_bonjour.xml
-msgid "Bonjour/Avahi control plugin"
-msgstr ""
-
-#: ../meta_plugins/plugin_cdinfo.xml
-msgid ""
-"CDInfo enables gathering album and track details from CDDB and CD-Text when "
-"playing Audio CDs in Mediaplayer."
-msgstr ""
-
-#: ../meta_plugins/plugin_cdinfo.xml
-msgid "Get AudioCD info from CDDB and CD-Text"
-msgstr ""
-
-#: ../meta_plugins/plugin_dreamirc.xml
-msgid "IRC Client for Enigma2"
-msgstr ""
-
-#: ../meta_plugins/plugin_dreamirc.xml
-msgid "Simple IRC GroupChat client for e2 #dm8000-vip channel"
-msgstr ""
-
-#: ../meta_plugins/plugin_dvdbackup.xml
-msgid "Create a backup of your Video-DVD"
-msgstr ""
-
-#: ../meta_plugins/plugin_dvdbackup.xml
-msgid "Create a backup of your Video DVD on your DreamBox hard drive."
-msgstr ""
-
-#: ../meta_plugins/plugin_dyndns.xml
-msgid "A client for www.dyndns.org"
-msgstr ""
-
-#: ../meta_plugins/plugin_eibox.xml
-msgid "Visualization for the European Installation Bus"
-msgstr ""
-
-#: ../meta_plugins/plugin_eibox.xml
-msgid ""
-"Visualize and control your lights, dimmers, blinds, thermostats etc. through "
-"EIB/KNX. (linknx server required)"
-msgstr ""
-
-#: ../meta_plugins/plugin_elektro.xml
-msgid "Sets your Dreambox into Deep-Standby"
-msgstr ""
-
-#: ../meta_plugins/plugin_elektro.xml
-msgid ""
-"The Elektro Power Save plugin puts the box from standby to sleep mode (Deep "
-"Standby) at certain times.\n"
-"This only happens if the box is in standby and no recording is running or "
-"sheduled in the next 20 minutes.\n"
-"The box automatically wakes up for recordings or at the end of the sleep "
-"time. You therefore don't have to wait until it is on again."
-msgstr ""
-
-#: ../meta_plugins/plugin_emailclient.xml
-msgid "IMAP4 e-mail viewer for the Dreambox"
-msgstr ""
-
-#: ../meta_plugins/plugin_emailclient.xml
-msgid "Emailclient is an IMAP4 e-mail viewer for the Dreambox."
-msgstr ""
-
-#: ../meta_plugins/plugin_epgrefresh.xml
-msgid ""
-"EPGRefresh will automatically switch to user-defined channels when the box "
-"is idleing\n"
-"(in standby mode without any running recordings) to perform updates of the "
-"epg information on these channels."
-msgstr ""
-
-#: ../meta_plugins/plugin_epgrefresh.xml
-msgid "Automatically refresh EPG"
-msgstr ""
-
-#: ../meta_plugins/plugin_epgsearch.xml
-msgid "Search through the EPG"
-msgstr ""
-
-#: ../meta_plugins/plugin_epgsearch.xml
-msgid "With EPGSearch you can search through the EPG and create timers."
-msgstr ""
-
-#: ../meta_plugins/plugin_filebrowser.xml
-msgid "Manage local files"
-msgstr ""
-
-#: ../meta_plugins/plugin_filebrowser.xml
-msgid "Copy, rename, delete, move local files on your Dreambox."
-msgstr ""
-
-#: ../meta_plugins/plugin_fritzcall.xml
-msgid "Callmonitor for the Fritz!Box routers"
-msgstr ""
-
-#: ../meta_plugins/plugin_fritzcall.xml
-msgid "FritzCall shows incoming calls to your Fritz!Box on your Dreambox."
-msgstr ""
-
-#: ../meta_plugins/plugin_ftpbrowser.xml
-msgid "A basic ftp client"
-msgstr ""
-
-#: ../meta_plugins/plugin_ftpbrowser.xml
-msgid ""
-"FTPBrowser allows uploading and downloading files between your Dreambox and "
-"a server using the file transfer protocol."
-msgstr ""
-
-#: ../meta_plugins/plugin_genuinedreambox.xml
-msgid "With Genuine Dreambox you can verify the authenticity of your Dreambox."
-msgstr ""
-
-#: ../meta_plugins/plugin_genuinedreambox.xml
-msgid "Genuine Dreambox verification"
-msgstr ""
-
-#: ../meta_plugins/plugin_googlemaps.xml
-msgid "View Google maps"
-msgstr ""
-
-#: ../meta_plugins/plugin_googlemaps.xml
-msgid "View Google maps with your Dreambox."
-msgstr ""
-
-#: ../meta_plugins/plugin_growlee.xml
-msgid "redirect notifications to Growl"
-msgstr ""
-
-#: ../meta_plugins/plugin_growlee.xml
-msgid ""
-"Growlee allows your Dreambox to send short messages using the growl "
-"protocol\n"
-"like Recording started notifications to a PC running a growl client"
-msgstr ""
-
-#: ../meta_plugins/plugin_httpproxy.xml
-msgid "use your Dreambox as Web proxy."
-msgstr ""
-
-#: ../meta_plugins/plugin_httpproxy.xml
-msgid "use your Dreambox as Web proxy"
-msgstr ""
-
-#: ../meta_plugins/plugin_imdb.xml
-msgid ""
-"With IMDb you can download and displays movie information (rating, poster, "
-"cast, synopsis etc.) about the selected event."
-msgstr ""
-
-#: ../meta_plugins/plugin_imdb.xml
-msgid "Displays movie information from the InternetMovieDatabase"
-msgstr ""
-
-#: ../meta_plugins/plugin_kiddytimer.xml
-msgid "KiddyTimer allows to control your kids's daily tv usage."
-msgstr ""
-
-#: ../meta_plugins/plugin_kiddytimer.xml
-msgid "Control your kids's tv usage"
-msgstr ""
-
-#: ../meta_plugins/plugin_lastfm.xml
-msgid "Play music from Last.fm."
-msgstr ""
-
-#: ../meta_plugins/plugin_lastfm.xml
-msgid "Play music from Last.fm"
-msgstr ""
-
-#: ../meta_plugins/plugin_letterbox.xml
-msgid "Zoom into letterboxed/anamorph movies."
-msgstr ""
-
-#: ../meta_plugins/plugin_letterbox.xml
-msgid "Zoom into letterboxed/anamorph movies"
-msgstr ""
-
-#: ../meta_plugins/plugin_logomanager.xml
-msgid "Manage logos to display at boottime"
-msgstr ""
-
-#: ../meta_plugins/plugin_logomanager.xml
-msgid "Manage logos to display at boot time or while in radio mode."
-msgstr ""
-
-#: ../meta_plugins/plugin_mediadownloader.xml
-msgid "A simple downloading application for other plugins"
-msgstr ""
-
-#: ../meta_plugins/plugin_mediadownloader.xml
-msgid "To be used as simple downloading application by other Plugins."
-msgstr ""
-
-#: ../meta_plugins/plugin_merlinepg.xml
-msgid "A graphical EPG interface"
-msgstr ""
-
-#: ../meta_plugins/plugin_merlinepg.xml
-msgid "A graphical EPG interface."
-msgstr ""
-
-#: ../meta_plugins/plugin_merlinmusicplayer.xml
-msgid "Merlin Music Player and iDream"
-msgstr ""
-
-#: ../meta_plugins/plugin_merlinmusicplayer.xml
-msgid ""
-"Manage your music files in a database, play it with Merlin Music Player."
-msgstr ""
-
-#: ../meta_plugins/plugin_meteoitalia.xml
-msgid "Italian Weather forecast on Dreambox from www.google.it."
-msgstr ""
-
-#: ../meta_plugins/plugin_meteoitalia.xml
-msgid "Italian Weather forecast on Dreambox"
-msgstr ""
-
-#: ../meta_plugins/plugin_mosaic.xml
-msgid "Preview screenshots of running tv shows."
-msgstr ""
-
-#: ../meta_plugins/plugin_mosaic.xml
-msgid "Preview screenshots of running tv shows"
-msgstr ""
-
-#: ../meta_plugins/plugin_moviecut.xml
-msgid "Cut your movies"
-msgstr ""
-
-#: ../meta_plugins/plugin_moviecut.xml
-msgid "Cut your movies."
-msgstr ""
-
-#: ../meta_plugins/plugin_movielistpreview.xml
-msgid "Create preview pictures of your Movies"
-msgstr ""
-
-#: ../meta_plugins/plugin_movielistpreview.xml
-msgid ""
-"Movielist Preview creates screenshots of recordings and shows them inside "
-"the movielist."
-msgstr ""
-
-#: ../meta_plugins/plugin_movieretitle.xml
-msgid "Rename your movies"
-msgstr ""
-
-#: ../meta_plugins/plugin_movieretitle.xml
-msgid "With MovieRetitle you can rename your movies."
-msgstr ""
-
-#: ../meta_plugins/plugin_movieselectionquickbutton.xml
-msgid "assign color buttons to plugins from MOVIELIST"
-msgstr ""
-
-#: ../meta_plugins/plugin_movieselectionquickbutton.xml
-msgid "assign color buttons (red/green/yellow/blue) to plugins from MOVIELIST."
-msgstr ""
-
-#: ../meta_plugins/plugin_movietagger.xml
-msgid ""
-"MovieTagger adds tags to recorded movies to sort a large list of movies."
-msgstr ""
-
-#: ../meta_plugins/plugin_movietagger.xml
-msgid "add tags to recorded movies"
-msgstr ""
-
-#: ../meta_plugins/plugin_multirc.xml
-msgid "control multiple Dreamboxes with different RCs"
-msgstr ""
-
-#: ../meta_plugins/plugin_multirc.xml
-msgid "Use and control multiple Dreamboxes with different RCs."
-msgstr ""
-
-#: ../meta_plugins/plugin_mytube.xml
-msgid "Direct playback of Youtube videos"
-msgstr ""
-
-#: ../meta_plugins/plugin_mytube.xml
-msgid ""
-"With MyTube you can play YouTube videos directly on your TV without a PC."
-msgstr ""
-
-#: ../meta_plugins/plugin_ncidclient.xml
-msgid ""
-"NCID Client shows incoming voice calls promoted by any NCID server (e.g. "
-"Vodafone Easybox) on your Dreambox."
-msgstr ""
-
-#: ../meta_plugins/plugin_ncidclient.xml
-msgid "Callmonitor for NCID-based call notification"
-msgstr ""
-
-#: ../meta_plugins/plugin_netcaster.xml
-msgid "Player for Network and Internet Streams"
-msgstr ""
-
-#: ../meta_plugins/plugin_netcaster.xml
-msgid "Player for Network and Internet Streams."
-msgstr ""
-
-#: ../meta_plugins/plugin_networkbrowser.xml
-msgid "Browse for and connect to network shares"
-msgstr ""
-
-#: ../meta_plugins/plugin_networkbrowser.xml
-msgid "Browse for nfs/cifs shares and connect to them."
-msgstr ""
-
-#: ../meta_plugins/plugin_ofdb.xml
-msgid "Movie informations from the Online Film Datenbank"
-msgstr ""
-
-#: ../meta_plugins/plugin_ofdb.xml
-msgid "Movie information from the Online Film Datenbank (German)."
-msgstr ""
-
-#: ../meta_plugins/plugin_orfat.xml
-msgid "Video streaming from the orf.at web page"
-msgstr ""
-
-#: ../meta_plugins/plugin_orfat.xml
-msgid "Streaming modules for the orf.at iptv web page."
-msgstr ""
-
-#: ../meta_plugins/plugin_partnerbox.xml
-msgid "Remote timer and remote TV player"
-msgstr ""
-
-#: ../meta_plugins/plugin_partnerbox.xml
-msgid ""
-"Partnerbox allows editing a remote Dreambox's record timers and stream its "
-"TV program."
-msgstr ""
-
-#: ../meta_plugins/plugin_passwordchanger.xml
-#: ../meta_plugins/plugin_setpasswd.xml
-msgid "GUI to change the ftp and telnet-password"
-msgstr ""
-
-#: ../meta_plugins/plugin_passwordchanger.xml
-msgid ""
-"GUI that allows user to change the ftp-/telnet-password of the Dreambox."
-msgstr ""
-
-#: ../meta_plugins/plugin_permanentclock.xml
-msgid "PermanentClock shows the clock permanently on the screen."
-msgstr ""
-
-#: ../meta_plugins/plugin_permanentclock.xml
-msgid "Shows the clock permanently on the screen"
-msgstr ""
-
-#: ../meta_plugins/plugin_podcast.xml
-msgid "PodCast streams podcasts to your Dreambox."
-msgstr ""
-
-#: ../meta_plugins/plugin_podcast.xml
-msgid "Stream podcasts"
-msgstr ""
-
-#: ../meta_plugins/plugin_porncenter.xml
-msgid "Adult streaming plugin"
-msgstr ""
-
-#: ../meta_plugins/plugin_porncenter.xml
-msgid "Adult streaming plugin."
-msgstr ""
-
-#: ../meta_plugins/plugin_quickbutton.xml
-msgid "assign long key-press on color buttons to plugins or E2 functions"
-msgstr ""
-
-#: ../meta_plugins/plugin_quickbutton.xml
-msgid ""
-"assign long key-press (red/green/yellow/blue) to plugins or E2 functions."
-msgstr ""
-
-#: ../meta_plugins/plugin_reconstructapsc.xml
-msgid "Reconstruct .ap and .sc files"
-msgstr ""
-
-#: ../meta_plugins/plugin_reconstructapsc.xml
-msgid "Reconstruct missing or corrupt .ap and .sc files of recorded movies."
-msgstr ""
-
-#: ../meta_plugins/plugin_remotetimer.xml
-msgid "Create timers on remote Dreamboxes."
-msgstr ""
-
-#: ../meta_plugins/plugin_remotetimer.xml
-msgid "Create remote timers"
-msgstr ""
-
-#: ../meta_plugins/plugin_rsdownloader.xml
-msgid "Allows user to download files from rapidshare in the background."
-msgstr ""
-
-#: ../meta_plugins/plugin_rsdownloader.xml
-msgid "Download files from Rapidshare"
-msgstr ""
-
-#: ../meta_plugins/plugin_seekbar.xml
-msgid "Replace the minute input for the seek functions with a seekbar."
-msgstr ""
-
-#: ../meta_plugins/plugin_seekbar.xml
-msgid "Replace the rewind input with a seekbar"
-msgstr ""
-
-#: ../meta_plugins/plugin_setpasswd.xml
-msgid "GUI that allows user to change the ftp- / telnet password."
-msgstr ""
-
-#: ../meta_plugins/plugin_shoutcast.xml
-msgid "Listen and record internet radio"
-msgstr ""
-
-#: ../meta_plugins/plugin_shoutcast.xml
-msgid "Listen and record shoutcast internet radio on your Dreambox."
-msgstr ""
-
-#: ../meta_plugins/plugin_simplerss.xml
-msgid "RSS viewer"
-msgstr ""
-
-#: ../meta_plugins/plugin_simplerss.xml
-msgid "SimpleRSS allows reading RSS newsfeeds on your Dreambox."
-msgstr ""
-
-#: ../meta_plugins/plugin_startupservice.xml
-msgid "Define a startup service"
-msgstr ""
-
-#: ../meta_plugins/plugin_startupservice.xml
-msgid "Define a startup service for your Dreambox."
-msgstr ""
-
-#: ../meta_plugins/plugin_startuptostandby.xml
-msgid "set enigma2 to standby-mode after startup"
-msgstr ""
-
-#: ../meta_plugins/plugin_startuptostandby.xml
-msgid ""
-"After a reboot or power outage, StartupToStandby will bring your Dreambox to "
-"standby-mode."
-msgstr ""
-
-#: ../meta_plugins/plugin_tageditor.xml
-msgid "Edit tags of recorded movies."
-msgstr ""
-
-#: ../meta_plugins/plugin_tageditor.xml
-msgid "Edit tags of recorded movies"
-msgstr ""
-
-#: ../meta_plugins/plugin_trafficinfo.xml
-msgid "TrafficInfo shows german traffic information."
-msgstr ""
-
-#: ../meta_plugins/plugin_trafficinfo.xml
-msgid "German traffic information"
-msgstr ""
-
-#: ../meta_plugins/plugin_unwetterzentrale.xml
-msgid "German storm information"
-msgstr ""
-
-#: ../meta_plugins/plugin_unwetterzentrale.xml
-msgid "UnwetterInfo shows german storm information."
-msgstr ""
-
-#: ../meta_plugins/plugin_virtualzap.xml
-msgid "see service-epg (and PiP) from channels in an infobar"
-msgstr ""
-
-#: ../meta_plugins/plugin_virtualzap.xml
-msgid "See service-epg (and PiP) from other channels in an infobar."
-msgstr ""
-
-#: ../meta_plugins/plugin_vlcplayer.xml
-msgid "Play videos from PC on your Dreambox"
-msgstr ""
-
-#: ../meta_plugins/plugin_vlcplayer.xml
-msgid ""
-"Enigma2 Plugin to play AVI/DIVX/WMV/etc. videos from PC on your Dreambox. "
-"Needs a running VLC from www.videolan.org on your pc."
-msgstr ""
-
-#: ../meta_plugins/plugin_vxdcontrol.xml
-msgid "Customize Vali-XD skins by yourself."
-msgstr ""
-
-#: ../meta_plugins/plugin_vxdcontrol.xml
-msgid "Customize Vali-XD skins"
-msgstr ""
-
-#: ../meta_plugins/plugin_weatherplugin.xml
-msgid "Weatherforecast on your Dreambox"
-msgstr ""
-
-#: ../meta_plugins/plugin_weatherplugin.xml
-msgid "WeatherPlugin shows weatherforecasts on your Dreambox."
-msgstr ""
-
-#: ../meta_plugins/plugin_webcamviewer.xml
-msgid "Show webcam pictures on your TV Screen"
-msgstr ""
-
-#: ../meta_plugins/plugin_webcamviewer.xml
-msgid "With WebcamViewer you can watch webcams on your TV Screen."
-msgstr ""
-
-#: ../meta_plugins/plugin_webinterface.xml
-msgid "Control your Dreambox with your Web browser."
-msgstr ""
-
-#: ../meta_plugins/plugin_webinterface.xml
-msgid "Control your Dreambox with your browser"
-msgstr ""
-
-#: ../meta_plugins/plugin_werbezapper.xml
-msgid "Zap between commercials"
-msgstr ""
-
-#: ../meta_plugins/plugin_werbezapper.xml
-msgid ""
-"With Werbezapper you can bridge commercials by creating short timers\n"
-"(between 1 and 9 minutes long) which will automatically zap back to the "
-"original channel after execution."
-msgstr ""
-
-#: ../meta_plugins/plugin_youtubeplayer.xml
-msgid ""
-"With YouTubePlayer you can watch YouTube-Videos on the Dreambox.\n"
-"This plugin requires a PC with the VLC program running."
-msgstr ""
-
-#: ../meta_plugins/plugin_youtubeplayer.xml
-msgid "Playback of Youtube through a PC"
-msgstr ""
-
-#: ../meta_plugins/plugin_zaphistorybrowser.xml
-msgid ""
-"Shows a list containing the zapping-history and allows user to zap to the "
-"entries or to modify them."
-msgstr ""
-
-#: ../meta_plugins/plugin_zaphistorybrowser.xml
-msgid "Shows a list of recent zap entries"
-msgstr ""
-
-#: ../meta_plugins/plugin_zapstatistic.xml
-msgid "ZapStatistic shows the watched services with some statistics."
-msgstr ""
-
-#: ../meta_plugins/plugin_zapstatistic.xml
-msgid "Shows statistics of watched services"
-msgstr ""
-
-#: ../meta_plugins/plugin_zdfmediathek.xml
-msgid "Watch streams from ZDF Mediathek"
-msgstr ""
-
-#: ../meta_plugins/plugin_zdfmediathek.xml
-msgid "ZDFMediathek allows you to watch streams from ZDF Mediathek."
-msgstr ""
-
-#: ../meta_experimental/plugin_cleanupwizard.xml
-msgid "Automatically informs you on low internal memory"
-msgstr ""
-
-#: ../meta_experimental/plugin_cleanupwizard.xml
-msgid ""
-"The CleanupWizard informs you when the internal free memory of your dreambox "
-"has dropped below a definable threshold.You can use this wizard to remove "
-"some plugins."
-msgstr ""
-
-#: ../meta_experimental/plugin_commoninterfaceassignment.xml
-msgid ""
-"With the CommonInterfaceAssignment plugin it is possible to use differentCI "
-"modules in your Dreambox and assign dedicated providers/services or caids to "
-"each of them.\n"
-"This allows watching a scrambled service while recording another one."
-msgstr ""
-
-#: ../meta_experimental/plugin_commoninterfaceassignment.xml
-msgid "Assigning providers/services/caids to a CI module"
-msgstr ""
-
-#: ../meta_experimental/plugin_crashlogautosubmit.xml
-msgid "Automatically send crashlogs to Dream Multimedia"
-msgstr ""
-
-#: ../meta_experimental/plugin_crashlogautosubmit.xml
-msgid ""
-"With the CrashlogAutoSubmit plugin it is possible to automaticallymail "
-"crashlogs found on your hard drive to Dream Multimedia."
-msgstr ""
-
-#: ../meta_experimental/plugin_cutlisteditor.xml
-msgid "CutListEditor allows you to edit your movies"
-msgstr ""
-
-#: ../meta_experimental/plugin_cutlisteditor.xml
-msgid ""
-"CutListEditor allows you to edit your movies.\n"
-"Seek to the start of the stuff you want to cut away. Press OK, select 'start "
-"cut'.\n"
-"Then seek to the end, press OK, select 'end cut'. That's it."
-msgstr ""
-
-#: ../meta_experimental/plugin_defaultservicesscanner.xml
-msgid ""
-"With the DefaultServicesScanner plugin you can scan default lamedbs sorted "
-"by satellite with a connected dish positioner."
-msgstr ""
-
-#: ../meta_experimental/plugin_defaultservicesscanner.xml
-msgid "Scans default lamedbs sorted by satellite"
-msgstr ""
-
-#: ../meta_experimental/plugin_diseqctester.xml
-msgid "Test your DiSEqC equipment"
-msgstr ""
-
-#: ../meta_experimental/plugin_diseqctester.xml
-msgid ""
-"With the DiseqcTester plugin you can test your satellite equipment for "
-"DiSEqC compatibility and errors."
-msgstr ""
-
-#: ../meta_experimental/plugin_dvdburn.xml
-msgid ""
-"With DVDBurn you can make compilations of records from your Dreambox hard "
-"drive.\n"
-"Optionally you can add customizable menus. You can record the compilation to "
-"a standard-compliant DVD that can be played on conventinal DVD players.\n"
-"HDTV recordings can only be burned in proprietary dreambox format."
-msgstr ""
-
-#: ../meta_experimental/plugin_dvdburn.xml
-msgid "Burn your recordings to DVD"
-msgstr ""
-
-#: ../meta_experimental/plugin_dvdplayer.xml
-msgid ""
-"DVDPlayer plays your DVDs on your Dreambox.\n"
-"With the DVDPlayer you can play your DVDs on your Dreambox from a DVD or "
-"even from an iso file or video_ts folder on your harddisc or network."
-msgstr ""
-
-#: ../meta_experimental/plugin_dvdplayer.xml
-msgid "DVDPlayer plays your DVDs on your Dreambox"
-msgstr ""
-
-#: ../meta_experimental/plugin_frontprocessorupgrade.xml
-msgid "Internal firmware updater"
-msgstr ""
-
-#: ../meta_experimental/plugin_frontprocessorupgrade.xml
-msgid ""
-"This system tool is internally used to program the hardware with firmware "
-"updates."
-msgstr ""
-
-#: ../meta_experimental/plugin_graphmultiepg.xml
-msgid ""
-"GraphMultiEPG shows a graphical timeline EPG.\n"
-"Shows a nice overview of all running und upcoming tv shows."
-msgstr ""
-
-#: ../meta_experimental/plugin_graphmultiepg.xml
-msgid "GraphMultiEPG shows a graphical timeline EPG"
-msgstr ""
-
-#: ../meta_experimental/plugin_hotplug.xml
-msgid "Hotplugging for removeable devices"
-msgstr ""
-
-#: ../meta_experimental/plugin_hotplug.xml
-msgid ""
-"The Hotplug plugin notifies your system of newly added or removed devices."
-msgstr ""
-
-#: ../meta_experimental/plugin_mediaplayer.xml
-msgid "Plays your favorite music and videos"
-msgstr ""
-
-#: ../meta_experimental/plugin_mediaplayer.xml
-msgid ""
-"Mediaplayer plays your favorite music and videos.\n"
-"Play all your favorite music and video files, organize them in playlists, "
-"view cover and album information."
-msgstr ""
-
-#: ../meta_experimental/plugin_mediascanner.xml
-msgid "Scan devices for playable media files"
-msgstr ""
-
-#: ../meta_experimental/plugin_mediascanner.xml
-msgid ""
-"MediaScanner scans devices for playable media files and displays a menu with "
-"possible actions like viewing pictures or playing movies."
-msgstr ""
-
-#: ../meta_experimental/plugin_networkwizard.xml
-msgid "Step by step network configuration"
-msgstr ""
-
-#: ../meta_experimental/plugin_networkwizard.xml
-msgid ""
-"With the NetworkWizard you can easily configure your network step by step."
-msgstr ""
-
-#: ../meta_experimental/plugin_nfiflash.xml
-msgid "Restore your Dreambox with a USB stick"
-msgstr ""
-
-#: ../meta_experimental/plugin_nfiflash.xml
-msgid ""
-"With the NFIFlash plugin it is possible to prepare a USB stick with an "
-"Dreambox image.\n"
-"It is then possible to flash your Dreambox with the image on that stick."
-msgstr ""
-
-#: ../meta_experimental/plugin_pictureplayer.xml
-msgid "Display your photos on the TV"
-msgstr ""
-
-#: ../meta_experimental/plugin_pictureplayer.xml
-msgid ""
-"The PicturePlayer displays your photos on the TV.\n"
-"You can view them as thumbnails or slideshow."
-msgstr ""
-
-#: ../meta_experimental/plugin_positionersetup.xml
-msgid "PositionerSetup helps you installing a motorized dish"
-msgstr ""
-
-#: ../meta_experimental/plugin_positionersetup.xml
-msgid ""
-"With the PositionerSetup plugin it is easy to install and configure a "
-"motorized dish."
-msgstr ""
-
-#: ../meta_experimental/plugin_satelliteequipmentcontrol.xml
-msgid ""
-"With the SatelliteEquipmentControl plugin it is possible to fine-tune DiSEqC-"
-"settings."
-msgstr ""
-
-#: ../meta_experimental/plugin_satelliteequipmentcontrol.xml
-msgid "SatelliteEquipmentControl allows you to fine-tune DiSEqC-settings"
-msgstr ""
-
-#: ../meta_experimental/plugin_satfinder.xml
-msgid ""
-"The Satfinder plugin helps you to align your dish.\n"
-"It shows you informations about signal rate and errors."
-msgstr ""
-
-#: ../meta_experimental/plugin_satfinder.xml
-msgid "Satfinder helps you to align your dish"
-msgstr ""
-
-#: ../meta_experimental/plugin_skinselector.xml
-msgid "SkinSelector shows a menu with selectable skins"
-msgstr ""
-
-#: ../meta_experimental/plugin_skinselector.xml
-msgid ""
-"The SkinSelector shows a menu with selectable skins.\n"
-"It's now easy to change the look and feel of your Dreambox."
-msgstr ""
-
-#: ../meta_experimental/plugin_socketmmi.xml
-msgid "Frontend for /tmp/mmi.socket"
-msgstr ""
-
-#: ../meta_experimental/plugin_socketmmi.xml
-msgid "Python frontend for /tmp/mmi.socket."
-msgstr ""
-
-#: ../meta_experimental/plugin_softwaremanager.xml
-msgid "SoftwareManager manages your Dreambox software"
-msgstr ""
-
-#: ../meta_experimental/plugin_softwaremanager.xml
-msgid ""
-"The SoftwareManager manages your Dreambox software.\n"
-"It's easy to update your receiver's software, install or remove plugins or "
-"even backup and restore your system settings."
-msgstr ""
-
-#: ../meta_experimental/plugin_tempfancontrol.xml
-msgid "Control your system fan"
-msgstr ""
-
-#: ../meta_experimental/plugin_tempfancontrol.xml
-msgid "Control your internal system fan."
-msgstr ""
-
-#: ../meta_experimental/plugin_tuxboxplugins.xml
-msgid "Execute TuxboxPlugins"
-msgstr ""
-
-#: ../meta_experimental/plugin_tuxboxplugins.xml
-msgid "Allows the execution of TuxboxPlugins."
-msgstr ""
-
-#: ../meta_experimental/plugin_videoenhancement.xml
-msgid "VideoEnhancement provides advanced video enhancement settings"
-msgstr ""
-
-#: ../meta_experimental/plugin_videoenhancement.xml
-msgid ""
-"The VideoEnhancement plugin provides advanced video enhancement settings."
-msgstr ""
-
-#: ../meta_experimental/plugin_videomode.xml
-msgid "Videomode provides advanced video mode settings"
-msgstr ""
-
-#: ../meta_experimental/plugin_videomode.xml
-msgid "The Videomode plugin provides advanced video mode settings."
-msgstr ""
-
-#: ../meta_experimental/plugin_videotune.xml
-msgid "VideoTune helps fine-tuning your tv display"
-msgstr ""
-
-#: ../meta_experimental/plugin_videotune.xml
-msgid ""
-"The VideoTune helps fine-tuning your tv display.\n"
-"You can control brightness and contrast of your tv."
-msgstr ""
-
-#: ../meta_experimental/plugin_wirelesslan.xml
-msgid ""
-"The WirelessLan plugin helps you configuring your WLAN network interface."
-msgstr ""
-
-#: ../meta_experimental/plugin_wirelesslan.xml
-msgid "Configure your WLAN network interface"
-msgstr ""
else:
bpp = 32
#print "Resolution:", xres,yres,bpp
- from enigma import gFBDC
- gFBDC.getInstance().setResolution(xres, yres)
+ from enigma import gMainDC
+ gMainDC.getInstance().setResolution(xres, yres)
desktop.resize(eSize(xres, yres))
if bpp != 32:
# load palette (not yet implemented)
--- /dev/null
+enigma2.sh
-libopen.so.0.0: libopen.c
- $(CXX) -Wall -W libopen.c -O2 -nostartfiles -shared -fPIC -Wl,-soname,libopen.so.0 -o libopen.so.0.0 -ldl
+bin_SCRIPTS = enigma2.sh
+lib_LTLIBRARIES = libopen.la
-all: libopen.so.0.0
+libopen_la_SOURCES = libopen.c
+libopen_la_LIBADD = @LIBDL_LIBS@
-CLEANFILES = libopen.so.0.0
-
-install: all
- $(INSTALL) libopen.so.0.0 $(DESTDIR)/usr/lib
+EXTRA_DIST = enigma2.sh.in
--- /dev/null
+#!/bin/sh
+
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+datarootdir=@datarootdir@
+
+if [ -x @bindir@/showiframe -a -f @datadir@/backdrop.mvi ]; then
+ @bindir@/showiframe @datadir@/backdrop.mvi
+fi
+
+# hook to execute scripts always before enigma2 start
+if [ -x @bindir@/enigma2_pre_start.sh ]; then
+ @bindir@/enigma2_pre_start.sh
+fi
+
+if [ -d /home/root ]; then
+ cd /home/root
+fi
+
+LIBS=@libdir@/libopen.so.0.0.0
+
+#check for dreambox specific passthrough helper lib
+if [ -e @libdir@/libpassthrough.so ]; then
+ LIBS="$LIBS @libdir@/libpassthrough.so"
+fi
+
+LD_PRELOAD=$LIBS @bindir@/enigma2
+
+# enigma2 exit codes:
+#
+# 0 - restart enigma
+# 1 - halt
+# 2 - reboot
+#
+# >128 signal
+
+ret=$?
+case $ret in
+ 1)
+ /sbin/halt
+ ;;
+ 2)
+ /sbin/reboot
+ ;;
+ 4)
+ /sbin/rmmod lcd
+ /usr/sbin/fpupgrade --upgrade 2>&1 | tee /home/root/fpupgrade.log
+ sleep 1;
+ /sbin/rmmod fp
+ /sbin/modprobe fp
+ /sbin/reboot
+ ;;
+ *)
+ ;;
+esac