diff -Nru kodi-pvr-mythtv-3.4.7/debian/changelog kodi-pvr-mythtv-3.4.15/debian/changelog --- kodi-pvr-mythtv-3.4.7/debian/changelog 2016-02-21 16:49:42.000000000 +0000 +++ kodi-pvr-mythtv-3.4.15/debian/changelog 2016-04-27 11:48:38.000000000 +0000 @@ -1,92 +1,98 @@ -kodi-pvr-mythtv (3.4.7-1~trusty) trusty; urgency=low +kodi-pvr-mythtv (3.4.15-1~trusty) trusty; urgency=low [ kodi ] * autogenerated dummy changelog [ wsnipex ] - * v3.4.7 - Updated language files from Transifex v3.4.6 - fix timer - update caused by invalid epg ID v3.4.5 - Updated language files from - Transifex v3.4.4 - Updated language files from Transifex v3.4.3 - - Support protocol 0.28-pre:88 v3.4.2 - Updated language files from - Transifex v3.4.1 - Updated to GUI API v5.10.0 v3.4.0 - Show stream - "channel unavailable" when channel tuning failed v3.3.9 - Enable - buffering for socket - Sync cppmyth upstream (2.4.0) v3.3.8 - - Updated to kodi.guilib API v5.8.0 - Sync cppmyth upstream (2.4.0) - - Update default EIT categories - Sync demuxer upstream - Add EPG - Entry associated with recent Recording - New french translations - v3.3.7 - Updated to GUI API v5.10.0 v3.3.6 - Updated to PVR API - v4.1.0 v3.3.5 - Fix issue when deleting timer rule since API v4.0.0 - v3.3.4 - Updated to PVR API v4.0.0 v3.3.3 - Sync cppmyth upstream - (2.3.1) v3.3.2 - Workaround for Kodi bug 16141 v3.3.1 - Cleanup - localized strings v3.3.0 - Sync cppmyth upstream (2.3.0) - Support - protocol 0.28-pre:87 - Security fix for JSON parser - New setting - limit_tune_attempts - Add EPG Entry associated with recent Recording - - Improvements with API 3.0.0 - Notify user on addon failure v3.2.2 - - Minimal Support PVR API 3.0.0 v3.2.1 - Stop to iterate recordings - map until next change - ScheduleManager becomes thread safe - Sync - cppmyth upstream (2.1.0) - Automatically fill in platform and - library name v3.1.1 - Updated to PVR API v2.1.0 v3.1.0 - Support for - PVR Addon API 2.0.0 v3.0.3 - Don't apply category overtime nil (0) - - AVINFO: exit on parse error - Fix race condition on opening recorded - - Sync cppmyth upsgtream (1.5.1.3+fixes) - Miscellaneous backend - fixes v3.0.1 - Updated to API 2.0.0 v3.0.0 - Updated to API 1.9.7 - v2.3.1 - Updated language files from Transifex v2.3.0 - Fix crash on - thread stop - Set of fixes for timers - Sync cppmyth upstream - (1.5.1.3) v2.2.1 - Support protocol 0.28-pre:86 - Sync cppmyth - upstream (1.5.0) - Minor changes v2.1.1 - updated to use new - libplatform-dev v2.1.0 - reading ahead: wait for 10 sec - demux: set - read timeout to 10 sec - API Guide service 2.2 (0.28) - Enable - commercial break and cut list by duration v2.0.10 - Updated to API - 1.9.6 v2.0.9 - Process subscription queue in separated thread v2.0.8 - - Updated to API 1.9.5 - fix crash parsing invalid frame AAC/LATM - v2.0.7 - Merge channels by chanNum/callSign across sources - Fix - preferred cards for live TV v2.0.6 - Enable feature "undelete - recordings" v2.0.5 - Support service API 0.28-pre:5.0 - Sync demuxer - upstream v2.0.3 - Sync cppmyth upstream (1.1.9) - Support protocol - 0.28-pre:85 - Support protocol 0.28-pre:84 - Handles - MasterBackendOverride (kaptain-iglu) - Fix compile error wir c++11 - - [pvr] Increase API version to 1.9.4 - [gui] Increase API version to - 5.8.0 v1.11.4 - Updated language files from Transifex - Minor - changes to conform with C++11 v1.11.3 - Updated language files from - Transifex v1.11.2 - New method to handle read ahead (live playback) - v1.10.2 - Added getBackendHostname function v1.10.1 - Options to - disable channel icons and recordings or fanart images v1.10.0 - - jansson 2.7: fix compilation on ios8/arm64 - Cleaned cache by max - age - Improves loading of channels and recordings - Adding WS API - Security Pin parameter - Adding episode info (subtitle) to EPG title - v1.9.29 - fixed resource leak on file cache failure v1.9.28 - - Updated language files from Transifex v1.9.27 - change library name - to Kodi v1.9.26 - fixed deadlock when activating the addon on some - darwin (osx, ios) runtimes v1.9.25 - Handle GUI events to - activate/deactivate power saving mode - Don't send WOL when power - saving mode is activated - Don't block shutdown when power saving - mode is activated - Handle hang: Always retry protocol connection - after hang - Handle hang: Reconnect event handler after hanging of - control connection v1.9.24 - Block backend shutdown by default: New - setting - Fix refreshing recordings and schedules on wake up - - Updated language files from Transifex v1.9.23 - Handles version of - services - Allow HTTP redirection to get slave previews - New format - for program UID string - demuxer: optimizing, fix PES header - Fix - category override - Transfer sub channel number v1.9.22 - Fix - identifier for DVB-SUBTITLE - Add setting to enable or disable EDL - functionnality - Add setting to configure grouping for recordings - - Load EIT categories from customized user file - Merge channels with - same source ID - Fix codec infos after stream parsing (AAC LATM) - - Fix crash when trying to show recording from unattainable slave - backend v1.9.21 - Updated to API v1.9.2 v1.9.20 - Detect audio codec - AAC LATM or AAC ADTS by parsing - Enable EDL for MPEG-TS stream - - Fix timeout: 60 sec to hang up - Fix refreshing artwork after - program update event - Send wol packet magic to wake up backend on - startup or not connected v1.9.19 - Fix seek stream defect introduced - in 1.9.16 - Support protocol 0.28-pre:83 - Fix XBMC crash on exit - announcing disconnection v1.9.18 - Use unified interface of CPPMyth - (80c84fb) - Get setting of slave backend to open its recording - - Include API updates for protocol 82 (0.28-pre-1917-g62be166) v1.9.17 - - Fix buffer request limit v1.9.16 - Fix timeout on buffer read in - rare circumstances - Not open dummy file for transfer - Recording + * v3.4.15 - Updated language files from Transifex v3.4.14 - Updated + language files from Transifex v3.4.13 - Updated language files from + Transifex v3.4.12 - Sync cppmyth upstream (2.5.1) v3.4.11 - Sync + cppmyth upstream (2.5.0) v3.4.10 - Updated language files from + Transifex v3.4.9 - Updated language files from Transifex v3.4.8 - + Updated language files from Transifex v3.4.7 - Updated language + files from Transifex v3.4.6 - fix timer update caused by invalid epg + ID v3.4.5 - Updated language files from Transifex v3.4.4 - Updated + language files from Transifex v3.4.3 - Support protocol 0.28-pre:88 + v3.4.2 - Updated language files from Transifex v3.4.1 - Updated to + GUI API v5.10.0 v3.4.0 - Show stream "channel unavailable" when + channel tuning failed v3.3.9 - Enable buffering for socket - Sync + cppmyth upstream (2.4.0) v3.3.8 - Updated to kodi.guilib API v5.8.0 - + Sync cppmyth upstream (2.4.0) - Update default EIT categories - Sync + demuxer upstream - Add EPG Entry associated with recent Recording - + New french translations v3.3.7 - Updated to GUI API v5.10.0 v3.3.6 - + Updated to PVR API v4.1.0 v3.3.5 - Fix issue when deleting timer + rule since API v4.0.0 v3.3.4 - Updated to PVR API v4.0.0 v3.3.3 - + Sync cppmyth upstream (2.3.1) v3.3.2 - Workaround for Kodi bug 16141 + v3.3.1 - Cleanup localized strings v3.3.0 - Sync cppmyth upstream + (2.3.0) - Support protocol 0.28-pre:87 - Security fix for JSON + parser - New setting limit_tune_attempts - Add EPG Entry associated + with recent Recording - Improvements with API 3.0.0 - Notify user on + addon failure v3.2.2 - Minimal Support PVR API 3.0.0 v3.2.1 - Stop + to iterate recordings map until next change - ScheduleManager + becomes thread safe - Sync cppmyth upstream (2.1.0) - Automatically + fill in platform and library name v3.1.1 - Updated to PVR API v2.1.0 + v3.1.0 - Support for PVR Addon API 2.0.0 v3.0.3 - Don't apply + category overtime nil (0) - AVINFO: exit on parse error - Fix race + condition on opening recorded - Sync cppmyth upsgtream + (1.5.1.3+fixes) - Miscellaneous backend fixes v3.0.1 - Updated to + API 2.0.0 v3.0.0 - Updated to API 1.9.7 v2.3.1 - Updated language + files from Transifex v2.3.0 - Fix crash on thread stop - Set of + fixes for timers - Sync cppmyth upstream (1.5.1.3) v2.2.1 - Support + protocol 0.28-pre:86 - Sync cppmyth upstream (1.5.0) - Minor changes + v2.1.1 - updated to use new libplatform-dev v2.1.0 - reading ahead: + wait for 10 sec - demux: set read timeout to 10 sec - API Guide + service 2.2 (0.28) - Enable commercial break and cut list by + duration v2.0.10 - Updated to API 1.9.6 v2.0.9 - Process + subscription queue in separated thread v2.0.8 - Updated to API 1.9.5 + - fix crash parsing invalid frame AAC/LATM v2.0.7 - Merge channels + by chanNum/callSign across sources - Fix preferred cards for live TV + v2.0.6 - Enable feature "undelete recordings" v2.0.5 - Support + service API 0.28-pre:5.0 - Sync demuxer upstream v2.0.3 - Sync + cppmyth upstream (1.1.9) - Support protocol 0.28-pre:85 - Support + protocol 0.28-pre:84 - Handles MasterBackendOverride (kaptain-iglu) - + Fix compile error wir c++11 - [pvr] Increase API version to 1.9.4 - + [gui] Increase API version to 5.8.0 v1.11.4 - Updated language files + from Transifex - Minor changes to conform with C++11 v1.11.3 - + Updated language files from Transifex v1.11.2 - New method to handle + read ahead (live playback) v1.10.2 - Added getBackendHostname + function v1.10.1 - Options to disable channel icons and recordings + or fanart images v1.10.0 - jansson 2.7: fix compilation on + ios8/arm64 - Cleaned cache by max age - Improves loading of channels + and recordings - Adding WS API Security Pin parameter - Adding + episode info (subtitle) to EPG title v1.9.29 - fixed resource leak + on file cache failure v1.9.28 - Updated language files from + Transifex v1.9.27 - change library name to Kodi v1.9.26 - fixed + deadlock when activating the addon on some darwin (osx, ios) + runtimes v1.9.25 - Handle GUI events to activate/deactivate power + saving mode - Don't send WOL when power saving mode is activated - + Don't block shutdown when power saving mode is activated - Handle + hang: Always retry protocol connection after hang - Handle hang: + Reconnect event handler after hanging of control connection v1.9.24 - + Block backend shutdown by default: New setting - Fix refreshing + recordings and schedules on wake up - Updated language files from + Transifex v1.9.23 - Handles version of services - Allow HTTP + redirection to get slave previews - New format for program UID + string - demuxer: optimizing, fix PES header - Fix category override + - Transfer sub channel number v1.9.22 - Fix identifier for DVB- + SUBTITLE - Add setting to enable or disable EDL functionnality - Add + setting to configure grouping for recordings - Load EIT categories + from customized user file - Merge channels with same source ID - Fix + codec infos after stream parsing (AAC LATM) - Fix crash when trying + to show recording from unattainable slave backend v1.9.21 - Updated + to API v1.9.2 v1.9.20 - Detect audio codec AAC LATM or AAC ADTS by + parsing - Enable EDL for MPEG-TS stream - Fix timeout: 60 sec to + hang up - Fix refreshing artwork after program update event - Send + wol packet magic to wake up backend on startup or not connected + v1.9.19 - Fix seek stream defect introduced in 1.9.16 - Support + protocol 0.28-pre:83 - Fix XBMC crash on exit announcing + disconnection v1.9.18 - Use unified interface of CPPMyth (80c84fb) - + Get setting of slave backend to open its recording - Include API + updates for protocol 82 (0.28-pre-1917-g62be166) v1.9.17 - Fix + buffer request limit v1.9.16 - Fix timeout on buffer read in rare + circumstances - Not open dummy file for transfer - Recording priority is signed value v1.9.15 - Manage late spawn response - Upgrade to jansson 2.6 (security fix) - Fix parsing of 'airdate' in proto v1.9.14 - Fork of pvr.mythtv.cmyth - Use C++ library CPPMyth for MythTV backend 0.27 to 0.28-pre - -- wsnipex Sun, 21 Feb 2016 17:49:42 +0100 + -- wsnipex Wed, 27 Apr 2016 13:48:38 +0200 diff -Nru kodi-pvr-mythtv-3.4.7/debian/changelog.tmp kodi-pvr-mythtv-3.4.15/debian/changelog.tmp --- kodi-pvr-mythtv-3.4.7/debian/changelog.tmp 2016-02-21 16:49:20.000000000 +0000 +++ kodi-pvr-mythtv-3.4.15/debian/changelog.tmp 2016-04-27 11:47:35.000000000 +0000 @@ -1,4 +1,4 @@ -kodi-pvr-mythtv (3.4.7-1~#DIST#) #DIST#; urgency=low +kodi-pvr-mythtv (3.4.15-1~#DIST#) #DIST#; urgency=low [ kodi ] * autogenerated dummy changelog diff -Nru kodi-pvr-mythtv-3.4.7/lib/cppmyth/CMakeLists.txt kodi-pvr-mythtv-3.4.15/lib/cppmyth/CMakeLists.txt --- kodi-pvr-mythtv-3.4.7/lib/cppmyth/CMakeLists.txt 2016-02-20 21:47:03.000000000 +0000 +++ kodi-pvr-mythtv-3.4.15/lib/cppmyth/CMakeLists.txt 2016-04-25 07:36:03.000000000 +0000 @@ -22,7 +22,7 @@ ############################################################################### # set lib version here -set (CPPMYTH_LIB_VERSION "2.4.0") +set (CPPMYTH_LIB_VERSION "2.5.1") set (CPPMYTH_LIB_SOVERSION "2") ############################################################################### diff -Nru kodi-pvr-mythtv-3.4.7/lib/cppmyth/src/mythdebug.cpp kodi-pvr-mythtv-3.4.15/lib/cppmyth/src/mythdebug.cpp --- kodi-pvr-mythtv-3.4.7/lib/cppmyth/src/mythdebug.cpp 2016-02-20 21:47:03.000000000 +0000 +++ kodi-pvr-mythtv-3.4.15/lib/cppmyth/src/mythdebug.cpp 2016-04-25 07:36:03.000000000 +0000 @@ -27,7 +27,7 @@ #include #include -#ifdef _MSC_VER +#if defined(_MSC_VER) && _MSC_VER < 1900 #define snprintf _snprintf #endif diff -Nru kodi-pvr-mythtv-3.4.7/lib/cppmyth/src/private/builtin.c kodi-pvr-mythtv-3.4.15/lib/cppmyth/src/private/builtin.c --- kodi-pvr-mythtv-3.4.7/lib/cppmyth/src/private/builtin.c 2016-02-20 21:47:03.000000000 +0000 +++ kodi-pvr-mythtv-3.4.15/lib/cppmyth/src/private/builtin.c 2016-04-25 07:36:03.000000000 +0000 @@ -231,7 +231,7 @@ if (*str == '\0') { - // nil string + /* empty string */ *time = INVALID_TIME; return 0; } diff -Nru kodi-pvr-mythtv-3.4.7/lib/cppmyth/src/private/builtin.h kodi-pvr-mythtv-3.4.15/lib/cppmyth/src/private/builtin.h --- kodi-pvr-mythtv-3.4.7/lib/cppmyth/src/private/builtin.h 2016-02-20 21:47:03.000000000 +0000 +++ kodi-pvr-mythtv-3.4.15/lib/cppmyth/src/private/builtin.h 2016-04-25 07:36:03.000000000 +0000 @@ -109,31 +109,31 @@ #if !HAVE_LOCALTIME_R && !defined(localtime_r) #define localtime_r __localtime_r -static CC_INLINE struct tm *localtime_r(const time_t * clock, struct tm *result) +static CC_INLINE struct tm *localtime_r(const time_t *clock, struct tm *result) { - struct tm *data; - if (!clock || !result) - return NULL; - data = localtime(clock); - if (!data) - return NULL; - memcpy(result, data, sizeof(*result)); - return result; + struct tm *data; + if (!clock || !result) + return NULL; + data = localtime(clock); + if (!data) + return NULL; + memcpy(result, data, sizeof(*result)); + return result; } #endif #if !HAVE_GMTIME_R && !defined(gmtime_r) #define gmtime_r __gmtime_r -static CC_INLINE struct tm *gmtime_r(const time_t * clock, struct tm *result) +static CC_INLINE struct tm *gmtime_r(const time_t *clock, struct tm *result) { - struct tm *data; - if (!clock || !result) - return NULL; - data = gmtime(clock); - if (!data) - return NULL; - memcpy(result, data, sizeof(*result)); - return result; + struct tm *data; + if (!clock || !result) + return NULL; + data = gmtime(clock); + if (!data) + return NULL; + memcpy(result, data, sizeof(*result)); + return result; } #endif diff -Nru kodi-pvr-mythtv-3.4.7/lib/cppmyth/src/private/mythjsonparser.cpp kodi-pvr-mythtv-3.4.15/lib/cppmyth/src/private/mythjsonparser.cpp --- kodi-pvr-mythtv-3.4.7/lib/cppmyth/src/private/mythjsonparser.cpp 2016-02-20 21:47:03.000000000 +0000 +++ kodi-pvr-mythtv-3.4.15/lib/cppmyth/src/private/mythjsonparser.cpp 2016-04-25 07:36:03.000000000 +0000 @@ -174,9 +174,9 @@ , m_document(NULL) { // Read content response - size_t r, content_length = resp.GetContentLength(); + size_t content_length = resp.GetContentLength(); char *content = new char[content_length + 1]; - if ((r = resp.ReadContent(content, content_length)) == content_length) + if (resp.ReadContent(content, content_length) == content_length) { content[content_length] = '\0'; DBG(MYTH_DBG_PROTO, "%s: %s\n", __FUNCTION__, content); diff -Nru kodi-pvr-mythtv-3.4.7/lib/cppmyth/src/private/mythsocket.cpp kodi-pvr-mythtv-3.4.15/lib/cppmyth/src/private/mythsocket.cpp --- kodi-pvr-mythtv-3.4.7/lib/cppmyth/src/private/mythsocket.cpp 2016-02-20 21:47:03.000000000 +0000 +++ kodi-pvr-mythtv-3.4.15/lib/cppmyth/src/private/mythsocket.cpp 2016-04-25 07:36:03.000000000 +0000 @@ -506,6 +506,7 @@ { m_errno = LASTERROR; DBG(MYTH_DBG_ERROR, "%s: could not bind to address (%d)\n", __FUNCTION__, m_errno); + return false; } return true; } diff -Nru kodi-pvr-mythtv-3.4.7/lib/cppmyth/src/private/mythwscontent.cpp kodi-pvr-mythtv-3.4.15/lib/cppmyth/src/private/mythwscontent.cpp --- kodi-pvr-mythtv-3.4.7/lib/cppmyth/src/private/mythwscontent.cpp 2016-02-20 21:47:03.000000000 +0000 +++ kodi-pvr-mythtv-3.4.15/lib/cppmyth/src/private/mythwscontent.cpp 2016-04-25 07:36:03.000000000 +0000 @@ -56,14 +56,14 @@ return CT_UNKNOWN; } -const char *Myth::MimeFromContentType(CT_t ct) +const char* Myth::MimeFromContentType(CT_t ct) { if (ct >= 0 && ct < CT_UNKNOWN) return mimetypes[ct].content_type; return mimetypes[CT_UNKNOWN].content_type; } -const char *Myth::ExtnFromContentType(CT_t ct) +const char* Myth::ExtnFromContentType(CT_t ct) { if (ct >= 0 && ct < CT_UNKNOWN) return mimetypes[ct].extn; diff -Nru kodi-pvr-mythtv-3.4.7/lib/cppmyth/src/private/mythwscontent.h kodi-pvr-mythtv-3.4.15/lib/cppmyth/src/private/mythwscontent.h --- kodi-pvr-mythtv-3.4.7/lib/cppmyth/src/private/mythwscontent.h 2016-02-20 21:47:03.000000000 +0000 +++ kodi-pvr-mythtv-3.4.15/lib/cppmyth/src/private/mythwscontent.h 2016-04-25 07:36:03.000000000 +0000 @@ -39,9 +39,9 @@ CT_UNKNOWN // Keep at last } CT_t; - CT_t ContentTypeFromMime(const char *mime); - const char *MimeFromContentType(CT_t ct); - const char *ExtnFromContentType(CT_t ct); + CT_t ContentTypeFromMime(const char* mime); + const char* MimeFromContentType(CT_t ct); + const char* ExtnFromContentType(CT_t ct); } diff -Nru kodi-pvr-mythtv-3.4.7/lib/cppmyth/src/private/mythwsrequest.cpp kodi-pvr-mythtv-3.4.15/lib/cppmyth/src/private/mythwsrequest.cpp --- kodi-pvr-mythtv-3.4.7/lib/cppmyth/src/private/mythwsrequest.cpp 2016-02-20 21:47:03.000000000 +0000 +++ kodi-pvr-mythtv-3.4.15/lib/cppmyth/src/private/mythwsrequest.cpp 2016-04-25 07:36:03.000000000 +0000 @@ -88,19 +88,24 @@ m_contentData = content; } +void WSRequest::SetHeader(const std::string& field, const std::string& value) +{ + m_headers[field] = value; +} + void WSRequest::ClearContent() { m_contentData.clear(); m_contentType = CT_FORM; } -void WSRequest::MakeMessageGET(std::string& msg) const +void WSRequest::MakeMessageGET(std::string& msg, const char* method) const { char buf[32]; msg.clear(); msg.reserve(256); - msg.append("GET ").append(m_service_url); + msg.append(method).append(" ").append(m_service_url); if (!m_contentData.empty()) msg.append("?").append(m_contentData); msg.append(" " REQUEST_PROTOCOL "\r\n"); @@ -111,17 +116,19 @@ if (m_accept != CT_NONE) msg.append("Accept: ").append(MimeFromContentType(m_accept)).append("\r\n"); msg.append("Accept-Charset: ").append(m_charset).append("\r\n"); + for (std::map::const_iterator it = m_headers.begin(); it != m_headers.end(); ++it) + msg.append(it->first).append(": ").append(it->second).append("\r\n"); msg.append("\r\n"); } -void WSRequest::MakeMessagePOST(std::string& msg) const +void WSRequest::MakeMessagePOST(std::string& msg, const char* method) const { char buf[32]; size_t content_len = m_contentData.size(); msg.clear(); msg.reserve(256); - msg.append("POST ").append(m_service_url).append(" HTTP/1.1\r\n"); + msg.append(method).append(" ").append(m_service_url).append(" " REQUEST_PROTOCOL "\r\n"); sprintf(buf, "%u", m_port); msg.append("Host: ").append(m_server).append(":").append(buf).append("\r\n"); msg.append("User-Agent: " REQUEST_USER_AGENT "\r\n"); @@ -134,23 +141,25 @@ sprintf(buf, "%lu", (unsigned long)content_len); msg.append("Content-Type: ").append(MimeFromContentType(m_contentType)); msg.append("; charset=" REQUEST_STD_CHARSET "\r\n"); - msg.append("Content-Length: ").append(buf).append("\r\n\r\n"); - msg.append(m_contentData); + msg.append("Content-Length: ").append(buf).append("\r\n"); } - else - msg.append("\r\n"); + for (std::map::const_iterator it = m_headers.begin(); it != m_headers.end(); ++it) + msg.append(it->first).append(": ").append(it->second).append("\r\n"); + msg.append("\r\n"); + if (content_len) + msg.append(m_contentData); } -void WSRequest::MakeMessageHEAD(std::string& msg) const +void WSRequest::MakeMessageHEAD(std::string& msg, const char* method) const { char buf[32]; msg.clear(); msg.reserve(256); - msg.append("HEAD ").append(m_service_url); + msg.append(method).append(" ").append(m_service_url); if (!m_contentData.empty()) msg.append("?").append(m_contentData); - msg.append(" HTTP/1.1\r\n"); + msg.append(" " REQUEST_PROTOCOL "\r\n"); sprintf(buf, "%u", m_port); msg.append("Host: ").append(m_server).append(":").append(buf).append("\r\n"); msg.append("User-Agent: " REQUEST_USER_AGENT "\r\n"); @@ -158,5 +167,7 @@ if (m_accept != CT_NONE) msg.append("Accept: ").append(MimeFromContentType(m_accept)).append("\r\n"); msg.append("Accept-Charset: ").append(m_charset).append("\r\n"); + for (std::map::const_iterator it = m_headers.begin(); it != m_headers.end(); ++it) + msg.append(it->first).append(": ").append(it->second).append("\r\n"); msg.append("\r\n"); } diff -Nru kodi-pvr-mythtv-3.4.7/lib/cppmyth/src/private/mythwsrequest.h kodi-pvr-mythtv-3.4.15/lib/cppmyth/src/private/mythwsrequest.h --- kodi-pvr-mythtv-3.4.7/lib/cppmyth/src/private/mythwsrequest.h 2016-02-20 21:47:03.000000000 +0000 +++ kodi-pvr-mythtv-3.4.15/lib/cppmyth/src/private/mythwsrequest.h 2016-04-25 07:36:03.000000000 +0000 @@ -26,10 +26,10 @@ #include // for size_t #include -#include +#include #define REQUEST_PROTOCOL "HTTP/1.1" -#define REQUEST_USER_AGENT "libcppmyth/1.0" +#define REQUEST_USER_AGENT "libcppmyth/2.5" #define REQUEST_CONNECTION "close" // "keep-alive" #define REQUEST_STD_CHARSET "utf-8" @@ -53,6 +53,7 @@ void RequestAccept(CT_t contentType); void SetContentParam(const std::string& param, const std::string& value); void SetContentCustom(CT_t contentType, const char *content); + void SetHeader(const std::string& field, const std::string& value); const std::string& GetContent() const { return m_contentData; } void ClearContent(); @@ -75,10 +76,11 @@ CT_t m_accept; CT_t m_contentType; std::string m_contentData; + std::map m_headers; - void MakeMessageGET(std::string& msg) const; - void MakeMessagePOST(std::string& msg) const; - void MakeMessageHEAD(std::string& msg) const; + void MakeMessageGET(std::string& msg, const char* method = "GET") const; + void MakeMessagePOST(std::string& msg, const char* method = "POST") const; + void MakeMessageHEAD(std::string& msg, const char* method = "HEAD") const; }; } diff -Nru kodi-pvr-mythtv-3.4.7/lib/cppmyth/src/private/mythwsresponse.cpp kodi-pvr-mythtv-3.4.15/lib/cppmyth/src/private/mythwsresponse.cpp --- kodi-pvr-mythtv-3.4.7/lib/cppmyth/src/private/mythwsresponse.cpp 2016-02-20 21:47:03.000000000 +0000 +++ kodi-pvr-mythtv-3.4.15/lib/cppmyth/src/private/mythwsresponse.cpp 2016-04-25 07:36:03.000000000 +0000 @@ -34,7 +34,7 @@ using namespace Myth; -static bool __readHeaderLine(TcpSocket *socket, const char *eol, std::string& line, size_t *len) +bool WSResponse::ReadHeaderLine(NetSocket *socket, const char *eol, std::string& line, size_t *len) { char buf[RESPONSE_BUFFER_SIZE]; const char *s_eol; @@ -50,7 +50,7 @@ line.clear(); do { - if (socket->ReadResponse(&buf[p], 1) > 0) + if (socket->ReceiveData(&buf[p], 1) > 0) { if (buf[p++] == s_eol[p_eol]) { @@ -95,8 +95,12 @@ , m_etag() , m_location() , m_contentType(CT_NONE) +, m_contentChunked(false) , m_contentLength(0) , m_consumed(0) +, m_chunkBuffer(NULL) +, m_chunkPtr(NULL) +, m_chunkEnd(NULL) { if (m_socket->Connect(request.GetServer().c_str(), request.GetPort(), SOCKET_RCVBUF_MINSIZE)) { @@ -121,6 +125,7 @@ WSResponse::~WSResponse() { + SAFE_DELETE_ARRAY(m_chunkBuffer); SAFE_DELETE(m_socket); } @@ -147,7 +152,7 @@ bool ret = false; token[0] = 0; - while (__readHeaderLine(m_socket, "\r\n", strread, &len)) + while (ReadHeaderLine(m_socket, "\r\n", strread, &len)) { const char *line = strread.c_str(), *val = NULL; int value_len = 0; @@ -203,6 +208,7 @@ token[p] = toupper(line[p]); token[token_len] = 0; while ((value_len = len - (val - line)) && *(++val) == ' '); + m_headers.push_front(std::make_pair(token, "")); } else { @@ -213,28 +219,37 @@ if (token_len) { + m_headers.front().second.append(val); switch (token_len) { case 4: - if (val && memcmp(token, "ETAG", token_len) == 0) + if (memcmp(token, "ETAG", token_len) == 0) m_etag.append(val); break; case 6: - if (val && memcmp(token, "SERVER", token_len) == 0) + if (memcmp(token, "SERVER", token_len) == 0) m_serverInfo.append(val); break; case 8: - if (val && memcmp(token, "LOCATION", token_len) == 0) + if (memcmp(token, "LOCATION", token_len) == 0) m_location.append(val); break; case 12: - if (val && memcmp(token, "CONTENT-TYPE", token_len) == 0) + if (memcmp(token, "CONTENT-TYPE", token_len) == 0) m_contentType = ContentTypeFromMime(val); break; case 14: - if (val && memcmp(token, "CONTENT-LENGTH", token_len) == 0) + if (memcmp(token, "CONTENT-LENGTH", token_len) == 0) m_contentLength = atol(val); break; + case 17: + if (memcmp(token, "TRANSFER-ENCODING", token_len) == 0) + { + m_transferEncoding.append(val); + if (m_transferEncoding == "chunked") + m_contentChunked = true; + } + break; default: break; } @@ -246,9 +261,59 @@ size_t WSResponse::ReadContent(char* buf, size_t buflen) { - if (!m_socket->IsConnected()) - return 0; - size_t s = m_socket->ReadResponse(buf, buflen); + size_t s = 0; + if (!m_contentChunked) + { + // let read on unknown length + if (!m_contentLength) + s = m_socket->ReadResponse(buf, buflen); + else if (m_contentLength > m_consumed) + { + size_t len = m_contentLength - m_consumed; + s = m_socket->ReadResponse(buf, len > buflen ? buflen : len); + } + } + else + { + if (m_chunkPtr == NULL || m_chunkPtr >= m_chunkEnd) + { + SAFE_DELETE_ARRAY(m_chunkBuffer); + m_chunkBuffer = m_chunkPtr = m_chunkEnd = NULL; + std::string strread; + size_t len = 0; + while (ReadHeaderLine(m_socket, "\r\n", strread, &len) && len == 0); + DBG(MYTH_DBG_PROTO, "%s: chunked data (%s)\n", __FUNCTION__, strread.c_str()); + std::string chunkStr("0x0"); + uint32_t chunkSize = 0; + if (!strread.empty() && sscanf(chunkStr.append(strread).c_str(), "%x", &chunkSize) == 1 && chunkSize > 0) + { + if (!(m_chunkBuffer = new char[chunkSize])) + return 0; + m_chunkPtr = m_chunkBuffer; + m_chunkEnd = m_chunkBuffer + chunkSize; + if (m_socket->ReadResponse(m_chunkBuffer, chunkSize) != chunkSize) + return 0; + } + else + return 0; + } + if ((s = m_chunkEnd - m_chunkPtr) > buflen) + s = buflen; + memcpy(buf, m_chunkPtr, s); + m_chunkPtr += s; + } m_consumed += s; return s; } + +bool WSResponse::GetHeaderValue(const std::string& header, std::string& value) +{ + for (HeaderList::const_iterator it = m_headers.begin(); it != m_headers.end(); ++it) + { + if (it->first != header) + continue; + value.assign(it->second); + return true; + } + return false; +} diff -Nru kodi-pvr-mythtv-3.4.7/lib/cppmyth/src/private/mythwsresponse.h kodi-pvr-mythtv-3.4.15/lib/cppmyth/src/private/mythwsresponse.h --- kodi-pvr-mythtv-3.4.7/lib/cppmyth/src/private/mythwsresponse.h 2016-02-20 21:47:03.000000000 +0000 +++ kodi-pvr-mythtv-3.4.15/lib/cppmyth/src/private/mythwsresponse.h 2016-04-25 07:36:03.000000000 +0000 @@ -27,10 +27,12 @@ #include // for size_t #include +#include namespace Myth { + class NetSocket; class TcpSocket; class WSResponse @@ -40,12 +42,17 @@ ~WSResponse(); bool IsSuccessful() const { return m_successful; } + bool IsChunkedTransfer() const { return m_contentChunked; } size_t GetContentLength() const { return m_contentLength; } size_t ReadContent(char *buf, size_t buflen); size_t GetConsumed() const { return m_consumed; } int GetStatusCode() const { return m_statusCode; } const std::string& Redirection() const { return m_location; } + bool GetHeaderValue(const std::string& header, std::string& value); + + static bool ReadHeaderLine(NetSocket *socket, const char *eol, std::string& line, size_t *len); + private: TcpSocket *m_socket; bool m_successful; @@ -53,9 +60,17 @@ std::string m_serverInfo; std::string m_etag; std::string m_location; + std::string m_transferEncoding; CT_t m_contentType; + bool m_contentChunked; size_t m_contentLength; size_t m_consumed; + char* m_chunkBuffer; + char* m_chunkPtr; + char* m_chunkEnd; + + typedef std::list > HeaderList; + HeaderList m_headers; // prevent copy WSResponse(const WSResponse&); diff -Nru kodi-pvr-mythtv-3.4.7/lib/cppmyth/src/private/os/threads/thread.h kodi-pvr-mythtv-3.4.15/lib/cppmyth/src/private/os/threads/thread.h --- kodi-pvr-mythtv-3.4.7/lib/cppmyth/src/private/os/threads/thread.h 2016-02-20 21:47:03.000000000 +0000 +++ kodi-pvr-mythtv-3.4.15/lib/cppmyth/src/private/os/threads/thread.h 2016-04-25 07:36:03.000000000 +0000 @@ -43,15 +43,18 @@ CThread(const CThread& _thread) { - (void)_thread; this->m_handle = new Handle(); + this->m_finalizeOnStop = _thread.m_finalizeOnStop; } CThread& operator=(const CThread& _thread) { - (void)_thread; - delete this->m_handle; - this->m_handle = new Handle(); + if (this != &_thread) + { + delete this->m_handle; + this->m_handle = new Handle(); + this->m_finalizeOnStop = _thread.m_finalizeOnStop; + } return *this; } @@ -137,7 +140,7 @@ Handle() : nativeHandle(0) , running(false) - , stopped(false) + , stopped(true) , notifiedStop(false) , started(false) , condition() diff -Nru kodi-pvr-mythtv-3.4.7/lib/cppmyth/src/private/os/threads/threadpool.h kodi-pvr-mythtv-3.4.15/lib/cppmyth/src/private/os/threads/threadpool.h --- kodi-pvr-mythtv-3.4.7/lib/cppmyth/src/private/os/threads/threadpool.h 2016-02-20 21:47:03.000000000 +0000 +++ kodi-pvr-mythtv-3.4.15/lib/cppmyth/src/private/os/threads/threadpool.h 2016-04-25 07:36:03.000000000 +0000 @@ -91,8 +91,8 @@ { friend class CThreadPool; public: - CWorker() : m_queued(false) { }; - virtual ~CWorker() { }; + CWorker() : m_queued(false) { } + virtual ~CWorker() { } virtual void Process() = 0; private: diff -Nru kodi-pvr-mythtv-3.4.7/lib/cppmyth/src/private/os/windows/os-types.h kodi-pvr-mythtv-3.4.15/lib/cppmyth/src/private/os/windows/os-types.h --- kodi-pvr-mythtv-3.4.7/lib/cppmyth/src/private/os/windows/os-types.h 2016-02-20 21:47:03.000000000 +0000 +++ kodi-pvr-mythtv-3.4.15/lib/cppmyth/src/private/os/windows/os-types.h 2016-04-25 07:36:03.000000000 +0000 @@ -78,7 +78,10 @@ #endif /* Prevent deprecation warnings */ +#if (_MSC_VER < 1900) #define snprintf _snprintf +#endif + #define strnicmp _strnicmp #else diff -Nru kodi-pvr-mythtv-3.4.7/lib/cppmyth/src/private/os/windows/winpthreads.h kodi-pvr-mythtv-3.4.15/lib/cppmyth/src/private/os/windows/winpthreads.h --- kodi-pvr-mythtv-3.4.7/lib/cppmyth/src/private/os/windows/winpthreads.h 2016-02-20 21:47:03.000000000 +0000 +++ kodi-pvr-mythtv-3.4.15/lib/cppmyth/src/private/os/windows/winpthreads.h 2016-04-25 07:36:03.000000000 +0000 @@ -96,12 +96,16 @@ #define PTHREAD_BARRIER_SERIAL_THREAD 1 /* Windows doesn't have this, so declare it ourselves. */ +#if (_MSC_VER < 1900) struct timespec { /* long long in windows is the same as long in unix for 64bit */ long long tv_sec; long long tv_nsec; }; +#else +#include +#endif struct _pthread_v; typedef struct _pthread_v *pthread_t; diff -Nru kodi-pvr-mythtv-3.4.7/lib/cppmyth/src/proto/mythprotobase.cpp kodi-pvr-mythtv-3.4.15/lib/cppmyth/src/proto/mythprotobase.cpp --- kodi-pvr-mythtv-3.4.7/lib/cppmyth/src/proto/mythprotobase.cpp 2016-02-20 21:47:03.000000000 +0000 +++ kodi-pvr-mythtv-3.4.15/lib/cppmyth/src/proto/mythprotobase.cpp 2016-04-25 07:36:03.000000000 +0000 @@ -87,7 +87,6 @@ bool ProtoBase::SendCommand(const char *cmd, bool feedback) { - char buf[9]; size_t l = strlen(cmd); if (m_msgConsumed != m_msgLength) @@ -98,6 +97,7 @@ if (l > 0 && l < PROTO_SENDMSG_MAXSIZE) { + char buf[9]; std::string msg; msg.reserve(l + 8); sprintf(buf, "%-8u", (unsigned)l); @@ -352,8 +352,6 @@ void ProtoBase::Close() { - const char *cmd = "DONE"; - OS::CLockGuard lock(*m_mutex); if (m_socket->IsConnected()) @@ -361,6 +359,7 @@ // Close gracefully by sending DONE message before disconnect if (m_isOpen && !m_hang) { + const char *cmd = "DONE"; if (SendCommand(cmd, false)) DBG(MYTH_DBG_PROTO, "%s: done\n", __FUNCTION__); else diff -Nru kodi-pvr-mythtv-3.4.7/pvr.mythtv/addon.xml.in kodi-pvr-mythtv-3.4.15/pvr.mythtv/addon.xml.in --- kodi-pvr-mythtv-3.4.7/pvr.mythtv/addon.xml.in 2016-02-20 21:47:03.000000000 +0000 +++ kodi-pvr-mythtv-3.4.15/pvr.mythtv/addon.xml.in 2016-04-25 07:36:03.000000000 +0000 @@ -1,7 +1,7 @@ @@ -95,7 +95,7 @@ MythTV frontend (tot MythTV 0.28). Ondersteunt streaming van Live TV & opnames, luisteren naar radiokanalen, EPG en Timers. Klient telewizyjny dla MythTV (wersja 0.28 i wcześniejsze) obsługuje strumieniowanie kanałów radiowych i telewizyjnych, nagrywanie i harmonogram nagrań oraz funkcje przewodnika telewizyjnego. MythTV frontend (up para MythTV 0.28). Suporta streaming de TV ao Vivo & Gravações, Escutar canais de rádios, EPG e Agendamentos. - Interface MythTV (até MythTV 0.28). Permite transmissão ao vivo de Live Tv e gravações, ouvir estações de rádio, EPG e temporizadores. + Interface MythTV (até MythTV 0.28). Permite televisão em direto, gravações, estações de rádio, EPG e temporizadores. Frontend MythTV (până la MythTV 0.28). Suportă difuzare în flux a televiziunii în direct și a înregistrăriilor, ascultarea posturilor de radio, EPG și Cronometre. Фронтэнд MythTV (вплоть до MythTV 0.28). Поддерживает поточное ТВ и записи, прослушивание радио-каналов, ЕПГ и таймеры. MythTV rozhranie (až do verzie MythTV 0.28). Podporuje streamovanie živého TV vysielania a nahrávok, počúvanie rozhlasových kanálov, EPG a časovače. @@ -141,7 +141,7 @@ Dit is onstabiele software! De auteurs zijn op geen enkele wijze verantwoordelijk voor mislukte opnames, timers, verspilde tijd of enig ander ongewild bijeffect. To oprogramowanie jest niestabilne! Autorzy w żaden sposób nie odpowiadają za nieudane nagrania, błędy w harmonogramie nagrań, stracone godziny czy też jakiekolwiek inne niepożądane efekty. Este é um software instável! Os autores não são responsáveis por falhas nas gravações, agendamentos incorretos, horas dispendidas, ou quaisquer outro efeito indesejado. - Este software é instável! Os autores não são de forma alguma responsáveis por gravações falhadas, temporizadores incorrectos, horas desperdiçadas, ou qualquer outro tipo de efeitos indesejáveis.. + Este software é instável! Os autores não podem ser responsabilizados por gravações falhadas, temporizadores incorretos, horas desperdiçadas ou qualquer outro tipo de efeitos indesejáveis... Acest software nu este stabil! Autorii nu sunt responsabili în niciun caz pentru înregistrările eșuate, cronometre incorecte, ore pierdute sau orice alt efect nedorit. Это тестовая программа! Авторы не несут никакой ответственности за испорченные записи, неверные таймеры, потраченное время и за прочие нежелательные эффекты. Toto nie je stabilný software! Autori nie sú zodpovední za zlýhané nahrávky, nesprávne časovače, premrhané hodiny a iné nežiadúce efekty. diff -Nru kodi-pvr-mythtv-3.4.7/pvr.mythtv/changelog.txt kodi-pvr-mythtv-3.4.15/pvr.mythtv/changelog.txt --- kodi-pvr-mythtv-3.4.7/pvr.mythtv/changelog.txt 2016-02-20 21:47:03.000000000 +0000 +++ kodi-pvr-mythtv-3.4.15/pvr.mythtv/changelog.txt 2016-04-25 07:36:03.000000000 +0000 @@ -1,3 +1,27 @@ +v3.4.15 +- Updated language files from Transifex + +v3.4.14 +- Updated language files from Transifex + +v3.4.13 +- Updated language files from Transifex + +v3.4.12 +- Sync cppmyth upstream (2.5.1) + +v3.4.11 +- Sync cppmyth upstream (2.5.0) + +v3.4.10 +- Updated language files from Transifex + +v3.4.9 +- Updated language files from Transifex + +v3.4.8 +- Updated language files from Transifex + v3.4.7 - Updated language files from Transifex diff -Nru kodi-pvr-mythtv-3.4.7/pvr.mythtv/resources/language/resource.language.cs_cz/strings.po kodi-pvr-mythtv-3.4.15/pvr.mythtv/resources/language/resource.language.cs_cz/strings.po --- kodi-pvr-mythtv-3.4.7/pvr.mythtv/resources/language/resource.language.cs_cz/strings.po 2016-02-20 21:47:03.000000000 +0000 +++ kodi-pvr-mythtv-3.4.15/pvr.mythtv/resources/language/resource.language.cs_cz/strings.po 2016-04-25 07:36:03.000000000 +0000 @@ -216,6 +216,14 @@ msgid "Do you want to retry ?" msgstr "Chcete to zkusit znovu?" +msgctxt "#30300" +msgid "Failed to connect the MythTV backend with the known protocol versions. Please check the compatibility map of the addon and upgrade your backend to a supported version." +msgstr "Nepodařilo se spojit s MythTV backendem pomocí známé verze protokolu. Zkontrolujte prosím kompatibilitu doplňku a aktualizujte váš backend na podporovanou verzi." + +msgctxt "#30301" +msgid "Failed to connect the API services of MythTV backend. Please check your PIN code or backend setup. The PIN code has to be configured in your backend to allow connection." +msgstr "Nepodařilo se spojit se službou API MythTV backendu. Zkontrolujte prosím váš PIN kód nebo nastavení backendu. Ve vašem backendu musí být nadefinován PIN kód, jinak se nespojíte." + msgctxt "#30302" msgid "Connection to MythTV backend lost" msgstr "Spojení s podpůrnou vrstvou MythTV ztraceno" @@ -268,10 +276,26 @@ msgid "Keep LiveTV recording" msgstr "Pokračuj v nahrávání" +msgctxt "#30421" +msgid "Show/hide inactive upcomings" +msgstr "Ukázat/Schovat neaktivní naplánované položky" + msgctxt "#30422" msgid "Refresh cache for channel icons" msgstr "Obnov cache pro ikonky kanálů" +msgctxt "#30423" +msgid "Trigger channels update" +msgstr "Spustit aktualizaci kanálů" + +msgctxt "#30424" +msgid "Show status of scheduling" +msgstr "Ukázat status plánování" + +msgctxt "#30451" +msgid "Unhandled" +msgstr "Neošetřené" + msgctxt "#30452" msgid "Upcoming" msgstr "Nadcházející" @@ -328,6 +352,26 @@ msgid "Search people" msgstr "Vyhledat osobnosti" +msgctxt "#30501" +msgid "Don't match duplicates" +msgstr "Nepáruj duplicitní položky" + +msgctxt "#30502" +msgid "Match duplicates using subtitle" +msgstr "Spáruj duplicity podle podtitulu" + +msgctxt "#30503" +msgid "Match duplicates using description" +msgstr "Spáruj duplicity podle popisu" + +msgctxt "#30504" +msgid "Match duplicates using subtitle & description" +msgstr "Spáruj duplicity podle podtitulu & popisu" + +msgctxt "#30505" +msgid "Match duplicates using subtitle then description" +msgstr "Spáruj duplicity primárně podle podtitulu a sekundárně dle popisu" + msgctxt "#30506" msgid "Recordings never expire" msgstr "Nahrávky nikdy nevyprší" diff -Nru kodi-pvr-mythtv-3.4.7/pvr.mythtv/resources/language/resource.language.de_de/strings.po kodi-pvr-mythtv-3.4.15/pvr.mythtv/resources/language/resource.language.de_de/strings.po --- kodi-pvr-mythtv-3.4.7/pvr.mythtv/resources/language/resource.language.de_de/strings.po 2016-02-20 21:47:03.000000000 +0000 +++ kodi-pvr-mythtv-3.4.15/pvr.mythtv/resources/language/resource.language.de_de/strings.po 2016-04-25 07:36:03.000000000 +0000 @@ -208,6 +208,22 @@ msgid "A cut list or commercial skips have been found.\nDo you want to activate EDL functionality for this show ?" msgstr "Eine Schnittliste oder Werbungsmarkierungen wurden gefunden.\nSoll für diese Sendung die Schnittlisten-Funktionalität aktiviert werden?" +msgctxt "#30112" +msgid "Connection failed" +msgstr "Verbindung fehlgeschlagen" + +msgctxt "#30113" +msgid "Do you want to retry ?" +msgstr "Erneut versuchen?" + +msgctxt "#30300" +msgid "Failed to connect the MythTV backend with the known protocol versions. Please check the compatibility map of the addon and upgrade your backend to a supported version." +msgstr "Mit den bekannten Protokoll-Versionen konnte keine Verbindung zum MythTV Backend hergestellt werden. Bitte die Kompatibilitäts-Matrix des Addons überprüfen und auf eine unterstützte Version upgraden." + +msgctxt "#30301" +msgid "Failed to connect the API services of MythTV backend. Please check your PIN code or backend setup. The PIN code has to be configured in your backend to allow connection." +msgstr "Verbindung zu den API-Diensten des MythTV Backends fehlgeschlagen. Bitte PIN oder Backend Einstellungen überprüfen. Der PIN muss im Backend konfiguriert sein um eine Verbindung zu ermöglichen." + msgctxt "#30302" msgid "Connection to MythTV backend lost" msgstr "Die Verbindung zum MythTV Backend wurde unterbrochen" @@ -268,10 +284,106 @@ msgid "Refresh cache for channel icons" msgstr "Cache für Senderlogos aktualisieren" +msgctxt "#30423" +msgid "Trigger channels update" +msgstr "Kanal-Update auslösen" + +msgctxt "#30424" +msgid "Show status of scheduling" +msgstr "Zeige Status der Programmierung" + +msgctxt "#30451" +msgid "Unhandled" +msgstr "Nicht gehandhabt" + +msgctxt "#30452" +msgid "Upcoming" +msgstr "Bevorstehend" + +msgctxt "#30453" +msgid "Overriden" +msgstr "Überschrieben" + +msgctxt "#30454" +msgid "Don't record" +msgstr "Nicht aufnehmen" + +msgctxt "#30455" +msgid "Upcoming manual" +msgstr "Bevorstehend Manuell" + +msgctxt "#30456" +msgid "Zombie" +msgstr "Zombie" + msgctxt "#30460" msgid "Manual" msgstr "Manuell" +msgctxt "#30461" +msgid "Record one" +msgstr "Einmal aufnehmen" + +msgctxt "#30462" +msgid "Record weekly" +msgstr "Wöchentlich aufnehmen" + +msgctxt "#30463" +msgid "Record daily" +msgstr "Täglich aufnehmen" + +msgctxt "#30464" +msgid "Record all" +msgstr "Alle aufnehmen" + +msgctxt "#30465" +msgid "Record this" +msgstr "Aufnehmen" + +msgctxt "#30466" +msgid "Record series" +msgstr "Serie aufnehmen" + +msgctxt "#30467" +msgid "Search keyword" +msgstr "Schlüsselwort suchen" + +msgctxt "#30468" +msgid "Search people" +msgstr "Personen suchen" + +msgctxt "#30501" +msgid "Don't match duplicates" +msgstr "Duplikate nicht abgleichen" + +msgctxt "#30502" +msgid "Match duplicates using subtitle" +msgstr "Duplikate über Untertitel abgleichen" + +msgctxt "#30503" +msgid "Match duplicates using description" +msgstr "Duplikate über Beschreibung abgleichen" + +msgctxt "#30504" +msgid "Match duplicates using subtitle & description" +msgstr "Duplikate über Untertitel & Beschreibung abgleichen" + +msgctxt "#30505" +msgid "Match duplicates using subtitle then description" +msgstr "Duplikate zuerst über Untertitel dann über Beschreibung abgleichen" + +msgctxt "#30506" +msgid "Recordings never expire" +msgstr "Aufnahmen haben kein Ablaufdatum" + msgctxt "#30507" msgid "Allow recordings to expire" msgstr "Erlaube Aufnahmen abzulaufen" + +msgctxt "#30508" +msgid "Keep up to %d recordings" +msgstr "Behalte bis zu %d Aufnahmen" + +msgctxt "#30509" +msgid "Keep %d newest and expire old" +msgstr "Behalte die %d Neuesten und lasse Alte auslaufen" diff -Nru kodi-pvr-mythtv-3.4.7/pvr.mythtv/resources/language/resource.language.el_gr/strings.po kodi-pvr-mythtv-3.4.15/pvr.mythtv/resources/language/resource.language.el_gr/strings.po --- kodi-pvr-mythtv-3.4.7/pvr.mythtv/resources/language/resource.language.el_gr/strings.po 2016-02-20 21:47:03.000000000 +0000 +++ kodi-pvr-mythtv-3.4.15/pvr.mythtv/resources/language/resource.language.el_gr/strings.po 2016-04-25 07:36:03.000000000 +0000 @@ -208,6 +208,14 @@ msgid "A cut list or commercial skips have been found.\nDo you want to activate EDL functionality for this show ?" msgstr "Βρέθηκαν διαφημίσεις ή κάποια λίστα αποφυγής.\nΝα ενεργοποιηθεί η λειτουργία EDL για αυτήν τη σειρά ;" +msgctxt "#30112" +msgid "Connection failed" +msgstr "Σύνδεση απέτυχε" + +msgctxt "#30113" +msgid "Do you want to retry ?" +msgstr "Θέλετε να ξαναδοκιμάσετε ?" + msgctxt "#30302" msgid "Connection to MythTV backend lost" msgstr "Απώλεια σύνδεσης με το backend του MythTV" diff -Nru kodi-pvr-mythtv-3.4.7/pvr.mythtv/resources/language/resource.language.en_us/strings.po kodi-pvr-mythtv-3.4.15/pvr.mythtv/resources/language/resource.language.en_us/strings.po --- kodi-pvr-mythtv-3.4.7/pvr.mythtv/resources/language/resource.language.en_us/strings.po 2016-02-20 21:47:03.000000000 +0000 +++ kodi-pvr-mythtv-3.4.15/pvr.mythtv/resources/language/resource.language.en_us/strings.po 2016-04-25 07:36:03.000000000 +0000 @@ -208,6 +208,22 @@ msgid "A cut list or commercial skips have been found.\nDo you want to activate EDL functionality for this show ?" msgstr "A cut list or commercial skips have been found.\nDo you want to activate EDL functionality for this show ?" +msgctxt "#30112" +msgid "Connection failed" +msgstr "Connection failed" + +msgctxt "#30113" +msgid "Do you want to retry ?" +msgstr "Do you want to retry ?" + +msgctxt "#30300" +msgid "Failed to connect the MythTV backend with the known protocol versions. Please check the compatibility map of the addon and upgrade your backend to a supported version." +msgstr "Failed to connect the MythTV backend with the known protocol versions. Please check the compatibility map of the addon and upgrade your backend to a supported version." + +msgctxt "#30301" +msgid "Failed to connect the API services of MythTV backend. Please check your PIN code or backend setup. The PIN code has to be configured in your backend to allow connection." +msgstr "Failed to connect the API services of MythTV backend. Please check your PIN code or backend setup. The PIN code has to be configured in your backend to allow connection." + msgctxt "#30302" msgid "Connection to MythTV backend lost" msgstr "Connection to MythTV backend lost" @@ -268,10 +284,106 @@ msgid "Refresh cache for channel icons" msgstr "Refresh cache for channel icons" +msgctxt "#30423" +msgid "Trigger channels update" +msgstr "Trigger channels update" + +msgctxt "#30424" +msgid "Show status of scheduling" +msgstr "Show status of scheduling" + +msgctxt "#30451" +msgid "Unhandled" +msgstr "Unhandled" + +msgctxt "#30452" +msgid "Upcoming" +msgstr "Upcoming" + +msgctxt "#30453" +msgid "Overriden" +msgstr "Overriden" + +msgctxt "#30454" +msgid "Don't record" +msgstr "Don't record" + +msgctxt "#30455" +msgid "Upcoming manual" +msgstr "Upcoming manual" + +msgctxt "#30456" +msgid "Zombie" +msgstr "Zombie" + msgctxt "#30460" msgid "Manual" msgstr "Manual" +msgctxt "#30461" +msgid "Record one" +msgstr "Record one" + +msgctxt "#30462" +msgid "Record weekly" +msgstr "Record weekly" + +msgctxt "#30463" +msgid "Record daily" +msgstr "Record daily" + +msgctxt "#30464" +msgid "Record all" +msgstr "Record all" + +msgctxt "#30465" +msgid "Record this" +msgstr "Record this" + +msgctxt "#30466" +msgid "Record series" +msgstr "Record series" + +msgctxt "#30467" +msgid "Search keyword" +msgstr "Search keyword" + +msgctxt "#30468" +msgid "Search people" +msgstr "Search people" + +msgctxt "#30501" +msgid "Don't match duplicates" +msgstr "Don't match duplicates" + +msgctxt "#30502" +msgid "Match duplicates using subtitle" +msgstr "Match duplicates using subtitle" + +msgctxt "#30503" +msgid "Match duplicates using description" +msgstr "Match duplicates using description" + +msgctxt "#30504" +msgid "Match duplicates using subtitle & description" +msgstr "Match duplicates using subtitle & description" + +msgctxt "#30505" +msgid "Match duplicates using subtitle then description" +msgstr "Match duplicates using subtitle then description" + +msgctxt "#30506" +msgid "Recordings never expire" +msgstr "Recordings never expire" + msgctxt "#30507" msgid "Allow recordings to expire" msgstr "Allow recordings to expire" + +msgctxt "#30508" +msgid "Keep up to %d recordings" +msgstr "Keep up to %d recordings" + +msgctxt "#30509" +msgid "Keep %d newest and expire old" +msgstr "Keep %d newest and expire old" diff -Nru kodi-pvr-mythtv-3.4.7/pvr.mythtv/resources/language/resource.language.fi_fi/strings.po kodi-pvr-mythtv-3.4.15/pvr.mythtv/resources/language/resource.language.fi_fi/strings.po --- kodi-pvr-mythtv-3.4.7/pvr.mythtv/resources/language/resource.language.fi_fi/strings.po 2016-02-20 21:47:03.000000000 +0000 +++ kodi-pvr-mythtv-3.4.15/pvr.mythtv/resources/language/resource.language.fi_fi/strings.po 2016-04-25 07:36:03.000000000 +0000 @@ -76,6 +76,14 @@ msgid "MythTV" msgstr "MythTV" +msgctxt "#30025" +msgid "Internal template" +msgstr "Sisäinen malli" + +msgctxt "#30026" +msgid "Automatically Look Up Metadata" +msgstr "Etsi automaattisesti metatietoja" + msgctxt "#30028" msgid "Transcode new recordings" msgstr "Transkoodaa uudet tallennukset" @@ -84,6 +92,10 @@ msgid "Transcoder" msgstr "Transkooderi" +msgctxt "#30049" +msgid "Recording template" +msgstr "Tallennusmalli" + msgctxt "#30050" msgid "Advanced" msgstr "Lisäasetukset" @@ -92,6 +104,10 @@ msgid "Tuning delay (sec)" msgstr "Viritysviive (sek)" +msgctxt "#30054" +msgid "Group recordings by title" +msgstr "Ryhmitä tallennukset nimien perusteella" + msgctxt "#30055" msgid "Always" msgstr "Aina" @@ -108,6 +124,10 @@ msgid "Always" msgstr "Aina" +msgctxt "#30060" +msgid "Dialog" +msgstr "Dialogi" + msgctxt "#30061" msgid "Never" msgstr "Ei koskaan" @@ -124,6 +144,18 @@ msgid "Limit channel tuning attempts" msgstr "Rajoita kanavanhaku yritykset" +msgctxt "#30110" +msgid "Enabling EDL" +msgstr "Ota EDL käyttöön" + +msgctxt "#30112" +msgid "Connection failed" +msgstr "Yhteys epäonnistui" + +msgctxt "#30113" +msgid "Do you want to retry ?" +msgstr "Haluatko yrittää uudelleen?" + msgctxt "#30302" msgid "Connection to MythTV backend lost" msgstr "Yhteys MythTv:hen katkennut" @@ -175,3 +207,11 @@ msgctxt "#30460" msgid "Manual" msgstr "Manuaalisesti" + +msgctxt "#30508" +msgid "Keep up to %d recordings" +msgstr "Pidä enintään %d tallennusta" + +msgctxt "#30509" +msgid "Keep %d newest and expire old" +msgstr "Pidä %d uusinta ja poista vanha" diff -Nru kodi-pvr-mythtv-3.4.7/pvr.mythtv/resources/language/resource.language.fr_ca/strings.po kodi-pvr-mythtv-3.4.15/pvr.mythtv/resources/language/resource.language.fr_ca/strings.po --- kodi-pvr-mythtv-3.4.7/pvr.mythtv/resources/language/resource.language.fr_ca/strings.po 2016-02-20 21:47:03.000000000 +0000 +++ kodi-pvr-mythtv-3.4.15/pvr.mythtv/resources/language/resource.language.fr_ca/strings.po 2016-04-25 07:36:03.000000000 +0000 @@ -290,7 +290,7 @@ msgctxt "#30424" msgid "Show status of scheduling" -msgstr "Montrer l'état de la programmation" +msgstr "Afficher l'état de la programmation" msgctxt "#30451" msgid "Unhandled" diff -Nru kodi-pvr-mythtv-3.4.7/pvr.mythtv/resources/language/resource.language.fr_fr/strings.po kodi-pvr-mythtv-3.4.15/pvr.mythtv/resources/language/resource.language.fr_fr/strings.po --- kodi-pvr-mythtv-3.4.7/pvr.mythtv/resources/language/resource.language.fr_fr/strings.po 2016-02-20 21:47:03.000000000 +0000 +++ kodi-pvr-mythtv-3.4.15/pvr.mythtv/resources/language/resource.language.fr_fr/strings.po 2016-04-25 07:36:03.000000000 +0000 @@ -42,11 +42,11 @@ msgctxt "#30006" msgid "Enable Live TV" -msgstr "Activer la télévision en direct" +msgstr "Activer la TV en direct" msgctxt "#30007" msgid "Allow Live TV to move scheduled shows" -msgstr "Autoriser la TV à modifier la planification des programmes" +msgstr "Autoriser la TV en direct à modifier la planification des programmes" msgctxt "#30008" msgid "Conflict handling" @@ -174,7 +174,7 @@ msgctxt "#30060" msgid "Dialog" -msgstr "Boîte de dialogue" +msgstr "Fenêtre de dialogue" msgctxt "#30061" msgid "Never" @@ -190,7 +190,7 @@ msgctxt "#30064" msgid "Enable recording fanart/thumbnails" -msgstr "Activer l'enregistrement des fanarts/miniatures" +msgstr "Activer l'enregistrement des FanArts/miniatures" msgctxt "#30065" msgid "Limit channel tuning attempts" @@ -198,7 +198,7 @@ msgctxt "#30100" msgid "Protocol version: %i - Database version: %i" -msgstr "Version du protocole : %i - Version de la base de données: %i" +msgstr "Version du protocole : %i - Version de la base de données : %i" msgctxt "#30110" msgid "Enabling EDL" @@ -250,7 +250,7 @@ msgctxt "#30308" msgid "Stopping Live TV due to conflicting recording: %s" -msgstr "TV en direct stoppée pour l'enregistrement en conflit : %s" +msgstr "TV en direct stoppée à cause d'enregistrement en conflit : %s" msgctxt "#30309" msgid "Not recording" diff -Nru kodi-pvr-mythtv-3.4.7/pvr.mythtv/resources/language/resource.language.he_il/strings.po kodi-pvr-mythtv-3.4.15/pvr.mythtv/resources/language/resource.language.he_il/strings.po --- kodi-pvr-mythtv-3.4.7/pvr.mythtv/resources/language/resource.language.he_il/strings.po 2016-02-20 21:47:03.000000000 +0000 +++ kodi-pvr-mythtv-3.4.15/pvr.mythtv/resources/language/resource.language.he_il/strings.po 2016-04-25 07:36:03.000000000 +0000 @@ -206,7 +206,15 @@ msgctxt "#30111" msgid "A cut list or commercial skips have been found.\nDo you want to activate EDL functionality for this show ?" -msgstr "רשימת נק' חיתוך הקלטה או דילוגי פרסומות נמצאו.\nהאם לאפשר את תכונת EDL עבור תוכנית זו?" +msgstr "רשימת נק' חיתוך הקלטה או דילוגי פרסומות נמצאו.\nהאם לאפשר את תכונת EDL עבור תכנית זו?" + +msgctxt "#30112" +msgid "Connection failed" +msgstr "החיבור נכשל" + +msgctxt "#30113" +msgid "Do you want to retry ?" +msgstr "האם ברצונך לנסות שנית?" msgctxt "#30302" msgid "Connection to MythTV backend lost" @@ -260,14 +268,70 @@ msgid "Keep LiveTV recording" msgstr "השאר הקלטת שידור חי" +msgctxt "#30421" +msgid "Show/hide inactive upcomings" +msgstr "הצג/הסתר בקרוב לא פעיל" + msgctxt "#30422" msgid "Refresh cache for channel icons" msgstr "רענן מטמון סמלי ערוץ" +msgctxt "#30423" +msgid "Trigger channels update" +msgstr "גורם מפעיל עדכון ערוצים" + +msgctxt "#30424" +msgid "Show status of scheduling" +msgstr "הצג סטטוס של תזמון" + +msgctxt "#30451" +msgid "Unhandled" +msgstr "לא מטופל" + +msgctxt "#30452" +msgid "Upcoming" +msgstr "בקרוב" + +msgctxt "#30454" +msgid "Don't record" +msgstr "לא להקליט" + msgctxt "#30460" msgid "Manual" msgstr "ידני" +msgctxt "#30461" +msgid "Record one" +msgstr "הקלטה חד פעמית" + +msgctxt "#30462" +msgid "Record weekly" +msgstr "הקלטה שבועית" + +msgctxt "#30463" +msgid "Record daily" +msgstr "הקלטה יומית" + +msgctxt "#30464" +msgid "Record all" +msgstr "הקלט הכל" + +msgctxt "#30465" +msgid "Record this" +msgstr "הקלט זה" + +msgctxt "#30466" +msgid "Record series" +msgstr "הקלטת סדרה" + +msgctxt "#30467" +msgid "Search keyword" +msgstr "חיפוש מילת מפתח" + +msgctxt "#30468" +msgid "Search people" +msgstr "חיפוש אנשים" + msgctxt "#30507" msgid "Allow recordings to expire" msgstr "אפשר פקיעת תוקף הקלטות" diff -Nru kodi-pvr-mythtv-3.4.7/pvr.mythtv/resources/language/resource.language.pt_br/strings.po kodi-pvr-mythtv-3.4.15/pvr.mythtv/resources/language/resource.language.pt_br/strings.po --- kodi-pvr-mythtv-3.4.7/pvr.mythtv/resources/language/resource.language.pt_br/strings.po 2016-02-20 21:47:03.000000000 +0000 +++ kodi-pvr-mythtv-3.4.15/pvr.mythtv/resources/language/resource.language.pt_br/strings.po 2016-04-25 07:36:03.000000000 +0000 @@ -276,18 +276,42 @@ msgid "Keep LiveTV recording" msgstr "Manter gravação de TV ao Vivo" +msgctxt "#30421" +msgid "Show/hide inactive upcomings" +msgstr "Mostrar/Ocultar por vir inativo" + msgctxt "#30422" msgid "Refresh cache for channel icons" msgstr "Atualização de cache para logos de canais" +msgctxt "#30423" +msgid "Trigger channels update" +msgstr "Disparar atualização de canais" + msgctxt "#30424" msgid "Show status of scheduling" msgstr "Mostrar estatus dos agendamentos" +msgctxt "#30451" +msgid "Unhandled" +msgstr "Sem tratamento" + +msgctxt "#30452" +msgid "Upcoming" +msgstr "Próximos por vir" + +msgctxt "#30453" +msgid "Overriden" +msgstr "Sobrepor" + msgctxt "#30454" msgid "Don't record" msgstr "Não gravar" +msgctxt "#30455" +msgid "Upcoming manual" +msgstr "Próximos por vir manual" + msgctxt "#30456" msgid "Zombie" msgstr "Zumbie" @@ -328,6 +352,26 @@ msgid "Search people" msgstr "Procurar pessoas" +msgctxt "#30501" +msgid "Don't match duplicates" +msgstr "Duplicados não correspondentes" + +msgctxt "#30502" +msgid "Match duplicates using subtitle" +msgstr "Duplicados correspondam baseados na legenda" + +msgctxt "#30503" +msgid "Match duplicates using description" +msgstr "Duplicados correspondam baseados na descrição" + +msgctxt "#30504" +msgid "Match duplicates using subtitle & description" +msgstr "Duplicados correspondam baseados na legenda & descrição" + +msgctxt "#30505" +msgid "Match duplicates using subtitle then description" +msgstr "Duplicados correspondam usando legenda então descrição" + msgctxt "#30506" msgid "Recordings never expire" msgstr "Gravações nunca expiram" @@ -339,3 +383,7 @@ msgctxt "#30508" msgid "Keep up to %d recordings" msgstr "Manter até %d gravações" + +msgctxt "#30509" +msgid "Keep %d newest and expire old" +msgstr "manter % mais novos e expirar os mais antigos" diff -Nru kodi-pvr-mythtv-3.4.7/pvr.mythtv/resources/language/resource.language.pt_pt/strings.po kodi-pvr-mythtv-3.4.15/pvr.mythtv/resources/language/resource.language.pt_pt/strings.po --- kodi-pvr-mythtv-3.4.7/pvr.mythtv/resources/language/resource.language.pt_pt/strings.po 2016-02-20 21:47:03.000000000 +0000 +++ kodi-pvr-mythtv-3.4.15/pvr.mythtv/resources/language/resource.language.pt_pt/strings.po 2016-04-25 07:36:03.000000000 +0000 @@ -54,7 +54,7 @@ msgctxt "#30009" msgid "Prefer Live TV when recording has later slot" -msgstr "Preferir Tv em direto se existir horário para gravar mais tarde" +msgstr "Preferir TV em direto se existir horário para gravar mais tarde" msgctxt "#30010" msgid "Prefer recording and stop Live TV" @@ -82,7 +82,7 @@ msgctxt "#30020" msgid "Template provider" -msgstr "Forncedeor de modelos" +msgstr "Forncedor de modelos" msgctxt "#30021" msgid "Internal" @@ -142,7 +142,7 @@ msgctxt "#30052" msgid "Enable demuxing MPEG-TS" -msgstr "Ativar demux MPEG-TS" +msgstr "Ativar 'demuxing' MPEG-TS" msgctxt "#30053" msgid "Tuning delay (sec)" @@ -166,7 +166,7 @@ msgctxt "#30058" msgid "Enable commercial skips (EDL)" -msgstr "Ativar saltos comerciais (EDL)" +msgstr "Permitir ignorar anúncios (EDL)" msgctxt "#30059" msgid "Always" @@ -194,7 +194,7 @@ msgctxt "#30065" msgid "Limit channel tuning attempts" -msgstr "Limitar tentativas de sintonia" +msgstr "Limitar tentativas de sintonização" msgctxt "#30100" msgid "Protocol version: %i - Database version: %i" @@ -202,15 +202,15 @@ msgctxt "#30110" msgid "Enabling EDL" -msgstr "Ativando EDL" +msgstr "A ativar EDL" msgctxt "#30111" msgid "A cut list or commercial skips have been found.\nDo you want to activate EDL functionality for this show ?" -msgstr "Uma da lista de cortes ou omissões comerciais foram encontrados.\nQuer ativar a funcionalidade EDL para este programa?" +msgstr "Uma da lista de cortes ou omissões comerciais foram encontrados.\nDeseja ativar a funcionalidade EDL para este programa?" msgctxt "#30112" msgid "Connection failed" -msgstr "A ligação falhou" +msgstr "Falha de ligação" msgctxt "#30113" msgid "Do you want to retry ?" @@ -218,7 +218,7 @@ msgctxt "#30302" msgid "Connection to MythTV backend lost" -msgstr "A ligação À estrutura MythTV foi perdida" +msgstr "A ligação à estrutura MythTV foi perdida" msgctxt "#30303" msgid "Connection to MythTV restored" @@ -234,7 +234,7 @@ msgctxt "#30306" msgid "Recorder unavailable" -msgstr "Gravador indisponível" +msgstr "Gravador não disponível" msgctxt "#30307" msgid "Canceling conflicting recording: %s" @@ -268,18 +268,90 @@ msgid "Keep LiveTV recording" msgstr "Manter gravação LiveTV" +msgctxt "#30421" +msgid "Show/hide inactive upcomings" +msgstr "Mostrar/ocultar receções inativas" + msgctxt "#30422" msgid "Refresh cache for channel icons" msgstr "Recarregar cache dos ícones de canal" +msgctxt "#30423" +msgid "Trigger channels update" +msgstr "Ativar atualização de canais" + +msgctxt "#30424" +msgid "Show status of scheduling" +msgstr "Mostrar estado do agendamento" + +msgctxt "#30451" +msgid "Unhandled" +msgstr "Não geridos" + +msgctxt "#30452" +msgid "Upcoming" +msgstr "Brevemente" + +msgctxt "#30453" +msgid "Overriden" +msgstr "Substituídos" + msgctxt "#30454" msgid "Don't record" msgstr "Não gravar" +msgctxt "#30456" +msgid "Zombie" +msgstr "Zombie" + msgctxt "#30460" msgid "Manual" msgstr "Manual" +msgctxt "#30461" +msgid "Record one" +msgstr "Gravar uma" + +msgctxt "#30462" +msgid "Record weekly" +msgstr "Gravar semanalmente" + +msgctxt "#30463" +msgid "Record daily" +msgstr "Gravar diariamente" + +msgctxt "#30464" +msgid "Record all" +msgstr "Gravar tudo" + +msgctxt "#30465" +msgid "Record this" +msgstr "Gravar esta" + +msgctxt "#30466" +msgid "Record series" +msgstr "Gravar série" + +msgctxt "#30467" +msgid "Search keyword" +msgstr "Pesquisa por palavra-chave" + +msgctxt "#30468" +msgid "Search people" +msgstr "Procurar pessoas" + +msgctxt "#30506" +msgid "Recordings never expire" +msgstr "Gravações nunca expiram" + msgctxt "#30507" msgid "Allow recordings to expire" msgstr "Permitir que as gravações expirem" + +msgctxt "#30508" +msgid "Keep up to %d recordings" +msgstr "Manter até %d gravações" + +msgctxt "#30509" +msgid "Keep %d newest and expire old" +msgstr "Manter as %d mais recentes e expirar antigas" diff -Nru kodi-pvr-mythtv-3.4.7/pvr.mythtv/resources/language/resource.language.sk_sk/strings.po kodi-pvr-mythtv-3.4.15/pvr.mythtv/resources/language/resource.language.sk_sk/strings.po --- kodi-pvr-mythtv-3.4.7/pvr.mythtv/resources/language/resource.language.sk_sk/strings.po 2016-02-20 21:47:03.000000000 +0000 +++ kodi-pvr-mythtv-3.4.15/pvr.mythtv/resources/language/resource.language.sk_sk/strings.po 2016-04-25 07:36:03.000000000 +0000 @@ -276,14 +276,114 @@ msgid "Keep LiveTV recording" msgstr "Ponechať nahrávky LiveTV" +msgctxt "#30421" +msgid "Show/hide inactive upcomings" +msgstr "Zobraziť/skryť neaktívne nadchádzajúce udalosti" + msgctxt "#30422" msgid "Refresh cache for channel icons" msgstr "Obnoviť dočasné úložisko pre ikony kanálov" +msgctxt "#30423" +msgid "Trigger channels update" +msgstr "Spustiť aktualizáciu kanálov" + +msgctxt "#30424" +msgid "Show status of scheduling" +msgstr "Zobraziť stav plánovania" + +msgctxt "#30451" +msgid "Unhandled" +msgstr "Neošetrené" + +msgctxt "#30452" +msgid "Upcoming" +msgstr "Nadchádzajúce" + +msgctxt "#30453" +msgid "Overriden" +msgstr "Nahradené" + +msgctxt "#30454" +msgid "Don't record" +msgstr "Nenahrávať" + +msgctxt "#30455" +msgid "Upcoming manual" +msgstr "Nadchádzajúce ručné" + +msgctxt "#30456" +msgid "Zombie" +msgstr "Zombia" + msgctxt "#30460" msgid "Manual" msgstr "Manuálne" +msgctxt "#30461" +msgid "Record one" +msgstr "Nahrávať raz" + +msgctxt "#30462" +msgid "Record weekly" +msgstr "Nahrávať týždenne" + +msgctxt "#30463" +msgid "Record daily" +msgstr "Nahrávať denne" + +msgctxt "#30464" +msgid "Record all" +msgstr "Nahrávať všetko" + +msgctxt "#30465" +msgid "Record this" +msgstr "Nahrať toto" + +msgctxt "#30466" +msgid "Record series" +msgstr "Nahrávať seriál" + +msgctxt "#30467" +msgid "Search keyword" +msgstr "Hľadať kľúčové slovo" + +msgctxt "#30468" +msgid "Search people" +msgstr "Hľadať ľudí" + +msgctxt "#30501" +msgid "Don't match duplicates" +msgstr "Nepárovať duplikáty" + +msgctxt "#30502" +msgid "Match duplicates using subtitle" +msgstr "Párovať duplikáty na základe titulkov" + +msgctxt "#30503" +msgid "Match duplicates using description" +msgstr "Párovať duplikáty na základe popisu" + +msgctxt "#30504" +msgid "Match duplicates using subtitle & description" +msgstr "Párovať duplikáty na základe titulkov a popisu" + +msgctxt "#30505" +msgid "Match duplicates using subtitle then description" +msgstr "Párovať duplikáty na základe titulkov, potom popisu" + +msgctxt "#30506" +msgid "Recordings never expire" +msgstr "Nahrávky nikdy neexpirujú" + msgctxt "#30507" msgid "Allow recordings to expire" msgstr "Povoliť expiráciu nahrávok" + +msgctxt "#30508" +msgid "Keep up to %d recordings" +msgstr "Ponechať až do %d nahrávok" + +msgctxt "#30509" +msgid "Keep %d newest and expire old" +msgstr "Ponechať %d najnovších a expirovať staré" diff -Nru kodi-pvr-mythtv-3.4.7/pvr.mythtv/resources/language/resource.language.sv_se/strings.po kodi-pvr-mythtv-3.4.15/pvr.mythtv/resources/language/resource.language.sv_se/strings.po --- kodi-pvr-mythtv-3.4.7/pvr.mythtv/resources/language/resource.language.sv_se/strings.po 2016-02-20 21:47:03.000000000 +0000 +++ kodi-pvr-mythtv-3.4.15/pvr.mythtv/resources/language/resource.language.sv_se/strings.po 2016-04-25 07:36:03.000000000 +0000 @@ -208,6 +208,22 @@ msgid "A cut list or commercial skips have been found.\nDo you want to activate EDL functionality for this show ?" msgstr "Klipplista eller reklamhopp har hittats.\nVill du aktivera EDL-funktionalitet för denna visning?" +msgctxt "#30112" +msgid "Connection failed" +msgstr "Anslutningen misslyckades" + +msgctxt "#30113" +msgid "Do you want to retry ?" +msgstr "Vill du försöka igen?" + +msgctxt "#30300" +msgid "Failed to connect the MythTV backend with the known protocol versions. Please check the compatibility map of the addon and upgrade your backend to a supported version." +msgstr "Det gick inte att ansluta MythTV backend med de kända protokollversionerna. Kontrollera kompatibilitet med tillägg och uppgradera din backend till en version som stöds." + +msgctxt "#30301" +msgid "Failed to connect the API services of MythTV backend. Please check your PIN code or backend setup. The PIN code has to be configured in your backend to allow connection." +msgstr "Det gick inte att ansluta API tjänster MythTV backend. Kontrollera din PIN-kod eller backend inställningar. PIN-koden måste vara konfigurerade i backend för att möjliggöra anslutning." + msgctxt "#30302" msgid "Connection to MythTV backend lost" msgstr "Anslutning till MythTV backend förlorad" @@ -260,14 +276,42 @@ msgid "Keep LiveTV recording" msgstr "Fortsätt spela in direktsänd TV" +msgctxt "#30421" +msgid "Show/hide inactive upcomings" +msgstr "Visa/dölj inaktiva uppkommande" + msgctxt "#30422" msgid "Refresh cache for channel icons" msgstr "Förnya cache för kanalikoner" +msgctxt "#30423" +msgid "Trigger channels update" +msgstr "Trigger kanaler uppdatering" + +msgctxt "#30424" +msgid "Show status of scheduling" +msgstr "Visa schemaläggningens status" + +msgctxt "#30451" +msgid "Unhandled" +msgstr "O-hanterad" + +msgctxt "#30452" +msgid "Upcoming" +msgstr "Kommande" + +msgctxt "#30453" +msgid "Overriden" +msgstr "Åsidosatt" + msgctxt "#30454" msgid "Don't record" msgstr "Spela inte in" +msgctxt "#30455" +msgid "Upcoming manual" +msgstr "Kommande manual" + msgctxt "#30456" msgid "Zombie" msgstr "Zombie" @@ -308,6 +352,30 @@ msgid "Search people" msgstr "Sök personer" +msgctxt "#30501" +msgid "Don't match duplicates" +msgstr "Matcha inte dubbletter" + +msgctxt "#30502" +msgid "Match duplicates using subtitle" +msgstr "Matcha dubbletter med hjälp av undertext" + +msgctxt "#30503" +msgid "Match duplicates using description" +msgstr "Matcha dubbletter med hjälp av beskrivning" + +msgctxt "#30504" +msgid "Match duplicates using subtitle & description" +msgstr "Matcha dubbletter med hjälp av undertext & beskrivning" + +msgctxt "#30505" +msgid "Match duplicates using subtitle then description" +msgstr "Matcha dubbletter med hjälp av undertext sedan beskrivning" + +msgctxt "#30506" +msgid "Recordings never expire" +msgstr "Inspelningen upphör aldrig" + msgctxt "#30507" msgid "Allow recordings to expire" msgstr "Tillåt inspelningar att gå ut" @@ -315,3 +383,7 @@ msgctxt "#30508" msgid "Keep up to %d recordings" msgstr "Behåll upp till %d inspelningar" + +msgctxt "#30509" +msgid "Keep %d newest and expire old" +msgstr "Behåll %d nyaste och upphäv de gamla"