diff -Nru kodi-pvr-mediaportal-tvserver-1.10.9/CMakeLists.txt kodi-pvr-mediaportal-tvserver-1.12.0/CMakeLists.txt --- kodi-pvr-mediaportal-tvserver-1.10.9/CMakeLists.txt 2015-07-17 20:18:46.000000000 +0000 +++ kodi-pvr-mediaportal-tvserver-1.12.0/CMakeLists.txt 2016-01-17 16:39:23.000000000 +0000 @@ -11,11 +11,20 @@ find_package(platform REQUIRED) find_package(TinyXML REQUIRED) +# Grab the addon version info from the addon.xml file +FILE(READ ${PROJECT_NAME}/addon.xml.in MPTV_ADDONXML) +STRING(REGEX MATCH "]*version.?=.?.[0-9\\.]+" MPTV_VERSION_STRING ${MPTV_ADDONXML}) +STRING(REGEX REPLACE ".*version=.([0-9\\.]+).*" "\\1" MPTV_VERSION ${MPTV_VERSION_STRING}) + +# Generate an addon_version.h header with the version information +configure_file(src/addon_version.h.in addon_version.h) + include_directories(${kodiplatform_INCLUDE_DIRS} ${platform_INCLUDE_DIRS} ${TINYXML_INCLUDE_DIR} ${KODI_INCLUDE_DIR} - ${PROJECT_SOURCE_DIR}/src) + ${PROJECT_SOURCE_DIR}/src + ${PROJECT_BINARY_DIR}) add_definitions(-D__STDC_FORMAT_MACROS) @@ -46,7 +55,8 @@ endif(WIN32) # Header files -set(MPTV_HEADERS src/Cards.h +set(MPTV_HEADERS addon_version.h + src/Cards.h src/channels.h src/client.h src/DateTime.h @@ -77,13 +87,46 @@ source_group("Resource Files" FILES ${RESOURCE_FILES}) endif(WIN32) -# Make sure that CMake adds the headers to the MSVC project -list(APPEND MPTV_SOURCES ${MPTV_HEADERS} ${RESOURCE_FILES}) +# TSReader sources +set(TSREADER_SOURCES src/lib/tsreader/ChannelInfo.cpp + src/lib/tsreader/DeMultiplexer.cpp + src/lib/tsreader/DvbUtil.cpp + src/lib/tsreader/FileReader.cpp + src/lib/tsreader/MemoryReader.cpp + src/lib/tsreader/MultiFileReader.cpp + src/lib/tsreader/PacketSync.cpp + src/lib/tsreader/PatParser.cpp + src/lib/tsreader/PidTable.cpp + src/lib/tsreader/PmtParser.cpp + src/lib/tsreader/Section.cpp + src/lib/tsreader/SectionDecoder.cpp + src/lib/tsreader/TSHeader.cpp + src/lib/tsreader/TSReader.cpp) +source_group("Source Files\\lib\\tsreader" FILES ${TSREADER_SOURCES}) + +# TSReader sources +set(TSREADER_HEADERS src/lib/tsreader/ChannelInfo.h + src/lib/tsreader/DeMultiplexer.h + src/lib/tsreader/DvbUtil.h + src/lib/tsreader/FileReader.h + src/lib/tsreader/MemoryReader.h + src/lib/tsreader/MultiFileReader.h + src/lib/tsreader/PacketSync.h + src/lib/tsreader/PatParser.h + src/lib/tsreader/PidTable.h + src/lib/tsreader/PmtParser.h + src/lib/tsreader/Section.h + src/lib/tsreader/SectionDecoder.h + src/lib/tsreader/TSDebug.h + src/lib/tsreader/TSHeader.h + src/lib/tsreader/TSReader.h) +source_group("Header Files\\lib\\tsreader" FILES ${TSREADER_HEADERS}) -add_subdirectory(src/lib/tsreader) +# Make sure that CMake adds all files to the MSVC project +list(APPEND MPTV_SOURCES ${MPTV_HEADERS} ${TSREADER_SOURCES} ${TSREADER_HEADERS} ${RESOURCE_FILES}) set(DEPLIBS ${platform_LIBRARIES} - ${TINYXML_LIBRARIES} tsreader) + ${TINYXML_LIBRARIES}) if(WIN32) list(APPEND DEPLIBS ws2_32) diff -Nru kodi-pvr-mediaportal-tvserver-1.10.9/debian/changelog kodi-pvr-mediaportal-tvserver-1.12.0/debian/changelog --- kodi-pvr-mediaportal-tvserver-1.10.9/debian/changelog 2015-07-19 16:57:58.000000000 +0000 +++ kodi-pvr-mediaportal-tvserver-1.12.0/debian/changelog 2016-01-21 08:05:07.000000000 +0000 @@ -1,112 +1,127 @@ -kodi-pvr-mediaportal-tvserver (1.10.9-1~trusty) trusty; urgency=low +kodi-pvr-mediaportal-tvserver (1.12.0-1~trusty) trusty; urgency=low [ kodi ] * autogenerated dummy changelog [ wsnipex ] - * v1.10.9 - Debian packaging: fix library install path - Miscellaneous - backend fixes v1.10.8 - libplatform dependency update - Fix - CMakeLists.txt language resource folder v1.10.7 - Updated language - files from Transifex v1.10.6 - Coverity fixes v1.10.5 - Updated to - use new libplatform-dev v1.10.4 - Updated to PVR API v1.9.6 - - Recordings: set recording thumbnail path if found on the backend - (only TSReader) v1.10.3 - Move tsreader sources into the MPTV - namespace to prevent a crash on RPi when using the FileReader class. - Kodi now has an internal FileReader class (since - xbmc/xbmc/pull/6306) which is somehow used by the addon instead of - the class in the addon. - EPG: Use the episode name as plot outline - (when available) - Channel: add support for ATSC Major.Minor channel - numbers - Radio: attempt to fix the short hickup after 1 second when - tuning a radio channel v1.10.2 - Updated to PVR API v1.9.5 - Fixed: - Schedules: Fix displaying an incorrect day in Kodi for 'Weekly' and - 'WeeklyEveryTimeOnThisChannel' series recordings - Fixed: Schedules: - change the displayed days for 'EveryTimeOnThisChannel' and - 'EveryTimeOnEveryChannel' to all days instead of sunday v1.10.1 - - Updated to PVR API v1.9.4 - Updated to GUI API v5.8.0 v1.9.27 - - Updated language files from Transifex v1.9.26 - Updated language - files from Transifex - Minor changes to conform with C++11 v1.9.25 - - Updated language files from Transifex v1.9.24 - added - getBackendHostname function v1.9.23 - Fixed mime-type for MPEG-TS - v1.9.22 - Updated language files from Transifex v1.9.21 - change - library name to Kodi v1.9.20 - fixed deadlock when activating the - addon on some darwin (osx, ios) runtimes v1.9.19 - Updated language - files from Transifex v1.9.18 - Updated language files from Transifex - v1.9.16 - Updated to API v1.9.2 v1.9.15 - Added: Series recording - support (requires skin specific dialog) - Fixed: [TSReader] Direct - playback of recordings that are stored on a network share v1.9.14 - - Updated language files from Transifex v1.9.13 - Added: Live - TV/Recordings: Report "permission denied" errors on SMB access - failures - Changed: [Settings] enable fast channel switching by - default - Changed: Reduce the signal status calls to once every 10s. - - Fixed: Channel thumbnails: replace also the invalid file name - characters <>*?\| in the channel name by a _ - Fixed: [SMB] Allow an - empty username and password field - Fixed: [SMB] Don't replace \\ by - smb:// when not at the start of the path - Fixed: Stop timeshifting - at the backend side on buffer open failure. - Fixed: Recordings: Fix - playback for in-progress recordings. Play them always via the PVR - addon to account for the growing file length - Fixed: Recording - playback over rtsp in ffmpeg mode v1.9.12 - Updated language files - from Transifex v1.9.11 - Updated language files from Transifex - v1.9.10 - add timeshift buffer functions v1.8.9 - TSReader: Fixed: - channel switching behavior when switching across tsbuffer files - - TSReader: Fixed: Windows share access in multiseat mode (return - smb:// URI's instead of \\UNC paths to XBMC also for Windows) - - TSReader: Fixed: SD<->HD channel switching with "fast channel - switching" enabled (add PAT detection to find the exact start of the - new channel in the timeshift buffer file) - Recordings: Add support - for retrieving and storing the playback resume position (requires - TVServerXBMC build 121 or higher) - Recordings: Trigger a recording - list update when the backend couldn't find the selected recording - - Fixed: potential out-of-bounds array access while accessing TV Card - info - Fixed: Hide smb password in debug xbmc.log file - Added: - support for retrieving channels from multiple specified groups (>1, - < All groups) (requires TVServerXBMC build 122 or higher) - Changed: - drop support for TVServerXBMC builds older than 1.1.x.107 - Changed: - more log notifications on errors - EPG: added additional genre - strings to the genre string to id translation table v1.8.8 - sync - with PVR API v1.8.0 v1.7.8 - Bump after PVR API version bump v1.6.8 - - Channels: Use MediaPortal VisibleInGuide property as inverted - IsHidden flag in XBMC. (requires TVServerXBMC build 120) - - Channelgroups: Don't import other channel groups when the user - selected to import channels from a single group. - TSReader: non- - Windows: start playback as soon as the buffer file has a non-zero - length - Genre translation: seach also for the genre_translation.xml - file in the profile folder. v1.6.7 - Updated language files from - Transifex v1.6.6 - Added: Set recording play count on backend - (requires TVServerXBMC build 118) - Added: Enable/Disable support - for individual programs on Series Schedules (requires TVServerXBMC - build 118) - Timers: Fixed: MarginStart and MarginEnd are in minuted - - Timers: Fixed: Update and Delete of timers for series Schedules - - TSReader: additional debug/error messages on recording/timeshift - buffer file access errors v1.6.5 - Updated language files from - Transifex v1.6.4 - New version number by Team XBMC v1.2.3.117 - - Added: timeshift support for XBMC Frodo v1.2.3.116: - Fixed: - playback of recordings with non-ASCII characters - Added: Hungarian - translation - Added: Korean translation v1.2.3.115: - Changed: - Switch to gettext (PO) files for addon translations v1.2.3.114: - - Added: Live555 RTSP support for Linux v1.2.3.113: - Simplify - settings. The TVServerXBMC plugin now reports the sharenames for the - recordings and timeshift folder v1.2.3.112: - Merged: tsreader and - ffmpeg addons are now combined into one addon v1.2.2.111: - Fixed: - Day of the week mismatch for timers between MePo and XBMC. Credits: - jajoflo - Added: Trigger recording update on timer retrieval so the - recording list is kept up to date when there is a new recording. - Credits: jajoflo - Fixed: tv group retrieval requested radio groups - - Added: add support for recording genre field - Fixed: fixes for - recording filepath split-up - Added: show an error message when the - recording filename or playback URL is empty v1.2.2.110: - Added: use - channel icons from MediaPortal (Windows, localhost only) - Changed: - switch from libPlatform + libTcpSocket to platform library - v1.2.2.109: - Fixed: fix mimetype for tv channels - Fixed: make sure - that OpenLiveStream does not return true due to m_iCurrentChannel - when the TSReader fails in a later stage - Fixed: compilation - IOS/OSX/Linux - Fixed: compile fixes for API move into ADDON - namespace - Added: show localized error messages when OpenLiveStream - fails - Added: signal status support - Fixed: Don't return encrypted - channels as group members when FTA only option is turned on - Added: - add more debug log information about the addon settings and status - - Added: add support for direct recording playback from network shares - (smb, Windows only) - Added: implement support for recording + * v1.12.0 - Timer: Add series recording timer types support - Timer: + Add an backward compatibility option to re-enable the pre-Jarvis + series recording dialog - Timer: show EPG description - Recordings: + pass recording series and episode numbers to Kodi v1.11.12 - Updated + language files from Transifex v1.11.11 - Compile fix for gcc 5 - + Remove the "unstable" notice from the disclaimer - Rename + TVServerXBMC to TVServerKodi - pvr.mediaportal.tvserver binary now + reports the version number from the addon.xml v1.11.10 - Updated + language files from Transifex v1.11.9 - Updated language files from + Transifex v1.11.8 - Updated to GUI API v5.10.0 v1.11.7 - Fixed a + regression with timer id and epg id handling introduced with PVR API + v4.0.0 v1.11.6 - Updated to PVR API v4.1.0 v1.11.5 - Updated to PVR + API v4.0.0 v1.11.4 - Updated to PVR API v3.0.0 (API 1.9.7 + compatibility mode) v1.11.3 - Updated to PVR API v2.1.0 - + Automatically fill in platform and library name v1.11.2 - Debian + packaging: fix library install path - Miscellaneous backend fixes + v1.11.1 - Updated to PVR API v2.0.0 v1.11.0 - Updated to PVR API + v1.9.7 v1.10.7 - Updated language files from Transifex v1.10.6 - + Coverity fixes v1.10.5 - Updated to use new libplatform-dev v1.10.4 - + Updated to PVR API v1.9.6 - Recordings: set recording thumbnail path + if found on the backend (only TSReader) v1.10.3 - Move tsreader + sources into the MPTV namespace to prevent a crash on RPi when using + the FileReader class. Kodi now has an internal FileReader class + (since xbmc/xbmc/pull/6306) which is somehow used by the addon + instead of the class in the addon. - EPG: Use the episode name as + plot outline (when available) - Channel: add support for ATSC + Major.Minor channel numbers - Radio: attempt to fix the short hickup + after 1 second when tuning a radio channel v1.10.2 - Updated to PVR + API v1.9.5 - Fixed: Schedules: Fix displaying an incorrect day in + Kodi for 'Weekly' and 'WeeklyEveryTimeOnThisChannel' series + recordings - Fixed: Schedules: change the displayed days for + 'EveryTimeOnThisChannel' and 'EveryTimeOnEveryChannel' to all days + instead of sunday v1.10.1 - Updated to PVR API v1.9.4 - Updated to + GUI API v5.8.0 v1.9.27 - Updated language files from Transifex + v1.9.26 - Updated language files from Transifex - Minor changes to + conform with C++11 v1.9.25 - Updated language files from Transifex + v1.9.24 - added getBackendHostname function v1.9.23 - Fixed mime- + type for MPEG-TS v1.9.22 - Updated language files from Transifex + v1.9.21 - change library name to Kodi v1.9.20 - fixed deadlock when + activating the addon on some darwin (osx, ios) runtimes v1.9.19 - + Updated language files from Transifex v1.9.18 - Updated language + files from Transifex v1.9.16 - Updated to API v1.9.2 v1.9.15 - + Added: Series recording support (requires skin specific dialog) - + Fixed: [TSReader] Direct playback of recordings that are stored on a + network share v1.9.14 - Updated language files from Transifex + v1.9.13 - Added: Live TV/Recordings: Report "permission denied" + errors on SMB access failures - Changed: [Settings] enable fast + channel switching by default - Changed: Reduce the signal status + calls to once every 10s. - Fixed: Channel thumbnails: replace also + the invalid file name characters <>*?\| in the channel name by a _ - + Fixed: [SMB] Allow an empty username and password field - Fixed: + [SMB] Don't replace \\ by smb:// when not at the start of the path - + Fixed: Stop timeshifting at the backend side on buffer open failure. + - Fixed: Recordings: Fix playback for in-progress recordings. Play + them always via the PVR addon to account for the growing file length + - Fixed: Recording playback over rtsp in ffmpeg mode v1.9.12 - + Updated language files from Transifex v1.9.11 - Updated language + files from Transifex v1.9.10 - add timeshift buffer functions v1.8.9 + - TSReader: Fixed: channel switching behavior when switching across + tsbuffer files - TSReader: Fixed: Windows share access in multiseat + mode (return smb:// URI's instead of \\UNC paths to XBMC also for + Windows) - TSReader: Fixed: SD<->HD channel switching with "fast + channel switching" enabled (add PAT detection to find the exact + start of the new channel in the timeshift buffer file) - Recordings: + Add support for retrieving and storing the playback resume position + (requires TVServerXBMC build 121 or higher) - Recordings: Trigger a + recording list update when the backend couldn't find the selected + recording - Fixed: potential out-of-bounds array access while + accessing TV Card info - Fixed: Hide smb password in debug xbmc.log + file - Added: support for retrieving channels from multiple + specified groups (>1, < All groups) (requires TVServerXBMC build 122 + or higher) - Changed: drop support for TVServerXBMC builds older + than 1.1.x.107 - Changed: more log notifications on errors - EPG: + added additional genre strings to the genre string to id translation + table v1.8.8 - sync with PVR API v1.8.0 v1.7.8 - Bump after PVR API + version bump v1.6.8 - Channels: Use MediaPortal VisibleInGuide + property as inverted IsHidden flag in XBMC. (requires TVServerXBMC + build 120) - Channelgroups: Don't import other channel groups when + the user selected to import channels from a single group. - + TSReader: non-Windows: start playback as soon as the buffer file has + a non-zero length - Genre translation: seach also for the + genre_translation.xml file in the profile folder. v1.6.7 - Updated + language files from Transifex v1.6.6 - Added: Set recording play + count on backend (requires TVServerXBMC build 118) - Added: + Enable/Disable support for individual programs on Series Schedules + (requires TVServerXBMC build 118) - Timers: Fixed: MarginStart and + MarginEnd are in minuted - Timers: Fixed: Update and Delete of + timers for series Schedules - TSReader: additional debug/error + messages on recording/timeshift buffer file access errors v1.6.5 - + Updated language files from Transifex v1.6.4 - New version number by + Team XBMC v1.2.3.117 - Added: timeshift support for XBMC Frodo + v1.2.3.116: - Fixed: playback of recordings with non-ASCII + characters - Added: Hungarian translation - Added: Korean + translation v1.2.3.115: - Changed: Switch to gettext (PO) files for + addon translations v1.2.3.114: - Added: Live555 RTSP support for + Linux v1.2.3.113: - Simplify settings. The TVServerXBMC plugin now + reports the sharenames for the recordings and timeshift folder + v1.2.3.112: - Merged: tsreader and ffmpeg addons are now combined + into one addon v1.2.2.111: - Fixed: Day of the week mismatch for + timers between MePo and XBMC. Credits: jajoflo - Added: Trigger + recording update on timer retrieval so the recording list is kept up + to date when there is a new recording. Credits: jajoflo - Fixed: tv + group retrieval requested radio groups - Added: add support for + recording genre field - Fixed: fixes for recording filepath split-up + - Added: show an error message when the recording filename or + playback URL is empty v1.2.2.110: - Added: use channel icons from + MediaPortal (Windows, localhost only) - Changed: switch from + libPlatform + libTcpSocket to platform library v1.2.2.109: - Fixed: + fix mimetype for tv channels - Fixed: make sure that OpenLiveStream + does not return true due to m_iCurrentChannel when the TSReader + fails in a later stage - Fixed: compilation IOS/OSX/Linux - Fixed: + compile fixes for API move into ADDON namespace - Added: show + localized error messages when OpenLiveStream fails - Added: signal + status support - Fixed: Don't return encrypted channels as group + members when FTA only option is turned on - Added: add more debug + log information about the addon settings and status - Added: add + support for direct recording playback from network shares (smb, + Windows only) - Added: implement support for recording subdirectories - Fixed: don't return radio channels/channelgroup/channelgroup mappings when radio support is disabled v1.1.3.107: - Added: add additional checks for @@ -146,4 +161,4 @@ client should abort connection when the TVServerXBMC version is too old v1.1.0.60 - Fix PVR client destroy - -- wsnipex Sun, 19 Jul 2015 18:57:58 +0200 + -- wsnipex Thu, 21 Jan 2016 09:05:07 +0100 diff -Nru kodi-pvr-mediaportal-tvserver-1.10.9/debian/changelog.tmp kodi-pvr-mediaportal-tvserver-1.12.0/debian/changelog.tmp --- kodi-pvr-mediaportal-tvserver-1.10.9/debian/changelog.tmp 2015-07-19 16:57:15.000000000 +0000 +++ kodi-pvr-mediaportal-tvserver-1.12.0/debian/changelog.tmp 2016-01-21 08:04:26.000000000 +0000 @@ -1,4 +1,4 @@ -kodi-pvr-mediaportal-tvserver (1.10.9-1~#DIST#) #DIST#; urgency=low +kodi-pvr-mediaportal-tvserver (1.12.0-1~#DIST#) #DIST#; urgency=low [ kodi ] * autogenerated dummy changelog diff -Nru kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/addon.xml kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/addon.xml --- kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/addon.xml 2015-07-17 20:18:46.000000000 +0000 +++ kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/addon.xml 1970-01-01 00:00:00.000000000 +0000 @@ -1,173 +0,0 @@ - - - - - - - - - - Kodi voorprogram vir die MediaPortal TV Bediener (ffmpeg + tsreader weergawe) - Kodi frontend for the MediaPortal TV Server (ffmpeg + tsreader version) - Kodi клиент за ТВ сървъра MediaPortal (ffmpeg + tsreader версия) - Frontal Kodi pel servidor de TV MediaPortal (versió ffmpeg + tsreader) - Rozhraní Kodi pro televizní server MediaPortal (verze ffmpeg + tsreader) - Blaen Kodi ar gyfer Gweinydd Teledu MediaPortal (fersiwn ffmpeg + tsreader) - Kodi frontend til MediaPortal TV server (ffmpeg + tsreader version) - Kodi Oberfläche für den MediaPortal TV Server (ffmpeg + tsreader Version) - Frontend του Kodi για το διακομιστή MediaPortal TV (έκδοση ffmpeg + tsreader) - Kodi frontend for the MediaPortal TV Server (ffmpeg + tsreader version) - Kodi frontend for the MediaPortal TV Server (ffmpeg + tsreader version) - Kodi frontend for the MediaPortal TV Server (ffmpeg + tsreader version) - Kodi frontend for the MediaPortal TV Server (FFmpeg + TSReader version) - Interfaz Kodi para el MediaPortal TV Server (versión ffmpeg + tsreader) - Interfaz Kodi para el MediaPortal TV Server (versión ffmpeg + tsreader) - Kodi esi MediaPortal TV serverile (ffmpeg + tsreader versioon) - Kodi frontend MediaPortal TV-serverille (ffmpeg + tsreader) - Frontal Kodi pour le serveur MediaPortal TV (version ffmpeg + tsreader) - Interface logicielle pour le serveur TV de MediaPortal (version ffmpeg + tsreader) - O Interface do Kodi para o Servidor de TV de MediaPortal (versión de ffmpeg + tsreader) - לקוח טלוויזיה חיה עבור MediaPortal (גרסת FFmpeg ו־TSReader) - Kodi sučelje za MediaPortal TV poslužitelj (ffmpeg + tsreader inačica) - Kodi Médiaportal előtér-kiszolgáló (ffmpeg + tsreader) - Frontend Kodi untuk Server TV MediaPortal (versi ffmpeg + tsreader) - Framendi fyrir Kodi til að nota MediaPortal TV Server (ffmpeg + tsreader version) - Frontend Kodi per il server MediaPortal TV (versione ffmpeg + tsreader) - MediaPortal TV サーバー (ffmpeg + tsreader バージョン) の Kodi フロントエンド - MediaPortal TV Server (ffmpeg + tsreader version) 을 위한 Kodi 프론트엔드 - Kodi sąsaja MediaPortal TV serveriui (ffmpeg + tsreader versija) - Kodi galasistēma MediaPortal TV Server (ffmpeg + tsreader versija) - Kodi интерфејс за MediaPortal TV Server (ffmpeg + tsreader верзија) - Bahagian hadapan Kodi untuk Pelayan TV MediaPortal (versi ffmpeg + tsreader) - MediaPortal TV Server အတွက် Kodi frontend (ffmpeg + tsreader version) - Kodi skall for MediaPortal TV Server (ffmpeg + tsreader versjon) - Kodi frontend voor de Mediaportal TV Server (ffmmpeg + tsreader versie) - Klient TV dla MediaPortal TV (wersja ffmpeg + tsreader) - Frontend do Kodi para Servidor de TV MediaPortal (ffmpeg + versão tsreader) - Frontend Kodi para o MediaPortal TV Server (versão ffmpeg + tsreader) - Interfața Kodi pentru MediaPortal TV Server (versiunea ffmpeg + tsreader) - Интерфейс Kodi для ТВ-сервера MediaPortal (версия ffmpeg + tsreader) - Kodi rozhranie pre MediaPortal TV server (verzia ffmpeg + tsreader) - Kodijev vmesnik za strežnik MediaPortal TV (ffmpeg + tsreader) - Kodi frontend för MediaPortal TV-server (ffmpeg + tsreader versionen) - MediaPortal TV Sunucusu için Kodi ön ucu (ffmpeg + tsreader sürümü) - Накладка Kodi для сервера ТВ MediaPortal'у (версія ffmpeg + tsreader) - Giao tiếp Kodi cho MediaPortal TV Server (phiên bản ffmpeg + tsreader) - Kodi 的 MediaPortal TV 服务器前端(ffmpeg + tsreader版) - MediaPortal電視服務器的Kodi前端 (ffmpeg+tsreader版本) - MediaPortal TV Bediener voorprogram. Ondersteun stroom van Lewendige TV & Opnames, luister na Radio kanale, EPG en Tydhouers. Hierdie byvoegsel kombineer die voormalige ffmpeg en tsreader byvoegsels. - MediaPortal TV Server frontend. Supports streaming of Live TV & Recordings, listening to Radio channels, EPG and Timers. This addon combines the former ffmpeg and tsreader addons. - Kodi клиент за ТВ сървъра MediaPortal. Поддържа поточна телевизия и записване, слушане на радио канали, електронен програмен справочник и броячи. Тази добавка обединява старите ffmpeg и tsreader добавки. - Frontal Kodi de TV MediaPortal. Suporta el flux de TV en directe i enregistraments, escoltes de canals de radio, EPG i temporitzadors. Aquest afegitó combina els anteriors afegitons de ffmpg i tsreader. - Rozhraní pro televizní server MediaPortal. Podporuje proudové vysílání živého vysílání a nahrávek, poslech kanálů rádia, EPG, a časovače. Toto rozšíření kombinuje rozšíření ffmpeg a tsreader. - Blaen Gweinydd Teledu Media Portal. Mae'n cynnal ffrydio Teledu Byw a Recordiadau, gwrando ar sianeli Radio, Amserlenni Rhaglenni Electronig ac Amseryddion. Mae'r ychwanegyn yn cynnwys y cyn ychwanegion ffmpeg a tsreader. - MediaPortal TV server frontend. Understøtter streaming af TV og Optagelser, Radiokanaler, EPG og Timere. Denne addon kombinerer de gamle ffmpeg og tsreader addons. - Mediaportal TV Server Oberfläche. Unterstützt Live TV & Aufnahmen, Radiokanäle, EPG und Timer. Dieses Addon kombiniert die ehemaligen ffmpeg- und tsreader-Addons. - Frontend για το διακομιστή MediaPortal TV. Υποστηρίζει ροές Live TV & Εγγραφές, ακρόαση Ραδιοφώνου, EPG και Χρονοδιακόπτες. Αυτό το πρόσθετο συνδυάζει τα προηγούμενα πρόσθετα ffmpeg και tsreader. - MediaPortal TV Server frontend. Supports streaming of Live TV & Recordings, listening to Radio channels, EPG and Timers. This addon combines the former ffmpeg and tsreader addons. - MediaPortal TV Server frontend. Supports streaming of Live TV & Recordings, listening to Radio channels, EPG and Timers. This addon combines the former ffmpeg and tsreader addons. - MediaPortal TV Server frontend. Supports streaming of Live TV & Recordings, listening to Radio channels, EPG and Timers. This addon combines the former ffmpeg and tsreader addons. - MediaPortal TV Server frontend. Supports streaming of Live TV & Recordings, listening to Radio channels, EPG and Timers. This addon combines the former FFmpeg and TSReader addons. - Interfaz MediaPortal TV Server. Soporta transmisión de TV en vivo y grabaciones, escuchar canales de radio, GEP y temporizadores. Este complemento combina los anteriores ffmpeg y tsreader. - Interfaz MediaPortal TV Server. Soporta transmisión de TV en vivo y grabaciones, escuchar canales de radio, EPG y temporizadores. Este complemento combina los anteriores ffmpeg y tsreader. - MediaPortal TV serveri esi. Toetab telekanalite striimimist ja salvestamist, raadio kuulamist ja elektroonilist saatekava. See lisa kombineerib endas endised ffmpeg ja tsreader lisad. - MediaPortal TV-palvelimen frontend. Tukee livelähetysten sekä tallenteiden virtaustoista, radiokanavia, ohjelmaopasta sekä ajastuksia. Tämä lisäosa yhdistää aikaisemmat ffmpeg- ja tsreader-lisäosat. - Frontal pour le serveur MediaPortal TV, prenant en charge la lecture en transit des télés en direct & les enregistrements, l'écoute de chaînes radio, le GÉP et les minuteries. Cet addiciel combines les anciens addiciels ffmpeg et tsreader. - Interface logicielle pour le serveur TV de MediaPortal. Il supporte la lecture en continu de direct télévision et enregistrement, l'écoute de radios, guide de programmes et minuteries. Cette extension combine les existants ffmpeg et tsreader. - Interface do Servidor de TV de MediaPortal. Soporta transmisión de TV en directo e Gravacións, escoita de canles de radio, Guía e programacións. Este complemento combina o antigo ffmpeg e os complementos tsreader. - לקוח טלוויזיה חיה של MediaPortal. תומך בהזרמת שידורים חיים והקלטות, האזנה לרדיו, הצגת לוח שידורים ותזמון הקלטות. הרחבה זו משלבת את ההרחבות הקודמות המבוססות על FFmpeg ו־TSReader. - MediaPortal TV poslužitelj sučelje. Podržava stremanje i snimanje TV programa, slušanje radio programa, elektronski programski vodič (EPG) i vremenski zadano snimanje. Ovaj dodatak objedinjuje nekadašnje ffmpeg i tsreader dodatke. - Médiaportal előtér-kiszolgáló. Élő adások, felvételek,és rádió adások sugárzásának támogatása EPG-vel és időzítéssel. Ez a kiegészítő egyesíti az ffmpeg, és a tsreader kiegészítőket. - Frontend Server TV MediaPortal. Mendukung pengaliran TV dan Rekaman langsung, mendengarkan kanal radio, EPG dan Timer. Pengaya ini mengkombinasikan penggaya ffmeg dan tsreader yang lama. - Framendi fyrir MediaPortal TV. Styður streymingu á Live TV og upptökum, hlustun á útvarpsrásum, rafrænum sjónvarpsvísum (EPG) og tímatöku. Þessi viðbók sameinar fyrri viðbætur fyrir ffmpeg og tsreader - Frontend del server MediaPortal TV. Supporta lo streaming di Live TV e le registrazioni, l'ascolto dei canali radio, EPG e i timer. Questo addon combina gli addon ffmpeg e tsreaded. - MediaPortal TV サーバーのフロントエンドです。ライブテレビのストリーミングや録画、ラジオチャンネルの視聴、EPG、タイマーなどをサポートしています。以前の ffmpeg アドオンと tsreader アドオンを組み合わせたものです。 - MediaPortal TV Server 프론트엔드. TV 시청 & 녹화, 라디오 채널 청취, EPG 및 타이머 지원. 이 애드온은 이전의 ffmpeg 과 tsreader 애드온을 합친 것입니다. - MediaPortal TV Serverio sąsaja. Palaiko televizijos transliacijas ir Įrašus, radijo kanalus, EPG ir laikmačius. Šis priedas apjungia ankstesnius ffmpeg ir TSreader priedus. - MediaPortal TV Server galasistēma. Atbalsta tiešraides TV un ierakstu straumēšanu, radio kanālu klausīšanos, EPG un taimerus. Šis pielikums kombinē senākos ffmpeg un tsreader pielikumus. - MediaPortal TV Server frontend. Supports streaming of Live TV & Recordings, listening to Radio channels, EPG and Timers. This addon combines the former ffmpeg and tsreader addons. - Bahagian hadapan Pelayan TV MediaPortal; menyokong penstirman TV Langsung & Rakaman, mendengar saluran Radio, EPG dan Pemasa. Tambahan ini gabungkan tambahan ffmpef fan tsreader terdahulu. - MediaPortal TV Server skall. Støtter streaming av Live TV og opptak, Lytte til Radio kanaler, EPG og Timere. Dette tillegget kombinererer de tidligere ffmpeg og tsreader tilleggene. - MediaPortal TV Server frontend. Ondersteunt het bekijken van Live TV en opnames, het luisteren van radio zenders, het tonen van de EPG en het inplannen/beheren van nieuwe opnames (Timers). Deze addon combineert de voorgaande "ffmpeg" en "tsreader" addons. - Klient serwera TV MediaPortal obsługuje strumieniowanie kanałów radiowych i telewizyjnych, nagrywanie i harmonogram nagrań oraz funkcje przewodnika telewizyjnego. Klient ten łączy w sobie funkcje wcześniejszych klientów ffmpeg i tsreader. - Frontend do Servidor de TV do MediaPortal. Suporta streaming de TV Ao Vivo e Gravações, escutar canais de rádio, EPG e Agendamentos. Este addon combina os antigos addons ffmpeg e tsreader - Frontend para o MediaPortal TV Server. Suporta transmissão de TV em directo e gravações, ouvir estações de Rádio, EPG e Temporizadores. Este add-on combina os antigos add-ons ffmpeg e tsreader. - Interfața MediaPortal TV Server. Suportă streaming TV live & Înregistrări, ascultarea posturilor de radio, EPG și Înregistrare programată. Acest plugin combină ex addons ffmpeg si tsreader. - Интерфейс Kodi для ТВ-сервера MediaPortal. Поддерживает просмотр и запись ТВ, прослушивание радио, EPG и таймеры. Это дополнение заменяет старые дополнения ffmpeg и tsreader. - Rozhranie pre MediaPortal TV server. Podporuje streamovanie živého televízneho vysielania a nahrávok, počúvanie rozhlasových kanálov, EPG a časovače. Tento doplnok zlučuje dohromady bývalé doplnky ffmpeg a tsreader. - Vmesnik za MediaPortal TV strežnik. Podpira pretakanje televizije v živo & posnetkov, poslušanje radia, EPG in časovnike. Ta dodatek združuje prejšnja dodatka ffmpeg in tsreader. - MediaPortal TV-server frontend. Stödjer strömning av direktsänd TV & inspelningar, lyssna på radiokanaler, EPG och timers. Detta tillägg kombinerar dom tidigare ffmpeg och tsreader tilläggen. - MediaPortal TV Sunucusu ön ucu. Canlı TV akışı ve kayıt yapabilme, radyo kanalları dinleme, EPG ve zamanlayıcıları destekler. Bu eklenti eski ffmpeg ve tsreader eklentilerini birleştirir. - Накладка для сервера ТВ MediaPortal. Підтримує потокове Live TV і запис, прослуховування радіо каналів, телегід та планування. Цей додаток сполучає колишні додатки ffmpeg і tsreader. - Giao tiếp cho MediaPortal TV Server. Hỗ trợ truyền phát và thu chương trình Live TV, nghe Radio, hẹn giờ và hiển thị lịch trình chiếu (EPG). Addon này kết hợp cho các addon cũ của ffmpeg và tsreader. - MediaPortal TV 服务器前端。支持直播电视和录像流媒体、收听电台、电子节目单和定时器。这个插件结合了之前的 ffmpeg 和 tsreader 插件。 - MediaPortal電視服務器的前端。支援的串流檔案包括有:電視直播和錄影,收聽廣播頻道,電子節目表和計時器。這個插件結合了先前ffmpeg和tsreader的插件。 - Hierdie is onstabiele sagteware! Die outeurs is op geen manier verantwoordelik vir gefaalde opnames, inkorrekte tydhouers, gemorsde ure, of enige ander ongewensde effekte. - This is unstable software! The authors are in no way responsible for failed recordings, incorrect timers, wasted hours, or any other undesirable effects.. - Тази програма е нестабилна! Авторите не носят отговорност за неуспешно записване, некоректни броячи, пропиляното време и други нежелани ефекти. - Això és programari inestable! Els autors no són de cap manera responsables dels enregistraments que han fallat, temporitzadors incorrectes, hores perdudes, o qualsevols altres efectes indesitjables.. - Tento software není stabilní. Autoři nejsou žádným způsobem zodpovědní za selhání při nahrávání, neplatné časovače, ztracený čas, či jakékoliv jiné nežádoucí události... - Mae'r feddalwedd hon yn fregus! Nid yw'r awduron yn gyfrifol mewn unrhyw ffordd am fethu recordio, amseru gwallus, oriau wedi eu gwastraffu nac effeithiau anymunol eraill. - Dette er ustabil software! Ophavsmændene er på ingen måde ansvarlige for mislykkede optagelser, ukorrekte timere, spildte timer, eller andre uønskede konsekvenser.. - Dies ist instabile Software! Die Autoren sind in keiner Weise verantwortlich für fehlgeschlagene Aufnahmen, falsche Timer, verschwendete Zeit oder andere ungewünschte Effekte. - Ασταθές πρόγραμμα! Οι δημιουργοί δεν είναι σε καμία περίπτωση υπεύθυνοι για αποτυχημένες εγγραφές, λανθασμένους χρονοδιακόπτες, χαμένες ώρες, ή κάθε είδους ανεπιθύμητα αποτελέσματα.. - This is unstable software! The authors are in no way responsible for failed recordings, incorrect timers, wasted hours, or any other undesirable effects.. - This is unstable software! The authors are in no way responsible for failed recordings, incorrect timers, wasted hours, or any other undesirable effects.. - This is unstable software! The authors are in no way responsible for failed recordings, incorrect timers, wasted hours, or any other undesirable effects.. - This is unstable software! The authors are in no way responsible for failed recordings, incorrect timers, wasted hours, or any other undesirable effects.. - ¡Este software es inestable! Los autores no se responsabilizan por grabaciones fallidas, temporizadores incorrectos, horas perdidas, o cualquier otro efecto no deseado.. - ¡Este es un software inestable! Los autores no son de ninguna manera responsables de las grabaciones fallidas o incorrectas, las temporizadores perdidas, ni otros efectos no deseables.. - ¡Esto es software inestable! Los autores no son de ninguna manera responsables por grabaciones fallidas, temporizadores incorrectos, horas perdidas o cualquier otro efecto no deseado... - See on ebastabiilne tarkvara! Autorid ei ole kuidagi moodi vastutavad nurjunud salvestiste, ebaõige aegrelee, raisatud tundide ega muude soovimatute asjade eest. - Tämä on epävakaa ohjelmisto! Tekijät eivät ole millään muotoa vastuussa epäonnistuneista tallennuksista, virheellisistä ajastuksia, haaskatusta ajasta, verenpaineen noususta tai mistään muusta epäsuotuisasta vaikutuksesta. - Ce logiciel est instable! Les auteurs ne sont aucunement responsables des enregistrements défaillants, des minuteries erronées, des heures perdues ou tout autre effet indésirable. - Cet applicatif est instable ! Les auteurs ne sont en aucun cas responsables d'échec d'enregistrements, minuteries erronées, temps perdu et autres résultats indésirables.. - Software non estable, os autores non se fan responsábeis dos erros na gravacións, temporizadores incorrectos, e outros efectos non desexados. - זוהי איננה הרחבה יציבה! המפתחים אינם אחראים על כשלון בניגון, זמנים שגויים במדריך השידורים, שעות מבוזבזות או כל תופעה לא רצויה אחרת. - Ovo je nestabilan softver! Autori nisu ni na koji način odgovorni za neuspjelo snimanje, netočna vremena snimanja, izgubljene sate, ili bilo koje druge nepoželjne učinke... - Ez nem stabil szoftver! A készítők nem vállalnak felelősséget, a hibás felvételért, rossz időzítésért, elvesztegetett időért... - Սա անկայուն ծրագրային ապահովում է: Հեղինակները պատասխանատու չեն վատ ձայնագրումների, սխալ ժամանակացույցերի, կորած ժամանակի կամ այլ ոչ ցանկալի երևույթների համար: - Ini merupakan software yang tidak stabil! Penulis tidak bertanggung jawab untuk rekaman gagal, timer salah, waktu terbuang, atau efek tak diinginkan lainnya... - Þetta er óstöðugur hugbúnaður! Höfundarnir eru á engann hátt ábyrgir fyrir misheppnuðum upptökum, röngum upptökutímum, klukkustundum sem að fóru í súginn eða nokkrum öðrum óæskilegum áhrifum. - Questo software non è stabile! Gli autori non sono responsabili per registrazioni fallite, timer non corretti, ore perse, o altri effetti indesiderati... - これは不安定なソフトウェアです!本プログラムの作者は、録画の失敗、正確に作動しなかったタイマー、無駄にした時間、その他あらゆる好ましくない結果について責任を負わないものとします。 - 이 소프트웨어는 불안정합니다! 제작자는 녹화 실패, 부정확한 타이머, 시간 낭비 및 기타 예상하지 못한 결과에 대해 책임지지 않습니다.. - Tai yra nestabili programinė įranga! Autorius jokiu būdu neatsakingas už nepavykusius įrašus, neteisingus laikmačius, iššvaistytas valandas ar nutikus kitiems nepageidaujamiems poveikiams ...[COLOR=red](Kodi.lt siūlo/rekomenduoja testuojant šį priedą persijungti į Anglų [orinali] kalbą)[/COLOR] - Šī ir nestabila programmatūra! Autori nav atbildīgi par nesanākušiem ierakstiem, nepareiziem taimeriem, iztērētām stundām vai jebkādiem citiem nevēlamiem efektiem.. - Ова е нестабилен софтвер! Авторите на ниту еден начин не одговараат за неуспешни снимки, неточни тајмери, потрошени часови, или било кои други несакани ефекти. - Тус програм нь гүйцэд хийгдэж дуусаагүй! Зохиогч нь алдаатай бичлэг, цагийн буруу хөтлөлт, алдагдсан цаг хугацаа эсвэл бусад ямар нэгэн хүсээгүй үр дүнд хариуцлага хүлээхгүй. - Ini merupakan perisian tidak stabil! Pengarang tidak bertanggungjawab atas kegagalan rakaman, pemasa tidak betul, masa yang dibazirkan, atau apa jua kesan yang tidak dikehendaki.. - Dette er ustabilt programvare! Forfatterne er ikke ansvarlig på noen måte for ødelagte opptak, feile timere, bortkastede timer, eller andre uønskede hendinger... - Deze software is niet 100% stabiel! De auteurs zijn op geen enkele wijze aansprakelijk voor mislukte opnames, verspilde tijd, of enig ander ongewild neveneffect.. - Oprogramowanie nadal jest w fazie rozwoju i jest niestabilne! Autorzy w żaden sposób nie są odpowiedzialni za nieudane nagrania, błędy w harmonogramie nagrań, zmarnowany czas ani jakiekolwiek inne niepożądane efekty. - Este é um software instável! Os autores não são responsáveis por falhas de gravações, agendamentos incorretos, horas desperdiçadas, ou quaisquer outros efeitos indesejados. - 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.. - Acesta nu este o aplicație definitivă! Autorii nu sunt în nici un fel responsabili pentru înregistrări eșuate, cronometre incorecte, ore pierdute, sau orice alte efecte nedorite... - Это нестабильная программа! Авторы не несут ответственности за неудачную запись, неправильные таймеры, потраченное время и другие нежелательные последствия. - මෙය අස්ථිර මෘදුකාංගයකි! මෙහි සිදුවන පටිගත කිරීම් අසාර්ථක වීම්, සාවද්‍ය මුහුර්තක, නාස්ති වූ කාලයන්, හෝ වෙනත් යමිකිසි නුසුදුසු බලපෑම් සඳහා කතෘ වග කියනු නොලැබේ. - Tento softvér nie je stabilný! Autori nenesú žiadnu zodpovednosť za chybné nahrávky vysielania, nesprávne časovače alebo iné neželané udalosti spôsobené týmto softvérom.. - To je nestabilna programska oprema! Avtorji niso odgovorni za neuspela snemanja, nepravilne časovnike, zapravljen čas in katerikoli drug neželen učinek... - Ky program nuk është ende stabil! Autorët së këtij programi nuk janë në as një menyr përgjegjës për rregistrime të gabuara, timer të pasaktë, kohë të humbur ose efekte të tillë të padëshirueshëm. - Овај софтвер је нестабилан! Аутори ни на који начин нису одговорни за неуспела снимања, неисправна заказана снимања, изгубљене сате или друге нежељене ефекте. - Detta är ostabil mjukvara! Upphovsmännen är inte ansvariga för misslyckade inspelningar, inkorrekta timers, bortslösade timmar, eller några andra oönskade effekter.. - To je niystabilny softwer! Autōry niy sōm ôdpedzialne za niypodarzōne graniy, niynŏleżne godziny EPG, stracōne godziny i inksze niychciane efekty. - ఇది అస్థిర సాఫ్ట్వేర్! విఫలమైన రికార్డింగ్లు, తప్పు టైమర్లు, వృధా గంటల, లేదా ఏ ఇతర అవాంఛనీయ ప్రభావాలకు ఏ విధంగా రచయితలు భాద్యుతులు కారు. - Ин нармафзори ноустувор аст! Муаллифон барои вайрониҳои сабт, вақтсанҷҳои нодуруст, соатҳои бефоида ва дигар таъсирҳои номатлуб ҷавобгар намебошанд. - Bu stabil olmayan program! Yapımcılar hatalı kayıtlardan, bozuk sürelerden, harcanan vakitten veya herhangi bir olumsuz etkiden dolayı sorumlu tutulamaz. - Це нестабільна програма! Автор не несуть жодної відповідальності за зіпсуті записи, неправильні таймери, потрачений час, та інші небажані ефекти. - Đây là phần mềm không ổn định! Các tác giả không chịu trách nhiệm đối với bản ghi âm thất bại, giờ không chính xác, giờ lãng phí, hoặc bất kỳ tác dụng không mong muốn khác... - 这是不稳定版的软件!作者不对录像失败、错误定时造成时间浪费或其它不良影响负责。 - 這是測試版軟體!其原創作者並無法對於以下情況負責,包含:錄影失敗,不正確的定時設定,多餘時數,或任何產生的其它不良影響... - all - - diff -Nru kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/addon.xml.in kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/addon.xml.in --- kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/addon.xml.in 1970-01-01 00:00:00.000000000 +0000 +++ kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/addon.xml.in 2016-01-17 16:39:23.000000000 +0000 @@ -0,0 +1,175 @@ + + + + + + + + + + Kodi voorprogram vir die MediaPortal TV Bediener (ffmpeg + tsreader weergawe) + Kodi frontend for the MediaPortal TV Server (ffmpeg + tsreader version) + Kodi клиент за ТВ сървъра MediaPortal (ffmpeg + tsreader версия) + Frontal Kodi pel servidor de TV MediaPortal (versió ffmpeg + tsreader) + Rozhraní Kodi pro televizní server MediaPortal (verze ffmpeg + tsreader) + Blaen Kodi ar gyfer Gweinydd Teledu MediaPortal (fersiwn ffmpeg + tsreader) + Kodi frontend til MediaPortal TV server (ffmpeg + tsreader version) + Kodi Oberfläche für den MediaPortal TV Server (ffmpeg + tsreader Version) + Frontend του Kodi για το διακομιστή MediaPortal TV (έκδοση ffmpeg + tsreader) + Kodi frontend for the MediaPortal TV Server (ffmpeg + tsreader version) + Kodi frontend for the MediaPortal TV Server (ffmpeg + tsreader version) + Kodi frontend for the MediaPortal TV Server (ffmpeg + tsreader version) + Kodi frontend for the MediaPortal TV Server (FFmpeg + TSReader version) + Interfaz Kodi para el MediaPortal TV Server (versión ffmpeg + tsreader) + Interfaz Kodi para el MediaPortal TV Server (versión ffmpeg + tsreader) + Kodi esi MediaPortal TV serverile (ffmpeg + tsreader versioon) + Kodi frontend MediaPortal TV-serverille (ffmpeg + tsreader) + Frontal Kodi pour le serveur MediaPortal TV (version ffmpeg + tsreader) + Interface logicielle pour le serveur TV de MediaPortal (version ffmpeg + tsreader) + O Interface do Kodi para o Servidor de TV de MediaPortal (versión de ffmpeg + tsreader) + לקוח טלוויזיה חיה עבור MediaPortal (גרסת FFmpeg ו־TSReader) + Kodi sučelje za MediaPortal TV poslužitelj (ffmpeg + tsreader inačica) + Kodi előtét a MediaPortal TV kiszolgálóhoz (ffmpeg + tsreader) + Frontend Kodi untuk Server TV MediaPortal (versi ffmpeg + tsreader) + Framendi fyrir Kodi til að nota MediaPortal TV Server (ffmpeg + tsreader version) + Frontend Kodi per il server MediaPortal TV (versione ffmpeg + tsreader) + MediaPortal TV サーバー (ffmpeg + tsreader バージョン) の Kodi フロントエンド + MediaPortal TV Server (ffmpeg + tsreader version) 을 위한 Kodi 프론트엔드 + Kodi sąsaja MediaPortal TV serveriui (ffmpeg + tsreader versija) + Kodi galasistēma MediaPortal TV Server (ffmpeg + tsreader versija) + Kodi интерфејс за MediaPortal TV Server (ffmpeg + tsreader верзија) + Bahagian hadapan Kodi untuk Pelayan TV MediaPortal (versi ffmpeg + tsreader) + MediaPortal TV Server အတွက် Kodi frontend (ffmpeg + tsreader version) + Kodi skall for MediaPortal TV Server (ffmpeg + tsreader versjon) + Kodi frontend voor de Mediaportal TV Server (ffmmpeg + tsreader versie) + Klient telewizyjny dla MediaPortal TV (wersja ffmpeg + tsreader) + Frontend do Kodi para Servidor de TV MediaPortal (ffmpeg + versão tsreader) + Frontend Kodi para o MediaPortal TV Server (versão ffmpeg + tsreader) + Interfața Kodi pentru MediaPortal TV Server (versiunea ffmpeg + tsreader) + Интерфейс Kodi для ТВ-сервера MediaPortal (версия ffmpeg + tsreader) + Kodi rozhranie pre MediaPortal TV server (verzia ffmpeg + tsreader) + Kodijev vmesnik za strežnik MediaPortal TV (ffmpeg + tsreader) + Kodi интерфејс за MediaPortal ТВ Сервер (ffmpeg + tsreader верзија) + Kodi interfejs za MediaPortal TV Server (ffmpeg + tsreader verzija) + Kodi frontend för MediaPortal TV-server (ffmpeg + tsreader versionen) + MediaPortal TV Sunucusu için Kodi ön ucu (ffmpeg + tsreader sürümü) + Накладка Kodi для сервера ТВ MediaPortal'у (версія ffmpeg + tsreader) + Giao tiếp Kodi cho MediaPortal TV Server (phiên bản ffmpeg + tsreader) + Kodi 的 MediaPortal TV 服务器前端(ffmpeg + tsreader版) + MediaPortal電視服務器的Kodi前端 (ffmpeg+tsreader版本) + MediaPortal TV Bediener voorprogram. Ondersteun stroom van Lewendige TV & Opnames, luister na Radio kanale, EPG en Tydhouers. Hierdie byvoegsel kombineer die voormalige ffmpeg en tsreader byvoegsels. + MediaPortal TV Server frontend. Supports streaming of Live TV & Recordings, listening to Radio channels, EPG and Timers. This addon combines the former ffmpeg and tsreader addons. + Kodi клиент за ТВ сървъра MediaPortal. Поддържа поточна телевизия и записване, слушане на радио канали, електронен програмен справочник и броячи. Добавката обединява старите добавки ffmpeg и tsreader. + Frontal Kodi de TV MediaPortal. Suporta el flux de TV en directe i enregistraments, escoltes de canals de ràdio, EPG i temporitzadors. Aquest connector combina els anteriors connectors de ffmpg i tsreader. + Rozhraní pro televizní server MediaPortal. Podporuje proudové vysílání živého vysílání a nahrávek, poslech kanálů rádia, EPG, a časovače. Toto rozšíření kombinuje rozšíření ffmpeg a tsreader. + Blaen Gweinydd Teledu Media Portal. Mae'n cynnal ffrydio Teledu Byw a Recordiadau, gwrando ar sianeli Radio, Amserlenni Rhaglenni Electronig ac Amseryddion. Mae'r ychwanegyn yn cynnwys y cyn ychwanegion ffmpeg a tsreader. + MediaPortal TV server frontend. Understøtter streaming af TV og Optagelser, Radiokanaler, EPG og Timere. Denne addon kombinerer de gamle ffmpeg og tsreader addons. + Mediaportal TV Server Oberfläche. Unterstützt Live TV & Aufnahmen, Radiokanäle, EPG und Timer. Dieses Addon kombiniert die ehemaligen ffmpeg- und tsreader-Addons. + Frontend για το διακομιστή MediaPortal TV. Υποστηρίζει ροές Live TV & Εγγραφές, ακρόαση Ραδιοφώνου, EPG και Χρονοδιακόπτες. Αυτό το πρόσθετο συνδυάζει τα προηγούμενα πρόσθετα ffmpeg και tsreader. + MediaPortal TV Server frontend. Supports streaming of Live TV & Recordings, listening to Radio channels, EPG and Timers. This addon combines the former ffmpeg and tsreader addons. + MediaPortal TV Server frontend. Supports streaming of Live TV & Recordings, listening to Radio channels, EPG and Timers. This addon combines the former ffmpeg and tsreader addons. + MediaPortal TV Server frontend. Supports streaming of Live TV & Recordings, listening to Radio channels, EPG and Timers. This addon combines the former ffmpeg and tsreader addons. + MediaPortal TV Server frontend. Supports streaming of Live TV & Recordings, listening to Radio channels, EPG and Timers. This addon combines the former FFmpeg and TSReader addons. + Interfaz MediaPortal TV Server. Soporta transmisión de TV en vivo y grabaciones, escuchar canales de radio, GEP y temporizadores. Este complemento combina los anteriores ffmpeg y tsreader. + Interfaz MediaPortal TV Server. Soporta transmisión de TV en vivo y grabaciones, escuchar canales de radio, EPG y temporizadores. Este complemento combina los anteriores ffmpeg y tsreader. + MediaPortal TV serveri esi. Toetab telekanalite striimimist ja salvestamist, raadio kuulamist ja elektroonilist saatekava. See lisa kombineerib endas endised ffmpeg ja tsreader lisad. + MediaPortal TV-palvelimen frontend. Tukee livelähetysten sekä tallenteiden virtaustoista, radiokanavia, ohjelmaopasta sekä ajastuksia. Tämä lisäosa yhdistää aikaisemmat ffmpeg- ja tsreader-lisäosat. + Frontal pour le serveur MediaPortal TV, prenant en charge la lecture en transit des télés en direct & les enregistrements, l'écoute de chaînes radio, le GÉP et les minuteries. Cet addiciel combines les anciens addiciels ffmpeg et tsreader. + Interface logicielle pour le serveur TV de MediaPortal. Il gère la lecture et l'enregistrement en continu de la TV en direct, l'écoute de radios, le guide électronique des programmes TV et les programmations. Cette extension combine les anciennes extensions ffmpeg et tsreader. + Interface do Servidor de TV de MediaPortal. Soporta transmisión de TV en directo e Gravacións, escoita de canles de radio, Guía e programacións. Este complemento combina o antigo ffmpeg e os complementos tsreader. + לקוח טלוויזיה חיה של MediaPortal. תומך בהזרמת שידורים חיים והקלטות, האזנה לרדיו, הצגת לוח שידורים ותזמון הקלטות. הרחבה זו משלבת את ההרחבות הקודמות המבוססות על FFmpeg ו־TSReader. + MediaPortal TV poslužitelj sučelje. Podržava stremanje i snimanje TV programa, slušanje radio programa, elektronski programski vodič (EPG) i vremenski zadano snimanje. Ovaj dodatak objedinjuje nekadašnje ffmpeg i tsreader dodatke. + MediaPortal TV kiszolgáló előtét. Élő adások, felvételek és rádióadások támogatása EPG-vel és időzítéssel. Ez a kiegészítő egyesíti az ffmpeg, és a tsreader kiegészítőket. + Frontend Server TV MediaPortal. Mendukung pengaliran TV dan Rekaman langsung, mendengarkan kanal radio, EPG dan Timer. Pengaya ini mengkombinasikan penggaya ffmeg dan tsreader yang lama. + Framendi fyrir MediaPortal TV. Styður streymingu á Live TV og upptökum, hlustun á útvarpsrásum, rafrænum sjónvarpsvísum (EPG) og tímatöku. Þessi viðbók sameinar fyrri viðbætur fyrir ffmpeg og tsreader + Frontend del server MediaPortal TV. Supporta lo streaming di Live TV e le registrazioni, l'ascolto dei canali radio, EPG e i timer. Questo addon combina gli addon ffmpeg e tsreaded. + MediaPortal TV サーバーのフロントエンドです。ライブテレビのストリーミングや録画、ラジオチャンネルの視聴、EPG、タイマーなどをサポートしています。以前の ffmpeg アドオンと tsreader アドオンを組み合わせたものです。 + MediaPortal TV Server 프론트엔드. TV 시청 & 녹화, 라디오 채널 청취, EPG 및 타이머 지원. 이 애드온은 이전의 ffmpeg 과 tsreader 애드온을 합친 것입니다. + MediaPortal TV Serverio sąsaja. Palaiko televizijos transliacijas ir Įrašus, radijo kanalus, EPG ir laikmačius. Šis priedas apjungia ankstesnius ffmpeg ir TSreader priedus. + MediaPortal TV Server galasistēma. Atbalsta tiešraides TV un ierakstu straumēšanu, radio kanālu klausīšanos, EPG un taimerus. Šis pielikums kombinē senākos ffmpeg un tsreader pielikumus. + MediaPortal TV Server frontend. Supports streaming of Live TV & Recordings, listening to Radio channels, EPG and Timers. This addon combines the former ffmpeg and tsreader addons. + Bahagian hadapan Pelayan TV MediaPortal; menyokong penstriman TV Langsung & Rakaman, mendengar saluran Radio, EPG dan Pemasa. Tambahan ini gabungkan tambahan ffmpef fan tsreader terdahulu. + MediaPortal TV Server skall. Støtter streaming av Live TV og opptak, Lytte til Radio kanaler, EPG og Timere. Dette tillegget kombinererer de tidligere ffmpeg og tsreader tilleggene. + MediaPortal TV Server frontend. Ondersteunt het bekijken van Live TV en opnames, het luisteren van radio zenders, het tonen van de EPG en het inplannen/beheren van nieuwe opnames (Timers). Deze addon combineert de voorgaande "ffmpeg" en "tsreader" addons. + Klient telewizyjny dla MediaPortal obsługuje strumieniowanie kanałów radiowych i telewizyjnych, nagrywanie i harmonogram nagrań oraz funkcje przewodnika telewizyjnego. Klient ten łączy w sobie funkcje wcześniejszych klientów ffmpeg i tsreader. + Frontend do Servidor de TV do MediaPortal. Suporta streaming de TV Ao Vivo e Gravações, escutar canais de rádio, EPG e Agendamentos. Este addon combina os antigos addons ffmpeg e tsreader + Frontend para o MediaPortal TV Server. Suporta transmissão de TV em directo e gravações, ouvir estações de Rádio, EPG e Temporizadores. Este add-on combina os antigos add-ons ffmpeg e tsreader. + Interfața MediaPortal TV Server. Suportă streaming TV live & Înregistrări, ascultarea posturilor de radio, EPG și Înregistrare programată. Acest plugin combină ex addons ffmpeg si tsreader. + Интерфейс Kodi для ТВ-сервера MediaPortal. Поддерживает просмотр и запись ТВ, прослушивание радио, EPG и таймеры. Это дополнение заменяет старые дополнения ffmpeg и tsreader. + Rozhranie pre MediaPortal TV server. Podporuje streamovanie živého televízneho vysielania a nahrávok, počúvanie rozhlasových kanálov, EPG a časovače. Tento doplnok zlučuje dohromady bývalé doplnky ffmpeg a tsreader. + Vmesnik za MediaPortal TV strežnik. Podpira pretakanje televizije v živo & posnetkov, poslušanje radia, EPG in časovnike. Ta dodatek združuje prejšnja dodatka ffmpeg in tsreader. + MediaPortal ТВ Сервер интерфејс. Подржава стримовање ТВ Уживо & Снимака, слушање Радио канала, EPG и Тајмере. Овај додатни програм комбинује претходне ffmpeg и tsreader додатне програме. + MediaPortal TV Server interfejs. Podržava strimovanje TV Uživo & Snimaka, slušanje Radio kanala, EPG i Tajmere. Ovaj dodatni program kombinuje prethodne ffmpeg i tsreader dodatne programe. + MediaPortal TV-server frontend. Stödjer strömning av direktsänd TV & inspelningar, lyssna på radiokanaler, EPG och timers. Detta tillägg kombinerar dom tidigare ffmpeg och tsreader tilläggen. + MediaPortal TV Sunucusu ön ucu. Canlı TV akışı ve kayıt yapabilme, radyo kanalları dinleme, EPG ve zamanlayıcıları destekler. Bu eklenti eski ffmpeg ve tsreader eklentilerini birleştirir. + Накладка для сервера ТВ MediaPortal. Підтримує потокове Live TV і запис, прослуховування радіо каналів, телегід та планування. Цей додаток сполучає колишні додатки ffmpeg і tsreader. + Giao tiếp cho MediaPortal TV Server. Hỗ trợ truyền phát và thu chương trình Live TV, nghe Radio, hẹn giờ và hiển thị lịch trình chiếu (EPG). Addon này kết hợp cho các addon cũ của ffmpeg và tsreader. + MediaPortal TV 服务器前端。支持直播电视和录像流媒体、收听电台、电子节目单和定时器。这个插件结合了之前的 ffmpeg 和 tsreader 插件。 + MediaPortal電視服務器的前端。支援的串流檔案包括有:電視直播和錄影,收聽廣播頻道,電子節目表和計時器。這個插件結合了先前ffmpeg和tsreader的插件。 + Hierdie is onstabiele sagteware! Die outeurs is op geen manier verantwoordelik vir gefaalde opnames, inkorrekte tydhouers, gemorsde ure, of enige ander ongewensde effekte. + This is unstable software! The authors are in no way responsible for failed recordings, incorrect timers, wasted hours, or any other undesirable effects.. + Тази програма е нестабилна! Авторите не носят отговорност за неуспешно записване, некоректни броячи, пропиляното време и други нежелани ефекти. + Això és programari inestable! Els autors no són de cap manera responsables dels enregistraments que han fallat, temporitzadors incorrectes, hores perdudes, o qualsevols altres efectes indesitjables.. + Tento software není stabilní. Autoři nejsou žádným způsobem zodpovědní za selhání při nahrávání, neplatné časovače, ztracený čas, či jakékoliv jiné nežádoucí události... + Mae'r feddalwedd hon yn fregus! Nid yw'r awduron yn gyfrifol mewn unrhyw ffordd am fethu recordio, amseru gwallus, oriau wedi eu gwastraffu nac effeithiau anymunol eraill. + Dette er ustabil software! Ophavsmændene er på ingen måde ansvarlige for mislykkede optagelser, ukorrekte timere, spildte timer, eller andre uønskede konsekvenser.. + Dies ist instabile Software! Die Autoren sind in keiner Weise verantwortlich für fehlgeschlagene Aufnahmen, falsche Timer, verschwendete Zeit oder andere ungewünschte Effekte. + Ασταθές πρόγραμμα! Οι δημιουργοί δεν είναι σε καμία περίπτωση υπεύθυνοι για αποτυχημένες εγγραφές, λανθασμένους χρονοδιακόπτες, χαμένες ώρες, ή κάθε είδους ανεπιθύμητα αποτελέσματα.. + This is unstable software! The authors are in no way responsible for failed recordings, incorrect timers, wasted hours, or any other undesirable effects.. + The authors are in no way responsible for failed recordings, incorrect timers, wasted hours, or any other undesirable effects. + This is unstable software! The authors are in no way responsible for failed recordings, incorrect timers, wasted hours, or any other undesirable effects.. + This is unstable software! The authors are in no way responsible for failed recordings, incorrect timers, wasted hours, or any other undesirable effects.. + ¡Este software es inestable! Los autores no se responsabilizan por grabaciones fallidas, temporizadores incorrectos, horas perdidas, o cualquier otro efecto no deseado.. + ¡Este es un software inestable! Los autores no son de ninguna manera responsables de las grabaciones fallidas o incorrectas, las temporizadores perdidas, ni otros efectos no deseables.. + ¡Esto es software inestable! Los autores no son de ninguna manera responsables por grabaciones fallidas, temporizadores incorrectos, horas perdidas o cualquier otro efecto no deseado... + See on ebastabiilne tarkvara! Autorid ei ole kuidagi moodi vastutavad nurjunud salvestiste, ebaõige aegrelee, raisatud tundide ega muude soovimatute asjade eest. + Tämä on epävakaa ohjelmisto! Tekijät eivät ole millään muotoa vastuussa epäonnistuneista tallennuksista, virheellisistä ajastuksia, haaskatusta ajasta, verenpaineen noususta tai mistään muusta epäsuotuisasta vaikutuksesta. + Ce logiciel est instable! Les auteurs ne sont aucunement responsables des enregistrements défaillants, des minuteries erronées, des heures perdues ou tout autre effet indésirable. + Logiciel en cours d'élaboration ! Les auteurs ne sont en aucun cas responsables de l'échec des enregistrements, programmations défectueuses, temps perdu ou autres effets indésirables. + Software non estable, os autores non se fan responsábeis dos erros na gravacións, temporizadores incorrectos, e outros efectos non desexados. + זוהי איננה הרחבה יציבה! המפתחים אינם אחראים על כשלון בניגון, זמנים שגויים במדריך השידורים, שעות מבוזבזות או כל תופעה לא רצויה אחרת. + Ovo je nestabilan softver! Autori nisu ni na koji način odgovorni za neuspjelo snimanje, netočna vremena snimanja, izgubljene sate, ili bilo koje druge nepoželjne učinke... + Ez nem stabil szoftver! A készítők nem vállalnak felelősséget, a hibás felvételért, rossz időzítésért, elvesztegetett időért... + Սա անկայուն ծրագրային ապահովում է: Հեղինակները պատասխանատու չեն վատ ձայնագրումների, սխալ ժամանակացույցերի, կորած ժամանակի կամ այլ ոչ ցանկալի երևույթների համար: + Ini merupakan software yang tidak stabil! Penulis tidak bertanggung jawab untuk rekaman gagal, timer salah, waktu terbuang, atau efek tak diinginkan lainnya... + Þetta er óstöðugur hugbúnaður! Höfundarnir eru á engann hátt ábyrgir fyrir misheppnuðum upptökum, röngum upptökutímum, klukkustundum sem að fóru í súginn eða nokkrum öðrum óæskilegum áhrifum. + Questo software non è stabile! Gli autori non sono responsabili per registrazioni fallite, timer non corretti, ore perse, o altri effetti indesiderati... + これは不安定なソフトウェアです!本プログラムの作者は、録画の失敗、正確に作動しなかったタイマー、無駄にした時間、その他あらゆる好ましくない結果について責任を負わないものとします。 + 이 소프트웨어는 불안정합니다! 제작자는 녹화 실패, 부정확한 타이머, 시간 낭비 및 기타 예상하지 못한 결과에 대해 책임지지 않습니다.. + Tai yra nestabili programinė įranga! Autorius jokiu būdu neatsakingas už nepavykusius įrašus, neteisingus laikmačius, iššvaistytas valandas ar nutikus kitiems nepageidaujamiems poveikiams ...[COLOR=red](Kodi.lt siūlo/rekomenduoja testuojant šį priedą persijungti į Anglų [orinali] kalbą)[/COLOR] + Šī ir nestabila programmatūra! Autori nav atbildīgi par nesanākušiem ierakstiem, nepareiziem taimeriem, iztērētām stundām vai jebkādiem citiem nevēlamiem efektiem.. + Ова е нестабилен софтвер! Авторите на ниту еден начин не одговараат за неуспешни снимки, неточни тајмери, потрошени часови, или било кои други несакани ефекти. + Тус програм нь гүйцэд хийгдэж дуусаагүй! Зохиогч нь алдаатай бичлэг, цагийн буруу хөтлөлт, алдагдсан цаг хугацаа эсвэл бусад ямар нэгэн хүсээгүй үр дүнд хариуцлага хүлээхгүй. + Ini merupakan perisian tidak stabil! Pengarang tidak bertanggungjawab atas kegagalan rakaman, pemasa tidak betul, masa yang dibazirkan, atau apa jua kesan yang tidak dikehendaki.. + Dan il-programm mhuwiex stabbli! L-Awturi m'humiex responsabbli bl-ebda mod għal rekordings li ma jirnexxewx, arloġġi żbaljati, siegħat moħlija, jew kwalunkwe effett ieħor mhux mixtieq. + Dette er ustabilt programvare! Forfatterne er ikke ansvarlig på noen måte for ødelagte opptak, feile timere, bortkastede timer, eller andre uønskede hendinger... + Deze software is niet 100% stabiel! De auteurs zijn op geen enkele wijze aansprakelijk voor mislukte opnames, verspilde tijd, of enig ander ongewild neveneffect.. + Oprogramowanie nadal jest w fazie rozwoju i jest niestabilne! Autorzy w żaden sposób nie są odpowiedzialni za nieudane nagrania, błędy w harmonogramie nagrań, zmarnowany czas ani jakiekolwiek inne niepożądane efekty. + Este é um software instável! Os autores não são responsáveis por falhas de gravações, agendamentos incorretos, horas desperdiçadas, ou quaisquer outros efeitos indesejados. + 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.. + Acesta nu este o aplicație definitivă! Autorii nu sunt în nici un fel responsabili pentru înregistrări eșuate, cronometre incorecte, ore pierdute, sau orice alte efecte nedorite... + Это нестабильная программа! Авторы не несут ответственности за неудачную запись, неправильные таймеры, потраченное время и другие нежелательные последствия. + මෙය අස්ථිර මෘදුකාංගයකි! මෙහි සිදුවන පටිගත කිරීම් අසාර්ථක වීම්, සාවද්‍ය මුහුර්තක, නාස්ති වූ කාලයන්, හෝ වෙනත් යමිකිසි නුසුදුසු බලපෑම් සඳහා කතෘ වග කියනු නොලැබේ. + Tento softvér nie je stabilný! Autori nenesú žiadnu zodpovednosť za chybné nahrávky vysielania, nesprávne časovače alebo iné neželané udalosti spôsobené týmto softvérom.. + To je nestabilna programska oprema! Avtorji niso odgovorni za neuspela snemanja, nepravilne časovnike, zapravljen čas in katerikoli drug neželen učinek... + Ky program nuk është ende stabil! Autorët së këtij programi nuk janë në as një menyr përgjegjës për rregistrime të gabuara, timer të pasaktë, kohë të humbur ose efekte të tillë të padëshirueshëm. + Овај софтвер је нестабилан! Аутори ни на који начин нису одговорни за неуспела снимања, неисправне тајмере, изгубљене сате, или било које друге нежељене ефекте... + Ovaj softver je nestabilan! Autori ni na koji način nisu odgovorni za neuspela snimanja, neispravne tajmere, izgubljene sate, ili bilo koje druge neželjene efekte... + Detta är ostabil mjukvara! Upphovsmännen är inte ansvariga för misslyckade inspelningar, inkorrekta timers, bortslösade timmar, eller några andra oönskade effekter.. + To je niystabilny softwer! Autōry niy sōm ôdpedzialne za niypodarzōne graniy, niynŏleżne godziny EPG, stracōne godziny i inksze niychciane efekty. + ఇది అస్థిర సాఫ్ట్వేర్! విఫలమైన రికార్డింగ్లు, తప్పు టైమర్లు, వృధా గంటల, లేదా ఏ ఇతర అవాంఛనీయ ప్రభావాలకు ఏ విధంగా రచయితలు భాద్యుతులు కారు. + Ин нармафзори ноустувор аст! Муаллифон барои вайрониҳои сабт, вақтсанҷҳои нодуруст, соатҳои бефоида ва дигар таъсирҳои номатлуб ҷавобгар намебошанд. + Bu kararsız bir yazılımdır! Yapımcılar hatalı kayıtlardan, bozuk sürelerden, harcanan vakitten veya herhangi bir olumsuz etkiden dolayı sorumlu tutulamaz. + Це нестабільна програма! Автор не несуть жодної відповідальності за зіпсуті записи, неправильні таймери, потрачений час, та інші небажані ефекти. + Đây là phần mềm không ổn định! Các tác giả không chịu trách nhiệm đối với bản ghi âm thất bại, giờ không chính xác, giờ lãng phí, hoặc bất kỳ tác dụng không mong muốn khác... + 这是不稳定版的软件!作者不对录像失败、错误定时造成时间浪费或其它不良影响负责。 + 這是測試版軟體!其原創作者並無法對於以下情況負責,包含:錄影失敗,不正確的定時設定,多餘時數,或任何產生的其它不良影響... + @PLATFORM@ + + diff -Nru kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/changelog.txt kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/changelog.txt --- kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/changelog.txt 2015-07-17 20:18:46.000000000 +0000 +++ kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/changelog.txt 2016-01-17 16:39:23.000000000 +0000 @@ -1,10 +1,52 @@ -v1.10.9 +v1.12.0 +- Timer: Add series recording timer types support +- Timer: Add an backward compatibility option to re-enable the pre-Jarvis series recording dialog +- Timer: show EPG description +- Recordings: pass recording series and episode numbers to Kodi + +v1.11.12 +- Updated language files from Transifex + +v1.11.11 +- Compile fix for gcc 5 +- Remove the "unstable" notice from the disclaimer +- Rename TVServerXBMC to TVServerKodi +- pvr.mediaportal.tvserver binary now reports the version number from the addon.xml + +v1.11.10 +- Updated language files from Transifex + +v1.11.9 +- Updated language files from Transifex + +v1.11.8 +- Updated to GUI API v5.10.0 + +v1.11.7 +- Fixed a regression with timer id and epg id handling introduced with PVR API v4.0.0 + +v1.11.6 +- Updated to PVR API v4.1.0 + +v1.11.5 +- Updated to PVR API v4.0.0 + +v1.11.4 +- Updated to PVR API v3.0.0 (API 1.9.7 compatibility mode) + +v1.11.3 +- Updated to PVR API v2.1.0 +- Automatically fill in platform and library name + +v1.11.2 - Debian packaging: fix library install path - Miscellaneous backend fixes -v1.10.8 -- libplatform dependency update -- Fix CMakeLists.txt language resource folder +v1.11.1 +- Updated to PVR API v2.0.0 + +v1.11.0 +- Updated to PVR API v1.9.7 v1.10.7 - Updated language files from Transifex diff -Nru kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/resources/language/resource.language.af_za/strings.po kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/resources/language/resource.language.af_za/strings.po --- kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/resources/language/resource.language.af_za/strings.po 2015-07-17 20:18:46.000000000 +0000 +++ kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/resources/language/resource.language.af_za/strings.po 2016-01-17 16:39:23.000000000 +0000 @@ -172,6 +172,14 @@ msgid "Keep" msgstr "Hou" +msgctxt "#30121" +msgid "Anytime" +msgstr "Enige tyd" + +msgctxt "#30126" +msgid "Any Channel" +msgstr "Enige kanaal" + msgctxt "#30132" msgid "Days" msgstr "Dae" diff -Nru kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/resources/language/resource.language.am_et/strings.po kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/resources/language/resource.language.am_et/strings.po --- kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/resources/language/resource.language.am_et/strings.po 2015-07-17 20:18:46.000000000 +0000 +++ kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/resources/language/resource.language.am_et/strings.po 2016-01-17 16:39:23.000000000 +0000 @@ -28,6 +28,18 @@ msgid "Connection" msgstr "ግንኙነት " +msgctxt "#30042" +msgid "Playback" +msgstr "መልሶ ማጫወቻ" + +msgctxt "#30060" +msgid "All cards are busy" +msgstr "ሁሉም ካርዶች በ ስራ ላይ ናቸው" + +msgctxt "#30062" +msgid "No video or audio detected" +msgstr "ምንም አይነት ቪዲዮ ወይንም ድምፅ አልተገኘም " + msgctxt "#30063" msgid "No signal detected" msgstr "ምንም አይነት ምልክት አልተገኘም " diff -Nru kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/resources/language/resource.language.bg_bg/strings.po kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/resources/language/resource.language.bg_bg/strings.po --- kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/resources/language/resource.language.bg_bg/strings.po 2015-07-17 20:18:46.000000000 +0000 +++ kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/resources/language/resource.language.bg_bg/strings.po 2016-01-17 16:39:23.000000000 +0000 @@ -54,7 +54,7 @@ msgctxt "#30009" msgid "EPG: Read genre strings (slow)" -msgstr "ЕПС: получавай имената на жанровете (бавно)" +msgstr "Справочник: получавай имената на жанровете (бавно)" msgctxt "#30010" msgid "Wait time after tuning a channel (ms)" diff -Nru kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/resources/language/resource.language.ca_es/strings.po kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/resources/language/resource.language.ca_es/strings.po --- kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/resources/language/resource.language.ca_es/strings.po 2015-07-17 20:18:46.000000000 +0000 +++ kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/resources/language/resource.language.ca_es/strings.po 2016-01-17 16:39:23.000000000 +0000 @@ -110,7 +110,7 @@ msgctxt "#30062" msgid "No video or audio detected" -msgstr "No s'ha detectat vídeo o audio" +msgstr "No s'ha detectat cap vídeo o àudio" msgctxt "#30063" msgid "No signal detected" @@ -164,6 +164,10 @@ msgid "No PMT found" msgstr "No es troba el PMT" +msgctxt "#30100" +msgid "Schedule settings" +msgstr "Ajustos de programacions" + msgctxt "#30101" msgid "Frequency" msgstr "Freqüència" @@ -180,14 +184,34 @@ msgid "Keep" msgstr "Mantenir" +msgctxt "#30105" +msgid "Record minutes before start" +msgstr "Minuts gravats abans de començar" + +msgctxt "#30106" +msgid "Record minutes after end" +msgstr "Minuts gravats després de finalitzar" + msgctxt "#30110" msgid "Record Once" msgstr "Grava un cop" +msgctxt "#30111" +msgid "Record Daily (This program)" +msgstr "Gravar Diàriament (Aquest programa)" + msgctxt "#30112" msgid "Record Weekly" msgstr "Grava setmanalment" +msgctxt "#30113" +msgid "Record Weekends" +msgstr "Gravar Caps de Setmana" + +msgctxt "#30114" +msgid "Record Week Days" +msgstr "Gravar Dies de la Setmana" + msgctxt "#30120" msgid "This time" msgstr "Aquest cop" @@ -204,6 +228,14 @@ msgid "Any Channel" msgstr "Qualsevol canal" +msgctxt "#30130" +msgid "Until space needed" +msgstr "Fins que necessiti espai" + +msgctxt "#30131" +msgid "Until Watched" +msgstr "Fins que ho vegi" + msgctxt "#30132" msgid "Days" msgstr "Dies" @@ -212,6 +244,10 @@ msgid "Always" msgstr "Sempre" +msgctxt "#30135" +msgid "Backend default" +msgstr "Backend per defecte" + msgctxt "#30136" msgid "Kodi default" msgstr "Per defecte a Kodi" diff -Nru kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/resources/language/resource.language.en_gb/strings.po kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/resources/language/resource.language.en_gb/strings.po --- kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/resources/language/resource.language.en_gb/strings.po 2015-07-17 20:18:46.000000000 +0000 +++ kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/resources/language/resource.language.en_gb/strings.po 2016-01-17 16:39:23.000000000 +0000 @@ -16,8 +16,7 @@ "Language: en_GB\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#Settings labels - +# Settings labels msgctxt "#30000" msgid "Mediaportal Hostname" msgstr "" @@ -62,7 +61,11 @@ msgid "Wait time after tuning a channel (ms)" msgstr "" -#empty strings from id 30011 to 30014 +msgctxt "#30011" +msgid "Enable old series recording dialog" +msgstr "" + +# empty strings from id 30011 to 30014 msgctxt "#30015" msgid "Streaming method" @@ -80,8 +83,8 @@ msgid "Use RTSP streaming" msgstr "" -#empty strings from id 30019 to 30039 -#Category labels +# empty strings from id 30019 to 30039 +# Category labels msgctxt "#30040" msgid "Connection" @@ -95,8 +98,8 @@ msgid "Playback" msgstr "" -#empty strings from id 30043 to 30049 -#On-screen error messages +# empty strings from id 30043 to 30049 +# On-screen error messages msgctxt "#30050" msgid "Your TVServerKodi version '%s' is too old. Please upgrade to '%s' or higher!" @@ -110,8 +113,8 @@ msgid "Recording playback failed. Empty URL of filename." msgstr "" -#empty strings from id 30053 to 30059 -#Status message strings corresponding to the MediaPortal TvResult enum +# empty strings from id 30053 to 30059 +# Status message strings corresponding to the MediaPortal TvResult enum msgctxt "#30060" msgid "All cards are busy" @@ -177,7 +180,7 @@ msgid "No PMT found" msgstr "" -#empty strings from id 30076 to 30099 +# empty strings from id 30076 to 30099 # Schedule settings dialog msgctxt "#30100" @@ -208,7 +211,7 @@ msgid "Record minutes after end" msgstr "" -#empty strings from id 30107 to 30109 +# empty strings from id 30107 to 30109 # Frequency: msgctxt "#30110" @@ -228,10 +231,28 @@ msgstr "" msgctxt "#30114" -msgid "Record Week Days" +msgid "Record Weekdays" +msgstr "" + +msgctxt "#30115" +msgid "Record every time on this channel" +msgstr "" + +msgctxt "#30116" +msgid "Record every time on every channel" +msgstr "" + +msgctxt "#30117" +msgid "Record every week at this time" msgstr "" -#empty strings from id 30115 to 30119 +msgctxt "#30118" +msgid "Record every day at this time" +msgstr "" + +msgctxt "#30119" +msgid "Record weekly on this channel" +msgstr "" # Airtime: msgctxt "#30120" @@ -242,7 +263,7 @@ msgid "Anytime" msgstr "" -#empty strings from id 30122 to 30124 +# empty strings from id 30122 to 30124 # Channel: msgctxt "#30125" @@ -253,7 +274,7 @@ msgid "Any Channel" msgstr "" -#empty strings from id 30127 to 30129 +# empty strings from id 30127 to 30129 # Keep: msgctxt "#30130" @@ -261,7 +282,7 @@ msgstr "" msgctxt "#30131" -msgid "Until Watched" +msgid "Until watched" msgstr "" msgctxt "#30132" @@ -272,8 +293,28 @@ msgid "Always" msgstr "" -#empty string with id 30134 +msgctxt "#30134" +msgid "1 week" +msgstr "" + +msgctxt "#30137" +msgid "%d weeks" +msgstr "" +msgctxt "#30138" +msgid "1 month" +msgstr "" + +msgctxt "#30139" +msgid "%d months" +msgstr "" + +msgctxt "#30140" +msgid "1 year" +msgstr "" + + +# Pre/post record time msgctxt "#30135" msgid "Backend default" msgstr "" @@ -281,3 +322,4 @@ msgctxt "#30136" msgid "Kodi default" msgstr "" + diff -Nru kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/resources/language/resource.language.fr_ca/strings.po kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/resources/language/resource.language.fr_ca/strings.po --- kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/resources/language/resource.language.fr_ca/strings.po 2015-07-17 20:18:46.000000000 +0000 +++ kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/resources/language/resource.language.fr_ca/strings.po 2016-01-17 16:39:23.000000000 +0000 @@ -38,7 +38,7 @@ msgctxt "#30005" msgid "Connect timeout (s)" -msgstr "Délai d'attente de connexion (s)" +msgstr "Temporisation de connexion (s)" msgctxt "#30006" msgid "Import only TV Channels from group" @@ -230,7 +230,7 @@ msgctxt "#30130" msgid "Until space needed" -msgstr "Jusqu'à ce que l'espace soit nécessaire" +msgstr "Jusqu'à ce que l'espace soit requis" msgctxt "#30131" msgid "Until Watched" @@ -246,7 +246,7 @@ msgctxt "#30135" msgid "Backend default" -msgstr "Valeur par défaut du dorsal" +msgstr "Valeur par défaut de la dorsale" msgctxt "#30136" msgid "Kodi default" diff -Nru kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/resources/language/resource.language.fr_fr/strings.po kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/resources/language/resource.language.fr_fr/strings.po --- kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/resources/language/resource.language.fr_fr/strings.po 2015-07-17 20:18:46.000000000 +0000 +++ kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/resources/language/resource.language.fr_fr/strings.po 2016-01-17 16:39:23.000000000 +0000 @@ -22,7 +22,7 @@ msgctxt "#30001" msgid "Mediaportal Kodi plugin Port" -msgstr "Port Plugin Mediaportal Kodi" +msgstr "Port extension Mediaportal Kodi" msgctxt "#30002" msgid "Free-to-air only" @@ -34,7 +34,7 @@ msgctxt "#30004" msgid "Fast channel switching (don't stop timeshift)" -msgstr "Basculement rapide de chaînes (n'interromps pas l'enregistrement)" +msgstr "Commutation rapide de chaînes (ne stoppe pas le différé)" msgctxt "#30005" msgid "Connect timeout (s)" @@ -54,7 +54,7 @@ msgctxt "#30009" msgid "EPG: Read genre strings (slow)" -msgstr "Guide Des Programmes : lecture des genres (lent)" +msgstr "Guide TV : Lecture des genres (lent)" msgctxt "#30010" msgid "Wait time after tuning a channel (ms)" @@ -62,7 +62,7 @@ msgctxt "#30015" msgid "Streaming method" -msgstr "Méthode de flux" +msgstr "Méthode de diffusion par flux" msgctxt "#30016" msgid "Windows user account (SMB)" @@ -74,7 +74,7 @@ msgctxt "#30018" msgid "Use RTSP streaming" -msgstr "Utiliser les flux RTSP" +msgstr "Utiliser la diffusion par flux RTSP" msgctxt "#30040" msgid "Connection" @@ -90,31 +90,31 @@ msgctxt "#30050" msgid "Your TVServerKodi version '%s' is too old. Please upgrade to '%s' or higher!" -msgstr "Votre version '%s' de TVServerKodi est obsolète. Veuillez mettre à niveau vers '%s' ou supérieur !" +msgstr "Cette version « %s » de TVServerKodi est obsolète. Merci de la mettre à niveau vers « %s » ou supérieur !" msgctxt "#30051" msgid "Your TVServerKodi version is too old. Please upgrade to '%s' or higher!" -msgstr "Votre version de TVServerKodi est obsolète. Veuillez mettre à niveau vers '%s' ou supérieur !" +msgstr "Cette version de TVServerKodi est obsolète. Merci de la mettre à niveau vers « %s » ou supérieur !" msgctxt "#30052" msgid "Recording playback failed. Empty URL of filename." -msgstr "Lecture défaillante de l'enregistrement. Effacer l'adresse ou le nom." +msgstr "Lecture défaillante de l'enregistrement. Effacer l'adresse URL ou le nom de fichier." msgctxt "#30060" msgid "All cards are busy" -msgstr "Toutes les cartes sont occupées" +msgstr "Toutes les cartes sont occupées." msgctxt "#30061" msgid "Channel is scrambled" -msgstr "La chaîne est cryptée" +msgstr "La chaîne est cryptée." msgctxt "#30062" msgid "No video or audio detected" -msgstr "Pas de vidéo ou d'audio détectés" +msgstr "Pas de vidéo ou d'audio détectée" msgctxt "#30063" msgid "No signal detected" -msgstr "Aucun signal" +msgstr "Aucun signal détecté" msgctxt "#30064" msgid "Unknown error" @@ -122,7 +122,7 @@ msgctxt "#30065" msgid "Unable to start graph" -msgstr "Impossible de démarrer le chaînage" +msgstr "Impossible de démarrer le chaînage." msgctxt "#30066" msgid "Unknown channel" @@ -142,7 +142,7 @@ msgctxt "#30070" msgid "Connection to slave failed" -msgstr "Connexion impossible à l'enfant " +msgstr "Connexion impossible au périphérique asservi." msgctxt "#30071" msgid "Not the owner" @@ -158,11 +158,11 @@ msgctxt "#30074" msgid "No free disk space" -msgstr "Plus de place disque" +msgstr "Plus assez d'espace disque libre" msgctxt "#30075" msgid "No PMT found" -msgstr "Aucune Table de Programme trouvée" +msgstr "Aucune table de trogramme trouvée" msgctxt "#30100" msgid "Schedule settings" @@ -206,7 +206,7 @@ msgctxt "#30113" msgid "Record Weekends" -msgstr "Enregistrement les Weekends" +msgstr "Enregistrement les week-ends" msgctxt "#30114" msgid "Record Week Days" @@ -214,7 +214,7 @@ msgctxt "#30120" msgid "This time" -msgstr "Maintenant" +msgstr "Cette fois-ci" msgctxt "#30121" msgid "Anytime" @@ -230,11 +230,11 @@ msgctxt "#30130" msgid "Until space needed" -msgstr "Jusqu'à ce qu'il y ai besoin d'espace" +msgstr "Jusqu'à ce qu'il y ait besoin d'espace" msgctxt "#30131" msgid "Until Watched" -msgstr "Jusqu'au visionnage" +msgstr "Jusqu'à être vu" msgctxt "#30132" msgid "Days" @@ -246,8 +246,8 @@ msgctxt "#30135" msgid "Backend default" -msgstr "Auxiliaire prédéfini" +msgstr "Par défaut du serveur" msgctxt "#30136" msgid "Kodi default" -msgstr "Prédéfini par Kodi" +msgstr "Par défaut de Kodi" diff -Nru kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/resources/language/resource.language.hu_hu/strings.po kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/resources/language/resource.language.hu_hu/strings.po --- kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/resources/language/resource.language.hu_hu/strings.po 2015-07-17 20:18:46.000000000 +0000 +++ kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/resources/language/resource.language.hu_hu/strings.po 2016-01-17 16:39:23.000000000 +0000 @@ -22,7 +22,7 @@ msgctxt "#30001" msgid "Mediaportal Kodi plugin Port" -msgstr "MediaPortal Kodi bővítmény port" +msgstr "MediaPortal Kodi kiegészítő port" msgctxt "#30002" msgid "Free-to-air only" @@ -166,7 +166,7 @@ msgctxt "#30100" msgid "Schedule settings" -msgstr "Ütemezés beállítások" +msgstr "Ütemezési beállítások" msgctxt "#30101" msgid "Frequency" diff -Nru kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/resources/language/resource.language.ms_my/strings.po kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/resources/language/resource.language.ms_my/strings.po --- kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/resources/language/resource.language.ms_my/strings.po 2015-07-17 20:18:46.000000000 +0000 +++ kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/resources/language/resource.language.ms_my/strings.po 2016-01-17 16:39:23.000000000 +0000 @@ -206,7 +206,7 @@ msgctxt "#30113" msgid "Record Weekends" -msgstr "Rakan Hujung Minggu" +msgstr "Rakam Hujung Minggu" msgctxt "#30114" msgid "Record Week Days" diff -Nru kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/resources/language/resource.language.mt_mt/strings.po kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/resources/language/resource.language.mt_mt/strings.po --- kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/resources/language/resource.language.mt_mt/strings.po 2015-07-17 20:18:46.000000000 +0000 +++ kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/resources/language/resource.language.mt_mt/strings.po 2016-01-17 16:39:23.000000000 +0000 @@ -16,6 +16,18 @@ "Language: mt_MT\n" "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : n==0 || ( n%100>1 && n%100<11) ? 1 : (n%100>10 && n%100<20 ) ? 2 : 3);\n" +msgctxt "#30003" +msgid "Include Radio" +msgstr "Inkludi R-Radju" + +msgctxt "#30005" +msgid "Connect timeout (s)" +msgstr "Konnessjoni skadilha l-ħin (s)" + +msgctxt "#30042" +msgid "Playback" +msgstr "Daqq" + msgctxt "#30103" msgid "Channels" msgstr "Stazzjonijiet" @@ -27,3 +39,7 @@ msgctxt "#30132" msgid "Days" msgstr "Ġranet" + +msgctxt "#30133" +msgid "Always" +msgstr "Dejjem" diff -Nru kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/resources/language/resource.language.pl_pl/strings.po kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/resources/language/resource.language.pl_pl/strings.po --- kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/resources/language/resource.language.pl_pl/strings.po 2015-07-17 20:18:46.000000000 +0000 +++ kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/resources/language/resource.language.pl_pl/strings.po 2016-01-17 16:39:23.000000000 +0000 @@ -38,7 +38,7 @@ msgctxt "#30005" msgid "Connect timeout (s)" -msgstr "Limit czasu połączenia (s)" +msgstr "Limit czasu połączenia (sekundy)" msgctxt "#30006" msgid "Import only TV Channels from group" @@ -62,7 +62,7 @@ msgctxt "#30015" msgid "Streaming method" -msgstr "Metoda streamieniowania" +msgstr "Metoda strumieniowania" msgctxt "#30016" msgid "Windows user account (SMB)" @@ -94,11 +94,11 @@ msgctxt "#30051" msgid "Your TVServerKodi version is too old. Please upgrade to '%s' or higher!" -msgstr "Dodatek TVServerKodi jest w za starej wersji. Zaktualizuj go do wersji '%s' lub nowszej!" +msgstr "Dodatek TVServerKodi jest w starej nieobsługiwanej wersji. Zaktualizuj go do wersji '%s\" lub nowszej!" msgctxt "#30052" msgid "Recording playback failed. Empty URL of filename." -msgstr "Odtwarzanie nagrania nie powiodło się. Adres URL lub nazwa pliku są nieprawidłowe." +msgstr "Odtwarzanie nagrania nie powiodło się. Adres URL pliku jest pusty." msgctxt "#30060" msgid "All cards are busy" @@ -142,7 +142,7 @@ msgctxt "#30070" msgid "Connection to slave failed" -msgstr "Połączenie do usługi podrzędnej nie powiodło się" +msgstr "Nieudane połączenie z usługą" msgctxt "#30071" msgid "Not the owner" diff -Nru kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/resources/language/resource.language.ro_ro/strings.po kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/resources/language/resource.language.ro_ro/strings.po --- kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/resources/language/resource.language.ro_ro/strings.po 2015-07-17 20:18:46.000000000 +0000 +++ kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/resources/language/resource.language.ro_ro/strings.po 2016-01-17 16:39:23.000000000 +0000 @@ -164,10 +164,18 @@ msgid "No PMT found" msgstr "PMT nu a fost gasit" +msgctxt "#30100" +msgid "Schedule settings" +msgstr "Stabiliri planificare" + msgctxt "#30101" msgid "Frequency" msgstr "Frecvență" +msgctxt "#30102" +msgid "Airtime" +msgstr "Oră de difuzare" + msgctxt "#30103" msgid "Channels" msgstr "Canale" @@ -176,10 +184,38 @@ msgid "Keep" msgstr "Păstrează" +msgctxt "#30105" +msgid "Record minutes before start" +msgstr "Minute de înregistrat înainte de început" + +msgctxt "#30106" +msgid "Record minutes after end" +msgstr "Minute de înregistrat după sfârșit" + msgctxt "#30110" msgid "Record Once" msgstr "Înregistrează o dată" +msgctxt "#30111" +msgid "Record Daily (This program)" +msgstr "Înregistrează zilnic (Acest program)" + +msgctxt "#30112" +msgid "Record Weekly" +msgstr "Înregistrare săptămânală" + +msgctxt "#30113" +msgid "Record Weekends" +msgstr "Înregistrare sfârșit de săptămână" + +msgctxt "#30114" +msgid "Record Week Days" +msgstr "Înregistare zile lucrătoare" + +msgctxt "#30120" +msgid "This time" +msgstr "De data aceasta" + msgctxt "#30121" msgid "Anytime" msgstr "Oricând" @@ -192,6 +228,14 @@ msgid "Any Channel" msgstr "Orice canal" +msgctxt "#30130" +msgid "Until space needed" +msgstr "Până este nevoie de spațiu" + +msgctxt "#30131" +msgid "Until Watched" +msgstr "Până sunt văzute" + msgctxt "#30132" msgid "Days" msgstr "zile" @@ -200,6 +244,10 @@ msgid "Always" msgstr "Întotdeauna" +msgctxt "#30135" +msgid "Backend default" +msgstr "Furnizor din spate implicit" + msgctxt "#30136" msgid "Kodi default" msgstr "Implicit pentru Kodi" diff -Nru kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/resources/language/resource.language.sr_rs/strings.po kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/resources/language/resource.language.sr_rs/strings.po --- kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/resources/language/resource.language.sr_rs/strings.po 2015-07-17 20:18:46.000000000 +0000 +++ kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/resources/language/resource.language.sr_rs/strings.po 2016-01-17 16:39:23.000000000 +0000 @@ -16,14 +16,238 @@ "Language: sr_RS\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +msgctxt "#30000" +msgid "Mediaportal Hostname" +msgstr "Mediaportal Hostname" + +msgctxt "#30001" +msgid "Mediaportal Kodi plugin Port" +msgstr "Порт Mediaportal Kodi прикључка" + +msgctxt "#30002" +msgid "Free-to-air only" +msgstr "Само некодирани" + +msgctxt "#30003" +msgid "Include Radio" +msgstr "Укључи Радио" + +msgctxt "#30004" +msgid "Fast channel switching (don't stop timeshift)" +msgstr "Брза промена канала (не заустављај временски померај)" + +msgctxt "#30005" +msgid "Connect timeout (s)" +msgstr "Истек времена за повезивање (с)" + +msgctxt "#30006" +msgid "Import only TV Channels from group" +msgstr "Увези само ТВ Канале из групе" + +msgctxt "#30007" +msgid "Import only Radio Channels from group" +msgstr "Увези само Радио Канале из групе" + +msgctxt "#30008" +msgid "Convert hostname to IP-adress" +msgstr "Претвори hostname у IP-адресу" + +msgctxt "#30009" +msgid "EPG: Read genre strings (slow)" +msgstr "EPG: Читај стрингове жанра (споро)" + +msgctxt "#30010" +msgid "Wait time after tuning a channel (ms)" +msgstr "Време чекања након промене канала (ms)" + +msgctxt "#30015" +msgid "Streaming method" +msgstr "Метод стримовања" + +msgctxt "#30016" +msgid "Windows user account (SMB)" +msgstr "Windows кориснички налог (SMB)" + +msgctxt "#30017" +msgid "Windows password (SMB)" +msgstr "Windows лозинка (SMB)" + +msgctxt "#30018" +msgid "Use RTSP streaming" +msgstr "Користи RTSP стримовање" + +msgctxt "#30040" +msgid "Connection" +msgstr "Веза" + +msgctxt "#30041" +msgid "MediaPortal" +msgstr "MediaPortal" + msgctxt "#30042" msgid "Playback" msgstr "Репродукција" +msgctxt "#30050" +msgid "Your TVServerKodi version '%s' is too old. Please upgrade to '%s' or higher!" +msgstr "Ваша верзија TVServerKodi '%s' је превише стара. Молимо, ажурирајте на '%s' или више!" + +msgctxt "#30051" +msgid "Your TVServerKodi version is too old. Please upgrade to '%s' or higher!" +msgstr "Ваша верзија TVServerKodi је превише стара. Молимо, ажурирајте на '%s' или више!" + +msgctxt "#30052" +msgid "Recording playback failed. Empty URL of filename." +msgstr "Снимање репродукције неуспело. Празан URL или име датотеке." + +msgctxt "#30060" +msgid "All cards are busy" +msgstr "Све карте су заузете" + +msgctxt "#30061" +msgid "Channel is scrambled" +msgstr "Канал је кодиран" + +msgctxt "#30062" +msgid "No video or audio detected" +msgstr "Видео или аудио нису откривени" + +msgctxt "#30063" +msgid "No signal detected" +msgstr "Сигнал није откривен" + +msgctxt "#30064" +msgid "Unknown error" +msgstr "Непозната грешка" + +msgctxt "#30065" +msgid "Unable to start graph" +msgstr "Није могуће покретање графика" + +msgctxt "#30066" +msgid "Unknown channel" +msgstr "Непознати канал" + +msgctxt "#30067" +msgid "No tuning details" +msgstr "Нема детаља о промени" + +msgctxt "#30068" +msgid "Channel is not mapped to any card" +msgstr "Канал није мапиран ни на једној карти" + +msgctxt "#30069" +msgid "Card is disabled" +msgstr "Карта је онемогућена" + +msgctxt "#30070" +msgid "Connection to slave failed" +msgstr "Веза са слејвом неуспела" + +msgctxt "#30071" +msgid "Not the owner" +msgstr "Не власник" + +msgctxt "#30072" +msgid "Graph building failed" +msgstr "Неуспело прављење графика" + +msgctxt "#30073" +msgid "SW Encoder missing" +msgstr "Недостаје SW Кодер" + +msgctxt "#30074" +msgid "No free disk space" +msgstr "Нема слободног простора на диску" + +msgctxt "#30075" +msgid "No PMT found" +msgstr "PMT није пронађен" + +msgctxt "#30100" +msgid "Schedule settings" +msgstr "Подешавања распореда" + +msgctxt "#30101" +msgid "Frequency" +msgstr "Фреквенција" + +msgctxt "#30102" +msgid "Airtime" +msgstr "Време емитовања" + +msgctxt "#30103" +msgid "Channels" +msgstr "Канали" + +msgctxt "#30104" +msgid "Keep" +msgstr "Задржати" + +msgctxt "#30105" +msgid "Record minutes before start" +msgstr "Снимити минуте пре почетка" + +msgctxt "#30106" +msgid "Record minutes after end" +msgstr "Снимити минуте после краја" + +msgctxt "#30110" +msgid "Record Once" +msgstr "Сними Једном" + +msgctxt "#30111" +msgid "Record Daily (This program)" +msgstr "Снимај Дневно (Овај програм)" + +msgctxt "#30112" +msgid "Record Weekly" +msgstr "Снимај Недељно" + +msgctxt "#30113" +msgid "Record Weekends" +msgstr "Снимај Викенде" + +msgctxt "#30114" +msgid "Record Week Days" +msgstr "Снимај Данима у Недељи" + +msgctxt "#30120" +msgid "This time" +msgstr "Ово време" + +msgctxt "#30121" +msgid "Anytime" +msgstr "Било када" + +msgctxt "#30125" +msgid "This Channel" +msgstr "Овај Канал" + +msgctxt "#30126" +msgid "Any Channel" +msgstr "Било који Канал" + +msgctxt "#30130" +msgid "Until space needed" +msgstr "Док простор није потребан" + +msgctxt "#30131" +msgid "Until Watched" +msgstr "Док није Погледано" + msgctxt "#30132" msgid "Days" -msgstr "дана" +msgstr "Дана" msgctxt "#30133" msgid "Always" msgstr "Увек" + +msgctxt "#30135" +msgid "Backend default" +msgstr "Подразумевано позадине" + +msgctxt "#30136" +msgid "Kodi default" +msgstr "Kodi подразумевано" diff -Nru kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/resources/language/resource.language.sr_rs@latin/strings.po kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/resources/language/resource.language.sr_rs@latin/strings.po --- kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/resources/language/resource.language.sr_rs@latin/strings.po 2015-07-17 20:18:46.000000000 +0000 +++ kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/resources/language/resource.language.sr_rs@latin/strings.po 2016-01-17 16:39:23.000000000 +0000 @@ -16,26 +16,238 @@ "Language: sr_RS@latin\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +msgctxt "#30000" +msgid "Mediaportal Hostname" +msgstr "Mediaportal Hostname" + +msgctxt "#30001" +msgid "Mediaportal Kodi plugin Port" +msgstr "Port Mediaportal Kodi priključka" + +msgctxt "#30002" +msgid "Free-to-air only" +msgstr "Samo nekodirani" + msgctxt "#30003" msgid "Include Radio" -msgstr "Укључи радио" +msgstr "Uključi Radio" + +msgctxt "#30004" +msgid "Fast channel switching (don't stop timeshift)" +msgstr "Brza promena kanala (ne zaustavljaj vremenski pomeraj)" msgctxt "#30005" msgid "Connect timeout (s)" -msgstr "Истек времена за повезивање (с)" +msgstr "Istek vremena za povezivanje (s)" + +msgctxt "#30006" +msgid "Import only TV Channels from group" +msgstr "Uvezi samo TV Kanale iz grupe" + +msgctxt "#30007" +msgid "Import only Radio Channels from group" +msgstr "Uvezi samo Radio Kanale iz grupe" + +msgctxt "#30008" +msgid "Convert hostname to IP-adress" +msgstr "Pretvori hostname u IP-adresu" + +msgctxt "#30009" +msgid "EPG: Read genre strings (slow)" +msgstr "EPG: Čitaj stringove žanra (sporo)" + +msgctxt "#30010" +msgid "Wait time after tuning a channel (ms)" +msgstr "Vreme čekanja nakon promene kanala (ms)" + +msgctxt "#30015" +msgid "Streaming method" +msgstr "Metod strimovanja" + +msgctxt "#30016" +msgid "Windows user account (SMB)" +msgstr "Windows korisnički nalog (SMB)" + +msgctxt "#30017" +msgid "Windows password (SMB)" +msgstr "Windows lozinka (SMB)" + +msgctxt "#30018" +msgid "Use RTSP streaming" +msgstr "Koristi RTSP strimovanje" + +msgctxt "#30040" +msgid "Connection" +msgstr "Veza" + +msgctxt "#30041" +msgid "MediaPortal" +msgstr "MediaPortal" msgctxt "#30042" msgid "Playback" msgstr "Reprodukcija" +msgctxt "#30050" +msgid "Your TVServerKodi version '%s' is too old. Please upgrade to '%s' or higher!" +msgstr "Vaša verzija TVServerKodi '%s' je previše stara. Molimo, ažurirajte na '%s' ili više!" + +msgctxt "#30051" +msgid "Your TVServerKodi version is too old. Please upgrade to '%s' or higher!" +msgstr "Vaša verzija TVServerKodi je previše stara. Molimo, ažurirajte na '%s' ili više!" + +msgctxt "#30052" +msgid "Recording playback failed. Empty URL of filename." +msgstr "Snimanje reprodukcije neuspelo. Prazan URL ili ime datoteke." + +msgctxt "#30060" +msgid "All cards are busy" +msgstr "Sve karte su zauzete" + +msgctxt "#30061" +msgid "Channel is scrambled" +msgstr "Kanal je kodiran" + +msgctxt "#30062" +msgid "No video or audio detected" +msgstr "Video ili audio nisu otkriveni" + +msgctxt "#30063" +msgid "No signal detected" +msgstr "Signal nije otkriven" + +msgctxt "#30064" +msgid "Unknown error" +msgstr "Nepoznata greška" + +msgctxt "#30065" +msgid "Unable to start graph" +msgstr "Nije moguće pokretanje grafika" + +msgctxt "#30066" +msgid "Unknown channel" +msgstr "Nepoznati kanal" + +msgctxt "#30067" +msgid "No tuning details" +msgstr "Nema detalja o promeni" + +msgctxt "#30068" +msgid "Channel is not mapped to any card" +msgstr "Kanal nije mapiran ni na jednoj karti" + +msgctxt "#30069" +msgid "Card is disabled" +msgstr "Karta je onemogućena" + +msgctxt "#30070" +msgid "Connection to slave failed" +msgstr "Veza sa slejvom neuspela" + +msgctxt "#30071" +msgid "Not the owner" +msgstr "Ne vlasnik" + +msgctxt "#30072" +msgid "Graph building failed" +msgstr "Neuspelo pravljenje grafika" + +msgctxt "#30073" +msgid "SW Encoder missing" +msgstr "Nedostaje SW Koder" + +msgctxt "#30074" +msgid "No free disk space" +msgstr "Nema slobodnog prostora na disku" + +msgctxt "#30075" +msgid "No PMT found" +msgstr "PMT nije pronađen" + +msgctxt "#30100" +msgid "Schedule settings" +msgstr "Podešavanja rasporeda" + +msgctxt "#30101" +msgid "Frequency" +msgstr "Frekvencija" + +msgctxt "#30102" +msgid "Airtime" +msgstr "Vreme emitovanja" + msgctxt "#30103" msgid "Channels" msgstr "Kanali" +msgctxt "#30104" +msgid "Keep" +msgstr "Zadržati" + +msgctxt "#30105" +msgid "Record minutes before start" +msgstr "Snimiti minute pre početka" + +msgctxt "#30106" +msgid "Record minutes after end" +msgstr "Snimiti minute posle kraja" + +msgctxt "#30110" +msgid "Record Once" +msgstr "Snimi Jednom" + +msgctxt "#30111" +msgid "Record Daily (This program)" +msgstr "Snimaj Dnevno (Ovaj program)" + +msgctxt "#30112" +msgid "Record Weekly" +msgstr "Snimaj Nedeljno" + +msgctxt "#30113" +msgid "Record Weekends" +msgstr "Snimaj Vikende" + +msgctxt "#30114" +msgid "Record Week Days" +msgstr "Snimaj Danima u Nedelji" + +msgctxt "#30120" +msgid "This time" +msgstr "Ovo vreme" + +msgctxt "#30121" +msgid "Anytime" +msgstr "Bilo kada" + +msgctxt "#30125" +msgid "This Channel" +msgstr "Ovaj Kanal" + +msgctxt "#30126" +msgid "Any Channel" +msgstr "Bilo koji Kanal" + +msgctxt "#30130" +msgid "Until space needed" +msgstr "Dok prostor nije potreban" + +msgctxt "#30131" +msgid "Until Watched" +msgstr "Dok nije Pogledano" + msgctxt "#30132" msgid "Days" -msgstr "dana" +msgstr "Dana" msgctxt "#30133" msgid "Always" msgstr "Uvek" + +msgctxt "#30135" +msgid "Backend default" +msgstr "Podrazumevano pozadine" + +msgctxt "#30136" +msgid "Kodi default" +msgstr "Kodi podrazumevano" diff -Nru kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/resources/language/resource.language.th_th/strings.po kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/resources/language/resource.language.th_th/strings.po --- kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/resources/language/resource.language.th_th/strings.po 2015-07-17 20:18:46.000000000 +0000 +++ kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/resources/language/resource.language.th_th/strings.po 2016-01-17 16:39:23.000000000 +0000 @@ -20,6 +20,10 @@ msgid "Connect timeout (s)" msgstr "ระยะเวลาหยุดการเชื่อมต่อ (วิ)" +msgctxt "#30040" +msgid "Connection" +msgstr "การเชื่อมต่อ" + msgctxt "#30042" msgid "Playback" msgstr "เล่นเพลง" @@ -40,6 +44,10 @@ msgid "Keep" msgstr "คงไว้" +msgctxt "#30110" +msgid "Record Once" +msgstr "บันทึกทันที" + msgctxt "#30132" msgid "Days" msgstr "วัน" diff -Nru kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/resources/language/resource.language.zh_tw/strings.po kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/resources/language/resource.language.zh_tw/strings.po --- kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/resources/language/resource.language.zh_tw/strings.po 2015-07-17 20:18:46.000000000 +0000 +++ kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/resources/language/resource.language.zh_tw/strings.po 2016-01-17 16:39:23.000000000 +0000 @@ -164,6 +164,10 @@ msgid "No PMT found" msgstr "找不到PMT" +msgctxt "#30101" +msgid "Frequency" +msgstr "頻率" + msgctxt "#30102" msgid "Airtime" msgstr "播放時間" @@ -176,6 +180,18 @@ msgid "Keep" msgstr "保留" +msgctxt "#30121" +msgid "Anytime" +msgstr "任何時間" + +msgctxt "#30125" +msgid "This Channel" +msgstr "此頻道" + +msgctxt "#30126" +msgid "Any Channel" +msgstr "任何頻道" + msgctxt "#30132" msgid "Days" msgstr "天" @@ -183,3 +199,11 @@ msgctxt "#30133" msgid "Always" msgstr "總是" + +msgctxt "#30135" +msgid "Backend default" +msgstr "後端預設值" + +msgctxt "#30136" +msgid "Kodi default" +msgstr "Kodi 預設值" diff -Nru kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/resources/settings.xml kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/resources/settings.xml --- kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/resources/settings.xml 2015-07-17 20:18:46.000000000 +0000 +++ kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/resources/settings.xml 2016-01-17 16:39:23.000000000 +0000 @@ -2,7 +2,7 @@ - + @@ -16,6 +16,7 @@ + diff -Nru kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/TVServerKodi/readme.txt kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/TVServerKodi/readme.txt --- kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/TVServerKodi/readme.txt 1970-01-01 00:00:00.000000000 +0000 +++ kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/TVServerKodi/readme.txt 2016-01-17 16:39:23.000000000 +0000 @@ -0,0 +1 @@ +Download the latest version from http://www.scintilla.utwente.nl/~marcelg/xbmc/tvserverxbmc.html \ No newline at end of file diff -Nru kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/TVServerXBMC/readme.txt kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/TVServerXBMC/readme.txt --- kodi-pvr-mediaportal-tvserver-1.10.9/pvr.mediaportal.tvserver/TVServerXBMC/readme.txt 2015-07-17 20:18:46.000000000 +0000 +++ kodi-pvr-mediaportal-tvserver-1.12.0/pvr.mediaportal.tvserver/TVServerXBMC/readme.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Download the latest version from http://www.scintilla.utwente.nl/~marcelg/xbmc/tvserverxbmc.html \ No newline at end of file diff -Nru kodi-pvr-mediaportal-tvserver-1.10.9/src/addon_version.h.in kodi-pvr-mediaportal-tvserver-1.12.0/src/addon_version.h.in --- kodi-pvr-mediaportal-tvserver-1.10.9/src/addon_version.h.in 1970-01-01 00:00:00.000000000 +0000 +++ kodi-pvr-mediaportal-tvserver-1.12.0/src/addon_version.h.in 2016-01-17 16:39:23.000000000 +0000 @@ -0,0 +1,2 @@ +/* This file is generated by CMake */ +#define PVRCLIENT_MEDIAPORTAL_VERSION_STRING "${MPTV_VERSION}" diff -Nru kodi-pvr-mediaportal-tvserver-1.10.9/src/client.cpp kodi-pvr-mediaportal-tvserver-1.12.0/src/client.cpp --- kodi-pvr-mediaportal-tvserver-1.10.9/src/client.cpp 2015-07-17 20:18:46.000000000 +0000 +++ kodi-pvr-mediaportal-tvserver-1.12.0/src/client.cpp 2016-01-17 16:39:23.000000000 +0000 @@ -38,6 +38,7 @@ bool g_bHandleMessages = DEFAULT_HANDLE_MSG; ///< Send VDR's OSD status messages to XBMC OSD bool g_bResolveRTSPHostname = DEFAULT_RESOLVE_RTSP_HOSTNAME; ///< Resolve the server hostname in the rtsp URLs to an IP at the TV Server side (default: false) bool g_bReadGenre = DEFAULT_READ_GENRE; ///< Read the genre strings from MediaPortal and translate them into XBMC DVB genre id's (only English) +bool g_bEnableOldSeriesDlg = false; ///< Show the old pre-Jarvis series recording dialog CStdString g_szTVGroup = DEFAULT_TVGROUP; ///< Import only TV channels from this TV Server TV group CStdString g_szRadioGroup = DEFAULT_RADIOGROUP; ///< Import only radio channels from this TV Server radio group std::string g_szSMBusername = DEFAULT_SMBUSERNAME; ///< Windows user account used to access share @@ -259,6 +260,14 @@ g_bReadGenre = DEFAULT_READ_GENRE; } + /* Read setting "readgenre" from settings.xml */ + if (!XBMC->GetSetting("enableoldseriesdlg", &g_bEnableOldSeriesDlg)) + { + /* If setting is unknown fallback to defaults */ + XBMC->Log(LOG_ERROR, "Couldn't get 'enableoldseriesdlg' setting, falling back to 'false' as default"); + g_bEnableOldSeriesDlg = false; + } + /* Read setting "sleeponrtspurl" from settings.xml */ if (!XBMC->GetSetting("sleeponrtspurl", &g_iSleepOnRTSPurl)) { @@ -308,7 +317,7 @@ XBMC->Log(LOG_DEBUG, "settings: streamingmethod: %s, usertsp=%i", (( g_eStreamingMethod == TSReader) ? "TSReader" : "ffmpeg"), (int) g_bUseRTSP); XBMC->Log(LOG_DEBUG, "settings: host='%s', port=%i, timeout=%i", g_szHostname.c_str(), g_iPort, g_iConnectTimeout); XBMC->Log(LOG_DEBUG, "settings: ftaonly=%i, useradio=%i, tvgroup='%s', radiogroup='%s'", (int) g_bOnlyFTA, (int) g_bRadioEnabled, g_szTVGroup.c_str(), g_szRadioGroup.c_str()); - XBMC->Log(LOG_DEBUG, "settings: readgenre=%i, sleeponrtspurl=%i", (int) g_bReadGenre, g_iSleepOnRTSPurl); + XBMC->Log(LOG_DEBUG, "settings: readgenre=%i, enableoldseriesdlg=%i, sleeponrtspurl=%i", (int)g_bReadGenre, (int)g_bEnableOldSeriesDlg, g_iSleepOnRTSPurl); XBMC->Log(LOG_DEBUG, "settings: resolvertsphostname=%i", (int) g_bResolveRTSPHostname); XBMC->Log(LOG_DEBUG, "settings: fastchannelswitch=%i", (int) g_bFastChannelSwitch); XBMC->Log(LOG_DEBUG, "settings: smb user='%s', pass=%s", g_szSMBusername.c_str(), (g_szSMBpassword.length() > 0 ? "" : "")); @@ -381,6 +390,11 @@ XBMC->Log(LOG_INFO, "Changed setting 'readgenre' from %u to %u", g_bReadGenre, *(bool*) settingValue); g_bReadGenre = *(bool*) settingValue; } + else if (str == "enableoldseriesdlg") + { + XBMC->Log(LOG_INFO, "Changed setting 'enableoldseriesdlg' from %u to %u", g_bEnableOldSeriesDlg, *(bool*)settingValue); + g_bEnableOldSeriesDlg = *(bool*)settingValue; + } else if (str == "sleeponrtspurl") { XBMC->Log(LOG_INFO, "Changed setting 'sleeponrtspurl' from %u to %u", g_iSleepOnRTSPurl, *(int*) settingValue); @@ -479,7 +493,6 @@ pCapabilities->bSupportsChannelScan = false; pCapabilities->bSupportsRecordingPlayCount = (g_iTVServerXBMCBuild < 117) ? false : true; pCapabilities->bSupportsLastPlayedPosition = (g_iTVServerXBMCBuild < 121) ? false : true; - pCapabilities->bSupportsRecordingFolders = false; // Don't show the timer directory field. This does not influence the displaying directories in the recordings list. return PVR_ERROR_NO_ERROR; } @@ -702,6 +715,14 @@ /*******************************************/ /** PVR Timer Functions **/ +PVR_ERROR GetTimerTypes(PVR_TIMER_TYPE types[], int *size) +{ + if (!g_client) + return PVR_ERROR_SERVER_ERROR; + else + return g_client->GetTimerTypes(types, size); +} + int GetTimersAmount(void) { if (!g_client) @@ -909,6 +930,7 @@ time_t GetPlayingTime() { return 0; } time_t GetBufferTimeStart() { return 0; } time_t GetBufferTimeEnd() { return 0; } +bool IsTimeshifting(void) { return false; } PVR_ERROR UndeleteRecording(const PVR_RECORDING& recording) { return PVR_ERROR_NOT_IMPLEMENTED; } PVR_ERROR DeleteAllRecordingsFromTrash() { return PVR_ERROR_NOT_IMPLEMENTED; } } //end extern "C" diff -Nru kodi-pvr-mediaportal-tvserver-1.10.9/src/client.h kodi-pvr-mediaportal-tvserver-1.12.0/src/client.h --- kodi-pvr-mediaportal-tvserver-1.10.9/src/client.h 2015-07-17 20:18:46.000000000 +0000 +++ kodi-pvr-mediaportal-tvserver-1.12.0/src/client.h 2016-01-17 16:39:23.000000000 +0000 @@ -64,6 +64,7 @@ extern bool g_bHandleMessages; extern bool g_bResolveRTSPHostname; extern bool g_bReadGenre; +extern bool g_bEnableOldSeriesDlg; extern bool g_bFastChannelSwitch; extern bool g_bUseRTSP; ///< Use RTSP streaming when using the tsreader extern CStdString g_szTVGroup; diff -Nru kodi-pvr-mediaportal-tvserver-1.10.9/src/epg.cpp kodi-pvr-mediaportal-tvserver-1.12.0/src/epg.cpp --- kodi-pvr-mediaportal-tvserver-1.10.9/src/epg.cpp 2015-07-17 20:18:46.000000000 +0000 +++ kodi-pvr-mediaportal-tvserver-1.12.0/src/epg.cpp 2016-01-17 16:39:23.000000000 +0000 @@ -48,7 +48,7 @@ m_episodePart.clear(); m_episodeName.clear(); - m_uid = 0; + m_uid = PVR_TIMER_NO_EPG_UID; // 0 is defined as invalid EPG id according to the PVR_TIMER definitions m_originalAirDate = 0; m_duration = 0; m_genre_type = 0; @@ -108,7 +108,7 @@ if( epgfields.size() >= 15 ) { // Since TVServerXBMC v1.x.x.104 - m_uid = (unsigned int) atol(epgfields[5].c_str()); + m_uid = (unsigned int) cKodiEpgIndexOffset + atol(epgfields[5].c_str()); m_seriesNumber = atoi(epgfields[7].c_str()); m_episodeNumber = atoi(epgfields[8].c_str()); m_episodeName = epgfields[9]; diff -Nru kodi-pvr-mediaportal-tvserver-1.10.9/src/epg.h kodi-pvr-mediaportal-tvserver-1.12.0/src/epg.h --- kodi-pvr-mediaportal-tvserver-1.10.9/src/epg.h 2015-07-17 20:18:46.000000000 +0000 +++ kodi-pvr-mediaportal-tvserver-1.12.0/src/epg.h 2016-01-17 16:39:23.000000000 +0000 @@ -31,6 +31,8 @@ #include "GenreTable.h" #include "DateTime.h" +const int cKodiEpgIndexOffset = (PVR_TIMER_NO_EPG_UID + 1); ///> Offset used to map the MediaPortal schedule id's to the iClientIndex values + class cEpg { @@ -59,7 +61,7 @@ void Reset(); bool ParseLine(std::string& data); - int UniqueId(void) const { return m_uid; } + unsigned int UniqueId(void) const { return m_uid; } time_t StartTime(void) const; time_t EndTime(void) const; time_t Duration(void) const { return m_duration; } diff -Nru kodi-pvr-mediaportal-tvserver-1.10.9/src/lib/tsreader/CMakeLists.txt kodi-pvr-mediaportal-tvserver-1.12.0/src/lib/tsreader/CMakeLists.txt --- kodi-pvr-mediaportal-tvserver-1.10.9/src/lib/tsreader/CMakeLists.txt 2015-07-17 20:18:46.000000000 +0000 +++ kodi-pvr-mediaportal-tvserver-1.12.0/src/lib/tsreader/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,43 +0,0 @@ -PROJECT(TSReader) - -ENABLE_LANGUAGE(CXX) - -CMAKE_MINIMUM_REQUIRED(VERSION 2.6) - -include_directories(../..) - -# Source files -SET(SOURCES ChannelInfo.cpp - DeMultiplexer.cpp - DvbUtil.cpp - FileReader.cpp - MemoryReader.cpp - MultiFileReader.cpp - PacketSync.cpp - PatParser.cpp - PidTable.cpp - PmtParser.cpp - Section.cpp - SectionDecoder.cpp - TSHeader.cpp - TSReader.cpp) - -# Header files -SET(HEADERS ChannelInfo.h - DeMultiplexer.h - DvbUtil.h - FileReader.h - MemoryReader.h - MultiFileReader.h - PacketSync.h - PatParser.h - PidTable.h - PmtParser.h - Section.h - SectionDecoder.h - TSDebug.h - TSHeader.h - TSReader.h) -SOURCE_GROUP("Header Files" FILES ${HEADERS}) - -ADD_LIBRARY(tsreader STATIC ${HEADERS} ${SOURCES}) diff -Nru kodi-pvr-mediaportal-tvserver-1.10.9/src/pvrclient-mediaportal.cpp kodi-pvr-mediaportal-tvserver-1.12.0/src/pvrclient-mediaportal.cpp --- kodi-pvr-mediaportal-tvserver-1.10.9/src/pvrclient-mediaportal.cpp 2015-07-17 20:18:46.000000000 +0000 +++ kodi-pvr-mediaportal-tvserver-1.12.0/src/pvrclient-mediaportal.cpp 2016-01-17 16:39:23.000000000 +0000 @@ -43,13 +43,13 @@ /* Globals */ int g_iTVServerXBMCBuild = 0; -/* PVR client version (don't forget to update also the addon.xml and the Changelog.txt files) */ -#define PVRCLIENT_MEDIAPORTAL_VERSION_STRING "1.10.7" +/* Include the PVR addon version (CMake generated from addon.xml) */ +#include "addon_version.h" /* TVServerXBMC plugin supported versions */ #define TVSERVERXBMC_MIN_VERSION_STRING "1.1.7.107" #define TVSERVERXBMC_MIN_VERSION_BUILD 107 -#define TVSERVERXBMC_RECOMMENDED_VERSION_STRING "1.2.3.122 till 1.10.0.127" +#define TVSERVERXBMC_RECOMMENDED_VERSION_STRING "1.2.3.122 till 1.12.0.130" #define TVSERVERXBMC_RECOMMENDED_VERSION_BUILD 127 /************************************************************/ @@ -79,6 +79,7 @@ XBMC->Log(LOG_DEBUG, "->~cPVRClientMediaPortal()"); if (m_bConnected) Disconnect(); + SAFE_DELETE(Timer::lifetimeValues); SAFE_DELETE(m_tcpclient); SAFE_DELETE(m_genretable); } @@ -246,6 +247,9 @@ LoadGenreTable(); LoadCardSettings(); + /* Generate the recording life time strings */ + Timer::lifetimeValues = new cLifeTimeValues(); + /* The pvr addon cannot access XBMC's current locale settings, so just use the system default */ setlocale(LC_ALL, ""); @@ -511,6 +515,7 @@ broadcast.iEpisodeNumber = epg.EpisodeNumber(); broadcast.iEpisodePartNumber = atoi(epg.EpisodePart()); broadcast.strEpisodeName = epg.EpisodeName(); + broadcast.iFlags = EPG_TAG_FLAG_UNDEFINED; PVR->TransferEpgEntry(handle, &broadcast); } @@ -976,6 +981,8 @@ tag.iGenreSubType = recording.GenreSubType(); tag.iPlayCount = recording.TimesWatched(); tag.iLastPlayedPosition = recording.LastPlayedPosition(); + tag.iEpisodeNumber = recording.GetEpisodeNumber(); + tag.iSeriesNumber = recording.GetSeriesNumber(); strDirectory = recording.Directory(); if (strDirectory.length() > 0) @@ -1202,7 +1209,7 @@ if (!IsUp()) return PVR_ERROR_SERVER_ERROR; - result = SendCommand("ListSchedules:\n"); + result = SendCommand("ListSchedules:True\n"); if (result.length() > 0) { @@ -1218,6 +1225,7 @@ XBMC->Log(LOG_DEBUG, "SCHEDULED: %s", data.c_str() ); cTimer timer; + timer.SetGenreTable(m_genretable); if(timer.ParseLine(data.c_str()) == true) { @@ -1263,6 +1271,108 @@ return PVR_ERROR_NO_ERROR; } +PVR_ERROR cPVRClientMediaPortal::GetTimerTypes(PVR_TIMER_TYPE types[], int *size) +{ + int maxsize = *size; // the size of the types[] array when this functon is called + int& count = *size; // the amount of filled items in the types[] array + count = 0; + + if (count > maxsize) + return PVR_ERROR_NO_ERROR; + + //Note: schedule priority support is not implemented here + // The MediaPortal TV Server database has a priority field but their wiki + // says: "This feature is yet to be enabled". + + // One-shot epg-based (maps to MediaPortal 'Once') + memset(&types[count], 0, sizeof(types[count])); + types[count].iId = cKodiTimerTypeOffset + TvDatabase::Once; + types[count].iAttributes = MPTV_RECORD_ONCE; + PVR_STRCPY(types[count].strDescription, XBMC->GetLocalizedString(30110)); /* Record once */ + Timer::lifetimeValues->SetLifeTimeValues(types[count]); + count++; + + if (count > maxsize) + return PVR_ERROR_NO_ERROR; + + // Series weekly epg-based (maps to MediaPortal 'EveryTimeOnThisChannel') + memset(&types[count], 0, sizeof(types[count])); + types[count].iId = cKodiTimerTypeOffset + TvDatabase::EveryTimeOnThisChannel; + types[count].iAttributes = MPTV_RECORD_EVERY_TIME_ON_THIS_CHANNEL; + PVR_STRCPY(types[count].strDescription, XBMC->GetLocalizedString(30115)); /* Record every time on this channel */ + Timer::lifetimeValues->SetLifeTimeValues(types[count]); + count++; + + if (count > maxsize) + return PVR_ERROR_NO_ERROR; + + // Series weekly epg-based (maps to MediaPortal 'EveryTimeOnEveryChannel') + memset(&types[count], 0, sizeof(types[count])); + types[count].iId = cKodiTimerTypeOffset + TvDatabase::EveryTimeOnEveryChannel; + types[count].iAttributes = MPTV_RECORD_EVERY_TIME_ON_EVERY_CHANNEL; + PVR_STRCPY(types[count].strDescription, XBMC->GetLocalizedString(30116)); /* Record every time on every channel */ + Timer::lifetimeValues->SetLifeTimeValues(types[count]); + count++; + + if (count > maxsize) + return PVR_ERROR_NO_ERROR; + + // Series weekly epg-based (maps to MediaPortal 'Weekly') + memset(&types[count], 0, sizeof(types[count])); + types[count].iId = cKodiTimerTypeOffset + TvDatabase::Weekly; + types[count].iAttributes = MPTV_RECORD_WEEKLY; + PVR_STRCPY(types[count].strDescription, XBMC->GetLocalizedString(30117)); /* "Record every week at this time" */ + Timer::lifetimeValues->SetLifeTimeValues(types[count]); + count++; + + if (count > maxsize) + return PVR_ERROR_NO_ERROR; + + // Series daily epg-based (maps to MediaPortal 'Daily') + memset(&types[count], 0, sizeof(types[count])); + types[count].iId = cKodiTimerTypeOffset + TvDatabase::Daily; + types[count].iAttributes = MPTV_RECORD_DAILY; + PVR_STRCPY(types[count].strDescription, XBMC->GetLocalizedString(30118)); /* Record every day at this time */ + Timer::lifetimeValues->SetLifeTimeValues(types[count]); + count++; + + if (count > maxsize) + return PVR_ERROR_NO_ERROR; + + // Series Weekends epg-based (maps to MediaPortal 'WorkingDays') + memset(&types[count], 0, sizeof(types[count])); + types[count].iId = cKodiTimerTypeOffset + TvDatabase::WorkingDays; + types[count].iAttributes = MPTV_RECORD_WORKING_DAYS; + PVR_STRCPY(types[count].strDescription, XBMC->GetLocalizedString(30114)); /* Record weekdays */ + Timer::lifetimeValues->SetLifeTimeValues(types[count]); + count++; + + if (count > maxsize) + return PVR_ERROR_NO_ERROR; + + // Series Weekends epg-based (maps to MediaPortal 'Weekends') + memset(&types[count], 0, sizeof(types[count])); + types[count].iId = cKodiTimerTypeOffset + TvDatabase::Weekends; + types[count].iAttributes = MPTV_RECORD_WEEEKENDS; + PVR_STRCPY(types[count].strDescription, XBMC->GetLocalizedString(30113)); /* Record Weekends */ + Timer::lifetimeValues->SetLifeTimeValues(types[count]); + count++; + + if (count > maxsize) + return PVR_ERROR_NO_ERROR; + + // Series weekly epg-based (maps to MediaPortal 'WeeklyEveryTimeOnThisChannel') + memset(&types[count], 0, sizeof(types[count])); + types[count].iId = cKodiTimerTypeOffset + TvDatabase::WeeklyEveryTimeOnThisChannel; + types[count].iAttributes = MPTV_RECORD_WEEKLY_EVERY_TIME_ON_THIS_CHANNEL; + PVR_STRCPY(types[count].strDescription, XBMC->GetLocalizedString(30119)); /* Weekly on this channel */ + Timer::lifetimeValues->SetLifeTimeValues(types[count]); + count++; + + return PVR_ERROR_NO_ERROR; +} + + PVR_ERROR cPVRClientMediaPortal::AddTimer(const PVR_TIMER &timerinfo) { string result; @@ -1278,7 +1388,10 @@ cTimer timer(timerinfo); - if ((timerinfo.startTime > 0) && (timerinfo.iEpgUid != -1)) + if (g_bEnableOldSeriesDlg && (timerinfo.startTime > 0) && + (timerinfo.iEpgUid != PVR_TIMER_NO_EPG_UID) && + ((timerinfo.iTimerType - cKodiTimerTypeOffset) == (unsigned int) TvDatabase::Once) + ) { /* New scheduled recording, not an instant or manual recording * Present a custom dialog with advanced recording settings @@ -1326,6 +1439,17 @@ if (!IsUp()) return PVR_ERROR_SERVER_ERROR; + // Check if this timer has a parent schedule and a program id + // When true, it has no real schedule at the Mediaportal side. + // The best we can do in that case is disable the timer for this program only + if ((timer.iParentClientIndex > 0) && (timer.iEpgUid > 0)) + { + // Don't delete this timer, but disable it only + PVR_TIMER disableMe = timer; + disableMe.state = PVR_TIMER_STATE_DISABLED; + return UpdateTimer(disableMe); + } + cTimer mepotimer(timer); snprintf(command, 256, "DeleteSchedule:%i\n", mepotimer.Index()); diff -Nru kodi-pvr-mediaportal-tvserver-1.10.9/src/pvrclient-mediaportal.h kodi-pvr-mediaportal-tvserver-1.12.0/src/pvrclient-mediaportal.h --- kodi-pvr-mediaportal-tvserver-1.10.9/src/pvrclient-mediaportal.h 2015-07-17 20:18:46.000000000 +0000 +++ kodi-pvr-mediaportal-tvserver-1.12.0/src/pvrclient-mediaportal.h 2016-01-17 16:39:23.000000000 +0000 @@ -85,6 +85,7 @@ PVR_ERROR AddTimer(const PVR_TIMER &timer); PVR_ERROR DeleteTimer(const PVR_TIMER &timer, bool bForceDelete = false); PVR_ERROR UpdateTimer(const PVR_TIMER &timer); + PVR_ERROR GetTimerTypes(PVR_TIMER_TYPE types[], int *size); /* Live stream handling */ bool OpenLiveStream(const PVR_CHANNEL &channel); diff -Nru kodi-pvr-mediaportal-tvserver-1.10.9/src/recordings.cpp kodi-pvr-mediaportal-tvserver-1.12.0/src/recordings.cpp --- kodi-pvr-mediaportal-tvserver-1.10.9/src/recordings.cpp 2015-07-17 20:18:46.000000000 +0000 +++ kodi-pvr-mediaportal-tvserver-1.12.0/src/recordings.cpp 2016-01-17 16:39:23.000000000 +0000 @@ -306,3 +306,27 @@ { return m_duration; } + +int cRecording::GetSeriesNumber(void) const +{ + // From xbmc_pvr_types.h: + // series number (usually called season). + // Set to "0" for specials/pilot. + // For 'invalid' see iEpisodeNumber or set to -1 + if (m_seriesNumber.empty()) + return -1; + + return atoi(m_seriesNumber.c_str()); +} + +int cRecording::GetEpisodeNumber(void) const +{ + // From xbmc_pvr_types.h: + // episode number within the "iSeriesNumber" season. + // For 'invalid' set to -1 or iSeriesNumber=iEpisodeNumber=0 + // to show both are invalid */ + if (m_episodeNumber.empty()) + return -1; + + return atoi(m_episodeNumber.c_str()); +} diff -Nru kodi-pvr-mediaportal-tvserver-1.10.9/src/recordings.h kodi-pvr-mediaportal-tvserver-1.12.0/src/recordings.h --- kodi-pvr-mediaportal-tvserver-1.10.9/src/recordings.h 2015-07-17 20:18:46.000000000 +0000 +++ kodi-pvr-mediaportal-tvserver-1.12.0/src/recordings.h 2016-01-17 16:39:23.000000000 +0000 @@ -131,4 +131,14 @@ int GenreType(void) const { return m_genre_type; } int GenreSubType(void) const { return m_genre_subtype; } void SetGenreTable(CGenreTable* genremap); + + /** + * \brief Returns the series number as an integer value. Returns -1 when this field is empty. + */ + int GetSeriesNumber(void) const; + + /** + * \brief Returns the episode number as an integer value. Returns -1 when this field is empty. + */ + int GetEpisodeNumber(void) const; }; diff -Nru kodi-pvr-mediaportal-tvserver-1.10.9/src/timers.cpp kodi-pvr-mediaportal-tvserver-1.12.0/src/timers.cpp --- kodi-pvr-mediaportal-tvserver-1.10.9/src/timers.cpp 2015-07-17 20:18:46.000000000 +0000 +++ kodi-pvr-mediaportal-tvserver-1.12.0/src/timers.cpp 2016-01-17 16:39:23.000000000 +0000 @@ -28,6 +28,7 @@ #include "timers.h" #include "utils.h" #include "DateTime.h" +#include "epg.h" using namespace ADDON; using namespace MPTV; @@ -36,7 +37,7 @@ m_keepDate(cUndefinedDate), m_canceled(cUndefinedDate) { - m_index = -1; + m_index = PVR_TIMER_NO_CLIENT_INDEX; m_active = true; m_channel = 0; m_schedtype = TvDatabase::Once; @@ -49,43 +50,37 @@ m_ismanual = false; m_isrecording = false; m_progid = -1; + m_genretable = NULL; + m_parentScheduleID = MPTV_NO_PARENT_SCHEDULE; } cTimer::cTimer(const PVR_TIMER& timerinfo) { - m_index = timerinfo.iClientIndex; - m_progid = timerinfo.iEpgUid; + m_index = timerinfo.iClientIndex - cKodiTimerIndexOffset; + m_progid = timerinfo.iEpgUid - cKodiEpgIndexOffset; - if(strlen(timerinfo.strDirectory) > 0) - { - // Workaround: retrieve the schedule id from the directory name if set - int schedule_id = 0; - unsigned int program_id = 0; + m_parentScheduleID = timerinfo.iParentClientIndex - cKodiTimerIndexOffset; - if (sscanf(timerinfo.strDirectory, "%9d/%9u", &schedule_id, &program_id) == 2) - { - if (program_id == timerinfo.iClientIndex) - { - m_index = schedule_id; - m_progid = program_id; - } - } + if (m_index >= MPTV_REPEAT_NO_SERIES_OFFSET) + { + m_index = m_parentScheduleID; } m_done = (timerinfo.state == PVR_TIMER_STATE_COMPLETED); - m_active = (timerinfo.state == PVR_TIMER_STATE_SCHEDULED || timerinfo.state == PVR_TIMER_STATE_RECORDING); + m_active = (timerinfo.state == PVR_TIMER_STATE_SCHEDULED || timerinfo.state == PVR_TIMER_STATE_RECORDING + || timerinfo.state == PVR_TIMER_STATE_CONFLICT_OK || timerinfo.state == PVR_TIMER_STATE_CONFLICT_NOK); if (!m_active) { + // Don't know when it was cancelled, so assume that it was canceled now... + // backend (TVServerXBMC) will only update the canceled date time when + // this schedule was just canceled m_canceled = CDateTime::Now(); } else { - // Don't know when it was cancelled, so assume that it was canceled now... - // backend (TVServerXBMC) will only update the canceled date time when - // this schedule was just canceled m_canceled = cUndefinedDate; } @@ -112,17 +107,16 @@ SetKeepMethod(timerinfo.iLifetime); - if(timerinfo.bIsRepeating) + m_schedtype = static_cast(timerinfo.iTimerType - cKodiTimerTypeOffset); + + if ((m_schedtype == TvDatabase::Once) && (timerinfo.iWeekdays != PVR_WEEKDAY_NONE)) // huh, still repeating? { + // Select the correct schedule type m_schedtype = RepeatFlags2SchedRecType(timerinfo.iWeekdays); - m_series = true; - } - else - { - m_schedtype = TvDatabase::Once; - m_series = false; } + m_series = (m_schedtype == TvDatabase::Once) ? false : true; + m_prerecordinterval = timerinfo.iMarginStart; m_postrecordinterval = timerinfo.iMarginEnd; } @@ -140,24 +134,19 @@ { memset(&tag, 0, sizeof(tag)); - if (m_progid != -1) + if (m_parentScheduleID != MPTV_NO_PARENT_SCHEDULE) { - // Use the EPG (program) id as unique id to see all scheduled programs in the EPG and timer list - // Next program (In Home) is always the right one. Mostly seen with programs that are shown daily. - tag.iClientIndex = m_progid; - tag.iEpgUid = m_index; - - // Workaround: store the schedule and program id as directory name - // This is needed by the PVR addon to map an XBMC timer back to the MediaPortal schedule - // because we can't use the iClientIndex as schedule id anymore... - snprintf(tag.strDirectory, sizeof(tag.strDirectory)-1, "%d/%d", m_index, m_progid); + /* Hack: use a different client index for Kodi since it does not accept multiple times the same schedule id + * This means that all programs scheduled via a series schedule in MediaPortal will get a different client + * index in Kodi. The iParentClientIndex will still point to the original id_Schedule in MediaPortal + */ + tag.iClientIndex = cKodiTimerIndexOffset + MPTV_REPEAT_NO_SERIES_OFFSET + cKodiEpgIndexOffset + m_progid; } else { - tag.iClientIndex = m_index; //Support older TVServer and Manual Schedule having a program name that does not have a match in MP EPG. - tag.iEpgUid = 0; - PVR_STRCLR(tag.strDirectory); + tag.iClientIndex = cKodiTimerIndexOffset + m_index; } + tag.iEpgUid = cKodiEpgIndexOffset + m_progid; if (IsRecording()) tag.state = PVR_TIMER_STATE_RECORDING; @@ -165,7 +154,15 @@ tag.state = PVR_TIMER_STATE_SCHEDULED; else tag.state = PVR_TIMER_STATE_CANCELLED; - tag.iClientChannelUid = m_channel; + + if (m_schedtype == TvDatabase::EveryTimeOnEveryChannel) + { + tag.iClientChannelUid = PVR_TIMER_ANY_CHANNEL; + } + else + { + tag.iClientChannelUid = m_channel; + } PVR_STRCPY(tag.strTitle, m_title.c_str()); tag.startTime = m_startTime.GetAsTime(); tag.endTime = m_endTime.GetAsTime(); @@ -174,18 +171,49 @@ // (only available for repeating timers). if(Repeat()) { - tag.firstDay = m_startTime.GetAsTime(); - } else { - tag.firstDay = 0; - } - tag.iPriority = Priority(); - tag.iLifetime = GetLifetime(); - tag.bIsRepeating = Repeat(); - tag.iWeekdays = RepeatFlags(); - tag.iMarginStart = m_prerecordinterval; - tag.iMarginEnd = m_postrecordinterval; - tag.iGenreType = 0; - tag.iGenreSubType = 0; + if (m_parentScheduleID != MPTV_NO_PARENT_SCHEDULE) + { + tag.firstDay = 0; + tag.iParentClientIndex = (unsigned int)(cKodiTimerIndexOffset + m_parentScheduleID); + tag.iWeekdays = PVR_WEEKDAY_NONE; + tag.iTimerType = cKodiTimerTypeOffset + (int) TvDatabase::Once; + tag.iClientChannelUid = m_channel; + } + else + { + tag.firstDay = m_startTime.GetAsTime(); + tag.iParentClientIndex = PVR_TIMER_NO_PARENT; + tag.iWeekdays = RepeatFlags(); + tag.iTimerType = cKodiTimerTypeOffset + (int) m_schedtype; + } + } + else + { + tag.firstDay = 0; + tag.iParentClientIndex = PVR_TIMER_NO_PARENT; + tag.iWeekdays = RepeatFlags(); + tag.iTimerType = cKodiTimerTypeOffset + (int) m_schedtype; + } + tag.iPriority = Priority(); + tag.iLifetime = GetLifetime(); + tag.iMarginStart = m_prerecordinterval; + tag.iMarginEnd = m_postrecordinterval; + if (m_genretable) + { + // genre string to genre type/subtype mapping + int genreType; + int genreSubType; + m_genretable->GenreToTypes(m_genre, genreType, genreSubType); + tag.iGenreType = genreType; + tag.iGenreSubType = genreSubType; + } + else + { + tag.iGenreType = 0; + tag.iGenreSubType = 0; + } + PVR_STRCPY(tag.strDirectory, m_directory.c_str()); + PVR_STRCPY(tag.strSummary, m_description.c_str()); } time_t cTimer::StartTime(void) const @@ -229,6 +257,9 @@ // field 16 = series (True/False) (TVServerXBMC build >= 100) // field 17 = isrecording (True/False) // field 18 = program id (EPG) + // field 19 = parent schedule id (TVServerKodi build >= 130) + // field 20 = genre of the program (TVServerKodi build >= 130) + // field 21 = program description (EPG) (TVServerKodi build >= 130) m_index = atoi(schedulefields[0].c_str()); if ( m_startTime.SetFromDateTime(schedulefields[1]) == false ) @@ -293,6 +324,19 @@ else m_progid = -1; + if (schedulefields.size() >= 22) + { + m_parentScheduleID = atoi(schedulefields[19].c_str()); + m_genre = schedulefields[20]; + m_description = schedulefields[21]; + } + else + { + m_parentScheduleID = MPTV_NO_PARENT_SCHEDULE; + m_genre.clear(); + m_description.clear(); + } + return true; } return false; @@ -300,8 +344,6 @@ int cTimer::SchedRecType2RepeatFlags(TvDatabase::ScheduleRecordingType schedtype) { - // margro: the meaning of the XBMC-PVR Weekdays field is undocumented. - // Assuming that VDR is the source for this field: // This field contains a bitmask that corresponds to the days of the week at which this timer runs // It is based on the VDR Day field format "MTWTF--" // The format is a 1 bit for every enabled day and a 0 bit for a disabled day @@ -314,10 +356,10 @@ switch (schedtype) { case TvDatabase::Once: - weekdays = 0; + weekdays = PVR_WEEKDAY_NONE; break; case TvDatabase::Daily: - weekdays = 127; // 0111 1111 + weekdays = PVR_WEEKDAY_ALLDAYS; // 0111 1111 break; case TvDatabase::Weekly: case TvDatabase::WeeklyEveryTimeOnThisChannel: @@ -337,20 +379,22 @@ } case TvDatabase::EveryTimeOnThisChannel: // Don't know what to do with this MediaPortal option? - weekdays = 127; // 0111 1111 (daily) + weekdays = PVR_WEEKDAY_ALLDAYS; // 0111 1111 (daily) break; case TvDatabase::EveryTimeOnEveryChannel: // Don't know what to do with this MediaPortal option? - weekdays = 127; // 0111 1111 (daily) + weekdays = PVR_WEEKDAY_ALLDAYS; // 0111 1111 (daily) break; case TvDatabase::Weekends: - weekdays = 96; // 0110 0000 + // 0110 0000 + weekdays = PVR_WEEKDAY_SATURDAY | PVR_WEEKDAY_SUNDAY; break; case TvDatabase::WorkingDays: - weekdays = 31; // 0001 1111 + // 0001 1111 + weekdays = PVR_WEEKDAY_MONDAY | PVR_WEEKDAY_TUESDAY | PVR_WEEKDAY_WEDNESDAY | PVR_WEEKDAY_THURSDAY | PVR_WEEKDAY_FRIDAY; break; default: - weekdays=0; + weekdays = PVR_WEEKDAY_NONE; } return weekdays; @@ -369,24 +413,24 @@ switch (repeatflags) { - case 0: + case PVR_WEEKDAY_NONE: return TvDatabase::Once; break; - case 1: //Monday - case 2: //Tuesday - case 4: //Wednesday - case 8: //Thursday - case 16: //Friday - case 32: //Saturday - case 64: //Sunday + case PVR_WEEKDAY_MONDAY: + case PVR_WEEKDAY_TUESDAY: + case PVR_WEEKDAY_WEDNESDAY: + case PVR_WEEKDAY_THURSDAY: + case PVR_WEEKDAY_FRIDAY: + case PVR_WEEKDAY_SATURDAY: + case PVR_WEEKDAY_SUNDAY: return TvDatabase::Weekly; break; - case 31: // 0001 1111 + case (PVR_WEEKDAY_MONDAY | PVR_WEEKDAY_TUESDAY | PVR_WEEKDAY_WEDNESDAY | PVR_WEEKDAY_THURSDAY | PVR_WEEKDAY_FRIDAY): // 0001 1111 return TvDatabase::WorkingDays; - case 96: // 0110 0000 + case (PVR_WEEKDAY_SATURDAY | PVR_WEEKDAY_SUNDAY): // 0110 0000 return TvDatabase::Weekends; break; - case 127: // 0111 1111 + case PVR_WEEKDAY_ALLDAYS: // 0111 1111 return TvDatabase::Daily; break; default: @@ -466,27 +510,23 @@ /* - * @brief Convert a XBMC Lifetime value to MediaPortals keepMethod+keepDate settings - * @param lifetime the XBMC lifetime value (in days) (following the VDR syntax) + * @brief Convert a Kodi Lifetime value to MediaPortals keepMethod+keepDate settings + * @param lifetime the Kodi lifetime value (in days) * Should be called after setting m_starttime !! */ void cTimer::SetKeepMethod(int lifetime) { - // XBMC follows the VDR definition of lifetime - // XBMC: 0 means that this recording may be automatically deleted - // at any time by a new recording with higher priority - // 1-98 means that this recording may not be automatically deleted - // in favour of a new recording, until the given number of days - // since the start time of the recording has passed by - // 99 means that this recording will never be automatically deleted + // Kodi keep methods: + // negative values: => special methods like Until Space Needed, Always, Until Watched + // positive values: days to keep the recording if (lifetime == 0) { m_keepmethod = TvDatabase::UntilSpaceNeeded; m_keepDate = cUndefinedDate; } - else if (lifetime == 99) + else if (lifetime < 0) { - m_keepmethod = TvDatabase::Always; + m_keepmethod = (TvDatabase::KeepMethodType) -lifetime; m_keepDate = cUndefinedDate; } else @@ -499,40 +539,28 @@ int cTimer::GetLifetime(void) { - // margro: the meaning of the XBMC-PVR Lifetime field is undocumented. - // Assuming that VDR is the source for this field: - // The guaranteed lifetime (in days) of a recording created by this - // timer. 0 means that this recording may be automatically deleted - // at any time by a new recording with higher priority. 99 means - // that this recording will never be automatically deleted. Any - // number in the range 1...98 means that this recording may not be - // automatically deleted in favour of a new recording, until the - // given number of days since the start time of the recording has - // passed by + // lifetime of recordings created by this timer. + // value > 0 = days after which recordings will be deleted by the backend, + // value < 0 addon defined integer list reference, + // value == 0 disabled switch (m_keepmethod) { case TvDatabase::UntilSpaceNeeded: //until space needed + return -MPTV_KEEP_UNTIL_SPACE_NEEDED; + break; case TvDatabase::UntilWatched: //until watched - return 0; + return -MPTV_KEEP_UNTIL_WATCHED; break; case TvDatabase::TillDate: //until keepdate { int diffseconds = m_keepDate - m_startTime; int daysremaining = (int)(diffseconds / cSecsInDay); // Calculate value in the range 1...98, based on m_keepdate - if (daysremaining < 99) - { - return daysremaining; - } - else - { - // > 98 days => return forever - return 99; - } + return daysremaining; } break; case TvDatabase::Always: //forever - return 99; + return -MPTV_KEEP_ALWAYS; default: return 0; } @@ -557,3 +585,88 @@ { m_postrecordinterval = minutes; } + +void cTimer::SetGenreTable(CGenreTable* genretable) +{ + m_genretable = genretable; +} + +cLifeTimeValues::cLifeTimeValues() +{ + /* Prepare the list with Lifetime values and descriptions */ + // MediaPortal keep methods: + m_lifetimeValues.push_back(std::make_pair(-MPTV_KEEP_ALWAYS, XBMC->GetLocalizedString(30133))); + m_lifetimeValues.push_back(std::make_pair(-MPTV_KEEP_UNTIL_SPACE_NEEDED, XBMC->GetLocalizedString(30130))); + m_lifetimeValues.push_back(std::make_pair(-MPTV_KEEP_UNTIL_WATCHED, XBMC->GetLocalizedString(30131))); + + //Not directly supported by Kodi. I can add this, but there is no way to select the date + //m_lifetimeValues.push_back(std::make_pair(TvDatabase::TillDate, XBMC->GetLocalizedString(30132))); + + // MediaPortal Until date replacements: + const char* strWeeks = XBMC->GetLocalizedString(30137); // %d weeks + const char* strMonths = XBMC->GetLocalizedString(30139); // %d months + const size_t cKeepStringLength = 255; + char strKeepString[cKeepStringLength]; + + m_lifetimeValues.push_back(std::make_pair(MPTV_KEEP_ONE_WEEK, XBMC->GetLocalizedString(30134))); + + snprintf(strKeepString, cKeepStringLength, strWeeks, 2); + m_lifetimeValues.push_back(std::make_pair(MPTV_KEEP_TWO_WEEKS, strKeepString)); + + snprintf(strKeepString, cKeepStringLength, strWeeks, 3); + m_lifetimeValues.push_back(std::make_pair(MPTV_KEEP_THREE_WEEKS, strKeepString)); + + m_lifetimeValues.push_back(std::make_pair(MPTV_KEEP_ONE_MONTH, XBMC->GetLocalizedString(30138))); + + snprintf(strKeepString, cKeepStringLength, strMonths, 2); + m_lifetimeValues.push_back(std::make_pair(MPTV_KEEP_TWO_MONTHS, strKeepString)); + + snprintf(strKeepString, cKeepStringLength, strMonths, 3); + m_lifetimeValues.push_back(std::make_pair(MPTV_KEEP_THREE_MONTHS, strKeepString)); + + snprintf(strKeepString, cKeepStringLength, strMonths, 4); + m_lifetimeValues.push_back(std::make_pair(MPTV_KEEP_FOUR_MONTHS, strKeepString)); + + snprintf(strKeepString, cKeepStringLength, strMonths, 5); + m_lifetimeValues.push_back(std::make_pair(MPTV_KEEP_FIVE_MONTHS, strKeepString)); + + snprintf(strKeepString, cKeepStringLength, strMonths, 6); + m_lifetimeValues.push_back(std::make_pair(MPTV_KEEP_SIX_MONTHS, strKeepString)); + + snprintf(strKeepString, cKeepStringLength, strMonths, 7); + m_lifetimeValues.push_back(std::make_pair(MPTV_KEEP_SEVEN_MONTHS, strKeepString)); + + snprintf(strKeepString, cKeepStringLength, strMonths, 8); + m_lifetimeValues.push_back(std::make_pair(MPTV_KEEP_EIGHT_MONTHS, strKeepString)); + + snprintf(strKeepString, cKeepStringLength, strMonths, 9); + m_lifetimeValues.push_back(std::make_pair(MPTV_KEEP_NINE_MONTHS, strKeepString)); + + snprintf(strKeepString, cKeepStringLength, strMonths, 10); + m_lifetimeValues.push_back(std::make_pair(MPTV_KEEP_TEN_MONTHS, strKeepString)); + + snprintf(strKeepString, cKeepStringLength, strMonths, 11); + m_lifetimeValues.push_back(std::make_pair(MPTV_KEEP_ELEVEN_MONTHS, strKeepString)); + + m_lifetimeValues.push_back(std::make_pair(MPTV_KEEP_ONE_YEAR, XBMC->GetLocalizedString(30140))); +} + +void cLifeTimeValues::SetLifeTimeValues(PVR_TIMER_TYPE& timertype) +{ + timertype.iLifetimesSize = m_lifetimeValues.size(); + timertype.iLifetimesDefault = -MPTV_KEEP_ALWAYS; //Negative = special types, positive values is days + + int i = 0; + std::vector>::iterator it; + for (it = m_lifetimeValues.begin(); ((it != m_lifetimeValues.end()) && (i < PVR_ADDON_TIMERTYPE_VALUES_ARRAY_SIZE)); ++it, ++i) + { + timertype.lifetimes[i].iValue = it->first; + PVR_STRCPY(timertype.lifetimes[i].strDescription, it->second.c_str()); + } +} + +namespace Timer +{ + // Life time values for the recordings + cLifeTimeValues* lifetimeValues = NULL; +}; diff -Nru kodi-pvr-mediaportal-tvserver-1.10.9/src/timers.h kodi-pvr-mediaportal-tvserver-1.12.0/src/timers.h --- kodi-pvr-mediaportal-tvserver-1.10.9/src/timers.h 2015-07-17 20:18:46.000000000 +0000 +++ kodi-pvr-mediaportal-tvserver-1.12.0/src/timers.h 2016-01-17 16:39:23.000000000 +0000 @@ -28,31 +28,22 @@ #include #include #include "DateTime.h" - -/* VDR: -enum eTimerFlags { tfNone = 0x0000, - tfActive = 0x0001, - tfInstant = 0x0002, - tfVps = 0x0004, - tfRecording = 0x0008, - tfAll = 0xFFFF, - }; -*/ +#include "GenreTable.h" namespace TvDatabase { // From MediaPortal: TvDatabase.ScheduleRecordingType enum ScheduleRecordingType -{ - Once = 0, - Daily = 1, - Weekly = 2, - EveryTimeOnThisChannel = 3, - EveryTimeOnEveryChannel = 4, - Weekends = 5, - WorkingDays = 6, - WeeklyEveryTimeOnThisChannel = 7 +{ // English MediaPortal GUI description: + Once = 0, // Record once + Daily = 1, // Record every day at this time + Weekly = 2, // Record every week at this time + EveryTimeOnThisChannel = 3, // Record every time on this channel + EveryTimeOnEveryChannel = 4, // Record every time on every channel + Weekends = 5, // Record Weekends + WorkingDays = 6, // Record Weekdays + WeeklyEveryTimeOnThisChannel = 7 // Weekly on this channel }; // From MediaPortal: TvDatabase.KeepMethodType @@ -66,7 +57,132 @@ }; -const int cSecsInDay = 86400; ///> Amount of seconds in one day +const int cSecsInDay = 86400; ///> Amount of seconds in one day +const int cKodiTimerTypeOffset = (PVR_TIMER_TYPE_NONE + 1); ///> Offset used to map the ScheduleRecordingType onto the iTimerType values +const int cKodiTimerIndexOffset = (PVR_TIMER_NO_CLIENT_INDEX + 1); ///> Offset used to map the MediaPortal schedule id's to the iClientIndex values + +#define MPTV_REPEAT_NO_SERIES_OFFSET 0x7FFFFFF +#define MPTV_NO_PARENT_SCHEDULE -1 + +// Kodi Keep methods : +// The defines below are uses as replacement for the MediaPortal Until date version since +// we cannot have both data selection and the three above keep methods at the same time +#define MPTV_KEEP_ONE_WEEK 7 +#define MPTV_KEEP_TWO_WEEKS 14 +#define MPTV_KEEP_THREE_WEEKS 21 +#define MPTV_KEEP_ONE_MONTH 31 +#define MPTV_KEEP_TWO_MONTHS 61 +#define MPTV_KEEP_THREE_MONTHS 92 +#define MPTV_KEEP_FOUR_MONTHS 122 +#define MPTV_KEEP_FIVE_MONTHS 153 +#define MPTV_KEEP_SIX_MONTHS 183 +#define MPTV_KEEP_SEVEN_MONTHS 214 +#define MPTV_KEEP_EIGHT_MONTHS 244 +#define MPTV_KEEP_NINE_MONTHS 275 +#define MPTV_KEEP_TEN_MONTHS 305 +#define MPTV_KEEP_ELEVEN_MONTHS 336 +#define MPTV_KEEP_ONE_YEAR 365 + +#define MPTV_KEEP_UNTIL_SPACE_NEEDED TvDatabase::UntilSpaceNeeded +#define MPTV_KEEP_UNTIL_WATCHED TvDatabase::UntilWatched +#define MPTV_KEEP_ALWAYS TvDatabase::Always + +// Kodi timer types +const int MPTV_RECORD_ONCE = + PVR_TIMER_TYPE_SUPPORTS_ENABLE_DISABLE | + PVR_TIMER_TYPE_SUPPORTS_CHANNELS | + PVR_TIMER_TYPE_SUPPORTS_START_TIME | + PVR_TIMER_TYPE_SUPPORTS_END_TIME | + PVR_TIMER_TYPE_SUPPORTS_START_END_MARGIN | + //PVR_TIMER_TYPE_SUPPORTS_PRIORITY | + PVR_TIMER_TYPE_SUPPORTS_LIFETIME | + PVR_TIMER_TYPE_SUPPORTS_RECORDING_FOLDERS; + +const int MPTV_RECORD_EVERY_TIME_ON_THIS_CHANNEL = + PVR_TIMER_TYPE_IS_REPEATING | + PVR_TIMER_TYPE_SUPPORTS_ENABLE_DISABLE | + PVR_TIMER_TYPE_SUPPORTS_CHANNELS | + PVR_TIMER_TYPE_SUPPORTS_START_END_MARGIN | + //PVR_TIMER_TYPE_SUPPORTS_PRIORITY | + PVR_TIMER_TYPE_SUPPORTS_LIFETIME | + PVR_TIMER_TYPE_SUPPORTS_TITLE_EPG_MATCH | + PVR_TIMER_TYPE_SUPPORTS_RECORDING_FOLDERS; + +const int MPTV_RECORD_EVERY_TIME_ON_EVERY_CHANNEL = + PVR_TIMER_TYPE_IS_REPEATING | + PVR_TIMER_TYPE_SUPPORTS_ENABLE_DISABLE | + PVR_TIMER_TYPE_SUPPORTS_START_TIME | + PVR_TIMER_TYPE_SUPPORTS_END_TIME | + PVR_TIMER_TYPE_SUPPORTS_START_END_MARGIN | + //PVR_TIMER_TYPE_SUPPORTS_PRIORITY | + PVR_TIMER_TYPE_SUPPORTS_LIFETIME | + PVR_TIMER_TYPE_SUPPORTS_TITLE_EPG_MATCH | + PVR_TIMER_TYPE_SUPPORTS_RECORDING_FOLDERS; + +const int MPTV_RECORD_WEEKLY = + PVR_TIMER_TYPE_IS_REPEATING | + PVR_TIMER_TYPE_SUPPORTS_ENABLE_DISABLE | + PVR_TIMER_TYPE_SUPPORTS_CHANNELS | + PVR_TIMER_TYPE_SUPPORTS_START_TIME | + PVR_TIMER_TYPE_SUPPORTS_END_TIME | + PVR_TIMER_TYPE_SUPPORTS_START_END_MARGIN | + //PVR_TIMER_TYPE_SUPPORTS_PRIORITY | + PVR_TIMER_TYPE_SUPPORTS_LIFETIME | + PVR_TIMER_TYPE_SUPPORTS_TITLE_EPG_MATCH | + PVR_TIMER_TYPE_SUPPORTS_RECORDING_FOLDERS; + +const int MPTV_RECORD_DAILY = + PVR_TIMER_TYPE_IS_REPEATING | + PVR_TIMER_TYPE_SUPPORTS_ENABLE_DISABLE | + PVR_TIMER_TYPE_SUPPORTS_CHANNELS | + PVR_TIMER_TYPE_SUPPORTS_START_TIME | + PVR_TIMER_TYPE_SUPPORTS_END_TIME | + PVR_TIMER_TYPE_SUPPORTS_START_END_MARGIN | + //PVR_TIMER_TYPE_SUPPORTS_PRIORITY | + PVR_TIMER_TYPE_SUPPORTS_LIFETIME | + PVR_TIMER_TYPE_SUPPORTS_TITLE_EPG_MATCH | + PVR_TIMER_TYPE_SUPPORTS_RECORDING_FOLDERS; + +const int MPTV_RECORD_WORKING_DAYS = + PVR_TIMER_TYPE_IS_REPEATING | + PVR_TIMER_TYPE_SUPPORTS_ENABLE_DISABLE | + PVR_TIMER_TYPE_SUPPORTS_CHANNELS | + PVR_TIMER_TYPE_SUPPORTS_START_TIME | + PVR_TIMER_TYPE_SUPPORTS_END_TIME | + PVR_TIMER_TYPE_SUPPORTS_START_END_MARGIN | + //PVR_TIMER_TYPE_SUPPORTS_PRIORITY | + PVR_TIMER_TYPE_SUPPORTS_LIFETIME | + PVR_TIMER_TYPE_SUPPORTS_RECORDING_FOLDERS; + +const int MPTV_RECORD_WEEEKENDS = + PVR_TIMER_TYPE_IS_REPEATING | + PVR_TIMER_TYPE_SUPPORTS_ENABLE_DISABLE | + PVR_TIMER_TYPE_SUPPORTS_CHANNELS | + PVR_TIMER_TYPE_SUPPORTS_START_TIME | + PVR_TIMER_TYPE_SUPPORTS_END_TIME | + PVR_TIMER_TYPE_SUPPORTS_START_END_MARGIN | + //PVR_TIMER_TYPE_SUPPORTS_PRIORITY | + PVR_TIMER_TYPE_SUPPORTS_LIFETIME | + PVR_TIMER_TYPE_SUPPORTS_RECORDING_FOLDERS; + +const int MPTV_RECORD_WEEKLY_EVERY_TIME_ON_THIS_CHANNEL = + PVR_TIMER_TYPE_IS_REPEATING | + PVR_TIMER_TYPE_SUPPORTS_ENABLE_DISABLE | + PVR_TIMER_TYPE_SUPPORTS_CHANNELS | + PVR_TIMER_TYPE_SUPPORTS_START_END_MARGIN | + //PVR_TIMER_TYPE_SUPPORTS_PRIORITY | + PVR_TIMER_TYPE_SUPPORTS_LIFETIME | + PVR_TIMER_TYPE_SUPPORTS_TITLE_EPG_MATCH | + PVR_TIMER_TYPE_SUPPORTS_RECORDING_FOLDERS; + +class cLifeTimeValues +{ + public: + cLifeTimeValues(); + void SetLifeTimeValues(PVR_TIMER_TYPE& timertype); + private: + std::vector> m_lifetimeValues; +}; class cTimer { @@ -100,6 +216,8 @@ void SetPreRecordInterval(int minutes); void SetPostRecordInterval(int minutes); + void SetGenreTable(CGenreTable* genretable); + private: int SchedRecType2RepeatFlags(TvDatabase::ScheduleRecordingType schedtype); @@ -120,7 +238,7 @@ std::string m_title; ///> MediaPortal programName MPTV::CDateTime m_startTime; ///> MediaPortal startTime MPTV::CDateTime m_endTime; ///> MediaPortal endTime - // skipped: maxAirings field + // skipped: maxAirings field = episodes to keep int m_priority; ///> MediaPortal priority (not the XBMC one!!!) std::string m_directory; ///> MediaPortal directory // skipped: quality field @@ -131,7 +249,7 @@ MPTV::CDateTime m_canceled; ///> MediaPortal canceled (date + time) // skipped: recommendedCard bool m_series; ///> MediaPortal series - // skipped: idParentSchedule: not yet supported in XBMC + int m_parentScheduleID; ///> MediaPortal idParentSchedule // XBMC asks for these fields: bool m_active; @@ -140,6 +258,16 @@ bool m_isrecording; int m_progid; ///> MediaPortal Program ID + std::string m_genre; ///> The genre string for the program + std::string m_description; ///> Program description + + CGenreTable* m_genretable; +}; + +namespace Timer +{ + // Life time values for the recordings + extern cLifeTimeValues* lifetimeValues; }; #endif //__TIMERS_H diff -Nru kodi-pvr-mediaportal-tvserver-1.10.9/src/uri.h kodi-pvr-mediaportal-tvserver-1.12.0/src/uri.h --- kodi-pvr-mediaportal-tvserver-1.10.9/src/uri.h 2015-07-17 20:18:46.000000000 +0000 +++ kodi-pvr-mediaportal-tvserver-1.12.0/src/uri.h 2016-01-17 16:39:23.000000000 +0000 @@ -21,13 +21,13 @@ namespace uri { /// Char class. - enum char_class_e + typedef enum char_class_e : signed char { CINV = -2, ///< invalid CEND = -1, ///< end delimitor CVAL = 0, ///< valid any position CVA2 = 1, ///< valid anywhere but 1st position - }; + } char_class_e_type; /// Traits used for parsing and encoding components. struct traits @@ -35,7 +35,7 @@ const char* begin_cstring; ///< begin cstring (or 0 if none) const char begin_char; ///< begin char (or 0 if none) const char end_char; ///< end char (or 0 if none) - const char char_class[256]; ///< map of char to class + const char_class_e_type char_class[256]; ///< map of char to class }; /**