From fb52b64b5af9edfe83c361916a51c28d802b1d36 Mon Sep 17 00:00:00 2001 From: Britney Fransen Date: Wed, 30 Jan 2019 15:48:09 +0000 Subject: mythtv mythplugins mythweb: add fixes/30 branch. refs#1034 --- .../mythtv/stable-30/git_src/checkout_mythtv.sh | 40 + .../mythtv/stable-30/git_src/checkout_mythweb.sh | 38 + abs/core/mythtv/stable-30/git_src/git_hash | 1 + abs/core/mythtv/stable-30/git_src/git_hash_web | 1 + ...ix-Playlist-copyTracks-and-removeAllTrack.patch | 50 + abs/core/mythtv/stable-30/mythplugins/PKGBUILD | 133 + .../mythplugins/mythburn.cpp-python2.patch | 13 + .../mythplugins/mythburn.py-aspectratio.patch | 138 + .../mythplugins/mythplugins-mythzoneminder.install | 11 + ...d-network-status-to-machine-status-dialog.patch | 71 + abs/core/mythtv/stable-30/mythtv/PKGBUILD | 139 + .../addEnableDisableAutoShutdownToSystemMenu.patch | 50 + .../mythtv/autoskip_reduce_commskip_jumpback.patch | 13 + .../mythtv/stable-30/mythtv/change_msg_types.patch | 20 + .../stable-30/mythtv/defaultThemeLinHES.patch | 11 + .../disable_mythnotification_tuner_failure.patch | 43 + .../mythtv/stable-30/mythtv/fixTranslations.patch | 91 + .../stable-30/mythtv/menu-xml/HOST_SETTINGS.xml | 114 + .../stable-30/mythtv/menu-xml/dvd_backup.xml | 39 + abs/core/mythtv/stable-30/mythtv/menu-xml/game.xml | 12 + .../mythtv/stable-30/mythtv/menu-xml/info_menu.xml | 76 + abs/core/mythtv/stable-30/mythtv/menu-xml/is.xml | 3 + .../mythtv/menu-xml/lh_backend_control.xml | 24 + .../stable-30/mythtv/menu-xml/library.xml.patch | 25 + .../mythtv/stable-30/mythtv/menu-xml/linhes.xml | 70 + .../stable-30/mythtv/menu-xml/linhes_tools.xml | 31 + .../stable-30/mythtv/menu-xml/mainmenu.xml.patch | 15 + .../stable-30/mythtv/menu-xml/mythbackup.xml | 22 + .../stable-30/mythtv/menu-xml/mythrestore.xml | 24 + .../mythtv/menu-xml/optical_menu.xml.patch | 23 + .../mythtv/menu-xml/original/create_patch.sh | 5 + .../stable-30/mythtv/menu-xml/siriusmenu.xml.del | 419 + .../mythtv/stable-30/mythtv/menu-xml/update.xml | 11 + .../mythtv/stable-30/mythtv/menu-xml/update2.xml | 25 + .../stable-30/mythtv/menu-xml/xmmenu.xml.del | 574 + .../mythtv/stable-30/mythtv/myth_settings.patch | 1960 ++ .../mythtv/mythfrontend_en_us.ts_Title_Case.patch | 24476 +++++++++++++++++++ abs/core/mythtv/stable-30/mythtv/mythtv.install | 34 + ...TMDB-script-to-detect-movie-release-years.patch | 39 + abs/core/mythtv/stable-30/mythtv/recordings | 145 + .../mythtv/searchMetatdataSelectedGrabber.patch | 18 + .../stable-30/mythtv/suggestedstarttime.patch.v1 | 32 + .../stable-30/mythtv/videoAlwaysUseBookmark.patch | 22 + .../mythweb/Channel.php_remove_small_icons.patch | 14 + abs/core/mythtv/stable-30/mythweb/PKGBUILD | 60 + abs/core/mythtv/stable-30/mythweb/mythweb.include | 8 + abs/core/mythtv/stable-30/mythweb/mythweb.install | 22 + .../stable-30/mythweb/mythweb_gen_light.conf | 1 + abs/core/mythtv/stable-30/mythweb/video.css.patch | 98 + 49 files changed, 29304 insertions(+) create mode 100755 abs/core/mythtv/stable-30/git_src/checkout_mythtv.sh create mode 100755 abs/core/mythtv/stable-30/git_src/checkout_mythweb.sh create mode 100644 abs/core/mythtv/stable-30/git_src/git_hash create mode 100644 abs/core/mythtv/stable-30/git_src/git_hash_web create mode 100644 abs/core/mythtv/stable-30/mythplugins/0317-0336-MythMusic-Fix-Playlist-copyTracks-and-removeAllTrack.patch create mode 100644 abs/core/mythtv/stable-30/mythplugins/PKGBUILD create mode 100644 abs/core/mythtv/stable-30/mythplugins/mythburn.cpp-python2.patch create mode 100644 abs/core/mythtv/stable-30/mythplugins/mythburn.py-aspectratio.patch create mode 100644 abs/core/mythtv/stable-30/mythplugins/mythplugins-mythzoneminder.install create mode 100644 abs/core/mythtv/stable-30/mythtv/0294-0283-FE-Add-network-status-to-machine-status-dialog.patch create mode 100644 abs/core/mythtv/stable-30/mythtv/PKGBUILD create mode 100644 abs/core/mythtv/stable-30/mythtv/addEnableDisableAutoShutdownToSystemMenu.patch create mode 100644 abs/core/mythtv/stable-30/mythtv/autoskip_reduce_commskip_jumpback.patch create mode 100644 abs/core/mythtv/stable-30/mythtv/change_msg_types.patch create mode 100644 abs/core/mythtv/stable-30/mythtv/defaultThemeLinHES.patch create mode 100644 abs/core/mythtv/stable-30/mythtv/disable_mythnotification_tuner_failure.patch create mode 100644 abs/core/mythtv/stable-30/mythtv/fixTranslations.patch create mode 100644 abs/core/mythtv/stable-30/mythtv/menu-xml/HOST_SETTINGS.xml create mode 100644 abs/core/mythtv/stable-30/mythtv/menu-xml/dvd_backup.xml create mode 100644 abs/core/mythtv/stable-30/mythtv/menu-xml/game.xml create mode 100644 abs/core/mythtv/stable-30/mythtv/menu-xml/info_menu.xml create mode 100644 abs/core/mythtv/stable-30/mythtv/menu-xml/is.xml create mode 100644 abs/core/mythtv/stable-30/mythtv/menu-xml/lh_backend_control.xml create mode 100644 abs/core/mythtv/stable-30/mythtv/menu-xml/library.xml.patch create mode 100644 abs/core/mythtv/stable-30/mythtv/menu-xml/linhes.xml create mode 100644 abs/core/mythtv/stable-30/mythtv/menu-xml/linhes_tools.xml create mode 100644 abs/core/mythtv/stable-30/mythtv/menu-xml/mainmenu.xml.patch create mode 100644 abs/core/mythtv/stable-30/mythtv/menu-xml/mythbackup.xml create mode 100644 abs/core/mythtv/stable-30/mythtv/menu-xml/mythrestore.xml create mode 100644 abs/core/mythtv/stable-30/mythtv/menu-xml/optical_menu.xml.patch create mode 100644 abs/core/mythtv/stable-30/mythtv/menu-xml/original/create_patch.sh create mode 100644 abs/core/mythtv/stable-30/mythtv/menu-xml/siriusmenu.xml.del create mode 100644 abs/core/mythtv/stable-30/mythtv/menu-xml/update.xml create mode 100644 abs/core/mythtv/stable-30/mythtv/menu-xml/update2.xml create mode 100644 abs/core/mythtv/stable-30/mythtv/menu-xml/xmmenu.xml.del create mode 100644 abs/core/mythtv/stable-30/mythtv/myth_settings.patch create mode 100644 abs/core/mythtv/stable-30/mythtv/mythfrontend_en_us.ts_Title_Case.patch create mode 100644 abs/core/mythtv/stable-30/mythtv/mythtv.install create mode 100644 abs/core/mythtv/stable-30/mythtv/pull103-Add-heuristic-in-TMDB-script-to-detect-movie-release-years.patch create mode 100644 abs/core/mythtv/stable-30/mythtv/recordings create mode 100644 abs/core/mythtv/stable-30/mythtv/searchMetatdataSelectedGrabber.patch create mode 100644 abs/core/mythtv/stable-30/mythtv/suggestedstarttime.patch.v1 create mode 100644 abs/core/mythtv/stable-30/mythtv/videoAlwaysUseBookmark.patch create mode 100644 abs/core/mythtv/stable-30/mythweb/Channel.php_remove_small_icons.patch create mode 100644 abs/core/mythtv/stable-30/mythweb/PKGBUILD create mode 100644 abs/core/mythtv/stable-30/mythweb/mythweb.include create mode 100644 abs/core/mythtv/stable-30/mythweb/mythweb.install create mode 100644 abs/core/mythtv/stable-30/mythweb/mythweb_gen_light.conf create mode 100644 abs/core/mythtv/stable-30/mythweb/video.css.patch diff --git a/abs/core/mythtv/stable-30/git_src/checkout_mythtv.sh b/abs/core/mythtv/stable-30/git_src/checkout_mythtv.sh new file mode 100755 index 0000000..6ad4f0d --- /dev/null +++ b/abs/core/mythtv/stable-30/git_src/checkout_mythtv.sh @@ -0,0 +1,40 @@ +#!/bin/bash +#Quick script used to checkout the MythTV source +#This source should be used build all mythplugins & main program + +_gitroot="https://github.com/MythTV/mythtv.git" +_gitname="mythtv" +_gitbranch="fixes/30" + +startdir=`pwd` + +#Set this to True, to update mythtv to the latest. +#If not true then it will use the hash stored in git_hash +_current="True" + +_checkoutHASH=`cat git_hash` + +if [ -d $_gitname ] +then + cd $_gitname + git checkout $_gitbranch + git pull + echo "The local files are updated." + cd $startdir +else + git clone -b $_gitbranch $_gitroot +fi + +if [ -d $_gitname ] +then + cd $_gitname + if [ $_current == True ] + then + git rev-parse HEAD > $startdir/git_hash + else + git checkout $_checkoutHASH + fi + cd mythtv + sh ./version.sh `pwd` +fi +echo "GIT checkout done or server timeout" diff --git a/abs/core/mythtv/stable-30/git_src/checkout_mythweb.sh b/abs/core/mythtv/stable-30/git_src/checkout_mythweb.sh new file mode 100755 index 0000000..5ba77cb --- /dev/null +++ b/abs/core/mythtv/stable-30/git_src/checkout_mythweb.sh @@ -0,0 +1,38 @@ +#!/bin/bash +#Quick script used to checkout the Mythweb source +#This source should be used build all mythplugins & main program + +_gitroot="https://github.com/MythTV/mythweb.git" +_gitname="mythweb" +_gitbranch="fixes/30" + +startdir=`pwd` + +#Set this to True, to update mythtv to the latest. +#If not true then it will use the hash stored in git_hash +_current="True" + +_checkoutHASH=`cat git_hash_web` + +if [ -d $_gitname ] +then + cd $_gitname + git checkout $_gitbranch + git pull + echo "The local files are updated." + cd $startdir +else + git clone -b $_gitbranch $_gitroot +fi + +if [ -d $_gitname ] +then + cd $_gitname + if [ $_current == True ] + then + git rev-parse HEAD > $startdir/git_hash_web + else + git checkout $_checkoutHASH + fi +fi +echo "GIT checkout done or server timeout" diff --git a/abs/core/mythtv/stable-30/git_src/git_hash b/abs/core/mythtv/stable-30/git_src/git_hash new file mode 100644 index 0000000..883dfc8 --- /dev/null +++ b/abs/core/mythtv/stable-30/git_src/git_hash @@ -0,0 +1 @@ +f11c5aba6ed1e88c22f1b3b6828fc085e1699b97 diff --git a/abs/core/mythtv/stable-30/git_src/git_hash_web b/abs/core/mythtv/stable-30/git_src/git_hash_web new file mode 100644 index 0000000..b192069 --- /dev/null +++ b/abs/core/mythtv/stable-30/git_src/git_hash_web @@ -0,0 +1 @@ +8dc8a715aae7db7bbc3b857a337a4761af8341f7 diff --git a/abs/core/mythtv/stable-30/mythplugins/0317-0336-MythMusic-Fix-Playlist-copyTracks-and-removeAllTrack.patch b/abs/core/mythtv/stable-30/mythplugins/0317-0336-MythMusic-Fix-Playlist-copyTracks-and-removeAllTrack.patch new file mode 100644 index 0000000..5c0f623 --- /dev/null +++ b/abs/core/mythtv/stable-30/mythplugins/0317-0336-MythMusic-Fix-Playlist-copyTracks-and-removeAllTrack.patch @@ -0,0 +1,50 @@ +From e7c80f43a3ec0fc2024f64e17d13461840429029 Mon Sep 17 00:00:00 2001 +From: Lawrence Rust +Date: Fri, 17 Jun 2016 18:40:37 +0100 +Subject: [PATCH 336/348] MythMusic: Fix Playlist::copyTracks and + removeAllTracks + +Correct these 2 functions to call gPlayer->activePlaylistChanged + +Signed-off-by: Lawrence Rust +--- + mythplugins/mythmusic/mythmusic/playlist.cpp | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git a/mythplugins/mythmusic/mythmusic/playlist.cpp b/mythplugins/mythmusic/mythmusic/playlist.cpp +index 79a509a..94146a4 100644 +--- a/mythplugins/mythmusic/mythmusic/playlist.cpp ++++ src/mythplugins/mythmusic/mythmusic/playlist.cpp +@@ -46,7 +46,7 @@ bool Playlist::checkTrack(MusicMetadata::IdType trackID) const + + void Playlist::copyTracks(Playlist *to_ptr, bool update_display) + { +- disableSaves(); ++ to_ptr->disableSaves(); + + for (int x = 0; x < m_songs.size(); x++) + { +@@ -58,9 +58,9 @@ void Playlist::copyTracks(Playlist *to_ptr, bool update_display) + } + } + +- enableSaves(); ++ to_ptr->enableSaves(); + +- changed(); ++ to_ptr->changed(); + } + + /// Given a tracks ID, add that track to this playlist +@@ -94,6 +94,8 @@ void Playlist::removeAllTracks(void) + m_shuffledSongs.clear(); + + changed(); ++ ++ gPlayer->activePlaylistChanged(-1, true); + } + + void Playlist::removeAllCDTracks(void) +-- +1.7.9.5 + diff --git a/abs/core/mythtv/stable-30/mythplugins/PKGBUILD b/abs/core/mythtv/stable-30/mythplugins/PKGBUILD new file mode 100644 index 0000000..60c62a7 --- /dev/null +++ b/abs/core/mythtv/stable-30/mythplugins/PKGBUILD @@ -0,0 +1,133 @@ +pkgbase=mythplugins +pkgname=('mytharchive' + 'mythbrowser' + 'mythgallery' + 'mythgame' + 'mythmusic' + 'mythnetvision' + 'mythnews' + 'mythweather' + 'mythzoneminder') +pkgver=30.0 +pkgrel=1 +arch=('x86_64') +url="http://www.mythtv.org" +license=('GPL') +makedepends=('cdrkit' 'dcraw' 'dvdauthor' 'dvd+rw-tools' 'ffmpeg' 'flac' 'libexif' + 'libvorbis' 'mesa' 'libgl' 'mplayer' "mythtv>=${pkgver}" + 'perl-datetime-format-iso8601' 'perl-date-manip' 'perl-image-size' + 'perl-json' 'perl-libwww' 'perl-soap-lite' 'perl-xml-sax' + 'perl-xml-simple' 'perl-xml-xpath' 'python2-oauth' 'python2-pillow' + 'python2-pycurl' 'zlib') +source=('mythburn.py-aspectratio.patch' + 'mythburn.cpp-python2.patch' + '0317-0336-MythMusic-Fix-Playlist-copyTracks-and-removeAllTrack.patch' + ) + +prepare() { + if [ -e ${srcdir}/mythplugins ] + then + msg "Removing old mythplugins src" + rm -rf ${srcdir}/mythplugins + fi + + cd ${startdir} + msg "Copying in mythplugins git_src" + cp -rp ../git_src/mythtv/mythplugins $srcdir + + msg "Patch MythMusic Playlist" + cd ${srcdir} + patch -Np1 -i "$srcdir/0317-0336-MythMusic-Fix-Playlist-copyTracks-and-removeAllTrack.patch" + + msg "Change python to python2" + find . -name '*.py' -type f | xargs sed -i 's@^#!.*python$@#!/usr/bin/python2@' + patch -Np1 -i "$srcdir/mythburn.cpp-python2.patch" + +} + +build() { + cd ${srcdir}/${pkgbase} + msg "Configuring mythplugins" + ./configure --prefix=/usr \ + --enable-all \ + --python=python2 + + msg "Compiling mythplugins" + qmake-qt5 mythplugins.pro || return 1 + make || return 1 +} + +package_mytharchive() { + pkgdesc="Create DVDs or archive recorded shows in MythTV" + depends=('cdrkit' 'dvdauthor' 'dvd+rw-tools' 'ffmpeg' "mythtv>=${pkgver}" + 'm2vrequantiser' 'mjpegtools' 'python2-pillow') + optdepends=('projectx: for subtitle support') + cd "${srcdir}/${_gitname}/${pkgbase}/mytharchive" + patch mythburn/scripts/mythburn.py < $srcdir/mythburn.py-aspectratio.patch || return 1 + make INSTALL_ROOT="${pkgdir}" install || return 1 +} + +package_mythbrowser() { + pkgdesc="Mini web browser for MythTV" + depends=("mythtv>=${pkgver}") + cd "${srcdir}/${_gitname}/${pkgbase}/mythbrowser" + make INSTALL_ROOT="${pkgdir}" install || return 1 +} + +package_mythgallery() { + pkgdesc="Image gallery plugin for MythTV" + depends=('libexif' "mythtv>=${pkgver}" 'dcraw') + cd "${srcdir}/${_gitname}/${pkgbase}/mythgallery" + make INSTALL_ROOT="${pkgdir}" install || return 1 +} + +package_mythgame() { + pkgdesc="Game emulator plugin for MythTV" + depends=("mythtv>=${pkgver}" 'zlib') + cd "${srcdir}/${_gitname}/${pkgbase}/mythgame" + make INSTALL_ROOT="${pkgdir}" install || return 1 +} + +package_mythmusic() { + pkgdesc="Music playing plugin for MythTV" + depends=('cdparanoia' 'fftw' 'flac' 'libcdaudio' 'libcdio-paranoia' + 'libvisual-plugins' 'libvorbis' "mythtv>=${pkgver}" 'taglib') + cd "${srcdir}/${_gitname}/${pkgbase}/mythmusic" + make INSTALL_ROOT="${pkgdir}" install || return 1 +} + +package_mythnetvision() { + pkgdesc="MythNetvision plugin for MythTV" + depends=("mythtv>=${pkgver}" 'python2-pycurl' 'python2-oauth' + 'python2-lxml' 'python2') + cd "${srcdir}/${_gitname}/${pkgbase}/mythnetvision" + make INSTALL_ROOT="${pkgdir}" install || return 1 +} + +package_mythnews() { + pkgdesc="News checking plugin for MythTV" + depends=("mythtv>=${pkgver}") + cd "${srcdir}/${_gitname}/${pkgbase}/mythnews" + make INSTALL_ROOT="${pkgdir}" install || return 1 +} + +package_mythweather() { + pkgdesc="Weather checking plugin for MythTV" + depends=("mythtv>=${pkgver}" 'perl-date-manip' 'perl-json' 'perl-soap-lite' + 'perl-xml-sax' 'perl-xml-simple' 'perl-xml-xpath' 'perl-image-size' + 'perl-datetime-format-iso8601') + cd "${srcdir}/${_gitname}/${pkgbase}/mythweather" + make INSTALL_ROOT="${pkgdir}" install || return 1 +} + +package_mythzoneminder() { + pkgdesc="View CCTV footage from zoneminder in MythTV" + depends=("mythtv>=${pkgver}") +# install=mythplugins-mythzoneminder.install + cd "${srcdir}/${_gitname}/${pkgbase}/mythzoneminder" + make INSTALL_ROOT="${pkgdir}" install || return 1 +} + +md5sums=('e98c2a09bcb051fdde959fb4bb2e5ab2' + 'b9edd8f7da64ffa74baa91092bd48cc9' + '0299d0214c0d3a452c0284352435d698') diff --git a/abs/core/mythtv/stable-30/mythplugins/mythburn.cpp-python2.patch b/abs/core/mythtv/stable-30/mythplugins/mythburn.cpp-python2.patch new file mode 100644 index 0000000..2c43f9e --- /dev/null +++ b/abs/core/mythtv/stable-30/mythplugins/mythburn.cpp-python2.patch @@ -0,0 +1,13 @@ +diff --git a/mythplugins/mytharchive/mytharchive/mythburn.cpp b/mythplugins/mytharchive/mytharchive/mythburn.cpp +index 4188579bb0..639f17abe9 100644 +--- a/mythplugins/mytharchive/mytharchive/mythburn.cpp ++++ b/mythplugins/mytharchive/mytharchive/mythburn.cpp +@@ -950,7 +950,7 @@ void MythBurn::runScript() + QFile::remove(logDir + "/mythburncancel.lck"); + + createConfigFile(configDir + "/mydata.xml"); +- commandline = "python " + GetShareDir() + "mytharchive/scripts/mythburn.py"; ++ commandline = "python2 " + GetShareDir() + "mytharchive/scripts/mythburn.py"; + commandline += " -j " + configDir + "/mydata.xml"; // job file + commandline += " -l " + logDir + "/progress.log"; // progress log + commandline += " > " + logDir + "/mythburn.log 2>&1 &"; // Logs diff --git a/abs/core/mythtv/stable-30/mythplugins/mythburn.py-aspectratio.patch b/abs/core/mythtv/stable-30/mythplugins/mythburn.py-aspectratio.patch new file mode 100644 index 0000000..377de95 --- /dev/null +++ b/abs/core/mythtv/stable-30/mythplugins/mythburn.py-aspectratio.patch @@ -0,0 +1,138 @@ +--- mythburn.py.orig 2013-12-16 22:41:31.532703825 +0000 ++++ mythburn.py 2013-12-16 22:40:52.191109409 +0000 +@@ -98,6 +98,7 @@ + from fcntl import ioctl + import CDROM + from shutil import copy ++from subprocess import Popen, PIPE + + import MythTV + from MythTV import datetime +@@ -440,7 +441,7 @@ + os.remove(os.path.join(root, name)) + + ############################################################# +-# Romoves all the objects from a directory ++# Removes all the objects from a directory + + def deleteEverythingInFolder(folder): + for root, dirs, files in os.walk(folder, topdown=False): +@@ -666,14 +667,14 @@ + # Gets the aspect ratio of a video file from its stream info file + + def getAspectRatioOfVideo(index): +- """Returns the aspect ratio of the video file (1.333, 1.778, etc)""" ++ """Returns the aspect ratio of the original video file (1.333, 1.778, etc)""" + + #open the XML containing information about this file +- infoDOM = xml.dom.minidom.parse(os.path.join(getItemTempPath(index), 'streaminfo.xml')) ++ infoDOM = xml.dom.minidom.parse(os.path.join(getItemTempPath(index), 'streaminfo_orig.xml')) + + #error out if its the wrong XML + if infoDOM.documentElement.tagName != "file": +- fatalError("Stream info file doesn't look right (%s)" % os.path.join(getItemTempPath(index), 'streaminfo.xml')) ++ fatalError("Stream info file doesn't look right (%s)" % os.path.join(getItemTempPath(index), 'streaminfo_orig.xml')) + video = infoDOM.getElementsByTagName("file")[0].getElementsByTagName("streams")[0].getElementsByTagName("video")[0] + if video.attributes["aspectratio"].value != 'N/A': + aspect_ratio = float(video.attributes["aspectratio"].value) +@@ -1695,6 +1696,37 @@ + fatalError("Failed while running mytharchivehelper to get stream information.\n" + "Result: %d, Command was %s" % (result, command)) + ++ #open the XML containing information about this file ++ infoDOM = xml.dom.minidom.parse(xmlFilename) ++ ++ #error out if its the wrong XML ++ if infoDOM.documentElement.tagName != "file": ++ fatalError("This info file doesn't look right (%s)." % xmlFilename) ++ ++ file = infoDOM.getElementsByTagName("file")[0] ++ video = infoDOM.getElementsByTagName("file")[0].getElementsByTagName("streams")[0].getElementsByTagName("video")[0] ++ ++ #use ffmpeg to get display aspect ratio (DAR) of video ++ cmd = "mythffmpeg -i " + quoteCmdArg(file.attributes["filename"].value) + " 2>&1" ++ aspect_ratio = Popen(cmd, shell=True, stdout=PIPE).stdout.read() ++ if "DAR" in aspect_ratio: ++ #clean DAR string ++ aspect_ratio = aspect_ratio.split("DAR ")[-1].split(",")[0] ++ aspect_ratio = ''.join([c for c in aspect_ratio if c in '1234567890:']).split(":") ++ else: ++ #calculate aspect from video size ++ aspect_ratio = getVideoSize(xmlFilename) ++ ++ #convert to decimal+ ++ aspect_ratio = float(aspect_ratio[0]) / float(aspect_ratio[1]) ++ ++ write("Video %s aspect ratio is: %s" % (filename, aspect_ratio)) ++ ++ #set aspect ratio ++ video.setAttribute("aspectratio",str(aspect_ratio)) ++ ++ WriteXMLToFile (infoDOM,xmlFilename) ++ + # print out the streaminfo.xml file to the log + infoDOM = xml.dom.minidom.parse(xmlFilename) + write(xmlFilename + ":-\n" + infoDOM.toprettyxml(" ", ""), False) +@@ -2010,7 +2042,7 @@ + ############################################################# + # Re-encodes a file to mpeg2 + +-def encodeVideoToMPEG2(source, destvideofile, video, audio1, audio2, aspectratio, profile): ++def encodeVideoToMPEG2(source, destvideofile, video, folder, audio1, audio2, aspectratio, profile): + """Encodes an unknown video source file eg. AVI to MPEG2 video and AC3 audio, use mythffmpeg""" + + profileNode = findEncodingProfile(profile) +@@ -2035,6 +2067,35 @@ + value = quoteCmdArg(destvideofile) + if value == "%aspect": + value = aspectratio ++ if value == "720x480" or value == "720x576": ++ videores, fps, videoAR = getVideoParams(folder) ++ videoWidth = int(videores.split("x")[0]) ++ videoHeight = int(videores.split("x")[1]) ++ ++ #add padding to correct for aspects > than 1.9:1 ++ if float(videoAR) >= 1.9: ++ #check which video type and set the correct height ++ if videomode == "ntsc": ++ videoModeHeight = 480 ++ else: ++ videoModeHeight = 576 ++ ++ #calculate the video height based on the aspect ratio of the video ++ #multiply by 1.185 to compensate for dvds non-square pixels ++ calVideoHeight = int(round((720 / float(videoAR)) * 1.185)) ++ if calVideoHeight % 2 == 1: ++ calVideoHeight = calVideoHeight + 1 ++ #write("calVideoHeight: %s" % calVideoHeight) ++ ++ #use original video height if the calculated video height is close ++ if (calVideoHeight + 20 < videoHeight) or (calVideoHeight - 20 > videoHeight): ++ videoHeight = calVideoHeight ++ ++ cropPixels = videoModeHeight - videoHeight ++ ++ write("Crop Pixels Total: %s" % cropPixels) ++ name = "-vf" ++ value = "\"scale=720:%d, setsar=1:1, pad=720:%d:0:%d:black\"" % (videoModeHeight - cropPixels, videoModeHeight, cropPixels / 2) + + # only re-encode the audio if it is not already in AC3 format + if audio1[AUDIO_CODEC] == "AC3": +@@ -4608,7 +4669,7 @@ + + #do the re-encode + encodeVideoToMPEG2(mediafile, os.path.join(folder, "newfile2.mpg"), video, +- audio1, audio2, aspectratio, profile) ++ folder, audio1, audio2, aspectratio, profile) + mediafile = os.path.join(folder, 'newfile2.mpg') + + #remove the old mediafile that was run through mythtranscode +@@ -4762,7 +4823,7 @@ + + #do the re-encode + encodeVideoToMPEG2(mediafile, os.path.join(folder, "newfile2.mpg"), video, +- audio1, audio2, aspectratio, profile) ++ folder, audio1, audio2, aspectratio, profile) + mediafile = os.path.join(folder, 'newfile2.mpg') + + #remove an intermediate file diff --git a/abs/core/mythtv/stable-30/mythplugins/mythplugins-mythzoneminder.install b/abs/core/mythtv/stable-30/mythplugins/mythplugins-mythzoneminder.install new file mode 100644 index 0000000..a4e0c0d --- /dev/null +++ b/abs/core/mythtv/stable-30/mythplugins/mythplugins-mythzoneminder.install @@ -0,0 +1,11 @@ +post_install() { + . /etc/systemconfig + if [ $SystemType = Master_backend -o $SystemType = Standalone ] + then + echo "This looks a zoneminder server install" + echo "Installing zoneminder" + #for reference the pacman statement below will not work because of a db lock. + pacman -S zoneminder + fi + +} diff --git a/abs/core/mythtv/stable-30/mythtv/0294-0283-FE-Add-network-status-to-machine-status-dialog.patch b/abs/core/mythtv/stable-30/mythtv/0294-0283-FE-Add-network-status-to-machine-status-dialog.patch new file mode 100644 index 0000000..192f0fc --- /dev/null +++ b/abs/core/mythtv/stable-30/mythtv/0294-0283-FE-Add-network-status-to-machine-status-dialog.patch @@ -0,0 +1,71 @@ +From 273937c9ee4ba00ad049ac3c9fe62ecabd2f8fdb Mon Sep 17 00:00:00 2001 +From: Lawrence Rust +Date: Thu, 1 Oct 2015 09:56:13 +0100 +Subject: [PATCH 283/290] FE: Add network status to machine status dialog + +Signed-off-by: Lawrence Rust +--- + mythtv/programs/mythfrontend/statusbox.cpp | 33 ++++++++++++++++++++++++++++ + 1 file changed, 33 insertions(+) + +diff --git a/mythtv/programs/mythfrontend/statusbox.cpp b/mythtv/programs/mythfrontend/statusbox.cpp +index f0078ea..23c5a24 100644 +--- a/mythtv/programs/mythfrontend/statusbox.cpp ++++ src/mythtv/programs/mythfrontend/statusbox.cpp +@@ -5,6 +5,8 @@ using namespace std; + + #include + #include ++#include ++#include + + #include "mythcorecontext.h" + #include "filesysteminfo.h" +@@ -1221,6 +1223,12 @@ void StatusBox::doMachineStatus() + line = tr("This machine:"); + AddLogLine(line, machineStr); + ++ // Hostname ++ line = " " + tr("Hostname") + ": " + QHostInfo::localHostName(); ++ if ( !QHostInfo::localDomainName().isEmpty()) ++ line += "." + QHostInfo::localDomainName(); ++ AddLogLine(line, machineStr); ++ + // uptime + if (!getUptime(uptime)) + uptime = 0; +@@ -1264,6 +1272,31 @@ void StatusBox::doMachineStatus() + } + } + ++ // Network status ++ line = " " + tr("Interfaces") + ":"; ++ QString sep = " "; ++ foreach( QNetworkInterface iface, QNetworkInterface::allInterfaces()) ++ { ++ QNetworkInterface::InterfaceFlags f = iface.flags(); ++ if (!(f & QNetworkInterface::IsUp)) ++ continue; ++ if (!(f & QNetworkInterface::IsRunning)) ++ continue; ++ if (f & QNetworkInterface::IsLoopBack) ++ continue; ++ ++ line += sep + iface.humanReadableName() + " ["; ++ sep = ", "; ++ QString sep2 = ""; ++ foreach( QNetworkAddressEntry addr, iface.addressEntries()) ++ { ++ line += sep2 + addr.ip().toString(); ++ sep2 = ", "; ++ } ++ line += "]"; ++ } ++ AddLogLine(line, machineStr); ++ + if (!m_isBackendActive) + { + line = tr("MythTV server") + ':'; +-- +1.7.9.5 + diff --git a/abs/core/mythtv/stable-30/mythtv/PKGBUILD b/abs/core/mythtv/stable-30/mythtv/PKGBUILD new file mode 100644 index 0000000..5dd3c72 --- /dev/null +++ b/abs/core/mythtv/stable-30/mythtv/PKGBUILD @@ -0,0 +1,139 @@ +pkgname=mythtv +pkgver=30.0 +pkgrel=1 +commit_hash=`cat ../git_src/git_hash` +pkgdesc="A Homebrew PVR project $commit_hash" +arch=('x86_64') +url="http://www.mythtv.org/" +license=('GPL') +depends=('avahi' 'exiv2' 'faad2' 'fftw' 'glew' 'lame' 'libass' 'libavc1394' 'libbluray' + 'libcdio' 'libcec' 'libcrystalhd-git' 'libgl' 'libhdhomerun' 'libiec61883' + 'libsamplerate' 'libva' 'libvdpau' 'libvpx' 'libxnvctrl' 'libxinerama' + 'libxml2' 'libxrandr' 'LinHES-config>=8.1-6' 'LinHES-system>=8.4-4' + 'lirc-utils' 'minizip' 'mysql-clients' 'mysql-python' + 'openssl' 'perl-date-manip' 'perl-dbd-mysql' + 'perl-io-socket-inet6' 'perl-libwww' 'perl-math-round' + 'perl-net-upnp' 'perl-soap-lite' 'perl-xml-sax' 'python2-future' + 'python2-pycurl' 'python2-requests' 'python2-requests-cache' + 'python2-lxml' 'qt5-script' 'qt5-webkit' 'sdl' 'taglib' 'unzip' 'urlgrabber' + 'wget' 'x264' 'x265' 'xmltv') +makedepends=('apache-ant' 'mesa' 'mesa-libgl' 'yasm' 'git' 'rsync' 'qt5-tools') +replaces=() +groups=('pvr') +backup=() +install='mythtv.install' + +patches=( + 'myth_settings.patch' + 'videoAlwaysUseBookmark.patch' + 'autoskip_reduce_commskip_jumpback.patch' + 'change_msg_types.patch' + 'disable_mythnotification_tuner_failure.patch' + 'searchMetatdataSelectedGrabber.patch' + 'defaultThemeLinHES.patch' + 'addEnableDisableAutoShutdownToSystemMenu.patch' + 'mythfrontend_en_us.ts_Title_Case.patch' + 'fixTranslations.patch' + 'pull103-Add-heuristic-in-TMDB-script-to-detect-movie-release-years.patch' + '0294-0283-FE-Add-network-status-to-machine-status-dialog.patch' + ) + +optdepends=() +source=(`echo ${patches[@]:0}` 'recordings') + +prepare() { + if [ -e ${srcdir}/mythtv ] + then + msg "Removing old mythtv src" + rm -rf ${srcdir}/mythtv + fi + + cd ${startdir} + msg "Copying in mythtv git_src" + cp -rp ../git_src/mythtv/mythtv $srcdir + cd ${srcdir}/$pkgname + echo "#!/bin/bash" > version.sh + + msg "--------------------------applying patches------------------------------" + for i in `echo ${patches[@]:0}` + do + echo applying $i + patch -Np2 -i ${startdir}/src/$i || return 1 + echo "-----------------------------" + done + msg "--------------------------done applying patches-------------------------" + + msg "Change python to python2" + find 'bindings/python' 'contrib' 'programs/scripts' -type f | xargs sed -i 's@^#!.*python$@#!/usr/bin/python2@' + + msg "Updating en_us Translation" + cd ${srcdir}/$pkgname/i18n + lrelease -removeidentical mythfrontend_en_us.ts +} + +build() { + cd ${srcdir}/$pkgname + + msg "Configuring mythtv" + ARCH=${CARCH/_/-} + ./configure --prefix=/usr \ + --cpu=${ARCH} \ + --disable-altivec \ + --disable-audio-jack \ + --disable-audio-pulseoutput \ + --disable-distcc \ + --dvb-path=/usr/include \ + --enable-bdjava \ + --enable-libmp3lame \ + --enable-libvpx \ + --enable-libxvid \ + --enable-libx264 \ + --enable-libx265 \ + --enable-sdl \ + --enable-sdl2 \ + --python=python2 \ + --with-bindings=perl,python || return 1 + msg "Compiling mythtv" + make all || return 1 +} + +package() { + cd "${srcdir}/${pkgname}" + # basic install + make INSTALL_ROOT="${pkgdir}" install + # install contrib files + rsync -arp --exclude .svn --delete-excluded contrib ${pkgdir}/usr/share/mythtv/ || return 1 + # install database structure + rsync -arp --exclude .svn --delete-excluded database ${pkgdir}/usr/share/mythtv/ || return 1 + # install docs + rsync -arp --exclude .svn --delete-excluded docs ${pkgdir}/usr/share/mythtv/ || return 1 + + # patch the xml LinHES style + cp -r ${startdir}/menu-xml/*.xml ${pkgdir}/usr/share/mythtv/themes/defaultmenu/ + cd ${pkgdir}/usr/share/mythtv + patch -p0 < ${startdir}/menu-xml/mainmenu.xml.patch || return 1 + patch -p0 < ${startdir}/menu-xml/optical_menu.xml.patch || return 1 + patch -p0 < ${startdir}/menu-xml/library.xml.patch || return 1 + + # make mythtv log dir for old scripts that use it + mkdir -p ${pkgdir}/var/log/mythtv + chown 1000.1000 ${pkgdir}/var/log/mythtv + + #install recordings (was pretty) + mkdir -p ${pkgdir}/etc/cron.hourly/ + install -m0755 ${srcdir}/recordings ${pkgdir}/etc/cron.hourly/ +} + +md5sums=('fb5a87c52a31168a0c8fdde72f27cc45' + '41098e898361a5a3cde3eaae358482a8' + '2f983590a8a3cf81f386cc65b9628e13' + 'f764758832f8e9068ffda1ac0c8aacba' + 'ab2a31dc29ff325162a4b71b49f0adca' + '0f674b9cad031ba1e03aaf6b5ee1499f' + 'b0b238320fa78a4928dce2cea7c85071' + '8e4492d1777234a021f368bd6ee964ee' + 'e6f5c4f7ed0410fa07da6057d2631520' + 'a1c7fb6a3bd11b7b21f2ea8327a843e1' + 'd05eaf66c434a131c8efb4d87e99b402' + 'abaef221b00690b329f4dca18676bcd6' + '633cd853a89aeee5388daaad21ccec28') diff --git a/abs/core/mythtv/stable-30/mythtv/addEnableDisableAutoShutdownToSystemMenu.patch b/abs/core/mythtv/stable-30/mythtv/addEnableDisableAutoShutdownToSystemMenu.patch new file mode 100644 index 0000000..b14e2e0 --- /dev/null +++ b/abs/core/mythtv/stable-30/mythtv/addEnableDisableAutoShutdownToSystemMenu.patch @@ -0,0 +1,50 @@ +diff --git a/mythtv/libs/libmythui/myththemedmenu.cpp b/mythtv/libs/libmythui/myththemedmenu.cpp +index ed2e54c..77aaf73 100644 +--- a/mythtv/libs/libmythui/myththemedmenu.cpp ++++ b/mythtv/libs/libmythui/myththemedmenu.cpp +@@ -308,6 +308,8 @@ void MythThemedMenu::ShowMenu() + return; + + int override_menu = GetMythDB()->GetNumSetting("OverrideExitMenu"); ++ int MythShutdownLock = GetMythDB()->GetNumSetting("MythShutdownLock"); ++ int idleTimeoutSecs = GetMythDB()->GetNumSetting("idleTimeoutSecs"); + QString label = tr("System Menu"); + MythScreenStack* mainStack = GetMythMainWindow()->GetMainStack(); + m_menuPopup = new MythDialogBox(label, mainStack, "menuPopup"); +@@ -325,6 +327,21 @@ void MythThemedMenu::ShowMenu() + if (override_menu != 7) + m_menuPopup->AddButton(tr("Exit application"), QVariant("exit")); + ++ // don't offer to enable/disable auto shutdown if auto shutdown is disabled ++ if (idleTimeoutSecs != 0) ++ { ++ if (MythShutdownLock == 0) ++ { ++ m_menuPopup->AddButton(tr("Disable Auto Shutdown"), ++ QVariant("lockShutdown")); ++ } ++ else ++ { ++ m_menuPopup->AddButton(tr("Enable Auto Shutdown"), ++ QVariant("unlockShutdown")); ++ } ++ } ++ + switch (override_menu) + { + case 2: +@@ -416,6 +433,14 @@ void MythThemedMenu::customEvent(QEvent *event) + QString arg("exiting_app"); + m_state->m_callback(m_state->m_callbackdata, arg); + } ++ else if (action == "lockShutdown") ++ { ++ GetMythDB()->SaveSettingOnHost("MythShutdownLock", "1", NULL); ++ } ++ else if (action == "unlockShutdown") ++ { ++ GetMythDB()->SaveSettingOnHost("MythShutdownLock", "0", NULL); ++ } + } + else if (resultid == "password") + { diff --git a/abs/core/mythtv/stable-30/mythtv/autoskip_reduce_commskip_jumpback.patch b/abs/core/mythtv/stable-30/mythtv/autoskip_reduce_commskip_jumpback.patch new file mode 100644 index 0000000..b6815ef --- /dev/null +++ b/abs/core/mythtv/stable-30/mythtv/autoskip_reduce_commskip_jumpback.patch @@ -0,0 +1,13 @@ +--- src/mythtv/libs/libmythtv/commbreakmap.cpp.orig 2017-03-15 20:34:21.722746111 +0000 ++++ src/mythtv/libs/libmythtv/commbreakmap.cpp 2017-03-15 20:35:21.531732684 +0000 +@@ -271,8 +271,8 @@ + { + comm_msg = tr("Skipping Back."); + +- if (lastCommSkipStart > (2.0 * video_frame_rate)) +- lastCommSkipStart -= (long long) (2.0 * video_frame_rate); ++ if (lastCommSkipStart > (video_frame_rate)) ++ lastCommSkipStart -= (long) (video_frame_rate); + lastCommSkipDirection = 0; + lastCommSkipTime = time(NULL); + jumpToFrame = lastCommSkipStart; diff --git a/abs/core/mythtv/stable-30/mythtv/change_msg_types.patch b/abs/core/mythtv/stable-30/mythtv/change_msg_types.patch new file mode 100644 index 0000000..029dd9a --- /dev/null +++ b/abs/core/mythtv/stable-30/mythtv/change_msg_types.patch @@ -0,0 +1,20 @@ +--- src/mythtv/libs/libmythtv/tv_play.cpp.orig 2017-03-15 20:27:51.672833870 +0000 ++++ src/mythtv/libs/libmythtv/tv_play.cpp 2017-03-15 20:29:10.646025774 +0000 +@@ -12714,7 +12714,7 @@ + ctx->UnlockPlayingInfo(__FILE__, __LINE__); + + if (!desc.isEmpty()) +- UpdateOSDSeekMessage(ctx, desc, kOSDTimeout_Med); ++ SetOSDMessage(ctx, desc); + } + + void TV::SetAutoCommercialSkip(const PlayerContext *ctx, +@@ -12731,7 +12731,7 @@ + ctx->UnlockDeletePlayer(__FILE__, __LINE__); + + if (!desc.isEmpty()) +- UpdateOSDSeekMessage(ctx, desc, kOSDTimeout_Med); ++ SetOSDMessage(ctx, desc); + } + + void TV::SetManualZoom(const PlayerContext *ctx, bool zoomON, QString desc) diff --git a/abs/core/mythtv/stable-30/mythtv/defaultThemeLinHES.patch b/abs/core/mythtv/stable-30/mythtv/defaultThemeLinHES.patch new file mode 100644 index 0000000..947176e --- /dev/null +++ b/abs/core/mythtv/stable-30/mythtv/defaultThemeLinHES.patch @@ -0,0 +1,11 @@ +--- src/mythtv/libs/libmythui/mythuihelper.h.orig 2016-12-29 16:08:28.319634823 +0000 ++++ src/mythtv/libs/libmythui/mythuihelper.h 2016-12-29 16:09:03.245104062 +0000 +@@ -9,7 +9,7 @@ + #include "mythuiexp.h" + #include "themeinfo.h" + +-#define DEFAULT_UI_THEME "MythCenter" ++#define DEFAULT_UI_THEME "LinHES" + #define FALLBACK_UI_THEME "Terra" + + class MythUIHelperPrivate; diff --git a/abs/core/mythtv/stable-30/mythtv/disable_mythnotification_tuner_failure.patch b/abs/core/mythtv/stable-30/mythtv/disable_mythnotification_tuner_failure.patch new file mode 100644 index 0000000..8e03f24 --- /dev/null +++ b/abs/core/mythtv/stable-30/mythtv/disable_mythnotification_tuner_failure.patch @@ -0,0 +1,43 @@ +--- src/mythtv/libs/libmythtv/tv_rec.cpp.orig 2017-09-15 21:17:57.761339002 +0000 ++++ src/mythtv/libs/libmythtv/tv_rec.cpp 2017-09-15 21:16:22.383499573 +0000 +@@ -3956,19 +3956,6 @@ MPEGStreamData *TVRec::TuningSignalCheck + newRecStatus = RecStatus::Failing; + curRecording->SaveVideoProperties(VID_DAMAGED, VID_DAMAGED); + +- QString desc = tr("Good signal seen after %1 ms") +- .arg(genOpt.channel_timeout + +- startRecordingDeadline.msecsTo(current_time)); +- QString title = curRecording->GetTitle(); +- if (!curRecording->GetSubtitle().isEmpty()) +- title += " - " + curRecording->GetSubtitle(); +- +- MythNotification mn(MythNotification::Check, desc, +- "Recording", title, +- tr("See 'Tuning timeout' in mythtv-setup " +- "for this input.")); +- gCoreContext->SendEvent(MythEvent(mn)); +- + LOG(VB_GENERAL, LOG_WARNING, LOC + + QString("It took longer than %1 ms to get a signal lock. " + "Keeping status of '%2'") +@@ -4016,19 +4003,6 @@ MPEGStreamData *TVRec::TuningSignalCheck + + SendMythSystemRecEvent("REC_FAILING", curRecording); + +- QString desc = tr("Taking more than %1 ms to get a lock.") +- .arg(genOpt.channel_timeout); +- QString title = curRecording->GetTitle(); +- if (!curRecording->GetSubtitle().isEmpty()) +- title += " - " + curRecording->GetSubtitle(); +- +- MythNotification mn(MythNotification::Error, desc, +- "Recording", title, +- tr("See 'Tuning timeout' in mythtv-setup " +- "for this input.")); +- mn.SetDuration(30); +- gCoreContext->SendEvent(MythEvent(mn)); +- + LOG(VB_GENERAL, LOG_WARNING, LOC + + QString("TuningSignalCheck: taking more than %1 ms to get a lock. " + "marking this recording as '%2'.") + diff --git a/abs/core/mythtv/stable-30/mythtv/fixTranslations.patch b/abs/core/mythtv/stable-30/mythtv/fixTranslations.patch new file mode 100644 index 0000000..b013470 --- /dev/null +++ b/abs/core/mythtv/stable-30/mythtv/fixTranslations.patch @@ -0,0 +1,91 @@ +diff --git a/mythtv/programs/mythfrontend/audiogeneralsettings.h b/mythtv/programs/mythfrontend/audiogeneralsettings.h +index 79aa41dd8d..46421a84c2 100644 +--- a/mythtv/programs/mythfrontend/audiogeneralsettings.h ++++ b/mythtv/programs/mythfrontend/audiogeneralsettings.h +@@ -19,6 +19,8 @@ class AudioTest; + + class AudioConfigScreen : public StandardSettingDialog + { ++ Q_OBJECT ++ + public: + AudioConfigScreen(MythScreenStack *parent, const char *name, + GroupSetting *groupSetting); +diff --git a/mythtv/programs/mythfrontend/globalsettings.cpp b/mythtv/programs/mythfrontend/globalsettings.cpp +index 4507619170..0618f9762b 100644 +--- a/mythtv/programs/mythfrontend/globalsettings.cpp ++++ b/mythtv/programs/mythfrontend/globalsettings.cpp +@@ -3871,7 +3871,7 @@ class PlayBackScaling : public GroupSetting + PlayBackScaling::PlayBackScaling() + :GroupSetting() + { +- setLabel(tr("Scaling")); ++ setLabel(PlaybackSettings::tr("Scaling")); + addChild(m_VertScan = VertScanPercentage()); + addChild(m_YScan = YScanDisplacement()); + addChild(m_HorizScan = HorizScanPercentage()); +@@ -3894,7 +3894,7 @@ void PlayBackScaling::updateButton(MythUIButtonListItem *item) + m_HorizScan->getValue() == "0" && + m_YScan->getValue() == "0" && + m_XScan->getValue() == "0") +- item->SetText(tr("No scaling"),"value"); ++ item->SetText(PlaybackSettings::tr("No scaling"),"value"); + else + item->SetText(QString("%1%x%2%+%3%+%4%") + .arg(m_HorizScan->getValue()) +@@ -4364,7 +4364,7 @@ ChannelCheckBoxSetting::ChannelCheckBoxSetting(uint chanid, + m_channelId(chanid) + { + setLabel(QString("%1 %2").arg(channum).arg(channame)); +- setHelpText(tr("Select/Unselect channels for this channel group")); ++ setHelpText(ChannelGroupSettings::tr("Select/Unselect channels for this channel group")); + } + + ChannelGroupSetting::ChannelGroupSetting(const QString &groupName, +diff --git a/mythtv/programs/mythfrontend/globalsettings.h b/mythtv/programs/mythfrontend/globalsettings.h +index e069ec1cfb..8c1de7a02e 100644 +--- a/mythtv/programs/mythfrontend/globalsettings.h ++++ b/mythtv/programs/mythfrontend/globalsettings.h +@@ -259,6 +259,8 @@ class PlaybackProfileConfig : public GroupSetting + + class ChannelGroupSetting : public GroupSetting + { ++ Q_OBJECT ++ + public: + ChannelGroupSetting(const QString &groupName, int groupId); + virtual void Load(); +diff --git a/mythtv/programs/mythtv-setup/backendsettings.cpp b/mythtv/programs/mythtv-setup/backendsettings.cpp +index 6de0bae49d..bf24cc4f1a 100644 +--- a/mythtv/programs/mythtv-setup/backendsettings.cpp ++++ b/mythtv/programs/mythtv-setup/backendsettings.cpp +@@ -126,11 +126,12 @@ class IpAddressSettings : public HostCheckBoxSetting + explicit IpAddressSettings(/*Setting* trigger*/) : + HostCheckBoxSetting("ListenOnAllIps") + { +- setLabel(QObject::tr("Listen on All IP Addresses")); ++ setLabel(BackendSettings::tr("Listen on All IP Addresses")); + setValue(true); +- setHelpText(tr("Allow this backend to receive connections on any IP " +- "Address assigned to it. Recommended for most users " +- "for ease and reliability.")); ++ setHelpText(BackendSettings::tr("Allow this backend to receive " ++ "connections on any IP Address assigned to it. " ++ "Recommended for most users for ease and " ++ "reliability.")); + + localServerIP = LocalServerIP(); + localServerIP6 = LocalServerIP6(); +diff --git a/mythtv/i18n/translate.pro b/mythtv/i18n/translate.pro +index 210d9907f1..d51ec37ee5 100644 +--- a/mythtv/i18n/translate.pro ++++ b/mythtv/i18n/translate.pro +@@ -10,6 +10,8 @@ SOURCES += ../libs/libmyth/audio/*.cpp + SOURCES += ../libs/libmyth/audio/*.h + SOURCES += ../libs/libmythmetadata/*.cpp + SOURCES += ../libs/libmythmetadata/*.h ++SOURCES += ../libs/libmythservicecontracts/enums/*.cpp ++SOURCES += ../libs/libmythservicecontracts/enums/*.h + SOURCES += ../libs/libmythtv/*.cpp + SOURCES += ../libs/libmythtv/*.h + SOURCES += ../libs/libmythtv/AirPlay/*.cpp diff --git a/abs/core/mythtv/stable-30/mythtv/menu-xml/HOST_SETTINGS.xml b/abs/core/mythtv/stable-30/mythtv/menu-xml/HOST_SETTINGS.xml new file mode 100644 index 0000000..c9ec7fa --- /dev/null +++ b/abs/core/mythtv/stable-30/mythtv/menu-xml/HOST_SETTINGS.xml @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/abs/core/mythtv/stable-30/mythtv/menu-xml/dvd_backup.xml b/abs/core/mythtv/stable-30/mythtv/menu-xml/dvd_backup.xml new file mode 100644 index 0000000..2647d81 --- /dev/null +++ b/abs/core/mythtv/stable-30/mythtv/menu-xml/dvd_backup.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + diff --git a/abs/core/mythtv/stable-30/mythtv/menu-xml/game.xml b/abs/core/mythtv/stable-30/mythtv/menu-xml/game.xml new file mode 100644 index 0000000..293a9e6 --- /dev/null +++ b/abs/core/mythtv/stable-30/mythtv/menu-xml/game.xml @@ -0,0 +1,12 @@ + + + + + + diff --git a/abs/core/mythtv/stable-30/mythtv/menu-xml/info_menu.xml b/abs/core/mythtv/stable-30/mythtv/menu-xml/info_menu.xml new file mode 100644 index 0000000..017f90b --- /dev/null +++ b/abs/core/mythtv/stable-30/mythtv/menu-xml/info_menu.xml @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/abs/core/mythtv/stable-30/mythtv/menu-xml/is.xml b/abs/core/mythtv/stable-30/mythtv/menu-xml/is.xml new file mode 100644 index 0000000..19efc34 --- /dev/null +++ b/abs/core/mythtv/stable-30/mythtv/menu-xml/is.xml @@ -0,0 +1,3 @@ + + + diff --git a/abs/core/mythtv/stable-30/mythtv/menu-xml/lh_backend_control.xml b/abs/core/mythtv/stable-30/mythtv/menu-xml/lh_backend_control.xml new file mode 100644 index 0000000..0b0cc17 --- /dev/null +++ b/abs/core/mythtv/stable-30/mythtv/menu-xml/lh_backend_control.xml @@ -0,0 +1,24 @@ + + + + + + + + + diff --git a/abs/core/mythtv/stable-30/mythtv/menu-xml/library.xml.patch b/abs/core/mythtv/stable-30/mythtv/menu-xml/library.xml.patch new file mode 100644 index 0000000..0c0177a --- /dev/null +++ b/abs/core/mythtv/stable-30/mythtv/menu-xml/library.xml.patch @@ -0,0 +1,25 @@ +--- themes/defaultmenu/library.xml.orig 2014-11-26 20:21:35.092552944 +0000 ++++ themes/defaultmenu/library.xml 2014-11-26 20:22:43.103983263 +0000 +@@ -56,6 +56,13 @@ + + + ++ ++ + diff --git a/abs/core/mythtv/stable-30/mythtv/menu-xml/linhes.xml b/abs/core/mythtv/stable-30/mythtv/menu-xml/linhes.xml new file mode 100644 index 0000000..fe7640d --- /dev/null +++ b/abs/core/mythtv/stable-30/mythtv/menu-xml/linhes.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + diff --git a/abs/core/mythtv/stable-30/mythtv/menu-xml/linhes_tools.xml b/abs/core/mythtv/stable-30/mythtv/menu-xml/linhes_tools.xml new file mode 100644 index 0000000..feabe8e --- /dev/null +++ b/abs/core/mythtv/stable-30/mythtv/menu-xml/linhes_tools.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + diff --git a/abs/core/mythtv/stable-30/mythtv/menu-xml/mainmenu.xml.patch b/abs/core/mythtv/stable-30/mythtv/menu-xml/mainmenu.xml.patch new file mode 100644 index 0000000..3ddce0b --- /dev/null +++ b/abs/core/mythtv/stable-30/mythtv/menu-xml/mainmenu.xml.patch @@ -0,0 +1,15 @@ +--- themes/defaultmenu/mainmenu.xml.orig 2014-09-02 20:03:34.658600292 +0000 ++++ themes/defaultmenu/mainmenu.xml 2014-09-03 15:49:34.820056829 +0000 +@@ -45,9 +45,9 @@ + + + diff --git a/abs/core/mythtv/stable-30/mythtv/menu-xml/mythbackup.xml b/abs/core/mythtv/stable-30/mythtv/menu-xml/mythbackup.xml new file mode 100644 index 0000000..176591b --- /dev/null +++ b/abs/core/mythtv/stable-30/mythtv/menu-xml/mythbackup.xml @@ -0,0 +1,22 @@ + + + + + + + diff --git a/abs/core/mythtv/stable-30/mythtv/menu-xml/mythrestore.xml b/abs/core/mythtv/stable-30/mythtv/menu-xml/mythrestore.xml new file mode 100644 index 0000000..d37ba2b --- /dev/null +++ b/abs/core/mythtv/stable-30/mythtv/menu-xml/mythrestore.xml @@ -0,0 +1,24 @@ + + + + + + + + + diff --git a/abs/core/mythtv/stable-30/mythtv/menu-xml/optical_menu.xml.patch b/abs/core/mythtv/stable-30/mythtv/menu-xml/optical_menu.xml.patch new file mode 100644 index 0000000..b836e85 --- /dev/null +++ b/abs/core/mythtv/stable-30/mythtv/menu-xml/optical_menu.xml.patch @@ -0,0 +1,23 @@ +--- themes/defaultmenu/optical_menu.xml.orig 2012-05-02 18:41:38.000000000 +0000 ++++ themes/defaultmenu/optical_menu.xml 2012-07-30 05:33:03.000000000 +0000 +@@ -17,6 +17,20 @@ + + + ++ ++ ++ ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/abs/core/mythtv/stable-30/mythtv/menu-xml/update.xml b/abs/core/mythtv/stable-30/mythtv/menu-xml/update.xml new file mode 100644 index 0000000..2d47e7d --- /dev/null +++ b/abs/core/mythtv/stable-30/mythtv/menu-xml/update.xml @@ -0,0 +1,11 @@ + + + + + diff --git a/abs/core/mythtv/stable-30/mythtv/menu-xml/update2.xml b/abs/core/mythtv/stable-30/mythtv/menu-xml/update2.xml new file mode 100644 index 0000000..4eee8cc --- /dev/null +++ b/abs/core/mythtv/stable-30/mythtv/menu-xml/update2.xml @@ -0,0 +1,25 @@ + + + + + + + + diff --git a/abs/core/mythtv/stable-30/mythtv/menu-xml/xmmenu.xml.del b/abs/core/mythtv/stable-30/mythtv/menu-xml/xmmenu.xml.del new file mode 100644 index 0000000..6b26d11 --- /dev/null +++ b/abs/core/mythtv/stable-30/mythtv/menu-xml/xmmenu.xml.del @@ -0,0 +1,574 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/abs/core/mythtv/stable-30/mythtv/myth_settings.patch b/abs/core/mythtv/stable-30/mythtv/myth_settings.patch new file mode 100644 index 0000000..aebff2a --- /dev/null +++ b/abs/core/mythtv/stable-30/mythtv/myth_settings.patch @@ -0,0 +1,1960 @@ +commit 0bfb6515f1c6f10d4d9d5d7297ca56a18ac3c138 +Author: James Meyer +Date: Sun Nov 17 18:58:50 2013 -0600 + + mythutil updated with myth_settings for .27 + +diff --git a/mythtv/libs/libmythbase/mythcorecontext.cpp b/mythtv/libs/libmythbase/mythcorecontext.cpp +index e9cc880..4f7a3bd 100644 +--- a/mythtv/libs/libmythbase/mythcorecontext.cpp ++++ b/mythtv/libs/libmythbase/mythcorecontext.cpp +@@ -1262,6 +1262,90 @@ void MythCoreContext::ResetLanguage(void) + d->language.clear(); + } + ++//JM ADDED ++void MythCoreContext::savesettings_togroup (QString src_hostname, ++ QString saved_settingsgroupname ) ++{ ++ return d->m_database->savesettings_togroup(src_hostname, ++ saved_settingsgroupname); ++} ++ ++void MythCoreContext::deletesettings(QString delete_hostname, ++ QString saved_settingsgroupname) ++{ ++ return d->m_database->deletesettings(delete_hostname, ++ saved_settingsgroupname); ++} ++ ++QMap MythCoreContext::list_settingsgroupname() ++{ ++ return d->m_database->list_settingsgroupname(); ++} ++ ++QMap MythCoreContext::diff_settingsgroupname( ++ QString diff_hostname1, ++ QString diff_hostname2, ++ QStringList table_list) ++{ ++ return d->m_database->diff_settingsgroupname(diff_hostname1, ++ diff_hostname2, ++ table_list); ++} ++ ++void MythCoreContext::clonesettings(QString src_hostname, ++ QString saved_settingsgroupname, ++ QStringList table_list, ++ bool is_full_clone, ++ QString dest_hostname) ++{ ++ return d->m_database->clonesettings(src_hostname, ++ saved_settingsgroupname, ++ table_list, ++ is_full_clone, ++ dest_hostname); ++} ++ ++void MythCoreContext::restoresettings(QString dest_hostname, ++ QString saved_settingsgroupname, ++ QStringList table_list ) ++{ ++ return d->m_database->restoresettings( dest_hostname, ++ saved_settingsgroupname, ++ table_list); ++} ++ ++void MythCoreContext::change_hostname(QString old_hostname, ++ QString new_hostname) ++{ ++ return d->m_database->change_hostname(old_hostname, new_hostname) ; ++} ++ ++bool MythCoreContext::settings_check(QString src_hostname, ++ QString saved_settingsgroupname) ++{ ++ return d->m_database->settings_check(src_hostname,saved_settingsgroupname); ++} ++ ++void MythCoreContext::import_settings(QMap vp_map, ++ QString table) ++{ ++ return d->m_database->import_settings(vp_map, table); ++} ++ ++ ++QMap > MythCoreContext::export_settings( ++ QString src_hostname, ++ QString saved_settingsgroupname, ++ QStringList table_list, bool skip_host ) ++{ ++ return d->m_database->export_settings(src_hostname, ++ saved_settingsgroupname, ++ table_list , skip_host ); ++} ++ ++//END JM ADDED ++ ++ + void MythCoreContext::InitLocale(void ) + { + if (!d->m_locale) +diff --git a/mythtv/libs/libmythbase/mythcorecontext.h b/mythtv/libs/libmythbase/mythcorecontext.h +index aed83d7..3f0de5e 100644 +--- a/mythtv/libs/libmythbase/mythcorecontext.h ++++ b/mythtv/libs/libmythbase/mythcorecontext.h +@@ -240,6 +240,39 @@ class MBASE_PUBLIC MythCoreContext : pub + void emitTVPlaybackAborted(void) { emit TVPlaybackAborted(); } + void emitTVPlaybackPlaying(void) { emit TVPlaybackPlaying(); } + ++ //JM ADDED ++ void savesettings_togroup(QString src_hostname, ++ QString saved_settingsgroupname ); ++ ++ void deletesettings(QString delete_hostname, ++ QString saved_settingsgroupname); ++ ++ QMap list_settingsgroupname(); ++ QMap diff_settingsgroupname(QString diff_hostname1, ++ QString diff_hostname2, ++ QStringList table_list); ++ ++ void clonesettings(QString src_hostname, ++ QString saved_settingsgroupname, ++ QStringList table_list, ++ bool is_full_clone = true, ++ QString dest_hostname=""); ++ ++ void restoresettings (QString dest_hostname, ++ QString saved_settingsgroupname, ++ QStringList table_list); ++ ++ void change_hostname (QString old_hostname, QString new_hostname); ++ ++ bool settings_check (QString src_hostname ,QString saved_settingsgroupname); ++ void import_settings(QMap vp_map, QString table); ++ ++ QMap > export_settings( ++ QString src_hostname, ++ QString saved_settingsgroupname, ++ QStringList table_list, ++ bool skip_host = false ); ++ //END JM ADDED + + signals: + void TVPlaybackStarted(void); +diff --git a/mythtv/libs/libmythbase/mythdb.cpp b/mythtv/libs/libmythbase/mythdb.cpp +index e60fce0..ed3bdf7 100644 +--- a/mythtv/libs/libmythbase/mythdb.cpp ++++ b/mythtv/libs/libmythbase/mythdb.cpp +@@ -896,6 +896,1015 @@ void MythDB::WriteDelayedSettings(void) + } + } + ++//JM ADDED ++void MythDB::savesettings_togroup(QString src_hostname, ++ QString saved_settingsgroupname ) ++{ ++ LOG(VB_GENERAL, LOG_ERR, QString("Using hostname of : %1") ++ .arg(src_hostname)); ++ LOG(VB_GENERAL, LOG_ERR, QString("Saving to group: %1") ++ .arg(saved_settingsgroupname)); ++ if ( settings_check( src_hostname , "current" ) ) ++ { ++ QStringList table_list; ++ QString hostname_clause; ++ table_list.append("settings"); ++ table_list.append("keybindings"); ++ table_list.append("jumppoints"); ++ if ( src_hostname == "GLOBAL" ) ++ hostname_clause = "hostname IS NULL"; ++ else ++ hostname_clause ="hostname = :HOSTNAME"; ++ ++ foreach (QString table, table_list) ++ { ++ QString dest_tablename = table +"_" + saved_settingsgroupname ; ++ create_new_table(dest_tablename,table); ++ ++ QString query_string; ++ // Remove old saved values ++ MSqlQuery query(MSqlQuery::InitCon()); ++ query_string = QString("DELETE FROM %1 WHERE %2") ++ .arg(dest_tablename) ++ .arg(hostname_clause); ++ ++ //query_string = QString("DELETE FROM %1 WHERE " ++ // "hostname = :HOSTNAME").arg(dest_tablename); ++ ++ query.prepare(query_string); ++ query.bindValue(":HOSTNAME" ,src_hostname); ++ query.exec(); ++ ++ //insert all new settings ++ query_string = QString("REPLACE INTO %1 " ++ "SELECT * from %2 where %3") ++ .arg(dest_tablename) ++ .arg(table) ++ .arg(hostname_clause); ++// query_string = QString("REPLACE INTO %1 " ++// "SELECT * from %2 where hostname = :HOSTNAME)") ++// .arg(dest_tablename) ++// .arg(table); ++ ++ query.prepare(query_string); ++ query.bindValue(":HOSTNAME",src_hostname); ++ query.exec(); ++ } ++ } ++ else ++ LOG(VB_GENERAL| VB_STDIO|VB_FLUSH, LOG_ERR, ++ QString("Couldn't find settings for: %1 \n").arg(src_hostname)); ++ return; ++ ++}; ++ ++void MythDB::deletesettings(QString delete_hostname, ++ QString saved_settingsgroupname) ++{ ++ LOG(VB_GENERAL, LOG_ERR, QString("Using hostname of : %1") ++ .arg(delete_hostname)); ++ LOG(VB_GENERAL, LOG_ERR, QString("Deleting: %1") ++ .arg(saved_settingsgroupname)); ++ int tempItem; ++ QString src_tablename; ++ QStringList table_list; ++ ++ table_list.append("settings"); ++ table_list.append("keybindings"); ++ table_list.append("jumppoints"); ++ QString hostname_clause; ++ if ( delete_hostname == "GLOBAL" ) ++ hostname_clause = "hostname IS NULL"; ++ else ++ hostname_clause ="hostname = :HOSTNAME"; ++ ++ foreach (QString table, table_list) ++ { ++ src_tablename = find_group_table_name(table, saved_settingsgroupname); ++ MSqlQuery query(MSqlQuery::InitCon()); ++ // Remove old saved values ++ if ( does_table_exist(src_tablename)) ++ { ++ QString query_string = QString("DELETE from %1 " ++ "WHERE %2") ++ .arg(src_tablename) ++ .arg(hostname_clause); ++ query.prepare(query_string); ++ query.bindValue(":HOSTNAME" ,delete_hostname); ++ query.exec(); ++ ++ //check if ok to delete table ++ query_string = QString("SELECT count(*) from %1") ++ .arg(src_tablename); ++ query.prepare(query_string); ++ if (query.exec() && query.isActive() && query.size() > 0) ++ { ++ query.next(); ++ tempItem = query.value(0).toInt(); ++ if ( tempItem == 0 ) ++ drop_temp_table(src_tablename); ++ } ++ } ++ else ++ LOG(VB_GENERAL, LOG_ERR, ++ QString("Couldn't find table: %1").arg(src_tablename)); ++ } ++ return; ++}; // end delete settings ++ ++ ++QMap MythDB::list_settingsgroupname() ++{ ++ //Returns a QMAP of "settings_groups: hostname" ++ MSqlQuery query(MSqlQuery::InitCon()); ++ MSqlQuery subquery(MSqlQuery::InitCon()); ++ QString tempItem; ++ QString temp_hostnameItem; ++ QStringList hostname_list; ++ QMap return_list; ++ QString full_table_name; ++ query.prepare( "show tables like \"settings%\" " ); ++ if (query.exec() && query.isActive() && query.size() > 0) ++ { ++ while (query.next()) ++ { ++ full_table_name = query.value(0).toString(); ++ tempItem=query.value(0).toString().remove(QRegExp("settings_")); ++ if ( tempItem != "distro_default" ) ++ { ++ //loop over tables looking for hostnames ++ QString query_string = QString("SELECT DISTINCT " ++ "hostname from %1") ++ .arg(full_table_name); ++ subquery.prepare(query_string); ++ ++ if (subquery.exec() && subquery.isActive() ++ && subquery.size() > 0) ++ { ++ while (subquery.next()) ++ { ++ temp_hostnameItem = subquery.value(0).toString(); ++ hostname_list.append(temp_hostnameItem); ++ } ++ } ++ //Special case of naming for the settings table; ++ //This only affects output. ++ if ( tempItem == "settings" ) ++ return_list["current"] = hostname_list; ++ else ++ return_list[tempItem] = hostname_list; ++ ++ //reset hostname_list for the next group ++ hostname_list = QStringList(); ++ } ++ } ++ } ++ return return_list; ++}; // end list_settingsgroupname ++ ++QMap MythDB::diff_settingsgroupname( ++ QString diff_hostname1 , ++ QString diff_hostname2, ++ QStringList table_list ) ++{ ++ // Returns a QMAP of tablename : diff results ++ LOG(VB_GENERAL, LOG_ERR, QString("Comparing settings for:")); ++ LOG(VB_GENERAL, LOG_ERR, QString("host 1: %1").arg(diff_hostname1)); ++ LOG(VB_GENERAL, LOG_ERR, QString("host 2: %1").arg(diff_hostname2)); ++ ++ QString qstr; ++ QString tempItem; ++ QString tempString; ++ ++ QStringList diff_list; ++ QStringList settings_list; ++ QStringList keybinding_list; ++ ++ QMap return_list; ++ if ( table_list.isEmpty() ) ++ { ++ table_list.append("settings"); ++ table_list.append("keybindings"); ++ } ++ ++ MSqlQuery query(MSqlQuery::InitCon()); ++ foreach (QString table, table_list) ++ { ++ if ( table == "settings") ++ { ++ ++ qstr= "SELECT distinct settings.value, :DIFF_HOSTNAME1 AS `hostname`, settings_a.data, :DIFF_HOSTNAME2 AS `hostname`" ++ " , settings_b.data FROM settings LEFT JOIN settings AS settings_a ON settings_a.value = settings.value AND settings_a.hostname = :DIFF_HOSTNAME1" ++ " LEFT JOIN settings AS settings_b ON settings_b.value = settings.value AND settings_b.hostname = :DIFF_HOSTNAME2" ++ " WHERE settings_a.data != settings_b.data OR " ++ " (settings_a.data IS NULL AND settings_b.data IS NOT NULL) OR (settings_a.data IS NOT NULL AND settings_b.data IS NULL);"; ++ ++ query.prepare(qstr); ++ query.bindValue(":DIFF_HOSTNAME1" , diff_hostname1); ++ query.bindValue(":DIFF_HOSTNAME2" , diff_hostname2); ++ ++ if (query.exec() && query.isActive() && query.size() > 0) ++ { ++ while (query.next()) ++ { ++ tempString=""; ++ //value ++ tempItem = query.value(0).toString(); ++ tempString.append(tempItem); ++ tempString.append("|"); ++ ++ //hostname_1 ++ tempItem = query.value(1).toString(); ++ if (tempItem.isEmpty()) ++ tempItem=diff_hostname1; ++ tempString.append(tempItem); ++ tempString.append("|"); ++ ++ //data ++ tempItem = query.value(2).toString(); ++ if (tempItem.isEmpty()) ++ tempItem="NULL"; ++ tempString.append(tempItem); ++ tempString.append("|"); ++ ++ //hostname_2 ++ tempItem = query.value(3).toString(); ++ if (tempItem.isEmpty()) ++ tempItem=diff_hostname2; ++ tempString.append(tempItem); ++ tempString.append("|"); ++ ++ //data ++ tempItem = query.value(4).toString(); ++ if (tempItem.isEmpty()) ++ tempItem="NULL"; ++ tempString.append(tempItem); ++ ++ settings_list.append(tempString); ++ } ++ return_list["Settings"] = settings_list; ++ } ++ } ++ else if ( table == "keybindings") ++ { ++ ++ qstr="SELECT distinct keybindings.context, keybindings.action, :DIFF_HOSTNAME1 AS `hostname`, keybindings_a.keylist, :DIFF_HOSTNAME2 AS `hostname`, keybindings_b.keylist FROM keybindings " ++ " LEFT JOIN keybindings AS keybindings_a ON keybindings_a.context = keybindings.context AND keybindings_a.action = keybindings.action " ++ " AND keybindings_a.hostname = :DIFF_HOSTNAME1 " ++ " LEFT JOIN keybindings AS keybindings_b ON keybindings_b.context = keybindings.context " ++ " AND keybindings_b.action = keybindings.action AND keybindings_b.hostname = :DIFF_HOSTNAME2 " ++ " WHERE keybindings_a.keylist != keybindings_b.keylist OR " ++ " (keybindings_a.keylist IS NULL AND keybindings_b.keylist IS NOT NULL) OR (keybindings_a.keylist IS NOT NULL AND keybindings_b.keylist IS NULL);"; ++ query.prepare(qstr); ++ query.bindValue(":DIFF_HOSTNAME1" , diff_hostname1); ++ query.bindValue(":DIFF_HOSTNAME2" , diff_hostname2); ++ ++ if (query.exec() && query.isActive() && query.size() > 0) ++ { ++ while (query.next()) ++ { ++ tempString=""; ++ //context ++ tempItem = query.value(0).toString(); ++ tempString.append(tempItem); ++ tempString.append("|"); ++ ++ //action ++ tempItem = query.value(1).toString(); ++ tempString.append(tempItem); ++ tempString.append("|"); ++ ++ //hostname ++ tempItem = query.value(2).toString(); ++ if (tempItem.isEmpty()) ++ tempItem=diff_hostname1; ++ tempString.append(tempItem); ++ tempString.append("|"); ++ ++ //keylist ++ tempItem = query.value(3).toString(); ++ if (tempItem.isEmpty()) ++ tempItem="NULL"; ++ tempString.append(tempItem); ++ tempString.append("|"); ++ ++ //hostname ++ tempItem = query.value(4).toString(); ++ if (tempItem.isEmpty()) ++ tempItem=diff_hostname2; ++ tempString.append(tempItem); ++ tempString.append("|"); ++ ++ //keylist ++ tempItem = query.value(5).toString(); ++ if (tempItem.isEmpty()) ++ tempItem="NULL"; ++ tempString.append(tempItem); ++ keybinding_list.append(tempString); ++ } ++ return_list["Keybindings"] = keybinding_list; ++ } ++ } ++ ++ } ++ return return_list; ++}; //end diff_settingsgroupname ++ ++void MythDB::clonesettings(QString src_hostname, ++ QString saved_settingsgroupname, ++ QStringList table_list, ++ bool is_full_clone, QString dest_hostname) ++{ ++ LOG(VB_GENERAL, LOG_ERR, QString("Using src hostname of : %1") ++ .arg(src_hostname)); ++ LOG(VB_GENERAL, LOG_ERR, QString("Using dest hostname of : %1") ++ .arg(dest_hostname)); ++ LOG(VB_GENERAL, LOG_ERR, QString("Cloning setting group: %1") ++ .arg(saved_settingsgroupname)); ++ LOG(VB_GENERAL, LOG_ERR, QString("Full Copy : %1") ++ .arg(is_full_clone)); ++ ++ MSqlQuery query(MSqlQuery::InitCon()); ++ QStringList::Iterator it; ++ QString current_table; ++ QString dest_tablename; ++ QString temptable; ++ ++ if ( table_list.isEmpty() ) ++ { ++ table_list.append("settings"); ++ table_list.append("keybindings"); ++ table_list.append("jumppoints"); ++ } ++ ++ for ( it = table_list.begin(); it != table_list.end(); ++it ) ++ { ++ current_table = *it ; ++ dest_tablename = find_group_table_name(current_table, ++ saved_settingsgroupname); ++ ++ if ( does_table_exist(dest_tablename)) ++ { ++ // create temp table for merging settings ++ temptable="temp_table_" + dest_tablename; ++ create_temp_table(temptable, current_table ); ++ ++ // copy in stored settings ++ QString query_string = QString("REPLACE INTO %1 " ++ "(SELECT * from %2 where hostname = :HOSTNAME)") ++ .arg(temptable) ++ .arg(dest_tablename); ++ ++ query.prepare(query_string); ++ query.bindValue(":HOSTNAME",src_hostname ); ++ query.exec(); ++ ++ // update hostname for dest_hostname ++ query_string = QString("UPDATE %1 set hostname = :HOSTNAME") ++ .arg(temptable); ++ ++ query.prepare(query_string); ++ query.bindValue(":HOSTNAME" , dest_hostname ); ++ query.exec(); ++ ++ //if not full clone remove HOST% settings from temp table; ++ if ( current_table == "settings" && !is_full_clone) ++ { ++ query_string = QString("DELETE FROM %1 WHERE " ++ "hostname=:HOSTNAME and value like 'HOST%' " ) ++ .arg(temptable); ++ ++ query.prepare(query_string); ++ query.bindValue( ":HOSTNAME" , dest_hostname ); ++ query.exec(); ++ } ++ ++ //remove current settings from dest table, ++ //if not full clone, then leave HOST% ++ //Need to remove because the old table allows for duplicates ++ ++ if ( current_table == "settings" && !is_full_clone) ++ query_string = QString ("DELETE FROM %1 WHERE " ++ "hostname = :HOSTNAME " ++ "and value not like 'HOST%'") ++ .arg(dest_tablename); ++ ++ else ++ query_string = QString ("DELETE FROM %1 WHERE " ++ "hostname = :HOSTNAME ") ++ .arg(dest_tablename); ++ ++ query.prepare(query_string); ++ query.bindValue(":HOSTNAME",dest_hostname); ++ query.exec(); ++ ++ // copy new settings from temp to current ++ query_string = QString("REPLACE INTO %1 " ++ "(SELECT * from %2)") ++ .arg(dest_tablename) ++ .arg(temptable); ++ ++ query.prepare(query_string); ++ query.exec(); ++ ++ // drop temptable ++ drop_temp_table(temptable); ++ } ++ else ++ LOG(VB_GENERAL, LOG_NOTICE, QString("Couldn't find table: %1") ++ .arg(dest_tablename)); ++ } ++}; //end clonesettings ++ ++void MythDB::restoresettings (QString dest_hostname, ++ QString saved_settingsgroupname, ++ QStringList table_list ) ++{ ++ LOG(VB_GENERAL, LOG_NOTICE, QString("Restoring Settings:")); ++ LOG(VB_GENERAL, LOG_NOTICE, QString(" src: %1") ++ .arg(saved_settingsgroupname)); ++ LOG(VB_GENERAL, LOG_NOTICE, QString(" dest:%1") ++ .arg(dest_hostname)); ++ ++ QString hostname_clause; ++ if ( dest_hostname == "GLOBAL" ) ++ hostname_clause = "hostname IS NULL"; ++ else ++ hostname_clause ="hostname = :HOSTNAME"; ++ ++ bool table_check; ++ if ( saved_settingsgroupname == "distro_default" ) ++ table_check = settings_check ( "distro_default" , saved_settingsgroupname ); ++ else ++ table_check = settings_check ( dest_hostname , saved_settingsgroupname ); ++ ++ ++ if ( table_check == true ) ++ { ++ MSqlQuery query(MSqlQuery::InitCon()); ++ QStringList::Iterator it; ++ QString current_table; ++ if ( table_list.isEmpty() ) ++ { ++ table_list.append("settings"); ++ table_list.append("keybindings"); ++ table_list.append("jumppoints"); ++ } ++ ++ for ( it = table_list.begin(); it != table_list.end(); ++it ) ++ { ++ current_table = *it ; ++ //find tablenames to use ++ QString src_tablename = find_group_table_name(current_table, ++ saved_settingsgroupname); ++ ++ QString temptable="temp_table_" + src_tablename; ++ if ( ! does_table_exist(src_tablename)) ++ { ++ LOG(VB_GENERAL, LOG_NOTICE, QString("table does not exist: %1") ++ .arg(src_tablename)); ++ continue; ++ } ++ // create temp table for merging settings ++ create_temp_table(temptable, current_table ); ++ ++ //could copy in current settings here to account for new stuff ++ ++ ++ ++ // copy in stored settings ++ QString query_string; ++ if ( saved_settingsgroupname == "distro_default" ) ++ { //special case for restoring default settings ++ query_string = QString("REPLACE INTO %1 " ++ "(SELECT * from %2 WHERE %3)") ++ .arg(temptable) ++ .arg(src_tablename) ++ .arg(hostname_clause); ++ ++ query.prepare(query_string); ++ query.bindValue(":HOSTNAME", "distro_default" ); ++ query.exec(); ++ ++ // update hostname in temp table from distro_default ++ query_string = QString("UPDATE %1 set hostname = :HOSTNAME") ++ .arg(temptable); ++ ++ query.prepare(query_string); ++ query.bindValue(":HOSTNAME" , dest_hostname ); ++ query.exec(); ++ ++ } ++ else ++ { //normal use case ++ query_string = QString("REPLACE INTO %1 " ++ "(SELECT * from %2 WHERE %3)") ++ .arg(temptable) ++ .arg(src_tablename) ++ .arg(hostname_clause); ++ ++ query.prepare(query_string); ++ query.bindValue(":HOSTNAME",dest_hostname ); ++ query.exec(); ++ } ++ ++ //Remove current settings. ++ //Need to remove because the old table allows for duplicates ++ query_string = QString("DELETE FROM %1 WHERE " ++ "%2") ++ .arg(current_table) ++ .arg(hostname_clause); ++ ++ query.prepare(query_string); ++ query.bindValue(":HOSTNAME",dest_hostname); ++ query.exec(); ++ ++ // copy new settings from temp to current ++ query_string = QString("REPLACE INTO %1 " ++ "(SELECT * from %2)") ++ .arg(current_table) ++ .arg(temptable); ++ ++ query.prepare(query_string); ++ query.exec(); ++ // drop temptable ++ drop_temp_table(temptable); ++ } ++ } ++}; //end restore settings ++ ++void MythDB::change_hostname (QString old_hostname, QString new_hostname) ++{ ++ LOG(VB_GENERAL, LOG_NOTICE, QString("Changing hostname from %1 -> %2") ++ .arg(old_hostname) ++ .arg(new_hostname)); ++ ++ MSqlQuery query(MSqlQuery::InitCon()); ++ MSqlQuery sub_query(MSqlQuery::InitCon()); ++ query.prepare( "SHOW TABLES" ); ++ ++ if (query.exec() && query.isActive() && query.size() > 0) ++ { ++ while (query.next()) ++ { ++ QString table_name = query.value(0).toString(); ++ LOG(VB_GENERAL, LOG_NOTICE, QString("Scanning %1") ++ .arg(table_name)); ++ ++ // LOOP OVER TABLES, CHECK IF IT HAS A HOSTNAME FIELD ++ QString query_string=QString("SHOW COLUMNS from %1 " ++ "where field='hostname'") ++ .arg(table_name); ++ sub_query.prepare(query_string); ++ ++ if (sub_query.exec() && sub_query.size() > 0) ++ { //update hostname ++ LOG(VB_GENERAL, LOG_NOTICE, QString(" Updating hostname in: %1") ++ .arg(table_name)); ++ query_string = QString("UPDATE %1 SET hostname = :NEW_HOSTNAME " ++ "WHERE hostname = :OLD_HOSTNAME") ++ .arg(table_name); ++ sub_query.prepare(query_string); ++ sub_query.bindValue(":NEW_HOSTNAME" , new_hostname); ++ sub_query.bindValue(":OLD_HOSTNAME" , old_hostname); ++ sub_query.exec(); ++ } ++ } ++ } ++ ++ ++ ++ ++ ++ ++} ++ ++bool MythDB::settings_check(QString src_hostname, ++ QString saved_settingsgroupname) ++{ ++ int tempItem; ++ bool returncode = false ; ++ QString table="settings"; ++ ++ QString tablename = find_group_table_name(table, saved_settingsgroupname); ++ QString hostname_clause; ++ if ( src_hostname == "GLOBAL" ) ++ hostname_clause = "hostname IS NULL"; ++ else ++ hostname_clause ="hostname = :HOSTNAME"; ++ ++ if (does_table_exist (tablename)) ++ { ++ MSqlQuery query(MSqlQuery::InitCon()); ++ QString query_string = QString("SELECT COUNT(data) from %1 " ++ "WHERE %2") ++ .arg(tablename) ++ .arg(hostname_clause); ++ ++ query.prepare(query_string); ++ query.bindValue(":HOSTNAME" , src_hostname ); ++ ++ if (query.exec() && query.isActive() && query.size() > 0 ) ++ { ++ while (query.next()) ++ { ++ tempItem = query.value(0).toInt(); ++ if ( tempItem >= 1 ) ++ returncode = true; ++ else ++ { ++ LOG(VB_GENERAL, LOG_NOTICE, ++ QString("Group %1 does not contain" ++ " valid settings") ++ .arg(saved_settingsgroupname)); ++ } ++ } ++ } ++ } ++ else ++ LOG(VB_GENERAL, LOG_NOTICE, QString("Couldn't find table: %1") ++ .arg(tablename)); ++ return returncode; ++}; // end settings_check ++ ++void MythDB::import_settings(QMap vp_map, ++ QString table) ++{ ++ MSqlQuery query(MSqlQuery::InitCon()); ++ ++ //IMPORT SETTINGS TABLE ++ if (table.startsWith("settings")) ++ { ++ if ( table != "settings" ) ++ create_new_table(table,"settings"); ++ QString hostname = vp_map.value("hostname"); ++ QString value = vp_map.value("value"); ++ QString data = vp_map.value("data"); ++ ++ QString hostname_clause; ++ QVariant import_hostname = QVariant(QVariant::String); ++ ++ if ( hostname.isEmpty()) ++ hostname_clause = "hostname IS NULL"; ++ else ++ { ++ hostname_clause ="hostname = :HOSTNAME"; ++ import_hostname = hostname; ++ } ++ ++ QString query_string=QString("SELECT value, data, hostname " ++ "FROM %1 " ++ "WHERE %2 AND value = :VALUE " ++ "ORDER BY value") ++ .arg(table) ++ .arg(hostname_clause); ++ ++ query.prepare(query_string); ++ query.bindValue(":HOSTNAME", hostname); ++ query.bindValue(":VALUE", value); ++ ++ // if already exisiting records then update, otherwise insert ++ if (query.exec() && query.isActive()) ++ { ++ MSqlQuery sub_query(MSqlQuery::InitCon()); ++ if ( query.size() > 0 ) ++ { ++ query_string = QString("UPDATE " ++ "%1 " ++ "set data = :DATA " ++ "WHERE %2 AND " ++ "value = :VALUE ") ++ .arg(table) ++ .arg(hostname_clause); ++ ++ sub_query.prepare(query_string); ++ sub_query.bindValue(":HOSTNAME", import_hostname); ++ sub_query.bindValue(":VALUE", value); ++ sub_query.bindValue(":DATA", data); ++ sub_query.exec(); ++ } ++ else ++ { ++ query_string = QString("INSERT INTO " ++ " %1 " ++ "(value,data,hostname) " ++ "VALUES ( :VALUE , :DATA , :HOSTNAME)").arg(table); ++ ++ sub_query.prepare(query_string); ++ sub_query.bindValue(":HOSTNAME", import_hostname); ++ sub_query.bindValue(":VALUE", value); ++ sub_query.bindValue(":DATA", data); ++ sub_query.exec(); ++ } ++ } ++ } ++ //KEYBINDINGS TABLE ++ else if (table.startsWith("keybindings")) ++ { ++ if ( table != "keybindings" ) ++ create_new_table(table,"keybindings"); ++ QString hostname = vp_map.value("hostname"); ++ QString context = vp_map.value("context"); ++ QString action = vp_map.value("action"); ++ QString description = vp_map.value("description"); ++ QString keylist = vp_map.value("keylist"); ++ ++ QString query_string=QString("SELECT context,action,hostname " ++ "FROM %1 " ++ "WHERE hostname = :HOSTNAME AND " ++ "context = :CONTEXT " ++ "AND action = :ACTION ").arg(table); ++ query.prepare(query_string); ++ query.bindValue(":HOSTNAME", hostname); ++ query.bindValue(":CONTEXT", context); ++ query.bindValue(":ACTION", action); ++ ++ if (query.exec() && query.isActive()) ++ { ++ MSqlQuery sub_query(MSqlQuery::InitCon()); ++ if ( query.size() > 0 ) ++ { ++ query_string = QString("UPDATE " ++ " %1 " ++ "set keylist = :KEYLIST " ++ "WHERE hostname = :HOSTNAME AND " ++ "context = :CONTEXT " ++ "AND action = :ACTION ").arg(table); ++ ++ sub_query.prepare(query_string); ++ sub_query.bindValue(":HOSTNAME", hostname); ++ sub_query.bindValue(":KEYLIST", keylist); ++ sub_query.bindValue(":CONTEXT", context); ++ sub_query.bindValue(":ACTION", action); ++ sub_query.exec(); ++ } ++ else ++ { ++ query_string = QString("INSERT INTO " ++ " %1 " ++ " (context , action , description , keylist , hostname) " ++ " VALUES( " ++ " :CONTEXT ," ++ " :ACTION , " ++ " :DESCRIPTION , " ++ " :KEYLIST , " ++ " :HOSTNAME)").arg(table) ; ++ ++ sub_query.prepare(query_string); ++ sub_query.bindValue(":HOSTNAME", hostname); ++ sub_query.bindValue(":KEYLIST", keylist); ++ sub_query.bindValue(":CONTEXT", context); ++ sub_query.bindValue(":ACTION", action); ++ sub_query.bindValue(":DESCRIPTION", description); ++ sub_query.exec(); ++ } ++ } ++ } ++ //JUMP POINTS ++ else if (table.startsWith("jumppoints")) ++ { ++ if ( table != "jumppoints" ) ++ create_new_table(table,"jumppoints"); ++ QString hostname = vp_map.value("hostname"); ++ QString description = vp_map.value("description"); ++ QString destination = vp_map.value("destination"); ++ QString keylist = vp_map.value("keylist"); ++ ++ QString query_string=QString("SELECT destination, keylist " ++ "FROM %1 " ++ "WHERE hostname = :HOSTNAME AND " ++ "destination = :DESTINATION " ++ "AND keylist = :KEYLIST ").arg(table); ++ query.prepare(query_string); ++ query.bindValue(":HOSTNAME", hostname); ++ query.bindValue(":DESTINATION", destination); ++ query.bindValue(":KEYLIST", keylist); ++ ++ if (query.exec() && query.isActive()) ++ { ++ MSqlQuery sub_query(MSqlQuery::InitCon()); ++ if ( query.size() > 0 ) ++ { ++ query_string = QString("UPDATE " ++ " %1 " ++ "set keylist = :KEYLIST " ++ "WHERE hostname = :HOSTNAME AND " ++ "destination = :DESTINATION ").arg(table); ++ ++ sub_query.prepare(query_string); ++ sub_query.bindValue(":HOSTNAME", hostname); ++ sub_query.bindValue(":KEYLIST", keylist); ++ sub_query.bindValue(":DESTINATION", destination); ++ sub_query.exec(); ++ } ++ else ++ { ++ query_string = QString("INSERT INTO " ++ " %1 " ++ " (description , destination, keylist , hostname) " ++ " VALUES( " ++ " :DESCRIPTION ," ++ " :DESTINATION , " ++ " :KEYLIST , " ++ " :HOSTNAME)").arg(table) ; ++ ++ sub_query.prepare(query_string); ++ sub_query.bindValue(":HOSTNAME", hostname); ++ sub_query.bindValue(":KEYLIST", keylist); ++ sub_query.bindValue(":DESTINATION", destination); ++ sub_query.bindValue(":DESCRIPTION", description); ++ sub_query.exec(); ++ } ++ } ++ } ++}; //end import_settings ++ ++QMap > ++ MythDB::export_settings(QString src_hostname, ++ QString saved_settingsgroupname, ++ QStringList table_list, bool skip_host ) ++{ ++ QMap > result_set; ++ QStringList::Iterator it; ++ QString current_table; ++ int record_count = 0; ++ ++ if ( table_list.isEmpty() ) ++ { ++ table_list.append("settings"); ++ table_list.append("keybindings"); ++ table_list.append("jumppoints"); ++ } ++ ++ MSqlQuery query(MSqlQuery::InitCon()); ++ QString query_string; ++ ++ //loop over tablelist ++ for ( it = table_list.begin(); it != table_list.end(); ++it ) ++ { ++ current_table = *it ; ++ QString sub_sql; ++ QStringList fields; ++ QString field_query; ++ ++ QString table_name = find_group_table_name(current_table, ++ saved_settingsgroupname); ++ ++ QString hostname_clause; ++ if ( src_hostname == "GLOBAL" ) ++ hostname_clause = "hostname IS NULL"; ++ else ++ hostname_clause ="hostname = :HOSTNAME"; ++ ++ // find field names ++ query_string = QString("SHOW COLUMNS from %1").arg(table_name); ++ query.prepare(query_string); ++ ++ //build up field name vars ++ if (query.exec() && query.isActive() && query.size() > 0) ++ { ++ while (query.next()) ++ { ++ if (! field_query.isEmpty()) ++ field_query +=','; ++ QString tempItem = query.value(0).toString(); ++ fields.append(tempItem); ++ field_query += tempItem; ++ } ++ } ++ // when working with settings table skip HOST if skip_host is true ++ if ( current_table == "settings" && skip_host == true ) ++ { ++ QString skip_host_clause; ++ skip_host_clause = " VALUE not like 'HOST%' AND DATA not like 'HardwareProfile%UUID'" ; ++ query_string = QString("SELECT %1 FROM %2 WHERE %3 AND %4") ++ .arg(field_query) ++ .arg(table_name) ++ .arg(hostname_clause) ++ .arg(skip_host_clause); ++ ++ } ++ else ++ { ++ query_string = QString("SELECT %1 FROM %2 WHERE %3") ++ .arg(field_query) ++ .arg(table_name) ++ .arg(hostname_clause); ++ } ++ query.prepare(query_string); ++ query.bindValue(":HOSTNAME" , src_hostname); ++ ++ //looping over each record in the table query ++ if (query.exec() && query.isActive() && query.size() > 0) ++ { ++ while (query.next()) ++ { ++ //construct qmap of elements ++ //add table name ++ QMap value_pair; ++ value_pair["table"]=table_name; ++ ++ for ( int i=0 ; i < fields.size();i++ ) ++ { ++ QString tempvalue = fields[i]; ++ QString tempItem = query.value(i).toString(); ++ value_pair[tempvalue]=tempItem; ++ } ++ result_set[QString(record_count)] = value_pair; ++ record_count++; ++ } ++ } ++ ++ } // end table loop ++ return result_set; ++}; //end export_settings ++ ++ ++void MythDB::create_new_table (QString create_table_name,QString like_name) ++{ ++ if ( ! does_table_exist(create_table_name)) ++ { ++ MSqlQuery query(MSqlQuery::InitCon()); ++ QString query_string = QString("CREATE TABLE %1 like %2") ++ .arg(create_table_name) ++ .arg(like_name); ++ ++ query.prepare(query_string); ++ query.exec(); ++ } ++ else ++ LOG(VB_GENERAL, LOG_NOTICE, QString("Table is already present," ++ "will not create it: %1") ++ .arg(create_table_name)); ++}; ++ ++ ++void MythDB::drop_temp_table (QString table_name) ++{ ++ MSqlQuery query(MSqlQuery::InitCon()); ++ if (table_name == "settings" | table_name == "keybindings" | table_name == "jumppoints") ++ return; ++ QString query_string = QString("DROP TABLE %1").arg(table_name); ++ query.prepare(query_string); ++ query.exec(); ++ return; ++} ++ ++void MythDB::create_temp_table (QString create_table_name,QString like_name) ++{ ++ MSqlQuery query(MSqlQuery::InitCon()); ++ create_new_table(create_table_name,like_name); ++ QString query_string; ++ if ( like_name == "settings") ++ { ++ query_string = QString ("ALTER TABLE %1 ADD UNIQUE( value)") ++ .arg(create_table_name); ++ query.prepare(query_string); ++ query.exec(); ++ } ++ ++ query_string = QString("TRUNCATE %1").arg(create_table_name); ++ query.prepare(query_string); ++ query.exec(); ++ return; ++} ++ ++bool MythDB::does_table_exist(QString table_name) ++{ ++ bool table_exist = false; ++ QString full_table_name; ++ MSqlQuery query(MSqlQuery::InitCon()); ++ ++ query.prepare( "SHOW TABLES" ); ++ if (query.exec() && query.isActive() && query.size() > 0) ++ { ++ while (query.next()) ++ { ++ full_table_name = query.value(0).toString(); ++ if (table_name == full_table_name) ++ { ++ table_exist = true; ++ break; ++ } ++ } ++ } ++ return table_exist; ++}; ++ ++ ++QString MythDB::find_group_table_name(QString current_table, ++ QString saved_settingsgroupname) ++{ ++ QString table_name; ++ if ( saved_settingsgroupname.toLower() == "current" ) ++ table_name = current_table ; ++ else ++ table_name = current_table + "_" + saved_settingsgroupname ; ++ ++ return table_name; ++}; ++//END JM ADDED ++ + /** + * \brief Set a flag indicating we have successfully connected to the database + */ +diff --git a/mythtv/libs/libmythbase/mythdb.h b/mythtv/libs/libmythbase/mythdb.h +index ac2a8ec..f3689a5 100644 +--- a/mythtv/libs/libmythbase/mythdb.h ++++ b/mythtv/libs/libmythbase/mythdb.h +@@ -74,6 +74,49 @@ class MBASE_PUBLIC MythDB + + void WriteDelayedSettings(void); + ++ //JM ADDED ++ void savesettings_togroup(QString src_hostname, ++ QString saved_settingsgroupname ); ++ void deletesettings(QString delete_hostname, ++ QString saved_settingsgroupname); ++ ++ QMap list_settingsgroupname(); ++ ++ QMap diff_settingsgroupname(QString diff_hostname1, ++ QString diff_hostname2, ++ QStringList table_list); ++ ++ void clonesettings(QString src_hostname, ++ QString saved_settingsgroupname, ++ QStringList table_list, ++ bool is_full_clone = true, ++ QString dest_hostname=""); ++ ++ void restoresettings (QString dest_hostname, ++ QString saved_settingsgroupname, ++ QStringList table_list); ++ ++ void change_hostname (QString old_hostname, QString new_hostname); ++ bool settings_check (QString src_hostname, QString saved_settingsgroupname); ++ void import_settings(QMap vp_map, QString table); ++ ++ ++ QMap > export_settings( ++ QString src_hostname, ++ QString saved_settingsgroupname, ++ QStringList table_list, ++ bool skip_host = false); ++ ++ void create_new_table (QString create_table_name,QString like_name); ++ void drop_temp_table (QString table_name); ++ void create_temp_table (QString create_table_name,QString like_name); ++ bool does_table_exist(QString table_name); ++ QString find_group_table_name(QString current_table, ++ QString saved_settingsgroupname); ++ //END JM ADDED ++ ++ ++ + void SetHaveDBConnection(bool connected); + void SetHaveSchema(bool schema); + bool HaveSchema(void) const; +diff --git a/mythtv/programs/mythutil/commandlineparser.cpp b/mythtv/programs/mythutil/commandlineparser.cpp +index 902314d..d86b548 100644 +--- a/mythtv/programs/mythutil/commandlineparser.cpp ++++ b/mythtv/programs/mythutil/commandlineparser.cpp +@@ -144,6 +144,37 @@ void MythUtilCommandLineParser::LoadArguments(void) + << add("--print-notification-template", "printntemplate", false, + "Print the template to be sent to the frontend", "") + ->SetGroup("Messaging") ++ ++ //settingsutil.cpp ++ << add("--save-settings", "savesettings", false, ++ "Save current settings", "") ++ ->SetGroup("Settings") ++ << add("--delete-settings", "deletesettings", false, ++ "Delete current settings", "") ++ ->SetGroup("Settings") ++ << add("--restore-settings", "restoresettings", false, ++ "Restore settings from previous backup", "") ++ ->SetGroup("Settings") ++ << add("--list-groups", "listgroups", false, ++ "List hosts and groups of settings", "") ++ ->SetGroup("Settings") ++ << add("--copy-settings", "copysettings", false, ++ "Copy or Clone settings from one host to another", "") ++ ->SetGroup("Settings") ++ << add("--diff-settings", "diffsettings", false, ++ "Show settings that are different between two hosts", "") ++ ->SetGroup("Settings") ++ << add("--change-hostname", "changehostname", false, ++ "Change the hostname", "") ++ ->SetGroup("Settings") ++ << add("--import-settings", "importsettings", false, ++ "import settings", "") ++ ->SetRequiredChild("infile") ++ ++ << add("--export-settings", "exportsettings", false, ++ "export settings", "") ++ ->SetRequiredChild("outfile") ++ + + // musicmetautils.cpp + << add("--scanmusic", "scanmusic", false, +@@ -194,6 +225,59 @@ void MythUtilCommandLineParser::LoadArguments(void) + add("--type", "type", "type", "(optional) type of notification (normal, error, warning, check, busy", "") + ->SetChildOf("notification"); + ++ //settingsutils.cpp ++ add("--groupname", "groupname", "", "Group of settings name", "") ++ ->SetRequiredChildOf("savesettings") ++ ->SetRequiredChildOf("restoresettings") ++ ->SetRequiredChildOf("deletesettings") ++ ->SetChildOf("copysettings"); ++ ++ add("--hostname", "hostname", "", "System name to save/restore settings", "") ++ ->SetChildOf("savesettings") ++ ->SetChildOf("restoresettings") ++ ->SetChildOf("copysettings") ++ ->SetChildOf("deletesettings") ++ ->SetChildOf("exportsettings") ++ ->SetChildOf("importsettings"); ++ ++ add("--host_1", "host_1", "", "First host in compare list", "") ++ ->SetRequiredChildOf("diffsettings"); ++ ++ add("--host_2", "host_2", "", "Second host in compare list", "") ++ ->SetRequiredChildOf("diffsettings"); ++ ++ ++ add("--tablelist", "table_list", "", "List of tables to operate on " ++ "[keybindings,settings]", "") ++ ->SetChildOf("diffsettings") ++ ->SetChildOf("restoresettings") ++ ->SetChildOf("copysettings") ++ ->SetChildOf("exportsettings"); ++ ++ add("--clone", "fullclone", false, "Enable copy of all settings, " ++ "including those that are unique to each system.", "") ++ ->SetChildOf("copysettings"); ++ ++ ++ add("--old-host", "oldhost", "", "Hostname to change", "") ++ ->SetRequiredChildOf("changehostname"); ++ ++ add("--new-host", "newhost", "", "New hostname", "") ++ ->SetRequiredChildOf("changehostname") ++ ->SetRequiredChildOf("copysettings"); ++ ++ add("--format", "format", false, "Format output of differences", "") ++ ->SetChildOf("diffsettings"); ++ add("--distro-default", "distro-default", false, "Export settings for" ++ "import into the default table", "") ++ ->SetChildOf("exportsettings"); ++ add("--generic", "generic", false, "export settings without saving " ++ "the hostname", "") ++ ->SetChildOf("exportsettings"); ++ ++ ++ ++ + // Generic Options used by more than one utility + addRecording(); + addInFile(true); +diff --git a/mythtv/programs/mythutil/main.cpp b/mythtv/programs/mythutil/main.cpp +index 0bc49f2..faada3d 100644 +--- a/mythtv/programs/mythutil/main.cpp ++++ b/mythtv/programs/mythutil/main.cpp +@@ -26,6 +26,7 @@ + #include "musicmetautils.h" + #include "recordingutils.h" + #include "signalhandling.h" ++#include "settingsutils.h" + + + int main(int argc, char *argv[]) +@@ -110,6 +111,7 @@ + registerJobUtils(utilMap); + registerMarkupUtils(utilMap); + registerMessageUtils(utilMap); ++ registerSettingsUtils(utilMap); + registerMusicUtils(utilMap); + registerRecordingUtils(utilMap); + +diff --git a/mythtv/programs/mythutil/mythutil.pro b/mythtv/programs/mythutil/mythutil.pro +index f0ecbf5..f9472fc 100644 +--- a/mythtv/programs/mythutil/mythutil.pro ++++ b/mythtv/programs/mythutil/mythutil.pro +@@ -22,8 +22,10 @@ QMAKE_CLEAN += $(TARGET) + HEADERS += backendutils.h fileutils.h jobutils.h markuputils.h + HEADERS += messageutils.h mpegutils.h musicmetautils.h + HEADERS += recordingutils.h ++HEADERS += settingsutils.h + SOURCES += main.cpp mythutil.cpp commandlineparser.cpp + SOURCES += backendutils.cpp fileutils.cpp jobutils.cpp markuputils.cpp + SOURCES += messageutils.cpp mpegutils.cpp musicmetautils.cpp eitutils.cpp + SOURCES += recordingutils.cpp ++SOURCES += settingsutils.cpp + + mingw|win32-msvc*: LIBS += -lwinmm -lws2_32 +diff --git a/mythtv/programs/mythutil/settingsutils.cpp b/mythtv/programs/mythutil/settingsutils.cpp +new file mode 100644 +index 0000000..8fc7b0e +--- /dev/null ++++ b/mythtv/programs/mythutil/settingsutils.cpp +@@ -0,0 +1,586 @@ ++// C++ includes ++#include ++using namespace std; ++ ++//QT includes ++#include ++#include ++#include ++ ++// libmyth* includes ++#include "compat.h" ++#include "exitcodes.h" ++#include "mythlogging.h" ++#include "mythcontext.h" ++ ++ ++#include "settingsutils.h" ++ ++ ++static int SaveSettings(const MythUtilCommandLineParser &cmdline) ++{ ++ QString src_hostname; ++ QString groupname; ++ ++ if (cmdline.toBool("groupname")) ++ groupname = cmdline.toString("groupname"); ++ ++ if (cmdline.toBool("hostname")) ++ src_hostname = cmdline.toString("hostname"); ++ else ++ src_hostname = gCoreContext->GetHostName(); ++ ++ gCoreContext->savesettings_togroup(src_hostname,groupname); ++ return GENERIC_EXIT_OK; ++} ++ ++static int DeleteSettings(const MythUtilCommandLineParser &cmdline) ++{ ++ ++ QString delete_hostname; ++ QString groupname; ++ ++ if (cmdline.toBool("groupname")) ++ groupname = cmdline.toString("groupname"); ++ ++ if (cmdline.toBool("hostname")) ++ delete_hostname = cmdline.toString("hostname"); ++ else ++ delete_hostname = gCoreContext->GetHostName(); ++ ++ ++ gCoreContext->deletesettings(delete_hostname,groupname); ++ ++ return GENERIC_EXIT_OK; ++} ++ ++ ++static int RestoreSettings(const MythUtilCommandLineParser &cmdline) ++{ ++ QString dest_hostname; ++ QString groupname; ++ QString tablestring; ++ QStringList table_list; ++ ++ if (cmdline.toBool("groupname")) ++ groupname = cmdline.toString("groupname"); ++ ++ ++ if (cmdline.toBool("hostname")) ++ dest_hostname = cmdline.toString("hostname"); ++ else ++ dest_hostname = gCoreContext->GetHostName(); ++ ++ if (cmdline.toBool("table_list")) ++ { ++ tablestring = QString(cmdline.toString("table_list")); ++ table_list = tablestring.split(",", QString::SkipEmptyParts); ++ } ++ ++ gCoreContext->restoresettings(dest_hostname, ++ groupname, ++ table_list); ++ ++ return GENERIC_EXIT_OK; ++} ++ ++ ++static int CopySettings(const MythUtilCommandLineParser &cmdline) ++{ ++ QString src_hostname; ++ QString groupname; ++ QString tablestring; ++ QStringList table_list; ++ bool is_full_clone; ++ QString dest_hostname; ++ ++ if (cmdline.toBool("groupname")) ++ groupname = cmdline.toString("groupname"); ++ else ++ groupname = "Current"; ++ ++ if (cmdline.toBool("hostname")) ++ src_hostname = cmdline.toString("hostname"); ++ else ++ src_hostname = gCoreContext->GetHostName(); ++ ++ if (cmdline.toBool("newhost")) ++ dest_hostname = cmdline.toString("newhost"); ++ ++ if (cmdline.toBool("table_list")) ++ { ++ tablestring = QString(cmdline.toString("table_list")); ++ table_list = tablestring.split(",", QString::SkipEmptyParts); ++ } ++ ++ if (cmdline.toBool("fullclone")) ++ is_full_clone = true; ++ else ++ is_full_clone = false; ++ ++ gCoreContext->clonesettings(src_hostname, ++ groupname, ++ table_list, ++ is_full_clone, ++ dest_hostname); ++ ++ return GENERIC_EXIT_OK; ++} ++ ++void print_out_diff_formated(QMap resultset) ++{ ++ QString settings_header; ++ QString keybindings_header; ++ QString tempString; ++ QString tempItem; ++ QString dashline_settings; ++ QString dashline_key; ++ QStringList tempList; ++ ++ QString host_1; ++ QString host_2; ++ QString data_1; ++ QString data_2; ++ QString value; ++ QString context; ++ QString action; ++ ++ int value_width = 35; ++ int data_width = 40; ++ ++ int context_width = 22; ++ int action_width = 22; ++ int key_width = 35; ++ ++ dashline_key = (tempString.fill('-', 133)); ++ dashline_settings = (tempString.fill('-', 130)); ++ ++ QMap::iterator i; ++ ++ ++ for (i = resultset.begin(); i != resultset.end(); ++i) ++ { ++ cout << endl< resultset; ++ QString diff_hostname1; ++ QString diff_hostname2; ++ QStringList table_list; ++ bool format_results = false; ++ QMap::iterator i; ++ ++ if (cmdline.toBool("host_1")) ++ diff_hostname1 = cmdline.toString("host_1"); ++ if (cmdline.toBool("host_2")) ++ diff_hostname2 = cmdline.toString("host_2"); ++ ++ if (cmdline.toBool("table_list")) ++ { ++ QString tablestring = QString(cmdline.toString("table_list")); ++ table_list = tablestring.split(",", QString::SkipEmptyParts); ++ } ++ ++ if (cmdline.toBool("format")) ++ format_results = true; ++ ++ resultset = gCoreContext->diff_settingsgroupname(diff_hostname1, ++ diff_hostname2, ++ table_list); ++ if (resultset.isEmpty()) ++ cout << "No differences found" << endl; ++ else ++ { ++ if (format_results) ++ print_out_diff_formated(resultset); ++ else ++ { ++ for (i = resultset.begin(); i != resultset.end(); ++i) ++ { ++ cout << i.key().toLocal8Bit().constData() << " : \t" << endl;; ++ for (int y = 0; y < i.value().size(); ++y) ++ cout << i.value().at(y).toLocal8Bit().constData()< resultset; ++ resultset = gCoreContext->list_settingsgroupname(); ++ QMap::iterator i; ++ cout << endl; ++ for (i = resultset.begin(); i != resultset.end(); ++i) ++ { ++ cout << i.key().toLocal8Bit().constData() << " : \t"; ++ for (int y = 0; y < i.value().size(); ++y) ++ cout << i.value().at(y).toLocal8Bit().constData()<<" " ; ++ cout << endl; ++ } ++ return GENERIC_EXIT_OK; ++}; ++ ++static int ImportSettings(const MythUtilCommandLineParser &cmdline) ++{ ++ ++ if (cmdline.toString("infile").isEmpty()) ++ { ++ LOG(VB_STDIO|VB_FLUSH, LOG_ERR, "Missing --infile option\n"); ++ return GENERIC_EXIT_INVALID_CMDLINE; ++ } ++ QString import_hostname; ++ bool change_name = false; ++ if (cmdline.toBool("hostname")) ++ { ++ change_name = true; ++ import_hostname = cmdline.toString("hostname"); ++ } ++ QString import_filename = cmdline.toString("infile"); ++ QFile myFile(import_filename); ++ ++ QDomDocument doc( "exported_xml" ); ++ doc.setContent( &myFile ); ++ ++ QDomElement docElement = doc.documentElement(); ++ QDomElement record_element; ++ ++ if ( docElement.nodeName() != "exported_xml" ) ++ { ++ cout << "not a valid exported xml file" << endl; ++ return 1; ++ } ++ ++ QString out_string = "Importing records, please be patient"; ++ cout << out_string.toLocal8Bit().constData() << endl; ++ //Gives list of records in the file + count ++ QDomNodeList nodeList = docElement.childNodes(); ++ int total_records = nodeList.count(); ++ out_string = QString("\nFound %1 records \n").arg(total_records); ++ cout << out_string.toLocal8Bit().constData() << endl; ++ LOG(VB_STDIO|VB_FLUSH, LOG_ERR, out_string); ++ ++ for(QDomNode n = docElement.firstChild(); !n.isNull(); n = n.nextSibling()) ++ { ++ QString table_name=QString(); ++ QMap value_pair_map ; ++ ++ //find table name for this record ++ QDomNode tablenode=n.namedItem("table"); ++ record_element = tablenode.toElement(); ++ table_name = record_element.text(); ++ ++ //loop over childern of n and convert to element ++ for(QDomNode subn = n.firstChild(); ++ !subn.isNull(); ++ subn = subn.nextSibling()) ++ { ++ record_element = subn.toElement(); ++ if ( record_element.nodeName() == "table" ) ++ continue; ++ if ( change_name && record_element.nodeName() == "hostname" ) ++ value_pair_map[record_element.nodeName()] = import_hostname; ++ else ++ value_pair_map[record_element.nodeName()] = record_element.text(); ++ } ++ if (import_filename.endsWith("syssettings.xml")) ++ { ++ if ( value_pair_map["value"] == "BackendServerIP") ++ { ++ out_string = "sysettings, ignoring backendserver ip record"; ++ cout << out_string.toLocal8Bit().constData() << endl; ++ } ++ else ++ gCoreContext->import_settings(value_pair_map,table_name); ++ } ++ else ++ //perform insert ++ gCoreContext->import_settings(value_pair_map,table_name); ++ } ++ return GENERIC_EXIT_OK; ++}; //end ImportSettings ++ ++ ++static int ExportSettings(const MythUtilCommandLineParser &cmdline) ++{ ++ QMap > records; ++ QString src_hostname; ++ QString groupname; ++ QStringList table_list; ++ QString tablestring; ++ bool distro_default = false; ++ bool generic = false; ++ bool skip_host = false; ++ ++ ++ ++ QDomDocument doc("mythutils_exported_settings"); ++ ++ if (cmdline.toBool("groupname")) ++ groupname = cmdline.toString("groupname"); ++ else ++ groupname = "current"; ++ ++ if (cmdline.toBool("hostname")) ++ src_hostname = cmdline.toString("hostname"); ++ else ++ src_hostname = gCoreContext->GetHostName(); ++ ++ if (cmdline.toBool("distro-default")) ++ { ++ distro_default = true; ++ skip_host = true; ++ } ++ if (cmdline.toBool("generic")) ++ { ++ generic = true; ++ //skip_host = true; ++ } ++ if (cmdline.toBool("table_list")) ++ { ++ tablestring = QString(cmdline.toString("table_list")); ++ table_list = tablestring.split(",", QString::SkipEmptyParts); ++ } ++ else ++ table_list << "settings" <<"keybindings" <<"jumppoints" ; ++ ++ if (cmdline.toString("outfile").isEmpty()) ++ { ++ LOG(VB_STDIO|VB_FLUSH, LOG_ERR, "Missing --outfile option\n"); ++ return GENERIC_EXIT_INVALID_CMDLINE; ++ } ++ ++ QString export_filename = cmdline.toString("outfile"); ++ ++ records = gCoreContext->export_settings(src_hostname,groupname, ++ table_list, skip_host); ++ ++ QDomElement exported_xml = doc.createElement("exported_xml"); ++ doc.appendChild(exported_xml); ++ ++ QMap record_count; ++ QMap >::iterator i; ++ for (i = records.begin(); i != records.end(); ++i ) ++ { ++ QDomElement record = doc.createElement("record"); ++ exported_xml.appendChild(record); ++ ++ //loop over all values in the record ++ QMap value_pair = i.value(); ++ QMap::iterator y; ++ //because we don't know the name of the key, we loop over it ++ for (y = value_pair.begin(); y != value_pair.end(); ++y) ++ { ++ //add key/pair to xml document ++ QDomElement tag = doc.createElement(y.key()); ++ record.appendChild(tag); ++ QDomText t; ++ if ( distro_default == true ) ++ { // If exporting distro_default then change hostname + table ++ if ( y.key() == "hostname" ) ++ { //check for global values here, empty value means global ++ if ( y.value().isEmpty() ) ++ t = doc.createTextNode(y.value()); ++ else ++ t = doc.createTextNode("distro_default"); ++ } ++ else if ( y.key() == "table") ++ t = doc.createTextNode(y.value()+"_distro_default"); ++ else ++ t = doc.createTextNode(y.value()); ++ } ++ ++ else if ( generic == true ) ++ { // If exporting generic then change hostname ++ if ( y.key() == "hostname" ) ++ { //check for global values here, empty value means global ++ if ( y.value().isEmpty() ) ++ t = doc.createTextNode(y.value()); ++ else ++ t = doc.createTextNode("REPLACE_ME"); ++ } ++ else ++ t = doc.createTextNode(y.value()); ++ } ++ else ++ t = doc.createTextNode(y.value()); ++ ++ tag.appendChild(t); ++ //create record counts ++ if ( y.key() == "table" ) ++ { ++ if ( record_count.contains( y.value()) ) ++ { ++ int record_num = record_count[y.value()]; ++ record_count[y.value()] = ++record_num; ++ } ++ else ++ record_count[y.value()] = 1; ++ } ++ } ++ } ++ QFile file( export_filename ); ++ ++ if( !file.open(QIODevice::WriteOnly) ) ++ return -1; ++ ++ QTextStream ts( &file ); ++ ts << doc.toString(); ++ file.close(); ++ QMap::iterator rc_it; ++ for ( rc_it = record_count.begin(); rc_it != record_count.end(); ++rc_it) ++ { ++ QString table = rc_it.key(); ++ int rc_count = rc_it.value(); ++ QString out_string = QString ("Exported table %1: %2 records") ++ .arg(table) ++ .arg(rc_count); ++ cout << out_string.toLocal8Bit().constData() << endl; ++ } ++ return GENERIC_EXIT_OK; ++}; // end export_settings ++ ++ ++static int ChangeHostname(const MythUtilCommandLineParser &cmdline) ++{ ++ ++ QString old_hostname; ++ QString new_hostname; ++ ++ ++ if (cmdline.toBool("oldhost")) ++ old_hostname = cmdline.toString("oldhost"); ++ ++ if (cmdline.toBool("newhost")) ++ new_hostname = cmdline.toString("newhost"); ++ ++ if (old_hostname.isEmpty()) ++ { ++ LOG(VB_STDIO|VB_FLUSH, LOG_ERR, "Missing or empty --old-host option\n"); ++ return GENERIC_EXIT_INVALID_CMDLINE; ++ } ++ ++ if (new_hostname.isEmpty()) ++ { ++ LOG(VB_STDIO|VB_FLUSH, LOG_ERR, "Missing or empty --new-host option\n"); ++ return GENERIC_EXIT_INVALID_CMDLINE; ++ } ++ ++ gCoreContext->change_hostname(old_hostname, new_hostname); ++ ++ return GENERIC_EXIT_OK; ++}; //end ChangeHostname ++ ++void registerSettingsUtils(UtilMap &utilMap) ++{ ++ utilMap["savesettings"] = &SaveSettings; ++ utilMap["deletesettings"] = &DeleteSettings; ++ utilMap["restoresettings"] = &RestoreSettings; ++ utilMap["copysettings"] = &CopySettings; ++ utilMap["diffsettings"] = &DiffSettings; ++ utilMap["listgroups"] = &ListGroups; ++ utilMap["importsettings"] = &ImportSettings; ++ utilMap["exportsettings"] = &ExportSettings; ++ utilMap["changehostname"] = &ChangeHostname; ++} ++ ++/* vim: set expandtab tabstop=4 shiftwidth=4: */ +\ No newline at end of file +diff --git a/mythtv/programs/mythutil/settingsutils.h b/mythtv/programs/mythutil/settingsutils.h +new file mode 100644 +index 0000000..413496c +--- /dev/null ++++ b/mythtv/programs/mythutil/settingsutils.h +@@ -0,0 +1,3 @@ ++#include "mythutil.h" ++ ++void registerSettingsUtils(UtilMap &utilMap); diff --git a/abs/core/mythtv/stable-30/mythtv/mythfrontend_en_us.ts_Title_Case.patch b/abs/core/mythtv/stable-30/mythtv/mythfrontend_en_us.ts_Title_Case.patch new file mode 100644 index 0000000..2b57dc1 --- /dev/null +++ b/abs/core/mythtv/stable-30/mythtv/mythfrontend_en_us.ts_Title_Case.patch @@ -0,0 +1,24476 @@ +--- src/mythtv/i18n/mythfrontend_en_us.ts.orig 2018-10-12 15:14:32.718932846 +0000 ++++ src/mythtv/i18n/mythfrontend_en_us.ts 2018-10-12 15:15:18.343034045 +0000 +@@ -573,7 +573,7 @@ + + + Adults only +- Adults only ++ Adults Only + + + +@@ -624,7 +624,7 @@ + + + Bus./financial +- Bus./financial ++ Business/Financial + + + +@@ -634,17 +634,17 @@ + + + Children-special +- Children-special ++ Children-Special + + + + Children-news +- Children-news ++ Children-News + + + + Children-music +- Children-music ++ Children-Music + + + +@@ -654,7 +654,7 @@ + + + Comedy-drama +- Comedy-drama ++ Comedy-Drama + + + +@@ -670,7 +670,7 @@ + + + Crime drama +- Crime drama ++ Crime Drama + + + +@@ -695,7 +695,7 @@ + + + Game show +- Game show ++ Game Show + + + +@@ -705,7 +705,7 @@ + + + Historical drama +- Historical drama ++ Historical Drama + + + +@@ -715,32 +715,32 @@ + + + Holiday-children +- Holiday-children ++ Holiday-Children + + + + Holiday-children special +- Holiday-children special ++ Holiday-Children Special + + + + Holiday special +- Holiday special ++ Holiday Special + + + + Horse racing +- Horse racing ++ Horse Racing + + + + House/garden +- House/garden ++ House/Garden + + + + How-to +- How-to ++ How-To + + + +@@ -765,12 +765,12 @@ + + + Music special +- Music special ++ Music Special + + + + Music talk +- Music talk ++ Music Talk + + + +@@ -780,7 +780,7 @@ + + + Musical comedy +- Musical comedy ++ Musical Comedy + + + +@@ -795,7 +795,7 @@ + + + Public affairs +- Public affairs ++ Public Affairs + + + +@@ -810,7 +810,7 @@ + + + Romance-comedy +- Romance-comedy ++ Romance-Comedy + + + +@@ -825,12 +825,12 @@ + + + Science fiction +- Science fiction ++ Science Fiction + + + + Self improvement +- Self improvement ++ Self Improvement + + + +@@ -860,12 +860,12 @@ + + + Sports non-event +- Sports non-event ++ Sports Non-Event + + + + Sports talk +- Sports talk ++ Sports Talk + + + +@@ -875,7 +875,7 @@ + + + Track/field +- Track/field ++ Track/Field + + + +@@ -920,7 +920,7 @@ + + + Arts/crafts +- Arts/crafts ++ Arts/Crafts + + + +@@ -930,12 +930,12 @@ + + + Auto racing +- Auto racing ++ Auto Racing + + + + Air racing +- Air racing ++ Air Racing + + + +@@ -945,7 +945,7 @@ + + + Bicycle racing +- Bicycle racing ++ Bicycle Racing + + + +@@ -965,12 +965,12 @@ + + + Dog show +- Dog show ++ Dog Show + + + + Drag racing +- Drag racing ++ Drag Racing + + + +@@ -986,12 +986,12 @@ + + + Field hockey +- Field hockey ++ Field Hockey + + + + Gay/lesbian +- Gay/lesbian ++ Gay/Lesbian + + + +@@ -1001,7 +1001,7 @@ + + + Home improvement +- Home improvement ++ Home Improvement + + + +@@ -1011,7 +1011,7 @@ + + + Hydroplane racing +- Hydroplane racing ++ Hydroplane Racing + + + +@@ -1021,7 +1021,7 @@ + + + Motorcycle racing +- Motorcycle racing ++ Motorcycle Racing + + + +@@ -1047,7 +1047,7 @@ + + + Pro wrestling +- Pro wrestling ++ Pro Wrestling + + + +@@ -1092,7 +1092,7 @@ + + + Card games +- Card games ++ Card Games + + + +@@ -1107,12 +1107,12 @@ + + + Mixed martial arts +- Mixed martial arts ++ Mixed Martial Arts + + + + Action sports +- Action sports ++ Action Sports + + + +@@ -1144,7 +1144,7 @@ + + + Soap/melodrama/folkloric +- Soap/melodrama/folkloric ++ Soap/Melodrama/Folkloric + + + +@@ -1160,12 +1160,12 @@ + + + News/weather report +- News/weather report ++ News/Weather Report + + + + News magazine +- News magazine ++ News Magazine + + + +@@ -1380,7 +1380,7 @@ + + + Nature/animals/Environment +- Nature/animals/Environment ++ Nature/Animals/Environment + + + +@@ -1440,7 +1440,7 @@ + + + Advertizement/Shopping +- Advertizement/Shopping ++ Advertisement/Shopping + + + +@@ -1471,124 +1471,132 @@ + + (ChannelSettings) + +- ++ + [Not Selected] + [Not Selected] + + +- ++ + TV Format + TV Format + + +- ++ + If this channel uses a format other than TV Format in the General Backend Setup screen, set it here. + If this channel uses a format other than TV Format in the General Backend Setup screen, set it here. + + +- ++ + DataDirect Time Offset + DataDirect Time Offset + + +- ++ + Offset (in minutes) to apply to the program guide data during import. This can be used when the listings for a particular channel are in a different time zone. (Works for DataDirect listings only.) +- Offset (in minutes) to apply to the program guide data during import. This can be used when the listings for a particular channel are in a different time zone. (Works for DataDirect listings only.) ++ Offset (in minutes) to apply to the program guide data during import. This can be used when the listings for a particular channel are in a different time zone. (Works for DataDirect listings only.) + + +- ++ + Priority + Priority + + +- ++ + Number of priority points to be added to any recording on this channel during scheduling. Use a positive number as the priority if you want this to be a preferred channel, a negative one to depreciate this channel. + Number of priority points to be added to any recording on this channel during scheduling. Use a positive number as the priority if you want this to be a preferred channel, a negative one to depreciate this channel. + + +- ++ + Icon + Icon + + +- ++ + Image file to use as the icon for this channel on various MythTV displays. + Image file to use as the icon for this channel on various MythTV displays. + + +- ++ + Video filters +- Video filters ++ Video Filters + + +- ++ + Filters to be used when recording from this channel. Not used with hardware encoding cards. +- Filters to be used when recording from this channel. Not used with hardware encoding cards. ++ Filters to be used when recording from this channel. Not used with hardware encoding cards. + + +- ++ + Playback filters +- Playback filters ++ Playback Filters + + +- ++ + Filters to be used when recordings from this channel are viewed. Start with a plus to append to the global playback filters. + Filters to be used when recordings from this channel are viewed. Start with a plus to append to the global playback filters. + + +- ++ + ID used by listing services to get an exact correspondence between a channel in your line-up and a channel in their database. Normally this is set automatically when 'mythfilldatabase' is run. + ID used by listing services to get an exact correspondence between a channel in your line-up and a channel in their database. Normally this is set automatically when 'mythfilldatabase' is run. + + +- ++ + ServiceID +- ServiceID ++ Service ID + + +- ++ + Service ID (Program Number) of desired channel within the transport stream. If there is only one channel, then setting this to anything will still find it. + Service ID (Program Number) of desired channel within the transport stream. If there is only one channel, then setting this to anything will still find it. + + +- ++ + Commercial Detection Method + Commercial Detection Method + + +- ++ + Changes the method of commercial detection used for recordings on this channel or skips detection by marking the channel as Commercial Free. + Changes the method of commercial detection used for recordings on this channel or skips detection by marking the channel as Commercial Free. + + +- ++ + Visible + Visible + + +- ++ + If enabled, the channel will be visible in the EPG. + If enabled, the channel will be visible in the EPG. + + +- ++ + Use on air guide +- Use on air guide ++ Use On Air Guide + + +- ++ + If enabled, guide information for this channel will be updated using 'Over-the-Air' program listings. + If enabled, guide information for this channel will be updated using 'Over-the-Air' program listings. + + +- ++ ++ Freq/Channel ++ Frequency/Channel ++ ++ ++ ++ Depending on the tuner type, specify either the exact frequency (in kHz) or a valid channel number that will be understood by your tuners. ++ Depending on the tuner type, specify either the exact frequency (in kHz) or a valid channel number that will be understood by your tuners. ++ ++ + Frequency or Channel +- Frequency or Channel ++ Frequency or Channel + + +- + Specify either the exact frequency (in kHz) or a valid channel for your 'TV Format'. +- Specify either the exact frequency (in kHz) or a valid channel for your 'TV Format'. ++ Specify either the exact frequency (in kHz) or a valid channel for your 'TV Format'. + + + +@@ -1601,22 +1609,22 @@ + Value to be added to your desired frequency (in kHz) for 'fine tuning'. + + +- ++ + Channel Options - Common + Channel Options - Common + + +- ++ + Channel Options - Filters + Channel Options - Filters + + +- ++ + Channel Options - Video4Linux + Channel Options - Video4Linux + + +- ++ + Channel Options - Raw Transport Stream + Channel Options - Raw Transport Stream + +@@ -1624,39 +1632,37 @@ + + (Common) + +- + Hostname +- Hostname ++ Hostname + + +- + Port + TCP/IP port +- Port ++ Port ++ ++ ++ ++ Database name ++ Database Name + + +- ++ + User + User + + +- + Password +- Password ++ Password + + +- +- +- ++ + OK + OK + + +- +- +- +- +- ++ ++ ++ + Cancel + Cancel + +@@ -1699,7 +1705,7 @@ + + + +- ++ + %n second(s) + + %n second +@@ -1724,31 +1730,29 @@ + No + + +- +- +- +- ++ ++ ++ + Cancel All + Cancel All + + + +- +- ++ + Error + Error + + + +- +- ++ ++ + Auto + Automatic + Auto + + + +- ++ + Channel Name + Channel Name + +@@ -1758,65 +1762,70 @@ + Channel Number + + +- ++ ++ This is the number by which the channel is known to MythTV. ++ This is the number by which the channel is known to MythTV. ++ ++ ++ + Video Source + Video Source + + +- ++ + Callsign + Callsign + + +- +- +- ++ ++ ++ + Default + Default + + +- ++ + XMLTV ID + XMLTV ID + + +- ++ + Contrast + Contrast + + +- ++ + Brightness + Brightness + + +- ++ + Color + Color + + +- ++ + Hue + Hue + + +- ++ + Signal To Noise +- Signal To Noise ++ Signal to Noise + + +- ++ + + Signal Lock + Signal Lock + + +- ++ + Signal Power + Signal Power + + +- ++ + Script Status + Script Status + +@@ -1842,81 +1851,75 @@ + MythTV + + +- +- +- + Warning +- Warning ++ Warning + + +- +- ++ ++ + Stereo + Stereo + + +- ++ + 5.1 + 5.1 + + +- ++ + 7.1 + 7.1 + + +- ++ + Stop + Stop + + +- ++ + Off + Off + + +- + Edit +- Edit ++ Edit + + +- +- + Delete +- Delete ++ Delete + + +- ++ + Qt + Qt + + +- ++ + OpenGL 2 + OpenGL 2 + + +- ++ + OpenGL 1 + OpenGL 1 + + +- ++ + Direct3D + Direct3D + + +- ++ + MythFrontend + MythFrontend + + +- ++ + All tuners are currently busy. + All tuners are currently busy. + + +- ++ + There are no configured tuners. + There are no configured tuners. + +@@ -2061,7 +2064,7 @@ + + + +- ++ + Modulation + Modulation + +@@ -2076,17 +2079,17 @@ + Modulation (Default: Auto) + + +- ++ + Constellation + Constellation + + +- ++ + Constellation (Default: Auto) + Constellation (Default: Auto) + + +- ++ + Modulation, QPSK, 8PSK, QAM-16. Most DVB-S transponders use QPSK, while DVB-S2 use 8PSK. QAM-16 is not available for DVB-S2 transports. + Modulation, QPSK, 8PSK, QAM-16. Most DVB-S transponders use QPSK, while DVB-S2 use 8PSK. QAM-16 is not available for DVB-S2 transports. + +@@ -2094,32 +2097,32 @@ + + (MythFrontendMain) + +- ++ + The ScreenSetupWizard cannot be used while mythfrontend is operating in windowed mode. + The ScreenSetupWizard cannot be used while mythfrontend is operating in windowed mode. + + +- ++ + Loading videos ... +- Loading videos ... ++ Loading Videos... + + +- ++ + Failed to open + '%1' in %2 + Check if the video exists + Failed to open + '%1' in %2 +-Check if the video exists ++Check if the video exists. + + +- +- ++ ++ + DVD Failure + DVD Failure + + +- ++ + MythTV Frontend + Main window title + MythTV Frontend +@@ -2180,7 +2183,7 @@ + + + MusicArt +- MusicArt ++ Music Art + + + +@@ -2215,48 +2218,48 @@ + + (mythcommflag) + +- ++ + Building Head Start Buffer + Building Head Start Buffer + + +- ++ + Building Logo Detection Buffer + Building Logo Detection Buffer + + +- ++ + Searching for Logo + Searching for Logo + + +- +- +- ++ ++ ++ + %1% Completed @ %2 fps. +- %1% Completed @ %2 fps. ++ %1% Completed @ %2 fps + + +- +- +- ++ ++ ++ + %1 Frames Completed @ %2 fps. +- %1 Frames Completed @ %2 fps. ++ %1 Frames Completed @ %2 fps + + +- ++ + Performing Logo Identification + Performing Logo Identification + + +- ++ + Waiting to pass preroll + head start +- Waiting to pass preroll + head start ++ Waiting to Pass Preroll + Head Start + + +- ++ + Waiting for recording to finish +- Waiting for recording to finish ++ Waiting for Recording to Finish + + + +@@ -2274,7 +2277,7 @@ + + Failed with exit status %1 + Job status +- Failed with exit status %1 ++ Failed with Exit Status %1 + + + +@@ -2282,347 +2285,357 @@ + %n commercial break(s) + Job status + +- %n commercial break +- %n commercial breaks ++ %n Commercial Break ++ %n Commercial Breaks + + + + + ASIConfigurationGroup + +- ++ + Not a valid DVEO ASI card + Not a valid DVEO ASI card + + +- ++ + Valid DVEO ASI card +- Valid DVEO ASI card ++ Valid DVEO ASI Card + + + + AlbumArtImages + +- ++ + Scanning for music album art... +- Scanning for music album art... ++ Scanning for Music Album Art... + + +- ++ + Unknown + Unknown + + +- ++ + Front Cover + Front Cover + + +- ++ + Back Cover + Back Cover + + +- ++ + CD + CD + + +- ++ + Inlay + Inlay + + +- ++ + Artist + Artist + + +- ++ + unknown +- unknown ++ Unknown + + +- +- ++ ++ + front +- front ++ Front + + +- +- ++ ++ + back +- back ++ Back + + +- +- ++ ++ + cd +- cd ++ CD + + +- +- ++ ++ + inlay +- inlay ++ Inlay + + +- ++ + artist +- artist ++ Artist + + +- ++ + cover +- cover ++ Cover + + + + AllMusic + +- ++ + CD -- none +- CD -- none ++ CD - None + + + + AppearanceSettings + +- ++ + Menu theme +- Menu theme ++ Menu Theme + + +- ++ + All + All + + +- ++ + Display on screen +- Display on screen ++ Display On Screen + + +- ++ + Run on the specified screen or spanning all screens. + Run on the specified screen or spanning all screens. + + +- ++ + Monitor aspect ratio +- Monitor aspect ratio ++ Monitor Aspect Ratio + + +- ++ + 16:9 + 16:9 + + +- ++ + 16:10 + 16:10 + + +- ++ + 4:3 + 4:3 + + +- ++ + The aspect ratio of a Xinerama display cannot be queried from the display, so it must be specified. + The aspect ratio of a Xinerama display cannot be queried from the display, so it must be specified. + + +- ++ + GUI width (pixels) +- GUI width (pixels) ++ GUI Width (pixels) + + +- ++ + The width of the GUI. Do not make the GUI wider than your actual screen resolution. Set to 0 to automatically scale to fullscreen. + The width of the GUI. Do not make the GUI wider than your actual screen resolution. Set to 0 to automatically scale to fullscreen. + + +- ++ + GUI height (pixels) +- GUI height (pixels) ++ GUI Height (pixels) + + +- ++ + The height of the GUI. Do not make the GUI taller than your actual screen resolution. Set to 0 to automatically scale to fullscreen. + The height of the GUI. Do not make the GUI taller than your actual screen resolution. Set to 0 to automatically scale to fullscreen. + + +- ++ + GUI X offset +- GUI X offset ++ GUI X Offset + + +- ++ + The horizontal offset where the GUI will be displayed. May only work if run in a window. + The horizontal offset where the GUI will be displayed. May only work if run in a window. + + +- ++ + GUI Y offset +- GUI Y offset ++ GUI Y Offset + + +- ++ + The vertical offset where the GUI will be displayed. + The vertical offset where the GUI will be displayed. + + +- ++ + Display size - width +- Display size - width ++ Display Size - Width + + +- ++ + Horizontal size of the monitor or TV. Used to calculate the actual aspect ratio of the display. This will override the DisplaySize from the system. + Horizontal size of the monitor or TV. Used to calculate the actual aspect ratio of the display. This will override the DisplaySize from the system. + + +- ++ + Display size - height +- Display size - height ++ Display Size - Height + + +- ++ + Vertical size of the monitor or TV. Used to calculate the actual aspect ratio of the display. This will override the DisplaySize from the system. + Vertical size of the monitor or TV. Used to calculate the actual aspect ratio of the display. This will override the DisplaySize from the system. + + +- ++ + Use GUI size for TV playback +- Use GUI size for TV playback ++ Use GUI Size for TV Playback + + +- ++ + If enabled, use the above size for TV, otherwise use full screen. + If enabled, use the above size for TV, otherwise use full screen. + + +- ++ + Hide mouse cursor in MythTV +- Hide mouse cursor in MythTV ++ Hide Mouse Cursor in MythTV + + +- ++ + Toggles mouse cursor visibility for touchscreens. By default MythTV will auto-hide the cursor if the mouse doesn't move for a period, this setting disables the cursor entirely. + Toggles mouse cursor visibility for touchscreens. By default MythTV will auto-hide the cursor if the mouse doesn't move for a period, this setting disables the cursor entirely. + + +- ++ + Use window border +- Use window border ++ Use Window Border + + +- ++ + Toggles between windowed and borderless operation. + Toggles between windowed and borderless operation. + + +- ++ + Use fixed window size +- Use fixed window size ++ Use Fixed Window Size + + +- ++ + If disabled, the video playback window can be resized +- If disabled, the video playback window can be resized ++ If disabled, the video playback window can be resized. + + +- ++ + Always On Top + Always On Top + + +- ++ + If enabled, MythTV will always be on top + If enabled, MythTV will always be on top + + +- ++ + Date format +- Date format ++ Date Format + + +- +- ++ ++ + Samples are shown using today's date. + Samples are shown using today's date. + + +- +- ++ ++ + Samples are shown using tomorrow's date. + Samples are shown using tomorrow's date. + + +- ++ + Your preferred date format. %1 + %1 gives additional information regarding the date format +- Your preferred date format. %1 ++ Preferred Date Format (%1) + + +- ++ + Short date format +- Short date format ++ Short Date Format + + +- ++ + Your preferred short date format. %1 + %1 gives additional information regarding the date format +- Your preferred short date format. %1 ++ Preferred Short Date Format (%1) + + +- ++ + Time format +- Time format ++ Time Format + + +- ++ + Your preferred time format. You must choose a format with "AM" or "PM" in it, otherwise your time display will be 24-hour or "military" time. + Your preferred time format. You must choose a format with "AM" or "PM" in it, otherwise your time display will be 24-hour or "military" time. + + +- ++ + Paint engine +- Paint engine ++ Paint Engine + + +- ++ + This selects what MythTV uses to draw. Choosing '%1' is recommended, unless running on systems with broken OpenGL implementations (broken hardware or drivers or windowing systems) where only Qt works. + This selects what MythTV uses to draw. Choosing '%1' is recommended, unless running on systems with broken OpenGL implementations (broken hardware or drivers or windowing systems) where only Qt works. + + +- ++ + Language + Language + + +- ++ + Your preferred language for the user interface. + Your preferred language for the user interface. + + +- ++ + Guide language #%1 +- Guide language #%1 ++ Guide Language #%1 + + +- ++ + Your #%1 preferred language for Program Guide data and captions. + Your #%1 preferred language for Program Guide data and captions. + + +- ++ ++ GUI dimension ++ GUI Dimension ++ ++ ++ ++ Fullscreen ++ Fullscreen ++ ++ ++ + Theme / Screen Settings + Theme / Screen Settings + + +- ++ + Localization + Localization + +@@ -2630,350 +2643,491 @@ + + AudioAdvancedSettings + +- + Stereo PCM Only +- Stereo PCM Only ++ Stereo PCM Only + + +- + Enable if your amplifier or sound decoder only supports 2 channel PCM (typically an old HDMI 1.0 device). Multichannel audio will be re-encoded to AC-3 when required +- Enable if your amplifier or sound decoder only supports 2 channel PCM (typically an old HDMI 1.0 device). Multichannel audio will be re-encoded to AC-3 when required ++ Enable if your amplifier or sound decoder only supports 2 channel PCM (typically an old HDMI 1.0 device). Multichannel audio will be re-encoded to AC-3 when required + + +- + Override SRC quality +- Override SRC quality ++ Override SRC quality + + +- + Enable to override audio sample rate conversion quality. +- Enable to override audio sample rate conversion quality. ++ Enable to override audio sample rate conversion quality. + + +- + Sample rate conversion +- Sample rate conversion ++ Sample rate conversion + + +- +- + Disabled + Sample rate conversion +- Disabled ++ Disabled + + +- + Fastest + Sample rate conversion +- Fastest ++ Fastest + + +- +- + Good + Sample rate conversion +- Good ++ Good + + +- + Best + Sample rate conversion +- Best ++ Best + + +- + Set the quality of audio sample-rate conversion. "%1" (default) provides the best compromise between CPU usage and quality. "%2" lets the audio device handle sample-rate conversion. +- Set the quality of audio sample-rate conversion. "%1" (default) provides the best compromise between CPU usage and quality. "%2" lets the audio device handle sample-rate conversion. ++ Set the quality of audio sample-rate conversion. "%1" (default) provides the best compromise between CPU usage and quality. "%2" lets the audio device handle sample-rate conversion. + + +- + Force audio device output to 48kHz +- Force audio device output to 48kHz ++ Force audio device output to 48kHz + + +- + Force audio sample rate to 48kHz. Some audio devices will report various rates, but they ultimately crash. +- Force audio sample rate to 48kHz. Some audio devices will report various rates, but they ultimately crash. ++ Force audio sample rate to 48kHz. Some audio devices will report various rates, but they ultimately crash. + + +- + Separate digital output device +- Separate digital output device ++ Separate digital output device + + +- + Use a distinct digital output device from default. (default is not checked) +- Use a distinct digital output device from default. (default is not checked) ++ Use a distinct digital output device from default. (default is not checked) + + +- + Digital output device +- Digital output device ++ Digital output device + + +- + Audio output device to use for digital audio. This value is currently only used with ALSA and DirectX sound output. +- Audio output device to use for digital audio. This value is currently only used with ALSA and DirectX sound output. ++ Audio output device to use for digital audio. This value is currently only used with ALSA and DirectX sound output. + + +- + SPDIF 48kHz rate override +- SPDIF 48kHz rate override ++ SPDIF 48kHz rate override + + +- + ALSA only. By default, let ALSA determine the passthrough sampling rate. If checked set the sampling rate to 48kHz for passthrough. (default is not checked) +- ALSA only. By default, let ALSA determine the passthrough sampling rate. If checked set the sampling rate to 48kHz for passthrough. (default is not checked) ++ ALSA only. By default, let ALSA determine the passthrough sampling rate. If checked set the sampling rate to 48kHz for passthrough. (default is not checked) + + +- + HBR passthrough support +- HBR passthrough support ++ HBR passthrough support + + +- + HBR support is required for TrueHD and DTS-HD passthrough. If unchecked, Myth will limit the passthrough bitrate to 6.144Mbit/s. This will disable True-HD passthrough, however will allow DTS-HD content to be sent as DTS-HD Hi-Res. (default is checked) +- HBR support is required for TrueHD and DTS-HD passthrough. If unchecked, Myth will limit the passthrough bitrate to 6.144Mbit/s. This will disable True-HD passthrough, however will allow DTS-HD content to be sent as DTS-HD Hi-Res. (default is checked) ++ HBR support is required for TrueHD and DTS-HD passthrough. If unchecked, Myth will limit the passthrough bitrate to 6.144Mbit/s. This will disable True-HD passthrough, however will allow DTS-HD content to be sent as DTS-HD Hi-Res. (default is checked) ++ ++ ++ ++ AudioConfigScreen ++ ++ ++ Scanning for available audio devices ++ Scanning for Available Audio Devices... + + + + AudioConfigSettings + +- ++ + Audio System + Audio System + + +- ++ + Rescan + Rescan + + +- ++ + Rescan for available audio devices. Current entry will be checked and capability entries populated. + Rescan for available audio devices. Current entry will be checked and capability entries populated. + + +- ++ + Digital Audio Capabilities + Digital Audio Capabilities + + +- + Test +- Test ++ Test + + +- + Will play a test pattern on all configured speakers +- Will play a test pattern on all configured speakers ++ Will play a test pattern on all configured speakers + + +- ++ + Advanced Audio Settings + Advanced Audio Settings + + +- ++ + Enable extra audio settings. Under most usage all options should be left alone +- Enable extra audio settings. Under most usage all options should be left alone ++ Enable extra audio settings. Under most usage all options should be left alone. + + +- ++ + %1 is invalid or not useable. + Temporary fix +- %1 is invalid and can not be used. ++ %1 is invalid or not useable. + + +- ++ + Passthrough device is invalid or not useable. Check configuration in Advanced Settings: + Temporary fix +- Passthrough device is invalid or can not be used. Check configuration in Advanced Settings: ++ Passthrough device is invalid or not useable. Check configuration in Advanced Settings. + + +- ++ + Speaker configuration +- Speaker configuration ++ Speaker Configuration + + +- ++ + Select the maximum number of audio channels supported by your receiver and speakers. + Select the maximum number of audio channels supported by your receiver and speakers. + + +- ++ + Upconvert stereo to 5.1 surround +- Upconvert stereo to 5.1 surround ++ Upconvert Stereo to 5.1 Surround + + +- ++ + If enabled, MythTV will upconvert stereo to 5.1 audio. You can enable or disable the upconversion during playback at any time. + If enabled, MythTV will upconvert stereo to 5.1 audio. You can enable or disable the upconversion during playback at any time. + + +- ++ + Upmix Quality + Upmix Quality + + +- ++ + Passive + Passive + + +- ++ + Hall + Upmix Quality + Hall + + +- ++ + Good + Upmix Quality + Good + + +- ++ + Best + Upmix Quality + Best + + +- ++ + Set the audio surround-upconversion quality. + Set the audio surround-upconversion quality. + + +- ++ + Dolby Digital + Dolby Digital + + +- ++ + Enable if your amplifier or sound decoder supports AC-3/Dolby Digital. You must use a digital connection. Uncheck if using an analog connection. + Enable if your amplifier or sound decoder supports AC-3/Dolby Digital. You must use a digital connection. Uncheck if using an analog connection. + + +- ++ + DTS + DTS + + +- ++ + Enable if your amplifier or sound decoder supports DTS. You must use a digital connection. Uncheck if using an analog connection +- Enable if your amplifier or sound decoder supports DTS. You must use a digital connection. Uncheck if using an analog connection ++ Enable if your amplifier or sound decoder supports DTS. You must use a digital connection. Uncheck if using an analog connection. + + +- ++ + E-AC-3 + E-AC-3 + + +- ++ + Enable if your amplifier or sound decoder supports E-AC-3 (DD+). You must use a HDMI connection. + Enable if your amplifier or sound decoder supports E-AC-3 (DD+). You must use a HDMI connection. + + +- ++ + TrueHD + TrueHD + + +- ++ + Enable if your amplifier or sound decoder supports Dolby TrueHD. You must use a HDMI connection. + Enable if your amplifier or sound decoder supports Dolby TrueHD. You must use a HDMI connection. + + +- ++ + DTS-HD + DTS-HD + + +- ++ + Enable if your amplifier or sound decoder supports DTS-HD. You must use a HDMI connection. + Enable if your amplifier or sound decoder supports DTS-HD. You must use a HDMI connection. + ++ ++ ++ Use internal volume controls ++ Use Internal Volume Controls ++ ++ ++ ++ If enabled, MythTV will control the PCM and master mixer volume. Disable this option if you prefer to control the volume externally (for example, using your amplifier) or if you use an external mixer program. ++ If enabled, MythTV will control the PCM and master mixer volume. Disable if you prefer to control the volume externally (for example, using your amplifier) or if you use an external mixer program. ++ ++ ++ ++ Mixer device ++ Mixer Device ++ ++ ++ ++ ++ software ++ Software ++ ++ ++ ++ Setting the mixer device to "%1" lets MythTV control the volume of all audio at the expense of a slight quality loss. ++ Setting the mixer device to "%1" lets MythTV control the volume of all audio at the expense of a slight quality loss. ++ ++ ++ ++ PCM ++ PCM ++ ++ ++ ++ Master ++ Master ++ ++ ++ ++ Mixer controls ++ Mixer Controls ++ ++ ++ ++ Changing the volume adjusts the selected mixer. ++ Changing the volume adjusts the selected mixer. ++ ++ ++ ++ Master mixer volume ++ Master Mixer Volume ++ ++ ++ ++ Initial volume for the Master mixer. This affects all sound created by the audio device. Note: Do not set this too low. ++ Initial volume for the Master mixer. This affects all sound created by the audio device. Note: Do not set this too low. ++ ++ ++ ++ PCM mixer volume ++ PCM Mixer Volume ++ ++ ++ ++ Initial volume for PCM output. Using the volume keys in MythTV will adjust this parameter. ++ Initial volume for PCM output. Using the volume keys in MythTV will adjust this parameter. ++ ++ ++ ++ Stereo PCM Only ++ Stereo PCM Only ++ ++ ++ ++ Enable if your amplifier or sound decoder only supports 2 channel PCM (typically an old HDMI 1.0 device). Multichannel audio will be re-encoded to AC-3 when required ++ Enable if your amplifier or sound decoder only supports 2 channel PCM (typically an old HDMI 1.0 device). Multichannel audio will be re-encoded to AC-3 when required. ++ ++ ++ ++ Override SRC quality ++ Override Sample Rate Conversion Quality ++ ++ ++ ++ Enable to override audio sample rate conversion quality. ++ Enable to override audio sample rate conversion quality. ++ ++ ++ ++ Sample rate conversion ++ Sample Rate Conversion ++ ++ ++ ++ ++ Disabled ++ Sample rate conversion ++ Disabled ++ ++ ++ ++ Fastest ++ Sample rate conversion ++ Fastest ++ ++ ++ ++ ++ Good ++ Sample rate conversion ++ Good ++ ++ ++ ++ Best ++ Sample rate conversion ++ Best ++ ++ ++ ++ Set the quality of audio sample-rate conversion. "%1" (default) provides the best compromise between CPU usage and quality. "%2" lets the audio device handle sample-rate conversion. ++ Set the quality of audio sample-rate conversion. "%1" (default) provides the best compromise between CPU usage and quality. "%2" lets the audio device handle sample-rate conversion. ++ ++ ++ ++ Force audio device output to 48kHz ++ Force Audio Device Output to 48kHz ++ ++ ++ ++ Force audio sample rate to 48kHz. Some audio devices will report various rates, but they ultimately crash. ++ Force audio sample rate to 48kHz. Some audio devices will report various rates, but they ultimately crash. ++ ++ ++ ++ Separate digital output device ++ Separate Digital Output Device ++ ++ ++ ++ Use a distinct digital output device from default. (default is not checked) ++ Use a distinct digital output device from default. (default is not enabled) ++ ++ ++ ++ Digital output device ++ Digital Output Device ++ ++ ++ ++ Audio output device to use for digital audio. This value is currently only used with ALSA and DirectX sound output. ++ Audio output device to use for digital audio. This value is currently only used with ALSA and DirectX sound output. ++ ++ ++ ++ SPDIF 48kHz rate override ++ SPDIF 48kHz Rate Override ++ ++ ++ ++ ALSA only. By default, let ALSA determine the passthrough sampling rate. If checked set the sampling rate to 48kHz for passthrough. (default is not checked) ++ ALSA only. If disabled, ALSA determines the passthrough sampling rate. If enabled, set the sampling rate to 48kHz for passthrough. (default is disabled) ++ ++ ++ ++ HBR passthrough support ++ HBR Passthrough Support ++ ++ ++ ++ HBR support is required for TrueHD and DTS-HD passthrough. If unchecked, Myth will limit the passthrough bitrate to 6.144Mbit/s. This will disable True-HD passthrough, however will allow DTS-HD content to be sent as DTS-HD Hi-Res. (default is checked) ++ HBR support is required for TrueHD and DTS-HD passthrough. If disabled, Myth will limit the passthrough bitrate to 6.144Mbit/s. This will disable True-HD passthrough, however will allow DTS-HD content to be sent as DTS-HD Hi-Res. (default is disabled) ++ + + + AudioDeviceComboBox + +- ++ + Audio output device +- Audio output device ++ Audio Output Device + + + + AudioMixerSettings + +- + Use internal volume controls +- Use internal volume controls ++ Use internal volume controls + + +- + If enabled, MythTV will control the PCM and master mixer volume. Disable this option if you prefer to control the volume externally (for example, using your amplifier) or if you use an external mixer program. +- If enabled, MythTV will control the PCM and master mixer volume. Disable this option if you prefer to control the volume externally (for example, using your amplifier) or if you use an external mixer program. ++ If enabled, MythTV will control the PCM and master mixer volume. Disable this option if you prefer to control the volume externally (for example, using your amplifier) or if you use an external mixer program. + + +- + Mixer device +- Mixer device ++ Mixer device + + +- +- + software +- software ++ software + + +- + Setting the mixer device to "%1" lets MythTV control the volume of all audio at the expense of a slight quality loss. +- Setting the mixer device to "%1" lets MythTV control the volume of all audio at the expense of a slight quality loss. ++ Setting the mixer device to "%1" lets MythTV control the volume of all audio at the expense of a slight quality loss. + + +- + PCM +- PCM ++ PCM + + +- + Master +- Master ++ Master + + +- + Mixer controls +- Mixer controls ++ Mixer controls + + +- + Changing the volume adjusts the selected mixer. +- Changing the volume adjusts the selected mixer. ++ Changing the volume adjusts the selected mixer. + + +- + Master mixer volume +- Master mixer volume ++ Master mixer volume + + +- + Initial volume for the Master mixer. This affects all sound created by the audio device. Note: Do not set this too low. +- Initial volume for the Master mixer. This affects all sound created by the audio device. Note: Do not set this too low. ++ Initial volume for the Master mixer. This affects all sound created by the audio device. Note: Do not set this too low. + + +- + PCM mixer volume +- PCM mixer volume ++ PCM mixer volume + + +- + Initial volume for PCM output. Using the volume keys in MythTV will adjust this parameter. +- Initial volume for PCM output. Using the volume keys in MythTV will adjust this parameter. ++ Initial volume for PCM output. Using the volume keys in MythTV will adjust this parameter. + + +- + Audio Mixer +- Audio Mixer ++ Audio Mixer + + + +@@ -2981,29 +3135,29 @@ + + + Invalid or unuseable audio device +- Invalid or unuseable audio device ++ Invalid or Unuseable Audio Device + + + + (%1 connected to %2) +- (%1 connected to %2) ++ (%1 Connected to %2) + + + + (No connection detected) +- (No connection detected) ++ (No Connection Detected) + + + + + Device supports up to %1 + +-Device supports up to %1 ++Device Supports Up to %1 + + + + OSS device +- OSS device ++ OSS Device + + + +@@ -3013,7 +3167,7 @@ + + + CoreAudio default output +- CoreAudio default output ++ CoreAudio Default Output + + + +@@ -3072,22 +3226,22 @@ + + + Error while registering new jack port: %1 +- Error while registering new jack port: %1 ++ ERROR: Registering new jack port: %1 + + + + Error. Unable to set process callback?! +- Error. Unable to set process callback?! ++ ERROR: Unable to set process callback! + + + + Error. Unable to set xrun callback?! +- Error. Unable to set xrun callback?! ++ ERROR: Unable to set xrun callback! + + + + Error. Unable to set graph order change callback?! +- Error. Unable to set graph order change callback?! ++ ERROR: Unable to set graph order change callback! + + + +@@ -3103,7 +3257,7 @@ + + + Error closing Jack output device. Error: %1 +- Error closing Jack output device. Error: %1 ++ ERROR: Closing Jack output device. Error: %1 + + + +@@ -3129,7 +3283,7 @@ + + + Select from one of the audio devices detected on your system. When satisfied, you can test audio before moving on. If you fail to configure audio, video playback may fail as well. +- Select from one of the audio devices detected on your system. When satisfied, you can test audio before moving on. If you fail to configure audio, video playback may fail as well. ++ Select from one of the audio devices detected on your system. When satisfied, you can test audio before moving on. If you fail to configure audio, video playback may fail as well. + + + +@@ -3139,27 +3293,27 @@ + + + Select this checkbox if your receiver is capable of playing DTS. +- Select this checkbox if your receiver is capable of playing DTS. ++ Enable if your receiver is capable of playing DTS. + + + + Select this checkbox if your receiver is capable of playing AC-3 (Dolby Digital). +- Select this checkbox if your receiver is capable of playing AC-3 (Dolby Digital). ++ Enable if your receiver is capable of playing AC-3 (Dolby Digital). + + + + Select this checkbox if your receiver is capable of playing E-AC-3 (Dolby Digital Plus). +- Select this checkbox if your receiver is capable of playing E-AC-3 (Dolby Digital Plus). ++ Enable if your receiver is capable of playing E-AC-3 (Dolby Digital Plus). + + + + Select this checkbox if your receiver is capable of playing TrueHD. +- Select this checkbox if your receiver is capable of playing TrueHD. ++ Enable if your receiver is capable of playing TrueHD. + + + + Select this checkbox if your receiver is capable of playing DTS-HD. +- Select this checkbox if your receiver is capable of playing DTS-HD. ++ Enable if your receiver is capable of playing DTS-HD. + + + +@@ -3185,10 +3339,10 @@ + + + Discovering audio devices... +- Discovering audio devices... ++ Discovering Audio Devices... + + +- ++ + Stop Speaker Test + Stop Speaker Test + +@@ -3196,88 +3350,130 @@ + + AudioTest + +- ++ + Audio Configuration Testing + Audio Configuration Testing + + +- + %1 is invalid or not useable. +- %1 is invalid and can not be used. ++ %1 is invalid and can not be used. + + +- + Warning +- Warning ++ Warning + + +- +- ++ ++ + Test All + Test All + + +- ++ + Start all channels test +- Start all channels test ++ Start All Channels Test + + +- ++ + Front Left + Front Left + + +- ++ ++ Will play a test pattern on all configured speakers ++ Will play a test pattern on all configured speakers. ++ ++ ++ ++ Start front left channel test ++ Start Front Left Channel Test ++ ++ ++ + Front Right + Front Right + + +- ++ ++ Start front right channel test ++ Start Front Right Channel Test ++ ++ ++ + Rear Left + Rear Left + + +- ++ ++ Start rear left channel test ++ Start Rear Left Channel Test ++ ++ ++ + Rear Right + Rear Right + + +- ++ ++ Start rear right channel test ++ Start Rear Right Channel Test ++ ++ + Rear Center +- Rear Center ++ Rear Center + + +- ++ + LFE + LFE + + +- ++ ++ Start LFE channel test ++ Start LFE Channel Test ++ ++ ++ + Surround Left + Surround Left + + +- ++ ++ Start surround left channel test ++ Start Surround Left Channel Test ++ ++ ++ + Surround Right + Surround Right + + +- ++ ++ Start surround right channel test ++ Start Surround Right Channel Test ++ ++ ++ + Center + Center + + +- ++ ++ Start center channel test ++ Start Center Channel Test ++ ++ ++ + Use Highest Quality Mode + Use Highest Quality Mode + + +- ++ + Use the highest audio quality settings supported by your audio card. This will be a good place to start troubleshooting potential errors +- Use the highest audio quality settings supported by your audio card. This will be a good place to start troubleshooting potential errors ++ Use the highest audio quality settings supported by your audio card. This will be a good place to start troubleshooting potential errors. + + +- ++ + Audio device is invalid or not useable. + Audio device is invalid or not useable. + +@@ -3285,7 +3481,7 @@ + + AudioTestThread + +- ++ + Unable to create AudioOutput. + Unable to create AudioOutput. + +@@ -3293,7 +3489,7 @@ + + BDInfo + +- ++ + Could not open Blu-ray device: %1 + Could not open Blu-ray device: %1 + +@@ -3301,29 +3497,29 @@ + + BDRingBuffer + +- ++ + Title %1 chapter %2 +- Title %1 chapter %2 ++ Title %1 Chapter %2 + + +- ++ + Could not open Blu-ray device: %1 + Could not open Blu-ray device: %1 + + +- ++ + Could not open Blu-ray device %1, failed to decrypt +- Could not open Blu-ray device %1, failed to decrypt ++ Failed to decrypt, could not open Blu-ray device: %1 + + +- ++ + Unable to find any Blu-ray compatible titles +- Unable to find any Blu-ray compatible titles ++ Unable to find any Blu-ray compatible titles. + + +- ++ + Unable to find any usable Blu-ray titles +- Unable to find any usable Blu-ray titles ++ Unable to find any usable Blu-ray titles. + + + +@@ -3336,159 +3532,172 @@ + + + Please enter the backend access PIN +- Please enter the backend access PIN ++ Please enter the backend access PIN: ++ ++ ++ ++ BackendSettings ++ ++ ++ Listen on All IP Addresses ++ Listen on All IP Addresses ++ ++ ++ ++ Allow this backend to receive connections on any IP Address assigned to it. Recommended for most users for ease and reliability. ++ Allow this backend to receive connections on any IP Address assigned to it. Recommended for most users for ease and reliability. ++ ++ ++ ++ Host Address Backend Setup ++ Host Address Backend Setup + + + + BookmarkDialog + +- ++ + DVD/Video contains a bookmark +- DVD/Video contains a bookmark ++ DVD/Video Contains a Bookmark + + +- ++ + Play from bookmark +- Play from bookmark ++ Play from Bookmark + + +- ++ + Play from beginning +- Play from beginning ++ Play from Beginning + + + + CaptureCardEditor + +- +- Capture cards +- Capture cards ++ ++ New capture card ++ New Capture Card ++ ++ ++ ++ Error getting list of cards for this host. Unable to delete capturecards for %1 ++ Error getting list of cards for this host. Unable to delete capture cards for %1. ++ ++ ++ ++ Capture cards ++ Capture Cards + + +- + Capture Card Menu +- Capture Card Menu ++ Capture Card Menu + + +- + Edit... +- Edit... ++ Edit... + + +- + Delete... +- Delete... ++ Delete... + + +- ++ + Are you sure you want to delete ALL capture cards on %1? + Are you sure you want to delete ALL capture cards on %1? + + +- +- + Yes, delete capture cards +- Yes, delete capture cards ++ Yes, Delete Capture Cards + + +- +- +- + No, don't +- No, don't ++ No, Keep + + +- + Error getting list of cards for this host +- Error getting list of cards for this host ++ Error getting list of cards for this host + + +- + Unable to delete capturecards for %1 +- Unable to delete capture cards for %1 ++ Unable to delete capture cards for %1 + + +- ++ + Are you sure you want to delete ALL capture cards? + Are you sure you want to delete ALL capture cards? + + +- + Are you sure you want to delete this capture card? +- Are you sure you want to delete this capture card? ++ Are you sure you want to delete this capture card? + + +- + Yes, delete capture card +- Yes, delete capture card ++ Yes, Delete Capture Card + + + + CardInput + +- ++ + Scan for channels +- Scan for channels ++ Scan for Channels + + +- ++ + Use channel scanner to find channels for this input. + Use channel scanner to find channels for this input. + + +- ++ + Fetch channels from listings source +- Fetch channels from listings source ++ Fetch Channels from Listings Source + + +- ++ + This uses the listings data source to provide the channels for this input. + This uses the listings data source to provide the channels for this input. + + +- ++ + This can take a long time to run. + This can take a long time to run. + + +- + Create Input Group +- Create Input Group ++ Create Input Group + + +- ++ + Enter new group name +- Enter new group name ++ Enter group name: + + +- +- + Error +- Error ++ Error + + +- ++ + Sorry, this Input Group name cannot be blank. +- Sorry, this Input Group name cannot be blank. ++ Sorry, the name cannot be blank. + + +- ++ + Sorry, this Input Group name is already in use. +- Sorry, this Input Group name is already in use. ++ Sorry, this name is already in use. + + + + CardInputEditor + +- ++ + Input connections +- Input connections ++ Input Connections + + + + CetonConfigurationGroup + +- ++ + Description + Description + +@@ -3496,141 +3705,146 @@ + + CetonDeviceID + +- ++ + Device ID + Device ID + + +- ++ + Device ID of Ceton device +- Device ID of Ceton device ++ Device ID of Ceton Tuner + + + + ChannelCheckBox + +- + %1 %2 + Channel number with channel name + %1 is the channel number, %2 is the channel name +- %1 %2 ++ %1 %2 ++ ++ ++ Select/Unselect channels for this channel group ++ Select/Unselect channels for this channel group + ++ ++ ++ ChannelCheckBoxSetting + +- + Select/Unselect channels for this channel group +- Select/Unselect channels for this channel group ++ Select channels for this channel group. + + + + ChannelEditor + +- +- +- ++ ++ ++ + Channel Name + Channel Name + + +- ++ + Delete all channels on currently selected source(s). +- Delete all channels on currently selected source(s). ++ Delete All Channels on Currently Selected Source(s). + + +- +- +- ++ ++ ++ + Channel Number + Channel Number + + +- ++ + All + All + + +- ++ + (Unassigned) + (Unassigned) + + +- ++ + Starts the channel scanner. + Starts the channel scanner. + + +- ++ + Starts the icon downloader +- Starts the icon downloader ++ Starts the icon downloader. + + +- ++ + Allows you to edit the transports directly. This is rarely required unless you are using a satellite dish and must enter an initial frequency to for the channel scanner to try. + Allows you to edit the transports directly. This is rarely required unless you are using a satellite dish and must enter an initial frequency to for the channel scanner to try. + + +- ++ + (Add New Channel) + (Add New Channel) + + +- ++ + Delete channel '%1'? +- Delete channel '%1'? ++ Delete Channel '%1'? + + +- ++ + Delete ALL channels? +- Delete ALL channels? ++ Delete All Channels? + + +- ++ + Delete all unassigned channels? +- Delete all unassigned channels? ++ Delete All Unassigned Channels? + + +- ++ + Delete all channels on %1? +- Delete all channels on %1? ++ Delete All Channels on %1? + + +- ++ + Channel Options + Channel Options + + +- ++ + Edit + Edit + + +- ++ + Delete + Delete + + +- ++ + Add some channels first! + Add some channels first! + + +- ++ + Icon Import Options + Icon Import Options + + +- ++ + Download all icons... +- Download all icons... ++ Download All Icons... + + +- ++ + Rescan for missing icons... +- Rescan for missing icons... ++ Rescan for Missing Icons... + + +- ++ + Download icon for %1 +- Download icon for %1 ++ Download Icon for %1 + + + +@@ -3644,87 +3858,110 @@ + + ChannelGroupConfig + +- + %1 Channel Group - Page %2 of %3 +- %1 Channel Group - Page %2 of %3 ++ %1 Channel Group - Page %2 of %3 + + + + ChannelGroupEditor + +- + Channel Groups +- Channel Groups ++ Channel Groups + + +- + Create New Channel Group +- Create New Channel Group ++ Create New Channel Group + + +- + Enter group name or press SELECT to enter text via the On Screen Keyboard +- Enter group name or press SELECT to enter text via the On Screen Keyboard ++ Enter group name or press SELECT to enter text via the On Screen Keyboard + + +- + Delete '%1' Channel group? +- Delete '%1' Channel group? ++ Delete '%1' Channel group? + + +- + Yes, delete group +- Yes, delete group ++ Yes, Delete Group + + +- + No, Don't delete group +- No, Don't delete group ++ No, Keep Group + + +- + (Create new group) +- (Create new group) ++ (Create new group) ++ ++ ++ ++ ChannelGroupSetting ++ ++ ++ Group name ++ Group Name + + + + ChannelGroupSettings + +- +- ++ + Remember last channel group +- Remember last channel group ++ Remember Last Channel Group + + +- ++ + If enabled, the EPG will initially display only the channels from the last channel group selected. Pressing "4" will toggle channel group. + If enabled, the EPG will initially display only the channels from the last channel group selected. Pressing "4" will toggle channel group. + + +- ++ + Default channel group +- Default channel group ++ Default Channel Group + + +- ++ + All Channels + All Channels + + +- ++ + Default channel group to be shown in the EPG. Pressing GUIDE key will toggle channel group. +- Default channel group to be shown in the EPG. Pressing GUIDE key will toggle channel group. ++ Default channel group to be shown in the EPG. Pressing GUIDE key will toggle channel group. ++ ++ ++ ++ Select/Unselect channels for this channel group ++ Select channels for this channel group. ++ ++ ++ ++ ChannelGroupsSetting ++ ++ ++ Channel Groups ++ Channel Groups ++ ++ ++ ++ (Create New Channel Group) ++ (Create New Channel Group) ++ ++ ++ ++ Favorites ++ Favorites ++ ++ ++ ++ Enter the name of the new channel group ++ Enter group name: + + + + ChannelImporter + +- +- +- +- +- +- ++ ++ + Channel Importer + Channel Importer + +@@ -3732,8 +3969,8 @@ + + Found %n channel(s) + +- Found %n channel +- Found %n channels ++ Found %n Channel ++ Found %n Channels + + + +@@ -3800,7 +4037,7 @@ + + + +- ++ + Found %n transport(s): + + %n is the number of transports +@@ -3812,148 +4049,159 @@ + + + +- ++ + Channels: FTA Enc Dec + + Channels: FTA Enc Dec + + + +- ++ + Unique: prog %1 atsc %2 atsc minor %3 channum %4 + + Unique: prog %1 atsc %2 atsc minor %3 channum %4 + + + +- ++ + Max atsc major count: %1 + Max atsc major count: %1 + + +- ++ + Delete all +- Delete all ++ Delete All + + +- ++ + Set all invisible +- Set all invisible ++ Set All Invisible + + +- +- +- ++ ++ ++ + Ignore all +- Ignore all ++ Ignore All + + +- +- +- ++ ++ ++ + Do you want to: + Do you want to: + + +- ++ + 1. Delete all +- 1. Delete all ++ 1. Delete All + + +- ++ + 2. Set all invisible +- 2. Set all invisible ++ 2. Set All Invisible + + +- ++ + 4. Ignore all +- 4. Ignore all ++ 4. Ignore All + + +- ++ + Please enter either 1, 2 or 4: +- Please enter either 1, 2 or 4: ++ Please enter 1, 2 or 4: + + +- ++ + Insert all +- Insert all ++ Insert All + + +- ++ + Insert manually +- Insert manually ++ Insert Manually + + +- ++ + 1. Insert all +- 1. Insert all ++ 1. Insert All + + +- ++ + 2. Insert manually +- 2. Insert manually ++ 2. Insert Manually + + +- +- ++ ++ + 3. Ignore all +- 3. Ignore all ++ 3. Ignore All + + +- +- ++ ++ + Please enter either 1, 2, or 3: +- Please enter either 1, 2, or 3: ++ Please enter 1, 2, or 3: + + +- ++ + Update all +- Update all ++ Update All + + +- ++ + Update manually +- Update manually ++ Update Manually + + +- ++ + 1. Update all +- 1. Update all ++ 1. Update All + + +- ++ + 2. Update manually +- 2. Update manually ++ 2. Update Manually + + +- + Suggest +- Suggest ++ Suggest + + +- ++ + Channel %1 was found to be in conflict with other channels. + Channel %1 was found to be in conflict with other channels. + + +- +- ++ ++ ++ + Please enter a unique channel number. + Please enter a unique channel number. + + +- ++ ++ Edit ++ Edit ++ ++ ++ ++ ++ Default value is %1 ++ Default value is %1 ++ ++ ++ + Please enter a non-conflicting channel number (or type '%1' to skip, '%2' to skip all): + Please enter a non-conflicting channel number (or type '%1' to skip, '%2' to skip all): + + +- ++ + You chose to manually insert channel %1. + You chose to manually insert channel %1. + + +- ++ + Please enter a non-conflicting channel number (or type '%1' to skip, '%2' to skip all): + %1 is the translation of "cancel", %2 of "cancel all" + Please enter a non-conflicting channel number (or type '%1' to skip, '%2' to skip all): +@@ -3978,32 +4226,32 @@ + + + Error tuning to transport +- Error tuning to transport ++ Error Tuning to Transport + + + + Error scanning MPTS in IPTV +- Error scanning MPTS in IPTV ++ Error Scanning MPTS in IPTV + + + + Programmer Error: Failed to handle tune complete. +- Programmer Error: Failed to handle tune complete. ++ Programmer Error: Failed to Handle Tune Complete. + + + + Failed to parse '%1' +- Failed to parse '%1' ++ Failed to Parse '%1' + + + + Programmer Error : incorrect card type +- Programmer Error : incorrect card type ++ Programmer Error : Incorrect Card Type + + + + Failed to open '%1' +- Failed to open '%1' ++ Failed to Open '%1' + + + +@@ -4013,7 +4261,7 @@ + + + Programmer Error: Channel not created +- Programmer Error: Channel not created ++ Programmer Error: Channel Not Created + + + +@@ -4024,72 +4272,80 @@ + + ChannelScannerGUI + +- + Scanning +- Scanning ++ Scanning + + +- + ScanWizard +- ScanWizard ++ ScanWizard ++ ++ ++ ++ Scan complete ++ Scan Complete + + + + ChannelScannerGUIScanPane + +- + Scan Progress +- Scan Progress ++ Scan Progress + + +- + Status +- Status ++ Status + + +- ++ + Tuning + Tuning + + +- + Rotor Movement +- Rotor Movement ++ Rotor Movement + + +- + Signal Strength +- Signal Strength ++ Signal Strength + + +- + Signal/Noise +- Signal/Noise ++ Signal/Noise + + +- + Scan +- Scan ++ Scan + + +- + Stop Scan +- Stop Scan ++ Stop Scan ++ ++ ++ ++ ++ ++ ++ %1% ++ %1: {1%?} + + +- ++ + Locked + Locked + + +- ++ + No Lock + No Lock + + +- ++ ++ %1 ++ %1 ++ ++ + Scan Progress %1 +- Scan Progress %1 ++ Scan Progress %1 + + + +@@ -4104,7 +4360,7 @@ + + ChannelWizard + +- ++ + Channel Options + Channel Options + +@@ -4116,7 +4372,7 @@ + + Skip %1 + %1 is the skip time +- Skip %1 ++ Skip Commercial %1 + + + +@@ -4127,19 +4383,19 @@ + + + Skipping Back. +- Skipping Back. ++ Skipping Back + + + + + Start of program. +- Start of program. ++ Start of Program + + + + + At End, cannot Skip. +- At End, cannot Skip. ++ At End, Cannot Skip + + + +@@ -4163,124 +4419,124 @@ + + + <New rule> +- <New rule> ++ <New Rule> + + + + Match an exact title +- Match an exact title ++ Match an Exact Title + + + + Match this series +- Match this series ++ Match This Series + + + + Match words in the title +- Match words in the title ++ Match Words in the Title + + + + Match words in the subtitle +- Match words in the subtitle ++ Match Words in the Subtitle + + + + + Match this episode +- Match this episode ++ Match This Episode + + + + Match an exact episode +- Match an exact episode ++ Match an Exact Episode + + + + Match in any descriptive field +- Match in any descriptive field ++ Match in Any Descriptive Field + + + + New episodes only +- New episodes only ++ New Episodes Only + + + + Exclude unidentified episodes +- Exclude unidentified episodes ++ Exclude Unidentified Episodes + + + + First showing of each episode +- First showing of each episode ++ First Showing of Each Episode + + + + Last showing of each episode +- Last showing of each episode ++ Last Showing of Each Episode + + + + Anytime on a specific day of the week +- Anytime on a specific day of the week ++ Anytime on a Specific Day of the Week + + + + Only on weekdays (Monday through Friday) +- Only on weekdays (Monday through Friday) ++ Only on Weekdays (Monday Through Friday) + + + + Only on weekends +- Only on weekends ++ Only on Weekends + + + + Only on a specific station +- Only on a specific station ++ Only on a Specific Station + + + + Exclude one station +- Exclude one station ++ Exclude One Station + + + + Match related callsigns +- Match related callsigns ++ Match Related Callsigns + + + + Only channels from the Favorites group +- Only channels from the Favorites group ++ Only Channels from the Favorites Group + + + + Category type (%1) + List of hardcoded category types +- Category type (%1) ++ Category Type (%1) + + + + Replace as a search +- Replace as a search ++ Replace as a Search + + + + Store as a search +- Store as a search ++ Store as a Search + + + + Replace as an example +- Replace as an example ++ Replace as an Example + + + + Store as an example +- Store as an example ++ Store as an Example + + + +@@ -4290,82 +4546,82 @@ + + + Power Search rules cannot include semicolon ( ; ) +- Power Search rules cannot include semicolon ( ; ) ++ Power Search rules cannot include semicolon ( ; ). + + + + Only channels from a specific video source +- Only channels from a specific video source ++ Only Channels from a Specific Video Source + + + + Only in prime time +- Only in prime time ++ Only in Prime Time + + + + Not in prime time +- Not in prime time ++ Not in Prime Time + + + + Only channels marked as commercial free +- Only channels marked as commercial free ++ Only Channels Marked as Commercial Free + + + + Only shows marked as HDTV +- Only shows marked as HDTV ++ Only Shows Marked as HDTV + + + + Only shows marked as widescreen +- Only shows marked as widescreen ++ Only Shows Marked as Widescreen + + + + Exclude H.264 encoded streams (EIT only) +- Exclude H.264 encoded streams (EIT only) ++ Exclude H.264 Encoded Streams (EIT Only) + + + + Only shows with in-vision signing +- Only shows with in-vision signing ++ Only Shows with In-vision Signing + + + + Only shows with in-vision subtitles +- Only shows with in-vision subtitles ++ Only Shows with In-vision Subtitles + + + + Limit by category +- Limit by category ++ Limit by Category + + + + All matches for a genre (Data Direct) +- All matches for a genre (Data Direct) ++ All Matches for a Genre (Data Direct) + + + + Limit by MPAA or VCHIP rating (Data Direct) +- Limit by MPAA or VCHIP rating (Data Direct) ++ Limit by MPAA or VCHIP Rating (Data Direct) + + + + Limit movies by the year of release +- Limit movies by the year of release ++ Limit Movies by the Year of Release + + + + Minimum star rating (0.0 to 1.0 for movies only) +- Minimum star rating (0.0 to 1.0 for movies only) ++ Minimum Star Rating (0.0 to 1.0 for Movies Only) + + + + Person named in the credits (Data Direct) +- Person named in the credits (Data Direct) ++ Person Named in the Credits (Data Direct) + + + +@@ -4375,7 +4631,7 @@ + + + Multiple sports teams (complete example) +- Multiple sports teams (complete example) ++ Multiple Sports Teams (complete example) + + + +@@ -4590,52 +4846,51 @@ + + DVBConfigurationGroup + +- ++ + Could not open card %1 +- Could not open card %1 ++ Could Not Open Card %1 + + +- ++ + Could not get card info for card %1 +- Could not get card info for card %1 ++ Could Not Get Card Info for %1 + + +- ++ + DiSEqC (Switch, LNB, and Rotor Configuration) + DiSEqC (Switch, LNB, and Rotor Configuration) + + +- ++ + Input and satellite settings. + Input and satellite settings. + + +- + Recording Options +- Recording Options ++ Recording Options + + + + DVBSignalMonitor + +- ++ + Bit Error Rate + Bit Error Rate + + +- ++ + Uncorrected Blocks + Uncorrected Blocks + + +- ++ + Rotor Progress + Rotor Progress + + +- ++ + Error: stream handler died +- Error: stream handler died ++ Error: Stream Handler Died + + + +@@ -4643,7 +4898,7 @@ + + + Failed to open device at %1 +- Failed to open device at %1 ++ Failed to Open Device %1 + + + +@@ -4651,227 +4906,238 @@ + + + Title %1 chapter %2 +- Title %1 chapter %2 ++ Title %1 Chapter %2 + + + + Failed to open DVD device at %1 +- Failed to open DVD device at %1 ++ Failed to Open DVD Device at %1 + + + + DataDirectLineupSelector + +- ++ + Fetching lineups from %1... +- Fetching lineups from %1... ++ Fetching Lineups from %1... ++ ++ ++ ++ ++ ++ DataDirect ++ DataDirect ++ ++ ++ ++ Fetching of lineups failed ++ Fetching Lineups Failed ++ ++ ++ ++ Fetching of lineups complete ++ Fetching Lineups Complete + + + + DatabaseSettings + +- +- ++ + Use custom identifier for frontend preferences +- Use custom identifier for frontend preferences ++ Use Custom Identifier for Frontend Preferences + + +- + Backend Server Wakeup settings +- Backend Server Wakeup settings ++ Backend Server Wakeup settings + + +- +- + Database Configuration %1/%2 +- Database Configuration %1/%2 ++ Database Configuration %1/%2 + + +- ++ + All database settings take effect when you restart this program. + All database settings take effect when you restart this program. + + +- ++ + MythTV could not connect to the database. Please verify your database settings below. + MythTV could not connect to the database. Please verify your database settings below. + + +- + Database Server Settings +- Database Server Settings ++ Database Server Settings + + +- ++ + The host name or IP address of the machine hosting the database. This information is required. +- The host name or IP address of the machine hosting the database. This information is required. ++ The hostname or IP address of the machine hosting the database. This information is required. + + +- ++ + Ping test server? +- Ping test server? ++ Ping Test Server + + +- ++ + Test basic host connectivity using the ping command. Turn off if your host or network don't support ping (ICMP ECHO) packets + Test basic host connectivity using the ping command. Turn off if your host or network don't support ping (ICMP ECHO) packets + + +- ++ + The port number the database is running on. Leave blank if using the default port (3306). +- The port number the database is running on. Leave blank if using the default port (3306). ++ The port number the database is running on. Leave blank if using the default port (3306). + + +- + Database name +- Database name ++ Database name ++ ++ ++ ++ Database Configuration ++ Database Configuration ++ ++ ++ ++ Hostname ++ Hostname ++ ++ ++ ++ Port ++ Port + + +- ++ + The name of the database. This information is required. + The name of the database. This information is required. + + +- ++ + The user name to use while connecting to the database. This information is required. + The user name to use while connecting to the database. This information is required. + + +- ++ + The password to use while connecting to the database. This information is required. + The password to use while connecting to the database. This information is required. + + +- ++ + If this frontend's host name changes often, check this box and provide a network-unique name to identify it. If unchecked, the frontend machine's local host name will be used to save preferences in the database. + If this frontend's host name changes often, check this box and provide a network-unique name to identify it. If unchecked, the frontend machine's local host name will be used to save preferences in the database. + + +- ++ + Custom identifier +- Custom identifier ++ Custom Identifier + + +- ++ + An identifier to use while saving the settings for this frontend. + An identifier to use while saving the settings for this frontend. + + +- ++ + Enable database server wakeup +- Enable database server wakeup ++ Enable Database Server Wakeup + + +- ++ + If enabled, the frontend will use database wakeup parameters to reconnect to the database server. + If enabled, the frontend will use database wakeup parameters to reconnect to the database server. + + +- ++ + Reconnect time +- Reconnect time ++ Reconnect Time + + +- ++ + The time in seconds to wait for the server to wake up. + The time in seconds to wait for the server to wake up. + + +- ++ + Retry attempts +- Retry attempts ++ Retry Attempts + + +- ++ + The number of retries to wake the server before the frontend gives up. + The number of retries to wake the server before the frontend gives up. + + +- ++ + Wake command +- Wake command ++ Wake Command + + +- ++ + The command executed on this frontend to wake up the database server (eg. sudo /etc/init.d/mysql restart). + The command executed on this frontend to wake up the database server (eg. sudo /etc/init.d/mysql restart). + + +- ++ + Required fields are marked with an asterisk (*). + Required fields are marked with an asterisk (*). + + +- +- +- +- + * %1 + Required field + %1 is the required field name +- * %1 ++ * %1 + + +- + Database Settings +- Database Settings ++ Database Settings + + +- + (Requires edit privileges) +- (Requires edit privileges) ++ (Requires edit privileges) + + +- + Scanner Exclusions +- Scanner Exclusions ++ Scanner Exclusions + + +- + Comma-separated list of filenames/directory names to be ignored when scanning. Glob wildcards * and ? are valid. +- Comma-separated list of filenames/directory names to be ignored when scanning. Glob wildcards * and ? are valid. ++ Comma-separated list of filenames/directory names to be ignored when scanning. Glob wildcards * and ? are valid. + + +- + Start Gallery when media inserted +- Start Gallery when media inserted ++ Start Gallery when media inserted + + +- + Set to automatically start Gallery when media (USB/CD's containing images) are inserted. +- Set to automatically start Gallery when media (USB/CD's containing images) are inserted. ++ Set to automatically start Gallery when media (USB/CD's containing images) are inserted. + + +- ++ + Password + Password + + +- + When set all actions that modify the filesystem or database are protected (copy, move, transform, hiding, covers). Hidden items cannot be viewed. Applies to all frontends. + Disabled by an empty password. Privileges persist until Gallery exits to main menu. +- When set all actions that modify the filesystem or database are protected (copy, move, transform, hiding, covers). Hidden items cannot be viewed. Applies to all frontends. ++ When set all actions that modify the filesystem or database are protected (copy, move, transform, hiding, covers). Hidden items cannot be viewed. Applies to all frontends. + Disabled by an empty password. Privileges persist until Gallery exits to main menu. + + +- + Reset Image Database +- Reset Image Database ++ Reset Image Database + + +- + Clears the database and thumbnails for the Image Storage Group. A rescan will be required. Images for local media will persist. +- Clears the database and thumbnails for the Image Storage Group. A rescan will be required. Images for local media will persist. ++ Clears the database and thumbnails for the Image Storage Group. A rescan will be required. Images for local media will persist. + + +- + Clear Now! +- Clear Now! ++ Clear Now! + + +- + Warning! This will erase settings for: hidden images, directory covers and re-orientations. You will have to set them again after re-scanning. +- Warning! This will erase settings for: hidden images, directory covers and re-orientations. You will have to set them again after re-scanning. ++ Warning! This will erase settings for: hidden images, directory covers and re-orientations. You will have to set them again after re-scanning. + + + +@@ -4879,12 +5145,12 @@ + + + (Nothing to undo) +- (Nothing to undo) ++ (Nothing to Undo) + + + + (Nothing to redo) +- (Nothing to redo) ++ (Nothing to Redo) + + + +@@ -4903,7 +5169,7 @@ + + + +- ++ + Delete + Delete the current cut or preserved region + Delete +@@ -4975,35 +5241,35 @@ + Reverse Cuts + + +- ++ + New Cut + New Cut + + +- ++ + Move Mark + Move Mark + + +- ++ + Load Detected Commercials + Load Detected Commercials + + +- ++ + Load Auto-saved Cuts +- Load Auto-saved Cuts ++ Load Auto-Saved Cuts + + + + DeletedExpireOptions + +- ++ + Auto-Expire instead of delete recording +- Auto-Expire instead of delete recording ++ Auto-Expire Instead of Delete Recording + + +- ++ + If enabled, move deleted recordings to the 'Deleted' recgroup and turn on autoexpire instead of deleting immediately. + If enabled, move deleted recordings to the 'Deleted' recgroup and turn on autoexpire instead of deleting immediately. + +@@ -5011,256 +5277,258 @@ + + DemoConfigurationGroup + +- + A local MPEG file used to simulate a recording. Must be entered as file:/path/movie.mpg +- A local MPEG file used to simulate a recording. Must be entered as file:/path/movie.mpg ++ A local MPEG file used to simulate a recording. Must be entered as file:/path/movie.mpg + + +- ++ ++ A local MPEG file used to simulate a recording. ++ A local MPEG file used to simulate a recording. ++ ++ ++ + File info +- File info ++ File Info + + +- ++ + File size +- File size ++ File Size + + +- ++ + %1 MB + %1 MB + + +- ++ + File not readable +- File not readable ++ File Not Readable + + +- ++ + File does not exist +- File does not exist ++ File Does Not Exist + + + + DeviceTree + +- ++ + Device Type + Device Type + + +- +- ++ ++ Unconnected ++ Unconnected ++ ++ ++ + Switch + Switch + + +- +- ++ + Rotor + Rotor + + +- +- ++ + LNB + LNB + + +- ++ + Description + Description + + +- ++ + Optional descriptive name for this device, to make it easier to configure settings later. + Optional descriptive name for this device, to make it easier to configure settings later. + + +- ++ + Repeat Count + Repeat Count + + +- ++ + Number of repeat (command with repeat flag ON) or resend (the same command) DiSEqC commands. If value is higher than 10, command will be resend N-10 times. If value is lower than 10, command will be repeated N times. Repeat useful for unreliable DiSEqC equipment; resend useful when unreliable DiSEqC equipment has broken/unsupported repeat flag support. + Number of repeat (command with repeat flag ON) or resend (the same command) DiSEqC commands. If value is higher than 10, command will be resend N-10 times. If value is lower than 10, command will be repeated N times. Repeat useful for unreliable DiSEqC equipment; resend useful when unreliable DiSEqC equipment has broken/unsupported repeat flag support. + + +- ++ + Switch Type + Switch Type + + +- ++ + Select the type of switch from the list. + Select the type of switch from the list. + + +- ++ + Tone + Tone + + +- ++ + Voltage + Voltage + + +- ++ + Mini DiSEqC + Mini DiSEqC + + +- ++ + DiSEqC + DiSEqC + + +- ++ + DiSEqC (Uncommitted) + DiSEqC (Uncommitted) + + +- ++ + Legacy SW21 + Legacy SW21 + + +- ++ + Legacy SW42 + Legacy SW42 + + +- ++ + Legacy SW64 + Legacy SW64 + + +- ++ + Address of switch +- Address of switch ++ Address of Switch + + +- ++ + The DiSEqC address of the switch. + The DiSEqC address of the switch. + + +- ++ + Number of ports +- Number of ports ++ Number of Ports + + +- ++ + The number of ports this switch has. + The number of ports this switch has. + + +- ++ + Switch Configuration + Switch Configuration + + +- ++ + Rotor Type + Rotor Type + + +- ++ + Select the type of rotor from the list. + Select the type of rotor from the list. + + +- ++ + DiSEqC 1.2 + DiSEqC 1.2 + + +- ++ + DiSEqC 1.3 (GotoX/USALS) + DiSEqC 1.3 (GotoX/USALS) + + +- ++ + Rotor Low Speed (deg/sec) + Rotor Low Speed (deg/sec) + + +- ++ + To allow the approximate monitoring of rotor movement, enter the rated angular speed of the rotor when powered at 13V. + To allow the approximate monitoring of rotor movement, enter the rated angular speed of the rotor when powered at 13V. + + +- ++ + Rotor High Speed (deg/sec) + Rotor High Speed (deg/sec) + + +- ++ + To allow the approximate monitoring of rotor movement, enter the rated angular speed of the rotor when powered at 18V. + To allow the approximate monitoring of rotor movement, enter the rated angular speed of the rotor when powered at 18V. + + +- ++ + E + Eastern Hemisphere + E + + +- +- ++ ++ + W + Western Hemisphere + W + + +- + Position Index %1 +- Position Index %1 ++ Position Index %1 + + +- + Orbital Position +- Orbital Position ++ Orbital Position + + +- ++ + None + None + + +- + Position #%1 (%2) +- Position #%1 (%2) ++ Position #%1 (%2) + + +- + Rotor Position Map +- Rotor Position Map ++ Rotor Position Map + + +- ++ + Rotor Configuration + Rotor Configuration + + +- ++ + Positions + Positions + + +- ++ + Rotor position setup. + Rotor position setup. + + +- ++ + Single (Europe) + Single (Europe) + + +- ++ + Universal (Europe) + Universal (Europe) + +@@ -5275,128 +5543,132 @@ + The Cartesian longitude for your location. Use negative numbers for western coordinates. + + +- +- ++ + Unicable + Unicable + + +- ++ ++ Position #%1 ++ Position #%1 ++ ++ ++ + Userband + Userband + + +- ++ + Unicable userband ID (0-7) or sometimes (1-8) + Unicable userband ID (0-7) or sometimes (1-8) + + +- ++ + Frequency (MHz) + Frequency (MHz) + + +- ++ + Unicable userband frequency (usually 1210, 1420, 1680 and 2040 MHz) + Unicable userband frequency (usually 1210, 1420, 1680 and 2040 MHz) + + +- ++ + PIN code +- PIN code ++ PIN Code + + +- ++ + Unicable PIN code (-1 disabled, 0 - 255) + Unicable PIN code (-1 disabled, 0 - 255) + + +- ++ + Unicable Configuration + Unicable Configuration + + +- ++ + Circular (N. America) + Circular (N. America) + + +- ++ + Linear (N. America) + Linear (N. America) + + +- ++ + C Band + C Band + + +- ++ + DishPro Bandstacked + DishPro Bandstacked + + +- ++ + LNB Preset + LNB Preset + + +- ++ + Select the LNB preset from the list, or choose 'Custom' and set the advanced settings below. + Select the LNB preset from the list, or choose 'Custom' and set the advanced settings below. + + +- ++ + Custom + Custom + + +- ++ + LNB Type + LNB Type + + +- ++ + Select the type of LNB from the list. + Select the type of LNB from the list. + + +- ++ + Legacy (Fixed) + Legacy (Fixed) + + +- ++ + Standard (Voltage) + Standard (Voltage) + + +- ++ + Universal (Voltage & Tone) + Universal (Voltage & Tone) + + +- ++ + Bandstacked + Bandstacked + + +- ++ + LNB LOF Switch (MHz) + LNB LOF Switch (MHz) + + +- ++ + This defines at what frequency the LNB will do a switch from high to low setting, and vice versa. + This defines at what frequency the LNB will do a switch from high to low setting, and vice versa. + + +- ++ + LNB LOF Low (MHz) + LNB LOF Low (MHz) + + +- ++ + This defines the offset the frequency coming from the LNB will be in low setting. For bandstacked LNBs this is the vertical/right polarization band. + This defines the offset the frequency coming from the LNB will be in low setting. For bandstacked LNBs this is the vertical/right polarization band. + +@@ -5411,77 +5683,75 @@ + This defines the offset the frequency coming from the LNB will be in high setting. For bandstacked LNBs this is the horizontal/left polarization band. + + +- ++ + LNB Reversed + LNB Reversed + + +- ++ + This defines whether the signal reaching the LNB is reversed from normal polarization. This happens to circular signals bouncing twice on a toroidal dish. + This defines whether the signal reaching the LNB is reversed from normal polarization. This happens to circular signals bouncing twice on a toroidal dish. + + +- ++ + LNB Configuration + LNB Configuration + + +- + Select Type of Device +- Select Type of Device ++ Select Type of Device + + +- + DiSEqC Device Tree +- DiSEqC Device Tree ++ DiSEqC Device Tree + + +- ++ + Choose a port to use for this switch. + Choose a port to use for this switch. + + +- ++ + Port %1 + Port %1 + + +- ++ + Choose a satellite position. + Choose a satellite position. + + +- ++ + Locates the satellite you wish to point to with the longitude along the Clarke Belt of the satellite [-180..180] and its hemisphere. + Locates the satellite you wish to point to with the longitude along the Clarke Belt of the satellite [-180..180] and its hemisphere. + + +- ++ + Longitude (degrees) + Longitude (degrees) + + +- ++ + Hemisphere + Hemisphere + + +- ++ + Eastern + Eastern + + +- ++ + Western + Western + + +- ++ + Unicable satellite position (A/B) + Unicable satellite position (A/B) + + +- ++ + DTV Device Configuration + DTV Device Configuration + +@@ -5489,29 +5759,33 @@ + + EPGSettings + +- ++ + Guide starts at channel +- Guide starts at channel ++ Guide Starts at Channel + + +- ++ + The program guide starts on this channel if it is run from outside of Live TV mode. Leave blank to enable Live TV automatic start channel. + The program guide starts on this channel if it is run from outside of Live TV mode. Leave blank to enable Live TV automatic start channel. + + +- ++ + Record threshold +- Record threshold ++ Record Threshold + + +- ++ + Pressing SELECT on a show that is at least this many minutes into the future will schedule a recording. + Pressing SELECT on a show that is at least this many minutes into the future will schedule a recording. + + +- ++ ++ Program Guide ++ Program Guide ++ ++ + Program Guide %1/%2 +- Program Guide %1/%2 ++ Program Guide %1/%2 + + + +@@ -5529,12 +5803,12 @@ + + + Enter new category +- Enter new category ++ Enter category name: + + + + No image found +- No image found ++ No Image Found + + + +@@ -5545,22 +5819,22 @@ + + + Downloading selected artwork... +- Downloading selected artwork... ++ Downloading Selected Artwork... + + + + Searching for available artwork... +- Searching for available artwork... ++ Searching for Available Artwork... + + + + Failed to retrieve image +- Failed to retrieve image ++ Failed to Retrieve Image + + + + Check logs +- Check logs ++ Check Logs + + + +@@ -5611,7 +5885,7 @@ + + + Yes, Exit now +- Yes, Exit now ++ Yes, Exit + + + +@@ -5644,12 +5918,12 @@ + + + Yes please +- Yes please ++ Yes, Fix + + + + No, I know what I am doing +- No, I know what I am doing ++ No, Do Not Fix + + + +@@ -5668,34 +5942,51 @@ + + ExternalConfigurationGroup + +- ++ ++ Command path ++ Command Path ++ ++ ++ + A 'black box' application controlled via stdin, status on stderr and TransportStream read from stdout +- A 'black box' application controlled via stdin, status on stderr and TransportStream read from stdout ++ A 'black box' application controlled via stdin, status on stderr and TransportStream read from stdout. + + +- ++ + File info +- File info ++ File Info + + +- ++ + '%1' is valid. + '%1' is valid. + + +- ++ ++ WARNING: '%1' is not readable. ++ WARNING: '%1' is not readable. ++ ++ ++ ++ WARNING: '%1' is not executable. ++ WARNING: '%1' is not executable. ++ ++ ++ ++ WARNING: '%1' does not exist. ++ WARNING: '%1' does not exist. ++ ++ + '%1' is not readable. +- '%1' is not readable. ++ '%1' is not readable. + + +- + '%1' is not executable. +- '%1' is not executable. ++ '%1' is not executable. + + +- + '%1' does not exist. +- '%1' does not exist. ++ '%1' does not exist. + + + +@@ -5708,22 +5999,22 @@ + + + The command to use when playing this kind of file. To use MythTV's Internal player, use "Internal" as the player. For all other players, you can use %s to substitute the filename. +- The command to use when playing this kind of file. To use MythTV's Internal player, use "Internal" as the player. For all other players, you can use %s to substitute the filename. ++ The command to use when playing this kind of file. To use MythTV's Internal player, use "Internal" as the player. For all other players, you can use %s to substitute the filename. + + + + When checked, this will cause the file extension to be ignored in scans of your library. +- When checked, this will cause the file extension to be ignored in scans of your library. ++ When enabled, this will cause the file extension to be ignored in scans of your library. + + + + When checked, this will cause the global player settings to override this one. +- When checked, this will cause the global player settings to override this one. ++ When enabled, this will cause the global player settings to override this one. + + + + Save and exit this screen. +- Save and exit this screen. ++ Save and Exit + + + +@@ -5738,7 +6029,7 @@ + + + Enter the new extension: +- Enter the new extension: ++ Enter new extension: + + + +@@ -5747,45 +6038,45 @@ + + Could not open %1 + %1 is the filename +- Could not open %1 ++ Could Not Open %1 + + + + File too small (%1B) + %1 is the file size +- File too small (%1B) ++ File Too Small (%1B) + + + + Improper permissions +- Improper permissions ++ Improper Permissions + + + + Cannot seek in file +- Cannot seek in file ++ Cannot Seek in File + + +- ++ + Failed to open remote file %1 + %1 is the filename +- Failed to open remote file %1 ++ Failed to Open Remote File %1 + + + + FileTransferWorker + +- ++ + Moving + Moving + + +- ++ + Copying + Copying + + +- ++ + Complete + Complete + +@@ -5793,15 +6084,88 @@ + + FirewireDesc + +- ++ + Description + Description + + + ++ GUIStartup ++ ++ ++ Do you really want to exit MythTV? ++ Do you really want to exit MythTV? ++ ++ ++ ++ GalleryDbSettings ++ ++ ++ Database Settings ++ Database Settings ++ ++ ++ ++ (Requires edit privileges) ++ (Requires Edit Privileges) ++ ++ ++ ++ Scanner Exclusions ++ Scanner Exclusions ++ ++ ++ ++ Comma-separated list of filenames/directory names to be ignored when scanning. Glob wildcards * and ? are valid. ++ Comma-separated list of file/directory names to be ignored when scanning. Glob wildcards * and ? are valid. ++ ++ ++ ++ Start Gallery when media inserted ++ Start Gallery when Media Inserted ++ ++ ++ ++ Set to automatically start Gallery when media (USB/CD's containing images) are inserted. ++ Set to automatically start Gallery when media (USB/CD's containing images) are inserted. ++ ++ ++ ++ Password ++ Password ++ ++ ++ ++ When set all actions that modify the filesystem or database are protected (copy, move, transform, hiding, covers). Hidden items cannot be viewed. Applies to all frontends. ++Disabled by an empty password. Privileges persist until Gallery exits to main menu. ++ When set all actions that modify the filesystem or database are protected (copy, move, transform, hiding, covers). Hidden items cannot be viewed. Applies to all frontends. ++Disabled by an empty password. Privileges persist until Gallery exits to main menu. ++ ++ ++ ++ Reset Image Database ++ Reset Image Database ++ ++ ++ ++ Clears the database and thumbnails for the Image Storage Group. A rescan will be required. Images for local media will persist. ++ Clears the database and thumbnails for the Image Storage Group. A rescan will be required. Images for local media will persist. ++ ++ ++ ++ Clear Now! ++ Clear Now! ++ ++ ++ ++ Warning! This will erase settings for: hidden images, directory covers and re-orientations. You will have to set them again after re-scanning. ++ Warning! This will erase settings for hidden images, directory covers, and re-orientations. You will have to set them again after re-scanning. ++ ++ ++ + GallerySettings + +- ++ + Gallery Settings + Gallery Settings + +@@ -5809,135 +6173,135 @@ + + GallerySlideView + +- +- ++ ++ + Hide + Hide + + +- ++ + Slideshow Options + Slideshow Options + + +- ++ + Play Video + Play Video + + +- ++ + Stop + Stop + + +- ++ + Start SlideShow + Start SlideShow + + +- ++ + Turn Repeat Off + Turn Repeat Off + + +- ++ + Turn Repeat On + Turn Repeat On + + +- ++ + Hide Captions + Hide Captions + + +- ++ + Show Captions + Show Captions + + +- ++ + More Details + More Details + + +- ++ + Less Details + Less Details + + +- ++ + Show Details + Show Details + + +- ++ + Hide Details + Hide Details + + +- ++ + Transform Options + Transform Options + + +- ++ + Rotate CW + Rotate CW + + +- ++ + Rotate CCW + Rotate CCW + + +- ++ + Flip Horizontal + Flip Horizontal + + +- ++ + Flip Vertical + Flip Vertical + + +- ++ + Reset to Exif + Reset to Exif + + +- ++ + Zoom In + Zoom In + + +- ++ + Zoom Out + Zoom Out + + +- ++ + Transforms + Transforms + + +- ++ + Stopped + Stopped + + +- ++ + Playing + Playing + + +- ++ + Loading + Loading + + +- ++ + Failed to load %1 +- Failed to load %1 ++ Failed to Load %1 + + + +@@ -5950,7 +6314,7 @@ + Start + + +- ++ + End + Slideshow has reached last slide + End +@@ -5959,12 +6323,12 @@ + + GalleryThumbView + +- ++ + Invalid Name + Invalid Name + + +- ++ + No images found. + Scan storage group using menu, + or insert/mount local media. +@@ -5975,477 +6339,477 @@ + + + +- ++ + %L1 of %L3 + %L1 of %L3 + + +- ++ + Hidden + Hidden + + +- ++ + Pictures + Pictures + + +- ++ + Videos + Videos + + +- ++ + Gallery Options + Gallery Options + + +- ++ + Enable Edits + Enable Edits + + +- ++ + Stop Scan + Stop Scan + + +- ++ + Scan Storage Group + Scan Storage Group + + +- ++ + Settings + Settings + + +- +- +- +- ++ ++ ++ ++ + %L1 marked +- %L1 marked ++ %L1 Marked + + +- ++ + Unmark File + Unmark File + + +- ++ + Mark File + Mark File + + +- ++ + Unmark Directory + Unmark Directory + + +- ++ + Mark Directory + Mark Directory + + +- ++ + Mark All + Mark All + + +- ++ + Unmark All + Unmark All + + +- ++ + Invert Marked + Invert Marked + + +- ++ + Mark + Mark + + +- ++ + Move Marked Into + Move Marked Into + + +- ++ + Copy Marked Into + Copy Marked Into + + +- ++ + Paste + Paste + + +- ++ + Rotate Marked CW + Rotate Marked CW + + +- ++ + Rotate Marked CCW + Rotate Marked CCW + + +- ++ + Flip Marked Horizontal + Flip Marked Horizontal + + +- ++ + Flip Marked Vertical + Flip Marked Vertical + + +- ++ + Reset Marked to Exif + Reset Marked to Exif + + +- +- ++ ++ + Transforms + Transforms + + +- ++ + Rotate CW + Rotate CW + + +- ++ + Rotate CCW + Rotate CCW + + +- ++ + Flip Horizontal + Flip Horizontal + + +- ++ + Flip Vertical + Flip Vertical + + +- ++ + Reset to Exif + Reset to Exif + + +- ++ + Hide Marked + Hide Marked + + +- ++ + Unhide Marked + Unhide Marked + + +- ++ + Delete Marked + Delete Marked + + +- ++ + Unhide + Unhide + + +- ++ + Hide + Hide + + +- ++ + Use as Cover + Use as Cover + + +- ++ + Delete + Delete + + +- ++ + Rename + Rename + + +- ++ + Reset Cover + Reset Cover + + +- ++ + Create Directory + Create Directory + + +- ++ + Import + Import + + +- ++ + Eject media +- Eject media ++ Eject Media + + +- ++ + Actions + Actions + + +- +- ++ ++ + Shuffled + Shuffled + + +- +- ++ ++ + Random + Random + + +- +- ++ ++ + Seasonal + Seasonal + + +- +- ++ ++ + Ordered + Ordered + + +- +- ++ ++ + Slideshow + Slideshow + + +- ++ + Directory + Directory + + +- ++ + Recursive + Recursive + + +- ++ + Current Directory + Current Directory + + +- ++ + Slideshow Order + Slideshow Order + + +- ++ + Change Order + Change Order + + +- ++ + Turn Repeat Off + Turn Repeat Off + + +- ++ + Turn Repeat On + Turn Repeat On + + +- ++ + Show Options + Show Options + + +- ++ + Hide Pictures + Hide Pictures + + +- ++ + Hide Videos + Hide Videos + + +- ++ + Show Videos + Show Videos + + +- ++ + Show Pictures + Show Pictures + + +- +- ++ ++ + Image Captions + Image Captions + + +- +- ++ ++ + Name + Name + + +- +- ++ ++ + Date + Date + + +- ++ + Comment + Comment + + +- +- ++ ++ + None + None + + +- +- ++ ++ + Directory Captions + Directory Captions + + +- ++ + Hide Hidden Items + Hide Hidden Items + + +- ++ + Show Hidden Items + Show Hidden Items + + +- ++ + Zoom Out + Zoom Out + + +- ++ + Zoom In + Zoom In + + +- ++ + Show Details + Show Details + + +- ++ + Hide Details + Hide Details + + +- ++ + Show + Show + + +- ++ + Do you want to delete + %1 ? + Do you want to delete + %1 ? + + +- ++ + Do you want to delete all marked files ? + Do you want to delete all marked files ? + + +- ++ + Enter a new name: +- Enter a new name: ++ Enter name: + + +- ++ + Enter password: + Enter password: + + +- ++ + Enter name of new directory +- Enter name of new directory ++ Enter directory name: + + +- +- ++ ++ + No files specified +- No files specified ++ No Files Specified + + +- ++ + No images +- No images ++ No Images + + +- ++ + Copying files +- Copying files ++ Copying Files + + +- ++ + Failed to copy %L1/%Ln file(s) + +- Failed to copy %L1/%Ln file +- Failed to copy %L1/%Ln files ++ Failed to Copy %L1/%Ln File ++ Failed to Copy %L1/%Ln Files + + + +- ++ + No images specified +- No images specified ++ No Images Specified + + +- ++ + Moving files +- Moving files ++ Moving Files + + +- ++ + Failed to move %L1/%Ln file(s) + +- Failed to move %L1/%Ln file +- Failed to move %L1/%Ln files ++ Failed to Move %L1/%Ln File ++ Failed to Move %L1/%Ln Files + + + +- ++ + Failed to create temporary directory. + Failed to create temporary directory. + + +- ++ + Running Import command. + Please wait... + Running Import command. + Please wait... + + +- ++ + Import command failed. + Error: %1 + Import command failed. +@@ -6455,117 +6819,117 @@ + + GeneralRecPrioritiesSettings + +- ++ + Avoid back to back recordings +- Avoid back to back recordings ++ Avoid Back to Back Recordings + + +- ++ + Selects the situations where the scheduler will avoid assigning shows to the same card if their end time and start time match. This will be allowed when necessary in order to resolve conflicts. + Selects the situations where the scheduler will avoid assigning shows to the same card if their end time and start time match. This will be allowed when necessary in order to resolve conflicts. + + +- ++ + Never + Never + + +- ++ + Different Channels + Different Channels + + +- ++ + Always + Always + + +- ++ + Preferred input priority +- Preferred input priority ++ Preferred Input Priority + + +- ++ + Additional priority when a showing matches the preferred input selected in the 'Scheduling Options' section of the recording rule. + Additional priority when a showing matches the preferred input selected in the 'Scheduling Options' section of the recording rule. + + +- ++ + HDTV recording priority +- HDTV recording priority ++ HDTV Recording Priority + + +- ++ + Additional priority when a showing is marked as an HDTV broadcast in the TV listings. + Additional priority when a showing is marked as an HDTV broadcast in the TV listings. + + +- ++ + Widescreen recording priority +- Widescreen recording priority ++ Widescreen Recording Priority + + +- ++ + Additional priority when a showing is marked as widescreen in the TV listings. + Additional priority when a showing is marked as widescreen in the TV listings. + + +- ++ + Sign language recording priority +- Sign language recording priority ++ Sign Language Recording Priority + + +- ++ + Additional priority when a showing is marked as having in-vision sign language. + Additional priority when a showing is marked as having in-vision sign language. + + +- ++ + In-vision Subtitles Recording Priority + In-vision Subtitles Recording Priority + + +- ++ + Additional priority when a showing is marked as having in-vision subtitles. + Additional priority when a showing is marked as having in-vision subtitles. + + +- ++ + Subtitles/CC recording priority +- Subtitles/CC recording priority ++ Subtitles/CC Recording Priority + + +- ++ + Additional priority when a showing is marked as having subtitles or closed captioning (CC) available. + Additional priority when a showing is marked as having subtitles or closed captioning (CC) available. + + +- ++ + Hard of hearing priority +- Hard of hearing priority ++ Hard of Hearing Priority + + +- ++ + Additional priority when a showing is marked as having support for viewers with impaired hearing. + Additional priority when a showing is marked as having support for viewers with impaired hearing. + + +- ++ + Audio described priority +- Audio described priority ++ Audio Described Priority + + +- ++ + Additional priority when a showing is marked as being Audio Described. + Additional priority when a showing is marked as being Audio Described. + + +- ++ + Scheduler Options + Scheduler Options + + +- ++ + Accessibility Options + Accessibility Options + +@@ -6573,270 +6937,271 @@ + + GeneralSettings + +- ++ + Commercial detection method +- Commercial detection method ++ Commercial Detection Method + + +- ++ + This determines the method used by MythTV to detect when commercials start and end. + This determines the method used by MythTV to detect when commercials start and end. + + +- ++ + Enable experimental speedup of commercial detection +- Enable experimental speedup of commercial detection ++ Experimental Speedup of Commercial Detection + + +- ++ + If enabled, experimental commercial detection speedups will be enabled. + If enabled, experimental commercial detection speedups will be enabled. + + +- ++ + Deferral days for auto transcode jobs +- Deferral days for auto transcode jobs ++ Deferral Days for Auto Transcode Jobs + + +- ++ + If non-zero, automatic transcode jobs will be scheduled to run this many days after a recording completes instead of immediately afterwards. + If non-zero, automatic transcode jobs will be scheduled to run this many days after a recording completes instead of immediately afterwards. + + +- ++ + Strict commercial detection +- Strict commercial detection ++ Strict Commercial Detection + + +- ++ + Enable stricter commercial detection code. Disable if some commercials are not being detected. + Enable stricter commercial detection code. Disable if some commercials are not being detected. + + +- ++ + Extra disk space (GB) +- Extra disk space (GB) ++ Extra Disk Space (GB) + + +- ++ + Extra disk space (in gigabytes) beyond what MythTV requires that you want to keep free on the recording file systems. + Extra disk space (in gigabytes) beyond what MythTV requires that you want to keep free on the recording file systems. + + +- ++ + Time to retain deleted recordings (days) +- Time to retain deleted recordings (days) ++ Time to Retain Deleted Recordings (days) + + +- ++ + Determines the maximum number of days before undeleting a recording will become impossible. A value of zero means the recording will be permanently deleted between 5 and 20 minutes later. A value of minus one means recordings will be retained until space is required. A recording will always be removed before this time if the space is needed for a new recording. + Determines the maximum number of days before undeleting a recording will become impossible. A value of zero means the recording will be permanently deleted between 5 and 20 minutes later. A value of minus one means recordings will be retained until space is required. A recording will always be removed before this time if the space is needed for a new recording. + + +- ++ + Auto-Expire method +- Auto-Expire method ++ Auto-Expire Method + + +- ++ + Oldest show first +- Oldest show first ++ Oldest Show First + + +- ++ + Lowest priority first +- Lowest priority first ++ Lowest Priority First + + +- ++ + Weighted time/priority combination +- Weighted time/priority combination ++ Weighted Time/Priority Combination + + +- ++ + Method used to determine which recorded shows to delete first. Live TV recordings will always expire before normal recordings. + Method used to determine which recorded shows to delete first. Live TV recordings will always expire before normal recordings. + + +- ++ + Watched before unwatched +- Watched before unwatched ++ Watched Before Unwatched + + +- ++ + If enabled, programs that have been marked as watched will be expired before programs that have not been watched. + If enabled, programs that have been marked as watched will be expired before programs that have not been watched. + + +- ++ + Priority weight +- Priority weight ++ Priority Weight + + +- ++ + The number of days bonus a program gets for each priority point. This is only used when the Weighted time/priority Auto-Expire method is selected. +- The number of days bonus a program gets for each priority point. This is only used when the Weighted time/priority Auto-Expire method is selected. ++ The number of days bonus a program gets for each priority point. This is only used when the Weighted time/priority Auto-expire method is selected. + + +- ++ + Live TV max age (days) +- Live TV max age (days) ++ Live TV Max Age (days) + + +- ++ + Auto-Expire will force expiration of Live TV recordings when they are this many days old. Live TV recordings may also be expired early if necessary to free up disk space. + Auto-Expire will force expiration of Live TV recordings when they are this many days old. Live TV recordings may also be expired early if necessary to free up disk space. + + +- ++ + Re-record watched +- Re-record watched ++ Re-record Watched + + +- ++ + If enabled, programs that have been marked as watched and are Auto-Expired will be re-recorded if they are shown again. + If enabled, programs that have been marked as watched and are Auto-Expired will be re-recorded if they are shown again. + + +- ++ + Time to record before start of show (secs) +- Time to record before start of show (secs) ++ Time to Record Before Start of Show (secs) + + +- ++ + This global setting allows the recorder to start before the scheduled start time. It does not affect the scheduler. It is ignored when two shows have been scheduled without enough time in between. + Temporary fix + This global setting allows the recorder to start before the scheduled start time. It does not affect the scheduler. It is ignored when two shows have been scheduled without enough time in-between. + + +- ++ + Time to record past end of show (secs) +- Time to record past end of show (secs) ++ Time to Record Past End of Show (secs) + + +- ++ + This global setting allows the recorder to record beyond the scheduled end time. It does not affect the scheduler. It is ignored when two shows have been scheduled without enough time in between. + Temporary fix + This global setting allows the recorder to record beyond the scheduled end time. It does not affect the scheduler. It is ignored when two shows have been scheduled without enough time in-between. + + +- ++ + Category of shows to be extended +- Category of shows to be extended ++ Category of Shows to be Extended + + +- ++ + For a special category (e.g. "Sports event"), request that shows be autoextended. Only works if a show's category can be determined. +- For a special category (e.g. "Sports event"), request that shows be autoextended. Only works if a show's category can be determined. ++ For a special category (e.g. "Sports Event"), request that shows be autoextended. Only works if a show's category can be determined. + + +- ++ + Record past end of show (mins) +- Record past end of show (mins) ++ Record Past End of Show (mins) + + +- ++ + For the specified category, an attempt will be made to extend the recording by the specified number of minutes. It is ignored when two shows have been scheduled without enough time in-between. + For the specified category, an attempt will be made to extend the recording by the specified number of minutes. It is ignored when two shows have been scheduled without enough time in-between. + + +- ++ + Category record over-time +- Category record over-time ++ Category Record Over Time + + +- ++ + Channel ordering +- Channel ordering ++ Channel Ordering + + +- ++ + channel number + channel number + + +- +- +- ++ ++ ++ + callsign + callsign + + +- ++ + Channel format +- Channel format ++ Channel Format + + +- +- ++ ++ + number + number + + +- +- ++ ++ + number callsign + number callsign + + +- +- ++ ++ + number name + number name + + +- +- ++ ++ + name + name + + +- ++ + Your preferred channel format. + Your preferred channel format. + + +- ++ + Long channel format +- Long channel format ++ Long Channel Format + + +- ++ + Your preferred long channel format. + Your preferred long channel format. + + +- ++ + Browse/change channels from Channel Group +- Browse/change channels from Channel Group ++ Browse/Change Channels from Channel Group + + +- ++ + If enabled, Live TV will browse or change channels from the selected channel group. The "All Channels" channel group may be selected to browse all channels. + If enabled, Live TV will browse or change channels from the selected channel group. The "All Channels" channel group may be selected to browse all channels. + + +- ++ ++ + General (Basic) + General (Basic) + + +- ++ + General (Auto-Expire) + General (Auto-Expire) + + +- ++ + General (Jobs) + General (Jobs) + + +- ++ + General (Advanced) + General (Advanced) + + +- ++ + General (Channel Groups) + General (Channel Groups) + +@@ -6866,7 +7231,7 @@ + + + Exit this wizard, save no changes. +- Exit this wizard, save no changes. ++ Exit Without Saving + + + +@@ -6876,7 +7241,7 @@ + + + Submitting your hardware profile... +- Submitting your hardware profile... ++ Submitting Your Hardware Profile... + + + +@@ -6911,7 +7276,7 @@ + + + Deleting your hardware profile... +- Deleting your hardware profile... ++ Deleting Your Hardware Profile... + + + +@@ -6944,12 +7309,12 @@ + + + Save your changes and close this window. +- Save your changes and close this window. ++ Save and Exit + + + + Discard your changes and close this window. +- Discard your changes and close this window. ++ Exit Without Saving + + + +@@ -6959,159 +7324,159 @@ + + + Searching for data sources... +- Searching for data sources... ++ Searching for Data Sources... + + + + GuideGrid + +- ++ + You don't have any channels defined in the database. + The program guide will have nothing to show you. + You don't have any channels defined in the database. + The program guide will have nothing to show you. + + +- ++ + Channel group '%1' doesn't have any channels defined. + The program guide will have nothing to show you. + Channel group '%1' doesn't have any channels defined. + The program guide will have nothing to show you. + + +- ++ + Guide Options + Guide Options + + +- +- ++ ++ + Change to Channel + Change to Channel + + +- +- ++ ++ + Watch This Channel + Watch This Channel + + +- +- ++ ++ + Record This + Record This + + +- +- +- ++ ++ ++ + Recording Options + Recording Options + + +- +- ++ ++ + Jump to Time + Jump to Time + + +- +- ++ ++ + Channel Search + Channel Search + + +- +- ++ ++ + Edit Recording Status + Edit Recording Status + + +- +- ++ ++ + Edit Schedule + Edit Schedule + + +- +- ++ ++ + Previously Recorded + Previously Recorded + + +- +- +- +- ++ ++ ++ ++ + Unknown + Unknown program title + Unknown + + +- ++ + Jump to a specific date and time in the guide +- Jump to a specific date and time in the guide ++ Jump to a Specific Date and Time in the Guide + + +- +- ++ ++ + Program Details + Program Details + + +- +- ++ ++ + Show Upcoming + Show Upcoming + + +- +- ++ ++ + Custom Edit + Custom Edit + + +- +- ++ ++ + Delete Rule + Delete Rule + + +- +- ++ ++ + Reverse Channel Order + Reverse Channel Order + + +- +- ++ ++ + Add To Channel Group +- Add To Channel Group ++ Add to Channel Group + + +- +- ++ ++ + Remove from Channel Group + Remove from Channel Group + + +- +- ++ ++ + Choose Channel Group + Choose Channel Group + + +- ++ + You don't have any channel groups defined + You don't have any channel groups defined + + +- ++ + Select Channel Group + Select Channel Group + + +- ++ + Delete '%1' %2 rule? + Delete '%1' %2 rule? + +@@ -7119,12 +7484,12 @@ + + HDHomeRunConfigurationGroup + +- ++ + Description + Description + + +- ++ + Recording Options + Recording Options + +@@ -7132,22 +7497,22 @@ + + HDHomeRunDeviceID + +- ++ + Device ID + Device ID + + +- ++ + Device ID of HDHomeRun device +- Device ID of HDHomeRun device ++ Device ID of HDHomeRun Device + + + + HDHomeRunDeviceIDList + +- +- +- ++ ++ ++ + Manually Enter IP Address + Manually Enter IP Address + +@@ -7155,122 +7520,122 @@ + + HDPVRConfigurationGroup + +- ++ + Probed info +- Probed info ++ Probed Info + + +- ++ + Failed to open +- Failed to open ++ Failed to Open + + +- ++ + Failed to probe +- Failed to probe ++ Failed to Probe + + + + HelpPopup + +- ++ + Commercials are flagged +- Commercials are flagged ++ Commercials are Flagged + + +- ++ + An editing cutlist is present +- An editing cutlist is present ++ Editing Cutlist is Present + + +- ++ + The program is able to auto-expire +- The program is able to auto-expire ++ Program is Set to Auto-expire + + +- ++ + Commercials are being flagged +- Commercials are being flagged ++ Commercials are Being Flagged + + +- ++ + A bookmark is set +- A bookmark is set ++ Bookmark is Set + + +- ++ + Recording is in use +- Recording is in use ++ Recording is In Use + + +- ++ + Recording has been transcoded +- Recording has been transcoded ++ Recording has been Transcoded + + +- ++ + Recording is in Mono + Recording is in Mono + + +- ++ + Recording is in Stereo + Recording is in Stereo + + +- ++ + Recording is in Surround Sound + Recording is in Surround Sound + + +- ++ + Recording is in Dolby Surround Sound + Recording is in Dolby Surround Sound + + +- ++ + Recording is Closed Captioned + Recording is Closed Captioned + + +- ++ + Recording has Subtitles Available + Recording has Subtitles Available + + +- ++ + Recording is Subtitled + Recording is Subtitled + + +- ++ + Recording is in 1080i/p High Definition + Recording is in 1080i/p High Definition + + +- ++ + Recording is in 720p High Definition + Recording is in 720p High Definition + + +- ++ + Recording is in High Definition + Recording is in High Definition + + +- ++ + Recording is Widescreen + Recording is Widescreen + + +- ++ + Recording is in HD using H.264 codec +- Recording is in HD using H.264 codec ++ Recording is in HD Using H.264 Codec + + +- ++ + Recording has been watched +- Recording has been watched ++ Recording has been Watched + + + +@@ -7296,7 +7661,7 @@ + + + Package installed +- Package installed ++ Package Installed + + + +@@ -7747,7 +8112,7 @@ + + + Use Link-Local +- Use Link-Local ++ Use Link-local + + + +@@ -8060,7 +8425,7 @@ + + + Auto-Expire +- Auto-Expire ++ Auto-expire + + + +@@ -8080,7 +8445,7 @@ + + + Delete and Re-Record +- Delete and Re-Record ++ Delete and Re-record + + + +@@ -8165,7 +8530,7 @@ + + + Allow Auto-Expire +- Allow Auto-Expire ++ Allow Auto-expire + + + +@@ -8449,7 +8814,7 @@ + + + Loading ... +- Loading ... ++ Loading... + + + +@@ -8661,7 +9026,7 @@ + + + Encountered malformed channel +- Encountered malformed channel ++ Encountered Malformed Channel + + + +@@ -8691,34 +9056,34 @@ + + ImportConfigurationGroup + +- ++ + A local file used to simulate a recording. Leave empty to use MythEvents to trigger an external program to import recording files. + A local file used to simulate a recording. Leave empty to use MythEvents to trigger an external program to import recording files. + + +- ++ + File info +- File info ++ File Info + + +- ++ + File size +- File size ++ File Size + + +- ++ + %1 MB + %1 MB + + +- ++ + File not readable +- File not readable ++ File Not Readable + + +- ++ + File %1 does not exist +- File %1 does not exist ++ File %1 Does Not Exist + + + +@@ -8726,27 +9091,27 @@ + + + Name of the icon file +- Name of the icon file ++ Name of the Icon File + + + + List of possible icon files +- List of possible icon files ++ List of Possible Icon Files + + + + Enter text here for the manual search +- Enter text here for the manual search ++ Enter search text: + + + + Manually search for the text +- Manually search for the text ++ Manually Search for the Text + + + + Skip this icon +- Skip this icon ++ Skip This Icon + + + +@@ -8761,7 +9126,7 @@ + + + No matches found for "%1" +- No matches found for "%1" ++ No Matches Found for "%1" + + + +@@ -8772,7 +9137,7 @@ + + + No matches found for %1 +- No matches found for %1 ++ No Matches Found for %1 + + + +@@ -8787,12 +9152,12 @@ + + + Initializing, please wait... +- Initializing, please wait... ++ Initializing, Please Wait... + + + + Downloading, please wait... +- Downloading, please wait... ++ Downloading, Please Wait... + + + +@@ -8805,20 +9170,20 @@ + + + Choose icon for channel %1 +- Choose icon for channel %1 ++ Choose Icon for Channel %1 + + +- ++ + You now have the opportunity to transmit your choices back to mythtv.org so that others can benefit from your selections. + You now have the opportunity to transmit your choices back to mythtv.org so that others can benefit from your selections. + + +- ++ + Failed to submit icon choices. + Failed to submit icon choices. + + +- ++ + Icon choices submitted successfully. + Icon choices submitted successfully. + +@@ -8826,17 +9191,17 @@ + + ImportSettings + +- ++ + Import + Import + + +- ++ + Import Command + Import Command + + +- ++ + Command/script that can be run from the menu. + %TMPDIR% will be replaced by a new temporary directory, which the import dialog will show automatically. The directory will be removed when Gallery exits. + Command/script that can be run from the menu. +@@ -8877,7 +9242,7 @@ + + + Dir size +- Dir size ++ Dir Size + + + +@@ -8913,7 +9278,7 @@ + + + Last scan +- Last scan ++ Last Scan + + + +@@ -8923,7 +9288,7 @@ + + + File size +- File size ++ File Size + + + +@@ -8940,6 +9305,13 @@ + + + ++ IpAddressSettings ++ ++ Allow this backend to receive connections on any IP Address assigned to it. Recommended for most users for ease and reliability. ++ Allow this backend to receive connections on any IP Address assigned to it. Recommended for most users for ease and reliability. ++ ++ ++ + JobQueue + + +@@ -8954,7 +9326,7 @@ + + + Look up Metadata +- Look up Metadata ++ Look Up Metadata + + + +@@ -8969,12 +9341,12 @@ + + + Unable to retrieve program info from database +- Unable to retrieve program info from database ++ Unable to Retrieve Program Info from Database + + + + Program has been deleted +- Program has been deleted ++ Program has been Deleted + + + +@@ -8989,7 +9361,7 @@ + + + Finished. +- Finished. ++ Finished + + + +@@ -9005,12 +9377,12 @@ + + + Retry limit exceeded +- Retry limit exceeded ++ Retry Limit Exceeded + + + + Could not open new database connection for metadata lookup. +- Could not open new database connection for metadata lookup. ++ Could Not Open New Database Connection for Metadata Lookup + + + +@@ -9020,12 +9392,12 @@ + + + Unable to find mythmetadatalookup +- Unable to find mythmetadatalookup ++ Unable to Find mythmetadatalookup + + + + Metadata Lookup Complete. +- Metadata Lookup Complete. ++ Metadata Lookup Complete + + + +@@ -9036,7 +9408,7 @@ + + + Could not open new database connection for commercial detector. +- Could not open new database connection for commercial detector. ++ Could Not Open New Database Connection for Commercial Detector + + + +@@ -9046,7 +9418,7 @@ + + + Unable to find mythcommflag +- Unable to find mythcommflag ++ Unable to Find mythcommflag + + + +@@ -9061,32 +9433,32 @@ + + + Successfully Completed. +- Successfully Completed. ++ Successfully Completed + + + + + Aborted by user +- Aborted by user ++ Aborted by User + + + + + Unable to open file or init decoder +- Unable to open file or init decoder ++ Unable to Open File or Initialize Decoder + + + + + Failed with exit status %1 +- Failed with exit status %1 ++ Failed with Exit Status %1 + + + + %n commercial break(s) + +- %n commercial break +- %n commercial breaks ++ %n Commercial Break ++ %n Commercial Breaks + + + +@@ -9181,43 +9553,43 @@ + + + Waiting for key press +- Waiting for key press ++ Waiting for Key Press + + + + Pressed key not recognized +- Pressed key not recognized ++ Pressed Key Not Recognized + + + + Add key '%1'? +- Add key '%1'? ++ Add Key '%1'? + + + + LCDProcClient + +- ++ + RECORDING + RECORDING + + +- ++ + R + R + + +- ++ + E + E + + +- ++ + C + C + + +- ++ + RECORDING| + RECORDING| + +@@ -9227,170 +9599,169 @@ + + + Preferred language +- Preferred language ++ Preferred Language + + + + Your location +- Your location ++ Your Location + + + + LcdSettings + +- ++ + Display time +- Display time ++ Display Time + + +- ++ + Display current time on idle LCD display. + Display current time on idle LCD display. + + +- ++ + Display recording status +- Display recording status ++ Display Recording Status + + +- ++ + Display current recordings information on LCD display. + Display current recordings information on LCD display. + + +- ++ + Display menus +- Display menus ++ Display Menus + + +- ++ + Display selected menu on LCD display. + Display selected menu on LCD display. + + +- ++ + Menu pop-up time +- Menu pop-up time ++ Menu Pop-up Time + + +- ++ + How many seconds the menu will remain visible after navigation. + How many seconds the menu will remain visible after navigation. + + +- ++ + Display music artist and title + Display music artist and title + + +- ++ + Display playing artist and song title in MythMusic on LCD display. + Display playing artist and song title in MythMusic on LCD display. + + +- ++ + Items + Items + + +- ++ + Artist - Title + Artist - Title + + +- ++ + Artist [Album] Title + Artist [Album] Title + + +- ++ + Which items to show when playing music. + Which items to show when playing music. + + +- ++ + Display channel information +- Display channel information ++ Display Channel Information + + +- ++ + Display tuned channel information on LCD display. + Display tuned channel information on LCD display. + + +- ++ + Display volume information +- Display volume information ++ Display Volume Information + + +- ++ + Display volume level information on LCD display. + Display volume level information on LCD display. + + +- ++ + Display generic information +- Display generic information ++ Display Generic Information + + +- ++ + Display generic information on LCD display. + Display generic information on LCD display. + + +- ++ + Backlight always on +- Backlight always on ++ Backlight Always On + + +- ++ + Turn on the backlight permanently on the LCD display. + Turn on the backlight permanently on the LCD display. + + +- ++ + Heartbeat always on +- Heartbeat always on ++ Heartbeat Always On + + +- ++ + Turn on the LCD heartbeat. + Turn on the LCD heartbeat. + + +- ++ + Display large clock +- Display large clock ++ Display Large Clock + + +- ++ + On multiline displays try and display the time as large as possible. + On multiline displays try and display the time as large as possible. + + +- ++ + LCD key order +- LCD key order ++ LCD Key Order + + +- ++ + Enter the 6 Keypad Return Codes for your LCD keypad in the order in which you want the functions up/down/left/right/yes/no to operate. (See lcdproc/server/drivers/hd44780.c/keyMapMatrix[] or the matrix for your display) + Enter the 6 Keypad Return Codes for your LCD keypad in the order in which you want the functions up/down/left/right/yes/no to operate. (See lcdproc/server/drivers/hd44780.c/keyMapMatrix[] or the matrix for your display) + + +- ++ + Enable LCD device +- Enable LCD device ++ Enable LCD Device + + +- ++ + Use an LCD display to view MythTV status information. + Use an LCD display to view MythTV status information. + + +- + LCD device display +- LCD device display ++ LCD device display + + + +@@ -9405,47 +9776,46 @@ + + + No lyrics found for this track +- No lyrics found for this track ++ No Lyrics Found for This Track + + + + MPEGConfigurationGroup + +- ++ + Probed info +- Probed info ++ Probed Info + + +- ++ + Failed to open +- Failed to open ++ Failed to Open + + +- ++ + Failed to probe +- Failed to probe ++ Failed to Probe + + + + MacDesktopSettings + +- +- ++ + Video on the desktop +- Video on the desktop ++ Video on the Desktop + + +- ++ + If enabled, video will be displayed on the desktop, behind the Finder icons. Only valid when "Use GUI size for TV playback" and "Run the frontend in a window" are checked. + If enabled, video will be displayed on the desktop, behind the Finder icons. Only valid when "Use GUI size for TV playback" and "Run the frontend in a window" are checked. + + +- ++ + Frames to skip +- Frames to skip ++ Frames to Skip + + +- ++ + Video on the desktop will skip this many frames for each frame drawn. Set to 0 to show every frame. + Video on the desktop will skip this many frames for each frame drawn. Set to 0 to show every frame. + +@@ -9453,23 +9823,22 @@ + + MacDockSettings + +- +- ++ + Video in the dock +- Video in the dock ++ Video in the Dock + + +- ++ + If enabled, video will be displayed in the application's dock icon. Only valid when "Use GUI size for TV playback" and "Run the frontend in a window" are checked. + If enabled, video will be displayed in the application's dock icon. Only valid when "Use GUI size for TV playback" and "Run the frontend in a window" are checked. + + +- ++ + Frames to skip +- Frames to skip ++ Frames to Skip + + +- ++ + Video in the dock icon will skip this many frames for each frame drawn. Set to 0 to show every frame. + Video in the dock icon will skip this many frames for each frame drawn. Set to 0 to show every frame. + +@@ -9477,33 +9846,32 @@ + + MacFloatSettings + +- +- ++ + Video in floating window +- Video in floating window ++ Video in Floating Window + + +- ++ + If enabled, video will be displayed in a floating window. Only valid when "Use GUI size for TV playback" and "Run the frontend in a window" are checked. + If enabled, video will be displayed in a floating window. Only valid when "Use GUI size for TV playback" and "Run the frontend in a window" are checked. + + +- ++ + Frames to skip +- Frames to skip ++ Frames to Skip + + +- ++ + Video in the floating window will skip this many frames for each frame drawn. Set to 0 to show every frame. + Video in the floating window will skip this many frames for each frame drawn. Set to 0 to show every frame. + + +- ++ + Opacity + Opacity + + +- ++ + The opacity of the floating window. Set to 100 for completely opaque, set to 0 for completely transparent. + The opacity of the floating window. Set to 100 for completely opaque, set to 0 for completely transparent. + +@@ -9511,33 +9879,32 @@ + + MacMainSettings + +- +- ++ + Video in main window +- Video in main window ++ Video in Main Window + + +- ++ + If enabled, video will be displayed in the main GUI window. Disable this when you only want video on the desktop or in a floating window. Only valid when "Use GUI size for TV playback" and "Run the frontend in a window" are checked. + If enabled, video will be displayed in the main GUI window. Disable this when you only want video on the desktop or in a floating window. Only valid when "Use GUI size for TV playback" and "Run the frontend in a window" are checked. + + +- ++ + Frames to skip +- Frames to skip ++ Frames to Skip + + +- ++ + Video in the main window will skip this many frames for each frame drawn. Set to 0 to show every frame. + Video in the main window will skip this many frames for each frame drawn. Set to 0 to show every frame. + + +- ++ + Opacity + Opacity + + +- ++ + The opacity of the main window. Set to 100 for completely opaque, set to 0 for completely transparent. + The opacity of the main window. Set to 100 for completely opaque, set to 0 for completely transparent. + +@@ -9545,252 +9912,269 @@ + + MainGeneralSettings + +- ++ + Use line edit virtual keyboards +- Use line edit virtual keyboards ++ Use Line Edit Virtual Keyboards + + +- ++ + If enabled, you can use a virtual keyboard in MythTV's line edit boxes. To use, hit SELECT (Enter or Space) while a line edit is in focus. + If enabled, you can use a virtual keyboard in MythTV's line edit boxes. To use, hit SELECT (Enter or Space) while a line edit is in focus. + + +- ++ + Idle time before entering standby mode (minutes) +- Idle time before entering standby mode (minutes) ++ Idle Time Before Entering Standby Mode (minutes) + + +- ++ + Number of minutes to wait when the frontend is idle before entering standby mode. Standby mode allows the backend to power down if configured to do so. Any remote or mouse input will cause the countdown to start again and/or exit idle mode. Video playback suspends the countdown. A value of zero prevents the frontend automatically entering standby. + Number of minutes to wait when the frontend is idle before entering standby mode. Standby mode allows the backend to power down if configured to do so. Any remote or mouse input will cause the countdown to start again and/or exit idle mode. Video playback suspends the countdown. A value of zero prevents the frontend automatically entering standby. + + +- ++ + Customize exit menu options +- Customize exit menu options ++ Customize Exit Menu Options + + +- ++ + Default + Default + + +- ++ + Show quit +- Show quit ++ Show Quit + + +- ++ + Show quit and shutdown +- Show quit and shutdown ++ Show Quit and Shutdown + + +- ++ + Show quit, reboot and shutdown +- Show quit, reboot and shutdown ++ Show Quit, Reboot and Shutdown + + +- ++ + Show shutdown +- Show shutdown ++ Show Shutdown + + +- ++ + Show reboot +- Show reboot ++ Show Reboot + + +- ++ + Show reboot and shutdown +- Show reboot and shutdown ++ Show Reboot and Shutdown + + +- ++ + Show standby +- Show standby ++ Show Standby + + +- ++ + By default, only remote frontends are shown the shutdown option on the exit menu. Here you can force specific shutdown and reboot options to be displayed. + By default, only remote frontends are shown the shutdown option on the exit menu. Here you can force specific shutdown and reboot options to be displayed. + + +- ++ + Reboot command +- Reboot command ++ Reboot Command + + +- ++ + Optional. Script to run if you select the reboot option from the exit menu, if the option is displayed. You must configure an exit key to display the exit menu. + Optional. Script to run if you select the reboot option from the exit menu, if the option is displayed. You must configure an exit key to display the exit menu. + + +- ++ + Halt command +- Halt command ++ Halt Command + + +- ++ + Optional. Script to run if you select the shutdown option from the exit menu, if the option is displayed. You must configure an exit key to display the exit menu. + Optional. Script to run if you select the shutdown option from the exit menu, if the option is displayed. You must configure an exit key to display the exit menu. + + +- ++ + LIRC daemon socket +- LIRC daemon socket ++ LIRC Daemon Socket + + +- ++ + UNIX socket or IP address[:port] to connect in order to communicate with the LIRC Daemon. + UNIX socket or IP address[:port] to connect in order to communicate with the LIRC Daemon. + + +- ++ + Screen shot path +- Screen shot path ++ Screenshot Path + + +- ++ + Path to screenshot storage location. Should be writable by the frontend + Path to screenshot storage location. Should be writable by the frontend + + +- ++ + Setup PIN code +- Setup PIN code ++ Setup PIN Code + + +- ++ + This PIN is used to control access to the setup menus. If you want to use this feature, then setting the value to all numbers will make your life much easier. Set it to blank to disable. If enabled, you will not be able to return to this screen and reset the Setup PIN without first entering the current PIN. + This PIN is used to control access to the setup menus. If you want to use this feature, then setting the value to all numbers will make your life much easier. Set it to blank to disable. If enabled, you will not be able to return to this screen and reset the Setup PIN without first entering the current PIN. + + +- ++ + Enable Network Remote Control interface +- Enable Network Remote Control interface ++ Enable Network Remote Control Interface + + +- ++ + This enables support for controlling MythFrontend over the network. + This enables support for controlling MythFrontend over the network. + + +- ++ + Network Remote Control port +- Network Remote Control port ++ Network Remote Control Port + + +- ++ + This specifies what port the Network Remote Control interface will listen on for new connections. + This specifies what port the Network Remote Control interface will listen on for new connections. + + +- ++ + UDP notify port +- UDP notify port ++ UDP Notify Port + + +- ++ + MythTV will listen for connections from the "mythutil" program on this port. + MythTV will listen for connections from the "mythutil" program on this port. + + +- ++ + Enable AirPlay + Enable AirPlay + + +- ++ + AirPlay lets you wirelessly view content on your TV from your iPhone, iPad, iPod Touch, or iTunes on your computer. + AirPlay lets you wirelessly view content on your TV from your iPhone, iPad, iPod Touch, or iTunes on your computer. + + +- ++ + Only support AirTunes (no video) +- Only support AirTunes (no video) ++ Only Support AirTunes (no video) + + +- ++ + Only stream audio from your iPhone, iPad, iPod Touch, or iTunes on your computer +- Only stream audio from your iPhone, iPad, iPod Touch, or iTunes on your computer ++ Only stream audio from your iPhone, iPad, iPod Touch, or iTunes on your computer. + + +- ++ + Require password +- Require password ++ Require Password + + +- ++ + Require a password to use AirPlay. Your iPhone, iPad, iPod Touch, or iTunes on your computer will prompt you when required + Require a password to use AirPlay. Your iPhone, iPad, iPod Touch, or iTunes on your computer will prompt you when required + + +- ++ ++ Password ++ Password ++ ++ ++ + Your iPhone, iPad, iPod Touch, or iTunes on your computer will prompt you for this password when required +- Your iPhone, iPad, iPod Touch, or iTunes on your computer will prompt you for this password when required ++ Your iPhone, iPad, iPod Touch, or iTunes on your computer will prompt you for this password when required. ++ ++ ++ ++ AirPlay - Password ++ AirPlay - Password + + +- ++ + AirPlay full screen playback +- AirPlay full screen playback ++ AirPlay Fullscreen Playback + + +- ++ + During music playback, displays album cover and various media information in full screen mode + During music playback, displays album cover and various media information in full screen mode + + +- + All AirPlay settings take effect when you restart MythFrontend. +- All AirPlay settings take effect when you restart MythFrontend. ++ All AirPlay settings take effect when you restart MythFrontend. + + +- + AirTunes RSA key couldn't be loaded. Check http://www.mythtv.org/wiki/AirTunes/AirPlay. Last Error: %1 +- AirTunes RSA key couldn't be loaded. Check http://www.mythtv.org/wiki/AirTunes/AirPlay. Last Error: %1 ++ AirTunes RSA key couldn't be loaded. Check http://www.mythtv.org/wiki/AirTunes/AirPlay. Last Error: %1 + + +- + AirTunes RSA key successfully loaded. +- AirTunes RSA key successfully loaded. ++ AirTunes RSA key successfully loaded. + + +- ++ + Ignore devices +- Ignore devices ++ Ignore Devices + + +- ++ + If there are any devices that you do not want to be monitored, list them here with commas in-between. The plugins will ignore them. Requires restart. +- If there are any devices that you do not want to be monitored, list them here with commas in-between. The plugins will ignore them. Requires restart. ++ If there are any devices that you do not want to be monitored, list them here with commas in between. The plugins will ignore them. Requires restart. ++ ++ ++ ++ This enables support for monitoring your CD/DVD drives for new disks and launching the proper plugin to handle them. Requires restart. ++ This enables support for monitoring your CD/DVD drives for new disks and launching the proper plugin to handle them. Requires restart. ++ ++ ++ ++ Main Settings ++ Main Settings + + +- ++ + Settings Access + Settings Access + + +- ++ + General + General + + +- ++ + Media Monitor + Media Monitor + + +- ++ + Remote Control + Remote Control + + +- ++ + AirPlay Settings + AirPlay Settings + + +- ++ + Shutdown/Reboot Settings + Shutdown/Reboot Settings + +@@ -9800,135 +10184,132 @@ + + + 5 weekdays if daily +- 5 weekdays if daily ++ 5 Weekdays if Daily + + + + 7 days per week if daily +- 7 days per week if daily ++ 7 Days Per Week if Daily + + + + MediaMonitor + +- +- ++ + Cancel + Cancel + + +- ++ + Select removable media to eject or insert +- Select removable media to eject or insert ++ Select Removable Media to Eject or Insert + + +- ++ + No devices to eject +- No devices to eject ++ No Devices to Eject + + +- ++ + Failed to unmount %1 +- Failed to unmount %1 ++ Failed to Unmount %1 + + +- ++ + You may safely remove %1 +- You may safely remove %1 ++ You May Safely Remove %1 + + +- ++ + Failed to eject %1 +- Failed to eject %1 ++ Failed to Eject %1 + + +- + Media Handler Selection +- Media Handler Selection ++ Media Handler Selection + + +- + The new media contains mixed content that can be rendered in different ways. Select your preferred method. +- The new media contains mixed content that can be rendered in different ways. Select your preferred method. ++ The new media contains mixed content that can be rendered in different ways. Select your preferred method. + + +- ++ + Select a CD drive +- Select a CD drive ++ Select a CD Drive + + +- ++ + Select a VCD drive +- Select a VCD drive ++ Select a VCD Drive + + +- ++ + Select a DVD drive +- Select a DVD drive ++ Select a DVD Drive + + +- ++ + Select a CD writer +- Select a CD writer ++ Select a CD Writer + + +- ++ + Select a DVD writer +- Select a DVD writer ++ Select a DVD Writer + + + + MetadataOptions + +- ++ + Trying to manually find this recording online... +- Trying to manually find this recording online... ++ Trying to Manually Find This Recording Online... + + +- ++ + Downloading selected artwork... +- Downloading selected artwork... ++ Downloading Selected Artwork... + + +- ++ + You must set a reference number on this rule to set artwork. For items without a metadata source, you can set any unique value. +- You must set a reference number on this rule to set artwork. For items without a metadata source, you can set any unique value. ++ You must set a reference number on this rule to set artwork. For items without a metadata source, you can set any unique value. + + +- ++ + Searching for available artwork... +- Searching for available artwork... ++ Searching for Available Artwork... + + +- ++ + No image found +- No image found ++ No Image Found + + +- +- ++ ++ + Schedule Editor + Schedule Editor + + +- ++ + No match found for this recording. You can try entering a TVDB/TMDB number, season, and episode manually. + No match found for this recording. You can try entering a TVDB/TMDB number, season, and episode manually. + + +- ++ + This number, season, and episode combination does not appear to be valid (or the site may be down). Check your information and try again. + This number, season, and episode combination does not appear to be valid (or the site may be down). Check your information and try again. + + +- ++ + Failed to retrieve image(s) +- Failed to retrieve image(s) ++ Failed to Retrieve Image(s) + + +- ++ + Check logs +- Check logs ++ Check Logs + + + +@@ -9961,12 +10342,12 @@ + + + Exit without saving settings +- Exit without saving settings ++ Exit Without Saving + + + + Save settings and Exit +- Save settings and Exit ++ Save and Exit + + + +@@ -10004,7 +10385,7 @@ + Unknown Genre + + +- ++ + Never Played + Never Played + +@@ -10014,7 +10395,7 @@ + + + Client disconnected +- Client disconnected ++ Client Disconnected + + + +@@ -10050,1505 +10431,1509 @@ + + MythControls + +- ++ + Page Up + Page Up + + +- ++ + Page Down + Page Down + + +- ++ + Play Program + Play Program + + +- ++ + Stop Program + Stop Program + + +- +- ++ ++ + Toggle recording status of current program +- Toggle recording status of current program ++ Toggle Recording Status of Current Program + + +- ++ + Page the program guide back one day +- Page the program guide back one day ++ Page the Program Guide Back One Day + + +- ++ + Page the program guide forward one day +- Page the program guide forward one day ++ Page the Program Guide Forward One Day + + +- ++ + Page the program guide left +- Page the program guide left ++ Page the Program Guide Left + + +- ++ + Page the program guide right +- Page the program guide right ++ Page the Program Guide Right + + +- +- ++ ++ + Toggle the current channel as a favorite +- Toggle the current channel as a favorite ++ Toggle the Current Channel as a Favorite + + +- ++ + Reverse the channel order in the program guide +- Reverse the channel order in the program guide ++ Reverse the Channel Order in the Program Guide + + +- +- ++ ++ + Show the Program Guide + Show the Program Guide + + +- +- ++ ++ + Show the Program Finder + Show the Program Finder + + +- ++ + Show the Channel Search + Show the Channel Search + + +- ++ + Cycle through channel groups and all channels in the program guide. +- Cycle through channel groups and all channels in the program guide. +- +- +- +- Switch channels without exiting guide in Live TV mode. +- Switch channels without exiting guide in Live TV mode. ++ Cycle Through Channel Groups and All Channels in the Program Guide + + + +- +- Volume down +- Volume down ++ Switch channels without exiting guide in Live TV mode. ++ Switch Channels Without Exiting Guide in Live TV Mode + + + + +- Volume up +- Volume up ++ Volume down ++ Volume Down + + + + ++ Volume up ++ Volume Up ++ ++ ++ ++ + Mute + Mute + + +- +- ++ ++ + Cycle audio channels +- Cycle audio channels ++ Cycle Audio Channels + + +- ++ + Increase program or channel rank +- Increase program or channel rank ++ Increase Program or Channel Rank + + +- ++ + Decrease program or channel rank +- Decrease program or channel rank ++ Decrease Program or Channel Rank + + +- ++ + List upcoming episodes +- List upcoming episodes ++ List Upcoming Episodes + + +- ++ + List scheduled upcoming episodes +- List scheduled upcoming episodes ++ List Scheduled Upcoming Episodes + + +- ++ + List previously recorded episodes +- List previously recorded episodes ++ List Previously Recorded Episodes + + +- ++ + Show details +- Show details ++ Show Details + + +- ++ + Edit Custom Record Rule + Edit Custom Record Rule + + +- ++ + Change Recording Group + Change Recording Group + + +- ++ + Change Group View + Change Group View + + +- ++ + List recorded episodes +- List recorded episodes ++ List Recorded Episodes + + +- ++ + Exit or return to DVD menu +- Exit or return to DVD menu ++ Exit or Return to DVD Menu + + +- ++ + Playback Compact Menu + Playback Compact Menu + + +- ++ + Clear OSD + Clear OSD + + +- ++ + Pause + Pause + + +- ++ + Fast Forward + Fast Forward + + +- ++ + Rewind + Rewind + + +- ++ + Arbitrary Seek + Arbitrary Seek + + +- ++ + Seek to a position in seconds +- Seek to a position in seconds ++ Seek to a Position in Seconds + + +- ++ + Channel up +- Channel up ++ Channel Up + + +- ++ + Channel down +- Channel down ++ Channel Down + + +- ++ + Switch to the next favorite channel +- Switch to the next favorite channel ++ Switch to the Next Favorite Channel + + +- ++ + Switch to the previous channel +- Switch to the previous channel ++ Switch to the Previous Channel + + +- ++ + Jump ahead +- Jump ahead ++ Jump Ahead + + +- ++ + Jump back +- Jump back ++ Jump Back + + +- ++ + Info utilizing cutlist +- Info utilizing cutlist ++ Info Utilizing Cutlist + + +- ++ + Jump to bookmark +- Jump to bookmark ++ Jump to Bookmark + + +- ++ + Next Video Source + Next Video Source + + +- ++ + Previous Video Source + Previous Video Source + + +- ++ + Next Input + Next Input + + +- ++ + Next Card + Next Card + + +- ++ + Skip Commercial + Skip Commercial + + +- ++ + Skip Commercial (Reverse) + Skip Commercial (Reverse) + + +- ++ + Jump to the start of the recording. +- Jump to the start of the recording. ++ Jump to the Start of the Recording + + +- ++ + Toggle channel browse mode +- Toggle channel browse mode ++ Toggle Channel Browse Mode + + +- ++ + Set the volume +- Set the volume ++ Set the Volume + + +- ++ + Toggle audio upmixer +- Toggle audio upmixer ++ Toggle Audio Upmixer + + +- ++ + Toggle Picture-in-Picture view +- Toggle Picture-in-Picture view ++ Toggle Picture-in-Picture View + + +- ++ + Toggle Picture-by-Picture view +- Toggle Picture-by-Picture view ++ Toggle Picture-by-Picture View + + +- ++ + Create Picture-in-Picture view +- Create Picture-in-Picture view ++ Create Picture-in-Picture View + + +- ++ + Create Picture-by-Picture view +- Create Picture-by-Picture view ++ Create Picture-by-Picture View + + +- ++ + Toggle active PIP/PBP window +- Toggle active PIP/PBP window ++ Toggle Active PIP/PBP Window + + +- ++ + Swap PBP/PIP Windows + Swap PBP/PIP Windows + + +- ++ + Change PxP view +- Change PxP view ++ Change PxP View + + +- ++ + Toggle the video aspect ratio +- Toggle the video aspect ratio ++ Toggle the Video Aspect Ratio + + +- ++ + Next Preconfigured Zoom mode +- Next Preconfigured Zoom mode ++ Next Preconfigured Zoom Mode + + +- ++ + Toggle any captions +- Toggle any captions ++ Toggle any Captions + + +- ++ + Enable any captions +- Enable any captions ++ Enable any Captions + + +- ++ + Disable any captions +- Disable any captions ++ Disable any Captions + + +- ++ + Toggle Teletext Captions + Toggle Teletext Captions + + +- ++ + Toggle Subtitles + Toggle Subtitles + + +- ++ + Toggle VBI CC + Toggle VBI CC + + +- ++ + Toggle ATSC CC + Toggle ATSC CC + + +- ++ + Toggle Teletext Menu + Toggle Teletext Menu + + +- ++ + Toggle External Subtitles + Toggle External Subtitles + + +- ++ + Enable External Subtitles + Enable External Subtitles + + +- ++ + Disable External Subtitles + Disable External Subtitles + + +- ++ + Toggle Text Subtitles + Toggle Text Subtitles + + +- ++ + Play audio track 1 +- Play audio track 1 ++ Play Audio Track 1 + + +- ++ + Play audio track 2 +- Play audio track 2 ++ Play Audio Track 2 + + +- ++ + Display subtitle 1 +- Display subtitle 1 ++ Display Subtitle 1 + + +- ++ + Display subtitle 2 +- Display subtitle 2 ++ Display Subtitle 2 + + +- ++ + Display Text Subtitle 1 + Display Text Subtitle 1 + + +- ++ + Display VBI CC1 + Display VBI CC1 + + +- ++ + Display VBI CC2 + Display VBI CC2 + + +- ++ + Display VBI CC3 + Display VBI CC3 + + +- ++ + Display VBI CC4 + Display VBI CC4 + + +- ++ + Display ATSC CC1 + Display ATSC CC1 + + +- ++ + Display ATSC CC2 + Display ATSC CC2 + + +- ++ + Display ATSC CC3 + Display ATSC CC3 + + +- ++ + Display ATSC CC4 + Display ATSC CC4 + + +- ++ + Enable Forced Subtitles + Enable Forced Subtitles + + +- ++ + Disable Forced Subtitles + Disable Forced Subtitles + + +- ++ + Next audio track +- Next audio track ++ Next Audio Track + + +- ++ + Previous audio track +- Previous audio track ++ Previous Audio Track + + +- ++ + Next subtitle track +- Next subtitle track ++ Next Subtitle Track + + +- ++ + Previous subtitle track +- Previous subtitle track ++ Previous Subtitle Track + + +- ++ + Next Text track +- Next Text track ++ Next Text Track + + +- ++ + Previous Text track +- Previous Text track ++ Previous Text Track + + +- ++ + Next VBI CC track +- Next VBI CC track ++ Next VBI CC Track + + +- ++ + Previous VBI CC track +- Previous VBI CC track ++ Previous VBI CC Track + + +- ++ + Next ATSC CC track +- Next ATSC CC track ++ Next ATSC CC Track + + +- ++ + Previous ATSC CC track +- Previous ATSC CC track ++ Previous ATSC CC Track + + +- ++ + Next of any captions +- Next of any captions ++ Next of any Captions + + +- ++ + Next video scan overidemode +- Next video scan overidemode ++ Next Video Scan Overide Mode + + +- ++ + Queue the current recording for transcoding +- Queue the current recording for transcoding ++ Queue the Current Recording for Transcoding + + +- ++ + Increase the playback speed +- Increase the playback speed ++ Increase the Playback Speed + + +- ++ + Decrease the playback speed +- Decrease the playback speed ++ Decrease the Playback Speed + + +- ++ + Turn on time stretch control +- Turn on time stretch control ++ Turn on Time Stretch Control + + +- ++ + Increase time stretch speed +- Increase time stretch speed ++ Increase Time Stretch Speed + + +- ++ + Decrease time stretch speed +- Decrease time stretch speed ++ Decrease Time Stretch Speed + + +- ++ + Toggle time stretch speed +- Toggle time stretch speed ++ Toggle Time Stretch Speed + + +- ++ + Turn on audio sync adjustment controls +- Turn on audio sync adjustment controls ++ Turn on Audio Sync Adjustment Controls + + +- ++ + Set the audio sync adjustment +- Set the audio sync adjustment ++ Set the Audio Sync Adjustment + + +- +- ++ ++ + Playback picture adjustments +- Playback picture adjustments ++ Playback Picture Adjustments + + +- ++ + Toggle night mode +- Toggle night mode ++ Toggle Night Mode + + +- ++ + Set the picture brightness +- Set the picture brightness ++ Set the Picture Brightness + + +- ++ + Set the picture contrast +- Set the picture contrast ++ Set the Picture Contrast + + +- ++ + Set the picture color +- Set the picture color ++ Set the Picture Color + + +- ++ + Set the picture hue +- Set the picture hue ++ Set the Picture Hue + + +- ++ + Recording picture adjustments for this channel +- Recording picture adjustments for this channel ++ Recording Picture Adjustments for This Channel + + +- ++ + Recording picture adjustments for this recorder +- Recording picture adjustments for this recorder ++ Recording Picture Adjustments for This Recorder + + +- ++ + Cycle Commercial Skip mode +- Cycle Commercial Skip mode ++ Cycle Commercial Skip Mode + + +- ++ + Toggle the Sleep Timer + Toggle the Sleep Timer + + +- ++ + Play + Play + + +- ++ + Jump to previously played recording +- Jump to previously played recording ++ Jump to Previously Played Recording + + +- ++ + Display menu of recorded programs to jump to +- Display menu of recorded programs to jump to ++ Display Menu of Recorded Programs to Jump to + + +- ++ + Display scheduled recording list +- Display scheduled recording list ++ Display Scheduled Recording List + + +- ++ + Display previously recorded episodes +- Display previously recorded episodes ++ Display Previously Recorded Episodes + + +- ++ + Monitor Signal Quality + Monitor Signal Quality + + +- ++ + Jump to the DVD Root Menu + Jump to the DVD Root Menu + + +- ++ + Jump to the Popup Menu + Jump to the Popup Menu + + +- ++ + Jump to the DVD Chapter Menu + Jump to the DVD Chapter Menu + + +- ++ + Jump to the DVD Title Menu + Jump to the DVD Title Menu + + +- ++ + Exit Show without any prompts +- Exit Show without any prompts ++ Exit Show Without any Prompts + + +- ++ + Jump to a chapter +- Jump to a chapter ++ Jump to a Chapter + + +- ++ + Switch title +- Switch title ++ Switch Title + + +- ++ + Switch angle +- Switch angle ++ Switch Angle + + +- ++ + Zoom mode - shift up +- Zoom mode - shift up ++ Zoom Mode - Shift Up + + +- ++ + Zoom mode - shift down +- Zoom mode - shift down ++ Zoom Mode - Shift Down + + +- ++ + Zoom mode - shift left +- Zoom mode - shift left ++ Zoom Mode - Shift Left + + +- ++ + Zoom mode - shift right +- Zoom mode - shift right ++ Zoom Mode - Shift Right + + +- ++ + Zoom mode - increase aspect ratio +- Zoom mode - increase aspect ratio ++ Zoom Mode - Increase Aspect Ratio + + +- ++ + Zoom mode - decrease aspect ratio +- Zoom mode - decrease aspect ratio ++ Zoom Mode - Decrease Aspect Ratio + + +- ++ + Zoom mode - zoom in +- Zoom mode - zoom in ++ Zoom Mode - Zoom In + + +- ++ + Zoom mode - zoom out +- Zoom mode - zoom out ++ Zoom Mode - Zoom Out + + +- ++ + Zoom mode - vertical zoom in +- Zoom mode - vertical zoom in ++ Zoom Mode - Vertical Zoom in + + +- ++ + Zoom mode - vertical zoom out +- Zoom mode - vertical zoom out ++ Zoom Mode - Vertical Zoom Out + + +- ++ + Zoom mode - horizontal zoom in +- Zoom mode - horizontal zoom in ++ Zoom Mode - Horizontal Zoom in + + +- ++ + Zoom mode - horizontal zoom out +- Zoom mode - horizontal zoom out ++ Zoom Mode - Horizontal Zoom Out + + +- ++ + Zoom mode - quit and abandon changes +- Zoom mode - quit and abandon changes ++ Zoom Mode - Quit and Abandon Changes + + +- ++ + Zoom mode - commit changes +- Zoom mode - commit changes ++ Zoom Mode - Commit Changes + + +- ++ + Save cuts +- Save cuts ++ Save Cuts + + +- ++ + Load cuts from detected commercials +- Load cuts from detected commercials ++ Load Cuts From Detected Commercials + + +- ++ + Cut point editor compact menu +- Cut point editor compact menu ++ Cut Point Editor Compact Menu + + +- ++ + Toggle audio visualisation +- Toggle audio visualisation ++ Toggle Audio Visualisation + + +- ++ + Toggle OSD playback information +- Toggle OSD playback information ++ Toggle OSD Playback Information + + +- ++ + No 3D + No 3D + + +- ++ + 3D Side by Side + 3D Side by Side + + +- ++ + Discard 3D Side by Side + Discard 3D Side by Side + + +- ++ + 3D Top and Bottom + 3D Top and Bottom + + +- ++ + Discard 3D Top and Bottom + Discard 3D Top and Bottom + + +- +- ++ ++ + Menu Red + Menu Red + + +- ++ + Switch Recording Input view +- Switch Recording Input view ++ Switch Recording Input View + + +- ++ + Fast Forward (Sticky) or Forward one second while paused +- Fast Forward (Sticky) or Forward one second while paused ++ Fast Forward (Sticky) or Forward One Second While Paused + + +- ++ + Rewind (Sticky) or Rewind one second while paused +- Rewind (Sticky) or Rewind one second while paused ++ Rewind (Sticky) or Rewind One Second While Paused + + +- +- ++ ++ + Menu Green + Menu Green + + +- +- ++ ++ + Menu Yellow + Menu Yellow + + +- +- ++ ++ + Menu Blue + Menu Blue + + +- ++ + Menu Exit + Menu Exit + + +- ++ + Menu Text + Menu Text + + +- ++ + Menu EPG + Menu EPG + + +- ++ + Clear editing cut points +- Clear editing cut points ++ Clear Editing Cut Points + + +- ++ + Invert Begin/End cut points +- Invert Begin/End cut points ++ Invert Begin/End Cut Points + + +- ++ + Jump to the next cut point +- Jump to the next cut point ++ Jump to the Next Cut Point + + +- ++ + Jump to the previous cut point +- Jump to the previous cut point ++ Jump to the Previous Cut Point + + +- ++ + Jump back 10x the normal amount +- Jump back 10x the normal amount ++ Jump Back 10x Normal + + +- ++ + Jump forward 10x the normal amount +- Jump forward 10x the normal amount ++ Jump Forward 10x Normal + + +- ++ + Next Page + Next Page + + +- ++ + Previous Page + Previous Page + + +- ++ + Next Subpage + Next Subpage + + +- ++ + Previous Subpage + Previous Subpage + + +- ++ + Toggle Teletext + Toggle Teletext + + +- ++ + Menu White + Menu White + + +- ++ + Toggle Background + Toggle Background + + +- ++ + Reveal hidden Text +- Reveal hidden Text ++ Reveal Hidden Text + + +- ++ + Up Arrow + Up Arrow + + +- ++ + Down Arrow + Down Arrow + + +- ++ + Left Arrow + Left Arrow + + +- ++ + Right Arrow + Right Arrow + + +- ++ + Move to next widget +- Move to next widget ++ Move to Next Widget + + +- ++ + Move to preview widget +- Move to preview widget ++ Move to Preview Widget + + +- ++ + Select + Select + + +- ++ + Backspace + Backspace + + +- ++ + Escape + Escape + + +- ++ + Pop-up menu +- Pop-up menu ++ Pop-up Menu + + +- ++ + More information +- More information ++ More Information + + +- ++ + Delete + Delete + + +- ++ + Edit + Edit + + +- ++ + Save screenshot +- Save screenshot ++ Save Screenshot + + +- ++ + Play a media resource +- Play a media resource ++ Play a Media Resource + + +- ++ + Page to top of list +- Page to top of list ++ Page to Top of List + + +- ++ + Page to middle of list +- Page to middle of list ++ Page to Middle of List + + +- ++ + Page to bottom of list +- Page to bottom of list ++ Page to Bottom of List + + +- ++ + Previous View + Previous View + + +- ++ + Next View + Next View + + +- ++ + Help + Help + + +- ++ + Eject Removable Media + Eject Removable Media + + +- ++ + Cut text from textedit +- Cut text from textedit ++ Cut Text from Textedit + + +- ++ + Copy text from textedit +- Copy text from textedit ++ Copy Text from Textedit + + +- ++ + Paste text into textedit +- Paste text into textedit ++ Paste Text Into Textedit + + +- ++ + Insert newline into textedit +- Insert newline into textedit ++ Insert Newline Into Textedit + + +- ++ + Undo + Undo + + +- ++ + Redo + Redo + + +- ++ + Show incremental search dialog +- Show incremental search dialog ++ Show Incremental Search Dialog + + +- ++ + 0 + 0 + + +- ++ + 1 + 1 + + +- ++ + 2 + 2 + + +- ++ + 3 + 3 + + +- ++ + 4 + 4 + + +- ++ + 5 + 5 + + +- ++ + 6 + 6 + + +- ++ + 7 + 7 + + +- ++ + 8 + 8 + + +- ++ + 9 + 9 + + +- ++ + Turn the display on +- Turn the display on ++ Turn the Display On + + +- ++ + Turn the display off +- Turn the display off ++ Turn the Display Off + + +- ++ + Trigger System Key Event #1 + Trigger System Key Event #1 + + +- ++ + Trigger System Key Event #2 + Trigger System Key Event #2 + + +- ++ + Trigger System Key Event #3 + Trigger System Key Event #3 + + +- ++ + Trigger System Key Event #4 + Trigger System Key Event #4 + + +- ++ + Trigger System Key Event #5 + Trigger System Key Event #5 + + +- ++ + Trigger System Key Event #6 + Trigger System Key Event #6 + + +- ++ + Trigger System Key Event #7 + Trigger System Key Event #7 + + +- ++ + Trigger System Key Event #8 + Trigger System Key Event #8 + + +- ++ + Trigger System Key Event #9 + Trigger System Key Event #9 + + +- ++ + Trigger System Key Event #10 + Trigger System Key Event #10 + + +- ++ + Zoom in on browser window +- Zoom in on browser window ++ Zoom In on Browser Window + + +- ++ + Zoom out on browser window +- Zoom out on browser window ++ Zoom Out on Browser Window + + +- ++ + Toggle where keyboard input goes to +- Toggle where keyboard input goes to ++ Toggle Where Keyboard Input Goes To + + +- ++ + Move mouse pointer up +- Move mouse pointer up ++ Move Mouse Pointer Up + + +- ++ + Move mouse pointer down +- Move mouse pointer down ++ Move Mouse Pointer Down + + +- ++ + Move mouse pointer left +- Move mouse pointer left ++ Move Mouse Pointer Left + + +- ++ + Move mouse pointer right +- Move mouse pointer right ++ Move Mouse Pointer Right + + +- ++ + Mouse Left button click +- Mouse Left button click ++ Mouse Left Button Click + + +- ++ + Scroll down half a page +- Scroll down half a page ++ Scroll Down Half Page + + +- ++ + Scroll up half a page +- Scroll up half a page ++ Scroll Up Half Page + + +- ++ + Scroll left half a page +- Scroll left half a page ++ Scroll Left Half Page + + +- ++ + Scroll right half a page +- Scroll right half a page ++ Scroll Right Half Page + + +- ++ + Move selection to next link +- Move selection to next link ++ Move Selection to Next Link + + +- ++ + Move selection to previous link +- Move selection to previous link ++ Move Selection to Previous Link + + +- ++ + Follow selected link +- Follow selected link ++ Follow Selected Link + + +- ++ + Go back to previous page +- Go back to previous page ++ Go Back to Previous Page + + +- ++ + Go forward to previous page +- Go forward to previous page ++ Go Forward to Previous Page + + +- ++ + System Exit + System Exit + + +- ++ + Enter Standby Mode + Enter Standby Mode + + +- ++ + Display System Exit Prompt + Display System Exit Prompt + + +- ++ + Reload Theme + Reload Theme + + +- ++ + Main Menu + Main Menu + + +- ++ + Program Guide + Program Guide + + +- ++ + Program Finder + Program Finder + + +- ++ + Manage Recordings / Fix Conflicts + Manage Recordings / Fix Conflicts + + +- ++ + Manage Recording Rules + Manage Recording Rules + + +- ++ + Channel Recording Priorities + Channel Recording Priorities + + +- ++ + TV Recording Playback + TV Recording Playback + + +- ++ + Live TV + Live TV + + +- ++ + Status Screen + Status Screen + + +- ++ + Previously Recorded + Previously Recorded + + +- ++ + Standby Mode + Standby Mode + + +- ++ + The Video Default View + The Video Default View + + +- ++ + The Video Manager + The Video Manager + + +- ++ + The Video Browser + The Video Browser + + +- ++ + The Video Listings + The Video Listings + + +- ++ + The Video Gallery + The Video Gallery + + +- ++ + Play an Optical Disc + Play an Optical Disc + + +- ++ + Image Gallery + Image Gallery + + +- ++ + Toggle Show Widget Borders + Toggle Show Widget Borders + + +- ++ + Toggle Show Widget Names + Toggle Show Widget Names + + +- ++ + Reset All Keys + Reset All Keys + + +- ++ + Reset all keys to defaults +- Reset all keys to defaults ++ Reset All Keys to Defaults + + +- ++ + Start/Stop Slideshow + Start/Stop Slideshow + + +- ++ + Start Recursive Slideshow + Start Recursive Slideshow + + +- ++ + Rotate image right 90 degrees +- Rotate image right 90 degrees ++ Rotate Image Right 90 Degrees + + +- ++ + Rotate image left 90 degrees +- Rotate image left 90 degrees ++ Rotate Image Left 90 Degrees + + +- ++ + Flip image horizontally +- Flip image horizontally ++ Flip Image Horizontally + + +- ++ + Flip image vertically +- Flip image vertically ++ Flip Image Vertically + + +- ++ + Zoom image out +- Zoom image out ++ Zoom Image Out + + +- ++ + Zoom image in +- Zoom image in ++ Zoom Image In + + +- ++ + Full-size (un-zoom) image +- Full-size (un-zoom) image ++ Fullsize (Un-zoom) Image + + +- ++ + Mark image +- Mark image ++ Mark Image + + +- ++ + Scroll image up +- Scroll image up ++ Scroll Image Up + + +- ++ + Scroll image left +- Scroll image left ++ Scroll Image Left + + +- ++ + Scroll image right +- Scroll image right ++ Scroll Image Right + + +- ++ + Scroll image down +- Scroll image down ++ Scroll Image Down + + +- ++ + Recenter image +- Recenter image ++ Recenter Image + + +- ++ ++ Set or clear cover image ++ Set or Clear Cover Image ++ ++ ++ + MythTV's native media player. +- MythTV's native media player. ++ MythTV's Native Media Player + + +- + MythDVD media +- MythDVD media ++ MythDVD media + + +- ++ + MythImage Media Handler 1/2 + MythImage Media Handler 1/2 + + +- ++ + MythImage Media Handler 2/2 + MythImage Media Handler 2/2 + +@@ -11576,12 +11961,12 @@ + + + Actions By Context +- Actions By Context ++ Actions by Context + + + + Contexts By Key +- Contexts By Key ++ Contexts by Key + + + +@@ -11642,57 +12027,57 @@ + Keys + + +- ++ + Open an Xterm window +- Open an Xterm window ++ Open Xterm Window + + +- ++ + Show Mythshutdown settings +- Show Mythshutdown settings ++ Show mythshutdown Settings + + +- ++ + Start Mythtv-Setup +- Start Mythtv-Setup ++ Start mythtv-setup + + +- ++ + Play selected item in alternate player +- Play selected item in alternate player ++ Play Selected Item in Alternate Player + + +- ++ + Open video filter dialog +- Open video filter dialog ++ Open Video Filter Dialog + + +- ++ + Increase Parental Level + Increase Parental Level + + +- ++ + Decrease Parental Level + Decrease Parental Level + + +- ++ + Show Incremental Search Dialog + Show Incremental Search Dialog + + +- ++ + Download metadata for current item +- Download metadata for current item ++ Download Metadata for Current Item + + +- ++ + Display Item Detail Popup + Display Item Detail Popup + + +- ++ + MythDVD DVD Media Handler + MythDVD DVD Media Handler + +@@ -11700,9 +12085,9 @@ + + MythCoreContext + +- ++ + This application is not compatible with the installed MythTV libraries. Please recompile after a make distclean +- This application is not compatible with the installed MythTV libraries. Please recompile after a make distclean ++ This application is not compatible with the installed MythTV libraries. Please recompile after a make distclean. + + + +@@ -11721,184 +12106,183 @@ + + MythPlayer + +- ++ + Failed to initialize video output +- Failed to initialize video output ++ Failed to Initialize Video Output + + +- + Need to switch video renderer +- Need to switch video renderer ++ Need to switch video renderer + + +- ++ + Failed to reinitialize video output +- Failed to reinitialize video output ++ Failed to Reinitialize Video Output + + +- ++ + Could not read first %1 bytes +- Could not read first %1 bytes ++ Could Not Read First %1 Bytes + + +- ++ + Could not find an A/V decoder +- Could not find an A/V decoder ++ Could Not Find a Decoder + + +- ++ + Could not initialize A/V decoder +- Could not initialize A/V decoder ++ Could Not Initialize Decoder + + +- ++ + Could not open decoder +- Could not open decoder ++ Could Not Open Decoder + + +- ++ + TXT CAP + TXT CAP + + +- +- ++ ++ + Text subtitles +- Text subtitles ++ Text Subtitles + + +- ++ + Off + Off + + +- ++ + TXT %1 + TXT %1 + + +- ++ + On + On + + +- ++ + No captions + CC/Teletext/Subtitle text not available +- No captions ++ No Captions + + +- ++ + Forced Subtitles On + Forced Subtitles On + + +- ++ + Forced Subtitles Off + Forced Subtitles Off + + +- ++ + Failed to initialize A/V Sync +- Failed to initialize A/V Sync ++ Failed to Initialize A/V Sync + + +- +- ++ ++ + Serious error detected in Video Output +- Serious error detected in Video Output ++ Serious Error Detected in Video Output + + +- ++ + Video frame buffering failed too many times. +- Video frame buffering failed too many times. ++ Video Frame Buffering Failed Too Many Times + + +- ++ + Error opening switch program buffer +- Error opening switch program buffer ++ Error Opening Switch Program Buffer + + +- ++ + Error opening switch program file +- Error opening switch program file ++ Error Opening Switch Program File + + +- ++ + Error opening jump program file buffer +- Error opening jump program file buffer ++ Error Opening Jump Program File Buffer + + +- ++ + Error opening jump program file +- Error opening jump program file ++ Error Opening Jump Program File + + +- ++ + Error reopening video decoder +- Error reopening video decoder ++ Error Reopening Video Decoder + + +- ++ + Irrecoverable recorder error +- Irrecoverable recorder error ++ Irrecoverable Recorder Error + + +- ++ + Not Flagged + The commercials/adverts have not been flagged + Not Flagged + + +- ++ + Searching +- Searching ++ Searching... + + +- ++ + No Seektable + No Seektable + + +- ++ + Using previously auto-saved cuts +- Using previously auto-saved cuts ++ Using Previously Auto-saved Cuts + + +- ++ + Paused + Paused + + +- +- ++ ++ + New cut added. +- New cut added. ++ New Cut Added + + +- ++ + Delete + Delete + + +- ++ + Undo Changes + Undo Changes + + +- ++ + Undo - %1 + %1 is the undo message + Undo - %1 + + +- ++ + Redo - %1 + %1 is the redo message + Redo - %1 + + +- ++ + %n second(s) + + %n second +@@ -11906,42 +12290,42 @@ + + + +- ++ + Still Frame + Still Frame + + +- ++ + %1 of %2 + %1 of %2 + + +- ++ + Error opening remote stream buffer +- Error opening remote stream buffer ++ Error Opening Remote Stream Buffer + + +- ++ + Error opening remote stream +- Error opening remote stream ++ Error Opening Remote Stream + + +- ++ + Enabled Studio Levels + Enabled Studio Levels + + +- ++ + Disabled Studio Levels + Disabled Studio Levels + + +- ++ + Enabled Night Mode + Enabled Night Mode + + +- ++ + Disabled Night Mode + Disabled Night Mode + +@@ -11964,7 +12348,7 @@ + + + Failed to read key from: %1 +- Failed to read key from: %1 ++ Failed to Read Key From: %1 + + + +@@ -12019,7 +12403,7 @@ + + + Wakeup time format +- Wakeup time format ++ Wakeup Time Format + + + +@@ -12039,7 +12423,7 @@ + + + Command to reboot +- Command to reboot ++ Command to Reboot + + + +@@ -12049,7 +12433,7 @@ + + + Command to shutdown +- Command to shutdown ++ Command to Shutdown + + + +@@ -12059,7 +12443,7 @@ + + + Command to run to start the Frontend +- Command to run to start the Frontend ++ Command to Start the Frontend + + + +@@ -12069,7 +12453,7 @@ + + + Command to run Xterm +- Command to run Xterm ++ Command to Start Xterm + + + +@@ -12085,212 +12469,217 @@ + + MythSystemEventEditor + +- ++ + System Event Command Editor + System Event Command Editor + + +- ++ + Recording pending +- Recording pending ++ Recording Pending ++ ++ ++ ++ Recording about to fail ++ Recording About to Fail + + +- ++ + Recording failing +- Recording failing ++ Recording Failing + + +- ++ + Recording started +- Recording started ++ Recording Started + + +- ++ + Recording started writing +- Recording started writing ++ Recording Started Writing + + +- ++ + Recording finished +- Recording finished ++ Recording Finished + + +- ++ + Recording deleted +- Recording deleted ++ Recording Deleted + + +- ++ + Recording expired +- Recording expired ++ Recording Expired + + +- ++ + LiveTV started +- LiveTV started ++ LiveTV Started + + +- ++ + LiveTV ended +- LiveTV ended ++ LiveTV Ended + + +- ++ + Playback started +- Playback started ++ Playback Started + + +- ++ + Playback stopped +- Playback stopped ++ Playback Stopped + + +- ++ + Playback paused +- Playback paused ++ Playback Paused + + +- ++ + Playback unpaused +- Playback unpaused ++ Playback Unpaused + + +- ++ + Playback program changed +- Playback program changed ++ Playback Program Changed + + +- ++ + Tuning signal waiting +- Tuning signal waiting ++ Tuning Signal Waiting + + +- ++ + Master backend started +- Master backend started ++ Master Backend Started + + +- ++ + Master backend shutdown +- Master backend shutdown ++ Master Backend Shutdown + + +- ++ + Client connected to master backend +- Client connected to master backend ++ Client Connected to Master Backend + + +- ++ + Client disconnected from master backend +- Client disconnected from master backend ++ Client Disconnected from Master Backend + + +- ++ + Slave backend connected to master +- Slave backend connected to master ++ Slave Backend Connected to Master + + +- ++ + Slave backend disconnected from master +- Slave backend disconnected from master ++ Slave Backend Disconnected from Master + + +- ++ + Network Control client connected +- Network Control client connected ++ Network Control Client Connected + + +- ++ + Network Control client disconnected +- Network Control client disconnected ++ Network Control Client Disconnected + + +- ++ + mythfilldatabase ran +- mythfilldatabase ran ++ mythfilldatabase Ran + + +- ++ + Scheduler ran +- Scheduler ran ++ Scheduler Ran + + +- ++ + Settings cache cleared +- Settings cache cleared ++ Settings Cache Cleared + + +- ++ + Screen created or destroyed +- Screen created or destroyed ++ Screen Created or Destroyed + + +- ++ + Keystroke event #1 +- Keystroke event #1 ++ Keystroke Event #1 + + +- ++ + Keystroke event #2 +- Keystroke event #2 ++ Keystroke Event #2 + + +- ++ + Keystroke event #3 +- Keystroke event #3 ++ Keystroke Event #3 + + +- ++ + Keystroke event #4 +- Keystroke event #4 ++ Keystroke Event #4 + + +- ++ + Keystroke event #5 +- Keystroke event #5 ++ Keystroke Event #5 + + +- ++ + Keystroke event #6 +- Keystroke event #6 ++ Keystroke Event #6 + + +- ++ + Keystroke event #7 +- Keystroke event #7 ++ Keystroke Event #7 + + +- ++ + Keystroke event #8 +- Keystroke event #8 ++ Keystroke Event #8 + + +- ++ + Keystroke event #9 +- Keystroke event #9 ++ Keystroke Event #9 + + +- ++ + Keystroke event #10 +- Keystroke event #10 ++ Keystroke Event #10 + + +- ++ + CEC command received +- CEC command received ++ CEC Command Received + + +- ++ + Any event +- Any event ++ Any Event + + + + MythTerminal + +- ++ + *** Exited with status: %1 *** +- *** Exited with status: %1 *** ++ *** Exited with Status: %1 *** + + + +@@ -12303,12 +12692,12 @@ + + + Enter standby mode +- Enter standby mode ++ Standby + + + + Exit application +- Exit application ++ Exit + + + +@@ -12339,12 +12728,12 @@ + + + Ok +- Ok ++ OK + + + + MythTV could not locate the menu file %1 +- MythTV could not locate the menu file %1 ++ MythTV Could Not Locate the Menu File %1 + + + +@@ -12390,8 +12779,8 @@ + + MythUISearchDialog + +- +- ++ ++ + %n match(es) + + %n match +@@ -12402,76 +12791,76 @@ + + MythUIWebBrowser + +- ++ + Zoom: %1% + Zoom: %1% + + +- ++ + Sending key presses to web page +- Sending key presses to web page ++ Sending Key Presses to Web Page + + +- ++ + Sending key presses to MythTV +- Sending key presses to MythTV ++ Sending Key Presses to MythTV + + + + MythWebPage + +- ++ + Error loading page: %1 +- Error loading page: %1 ++ Error Loading Page: %1 + + + + MythWebView + +- ++ + Enter filename to save file +- Enter filename to save file ++ Enter filename: + + +- ++ + Downloading file. Please wait... + Downloading file. Please wait... + + +- ++ + Downloading... + Downloading... + + +- +- ++ ++ + Play the file +- Play the file ++ Play the File + + +- +- ++ ++ + Download the file +- Download the file ++ Download the File + + +- +- ++ ++ + Download and play the file +- Download and play the file ++ Download and Play the File + + +- ++ + ERROR downloading file. +- ERROR downloading file. ++ Error Downloading File + + +- ++ + What do you want to do with this file? + What do you want to do with this file? + + +- ++ + Cancel + Cancel + +@@ -12482,7 +12871,7 @@ + + + Period %1 start time +- Period %1 start time ++ Period %1 Start Time + + + +@@ -12494,7 +12883,7 @@ + + + Period %1 end time +- Period %1 end time ++ Period %1 End Time + + + +@@ -12541,7 +12930,7 @@ + + + Daily Wakeup/ShutDown Period %1 +- Daily Wakeup/ShutDown Period %1 ++ Daily Wakeup/Shutdown Period %1 + + + +@@ -12570,7 +12959,7 @@ + + NetworkControl + +- ++ + Network Control + Network Control + +@@ -12578,87 +12967,87 @@ + + OSDSettings + +- ++ + Decode VBI format +- Decode VBI format ++ Decode VBI Format + + +- ++ + None + None + + +- ++ + PAL teletext +- PAL teletext ++ PAL Teletext + + +- ++ + NTSC closed caption +- NTSC closed caption ++ NTSC Closed Caption + + +- ++ + If enabled, this overrides the mythtv-setup setting used during recording when decoding captions. + If enabled, this overrides the mythtv-setup setting used during recording when decoding captions. + + +- ++ + Subtitle Codec + Subtitle Codec + + +- ++ + Always display closed captioning or subtitles +- Always display closed captioning or subtitles ++ Always Display Closed Captioning or Subtitles + + +- ++ + If enabled, captions will be displayed when playing back recordings or watching Live TV. Closed Captioning can be turned on or off by pressing "T" duringplayback. + If enabled, captions will be displayed when playing back recordings or watching Live TV. Closed Captioning can be turned on or off by pressing "T" duringplayback. + + +- ++ + Enable interactive TV +- Enable interactive TV ++ Enable Interactive TV + + +- ++ + If enabled, interactive TV applications (MHEG) will be activated. This is used for teletext and logos for radio and channels that are currently off-air. + If enabled, interactive TV applications (MHEG) will be activated. This is used for teletext and logos for radio and channels that are currently off-air. + + +- ++ + Enable network access for interactive TV +- Enable network access for interactive TV ++ Enable Network Access for Interactive TV + + +- ++ + If enabled, interactive TV applications (MHEG) will be able to access interactive content over the Internet. This is used for BBC iPlayer. + If enabled, interactive TV applications (MHEG) will be able to access interactive content over the Internet. This is used, amongst others, for BBC iPlayer. + + +- ++ + Always use browse mode in Live TV +- Always use browse mode in Live TV ++ Always Use Browse Mode in Live TV + + +- ++ + If enabled, browse mode will automatically be activated whenever you use channel up/down while watching Live TV. + If enabled, browse mode will automatically be activated whenever you use channel up/down while watching Live TV. + + +- ++ + Browse all channels +- Browse all channels ++ Browse All Channels + + +- ++ + If enabled, browse mode will show channels on all available recording devices, instead of showing channels on just the current recorder. + If enabled, browse mode will show channels on all available recording devices, instead of showing channels on just the current recorder. + + +- ++ + On-screen Display + On-screen Display + +@@ -12719,7 +13108,7 @@ + + PaneATSC + +- ++ + Scanning Range + Scanning Range + +@@ -12727,12 +13116,12 @@ + + PaneDVBUtilsImport + +- ++ + File location +- File location ++ File Location + + +- ++ + Location of the channels.conf file. + Location of the channels.conf file. + +@@ -12802,67 +13191,78 @@ + + + ++ PlayBackScaling ++ ++ Scaling ++ Scaling ++ ++ ++ No scaling ++ No Scaling ++ ++ ++ + PlayGroupConfig + +- ++ + Title match (regex) +- Title match (regex) ++ Title Match (regex) + + +- ++ + Automatically set new recording rules to use this group if the title matches this regular expression. For example, "(News|CNN)" would match any title in which "News" or "CNN" appears. + Automatically set new recording rules to use this group if the title matches this regular expression. For example, "(News|CNN)" would match any title in which "News" or "CNN" appears. + + +- +- +- +- ++ ++ ++ ++ + (default) + (default) + + +- ++ + Skip ahead (seconds) +- Skip ahead (seconds) ++ Skip Ahead (seconds) + + +- ++ + How many seconds to skip forward on a fast forward. + How many seconds to skip forward on a fast forward. + + +- ++ + Skip back (seconds) +- Skip back (seconds) ++ Skip Back (seconds) + + +- ++ + How many seconds to skip backward on a rewind. + How many seconds to skip backward on a rewind. + + +- ++ + Jump amount (minutes) +- Jump amount (minutes) ++ Jump Amount (minutes) + + +- ++ + How many minutes to jump forward or backward when the jump keys are pressed. + How many minutes to jump forward or backward when the jump keys are pressed. + + +- ++ + Time stretch (speed x 100) +- Time stretch (speed x 100) ++ Time Stretch (speed x 100) + + +- ++ + Initial playback speed with adjusted audio. Use 100 for normal speed, 50 for half speed and 200 for double speed. + Initial playback speed with adjusted audio. Use 100 for normal speed, 50 for half speed and 200 for double speed. + + +- ++ + %1 Group + Play Group + %1 is the name of the playgroup +@@ -12872,631 +13272,651 @@ + + PlayGroupEditor + +- ++ + Playback Groups + Playback Groups + + +- ++ + Create New Playback Group + Create New Playback Group + + +- ++ ++ Enter new group name ++ Enter group name: ++ ++ ++ ++ Sorry, this Playback Group name cannot be blank. ++ Sorry, the name cannot be blank. ++ ++ ++ ++ Sorry, this Playback Group name is already in use. ++ Sorry, this name is already in use. ++ ++ + Enter group name or press SELECT to enter text via the On Screen Keyboard +- Enter group name or press SELECT to enter text via the On Screen Keyboard ++ Enter group name or press SELECT to enter text via the On Screen Keyboard + + +- + Delete playback group: + '%1'? +- Delete playback group: ++ Delete playback group: + '%1'? + + +- + Yes, delete group +- Yes, delete group ++ Yes, Delete Group + + +- + No, Don't delete group +- No, Don't delete group ++ No, Keep Group + + +- ++ + Default + Default + + +- + (Create new group) +- (Create new group) ++ (Create new group) + + + + PlaybackBox + +- ++ + Watch List + Watch List + + +- +- ++ ++ + Groups + Groups + + +- ++ + Recordings + Recordings + + +- ++ + Password for group '%1': + Password for group '%1': + + +- + , which consume %1 +- , which consume %1 ++ , which consume %1 + + +- + GB + GigaBytes +- GB ++ GB + + +- ++ + There are no recordings in your current view +- There are no recordings in your current view ++ There are No Recordings in the Current View + + +- ++ + There are no recordings available +- There are no recordings available ++ There are No Recordings Available + + +- ++ + _NO_TITLE_ + _NO_TITLE_ + + +- +- +- +- +- ++ ++ ++ ++ ++ + Unknown + Unknown + + +- ++ + Change Group Filter + Change Group Filter + + +- ++ + Change Group View + Change Group View + + +- ++ + Change Group Password + Change Group Password + + +- ++ + Add this Group to Playlist +- Add this Group to Playlist ++ Add This Group to Playlist + + +- ++ + Add this recording to Playlist +- Add this recording to Playlist ++ Add This Recording to Playlist + + +- ++ + Help (Status Icons) + Help (Status Icons) + + +- ++ + Are you sure you want to delete: + Are you sure you want to delete: + + +- ++ + Recording file does not exist. + Are you sure you want to delete: + Recording file does not exist. + Are you sure you want to delete: + + +- ++ + Are you sure you want to stop: + Are you sure you want to stop: + + +- ++ + Yes, and allow re-record +- Yes, and allow re-record ++ Yes, Delete and Allow Re-record + + +- +- ++ ++ + Yes, delete it +- Yes, delete it ++ Yes, Delete + + +- ++ + Yes, stop recording +- Yes, stop recording ++ Yes, Stop Recording + + +- ++ + Yes, delete it and the remaining %1 list items +- Yes, delete it and the remaining %1 list items ++ Yes, Delete Recording and the Remaining %1 List Items + + +- ++ + No, keep it +- No, keep it ++ No, Keep + + +- ++ + No, continue recording +- No, continue recording ++ No, Continue Recording + + +- ++ + No, and keep the remaining %1 list items +- No, and keep the remaining %1 list items ++ No, Keep the Remaining %1 List Items + + +- +- ++ ++ + Recording Available + + Recording Available + + + +- +- ++ ++ + This recording is currently in use by: + This recording is currently in use by: + + +- + There is/are %n recording(s) in this display group + Used to have singular/plural problem. +- ++ + There is %n recording in this display group + There are %n recordings in this display group + + + +- ++ + %1% used, %2 GB free + Diskspace + %1% used, %2 GB free + + +- +- +- +- +- +- +- ++ ++ ++ ++ ++ ++ ++ + Live TV + Live TV + + +- +- ++ ++ + This recording is already being deleted +- This recording is already being deleted ++ This Recording is Already Being Deleted + + +- +- +- ++ ++ ++ + Playlist Options + Playlist Options + + +- ++ + This recording is currently Available +- This recording is currently Available ++ This Recording is Currently Available + + +- +- +- +- +- ++ ++ ++ ++ ++ + Recording Unavailable + + Recording Unavailable + + + +- ++ + This recording is currently being deleted and is unavailable +- This recording is currently being deleted and is unavailable ++ This Recording is Currently Being Deleted and is Unavailable + + +- ++ + This recording has been deleted and is unavailable +- This recording has been deleted and is unavailable ++ This Recording Has Been Deleted and is Unavailable + + +- ++ + The file for this recording can not be found +- The file for this recording can not be found ++ The File for This Recording Can Not Be Found + + +- ++ + The file for this recording is empty. +- The file for this recording is empty. ++ The File for This Recording is Empty + + +- ++ + This recording is not yet available. +- This recording is not yet available. ++ This Recording is Not Yet Available + + +- +- ++ ++ + Play + Play + + +- ++ + Shuffle Play + Shuffle Play + + +- ++ + Clear Playlist + Clear Playlist + + +- ++ + Toggle playlist for this Category/Title +- Toggle playlist for this Category/Title ++ Toggle Playlist for This Category/Title + + +- ++ + Toggle playlist for this Group +- Toggle playlist for this Group ++ Toggle Playlist for This Group + + +- ++ + Toggle playlist for this recording +- Toggle playlist for this recording ++ Toggle Playlist for This Recording + + +- +- +- ++ ++ ++ + Storage Options + Storage Options + + +- +- +- ++ ++ ++ + Job Options + Job Options + + +- +- +- ++ ++ ++ + Delete + Delete + + +- ++ + Delete, and allow re-record +- Delete, and allow re-record ++ Delete, and Allow Re-record + + +- +- ++ ++ + Change Recording Group + Change Recording Group + + +- +- ++ ++ + Change Playback Group + Change Playback Group + + +- +- ++ ++ + Disable Auto Expire + Disable Auto Expire + + +- +- ++ ++ + Enable Auto Expire + Enable Auto Expire + + +- +- ++ ++ + Begin Transcoding + Begin Transcoding + + +- +- ++ ++ + Stop Transcoding + Stop Transcoding + + +- +- ++ ++ + Begin Metadata Lookup + Begin Metadata Lookup + + +- +- ++ ++ + Stop Metadata Lookup + Stop Metadata Lookup + + +- +- +- +- +- ++ ++ ++ ++ ++ + Begin + Begin + + +- +- +- +- +- ++ ++ ++ ++ ++ + Stop + Stop + + +- +- +- ++ ++ ++ + There is %n item(s) in the playlist. Actions affect all items in the playlist + +- There is %n item in the playlist. Actions affect all items in the playlist +- There are %n items in the playlist. Actions affect all items in the playlist ++ There is %n item in the playlist. Actions affect all items in the playlist. ++ There are %n items in the playlist. Actions affect all items in the playlist. + + + +- ++ + Allow Re-record + Allow Re-record + + +- ++ + Play Options + Play Options + + +- ++ + Play from bookmark +- Play from bookmark ++ Play from Bookmark + + +- ++ + Play from beginning +- Play from beginning ++ Play from Beginning + + +- ++ + Play from last played position +- Play from last played position ++ Play from Last Played Position ++ ++ ++ ++ There is/are %n recording(s) in this display group, which consume(s) %1 GiB. ++ ++ There is %n recording in this display group, which consumes %1 GiB. ++ There are %n recordings in this display group, which consume %1 GiB. ++ ++ ++ ++ ++ There is no recording in this display group. ++ There Are No Recordings in This Display Group + + +- ++ + Do not preserve this episode +- Do not preserve this episode ++ Do Not Preserve This Episode + + +- ++ + Preserve this episode +- Preserve this episode ++ Preserve This Episode + + +- ++ + Scheduling Options + Scheduling Options + + +- ++ + Edit Recording Schedule + Edit Recording Schedule + + +- ++ + Custom Edit + Custom Edit + + +- ++ + User Job + User Job + + +- ++ + Transcoding profiles +- Transcoding profiles ++ Transcoding Profiles + + +- +- +- +- +- ++ ++ ++ ++ ++ + Default + Default + + +- ++ + Autodetect + Autodetect + + +- ++ + High Quality + High Quality + + +- ++ + Medium Quality + Medium Quality + + +- ++ + Low Quality + Low Quality + + +- ++ + Recording file cannot be found +- Recording file cannot be found ++ Recording File Cannot Be Found + + +- ++ + Recording file contains no data +- Recording file contains no data ++ Recording File Contains No Data + + +- +- +- ++ ++ ++ + Recording Options + Recording Options + + +- +- ++ ++ + List Recorded Episodes + List Recorded Episodes + + +- +- ++ ++ + List All Recordings + List All Recordings + + +- ++ + Play from... +- Play from... ++ Play From... + + +- +- ++ ++ + Remove from Playlist + Remove from Playlist + + +- +- +- ++ ++ ++ + Cannot delete + +- Cannot delete ++ Cannot Delete + + + +- ++ + Group List Menu + Group List Menu + + +- +- ++ ++ + Begin Commercial Detection + Begin Commercial Detection + + +- +- ++ ++ + Stop Commercial Detection + Stop Commercial Detection + + +- ++ + Allow this episode to re-record +- Allow this episode to re-record ++ Allow This Episode to Re-record + + +- ++ + Show Recording Details + Show Recording Details + + +- ++ + Change Recording Metadata + Change Recording Metadata + + +- +- ++ ++ + Add to Playlist + Add to Playlist + + +- ++ + Stop Recording + Stop Recording + + +- +- ++ ++ + Mark as Unwatched + Mark as Unwatched + + +- +- ++ ++ + Mark as Watched + Mark as Watched + + +- ++ + Undelete + Undelete + + +- ++ + Delete Forever + Delete Forever + + +- +- ++ ++ + Deleted + Deleted + + +- +- +- +- +- ++ ++ ++ ++ ++ + %1 [%n item(s)] + + %1 [%n item] +@@ -13504,32 +13924,32 @@ + + + +- ++ + Categories + Categories + + +- ++ + Change Filter + Change Filter + + +- ++ + Add New + Add New + + +- ++ + Select Recording Group + Select Recording Group + + +- ++ + Select Playback Group + Select Playback Group + + +- ++ + New Recording Group + New Recording Group + +@@ -13537,18 +13957,22 @@ + + PlaybackProfileConfig + +- + & + and +- & ++ & + + +- ++ + if rez + if rez + + +- ++ ++ Mark for deletion ++ Mark for Deletion ++ ++ ++ + Add New Entry + Add New Entry + +@@ -13556,662 +13980,808 @@ + + PlaybackProfileConfigs + +- + Playback Profiles %1 +- Playback Profiles %1 ++ Playback Profiles %1 + + +- ++ + Current Video Playback Profile + Current Video Playback Profile + + +- + Add New +- Add New ++ Add New + + +- + Enter Playback Group Name +- Enter Playback Group Name ++ Enter Playback Group Name + + +- + Sorry, playback group + name cannot be blank. +- Sorry, playback group ++ Sorry, playback group + name cannot be blank. + + +- + Sorry, playback group name + '%1' is already being used. +- Sorry, playback group name ++ Sorry, playback group name + '%1' is already being used. + + + + PlaybackProfileItemConfig + +- + W + Width +- W ++ W + + +- + H + Height +- H ++ H + + +- ++ + Decoder + Decoder + + +- ++ + Max CPUs + Max CPUs + + +- ++ + Maximum number of CPU cores used for video decoding and filtering. + Maximum number of CPU cores used for video decoding and filtering. + + +- ++ + Multithreaded decoding disabled-only one CPU will be used, please recompile with --enable-ffmpeg-pthreads to enable. + Multithreaded decoding disabled-only one CPU will be used, please recompile with --enable-ffmpeg-pthreads to enable. + + +- ++ + Disabling will significantly reduce the load on the CPU when watching HD H.264 but may significantly reduce video quality. + Disabling will significantly reduce the load on the CPU when watching HD H.264 but may significantly reduce video quality. + + +- ++ + When unchecked the OSD will not fade away but instead will disappear abruptly. + When unchecked the OSD will not fade away but instead will disappear abruptly. + + +- ++ + Uncheck this if the video studders while the OSD is fading away. + Uncheck this if the video studders while the OSD is fading away. + + +- ++ + Deblocking filter +- Deblocking filter ++ Deblocking Filter + + +- + Profile Item +- Profile Item ++ Profile Item + + +- ++ ++ + Match criteria +- Match criteria ++ Match Criteria + + +- ++ ++ Width ++ Width ++ ++ ++ ++ Height ++ Height ++ ++ ++ ++ Optional setting to restrict this profile to a selected picture size range. If both match criteria are used then both must be satisfied for the entry to be selected. ++ Optional setting to restrict this profile to a selected picture size range. If both match criteria are used then both must be satisfied for the entry to be selected. ++ ++ ++ ++ Video Formats ++ Video Formats ++ ++ ++ ++ Optional setting to restrict this profile to a video format or formats. You can also type in a format or several formats separated by space. To find the format for a video use ffprobe and look at the word after "Video:". Also you can get a complete list of available formats with ffmpeg -codecs. ++ Optional setting to restrict this profile to a video format or formats. You can also type in a format or several formats separated by space. To find the format for a video use ffprobe and look at the word after "Video:". Also you can get a complete list of available formats with ffmpeg -codecs. ++ ++ ++ ++ Frame Rate Range ++ Frame Rate Range ++ ++ ++ ++ Optional setting to restrict this profile to a range of frame rates. Valid formats for the setting are [nn.nnn - nn.nnn], [> nn.nnn], [>= nn.nnn], [< nn.nnn], [<= nn.nnn]. Also [nn.nnn] for an exact match. ++ Optional setting to restrict this profile to a range of frame rates. Valid formats for the setting are [nn.nnn - nn.nnn], [> nn.nnn], [>= nn.nnn], [< nn.nnn], [<= nn.nnn]. Also [nn.nnn] for an exact match. ++ ++ ++ + Video renderer +- Video renderer ++ Video Renderer + + +- ++ + OSD renderer +- OSD renderer ++ OSD Renderer + + +- ++ + OSD fade +- OSD fade ++ OSD Fade + + +- ++ + Primary deinterlacer +- Primary deinterlacer ++ Primary Deinterlacer + + +- ++ + Fallback deinterlacer +- Fallback deinterlacer ++ Fallback Deinterlacer + + +- ++ + Custom filters +- Custom filters ++ Custom Filters + + +- ++ + Example custom filter list: 'ivtc,denoise3d' +- Example custom filter list: 'ivtc,denoise3d' ++ Example Custom Filter List: 'ivtc,denoise3d' + + +- ++ + When unchecked the deblocking loopfilter will be disabled +- When unchecked the deblocking loopfilter will be disabled ++ When unchecked the deblocking loopfilter will be disabled. ++ ++ ++ ++ Invalid frame rate specification(%1), discarded ++ Invalid Frame Rate Specification(%1), Discarded + + +- ++ + Main deinterlacing method. %1 +- Main deinterlacing method. %1 ++ Main Deinterlacing Method. %1 + + +- ++ + Fallback deinterlacing method. %1 +- Fallback deinterlacing method. %1 ++ Fallback Deinterlacing Method. %1 ++ ++ ++ ++ Remove this profile item? ++ Remove this profile item? ++ ++ ++ ++ & ++ and ++ & ++ ++ ++ ++ formats ++ video formats ++ formats ++ ++ ++ ++ framerate ++ framerate + + + + PlaybackSettings + +- ++ + Extra audio buffering +- Extra audio buffering ++ Extra Audio Buffering + + +- ++ + Enable this setting if MythTV is playing "crackly" audio. This setting affects digital tuners (QAM/DVB/ATSC) and hardware encoders. It will have no effect on framegrabbers (MPEG-4/RTJPEG). MythTV will keep extra audio data in its internal buffers to workaround this bug. + Enable this setting if MythTV is playing "crackly" audio. This setting affects digital tuners (QAM/DVB/ATSC) and hardware encoders. It will have no effect on framegrabbers (MPEG-4/RTJPEG). MythTV will keep extra audio data in its internal buffers to workaround this bug. + + +- ++ + Use FFmpeg's original MPEG-TS demuxer +- Use FFmpeg's original MPEG-TS demuxer ++ Use FFmpeg's Original MPEG-TS Demuxer + + +- ++ + Experimental: Enable this setting to use FFmpeg's native demuxer. Things will be broken. + Experimental: Enable this setting to use FFmpeg's native demuxer. Things will be broken. + + +- ++ + PIP video location +- PIP video location ++ PIP Video Location + + +- ++ + Location of PIP Video window. + Location of PIP Video window. + + +- ++ + Default group filter to apply +- Default group filter to apply ++ Default Group Filter to Apply + + +- ++ + All Programs + All Programs + + +- ++ + Default group filter to apply on the View Recordings screen. + Default group filter to apply on the View Recordings screen. + + +- ++ + Always prompt for initial group filter +- Always prompt for initial group filter ++ Always Prompt for Initial Group Filter + + +- ++ + If enabled, always prompt the user for the initial filter to apply when entering the Watch Recordings screen. + If enabled, always prompt the user for the initial filter to apply when entering the Watch Recordings screen. + + +- ++ + Save current group filter when changed +- Save current group filter when changed ++ Save Current Group Filter When Changed + + +- ++ + If enabled, remember the last selected filter instead of displaying the default filter whenever you enter the playback screen. + If enabled, remember the last selected filter instead of displaying the default filter whenever you enter the playback screen. + + +- ++ + Start in group list +- Start in group list ++ Start in Group List + + +- ++ + If enabled, the focus will start on the group list, otherwise the focus will default to the recordings. + If enabled, the focus will start on the group list, otherwise the focus will default to the recordings. + + +- ++ + Smart fast forwarding +- Smart fast forwarding ++ Smart Fast Forwarding + + +- ++ + If enabled, then immediately after rewinding, only skip forward the same amount as skipping backwards. + If enabled, then immediately after rewinding, only skip forward the same amount as skipping backwards. + + +- ++ + Automatically skip commercials +- Automatically skip commercials ++ Automatically Skip Commercials + + +- ++ + Notify, but do not skip + Skip commercials +- Notify, but do not skip ++ Notify, but Do Not Skip + + +- ++ + Automatically Skip + Skip commercials + Automatically Skip + + +- ++ + Automatically skip commercial breaks that have been flagged during automatic commercial detection or by the mythcommflag program, or just notify that a commercial has been detected. + Automatically skip commercial breaks that have been flagged during automatic commercial detection or by the mythcommflag program, or just notify that a commercial has been detected. + + +- ++ + Commercial skip automatic rewind amount (secs) +- Commercial skip automatic rewind amount (secs) ++ Commercial Skip Automatic Rewind Amount (seconds) + + +- ++ + MythTV will automatically rewind this many seconds after performing a commercial skip. + MythTV will automatically rewind this many seconds after performing a commercial skip. + + +- ++ + Commercial skip notify amount (secs) +- Commercial skip notify amount (secs) ++ Commercial Skip Notify Amount (secs) + + +- ++ + MythTV will act like a commercial begins this many seconds early. This can be useful when commercial notification is used in place of automatic skipping. + MythTV will act like a commercial begins this many seconds early. This can be useful when commercial notification is used in place of automatic skipping. + + +- ++ + Maximum commercial skip (secs) +- Maximum commercial skip (secs) ++ Maximum Commercial Skip (secs) + + +- ++ + MythTV will discourage long manual commercial skips. Skips which are longer than this will require the user to hit the SKIP key twice. Automatic commercial skipping is not affected by this limit. + MythTV will discourage long manual commercial skips. Skips which are longer than this will require the user to hit the SKIP key twice. Automatic commercial skipping is not affected by this limit. + + +- ++ + Merge short commercial breaks (secs) +- Merge short commercial breaks (secs) ++ Merge Short Commercial Breaks (secs) + + +- ++ + Treat consecutive commercial breaks shorter than this as one break when skipping forward. Useful if you have to skip a few times during breaks. Applies to automatic skipping as well. Set to 0 to disable. + Treat consecutive commercial breaks shorter than this as one break when skipping forward. Useful if you have to skip a few times during breaks. Applies to automatic skipping as well. Set to 0 to disable. + + +- ++ ++ Enter Playback Profile Name ++ Enter Playback Profile name: ++ ++ ++ ++ Sorry, playback group ++name cannot be blank. ++ Sorry, group name cannot be blank. ++ ++ ++ ++ Sorry, playback group name ++'%1' is already being used. ++ Sorry, group name '%1' is already used. ++ ++ ++ + Sort all sub-titles/multi-titles Ascending +- Sort all sub-titles/multi-titles Ascending ++ Sort All Sub-titles/Multi-titles Ascending + + +- ++ + Sort all sub-titles/multi-titles Descending +- Sort all sub-titles/multi-titles Descending ++ Sort All Sub-titles/Multi-titles Descending + + +- ++ + Sort sub-titles Descending, multi-titles Ascending +- Sort sub-titles Descending, multi-titles Ascending ++ Sort Sub-titles Descending, Multi-titles Ascending + + +- ++ + Sort sub-titles Ascending, multi-titles Descending +- Sort sub-titles Ascending, multi-titles Descending ++ Sort Sub-titles Ascending, Multi-titles Descending + + +- ++ + Selects how to sort show episodes. Sub-titles refers to the episodes listed under a specific show title. Multi-title refers to sections (e.g. "All Programs") which list multiple titles. Sections in parentheses are not affected. + Selects how to sort show episodes. Sub-titles refers to the episodes listed under a specific show title. Multi-title refers to sections (e.g. "All Programs") which list multiple titles. Sections in parentheses are not affected. + + +- ++ + Episode sort orderings +- Episode sort orderings ++ Episode Sort Orderings + + +- ++ + Sort episodes +- Sort episodes ++ Sort Episodes + + +- ++ + Record date +- Record date ++ Record Date + + +- ++ + Season/Episode + Season/Episode + + +- ++ + Original air date +- Original air date ++ Original Air Date + + +- ++ + Program ID + Program ID + + +- ++ + Selects how to sort a show's episodes +- Selects how to sort a show's episodes ++ Selects How to Sort a Show's Episodes + + +- ++ + Fast forward/rewind reposition amount +- Fast forward/rewind reposition amount ++ Fast Forward/Rewind Reposition Amount + + +- ++ + When exiting sticky keys fast forward/rewind mode, reposition this many 1/100th seconds before resuming normal playback. This compensates for the reaction time between seeing where to resume playback and actually exiting seeking. + When exiting sticky keys fast forward/rewind mode, reposition this many 1/100th seconds before resuming normal playback. This compensates for the reaction time between seeing where to resume playback and actually exiting seeking. + + +- ++ + Reverse direction in fast forward/rewind +- Reverse direction in fast forward/rewind ++ Reverse Direction in Fast Forward/Rewind + + +- ++ + If enabled, pressing the sticky rewind key in fast forward mode switches to rewind mode, and vice versa. If disabled, it will decrease the current speed or switch to play mode if the speed can't be decreased further. + If enabled, pressing the sticky rewind key in fast forward mode switches to rewind mode, and vice versa. If disabled, it will decrease the current speed or switch to play mode if the speed can't be decreased further. + + +- ++ + Vertical scaling +- Vertical scaling ++ Vertical Scaling + + +- ++ + Adjust this if the image does not fill your screen vertically. Range -100% to 100% + Adjust this if the image does not fill your screen vertically. Range -100% to 100% + + +- ++ + Horizontal scaling +- Horizontal scaling ++ Horizontal Scaling + + +- ++ + Adjust this if the image does not fill your screen horizontally. Range -100% to 100% + Adjust this if the image does not fill your screen horizontally. Range -100% to 100% + + +- ++ + Scan displacement (X) +- Scan displacement (X) ++ Scan Displacement (X) + + +- ++ + Adjust this to move the image horizontally. + Adjust this to move the image horizontally. + + +- ++ + Scan displacement (Y) +- Scan displacement (Y) ++ Scan Displacement (Y) + + +- ++ + Adjust this to move the image vertically. + Adjust this to move the image vertically. + + +- ++ + Clear bookmark on playback +- Clear bookmark on playback ++ Clear Bookmark on Playback + + +- ++ + If enabled, automatically clear the bookmark on a recording when the recording is played back. If disabled, you can mark the beginning with rewind then save position. + If enabled, automatically clear the bookmark on a recording when the recording is played back. If disabled, you can mark the beginning with rewind then save position. + + +- ++ + Alternate clear and save bookmark +- Alternate clear and save bookmark ++ Alternate Clear and Save Bookmark + + +- ++ + During playback the SELECT key (Enter or Space) will alternate between "Bookmark Saved" and "Bookmark Cleared". If disabled, the SELECT key will save the current position for each keypress. + During playback the SELECT key (Enter or Space) will alternate between "Bookmark Saved" and "Bookmark Cleared". If disabled, the SELECT key will save the current position for each keypress. + + +- ++ ++ Playback from start of program ++ Playback from Start of Program ++ ++ ++ ++ If enabled and no bookmark is set, playback starts at the program scheduled start time rather than the beginning of the recording. Useful for automatically skipping 'start early' parts of a recording. ++ If enabled and no bookmark is set, playback starts at the program scheduled start time rather than the beginning of the recording. Useful for automatically skipping 'start early' parts of a recording. ++ ++ ++ + Action on playback exit +- Action on playback exit ++ Action on Playback Exit + + +- ++ + Just exit +- Just exit ++ Exit Without Saving + + +- ++ + Save position and exit +- Save position and exit ++ Save and Exit + + +- ++ + Always prompt (excluding Live TV) +- Always prompt (excluding Live TV) ++ Always Prompt (excluding Live TV) + + +- ++ + Always prompt (including Live TV) +- Always prompt (including Live TV) ++ Always Prompt (including Live TV) + + +- ++ + Prompt for Live TV only +- Prompt for Live TV only ++ Prompt for Live TV Only + + +- ++ + If set to prompt, a menu will be displayed when you exit playback mode. The options available will allow you to save your position, delete the recording, or continue watching. + If set to prompt, a menu will be displayed when you exit playback mode. The options available will allow you to save your position, delete the recording, or continue watching. + + +- ++ + Prompt at end of recording +- Prompt at end of recording ++ Prompt At End of Recording + + +- ++ + If enabled, a menu will be displayed allowing you to delete the recording when it has finished playing. + If enabled, a menu will be displayed allowing you to delete the recording when it has finished playing. + + +- ++ + Jump to program OSD +- Jump to program OSD ++ Jump to Program OSD + + +- ++ + Set the choice between viewing the current recording group in the OSD, or showing the 'Watch Recording' screen when 'Jump to Program' is activated. If enabled, the recordings are shown in the OSD + Set the choice between viewing the current recording group in the OSD, or showing the 'Watch Recording' screen when 'Jump to Program' is activated. If enabled, the recordings are shown in the OSD + + +- ++ + Continue playback when embedded +- Continue playback when embedded ++ Continue Playback When Embedded + + +- ++ + If enabled, TV playback continues when the TV window is embedded in the upcoming program list or recorded list. The default is to pause the recorded show when embedded. + If enabled, TV playback continues when the TV window is embedded in the upcoming program list or recorded list. The default is to pause the recorded show when embedded. + + +- ++ + Automatically mark a recording as watched +- Automatically mark a recording as watched ++ Automatically Mark a Recording as Watched + + +- ++ + If enabled, when you exit near the end of a recording it will be marked as watched. The automatic detection is not foolproof, so do not enable this setting if you don't want an unwatched recording marked as watched. + If enabled, when you exit near the end of a recording it will be marked as watched. The automatic detection is not foolproof, so do not enable this setting if you don't want an unwatched recording marked as watched. + + +- ++ + Live TV idle timeout (mins) +- Live TV idle timeout (mins) ++ Live TV Idle Timeout (mins) + + +- ++ + Exit Live TV automatically if left idle for the specified number of minutes. 0 disables the timeout. + Exit Live TV automatically if left idle for the specified number of minutes. 0 disables the timeout. + + +- ++ + Letterboxing color +- Letterboxing color ++ Letterboxing Color + + +- ++ + By default MythTV uses black letterboxing to match broadcaster letterboxing, but those with plasma screens may prefer gray to minimize burn-in. Currently only works with XVideo video renderer. + By default MythTV uses black letterboxing to match broadcaster letterboxing, but those with plasma screens may prefer gray to minimize burn-in. Currently only works with XVideo video renderer. + + +- ++ + Video aspect override +- Video aspect override ++ Video Aspect Override + + +- ++ + When enabled, these will override the aspect ratio specified by any broadcaster for all video streams. + When enabled, these will override the aspect ratio specified by any broadcaster for all video streams. + + +- ++ + Zoom + Zoom + + +- ++ + When enabled, these will apply a predefined zoom to all video playback in MythTV. + When enabled, these will apply a predefined zoom to all video playback in MythTV. + + +- ++ + Enable realtime priority threads +- Enable realtime priority threads ++ Enable Realtime Priority Threads + + +- ++ + When running mythfrontend with root privileges, some threads can be given enhanced priority. Disable this if MythFrontend freezes during video playback. + When running mythfrontend with root privileges, some threads can be given enhanced priority. Disable this if MythFrontend freezes during video playback. + + +- ++ + Sort titles +- Sort titles ++ Sort Titles + + +- ++ + Alphabetically + Alphabetically + + +- ++ + By recording priority +- By recording priority ++ by Recording Priority + + +- ++ + Sets the title sorting order when the view is set to Titles only. + Sets the title sorting order when the view is set to Titles only. + + +- ++ + Enable gamma correction for video +- Enable gamma correction for video ++ Enable Gamma Correction for Video + + +- ++ + If enabled, QuickTime will correct the gamma of the video to match your monitor. Turning this off can save some CPU cycles. + If enabled, QuickTime will correct the gamma of the video to match your monitor. Turning this off can save some CPU cycles. + + +- ++ + Scale video as necessary +- Scale video as necessary ++ Scale Video as Necessary + + +- ++ + If enabled, video will be scaled to fit your window or screen. If unchecked, video will never be made larger than its actual pixel size. + If enabled, video will be scaled to fit your window or screen. If unchecked, video will never be made larger than its actual pixel size. + + +- ++ + Frames to skip in fullscreen mode +- Frames to skip in fullscreen mode ++ Frames to Skip in Fullscreen Mode + + +- ++ + Video displayed in fullscreen or non-windowed mode will skip this many frames for each frame drawn. Set to 0 to show every frame. Only valid when either "Use GUI size for TV playback" or "Run the frontend in a window" is not checked. + Video displayed in fullscreen or non-windowed mode will skip this many frames for each frame drawn. Set to 0 to show every frame. Only valid when either "Use GUI size for TV playback" or "Run the frontend in a window" is not checked. + + +- +- ++ ++ Scaling ++ Scaling ++ ++ ++ ++ No scaling ++ No Scaling ++ ++ ++ ++ Playback settings ++ Playback Settings ++ ++ ++ ++ General Playback ++ General Playback ++ ++ ++ ++ Add a new playback profile ++ Add a New Playback Profile ++ ++ ++ ++ View Recordings ++ View Recordings ++ ++ ++ ++ Recording Groups ++ Recording Groups ++ ++ ++ ++ Seeking ++ Seeking ++ ++ ++ ++ Commercial Skip ++ Commercial Skip ++ ++ ++ ++ Mac OS X Video Settings ++ Mac OS X Video Settings ++ ++ + General Playback (%1/%2) + %2 is the position, %2 is the total +- General Playback (%1/%2) ++ General Playback (%1/%2) + + +- +- + View Recordings (%1/%2) + %1 is the position, %2 is the total +- View Recordings (%1/%2) ++ View Recordings (%1/%2) + + +- + Recording Groups (%1/%2) + %1 is the position, %2 is the total +- Recording Groups (%1/%2) ++ Recording Groups (%1/%2) + + +- + Seeking (%1/%2) + %1 is the position, %2 is the total +- Seeking (%1/%2) ++ Seeking (%1/%2) + + +- + Commercial Skip (%1/%2) + %1 is the position, %2 is the total +- Commercial Skip (%1/%2) ++ Commercial Skip (%1/%2) + + +- + Mac OS X Video Setting (%1/%2) + %1 is the position, %2 is the total +- Mac OS X Video Setting (%1/%2) ++ Mac OS X Video Setting (%1/%2) + + +- + Mac OS X Video Settings (%1/%2) + %1 is the position, %2 is the total +- Mac OS X Video Settings (%1/%2) ++ Mac OS X Video Settings (%1/%2) ++ ++ ++ ++ PlaybackSettingsDialog ++ ++ ++ Playback Profile Menu ++ Playback Profile Menu ++ ++ ++ ++ Move Up ++ Move Up ++ ++ ++ ++ Move Down ++ Move Down ++ ++ ++ ++ Delete ++ Delete + + + +@@ -14224,12 +14794,12 @@ + + + This can be any command to launch a DVD player. Internal is the default. For other players, %d will be substituted for the DVD device (e.g. /dev/dvd). +- This can be any command to launch a DVD player. Internal is the default. For other players, %d will be substituted for the DVD device (e.g. /dev/dvd). ++ This can be any command to launch a DVD player. Internal is the default. For other players, %d will be substituted for the DVD device (e.g. /dev/dvd). + + + + This device must exist, and the user playing the DVD needs to have read permission on the device. 'default' will let the MediaMonitor choose a device. +- This device must exist, and the user playing the DVD needs to have read permission on the device. 'default' will let the MediaMonitor choose a device. ++ This device must exist, and the user playing the DVD needs to have read permission on the device. 'default' will let the MediaMonitor choose a device. + + + +@@ -14249,12 +14819,12 @@ + + + Exit without saving settings +- Exit without saving settings ++ Exit Without Saving + + + + Save settings and Exit +- Save settings and Exit ++ Save and Exit + + + +@@ -14308,12 +14878,21 @@ + + ProfileGroup + +- + ProfileGroup +- ProfileGroup ++ ProfileGroup ++ ++ ++ ++ Profile Group ++ Profile Group ++ ++ ++ ++ Profiles ++ Profiles + + +- ++ + Transcoders + Transcoders + +@@ -14321,52 +14900,52 @@ + + ProfileGroupEditor + +- + New Profile Group Name +- New Profile Group Name ++ New Profile Group Name + + +- + (Create new profile group) +- (Create new profile group) ++ (Create new profile group) + + +- + Delete profile group: + '%1'? +- Delete profile group: ++ Delete profile group: + '%1'? + + +- + Yes, delete group +- Yes, delete group ++ Yes, Delete Group + + +- + No, Don't delete group +- No, Don't delete group ++ No, Keep Group ++ ++ ++ ++ Profile Group ++ Profile Group + + + + ProgDetails + +- ++ + Title + Title + + +- ++ + Title Pronounce + Title Pronounce + + +- ++ + Part %1 of %2, + Part %1 of %2, + + +- ++ + %n star(s) + + %n star +@@ -14374,199 +14953,204 @@ + + + +- ++ + Mono + Mono + + +- ++ + Stereo + Stereo + + +- ++ + Surround Sound + Surround Sound + + +- ++ + Dolby Sound + Dolby Sound + + +- ++ + Audio for Hearing Impaired + Audio for Hearing Impaired + + +- ++ + Audio for Visually Impaired + Audio for Visually Impaired + + +- ++ + HDTV + HDTV + + +- ++ + Widescreen + Widescreen + + +- ++ + AVC/H.264 + AVC/H.264 + + +- ++ + 720p Resolution + 720p Resolution + + +- ++ + 1080i/p Resolution + 1080i/p Resolution + + +- ++ + CC + Closed Captioned + CC + + +- ++ + Subtitles Available + Subtitles Available + + +- ++ + Subtitled + Subtitled + + +- ++ + Deaf Signing + Deaf Signing + + +- ++ + Unidentified Episode + Unidentified Episode + + +- ++ + Repeat + Repeat + + +- ++ + Description + Description + + +- ++ + Category + Category + + +- ++ ++ Genre ++ Genre ++ ++ ++ + Type + category_type + Type + + +- ++ + %1 of %2 + %1 of %2 + + +- ++ + Episode + Episode + + +- ++ + Season + Season + + +- ++ + Syndicated Episode Number + Syndicated Episode Number + + +- ++ + Original Airdate + Original Airdate + + +- ++ + Program ID + Program ID + + +- ++ + Actors + Actors + + +- ++ + Director + Director + + +- ++ + Producer + Producer + + +- ++ + Executive Producer + Executive Producer + + +- ++ + Writer + Writer + + +- ++ + Guest Star + Guest Star + + +- ++ + Host + Host + + +- ++ + Adapter + Adapter + + +- ++ + Presenter + Presenter + + +- ++ + Commentator + Commentator + + +- ++ + Guest + Guest + + +- ++ + MythTV Status + MythTV Status + + +- ++ + %n hour(s) + + %n hour +@@ -14574,133 +15158,126 @@ + + + +- ++ + Auto-expire off +- Auto-expire off ++ Auto-expire Off + + +- ++ + Marked as 'watched' + Marked as 'watched' + + +- ++ + Not the earliest episode + Not the earliest episode + + +- ++ + Recently deleted episode + Recently deleted episode + + +- ++ + Recording Rule + Recording Rule + + +- ++ + Last Recorded + Last Recorded + + +- ++ + Next Recording + Next Recording + + +- ++ + Average Time Shift + Average Time Shift + + +- ++ + Watch List Score + Watch List Score + + +- ++ + Watch List Status + Watch List Status + + +- ++ + Search Phrase + Search Phrase + + +- ++ + Find ID + Find ID + + +- ++ + GB + GigaBytes + GB + + +- ++ + Recording Host + Recording Host + + +- ++ + Recording Input + Recording Input + + +- ++ + Recorded File Name + Recorded File Name + + +- ++ + Recorded File Size + Recorded File Size + + +- ++ + Recording Profile + Recording Profile + + +- ++ + Recording Group + Recording Group + + +- ++ + Storage Group + Storage Group + + +- ++ + Playback Group + Playback Group + + +- + Options +- Options ++ Options + + +- +- + Zoom In +- Zoom In ++ Zoom In + + +- +- + Zoom Out +- Zoom Out ++ Zoom Out + + +- +- + Switch Page +- Switch Page ++ Switch Page + + + +@@ -14794,7 +15371,7 @@ + + + Select a letter... +- Select a letter... ++ Select a Letter... + + + +@@ -14804,7 +15381,7 @@ + + + Select a program... +- Select a program... ++ Select a Program... + + + +@@ -14951,7 +15528,7 @@ + + + Start search from date and time +- Start search from date and time ++ Start Search from Date and Time + + + +@@ -14971,12 +15548,12 @@ + + + Sort By Title +- Sort By Title ++ Sort by Title + + + + Sort By Time +- Sort By Time ++ Sort by Time + + + +@@ -15001,7 +15578,7 @@ + + + Select a search stored from +- Select a search stored from ++ Select a Search Stored from + + + +@@ -15027,14 +15604,14 @@ + + + +- ++ + ^(The |A |An ) + Regular Expression for what to ignore when sorting + ^(The |A |An ) + + +- +- ++ ++ + %1 of %2 + Current position in list where %1 is the position, %2 is the total count + %1 of %2 +@@ -15062,22 +15639,22 @@ + + + Allow this episode to re-record +- Allow this episode to re-record ++ Allow This Episode to Re-record + + + + Never record this episode +- Never record this episode ++ Never Record This Episode + + + + Remove this episode from the list +- Remove this episode from the list ++ Remove This Episode from the List + + + + Remove all episodes for this title +- Remove all episodes for this title ++ Remove All Episodes for This Title + + + +@@ -15211,43 +15788,43 @@ + + + Sort By Title +- Sort By Title ++ Sort by Title + + + + + Sort By Priority +- Sort By Priority ++ Sort by Priority + + + + + Sort By Type +- Sort By Type ++ Sort by Type + + + + + Sort By Count +- Sort By Count ++ Sort by Count + + + + + Sort By Record Count +- Sort By Record Count ++ Sort by Record Count + + + + + Sort By Last Recorded +- Sort By Last Recorded ++ Sort by Last Recorded + + + + + Sort By Average Delay +- Sort By Average Delay ++ Sort by Average Delay + + + +@@ -15284,13 +15861,13 @@ + + QObject + +- ++ + ^(The |A |An ) + ^(The |A |An ) + + +- +- ++ ++ + %n hour(s) + + %n hour +@@ -15298,8 +15875,8 @@ + + + +- +- ++ ++ + %n minute(s) + + %n minute +@@ -15307,24 +15884,25 @@ + + + +- ++ ++ + Manual Record + Manual Record + + +- ++ + Re-Record +- Re-Record ++ Re-record + + +- +- +- ++ ++ ++ + Repeat + Repeat + + +- ++ + %n star(s) + + %n star +@@ -15333,60 +15911,60 @@ + + + +- ++ + Yes + Yes + + + +- ++ + No + No + + +- +- +- +- ++ ++ ++ ++ + + +- ++ + Unknown + Unknown + + +- ++ + Playing + Playing + + +- +- ++ ++ + Recording + Recording + + +- ++ + Transcoding + Transcoding + + +- ++ + PIP + PIP + + +- ++ + Blu-ray Disc + Blu-ray Disc + + +- ++ + PBP + PBP + + +- ++ + File transfer + File transfer + +@@ -15436,47 +16014,47 @@ + + + Record only this showing +- Record only this showing ++ Record Only This Showing + + + + Record all showings +- Record all showings ++ Record All Showings + + + + Record only one showing +- Record only one showing ++ Record Only One Showing + + + + Record one showing every day +- Record one showing every day ++ Record One Showing Every Day + + + + Record one showing every week +- Record one showing every week ++ Record One Showing Every Week + + + + Record this showing with override options +- Record this showing with override options ++ Record This Showing with Override Options + + + + Do not record this showing +- Do not record this showing ++ Do Not Record This Showing + + + + Modify this recording rule template +- Modify this recording rule template ++ Modify This Recording Rule Template + + + + Do not record this program +- Do not record this program ++ Do Not Record This Program + + + +@@ -15513,655 +16091,665 @@ + Override Recording + + +- + ++ + Not Recording + Not Recording + + +- ++ + Aborted + Aborted + + +- ++ + Recorded + Recorded + + +- ++ + Tuning + Tuning + + +- ++ + Will Record + Will Record + + +- ++ ++ Pending ++ Pending ++ ++ ++ + Don't Record + Don't Record + + +- ++ + Previously Recorded + Previously Recorded + + +- ++ + Currently Recorded + Currently Recorded + + +- ++ + Earlier Showing + Earlier Showing + + +- ++ + Max Recordings + Max Recordings + + +- ++ + Manual Cancel + Manual Cancel + + +- ++ + Missed + Missed + + +- ++ + Conflicting + Conflicting + + +- ++ + Later Showing + Later Showing + + +- ++ + Inactive + Inactive + + +- ++ + Low Disk Space + Low Disk Space + + +- ++ + Tuner Busy + Tuner Busy + + +- ++ + Recorder Failed + Recorder Failed + + +- ++ + Not Listed + Not Listed + + +- ++ + Never Record + Never Record + + +- ++ + Recorder Off-Line + Recorder Off-Line + + +- ++ + This showing is not scheduled to record +- This showing is not scheduled to record ++ This showing is not scheduled to record. + + +- ++ + This showing will be recorded. + This showing will be recorded. + + +- ++ ++ This showing is about to record. ++ This showing is about to record. ++ ++ ++ + This showing is being recorded. + This showing is being recorded. + + +- ++ + This showing was recorded. + This showing was recorded. + + +- ++ + This showing was recorded but was aborted before completion. + This showing was recorded but was aborted before completion. + + +- ++ + This showing was not recorded because the master backend was not running. + This showing was not recorded because the master backend was not running. + + +- ++ + This showing was not recorded because there wasn't enough disk space. + This showing was not recorded because there wasn't enough disk space. + + +- ++ + This showing was not recorded because the recorder was already in use. + This showing was not recorded because the recorder was already in use. + + +- ++ + This showing was not recorded because the recorder failed. + This showing was not recorded because the recorder failed. + + +- ++ + this episode will be recorded at a later time instead. + this episode will be recorded at a later time instead. + + +- ++ + the required recorder is off-line. + the required recorder is off-line. + + +- ++ + This showing was not recorded because it was manually cancelled. + This showing was not recorded because it was manually cancelled. + + +- ++ + A + RecStatusChar RecStatus::Aborted + A + + +- ++ + R + RecStatusChar RecStatus::Recorded + R + + +- ++ + X + RecStatusChar RecStatus::DontRecord + X + + +- ++ + P + RecStatusChar RecStatus::PreviousRecording + P + + +- ++ + R + RecStatusChar RecStatus::CurrentRecording + R + + +- ++ + E + RecStatusChar RecStatus::EarlierShowing + E + + +- ++ + T + RecStatusChar RecStatus::TooManyRecordings + T + + +- ++ + c + RecStatusChar RecStatus::Cancelled + c + + +- ++ + M + RecStatusChar RecStatus::Missed + M + + +- ++ + C + RecStatusChar RecStatus::Conflict + C + + +- ++ + L + RecStatusChar RecStatus::LaterShowing + L + + +- ++ + r + RecStatusChar RecStatus::Repeat + r + + +- ++ + x + RecStatusChar RecStatus::Inactive + x + + +- ++ + K + RecStatusChar RecStatus::LowDiskSpace + K + + +- ++ + B + RecStatusChar RecStatus::TunerBusy + B + + +- ++ + f + RecStatusChar RecStatus::Failed + f + + +- ++ + N + RecStatusChar RecStatus::NotListed + N + + +- ++ + V + RecStatusChar RecStatus::NeverRecord + V + + +- ++ + F + RecStatusChar RecStatus::Offline + F + + +- ++ + Failing + Failing + + +- ++ + The showing is failing to record because of errors. + The showing is failing to record because of errors. + + +- ++ + This showing will not be recorded. + This showing will not be recorded. + + +- ++ + This showing was not recorded. + This showing was not recorded. + + +- ++ + The status of this showing is unknown. + The status of this showing is unknown. + + +- ++ + The showing is being tuned. + The showing is being tuned. + + +- ++ + This showing will not be recorded because + This showing will not be recorded because + + +- ++ + This showing was not recorded because + This showing was not recorded because + + +- ++ + it was manually set to not record. + it was manually set to not record. + + +- ++ + this episode was previously recorded according to the duplicate policy chosen for this title. + this episode was previously recorded according to the duplicate policy chosen for this title. + + +- ++ + this episode was previously recorded and is still available in the list of recordings. + this episode was previously recorded and is still available in the list of recordings. + + +- ++ + this episode will be recorded at an earlier time instead. + this episode will be recorded at an earlier time instead. + + +- ++ + too many recordings of this program have already been recorded. + too many recordings of this program have already been recorded. + + +- ++ + another program with a higher priority will be recorded. + another program with a higher priority will be recorded. + + +- ++ + this episode is a repeat. + this episode is a repeat. + + +- ++ + this recording rule is inactive. + this recording rule is inactive. + + +- ++ + this rule does not match any showings in the current program listings. + this rule does not match any showings in the current program listings. + + +- ++ + it was marked to never be recorded. + it was marked to never be recorded. + + +- ++ + Default + Recording Profile Default + Default + + +- ++ + High Quality + Recording Profile High Quality + High Quality + + +- ++ + Live TV + Recording Profile Live TV + Live TV + + +- ++ + Low Quality + Recording Profile Low Quality + Low Quality + + +- ++ + Medium Quality + Recording Profile Medium Quality + Medium Quality + + +- ++ + CRC IP Recorders + Recording Profile Group Name + CRC IP Recorders + + +- ++ + FireWire Input + Recording Profile Group Name + FireWire Input + + +- ++ + Freebox Input + Recording Profile Group Name + Freebox Input + + +- ++ + Hardware DVB Encoders + Recording Profile Group Name + Hardware DVB Encoders + + +- ++ + Hardware HDTV + Recording Profile Group Name + Hardware HDTV + + +- ++ + Hardware MJPEG Encoders (Matrox G200-TV, Miro DC10, etc) + Recording Profile Group Name + Hardware MJPEG Encoders (Matrox G200-TV, Miro DC10, etc) + + +- ++ + HD-PVR Recorders + Recording Profile Group Name + HD-PVR Recorders + + +- ++ + HDHomeRun Recorders + Recording Profile Group Name + HDHomeRun Recorders + + +- ++ + MPEG-2 Encoders (PVR-x50, PVR-500) + Recording Profile Group Name + MPEG-2 Encoders (PVR-x50, PVR-500) + + +- ++ + Transcoders + Recording Profile Group Name + Transcoders + + +- ++ + V4L2 Encoders + Recording Profile Group Name + V4L2 Encoders + + +- ++ + All Programs + Recording Group All Programs + All Programs + + +- ++ + All + Recording Group All Programs -- short form + All + + +- ++ + Default + Recording Group Default + Default + + +- ++ + Deleted + Recording Group Deleted + Deleted + + +- ++ + Default + Storage Group Name + Default + + +- ++ + Commercial Detection + Commercial Detection + + +- ++ + %1 GB + GigaBytes + %1 GB + + +- ++ + DVD + DVD + + +- ++ + HTTP Streaming + HTTP Streaming + + +- ++ + RTSP Streaming + RTSP Streaming + + +- ++ + Recording + Recorded file, object not action + Recording + + +- ++ + Preview Generation + Preview Generation + + +- ++ + User Job + User Job + + +- ++ + MPEG-2 + Recording Profile MPEG-2 + MPEG-2 + + +- ++ + RTjpeg/MPEG-4 + Recording Profile RTjpeg/MPEG-4 + RTjpeg/MPEG-4 + + +- ++ + Software Encoders (V4L based) + Recording Profile Group Name + Software Encoders (V4L based) + + +- ++ + USB MPEG-4 Encoder (Plextor ConvertX, etc) + Recording Profile Group Name + USB MPEG-4 Encoder (Plextor ConvertX, etc) + + +- ++ + Live TV + Recording Group Live TV + Live TV + + +- ++ + All Programs - %1 + Show all programs from a specific recording group + All Programs - %1 + + +- ++ + Live TV + Storage Group Name + Live TV + + +- ++ + Thumbnails + Storage Group Name + Thumbnails + + +- ++ + DB Backups + Storage Group Name + DB Backups + + +- ++ + Default + Playback Group Name + Default + + +- ++ + Commercial Free + Commercial Free + + +- ++ + Use Global Setting + Use Global Setting + + +- ++ + All Available Methods + All Available Methods + + +- ++ + Blank Frame + Scene Change + Blank Frame + Scene Change + + +- ++ + Blank Frame + Logo Detection + Blank Frame + Logo Detection + + +- ++ + Scene Change + Logo Detection + Scene Change + Logo Detection + + +- ++ + Blank Frame Detection + Blank Frame Detection + + +- ++ + Scene Change Detection + Scene Change Detection + + +- ++ + Logo Detection + Logo Detection + + +- ++ + Experimental + Experimental + + +- ++ + Pre & Post Roll + Pre & Post Roll + +@@ -16222,17 +16810,17 @@ + + + Audio track +- Audio track ++ Audio Track + + + + Video track +- Video track ++ Video Track + + + + Subtitle track +- Subtitle track ++ Subtitle Track + + + +@@ -16307,208 +16895,212 @@ + Normal + + +- +- ++ ++ + + + Off + Off + + +- +- ++ ++ + On + On + + +- ++ + Hostname + Hostname + + +- +- ++ ++ + Port + Port + + +- ++ + Password + Password + + +- +- ++ ++ + Wake command +- Wake command ++ Wake Command + + +- ++ + Could not find specified tuner (%1). + Could not find specified tuner (%1). + + +- ++ + Specified tuner (%1) is already in use. + Specified tuner (%1) is already in use. + + +- ++ + All tuners are currently in use. If you want to watch TV, you can cancel one of the in-progress recordings from the delete menu +- All tuners are currently in use. If you want to watch TV, you can cancel one of the in-progress recordings from the delete menu ++ All tuners are currently in use. If you want to watch TV, you can cancel one of the in-progress recordings from the delete menu. + + +- ++ + Failed to configure plugin +- Failed to configure plugin ++ Failed to Configure Plugin + + +- ++ + Plugin failure +- Plugin failure ++ Plugin Failure + + +- ++ + %1 failed to run for some reason + %1 failed to run for some reason + + +- ++ + No UPnP backends found + Backend Setup + No UPnP backends found + + +- ++ + Cannot find (ping) database host %1 on the network + Backend Setup + Cannot find (ping) database host %1 on the network + + +- ++ + Cannot login to database + Backend Setup + Cannot login to database + + +- ++ ++ Cannot connect to backend ++ Backend Setup ++ Cannot connect to backend ++ ++ ++ + Could not connect to master backend +- Could not connect to master backend ++ Could Not Connect to Master Backend + + +- ++ + Backend is online +- Backend is online ++ Backend is Online + + +- ++ + This application is not compatible with the installed MythTV libraries. + This application is not compatible with the installed MythTV libraries. + + +- ++ + The connection to the master backend server has gone away for some reason. Is it running? + The connection to the master backend server has gone away for some reason. Is it running? + + +- ++ + Could not connect to the master backend server. Is it running? Is the IP address set for it in mythtv-setup correct? + Could not connect to the master backend server. Is it running? Is the IP address set for it in mythtv-setup correct? + + +- ++ + The server uses network protocol version %1, but this client only understands version %2. Make sure you are running compatible versions of the backend and frontend. +- The server uses network protocol version %1, but this client only understands version %2. Make sure you are running compatible versions of the backend and frontend. ++ The server uses network protocol version %1, but this client only understands version %2. Make sure you are running compatible versions of the backend and frontend. + + + +- +- ++ + OK + OK + + + +- + Cancel + Cancel + + +- +- ++ ++ + +- +- +- +- ++ ++ ++ ++ + Default + Default + + + +- ++ + Subtitle + Subtitle + + +- ++ + (forced) + (forced) + + +- ++ + Input %1:%2 + Input %1:%2 + + +- ++ + Could not query inputs. + Could not query inputs. + + +- ++ + ERROR, Compile with V4L support to query inputs +- ERROR, Compile with V4L support to query inputs ++ ERROR, Compile with V4L support to query inputs. + + +- ++ + ERROR, Compile with V4L support to query audio inputs +- ERROR, Compile with V4L support to query audio inputs ++ ERROR, Compile with V4L support to query audio inputs. + + +- +- ++ ++ + Could not open '%1' to probe its inputs. + Could not open '%1' to probe its inputs. + + +- ++ + ERROR, Compile with DVB support to query inputs +- ERROR, Compile with DVB support to query inputs ++ ERROR, Compile with DVB support to query inputs. + + +- ++ + The VBox software version is too old (%1), we require %2 + The VBox software version is too old (%1), we require %2 + + +- +- ++ ++ + Unable to connect to device. + Unable to connect to device. + + +- ++ + Invalid Device ID + Invalid Device ID + + +- ++ + Invalid Device ID or address. +- Invalid Device ID or address. ++ Invalid Device ID or Address + + +- ++ + , firmware: %2 + , firmware: %2 + +@@ -16518,13 +17110,13 @@ + Sports + + +- ++ + Video + Video + + +- +- ++ ++ + All Channels + All Channels + +@@ -16541,12 +17133,12 @@ + + + Failed to add channel %1 +- Failed to add channel %1 ++ Failed to Add Channel %1 + + + + %1 -- Testing decryption of program %2 +- %1 -- Testing decryption of program %2 ++ %1 -- Testing Decryption of Program %2 + + + +@@ -16556,7 +17148,7 @@ + + + Unknown decryption status +- Unknown decryption status ++ Unknown Decryption Status + + + +@@ -16571,41 +17163,41 @@ + + + %1 -- Timed out +- %1 -- Timed out ++ %1 -- Timed Out + + + + %1 possible channels +- %1 possible channels ++ %1 Possible Channels + + + + no channels +- no channels ++ No Channels + + + + %1, no signal +- %1, no signal ++ %1, No Signal + + + + %1 -- Found %2 probable channels +- %1 -- Found %2 probable channels ++ %1 -- Found %2 Probable Channels + + + +- ++ + offset %2 + offset %2 + + +- ++ + ScanTransport Tuning to %1 mplexid(%2) + ScanTransport Tuning to %1 mplexid(%2) + + +- ++ + : Found %n + + : Found %n +@@ -16613,28 +17205,28 @@ + + + +- ++ + Frequency %1 + Frequency %1 + + +- ++ + ATSC Channel %1 + ATSC Channel %1 + + +- ++ + as + as + + +- ++ + Skipping %1, not in imported channel map +- Skipping %1, not in imported channel map ++ Skipping %1, Not in Imported Channel Map + + + +- ++ + Broadcast + Broadcast + +@@ -16648,7 +17240,7 @@ + + + +- ++ + High + High + +@@ -16758,9 +17350,9 @@ + France + + +- +- +- ++ ++ ++ + Frequency + Frequency + +@@ -16785,30 +17377,30 @@ + Hue + + +- + + + + + + ++ + Seen + Seen + + +- + + + + + + ++ + Matching + Matching + + +- +- ++ ++ + Analog + Analog + +@@ -16824,532 +17416,523 @@ + Play + + +- ++ + Profile Group Name + Profile Group Name + + +- ++ + Card-Type +- Card-Type ++ Card Type + + + +- ++ + Codec + Codec + + +- +- ++ ++ + Volume (%) + Volume (%) + + +- ++ + Sampling rate +- Sampling rate ++ Sampling Rate + + +- ++ + Sets the audio sampling rate for your DSP. Ensure that you choose a sampling rate appropriate for your device. btaudio may only allow 32000. +- Sets the audio sampling rate for your DSP. Ensure that you choose a sampling rate appropriate for your device. btaudio may only allow 32000. ++ Sets the audio sampling rate for your DSP. Ensure that you choose a sampling rate appropriate for your device. btaudio may only allow 32000. + + +- ++ + Type + Type + + +- ++ + Sets the audio type +- Sets the audio type ++ Sets the Audio Type + + +- +- +- +- ++ ++ ++ ++ + Bitrate + Bitrate + + +- +- +- ++ ++ ++ + Sets the audio bitrate +- Sets the audio bitrate ++ Sets the Audio Bitrate + + +- ++ + Volume of the recording +- Volume of the recording ++ Volume of the Recording + + +- ++ + Bitrate Settings + Bitrate Settings + + +- ++ + SAP/Bilingual + SAP/Bilingual + + +- ++ + Main Language + Main Language + + +- ++ + SAP Language + SAP Language + + +- ++ + Dual + Dual + + +- ++ + Chooses the language(s) to record when two languages are broadcast. Only Layer II supports the recording of two languages (Dual).Requires ivtv 0.4.0 or later. + Chooses the language(s) to record when two languages are broadcast. Only Layer II supports the recording of two languages (Dual).Requires ivtv 0.4.0 or later. + + +- +- ++ + Audio Quality + Audio Quality + + +- ++ + RTjpeg Quality + RTjpeg Quality + + +- ++ + Higher is better quality. + Higher is better quality. + + +- ++ + Luma filter +- Luma filter ++ Luma Filter + + +- +- ++ ++ + Lower is better. + Lower is better. + + +- ++ + Chroma filter +- Chroma filter ++ Chroma Filter + + +- ++ + Scale bitrate for frame size +- Scale bitrate for frame size ++ Scale Bitrate for Frame Size + + +- ++ + Minimum quality +- Minimum quality ++ Minimum Quality + + +- +- +- ++ ++ ++ + Modifying the default may have severe consequences. + Modifying the default may have severe consequences. + + +- ++ + Maximum quality +- Maximum quality ++ Maximum Quality + + +- ++ + Max quality difference between frames +- Max quality difference between frames ++ Max Quality Difference Between Frames + + +- ++ + Enable interlaced DCT encoding +- Enable interlaced DCT encoding ++ Enable Interlaced DCT Encoding + + +- ++ + Enable interlaced motion estimation +- Enable interlaced motion estimation ++ Enable Interlaced Motion Estimation + + +- ++ + Enable high-quality encoding +- Enable high-quality encoding ++ Enable High-quality Encoding + + +- ++ + Enable 4MV encoding +- Enable 4MV encoding ++ Enable 4MV Encoding + + +- ++ + If set, the MPEG4 encoder will use '4MV' motion-vector encoding. This requires much more processing, but can result in better video. It is highly recommended that the HQ option is enabled if 4MV is enabled. +- If set, the MPEG4 encoder will use '4MV' motion-vector encoding. This requires much more processing, but can result in better video. It is highly recommended that the HQ option is enabled if 4MV is enabled. ++ If set, the MPEG4 encoder will use '4MV' motion-vector encoding. This requires much more processing, but can result in better video. It is highly recommended that the HQ option is enabled if 4MV is enabled. + + +- ++ + Number of threads +- Number of threads ++ Number of Threads + + +- ++ + Threads to use for software encoding. + Threads to use for software encoding. + + +- ++ + Set to a value less than or equal to the number of processors on the backend that will be doing the encoding. + Set to a value less than or equal to the number of processors on the backend that will be doing the encoding. + + +- ++ + MP3 quality +- MP3 quality ++ MP3 Quality + + +- ++ + The higher the slider number, the lower the quality of the audio. Better quality audio (lower numbers) requires more CPU. + The higher the slider number, the lower the quality of the audio. Better quality audio (lower numbers) requires more CPU. + + +- ++ + Recording volume of the capture card. + Recording volume of the capture card. + + +- ++ + Bitrate Mode + Bitrate Mode + + +- ++ + Bitrate mode +- Bitrate mode ++ Bitrate Mode + + +- ++ + Bitrate (kb/s) + Bitrate (kb/s) + + +- ++ + Bitrate in kilobits/second. As a guide, 2200 kb/s is approximately 1 GB/hr. + Bitrate in kilobits/second. As a guide, 2200 kb/s is approximately 1 GB/hr. + + +- ++ + If set, the bitrate specified will be used for 640x480. If other resolutions are used, the bitrate will be scaled appropriately. + If set, the bitrate specified will be used for 640x480. If other resolutions are used, the bitrate will be scaled appropriately. + + +- ++ + If set, the MPEG4 encoder will use interlaced DCT encoding. You may want this when encoding interlaced video; however, this is experimental and may cause damaged video. + If set, the MPEG4 encoder will use interlaced DCT encoding. You may want this when encoding interlaced video; however, this is experimental and may cause damaged video. + + +- ++ + If set, the MPEG4 encoder will use interlaced motion estimation. You may want this when encoding interlaced video; however, this is experimental and may cause damaged video. + If set, the MPEG4 encoder will use interlaced motion estimation. You may want this when encoding interlaced video; however, this is experimental and may cause damaged video. + + +- ++ + If set, the MPEG4 encoder will use 'high-quality' encoding options. This requires much more processing, but can result in better video. + If set, the MPEG4 encoder will use 'high-quality' encoding options. This requires much more processing, but can result in better video. + + +- ++ + Avg. Bitrate (kb/s) + Avg. Bitrate (kb/s) + + +- ++ + Average bitrate in kilobits/second. As a guide, 2200 kb/s is approximately 1 GB/hour. + Average bitrate in kilobits/second. As a guide, 2200 kb/s is approximately 1 GB/hour. + + +- ++ + Max. Bitrate (kb/s) + Max. Bitrate (kb/s) + + +- ++ + Maximum bitrate in kilobits/second. As a guide, 2200 kb/s is approximately 1 GB/hour. + Maximum bitrate in kilobits/second. As a guide, 2200 kb/s is approximately 1 GB/hour. + + +- ++ + Stream Type + Stream Type + + +- ++ + Sets the type of stream generated by your PVR. + Sets the type of stream generated by your PVR. + + +- ++ + Aspect Ratio + Aspect Ratio + + +- ++ + Square + Square + + +- ++ + Sets the aspect ratio of stream generated by your PVR. + Sets the aspect ratio of stream generated by your PVR. + + +- ++ + Quality + Quality + + +- ++ + Horizontal Decimation + Horizontal Decimation + + +- ++ + Vertical Decimation + Vertical Decimation + + +- +- ++ + Video Compression + Video Compression + + +- + RTjpeg Parameters +- RTjpeg Parameters ++ RTjpeg Parameters + + +- + MPEG-4 Parameters +- MPEG-4 Parameters ++ MPEG-4 Parameters + + +- + MPEG-2 Parameters +- MPEG-2 Parameters ++ MPEG-2 Parameters + + +- + Hardware MJPEG Parameters +- Hardware MJPEG Parameters ++ Hardware MJPEG Parameters + + +- + MPEG-2 Hardware Encoder +- MPEG-2 Hardware Encoder ++ MPEG-2 Hardware Encoder + + +- + MPEG-4 AVC Hardware Encoder +- MPEG-4 AVC Hardware Encoder ++ MPEG-4 AVC Hardware Encoder + + +- +- ++ ++ + Low Resolution + Low Resolution + + +- +- ++ ++ + Medium Resolution + Medium Resolution + + +- +- ++ ++ + High Resolution + High Resolution + + +- ++ + Enable auto-transcode after recording +- Enable auto-transcode after recording ++ Enable Auto-transcode After Recording + + +- ++ + Automatically transcode when a recording is made using this profile and the recording's schedule is configured to allow transcoding. + Automatically transcode when a recording is made using this profile and the recording's schedule is configured to allow transcoding. + + +- ++ + Resize video while transcoding +- Resize video while transcoding ++ Resize Video While Transcoding + + +- ++ + If set, extra files will be created for each recording with the name of the recording followed by '.ts.raw'. These extra files represent the full contents of the transport stream used to generate the recording. (For debugging purposes) + If set, extra files will be created for each recording with the name of the recording followed by '.ts.raw'. These extra files represent the full contents of the transport stream used to generate the recording. (For debugging purposes) + + +- ++ + Custom filters +- Custom filters ++ Custom Filters + + +- ++ + Allows the transcoder to resize the video during transcoding. + Allows the transcoder to resize the video during transcoding. + + +- ++ + Lossless transcoding +- Lossless transcoding ++ Lossless Transcoding + + +- ++ + Only reencode where absolutely needed (normally only around cutpoints). Otherwise keep audio and video formats identical to the source. This should result in the highest quality, but won't save as much space. +- Only reencode where absolutely needed (normally only around cutpoints). Otherwise keep audio and video formats identical to the source. This should result in the highest quality, but won't save as much space. ++ Only re-encode where absolutely needed (normally only around cutpoints). Otherwise keep audio and video formats identical to the source. This should result in the highest quality, but won't save as much space. + + +- ++ + Recording Type + Recording Type + + +- ++ + This option allows you to filter out unwanted streams. 'Normal' will record all relevant streams including interactive television data. 'TV Only' will record only audio, video and subtitle streams. + This option allows you to filter out unwanted streams. 'Normal' will record all relevant streams including interactive television data. 'TV Only' will record only audio, video and subtitle streams. + + +- ++ + Normal + Normal + + +- ++ + TV Only + TV Only + + +- ++ + Audio Only + Audio Only + + +- ++ + Record Full TS? + Record Full TS? + + +- ++ + Filters used when transcoding with this profile. This value must be blank to perform lossless transcoding. Format: [[<filter>=<options>,]...] +- Filters used when transcoding with this profile. This value must be blank to perform lossless transcoding. Format: [[<filter>=<options>,]...] ++ Filters used when transcoding with this profile. This value must be blank to perform lossless transcoding. Format: [[<filter>=<options>,]...] + + + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + Auto + Auto + + +- ++ + Width + Width + + +- ++ + If the width is set to 'Auto', the width will be calculated based on the height and the recording's physical aspect ratio. + If the width is set to 'Auto', the width will be calculated based on the height and the recording's physical aspect ratio. + + +- ++ + Width to use for encoding. Note: PVR-x50 cards may produce ghosting if this is not set to 720 or 768 for NTSC and PAL, respectively. + Width to use for encoding. Note: PVR-x50 cards may produce ghosting if this is not set to 720 or 768 for NTSC and PAL, respectively. + + +- ++ + Height + Height + + +- ++ + If the height is set to 'Auto', the height will be calculated based on the width and the recording's physical aspect ratio. + If the height is set to 'Auto', the height will be calculated based on the width and the recording's physical aspect ratio. + + +- ++ + Height to use for encoding. Note: PVR-x50 cards may produce ghosting if this is not set to 480 or 576 for NTSC and PAL, respectively. + Height to use for encoding. Note: PVR-x50 cards may produce ghosting if this is not set to 480 or 576 for NTSC and PAL, respectively. + + +- +- ++ + Image size + Image size + + +- +- + Profile +- Profile ++ Profile + + +- ++ + Autodetect + Autodetect + + +- +- ++ ++ + Autodetect from %1 + Autodetect from %1 + + +- ++ + Transcode using Autodetect + Transcode using Autodetect + + +- ++ + Transcode using "%1" + Transcode using "%1" + + +- ++ + Record using the "%1" profile + Record using the "%1" profile + + +- ++ + Profile name +- Profile name ++ Profile Name + + + +@@ -17357,410 +17940,418 @@ + Default (Template) + + +- + This section lists each transport that MythTV currently knows about. The display fields are video source, modulation, frequency, and when relevant symbol rate, network id, and transport id. +- This section lists each transport that MythTV currently knows about. The display fields are video source, modulation, frequency, and when relevant symbol rate, network id, and transport id. ++ This section lists each transport that MythTV currently knows about. The display fields are video source, modulation, frequency, and when relevant symbol rate, network id, and transport id. + + +- +- +- + Transport Editor +- Transport Editor ++ Transport Editor + + +- ++ + Sorry, the Transport Editor can only be used to edit transports which are connected to a card input. + Sorry, the Transport Editor can only be used to edit transports which are connected to a card input. + + +- ++ + Failed to probe a capture card connected to this transport's video source. Please make sure the backend is not running. + Failed to probe a capture card connected to this transport's video source. Please make sure the backend is not running. + + +- ++ + The Video Sources to which this Transport is connected are incompatible, please create separate video sources for these cards. + The Video Sources to which this Transport is connected are incompatible, please create separate video sources for these cards. + + +- ++ + Digital TV Standard + Digital TV Standard + + +- ++ + Guiding standard to use for making sense of the data streams after they have been demodulated, error corrected and demultiplexed. + Guiding standard to use for making sense of the data streams after they have been demodulated, error corrected and demultiplexed. + + +- ++ + DVB + DVB + + +- ++ + ATSC + ATSC + + +- ++ + OpenCable + OpenCable + + +- ++ + MPEG + MPEG + + +- ++ + Frequency (Option has no default). + The frequency for this channel in + Frequency (Option has no default). + The frequency for this channel in + + +- ++ + Symbol Rate (symbols/sec). + Most DVB-S transponders transmit at 27.5 million symbols per second. + Symbol Rate (symbols/sec). + Most DVB-S transponders transmit at 27.5 million symbols per second. + + +- ++ ++ + Modulation System + Modulation System + + +- ++ + Modulation System (Default: DVB-T) + Modulation System (Default: DVB-T) + + +- ++ + DVB-T + DVB-T + + +- ++ + DVB-T2 + DVB-T2 + + +- +- +- ++ ++ DVB-S ++ DVB-S ++ ++ ++ ++ DVB-S2 ++ DVB-S2 ++ ++ ++ ++ ++ + Symbol Rate + Symbol Rate + + +- +- ++ ++ + Polarity + Polarity + + +- +- ++ ++ + Polarity (Option has no default) + Polarity (Option has no default) + + +- +- ++ ++ + Horizontal + Horizontal + + +- +- ++ ++ + Vertical + Vertical + + +- +- ++ ++ + Right Circular + Right Circular + + +- +- ++ ++ + Left Circular + Left Circular + + +- ++ + Modulation + Modulation + + +- ++ + Modulation, aka Constellation + Modulation, aka Constellation + + +- ++ + QAM Auto + QAM Auto + + +- +- ++ ++ + Inversion + Inversion + + +- +- ++ ++ + Inversion (Default: Auto): + Most cards can autodetect this now, so leave it at Auto unless it won't work. + Inversion (Default: Auto): + Most cards can autodetect this now, so leave it at Auto unless it won't work. + + +- +- ++ ++ + Bandwidth + Bandwidth + + +- ++ + Bandwidth (Default: Auto) + Bandwidth (Default: Auto) + + +- ++ + Ignore Signal Timeout + Ignore Signal Timeout + + +- ++ + This option allows you to slow down the scan for broken drivers, such as the DVB drivers for the Leadtek LR6650 DVB card. + This option allows you to slow down the scan for broken drivers, such as the DVB drivers for the Leadtek LR6650 DVB card. + + +- ++ + Search new Transports +- Search new Transports ++ Search New Transports + + +- ++ + Digital transmissions may signal other available Transports. If this option is enabled the scanner scans all signaled transports for new/updated channels. + Digital transmissions may signal other available Transports. If this option is enabled the scanner scans all signaled transports for new/updated channels. + + +- ++ + Desired Services + Desired Services + + +- ++ + TV + TV + + +- ++ + TV+Radio + TV+Radio + + +- ++ + TV - Adds A/V services only, TV+Radio - Adds all services with audio, All - Adds all services (including data only services). + TV - Adds A/V services only, TV+Radio - Adds all services with audio, All - Adds all services (including data only services). + + +- ++ + Unencrypted Only + Unencrypted Only + + +- ++ + If set, only non-encrypted channels will be added during the scan. + If set, only non-encrypted channels will be added during the scan. + + +- ++ + Test Decryptability + Test Decryptability + + +- ++ + Test all channels to see if they can be decrypted with installed CAM/smartcard. Sometimes the encrypted flag is set spuriously. Attention: Enabling this option increases the scan time for each encrypted channel by a couple of seconds. + Test all channels to see if they can be decrypted with installed CAM/smartcard. Sometimes the encrypted flag is set spuriously. Attention: Enabling this option increases the scan time for each encrypted channel by a couple of seconds. + + +- ++ + Frequency (Option has no default) + The frequency for this channel in kHz. + Frequency (Option has no default) + The frequency for this channel in kHz. + + +- ++ + Frequency (Option has no default) + The frequency for this channel in Hz. + Frequency (Option has no default) + The frequency for this channel in Hz. + + +- ++ + Symbol Rate (symbols/second). + Most DVB-S transponders transmit at 27.5 million symbols per second. + Symbol Rate (symbols/second). + Most DVB-S transponders transmit at 27.5 million symbols per second. + + +- ++ + Symbol Rate (symbols/second). + Most DVB-C transports transmit at 6.9 or 6.875 million symbols per second. + Symbol Rate (symbols/second). + Most DVB-C transports transmit at 6.9 or 6.875 million symbols per second. + + +- ++ + Bandwidth (Default: Auto) + + Bandwidth (Default: Auto) + + +- +- ++ ++ + 6 MHz + 6 MHz + + +- +- ++ ++ + 7 MHz + 7 MHz + + +- +- ++ ++ + 8 MHz + 8 MHz + + + +- +- +- +- +- ++ ++ ++ ++ ++ + +- ++ + None + None + + +- +- ++ ++ + FEC + FEC + + +- +- ++ ++ + Forward Error Correction (Default: Auto) + Forward Error Correction (Default: Auto) + + +- +- ++ ++ + LP Coderate + LP Coderate + + +- +- ++ ++ + Low Priority Code Rate (Default: Auto) + Low Priority Code Rate (Default: Auto) + + +- +- ++ ++ + HP Coderate + HP Coderate + + +- +- ++ ++ + High Priority Code Rate (Default: Auto) + High Priority Code Rate (Default: Auto) + + +- +- ++ ++ + Guard Interval + Guard Interval + + +- +- ++ ++ + Guard Interval (Default: Auto) + Guard Interval (Default: Auto) + + +- +- ++ ++ + Trans. Mode + Trans. Mode + + +- +- ++ ++ + Transmission Mode (Default: Auto) + Transmission Mode (Default: Auto) + + +- +- ++ ++ + Hierarchy + Hierarchy + + +- +- ++ ++ + Hierarchy (Default: Auto) + Hierarchy (Default: Auto) + + +- +- ++ ++ + Mod Sys + Mod Sys + + +- ++ ++ + Modulation system (Default: DVB-S) +- Modulation system (Default: DVB-S) ++ Modulation System (Default: DVB-S) + + +- ++ + Modulation system (Default: DVB-T) +- Modulation system (Default: DVB-T) ++ Modulation System (Default: DVB-T) + + +- ++ ++ + Roll-off + Roll-off + + +- ++ ++ + Roll-off factor (Default: 0.35) + Roll-off factor (Default: 0.35) + + +- + Transport Options +- Transport Options ++ Transport Options + + +- + DVB Transport +- DVB Transport ++ DVB Transport + + + +@@ -17786,448 +18377,464 @@ + + + Auto-Skip OFF +- Auto-Skip OFF ++ Auto-skip Off + + + + Auto-Skip ON +- Auto-Skip ON ++ Auto-skip On + + + + Auto-Skip Notify +- Auto-Skip Notify ++ Auto-skip Notify + + +- ++ + On known multiplex... +- On known multiplex... ++ On Known Multiplex... + + +- ++ + Error querying recorder state +- Error querying recorder state ++ Error Querying Recorder State + + +- ++ + Standard + Standard + + +- ++ + Mac hardware acceleration +- Mac hardware acceleration ++ Mac Hardware Acceleration + + +- ++ + NVidia VDPAU acceleration +- NVidia VDPAU acceleration ++ NVidia VDPAU Acceleration + + +- ++ + Standard will use ffmpeg library. + Standard will use ffmpeg library. + + +- ++ + Mac hardware will try to use the graphics processor - this may hang or crash your Mac! + Mac hardware will try to use the graphics processor - this may hang or crash your Mac! + + +- ++ + VDPAU will attempt to use the graphics hardware to accelerate video decoding and playback. + VDPAU will attempt to use the graphics hardware to accelerate video decoding and playback. + + +- ++ + VAAPI will attempt to use the graphics hardware to accelerate video decoding. REQUIRES OPENGL PAINTER. + VAAPI will attempt to use the graphics hardware to accelerate video decoding. REQUIRES OPENGL PAINTER. + + +- ++ + Linear blend +- Linear blend ++ Linear Blend + + +- ++ + Kernel + Kernel + + +- ++ + Kernel (2x) + Kernel (2x) + + +- ++ + Greedy HighMotion + Greedy HighMotion + + +- ++ + Greedy HighMotion (2x) + Greedy HighMotion (2x) + + +- ++ + Yadif + Yadif + + +- ++ + Yadif (2x) + Yadif (2x) + + +- ++ + Bob (2x) + Bob (2x) + + +- ++ + One field +- One field ++ One Field + + +- ++ + Interlaced (2x) + Interlaced (2x) + + +- ++ + Linear blend (HW) +- Linear blend (HW) ++ Linear Blend (HW) + + +- ++ + Kernel (HW) + Kernel (HW) + + +- +- +- ++ ++ ++ + Bob (2x, HW) + Bob (2x, HW) + + +- ++ + One field (HW) +- One field (HW) ++ One Field (HW) + + +- ++ + Kernel (2x, HW) + Kernel (2x, HW) + + +- ++ + Linear blend (2x, HW) +- Linear blend (2x, HW) ++ Linear Blend (2x, HW) + + +- ++ + This video renderer uses OpenGL for scaling and color conversion. It uses faster OpenGL functionality when available but at the expense of picture controls and GPU based deinterlacing. + This video renderer uses OpenGL for scaling and color conversion. It uses faster OpenGL functionality when available but at the expense of picture controls and GPU based deinterlacing. + + +- ++ + This deinterlacer attempts to synchronize with interlaced displays whose size and refresh rate exactly match the video source. It has low CPU requirements. + This deinterlacer attempts to synchronize with interlaced displays whose size and refresh rate exactly match the video source. It has low CPU requirements. + + +- ++ + High Quality + Sample: high quality + High Quality + + +- ++ + Normal + Sample: average quality + Normal + + +- ++ + Slim + Sample: low CPU usage + Slim + + +- ++ + VDPAU High Quality + Sample: VDPAU high quality + VDPAU High Quality + + +- ++ + VDPAU Normal + Sample: VDPAU average quality + VDPAU Normal + + +- ++ + VDPAU Slim + Sample: VDPAU low power GPU + VDPAU Slim + + +- ++ + Video rendering method +- Video rendering method ++ Video Rendering Method + + +- ++ + Render video offscreen. Used internally. + Render video offscreen. Used internally. + + +- ++ + Use X11 pixel copy to render video. This is not recommended if any other option is available. The video will not be scaled to fit the screen. This will work with all X11 servers, local and remote. + Use X11 pixel copy to render video. This is not recommended if any other option is available. The video will not be scaled to fit the screen. This will work with all X11 servers, local and remote. + + +- ++ + Use X11 shared memory pixel transfer to render video. This is only recommended over the X11 pixel copy renderer. The video will not be scaled to fit the screen. This works with most local X11 servers. + Use X11 shared memory pixel transfer to render video. This is only recommended over the X11 pixel copy renderer. The video will not be scaled to fit the screen. This works with most local X11 servers. + + +- ++ + This is the standard video renderer for X11 systems. It uses XVideo hardware assist for scaling, color conversion. If the hardware offers picture controls the renderer supports them. + This is the standard video renderer for X11 systems. It uses XVideo hardware assist for scaling, color conversion. If the hardware offers picture controls the renderer supports them. + + +- ++ + Windows video renderer based on Direct3D. Requires video card compatible with Direct3D 9. This is the preferred renderer for current Windows systems. + Windows video renderer based on Direct3D. Requires video card compatible with Direct3D 9. This is the preferred renderer for current Windows systems. + + +- ++ + Interlaced (2x, HW) + Interlaced (2x, HW) + + +- ++ + VAAPI acceleration +- VAAPI acceleration ++ VAAPI Acceleration + + +- ++ + Windows hardware acceleration +- Windows hardware acceleration ++ Windows Hardware Acceleration + + +- ++ + Mac VDA hardware acceleration +- Mac VDA hardware acceleration ++ Mac VDA Hardware Acceleration + + +- ++ + Processing method used to decode video. + Processing method used to decode video. + + +- ++ + DXVA2 will use the graphics hardware to accelerate video decoding and playback (requires Windows Vista or later). + DXVA2 will use the graphics hardware to accelerate video decoding and playback (requires Windows Vista or later). + + +- ++ + VDA will attempt to use the graphics hardware to accelerate video decoding. (H264 only, requires Mac OS 10.6.3) + VDA will attempt to use the graphics hardware to accelerate video decoding. (H264 only, requires Mac OS 10.6.3) + + +- +- ++ ++ Openmax will use the graphics hardware to accelerate video decoding on Raspberry Pi. ++ Openmax will use the graphics hardware to accelerate video decoding on Raspberry Pi. ++ ++ ++ ++ + One Field (1x, HW) + One Field (1x, HW) + + +- ++ + Temporal (1x, HW) + Temporal (1x, HW) + + +- ++ + Temporal (2x, HW) + Temporal (2x, HW) + + +- ++ + Advanced (1x, HW) + Advanced (1x, HW) + + +- ++ + Advanced (2x, HW) + Advanced (2x, HW) + + +- ++ + Advanced (HW) + Advanced (HW) + + +- ++ + Fast (HW) + Fast (HW) + + +- ++ + Line double (HW) +- Line double (HW) ++ Line Double (HW) + + +- ++ + VDA High Quality + Sample: VDA high quality + VDA High Quality + + +- ++ + VDA Normal + Sample: VDA average quality + VDA Normal + + +- ++ + VDA Slim + Sample: VDA low power GPU + VDA Slim + + +- ++ + OpenGL High Quality + Sample: OpenGL high quality + OpenGL High Quality + + +- ++ + OpenGL Normal + Sample: OpenGL average quality + OpenGL Normal + + +- ++ + OpenGL Slim + Sample: OpenGL low power GPU + OpenGL Slim + + +- ++ + VAAPI Normal + Sample: VAAPI average quality + VAAPI Normal + + +- ++ ++ OpenMAX High Quality ++ Sample: OpenMAX High Quality ++ OpenMAX High Quality ++ ++ ++ + OpenMAX Normal + Sample: OpenMAX Normal + OpenMAX Normal + + +- ++ + This video renderer uses OpenGL for scaling and color conversion with full picture controls. The GPU can be used for deinterlacing. This requires a faster GPU than XVideo. + This video renderer uses OpenGL for scaling and color conversion with full picture controls. The GPU can be used for deinterlacing. This requires a faster GPU than XVideo. + + +- ++ + This is the only video renderer for NVidia VDPAU decoding. + This is the only video renderer for NVidia VDPAU decoding. + + +- ++ + This video renderer uses VAAPI for video decoding and OpenGL for scaling and color conversion. + This video renderer uses VAAPI for video decoding and OpenGL for scaling and color conversion. + + +- ++ + This deinterlacer requires the display to be capable of twice the frame rate as the source video. + This deinterlacer requires the display to be capable of twice the frame rate as the source video. + + +- ++ + Perform no deinterlacing. + Perform no deinterlacing. + + +- ++ + Use this with an interlaced display whose resolution exactly matches the video size. This is incompatible with MythTV zoom modes. + Use this with an interlaced display whose resolution exactly matches the video size. This is incompatible with MythTV zoom modes. + + +- ++ + Shows only one of the two fields in the frame. This looks good when displaying a high motion 1080i video on a 720p display. + Shows only one of the two fields in the frame. This looks good when displaying a high motion 1080i video on a 720p display. + + +- ++ + Shows one field of the frame followed by the other field displaced vertically. + Shows one field of the frame followed by the other field displaced vertically. + + +- ++ + Blends the odd and even fields linearly into one frame. + Blends the odd and even fields linearly into one frame. + + +- ++ + This filter disables deinterlacing when the two fields are similar, and performs linear deinterlacing otherwise. + This filter disables deinterlacing when the two fields are similar, and performs linear deinterlacing otherwise. + + +- ++ + (Hardware Accelerated) + (Hardware Accelerated) + + +- +- ++ ++ + This deinterlacer uses several fields to reduce motion blur. It has increased CPU requirements. + This deinterlacer uses several fields to reduce motion blur. It has increased CPU requirements. + + +- ++ + This deinterlacer uses several fields to reduce motion blur. + This deinterlacer uses several fields to reduce motion blur. + + +- ++ + This deinterlacer uses multiple fields to reduce motion blur and smooth edges. + This deinterlacer uses multiple fields to reduce motion blur and smooth edges. + + +- ++ + '%1' has not been documented yet. + '%1' has not been documented yet. + + +- ++ + OSD rendering method +- OSD rendering method ++ OSD Rendering Method + + +- ++ + Render the OSD using the XVideo chromakey feature.This renderer does not alpha blend but is the fastest OSD renderer for XVideo. + Render the OSD using the XVideo chromakey feature.This renderer does not alpha blend but is the fastest OSD renderer for XVideo. + + +- ++ + Note: nVidia hardware after the 5xxx series does not have XVideo chromakey support. + Note: nVidia hardware after the 5xxx series does not have XVideo chromakey support. + + +- ++ + Software OSD rendering uses your CPU to alpha blend the OSD. + Software OSD rendering uses your CPU to alpha blend the OSD. + + +- ++ + Uses OpenGL to alpha blend the OSD onto the video. + Uses OpenGL to alpha blend the OSD onto the video. + + +- ++ ++ Uses OpenGL in a separate thread to overlay the OSD onto the video. ++ Use OpenGL in a separate thread to overlay the OSD onto the video. ++ ++ ++ + Uses OpenMAX to alpha blend the OSD onto the video. + Uses OpenMAX to alpha blend the OSD onto the video. + +@@ -18388,217 +18995,240 @@ + Volume + + +- ++ + Max recordings +- Max recordings ++ Max Recordings + + +- ++ + Listings grabber +- Listings grabber ++ Listings Grabber + + +- ++ + Network ID + Network ID + + +- +- +- ++ ++ ++ + Channel frequency table +- Channel frequency table ++ Channel Frequency Table + + +- ++ + Use default unless this source uses a different frequency table than the system wide table defined in the General settings. + Use default unless this source uses a different frequency table than the system wide table defined in the General settings. + + +- ++ + User ID + User ID + + +- ++ + Use only the transmitted guide data. + Use only the transmitted guide data. + + +- + This will usually only work with ATSC or DVB channels, +- This will usually only work with ATSC or DVB channels, ++ This will usually only work with ATSC or DVB channels, + + +- + and generally provides data only for the next few days. +- and generally provides data only for the next few days. ++ and generally provides data only for the next few days. + + +- ++ + Do not configure a grabber +- Do not configure a grabber ++ Do Not Configure a Grabber + + +- ++ + North America (SchedulesDirect.org) (Internal) + North America (SchedulesDirect.org) (Internal) + + +- ++ ++ Maximum number of simultaneous recordings MythTV will attempt using this device. If set to a value other than 1, MythTV can sometimes record multiple programs on the same multiplex or overlapping copies of the same program on a single channel. ++ Maximum number of simultaneous recordings MythTV will attempt using this device. If set to a value other than 1, MythTV can sometimes record multiple programs on the same multiplex or overlapping copies of the same program on a single channel. ++ ++ ++ ++ Schedule as group ++ Schedule as Group ++ ++ ++ ++ Schedule all virtual inputs on this device as a group. This is more efficient than scheduling each input individually, but can result in scheduling more simultaneous recordings than is allowed. Be sure to set the maximum number of simultaneous recordings above high enough to handle all expected cases. ++ Schedule all virtual inputs on this device as a group. This is more efficient than scheduling each input individually, but can result in scheduling more simultaneous recordings than is allowed. Be sure to set the maximum number of simultaneous recordings above high enough to handle all expected cases. ++ ++ ++ + Transmitted guide only (EIT) +- Transmitted guide only (EIT) ++ Transmitted Guide Only (EIT) + + +- ++ + No grabber +- No grabber ++ No Grabber ++ ++ ++ ++ This will usually only work with ATSC or DVB channels, and generally provides data only for the next few days. ++ This will usually only work with ATSC or DVB channels, and generally provides data only for the next few days. + + +- ++ + Video device +- Video device ++ Video Device + + +- ++ + VBI device +- VBI device ++ VBI Device ++ ++ ++ ++ Specify the command to run, with any needed arguments. ++ Specify the command to run, with any needed arguments. + + +- ++ + Audio device +- Audio device ++ Audio Device + + +- +- +- +- +- ++ ++ ++ ++ ++ + (None) + (None) + + +- ++ + Do not adjust volume +- Do not adjust volume ++ Do Not Adjust Volume + + +- ++ + Enable this option for budget BT878 based DVB-T cards such as the AverTV DVB-T which require the audio volume to be left alone. + Enable this option for budget BT878 based DVB-T cards such as the AverTV DVB-T which require the audio volume to be left alone. + + +- ++ + When you change this setting, the text below should change to the name and type of your card. If the card cannot be opened, an error message will be displayed. + When you change this setting, the text below should change to the name and type of your card. If the card cannot be opened, an error message will be displayed. + + +- +- +- +- ++ ++ ++ ++ + Warning: already in use +- Warning: already in use ++ Warning: Already in Use + + +- ++ + Subtype + Subtype + + +- ++ + Frontend ID + Frontend ID + + +- ++ + Wait for SEQ start header. +- Wait for SEQ start header. ++ Wait for SEQ Start Header + + +- ++ + Open DVB card on demand +- Open DVB card on demand ++ Open DVB Card on Demand + + +- ++ + GUID + GUID + + +- ++ + Cable box model +- Cable box model ++ Cable Box Model + + +- ++ + URL of M3U containing RTSP/RTP/UDP channel URLs. + URL of M3U containing RTSP/RTP/UDP channel URLs. + + +- ++ + DVB-T/S/C, ATSC or ISDB-T tuner card +- DVB-T/S/C, ATSC or ISDB-T tuner card ++ DVB-T/S/C, ATSC or ISDB-T Tuner Card + + +- ++ + HD-PVR H.264 encoder +- HD-PVR H.264 encoder ++ HD-PVR H.264 Encoder + + +- ++ + HDHomeRun networked tuner +- HDHomeRun networked tuner ++ HDHomeRun Networked Tuner + + +- ++ + Ceton Cablecard tuner +- Ceton Cablecard tuner ++ Ceton Cablecard Tuner + + +- ++ + IPTV recorder +- IPTV recorder ++ IPTV Recorder + + +- ++ + Analog to MPEG-2 encoder card (PVR-150/250/350, etc) +- Analog to MPEG-2 encoder card (PVR-150/250/350, etc) ++ Analog to MPEG-2 Encoder Card (PVR-150/250/350, etc) + + +- ++ + Analog to MJPEG encoder card (Matrox G200, DC10, etc) +- Analog to MJPEG encoder card (Matrox G200, DC10, etc) ++ Analog to MJPEG Encoder Card (Matrox G200, DC10, etc) + + +- ++ + Analog to MPEG-4 encoder (Plextor ConvertX USB, etc) +- Analog to MPEG-4 encoder (Plextor ConvertX USB, etc) ++ Analog to MPEG-4 Encoder (Plextor ConvertX USB, etc) + + +- ++ + Analog capture card +- Analog capture card ++ Analog Capture Card + + +- ++ + Generic + Generic + + +- ++ + Choose the model that most closely resembles your set top box. Depending on firmware revision SA4200HD may work better for a SA3250HD box. + Choose the model that most closely resembles your set top box. Depending on firmware revision SA4200HD may work better for a SA3250HD box. + + +- ++ + If your provider has asked you to configure a specific network identifier (Network_ID), enter it here. Leave it at -1 otherwise. + Network_ID is the name of an identifier in the DVB's Service Information standard specification. + If your provider has asked you to configure a specific network identifier (Network_ID), enter it here. Leave it at -1 otherwise. + + +- ++ + You MUST run 'mythfilldatabase --manual' the first time, + instead of just 'mythfilldatabase'. + Your grabber does not provide channel numbers, so you have to set them manually. +@@ -18607,472 +19237,475 @@ + Your grabber does not provide channel numbers, so you have to set them manually. + + +- + Warning. +- Warning. ++ Warning. + + +- ++ + DVB device +- DVB device ++ DVB Device + + +- ++ + Motorola Generic + Motorola Generic + + +- ++ + SA/Cisco Generic + SA/Cisco Generic + + +- ++ + Connection Type + Connection Type + + +- ++ + Point to Point + Point to Point + + +- ++ + Speed + Speed + + +- ++ + 100Mbps + 100Mbps + + +- ++ + 200Mbps + 200Mbps + + +- ++ + 400Mbps + 400Mbps + + +- ++ + 800Mbps + 800Mbps + + +- +- ++ ++ + IP Address + IP Address + + +- +- ++ ++ + Tuner + Tuner + + +- ++ + M3U URL + M3U URL + + +- ++ + ASI device +- ASI device ++ ASI Device + + +- ++ + Warning: unable to open +- Warning: unable to open ++ Warning: Unable to Open + + +- +- +- + Recorder Options +- Recorder Options ++ Recorder Options + + +- ++ + Capture Card Setup + Capture Card Setup + + +- ++ + Card type +- Card type ++ Card Type + + +- ++ + Change the cardtype to the appropriate type for the capture card you are configuring. +- Change the cardtype to the appropriate type for the capture card you are configuring. ++ Change the card type to the appropriate type for the capture card you are configuring. + + +- ++ + FireWire cable box +- FireWire cable box ++ FireWire Cable Box + + +- ++ + DVEO ASI recorder +- DVEO ASI recorder ++ DVEO ASI Recorder + + +- ++ + Video source +- Video source ++ Video Source + + +- ++ + Leave as 'Generic' unless this input is shared with another device. Only one of the inputs in an input group will be allowed to record at any given time. + Leave as 'Generic' unless this input is shared with another device. Only one of the inputs in an input group will be allowed to record at any given time. + + +- ++ + Use quick tuning +- Use quick tuning ++ Use Quick Tuning + + +- ++ + Never + Never + + +- ++ + Live TV only +- Live TV only ++ Live TV Only + + +- ++ + Always + Always + + +- ++ + External channel change command +- External channel change command ++ External Channel Change Command + + +- ++ + If specified, this command will be run to change the channel for inputs which have an external tuner device such as a cable box. The first argument will be the channel number. + If specified, this command will be run to change the channel for inputs which have an external tuner device such as a cable box. The first argument will be the channel number. + + +- ++ + Preset tuner to channel +- Preset tuner to channel ++ Preset Tuner to Channel + + +- ++ + Leave this blank unless you have an external tuner that is connected to the tuner input of your card. If so, you will need to specify the preset channel for the signal (normally 3 or 4). + Leave this blank unless you have an external tuner that is connected to the tuner input of your card. If so, you will need to specify the preset channel for the signal (normally 3 or 4). + + +- ++ + Input priority +- Input priority ++ Input Priority + + +- ++ + If the input priority is not equal for all inputs, the scheduler may choose to record a show at a later time so that it can record on an input with a higher value. + If the input priority is not equal for all inputs, the scheduler may choose to record a show at a later time so that it can record on an input with a higher value. + + +- ++ + Schedule order +- Schedule order ++ Schedule Order + + +- ++ + If priorities and other factors are equal the scheduler will choose the available input with the lowest, non-zero value. Setting this value to zero will make the input unavailable to the scheduler. +- If priorities and other factors are equal the scheduler will choose the available input with the lowest, non-zero value. Setting this value to zero will make the input unavailable to the scheduler. ++ If priorities and other factors are equal the scheduler will choose the available input with the lowest, non-zero value. Setting this value to zero will make the input unavailable to the scheduler. + + +- ++ + Live TV order +- Live TV order ++ Live TV Order + + +- ++ + When entering Live TV, the available, local input with the lowest, non-zero value will be used. If no local inputs are available, the available, remote input with the lowest, non-zero value will be used. Setting this value to zero will make the input unavailable to live TV. +- When entering Live TV, the available, local input with the lowest, non-zero value will be used. If no local inputs are available, the available, remote input with the lowest, non-zero value will be used. Setting this value to zero will make the input unavailable to live TV. ++ When entering Live TV, the available, local input with the lowest, non-zero value will be used. If no local inputs are available, the available, remote input with the lowest, non-zero value will be used. Setting this value to zero will make the input unavailable to live TV. + + +- ++ + If you point your satellite dish toward DishNet's birds, you may wish to enable this feature. For best results, enable general EIT collection as well. + If you point your satellite dish toward DishNet's birds, you may wish to enable this feature. For best results, enable general EIT collection as well. + + +- + Connect source to input +- Connect source to input ++ Connect source to input + + +- ++ + Interactions between inputs +- Interactions between inputs ++ Interactions Between Inputs + + +- ++ + Create a New Input Group + Create a New Input Group + + +- ++ + (New capture card) +- (New capture card) ++ (New Capture Card) + + +- ++ + (Delete all capture cards on %1) +- (Delete all capture cards on %1) ++ (Delete All Capture Cards on %1) + + +- ++ + (Delete all capture cards) +- (Delete all capture cards) ++ (Delete All Capture Cards) + + +- ++ + (New video source) +- (New video source) ++ (New Video Source) + + +- ++ + (Delete all video sources) +- (Delete all video sources) ++ (Delete All Video Sources) + + +- ++ + Perform EIT scan +- Perform EIT scan ++ Perform EIT Scan + + +- + Maximum number of simultaneous recordings this device should make. Some digital transmitters transmit multiple programs on a multiplex, if this is set to a value greater than one MythTV can sometimes take advantage of this. If only a single program is available, setting this to 2 allows overlapping schedules to record. +- Maximum number of simultaneous recordings this device should make. Some digital transmitters transmit multiple programs on a multiplex, if this is set to a value greater than one MythTV can sometimes take advantage of this. If only a single program is available, setting this to 2 allows overlapping schedules to record. ++ Maximum number of simultaneous recordings this device should make. Some digital transmitters transmit multiple programs on a multiplex, if this is set to a value greater than one MythTV can sometimes take advantage of this. If only a single program is available, setting this to 2 allows overlapping schedules to record. + + +- ++ + If enabled, program guide data for channels on this source will be updated with data provided by the channels themselves 'Over-the-Air'. + If enabled, program guide data for channels on this source will be updated with data provided by the channels themselves 'Over-the-Air'. + + +- ++ + Video Source Setup + Video Source Setup + + +- ++ + Device to read VBI (captions) from. + Device to read VBI (captions) from. + + +- + Arguments +- Arguments ++ Arguments + + +- ++ + File path +- File path ++ File Path + + +- ++ + Device to read audio from, if audio is separate from the video. + Device to read audio from, if audio is separate from the video. + + +- ++ + Signal timeout (ms) +- Signal timeout (ms) ++ Signal Timeout (ms) + + +- ++ + Maximum time (in milliseconds) MythTV waits for a signal when scanning for channels. + Maximum time (in milliseconds) MythTV waits for a signal when scanning for channels. + + +- ++ + Tuning timeout (ms) +- Tuning timeout (ms) ++ Tuning Timeout (ms) + + +- ++ + Maximum time (in milliseconds) MythTV waits for a channel lock. For recordings, if this time is exceeded, the recording will be marked as failed. +- Maximum time (in milliseconds) MythTV waits for a channel lock. For recordings, if this time is exceeded, the recording will be marked as failed. ++ Maximum time (in milliseconds) MythTV waits for a channel lock. For recordings, if this time is exceeded, the recording will be marked as failed. + + +- ++ + Force audio sampling rate +- Force audio sampling rate ++ Force Audio Sampling Rate + + +- ++ + If non-zero, override the audio sampling rate in the recording profile when this card is used. Use this if your capture card does not support all of the standard rates. +- If non-zero, override the audio sampling rate in the recording profile when this card is used. Use this if your capture card does not support all of the standard rates. ++ If non-zero, override the audio sampling rate in the recording profile when this card is used. Use this if your capture card does not support all of the standard rates. + + +- ++ + If enabled, drop packets from the start of a DVB recording until a sequence start header is seen. + If enabled, drop packets from the start of a DVB recording until a sequence start header is seen. + + +- ++ + If enabled, only open the DVB card when required, leaving it free for other programs at other times. + If enabled, only open the DVB card when required, leaving it free for other programs at other times. + + +- ++ + Use DVB card for active EIT scan +- Use DVB card for active EIT scan ++ Use DVB Card for Active EIT Scan + + +- ++ + If enabled, activate active scanning for program data (EIT). When this option is enabled the DVB card is constantly in-use. + If enabled, activate active scanning for program data (EIT). When this option is enabled the DVB card is constantly in-use. + + +- ++ + DVB tuning delay (ms) +- DVB tuning delay (ms) ++ DVB Tuning Delay (ms) + + +- ++ + Some Linux DVB drivers, in particular for the Hauppauge Nova-T, require that we slow down the tuning process by specifying a delay (in milliseconds). + Some Linux DVB drivers, in particular for the Hauppauge Nova-T, require that we slow down the tuning process by specifying a delay (in milliseconds). + + +- +- ++ ++ + Available devices +- Available devices ++ Available Devices + + +- ++ + Device ID and Tuner Number of available HDHomeRun devices. + Device ID and Tuner Number of available HDHomeRun devices. + + +- ++ + Device IP or ID of a VBox device. eg. '192.168.1.100' or 'vbox_3718' + Device IP or ID of a VBox device. eg. '192.168.1.100' or 'vbox_3718' + + +- ++ + Number and type of the tuner to use. eg '1-DVBT/T2'. + Number and type of the tuner to use. eg '1-DVBT/T2'. + + +- ++ + Device IP or ID, tuner number and tuner type of available VBox devices. + Device IP or ID, tuner number and tuner type of available VBox devices. + + +- ++ ++ Use HD HomeRun for active EIT scan ++ Use HD HomeRun for Active EIT Scan ++ ++ ++ ++ If enabled, activate active scanning for program data (EIT). When this option is enabled the HD HomeRun is constantly in-use. ++ If enabled, activate active scanning for program data (EIT). When this option is enabled the HD HomeRun is constantly in-use. ++ ++ ++ + V4L2 encoder devices (multirec capable) +- V4L2 encoder devices (multirec capable) ++ V4L2 Encoder Devices (multirec capable) + + +- ++ + V4L2 encoder +- V4L2 encoder ++ V4L2 Encoder + + +- ++ + V@Box TV Gateway networked tuner +- V@Box TV Gateway networked tuner ++ V@Box TV Gateway Networked Tuner + + +- ++ + Import test recorder +- Import test recorder ++ Import Test Recorder + + +- ++ + Demo test recorder +- Demo test recorder ++ Demo Test Recorder + + +- ++ + External (black box) recorder +- External (black box) recorder ++ External (black box) Recorder + + +- ++ + Input name +- Input name ++ Input Name + + +- ++ + Display name (optional) +- Display name (optional) ++ Display Name (optional) + + +- ++ + This name is displayed on screen when Live TV begins and when changing the selected input or card. If you use this, make sure the information is unique for each input. + This name is displayed on screen when Live TV begins and when changing the selected input or card. If you use this, make sure the information is unique for each input. + + +- ++ + Input group +- Input group ++ Input Group + + +- ++ + If enabled, MythTV will tune using only the MPEG program number. The program numbers change more often than DVB or ATSC tuning parameters, so this is slightly less reliable. This will also inhibit EIT gathering during Live TV and recording. + If enabled, MythTV will tune using only the MPEG program number. The program numbers change more often than DVB or ATSC tuning parameters, so this is slightly less reliable. This will also inhibit EIT gathering during Live TV and recording. + + +- ++ + Use DishNet long-term EIT data +- Use DishNet long-term EIT data ++ Use DishNet Long-Term EIT Data + + +- ++ + Input groups are only needed when two or more cards share the same resource such as a FireWire card and an analog card input controlling the same set top box. + Input groups are only needed when two or more cards share the same resource such as a FireWire card and an analog card input controlling the same set top box. + + +- ++ + Audio input +- Audio input ++ Audio Input + + +- ++ + If there is more than one audio input, select which one to use. + If there is more than one audio input, select which one to use. + + +- ++ + Data Direct lineup +- Data Direct lineup ++ Data Direct Lineup + + +- ++ + Retrieve Lineups + Retrieve Lineups + + +- ++ + Video source name +- Video source name ++ Video Source Name + + +- ++ + Starting channel +- Starting channel ++ Starting Channel + + +- ++ + Starting Live TV channel. +- Starting Live TV channel. ++ Starting Live TV Channel + + +- ++ + This is updated on every successful channel change. + This is updated on every successful channel change. + +@@ -19082,48 +19715,48 @@ + The following programs will be recorded instead: + + +- ++ + Program Status + Program Status + + +- ++ + %1% Completed @ %2 fps. + %1% Completed @ %2 fps. + + + +- +- ++ ++ + currently running. + currently running. + + +- +- +- ++ ++ ++ + Successful. + Successful. + + +- ++ + FAILED: XMLTV grabber ran but was interrupted. + FAILED: XMLTV grabber ran but was interrupted. + + +- ++ + FAILED: XMLTV grabber returned error code %1. + FAILED: XMLTV grabber returned error code %1. + + +- ++ + mythfilldatabase ran, but did not insert any new data into the Guide for %1 of %2 sources. This can indicate a potential grabber failure. + mythfilldatabase ran, but did not insert any new data into the Guide for %1 of %2 sources. This can indicate a potential grabber failure. + + +- ++ + mythfilldatabase ran, but did not insert any new data into the Guide. This can indicate a potential problem with the XML file used for the update. +- mythfilldatabase ran, but did not insert any new data into the Guide. This can indicate a potential problem with the XML file used for the update. ++ mythfilldatabase ran, but did not insert any new data into the Guide. This can indicate a potential problem with the XML file used for the update. + + + +@@ -19136,24 +19769,23 @@ + Audio device is invalid or not useable. + + +- ++ + Delete + Delete + + +- ++ + All + All + + +- ++ + Use 'mythfilldatabase' or the name of a custom script that will populate the program guide info for all your video sources. + Use 'mythfilldatabase' or the name of a custom script that will populate the program guide info for all your video sources. + + +- + Warning +- Warning ++ Warning + + + +@@ -19161,12 +19793,12 @@ + Media Monitor + + +- ++ + Unable to open or close the empty drive %1 + Unable to open or close the empty drive %1 + + +- ++ + You may have to use the eject button under its tray + You may have to use the eject button under its tray + +@@ -19182,722 +19814,769 @@ + + + +- ++ + Completed + Completed + + +- ++ + Job errored, unable to find Program Info for job +- Job errored, unable to find Program Info for job ++ Job Errored, Unable to Find Program Info for Job + + +- ++ + Job Aborted + Job Aborted + + +- ++ + Unrecoverable error +- Unrecoverable error ++ Unrecoverable Error + + +- ++ + IP address +- IP address ++ IP Address + + +- ++ + Enter the IP address of this machine. Use an externally accessible address (ie, not 127.0.0.1) if you are going to be running a frontend on a different machine than this one. Note, in IPv6 setups, this is still required for certain extras such as UPnP. + Enter the IP address of this machine. Use an externally accessible address (ie, not 127.0.0.1) if you are going to be running a frontend on a different machine than this one. Note, in IPv6 setups, this is still required for certain extras such as UPnP. + + +- + IPv6 address +- IPv6 address ++ IPv6 address + + +- ++ + Enter the IPv6 address of this machine. Use an externally accessible address (ie, not ::1) if you are going to be running a frontend on a different machine than this one. + Enter the IPv6 address of this machine. Use an externally accessible address (ie, not ::1) if you are going to be running a frontend on a different machine than this one. + + +- ++ Listen on All IP Addresses ++ Listen on All IP Addresses ++ ++ ++ ++ Primary IP address / DNS name ++ Primary IP Address/DNS Name ++ ++ ++ ++ The Primary IP address of this backend server. You can select an IP address from the list or type a DNS name or host name. Other systems will contact this server using this address. If you use a host name make sure it is assigned an ip address other than 127.0.0.1 in the hosts file. ++ The Primary IP address of this backend server. You can select an IP address from the list or type a DNS name or hostname. Other systems will contact this server using this address. If you use a hostname make sure it is assigned an IP address other than 127.0.0.1 in the hosts file. ++ ++ ++ + TV format +- TV format ++ TV Format + + +- ++ + The TV standard to use for viewing TV. + The TV standard to use for viewing TV. + + +- ++ + VBI format +- VBI format ++ VBI Format + + +- ++ + Save original files after transcoding (globally) +- Save original files after transcoding (globally) ++ Save Original Files After Transcoding (Globally) + + +- ++ + Delete files slowly +- Delete files slowly ++ Delete Files Slowly + + +- ++ + Follow symbolic links when deleting files +- Follow symbolic links when deleting files ++ Follow Symbolic Links When Deleting Files + + +- ++ + Combination + Combination + + +- ++ + By default, MythTV resets the FireWire bus when a FireWire recorder stops responding to commands. If this causes problems, you can disable this behavior here. + By default, MythTV resets the FireWire bus when a FireWire recorder stops responding to commands. If this causes problems, you can disable this behavior here. + + +- ++ + The minimum number of seconds after a recorder becomes idle to wait before MythTV begins collecting EIT listings data. + The minimum number of seconds after a recorder becomes idle to wait before MythTV begins collecting EIT listings data. + + +- ++ + Delay between wake attempts (secs) +- Delay between wake attempts (secs) ++ Delay Between Wake Attempts (secs) + + +- ++ + Number of times the frontend will try to wake up the master backend. + Number of times the frontend will try to wake up the master backend. + + +- ++ ++ The command used to wake up your master backend server (e.g. wakeonlan 00:00:00:00:00:00). ++ The command used to wake up your master backend server (e.g. wakeonlan 00:00:00:00:00:00). ++ ++ ++ + The command used to put this slave to sleep. If set, the master backend will use this command to put this slave to sleep when it is not needed for recording. + The command used to put this slave to sleep. If set, the master backend will use this command to put this slave to sleep when it is not needed for recording. + + +- ++ + Idle shutdown timeout (secs) +- Idle shutdown timeout (secs) ++ Idle Shutdown Timeout (secs) + + +- ++ + The number of minutes the master backend waits for a recording. If the backend is idle but a recording starts within this time period, it won't shut down. + The number of minutes the master backend waits for a recording. If the backend is idle but a recording starts within this time period, it won't shut down. + + +- ++ + Wakeup time format +- Wakeup time format ++ Wakeup Time Format + + +- ++ + The command used to set the wakeup time (passed as $time) for the Master Backend + The command used to set the wakeup time (passed as $time) for the Master Backend + + +- ++ + Server halt command +- Server halt command ++ Server Halt Command + + +- ++ + The command used to halt the backends. + The command used to halt the backends. + + +- ++ + A command executed before the backend would shutdown. The return value determines if the backend can shutdown. 0 - yes, 1 - restart idling, 2 - reset the backend to wait for a frontend. + A command executed before the backend would shutdown. The return value determines if the backend can shutdown. 0 - yes, 1 - restart idling, 2 - reset the backend to wait for a frontend. + + +- ++ + Block shutdown before client connected +- Block shutdown before client connected ++ Block Shutdown Before Client Connected + + +- ++ + Startup command +- Startup command ++ Startup Command + + +- ++ + This command is executed right after starting the BE. As a parameter '$status' is replaced by either 'auto' if the machine was started automatically or 'user' if a user switched it on. + This command is executed right after starting the BE. As a parameter '$status' is replaced by either 'auto' if the machine was started automatically or 'user' if a user switched it on. + + +- ++ + Maximum simultaneous jobs on this backend +- Maximum simultaneous jobs on this backend ++ Maximum Simultaneous Jobs on This Backend + + +- ++ + The Job Queue will be limited to running this many simultaneous jobs on this backend. + The Job Queue will be limited to running this many simultaneous jobs on this backend. + + +- ++ + Low + Low + + +- ++ + Medium + Medium + + +- ++ + The command to run whenever this User Job number is scheduled. + The command to run whenever this User Job number is scheduled. + + +- ++ + User Job #%1 + User Job #%1 + + +- ++ + Transcoder command +- Transcoder command ++ Transcoder Command + + +- ++ + The program used to transcode recordings. The default is 'mythtranscode' if this setting is empty. + The program used to transcode recordings. The default is 'mythtranscode' if this setting is empty. + + +- ++ + Allow %1 jobs + Allow %1 jobs + + +- ++ + If enabled, the master backend will include the list of recorded shows in the list of videos. This is mainly to accommodate UPnP players which do not allow more than 1 video section. +- If enabled, the master backend will include the list of recorded shows in the list of videos. This is mainly to accommodate UPnP players which do not allow more than 1 video section. ++ If enabled, the master backend will include the list of recorded shows in the list of videos. This is mainly to accommodate UPnP players which do not allow more than 1 video section. + + +- ++ + Recordings + Recordings + + +- ++ + Videos + Videos + + +- +- ++ + Unless you've got good reason, don't change this. + Unless you've got good reason, don't change this. + + +- ++ + IPv4 address +- IPv4 address ++ IPv4 Address + + +- ++ + Status port +- Status port ++ Status Port + + +- ++ + Port on which the server will listen for HTTP requests, including backend status and MythXML requests. + Port on which the server will listen for HTTP requests, including backend status and MythXML requests. + + +- + The IP address of the master backend server. All frontend and non-master backend machines will connect to this server. If you only have one backend, this should be the same IP address as above. +- The IP address of the master backend server. All frontend and non-master backend machines will connect to this server. If you only have one backend, this should be the same IP address as above. ++ The IP address of the master backend server. All frontend and non-master backend machines will connect to this server. If you only have one backend, this should be the same IP address as above. + + +- ++ + Security PIN (required) + Security PIN (required) + + +- ++ + PIN code required for a frontend to connect to the backend. Blank prevents all connections; 0000 allows any client to connect. + PIN code required for a frontend to connect to the backend. Blank prevents all connections; 0000 allows any client to connect. + + +- ++ + The VBI (Vertical Blanking Interval) is used to carry Teletext or Closed Captioning data. + The VBI (Vertical Blanking Interval) is used to carry Teletext or Closed Captioning data. + + +- ++ + Select the appropriate frequency table for your system. If you have an antenna, use a "-bcast" frequency. + Select the appropriate frequency table for your system. If you have an antenna, use a "-bcast" frequency. + + +- ++ + If enabled and the transcoder is active, the original files will be renamed to .old once the transcoding is complete. + If enabled and the transcoder is active, the original files will be renamed to .old once the transcoding is complete. + + +- ++ + Some filesystems use a lot of resources when deleting large files. If enabled, this option makes MythTV delete files slowly on this backend to lessen the impact. + Some filesystems use a lot of resources when deleting large files. If enabled, this option makes MythTV delete files slowly on this backend to lessen the impact. + + +- ++ + If enabled, MythTV will follow symlinks when recordings and related files are deleted, instead of deleting the symlink and leaving the actual file. + If enabled, MythTV will follow symlinks when recordings and related files are deleted, instead of deleting the symlink and leaving the actual file. + + +- ++ + HD ringbuffer size (kB) +- HD ringbuffer size (kB) ++ HD Ringbuffer Size (kB) + + +- ++ + The HD device ringbuffer allows the backend to weather moments of stress. The larger the ringbuffer (in kilobytes), the longer the moments of stress can be. However, setting the size too large can cause swapping, which is detrimental. + The HD device ringbuffer allows the backend to weather moments of stress. The larger the ringbuffer (in kilobytes), the longer the moments of stress can be. However, setting the size too large can cause swapping, which is detrimental. + + +- ++ + Storage Group disk scheduler +- Storage Group disk scheduler ++ Storage Group Disk Scheduler + + +- ++ + Balanced free space +- Balanced free space ++ Balanced Free Space + + +- ++ + Balanced percent free space +- Balanced percent free space ++ Balanced Percent Free Space + + +- ++ + Balanced disk I/O +- Balanced disk I/O ++ Balanced Disk I/O + + +- ++ + This setting controls how the Storage Group scheduling code will balance new recordings across directories. 'Balanced Free Space' is the recommended method for most users. + This setting controls how the Storage Group scheduling code will balance new recordings across directories. 'Balanced Free Space' is the recommended method for most users. + + +- ++ + Disable automatic database backup +- Disable automatic database backup ++ Disable Automatic Database Backup + + +- ++ + If enabled, MythTV will not backup the database before upgrades. You should therefore have your own database backup strategy in place. + If enabled, MythTV will not backup the database before upgrades. You should therefore have your own database backup strategy in place. + + +- ++ + Disable FireWire reset +- Disable FireWire reset ++ Disable FireWire Reset + + +- ++ + Miscellaneous status application +- Miscellaneous status application ++ Miscellaneous Status Application + + +- ++ + External application or script that outputs extra information for inclusion in the backend status page. See http://www.mythtv.org/wiki/Miscellaneous_Status_Information + External application or script that outputs extra information for inclusion in the backend status page. See http://www.mythtv.org/wiki/Miscellaneous_Status_Information + + +- ++ + Which tree to show a Windows Media Player client when it requests a list of videos. + Which tree to show a Windows Media Player client when it requests a list of videos. + + +- ++ + Automatically update program listings +- Automatically update program listings ++ Automatically Update Program Listings + + +- ++ + If enabled, the guide data program will be run automatically. + If enabled, the guide data program will be run automatically. + + +- ++ + Guide data program execution start +- Guide data program execution start ++ Guide Data Program Execution Start + + +- ++ + This setting and the following one define a time period when the guide data program is allowed to run. For example, setting start to 11 and end to 13 would mean that the program would only run between 11:00 AM and 1:59 PM. + This setting and the following one define a time period when the guide data program is allowed to run. For example, setting start to 11 and end to 13 would mean that the program would only run between 11:00 AM and 1:59 PM. + + +- ++ + Guide data program execution end +- Guide data program execution end ++ Guide Data Program Execution End + + +- ++ + This setting and the preceding one define a time period when the guide data program is allowed to run. For example, setting start to 11 and end to 13 would mean that the program would only run between 11:00 AM and 1:59 PM. + This setting and the preceding one define a time period when the guide data program is allowed to run. For example, setting start to 11 and end to 13 would mean that the program would only run between 11:00 AM and 1:59 PM. + + +- ++ + Run guide data program at time suggested by the grabber. + Run guide data program at time suggested by the grabber. + + +- ++ + If enabled, allow a DataDirect guide data provider to specify the next download time in order to distribute load on their servers. Guide data program execution start/end times are also ignored. + If enabled, allow a DataDirect guide data provider to specify the next download time in order to distribute load on their servers. Guide data program execution start/end times are also ignored. + + +- ++ + Guide data program +- Guide data program ++ Guide Data Program + + +- ++ + Guide data arguments +- Guide data arguments ++ Guide Data Arguments + + +- ++ + Any arguments you want passed to the guide data program. + Any arguments you want passed to the guide data program. + + +- ++ + Program Schedule Downloading Options + Program Schedule Downloading Options + + +- ++ + Listen on Link-Local addresses +- Listen on Link-Local addresses ++ Listen on Link-local Addresses + + +- ++ + Enable servers on this machine to listen on link-local addresses. These are auto-configured addresses and not accessible outside the local network. This must be enabled for anything requiring Bonjour to work. + Enable servers on this machine to listen on link-local addresses. These are auto-configured addresses and not accessible outside the local network. This must be enabled for anything requiring Bonjour to work. + + +- ++ + EIT transport timeout (mins) +- EIT transport timeout (mins) ++ EIT Transport Timeout (mins) + + +- ++ + Maximum time to spend waiting (in minutes) for listings data on one digital TV channel before checking for new listings data on the next channel. + Maximum time to spend waiting (in minutes) for listings data on one digital TV channel before checking for new listings data on the next channel. + + +- ++ + Master backend override +- Master backend override ++ Master Backend Override + + +- ++ + If enabled, the master backend will stream and delete files if it finds them in a storage directory. Useful if you are using a central storage location, like a NFS share, and your slave backend isn't running. + If enabled, the master backend will stream and delete files if it finds them in a storage directory. Useful if you are using a central storage location, like a NFS share, and your slave backend isn't running. + + +- ++ + Backend idle before EIT crawl (secs) +- Backend idle before EIT crawl (secs) ++ Backend Idle Before EIT Crawl (secs) + + +- ++ + Length of time the frontend waits between tries to wake up the master backend. This should be the time your master backend needs to startup. Set to 0 to disable. + Length of time the frontend waits between tries to wake up the master backend. This should be the time your master backend needs to startup. Set to 0 to disable. + + +- ++ + Wake attempts +- Wake attempts ++ Wake Attempts + + +- + The command used to wake up your master backend server (e.g. sudo /etc/init.d/mythtv-backend restart). +- The command used to wake up your master backend server (e.g. sudo /etc/init.d/mythtv-backend restart). ++ The command used to wake up your master backend server (e.g. sudo /etc/init.d/mythtv-backend restart). + + +- ++ + Sleep command +- Sleep command ++ Sleep Command + + +- ++ + The command used to wake up this slave from sleep. This setting is not used on the master backend. + The command used to wake up this slave from sleep. This setting is not used on the master backend. + + +- ++ + Backend stop command +- Backend stop command ++ Backend Stop Command + + +- ++ + The command used to stop the backend when running on the master backend server (e.g. sudo /etc/init.d/mythtv-backend stop) + The command used to stop the backend when running on the master backend server (e.g. sudo /etc/init.d/mythtv-backend stop) + + +- ++ + Backend start command +- Backend start command ++ Backend Start Command + + +- ++ + The command used to start the backend when running on the master backend server (e.g. sudo /etc/init.d/mythtv-backend start). + The command used to start the backend when running on the master backend server (e.g. sudo /etc/init.d/mythtv-backend start). + + +- ++ + The number of seconds the master backend idles before it shuts down all other backends. Set to 0 to disable automatic shutdown. + The number of seconds the master backend idles before it shuts down all other backends. Set to 0 to disable automatic shutdown. + + +- ++ + Maximum wait for recording (mins) +- Maximum wait for recording (mins) ++ Maximum Wait for Recording (mins) + + +- ++ + Startup before recording (secs) +- Startup before recording (secs) ++ Startup Before Recording (secs) + + +- ++ + The number of seconds the master backend will be woken up before a recording starts. + The number of seconds the master backend will be woken up before a recording starts. + + +- ++ + The format of the time string passed to the 'Command to set wakeup time' as $time. See QT::QDateTime.toString() for details. Set to 'time_t' for seconds since epoch. + The format of the time string passed to the 'Command to set wakeup time' as $time. See QT::QDateTime.toString() for details. Set to 'time_t' for seconds since epoch. + + +- ++ + Command to set wakeup time +- Command to set wakeup time ++ Command to Set Wakeup Time + + +- ++ + Pre-shutdown-check command +- Pre-shutdown-check command ++ Pre-shutdown Check Command + + +- ++ + If enabled, the automatic shutdown routine will be disabled until a client connects. + If enabled, the automatic shutdown routine will be disabled until a client connects. + + +- ++ + Job Queue check frequency (secs) +- Job Queue check frequency (secs) ++ Job Queue Check Frequency (secs) + + +- ++ + When looking for new jobs to process, the Job Queue will wait this many seconds between checks. + When looking for new jobs to process, the Job Queue will wait this many seconds between checks. + + +- ++ + CPU usage +- CPU usage ++ CPU Usage + + +- ++ + This setting controls approximately how much CPU jobs in the queue may consume. On 'High', all available CPU time may be used, which could cause problems on slower systems. + This setting controls approximately how much CPU jobs in the queue may consume. On 'High', all available CPU time may be used, which could cause problems on slower systems. + + +- ++ + Job Queue start time +- Job Queue start time ++ Job Queue Start Time + + +- ++ + This setting controls the start of the Job Queue time window, which determines when new jobs will be started. + This setting controls the start of the Job Queue time window, which determines when new jobs will be started. + + +- ++ + Job Queue end time +- Job Queue end time ++ Job Queue End Time + + +- ++ + This setting controls the end of the Job Queue time window, which determines when new jobs will be started. + This setting controls the end of the Job Queue time window, which determines when new jobs will be started. + + +- ++ + Run jobs only on original recording backend +- Run jobs only on original recording backend ++ Run Jobs Only on Original Recording Backend + + +- ++ + If enabled, jobs in the queue will be required to run on the backend that made the original recording. + If enabled, jobs in the queue will be required to run on the backend that made the original recording. + + +- ++ + Run transcode jobs before auto commercial detection +- Run transcode jobs before auto commercial detection ++ Run Transcode Jobs Before Auto Commercial Detection + + +- ++ + If enabled, and if both auto-transcode and commercial detection are turned ON for a recording, transcoding will run first; otherwise, commercial detection runs first. + If enabled, and if both auto-transcode and commercial detection are turned ON for a recording, transcoding will run first; otherwise, commercial detection runs first. + + +- ++ + Start auto-commercial-detection jobs when the recording starts +- Start auto-commercial-detection jobs when the recording starts ++ Start Auto Commercial Detection Jobs When the Recording Starts + + +- ++ + If enabled, and Auto Commercial Detection is ON for a recording, the flagging job will be started as soon as the recording starts. NOT recommended on underpowered systems. + If enabled, and Auto Commercial Detection is ON for a recording, the flagging job will be started as soon as the recording starts. NOT recommended on underpowered systems. + + +- ++ + User Job #%1 command +- User Job #%1 command ++ User Job #%1 Command + + +- ++ + User Job #%1 description +- User Job #%1 description ++ User Job #%1 Description + + +- ++ + The description for this User Job. + The description for this User Job. + + +- ++ + Allow metadata lookup jobs +- Allow metadata lookup jobs ++ Allow Metadata Lookup Jobs + + +- ++ + Allow commercial-detection jobs +- Allow commercial-detection jobs ++ Allow Commercial Detection Jobs + + +- +- +- +- ++ ++ ++ ++ + If enabled, allow jobs of this type to run on this backend. + If enabled, allow jobs of this type to run on this backend. + + +- ++ + Allow transcoding jobs +- Allow transcoding jobs ++ Allow Transcoding Jobs + + +- ++ + Commercial-detection command +- Commercial-detection command ++ Commercial Detection Command + + +- ++ + The program used to detect commercials in a recording. The default is 'mythcommflag' if this setting is empty. + The program used to detect commercials in a recording. The default is 'mythcommflag' if this setting is empty. + + +- ++ + Include recordings in video list +- Include recordings in video list ++ Include Recordings in Video List + + +- ++ + Video content to show a WMP client +- Video content to show a WMP client ++ Video Content to Show a WMP Client + + +- + Host Address Backend Setup +- Host Address Backend Setup ++ Host Address Backend Setup + + +- + Local Backend +- Local Backend ++ Local Backend + + +- +- ++ + Master Backend + Master Backend + + +- ++ + Locale Settings + Locale Settings + + +- ++ ++ This server is the Master Backend ++ This Server is the Master Backend ++ ++ ++ ++ Enable this if this is the only backend or is the master backend server. If enabled, all frontend and non-master backend machines will connect to this server. To change to a new master backend, run setup on that server and select it as master backend. ++ Enable if this is the only backend or is the master backend server. If enabled, all frontend and non-master backend machines will connect to this server. To change to a new master backend, run setup on that server and select it as master backend. ++ ++ ++ ++ Master Backend Name ++ Master Backend Name ++ ++ ++ ++ Host name of Master Backend. This is set by selecting "This server is the Master Backend" on that server. ++ Host name of master backend. This is set by selecting "This server is the master backend" on that server. ++ ++ ++ ++ Allow Connections from all Subnets ++ Allow Connections from All Subnets ++ ++ ++ ++ Allow this backend to receive connections from any IP address on the internet. NOT recommended for most users. Use this only if you have secure IPV4 and IPV6 firewalls. ++ Allow this backend to receive connections from any IP address on the internet. NOT recommended for most users. Use this only if you have secure IPV4 and IPV6 firewalls. ++ ++ ++ ++ Listen on IPv6 address ++ Listen on IPv6 Address ++ ++ ++ + Miscellaneous Settings + Miscellaneous Settings + + +- ++ + File Management Settings + File Management Settings + + +- ++ + EIT Scanner Options + EIT Scanner Options + + +- ++ + Shutdown/Wakeup Options + Shutdown/Wakeup Options + + +- ++ + Backend Wakeup settings +- Backend Wakeup settings ++ Backend Wakeup Settings + + +- ++ + Slave Backends + Slave Backends + + +- ++ + Backend Control + Backend Control + + +- ++ + Job Queue (Backend-Specific) + Job Queue (Backend-Specific) + + +- ++ + Job Queue (Global) + Job Queue (Global) + + +- ++ + Job Queue (Job Commands) + Job Queue (Job Commands) + + +- ++ + UPnP Server Settings + UPnP Server Settings + +@@ -19915,12 +20594,12 @@ + + + No Storage Group directories are defined. You must add at least one directory to the Default Storage Group where new recordings will be stored. +- No Storage Group directories are defined. You must add at least one directory to the Default Storage Group where new recordings will be stored. ++ No Storage Group directories are defined. You must add at least one directory to the Default Storage Group where new recordings will be stored. + + + + You have a Video Storage Group, but have not set up all Image Groups. If you continue, video image downloads will be saved in your Videos Storage Group. Do you want to store them in their own groups? +- You have a Video Storage Group, but have not set up all Image Groups. If you continue, video image downloads will be saved in your Videos Storage Group. Do you want to store them in their own groups? ++ You have a Video Storage Group, but have not set up all Image Groups. If you continue, video image downloads will be saved in your Videos Storage Group. Do you want to store them in their own groups? + + + +@@ -19928,12 +20607,12 @@ + Card %1 (type %2) is set to start on channel %3, which does not exist. + + +- ++ + Searching for icons for channel %1 +- Searching for icons for channel %1 ++ Searching for Icons for Channel %1 + + +- ++ + MythTV Setup + MythTV Setup + +@@ -19971,19 +20650,19 @@ + Backlinks + + +- ++ + Scan Type + Scan Type + + + + Error: failed to add new file type '%1' +- Error: failed to add new file type '%1' ++ Error: Failed to Add New File Type '%1' + + + + Error: failed to hash file '%1' +- Error: failed to hash file '%1' ++ Error: Failed to Hash File '%1' + + + +@@ -19994,7 +20673,7 @@ + + + No files found +- No files found ++ No Files Found + + + +@@ -20075,57 +20754,57 @@ + videos + + +- ++ + >1Gbps + >1Gbps + + +- ++ + %1Mbps + %1Mbps + + +- ++ + %1MHz + %1MHz + + +- ++ + %1kHz + %1kHz + + +- ++ + %1kbps + %1kbps + + +- ++ + %1bps + %1bps + + +- ++ + %1Hz + %1Hz + + +- ++ + %1 TB + %1 TB + + +- ++ + %1 GB + %1 GB + + +- ++ + %1 MB + %1 MB + + +- ++ + %1 KB + %1 KB + +@@ -20150,17 +20829,17 @@ + + + Match duplicates using subtitle & description +- Match duplicates using subtitle & description ++ Match Duplicates Using Subtitle & Description + + + + Match duplicates using subtitle then description +- Match duplicates using subtitle then description ++ Match Duplicates Using Subtitle Then Description + + + + Match duplicates using subtitle +- Match duplicates using subtitle ++ Match Duplicates Using Subtitle + + + +@@ -20180,22 +20859,22 @@ + + + Match duplicates using description +- Match duplicates using description ++ Match Duplicates Using Description + + + + Don't match duplicates +- Don't match duplicates ++ Don't Match Duplicates + + + + Look for duplicates in current and previous recordings +- Look for duplicates in current and previous recordings ++ Look for Duplicates in Current and Previous Recordings + + + + Look for duplicates in current recordings only +- Look for duplicates in current recordings only ++ Look for Duplicates in Current Recordings Only + + + +@@ -20221,90 +20900,90 @@ + + + Look for duplicates in previous recordings only +- Look for duplicates in previous recordings only ++ Look for Duplicates in Previous Recordings Only + + + +- ++ + Record new episodes only +- Record new episodes only ++ Record New Episodes Only + + +- ++ + Use any available input +- Use any available input ++ Use Any Available Input + + +- ++ + Prefer input %1 +- Prefer input %1 ++ Prefer Input %1 + + +- ++ + Record new and repeat episodes +- Record new and repeat episodes ++ Record New and Repeat Episodes + + +- ++ + Record using the %1 profile +- Record using the %1 profile ++ Record Using the %1 Profile + + +- ++ + LiveTV + LiveTV + + +- ++ + High Quality + High Quality + + +- ++ + Low Quality + Low Quality + + +- +- ++ ++ + Include in the "%1" recording group + Include in the "%1" recording group + + +- ++ + Create a new recording group +- Create a new recording group ++ Create a New Recording Group + + +- ++ + Store in the "%1" storage group +- Store in the "%1" storage group ++ Store in the "%1" Storage Group + + +- ++ + Use "%1" playback group settings +- Use "%1" playback group settings ++ Use "%1" Playback Group Settings + + +- ++ + Don't record if this would exceed the max episodes +- Don't record if this would exceed the max episodes ++ Don't Record If This Would Exceed the Max Episodes + + +- ++ + Delete oldest if this would exceed the max episodes +- Delete oldest if this would exceed the max episodes ++ Delete Oldest If This Would Exceed the Max Episodes + + +- ++ + New Recording group name: +- New Recording group name: ++ New Recording Group name: + + +- +- +- +- ++ ++ ++ ++ + Run '%1' + Run '%1' + +@@ -20335,97 +21014,97 @@ + SetParameters() called with handle == NULL! + + +- ++ + Aborting Audio Reconfigure. Can't handle audio with more than 8 channels. + Aborting Audio Reconfigure. Can't handle audio with more than 8 channels. + + +- ++ + Error creating resampler: %1 +- Error creating resampler: %1 ++ Error Creating Resampler: %1 + + +- ++ + AC-3 encoder initialization failed +- AC-3 encoder initialization failed ++ Ac-3 Encoder Initialization Failed + + +- ++ + Aborting reconfigure +- Aborting reconfigure ++ Aborting Reconfigure + + + + DirectSound initialization failed +- DirectSound initialization failed ++ DirectSound Initialization Failed + + + + Unsupported format for device %1:%2 +- Unsupported format for device %1:%2 ++ Unsupported Format for Device %1:%2 + + + + Failed to create DS buffer 0x%1 +- Failed to create DS buffer 0x%1 ++ Failed to Create DS Buffer 0x%1 + + + + Error opening audio device (%1) +- Error opening audio device (%1) ++ Error Opening Audio Device (%1) + + + + Failed to open stream (%1) +- Failed to open stream (%1) ++ Failed to Open Stream (%1) + + + + Choose a channel name (any string, long version) +- Choose a channel name (any string, long version) ++ Choose a Channel Name (any string, long version) + + + + Choose a channel callsign (any string, short version) +- Choose a channel callsign (any string, short version) ++ Choose a Channel Callsign (any string, short version) + + + + Choose a channel preset (0..999) +- Choose a channel preset (0..999) ++ Choose a Channel Preset (0..999) + + + + Choose a frequency id +- Choose a frequency id ++ Choose a Frequency ID + + + + Choose a channel number +- Choose a channel number ++ Choose a Channel Number + + + + Choose a channel fine tune offset +- Choose a channel fine tune offset ++ Choose a Channel Fine Tune Offset + + + + Choose a TV format (PAL/SECAM/NTSC/ATSC/Default) +- Choose a TV format (PAL/SECAM/NTSC/ATSC/Default) ++ Choose a TV Format (PAL/SECAM/NTSC/ATSC/Default) + + + + Choose a channel icon image (relative path to icon storage group) +- Choose a channel icon image (relative path to icon storage group) ++ Choose a Channel Icon Image (relative path to icon storage group) + + +- ++ + movie + movie + + +- ++ + film + film + +@@ -20433,56 +21112,56 @@ + + Error: Database not open while trying to load setting: %1 + mythshutdown +- Error: Database not open while trying to load setting: %1 ++ Error: Database Not Open While Trying to Load Setting: %1 + + + + + Error: Waited too long to obtain lock on setting table + mythshutdown +- Error: Waited too long to obtain lock on setting table ++ Error: Waited Too Long to Obtain Lock on Setting Table + + + + Error: Could not connect to master server + mythshutdown +- Error: Could not connect to master server ++ Error: Could Not Connect to Master Server + + + + Transcoding in progress... + mythshutdown +- Transcoding in progress... ++ Transcoding in Progress... + + + + Commercial Detection in progress... + mythshutdown +- Commercial Detection in progress... ++ Commercial Detection in Progress... + + + + Grabbing EPG data in progress... + mythshutdown +- Grabbing EPG data in progress... ++ Grabbing EPG Data in Progress... + + + + Recording in progress... + mythshutdown +- Recording in progress... ++ Recording in Progress... + + + + Shutdown is locked + mythshutdown +- Shutdown is locked ++ Shutdown is Locked + + + + Has queued or pending jobs + mythshutdown +- Has queued or pending jobs ++ Has Queued or Pending Jobs + + + +@@ -20500,176 +21179,176 @@ + + About to start daily wakeup period (1) + mythshutdown +- About to start daily wakeup period (1) ++ About to Start Daily Wakeup Period (1) + + + + About to start daily wakeup period (2) + mythshutdown +- About to start daily wakeup period (2) ++ About to Start Daily Wakeup Period (2) + + + + Setup is running... + mythshutdown +- Setup is running... ++ Setup is Running... + + + + Mythshutdown: --status returned: %1 + mythshutdown +- Mythshutdown: --status returned: %1 ++ Mythshutdown Status Returned: %1 + + + + Not OK to shutdown + mythshutdown +- Not OK to shutdown ++ Not OK to Shutdown + + + + OK to shutdown + mythshutdown +- OK to shutdown ++ OK to Shutdown + + + + Wakeup time given is: %1 (local time) + mythshutdown +- Wakeup time given is: %1 (local time) ++ Wakeup Time Given Is: %1 (local time) + + + + Setting scheduled wakeup time: Attempting to connect to master server... + mythshutdown +- Setting scheduled wakeup time: Attempting to connect to master server... ++ Setting Scheduled Wakeup Time: Attempting to Connect to Master Server... + + + + Setting scheduled wakeup time: Could not connect to master server! + mythshutdown +- Setting scheduled wakeup time: Could not connect to master server! ++ Setting Scheduled Wakeup Time: Could Not Connect to Master Server! + + + + + Daily wakeup today at %1 + mythshutdown +- Daily wakeup today at %1 ++ Daily Wakeup Today At %1 + + + + Next daily wakeup is tomorrow at %1 + mythshutdown +- Next daily wakeup is tomorrow at %1 ++ Next Daily Wakeup is Tomorrow At %1 + + + + Error: no daily wakeup times are set + mythshutdown +- Error: no daily wakeup times are set ++ Error: No Daily Wakeup Times Are Set + + + + Error: no recording time is set + mythshutdown +- Error: no recording time is set ++ Error: No Recording Time is Set + + + + Recording scheduled at: %1 + mythshutdown +- Recording scheduled at: %1 ++ Recording Scheduled At: %1 + + + + Scheduled recording time has already passed. Schedule deleted + mythshutdown +- Scheduled recording time has already passed. Schedule deleted ++ Scheduled Recording Time Has Already Passed. Schedule Deleted. + + + + Error: no wake up time set and no scheduled program + mythshutdown +- Error: no wake up time set and no scheduled program ++ Error: No Wake Up Time Set and No Scheduled Program + + + + Will wake up at next scheduled program + mythshutdown +- Will wake up at next scheduled program ++ Will Wake Up At Next Scheduled Program + + + + Will wake up at next daily wakeup + mythshutdown +- Will wake up at next daily wakeup ++ Will Wake Up At Next Daily Wakeup + + + + Program is scheduled but will wake up at next daily wakeup + mythshutdown +- Program is scheduled but will wake up at next daily wakeup ++ Program is Scheduled but Will Wake Up At Next Daily Wakeup + + + + Daily wakeup is set but will wake up at next scheduled program + mythshutdown +- Daily wakeup is set but will wake up at next scheduled program ++ Daily Wakeup is Set but Will Wake Up At Next Scheduled Program + + + + Sending command to set time in BIOS %1 + mythshutdown +- Sending command to set time in BIOS %1 ++ Sending Command to Set Time in BIOS %1 + + + + Program %1 exited with code %2 + mythshutdown +- Program %1 exited with code %2 ++ Program %1 Exited with Code %2 + + + + Error: nvram-wakeup failed to set time in BIOS + mythshutdown +- Error: nvram-wakeup failed to set time in BIOS ++ Error: nvram-wakeup Failed to Set Time in BIOS + + + + The next wakeup time is less than 15 mins away, not shutting down. + mythshutdown +- The next wakeup time is less than 15 mins away, not shutting down. ++ The Next Wakeup Time is Less Than 15 Mins Away, Not Shutting Down. + + + + everything looks fine, shutting down ... + mythshutdown +- everything looks fine, shutting down ... ++ Everything Looks Fine, Shutting Down... + + + + shutting down + mythshutdown +- shutting down ++ Shutting Down + + + + Everything looks fine, but reboot is needed + mythshutdown +- Everything looks fine, but reboot is needed ++ Everything Looks Fine, but Reboot is Needed + + + + Sending command to bootloader + mythshutdown +- Sending command to bootloader ++ Sending Command to Bootloader + + + + rebooting + mythshutdown +- rebooting ++ Rebooting + + + +@@ -20686,14 +21365,14 @@ + must be yyyy-MM-ddThh:mm:ss + + +- ++ + Error: stream handler died +- Error: stream handler died ++ Error: Stream Handler Died + + + + All channels +- All channels ++ All Channels + + + +@@ -20717,6 +21396,11 @@ + Genre + Genre + ++ ++ ++ New entry ++ New Entry ++ + + + RawSettingsEditor +@@ -20729,12 +21413,12 @@ + + RecMetadataEdit + +- ++ + Trying to manually find this recording online... +- Trying to manually find this recording online... ++ Trying to Manually Find This Recording Online... + + +- ++ + No match found for this recording. You can try entering a TVDB/TMDB number, season, and episode manually. + No match found for this recording. You can try entering a TVDB/TMDB number, season, and episode manually. + +@@ -20742,14 +21426,18 @@ + + RecordingProfileEditor + +- + Add Recording Profile +- Add Recording Profile ++ Add Recording Profile ++ ++ ++ ++ (Create new profile) ++ Create New Profile + + +- ++ + Enter the name of the new profile +- Enter the name of the new profile ++ Enter profile name: + + + +@@ -20822,128 +21510,130 @@ + + + Scanning +- Scanning ++ Scanning... + + + + ScanOptionalConfig + +- ++ + Failed to open the card +- Failed to open the card ++ Failed to Open the Card + + +- ++ + Failed to probe the card +- Failed to probe the card ++ Failed to Probe the Card + + + + ScanTypeSetting + ++ + +- +- +- +- ++ ++ ++ ++ + +- + Full Scan + Full Scan + + +- +- +- +- +- +- +- +- ++ ++ ++ ++ ++ ++ ++ ++ + Import existing scan +- Import existing scan ++ Import Existing Scan + + +- +- +- +- +- +- ++ ++ ++ ++ ++ ++ + Full Scan (Tuned) + Full Scan (Tuned) + + +- ++ + VBox Channel Import + VBox Channel Import + + +- ++ + M3U Import with MPTS + M3U Import with MPTS + + +- ++ + M3U Import + M3U Import + + +- ++ + ASI Scan + ASI Scan + + +- ++ + MPTS Scan + MPTS Scan + + +- ++ + Failed to probe the card +- Failed to probe the card ++ Failed to Probe the Card + + +- ++ + Failed to open the card +- Failed to open the card ++ Failed to Open the Card + + +- ++ + Scan of all existing transports +- Scan of all existing transports ++ Scan of All Existing Transports + + +- ++ + Scan of single existing transport +- Scan of single existing transport ++ Scan of Single Existing Transport + + + + ScanWizard + +- +- + ScanWizard +- ScanWizard ++ ScanWizard ++ ++ ++ ++ Scan ++ Scan + + +- ++ + Programmer Error, see console +- Programmer Error, see console ++ Programmer Error, See Console + + +- ++ + Error parsing parameters +- Error parsing parameters ++ Error Parsing Parameters + + + + ScanWizardConfig + +- + Scan Configuration +- Scan Configuration ++ Scan Configuration + + + +@@ -20951,168 +21641,173 @@ + + + New episode +- New episode ++ New Episode + + + + Identifiable episode +- Identifiable episode ++ Identifiable Episode + + + + First showing +- First showing ++ First Showing + + + + Prime time +- Prime time ++ Prime Time + + + + This episode +- This episode ++ This Episode + + + + This series +- This series ++ This Series + + + + This time +- This time ++ This Time + + + + This day and time +- This day and time ++ This Day and Time + + + + This channel +- This channel ++ This Channel + + + + No episodes +- No episodes ++ No Episodes + + + + Commercial free +- Commercial free ++ Commercial Free + + + + High definition +- High definition ++ High Definition + + + + ScheduleCommon + +- ++ + The following programs will be recorded instead: +- The following programs will be recorded instead: ++ The Following Programs Will Be Recorded Instead: ++ ++ ++ ++ Watch This Channel ++ Watch This Channel + + +- +- +- ++ ++ ++ + Record this showing +- Record this showing ++ Record This Showing + + +- +- ++ ++ + Record all showings +- Record all showings ++ Record All Showings + + +- +- ++ ++ + Record one showing +- Record one showing ++ Record One Showing + + +- +- ++ ++ + Record one showing (this episode) +- Record one showing (this episode) ++ Record One Showing (this episode) + + +- +- ++ ++ + Record all showings (this channel) +- Record all showings (this channel) ++ Record All Showings (this channel) + + +- +- +- ++ ++ ++ + Edit recording rule +- Edit recording rule ++ Edit Recording Rule + + +- +- ++ ++ + Stop this recording +- Stop this recording ++ Stop This Recording + + +- +- ++ ++ + Modify recording options +- Modify recording options ++ Modify Recording Options + + +- +- ++ ++ + Restart this recording +- Restart this recording ++ Restart This Recording + + +- +- ++ ++ + Forget previous recording +- Forget previous recording ++ Forget Previous Recording + + +- +- ++ ++ + Don't record this showing +- Don't record this showing ++ Don't Record This Showing + + +- +- ++ ++ + Never record this episode +- Never record this episode ++ Never Record This Episode + + +- +- ++ ++ + Edit override rule +- Edit override rule ++ Edit Override Rule + + +- +- ++ ++ + Delete override rule +- Delete override rule ++ Delete Override Rule + + +- +- ++ ++ + Add override rule +- Add override rule ++ Add Override Rule + + +- +- ++ ++ + Delete recording rule +- Delete recording rule ++ Delete Recording Rule + + + +@@ -21147,75 +21842,75 @@ + + + +- ++ + Main Options + Main Options + + + +- ++ + Schedule Options + Schedule Options + + + +- ++ + Filter Options + Filter Options + + + +- ++ + Storage Options + Storage Options + + + +- ++ + Post Processing + Post Processing + + + +- ++ + Metadata Options + Metadata Options + + + +- ++ + Use Template + Use Template + + + +- ++ + Schedule Info + Schedule Info + + + +- ++ + Preview Changes + Preview Changes + + +- ++ + Options + Options + + +- ++ + No templates available +- No templates available ++ No Templates Available + + +- ++ + Template Options + Template Options + + +- ++ + Default + Default + +@@ -21251,7 +21946,7 @@ + + + Error: This version of Myth%1 requires MySQL %2.%3.%4 or later. You seem to be running MySQL version %5. +- Error: This version of Myth%1 requires MySQL %2.%3.%4 or later. You seem to be running MySQL version %5. ++ Error: This version of Myth%1 requires MySQL %2.%3.%4 or later. You seem to be running MySQL version %5. + + + +@@ -21316,7 +22011,7 @@ + + + This cannot be un-done, so having a database backup would be a good idea. +- This cannot be un-done, so having a database backup would be a good idea. ++ This cannot be undone, so having a database backup would be a good idea. + + + +@@ -21324,68 +22019,116 @@ + + + Could not open tuner device +- Could not open tuner device ++ Could Not Open Tuner Device + + + + Bad connection to backend +- Bad connection to backend ++ Bad Connection to Backend + + + + SlideSettings + +- ++ + Slideshow + Slideshow + + +- ++ + Transition + Transition + + +- ++ + Effect to use between slides +- Effect to use between slides ++ Effect to Use Between Slides + + +- ++ + Slide Duration (ms) + Slide Duration (ms) + + +- ++ + The time that a slide is displayed (between transitions), in milliseconds. + The time that a slide is displayed (between transitions), in milliseconds. + + +- ++ + Transition Duration (ms) + Transition Duration (ms) + + +- ++ + The time that each transition lasts, in milliseconds. + The time that each transition lasts, in milliseconds. + + +- ++ ++ Status Delay (ms) ++ Status Delay (ms) ++ ++ ++ ++ The delay before showing the Loading/Playing status, in milliseconds. ++ The delay before showing the loading/playing status, in milliseconds. ++ ++ ++ + Use transitions when browsing +- Use transitions when browsing ++ Use Transitions When Browsing + + +- ++ + When cleared, transitions will only be used during a slideshow. + When cleared, transitions will only be used during a slideshow. + + + ++ StandardSettingDialog ++ ++ ++ Exit ? ++ Exit Settings? ++ ++ ++ ++ Save then Exit ++ Save and Exit ++ ++ ++ ++ Exit without saving changes ++ Exit Without Saving ++ ++ ++ ++ Cancel ++ Cancel ++ ++ ++ ++ Edit ++ Edit ++ ++ ++ ++ Delete ++ Delete ++ ++ ++ ++ Do you want to delete the '%1' entry? ++ Do you want to delete the '%1' entry? ++ ++ ++ + StartPrompter + + + WARNING: The backend is currently running. +- WARNING: The backend is currently running. ++ Warning: The backend is currently running. + + + +@@ -21395,7 +22138,7 @@ + + + Recording Status: RECORDING. +- Recording Status: RECORDING. ++ Recording Status: Recording + + + +@@ -21405,7 +22148,7 @@ + + + Recording Status: None. +- Recording Status: None. ++ Recording Status: None + + + +@@ -21426,15 +22169,15 @@ + + StartingChannel + +- ++ + Please add channels to this source +- Please add channels to this source ++ Please Add Channels to This Source + + + + StatusBox + +- ++ + %n (is) LiveTV and consume(s) %1 + + +@@ -21445,7 +22188,7 @@ + + + +- ++ + %n (is) Deleted and consume(s) %1 + + +@@ -21457,7 +22200,7 @@ + + + +- ++ + %n day(s) + + %n day +@@ -21568,7 +22311,7 @@ + + + Move to Default group +- Move to Default group ++ Move to Default Group + + + +@@ -21588,7 +22331,7 @@ + + + Mythfrontend version: %1 (%2) +- Mythfrontend version: %1 (%2) ++ mythfrontend version: %1 (%2) + + + +@@ -21633,7 +22376,7 @@ + + + WARNING: is mythfilldatabase running? +- WARNING: is mythfilldatabase running? ++ Warning: is mythfilldatabase running? + + + +@@ -21678,47 +22421,47 @@ + + + +- ++ + with lower priority + with lower priority + + +- ++ + marked as HDTV + marked as HDTV + + +- ++ + from source + from source + + +- ++ + Tuner Status shows the current information about the state of backend tuner cards + Tuner Status shows the current information about the state of backend tuner cards + + +- ++ + has an error + has an error + + +- ++ + is unavailable + is unavailable + + +- ++ + is asleep + is asleep + + +- ++ + is watching Live TV + is watching Live TV + + +- ++ + On %1 from %2.%3 + %4 + +@@ -21726,27 +22469,27 @@ + %4 + + +- ++ + No further details + No further details + + +- ++ + Job Queue shows any jobs currently in MythTV's Job Queue such as a commercial detection job. + Job Queue shows any jobs currently in MythTV's Job Queue such as a commercial detection job. + + +- ++ + %1 total, %2 used, %3 (or %4%) free. + %1 total, %2 used, %3 (or %4%) free. + + +- ++ + , using your %1 rate of %2 kb/s + , using your %1 rate of %2 kb/s + + +- ++ + %n hour(s) + + %n hour +@@ -21754,7 +22497,7 @@ + + + +- ++ + %n minute(s) + + %n minute +@@ -21762,178 +22505,182 @@ + + + +- ++ + %1 remaining + time + %1 remaining + + +- ++ + %1 and %2 remaining + time + %1 and %2 remaining + + +- ++ + Uptime + Uptime + + +- ++ + unknown + unknown uptime + unknown + + +- ++ + average + average rate + average + + +- ++ + maximum + maximum rate + maximum + + +- ++ + is recording + is recording + + +- ++ + on card + on card + + +- ++ + is not recording + is not recording + + +- ++ + Tuner %1 %2 %3 + Tuner %1 %2 %3 + + +- ++ + Log Entries shows any unread log entries from the system if you have logging enabled + Log Entries shows any unread log entries from the system if you have logging enabled + + +- ++ + No items found at priority level %1 or lower. + No items found at priority level %1 or lower. + + +- ++ + Use 1-8 to change priority level. + Use 1-8 to change priority level. + + +- ++ + Job: + Job: + + +- ++ + Status: + Status: + + +- ++ + Scheduled Run Time: + Scheduled Run Time: + + +- ++ + Job Queue is currently empty. + Job Queue is currently empty. + + +- ++ + Machine Status shows some operating system statistics of this machine + Machine Status shows some operating system statistics of this machine + + +- ++ + and the MythTV server + and the MythTV server + + +- ++ + System: + System: + + +- ++ + This machine: + This machine: + + +- +- ++ Hostname ++ Hostname ++ ++ ++ ++ + Load + Load + + +- +- +- ++ ++ ++ + unknown + unknown + + +- +- ++ ++ + failed + failed + + +- +- ++ ++ + RAM + RAM + + +- +- ++ ++ + Swap + Swap + + +- ++ + MythTV server +- MythTV server ++ MythTV Server + + +- ++ + Total Disk Space: + Total Disk Space: + + +- ++ + MythTV Drive #%1: + MythTV Drive #%1: + + +- ++ + Directories: + Directories: + + +- ++ + Directory: + Directory: + + +- ++ + The AutoExpire List shows all recordings which may be expired and the order of their expiration. Recordings at the top of the list will be expired first. + The AutoExpire List shows all recordings which may be expired and the order of their expiration. Recordings at the top of the list will be expired first. + + +- ++ + %n recording(s) consuming %1 (is) allowed to expire + + +@@ -21945,58 +22692,81 @@ + + + ++ StorageGroupDirSetting ++ ++ ++ Remove '%1' ++Directory From Storage Group? ++ Remove '%1' ++Directory from Storage Group? ++ ++ ++ + StorageGroupEditor + +- ++ ++ + Default + Default storage group + Default + + +- ++ + '%1' Storage Group Directories + '%1' Storage Group Directories + + +- ++ + Local '%1' Storage Group Directories + Local '%1' Storage Group Directories + + +- ++ ++ Delete '%1' Storage Group? ++ Delete '%1' Storage Group? ++ ++ ++ ++ Delete '%1' Storage Group? ++(from remote hosts) ++ Delete '%1' Storage Group? ++(from remote hosts) ++ ++ ++ ++ Delete '%1' Storage Group? ++(from all hosts) ++ Delete '%1' Storage Group? ++(from all hosts) ++ ++ + Add Storage Group Directory +- Add Storage Group Directory ++ Add Storage Group Directory + + +- +- + Enter directory name or press SELECT to enter text via the On Screen Keyboard +- Enter directory name or press SELECT to enter text via the On Screen Keyboard ++ Enter directory name or press SELECT to enter text via the On Screen Keyboard + + +- + Edit Storage Group Directory +- Edit Storage Group Directory ++ Edit Storage Group Directory + + +- + Remove '%1' + Directory From Storage Group? +- Remove '%1' ++ Remove '%1' + Directory From Storage Group? + + +- + Yes, remove directory +- Yes, remove directory ++ Yes, Remove Directory + + +- + No, Don't remove directory +- No, Don't remove directory ++ No, Keep Directory + + +- ++ + (Add New Directory) + (Add New Directory) + +@@ -22004,168 +22774,170 @@ + + StorageGroupListEditor + +- ++ + Storage Groups (directories for new recordings) + Storage Groups (directories for new recordings) + + +- ++ + Local Storage Groups (directories for new recordings) + Local Storage Groups (directories for new recordings) + + +- + Create New Storage Group +- Create New Storage Group ++ Create New Storage Group + + +- + Enter group name or press SELECT to enter text via the On Screen Keyboard +- Enter group name or press SELECT to enter text via the On Screen Keyboard ++ Enter group name or press SELECT to enter text via the On Screen Keyboard + + +- +- ++ + Default + Default storage group + Default + + +- + Delete '%1' Storage Group? +- Delete '%1' Storage Group? ++ Delete '%1' Storage Group? + + +- + Delete '%1' Storage Group? + (from remote hosts) +- Delete '%1' Storage Group? ++ Delete '%1' Storage Group? + (from remote hosts) + + +- + Delete '%1' Storage Group? + (from all hosts) +- Delete '%1' Storage Group? ++ Delete '%1' Storage Group? + (from all hosts) + + +- + Yes, delete group +- Yes, delete group ++ Yes, Delete Group + + +- + No, Don't delete group +- No, Don't delete group ++ No, Keep Group + + +- ++ + (Create default group) +- (Create default group) ++ (Create Default Group) + + +- +- ++ ++ + (Create %1 group) +- (Create %1 group) ++ (Create %1 Group) + + +- ++ + (Create new group) +- (Create new group) ++ (Create New Group) ++ ++ ++ ++ Enter the name of the new storage group ++ Enter group name: ++ ++ ++ ++ Storage Group Directories ++ Storage Group Directories + + + + TV + +- ++ + MythTV wants to record "%1" on %2 in %d seconds. Do you want to: + MythTV wants to record "%1" on %2 in %d seconds. Do you want to: + + +- ++ + Record and watch while it records +- Record and watch while it records ++ Record and Watch While It Records + + +- ++ + Let it record and go back to the Main Menu +- Let it record and go back to the Main Menu ++ Let It Record and Go Back to the Main Menu + + +- ++ + Let them record and go back to the Main Menu +- Let them record and go back to the Main Menu ++ Let Them Record and Go Back to the Main Menu + + +- ++ + Record it later, I want to watch TV +- Record it later, I want to watch TV ++ Record It Later, I Want to Watch TV + + +- ++ + Record them later, I want to watch TV +- Record them later, I want to watch TV ++ Record Them Later, I Want to Watch TV + + +- ++ + Don't let it record, I want to watch TV +- Don't let it record, I want to watch TV ++ Don't Let It Record, I Want to Watch TV + + +- ++ + Don't let them record, I want to watch TV +- Don't let them record, I want to watch TV ++ Don't Let Them Record, I Want to Watch TV + + +- ++ + %1 Settings + %1 Settings + + +- ++ + Last Program: %1 Doesn't Exist + Last Program: %1 Doesn't Exist + + +- ++ + End Of Recording +- End Of Recording ++ End of Recording + + +- +- +- ++ ++ ++ + Zoom Committed + Zoom Committed + + +- ++ + Zoom Ignored + Zoom Ignored + + +- +- +- +- ++ ++ ++ ++ + Jump Back + Jump Back + + +- +- ++ ++ + Skip Back + Skip Back + + +- ++ + Seek: + Seek: + + +- ++ + Sorry, PBP only supports %n video stream(s) + + Sorry, PBP only supports %n video stream +@@ -22173,7 +22945,7 @@ + + + +- ++ + Sorry, PIP only supports %n video stream(s) + + Sorry, PIP only supports %n video stream +@@ -22181,266 +22953,266 @@ + + + +- ++ + Forward + Forward + + +- +- +- ++ ++ ++ + Skip Ahead + Skip Ahead + + +- ++ + Rewind + Rewind + + +- +- +- +- ++ ++ ++ ++ + Jump Ahead + Jump Ahead + + +- ++ + Jump to Bookmark + Jump to Bookmark + + +- +- ++ ++ + Jump to Beginning + Jump to Beginning + + +- +- ++ ++ + Jump To + Jump To + + +- ++ + Creating PBP + Creating PBP + + +- +- ++ ++ + External Subtitles + External Subtitles + + +- +- ++ ++ + Are you sure you want to delete: + Are you sure you want to delete: + + +- ++ + Creating PIP + Creating PIP + + +- ++ + Cannot create PBP + Cannot create PBP + + +- ++ + Cannot create PIP + Cannot create PIP + + +- ++ + Stopping PIP + Stopping PIP + + +- ++ + Stopping PBP + Stopping PBP + + +- ++ + Stopping all PIPs +- Stopping all PIPs ++ Stopping All PIPs + + +- ++ + Stopping all PBPs +- Stopping all PBPs ++ Stopping All PBPs + + +- ++ + Too many views to switch +- Too many views to switch ++ Too Many Views to Switch + + +- +- ++ ++ + Paused + Paused + + +- ++ + Aux Paused + Aux Paused + + +- ++ + Speed 16X + Speed 16X + + +- ++ + Speed 8X + Speed 8X + + +- ++ + Speed 3X + Speed 3X + + +- ++ + Speed 2X + Speed 2X + + +- ++ + Speed 1/3X + Speed 1/3X + + +- ++ + Speed 1/8X + Speed 1/8X + + +- ++ + Speed 1/16X + Speed 1/16X + + +- ++ + Forward %1X + Forward %1X + + +- ++ + Rewind %1X + Rewind %1X + + +- ++ + Stopping Transcode + Stopping Transcode + + +- ++ + Transcoding + Transcoding + + +- ++ + Try Again + Try Again + + +- ++ + Jump Chapter + Jump Chapter + + +- ++ + Switch Angle + Switch Angle + + +- ++ + Skip + Skip + + +- ++ + TXT: + TXT: + + +- ++ + CC: + CC: + + +- ++ + Seek: + seek to location + Seek: + + +- +- ++ ++ + Position + Position + + +- ++ + Partial Lock + Partial Lock + + +- ++ + No Lock + No Lock + + +- ++ + Lock + Lock + + +- ++ + Signal %1% + Signal %1% + + +- ++ + S/N %1dB + S/N %1dB + + +- ++ + BE %1 + Bit Errors + BE %1 + + +- ++ + Rotor %1% + Rotor %1% + + +- ++ + You should have received a channel lock by now. You can continue to wait for a signal, or you can change the channel with %1 or %2, change video source (%3), inputs (%4), etc. + You should have received a channel lock by now. You can continue to wait for a signal, or you can change the channel with %1 or %2, change video source (%3), inputs (%4), etc. + + +- +- +- ++ ++ ++ + OK + OK + + +- +- +- +- +- ++ ++ ++ ++ ++ + + + %n minute(s) +@@ -22450,425 +23222,425 @@ + + + +- +- ++ ++ + DVD + DVD + + +- ++ + Menu + Menu + + +- ++ + Still Frame + Still Frame + + +- ++ + Title: %1 (%2) + Title: %1 (%2) + + +- ++ + Chapter: %1/%2 + Chapter: %1/%2 + + +- +- +- ++ ++ ++ + Adjust Volume + Adjust Volume + + +- +- ++ ++ + TV Player + TV Player + + +- ++ + Off + Sleep timer + Off + + +- ++ + 30m + Sleep timer + 30m + + +- ++ + 1h + Sleep timer + 1h + + +- ++ + 1h30m + Sleep timer + 1h30m + + +- ++ + 2h + Sleep timer + 2h + + +- ++ + MythTV wants to record these programs in %d seconds: + MythTV wants to record these programs in %d seconds: + + +- ++ + "%1" on %2 + "%1" on %2 + + +- ++ + Do you want to: + Do you want to: + + +- ++ + Can't start playback +- Can't start playback ++ Can't Start Playback + + +- ++ + %1 Committed + %1 Committed + + +- ++ + Bookmark Cleared + Bookmark Cleared + + +- ++ + Bookmark Saved + Bookmark Saved + + +- +- ++ ++ + Adjust Time Stretch + Adjust Time Stretch + + +- ++ + Upmixer On + Upmixer On + + +- ++ + Upmixer Off + Upmixer Off + + +- +- ++ ++ + Adjust Subtitle Delay + Adjust Subtitle Delay + + +- ++ + Subtitle Delay + Subtitle Delay + + +- ++ + Audio Sync + Audio Sync + + +- +- ++ ++ + Adjust Audio Sync + Adjust Audio Sync + + +- ++ + Mute Off + Mute Off + + +- ++ + Mute On + Mute On + + +- ++ + Left Channel Muted + Left Channel Muted + + +- ++ + Right Channel Muted + Right Channel Muted + + +- ++ + Sleep + Sleep + + +- ++ + MythTV was set to sleep after %1 minutes and will exit in %d seconds. + Do you wish to continue watching? + MythTV was set to sleep after %1 minutes and will exit in %d seconds. + Do you wish to continue watching? + + +- +- ++ ++ + Yes + Yes + + +- +- ++ ++ + No + No + + +- ++ + MythTV has been idle for %1 minutes and will exit in %d seconds. Are you still watching? + MythTV has been idle for %1 minutes and will exit in %d seconds. Are you still watching? + + +- ++ + PiP + Picture-in-Picture +- PiP ++ PIP + + +- ++ + PbP + Picture-by-Picture +- PbP ++ PBP + + +- ++ + Disabling %1 for recording +- Disabling %1 for recording ++ Disabling %1 for Recording + + +- +- ++ ++ + Record + Record + + +- ++ + Cancel Record + Cancel Record + + +- ++ + Active Changed + Active Changed + + +- +- +- ++ ++ ++ + Edit Cut Points + Edit Cut Points + + +- ++ + Exit Recording Editor + Exit Recording Editor + + +- +- ++ ++ + Save Cuts and Exit + Save Cuts and Exit + + +- +- ++ ++ + Exit Without Saving + Exit Without Saving + + +- +- ++ ++ + Save Cuts + Save Cuts + + +- +- ++ ++ + Undo Changes + Undo Changes + + +- ++ + This program is currently being edited + This program is currently being edited + + +- ++ + Continue Editing + Continue Editing + + +- ++ + Do not edit +- Do not edit ++ Do Not Edit + + +- ++ + UNKNOWN%1 + Synthesized callsign + UNKNOWN%1 + + +- ++ + Zoom Mode ON +- Zoom Mode ON ++ Zoom Mode On + + +- ++ + Move Previous Cut End Here + Move Previous Cut End Here + + +- ++ + Move Start of Cut Here + Move Start of Cut Here + + +- ++ + Move Next Cut Start Here + Move Next Cut Start Here + + +- ++ + Move End of Cut Here + Move End of Cut Here + + +- ++ + Cut to Beginning + Cut to Beginning + + +- ++ + Cut to End + Cut to End + + +- ++ + Delete This Cut + Delete This Cut + + +- ++ + Join Surrounding Cuts + Join Surrounding Cuts + + +- ++ + Add New Cut + Add New Cut + + +- ++ + Undo - %1 + %1 is the undo message + Undo - %1 + + +- ++ + Redo - %1 + %1 is the redo message + Redo - %1 + + +- ++ + Clear Cuts + Clear Cuts + + +- ++ + Reverse Cuts + Reverse Cuts + + +- ++ + Load Detected Commercials + Load Detected Commercials + + +- ++ + 0.5x + 0.5x + + +- ++ + 0.9x + 0.9x + + +- ++ + 1.0x + 1.0x + + +- ++ + 1.1x + 1.1x + + +- ++ + 1.2x + 1.2x + + +- ++ + 1.3x + 1.3x + + +- ++ + 1.4x + 1.4x + + +- ++ + 1.5x + 1.5x + + +- ++ + Disable Subtitles + Disable Subtitles + + +- ++ + Enable Subtitles + Enable Subtitles + + +- ++ + Disable Forced Subtitles + Disable Forced Subtitles + + +- ++ + Enable Forced Subtitles + Enable Forced Subtitles + + +- ++ + Close PIP(s) + + Close PIP +@@ -22876,7 +23648,7 @@ + + + +- ++ + Close PBP(s) + + Close PBP +@@ -22884,701 +23656,701 @@ + + + +- ++ + Playback Data + Playback Data + + +- ++ + DVD Root Menu + DVD Root Menu + + +- ++ + DVD Title Menu + DVD Title Menu + + +- ++ + DVD Chapter Menu + DVD Chapter Menu + + +- +- ++ ++ + Playback Compact Menu + Playback Compact Menu + + +- ++ + Schedule + Schedule + + +- ++ + Program Guide + Program Guide + + +- ++ + Edit Channel + Edit Channel + + +- ++ + Edit Recording + Edit Recording + + +- ++ + Jump to Program + Jump to Program + + +- +- ++ ++ + Recorded Program + Recorded Program + + +- ++ + Previous Channel + Previous Channel + + +- ++ + Toggle Teletext Menu + Toggle Teletext Menu + + +- ++ + Manual Zoom Mode + Manual Zoom Mode + + +- ++ + Channel Groups + Channel Groups + + +- ++ + All Channels + All Channels + + +- ++ + Stop Transcoding + Stop Transcoding + + +- ++ + Begin Transcoding + Begin Transcoding + + +- ++ + Searching +- Searching ++ Searching... + + +- +- ++ ++ + Volume + Volume + + +- ++ + Time Stretch + Time Stretch + + +- +- ++ ++ + Edit + Edit + + +- ++ + Default + Default + + +- ++ + Autodetect + Autodetect + + +- ++ + High Quality + High Quality + + +- ++ + Medium Quality + Medium Quality + + +- ++ + Low Quality + Low Quality + + +- ++ + Commercial Auto-Skip +- Commercial Auto-Skip ++ Commercial Auto-skip + + +- ++ + Turn Auto-Expire OFF +- Turn Auto-Expire OFF ++ Turn Auto-expire Off + + +- ++ + Turn Auto-Expire ON +- Turn Auto-Expire ON ++ Turn Auto-expire On + + +- ++ + Upcoming Recordings + Upcoming Recordings + + +- ++ + Program Finder + Program Finder + + +- ++ + Edit Recording Schedule + Edit Recording Schedule + + +- ++ + Chapter + Chapter + + +- ++ + Sorry, cannot mix PBP and PIP views +- Sorry, cannot mix PBP and PIP views ++ Cannot Mix PBP and PIP Views + + +- +- ++ ++ + Playback Menu + Playback Menu + + +- ++ + Audio + Audio + + +- +- ++ ++ + Video + Video + + +- ++ + Visualisation Off + Visualisation Off + + +- ++ + TV + TV + + +- +- ++ ++ + Adjust Subtitle Zoom + Adjust Subtitle Zoom + + +- ++ + Subtitle Zoom + Subtitle Zoom + + +- ++ + Advanced + Advanced + + +- ++ + Deinterlacer + Deinterlacer + + +- ++ + Subtitles + Subtitles + + +- ++ + Text Subtitles + Text Subtitles + + +- ++ + Select Teletext CC + Select Teletext CC + + +- ++ + Navigate + Navigate + + +- ++ + Top menu +- Top menu ++ Top Menu + + +- ++ + Popup menu +- Popup menu ++ Popup Menu + + +- ++ + Angle + Angle + + +- ++ + Title + Title + + +- ++ + Source + Source + + +- ++ + Jobs + Jobs + + +- ++ + Playback + Playback + + +- ++ + Play + Play + + +- ++ + Pause + Pause + + +- ++ + Picture-in-Picture + Picture-in-Picture + + +- ++ + Toggle Browse Mode + Toggle Browse Mode + + +- ++ + Cancel Playlist + Cancel Playlist + + +- ++ + Open Live TV PIP + Open Live TV PIP + + +- ++ + Open Live TV PBP + Open Live TV PBP + + +- ++ + Open Recording PIP + Open Recording PIP + + +- ++ + Open Recording PBP + Open Recording PBP + + +- ++ + Change Active Window + Change Active Window + + +- ++ + Swap Windows + Swap Windows + + +- ++ + Switch to PIP + Switch to PIP + + +- ++ + Switch to PBP + Switch to PBP + + +- ++ + No, keep it +- No, keep it ++ No, Keep + + +- ++ + Switch Input + Switch Input + + +- ++ + Switch Source + Switch Source + + +- ++ + Change Aspect Ratio + Change Aspect Ratio + + +- ++ + Adjust Fill + Adjust Fill + + +- +- ++ ++ + Auto Detect + Auto Detect + + +- ++ + Adjust Picture + Adjust Picture + + +- ++ + Switch Title + Switch Title + + +- ++ + Visualisation + Original string is in British English + Visualization + + +- ++ + Disable Audio Upmixer + Disable Audio Upmixer + + +- +- ++ ++ + None + None + + +- ++ + 3D + 3D + + +- ++ + Disable Night Mode + Disable Night Mode + + +- ++ + Enable Night Mode + Enable Night Mode + + +- ++ + Side by Side + Side by Side + + +- ++ + Discard Side by Side + Discard Side by Side + + +- ++ + Top and Bottom + Top and Bottom + + +- ++ + Discard Top and Bottom + Discard Top and Bottom + + +- ++ + Disable External Subtitles + Disable External Subtitles + + +- ++ + Enable External Subtitles + Enable External Subtitles + + +- ++ + Toggle + Toggle + + +- ++ + Adjust + Adjust + + +- ++ + (I) + Interlaced (Normal) + (I) + + +- ++ + (i) + Interlaced (Reversed) + (i) + + +- ++ + (P) + Progressive + (P) + + +- ++ + MythTV is already using all available inputs for the channel you selected. If you want to watch an in-progress recording, select one from the playback menu. If you want to watch Live TV, cancel one of the in-progress recordings from the delete menu. +- MythTV is already using all available inputs for the channel you selected. If you want to watch an in-progress recording, select one from the playback menu. If you want to watch Live TV, cancel one of the in-progress recordings from the delete menu. ++ MythTV is already using all available inputs for the channel you selected. If you want to watch an in-progress recording, select one from the playback menu. If you want to watch Live TV, cancel one of the in-progress recordings from the delete menu. + + +- ++ + Video Scan + Video Scan + + +- ++ + Detect + Detect + + +- ++ + Progressive + Progressive + + +- ++ + Interlaced (Normal) + Interlaced (Normal) + + +- ++ + Interlaced (Reversed) + Interlaced (Reversed) + + +- +- +- ++ ++ ++ + Sleep + Sleep + + +- ++ + Sleep Off + Sleep Off + + +- ++ + Select Audio Track + Select Audio Track + + +- ++ + Select Subtitle + Select Subtitle + + +- ++ + Select VBI CC + Select VBI CC + + +- ++ + Select ATSC CC + Select ATSC CC + + +- ++ + Edit Cut Points (Compact) + Edit Cut Points (Compact) + + +- ++ + Cut List Options + Cut List Options + + +- ++ + Auto-Expire OFF +- Auto-Expire OFF ++ Auto-expire Off + + +- ++ + Auto-Expire ON +- Auto-Expire ON ++ Auto-expire On + + +- ++ + Error: MythTV is using all inputs, but there are no active recordings? +- Error: MythTV is using all inputs, but there are no active recordings? ++ ERROR: MythTV is using all inputs, but there are no active recordings? + + +- ++ + MythTV has no capture cards defined. Please run the mythtv-setup program. + MythTV has no capture cards defined. Please run the mythtv-setup program. + + +- ++ + Skip Back Not Allowed + Skip Back Not Allowed + + +- ++ + Previous Title + Previous Title + + +- ++ + Skip Still Frame + Skip Still Frame + + +- ++ + Next Title + Next Title + + +- ++ + Live TV + Live TV + + +- ++ + this DVD + this DVD + + +- ++ + this Video + this Video + + +- ++ + this recording +- this recording ++ this Recording + + +- ++ + You are exiting %1 +- You are exiting %1 ++ You Are Exiting %1 + + +- ++ + Save this position and go to the menu +- Save this position and go to the menu ++ Save and Exit + + +- ++ + Do not save, just exit to the menu +- Do not save, just exit to the menu ++ Exit Without Saving + + +- ++ + Exit %1 + Exit %1 + + +- ++ + Delete this recording + Delete this recording + + +- ++ + Keep watching + Keep watching + + +- ++ + Cannot delete program +- Cannot delete program ++ Cannot delete + + +- ++ + because it is not a recording. + because it is not a recording. + + +- ++ + because it is in use by + because it is in use by + + +- ++ + Delete it, but allow it to re-record +- Delete it, but allow it to re-record ++ Delete Recording, and Allow Re-record + + +- ++ + Delete it +- Delete it ++ Delete Recording + + +- ++ + Save it so I can watch it again +- Save it so I can watch it again ++ Keep Recording + + +- ++ + Yes, and allow re-record +- Yes, and allow re-record ++ Yes, Delete and Allow Re-record + + +- ++ + Yes, delete it +- Yes, delete it ++ Yes, Delete + + + + TVRec + +- ++ + Good signal seen after %1 ms + Good signal seen after %1 ms + + +- +- ++ ++ + See 'Tuning timeout' in mythtv-setup for this input. + See 'Tuning timeout' in mythtv-setup for this input. + + +- ++ + Taking more than %1 ms to get a lock. + Taking more than %1 ms to get a lock. + +@@ -23586,133 +24358,133 @@ + + ThemeChooser + +- ++ + Theme Chooser Menu + Theme Chooser Menu + + + + Loading Installed Themes +- Loading Installed Themes ++ Loading Installed Themes... + + +- +- ++ ++ + Unable to create '%1' + Unable to create '%1' + + +- ++ + Refreshing Downloadable Themes Information +- Refreshing Downloadable Themes Information ++ Refreshing Downloadable Themes Information... + + +- ++ + Unable to remove '%1' + Unable to remove '%1' + + +- ++ + Extracting Downloadable Themes Information +- Extracting Downloadable Themes Information ++ Extracting Downloadable Themes Information... + + +- ++ + Failed to download '%1' +- Failed to download '%1' ++ Failed to Download '%1' + + +- ++ + Failed to unzip '%1' to '%2' +- Failed to unzip '%1' to '%2' ++ Failed to Unzip '%1' to '%2' + + +- ++ + Loading Downloadable Themes +- Loading Downloadable Themes ++ Loading Downloadable Themes... + + +- ++ + Error creating test file, %1 themes directory is not writable. + Error creating test file, %1 themes directory is not writable. + + +- ++ + Hide Fullscreen Preview + Hide Fullscreen Preview + + +- ++ + Show Fullscreen Preview + Show Fullscreen Preview + + +- ++ + Refresh Downloadable Themes + Refresh Downloadable Themes + + +- ++ + Select Theme + Select Theme + + +- ++ + Delete Theme + Delete Theme + + +- ++ + Disable Theme Update Notifications + Disable Theme Update Notifications + + +- ++ + Enable Theme Update Notifications + Enable Theme Update Notifications + + +- ++ + Unable to install theme, %1 themes directory is not writable. + Unable to install theme, %1 themes directory is not writable. + + +- ++ + Downloading %1 Theme + Downloading %1 Theme + + +- ++ + Copying %1 Theme Package + Copying %1 Theme Package + + +- ++ + ERROR downloading theme package on master backend. +- ERROR downloading theme package on master backend. ++ ERROR: Downloading theme package on master backend. + + +- ++ + Installing %1 Theme + Installing %1 Theme + + +- ++ + ERROR downloading theme package from master backend. +- ERROR downloading theme package from master backend. ++ ERROR: Downloading theme package from master backend. + + +- ++ + Error, no theme selected. +- Error, no theme selected. ++ ERROR: No theme selected. + + +- ++ + Error, unable to find current theme. +- Error, unable to find current theme. ++ ERROR: Unable to find current theme. + + +- ++ + %1 is not a user-installed theme and can not be deleted. + %1 is not a user-installed theme and can not be deleted. + +@@ -23976,7 +24748,7 @@ + + + To manually schedule a recording, enter a title (optional). Then set the channel, date, start time, and duration of your recording. Note that this recording will not have any listings data or other information provided by an EPG. +- To manually schedule a recording, enter a title (optional). Then set the channel, date, start time, and duration of your recording. Note that this recording will not have any listings data or other information provided by an EPG. ++ To manually schedule a recording, enter a title (optional). Then set the channel, date, start time, and duration of your recording. Note that this recording will not have any listings data or other information provided by an EPG. + + + +@@ -24130,7 +24902,7 @@ + + + Below you will find the program details of the selected item. There are two available screens. You can toggle between them by pressing INFO. +- Below you will find the program details of the selected item. There are two available screens. You can toggle between them by pressing INFO. ++ Below you will find the program details of the selected item. There are two available screens. You can toggle between them by pressing INFO. + + + +@@ -24317,7 +25089,7 @@ + + + Allow Recordings to Auto-Expire +- Allow Recordings to Auto-Expire ++ Allow Recordings to Auto-expire + + + +@@ -24397,7 +25169,7 @@ + + + Type your tweet below. Select "Send" to submit it. +- Type your tweet below. Select "Send" to submit it. ++ Type your tweet below. Select "Send" to submit it. + + + +@@ -24452,7 +25224,7 @@ + + + WARNING: There are conflicting scheduled recordings! +- WARNING: There are conflicting scheduled recordings! ++ Warning: There are conflicting scheduled recordings! + + + +@@ -24604,7 +25376,7 @@ + + + Graphite is a theme emphasizing MythUI interface improvements such as alpha, animation, unique layouts, and user-supplied backdrop content. It is extremely memory-hungry. +- Graphite is a theme emphasizing MythUI interface improvements such as alpha, animation, unique layouts, and user-supplied backdrop content. It is extremely memory-hungry. ++ Graphite is a theme emphasizing MythUI interface improvements such as alpha, animation, unique layouts, and user-supplied backdrop content. It is extremely memory-hungry. + + + +@@ -25307,7 +26079,7 @@ + + + Press Up/Down from letter list, to navigate to another list. Press Left/Right from Show or Episode list to navigate to another list. +- Press Up/Down from letter list, to navigate to another list. Press Left/Right from Show or Episode list to navigate to another list. ++ Press Up/Down from letter list, to navigate to another list. Press Left/Right from Show or Episode list to navigate to another list. + + + +@@ -25332,7 +26104,7 @@ + + + No videos in library, or no files found. If you have configured a video directory, press MENU and select "Scan for Changes." +- No videos in library, or no files found. If you have configured a video directory, press MENU and select "Scan for Changes." ++ No videos in library, or no files found. If you have configured a video directory, press MENU and select "Scan for Changes." + + + +@@ -25376,7 +26148,7 @@ + + + Designed to show off some different element arrangements. Reminder: On Watch Recordings screen [Rew] and [FF] can be used to change the Rec. Group. +- Designed to show off some different element arrangements. Reminder: On Watch Recordings screen [Rew] and [FF] can be used to change the Rec. Group. ++ Designed to show off some different element arrangements. Reminder: On Watch Recordings screen [Rew] and [FF] can be used to change the Rec. Group. + + + +@@ -25627,7 +26399,7 @@ + + + Protocol-Version: %1 +- Protocol-Version: %1 ++ Protocol Version: %1 + + + +@@ -25860,7 +26632,7 @@ + + + Move the selected corner of the preview image to the corner of the TV screen. Press SELECT to edit the other corner. Press MENU for options and ESC to quit. +- Move the selected corner of the preview image to the corner of the TV screen. Press SELECT to edit the other corner. Press MENU for options and ESC to quit. ++ Move the selected corner of the preview image to the corner of the TV screen. Press SELECT to edit the other corner. Press MENU for options and ESC to quit. + + + +@@ -26303,7 +27075,7 @@ + + + Ok +- Ok ++ OK + + + +@@ -26423,7 +27195,7 @@ + + + PCM-BluRay +- PCM-BluRay ++ PCM-Blu-ray + + + +@@ -26618,7 +27390,7 @@ + + + To create a custom recording rule, either select an existing rule, or create a new rule by typing in a name. Then select a rule type and hit enter. The SQL code will be transferred below, and you can edit it and insert your own program information. Finally, you can test, immediately activate, store, or cancel your rule. +- To create a custom recording rule, either select an existing rule, or create a new rule by typing in a name. Then select a rule type and hit enter. The SQL code will be transferred below, and you can edit it and insert your own program information. Finally, you can test, immediately activate, store, or cancel your rule. ++ To create a custom recording rule, either select an existing rule, or create a new rule by typing in a name. Then select a rule type and hit enter. The SQL code will be transferred below, and you can edit it and insert your own program information. Finally, you can test, immediately activate, store, or cancel your rule. + + + +@@ -26902,7 +27674,7 @@ + + + Let's set up your DVR! On the next few screens, we will configure your system to play back audio and video, optimize your color and contrast, and make sure we are taking advantage of all of your hardware. Press next to begin! +- Let's set up your DVR! On the next few screens, we will configure your system to play back audio and video, optimize your color and contrast, and make sure we are taking advantage of all of your hardware. Press next to begin! ++ Let's set up your DVR! On the next few screens, we will configure your system to play back audio and video, optimize your color and contrast, and make sure we are taking advantage of all of your hardware. Press next to begin! + + + +@@ -27454,7 +28226,7 @@ + + + Designed to show off some different element arrangements. Tested at 1280x720 and with Français. Reminder: On Watch Recordings screen [Rew] and [FF] can be used to change the Rec. Group. +- Designed to show off some different element arrangements. Tested at 1280x720 and with Français. Reminder: On Watch Recordings screen [Rew] and [FF] can be used to change the Rec. Group. ++ Designed to show off some different element arrangements. Tested at 1280x720 and with Français. Reminder: On Watch Recordings screen [Rew] and [FF] can be used to change the Rec. Group. + + + +@@ -28434,7 +29206,7 @@ + + + No videos in library, or no files found. If you have configured a video directory, press "M" (or the MENU key) and select "Scan for Changes." +- No videos in library, or no files found. If you have configured a video directory, press "M" (or the MENU key) and select "Scan for Changes." ++ No videos in library, or no files found. If you have configured a video directory, press "M" (or the MENU key) and select "Scan for Changes." + + + +@@ -28564,7 +29336,7 @@ + + + Post-Processing Options +- Post-Processing Options ++ Post Processing Options + + + +@@ -28851,9 +29623,9 @@ + On this screen, you can add new extensions to be recognized by the Video Plugin. If a scan does not add your files, create a new extension below by clicking the "New" button. + + If you select "Use Default Player," the player command set for the extension will be ignored. "Ignore This File Type" prevents the items from appearing in a scan. +- On this screen, you can add new extensions to be recognized by the Video Plugin. If a scan does not add your files, create a new extension below by clicking the "New" button. ++ On this screen, you can add new extensions to be recognized by the Video Plugin. If a scan does not add your files, create a new extension below by clicking the "New" button. + +-If you select "Use Default Player," the player command set for the extension will be ignored. "Ignore This File Type" prevents the items from appearing in a scan. ++If you select "Use Default Player," the player command set for the extension will be ignored. "Ignore This File Type" prevents the items from appearing in a scan. + + + +@@ -29298,7 +30070,7 @@ + + + Move the selected arrow to the corner of the TV screen. Press SELECT to edit the other arrow. Press MENU for options and ESC to quit. +- Move the selected arrow to the corner of the TV screen. Press SELECT to edit the other arrow. Press MENU for options and ESC to quit. ++ Move the selected arrow to the corner of the TV screen. Press SELECT to edit the other arrow. Press MENU for options and ESC to quit. + + + +@@ -29674,12 +30446,12 @@ + + + Arclight is a sleek theme meant for widescreen HD displays. It is high contrast and uses shapes and an attractive layout to convey information simply and consistently. +- Arclight is a sleek theme meant for widescreen HD displays. It is high contrast and uses shapes and an attractive layout to convey information simply and consistently. ++ Arclight is a sleek theme meant for widescreen HD displays. It is high contrast and uses shapes and an attractive layout to convey information simply and consistently. + + + + Childish is the first MythTV theme designed specifically with children in mind. It was the winner of MythTV's v0.23 theming contest. +- Childish is the first MythTV theme designed specifically with children in mind. It was the winner of MythTV's v0.23 theming contest. ++ Childish is the first MythTV theme designed specifically with children in mind. It was the winner of MythTV's v0.23 theming contest. + + + +@@ -29699,12 +30471,12 @@ + + + A blue theme. Originally designed before the MythUI rewrite, MythCenter has been updated to take advantage of the new UI library while still maintaining the look and feel that long-time MythTV users are used to. +- A blue theme. Originally designed before the MythUI rewrite, MythCenter has been updated to take advantage of the new UI library while still maintaining the look and feel that long-time MythTV users are used to. ++ A blue theme. Originally designed before the MythUI rewrite, MythCenter has been updated to take advantage of the new UI library while still maintaining the look and feel that long-time MythTV users are used to. + + + + This was adapted from the Jeroen Brosens' MythCenter theme. The fonts have been changed to freely redistributable ones and layout changes have been made to make this theme look good on 1280x720 and 1920x1080 screens with a 1:1 pixel aspect ratio. +- This was adapted from the Jeroen Brosens' MythCenter theme. The fonts have been changed to freely redistributable ones and layout changes have been made to make this theme look good on 1280x720 and 1920x1080 screens with a 1:1 pixel aspect ratio. ++ This was adapted from the Jeroen Brosens' MythCenter theme. The fonts have been changed to freely redistributable ones and layout changes have been made to make this theme look good on 1280x720 and 1920x1080 screens with a 1:1 pixel aspect ratio. + + + +@@ -29954,7 +30726,7 @@ + + ThemeUpdateChecker + +- ++ + Version %1 of the %2 theme is now available in the Theme Chooser. The currently installed version is %3. + Version %1 of the %2 theme is now available in the Theme Chooser. The currently installed version is %3. + +@@ -29991,12 +30763,12 @@ + + + Exif Date (oldest first) +- Exif Date (oldest first) ++ EXIF Date (oldest first) + + + + Reverse Exif Date (newest first) +- Reverse Exif Date (newest first) ++ Reverse EXIF Date (newest first) + + + +@@ -30046,12 +30818,23 @@ + Date Format + + +- ++ + Date format of thumbnail captions. Other places use the system date format. Sample shows 3rd May 2002. + Date format of thumbnail captions. Other places use the system date format. Sample shows 3rd May 2002. + + + ++ Transcode ++ ++ Autodetect from %1 ++ Autodetect from %1 ++ ++ ++ Completed ++ Completed ++ ++ ++ + Transition + + +@@ -30087,45 +30870,46 @@ + + TransportList + +- + New Transport +- New Transport ++ New Transport + + + + TransportListEditor + +- ++ + Multiplex Editor + Multiplex Editor + + +- ++ ++ New Transport ++ New Transport ++ ++ ++ + Are you sure you would like to delete this transport? + Are you sure you would like to delete this transport? + + +- + Yes, delete the transport +- Yes, delete the transport ++ Yes, Delete Transport + + +- + No, don't +- No, don't ++ No, Keep Transport + + +- ++ + Transport Menu + Transport Menu + + +- + Edit... +- Edit... ++ Edit... + + +- ++ + Delete... + Delete... + +@@ -30133,8 +30917,8 @@ + + UPNPScanner + +- +- ++ ++ + Media Servers + Media Servers + +@@ -30230,89 +31014,89 @@ + + V4L2encGroup + +- ++ + Probed info +- Probed info ++ Probed Info + + +- ++ + Failed to open +- Failed to open ++ Failed to Open + + +- ++ + Failed to probe +- Failed to probe ++ Failed to Probe + + + + V4LConfigurationGroup + +- ++ + Probed info +- Probed info ++ Probed Info + + +- ++ + Failed to open +- Failed to open ++ Failed to Open + + +- ++ + Failed to probe +- Failed to probe ++ Failed to Probe + + + + VBoxChannelFetcher + +- ++ + Downloading Channel List + Downloading Channel List + + +- ++ + Downloading Channel List Failed + Downloading Channel List Failed + + +- ++ + Adding Channels + Adding Channels + + +- ++ + Channel #%1 : %2 + %1 is the channel number, %2 is the channel name + Channel #%1 : %2 + + +- ++ + Ignoring Encrypted %1 + Ignoring Encrypted %1 + + +- ++ + Ignoring Radio %1 + Ignoring Radio %1 + + +- ++ + Ignoring Bad Transmission Type %1 + Ignoring Bad Transmission Type %1 + + +- ++ + Adding %1 + Adding %1 + + +- ++ + Updating %1 + Updating %1 + + +- ++ + Done + Done + +@@ -30320,35 +31104,34 @@ + + VBoxConfigurationGroup + +- ++ + Description + Description + + +- + Recording Options +- Recording Options ++ Recording Options + + + + VBoxDeviceID + +- ++ + Device ID + Device ID + + +- ++ + Device ID of VBox device +- Device ID of VBox device ++ Device ID of VBox Device + + + + VBoxDeviceIDList + +- +- +- ++ ++ ++ + Manually Enter IP Address + Manually Enter IP Address + +@@ -30449,7 +31232,7 @@ + + + Play With Trailers +- Play With Trailers ++ Play with Trailers + + + +@@ -30464,7 +31247,7 @@ + + + Scan For Changes +- Scan For Changes ++ Scan for Changes + + + +@@ -30490,12 +31273,12 @@ + + + Failed to retrieve image(s) +- Failed to retrieve image(s) ++ Failed to Retrieve Image(s) + + + + Check logs +- Check logs ++ Check Logs + + + +@@ -30521,12 +31304,12 @@ + + + Retrieved details for %1 +- Retrieved details for %1 ++ Retrieved Details for %1 + + + + Failed to retrieve details for %1 +- Failed to retrieve details for %1 ++ Failed to Retrieve Details for %1 + + + +@@ -30706,19 +31489,19 @@ + + + Fetching details for %1 +- Fetching details for %1 ++ Fetching Details for %1 + + + + Are you sure you want to permanently delete: + %1 +- Are you sure you want to permanently delete: ++ Are you sure you want to delete: + %1 + + + + Failed to delete file +- Failed to delete file ++ Failed to delete file. + + + +@@ -30901,7 +31684,7 @@ + + + Directories that hold videos +- Directories that hold videos ++ Directories That Hold Videos + + + +@@ -30911,7 +31694,7 @@ + + + Directory that holds movie posters +- Directory that holds movie posters ++ Directory That Holds Movie Posters + + + +@@ -30925,37 +31708,37 @@ + + + Directory that holds movie screenshots +- Directory that holds movie screenshots ++ Directory That Holds Movie Screenshots + + + + Directory that holds movie/TV Banners +- Directory that holds movie/TV Banners ++ Directory That Holds Movie/TV Banners + + + + Directory that holds movie fanart +- Directory that holds movie fanart ++ Directory That Holds Movie Fanart + + + + Directory that holds movie trailers +- Directory that holds movie trailers ++ Directory That Holds Movie Trailers + + + + On DVD insertion +- On DVD insertion ++ On DVD Insertion + + + + Display mythdvd menu +- Display MythDVD menu ++ Display MythDVD Menu + + + + Do nothing +- Do nothing ++ Do Nothing + + + +@@ -30970,7 +31753,7 @@ + + + Video Tree remembers last selected position +- Video Tree remembers last selected position ++ Video Tree Remembers Last Selected Position + + + +@@ -30978,58 +31761,62 @@ + If set, the current position in the Video Tree is persistent. + + +- ++ + Enable automatic Parental Level from rating +- Enable automatic Parental Level from rating ++ Enable Automatic Parental Level from Rating + + +- ++ + If enabled, searches will automatically set the Parental Level to the one matching the rating below. + If enabled, searches will automatically set the Parental Level to the one matching the rating below. + + +- ++ + G + PL 1 default search string. + G + + +- ++ + PG + PL 2 default search string. + PG + + +- ++ + PG-13 + PL3 default search string. + PG-13 + + +- ++ + R:NC-17 + PL4 default search string. + R:NC-17 + + +- ++ + Level %1 + Level %1 + + +- ++ + Ratings containing these strings (separated by :) will be assigned to Parental Level %1. + Ratings containing these strings (separated by :) will be assigned to Parental Level %1. + + +- ++ ++ General Settings ++ General Settings ++ ++ ++ + Parental Control Settings + Parental Control Settings + + +- + General Settings (%1/%2) +- General Settings (%1/%2) ++ General Settings (%1/%2) + + + +@@ -31057,118 +31844,117 @@ + + VideoModeSettings + +- ++ + Separate video modes for GUI and TV playback +- Separate video modes for GUI and TV playback ++ Separate Video Modes for GUI and TV Playback + + +- ++ + Switch X Window video modes for TV. Requires "xrandr" support. + Switch X Window video modes for TV. Requires "xrandr" support. + + +- ++ + In X + Video mode width + In X + + +- ++ + Horizontal resolution of video which needs a special output resolution. + Horizontal resolution of video which needs a special output resolution. + + +- ++ + In Y + Video mode height + In Y + + +- ++ + Vertical resolution of video which needs a special output resolution. + Vertical resolution of video which needs a special output resolution. + + +- ++ + GUI + GUI + + +- ++ + Resolution of screen when not watching a video. + Resolution of screen when not watching a video. + + +- ++ + Default screen resolution when watching a video. + Default screen resolution when watching a video. + + +- ++ + Screen resolution when watching a video at a specific resolution. + Screen resolution when watching a video at a specific resolution. + + +- ++ + Video output +- Video output ++ Video Output + + +- ++ + Output + Output + + +- ++ + Default refresh rate when watching a video. Leave at "Auto" to automatically use the best available + Default refresh rate when watching a video. Leave at "Auto" to automatically use the best available + + +- ++ + Refresh rate when watching a video at a specific resolution. Leave at "Auto" to automatically use the best available + Refresh rate when watching a video at a specific resolution. Leave at "Auto" to automatically use the best available + + +- ++ + Rate + Rate + + +- ++ + Aspect ratio when watching a video. Leave at "%1" to use ratio reported by the monitor. Set to 16:9 or 4:3 to force a specific aspect ratio. + Aspect ratio when watching a video. Leave at "%1" to use ratio reported by the monitor. Set to 16:9 or 4:3 to force a specific aspect ratio. + + +- ++ + Aspect ratio when watching a video at a specific resolution. Leave at "%1" to use ratio reported by the monitor. Set to 16:9 or 4:3 to force a specific aspect ratio. + Aspect ratio when watching a video at a specific resolution. Leave at "%1" to use ratio reported by the monitor. Set to 16:9 or 4:3 to force a specific aspect ratio. + + +- ++ + Aspect + Aspect + + +- +- ++ ++ + Default + Default + + +- + Video Mode Settings +- Video Mode Settings ++ Video Mode Settings + + +- ++ + Overrides for specific video sizes +- Overrides for specific video sizes ++ Overrides for Specific Video Sizes + + + + VideoOutWindow + +- ++ + Zoom %1x%2 @ (%3,%4) + Zoom %1x%2 @ (%3,%4) + +@@ -31194,17 +31980,17 @@ + + + Searching for video files +- Searching for video files ++ Searching for Video Files... + + + + Verifying video files +- Verifying video files ++ Verifying Video Files... + + + + Updating video database +- Updating video database ++ Updating Video Database... + + + +@@ -31212,17 +31998,17 @@ + + + Select from one of the preconfigured playback profiles. When satisfied, you can test Standard Definition and High Definition playback with the selected profile before moving on. +- Select from one of the preconfigured playback profiles. When satisfied, you can test Standard Definition and High Definition playback with the selected profile before moving on. ++ Select from one of the preconfigured playback profiles. When satisfied, you can test Standard Definition and High Definition playback with the selected profile before moving on. + + + + Test your playback settings with Standard Definition content. (480p) +- Test your playback settings with Standard Definition content. (480p) ++ Test your playback settings with Standard Definition (480p) content. + + + + Test your playback settings with High Definition content (1080p). +- Test your playback settings with High Definition content (1080p). ++ Test your playback settings with High Definition (1080p) content. + + + +@@ -31275,56 +32061,53 @@ + + VideoSourceEditor + +- ++ + Video sources +- Video sources ++ Video Sources ++ ++ ++ ++ New video source ++ New Video Source + + +- + Video Source Menu +- Video Source Menu ++ Video Source Menu + + +- + Edit... +- Edit... ++ Edit... + + +- + Delete... +- Delete... ++ Delete... + + +- ++ + Are you sure you want to delete ALL video sources? + Are you sure you want to delete ALL video sources? + + +- + Yes, delete video sources +- Yes, delete video sources ++ Yes, Delete Video Sources + + +- +- + No, don't +- No, don't ++ No, Keep + + +- + Are you sure you want to delete this video source? +- Are you sure you want to delete this video source? ++ Are you sure you want to delete this video source? + + +- + Yes, delete video source +- Yes, delete video source ++ Yes, Delete Video Source + + + + VideoSourceSelector + +- ++ + Video Source + Video Source + +@@ -31348,93 +32131,93 @@ + + + +- ++ + Show Important + Show Important + + + +- ++ + Show All + Show All + + + +- ++ + Program Details + Program Details + + + +- ++ + Program Guide + Program Guide + + + +- ++ + Channel Search + Channel Search + + + +- ++ + Upcoming by title +- Upcoming by title ++ Upcoming by Title + + + +- ++ + Upcoming scheduled +- Upcoming scheduled ++ Upcoming Scheduled + + + +- ++ + Previously Recorded + Previously Recorded + + + +- ++ + Custom Edit + Custom Edit + + + +- ++ + Delete Rule + Delete Rule + + + +- ++ + Show Inputs + Show Inputs + + + +- ++ + All + All + + +- ++ + Conflict %1 + Conflict %1 + + +- ++ + No Conflicts + No Conflicts + + +- ++ + Important + Important + + +- ++ + Delete '%1' %2 rule? + Delete '%1' %2 rule? + +@@ -31442,52 +32225,52 @@ + + WatchListSettings + +- ++ + Include the 'Watch List' group +- Include the 'Watch List' group ++ Include the 'Watch List' Group + + +- ++ + The 'Watch List' is an abbreviated list of recordings sorted to highlight series and shows that need attention in order to keep up to date. + The 'Watch List' is an abbreviated list of recordings sorted to highlight series and shows that need attention in order to keep up to date. + + +- ++ + Start from the Watch List view +- Start from the Watch List view ++ Start from the Watch List View + + +- ++ + If enabled, the 'Watch List' will be the initial view each time you enter the Watch Recordings screen +- If enabled, the 'Watch List' will be the initial view each time you enter the Watch Recordings screen ++ If Enabled, the 'Watch List' Will Be the Initial View Each Time You Enter the Watch Recordings Screen + + +- ++ + Exclude recordings not set for Auto-Expire +- Exclude recordings not set for Auto-Expire ++ Exclude Recordings Not Set for Auto-expire + + +- ++ + Set this if you turn off Auto-Expire only for recordings that you've seen and intend to keep. This option will exclude these recordings from the 'Watch List'. +- Set this if you turn off Auto-Expire only for recordings that you've seen and intend to keep. This option will exclude these recordings from the 'Watch List'. ++ Set this if you turn off Auto-expire only for recordings that you've seen and intend to keep. This option will exclude these recordings from the 'Watch List'. + + +- ++ + Maximum days counted in the score +- Maximum days counted in the score ++ Maximum Days Counted in the Score + + +- ++ + The 'Watch List' scores are based on 1 point equals one day since recording. This option limits the maximum score due to age and affects other weighting factors. + The 'Watch List' scores are based on 1 point equals one day since recording. This option limits the maximum score due to age and affects other weighting factors. + + +- ++ + Days to exclude weekly episodes after delete + Days to exclude weekly episodes after delete + + +- ++ + When an episode is deleted or marked as watched, other episodes of the series are excluded from the 'Watch List' for this interval of time. Daily shows also have a smaller interval based on this setting. + When an episode is deleted or marked as watched, other episodes of the series are excluded from the 'Watch List' for this interval of time. Daily shows also have a smaller interval based on this setting. + +@@ -31508,7 +32291,7 @@ + + + Tuner %1 is recording: +- Tuner %1 is recording: ++ Tuner %1 is Recording: + + + +@@ -31519,12 +32302,12 @@ + + + There are no recordings currently taking place +- There are no recordings currently taking place ++ There Are No Recordings Currently Taking Place + + + + There are no scheduled recordings +- There are no scheduled recordings ++ There Are No Scheduled Recordings + + + +@@ -31622,12 +32405,12 @@ + + + Cannot shutdown because MythTV is currently recording +- Cannot shutdown because MythTV is currently recording ++ Cannot Shutdown Because MythTV is Currently Recording + + + + Cannot shutdown because MythTV is about to start recording +- Cannot shutdown because MythTV is about to start recording ++ Cannot Shutdown Because MythTV is About to Start Recording + + + +@@ -31638,12 +32421,12 @@ + + XMLTV_generic_config + +- ++ + Configure + Configure + + +- ++ + Run XMLTV configure command. + Run XMLTV configure command. + diff --git a/abs/core/mythtv/stable-30/mythtv/mythtv.install b/abs/core/mythtv/stable-30/mythtv/mythtv.install new file mode 100644 index 0000000..aedebbf --- /dev/null +++ b/abs/core/mythtv/stable-30/mythtv/mythtv.install @@ -0,0 +1,34 @@ +# arg 1: the new package version +post_install() { + gen_is_xml.py + gen_lib_xml.py + systemconfig.py -m config_xml +} + +pre_upgrade() { + if [ "`vercmp $2 0.28`" -lt 0 ] + then + . /etc/systemconfig + if [ $SystemType = "Master_backend" -o $SystemType = "Standalone" ] + then + echo "upgrading from 0.27, adding new storage groups..." + add_storage.py --reconstruct_sg + fi + fi + /bin/true +} + +post_upgrade() { + post_install +} + + +# arg 1: the old package version +post_remove() { + /bin/true + +} + +op=$1 +shift +$op $* diff --git a/abs/core/mythtv/stable-30/mythtv/pull103-Add-heuristic-in-TMDB-script-to-detect-movie-release-years.patch b/abs/core/mythtv/stable-30/mythtv/pull103-Add-heuristic-in-TMDB-script-to-detect-movie-release-years.patch new file mode 100644 index 0000000..2845250 --- /dev/null +++ b/abs/core/mythtv/stable-30/mythtv/pull103-Add-heuristic-in-TMDB-script-to-detect-movie-release-years.patch @@ -0,0 +1,39 @@ +--- src/mythtv/programs/scripts/metadata/Movie/tmdb3.py 2017-02-23 13:18:12.000000000 +0100 ++++ src/mythtv/programs/scripts/metadata/Movie/tmdb3.py 2017-02-25 13:12:40.213333328 +0100 +@@ -29,6 +29,7 @@ + + from optparse import OptionParser + import sys ++import re + + def buildSingle(inetref, opts): + from MythTV.tmdb3.tmdb_exceptions import TMDBRequestInvalid +@@ -122,11 +123,27 @@ + # replace all dashes from queries to work around search behavior + # as negative to all text that comes afterwards + query = query.replace('-',' ') ++ query = query.strip() # trim extra whitespace ++ # extract year from name -- note that we require a space before the year ++ # so we don't confuse movie names for years (example: "2012 - 2009", ++ # a 2009 movie); also note that we accept optional paranthesis around ++ # the year: ++ yearRegex = re.compile(r"\s\(?((19|20)[0-9]{2})\)?$") ++ year = yearRegex.search(query) ++ if year is not None: ++ year = year.group(1) ++ # if no year was found, we'll pass year=None to searchMovie, ++ # which is the default anyway ++ ++ # get rid of the year (if any) from the query text, because ++ # it causes bad TMDB results ++ query = yearRegex.sub("", query) ++ query = query.strip() + + from MythTV.tmdb3 import searchMovie + from MythTV import VideoMetadata + from lxml import etree +- results = iter(searchMovie(query)) ++ results = iter(searchMovie(query, locale=None, adult=False, year=year)) + tree = etree.XML(u'') + mapping = [['runtime', 'runtime'], ['title', 'originaltitle'], + ['releasedate', 'releasedate'], ['tagline', 'tagline'], diff --git a/abs/core/mythtv/stable-30/mythtv/recordings b/abs/core/mythtv/stable-30/mythtv/recordings new file mode 100644 index 0000000..5dff16f --- /dev/null +++ b/abs/core/mythtv/stable-30/mythtv/recordings @@ -0,0 +1,145 @@ +#!/bin/bash + +#START=$(date +%s) + +#check if mythbackend is running and was just started +for i in 1 2 +do +if [ `cat /service/mythbackend/supervise/pid` ] +then + now=$(date +%s) + mythbackendStartTime=`stat -c %Y /service/mythbackend/supervise/pid` + if [[ $(( $now - $mythbackendStartTime )) -lt 59 ]] + then + #echo "mythbackend started less than a minute ago. Sleeping..." + sleep 60 + fi +else + #echo "mythbackend not running. exiting." + exit +fi +done + +if [ -f /usr/share/mythtv/contrib/user_jobs/mythlink.pl ] +then + recdir="/data/storage/disk0/media/recordings" + tmprecdir="/data/storage/disk0/media/tmp/recordings" + rm -r $tmprecdir + su - mythtv -c "perl /usr/share/mythtv/contrib/user_jobs/mythlink.pl --format '%Ct/%U/%T/%T %- S%ssE%ep %- %oY-%om-%od = %S' --link '$tmprecdir'" + + # rename category_types (%Ct) from numbers to names + for cattype in $tmprecdir/* + do + if [ $cattype == "$tmprecdir/1" ] + then + rsync -a "$cattype/" "$tmprecdir/Movies" + rm -r "$cattype" + elif [[ $cattype == "$tmprecdir/2" ]] || [[ $cattype == "$tmprecdir/4" ]] + then + rsync -a "$cattype/" "$tmprecdir/TV Shows" + rm -r "$cattype" + elif [ $cattype == "$tmprecdir/3" ] + then + rsync -a "$cattype/" "$tmprecdir/Sports" + rm -r "$cattype" + else + #ignore Movies, TV Shows, Sports. Move all others to TV Shows + if [[ $cattype != "$tmprecdir/Movies" ]] && [[ $cattype != "$tmprecdir/TV Shows" ]] && [[ $cattype != "$tmprecdir/Sports" ]] + then + if [ ! -d "$tmprecdir/TV Shows" ] + then + mkdir "$tmprecdir/TV Shows" + fi + rsync -a "$cattype" "$tmprecdir/TV Shows" + rm -r "$cattype" + fi + fi + done + + #delete Deleted recgroup + for link in $tmprecdir/**/Deleted + do + rm -r "$link" + done + + #move all links in recgroup dirs out to parent dir + for recgroup in $tmprecdir/**/* + do + if [ -d "$recgroup" ] + then + cd "$recgroup" + rsync -a "$recgroup/" .. + cd "$tmprecdir" + rm -r "$recgroup" + fi + done + + #replace SE if no season/episode is in myth + for link in $tmprecdir/**/**/*\ -\ SE\ -\ * + do + newlink=`echo "$link" | sed 's/ - SE - / - /'` + mv "$link" "$newlink" + done + #replace SEyy if no season is in myth + for link in $tmprecdir/**/**/*\ -\ SE[0-9][0-9]\ -\ * + do + newlink=`echo "$link" | sed 's/ - SE/ - S00E/'` + mv "$link" "$newlink" + done + #replace SyyE if no episode is in myth + for link in $tmprecdir/**/**/*\ -\ S[0-9][0-9]E\ -\ * + do + newlink=`echo "$link" | sed 's/E - /E00 - /'` + mv "$link" "$newlink" + done + #replace blank original date + for link in $tmprecdir/**/**/*\ -\ 0000-00-00\ -\ * + do + newlink=`echo "$link" | sed 's/ - 0000-00-00 - / - /'` + mv "$link" "$newlink" + done + #add dash pt suffix if filename before the subtitle is the same + #so that plex will scan and include in library + uniqs="$(ls $tmprecdir/**/**/* | sed 's/ = .*//' | sort | uniq -d)" + SAVEIFS=$IFS + IFS=$'\n' + for link in $uniqs + do + i=1 + for dup in `ls -v $link*` + do + newlink=`echo "$dup" | sed "s/ = /-pt$i = /"` + mv "$dup" "$newlink" + i=$((i+1)) + done + done + IFS=$SAVEIFS + + #change symlinks mtime to match the file it is linked to +# for link in $tmprecdir/**/* +# do +# if [ -L "$link" ] +# then +# file=`readlink "$link"` +# touch -hr "$file" "$link" +# fi +# done + + #sync tmprecdir to recdir + #rsync -aOP --delete --ignore-existing "$tmprecdir/" "$recdir/" + rsync -aO --delete "$tmprecdir/" "$recdir/" + + #check if plex media server is running + if [[ `pidof "Plex Media Server"` ]] + then + #get plex section and update + script -q -c '/usr/LH/bin/plexmediascanner.sh -l' | grep -i myth | cut -d: -f1 | while read -r line + do + /usr/LH/bin/plexmediascanner.sh --scan --refresh --section $line + done + fi +fi + +#END=$(date +%s) +#DIFF=$(( $END - $START )) +#echo "It took $DIFF seconds" diff --git a/abs/core/mythtv/stable-30/mythtv/searchMetatdataSelectedGrabber.patch b/abs/core/mythtv/stable-30/mythtv/searchMetatdataSelectedGrabber.patch new file mode 100644 index 0000000..41e0871 --- /dev/null +++ b/abs/core/mythtv/stable-30/mythtv/searchMetatdataSelectedGrabber.patch @@ -0,0 +1,18 @@ +--- src/mythtv/libs/libmythmetadata/metadatadownload.cpp.orig 2016-10-06 19:52:36.807746878 +0000 ++++ src/mythtv/libs/libmythmetadata/metadatadownload.cpp 2016-10-06 19:42:06.045651726 +0000 +@@ -517,6 +517,7 @@ + + // initial search mode + if (!lookup->GetInetref().isEmpty() && lookup->GetInetref() != "00000000" && ++ !lookup->GetInetref().endsWith("_") && + (lookup->GetStep() == kLookupSearch || lookup->GetStep() == kLookupData)) + { + // with inetref +@@ -575,6 +576,7 @@ + + // initial search mode + if (!lookup->GetInetref().isEmpty() && lookup->GetInetref() != "00000000" && ++ !lookup->GetInetref().endsWith("_") && + (lookup->GetStep() == kLookupSearch || lookup->GetStep() == kLookupData)) + { + // with inetref diff --git a/abs/core/mythtv/stable-30/mythtv/suggestedstarttime.patch.v1 b/abs/core/mythtv/stable-30/mythtv/suggestedstarttime.patch.v1 new file mode 100644 index 0000000..26d4c36 --- /dev/null +++ b/abs/core/mythtv/stable-30/mythtv/suggestedstarttime.patch.v1 @@ -0,0 +1,32 @@ +diff --git a/mythtv/programs/mythbackend/httpstatus.cpp b/mythtv/programs/mythbackend/httpstatus.cpp +index 8571a58..be0272f 100644 +--- a/mythtv/programs/mythbackend/httpstatus.cpp ++++ b/mythtv/programs/mythbackend/httpstatus.cpp +@@ -1392,13 +1392,17 @@ int HttpStatus::PrintMachineInfo( QTextStream &os, QDomElement info ) + QString sStatus = e.attribute( "status" , "" ); + QDateTime next = MythDate::fromString( e.attribute( "next" , "" )); + QString sNext = next.isNull() ? "" : +- MythDate::toString(next, MythDate::kDatabase); ++ MythDate::toString(next, MythDate::kDateTimeFull); + QString sMsg = ""; + + QDateTime thru = MythDate::fromString( e.attribute( "guideThru", "" )); + + QDomText text = e.firstChild().toText(); + ++ QString mfdblrs = ++ gCoreContext->GetSetting("mythfilldatabaseLastRunStart"); ++ QDateTime lastrunstart = MythDate::fromString(mfdblrs); ++ + if (!text.isNull()) + sMsg = text.nodeValue(); + +@@ -1412,7 +1416,7 @@ int HttpStatus::PrintMachineInfo( QTextStream &os, QDomElement info ) + + os << sStatus << "
\r\n"; + +- if (!next.isNull() && sNext >= sStart) ++ if (!next.isNull() && next >= lastrunstart) + { + os << " Suggested next mythfilldatabase run: " + << sNext << ".
\r\n"; diff --git a/abs/core/mythtv/stable-30/mythtv/videoAlwaysUseBookmark.patch b/abs/core/mythtv/stable-30/mythtv/videoAlwaysUseBookmark.patch new file mode 100644 index 0000000..7a0b428 --- /dev/null +++ b/abs/core/mythtv/stable-30/mythtv/videoAlwaysUseBookmark.patch @@ -0,0 +1,22 @@ +--- src/mythtv/programs/mythfrontend/main.cpp.orig 2014-10-05 21:16:54.226667223 +0000 ++++ src/mythtv/programs/mythfrontend/main.cpp 2014-10-06 20:31:16.822482368 +0000 +@@ -1166,14 +1166,11 @@ + + if (useBookmark && bookmarkPresent) + { +- MythScreenStack *mainStack = GetMythMainWindow()->GetMainStack(); +- BookmarkDialog *bookmarkdialog = new BookmarkDialog(pginfo, mainStack); +- if (!bookmarkdialog->Create()) +- { +- delete bookmarkdialog; +- delete pginfo; +- return res; +- } ++ TV::StartTV(pginfo, kStartTVNoFlags); ++ ++ res = 0; ++ ++ delete pginfo; + } + else + { diff --git a/abs/core/mythtv/stable-30/mythweb/Channel.php_remove_small_icons.patch b/abs/core/mythtv/stable-30/mythweb/Channel.php_remove_small_icons.patch new file mode 100644 index 0000000..f786d15 --- /dev/null +++ b/abs/core/mythtv/stable-30/mythweb/Channel.php_remove_small_icons.patch @@ -0,0 +1,14 @@ +diff --git a/modules/tv/classes/Channel.php b/modules/tv/classes/Channel.php +index a4350283..be45b6ff 100644 +--- ./modules/tv/classes/Channel.php ++++ ./modules/tv/classes/Channel.php +@@ -113,6 +113,9 @@ class Channel extends MythBase { + foreach ($channel_data AS $key => $value) + $this->$key = $value; + $this->icon = 'data/tv_icons/'.basename($channel_data['icon']); ++ // Remove icons smaller than 100 bytes ++ if (file_exists($this->icon) && filesize($this->icon) < 100) ++ unlink($this->icon); + // Try to copy over any missing channel icons + if ($channel_data['icon'] && !file_exists($this->icon)) { + // Local file? diff --git a/abs/core/mythtv/stable-30/mythweb/PKGBUILD b/abs/core/mythtv/stable-30/mythweb/PKGBUILD new file mode 100644 index 0000000..17e8c04 --- /dev/null +++ b/abs/core/mythtv/stable-30/mythweb/PKGBUILD @@ -0,0 +1,60 @@ +pkgname=mythweb +pkgver=30.0 +pkgrel=1 +commit_hash=`cat ../git_src/git_hash_web` +pkgdesc="Web interface for MythTV's backend, $commit_hash" +arch=('x86_64') +url="http://www.mythtv.org" +license=('GPL') +depends=('lighttpd' "mythtv>=${pkgver}" 'php' 'supplemental-web') +groups=('mythtv-extras') +install=mythweb.install + +patches=('video.css.patch' + 'Channel.php_remove_small_icons.patch') +source=(`echo ${patches[@]:0}` + 'mythweb.include' + 'mythweb_gen_light.conf') + +build() { + if [ -e ${srcdir}/mythweb ] + then + msg "Removing old mythweb src" + rm -rf ${srcdir}/mythweb + fi + + cd ${startdir} + msg "Copying in mythweb git_src" + cp -rp ../git_src/mythweb $srcdir + cd ${srcdir}/$pkgname + + msg "--------------------------applying patches------------------------------" + for i in `echo ${patches[@]:0} ` + do + echo applying $i + echo "-----------------------------" + patch -Np0 -i ${srcdir}/$i || return 1 + done + msg "--------------------------done applying patches-------------------------" + + [ "$CARCH" = "x86_64" ] && ARCH="x86-64" +} + +package() { + DOCROOT=/data/srv/httpd/mythweb + mkdir -p $pkgdir/$DOCROOT/{image_cache,php_sessions,data} + rsync -arp --exclude .git* --delete-excluded $srcdir/mythweb/* $pkgdir/$DOCROOT + rm $pkgdir/$DOCROOT/README + chown -R http:http $pkgdir/$DOCROOT + chmod -R 775 $pkgdir/$DOCROOT/{image_cache,php_sessions,data} + + #install conf files for lighttpd + mkdir -p $pkgdir/etc/lighttpd + install -D -m 644 $srcdir/mythweb.include $pkgdir/etc/lighttpd/ + #gen_light_conf + install -D -m0744 ${srcdir}/mythweb_gen_light.conf ${pkgdir}/etc/gen_light_conf.d/mythweb.conf +} +md5sums=('668a36e404c8254f56e7a7304e655332' + '333d145899a1b48a7648d933344ee9ed' + '7645a6399434cbba35639713ac5d88e0' + 'df190116b3aba35720fb6631885f973f') diff --git a/abs/core/mythtv/stable-30/mythweb/mythweb.include b/abs/core/mythtv/stable-30/mythweb/mythweb.include new file mode 100644 index 0000000..18e9be1 --- /dev/null +++ b/abs/core/mythtv/stable-30/mythweb/mythweb.include @@ -0,0 +1,8 @@ +alias.url += ( "/mythweb" => "/data/srv/httpd/mythweb/") + +url.rewrite-once = ( +"^/{1,2}mythweb/(css|data|images|js|themes|skins|[a-z_]+\.(php|pl)).*" => "$0", +"^/{1,2}mythweb/(pl(/.*)?)$" => "/mythweb/mythweb.pl/$1", +"^/{1,2}mythweb/(.+)$" => "/mythweb/mythweb.php/$1", +"^/{1,2}mythweb/(.*)$" => "/mythweb/mythweb.php" +) \ No newline at end of file diff --git a/abs/core/mythtv/stable-30/mythweb/mythweb.install b/abs/core/mythtv/stable-30/mythweb/mythweb.install new file mode 100644 index 0000000..b8e31a8 --- /dev/null +++ b/abs/core/mythtv/stable-30/mythweb/mythweb.install @@ -0,0 +1,22 @@ +post_install() { + echo "==> Setting mythweb permissions." + chmod -R 755 /data/srv/httpd/mythweb/ + chown mythtv:http /data/srv/httpd/mythweb/data/tv_icons + chmod -R 775 /data/srv/httpd/mythweb/{image_cache,php_sessions,data} + echo "==> Reading lighttpd's configuration file." + gen_light_include.py + echo "==> Restarting lighttpd." + /sbin/sv hup /service/lighttpd +} + +post_upgrade() { + post_install +} + +post_remove() { + gen_light_include.py + echo + echo "==> Forcing a re-read of lighttpd's configuration file." + echo "" + /sbin/sv hup /service/lighttpd +} diff --git a/abs/core/mythtv/stable-30/mythweb/mythweb_gen_light.conf b/abs/core/mythtv/stable-30/mythweb/mythweb_gen_light.conf new file mode 100644 index 0000000..ddf0d2f --- /dev/null +++ b/abs/core/mythtv/stable-30/mythweb/mythweb_gen_light.conf @@ -0,0 +1 @@ +include "/etc/lighttpd/mythweb.include" diff --git a/abs/core/mythtv/stable-30/mythweb/video.css.patch b/abs/core/mythtv/stable-30/mythweb/video.css.patch new file mode 100644 index 0000000..f49a3fd --- /dev/null +++ b/abs/core/mythtv/stable-30/mythweb/video.css.patch @@ -0,0 +1,98 @@ +--- ./skins/default/video.css.orig 2018-05-22 21:45:30.395508513 +0000 ++++ ./skins/default/video.css 2018-05-22 21:41:27.326893228 +0000 +@@ -0,0 +1,95 @@ ++ .video { ++ position: relative; ++ padding: 1em; ++ float: left; ++ background-color: #003366; ++ margin-top: 1em; ++ margin-left: 1em; ++ width: 202px; ++ height: 168px; ++ border: 1px solid black; ++ } ++ ++ .video .title { ++ font-weight: bold; ++ margin-bottom: .5em; ++ height: 2.5em; ++ overflow: hidden; ++ } ++ ++ .video img { ++ float: left; ++ padding-right: 1em; ++ } ++ ++ .video .command { ++ position: absolute; ++ bottom: 1em; ++ right: 1em; ++ } ++ ++ #path { ++ position: relative; ++ padding: 1em; ++ float: left; ++ background-color: #102923; ++ margin-top: 1em; ++ margin-left: 1em; ++ border: 1px solid black; ++ min-width: 202px; ++ min-height: 168px; ++ } ++ ++ #path .active { ++ color: yellow; ++ } ++ ++ #window { ++ position: fixed; ++ left: 35%; ++ right: 35%; ++ width: 30%; ++ top: 35%; ++ background-color: green; ++ padding-top: 1em; ++ z-index: 10; ++ border: 2px solid gray; ++ } ++ ++ #window_content a { ++ padding-right: 1em; ++ padding-left: 1em; ++ } ++ ++ #window iframe { ++ width: 100%; ++ border: 0px; ++ height: 250px; ++ } ++ ++ #window_title { ++ position: absolute; ++ top: 1px; ++ left: 1em; ++ font-weight: bold; ++ } ++ ++ .popup { ++ width: 30%; ++ font-size: 9pt; ++ } ++ ++ .popup dt { ++ clear: left; ++ float: left; ++ padding-top: 3px; ++ white-space: nowrap; ++ width: 6em; ++ font-weight: bold; ++ text-align: right; ++ } ++ ++ .popup dd { ++ margin-left: 6.5em; ++ padding-top: 3px; ++ } -- cgit v0.12