From c6344d439169a34b3804aaee9fa1b7da7cad3c77 Mon Sep 17 00:00:00 2001 From: Markus Ehrnsperger <> Date: Mon, 29 Jul 2024 08:14:54 +0200 Subject: [PATCH] 0001 Fixed various typos, harmonized naming and revised textual layouts.patch --- README | 80 +++++------ StringMatch.h | 2 +- buildutil/version-util | 2 +- doc/ChangeLog | 40 +++--- doc/TODO.txt | 10 +- doc/css-themeing.txt | 42 +++--- doc/dev-conventions.txt | 4 +- epg_events.cpp | 4 +- epg_events.h | 8 +- epgsearch.h | 2 +- epgsearch/services.h | 2 +- i18n.cpp | 2 +- live.h | 2 +- live/css/siteprefs.css | 2 +- live/css/styles.css | 196 ++++++++++++++------------ live/js/live/browserwin.js | 4 +- live/js/live/createHtml.js | 27 ++-- live/js/live/epg_tt_box.js | 4 + live/js/live/header.js | 4 + live/js/live/hinttips.js | 2 +- live/js/live/infowin.js | 22 +-- live/js/live/liveajax.js | 4 +- live/js/live/pageenhance.js | 12 +- live/js/live/vdr_status.js | 4 +- live/themes/orange-blue/css/theme.css | 103 +++++++------- live/themes/redwine/css/theme.css | 77 +++++----- live/themes/veltliner/css/theme.css | 102 +++++++------- livefeatures.h | 2 +- md5.cpp | 2 +- pages/page_init.eh | 2 +- pages/pageelems.ecpp | 4 +- pages/playlist.ecpp | 2 +- pages/recordings.ecpp | 4 +- pages/searchresults.ecpp | 2 +- pages/timers.ecpp | 1 + po/cs_CZ.po | 3 + po/de_DE.po | 3 + po/es_ES.po | 3 + po/fi_FI.po | 3 + po/fr_FR.po | 3 + po/it_IT.po | 3 + po/ka_GE.po | 3 + po/lt_LT.po | 3 + po/nl_NL.po | 3 + po/pl_PL.po | 3 + po/ru_RU.po | 3 + po/sk_SK.po | 3 + po/sv_SE.po | 3 + recman.cpp | 24 ++-- recman.h | 8 +- services.h | 6 +- services_live.h | 4 +- setup.cpp | 30 ++-- setup.h | 12 +- status.h | 2 +- stringhelpers.h | 40 +++--- tasks.h | 2 +- timers.cpp | 12 +- timers.h | 2 +- tntconfig.cpp | 40 +++--- tntfeatures.h | 6 +- tools.cpp | 10 +- tools.h | 6 +- users.h | 2 +- 64 files changed, 548 insertions(+), 479 deletions(-) diff --git a/README b/README index 0d07615d..3ab13570 100644 --- a/README +++ b/README @@ -41,18 +41,18 @@ PCRE2 >= 10.38 - https://github.com/PhilipHazel/pcre2/releases Tntnet >= 2.2.1 - http://www.tntnet.org/download.hms // https://web.archive.org/web/20160314183814/http://www.tntnet.org/download.html Cxxtools >= 2.2.1 - http://www.tntnet.org/download.hms // https://web.archive.org/web/20160314183814/http://www.tntnet.org/download.html -Tntnet provides basic webserver functions for live and needs cxxtools. +Tntnet provides basic Web server functions for live and needs cxxtools. Boost provides some data structures we need. While currently relying on the full blown package we might provide a stripped down version in the future. -PCRE2 provides filtering for recordings using perl regexp language. +PCRE2 provides filtering for recordings using Perl regexp language. If you don't need filtering, PCRE2 is optional. -If you optionaly want to regenerate the i18n-generated.h header file +If you optionally want to regenerate the i18n-generated.h header file for backward compatible i18n (VDR version prior to 1.5.7) you also need: (See also the Internationalization section below) -Locale::PO - perl module from CPAN www.cpan.org +Locale::PO - Perl module from CPAN www.cpan.org The default i18n-generated.h header contains all translations from GIT. Users that just want to stay on bleeding development @@ -77,7 +77,7 @@ copy the resulting binary to VDRs directory where the other plugins are expected. In order to work correctly you must copy the subdirectory 'live' from -the source distribution to the directory where the vdr plugins look +the source distribution to the directory where the VDR plugins look for their resource files. The pure VDR default for this config directory is: /video/plugins, but this depends also from the parameters -c or -v (see 'vdr --help' for details). @@ -95,7 +95,7 @@ the internet. The default username and password are: The default port is 8008. -You can also specifiy this parameter via commandline: +You can also specify this parameter via command line: -p PORT, --port=PORT use PORT to listen for incoming connections (default: 8008) @@ -104,7 +104,7 @@ You can also specifiy this parameter via commandline: (default: 0.0.0.0, ::0) Additional SSL options are available now. See "How to make LIVE listen -for ssl connections" section below on hints how to setup SSL. +for SSL connections" section below on hints how to setup SSL. To display images or channel logos, you can use: @@ -122,47 +122,47 @@ interface. The password is stored as a MD5 hash. "Last Channel" is the last channel in the channels list, that live displays. This is especially useful if you have VDR's automatic channel update active. -For example, you can add a group seperator ":@1000 Found automatically" to +For example, you can add a group separator ":@1000 Found automatically" to channels.conf and set this parameter to "1000". Thus, everything VDR finds during scanning (which can after a few months be well more than 3000 channels) won't be displayed. -How to make LIVE listen for ssl connections: +How to make LIVE listen for SSL connections: ============================================ -To make LIVE listen for incoming ssl connections you`ll have to use a +To make LIVE listen for incoming SSL connections you`ll have to use a Tntnet version > 1.6.0.6. By default it will listen on port 8443. * Example: https://localhost:8443 In order to start the SslListener LIVE requires a SSL certificate. If -no SSL certificate is specified via commandline option, LIVE will try +no SSL certificate is specified via command-line option, LIVE will try to use the default certificate location '$VDRDIR/plugins/live/live.pem'. If neither the default nor the custom certificate (given by the -commandline option) could be found, LIVE will only start the default +command-line option) could be found, LIVE will only start the default HTTP Listener (default: 8008) -If you want do disable the SslListener for any reason, specify ssl port -number 0 with the commandline option. +If you want do disable the SslListener for any reason, specify SSL port +number 0 with the command-line option. -Note: Since the gnutls SslListener was broken in Tntnet versions prior +Note: Since the GNU TLS SslListener was broken in Tntnet versions prior to SVN revision 1035 you will have to recompile Tntnet with "./configure --with-ssl=openssl" to make it work. Alternatively -install version 1.6.2 or higher of tntnet on your system. +install version 1.6.2 or higher of Tntnet on your system. -SSL Commandline options: -======================== +SSL Command-line options: +========================= - -s PORT, --sslport=PORT use PORT to listen for incoming ssl connections + -s PORT, --sslport=PORT use PORT to listen for incoming SSL connections (default: 8443) - use PORT 0 to disable incoming ssl connections - -c CERT, --cert=CERT path to a custom ssl certificate file + use PORT 0 to disable incoming SSL connections + -c CERT, --cert=CERT path to a custom SSL certificate file (default: $CONFIGDIR/live.pem) - -k KEY, --cert=CERT path to a custom ssl certificate key file + -k KEY, --cert=CERT path to a custom SSL certificate key file (default: $CONFIGDIR/live-key.pem) @@ -175,25 +175,25 @@ command. $> cd /put/your/path/here/vdr/plugins/live $> openssl req -new -x509 -keyout live-key.pem -out live.pem -days 365 -nodes -While generating the certifcate you`ll be asked to answer a couple of +While generating the certificate you`ll be asked to answer a couple of questions. When it prompts to enter the "Common Name" you`ll have to -specify the full qualified dns server name of the machine LIVE is -running on (eg. vdr.example.com). If your vdr doesn`t have a full -qualified dns name, you should use the ip LIVE is listening on. +specify the full qualified DNS server name of the machine LIVE is +running on (e.g. vdr.example.com). If your VDR doesn't have a full +qualified DNS name, you should use the IP Live is listening on. -Note: This is just a quick'n dirty way to create a SSL self-signed -certicate. Recent browsers (like Firefox 3) will complain about it -because the certificate wasn´t signed by a known Certificate Authority +Note: This is just a quick-and-dirty way to create a SSL self-signed +certificate. Recent browsers (like Firefox 3) will complain about it +because the certificate wasn't signed by a known Certificate Authority (CA). So how does LIVE work? ====================== -Basically, Live itself is a Tntnet webserver integrated into the +Basically, Live itself is a Tntnet Web server integrated into the plugin structure VDR needs. -This webserver, running in VDR's environment, is provided with all +This Web server, running in VDR's environment, is provided with all public data structures VDR provides for plugins and thus has very fast access to information like the EPG, timers or recordings. @@ -208,8 +208,8 @@ If you would like to contribute, please read doc/dev-contribute.txt and doc/TODO.txt. -Internationalization (i18n) -=========================== +Internationalization (i18n): +============================ LIVE uses the same i18n support like VDR does since version 1.5.7. This version of LIVE can not support i18n compatible with VDR versions @@ -219,8 +219,8 @@ All localization files are found in the po subdirectory of the LIVE plugin source. -Security consideratios -====================== +Security considerations: +======================== Please use live in a controlled environment only, like your home network or a save VPN of your home network. @@ -230,12 +230,12 @@ Of course, better security is always appreciated, so please send patches increasing security. One possible security issue (there might be others ...): -Live uses the tntnet MapUrl mechanism to map different request urls to -tntnet components. One component 'content.ecpp' delivers files found +Live uses the Tntnet MapUrl mechanism to map different request URLs to +Tntnet components. One component 'content.ecpp' delivers files found in the file system. When given the wrong 'path' it could retrieve any file from the server where live runs on. Therefore content.ecpp has -beem enhanced to check the paths before returning files. A second -measure against missuse is to limit the mappings from MapUrl to only +been enhanced to check the paths before returning files. A second +measure against misuse is to limit the mappings from MapUrl to only valid files. In the current version this approach has been taken. But due to the 'difficulty' to fully understand regular expressions, this might get spoiled again by 'unchecked' code contribution. @@ -248,6 +248,6 @@ If VDR crashes on start with these journal messages: terminate called after throwing an instance of 'std::runtime_error' what(): locale::facet::_S_create_c_locale name not valid -Most likely, the locale is not installed correctly. On debian based systems, use: +Most likely, the locale is not installed correctly. On Debian based systems, use: dpkg-reconfigure locales and restart VDR. diff --git a/StringMatch.h b/StringMatch.h index f27a3cfa..beec8cec 100644 --- a/StringMatch.h +++ b/StringMatch.h @@ -2,7 +2,7 @@ #ifdef HAVE_PCRE2 #include #if TNTVERSION >= 30000 - #include // must be loaded before any vdr include because of duplicate macros (LOG_ERROR, LOG_DEBUG, LOG_INFO) + #include // must be loaded before any VDR include because of duplicate macros (LOG_ERROR, LOG_DEBUG, LOG_INFO) #endif #include #include "stringhelpers.h" diff --git a/buildutil/version-util b/buildutil/version-util index 8e4ffc13..33e434e0 100755 --- a/buildutil/version-util +++ b/buildutil/version-util @@ -6,7 +6,7 @@ # repository versions. For CVS repositories the string contains the # date and time of the commit that lead to the current version of # files. For git repositories the output contains the git-id of the -# current tree. An indication if localy modified files exist is +# current tree. An indication if locally modified files exist is # added currently only for CVS. # ----------------------------------------------------------------------------- diff --git a/doc/ChangeLog b/doc/ChangeLog index 3e077718..69c24a79 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -55,11 +55,11 @@ * buildutil/version-util*: Added a shell and an awk script to calculate a version suffix string out of CVS current working dir status. This was a request bei jo01 and helps distinguish if - newer versions are awailable. It should not break builds if + newer versions are available. It should not break builds if something goes wrong in the script. At least it was my intention. The script also supports git repositories. But it has not been tested if it determines the correct git commit id - based on current workdir contents. The caluculated version + based on current workdir contents. The calculated version suffix is appended to the LIVE version string visible in the about box (?-Menu entry). @@ -82,7 +82,7 @@ - Added configuration option to disable the creation of IMDb URLs in the epg-info sections. This was done upon of feature - reqest (Bug #401). + request (Bug #401). Some minor fixes for the IMDb URLs in recordings. 2007-12-23 Dieter Hametner @@ -94,14 +94,14 @@ Changed top level Makefile to not create headers in live.pot file. This prevents creation of new date header in .po file at fresh translations after updates from CVS and should avoid - continous conflicts at every cvs update even if no changes took + continuous conflicts at every CVS update even if no changes took place in the local files. 2007-12-22 Dieter Hametner * live/js/live/vlc.js Added an own mootools based implementation of a controlling - class for the vlc plugin as proposed by Rolf Ahrenberg. + class for the VLC plugin as proposed by Rolf Ahrenberg. Features currently supported are: - start/stop play (pause is left out because it provides no timeshift functionality). @@ -165,19 +165,19 @@ 2007-08-19 Dieter Hametner - - Adapted (but not tested) live for the new localisation scheme + - Adapted (but not tested) live for the new localization scheme since VDR 1.5.7 Might need some additional tweaking... 2007-07-29 Dieter Hametner - - Implemented status notification popup if ajax is active. - - Without Ajax it is now possible to request actions from vdr via + - Implemented status notification popup if AJAX is active. + - Without Ajax it is now possible to request actions from VDR via a static page. 2007-07-22 Dieter Hametner - Added toolbox buttons to epg info popup windows. + Added toolbox buttons to EPG info popup windows. Some style fixes for this. * pages/whats_on.ecpp: Use new pageelems.epg_tool_box component. * pages/pageelems.ecpp: new epg_tool_box component. @@ -186,18 +186,18 @@ * live/js/live/pageenhance.js: Enhance a normal web page with nifty web 2.0 features. - * live/js/live/infowin.js: stand alone class. Used by pageenhance.js - * live/js/live/hinttips.js: stand alone class. Used by pageenhance.js + * live/js/live/infowin.js: standalone class. Used by pageenhance.js + * live/js/live/hinttips.js: standalone class. Used by pageenhance.js 2007-07-21 Dieter Hametner - Made epgimages better styleable. Displaying them as floats right - of the epg description text. + Made EPG images better style-able. Displaying them as floats right + of the EPG description text. 2007-07-20 Christian Wieninger Added support for EPG images: Specify the directory with your - EPG images via the new commandline option '-e ' or + EPG images via the new command-line option '-e ' or '--epgimages= like -P'live -e /video/epgimages' @@ -205,12 +205,12 @@ Changed the javascript base of live. We now use the 'mootools' framework (see http://www.mootools.net for infos) to handle - javascript in a browser independend fashion and for nifty Web 2.0 + javascript in a browser independent fashion and for nifty Web 2.0 features. Based on this framework we have now tooltips that use the XHTML - standard 'title' attribute and Web-2.0 popup windows for epg - information. This Epg information is loaded on demand and once + standard 'title' attribute and Web-2.0 popup windows for EPG + information. This EPG information is loaded on demand and once loaded, they are cached in the page for further viewing. On the other hand this also provides us with a solution to have @@ -250,7 +250,7 @@ 2007-06-13 Dieter Hametner * pages/schedule.ecpp: If no channel is given, and a current - channel is known to vdr, select it when calling the schedule + channel is known to VDR, select it when calling the schedule page in live. 2007-06-12 Dieter Hametner @@ -290,7 +290,7 @@ doc/css-themeing.txt and doc/dev-conventions.txt. * setup.h, setup.cpp, setup.ecpp: added setup for theme and selection of theme. - * pages/*.ecpp: added support for themable images. + * pages/*.ecpp: added support for themeable images. * tntconfig.cpp: cascaded search for images, to support themeing. 2007-06-03 Christian Wieninger @@ -325,5 +325,5 @@ unrecorded Sascha Volkenandt Due to the introduction of a uniform header for C++ standard - extenstions, the boost library is now only necessary if the used + extensions, the boost library is now only necessary if the used g++ compiler version is less than 4.0 diff --git a/doc/TODO.txt b/doc/TODO.txt index 363e887d..6b1ff23b 100644 --- a/doc/TODO.txt +++ b/doc/TODO.txt @@ -4,17 +4,17 @@ This is a list of ideas and TODO-Items for live plugin. splitting style files in a similar way like it is done for YAML (http://www.yaml.de) -- Create a CSS-themeing friendly url scheme. I.E. something like +- Create a CSS-themeing friendly URL scheme. I.E. something like img//button.png. Where default as theme is always taken if is not found. - Give users the chance to override the selected style with some user-override settings. -- Deliver truely static content, like images, styles, ECMAscript - with tntnets sendfile functionality after resolving user selected +- Deliver truly static content, like images, styles, ECMAscript + with Tntnet's send-file functionality after resolving user selected themes paths. Take care to support browser cache optimization. -- Deliver epg box infos through AJAX. This would make a ECMAScript +- Deliver EPG box information through AJAX. This would make a ECMAScript capable browser mandatory. -- Provide a way to get the infos on extra 'static' pages. +- Provide a way to get the information on extra 'static' pages. diff --git a/doc/css-themeing.txt b/doc/css-themeing.txt index e4aff548..daf75933 100644 --- a/doc/css-themeing.txt +++ b/doc/css-themeing.txt @@ -11,7 +11,7 @@ theme. Read further for more detailed information about themeing. How to do live theming with CSS. ================================ -Live supports CSS theming. While the structure of the html pages is +Live supports CSS theming. While the structure of the HTML pages is given by the plugin, there is the possibility to change the look through CSS and exchanged images. @@ -19,7 +19,7 @@ through CSS and exchanged images. Themable resources ------------------ -CSS stylesheets and referenced images are themable. That means a theme +CSS stylesheets and referenced images are themeable. That means a theme can replace the icons and background images in the markup. @@ -50,15 +50,15 @@ The site preference stylesheet is requested through this url: css/siteprefs.css -Access scheme for themable images ---------------------------------- +Access scheme for themeable images +---------------------------------- -All themable images in the pages, that live delivers to the browser are -accessed through the url +All themeable images in the pages, that live delivers to the browser are +accessed through the URL themes//img/ -If a image is not found under that url, the image is searched in +If a image is not found under that URL, the image is searched in common/img/ And if not found there, an attempt to deliver a built in image is taken. @@ -67,10 +67,10 @@ And if not found there, an attempt to deliver a built in image is taken. Location of the resources in the file system -------------------------------------------- -All themable content must be present in the directory specified by +All themeable content must be present in the directory specified by 'GetConfigDir'. GetConfigDir returns at runtime the position in the -filesystem where the plugins configuration file is stored. The -location is build from the vdr config path appended with the plugins +file system where the plugins configuration file is stored. The +location is build from the VDR config path appended with the plugins name (i.E. /var/lib/vdr/plugins/live). The themes are located in the 'themes' subdirectory of the above path. @@ -79,17 +79,17 @@ Structure of a theme package ---------------------------- A theme package consists of directory named after the theme name. It -must contain the subdirectories 'css' and 'img'. Under css and img no -other subdirectories are allowed for security reasons (see below). +must contain the subdirectories 'css' and 'img'. Under 'css' and 'img', +no other subdirectories are allowed for security reasons (see below). -In the subdirectory css a stylesheet theme.css must exist in oder to +In the subdirectory CSS a stylesheet theme.css must exist in oder to override or extend the already defined styles from 'styles.css'. Additional images referenced through the stylesheet and images replacing the default images go to the 'img' subdirectory. Replacing images must have the same name like the image to be replaced. -The live distribution comes with a few predefinded theme packages. You +The live distribution comes with a few predefined theme packages. You should take look into them to better understand this structure. @@ -98,11 +98,11 @@ Selecting a theme in live In the live setup page, the user can select the desired theme. When the settings are saved the selected themes become active. Live detects -the available themes dynamicaly by scanning the 'themes' directory in +the available themes dynamically by scanning the 'themes' directory in plugins config directory for available themes and creates the select box from this information. -So the installation of a new theme is easyly done by unpacking a +So the installation of a new theme is easily done by unpacking a theme-archive in the themes directory. This assumes the theme-archive follows the structure of a theme package as described above. @@ -110,12 +110,12 @@ follows the structure of a theme package as described above. Security provisions ------------------- -Live will map every url starting with themes//css or +Live will map every URL starting with themes//css or themes//img to exactly these directories under the location of the themes directory. That means any path components after 'img' or -'css' are discarded. Only the basename of the url is appended to these -directories. This is to prevent possible malicous requests to other -locations in the filesystem by adding '..' to the request path. The +'css' are discarded. Only the basename of the URL is appended to these +directories. This is to prevent possible malicious requests to other +locations in the file system by adding '..' to the request path. The downside of this is, that no additional directories below 'img' and 'css' are possible for the theme designer. @@ -126,5 +126,5 @@ User Contribution If you created a nice new look, you can provide it to us. We will try to include it into the live distribution. -If you need special html support for your styling needs, don't hesitate +If you need special HTML support for your styling needs, don't hesitate to submit a suggestion. diff --git a/doc/dev-conventions.txt b/doc/dev-conventions.txt index 2b80eab3..0c4943e9 100644 --- a/doc/dev-conventions.txt +++ b/doc/dev-conventions.txt @@ -31,7 +31,7 @@ the event handlers can take over and provide a nifty Web 2.0 technique solution to the user. To enable a tooltip just add a 'title' attribute on the element and -load 'hinttips.js' in your pages (Actually this will be allready done +load 'hinttips.js' in your pages (Actually this will be already done for you if you use the live page-framework). For popup windows that asynchronously load its contents you need to @@ -60,7 +60,7 @@ More difficult is the access to images, which is spread around the pages at the corresponding locations. To support this, a new method in the live Setup class (see file setup.h) has been added. It is called 'GetThemedLink'. For every image, that might be customized, you must -use a img tag according to this example: +use an 'img' tag according to this example: ") $>" alt="someimage" /> diff --git a/epg_events.cpp b/epg_events.cpp index c1898d59..ff1c1852 100644 --- a/epg_events.cpp +++ b/epg_events.cpp @@ -419,7 +419,7 @@ namespace vdrlive std::list images; // Initially we scan for images that follow the scheme - // '_.*' where distincition is any + // '_.*' where distinction is any // character sequence. Usually distinction will be used // to assign more than one image to an epg event. Thus it // will be a digit or number. The sorting of the images @@ -436,7 +436,7 @@ namespace vdrlive if (! ScanForEpgImages(imageId, ".*", images)) { #if TVM2VDR_PL_WORKAROUND - // if we didn't get images try to work arround a + // if we didn't get images try to work around a // bug in tvm2vdr. tvm2vdr seems always to use // one digit less, which leads in some rare cases // to the bug in LIVE, that unrelated and to many diff --git a/epg_events.h b/epg_events.h index 83572bc7..9ae94d8a 100644 --- a/epg_events.h +++ b/epg_events.h @@ -8,7 +8,7 @@ #include #if TNTVERSION >= 30000 - #include // must be loaded before any vdr include because of duplicate macros (LOG_ERROR, LOG_DEBUG, LOG_INFO) + #include // must be loaded before any VDR include because of duplicate macros (LOG_ERROR, LOG_DEBUG, LOG_INFO) #endif #include "services.h" @@ -32,7 +32,7 @@ namespace vdrlive void DecodeDomId(cSv epgid, tChannelID &chanId, tEventID &eventId); /** - * Allocate and initalize an epgEvent instance with the + * Allocate and initialize an epgEvent instance with the * passed channel and event information. * Never call this function with a NULL chan pointer */ @@ -44,13 +44,13 @@ namespace vdrlive EpgInfoPtr CreateEpgInfo(cSv epgid, cSchedules const *schedules); /** - * Allocate and initalize an epgEvent instance with the + * Allocate and initialize an epgEvent instance with the * passed recording information. */ EpgInfoPtr CreateEpgInfo(cSv recid, cRecording const *recording, char const *caption = 0); /** - * Allocate and initalize an epgEvent instance with the + * Allocate and initialize an epgEvent instance with the * passed string informations */ EpgInfoPtr CreateEpgInfo(cSv id, cSv caption, cSv info); diff --git a/epgsearch.h b/epgsearch.h index f88f8660..16ed7baf 100644 --- a/epgsearch.h +++ b/epgsearch.h @@ -9,7 +9,7 @@ #include #if TNTVERSION >= 30000 - #include // must be loaded before any vdr include because of duplicate macros (LOG_ERROR, LOG_DEBUG, LOG_INFO) + #include // must be loaded before any VDR include because of duplicate macros (LOG_ERROR, LOG_DEBUG, LOG_INFO) #endif #include diff --git a/epgsearch/services.h b/epgsearch/services.h index f1f1b48c..05e5c269 100644 --- a/epgsearch/services.h +++ b/epgsearch/services.h @@ -62,7 +62,7 @@ struct Epgsearch_exttimeredit_v1_0 struct Epgsearch_updatesearchtimers_v1_0 { // in - bool showMessage; // inform via osd when finished? + bool showMessage; // inform via OSD when finished? }; // Data structure for service "Epgsearch-osdmessage-v1.0" diff --git a/i18n.cpp b/i18n.cpp index 0e74a9b5..57db5216 100644 --- a/i18n.cpp +++ b/i18n.cpp @@ -21,7 +21,7 @@ namespace vdrlive I18n::I18n() : m_encoding(cCharSetConv::SystemCharacterTable() ? cCharSetConv::SystemCharacterTable() : "UTF-8") { - // fix encoding spelling for html standard. + // fix encoding spelling for HTML standard. std::string const iso("iso"); if (m_encoding.find(iso) != std::string::npos) { if (iso.length() == m_encoding.find_first_of("0123456789")) { diff --git a/live.h b/live.h index 650c7a94..4ad4a9fc 100644 --- a/live.h +++ b/live.h @@ -7,7 +7,7 @@ #include #if TNTVERSION >= 30000 - #include // must be loaded before any vdr include because of duplicate macros (LOG_ERROR, LOG_DEBUG, LOG_INFO) + #include // must be loaded before any VDR include because of duplicate macros (LOG_ERROR, LOG_DEBUG, LOG_INFO) #endif #ifndef DISABLE_TEMPLATES_COLLIDING_WITH_STL diff --git a/live/css/siteprefs.css b/live/css/siteprefs.css index efdd6f33..bab3a8b7 100644 --- a/live/css/siteprefs.css +++ b/live/css/siteprefs.css @@ -16,7 +16,7 @@ table { } */ -/* comment this out, if you want epg images at their native size +/* comment this out, if you want EPG images at their native size * the popup windows. This here restricts their width to 120 px. * You might also only change size. */ diff --git a/live/css/styles.css b/live/css/styles.css index f9afadae..d84cf45e 100644 --- a/live/css/styles.css +++ b/live/css/styles.css @@ -1,6 +1,6 @@ -/* ###################### +/* ############################# # Globals - ###################### + ############################# */ html, body { @@ -67,20 +67,16 @@ a:active { text-decoration: underline; } -/* ######################### - # global style properties - ######################### + +/* ############################# + # Global style properties + ############################# */ .bold { font-weight: bold; } -/* ============================== - = Dotted Frame - ============================== -*/ - .dotted { border: 1px dotted #bbbbbb; padding: 3px; @@ -89,7 +85,6 @@ a:active { background-color: #f3f3f3; } - .title { font-weight: bold; } @@ -132,14 +127,15 @@ a:active { margin-bottom: 4px; } -/* ###################### - # Tooltip style for hints - ###################### + +/* ############################# + # Tooltip style for hints + ############################# */ .hint-tip { margin: 0px auto; - max-width: 480px; /* depends on the tip backround image width */ + max-width: 480px; /* depends on the tip background image width */ color: #fff; } @@ -189,14 +185,14 @@ a:active { } -/* ###################### - # Style for positive notification popup - ###################### +/* ######################################## + # Style for positive notification popup + ######################################## */ .ok-info { margin: 0px auto; - max-width: 480px; /* depends on the tip backround image width */ + max-width: 480px; /* depends on the tip background image width */ color: #fff; } @@ -242,14 +238,14 @@ a:active { } -/* ###################### - # Style for negative notification popup - ###################### +/* ######################################## + # Style for negative notification popup + ######################################## */ .err-info { margin: 0px auto; - max-width: 480px; /* depends on the tip backround image width */ + max-width: 480px; /* depends on the tip background image width */ color: #fff; } @@ -294,9 +290,10 @@ a:active { margin-right: -17px; } -/* ###################### - # General styles for epg info - ###################### + +/* ############################## + # General styles for EPG info + ############################## */ div.epg_content { @@ -319,8 +316,10 @@ img.channel_logo { max-height:32px; max-width:120px; vertical-align:middle; background-color: #E9EFFF00; } + + /* ############################## - # Infowin styles for epg infos + # InfoWin styles for EPG info ############################## */ @@ -413,9 +412,10 @@ div.info-win img.artwork { display: none; } -/* ####################### - # Menue - ####################### + +/* ############################# + # Menu + ############################# */ div.menu { @@ -453,7 +453,11 @@ div.inhalt { padding: 10px; } -/* styles for pagemenu */ + +/* ############################# + # Styles for pagemenu + ############################# +*/ div#pagemenu { margin-top: 2px; @@ -502,7 +506,11 @@ div#pagemenu form a img { margin-top: -5px; } -/* styles for messagebar */ + +/* ############################# + # Styles for messagebar + ############################# +*/ div#messagebar { margin-top: 8px; @@ -547,10 +555,11 @@ div#messagebar span#mbmessage { } -/* ####################### - # Info Box (near logo) - ####################### +/* ############################# + # Info box (near logo) + ############################# */ + img.logo { float: left; margin-top: 5px; @@ -627,9 +636,10 @@ div#infobox div.st_controls div#infobox_channel_buttons { padding-left: 5px; } -/* ################################# - # Buttons - ################################# + +/* ############################# + # Buttons + ############################# */ button { @@ -661,10 +671,11 @@ button.yellow { } -/* ################################ - # general table cell classes - ################################ +/* ############################# + # General table-cell classes + ############################# */ + table td.buttonpanel { text-align: right; } @@ -700,9 +711,9 @@ table td.cast_role { } -/* ################ +/* ############################## # Event (page: whats_on.html) - ################ + ############################## */ div.event { @@ -856,10 +867,11 @@ div.__progress div.__elapsed { background-color: #E9EFFF; } -/* ################################## - # table listing - # (this is used in listing tables) - ################################## + +/* ############################# + # Table listing + # (used in list tables) + ############################# */ table.listing { @@ -924,10 +936,11 @@ table.listing a { font-weight: bold; } -/* ################################## - # table schedule - # (this is used for the MultiSchedule) - ################################## + +/* ############################## + # Table schedule + # (used for the MultiSchedule) + ############################## */ table.mschedule { @@ -1011,10 +1024,10 @@ table.mschedule a>img { vertical-align: text-bottom; } -/* - ############################## - # Blue Background Thingy - ############################## + +/* ############################# + # Blue background thingy + ############################# */ div.boxheader { @@ -1043,10 +1056,10 @@ div.boxheader > div > div { white-space: nowrap; } -/* - ############################## - # Recordings - ############################## + +/* ############################# + # Recordings + ############################# */ table.recordings { @@ -1128,10 +1141,10 @@ tr.recording_item:last-child { padding-right: 0.5em; } -/* - ############################## - # Remote Control Keypad - ############################## + +/* ############################# + # Remote control keypad + ############################# */ div.screenshot { @@ -1150,9 +1163,9 @@ div.screenshot img { } -/* ############################## - # Remote page - OSD - ############################## +/* ############################# + # Remote page - OSD + ############################# */ #osd { @@ -1206,15 +1219,16 @@ div.screenshot img { text-align: center; cursor:pointer; } + .osdButtonGreen {background-color:green} .osdButtonYellow {background-color:yellow;color:black} .osdButtonBlue {background-color:blue} .osdButtonRed {background-color:red} -/* - ############################## - # Error widget - ############################## + +/* ############################# + # Error widget + ############################# */ table.error { @@ -1241,11 +1255,11 @@ table.error td.border { width: 1px; } -/* - ############################## - # Formular Tables - # (are used in forms to group input elements) - ############################## + +/* ######################################## + # Formular tables + # (used in forms to group input elements) + ######################################## */ table.formular { @@ -1299,10 +1313,10 @@ table.dependent tr td { vertical-align: middle; } -/* - ############################## - # Login - ############################## + +/* ############################# + # Login + ############################# */ table.login { @@ -1314,10 +1328,10 @@ table.login tr td { text-align: right; } -/* - ############################## - # Styles for EPG-Boxes - ############################## + +/* ############################# + # Styles for EPG boxes + ############################# */ div.caption { @@ -1359,9 +1373,10 @@ span.epg_images img.epg_image { border: 0px; } -/* ############################## - # Style adaptions for About box - ############################## + +/* ################################## + # Style adaptations for About box + ################################## */ div.epg_content div.about_left { @@ -1423,11 +1438,12 @@ img.thumb { width: 0px; } -/* ###################### + +/* ############################################### # @media (max-width: 600px) - # on end of stylesheet, as order of stylesheet + # at end of stylesheet, as order of stylesheet # matters in conflicting cases - ###################### + ############################################### */ .xs-nomargin { margin: 5px; } @@ -1474,7 +1490,7 @@ img.actor { width: 73px; } .hint-tip { - max-width: 200px; /* depends on the tip backround image width */ + max-width: 200px; /* depends on the tip background image width */ } img.channel_logo { max-height:32px; max-width:90px; diff --git a/live/js/live/browserwin.js b/live/js/live/browserwin.js index 7a908c6e..39f6cf8e 100644 --- a/live/js/live/browserwin.js +++ b/live/js/live/browserwin.js @@ -1,5 +1,5 @@ /* - * This is part of the live vdr plugin. See COPYING for license information. + * This is part of the live VDR plugin. See COPYING for license information. * * browserwin.js * @@ -28,7 +28,7 @@ var BrowserWin = new Class({ menubar: false, scrollbar: false, resizable: true, - wm: false // overide default window manager. + wm: false // override default window manager. }, initialize: function(id, url, options){ diff --git a/live/js/live/createHtml.js b/live/js/live/createHtml.js index 4856921e..900b8a1e 100644 --- a/live/js/live/createHtml.js +++ b/live/js/live/createHtml.js @@ -1,8 +1,7 @@ /* - * This is part of the live vdr plugin. See COPYING for license information. - * - * helper functions to create html + * This is part of the live VDR plugin. See COPYING for license information. * + * Helper functions to create HTML. */ function addIfWide(text) { @@ -89,7 +88,7 @@ function addTruncMedia(s, text, lims, liml) { } function add2ndLine(s, shortText, description) { -// second line (title / short text). Truncate, use decription, ... +// second line (title / short text). Truncate, use description, ... s.a += '' if (shortText.length != 0) { addTruncMedia(s, shortText, 50, 80) @@ -103,7 +102,7 @@ function add2ndLine(s, shortText, description) { function addEventRec(s, eventprefix, eventid, title, folder, shortText, description, lf, cvd, sort, filter, flat, history_num_back) { // eventprefix == 'recording_' or 'event_' // lf: line feed -// cvs: tr("Click to view details.") +// cvd: tr("Click to view details.") s.a += '") s.a += ')' } - s.a += '' + s.a += '' add2ndLine(s, shortText, description) s.a += '' } @@ -182,7 +181,7 @@ function clearCheckboxes(form) { async function execute(url) { /* * Input: - * Url: url to the page triggering the execution of the function + * url: URL to the page triggering the execution of the function * this includes the parameters * '&async=1' will be appended (which is required to get an XML response, * actually we wait for the server response) @@ -201,17 +200,17 @@ async function execute(url) { var ret_object = new Object(); ret_object.success = false; if (!req_responseXML) { - ret_object.error = "invalid xml, no responseXML"; + ret_object.error = "invalid XML, no responseXML"; return ret_object; } var response_array = req_responseXML.getElementsByTagName("response"); if (response_array.length != 1) { - ret_object.error = "invalid xml, no response tag or several response tags"; + ret_object.error = "invalid XML, no response tag or several response tags"; return ret_object; } var response_child_nodes = response_array[0].childNodes; if (response_child_nodes.length != 1) { - ret_object.error = "invalid xml, no child of response tag or several childs of response tag"; + ret_object.error = "invalid XML, no child of response tag or several children of response tag"; return ret_object; } if (response_child_nodes[0].nodeValue == "1") { @@ -219,18 +218,18 @@ async function execute(url) { return ret_object; } if (response_child_nodes[0].nodeValue != "0") { - ret_object.error = "invalid xml, response node value " + response_child_nodes[0].nodeValue + " unknown"; + ret_object.error = "invalid XML, response node value " + response_child_nodes[0].nodeValue + " unknown"; return ret_object; } var error_array = req_responseXML.getElementsByTagName("error"); if (error_array.length != 1) { - ret_object.error = "invalid xml, no error tag or several error tags"; + ret_object.error = "invalid XML, no error tag or several error tags"; return ret_object; } var error_child_nodes = error_array[0].childNodes; if (error_child_nodes.length != 1) { - ret_object.error = "invalid xml, no child of error tag or several childs of error tag"; + ret_object.error = "invalid XML, no child of error tag or several children of error tag"; return ret_object; } ret_object.error = error_child_nodes[0].nodeValue; @@ -299,7 +298,7 @@ async function RecordingsSt_a(s, level, displayFolder, data) { const new_recs = await response.text(); eval(new_recs); if (vdr_restart) { - location.reload(); + location.reload(); } else { RecordingsSt_int(s, level, displayFolder, data); } diff --git a/live/js/live/epg_tt_box.js b/live/js/live/epg_tt_box.js index d025c05e..b9aeba5a 100644 --- a/live/js/live/epg_tt_box.js +++ b/live/js/live/epg_tt_box.js @@ -1,3 +1,7 @@ +/* + * This is part of the live VDR plugin. See COPYING for license information. + */ + function classSetValue(element_id, value) { if (document && document.getElementById(element_id) ) { document.getElementById(element_id).setAttribute("class", value); diff --git a/live/js/live/header.js b/live/js/live/header.js index a8db3db2..85fc7eff 100644 --- a/live/js/live/header.js +++ b/live/js/live/header.js @@ -1,3 +1,7 @@ +/* + * This is part of the live VDR plugin. See COPYING for license information. + */ + function adjustHeader() { // exchange body top margin by equally-sized header-padding element diff --git a/live/js/live/hinttips.js b/live/js/live/hinttips.js index a7509888..14ebf61e 100644 --- a/live/js/live/hinttips.js +++ b/live/js/live/hinttips.js @@ -1,5 +1,5 @@ /* - * This is part of the live vdr plugin. See COPYING for license information. + * This is part of the live VDR plugin. See COPYING for license information. * * HintTips class. * diff --git a/live/js/live/infowin.js b/live/js/live/infowin.js index 288f4321..58e81425 100644 --- a/live/js/live/infowin.js +++ b/live/js/live/infowin.js @@ -1,11 +1,11 @@ /* - * This is part of the live vdr plugin. See COPYING for license information. + * This is part of the live VDR plugin. See COPYING for license information. * * InfoWin.js * * InfoWin class, InfoWin.Manager class, InfoWin.Ajax class. * - * Extension of mootools to display a popup window with some html + * Extension of mootools to display a popup window with some HTML * code. */ @@ -20,9 +20,9 @@ Options: Note: A window consists of a frame-element. This is the overall containing element used to control the display and size of the - window. It is accesable through the 'winFrame' property. + window. It is accessible through the 'winFrame' property. - The InfoWin class provides the followin properties to fill the + The InfoWin class provides the following properties to fill the window with content: - titleBox: the element meant to place the title of the window into. - buttonBox: here the default window buttons are created. You might @@ -37,7 +37,7 @@ var InfoWin = new Class({ onDomExtend: Class.empty, destroyOnHide: false, className: 'info', - wm: false, // overide default window manager. + wm: false, // override default window manager. draggable: true, resizable: true, buttonimg: 'transparent.png', @@ -228,8 +228,8 @@ InfoWin.implement(new Events, new Options); /* Class: InfoWin.Manager Provide an container and events for the created info win - instances. Closed info-wins are preserved in a hidden dom element - and used again if a window with a closed id is openend again. + instances. Closed info-wins are preserved in a hidden DOM element + and used again if a window with a closed id is opened again. */ InfoWin.Manager = new Class({ options: { @@ -318,7 +318,7 @@ function decrease_history_num_back(url) { InfoWin.Ajax = InfoWin.extend({ options: { loadingMsg: 'loading', - errorMsg: 'an error occured!', + errorMsg: 'an error occurred!', onError: Class.empty }, @@ -345,7 +345,7 @@ InfoWin.Ajax = InfoWin.extend({ }, // this function gets called when no previous instance for 'id' - // created a dom subtree for an infowin. + // created a DOM subtree for an infowin. build: function(id){ if (!this.parent(id)) { this.titleBox.setHTML(this.options.loadingMsg); @@ -362,8 +362,8 @@ InfoWin.Ajax = InfoWin.extend({ /* Class: Infowin.Notifier - Creates a notification popup that disappears automaticaly. - Usefull for a confirmation message after a AJAX action request. + Creates a notification popup that disappears automatically. + Useful for a confirmation message after a AJAX action request. */ InfoWin.Notifier = InfoWin.extend({ diff --git a/live/js/live/liveajax.js b/live/js/live/liveajax.js index 756727d6..fc8f8f9c 100644 --- a/live/js/live/liveajax.js +++ b/live/js/live/liveajax.js @@ -1,5 +1,7 @@ /* - * Javascript function for quick ajax requests. + * This is part of the live VDR plugin. See COPYING for license information. + * + * Javascript function for quick AJAX requests. * This file needs mootools.js to be included on the pages. */ diff --git a/live/js/live/pageenhance.js b/live/js/live/pageenhance.js index d7a5e336..6e651324 100644 --- a/live/js/live/pageenhance.js +++ b/live/js/live/pageenhance.js @@ -1,5 +1,5 @@ /* - * This is part of the live vdr plugin. See COPYING for license information. + * This is part of the live VDR plugin. See COPYING for license information. * * PageEnhance class. * @@ -18,7 +18,7 @@ var PageEnhance = new Class({ infoWinOptions: { bodyselect: 'div.epg_content', loadingMsg: 'loading', - errorMsg: 'an error occured!' + errorMsg: 'an error occurred!' }, notifyIdPrefix: 'notify', notifyStrings: { @@ -50,7 +50,7 @@ var PageEnhance = new Class({ }, // registered as 'onDomExtend' event for InfoWin. Takes care to - // enhance the new dom elements too. + // enhance the new DOM elements, too. domExtend: function(id, elems){ var sel = '#' + id + ' ' + this.options.hintTipSelector; elems = $$(sel); @@ -58,8 +58,8 @@ var PageEnhance = new Class({ $$('#' + id + ' ' + this.options.actionLinkSelector).each(this.vdrRequest.bind(this)); }, - // Epg Popup function. Apply to all elements that should - // pop up an Epg InfoWin window. + // EPG popup function. Apply to all elements that should + // pop up an EPG InfowWin window. epgPopup: function(el){ var href = el.href; var epgid = $pick(href, ""); @@ -108,7 +108,7 @@ var PageEnhance = new Class({ } }, - // function that requests an action from the server vdr. + // function that requests an action from the server VDR. vdrRequest: function(el){ el.addEvent('click', function(event, element){ var href = $pick(element.href, ""); diff --git a/live/js/live/vdr_status.js b/live/js/live/vdr_status.js index fbc89ccb..b0de0c1a 100644 --- a/live/js/live/vdr_status.js +++ b/live/js/live/vdr_status.js @@ -1,4 +1,6 @@ /* + * This is part of the live VDR plugin. See COPYING for license information. + * * Javascript functions for the status update box. * This file needs mootools.js to be included on the pages. */ @@ -106,7 +108,7 @@ var LiveVdrInfo = Ajax.extend({ } }, - // private function to display information from epg info. + // private function to display information from EPG info. setEpgInfo: function(xmldoc) { var epgInfo = xmldoc.getElementsByTagName('epginfo').item(0); diff --git a/live/themes/orange-blue/css/theme.css b/live/themes/orange-blue/css/theme.css index 340a5221..afcb5e39 100644 --- a/live/themes/orange-blue/css/theme.css +++ b/live/themes/orange-blue/css/theme.css @@ -1,6 +1,6 @@ -/* ###################### +/* ############################# # Globals - ###################### + ############################# */ html, body { @@ -26,9 +26,10 @@ a { color: #F5EE74; } -/* ###################### - # Tooltip style for hints - ###################### + +/* ############################# + # Tooltip style for hints + ############################# */ .hint-tip { @@ -60,9 +61,9 @@ a { } -/* ############################## - # Tooltip style for epg infos - ############################## +/* ############################# + # Tooltip style for EPG info + ############################# */ .info-win .info-win-top { @@ -92,9 +93,10 @@ a { background: transparent url(../img/info-win-b-r.png) no-repeat right 0px; } -/* ####################### - # Menue - ####################### + +/* ############################# + # Menu + ############################# */ div.menu { @@ -146,9 +148,10 @@ div#pagemenu span.sep { color: #FCBC40; } -/* ####################### - # Info Box (near logo) - ####################### + +/* ############################# + # Info box (near logo) + ############################# */ div#infobox { @@ -168,9 +171,10 @@ div#infobox div.st_controls div.st_update { border-right: 1px solid #FCBC40; } -/* ################################ - # general table cell classes - ################################ + +/* ############################# + # General table-cell classes + ############################# */ table td.bottomrow { @@ -186,9 +190,9 @@ table td.rightcol { } -/* ################ - # Mulitschedule - ################ +/* ############################# + # MultiSchedule + ############################# */ table.mschedule tr td.even { @@ -207,9 +211,10 @@ table.mschedule a { color: inherit; } -/* ################ + +/* ############################# # Event - ################ + ############################# */ div.station div { @@ -251,9 +256,9 @@ img.channel_logo { } -/* ############# - # Timers - ############# +/* ############################# + # Timers + ############################# */ table.listing tr td { @@ -279,10 +284,9 @@ table.listing a { } -/* - ############################## - # Blue Background Thingy - ############################## +/* ############################# + # Blue background thingy + ############################# */ div.boxheader { @@ -298,10 +302,10 @@ div.boxheader div div { color: black; } -/* - ############################## - # Recordings - ############################## + +/* ############################# + # Recordings + ############################# */ div.recordings { @@ -316,10 +320,9 @@ div.recording_item { } -/* - ############################## - # Remote Control Keypad - ############################## +/* ############################# + # Remote control keypad + ############################# */ div.screenshot { @@ -327,10 +330,9 @@ div.screenshot { } -/* - ############################## - # Dotted Frame - ############################## +/* ############################# + # Dotted frame + ############################# */ div.dotted { @@ -342,10 +344,9 @@ div.dotted { } -/* - ############################## - # Edit Tables - ############################## +/* ############################# + # Edit tables + ############################# */ table.formular tr td { @@ -358,10 +359,10 @@ table.dependent { background-color: #263480; } -/* - ############################## - # Infowin support styles for EPG-Boxes - ############################## + +/* ####################################### + # InfoWin support styles for EPG boxes + ####################################### */ .info-win div.epg_content { @@ -369,9 +370,9 @@ table.dependent { } -/* ############################## +/* ############################# # About box - ############################## + ############################# */ .info-win div.epg_content div.about_head div div { diff --git a/live/themes/redwine/css/theme.css b/live/themes/redwine/css/theme.css index d1d9e87d..c379dffa 100644 --- a/live/themes/redwine/css/theme.css +++ b/live/themes/redwine/css/theme.css @@ -1,6 +1,6 @@ -/* ###################### +/* ############################# # Globals - ###################### + ############################# */ input { @@ -11,9 +11,10 @@ select { border: 1px solid #963B5F; } -/* ###################### + +/* ############################# # Tooltip style for hints - ###################### + ############################# */ .hint-tip { @@ -45,18 +46,19 @@ select { } -/* ############################## - # Tooltip style for epg infos - ############################## +/* ############################# + # Tooltip style for EPG info + ############################# */ .domTTepg div.epg_content { background: white url(../img/bg_tools.png) top left repeat-y; } -/* ####################### - # Menue - ####################### + +/* ############################# + # Menu + ############################# */ div.menu { @@ -90,9 +92,10 @@ div#pagemenu span.active { color: #984E79; } -/* ####################### - # Info Box (near logo) - ####################### + +/* ############################# + # Info box (near logo) + ############################# */ div#infobox { @@ -112,9 +115,10 @@ div#infobox div.st_controls div.st_update { border-right: 1px solid #DA8DA8; } -/* ####################### - # Head Box - ####################### + +/* ############################# + # Head box + ############################# */ div.head_box_l { @@ -145,9 +149,10 @@ button.blue { background-image: url(../img/button_blue.png); } -/* ################ + +/* ############################# # Event - ################ + ############################# */ div.station div { @@ -178,10 +183,9 @@ img.channel_logo { } -/* - ############################## - # Blue Background Thingy - ############################## +/* ############################# + # Blue background thingy + ############################# */ div.boxheader { @@ -196,10 +200,10 @@ div.boxheader div div { background: url(../img/bg_box_h.png) repeat-x; } -/* - ############################## - # Recordings - ############################## + +/* ############################# + # Recordings + ############################# */ div.recording_item { @@ -208,10 +212,9 @@ div.recording_item { } -/* - ############################## - # Remote Control Keypad - ############################## +/* ############################# + # Remote control keypad + ############################# */ div.screenshot { @@ -219,10 +222,9 @@ div.screenshot { } -/* - ############################## - # Edit Tables - ############################## +/* ############################# + # Edit tables + ############################# */ table.formular tr td { @@ -231,10 +233,9 @@ table.formular tr td { } -/* - ############################## - # Search results - ############################## +/* ############################# + # Search results + ############################# */ table.listing tr td.head { diff --git a/live/themes/veltliner/css/theme.css b/live/themes/veltliner/css/theme.css index 3ebbc942..2abfd34e 100644 --- a/live/themes/veltliner/css/theme.css +++ b/live/themes/veltliner/css/theme.css @@ -1,6 +1,6 @@ -/* ############################## +/* ############################# # Globals - ############################## + ############################# */ input { @@ -11,9 +11,10 @@ select { border: 1px solid #E0F000; } -/* ###################### - # Tooltip style for hints - ###################### + +/* ############################# + # Tooltip style for hints + ############################# */ .hint-tip { @@ -45,9 +46,9 @@ select { } -/* ############################## - # Tooltip style for epg infos - ############################## +/* ############################# + # Tooltip style for EPG info + ############################# */ .info-win .info-win-top { @@ -65,9 +66,10 @@ select { color: #000; } -/* ####################### - # Menue - ####################### + +/* ############################# + # Menu + ############################# */ div.menu { @@ -101,9 +103,10 @@ div#pagemenu span.active { color: #E03000; } -/* ####################### - # Info Box (near logo) - ####################### + +/* ############################# + # Info box (near logo) + ############################# */ div#infobox { @@ -123,9 +126,10 @@ div#infobox div.st_controls div.st_update { border-right: 1px solid #009100; } -/* ####################### - # Head Box - ####################### + +/* ############################# + # Head box + ############################# */ div.head_box_l { @@ -156,9 +160,10 @@ button.blue { background-image: url(../img/button_blue.png); } -/* ################ + +/* ############################# # Event - ################ + ############################# */ div.station div { @@ -189,10 +194,9 @@ img.channel_logo { } - -/* ############# - # Timers - ############# +/* ############################# + # Timers + ############################# */ table.timers tr td { @@ -205,10 +209,9 @@ table.timers tr.description td { } -/* - ############################## - # Schedule - ############################## +/* ############################# + # Schedule + ############################# */ table.schedule tr td.head { @@ -221,10 +224,9 @@ table.schedule tr td { } -/* - ############################## - # Blue Background Thingy - ############################## +/* ############################# + # Blue background thingy + ############################# */ div.boxheader { @@ -239,10 +241,10 @@ div.boxheader div div { background: url(../img/bg_box_h.png) repeat-x; } -/* - ############################## - # Recordings - ############################## + +/* ############################# + # Recordings + ############################# */ div.recording_item { @@ -251,10 +253,9 @@ div.recording_item { } -/* - ############################## - # Remote Control Keypad - ############################## +/* ############################# + # Remote control keypad + ############################# */ div.screenshot { @@ -262,10 +263,9 @@ div.screenshot { } -/* - ############################## - # Edit Tables - ############################## +/* ############################# + # Edit tables + ############################# */ table.edit tr td { @@ -274,10 +274,9 @@ table.edit tr td { } -/* - ############################## - # Search results - ############################## +/* ############################# + # Search results + ############################# */ table.searchresults tr td.head { @@ -289,16 +288,17 @@ table.searchresults tr td { border-bottom: 1px solid #006E00; } -/* - ############################## - # Infowin support styles for EPG-Boxes - ############################## + +/* ####################################### + # InfoWin support styles for EPG boxes + ####################################### */ .info-win div.epg_content { background: transparent url(../img/bg_tools.png) top left repeat-y; } + /* ############################## # About box ############################## diff --git a/livefeatures.h b/livefeatures.h index c578ca26..e0f1ebe3 100644 --- a/livefeatures.h +++ b/livefeatures.h @@ -5,7 +5,7 @@ #include #if TNTVERSION >= 30000 - #include // must be loaded before any vdr include because of duplicate macros (LOG_ERROR, LOG_DEBUG, LOG_INFO) + #include // must be loaded before any VDR include because of duplicate macros (LOG_ERROR, LOG_DEBUG, LOG_INFO) #endif #include diff --git a/md5.cpp b/md5.cpp index 75b202a9..7d6bcd03 100644 --- a/md5.cpp +++ b/md5.cpp @@ -80,7 +80,7 @@ char* PrintMD5(uchar md5Digest[16]) // strncat(chBuffer, chEach, sizeof(chEach)); // compiler warning with gcc V9 strncat(chBuffer, chEach, sizeof(chBuffer)-strlen(chBuffer)-1); // no need to limit to the size of chEach, // because it will only append up to the 0 byte of chEach, - // but dont overflow chBuffer and let room the terminating 0 + // but don't overflow chBuffer and let room the terminating 0 } return strdup(chBuffer); diff --git a/pages/page_init.eh b/pages/page_init.eh index da4374e5..b8311c7a 100644 --- a/pages/page_init.eh +++ b/pages/page_init.eh @@ -1,7 +1,7 @@ <%pre> // do not add to Makefile // and do not write a ecpp comment into this file. It must produce no -// html output not even an empty line. +// HTML output not even an empty line. #include #include diff --git a/pages/pageelems.ecpp b/pages/pageelems.ecpp index 530cba24..cb95c858 100644 --- a/pages/pageelems.ecpp +++ b/pages/pageelems.ecpp @@ -1199,8 +1199,8 @@ for (const cTvMedia &media: *media_v) { (<$ tr("Homepage") $>)
<$ tr("Information providers") $>
-
Movie information provided by TMDB. This product uses the TMDB API but is not endorsed or certified by TMDB
-
Information provided by TheTVDB.com. Please consider supporting them
+
Movie information provided by TMDB. This product uses the TMDB API but is not endorsed or certified by TMDB.
+
Information provided by TheTVDB.com. Please consider supporting them.
<$ tr("Bugs and suggestions") $>
<$ tr("If you encounter any bugs or would like to suggest new features, please use our bugtracker") $>:
https://github.com/MarkusEh/vdr-plugin-live/issues
diff --git a/pages/playlist.ecpp b/pages/playlist.ecpp index d0a2f64f..3f99c4fc 100644 --- a/pages/playlist.ecpp +++ b/pages/playlist.ecpp @@ -26,7 +26,7 @@ using namespace vdrlive; if (!cUser::CurrentUserHasRightTo(UR_STARTREPLAY)) throw HtmlError( tr("Sorry, no permission. Please contact your administrator!") ); - // the availabilty of Channel signals that we will do live tv streaming. + // the availabilty of Channel signals that we will do live TV streaming. Channel = 0; if (recid.empty()) { LOCK_CHANNELS_READ; diff --git a/pages/recordings.ecpp b/pages/recordings.ecpp index faf09e2a..148473eb 100644 --- a/pages/recordings.ecpp +++ b/pages/recordings.ecpp @@ -166,7 +166,7 @@ function RecordingActionS(s, id, A, Img, Title) { // [5] : title (scraper) // [6] : season / episode (scraper, for tv shows, if available. Otherwise: Empty) // [7] : runtime (scraper) -// [8] : relase date (scraper) +// [8] : release date (scraper) // end scraper data // [9] : Day, time // [10] : Number of recording errors @@ -182,7 +182,7 @@ function RecordingActionS(s, id, A, Img, Title) { // [20] : size // [21] : numTsFiles // [22] : frame parameter text -// befor calling, make sure that all recs[obj_i] exist! +// before calling, make sure that all recs[obj_i] exist! #> function RecordingsSt_int(s, level, displayFolder, data) { s.a += '
  • ' diff --git a/pages/searchresults.ecpp b/pages/searchresults.ecpp index 3cc35fbc..e67261ca 100644 --- a/pages/searchresults.ecpp +++ b/pages/searchresults.ecpp @@ -101,7 +101,7 @@ bool logged_in(false); bottom = (day != nextDay); } - StateKey.Remove(); // release channels read lock before calling event_timer which make a timers read lock + StateKey.Remove(); // release channels read lock before calling event_timer which makes a timers read lock recItemFound = appendEpgItem(epg_itemS, recItem, event, channel, true); int col_span = 4; if (display_pictures) col_span++; diff --git a/pages/timers.ecpp b/pages/timers.ecpp index 0fb3b0f7..3c322dca 100644 --- a/pages/timers.ecpp +++ b/pages/timers.ecpp @@ -149,6 +149,7 @@ using namespace vdrlive;
    <$ trVDR("File") $>
    <$ tr("Searchtimer") $>
    + diff --git a/po/cs_CZ.po b/po/cs_CZ.po index 3b8a6f85..6a3c350d 100644 --- a/po/cs_CZ.po +++ b/po/cs_CZ.po @@ -651,6 +651,9 @@ msgstr "" msgid "Stream this recording into media player." msgstr "" +msgid "Stream this recording." +msgstr "" + msgid "loading data" msgstr "aktualizace údajů" diff --git a/po/de_DE.po b/po/de_DE.po index 59a838a4..384f33d5 100644 --- a/po/de_DE.po +++ b/po/de_DE.po @@ -644,6 +644,9 @@ msgstr "Sender in Mediaplayer abspielen." msgid "Stream this recording into media player." msgstr "Aufnahme in Mediaplayer abspielen." +msgid "Stream this recording." +msgstr "Aufnahme streamen." + msgid "loading data" msgstr "Daten nachladen" diff --git a/po/es_ES.po b/po/es_ES.po index 769efe3e..6677220a 100644 --- a/po/es_ES.po +++ b/po/es_ES.po @@ -642,6 +642,9 @@ msgstr "" msgid "Stream this recording into media player." msgstr "" +msgid "Stream this recording." +msgstr "" + msgid "loading data" msgstr "cargando datos" diff --git a/po/fi_FI.po b/po/fi_FI.po index 716e3feb..29204ae2 100644 --- a/po/fi_FI.po +++ b/po/fi_FI.po @@ -642,6 +642,9 @@ msgstr "" msgid "Stream this recording into media player." msgstr "" +msgid "Stream this recording." +msgstr "" + msgid "loading data" msgstr "ladataan tietoja" diff --git a/po/fr_FR.po b/po/fr_FR.po index fc0e5895..74cf9fbd 100644 --- a/po/fr_FR.po +++ b/po/fr_FR.po @@ -662,6 +662,9 @@ msgstr "" msgid "Stream this recording into media player." msgstr "" +msgid "Stream this recording." +msgstr "" + msgid "loading data" msgstr "Chargement des donnes" diff --git a/po/it_IT.po b/po/it_IT.po index 6e7d3805..77614ca1 100644 --- a/po/it_IT.po +++ b/po/it_IT.po @@ -648,6 +648,9 @@ msgstr "" msgid "Stream this recording into media player." msgstr "" +msgid "Stream this recording." +msgstr "" + msgid "loading data" msgstr "caricamento dati" diff --git a/po/ka_GE.po b/po/ka_GE.po index 8ceccccf..8c415ec8 100644 --- a/po/ka_GE.po +++ b/po/ka_GE.po @@ -645,6 +645,9 @@ msgstr "ამ არხის მედიის დამკვრელში msgid "Stream this recording into media player." msgstr "ამ ჩანაწერის მედიის დამკვრელში ჩვენება." +msgid "Stream this recording." +msgstr "" + msgid "loading data" msgstr "მონაცემების ჩატვირთვა" diff --git a/po/lt_LT.po b/po/lt_LT.po index f2a75673..74a5b16a 100644 --- a/po/lt_LT.po +++ b/po/lt_LT.po @@ -644,6 +644,9 @@ msgstr "" msgid "Stream this recording into media player." msgstr "" +msgid "Stream this recording." +msgstr "" + msgid "loading data" msgstr "duomenys kraunami" diff --git a/po/nl_NL.po b/po/nl_NL.po index 1b350484..c9fddbcc 100644 --- a/po/nl_NL.po +++ b/po/nl_NL.po @@ -658,6 +658,9 @@ msgstr "" msgid "Stream this recording into media player." msgstr "" +msgid "Stream this recording." +msgstr "" + msgid "loading data" msgstr "" diff --git a/po/pl_PL.po b/po/pl_PL.po index d895b175..d6c8a4f9 100644 --- a/po/pl_PL.po +++ b/po/pl_PL.po @@ -643,6 +643,9 @@ msgstr "Oglądaj kanał w odtwarzaczu multimediów" msgid "Stream this recording into media player." msgstr "Oglądaj nagranie w odtwarzaczu multimediów" +msgid "Stream this recording." +msgstr "" + msgid "loading data" msgstr "ładuję ..." diff --git a/po/ru_RU.po b/po/ru_RU.po index b18f9958..de92f99f 100644 --- a/po/ru_RU.po +++ b/po/ru_RU.po @@ -642,6 +642,9 @@ msgstr "" msgid "Stream this recording into media player." msgstr "" +msgid "Stream this recording." +msgstr "" + msgid "loading data" msgstr "загрузка данных" diff --git a/po/sk_SK.po b/po/sk_SK.po index aac11fb0..73129ea6 100644 --- a/po/sk_SK.po +++ b/po/sk_SK.po @@ -643,6 +643,9 @@ msgstr "" msgid "Stream this recording into media player." msgstr "" +msgid "Stream this recording." +msgstr "" + msgid "loading data" msgstr "natanie dt" diff --git a/po/sv_SE.po b/po/sv_SE.po index 6d63d262..4b2ed2ce 100644 --- a/po/sv_SE.po +++ b/po/sv_SE.po @@ -642,6 +642,9 @@ msgstr "" msgid "Stream this recording into media player." msgstr "" +msgid "Stream this recording." +msgstr "" + msgid "loading data" msgstr "Laddar data" diff --git a/recman.cpp b/recman.cpp index 01f23762..26091706 100644 --- a/recman.cpp +++ b/recman.cpp @@ -62,17 +62,17 @@ template void StringAppendFrameParams>(cToSvConcat<255> &s, con // The RecordingsManager holds a VDR lock on the // Recordings. Additionally the singleton instance of // RecordingsManager is held in a weak pointer. If it is not in - // use any longer, it will be freed automaticaly, which leads to a + // use any longer, it will be freed automatically, which leads to a // release of the VDR recordings lock. Upon requesting access to // the RecordingsManager via LiveRecordingsManger function, first // the weak ptr is locked (obtaining a std::shared_ptr from an possible - // existing instance) and if not successfull a new instance is + // existing instance) and if not successful a new instance is // created, which again locks the VDR Recordings. // // RecordingsManager provides factory methods to obtain other // recordings data structures. The data structures returned keep if // needed the instance of RecordingsManager alive until destructed - // themselfs. This way the use of LIVE::recordings is straight + // themselves. This way the use of LIVE::recordings is straight // forward and does hide the locking needs from the user. RecordingsManager::RecordingsManager() @@ -190,8 +190,8 @@ template void StringAppendFrameParams>(cToSvConcat<255> &s, con int RecordingsManager::GetArchiveType(cRecording const * recording) { -// 1: on dvd -// 2: on hdd +// 1: on DVD +// 2: on HDD // 0: "normal" VDR recording if (!LiveSetup().GetUseArchive() ) return 0; if (!recording || !recording->FileName() ) return 0; @@ -328,7 +328,7 @@ template void StringAppendFrameParams>(cToSvConcat<255> &s, con } /** - * Implemetation of class RecordingsItemPtrCompare + * Implementation of class RecordingsItemPtrCompare */ int RecordingsItemPtrCompare::FindBestMatch(RecordingsItemRecPtr & BestMatch, const std::vector::const_iterator & First, const std::vector::const_iterator & Last, const RecordingsItemRecPtr & EPG_Entry) { @@ -482,7 +482,7 @@ bool searchNameDesc(RecordingsItemRecPtr &RecItem, const std::vector 5) return false; // no matching lenght or series (too many matching length) + if (num_match_rec == 0 || num_match_rec > 5) return false; // no matching length or series (too many matching lengths) return true; } @@ -757,7 +757,7 @@ bool searchNameDesc(RecordingsItemRecPtr &RecItem, const std::vectorm_s_videoType) return (int)m_s_videoType < (int)second->m_s_videoType; // 2 if no scraper data. Move these to the end, by using < switch (m_s_videoType) { case tMovie: @@ -849,7 +849,7 @@ bool searchNameDesc(RecordingsItemRecPtr &RecItem, const std::vectorFramesPerSecond() > 0 && RecInfo()->FramesPerSecond() < 24) m_video_SD_HD = -1; // radio else @@ -889,7 +889,7 @@ void AppendScraperData(cToSvConcat<0> &target, cSv s_IMDB_ID, const cTvMedia &s_ // [7] : runtime (scraper) if (scraperDataAvailable && s_runtime) AppendDuration(target, tr("(%d:%02d)"), s_runtime*60); target.append("\",\""); -// [8] : relase date (scraper) +// [8] : release date (scraper) if (scraperDataAvailable && !s_release_date.empty() ) target.append(s_release_date); target.append("\""); } @@ -1015,7 +1015,7 @@ void AppendScraperData(cToSvConcat<0> &target, cSv s_IMDB_ID, const cTvMedia &s_ } /** - * Implemetation of class RecordingsItemDummy + * Implementation of class RecordingsItemDummy */ RecordingsItemDummy::RecordingsItemDummy(const cEvent *event, cScraperVideo *scraperVideo): RecordingsItemRec(event->Title() ), @@ -1198,7 +1198,7 @@ void AppendScraperData(cToSvConcat<0> &target, cSv s_IMDB_ID, const cTvMedia &s_ } } -// icon with recording errors, and tooltip +// icon with recording errors and tooltip std::string recordingErrorsHtml(int recordingErrors) { #if VDRVERSNUM >= 20505 std::string result; diff --git a/recman.h b/recman.h index c2a97217..fbfbd592 100644 --- a/recman.h +++ b/recman.h @@ -10,7 +10,7 @@ #include #if TNTVERSION >= 30000 - #include // must be loaded before any vdr include because of duplicate macros (LOG_ERROR, LOG_DEBUG, LOG_INFO) + #include // must be loaded before any VDR include because of duplicate macros (LOG_ERROR, LOG_DEBUG, LOG_INFO) #endif #include @@ -27,7 +27,7 @@ namespace vdrlive { template void StringAppendFrameParams(T &s, const cRecording *rec); - // Forward declations from epg_events.h + // Forward declarations from epg_events.h class EpgInfo; typedef std::shared_ptr EpgInfoPtr; @@ -107,7 +107,7 @@ template void DeleteRecording(cRecording const * recording) const; /** - * Determine wether the recording has been archived on + * Determine whether the recording has been archived on * removable media (e.g. DVD-ROM) */ static int GetArchiveType(cRecording const * recording); @@ -432,7 +432,7 @@ template /** * A smart pointer to a recordings tree. As long as an instance of this - * exists the recordings are locked in the vdr. + * exists the recordings are locked in the VDR. */ class RecordingsTreePtr : public std::shared_ptr { diff --git a/services.h b/services.h index c91237b8..add1ad93 100644 --- a/services.h +++ b/services.h @@ -84,7 +84,7 @@ class ScraperGetEventType { int episodeId; }; -// Data structure for enviromment ("GetEnvironment" call) +// Data structure for environment ("GetEnvironment" call) class cEnvironment { @@ -232,7 +232,7 @@ class cGetAutoTimerReason { public: //in: const cTimer *timer = nullptr; // only timer OR recording must be provided - const cRecording *recording_in = nullptr; // information about the timer creating this recoring is provided + const cRecording *recording_in = nullptr; // information about the timer creating this recording is provided bool requestRecording = false; // set this to true if you need the cRecording object //out bool createdByTvscraper; // if this is false, please ignore all other return values @@ -367,7 +367,7 @@ class cScraperVideo virtual int getLanguage() = 0; // return -1 in case of errors // the other attributes of a movie or TV show: -// note: runtime will be provided here only for movies. For tv shows, the runtime is provided with getEpisode +// note: runtime will be provided here only for movies. For TV shows, the runtime is provided with getEpisode virtual bool getMovieOrTv(std::string *title, std::string *originalTitle, std::string *tagline, std::string *overview, std::vector *genres, std::string *homepage, std::string *releaseDate, bool *adult, int *runtime, float *popularity, float *voteAverage, int *voteCount, std::vector *productionCountries, std::string *imdbId, int *budget, int *revenue, int *collectionId, std::string *collectionName, std::string *status, std::vector *networks, int *lastSeason) = 0; // episode attributes. return true if getVideoType() == tSeries && episode is identified diff --git a/services_live.h b/services_live.h index a9985af6..adec614a 100644 --- a/services_live.h +++ b/services_live.h @@ -7,7 +7,7 @@ class cLiveImageProvider { ///< input: imagePath on file system. ///< if fullPath = true: e.g. /var/cache/vdr/plugins/tvscraper/movies/300803_poster.jpg ///< if fullPath = false: e.g. movies/300803_poster.jpg - ///< for images returned by the "old" tvscraper interface: use the default fullPath = true + ///< for images returned by the "old" Tvscraper interface: use the default fullPath = true ///< output: ///< in case of no error: ///< URL to the image, e.g. http://rpi.fritz.box:8008/tvscraper/movies/300803_poster.jpg @@ -18,7 +18,7 @@ class cLiveImageProvider { ///< possible errors: ///< missing server url. This url must be provided to live with -u URL, --url=URL ///< missing directory for scraper images: - ///< tvscraper makes this directory available to live with the service interface + ///< Tvscraper makes this directory available to live with the service interface ///< for others, e.g. scraper2vdr: provide this to live with -t , --tvscraperimages= ///< image path %s does not start with %s: Will only occur if fullPath == true ///< imagePath does not start with directory for scraper images. diff --git a/setup.cpp b/setup.cpp index 8696c5b5..0916fda1 100644 --- a/setup.cpp +++ b/setup.cpp @@ -129,15 +129,15 @@ char const* Setup::CommandLineHelp() const << " -i IP, --ip=IP bind server only to specified IP, may appear\n" " multiple times\n" " (default: 0.0.0.0)\n" - << " -s PORT, --sslport=PORT use PORT to listen for incoming ssl connections\n" + << " -s PORT, --sslport=PORT use PORT to listen for incoming SSL connections\n" " (default: " << m_serverSslPort << ")\n" - << " -u URL, --url=URL url to this live server, e.g. http://rpi.fritz.box\n" + << " -u URL, --url=URL URL to this live server, e.g. http://rpi.fritz.box\n" " only required if live is used as image server, e.g. for vnsi\n" - << " -c CERT, --cert=CERT full path to a custom ssl certificate file\n" - << " -k KEY, --key=KEY full path to a custom ssl certificate key file\n" - << " -l level, --log=level log level for tntnet (values: WARN, ERROR, INFO, DEBUG, TRACE)\n" - << " -e , --epgimages= directory for epgimages\n" - << " -t , --tvscraperimages= directory for tvscraper images\n" + << " -c CERT, --cert=CERT full path to a custom SSL certificate file\n" + << " -k KEY, --key=KEY full path to a custom SSL certificate key file\n" + << " -l level, --log=level log level for Tntnet (values: WARN, ERROR, INFO, DEBUG, TRACE)\n" + << " -e , --epgimages= directory for EPG images\n" + << " -t , --tvscraperimages= directory for Tvscraper images\n" << " --chanlogos= directory for channel logos (PNG)\n"; m_helpString = builder.str(); } @@ -190,8 +190,8 @@ bool Setup::CheckServerPort() bool Setup::CheckServerSslPort() { if ( m_serverSslPort < 0 || m_serverSslPort > std::numeric_limits::max() ) { - esyslog( "live: ERROR: server ssl port %d is not a valid port number", m_serverSslPort ); - std::cerr << "ERROR: live server ssl port " << m_serverSslPort << " is not a valid port number" << std::endl; + esyslog( "live: ERROR: server SSL port %d is not a valid port number", m_serverSslPort ); + std::cerr << "ERROR: live server SSL port " << m_serverSslPort << " is not a valid port number" << std::endl; return false; } return true; @@ -205,13 +205,13 @@ namespace { struct in6_addr buf; struct in_addr buf4; - esyslog( "live: INFO: validating server ip '%s'", ip.c_str()); - std::cerr << "INFO: validating live server ip '" << ip << "'" << std::endl; + esyslog( "live: INFO: validating server IP '%s'", ip.c_str()); + std::cerr << "INFO: validating live server IP '" << ip << "'" << std::endl; bool valid = inet_aton(ip.c_str(), &buf4) || inet_pton(AF_INET6, ip.c_str(), &buf); if (!valid) { - esyslog( "live: ERROR: server ip %s is not a valid ip address", ip.c_str()); - std::cerr << "ERROR: live server ip '" << ip << "' is not a valid ip address" << std::endl; + esyslog( "live: ERROR: server IP %s is not a valid IP address", ip.c_str()); + std::cerr << "ERROR: live server IP '" << ip << "' is not a valid IP address" << std::endl; } return valid; } @@ -243,7 +243,7 @@ bool Setup::CheckServerIps() } // add a default IPv4 listener address m_serverIps.push_back("0.0.0.0"); - // we assume these are ok :) + // we assume these are OK :) return true; #endif // TNT_IPV6_V6ONLY } @@ -314,7 +314,7 @@ bool Setup::CheckLocalNet(const std::string& ip) std::string net = parts[0]; int range = parse_int(parts[1]); - // split net and ip addr in its 4 subcomponents + // split net and IP address in its 4 subcomponents std::vector netparts = StringSplit( net, '.' ); std::vector addrparts = StringSplit( ip, '.' ); if (netparts.size() != 4 || addrparts.size() != 4) return false; diff --git a/setup.h b/setup.h index 22120943..59b42c26 100644 --- a/setup.h +++ b/setup.h @@ -6,7 +6,7 @@ #include #include #if TNTVERSION >= 30000 - #include // must be loaded before any vdr include because of duplicate macros (LOG_ERROR, LOG_DEBUG, LOG_INFO) + #include // must be loaded before any VDR include because of duplicate macros (LOG_ERROR, LOG_DEBUG, LOG_INFO) #endif #include @@ -24,12 +24,12 @@ class Setup { friend Setup& LiveSetup(); friend class cMenuSetupLive; // friend declaration is not forward - // declaration, although gcc 3.3 claims so + // declaration, although GCC 3.3 claims so public: typedef std::list IpList; - // commandline + // command line int GetServerPort() const { return m_serverPort; } int GetServerSslPort() const { return m_serverSslPort; } std::string GetServerSslCert() const { return m_serverSslCert; } @@ -37,7 +37,7 @@ class Setup const std::string &GetServerUrl() const { return m_serverUrl; } const std::string &GetServerUrlImages() const { return m_serverUrlImages; } IpList const& GetServerIps() const { return m_serverIps; } - // vdr-setup + // VDR setup int GetLastChannel() const { return m_lastChannel == 0 ? std::numeric_limits::max() : m_lastChannel; } int GetScreenshotInterval() const { return m_screenshotInterval; } std::string const GetAdminLogin() const { return m_adminLogin; } @@ -129,7 +129,7 @@ class Setup cPlugin* liveplugin; mutable std::string m_helpString; - // commandline options + // command-line options int m_serverPort; int m_serverSslPort; std::string m_serverSslCert; @@ -177,7 +177,7 @@ class Setup int m_showPlayMediaplayer; int m_showChannelsWithoutEPG; - const int m_maxTooltipChars = 300; // maximum number of characters to be displayed in Tooltips + const int m_maxTooltipChars = 300; // maximum number of characters to be displayed in tooltips bool CheckServerPort(); bool CheckServerIps(); bool CheckServerSslPort(); diff --git a/status.h b/status.h index 1726fe13..2f2f3830 100644 --- a/status.h +++ b/status.h @@ -2,7 +2,7 @@ #define VDR_LIVE_STATUS_H #if TNTVERSION >= 30000 - #include // must be loaded before any vdr include because of duplicate macros (LOG_ERROR, LOG_DEBUG, LOG_INFO) + #include // must be loaded before any VDR include because of duplicate macros (LOG_ERROR, LOG_DEBUG, LOG_INFO) #endif #include diff --git a/stringhelpers.h b/stringhelpers.h index 135a05b3..dced9e60 100644 --- a/stringhelpers.h +++ b/stringhelpers.h @@ -1,10 +1,10 @@ /* * version 0.9.2 - * general stringhelper functions + * general string-helper functions * Note: currently, most up to date Version is in live! * - * only depends on g++ -std=c++17 std:: standard headers and on esyslog (from VDR) - * an on vdr channels :( . + * only depends on g++ -std=c++17 std:: standard headers, on esyslog (from VDR), + * and on VDR channels :( . * * no other dependencies, so it can be easily included in any other header * @@ -41,11 +41,11 @@ inline std::string charPointerToString(const char *s) { inline std::string charPointerToString(const unsigned char *s) { return s?reinterpret_cast(s):std::string(); } -// challange: +// challenge: // method with importing parameter std::string_view called with const char * = nullptr // undefined behavior, as std::string_view(nullptr) is undefined. In later c++ standard, it is even an abort // solution: -// a) be very carefull, check const char * for nullptr before calling a method with std::string_view as import parameter +// a) be very careful, check const char * for nullptr before calling a method with std::string_view as import parameter // or: // b) replace all std::string_view with cSv // very small performance impact if such a method if called with cSv @@ -134,7 +134,7 @@ class utf8_iterator { explicit utf8_iterator(cSv sv, size_t pos): m_sv(sv) { // note: if pos is not begin/end, pos will be moved back to a valid utf8 start point -// i.e. to an ascii (bit 7 not set) or and utf8 start byte (bit 6&7 set) +// i.e. to an ASCII (bit 7 not set) or and utf8 start byte (bit 6&7 set) if (pos == 0) { m_pos = 0; return; } if (pos >= sv.length() ) { m_pos = sv.length(); return; } // to avoid a position in the middle of utf8: @@ -446,7 +446,7 @@ inline cSv SecondPart(cSv str, cSv delim, size_t minLengh) { inline cSv SecondPart(cSv str, cSv delim) { // if delim is not in str, return "" -// Otherwise, return part of str after first occurence of delim +// Otherwise, return part of str after first occurrence of delim // remove leading blanks from result size_t found = str.find(delim); if (found == std::string::npos) return cSv(); @@ -458,7 +458,7 @@ inline cSv SecondPart(cSv str, cSv delim) { // ========================================================= // ========================================================= // Chapter 4: convert data to cSv: -// cToSv classes, with buffer containing text reprexentation of data +// cToSv classes, with buffer containing text representation of data // ========================================================= // ========================================================= @@ -637,7 +637,7 @@ template, bool> = true> // value is written with num_chars chars // if value is too small -> left values filled with 0 // if value is too high -> the highest numbers are not written. This is not checked! -// but, you can check: if the returnde value is != 0, some chars are not written +// but, you can check: if the returned value is != 0, some chars are not written const char *hex_chars = "0123456789ABCDEF"; for (char *be = buffer + num_chars -1; be >= buffer; --be, value /= 16) *be = hex_chars[value%16]; return value; @@ -720,7 +720,7 @@ class cToSvFile: public cToSv { esyslog("cToSvFile::load, ERROR: give up after 3 tries, filename %s", filename); } bool load_int(const char *filename, size_t max_length) { -// return false if an error occured, and we should try again +// return false if an error occurred, and we should try again cOpen fd(filename, O_RDONLY); if (!fd.exists()) return true; struct stat buffer; @@ -885,8 +885,8 @@ template, bool> = true> return *this; } // ======================= -// appendFormated append formated -// __attribute__ ((format (printf, 2, 3))) can not be used, but should work starting with gcc 13.1 +// appendFormated append formatted +// __attribute__ ((format (printf, 2, 3))) can not be used, but should work starting with GCC 13.1 template cToSvConcat &appendFormated(const char *fmt, Args&&... args) { int needed = snprintf(m_pos_for_append, m_be_data - m_pos_for_append, fmt, std::forward(args)...); if (needed < 0) { @@ -907,7 +907,7 @@ template, bool> = true> return *this; } // ======================= -// appendDateTime: append date/time formated with strftime +// appendDateTime: append date/time formatted with strftime cToSvConcat &appendDateTime(const char *fmt, const std::tm *tp) { size_t needed = std::strftime(m_pos_for_append, m_be_data - m_pos_for_append, fmt, tp); if (needed == 0) { @@ -915,7 +915,7 @@ template, bool> = true> needed = std::strftime(m_pos_for_append, m_be_data - m_pos_for_append, fmt, tp); if (needed == 0) { esyslog("live: ERROR, cToScConcat::appendDateTime needed = 0, fmt = %s", fmt); - return *this; // we did not expect to need more than 1024 chars for the formated time ... + return *this; // we did not expect to need more than 1024 chars for the formatted time ... } } m_pos_for_append += needed; @@ -926,7 +926,7 @@ template, bool> = true> struct std::tm tm_r; if (localtime_r( &time, &tm_r ) == 0 ) { esyslog("live: ERROR, cToScConcat::appendDateTime localtime_r = 0, fmt = %s, time = %lld", fmt, (long long)time); - return *this; // we did not expect to need more than 1024 chars for the formated time ... + return *this; // we did not expect to need more than 1024 chars for the formatted time ... } return appendDateTime(fmt, &tm_r); } @@ -934,9 +934,9 @@ template, bool> = true> // #include // ========================================================= -// some performance improvemnt, to get string presentation for channel +// some performance improvement, to get string presentation for channel // you can also use channelID.ToString() -// in struct tChannelID { (in vdr): +// in struct tChannelID { (in VDR): // static tChannelID FromString(const char *s); // cString ToString(void) const; // ========================================================= @@ -1021,7 +1021,7 @@ class cToSvToLower: public cToSvConcat { template class cToSvFormated: public cToSvConcat { public: -// __attribute__ ((format (printf, 2, 3))) can not be used, but should work starting with gcc 13.1 +// __attribute__ ((format (printf, 2, 3))) can not be used, but should work starting with GCC 13.1 template cToSvFormated(const char *fmt, Args&&... args) { this->appendFormated(fmt, std::forward(args)...); } @@ -1054,7 +1054,7 @@ inline void stringAppendFormated(cToSvConcat &s, const char *fmt, Args&&... a s.appendFormated(fmt, std::forward(args)...); } -// __attribute__ ((format (printf, 2, 3))) can not be used, but should work starting with gcc 13.1 +// __attribute__ ((format (printf, 2, 3))) can not be used, but should work starting with GCC 13.1 template void stringAppendFormated(std::string &str, const char *fmt, Args&&... args) { size_t size = 1024; @@ -1211,7 +1211,7 @@ inline std::string concat(Args&&... args) { } // ========================================================= -// parse string_view for xml +// parse string_view for XML // ========================================================= template cSv partInXmlTag(cSv sv, const char (&tag)[N], bool *exists = nullptr) { diff --git a/tasks.h b/tasks.h index c2b76040..5700f11d 100644 --- a/tasks.h +++ b/tasks.h @@ -6,7 +6,7 @@ #include #if TNTVERSION >= 30000 - #include // must be loaded before any vdr include because of duplicate macros (LOG_ERROR, LOG_DEBUG, LOG_INFO) + #include // must be loaded before any VDR include because of duplicate macros (LOG_ERROR, LOG_DEBUG, LOG_INFO) #endif #include diff --git a/timers.cpp b/timers.cpp index 7b5e8735..56927bc4 100644 --- a/timers.cpp +++ b/timers.cpp @@ -133,7 +133,7 @@ namespace vdrlive { } return concat(getAutoTimerReason.reason, " ", getAutoTimerReason.recordingName); } -// fallback information, if this tvscraper method is not available +// fallback information, if this Tvscraper method is not available cSv tvScraperInfo = partInXmlTag(timer.Aux(), "tvscraper"); if (tvScraperInfo.empty()) return ""; cSv data = partInXmlTag(tvScraperInfo, "reason"); @@ -243,7 +243,7 @@ namespace vdrlive { if ( m_updateTimers.size() > 0 ) { DoUpdateTimers(); } - // dsyslog("live: SV: signalling waiters"); + // dsyslog("live: SV: signaling waiters"); m_updateWait.Broadcast(); } @@ -282,7 +282,7 @@ namespace vdrlive { for (int i = 0; i < response.Size(); i++) { int code = SVDRPCode(response[i]); if (code != 250) { - esyslog("live: DoInsertTimer() svdrp failed, respone: %s", response[i]); + esyslog("live: DoInsertTimer() svdrp failed, response: %s", response[i]); svdrpOK = false; } } @@ -355,7 +355,7 @@ namespace vdrlive { for (int i = 0; i < response.Size(); i++) { int code = SVDRPCode(response[i]); if (code != 250) { - esyslog("live: DoInsertTimer() svdrp respone: %s", response[i]); + esyslog("live: DoInsertTimer() svdrp response: %s", response[i]); responseOK = false; } } @@ -453,7 +453,7 @@ namespace vdrlive { for (int i = 0; i < response.Size(); i++) { int code = SVDRPCode(response[i]); if (code != 250) { - esyslog("live: DoDeleteTimer() svdrp failed, respone: %s", response[i]); + esyslog("live: DoDeleteTimer() svdrp failed, response: %s", response[i]); svdrpOK = false; } } @@ -537,7 +537,7 @@ namespace vdrlive { for (int i = 0; i < response.Size(); i++) { int code = SVDRPCode(response[i]); if (code != 250) { - esyslog("live: DoToggleTimer() svdrp failed, respone: %s", response[i]); + esyslog("live: DoToggleTimer() svdrp failed, response: %s", response[i]); svdrpOK = false; } } diff --git a/timers.h b/timers.h index d388e958..3a1bdc46 100644 --- a/timers.h +++ b/timers.h @@ -6,7 +6,7 @@ #include #if TNTVERSION >= 30000 - #include // must be loaded before any vdr include because of duplicate macros (LOG_ERROR, LOG_DEBUG, LOG_INFO) + #include // must be loaded before any VDR include because of duplicate macros (LOG_ERROR, LOG_DEBUG, LOG_INFO) #endif #include diff --git a/tntconfig.cpp b/tntconfig.cpp index 6bae393e..b4831e0b 100644 --- a/tntconfig.cpp +++ b/tntconfig.cpp @@ -49,70 +49,70 @@ namespace vdrlive { void TntConfig::ConfigureTvscraper(tnt::Tntnet& app, const std::string &tvscraperImageDir) const { // make the Tvscraper images available in the web server - // Images from tvscraper themoviedb: Movies + // Images from Tvscraper TheMovieDb: Movies MapUrl(app, "^/tvscraper/movies/([^/]*)\\.([^./]+)", "content", tvscraperImageDir + "movies", "/$1.$2", "image/$2"); - // Images from tvscraper themoviedb: Collections + // Images from Tvscraper TheMovieDb: Collections MapUrl(app, "^/tvscraper/movies/collections/([^/]*)\\.([^./]+)", "content", tvscraperImageDir + "movies/collections", "/$1.$2", "image/$2"); - // Images from tvscraper themoviedb: Actors + // Images from Tvscraper TheMovieDb: Actors MapUrl(app, "^/tvscraper/movies/actors/([^/]*)\\.([^./]+)", "content", tvscraperImageDir + "movies/actors", "/$1.$2", "image/$2"); - // Images from tvscraper themoviedb: tv shows + // Images from Tvscraper TheMovieDb: TV shows MapUrl(app, "^/tvscraper/movies/tv/([^/]*)/([^/]*)\\.([^./]+)", "content", tvscraperImageDir + "movies/tv", "/$1/$2.$3", "image/$3"); - // Images from tvscraper themoviedb: tv shows, season + // Images from Tvscraper TheMovieDb: TV shows, season MapUrl(app, "^/tvscraper/movies/tv/([^/]*)/([^/]*)/([^/]*)\\.([^./]+)", "content", tvscraperImageDir + "movies/tv", "/$1/$2/$3.$4", "image/$4"); - // Images from tvscraper themoviedb: tv shows, episode + // Images from Tvscraper TheMovieDb: TV shows, episode MapUrl(app, "^/tvscraper/movies/tv/([^/]*)/([^/]*)/([^/]*)/([^/]*)\\.([^./]+)", "content", tvscraperImageDir + "movies/tv", "/$1/$2/$3/$4.$5", "image/$5"); - // Images from tvscraper thetvdb: tv shows + // Images from Tvscraper TheTvDb: TV shows MapUrl(app, "^/tvscraper/series/([^/]*)/([^/]*)\\.([^./]+)", "content", tvscraperImageDir + "series", "/$1/$2.$3", "image/$3"); - // Images from tvscraper thetvdb: tv shows, episode images + // Images from Tvscraper TheTvDb: TV shows, episode images MapUrl(app, "^/tvscraper/series/([^/]*)/([^/]*)/([^/]*)\\.([^./]+)", "content", LiveSetup().GetTvscraperImageDir() + "series", "/$1/$2/$3.$4", "image/$4"); - // Images from tvscraper, from external EPG provider (start time, channel, image) + // Images from Tvscraper, from external EPG provider (start time, channel, image) MapUrl(app, "^/tvscraper/epg/([^/]*)/([^/]*)/([^/]*)\\.([^./]+)", "content", LiveSetup().GetTvscraperImageDir() + "epg", "/$1/$2/$3.$4", "image/$4"); - // Images from tvscraper, from external EPG provider, in recordings (start time, channel, image) + // Images from Tvscraper, from external EPG provider, in recordings (start time, channel, image) MapUrl(app, "^/tvscraper/recordings/([^/]*)\\.([^./]+)", "content", @@ -159,8 +159,8 @@ namespace vdrlive { // These mapUrl statements are very security sensitive! // A wrong mapping to content may allow retrieval of arbitrary files // from your VDR system via live. - // Two meassures are taken against this in our implementation: - // 1. The MapUrls need to be checked regulary against possible exploits + // Two measures are taken against this in our implementation: + // 1. The MapUrls need to be checked regularly against possible exploits // One tool to do this can be found here: // http://www.lumadis.be/regex/test_regex.php // Newly inserted MapUrls should be marked with author and confirmed @@ -250,21 +250,21 @@ namespace vdrlive { "/img/$2.$3", "image/$3"); -// get image dir from plugin tvscraper +// get image dir from plugin Tvscraper static cPlugin *pScraper = LiveSetup().GetPluginTvscraper(); if (pScraper) { -// plugin tvscraper is available +// plugin Tvscraper is available // first try cEnvironment, which is also available in scraper2vdr cEnvironment environment; if (pScraper->Service("GetEnvironment", &environment) ) { -// plugin tvscraper/scraper2vdr supports the service interface cEnvironment +// plugin Tvscraper/scraper2vdr supports the service interface cEnvironment esyslog("live: INFO: set image dir from GetEnvironment to '%s'", environment.basePath.c_str()); LiveSetup().SetTvscraperImageDir(environment.basePath); } else { cGetScraperImageDir getScraperImageDir; if (getScraperImageDir.call(pScraper) ) { -// plugin tvscraper supports the service interface GetScraperImageDir (version 1.05 or newer) - esyslog("live: WARNING: set image dir from deprected GetScraperImageDir to '%s'", getScraperImageDir.scraperImageDir.c_str()); +// plugin Tvscraper supports the service interface GetScraperImageDir (version 1.05 or newer) + esyslog("live: WARNING: set image dir from deprecated GetScraperImageDir to '%s'", getScraperImageDir.scraperImageDir.c_str()); LiveSetup().SetTvscraperImageDir(getScraperImageDir.scraperImageDir); } } @@ -273,7 +273,7 @@ namespace vdrlive { ConfigureTvscraper(app, LiveSetup().GetTvscraperImageDir()); } - // Epg images + // EPG images std::string const epgImgPath(LiveSetup().GetEpgImageDir()); if (!epgImgPath.empty()) { // inserted by 'tadi' -- verified with above, but not counterchecked yet! @@ -285,7 +285,7 @@ namespace vdrlive { "image/$2"); } - // rec images + // recording images MapUrl(app, "^/recimages/([^/]*)/([^/]*)\\.([^./]+)", "content", @@ -402,7 +402,7 @@ namespace vdrlive { } } else { - isyslog( "live: INFO: ssl port %d specified, no ssl webserver will be started", s_port); + isyslog( "live: INFO: SSL port %d specified, no SSL Web server will be started", s_port); } } diff --git a/tntfeatures.h b/tntfeatures.h index fafe78f6..bae63a52 100644 --- a/tntfeatures.h +++ b/tntfeatures.h @@ -1,8 +1,8 @@ #ifndef VDR_LIVE_TNTFEATURES_H #define VDR_LIVE_TNTFEATURES_H -// This header mapps tntversion strings, whose 'structure' changes over time, -// to features of tntnet used in the live plugin. This avoids scattering the +// This header maps tntversion strings, whose 'structure' changes over time, +// to features of Tntnet used in the live plugin. This avoids scattering the // version check for TNTVERSION over several source files in live. Thus when // an other change in the structure of the version string was needed then only // this file needs to be adapted. @@ -19,7 +19,7 @@ // version of TNTNET with properties deserializer for logger configuration args. #define TNT_LOG_SERINFO (CXXTOOLVER >= 22000) -// version of TNTNET wich expects name, value mappings for Url-Mapper arguments. +// version of Tntnet wich expects name, value mappings for URL-Mapper arguments. #define TNT_MAPURL_NAMED_ARGS (TNTVERSION >= 22000) // version of TNTNET where configuration is global diff --git a/tools.cpp b/tools.cpp index 2ecb873c..65e9e5ac 100644 --- a/tools.cpp +++ b/tools.cpp @@ -41,11 +41,11 @@ namespace vdrlive { template void AppendHtmlEscapedAndCorrectNonUTF8(T &target, const char* s, const char *end, bool tooltip){ -// append c-string s to target, html escape some characters +// append c-string s to target, HTML escape some characters // replace invalid UTF8 characters with ? if(!s) return; if (!end) end = s + strlen(s); - int l = 0; // length of current utf8 codepoint + int l = 0; // length of current UTF8 codepoint size_t i = 0; // number of not yet appended chars const char* notAppended = s; // position of the first character which is not yet appended for (const char* current = s; *current && current < end; current+=l) { @@ -169,7 +169,7 @@ template // stop at line break in text (10 || 13) // only up to MAX_LEN_ST characters. If such truncation is required, truncate at ' ' -// escape html characters, and correct invalid utf8 +// escape HTML characters, and correct invalid utf8 if (!text || !*text ) return; int len = strlen(text); int lb = len; @@ -192,7 +192,7 @@ template void AppendTextMaxLen>(cToSvConcat<0> &target, const cha template void AppendTextTruncateOnWord(T &target, const char *text, int max_len, bool tooltip) { // append text to target, but only up to max_len characters. If such truncation is required, truncate at ' ' -// escape html characters, and correct invalid utf8 +// escape HTML characters, and correct invalid UTF8 if (!text || !*text ) return; const char *end = text + std::min((int)strlen(text), max_len); for (; *end && *end != ' '; end++); @@ -398,7 +398,7 @@ template void AppendTextTruncateOnWord>(cToSvConcat<0> &target, c std::string FileSystemExchangeChars(cSv s, bool ToFileSystem) { if (s.empty()) return std::string(); - char *str = reinterpret_cast(std::malloc(s.length() + 1)); // vdr ExchangeChars needs a pointer to data allocated with malloc + char *str = reinterpret_cast(std::malloc(s.length() + 1)); // VDR ExchangeChars needs a pointer to data allocated with malloc if (!str) { esyslog("live, ERROR: out of memory in FileSystemExchangeChars"); return std::string(s); diff --git a/tools.h b/tools.h index 175ec38c..7d579368 100644 --- a/tools.h +++ b/tools.h @@ -11,7 +11,7 @@ #include #if TNTVERSION >= 30000 - #include // must be loaded before any vdr include because of duplicate macros (LOG_ERROR, LOG_DEBUG, LOG_INFO) + #include // must be loaded before any VDR include because of duplicate macros (LOG_ERROR, LOG_DEBUG, LOG_INFO) #include "cxxtools/serializationinfo.h" #endif @@ -173,13 +173,13 @@ template // methods for scraper ************************************** -// tool for images returned by tvscraper or scraper2vdr: +// tool for images returned by Tvscraper or scraper2vdr: // convert path (valid in local file system) to path which can be used by live (in browser) to access the image // Note: final browser path is: "/tvscraper/" + ScraperImagePath2Live(...) cSv ScraperImagePath2Live(cSv path); // call the service Id -// return false if there is no scraper plugin, or if the serrvice does not exist +// return false if there is no scraper plugin, or if the service does not exist // otherwise, return true // can be called with Data == Null to check is the service exits bool ScraperCallService(const char *Id, void *Data); diff --git a/users.h b/users.h index 868c0953..9afc8339 100644 --- a/users.h +++ b/users.h @@ -5,7 +5,7 @@ #include #if TNTVERSION >= 30000 - #include // must be loaded before any vdr include because of duplicate macros (LOG_ERROR, LOG_DEBUG, LOG_INFO) + #include // must be loaded before any VDR include because of duplicate macros (LOG_ERROR, LOG_DEBUG, LOG_INFO) #endif #include