pax_global_header00006660000000000000000000000064125522612310014511gustar00rootroot0000000000000052 comment=550a4a2e093b4418394cdbe6f72cd7c76f0327b7 kodi-pvr-vdr-vnsi-1.10.10/000077500000000000000000000000001255226123100151525ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/CMakeLists.txt000066400000000000000000000041201255226123100177070ustar00rootroot00000000000000project(pvr.vdr.vnsi) cmake_minimum_required(VERSION 2.6) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}) enable_language(CXX) find_package(kodi REQUIRED) find_package(kodiplatform REQUIRED) find_package(platform REQUIRED) add_definitions(-DUSE_DEMUX) if(NOT WIN32) find_package(OpenGL) if(OPENGL_FOUND) set(INCLUDES ${OPENGL_INCLUDE_DIR}) set(DEPLIBS ${OPENGL_LIBRARIES}) add_definitions(-DHAVE_GL) message(STATUS "VDR OSD support enabled via OpenGL") else() find_package(OpenGLES2) if(OPENGLES2_FOUND) set(VDR_SOURCES src/EGLHelpers/VisGUIShader.cpp src/EGLHelpers/VisMatrixGLES.cpp src/EGLHelpers/VisShader.cpp) add_definitions(-DHAVE_GLES2) set(INCLUDES ${OPENGLES2_INCLUDE_DIRS}) set(DEPLIBS ${OPENGLES2_LIBRARIES}) message(STATUS "VDR OSD support enabled via OpenGLES") else() message(STATUS " VDR OSD support disabled because OpenGL(ES) wasn't found") endif() endif() else() find_package(D3DX9) if(D3DX9_FOUND) set(INCLUDES ${D3DX9_INCLUDE_DIR}) set(DEPLIBS ${D3DX9_LIBRARIES}) add_definitions(-DHAS_DX) message(STATUS "VDR OSD support enabled via DirectX") else() message(STATUS " VDR OSD support disabled because DirectX wasn't found") endif() endif() list(APPEND VDR_SOURCES src/client.cpp src/requestpacket.cpp src/responsepacket.cpp src/tools.cpp src/VNSIAdmin.cpp src/VNSIChannels.cpp src/VNSIChannelScan.cpp src/VNSIData.cpp src/VNSIDemux.cpp src/VNSIRecording.cpp src/VNSISession.cpp) list(APPEND DEPLIBS ${platform_LIBRARIES}) if(WIN32) list(APPEND DEPLIBS ws2_32) endif() include_directories(${INCLUDES} ${kodiplatform_INCLUDE_DIRS} ${platform_INCLUDE_DIRS} ${KODI_INCLUDE_DIR}) build_addon(pvr.vdr.vnsi VDR DEPLIBS) include(CPack) kodi-pvr-vdr-vnsi-1.10.10/FindD3DX9.cmake000066400000000000000000000014621255226123100175530ustar00rootroot00000000000000# - Find Direct3D 9 Extensions # Find the Direct3D9 Extensions includes and libraries # # D3DX9_INCLUDE_DIR - where to find d3d9x.h # D3DX9_LIBRARIES - List of libraries when using D3DX9. # D3DX9_FOUND - True if D3DX9 found. if(D3DX9_INCLUDE_DIR) # Already in cache, be silent set(D3DX9_FIND_QUIETLY TRUE) endif(D3DX9_INCLUDE_DIR) find_path(D3DX9_INCLUDE_DIR d3dx9.h HINTS "$ENV{DXSDK_DIR}/Include" ) find_library(D3DX9_LIBRARY NAMES d3dx9 HINTS "$ENV{DXSDK_DIR}/Lib/$ENV{PROCESSOR_ARCHITECTURE}" HINTS "$ENV{DXSDK_DIR}/lib" ) # Handle the QUIETLY and REQUIRED arguments and set D3D9X_FOUND to TRUE if # all listed variables are TRUE. include(FindPackageHandleStandardArgs) find_package_handle_standard_args(D3DX9 DEFAULT_MSG D3DX9_INCLUDE_DIR D3DX9_LIBRARY) mark_as_advanced(D3DX9_INCLUDE_DIR D3DX9_LIBRARY) kodi-pvr-vdr-vnsi-1.10.10/FindOpenGLES2.cmake000066400000000000000000000022731255226123100204170ustar00rootroot00000000000000# - Try to find OpenGLES2 # Once done this will define # # OPENGLES2_FOUND - system has OpenGLES2 # OPENGLES2_INCLUDE_DIR - the GLES2 include directory # OPENGLES2_LIBRARIES - Link these to use OpenGLES2 find_package(PkgConfig) if(PKG_CONFIG_FOUND) pkg_check_modules(OpenGLES2 glesv2) endif(PKG_CONFIG_FOUND) if(NOT OPENGLES2_FOUND) if("${CORE_SYSTEM_NAME}" STREQUAL "ios") find_library(OPENGLES2_gl_LIBRARY NAMES OpenGLES PATHS ${CMAKE_OSX_SYSROOT}/System/Library PATH_SUFFIXES Frameworks NO_DEFAULT_PATH) set(OPENGLES2_INCLUDE_DIRS ${OPENGLES2_gl_LIBRARY}/Headers) set(OPENGLES2_egl_LIBRARY ${OPENGLES2_gl_LIBRARY}) else() find_path(OPENGLES2_INCLUDE_DIRS GLES2/gl2.h) find_library(OPENGLES2_gl_LIBRARY NAMES GLESv2) find_library(OPENGLES2_egl_LIBRARY NAMES EGL) endif() include(FindPackageHandleStandardArgs) find_package_handle_standard_args(OpenGLES2 DEFAULT_MSG OPENGLES2_INCLUDE_DIRS OPENGLES2_gl_LIBRARY OPENGLES2_egl_LIBRARY) set(OPENGLES2_LIBRARIES ${OPENGLES2_gl_LIBRARY} ${OPENGLES2_egl_LIBRARY}) endif(NOT OPENGLES2_FOUND) mark_as_advanced( OPENGLES2_INCLUDE_DIRS OPENGLES2_LIBRARIES OPENGLES2_gl_LIBRARY OPENGLES2_egl_LIBRARY ) kodi-pvr-vdr-vnsi-1.10.10/debian/000077500000000000000000000000001255226123100163745ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/debian/changelog.in000066400000000000000000000002651255226123100206560ustar00rootroot00000000000000kodi-pvr-vdr-vnsi (#PACKAGEVERSION#-#TAGREV#~#DIST#) #DIST#; urgency=low [ xbmc ] * autogenerated dummy changelog -- Nobody Sat, 01 Jun 2013 00:59:22 +0200 kodi-pvr-vdr-vnsi-1.10.10/debian/compat000066400000000000000000000000021255226123100175720ustar00rootroot000000000000009 kodi-pvr-vdr-vnsi-1.10.10/debian/control000066400000000000000000000013141255226123100177760ustar00rootroot00000000000000Source: kodi-pvr-vdr-vnsi Priority: extra Maintainer: fernetmenta Build-Depends: debhelper (>= 9.0.0), cmake, libtinyxml-dev, kodi-pvr-dev, libkodiplatform-dev (>= 16.0.0), kodi-addon-dev, libgles2-mesa-dev [arm], libgl1-mesa-dev [i386 amd64], pkg-config Standards-Version: 3.9.4 Section: libs Homepage: http://kodi.tv Package: kodi-pvr-vdr-vnsi Section: libs Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Description: VDR PVR for Kodi VDR PVR for Kodi Package: kodi-pvr-vdr-vnsi-dbg Section: libs Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Description: debug symbols for VDR PVR for Kodi debug symbols for VDR PVR for Kodi kodi-pvr-vdr-vnsi-1.10.10/debian/copyright000066400000000000000000000027261255226123100203360ustar00rootroot00000000000000Format: http://dep.debian.net/deps/dep5 Upstream-Name: pvr.vdr.vnsi Source: Files: * Copyright: License: . # If you want to use GPL v2 or later for the /debian/* files use # the following clauses, or change it to suit. Delete these two lines Files: debian/* Copyright: 2013 fernetmenta License: GPL-2+ This package is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. . This package is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. . You should have received a copy of the GNU General Public License along with this program. If not, see . On Debian systems, the complete text of the GNU General Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". # Please also look if there are files or directories which have a # different copyright/license attached and list them here. kodi-pvr-vdr-vnsi-1.10.10/debian/kodi-pvr-vdr-vnsi.install000066400000000000000000000001641255226123100232660ustar00rootroot00000000000000usr/lib/*/addons/pvr.vdr.vnsi/pvr.vdr.vnsi.so* /usr/lib/kodi/addons/pvr.vdr.vnsi usr/share/kodi/addons/pvr.vdr.vnsi kodi-pvr-vdr-vnsi-1.10.10/debian/rules000077500000000000000000000012431255226123100174540ustar00rootroot00000000000000#!/usr/bin/make -f # -*- makefile -*- # Sample debian/rules that uses debhelper. # This file was originally written by Joey Hess and Craig Small. # As a special exception, when this file is copied by dh-make into a # dh-make output file, you may use that output file without restriction. # This special exception was added by Craig Small in version 0.37 of dh-make. %: dh $@ override_dh_auto_configure: dh_auto_configure -- -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=1 -DUSE_LTO=1 -DCMAKE_INSTALL_PREFIX=/usr override_dh_strip: dh_strip -pkodi-pvr-vdr-vnsi --dbg-package=kodi-pvr-vdr-vnsi-dbg override_dh_installdocs: dh_installdocs --link-doc=kodi-pvr-vdr-vnsi kodi-pvr-vdr-vnsi-1.10.10/debian/source/000077500000000000000000000000001255226123100176745ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/debian/source/format000066400000000000000000000000151255226123100211030ustar00rootroot000000000000003.0 (native) kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/000077500000000000000000000000001255226123100175315ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/addon.xml000066400000000000000000000654101255226123100213460ustar00rootroot00000000000000 PVR kliënt om VDR te konnekteer aan Kodi oor die VNSI koppelvlak PVR client to connect VDR to Kodi over the VNSI interface ПВР клиент за свързване на VDR към Kodi чрез VNSI интерфейс Client PVR per connectar VDR a Kodi sobre la interfície VNSI Klient PVR pro spojení VDR do Kodi skrze rozhraní VNSI Rhaglen Recordydd i gysylltu VDR â Kodi dros rhyngwyneb VNSI PVR klient som forbinder VDR til Kodi over VNSI grænsefladen PVR-Client, der einen VDR über das VNSI-Interface mit Kodi verbindet. Πελάτης PVR για σύνδεση του VDR στο Kodi διαμέσου του VNSI PVR client to connect VDR to Kodi over the VNSI interface PVR client to connect VDR to Kodi over the VNSI interface PVR client to connect VDR to Kodi over the VNSI interface PVR client to connect VDR to Kodi over the VNSI interface Cliente PVR para conectar VDR a Kodi sobre la interfaz VNSI Cliente PVR para conectar VDR a Kodi sobre la interfaz VNSI PVR-asiakas, joka kytkee VDR:n Kodi:iin VNSI:n avulla Client numériscope pour connecter VDR à Kodi par une interface VNSI. Client d'enregistrement connectant l'Enregistreur de Disque Vidéo à Kodi via l'interface d'enregistrement de flux réseau vidéo Cliente PVR que conecta VDR ao Kodi mediante a interface VNSI לקוח טלוויזיה חיה עבור VDR הנעזר בפרוטוקול VNSI PVR klijent za povezivanje VDR na Kodi putem VNSI sučelja PVR ügyfél a VDR és az Kodi VNSI interfészen keresztüli csatlakoztatásához Klien PVR untuk mengkoneksikan VDR dengan Kodi melalui antarmuka VNSI Upptökuþjónn til að tengja VDR við Kodi í gegnum VNSI viðmót Cliente PVR per connettere VDR a Kodi attraverso l'interfaccia VNSI VNSIインタフェースでVDRをKodiに接続するためのPVRクライアント PVR client to connect VDR to Kodi over the VNSI interface PVR klientas, skirtas prijungti VDR prie Kodi per VNSI sąsają PVR klients, lai pieslēgtu VDR pie Kodi, izmantojot VNSI saskarni PVR клиент за поврзување со Kodi преку VNSI интерфејс Klin PVR untuk sambungkan VDR ke Kodi menerusi antaramuka VNSI PVR-klient for å koble VDR til Kodi over VNSI-grensesnittet PVR client om VDR te verbinden met Kodi op de VNSI-interface Klient TV dla VDR wykorzystujący interfejs VNSI Cliente PVR para conectar VDR ao Kodi sobre interface VNSI Cliente PVR para ligar VDR ao Kodi através da interface VNSI Client PVR pentru conectare VDR la Kodi folosind interfaţa VNSI PVR клиент для подключения VDR к Kodi через интерфейс VNSI PVR klientská aplikácia na pripojenie VDR servera do Kodi prostredníctvom rozhrania VNSI Odjemalec PVR za povezavo VDR in Kodija preko vmesnika VNSI Klient PVR për lidhjen e VDR dhe Kodi mbi ndërfaqjen VNSI PVR-klient för att ansluta VDR till Kodi över VNSI-gränsnittet Kayıt Sunucusu VDR'ye Kodi'yle VNSI Arayüzü Üzerinden Bağlanır Клієнт PVR для зв’язку VDR з Kodi через інтерфейс VNSI Trình PVR để kết nối VDR với Kodi qua giao tiếp VNSI 让 Kodi 通过 VNSI 界面与 VDR 连接的 PVR 客户端 PVR用戶端經由VNSI介面接口連接VDR到Kodi VDR voorprogram; ondersteun stroom van Lewendige TV & Opnames, EPG, Tydhouers oor die VNSI byvoegsel VDR frontend; supporting streaming of Live TV & Recordings, EPG, Timers over the VNSI plugin VDR клиент. Поддържа поточна телевизия и записване, електронен програмен справочник, броячи чрез VNSI приставка. Frontal VDR; suportant fluxes de TV en directe i enregistraments, EPG, temporitzadors sobre el connector VNSI Rozhraní VDR. Podporuje proudové vysílání živého vysílání a nahrávek, poslech kanálů rádia, EPG, a časovače skrze modul VNSI Blaen VDR; cynnal ffrydio Teledu Byw, Recordio, Amserlenni, Amseryddion dros ategyn VNSI VDR frontend; understøtter streaming af TV og Optagelser, EPG og Timere over VNSI-addon VDR-Oberfläche: Erlaubt die Wiedergabe von Live-TV und Aufnahmen sowie die Anzeige des EPG, die Kanalsuche und die Programmierung von Timern über das VNSI-Plugin. Frontend για το VDR. Υποστηρίζει ροές Live TV & Εγγραφές, Χρονοδιακόπτες διαμέσου του plugin VNSI VDR frontend; supporting streaming of Live TV & Recordings, EPG, Timers over the VNSI plugin VDR frontend; supporting streaming of Live TV & Recordings, EPG, Timers over the VNSI plugin VDR frontend; supporting streaming of Live TV & Recordings, EPG, Timers over the VNSI plugin VDR frontend; supporting streaming of Live TV & Recordings, EPG, Timers over the VNSI plugin Front-end VDR, soporte de streaming de televisión en vivo y grabaciones, GEP, temporizador con el plugin VNSI Front-end VDR, soporte de streaming de televisión en vivo y grabaciones, EPG, temporizador con el plugin VNSI VDR-frontend; tukee livelähetyksiä sekä tallenteita, ohjelmaopasta, ajastuksia ja VNSI-lisäosia Frontal VDR, prenant en charge la lecture en transit des télés en direct & les enregistrements, le GÉP et les minuteries avec le plugiciel VNSI. Interface logicielle pour VDR. Il Supporte la lecture en continu de flux direct télévision et l'enregistrement, les guides de programmes, les minuteries via les routines d'enregistrement de flux réseau vidéo Interface VDR; soporta a transmisión de TV en directo e gravacións, Guía de programación e temporizadores mediante o engadido de VNSI לקוח טלוויזיה חיה של VDR. שבעזרת התוסף VNSI לשרת VDR תומך בהזרמת שידורים חיים והקלטות, האזנה לרדיו, הצגת לוח שידורים ותזמון הקלטות. VDR pozadinski softver; podržava streamanje televizije, snimanje, EPG, zakazania snimanja preko VNSI dodatka VDR előtér-kiszolgáló. Élő adások és felvételek sugárzásának támogatása EPG-vel és időzítéssel a VNSI kiegészítőn keresztül Frontend VDR; Mendukung pengaliran Siaran TV langsung dan Rekaman, EPG, Timer melalui plugin VNSI VDR framendi; styður straum frá Live TV og upptökur, rafræna sjónvarpsvísa (EPG), tímatöku í gegnum VNSI viðbótina Frontend VDR; supporta lo streaming di Live TV e le registrazioni, EPG e timer sul plugin VNSI VDR フロントエンド : ライブテレビのストリーミングや録画、EPG、VNSIプラグイン上のタイマーをサポートしています。 VDR 프론트엔드; TV 시청 & 녹화, EPG, VNSI 플러그인을 통한 타이머 지원 VDR naudotojo sąsaja; palaiko TV transliacijas ir laidų įrašymą, EPG ir laikmačiius per VNSI įskiepį VDR galasistēma; atbalsta tiešraides TV un ierakstu straumēšanu, EPG, taimerus no VNSI spraudņa VDR интерфејс; подржува стриминг на Live TV и снимки, EPG тајмери преку VNSI додаток Bahagian hadapan VDR; menyokong penstirman TV Langsung & Rakaman, EPG, Pemasa menerusi pemalam VNSI VDR frontend; støtte for visning av direkte TV og opptak, EPG og tidtakere over VNSI-tillegget VDR frontend: ondersteunt streaming van Live TV & Recordings, EPG, Timers over de VNSI plugin Klient VDR obsługuje strumieniowanie kanałów radiowych i telewizyjnych, nagrywanie i harmonogram nagrań oraz funkcje przewodnika telewizyjnego przy wykorzystaniu wtyczki VNSI dla VDR Frontend VDR; suporta streaming de TV ao vivo e gravações, EPG, agendamentos sobre o plugin VNSI Frontend VDR; suporta transmissão de Live TV e Gravações, EPG e Temporizadores através do plugin VNSI Frontend VDR; suportă streaming de TV Live & Înregistrări, EPG, Cronometre folosind pluginul VNSI VDR фронтэнд; поддерживает потоковое TV, запись, ЕПГ, таймеры через VNSI плагин VDR rozhranie; je podporované streamovanie živého televízneho vysielania a nahrávok, EPG, časovačov prostredníctvom modulu VNSI Vmesnik za VDR; podpira pretakanje televizije v živo & posnetkov, EPG, časovnike preko vtičnika VNSI VDR frontend, që lejon transmetimin e Live TV'së & Regjistrime, EPG, Timer, nëpërmes shtesës VNSI VDR frontend; stödjer strömning av direktsänd TV & inspelningar, EPG, timers över VNSI-tillägget VDR ön ucu; Canlı TV akışı ve kayıt yapabilme, EPG, VNSI eklentisi üzerinden zamanlayıcıları destekler. Надстройка над VDR; підтримує потік TV і записів, EPG, таймерів через додаток VNSI Giao tiếp cho VDR; hỗ trợ truyền phát và thu chương trình Live TV, hẹn giờ và hiển thị lịch trình chiếu (EPG) thông qua plugin VNSI VDR 前端,通过 VNSI 插件支持直播电视和录像流媒体、电子节目单、定时器 VDR前端,在VNSI外掛插件上支援的串流媒體包括有:電視直播和錄影,電子節目表,定時器。 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 hwn yn feddalwedd ansad! 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.. Diese Software ist noch in der Entwicklung! Die Autoren sind nicht für fehlgeschlagene Aufnahmen, falsche Timer, verschwendete Zeit oder andere ungewollte Effekte verantwortlich. Ασταθές πρόγραμμα! Οι δημιουργοί δεν είναι σε καμία περίπτωση υπεύθυνοι για αποτυχημένες εγγραφές, λανθασμένους χρονοδιακόπτες, χαμένες ώρες, ή κάθε είδους ανεπιθύμητα αποτελέσματα.. 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 software es aún inestable! Los autores no son responsables en forma alguna por grabaciones fallidas, temporizaciones incorrectas, tiempo perdido o ningún otro efecto no deseado. ¡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! Ohjelmiston tekijät eivät ole millään muotoa vastuussa epäonnistuneista tallennuksista, virheellisistä ajastuksista, haaskatusta ajasta, verenpaineen noususta eikä 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. Applicatif en cours de réalisation ! Les auteurs ne sont en aucun cas responsables d'enregistrements défaillants, de minuteries erronées, de temps perdu ou tout autre effet indésirable.. 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 na koji način odgovorani za neuspjele snimke, netočna vremena, izgubjene sate, ili bilo koje druge neželjene 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 programma non è stabile! Gli autori non sono in alcun modo 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... Dit is instabiele software! De auteurs zijn op geen enkele wijze verantwoordelijk voor mislukte opnames, onjuiste timers, verspilde uren, of andere ongewenste effecten .. 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 gravações com falhas, agendamentos incorretos, tempo desperdiçado, ou quaisquer outros efeitos indesejáveis... Este software é instável! Os autores não são responsáveis por falhas na gravação, temporizadores incorrectos, horas perdidas ou outro qualquer efeito não desejado... 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 e 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ë tilla të padëshirueshme. Овај софтвер је нестабилан! Аутори ни на који начин нису одговорни за неуспела снимања, неисправна заказана снимања, изгубљене сате или друге нежељене ефекте. Detta är ostabil mjukvara! Upphovsmännen är inte ansvariga för misslyckade inspelningar, inkorrekta timers, bortslösade timmar, eller någon annan oönskad effekt.. 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 các lỗi thu chương trình, hẹn 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 kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/icon.png000066400000000000000000000656661255226123100212120ustar00rootroot00000000000000PNG  IHDR\rf pHYs   OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3- cHRMz%u0`:o_F`IDATxwxٷ)%z,^pǦPL)@BH'@$o/$!$/!@BJn`{$꫶23+Ziek=s]sa3gϔ99G4Mc06D]6Pj7)InZ?-.kBkqM_W@1,ʺ%gF/M]@ ȯ#Eޤ y`k_G~/@Aee]: T:_C!,kߨȯ# Fktב_G7P:'C!uב_G>5%@G~uBȯ#.b(վ:ߟoy:uב?زr(_G~uPC!uב@C-+6ȯ#++Bu俘_2rd5#}בF  u׽h(HKG~uNC!Mȯ# #tQ,?`=/C!tkuב?rp]G~u߹ב_G~ґ_G~,%:sq y`w=uב_ol@3^_G~\YYG~u8bX=W֑_G>r EeeuבAee]:r䵯# 1uבPů#Pkm!<X+e~Ō}UБP/_G~]vuב_G}* ?dȯ#EʃU:ȯ7/HCwt=yYG~ux #Fw#:_tFE֑~_YG~P#:_<߹<#'[C!"oRn("b(A-~E_GY6t#' _ב?^_7cTA%~u=yXڂ :ȯ{ P}%~uUxtyYYG~uxsY7#:첲:YG~uO~ r$.#~u EB֑_G~/^"?@#Б_G~P\T&]ȯ_7̨d uEׯ߹'׽n(.C7tב_Gi(zw2:P߹#uCqޙ ytב_7*! 9Ց_G~m{VVGH^÷ݧ!H\1|/h77"Uȇ H(a2a1!Db,dڱŘ,'>Fjn,6dY I'T?dZ FAА (`F1YdLf iQ'YIH&='hS0[ P^+SkBz #X W2K/HxUJp1fh 1),;G_d[n Esg!$bd3tl*#&g0dt2&Ҳc3=) }I&fGӏW_,A,Rb0+ 2|bZ 粂 j/<LD 9_w.B?`gB]?v***x'JFC`K2 ݧ~<klX0TH1bAit}ѕz4ջ8yC$Fmf1odoB YTԳ&d2QvsP0!$ńa$5 +v(JdEM5WQݬ>q+Yvo]￿c~$o7$/gGy7X?JU,6##8cǎE܃kuMŧoѕ~CU4V{/^v3ON`MSo/G 94Զ}kt~OSJlbOҝ8eLX/E<4Xvc@c3NԲkC͍n:~r(>\uM!Uxm<'2*24Vr ZxYv[ѕ[oVw vO/אsY11a޶Ɖ.?hP*+٫9ģœ>pg1Xt\8XK7h\1l㠟s`{)'TJxxՀ}5oB ²?5GΆB x+3 ma!+ާ7Bʷķ g_S7~9 fN>Q@p* e{`׮] ;^bGuFP [?-o .y$  rK{z(oM~"`JĽ1E EmfA_ĖUǩh QƉԧ~ oce9{AA dz9%ւ*zč$`kgh+>,b߹$YG_}֔Q]]MBBB Pc[{`v!Y\^-LфRP| HP"h"`@@ehJok(l?$wrw{ ?{a1/ON!KRϞGMT EQp6yhhpYPmȂ UD B4o<3b6#;nێR~jnU^?oTy/+ rd4K|{ T(x^MɅ⥾ƅQVU/i xȂ E1[~ŭw_555MMAz(㡩:JKK9z#*9GFhNh y#q(/>6k]Ͽ H?Бagҥ]~ 8䲳nvv +]~0d񋂌do$1_ΰaz֞^\CU4MC|^ϫ(\.<ᠺrN)` DG<`Dh5>}7G( 7+T6)) q"hlh|F/oFnn^(F[۹jư~hºֱ!6ػR222Ŋ=}aܱLl^G\̡ QJZ˪Yd,`|~mG>oaۃX᧵\TT&MdҤe/<_JY&/ee>|;\25b?w"PB8'ذ'_a?o]ΑgBF:)a.I0`Ii$9N?իA{ !1){҈R귏R[S3`;J19=pTy;#+n j5d矝a ;h9O ENNiii~uyû˃&*{ٍ#Q1q<՝l2ۗ#H!hlCdžnTؾc@Ю!H DBaÆRW;k4P|dzȏV-ۍ0%ʈ^GNgoձA-)hvאŪwu crL svM#RVV޽{ٹs'{Lyy 8fxND(@E.{*]6`0? (0@[lvͬEJNkiHLLC)vyY`?CbJ~^^?%2y뭷fa6innرc>|TnF.`9Lϖ^8} (߱j_+2\WẸdS(d[ lʂ];S~)ARz4#G[7D%())+$==/HUUy7CoϒٺxșgEfn*'~wj w:{w\y;+w{asK;2āJ`'DeTU>|ĉW ً^~Z{Bh0س4lo0Hn+/ă#en =iV6m/aC- 2IMObhDsciw7|8;FEEgΜ(//Ӝ9st(ϒ^I=aNoo@ElU=WC|+uʼn0P@Ń%J[D#cu#CQQ6܃7 y޿BbJ^~~j񿇩j^J9vN,t>}=)v{_t P)wDΜh[I?c5KS}&"c  Q!#D^@@GZN,gelm`/"*l $AHR#Fti_;;wݳw唖ri***(--h^rm̜+8yr@ [ygwyX& IBBVj֥ÃyqG~M 1# LVvٝCU|*ď>2ÇSRR(477c40LzxI1!~*lYuu{Y`/OI),,De,;҇\JhlldeWms N>Mii)x-ɏ -ƩSF"#=NBjTX"͘PzۯvxsP sy/2Y ̹vxX/ ^F߽c5!⛁F2kĐOyYd2#??!SYYIee%\s wue=e>kFLfA|؝I0PUHccc!gڈC|vrrrB^7u0*MU͋&mX~EXT=lxmgHX ^wYFnfZl* 9xcI&%=n?.'FpI@`()=͞;? I`ɆF-Px9I{x~jOؽ~e{``0JÙ0huu]*>O2 Mr1]rGB6޾p&y9jbmYXƚB䐘WZ&:(<0/>y+vs bOd]?H'9nT5$oYA Yh(fh& D 049 ̞=; m7>!m'j HKQM$elaDJg*X̉"X `'h@ f`3EKDoB?(a—&rs! flCJacڴi C,(na$ rpSd0ݕ߿B 6eʲs/C2#, TkJV*Wn*j?qs\x Fd4ۗ8oQB$c2a„?P;g6j쫇cC 6 "1?\(,,2}sC47{ a vsNV~1ҌɀIhu4yp,8Xc3;WZEeEEpƪ2hS (^D0 G`ܹG.@vbZ4.Hj4>ۇf6շ1y %.(*ߓ9'N,Kx?z c*8 x].O݃G,%c9 H= )S΄F`|H!?z;#G99rhDc-+?=5o!;;߭^_̩#5'?4Mh)*Eu L"t݀S}ib%+.Oƹv}.]<9_ ;]Q|K~'%*9F~߶20wp:hq:iijg3---8iiiLˍWѸE]۷ot+%$5kF"2`F I$_R+LUȢEڂ+@kg$0fZ6~hLռhv֯ĉT u_Ɯ )#Z_ <7Rۚ3oh@. W( ^dʔs՚8quuu -,<9irz"TDIM'O/# hĨFi xIɈ&+k8#GdС?  })phi $;˷@Gϲw^(/A8+(4;[hjj`21sQhۉigg+f2HHz=g/!%%+Vۯ~֬YlqB" IRR2q $&$Nnn>C HB =^.\{u8N֭[Ì0 رjXt9[u13| @va&DaP4dwWvW&{?[DvVV@k} . !PAEEEP| C| yyy~6Ylرclٲ[Tee7܀$/BzF&F EQxx^߂mVDI"11!cq{46;馛ppf̜i^\yߊA| Hd_xxwq0f'#ב5 ːbTS-`@1fJ~q_ճހIc4n~m/GlݲԖPc [?Zoxh4RRZJB|q3ef.8d dfe(9gfryطo/cǍ#!!ǏSRRB\\/"60E{v>vw̙; հn9zVafIBCEռa2~+:6ߑs6NCAH$O V2 ',g抋H;wwſazپ};99[o!-=Qhq=}ONۃ%%5Iinrrۗ߷o3gF4:DLL o6 |d]dV7^<$Ih0`X&!!͛?Lŋjh 4Ը?~G @/#3 c Ջ\!d. 718I)**_]H7祗_d2؈bᨣ.(].7 I"1Q(^y99̝;8$Y]˖/Hk(Xc!*::?:?z~6H)"睊˓cJ{niDS/cV4M%.{/0+CL֌zR3#*h{ԩS˙ ߂ EU(EQZOoPx1d$Im[ZZ멮d2viəS-"gKם I% `;hw>Ti%M)zN@ =!ڎ{pdϙ_J|qqq_І|(***(R@ɩSHĜٳ](MUTou*, (^7cnj&;+ (izٻwo`45ƞ1J|ll,?]wPFG]_5b"w׌EvaBȏv!-D)rv5Wm:5kעi^T)ϧ /AUOŋ%x;&ZmDrgNS|8?Ѝd2!UJw]gx + 5'cIo 9-o`'؎SNxZwmrna1I hȲM TQr3a-&77o*glhhIEM=WxӦEY D)dQ# HLr ^: 'W__"S&M@4_(bHNﲊn ]vpf.WjpF>@?#%9#&$* fv-q?9"2Rt#ڂ݇/bdrix[2.c{+K>l(( I m={*g$ "h[_xOb۶mTWW3uj2ڇLEҜg=͗IjvLD^WkP,}>A @"f!n'̎;m˪0?&4 Bν>"*\TŸ>믟nʪbDzED,>- >kۮ&#J=ncܹ-[D]c,ˤрw_}Q'b{&foc6_\$EfSE5'out̽nxHZX֯O>%s4b2z,~ ll{Dy= "#x"7nvG=I[=yAFl\ ӈ)\:c `޽ݷ͛R[S7.OI@iƙXA#!AJf999Eʵ_w c׷gKf @?!#(2Bz oC%gtMYT%9 _|>^ʞ]1o2D灳$kX|a$[}u|Y:K#Rq̒ L4ɡ&Rcx/dR]ױ@LN3$$&F+ý2:2^ͅ$ 2f &6 -u@jUce1Q{=:4f \{s&(*=i#D\TQHnYEo]!VG"bk,Q $ d$_Y0{}Hb٪`QFZV,;W^?5 OsloeS\m,[ ??P BN\Ӽ4ҕXw2$cn&![fXߡ Pl.npr}+;[r4rl:_}:bQ^T D:s\F~bb `TM^ ^:DTQn C_?лe/?2I#N}?wӧOG {npBjT({(?&`$*$4E>fﴺxvX!u0jC2Pp)GADQ4Em?d"|߱Xyz M44oE1y|g .y8K$2ÎC}ݽI,kTDޭy;C>#B\4U@ <|5w'zjƌznjPp0:@k=k؄/cbcg_͆1* Պffw/2b0t~ j,m4ťݟ٨HQGV?XcqƓcpsO>Z1G-É%v`@N-:񧿑t:eqNpJS_A`I 1Lnd̓O=S3jI qhƙjv99v·{(Z$dߎU0{"cy!|-&379AVvQ~4'0^E,;4e(?OYQbux Mdf^;h J`6XT4$"x%fToP@A|ohET),yMڟo7 f/h+x"ݘFe &7h G8IF^,siXj; ̾v( p'g{sOD;#9?oQC@D38I),,TP^?#M.&)QP-ͣrFA;DɤZ;U'z(bFCuvY12(Ճ[iy4D`n{5Q7Uk#ya,lx}у,13Ą (odv/97j>˷1eĈgȍe,>o˨%5=ğ~octں4M0㰉|-4YA4*!"ΚIVgdDYӞ y N.# UD+t4%sBEmmc9c3`B!oТ̘1c@!w<"`$5W\F`X; d7u. srv*AժtVQ.!/ cMoCDD$(:->[WZp#3#8VmfUYon_47ܼJN7f.cǚSaqEsp,mzA;-@i\S9+ //^_ygAY ״jD HH$b 8W  |P<3F,?̮%  b,ww? kys0|xQhc&`@@u[\8ydyMddJyhh Tkwc 6`1+.XTX$9_;ɚYMvA2 .$!!a@#wSbS#"cCƥlPmlj4a5d /~OFfpdff؋:=ZzKG"&ܶ߇/T?g_B` #z#/pCb%"Uք"Ce_?|(**RFr7o˹A/CcV`TW>2"@<А O- 8"P=y8bڕC5G4'E7ibx_0~eMA|Ȃ1٥M2p g7\Hz@\qF0M3.$0hQAL &ߒAZ >BS Xhm22kVwpj8UE^Cr4`BF .r|{w݃3`+JF͎g3[g[^5cg2.hnd[Ao(O>)DN aJsJ5 >>xHholl_@פfptg֤&2bII;zm0"we+**Yj%(05Mv3w\RSRzE˪Kti$YCY!,a4A0 M&,f3bbٰZXVf39@s]wQv؁)x2}3locYUU 3jaT}N ѓGPyD' B[ujZ*lukZ92,8{p<ؑx6!Rň䈊NGP?\q(R2ʺ[(Sb>S⠢ӑ:E=n;Nx4 &[8dm{K Lфes)9Z,S0:ؐT|}AHA،$E`E558ܑv~秩h">F4ƀek%ot6Ňt;2ǭpxGy!1Y DǙOrimDZ45t 2ώt~'}#uX BB{ZNFd'oxbx GvUݓힲcmױ}4zАdHJf4(cm+/1@7L$kX 1z=*GvWxU@@4LX_1~]pG&y;:ѯ^zg^/MHIww.o{?-pY:߰u8O@0ȟŴy|l[|Όڋxs?Z%CFR(*TWdY M\~]En\B19F;F /,-N/9G&c l|^Bh. LɆ-ʂۥp`}o?Fʷn }U5] />S%%[ #iӿV,$9?^} VVIl$O`ncW|9M6`6)Wei pps=[>*ǜ_{ථͭd(dc(%Х əCQ_??݅!̗wWfgqTgomXO3,Tշ\M |*s7or`QZ[Q+:*r(MhϳۈKV%Srtk;VTϴ-f?[Ga V.nJrp[%#̘u-0-vC+}yxOC*6qwE\\yo'G9yK<պͷja'lOd^@7)gx ̺t>`;1dG`VZ$at[.m *_:qi9c-{6DW /&_ڗ|Fk%w6ۙyF@3a„yn kʗz[)ݴ[z]wt ԍFM$9+ΚQpiIIA|>~7y=sn}FEEs`礧di* q)&r{6њ䲢vwo`ϻ4 \.w{hcfQrvnKzm[D^Gjoc OJeL%.VyٳY[s喛0tH: *&4Vk| c,.9yN#Up;HIl'Nҡxf&*<;1K?qho!Ίf_3^>UǹςbpxC({{4N%gt[ =zѣGu"[?)YJi&\[ 峷i*QjHȑk̽Wbӆ\y<־w-Ysojˬγ˲"Á~iA獧j;ZπZΟטj+xUi]Zl#7!"QYQt?S*c9r>xDt;+n۵Y݂Wsf⢒C? T$76⡉Q/#D 7>i'i🯐Wr:';'+iwi*). @cV%zi"xz?GFr 3][?Kթ/-^7pŠ"cv Ԁ|Ȃ7f@C60;V4h2*.ʲF,4;>mqS|N؇Sʹ[OaĘ!=|G$KdQ})XL_|`>SN ~UDp7sZM~*їrܩ|L #K{m)'5;5h x\fՀ54ϡK5,f/<0I&9-(ȴN4h-TT|Cƒ+*&OQfR0De\2mrXC_$5ΨKϬE /ݥA woys~A5`ۺhTs; Lc|UlYyM${D Q72 Kx/+\VDs/b*T1mА_ٻ$-k|~JdN0b䈠ova$#^-ghNF4n {1{N/aͅ|?&z̽z,WW%,yi)w~eq@زm!h"âE0aV6Yz `%YT5[Pnʵά>!̿} AdoPO3IgӯY}VQ{f s9}WE`Ǧ$fR}uMF2.n?M8кg $fHL馛---ff\1ka)K^\]_]|wvι=0b\T42jF_sY7⎢fN{>Cŋ&#E9D#*|ٯ F̃w˼6^y̷ېWp˽S}Q _,$/OrPNGpqd^Kݶh?1}=؆x4'c+weW1 >;0z~g+iۿ}wnzO2i! Ӄ^w2_.m~/7[M$O;nQ0|z>E3iSS_bDAVߞMU|j&8İC{9?# bPs٤vۘ(\Q1z~-2YDՑ?E"gYVc7߶> )"y3sFNA2EE]&.[<Sz%bl C[0_3gH1&$g@D)]Mw_1c .:΄b/&ghvv;9#)WeOaJv8k=Ԏd+c_13Ri2D e_w7[ ӪI62bl32tr,.qc-,)3A g@1^:kSliJ0ג8ąqk.IvYCQʱ4Q0C/Lfڧ8woD !#η3P޹v(e#"mZ'<~=]y>6kܣGƼnÁ';;b^[ÁiϞÖ=@m!9o[abwM2:EY/|p_ r]=(oܽQ͚WF5kKJ{l-|mQ~zksuu'OީSD/YjSw}=a K :FĶm;rwA1:E̒%usݷ#EbZ%;%P;̚*)ӧEFV?|<iF՟:c3H=gm\wMVv6Iw܁XW~/RLkעy3_z5'N&~O8''0<.ǩ|_{ sρEZt8~5ދjO[7-ֵ{Vv'+VV HO Hra^|Su߱|;˻v}v;ߏXWG3P#4 ԛMwbY@j֥Kq.wa];@I7Pv*[1ލyZ?$o7EwGQgj+'l{ov6 3?@C …8gho7;nCuϷ#|w&׵ypsƌvІm"V;Ld^d s:P z A0~(=DzffxGPcbO3,(!:vy(ڵ4zoݾ:"ڼiZ4u0$eh93m˖ѼhMW7t4T/8ۼrw> GG]?Azӓ$sO`YOʚ֬A,oؽuTv,Z\Qp8=z411ca?bl`.bbss gYFGmxuiq ݎ>:)?L;v3f%Ko"|/5.X@X֯'᷿Ŵg vNj0UH?QֺZ:%۞mۿ{3كNQN¸g?pu6rkX֭ÓEݽ펵nojӂ~ m׏YwӧS~c; utZt$MyӚ5>o)Ɓ3î]~Ř֬i}]|CS3gyZTE|Xڏ]f"G-3gvEh;￟ٳ-ӆcrM{?.5j@8m݊FYӝ3fymWQrcqp3h#D݆@ݔu.Z\\L.ÛGPײlMw۽kw܁7;㏷ -_:hl赼4/ZDk?1e˨nMXfe=2A#yS[l˗cyj#ш{,~=YY>rD~]֣C1ۯ˛4B jM j#SOVVD҂E'w,oZƇmc(2k?W"u 1);\n" msgctxt "#30002" msgid "Priority" msgstr "ቅድሚያ" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "ግንኙነት ጊዜው አልፏል (ሰ)" msgctxt "#30008" msgid "Channel search" msgstr "ጣቢያ መፈለጊያ" msgctxt "#30009" msgid "Channel search - Settings" msgstr "ጣቢያ መፈለጊያ - ማሰናጃ" msgctxt "#30010" msgid "Start Channel search" msgstr "ጣቢያ መፈለጊያ ማስጀመሪያ " msgctxt "#30011" msgid "Source Type" msgstr "የምንጩ አይነት " msgctxt "#30012" msgid "TV channels" msgstr "የቲቪ ጣቢያ " msgctxt "#30013" msgid "Radio channels" msgstr "የሬዲዮ ጣቢያ" msgctxt "#30017" msgid "Country" msgstr "አገር" msgctxt "#30024" msgid "Back" msgstr "ወደ ኋላ" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "ጣቢያ መፈለጊያ - በማስኬድ ላይ... %i %%" msgctxt "#30026" msgid "Type:" msgstr "አይነት :" msgctxt "#30027" msgid "Device:" msgstr "አካል :" msgctxt "#30028" msgid "Scan: %i" msgstr "ማሰሻ : %i" msgctxt "#30030" msgid "New channels: %i" msgstr "አዲስ ጣቢያዎች : %i" msgctxt "#30031" msgid "All channels: %i" msgstr "ሁሉንም ጣቢያዎች : %i" msgctxt "#30035" msgid "New channels" msgstr "አዲስ ጣቢያዎች" msgctxt "#30036" msgid "Channel search - Finished" msgstr "ጣቢያ መፈለጉን - ጨርሷል " msgctxt "#30037" msgid "No device available - exiting" msgstr "ዝግጁ አካል አልተገኘም - በመውጣት ላይ " msgctxt "#30039" msgid "Running" msgstr "በማስኬድ ላይ" msgctxt "#30041" msgid "Finished" msgstr "ጨርሷል " msgctxt "#30101" msgid "Setup" msgstr "ማዋቀሪያ " msgctxt "#30108" msgid "Channels" msgstr "ጣቢያዎች" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.ar_sa/000077500000000000000000000000001255226123100300235ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.ar_sa/strings.po000066400000000000000000000023531255226123100320570ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Arabic (Saudi Arabia) (http://www.transifex.com/projects/p/kodi-main/language/ar_SA/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ar_SA\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "مهلة(ات) الاتصال" msgctxt "#30012" msgid "TV channels" msgstr "محطات TV" msgctxt "#30013" msgid "Radio channels" msgstr "محطات الإذاغة" msgctxt "#30017" msgid "Country" msgstr "البلد" msgctxt "#30024" msgid "Back" msgstr "خلف" msgctxt "#30026" msgid "Type:" msgstr "النوع:" msgctxt "#30039" msgid "Running" msgstr "%i جزء" msgctxt "#30101" msgid "Setup" msgstr "إعدادات" msgctxt "#30108" msgid "Channels" msgstr "محطات" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.az_az/000077500000000000000000000000001255226123100300425ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.az_az/strings.po000066400000000000000000000013311255226123100320710ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Azerbaijani (Azerbaijan) (http://www.transifex.com/projects/p/kodi-main/language/az_AZ/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: az_AZ\n" "Plural-Forms: nplurals=1; plural=0;\n" msgctxt "#30017" msgid "Country" msgstr "Ölkə" msgctxt "#30026" msgid "Type:" msgstr "Növ:" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.be_by/000077500000000000000000000000001255226123100300165ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.be_by/strings.po000066400000000000000000000102011255226123100320410ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Belarusian (Belarus) (http://www.transifex.com/projects/p/kodi-main/language/be_BY/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: be_BY\n" "Plural-Forms: nplurals=4; 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 "VDR Hostname or IP" msgstr "VDR Hostname or IP" msgctxt "#30001" msgid "VNSI Port" msgstr "VNSI Port" msgctxt "#30002" msgid "Priority" msgstr "Priority" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Character Set Conversion" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Connect timeout (s)" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "Allow VDR Messages" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Read recordings from directory" msgctxt "#30007" msgid "VDR recordings directory" msgstr "VDR recordings directory" msgctxt "#30008" msgid "Channel search" msgstr "Channel search" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Channel search - Settings" msgctxt "#30010" msgid "Start Channel search" msgstr "Start Channel search" msgctxt "#30011" msgid "Source Type" msgstr "Source Type" msgctxt "#30012" msgid "TV channels" msgstr "TV channels" msgctxt "#30013" msgid "Radio channels" msgstr "Radio channels" msgctxt "#30014" msgid "FTA channels" msgstr "FTA channels" msgctxt "#30015" msgid "Scrambled channels" msgstr "Scrambled channels" msgctxt "#30016" msgid "HD channels" msgstr "HD channels" msgctxt "#30017" msgid "Country" msgstr "Country" msgctxt "#30018" msgid "Cable Inversion" msgstr "Cable Inversion" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Cable Symbolrate" msgctxt "#30020" msgid "Cable modulation" msgstr "Cable modulation" msgctxt "#30021" msgid "Terr Inversion" msgstr "Terr Inversion" msgctxt "#30022" msgid "Satellite" msgstr "Satellite" msgctxt "#30023" msgid "ATSC Type" msgstr "ATSC Type" msgctxt "#30024" msgid "Back" msgstr "Back" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Channel search - running... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Type:" msgctxt "#30027" msgid "Device:" msgstr "Device:" msgctxt "#30028" msgid "Scan: %i" msgstr "Scan: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Signal: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "New channels: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "All channels: %i" msgctxt "#30032" msgid "Analog TV" msgstr "Analog TV" msgctxt "#30033" msgid "Analog Radio" msgstr "Analog Radio" msgctxt "#30034" msgid "Transponder:" msgstr "Transponder:" msgctxt "#30035" msgid "New channels" msgstr "New channels" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Channel search - Finished" msgctxt "#30037" msgid "No device available - exiting" msgstr "No device available - exiting" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "No DVB-S2 device available - trying fallback to DVB-S" msgctxt "#30039" msgid "Running" msgstr "Running" msgctxt "#30040" msgid "Stopped" msgstr "Спынены" msgctxt "#30041" msgid "Finished" msgstr "Finished" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Channel search - Canceled" msgctxt "#30043" msgid "Channel search - Error" msgstr "Channel search - Error" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "Злучэньне да VDR сэрвэра згублена" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "Злучэньне да VDR сэрвэра адноўлена" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Create channel groups automatically on the server" msgctxt "#30101" msgid "Setup" msgstr "Setup" msgctxt "#30108" msgid "Channels" msgstr "Channels" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.bg_bg/000077500000000000000000000000001255226123100277765ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.bg_bg/strings.po000066400000000000000000000145671255226123100320440ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/kodi-main/language/bg_BG/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: bg_BG\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "VDR хост или IP адрес" msgctxt "#30001" msgid "VNSI Port" msgstr "VNSI порт" msgctxt "#30002" msgid "Priority" msgstr "Приоритет" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Конвертиране на кодировката" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Време на изчакване при свързване (с)" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "Включи VDR съобщенията" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Чети записите от папката" msgctxt "#30007" msgid "VDR recordings directory" msgstr "Папка за VDR записи" msgctxt "#30008" msgid "Channel search" msgstr "Търсене на канал" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Търсене на канал - Настройки" msgctxt "#30010" msgid "Start Channel search" msgstr "Започни търсене на канала" msgctxt "#30011" msgid "Source Type" msgstr "Вид на източника" msgctxt "#30012" msgid "TV channels" msgstr "ТВ канали" msgctxt "#30013" msgid "Radio channels" msgstr "Радио канали" msgctxt "#30014" msgid "FTA channels" msgstr "Отворени канали" msgctxt "#30015" msgid "Scrambled channels" msgstr "Кодирани канали" msgctxt "#30016" msgid "HD channels" msgstr "HD канали" msgctxt "#30017" msgid "Country" msgstr "Страна" msgctxt "#30018" msgid "Cable Inversion" msgstr "Кабелна инверсия" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Символна кабелна скорост" msgctxt "#30020" msgid "Cable modulation" msgstr "Кабелна модулация" msgctxt "#30021" msgid "Terr Inversion" msgstr "Наземна инверсия" msgctxt "#30022" msgid "Satellite" msgstr "Сателитна" msgctxt "#30023" msgid "ATSC Type" msgstr "ATSC вид" msgctxt "#30024" msgid "Back" msgstr "Назад" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Търсене на канала... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Вид:" msgctxt "#30027" msgid "Device:" msgstr "Устройство:" msgctxt "#30028" msgid "Scan: %i" msgstr "Сканирано: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Сигнал: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Нови канали: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Всички канали: %i" msgctxt "#30032" msgid "Analog TV" msgstr "Аналогова телевизия" msgctxt "#30033" msgid "Analog Radio" msgstr "Аналогово радио" msgctxt "#30034" msgid "Transponder:" msgstr "Транспондер:" msgctxt "#30035" msgid "New channels" msgstr "Нови канали" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Приключи търсенето на канали" msgctxt "#30037" msgid "No device available - exiting" msgstr "Няма налично устройство - изход" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "Няма налично DVB-S2 устройство - ще се опитам да се върна към DVB-S" msgctxt "#30039" msgid "Running" msgstr "Работи" msgctxt "#30040" msgid "Stopped" msgstr "Спряно" msgctxt "#30041" msgid "Finished" msgstr "Завършено" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Търсенето на канали прекъсна" msgctxt "#30043" msgid "Channel search - Error" msgstr "Грешка при търсенето на канали" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "Изгубена връзка с VDR сървъра" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "Връзката с VDR сървъра е възстановена" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Създай автоматично канални групи на сървъра" msgctxt "#30047" msgid "Request Timeshift" msgstr "Изисквай таймшиф" msgctxt "#30048" msgid "Path to channel icons" msgstr "Пътека към иконки за каналите" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "MAC адрес на VDR сървъра за събуждане по LAN" msgctxt "#30100" msgid "VDR OSD" msgstr "VDR екранно меню" msgctxt "#30101" msgid "Setup" msgstr "Настройване" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "Контролиране на екранното меню - натиснете инфо, за да излезете" msgctxt "#30103" msgid "Select to control OSD" msgstr "Изберете, за да контролирате екранното меню" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Таймшифт режим" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "Таймшифт буфер (RAM) x100 МБ" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Таймшифт буфер (Файл) x1 ГБ" msgctxt "#30107" msgid "VDR Admin" msgstr "VDR админ" msgctxt "#30108" msgid "Channels" msgstr "Канали" msgctxt "#30109" msgid "Provider whitelist" msgstr "Бял списък с доставчици" msgctxt "#30110" msgid "Channel blacklist" msgstr "Черен списък с канали" msgctxt "#30111" msgid "Channel filters" msgstr "Филтри на каналите" msgctxt "#30112" msgid "Radio Channels" msgstr "Радио канали" msgctxt "#30113" msgid "Save filters" msgstr "Съхрани филтрите" msgctxt "#30114" msgid "Provider Unknown" msgstr "Неизвестен доставчик" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.bs_ba/000077500000000000000000000000001255226123100300045ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.bs_ba/strings.po000066400000000000000000000021121255226123100320310ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/projects/p/kodi-main/language/bs_BA/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: bs_BA\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 "#30012" msgid "TV channels" msgstr "TV Kanali" msgctxt "#30013" msgid "Radio channels" msgstr "Radio Kanali" msgctxt "#30017" msgid "Country" msgstr "Država" msgctxt "#30026" msgid "Type:" msgstr "Tip:" msgctxt "#30039" msgid "Running" msgstr "Pokretanje" msgctxt "#30101" msgid "Setup" msgstr "Konfiguracija" msgctxt "#30108" msgid "Channels" msgstr "Kanali" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.ca_es/000077500000000000000000000000001255226123100300105ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.ca_es/strings.po000066400000000000000000000106741255226123100320510ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Catalan (Spain) (http://www.transifex.com/projects/p/kodi-main/language/ca_ES/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ca_ES\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "Nom de màquina o IP del VDR" msgctxt "#30001" msgid "VNSI Port" msgstr "Port VNSI" msgctxt "#30002" msgid "Priority" msgstr "Prioritat" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Conversió del joc de caràcters" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Temps d'espera de connexió (s)" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "Permet missatges VDR" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Llegeix els enregistraments des del direcotri" msgctxt "#30007" msgid "VDR recordings directory" msgstr "Directori d'enregistraments VDR" msgctxt "#30008" msgid "Channel search" msgstr "Cerca del canal" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Cerca de canals - Configuració" msgctxt "#30010" msgid "Start Channel search" msgstr "Inicia la cerca del canal" msgctxt "#30011" msgid "Source Type" msgstr "Tipus de font" msgctxt "#30012" msgid "TV channels" msgstr "Canals de TV" msgctxt "#30013" msgid "Radio channels" msgstr "Canals de ràdio" msgctxt "#30014" msgid "FTA channels" msgstr "Canals FTA" msgctxt "#30015" msgid "Scrambled channels" msgstr "Canals codificats" msgctxt "#30016" msgid "HD channels" msgstr "Canals HD" msgctxt "#30017" msgid "Country" msgstr "País" msgctxt "#30018" msgid "Cable Inversion" msgstr "Inversió del cable" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Cable Symbolrate" msgctxt "#30020" msgid "Cable modulation" msgstr "Modulació del cable" msgctxt "#30021" msgid "Terr Inversion" msgstr "Inversió Terr" msgctxt "#30022" msgid "Satellite" msgstr "Satèl·lit" msgctxt "#30023" msgid "ATSC Type" msgstr "Tipus ATSC" msgctxt "#30024" msgid "Back" msgstr "Enrere" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Cerca de canals - executant... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Tipus:" msgctxt "#30027" msgid "Device:" msgstr "Dispositiu:" msgctxt "#30028" msgid "Scan: %i" msgstr "Escaneig: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Senyal: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Canals nous: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Tots els canals: %i" msgctxt "#30032" msgid "Analog TV" msgstr "TV analògica" msgctxt "#30033" msgid "Analog Radio" msgstr "Ràdio analògica" msgctxt "#30034" msgid "Transponder:" msgstr "Transponedor:" msgctxt "#30035" msgid "New channels" msgstr "Canals nous" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Cerca del canal - Finalitzada" msgctxt "#30037" msgid "No device available - exiting" msgstr "No hi ha cap dispositiu disponible - sortint" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "Dispositiu DVB-S2 no disponible - intentant tornar a DVB-S" msgctxt "#30039" msgid "Running" msgstr "S'està executant" msgctxt "#30040" msgid "Stopped" msgstr "Aturat" msgctxt "#30041" msgid "Finished" msgstr "Finalitzat" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Cerca del canal - Cancel·lat" msgctxt "#30043" msgid "Channel search - Error" msgstr "Cerca de canals - Error" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "S'ha perdut la connexió amb el servidor VDR" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "S'ha restaurat la connexió amb el servidor VDR" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Crea grups de canals de forma automàtica al servidor" msgctxt "#30048" msgid "Path to channel icons" msgstr "Camí a les icones del canal" msgctxt "#30101" msgid "Setup" msgstr "Configuració" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Mode Timeshift" msgctxt "#30107" msgid "VDR Admin" msgstr "Administrador VDR" msgctxt "#30108" msgid "Channels" msgstr "Canals" msgctxt "#30113" msgid "Save filters" msgstr "Desa els filtres" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.cs_cz/000077500000000000000000000000001255226123100300375ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.cs_cz/strings.po000066400000000000000000000127541255226123100321010ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/kodi-main/language/cs_CZ/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: cs_CZ\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "Název počítače, nebo IP adresa VDR" msgctxt "#30001" msgid "VNSI Port" msgstr "Port VNSI" msgctxt "#30002" msgid "Priority" msgstr "Priorita" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Převod znakové sady" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Časový limit spojení" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "Povolit zprávy VDR" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Načíst nahrávky z adresáře" msgctxt "#30007" msgid "VDR recordings directory" msgstr "Adresář nahrávek VDR" msgctxt "#30008" msgid "Channel search" msgstr "Hledání kanálů" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Hledání kanálů - Nastavení" msgctxt "#30010" msgid "Start Channel search" msgstr "Zahájit hledání kanálů" msgctxt "#30011" msgid "Source Type" msgstr "Typ zdroje" msgctxt "#30012" msgid "TV channels" msgstr "Televizní kanály" msgctxt "#30013" msgid "Radio channels" msgstr "Rádiové kanály" msgctxt "#30014" msgid "FTA channels" msgstr "Nekódované kanály" msgctxt "#30015" msgid "Scrambled channels" msgstr "Kódované kanály" msgctxt "#30016" msgid "HD channels" msgstr "HD kanály" msgctxt "#30017" msgid "Country" msgstr "Země" msgctxt "#30018" msgid "Cable Inversion" msgstr "Inverze kabelu" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Symbolová rychlost kabelu" msgctxt "#30020" msgid "Cable modulation" msgstr "Modulace kabelu" msgctxt "#30021" msgid "Terr Inversion" msgstr "Inverze pozemního příjmu" msgctxt "#30022" msgid "Satellite" msgstr "Satelit" msgctxt "#30023" msgid "ATSC Type" msgstr "Typ ATSC" msgctxt "#30024" msgid "Back" msgstr "Zpět" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Hledání kanálů - vyhledávám... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Typ:" msgctxt "#30027" msgid "Device:" msgstr "Zařízení:" msgctxt "#30028" msgid "Scan: %i" msgstr "Vyhledávání: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Signál: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Nové kanály: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Všechny kanály: %i" msgctxt "#30032" msgid "Analog TV" msgstr "Analogová televize" msgctxt "#30033" msgid "Analog Radio" msgstr "Analogové rádio" msgctxt "#30034" msgid "Transponder:" msgstr "Transpondér:" msgctxt "#30035" msgid "New channels" msgstr "Nové kanály" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Hledání kanálů - dokončeno" msgctxt "#30037" msgid "No device available - exiting" msgstr "Není dostupné žádné zařízení - končím" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "Není dostupné žádné zařízení DVB-S2 - zkouším se přepnout do DVB-S" msgctxt "#30039" msgid "Running" msgstr "Běží" msgctxt "#30040" msgid "Stopped" msgstr "Zastaveno" msgctxt "#30041" msgid "Finished" msgstr "Dokončeno" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Vyhledávání kanálů - zrušeno" msgctxt "#30043" msgid "Channel search - Error" msgstr "Vyhledávání kanálů - chyba" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "Spojení se serverem VDR bylo ztraceno" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "Spojení se serverem VDR bylo obnoveno" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Automaticky vytvářet skupiny kanálu na serveru" msgctxt "#30047" msgid "Request Timeshift" msgstr "Vyžádat časový posun" msgctxt "#30048" msgid "Path to channel icons" msgstr "Cesta k ikonám kanálů" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "MAC adresa VDR severu pro Wake-on-LAN" msgctxt "#30100" msgid "VDR OSD" msgstr "VDR OSD" msgctxt "#30101" msgid "Setup" msgstr "Nastavení" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "Ovládám OSD - stiskněte info pro ukončení" msgctxt "#30103" msgid "Select to control OSD" msgstr "Vyberte k ovládání OSD" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Režim časového posunu" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "Zásobník časového posunu (RAM) x100 MB" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Zásobník časového posunu (Soubor) x1 GB" msgctxt "#30107" msgid "VDR Admin" msgstr "Správce VDR" msgctxt "#30108" msgid "Channels" msgstr "Kanály" msgctxt "#30109" msgid "Provider whitelist" msgstr "Povolení poskytovatelé" msgctxt "#30110" msgid "Channel blacklist" msgstr "Ignorované programy" msgctxt "#30111" msgid "Channel filters" msgstr "Filtr programů" msgctxt "#30112" msgid "Radio Channels" msgstr "Rádiové kanály" msgctxt "#30113" msgid "Save filters" msgstr "Ulož filtry" msgctxt "#30114" msgid "Provider Unknown" msgstr "Neznámy poskytovatel" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.cy_gb/000077500000000000000000000000001255226123100300215ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.cy_gb/strings.po000066400000000000000000000124541255226123100320600ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Welsh (United Kingdom) (http://www.transifex.com/projects/p/kodi-main/language/cy_GB/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: cy_GB\n" "Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "Enw gwesteiwr neu gyfeiriad IP VDR" msgctxt "#30001" msgid "VNSI Port" msgstr "Porth VNSI" msgctxt "#30002" msgid "Priority" msgstr "Blaenoriaeth:" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Trosi'r Set Nod" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Amser allan cysylltu (e)" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "Caniatáu Negeseuon VDR" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Darllen recordiadau o gyferiadur" msgctxt "#30007" msgid "VDR recordings directory" msgstr "Cyfeiriadur recordiadau VDR" msgctxt "#30008" msgid "Channel search" msgstr "Chwilio sianeli" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Chwilio sianeli - Gosodiadau" msgctxt "#30010" msgid "Start Channel search" msgstr "Cychwyn chwilio Sianeli" msgctxt "#30011" msgid "Source Type" msgstr "Math Ffynhonnell" msgctxt "#30012" msgid "TV channels" msgstr "Sianeli teledu" msgctxt "#30013" msgid "Radio channels" msgstr "Sianeli radio" msgctxt "#30014" msgid "FTA channels" msgstr "Sianeli Rhydd" msgctxt "#30015" msgid "Scrambled channels" msgstr "Sianeli caeëdig" msgctxt "#30016" msgid "HD channels" msgstr "Sianeli Clir" msgctxt "#30017" msgid "Country" msgstr "Gwlad" msgctxt "#30018" msgid "Cable Inversion" msgstr "Gwrthdroad Cebl" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Graddfa Symbol Cebl" msgctxt "#30020" msgid "Cable modulation" msgstr "Modyliad cebl" msgctxt "#30021" msgid "Terr Inversion" msgstr "Gwthdroad Terr" msgctxt "#30022" msgid "Satellite" msgstr "Lloeren" msgctxt "#30023" msgid "ATSC Type" msgstr "Math ATSC" msgctxt "#30024" msgid "Back" msgstr "Nôl" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Chwilio sianeli - rhedeg %i %%" msgctxt "#30026" msgid "Type:" msgstr "Math:" msgctxt "#30027" msgid "Device:" msgstr "Dyfeisiau:" msgctxt "#30028" msgid "Scan: %i" msgstr "Sgan: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Signal: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Sianeli newydd: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Pob sianel: %i" msgctxt "#30032" msgid "Analog TV" msgstr "Teledu Analog" msgctxt "#30033" msgid "Analog Radio" msgstr "Radio Analog" msgctxt "#30034" msgid "Transponder:" msgstr "Trawspondydd:" msgctxt "#30035" msgid "New channels" msgstr "Sianeli newydd" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Chwilio sianel - Wedi gorffen" msgctxt "#30037" msgid "No device available - exiting" msgstr "Dim dyfais ar gael - gadael" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "Dim dyfais DVB-S2 ar gael - ceisio mynd yn ôl i DVB-S" msgctxt "#30039" msgid "Running" msgstr "Rhedeg" msgctxt "#30040" msgid "Stopped" msgstr "Ataliwyd" msgctxt "#30041" msgid "Finished" msgstr "Gorffennwyd" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Chwilio sianeli - Diddymwyd" msgctxt "#30043" msgid "Channel search - Error" msgstr "Chwilio sianel - Gwall" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "Collwyd y cysylltiad â'r Gweinydd VDR" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "Cysylltiad â'r Gweinydd VDR wedi ei adfer" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Creu grwpiau sianel yn awtomatig ar y gweinydd" msgctxt "#30047" msgid "Request Timeshift" msgstr "Gofyn am Sy,mud Amser" msgctxt "#30048" msgid "Path to channel icons" msgstr "Llwybr i eiconau sianel" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "VDR Server MAC ar gyfer Wake-on-LAN" msgctxt "#30100" msgid "VDR OSD" msgstr " OSD VDR" msgctxt "#30101" msgid "Setup" msgstr "Gosod" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "Rheoli OSD - pwyso gwyb i adael" msgctxt "#30103" msgid "Select to control OSD" msgstr "Dewis i reoli'r OSD" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Modd Symud Amser" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "Byffer Symud Amser(RAM) x100 MB" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Byffer Symud Amser (File) x1 GB" msgctxt "#30107" msgid "VDR Admin" msgstr "Gweinyddiaeth VDR" msgctxt "#30108" msgid "Channels" msgstr "Sianeli" msgctxt "#30109" msgid "Provider whitelist" msgstr "Rhestr wen darparwr" msgctxt "#30110" msgid "Channel blacklist" msgstr "Rhestr ddu sianel" msgctxt "#30111" msgid "Channel filters" msgstr "Hidlau sianel" msgctxt "#30112" msgid "Radio Channels" msgstr "Sianeli radio" msgctxt "#30113" msgid "Save filters" msgstr "Cadw hidlau" msgctxt "#30114" msgid "Provider Unknown" msgstr "Darparwr Anhysbys" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.da_dk/000077500000000000000000000000001255226123100300005ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.da_dk/strings.po000066400000000000000000000123661255226123100320410ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Danish (Denmark) (http://www.transifex.com/projects/p/kodi-main/language/da_DK/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: da_DK\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "VDR værtsnavn eller IP-adresse" msgctxt "#30001" msgid "VNSI Port" msgstr "VNSI port" msgctxt "#30002" msgid "Priority" msgstr "Prioritet" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Tegnsæt konvertering" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Tidsfrist for forbindelse (s)" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "Tillad VDR meddelser" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Indlæs optagelser fra mappen" msgctxt "#30007" msgid "VDR recordings directory" msgstr "VDR optagelsesmappen" msgctxt "#30008" msgid "Channel search" msgstr "Kanalsøgning" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Kanalsøgning - Indstillinger" msgctxt "#30010" msgid "Start Channel search" msgstr "Start Kanalsøgning" msgctxt "#30011" msgid "Source Type" msgstr "Kildetype" msgctxt "#30012" msgid "TV channels" msgstr "Tv-kanaler" msgctxt "#30013" msgid "Radio channels" msgstr "Radiokanaler" msgctxt "#30014" msgid "FTA channels" msgstr "Ukodede kanaler" msgctxt "#30015" msgid "Scrambled channels" msgstr "Kodede kanaler" msgctxt "#30016" msgid "HD channels" msgstr "HD kanaler" msgctxt "#30017" msgid "Country" msgstr "Land" msgctxt "#30018" msgid "Cable Inversion" msgstr "Kabelinvertering" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Kabel symbol rate" msgctxt "#30020" msgid "Cable modulation" msgstr "Kabelmodulation" msgctxt "#30021" msgid "Terr Inversion" msgstr "Terr invertering" msgctxt "#30022" msgid "Satellite" msgstr "Satellit" msgctxt "#30023" msgid "ATSC Type" msgstr "ATSC Type" msgctxt "#30024" msgid "Back" msgstr "Tilbage" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Kanalsøgning - kører... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Type:" msgctxt "#30027" msgid "Device:" msgstr "Enhed:" msgctxt "#30028" msgid "Scan: %i" msgstr "Skan: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Signal: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Nye kanaler: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Alle kanaler: %i" msgctxt "#30032" msgid "Analog TV" msgstr "Analog TV" msgctxt "#30033" msgid "Analog Radio" msgstr "Analog Radio" msgctxt "#30034" msgid "Transponder:" msgstr "Transponder:" msgctxt "#30035" msgid "New channels" msgstr "Nye kanaler" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Kanalsøgning - Færdig" msgctxt "#30037" msgid "No device available - exiting" msgstr "Ingen enhed tilgængelig - afslutter" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "Ingen DVB-S2 enhed tingængelig - prøver DVB-S reserve" msgctxt "#30039" msgid "Running" msgstr "Kører" msgctxt "#30040" msgid "Stopped" msgstr "Stoppet" msgctxt "#30041" msgid "Finished" msgstr "Færdig" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Kanalsøgning - Annulleret" msgctxt "#30043" msgid "Channel search - Error" msgstr "Kanalsøgning - Fejl" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "Mistede forbindelsen til VDR server" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "Forbindelsen er genoprettet til VDR server" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Opret automatisk en kanalgruppe på serveren" msgctxt "#30047" msgid "Request Timeshift" msgstr "Ønsk tidsforskydning" msgctxt "#30048" msgid "Path to channel icons" msgstr "Sti til kanal ikoner" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "VDR Server MAC-adresse til Wake-on-LAN (WOL)" msgctxt "#30100" msgid "VDR OSD" msgstr "VDR OSD" msgctxt "#30101" msgid "Setup" msgstr "Opsætning" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "Kontrollere OSD - tryk på info for at forlade" msgctxt "#30103" msgid "Select to control OSD" msgstr "Vælg for at kontrollere OSD" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Tidsforskydningstilstand" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "Tidsforskydningsbuffer (RAM) X 100 MB" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Tidsforskyningsbuffer (Fil) X 1 Gb" msgctxt "#30107" msgid "VDR Admin" msgstr "VDR Administration" msgctxt "#30108" msgid "Channels" msgstr "Kanaler" msgctxt "#30109" msgid "Provider whitelist" msgstr "Udbyder whitelist" msgctxt "#30110" msgid "Channel blacklist" msgstr "Kanal sortliste" msgctxt "#30111" msgid "Channel filters" msgstr "Kanalfiltre" msgctxt "#30112" msgid "Radio Channels" msgstr "Radiokanaler" msgctxt "#30113" msgid "Save filters" msgstr "Gem filtre" msgctxt "#30114" msgid "Provider Unknown" msgstr "Udbyder Ukendt" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.de_de/000077500000000000000000000000001255226123100277765ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.de_de/strings.po000066400000000000000000000124461255226123100320360ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: German (Germany) (http://www.transifex.com/projects/p/kodi-main/language/de_DE/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "VDR Hostname oder IP" msgctxt "#30001" msgid "VNSI Port" msgstr "VNSI Port" msgctxt "#30002" msgid "Priority" msgstr "Priorität" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Zeichensatzkonvertierung" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Verbindungszeitüberschreitung (s)" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "VDR Nachrichten erlauben" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Aufnahmen aus Ordner lesen" msgctxt "#30007" msgid "VDR recordings directory" msgstr "VDR Aufnahmeordner" msgctxt "#30008" msgid "Channel search" msgstr "Sendersuche" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Sendersuche - Einstellungen" msgctxt "#30010" msgid "Start Channel search" msgstr "Sendersuche starten" msgctxt "#30011" msgid "Source Type" msgstr "Empfangsart" msgctxt "#30012" msgid "TV channels" msgstr "TV Sender" msgctxt "#30013" msgid "Radio channels" msgstr "Radio Sender" msgctxt "#30014" msgid "FTA channels" msgstr "Frei empfangbare Sender" msgctxt "#30015" msgid "Scrambled channels" msgstr "Verschlüsselte Sender" msgctxt "#30016" msgid "HD channels" msgstr "HD Sender" msgctxt "#30017" msgid "Country" msgstr "Land" msgctxt "#30018" msgid "Cable Inversion" msgstr "Kabel Inversion" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Kabel Symbolrate" msgctxt "#30020" msgid "Cable modulation" msgstr "Kabel Modulation" msgctxt "#30021" msgid "Terr Inversion" msgstr "Terrestrisch Inversion" msgctxt "#30022" msgid "Satellite" msgstr "Satellit" msgctxt "#30023" msgid "ATSC Type" msgstr "ATSC Typ" msgctxt "#30024" msgid "Back" msgstr "Zurück" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Sendersuche - läuft... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Empfangsart:" msgctxt "#30027" msgid "Device:" msgstr "Gerät:" msgctxt "#30028" msgid "Scan: %i" msgstr "Fortschritt: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Signal: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Neue Sender: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Alle Sender: %i" msgctxt "#30032" msgid "Analog TV" msgstr "Analog TV" msgctxt "#30033" msgid "Analog Radio" msgstr "Analog Radio" msgctxt "#30034" msgid "Transponder:" msgstr "Transponder:" msgctxt "#30035" msgid "New channels" msgstr "Neue Sender" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Sendersuche - Abgeschlossen" msgctxt "#30037" msgid "No device available - exiting" msgstr "Kein Empfangsgerät verfügbar - Beende Vorgang" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "Kein DVB-S2 Empfangsgerät verfügbar - versuche DVB-S" msgctxt "#30039" msgid "Running" msgstr "Läuft..." msgctxt "#30040" msgid "Stopped" msgstr "Angehalten" msgctxt "#30041" msgid "Finished" msgstr "Abgeschlossen" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Sendersuche - Abgebrochen" msgctxt "#30043" msgid "Channel search - Error" msgstr "Sendersuche - Fehler" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "Verbindung zum VDR Server unterbrochen" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "Verbindung zum VDR Server wiederhergestellt" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Sendergruppen automatisch auf dem Server anlegen" msgctxt "#30047" msgid "Request Timeshift" msgstr "Fordere Timeshift an" msgctxt "#30048" msgid "Path to channel icons" msgstr "Pfad zu den Kanal-Icons" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "VDR-Server-MAC-Adresse für Wake-on-LAN" msgctxt "#30100" msgid "VDR OSD" msgstr "VDR OSD" msgctxt "#30101" msgid "Setup" msgstr "Setup" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "OSD-Steuerung aktiv - Drücke Info zum Verlassen" msgctxt "#30103" msgid "Select to control OSD" msgstr "Auswählen zur OSD-Steuerung" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Timeshift-Modus" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "Timeshift Puffer (RAM) x100MB" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Timeshift Puffer (Datei) x1 GB" msgctxt "#30107" msgid "VDR Admin" msgstr "VDR Admin" msgctxt "#30108" msgid "Channels" msgstr "Sender" msgctxt "#30109" msgid "Provider whitelist" msgstr "Positivliste der Anbieter" msgctxt "#30110" msgid "Channel blacklist" msgstr "Negativliste der Kanäle" msgctxt "#30111" msgid "Channel filters" msgstr "Kanalfilter" msgctxt "#30112" msgid "Radio Channels" msgstr "Radio Sender" msgctxt "#30113" msgid "Save filters" msgstr "Filter speichern" msgctxt "#30114" msgid "Provider Unknown" msgstr "Anbieter unbekannt" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.el_gr/000077500000000000000000000000001255226123100300265ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.el_gr/strings.po000066400000000000000000000146421255226123100320660ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Greek (Greece) (http://www.transifex.com/projects/p/kodi-main/language/el_GR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: el_GR\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "Όνομα Υπολογιστή ή IP του VDR" msgctxt "#30001" msgid "VNSI Port" msgstr "Θύρα VNSI" msgctxt "#30002" msgid "Priority" msgstr "Προτεραιότητα" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Μετατροπή Συνόλου Χαρακτήρων" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Χρονικό όριο σύνδεσης (s)" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "Να επιτρέπονται Μηνύματα VDR" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Ανάγνωση εγγραφών από φάκελο" msgctxt "#30007" msgid "VDR recordings directory" msgstr "Φάκελος εγγραφών VDR" msgctxt "#30008" msgid "Channel search" msgstr "Αναζήτηση Καναλιών" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Αναζήτηση Καναλιών - Ρυθμίσεις" msgctxt "#30010" msgid "Start Channel search" msgstr "Εκκίνηση αναζήτησης Καναλιών" msgctxt "#30011" msgid "Source Type" msgstr "Τύπος Πηγής" msgctxt "#30012" msgid "TV channels" msgstr "Τηλεοπτικά κανάλια" msgctxt "#30013" msgid "Radio channels" msgstr "Ραδιοφωνικοί σταθμοί" msgctxt "#30014" msgid "FTA channels" msgstr "Ελεύθερα κανάλια" msgctxt "#30015" msgid "Scrambled channels" msgstr "Κωδικοποιημένα κανάλια" msgctxt "#30016" msgid "HD channels" msgstr "HD Κανάλια" msgctxt "#30017" msgid "Country" msgstr "Χώρα" msgctxt "#30018" msgid "Cable Inversion" msgstr "Cable Inversion" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Cable Symbolrate" msgctxt "#30020" msgid "Cable modulation" msgstr "Cable modulation" msgctxt "#30021" msgid "Terr Inversion" msgstr "Terr Inversion" msgctxt "#30022" msgid "Satellite" msgstr "Δορυφορικά" msgctxt "#30023" msgid "ATSC Type" msgstr "Τύπος ATSC" msgctxt "#30024" msgid "Back" msgstr "Πίσω" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Αναζήτηση καναλιών - εκτελείται... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Τύπος:" msgctxt "#30027" msgid "Device:" msgstr "Συσκευή:" msgctxt "#30028" msgid "Scan: %i" msgstr "Σάρωση: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Σήμα: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Νέα κανάλια: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Όλα τα κανάλια: %i" msgctxt "#30032" msgid "Analog TV" msgstr "Αναλογική Τηλεόραση" msgctxt "#30033" msgid "Analog Radio" msgstr "Αναλογικό Ραδιόφωνο" msgctxt "#30034" msgid "Transponder:" msgstr "Αναμεταδότης:" msgctxt "#30035" msgid "New channels" msgstr "Νέα κανάλια" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Αναζήτηση καναλιών - Ολοκληρώθηκε" msgctxt "#30037" msgid "No device available - exiting" msgstr "Καμία συσκευή διαθέσιμη - έξοδος" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "Καμία συσκευή DVB-S2 διαθέσιμη - δοκιμή του εφεδρικού DVB-S" msgctxt "#30039" msgid "Running" msgstr "Εκτελείται" msgctxt "#30040" msgid "Stopped" msgstr "Διεκόπη" msgctxt "#30041" msgid "Finished" msgstr "Ολοκληρώθηκε" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Αναζήτηση καναλιών - Ακυρώθηκε" msgctxt "#30043" msgid "Channel search - Error" msgstr "Αναζήτηση καναλιών - Σφάλμα" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "Απώλεια σύνδεσης με το διακομιστή VDR" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "Αποκαταστάθηκε η σύνδεση με το διακομιστή VDR" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Αυτόματη δημιουργία γκρουπ καναλιών σε αυτό το διακομιστή" msgctxt "#30047" msgid "Request Timeshift" msgstr "Αίτημα για Timeshift" msgctxt "#30048" msgid "Path to channel icons" msgstr "Διαδρομή για εικονίδια καναλιών" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "MAC του Διακομιστή VDR για Wake-on-LAN" msgctxt "#30100" msgid "VDR OSD" msgstr "OSD του VDR" msgctxt "#30101" msgid "Setup" msgstr "Εγκατάσταση" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "Έλεγχος OSD - πιέστε το info για έξοδο" msgctxt "#30103" msgid "Select to control OSD" msgstr "Επιλέξτε για έλεγχο του OSD" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Λειτουργία Timeshift" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "Προσωρινή Αποθήκευση του Timeshift (RAM) x100 MB" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Προσωρινή Αποθήκευση του Timeshift (Αρχείο) x1 GB" msgctxt "#30107" msgid "VDR Admin" msgstr "Admin του VDR" msgctxt "#30108" msgid "Channels" msgstr "Κανάλια" msgctxt "#30109" msgid "Provider whitelist" msgstr "Λευκή λίστα παρόχων" msgctxt "#30110" msgid "Channel blacklist" msgstr "Μαύρη λίστα καναλιών" msgctxt "#30111" msgid "Channel filters" msgstr "Φίλτρα καναλιών" msgctxt "#30112" msgid "Radio Channels" msgstr "Ραδιοφωνικοί Σταθμοί" msgctxt "#30113" msgid "Save filters" msgstr "Αποθήκευση φίλτρων" msgctxt "#30114" msgid "Provider Unknown" msgstr "Άγνωστος Πάροχος" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.en_au/000077500000000000000000000000001255226123100300255ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.en_au/strings.po000066400000000000000000000122561255226123100320640ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: English (Australia) (http://www.transifex.com/projects/p/kodi-main/language/en_AU/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: en_AU\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "VDR Hostname or IP" msgctxt "#30001" msgid "VNSI Port" msgstr "VNSI Port" msgctxt "#30002" msgid "Priority" msgstr "Priority" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Character Set Conversion" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Connect timeout (s)" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "Allow VDR Messages" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Read recordings from directory" msgctxt "#30007" msgid "VDR recordings directory" msgstr "VDR recordings directory" msgctxt "#30008" msgid "Channel search" msgstr "Channel search" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Channel search - Settings" msgctxt "#30010" msgid "Start Channel search" msgstr "Start Channel search" msgctxt "#30011" msgid "Source Type" msgstr "Source Type" msgctxt "#30012" msgid "TV channels" msgstr "TV channels" msgctxt "#30013" msgid "Radio channels" msgstr "Radio channels" msgctxt "#30014" msgid "FTA channels" msgstr "FTA channels" msgctxt "#30015" msgid "Scrambled channels" msgstr "Scrambled channels" msgctxt "#30016" msgid "HD channels" msgstr "HD channels" msgctxt "#30017" msgid "Country" msgstr "Country" msgctxt "#30018" msgid "Cable Inversion" msgstr "Cable Inversion" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Cable Symbolrate" msgctxt "#30020" msgid "Cable modulation" msgstr "Cable modulation" msgctxt "#30021" msgid "Terr Inversion" msgstr "Terr Inversion" msgctxt "#30022" msgid "Satellite" msgstr "Satellite" msgctxt "#30023" msgid "ATSC Type" msgstr "ATSC Type" msgctxt "#30024" msgid "Back" msgstr "Back" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Channel search - running... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Type:" msgctxt "#30027" msgid "Device:" msgstr "Device:" msgctxt "#30028" msgid "Scan: %i" msgstr "Scan: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Signal: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "New channels: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "All channels: %i" msgctxt "#30032" msgid "Analog TV" msgstr "Analogue TV" msgctxt "#30033" msgid "Analog Radio" msgstr "Analogue Radio" msgctxt "#30034" msgid "Transponder:" msgstr "Transponder:" msgctxt "#30035" msgid "New channels" msgstr "New channels" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Channel search - Finished" msgctxt "#30037" msgid "No device available - exiting" msgstr "No device available - exiting" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "No DVB-S2 device available - trying fallback to DVB-S" msgctxt "#30039" msgid "Running" msgstr "Running" msgctxt "#30040" msgid "Stopped" msgstr "Stopped" msgctxt "#30041" msgid "Finished" msgstr "Finished" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Channel search - Cancelled" msgctxt "#30043" msgid "Channel search - Error" msgstr "Channel search - Error" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "Lost connection to VDR Server" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "Connection to VDR Server restored" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Create channel groups automatically on the server" msgctxt "#30047" msgid "Request Timeshift" msgstr "Request Timeshift" msgctxt "#30048" msgid "Path to channel icons" msgstr "Path to channel icons" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "VDR Server MAC for Wake-on-LAN" msgctxt "#30100" msgid "VDR OSD" msgstr "VDR OSD" msgctxt "#30101" msgid "Setup" msgstr "Setup" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "Controlling OSD - press info to exit" msgctxt "#30103" msgid "Select to control OSD" msgstr "Select to control OSD" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Timeshift Mode" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "Timeshift Buffer (RAM) x100 MB" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Timeshift Buffer (File) x1 GB" msgctxt "#30107" msgid "VDR Admin" msgstr "VDR Admin" msgctxt "#30108" msgid "Channels" msgstr "Channels" msgctxt "#30109" msgid "Provider whitelist" msgstr "Provider whitelist" msgctxt "#30110" msgid "Channel blacklist" msgstr "Channel blacklist" msgctxt "#30111" msgid "Channel filters" msgstr "Channel filters" msgctxt "#30112" msgid "Radio Channels" msgstr "Radio Channels" msgctxt "#30113" msgid "Save filters" msgstr "Save filters" msgctxt "#30114" msgid "Provider Unknown" msgstr "Provider Unknown" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.en_gb/000077500000000000000000000000001255226123100300105ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.en_gb/strings.po000066400000000000000000000102021255226123100320340ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: English (United Kingdom) (http://www.transifex.com/projects/p/kodi-main/language/en_GB/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: en_GB\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #settings labels msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "" msgctxt "#30001" msgid "VNSI Port" msgstr "" msgctxt "#30002" msgid "Priority" msgstr "" msgctxt "#30003" msgid "Character Set Conversion" msgstr "" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "" msgctxt "#30006" msgid "Read recordings from directory" msgstr "" msgctxt "#30007" msgid "VDR recordings directory" msgstr "" msgctxt "#30008" msgid "Channel search" msgstr "" msgctxt "#30009" msgid "Channel search - Settings" msgstr "" msgctxt "#30010" msgid "Start Channel search" msgstr "" msgctxt "#30011" msgid "Source Type" msgstr "" msgctxt "#30012" msgid "TV channels" msgstr "" msgctxt "#30013" msgid "Radio channels" msgstr "" msgctxt "#30014" msgid "FTA channels" msgstr "" msgctxt "#30015" msgid "Scrambled channels" msgstr "" msgctxt "#30016" msgid "HD channels" msgstr "" msgctxt "#30017" msgid "Country" msgstr "" msgctxt "#30018" msgid "Cable Inversion" msgstr "" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "" msgctxt "#30020" msgid "Cable modulation" msgstr "" msgctxt "#30021" msgid "Terr Inversion" msgstr "" msgctxt "#30022" msgid "Satellite" msgstr "" msgctxt "#30023" msgid "ATSC Type" msgstr "" msgctxt "#30024" msgid "Back" msgstr "" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "" msgctxt "#30026" msgid "Type:" msgstr "" msgctxt "#30027" msgid "Device:" msgstr "" msgctxt "#30028" msgid "Scan: %i" msgstr "" msgctxt "#30029" msgid "Signal: %i %%" msgstr "" msgctxt "#30030" msgid "New channels: %i" msgstr "" msgctxt "#30031" msgid "All channels: %i" msgstr "" msgctxt "#30032" msgid "Analog TV" msgstr "" msgctxt "#30033" msgid "Analog Radio" msgstr "" msgctxt "#30034" msgid "Transponder:" msgstr "" msgctxt "#30035" msgid "New channels" msgstr "" msgctxt "#30036" msgid "Channel search - Finished" msgstr "" msgctxt "#30037" msgid "No device available - exiting" msgstr "" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "" msgctxt "#30039" msgid "Running" msgstr "" msgctxt "#30040" msgid "Stopped" msgstr "" msgctxt "#30041" msgid "Finished" msgstr "" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "" msgctxt "#30043" msgid "Channel search - Error" msgstr "" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "" msgctxt "#30047" msgid "Request Timeshift" msgstr "" msgctxt "#30048" msgid "Path to channel icons" msgstr "" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "" #empty strings from id 30050 to 30099 msgctxt "#30100" msgid "VDR OSD" msgstr "" msgctxt "#30101" msgid "Setup" msgstr "" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "" msgctxt "#30103" msgid "Select to control OSD" msgstr "" msgctxt "#30104" msgid "Timeshift Mode" msgstr "" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "" msgctxt "#30107" msgid "VDR Admin" msgstr "" msgctxt "#30108" msgid "Channels" msgstr "" msgctxt "#30109" msgid "Provider whitelist" msgstr "" msgctxt "#30110" msgid "Channel blacklist" msgstr "" msgctxt "#30111" msgid "Channel filters" msgstr "" msgctxt "#30112" msgid "Radio Channels" msgstr "" msgctxt "#30113" msgid "Save filters" msgstr "" msgctxt "#30114" msgid "Provider Unknown" msgstr "" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.en_nz/000077500000000000000000000000001255226123100300475ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.en_nz/strings.po000066400000000000000000000122531255226123100321030ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: English (New Zealand) (http://www.transifex.com/projects/p/kodi-main/language/en_NZ/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: en_NZ\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "VDR Hostname or IP" msgctxt "#30001" msgid "VNSI Port" msgstr "VNSI Port" msgctxt "#30002" msgid "Priority" msgstr "Priority" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Character Set Conversion" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Connect timeout (s)" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "Allow VDR Messages" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Read recordings from directory" msgctxt "#30007" msgid "VDR recordings directory" msgstr "VDR recordings directory" msgctxt "#30008" msgid "Channel search" msgstr "Channel search" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Channel search - Settings" msgctxt "#30010" msgid "Start Channel search" msgstr "Start Channel search" msgctxt "#30011" msgid "Source Type" msgstr "Source Type" msgctxt "#30012" msgid "TV channels" msgstr "TV channels" msgctxt "#30013" msgid "Radio channels" msgstr "Radio channels" msgctxt "#30014" msgid "FTA channels" msgstr "FTA channels" msgctxt "#30015" msgid "Scrambled channels" msgstr "Scrambled channels" msgctxt "#30016" msgid "HD channels" msgstr "HD channels" msgctxt "#30017" msgid "Country" msgstr "Country" msgctxt "#30018" msgid "Cable Inversion" msgstr "Cable Inversion" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Cable Symbolrate" msgctxt "#30020" msgid "Cable modulation" msgstr "Cable modulation" msgctxt "#30021" msgid "Terr Inversion" msgstr "Terr Inversion" msgctxt "#30022" msgid "Satellite" msgstr "Satellite" msgctxt "#30023" msgid "ATSC Type" msgstr "ATSC Type" msgctxt "#30024" msgid "Back" msgstr "Back" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Channel search - running... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Type:" msgctxt "#30027" msgid "Device:" msgstr "Device:" msgctxt "#30028" msgid "Scan: %i" msgstr "Scan: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Signal: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "New channels: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "All channels: %i" msgctxt "#30032" msgid "Analog TV" msgstr "Analog TV" msgctxt "#30033" msgid "Analog Radio" msgstr "Analog Radio" msgctxt "#30034" msgid "Transponder:" msgstr "Transponder:" msgctxt "#30035" msgid "New channels" msgstr "New channels" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Channel search - Finished" msgctxt "#30037" msgid "No device available - exiting" msgstr "No device available - exiting" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "No DVB-S2 device available - trying fallback to DVB-S" msgctxt "#30039" msgid "Running" msgstr "Running" msgctxt "#30040" msgid "Stopped" msgstr "Stopped" msgctxt "#30041" msgid "Finished" msgstr "Finished" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Channel search - Canceled" msgctxt "#30043" msgid "Channel search - Error" msgstr "Channel search - Error" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "Lost connection to VDR Server" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "Connection to VDR Server restored" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Create channel groups automatically on the server" msgctxt "#30047" msgid "Request Timeshift" msgstr "Request Timeshift" msgctxt "#30048" msgid "Path to channel icons" msgstr "Path to channel icons" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "VDR Server MAC for Wake-on-LAN" msgctxt "#30100" msgid "VDR OSD" msgstr "VDR OSD" msgctxt "#30101" msgid "Setup" msgstr "Setup" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "Controlling OSD - press info to exit" msgctxt "#30103" msgid "Select to control OSD" msgstr "Select to control OSD" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Timeshift Mode" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "Timeshift Buffer (RAM) x100 MB" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Timeshift Buffer (File) x1 GB" msgctxt "#30107" msgid "VDR Admin" msgstr "VDR Admin" msgctxt "#30108" msgid "Channels" msgstr "Channels" msgctxt "#30109" msgid "Provider whitelist" msgstr "Provider whitelist" msgctxt "#30110" msgid "Channel blacklist" msgstr "Channel blacklist" msgctxt "#30111" msgid "Channel filters" msgstr "Channel filters" msgctxt "#30112" msgid "Radio Channels" msgstr "Radio Channels" msgctxt "#30113" msgid "Save filters" msgstr "Save filters" msgctxt "#30114" msgid "Provider Unknown" msgstr "Provider Unknown" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.en_us/000077500000000000000000000000001255226123100300475ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.en_us/strings.po000066400000000000000000000122551255226123100321050ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: English (United States) (http://www.transifex.com/projects/p/kodi-main/language/en_US/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: en_US\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "VDR Hostname or IP" msgctxt "#30001" msgid "VNSI Port" msgstr "VNSI Port" msgctxt "#30002" msgid "Priority" msgstr "Priority" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Character Set Conversion" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Connect timeout (s)" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "Allow VDR Messages" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Read recordings from directory" msgctxt "#30007" msgid "VDR recordings directory" msgstr "VDR recordings directory" msgctxt "#30008" msgid "Channel search" msgstr "Channel search" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Channel search - Settings" msgctxt "#30010" msgid "Start Channel search" msgstr "Start Channel search" msgctxt "#30011" msgid "Source Type" msgstr "Source Type" msgctxt "#30012" msgid "TV channels" msgstr "TV channels" msgctxt "#30013" msgid "Radio channels" msgstr "Radio channels" msgctxt "#30014" msgid "FTA channels" msgstr "FTA channels" msgctxt "#30015" msgid "Scrambled channels" msgstr "Scrambled channels" msgctxt "#30016" msgid "HD channels" msgstr "HD channels" msgctxt "#30017" msgid "Country" msgstr "Country" msgctxt "#30018" msgid "Cable Inversion" msgstr "Cable Inversion" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Cable Symbolrate" msgctxt "#30020" msgid "Cable modulation" msgstr "Cable modulation" msgctxt "#30021" msgid "Terr Inversion" msgstr "Terr Inversion" msgctxt "#30022" msgid "Satellite" msgstr "Satellite" msgctxt "#30023" msgid "ATSC Type" msgstr "ATSC Type" msgctxt "#30024" msgid "Back" msgstr "Back" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Channel search - running... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Type:" msgctxt "#30027" msgid "Device:" msgstr "Device:" msgctxt "#30028" msgid "Scan: %i" msgstr "Scan: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Signal: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "New channels: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "All channels: %i" msgctxt "#30032" msgid "Analog TV" msgstr "Analog TV" msgctxt "#30033" msgid "Analog Radio" msgstr "Analog Radio" msgctxt "#30034" msgid "Transponder:" msgstr "Transponder:" msgctxt "#30035" msgid "New channels" msgstr "New channels" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Channel search - Finished" msgctxt "#30037" msgid "No device available - exiting" msgstr "No device available - exiting" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "No DVB-S2 device available - trying fallback to DVB-S" msgctxt "#30039" msgid "Running" msgstr "Running" msgctxt "#30040" msgid "Stopped" msgstr "Stopped" msgctxt "#30041" msgid "Finished" msgstr "Finished" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Channel search - Canceled" msgctxt "#30043" msgid "Channel search - Error" msgstr "Channel search - Error" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "Lost connection to VDR Server" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "Connection to VDR Server restored" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Create channel groups automatically on the server" msgctxt "#30047" msgid "Request Timeshift" msgstr "Request Timeshift" msgctxt "#30048" msgid "Path to channel icons" msgstr "Path to channel icons" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "VDR Server MAC for Wake-on-LAN" msgctxt "#30100" msgid "VDR OSD" msgstr "VDR OSD" msgctxt "#30101" msgid "Setup" msgstr "Setup" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "Controlling OSD - press info to exit" msgctxt "#30103" msgid "Select to control OSD" msgstr "Select to control OSD" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Timeshift Mode" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "Timeshift Buffer (RAM) x100 MB" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Timeshift Buffer (File) x1 GB" msgctxt "#30107" msgid "VDR Admin" msgstr "VDR Admin" msgctxt "#30108" msgid "Channels" msgstr "Channels" msgctxt "#30109" msgid "Provider whitelist" msgstr "Provider whitelist" msgctxt "#30110" msgid "Channel blacklist" msgstr "Channel blacklist" msgctxt "#30111" msgid "Channel filters" msgstr "Channel filters" msgctxt "#30112" msgid "Radio Channels" msgstr "Radio Channels" msgctxt "#30113" msgid "Save filters" msgstr "Save filters" msgctxt "#30114" msgid "Provider Unknown" msgstr "Provider Unknown" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.eo/000077500000000000000000000000001255226123100273415ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.eo/strings.po000066400000000000000000000013141255226123100313710ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Esperanto (http://www.transifex.com/projects/p/kodi-main/language/eo/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: eo\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgctxt "#30026" msgid "Type:" msgstr "Speco:" msgctxt "#30101" msgid "Setup" msgstr "Preferoj" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.es_ar/000077500000000000000000000000001255226123100300275ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.es_ar/strings.po000066400000000000000000000126111255226123100320610ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/kodi-main/language/es_AR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: es_AR\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "Nombre o IP del servidor VDR " msgctxt "#30001" msgid "VNSI Port" msgstr "Puerto VNSI" msgctxt "#30002" msgid "Priority" msgstr "Prioridad" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Conversión de caracteres" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Tiempo para conectar excedido" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "Permitir mensajes VDR" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Leer grabaciones en carpeta" msgctxt "#30007" msgid "VDR recordings directory" msgstr "Directorio de grabación para VDR" msgctxt "#30008" msgid "Channel search" msgstr "Buscar canal" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Búsqueda de canales - Ajustes" msgctxt "#30010" msgid "Start Channel search" msgstr "Comenzar Búsqueda de canales" msgctxt "#30011" msgid "Source Type" msgstr "Tipo de fuente" msgctxt "#30012" msgid "TV channels" msgstr "Canales TV" msgctxt "#30013" msgid "Radio channels" msgstr "Canales Radio" msgctxt "#30014" msgid "FTA channels" msgstr "Canales FTA" msgctxt "#30015" msgid "Scrambled channels" msgstr "Canales codificados" msgctxt "#30016" msgid "HD channels" msgstr "Canales HD" msgctxt "#30017" msgid "Country" msgstr "País" msgctxt "#30018" msgid "Cable Inversion" msgstr "Inversión de cable" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Símbolo de cable" msgctxt "#30020" msgid "Cable modulation" msgstr "Modulación de cable" msgctxt "#30021" msgid "Terr Inversion" msgstr "Inversión Terr" msgctxt "#30022" msgid "Satellite" msgstr "Satélite" msgctxt "#30023" msgid "ATSC Type" msgstr "Tipo ATSC" msgctxt "#30024" msgid "Back" msgstr "Atrás" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Búsqueda de canales - buscando... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Tipo:" msgctxt "#30027" msgid "Device:" msgstr "Dispositivo:" msgctxt "#30028" msgid "Scan: %i" msgstr "Escanear: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Señal: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Nuevos canales: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Todos los canales: %i" msgctxt "#30032" msgid "Analog TV" msgstr "TV Analógica" msgctxt "#30033" msgid "Analog Radio" msgstr "Radio Analógica" msgctxt "#30034" msgid "Transponder:" msgstr "Transponder:" msgctxt "#30035" msgid "New channels" msgstr "Nuevos canales" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Búsqueda de canales - Finalizada" msgctxt "#30037" msgid "No device available - exiting" msgstr "No hay dispositivo disponible - saliendo" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "DVB-S2 no disponible - regresando a DVB-S" msgctxt "#30039" msgid "Running" msgstr "Ejecutando" msgctxt "#30040" msgid "Stopped" msgstr "Detenido" msgctxt "#30041" msgid "Finished" msgstr "Finalizado" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Búsqueda de canales - Cancelada" msgctxt "#30043" msgid "Channel search - Error" msgstr "Búsqueda de canales - Error" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "Conexión perdida con el servidor VDR" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "Conexión con el servidor VDR restablecida" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Crear grupos de canales de forma automática en el servidor" msgctxt "#30047" msgid "Request Timeshift" msgstr "Solicitar Timeshift" msgctxt "#30048" msgid "Path to channel icons" msgstr "Ruta a los íconos de canales" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "Dir. MAC de Server VDR para Wake-on-LAN" msgctxt "#30100" msgid "VDR OSD" msgstr "VDR OSD" msgctxt "#30101" msgid "Setup" msgstr "Configuración" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "Controlando OSC - presione info para salir" msgctxt "#30103" msgid "Select to control OSD" msgstr "Seleccionar para controlar OSD" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Modo Timeshift" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "Buffer de Timeshift (RAM) x100 MB" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Buffer de Timeshift (Archivo) x1 GB" msgctxt "#30107" msgid "VDR Admin" msgstr "Administrar VDR" msgctxt "#30108" msgid "Channels" msgstr "Canales" msgctxt "#30109" msgid "Provider whitelist" msgstr "Lista blanca de proveedores" msgctxt "#30110" msgid "Channel blacklist" msgstr "Lista negra de canales" msgctxt "#30111" msgid "Channel filters" msgstr "Filtros de canal" msgctxt "#30112" msgid "Radio Channels" msgstr "Canales de radio" msgctxt "#30113" msgid "Save filters" msgstr "Guardar filtros" msgctxt "#30114" msgid "Provider Unknown" msgstr "Proveedor desconocido" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.es_es/000077500000000000000000000000001255226123100300345ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.es_es/strings.po000066400000000000000000000126131255226123100320700ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Spanish (Spain) (http://www.transifex.com/projects/p/kodi-main/language/es_ES/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: es_ES\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "Nombre o IP del servidor VDR " msgctxt "#30001" msgid "VNSI Port" msgstr "Puerto VNSI" msgctxt "#30002" msgid "Priority" msgstr "Prioridad" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Conversión de caracteres" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Tiempo de espera de conexión (s)" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "Permitir mensajes VDR" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Leer grabaciones en carpeta" msgctxt "#30007" msgid "VDR recordings directory" msgstr "Carpeta para grabaciones de VDR" msgctxt "#30008" msgid "Channel search" msgstr "Buscar canales" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Buscar canales - Ajustes" msgctxt "#30010" msgid "Start Channel search" msgstr "Comenzar Búsqueda de canales" msgctxt "#30011" msgid "Source Type" msgstr "Tipo de origen" msgctxt "#30012" msgid "TV channels" msgstr "Canales TV" msgctxt "#30013" msgid "Radio channels" msgstr "Canales Radio" msgctxt "#30014" msgid "FTA channels" msgstr "Canales en abierto" msgctxt "#30015" msgid "Scrambled channels" msgstr "Canales codificados" msgctxt "#30016" msgid "HD channels" msgstr "Canales HD" msgctxt "#30017" msgid "Country" msgstr "País" msgctxt "#30018" msgid "Cable Inversion" msgstr "Inversión de cable" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Tasa de símbolos del cable" msgctxt "#30020" msgid "Cable modulation" msgstr "Modulación de cable" msgctxt "#30021" msgid "Terr Inversion" msgstr "Inversión TDT" msgctxt "#30022" msgid "Satellite" msgstr "Satélite" msgctxt "#30023" msgid "ATSC Type" msgstr "Tipo ATSC" msgctxt "#30024" msgid "Back" msgstr "Atrás" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Búsqueda de canales - buscando... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Tipo:" msgctxt "#30027" msgid "Device:" msgstr "Dispositivo:" msgctxt "#30028" msgid "Scan: %i" msgstr "Escanear: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Señal: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Nuevos canales: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Todos los canales: %i" msgctxt "#30032" msgid "Analog TV" msgstr "TV Analógica" msgctxt "#30033" msgid "Analog Radio" msgstr "Radio Analógica" msgctxt "#30034" msgid "Transponder:" msgstr "Transpondedor:" msgctxt "#30035" msgid "New channels" msgstr "Nuevos canales" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Búsqueda de canales - Finalizada" msgctxt "#30037" msgid "No device available - exiting" msgstr "No hay dispositivo disponible - saliendo" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "DVB-S2 no disponible - regresando a DVB-S" msgctxt "#30039" msgid "Running" msgstr "Ejecutando" msgctxt "#30040" msgid "Stopped" msgstr "Detenido" msgctxt "#30041" msgid "Finished" msgstr "Finalizado" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Búsqueda de canales - Cancelada" msgctxt "#30043" msgid "Channel search - Error" msgstr "Búsqueda de canales - Error" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "Conexión perdida con el servidor VDR" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "Conexión con el servidor VDR restablecida" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Crear grupos de canales de forma automática en el servidor" msgctxt "#30047" msgid "Request Timeshift" msgstr "Solicitar TimeShift" msgctxt "#30048" msgid "Path to channel icons" msgstr "Ruta a los iconos de canal" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "MAC del servidor VDR para Wake-on-LAN" msgctxt "#30100" msgid "VDR OSD" msgstr "VDR OSD" msgctxt "#30101" msgid "Setup" msgstr "Ajustes" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "Controlando OSD - pulsa info para salir" msgctxt "#30103" msgid "Select to control OSD" msgstr "Seleccionar para controlar OSD" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Modo TimeShift" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "Buffer Timeshift (RAM) x100 MB" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Buffer Timeshift Buffer (Archivo) x1 GB" msgctxt "#30107" msgid "VDR Admin" msgstr "Administrador VDR" msgctxt "#30108" msgid "Channels" msgstr "Canales" msgctxt "#30109" msgid "Provider whitelist" msgstr "Lista blanca de proveedores" msgctxt "#30110" msgid "Channel blacklist" msgstr "Lista negra de canales " msgctxt "#30111" msgid "Channel filters" msgstr "Filtro de canales" msgctxt "#30112" msgid "Radio Channels" msgstr "Canales de radio" msgctxt "#30113" msgid "Save filters" msgstr "Guardar filtros" msgctxt "#30114" msgid "Provider Unknown" msgstr "Proveedor Desconocido" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.es_mx/000077500000000000000000000000001255226123100300515ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.es_mx/strings.po000066400000000000000000000021741255226123100321060ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Spanish (Mexico) (http://www.transifex.com/projects/p/kodi-main/language/es_MX/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: es_MX\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Tiempo para conectar agotado (s)" msgctxt "#30012" msgid "TV channels" msgstr "Canales TV" msgctxt "#30013" msgid "Radio channels" msgstr "Canales Radio" msgctxt "#30017" msgid "Country" msgstr "País" msgctxt "#30024" msgid "Back" msgstr "Regresar" msgctxt "#30026" msgid "Type:" msgstr "Tipo:" msgctxt "#30039" msgid "Running" msgstr "Ejecutando" msgctxt "#30101" msgid "Setup" msgstr "Configuración" msgctxt "#30108" msgid "Channels" msgstr "Canales" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.et_ee/000077500000000000000000000000001255226123100300175ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.et_ee/strings.po000066400000000000000000000060301255226123100320470ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Estonian (Estonia) (http://www.transifex.com/projects/p/kodi-main/language/et_EE/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: et_EE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "VDR hosti nimi või IP" msgctxt "#30001" msgid "VNSI Port" msgstr "VNSI port" msgctxt "#30002" msgid "Priority" msgstr "Tähtsus" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Märgistiku muutmine" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Ühenduse aegumine (s)" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "Luba VDR teated" msgctxt "#30008" msgid "Channel search" msgstr "Kanaliotsing" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Kanaliotsing - seaded" msgctxt "#30010" msgid "Start Channel search" msgstr "Alusta kanaliotsingut" msgctxt "#30011" msgid "Source Type" msgstr "Allika tüüp" msgctxt "#30012" msgid "TV channels" msgstr "TV kanalid" msgctxt "#30013" msgid "Radio channels" msgstr "Raadio kanalid" msgctxt "#30014" msgid "FTA channels" msgstr "Vabalevi kanalid" msgctxt "#30015" msgid "Scrambled channels" msgstr "Krüptitud kanalid" msgctxt "#30016" msgid "HD channels" msgstr "HD kanalid" msgctxt "#30017" msgid "Country" msgstr "Maa" msgctxt "#30020" msgid "Cable modulation" msgstr "Kaabli modulatsioon" msgctxt "#30022" msgid "Satellite" msgstr "Satelliit" msgctxt "#30023" msgid "ATSC Type" msgstr "ATSC tüüp" msgctxt "#30024" msgid "Back" msgstr "Tagasi" msgctxt "#30026" msgid "Type:" msgstr "Tüüp:" msgctxt "#30027" msgid "Device:" msgstr "Seade:" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Signaal: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Uued kanalid: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Kõik kanalid: %i" msgctxt "#30032" msgid "Analog TV" msgstr "Analoog TV" msgctxt "#30033" msgid "Analog Radio" msgstr "Analoog raadio" msgctxt "#30034" msgid "Transponder:" msgstr "Transponder:" msgctxt "#30035" msgid "New channels" msgstr "Uued kanalid" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Kanaliotsing - lõpetatud" msgctxt "#30037" msgid "No device available - exiting" msgstr "Ühtegi seadet pole saadaval - väljumine" msgctxt "#30039" msgid "Running" msgstr "Töötab" msgctxt "#30040" msgid "Stopped" msgstr "Peatatud" msgctxt "#30041" msgid "Finished" msgstr "Lõpetatud" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Kanaliotsing - tühistatud" msgctxt "#30043" msgid "Channel search - Error" msgstr "Kanaliotsing - tõrge" msgctxt "#30101" msgid "Setup" msgstr "Seadistus" msgctxt "#30108" msgid "Channels" msgstr "Kanalid" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.eu_es/000077500000000000000000000000001255226123100300365ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.eu_es/strings.po000066400000000000000000000021031255226123100320630ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Basque (Spain) (http://www.transifex.com/projects/p/kodi-main/language/eu_ES/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: eu_ES\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Konexioa denboraz kanpo" msgctxt "#30012" msgid "TV channels" msgstr "TB kateak" msgctxt "#30013" msgid "Radio channels" msgstr "Irrati kateak" msgctxt "#30017" msgid "Country" msgstr "Herrialdea" msgctxt "#30026" msgid "Type:" msgstr "Mota:" msgctxt "#30039" msgid "Running" msgstr "Exekutatzen" msgctxt "#30101" msgid "Setup" msgstr "Konfigurazioa" msgctxt "#30108" msgid "Channels" msgstr "Kateak" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.fa_af/000077500000000000000000000000001255226123100277725ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.fa_af/strings.po000066400000000000000000000012461255226123100320260ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Persian (Afghanistan) (http://www.transifex.com/projects/p/kodi-main/language/fa_AF/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: fa_AF\n" "Plural-Forms: nplurals=1; plural=0;\n" msgctxt "#30026" msgid "Type:" msgstr "نوع:" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.fa_ir/000077500000000000000000000000001255226123100300165ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.fa_ir/strings.po000066400000000000000000000017601255226123100320530ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Persian (Iran) (http://www.transifex.com/projects/p/kodi-main/language/fa_IR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: fa_IR\n" "Plural-Forms: nplurals=1; plural=0;\n" msgctxt "#30012" msgid "TV channels" msgstr "کانال های تلویزیونی" msgctxt "#30013" msgid "Radio channels" msgstr "کانال های رادیویی" msgctxt "#30017" msgid "Country" msgstr "کشور" msgctxt "#30026" msgid "Type:" msgstr "نوع:" msgctxt "#30101" msgid "Setup" msgstr "پیکربندی" msgctxt "#30108" msgid "Channels" msgstr "کانال ها" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.fi_fi/000077500000000000000000000000001255226123100300125ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.fi_fi/strings.po000066400000000000000000000124751255226123100320540ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Finnish (Finland) (http://www.transifex.com/projects/p/kodi-main/language/fi_FI/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: fi_FI\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "VDR-palvelimen nimi tai IP-osoite" msgctxt "#30001" msgid "VNSI Port" msgstr "VNSI-portti" msgctxt "#30002" msgid "Priority" msgstr "Tärkeysaste" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Kirjainmerkistön muunnos" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Yhteyden aikakatkaisu (s)" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "Salli VDR-palvelimen viestit" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Lue nauhoitukset kansiosta" msgctxt "#30007" msgid "VDR recordings directory" msgstr "VDR-tallennuksien kansio" msgctxt "#30008" msgid "Channel search" msgstr "Kanavahaku" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Kanavahaun asetukset" msgctxt "#30010" msgid "Start Channel search" msgstr "Aloita kanavahaku" msgctxt "#30011" msgid "Source Type" msgstr "Lähteen tyyppi" msgctxt "#30012" msgid "TV channels" msgstr "TV-kanavat" msgctxt "#30013" msgid "Radio channels" msgstr "Radiokanavat" msgctxt "#30014" msgid "FTA channels" msgstr "Ilmaiskanavat" msgctxt "#30015" msgid "Scrambled channels" msgstr "Salatut kanavat" msgctxt "#30016" msgid "HD channels" msgstr "HD-kanavat" msgctxt "#30017" msgid "Country" msgstr "Maa" msgctxt "#30018" msgid "Cable Inversion" msgstr "Kaapeliverkon inversio" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Kaapeliverkon symbolinopeus" msgctxt "#30020" msgid "Cable modulation" msgstr "Kaapeliverkon modulaatio" msgctxt "#30021" msgid "Terr Inversion" msgstr "Antenniverkon inversio" msgctxt "#30022" msgid "Satellite" msgstr "Satelliitti" msgctxt "#30023" msgid "ATSC Type" msgstr "ATSC tyyppi" msgctxt "#30024" msgid "Back" msgstr "Takaisin" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Kanavahaku käynnissä... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Tyyppi:" msgctxt "#30027" msgid "Device:" msgstr "Laite:" msgctxt "#30028" msgid "Scan: %i" msgstr "Haku: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Signaali: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Uudet kanavat: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Kaikki kanavat: %i" msgctxt "#30032" msgid "Analog TV" msgstr "Analoginen TV" msgctxt "#30033" msgid "Analog Radio" msgstr "Analoginen radio" msgctxt "#30034" msgid "Transponder:" msgstr "Transponder:" msgctxt "#30035" msgid "New channels" msgstr "Uudet kanavat" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Kanavahaku valmis" msgctxt "#30037" msgid "No device available - exiting" msgstr "Ei laitetta saatavilla - lopetetaan" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "Ei DVB-S2 laitetta saatavilla - kokeillaan DVB-S" msgctxt "#30039" msgid "Running" msgstr "Käynnissä" msgctxt "#30040" msgid "Stopped" msgstr "Pysäytetty" msgctxt "#30041" msgid "Finished" msgstr "Valmis" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Kanavahaku peruutettu" msgctxt "#30043" msgid "Channel search - Error" msgstr "Kanavahaku virhe" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "VDR-palvelimeen ei saada yhteyttä" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "Yhteys VDR-palvelimeen palautettu" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Luo kanavaryhmät automaattisesti palvelimella" msgctxt "#30047" msgid "Request Timeshift" msgstr "Ajansiirto toiminto" msgctxt "#30048" msgid "Path to channel icons" msgstr "Kanavakuvakkeiden hakemistopolku" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "VDR palvelimen MAC (Wake-on-LAN:ia varten)" msgctxt "#30100" msgid "VDR OSD" msgstr "Kuvaruutuvalikko" msgctxt "#30101" msgid "Setup" msgstr "Asetukset" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "Kuvaruutuvalikko - poistu painamalla info" msgctxt "#30103" msgid "Select to control OSD" msgstr "Valitse hallitaksesi kuvaruutuvalikkoa" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Ajansiirto toiminto" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "Ajansiirto puskuri (RAM) x100 MB" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Ajansiirto puskuri (Tiedosto) x1 GB" msgctxt "#30107" msgid "VDR Admin" msgstr "VDR Admin" msgctxt "#30108" msgid "Channels" msgstr "Kanavat" msgctxt "#30109" msgid "Provider whitelist" msgstr "Tarjoaja valkoinenlista" msgctxt "#30110" msgid "Channel blacklist" msgstr "Kanava mustalista" msgctxt "#30111" msgid "Channel filters" msgstr "Kanavasuodattimet" msgctxt "#30112" msgid "Radio Channels" msgstr "Radiokanavat" msgctxt "#30113" msgid "Save filters" msgstr "Tallenna suodattimet" msgctxt "#30114" msgid "Provider Unknown" msgstr "Tarjoaja tuntematon" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.fo_fo/000077500000000000000000000000001255226123100300265ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.fo_fo/strings.po000066400000000000000000000017011255226123100320560ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Faroese (Faroe Islands) (http://www.transifex.com/projects/p/kodi-main/language/fo_FO/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: fo_FO\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgctxt "#30012" msgid "TV channels" msgstr "Sjónvarpsrásir" msgctxt "#30013" msgid "Radio channels" msgstr "Útvarpsrásir" msgctxt "#30017" msgid "Country" msgstr "Land" msgctxt "#30026" msgid "Type:" msgstr "Slag:" msgctxt "#30039" msgid "Running" msgstr "Spæli" msgctxt "#30108" msgid "Channels" msgstr "Rás" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.fr_ca/000077500000000000000000000000001255226123100300105ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.fr_ca/strings.po000066400000000000000000000132201255226123100320370ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: French (Canada) (http://www.transifex.com/projects/p/kodi-main/language/fr_CA/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: fr_CA\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "Nom d'hôte ou adresse IP de VDR" msgctxt "#30001" msgid "VNSI Port" msgstr "Port VNSI" msgctxt "#30002" msgid "Priority" msgstr "Priorité" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Conversion du jeu de caractères" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Délai d'attente de connexion (s)" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "Permettre les messages de VDR" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Lire les enregistrements du répertoire" msgctxt "#30007" msgid "VDR recordings directory" msgstr "Répertoire des enregistrements de VDR" msgctxt "#30008" msgid "Channel search" msgstr "Recherche de chaînes" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Recherche de chaînes - Paramètres" msgctxt "#30010" msgid "Start Channel search" msgstr "Démarrer la recherche des chaînes" msgctxt "#30011" msgid "Source Type" msgstr "Type de sources" msgctxt "#30012" msgid "TV channels" msgstr "Chaînes télé" msgctxt "#30013" msgid "Radio channels" msgstr "Chaînes radio" msgctxt "#30014" msgid "FTA channels" msgstr "Chaînes en clair" msgctxt "#30015" msgid "Scrambled channels" msgstr "Chaînes brouillées" msgctxt "#30016" msgid "HD channels" msgstr "Chaînes HD" msgctxt "#30017" msgid "Country" msgstr "Pays" msgctxt "#30018" msgid "Cable Inversion" msgstr "Inversion du câble" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Débit de symboles du câble" msgctxt "#30020" msgid "Cable modulation" msgstr "Modulation du câble" msgctxt "#30021" msgid "Terr Inversion" msgstr "Inversion DVB-T" msgctxt "#30022" msgid "Satellite" msgstr "Satellite" msgctxt "#30023" msgid "ATSC Type" msgstr "Type ATSC" msgctxt "#30024" msgid "Back" msgstr "Retour" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Recherche de chaînes - en cours... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Type :" msgctxt "#30027" msgid "Device:" msgstr "Dispositif :" msgctxt "#30028" msgid "Scan: %i" msgstr "Balayage : %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Signal : %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Nouvelles chaînes : %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Toutes les chaînes : %i" msgctxt "#30032" msgid "Analog TV" msgstr "Télé analogique" msgctxt "#30033" msgid "Analog Radio" msgstr "Radio analogique" msgctxt "#30034" msgid "Transponder:" msgstr "Transpondeur :" msgctxt "#30035" msgid "New channels" msgstr "Nouvelles chaînes" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Recherche de chaînes - Terminée" msgctxt "#30037" msgid "No device available - exiting" msgstr "Aucun dispositif disponible - fermeture" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "Aucun dispositif DVB-S2 disponible - Tentative de repli sur DVB-S" msgctxt "#30039" msgid "Running" msgstr "En fonction" msgctxt "#30040" msgid "Stopped" msgstr "Arrêté" msgctxt "#30041" msgid "Finished" msgstr "Fini" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Recherche de chaînes - Annulée" msgctxt "#30043" msgid "Channel search - Error" msgstr "Recherche de chaînes - Erreur" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "Connexion perdue vers le serveur VDR" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "Connexion récupérée avec le serveur VDR" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Créer automatiquement des groupes de chaînes sur le serveur" msgctxt "#30047" msgid "Request Timeshift" msgstr "Demander le décalage temporel" msgctxt "#30048" msgid "Path to channel icons" msgstr "Chemin vers les icônes de la chaîne" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "Adresse MAC du serveur VDR pour le réveil par le réseau" msgctxt "#30100" msgid "VDR OSD" msgstr "Affichage à l'écran VDR" msgctxt "#30101" msgid "Setup" msgstr "Réglage" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "Contrôle de l'affichage à l'écran - Peser sur info pour sortir" msgctxt "#30103" msgid "Select to control OSD" msgstr "Sélectionner pour contrôler l'affichage à l'écran" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Mode de décalage temporel" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "Tampon de décalage temporel (RAM) x 100 Mo" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Tampon de décalage temporel (fichier ) x 1 Go" msgctxt "#30107" msgid "VDR Admin" msgstr "Administration VDR" msgctxt "#30108" msgid "Channels" msgstr "Chaînes" msgctxt "#30109" msgid "Provider whitelist" msgstr "Liste blanche des fournisseurs" msgctxt "#30110" msgid "Channel blacklist" msgstr "Liste noire des chaînes" msgctxt "#30111" msgid "Channel filters" msgstr "Filtres de chaînes" msgctxt "#30112" msgid "Radio Channels" msgstr "Chaîne radio" msgctxt "#30113" msgid "Save filters" msgstr "Enregistrer les filtres" msgctxt "#30114" msgid "Provider Unknown" msgstr "Fournisseur inconnu" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.fr_fr/000077500000000000000000000000001255226123100300345ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.fr_fr/strings.po000066400000000000000000000130571255226123100320730ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: French (France) (http://www.transifex.com/projects/p/kodi-main/language/fr_FR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: fr_FR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "Nom d'hôte VDR ou adresse IP" msgctxt "#30001" msgid "VNSI Port" msgstr "Port VNSI" msgctxt "#30002" msgid "Priority" msgstr "Priorité" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Conversion du jeu de caractères" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Temporisation de connexion (s)" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "Autoriser les messages VDR" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Lecture des enregistrements depuis un répertoire" msgctxt "#30007" msgid "VDR recordings directory" msgstr "Répertoire des enregistrements VDR" msgctxt "#30008" msgid "Channel search" msgstr "Recherche des chaînes" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Recherche de chaînes - Paramètres" msgctxt "#30010" msgid "Start Channel search" msgstr "Démarrer la recherche des chaînes" msgctxt "#30011" msgid "Source Type" msgstr "Type de source" msgctxt "#30012" msgid "TV channels" msgstr "Chaînes TV" msgctxt "#30013" msgid "Radio channels" msgstr "Chaînes Radio" msgctxt "#30014" msgid "FTA channels" msgstr "Chaînes gratuites" msgctxt "#30015" msgid "Scrambled channels" msgstr "Chaînes cryptées" msgctxt "#30016" msgid "HD channels" msgstr "Chaînes HD" msgctxt "#30017" msgid "Country" msgstr "Pays" msgctxt "#30018" msgid "Cable Inversion" msgstr "Inversion du câble" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Taux de modulation du câble" msgctxt "#30020" msgid "Cable modulation" msgstr "Modulation du câble" msgctxt "#30021" msgid "Terr Inversion" msgstr "Inversion de polarité" msgctxt "#30022" msgid "Satellite" msgstr "Satellite" msgctxt "#30023" msgid "ATSC Type" msgstr "Type ATSC" msgctxt "#30024" msgid "Back" msgstr "Retour" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Recherche de chaîne - en cours... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Type :" msgctxt "#30027" msgid "Device:" msgstr "Dispositif :" msgctxt "#30028" msgid "Scan: %i" msgstr "Balayage : %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Signal : %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Nouvelles chaînes : %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Toutes chaînes : %i" msgctxt "#30032" msgid "Analog TV" msgstr "TV analogique" msgctxt "#30033" msgid "Analog Radio" msgstr "Radio analogique" msgctxt "#30034" msgid "Transponder:" msgstr "Transpondeur :" msgctxt "#30035" msgid "New channels" msgstr "Nouvelles chaînes" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Recherche de chaîne - Terminé" msgctxt "#30037" msgid "No device available - exiting" msgstr "Pas de dispositif disponible - Abandon" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "Dispositif DVB-S2 non disponible - Tentative en DVB-S" msgctxt "#30039" msgid "Running" msgstr "Lecture en cours" msgctxt "#30040" msgid "Stopped" msgstr "Arrêté" msgctxt "#30041" msgid "Finished" msgstr "Terminé" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Recherche de chaîne - Abandonnée" msgctxt "#30043" msgid "Channel search - Error" msgstr "Recherche de chaîne - Erreur" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "Connexion perdue au serveur VDR" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "Connexion rétablie au serveur VDR" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Créer automatiquement les groupes de chaîne sur le serveur" msgctxt "#30047" msgid "Request Timeshift" msgstr "Demander le différé" msgctxt "#30048" msgid "Path to channel icons" msgstr "Chemin vers les icônes des chaînes" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "Serveur MAC VDR pour un Wake-on-LAN" msgctxt "#30100" msgid "VDR OSD" msgstr "Menu de réglage VDR" msgctxt "#30101" msgid "Setup" msgstr "Configuration" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "Menu de réglage en cours - Appuyer sur info pour sortir" msgctxt "#30103" msgid "Select to control OSD" msgstr "Sélectionner pour contrôler l'affichage à l'écran" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Mode différé" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "Tampon pour le différé (RAM) x100 MB" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Tampon pour le différé (Fichier) x1 GB" msgctxt "#30107" msgid "VDR Admin" msgstr "Administrateur VDR" msgctxt "#30108" msgid "Channels" msgstr "Chaînes" msgctxt "#30109" msgid "Provider whitelist" msgstr "Liste blanche de fournisseur" msgctxt "#30110" msgid "Channel blacklist" msgstr "Liste noire de chaînes" msgctxt "#30111" msgid "Channel filters" msgstr "Filtre de chaînes" msgctxt "#30112" msgid "Radio Channels" msgstr "Postes Radio" msgctxt "#30113" msgid "Save filters" msgstr "Enregistrer les filtres" msgctxt "#30114" msgid "Provider Unknown" msgstr "Fournisseur inconnu" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.gl_es/000077500000000000000000000000001255226123100300275ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.gl_es/strings.po000066400000000000000000000125621255226123100320660ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Galician (Spain) (http://www.transifex.com/projects/p/kodi-main/language/gl_ES/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: gl_ES\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "Nome de host ou IP de VDR" msgctxt "#30001" msgid "VNSI Port" msgstr "Porto VNSI" msgctxt "#30002" msgid "Priority" msgstr "Prioridade" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Conversión do conxunto de caracteres" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Tempo(s) de espera para conectar" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "Permitir mensaxes do VDR" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Ler gravacións do cartafol" msgctxt "#30007" msgid "VDR recordings directory" msgstr "Cartafol das gravacións do VDR" msgctxt "#30008" msgid "Channel search" msgstr "Busca de canles" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Busca de canles - Configuración" msgctxt "#30010" msgid "Start Channel search" msgstr "Iniciar Busca" msgctxt "#30011" msgid "Source Type" msgstr "Tipo de Fonte" msgctxt "#30012" msgid "TV channels" msgstr "Canles de TV" msgctxt "#30013" msgid "Radio channels" msgstr "Canles de Radio" msgctxt "#30014" msgid "FTA channels" msgstr "Canles FTA" msgctxt "#30015" msgid "Scrambled channels" msgstr "Canles Codificadas" msgctxt "#30016" msgid "HD channels" msgstr "Canles HD" msgctxt "#30017" msgid "Country" msgstr "País" msgctxt "#30018" msgid "Cable Inversion" msgstr "Inversión de cable" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Ratio do cable" msgctxt "#30020" msgid "Cable modulation" msgstr "Modulación do cable" msgctxt "#30021" msgid "Terr Inversion" msgstr "Inversión Terr" msgctxt "#30022" msgid "Satellite" msgstr "Satélite" msgctxt "#30023" msgid "ATSC Type" msgstr "Tipo ATSC" msgctxt "#30024" msgid "Back" msgstr "Atrás" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Busca de canles - executando... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Tipo:" msgctxt "#30027" msgid "Device:" msgstr "Dispositivo:" msgctxt "#30028" msgid "Scan: %i" msgstr "Buscar: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Sinal: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Novas canles: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Todas as canles: %i" msgctxt "#30032" msgid "Analog TV" msgstr "TV Analóxica" msgctxt "#30033" msgid "Analog Radio" msgstr "Radio Analóxica" msgctxt "#30034" msgid "Transponder:" msgstr "Transpondedor:" msgctxt "#30035" msgid "New channels" msgstr "Novas canles" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Busca de canles - Remantado" msgctxt "#30037" msgid "No device available - exiting" msgstr "Dispositivo non dispoñíbel - saíndo" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "Dispositivo DVB-S2 non dispoñíbel - tente de voltar ao DVB-S" msgctxt "#30039" msgid "Running" msgstr "Procesando" msgctxt "#30040" msgid "Stopped" msgstr "Detido" msgctxt "#30041" msgid "Finished" msgstr "Rematado" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Busca de canles - Cancelada" msgctxt "#30043" msgid "Channel search - Error" msgstr "Busca de canles - Erro" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "Perdeuse a conexión co Servidor VDR" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "Restabeleceuse a conexión co Servidor VDR" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Crear grupos de canles automaticamente no servidor" msgctxt "#30047" msgid "Request Timeshift" msgstr "Solicitar Timeshift" msgctxt "#30048" msgid "Path to channel icons" msgstr "Path das iconas das canles" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "MAC do servidor VDR para Wake-on-LAN" msgctxt "#30100" msgid "VDR OSD" msgstr "VDR OSD" msgctxt "#30101" msgid "Setup" msgstr "Configuración" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "Controlando o OSD - prema info. para saír" msgctxt "#30103" msgid "Select to control OSD" msgstr "Seleccionar para controlar o OSD" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Modo Timeshift" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "Búfer do Timeshift (RAM) x100 MB" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Búfer do Timeshift (Ficheiro) x1 GB" msgctxt "#30107" msgid "VDR Admin" msgstr "Administrador VDR" msgctxt "#30108" msgid "Channels" msgstr "Canles" msgctxt "#30109" msgid "Provider whitelist" msgstr "Listaxe branca de Provedores" msgctxt "#30110" msgid "Channel blacklist" msgstr "Listaxe negra de Provedores" msgctxt "#30111" msgid "Channel filters" msgstr "Filtros das canles" msgctxt "#30112" msgid "Radio Channels" msgstr "Canles de Radio" msgctxt "#30113" msgid "Save filters" msgstr "Gardar filtros" msgctxt "#30114" msgid "Provider Unknown" msgstr "Provedor Descoñecido" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.he_il/000077500000000000000000000000001255226123100300165ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.he_il/strings.po000066400000000000000000000132401255226123100320470ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Hebrew (Israel) (http://www.transifex.com/projects/p/kodi-main/language/he_IL/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: he_IL\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "שם מארח או כתובת IP" msgctxt "#30001" msgid "VNSI Port" msgstr "פורט" msgctxt "#30002" msgid "Priority" msgstr "קדימות" msgctxt "#30003" msgid "Character Set Conversion" msgstr "המרת ערכת תווים" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "זמן מירבי לניסיון חיבור (שנ')" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "אפשר הודעות VDR" msgctxt "#30006" msgid "Read recordings from directory" msgstr "קרא הקלטות מתיקיה" msgctxt "#30007" msgid "VDR recordings directory" msgstr "תיקיית הקלטות" msgctxt "#30008" msgid "Channel search" msgstr "חיפוש ערוצים" msgctxt "#30009" msgid "Channel search - Settings" msgstr "חיפוש ערוצים - הגדרות" msgctxt "#30010" msgid "Start Channel search" msgstr "הפעלת חיפוש ערוצים" msgctxt "#30011" msgid "Source Type" msgstr "סוג מקור" msgctxt "#30012" msgid "TV channels" msgstr "ערוצי טלוויזיה" msgctxt "#30013" msgid "Radio channels" msgstr "ערוצי רדיו" msgctxt "#30014" msgid "FTA channels" msgstr "ערוצי FTA" msgctxt "#30015" msgid "Scrambled channels" msgstr "ערוצים מוצפנים" msgctxt "#30016" msgid "HD channels" msgstr "ערוצי HD" msgctxt "#30017" msgid "Country" msgstr "ארץ" msgctxt "#30018" msgid "Cable Inversion" msgstr "היפוך כבל" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "קצב סימבולי כבל" msgctxt "#30020" msgid "Cable modulation" msgstr "מודולציית כבל" msgctxt "#30021" msgid "Terr Inversion" msgstr "היפוך Terr" msgctxt "#30022" msgid "Satellite" msgstr "לוויין" msgctxt "#30023" msgid "ATSC Type" msgstr "סוג ATSC" msgctxt "#30024" msgid "Back" msgstr "אחורה" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "חיפוש ערוצים - רץ... %i %%" msgctxt "#30026" msgid "Type:" msgstr "סוג:" msgctxt "#30027" msgid "Device:" msgstr "התקן:" msgctxt "#30028" msgid "Scan: %i" msgstr "סורק: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "אות: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "ערוצים חדשים: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "כל הערוצים: %i" msgctxt "#30032" msgid "Analog TV" msgstr "טלוויזיה אנלוגית" msgctxt "#30033" msgid "Analog Radio" msgstr "רדיו אנלוגי" msgctxt "#30034" msgid "Transponder:" msgstr "טרנספונדר:" msgctxt "#30035" msgid "New channels" msgstr "ערוצים חדשים" msgctxt "#30036" msgid "Channel search - Finished" msgstr "חיפוש ערוצים - הסתיים" msgctxt "#30037" msgid "No device available - exiting" msgstr "אין התקן זמין - עוצר" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "לא נמצא התקן DVB-S2 - מחפש התקן DVB-S" msgctxt "#30039" msgid "Running" msgstr "פועל" msgctxt "#30040" msgid "Stopped" msgstr "נעצר" msgctxt "#30041" msgid "Finished" msgstr "הסתיים" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "חיפוש ערוצים - בוטל" msgctxt "#30043" msgid "Channel search - Error" msgstr "חיפוש ערוצים - שגיאה" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "נותק משרת VDR" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "חובר חזרה לשרת VDR" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "צור אוטומטית קבוצות ערוצים בשרת" msgctxt "#30047" msgid "Request Timeshift" msgstr "בקש תזוזה בזמן" msgctxt "#30048" msgid "Path to channel icons" msgstr "נתיב סמלי ערוצים" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "כתובת MAC של השרת עבור Wake-on-LAN" msgctxt "#30100" msgid "VDR OSD" msgstr "VDR OSD" msgctxt "#30101" msgid "Setup" msgstr "הגדרות" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "שליטה ב־OSD - ליציאה יש ללחוץ על מידע" msgctxt "#30103" msgid "Select to control OSD" msgstr "בחירה לשם שליטה ב־OSD" msgctxt "#30104" msgid "Timeshift Mode" msgstr "מצב תזוזה בזמן" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "חוצץ תזוזה בזמן (זיכרון נדיף) x100 MB" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "חוצץ תזוזה בזמן (קובץ) x1 GB" msgctxt "#30107" msgid "VDR Admin" msgstr "VDR Admin" msgctxt "#30108" msgid "Channels" msgstr "ערוצים" msgctxt "#30109" msgid "Provider whitelist" msgstr "רשימת ספקים מותרים" msgctxt "#30110" msgid "Channel blacklist" msgstr "רשימת ערוצים אסורים" msgctxt "#30111" msgid "Channel filters" msgstr "מסנני ערוץ" msgctxt "#30112" msgid "Radio Channels" msgstr "ערוצי רדיו" msgctxt "#30113" msgid "Save filters" msgstr "שמירת מסננים" msgctxt "#30114" msgid "Provider Unknown" msgstr "ספק לא מוכר" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.hi_in/000077500000000000000000000000001255226123100300245ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.hi_in/strings.po000066400000000000000000000013371255226123100320610ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Hindi (India) (http://www.transifex.com/projects/p/kodi-main/language/hi_IN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: hi_IN\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgctxt "#30017" msgid "Country" msgstr "देश" msgctxt "#30026" msgid "Type:" msgstr "टाइप" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.hr_hr/000077500000000000000000000000001255226123100300405ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.hr_hr/strings.po000066400000000000000000000130401255226123100320670ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Croatian (Croatia) (http://www.transifex.com/projects/p/kodi-main/language/hr_HR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: hr_HR\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 "VDR Hostname or IP" msgstr "VDR naziv računala ili IP" msgctxt "#30001" msgid "VNSI Port" msgstr "VNSI ulaz" msgctxt "#30002" msgid "Priority" msgstr "Prioritet" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Skup znakova konverzije" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Istek vremena povezivanja (sek)" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "Dopusti VDR poruke" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Čitaj snimanja iz direktorija" msgctxt "#30007" msgid "VDR recordings directory" msgstr "VDR direktorij snimanja" msgctxt "#30008" msgid "Channel search" msgstr "Pretraživanje programa" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Pretraživanje programa - Postavke" msgctxt "#30010" msgid "Start Channel search" msgstr "Pokreni pretraživanje programa" msgctxt "#30011" msgid "Source Type" msgstr "Vrsta izvora" msgctxt "#30012" msgid "TV channels" msgstr "TV programi" msgctxt "#30013" msgid "Radio channels" msgstr "Radio programi" msgctxt "#30014" msgid "FTA channels" msgstr "Nekôdirani programi" msgctxt "#30015" msgid "Scrambled channels" msgstr "Kôdirani programi" msgctxt "#30016" msgid "HD channels" msgstr "HD programi" msgctxt "#30017" msgid "Country" msgstr "Zemlja" msgctxt "#30018" msgid "Cable Inversion" msgstr "Inverzija kabla" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Protok simbola kabla" msgctxt "#30020" msgid "Cable modulation" msgstr "Modulacija kabla" msgctxt "#30021" msgid "Terr Inversion" msgstr "Zemaljska inverzija" msgctxt "#30022" msgid "Satellite" msgstr "Satelit" msgctxt "#30023" msgid "ATSC Type" msgstr "ATSC vrsta" msgctxt "#30024" msgid "Back" msgstr "Nazad" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Pretraživanje programa - pokretanje... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Vrsta:" msgctxt "#30027" msgid "Device:" msgstr "Uređaj:" msgctxt "#30028" msgid "Scan: %i" msgstr "Pretraži: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Signal: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Novi programi: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Svi programi: %i" msgctxt "#30032" msgid "Analog TV" msgstr "Analogna TV" msgctxt "#30033" msgid "Analog Radio" msgstr "Analogni Radio" msgctxt "#30034" msgid "Transponder:" msgstr "Transponder:" msgctxt "#30035" msgid "New channels" msgstr "Novi programi" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Pretraživanje programa - Završeno" msgctxt "#30037" msgid "No device available - exiting" msgstr "Nema dostupnih uređaja - izlazim" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "Nema dostupnih DVB-S2 uređaja - pokušavam prebaciti na DVB-S" msgctxt "#30039" msgid "Running" msgstr "Pokrenuto" msgctxt "#30040" msgid "Stopped" msgstr "Zaustavljeno" msgctxt "#30041" msgid "Finished" msgstr "Završeno" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Pretraživanje programa - Prekinuto" msgctxt "#30043" msgid "Channel search - Error" msgstr "Pretraživanje programa - Greška" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "Izgubljena veza s VDR poslužiteljem" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "Povezivanje s VDR poslužiteljem ponovno uspostavljeno" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Stvori grupu programa automatski na poslužitelju" msgctxt "#30047" msgid "Request Timeshift" msgstr "Omogući vremensko premotavanje" msgctxt "#30048" msgid "Path to channel icons" msgstr "Putanja do ikona programa" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "VDR poslužitelj MAC za Wake-on-LAN" msgctxt "#30100" msgid "VDR OSD" msgstr "VDR OSD" msgctxt "#30101" msgid "Setup" msgstr "Postavljanje" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "Upravljanje OSD - pritisni info za izlaz" msgctxt "#30103" msgid "Select to control OSD" msgstr "Odaberi za upravljanje OSD-om" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Način vremenskog premotavanja" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "Međumemorija vremenskog premotavanja (RAM) x100 MB" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Međumemorija vremenskog premotavanja (Datoteka) x1 GB" msgctxt "#30107" msgid "VDR Admin" msgstr "VDR administrator" msgctxt "#30108" msgid "Channels" msgstr "Programi" msgctxt "#30109" msgid "Provider whitelist" msgstr "Dopušteni pružatelj usluga" msgctxt "#30110" msgid "Channel blacklist" msgstr "Blokirani programi" msgctxt "#30111" msgid "Channel filters" msgstr "Filtri programa" msgctxt "#30112" msgid "Radio Channels" msgstr "Radio programi" msgctxt "#30113" msgid "Save filters" msgstr "Spremi filter" msgctxt "#30114" msgid "Provider Unknown" msgstr "Nepoznat pružatelj usluge" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.hu_hu/000077500000000000000000000000001255226123100300465ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.hu_hu/strings.po000066400000000000000000000130041255226123100320750ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/kodi-main/language/hu_HU/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: hu_HU\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "VDR Kiszolgálónév vagy IP cím" msgctxt "#30001" msgid "VNSI Port" msgstr "VNSI Port" msgctxt "#30002" msgid "Priority" msgstr "Prioritás" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Karakterszet konverzió" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "A kapcsolat időtúllépési értéke (mp.)" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "VDR rendszerüzenetek engedélyezése" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Felvételek olvasása könyvtárból" msgctxt "#30007" msgid "VDR recordings directory" msgstr "VDR felvételi könyvtár" msgctxt "#30008" msgid "Channel search" msgstr "Csatorna keresés" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Csatorna keresés - Beállítások" msgctxt "#30010" msgid "Start Channel search" msgstr "Csatorna keresés indítása" msgctxt "#30011" msgid "Source Type" msgstr "A forrás típusa" msgctxt "#30012" msgid "TV channels" msgstr "TV csatornák" msgctxt "#30013" msgid "Radio channels" msgstr "Rádió csatornák" msgctxt "#30014" msgid "FTA channels" msgstr "Szabadon fogható csatornák" msgctxt "#30015" msgid "Scrambled channels" msgstr "Kódolt csatornák" msgctxt "#30016" msgid "HD channels" msgstr "HD csatornák" msgctxt "#30017" msgid "Country" msgstr "Ország" msgctxt "#30018" msgid "Cable Inversion" msgstr "KábelTV inverzió" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "KábelTV szimbólumsebesség" msgctxt "#30020" msgid "Cable modulation" msgstr "KébelTV moduláció" msgctxt "#30021" msgid "Terr Inversion" msgstr "Földi sugárzás inverzió" msgctxt "#30022" msgid "Satellite" msgstr "Szatelit" msgctxt "#30023" msgid "ATSC Type" msgstr "ATSC típusa" msgctxt "#30024" msgid "Back" msgstr "Vissza" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Csatorna keresés - folyamatban... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Típus:" msgctxt "#30027" msgid "Device:" msgstr "Eszköz" msgctxt "#30028" msgid "Scan: %i" msgstr "Keresés: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Jelszint: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Új csatorna: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Összes csatorna: %i" msgctxt "#30032" msgid "Analog TV" msgstr "Analóg TV" msgctxt "#30033" msgid "Analog Radio" msgstr "Analóg Rádió" msgctxt "#30034" msgid "Transponder:" msgstr "Transzponder:" msgctxt "#30035" msgid "New channels" msgstr "Új csatornák" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Csatorna keresés - Befejeződött" msgctxt "#30037" msgid "No device available - exiting" msgstr "Nincs elérhető eszköz - kilépek" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "Nincs elérhető DVB-S2 eszköz - megpróbálom DVB-S eszközzel " msgctxt "#30039" msgid "Running" msgstr "Fut" msgctxt "#30040" msgid "Stopped" msgstr "Megállítva" msgctxt "#30041" msgid "Finished" msgstr "Befejeződött" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Csatorna keresés - Megszakítva" msgctxt "#30043" msgid "Channel search - Error" msgstr "Csatorna keresés - Hiba" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "Elveszett a kapcsolat a VDR szerverrel" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr " A kapcsolat a VDR szerverrel visszaállítva" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Csatorna csoportok automatikus létrehozása a szerveren" msgctxt "#30047" msgid "Request Timeshift" msgstr "Csúsztatott élőkép kérése" msgctxt "#30048" msgid "Path to channel icons" msgstr "Útvonal a csatorna ikonokhoz" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "VDR Szerver MAC címe a Wake-on-LAN-hoz" msgctxt "#30100" msgid "VDR OSD" msgstr "VDR OSD" msgctxt "#30101" msgid "Setup" msgstr "Beállítás" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "OSD vezérlés - info gombbal kilép" msgctxt "#30103" msgid "Select to control OSD" msgstr "OSD vezérlése" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Csúsztatott felvétel mód" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "Csúsztatott felvétel puffer (RAM) x100 Mb" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Csúsztatott felvétel (Fájl)x1 Gb" msgctxt "#30107" msgid "VDR Admin" msgstr "VDR Admin" msgctxt "#30108" msgid "Channels" msgstr "Csatornák" msgctxt "#30109" msgid "Provider whitelist" msgstr "Szolgáltató fehérlista" msgctxt "#30110" msgid "Channel blacklist" msgstr "Csatorna fekete-lista" msgctxt "#30111" msgid "Channel filters" msgstr "Csatorna szűrők" msgctxt "#30112" msgid "Radio Channels" msgstr "Rádió csatornák" msgctxt "#30113" msgid "Save filters" msgstr "Szűrők elmentése" msgctxt "#30114" msgid "Provider Unknown" msgstr "Szolgáltató ismeretlen" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.hy_am/000077500000000000000000000000001255226123100300335ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.hy_am/strings.po000066400000000000000000000015121255226123100320630ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Armenian (Armenia) (http://www.transifex.com/projects/p/kodi-main/language/hy_AM/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: hy_AM\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Միացման վերջնաժամկետը (վ)" msgctxt "#30017" msgid "Country" msgstr "Երկիր" msgctxt "#30026" msgid "Type:" msgstr "Տեսակ." kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.id_id/000077500000000000000000000000001255226123100300065ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.id_id/strings.po000066400000000000000000000123521255226123100320420ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Indonesian (Indonesia) (http://www.transifex.com/projects/p/kodi-main/language/id_ID/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: id_ID\n" "Plural-Forms: nplurals=1; plural=0;\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "Hostname atau alamat IP VDR" msgctxt "#30001" msgid "VNSI Port" msgstr "Port VNSI" msgctxt "#30002" msgid "Priority" msgstr "Prioritas" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Konversi Set Karakter" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Timeout koneksi (s)" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "Perbolehkan pesan VDR" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Baca rekaman dari direktori" msgctxt "#30007" msgid "VDR recordings directory" msgstr "Direktori perekaman VDR" msgctxt "#30008" msgid "Channel search" msgstr "Cari Kanal" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Cari Kanal - Setelan" msgctxt "#30010" msgid "Start Channel search" msgstr "Mulai pencarian kanal" msgctxt "#30011" msgid "Source Type" msgstr "Tipe sumber" msgctxt "#30012" msgid "TV channels" msgstr "Saluran TV" msgctxt "#30013" msgid "Radio channels" msgstr "Saluran Radio" msgctxt "#30014" msgid "FTA channels" msgstr "Kanal siaran gratis" msgctxt "#30015" msgid "Scrambled channels" msgstr "Kanal yang diacak" msgctxt "#30016" msgid "HD channels" msgstr "Kanal HD" msgctxt "#30017" msgid "Country" msgstr "Negara" msgctxt "#30018" msgid "Cable Inversion" msgstr "Inversi Kabel" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Symbolrate Kabel" msgctxt "#30020" msgid "Cable modulation" msgstr "Modulasi Kabel" msgctxt "#30021" msgid "Terr Inversion" msgstr "Inversi Terr" msgctxt "#30022" msgid "Satellite" msgstr "Satelit" msgctxt "#30023" msgid "ATSC Type" msgstr "Tipe ATSC" msgctxt "#30024" msgid "Back" msgstr "Mundur" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Pencarian kanal - sedang berlangsung... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Tipe:" msgctxt "#30027" msgid "Device:" msgstr "Perangkat:" msgctxt "#30028" msgid "Scan: %i" msgstr "Pindai: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Sinyal: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Kanal baru: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Semua kanal: %i" msgctxt "#30032" msgid "Analog TV" msgstr "TV analog" msgctxt "#30033" msgid "Analog Radio" msgstr "Radio analog" msgctxt "#30034" msgid "Transponder:" msgstr "Transponder:" msgctxt "#30035" msgid "New channels" msgstr "Kanal baru" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Pencarian kanal - Selesai" msgctxt "#30037" msgid "No device available - exiting" msgstr "Tidak ada perangkat tersedia - Program dihentikan" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "Tidak ada perangkat DVB-S2 tersedia - Mencoba kembali ke DVB-S" msgctxt "#30039" msgid "Running" msgstr "Menjalankan" msgctxt "#30040" msgid "Stopped" msgstr "Terhenti" msgctxt "#30041" msgid "Finished" msgstr "Selesai" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Pencarian kanal - digagalkan" msgctxt "#30043" msgid "Channel search - Error" msgstr "Pencarian kanal - Error" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "Koneksi ke Server VDR terputus" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "Koneksi ke Server VDR tersambung kembali" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Buat grup kanal secara otomatis di server" msgctxt "#30047" msgid "Request Timeshift" msgstr "Meminta Timeshift" msgctxt "#30048" msgid "Path to channel icons" msgstr "Path ke ikon kanal." msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "Alamat MAC Server VDR untuk Wake-on-LAN" msgctxt "#30100" msgid "VDR OSD" msgstr "OSD VDR" msgctxt "#30101" msgid "Setup" msgstr "Konfigurasi" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "Mengatur OSD - tekan info untuk keluar" msgctxt "#30103" msgid "Select to control OSD" msgstr "Pilih untuk menjalankan OSD" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Modus Timeshift" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "Penyangga Timeshift (RAM) x100 MB" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Penyangga Timeshift (Berkas) x1 GB" msgctxt "#30107" msgid "VDR Admin" msgstr "Admin VDR" msgctxt "#30108" msgid "Channels" msgstr "Saluran" msgctxt "#30109" msgid "Provider whitelist" msgstr "Whitelist Penyedia" msgctxt "#30110" msgid "Channel blacklist" msgstr "Blacklist Kanal" msgctxt "#30111" msgid "Channel filters" msgstr "Filter Kanal" msgctxt "#30112" msgid "Radio Channels" msgstr "Kanal Radio" msgctxt "#30113" msgid "Save filters" msgstr "Simpan filter" msgctxt "#30114" msgid "Provider Unknown" msgstr "Penyedia tidak dikenal" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.is_is/000077500000000000000000000000001255226123100300445ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.is_is/strings.po000066400000000000000000000125101255226123100320740ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Icelandic (Iceland) (http://www.transifex.com/projects/p/kodi-main/language/is_IS/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: is_IS\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "Hýsilnafn VDR eða IP tala" msgctxt "#30001" msgid "VNSI Port" msgstr "Gátt fyrir VNSI" msgctxt "#30002" msgid "Priority" msgstr "Forgangur" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Stafasett fyrir umbreytingu" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Tengitími útrennur (ms)" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "Leyfa VDR skilaboð" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Lesa upptökur frá skráasafni" msgctxt "#30007" msgid "VDR recordings directory" msgstr "Upptökuskráasafn VDR" msgctxt "#30008" msgid "Channel search" msgstr "Rásaleit" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Rásaleit - Stillingar" msgctxt "#30010" msgid "Start Channel search" msgstr "Hefja Rásaleit" msgctxt "#30011" msgid "Source Type" msgstr "Gerð uppsprettu" msgctxt "#30012" msgid "TV channels" msgstr "Sjónvarpsrásir" msgctxt "#30013" msgid "Radio channels" msgstr "Útvarpsrásir" msgctxt "#30014" msgid "FTA channels" msgstr "Fríar rásir" msgctxt "#30015" msgid "Scrambled channels" msgstr "Ruglaðar rásir" msgctxt "#30016" msgid "HD channels" msgstr "HD rásir" msgctxt "#30017" msgid "Country" msgstr "Land" msgctxt "#30018" msgid "Cable Inversion" msgstr "Kapal-umsnúningur" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Merkjahraði kapals" msgctxt "#30020" msgid "Cable modulation" msgstr "Kapalmótun" msgctxt "#30021" msgid "Terr Inversion" msgstr "Umsnúningur Jarðlægs merkis (Terr Inv)" msgctxt "#30022" msgid "Satellite" msgstr "Gerfihnöttur" msgctxt "#30023" msgid "ATSC Type" msgstr "ATSC gerð" msgctxt "#30024" msgid "Back" msgstr "Til baka" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Rásaleit - í gangi... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Tegund:" msgctxt "#30027" msgid "Device:" msgstr "Tæki:" msgctxt "#30028" msgid "Scan: %i" msgstr "Skönnun: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Merki: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Nýjar rásir: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Allar rásir: %i" msgctxt "#30032" msgid "Analog TV" msgstr "Hliðrænt sjónvarp" msgctxt "#30033" msgid "Analog Radio" msgstr "Hliðrænt útvarp" msgctxt "#30034" msgid "Transponder:" msgstr "Endurvarpi:" msgctxt "#30035" msgid "New channels" msgstr "Nýjar rásir" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Rásaleit - Lokið" msgctxt "#30037" msgid "No device available - exiting" msgstr "Ekkert tæki tiltækt - hætti við" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "Ekkert DVB-S2 tæki tiltækt - reyna að nota DVB-S" msgctxt "#30039" msgid "Running" msgstr "Í gangi" msgctxt "#30040" msgid "Stopped" msgstr "Stöðvað" msgctxt "#30041" msgid "Finished" msgstr "Búið" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Rásaleit - Hætt við" msgctxt "#30043" msgid "Channel search - Error" msgstr "Rásaleit - Villa" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "Missti tenginguna við VDR miðlara" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "Tenging endurheimt við VDR miðlara" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Búa sjálfvirkt til rásahópa á miðlaranum" msgctxt "#30047" msgid "Request Timeshift" msgstr "Biðja um Tímahliðrun" msgctxt "#30048" msgid "Path to channel icons" msgstr "Slóð á táknmyndir rása" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "MAC vistfang VDR miðlara fyrir Wake On LAN" msgctxt "#30100" msgid "VDR OSD" msgstr "Skjátexti VDR" msgctxt "#30101" msgid "Setup" msgstr "Uppsetning" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "Stjórna Skjátexta - Ýttu á upplýsingar til að hætta" msgctxt "#30103" msgid "Select to control OSD" msgstr "Valið að stjórna Skjátexta" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Tímahliðrunarhamur" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "Flýtiminni Tímahriðrunar (RAM) x100 MB" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Flýtiminni Tímahliðrunar (Skrá) x1 GB" msgctxt "#30107" msgid "VDR Admin" msgstr "VDR Stjórnandi" msgctxt "#30108" msgid "Channels" msgstr "Rásir" msgctxt "#30109" msgid "Provider whitelist" msgstr "Hvítlisti Veitna" msgctxt "#30110" msgid "Channel blacklist" msgstr "Bannlisti Rása" msgctxt "#30111" msgid "Channel filters" msgstr "Rásasía" msgctxt "#30112" msgid "Radio Channels" msgstr "'Utvarpsrásir" msgctxt "#30113" msgid "Save filters" msgstr "Vista síur" msgctxt "#30114" msgid "Provider Unknown" msgstr "Veita Óþekkt" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.it_it/000077500000000000000000000000001255226123100300465ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.it_it/strings.po000066400000000000000000000124641255226123100321060ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Italian (Italy) (http://www.transifex.com/projects/p/kodi-main/language/it_IT/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: it_IT\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "VDR hostname o indirizzo IP" msgctxt "#30001" msgid "VNSI Port" msgstr "Porta VNSI" msgctxt "#30002" msgid "Priority" msgstr "Priorità" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Conversione del set di caratteri" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Timeout per la connessione (s)" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "Consenti messaggi VDR" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Leggi le registrazioni dalla cartella" msgctxt "#30007" msgid "VDR recordings directory" msgstr "Cartella delle registrazioni VDR" msgctxt "#30008" msgid "Channel search" msgstr "Ricerca canale" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Ricerca canale - Impostazioni" msgctxt "#30010" msgid "Start Channel search" msgstr "Inizia la ricerca canale" msgctxt "#30011" msgid "Source Type" msgstr "Tipo sorgente" msgctxt "#30012" msgid "TV channels" msgstr "Canali TV" msgctxt "#30013" msgid "Radio channels" msgstr "Canali radio" msgctxt "#30014" msgid "FTA channels" msgstr "Canali FTA" msgctxt "#30015" msgid "Scrambled channels" msgstr "Canali criptati" msgctxt "#30016" msgid "HD channels" msgstr "Canali HD" msgctxt "#30017" msgid "Country" msgstr "Nazione" msgctxt "#30018" msgid "Cable Inversion" msgstr "Inversione cavo" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Symbolrate cavo" msgctxt "#30020" msgid "Cable modulation" msgstr "Modulazione cavo" msgctxt "#30021" msgid "Terr Inversion" msgstr "Inversione terr" msgctxt "#30022" msgid "Satellite" msgstr "Satellite" msgctxt "#30023" msgid "ATSC Type" msgstr "Tipo ATSC" msgctxt "#30024" msgid "Back" msgstr "Indietro" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Ricerca canale - in esecuzione... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Tipo:" msgctxt "#30027" msgid "Device:" msgstr "Dispositivo:" msgctxt "#30028" msgid "Scan: %i" msgstr "Scansione: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Segnale: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Nuovi canali: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Tutti i canali: %i" msgctxt "#30032" msgid "Analog TV" msgstr "Tv analogica" msgctxt "#30033" msgid "Analog Radio" msgstr "Radio analogica" msgctxt "#30034" msgid "Transponder:" msgstr "Transponder:" msgctxt "#30035" msgid "New channels" msgstr "Nuovi canali" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Ricerca canale - Terminata" msgctxt "#30037" msgid "No device available - exiting" msgstr "Nessuno dispositivo disponibile - esistente" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "Non sono disponibili dispositivi DVB-S2 - fallback a DVB-S" msgctxt "#30039" msgid "Running" msgstr "In esecuzione" msgctxt "#30040" msgid "Stopped" msgstr "Fermato" msgctxt "#30041" msgid "Finished" msgstr "Finito" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Ricerca canale - Annullata" msgctxt "#30043" msgid "Channel search - Error" msgstr "Ricerca canale - Errore" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "Connessione al server VDR persa" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "Connessione al server VDR ripristinata" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Crea automaticamente gruppi di canali sul server" msgctxt "#30047" msgid "Request Timeshift" msgstr "Richiesta " msgctxt "#30048" msgid "Path to channel icons" msgstr "Percorso per icone canali" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "VDR Server MAC per Wake-on-LAN" msgctxt "#30100" msgid "VDR OSD" msgstr "OSD VDR" msgctxt "#30101" msgid "Setup" msgstr "Impostazioni" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "Controllo OSD - premi info per uscire" msgctxt "#30103" msgid "Select to control OSD" msgstr "Seleziona per controllare l'OSD" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Modalità Timeshift" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "Buffer Timeshift (RAM) x100 MB" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Buffer Timeshift (File) x1 GB" msgctxt "#30107" msgid "VDR Admin" msgstr "Amministratore VDR" msgctxt "#30108" msgid "Channels" msgstr "Canali" msgctxt "#30109" msgid "Provider whitelist" msgstr "Lista provider permessi " msgctxt "#30110" msgid "Channel blacklist" msgstr "Canali non permessi" msgctxt "#30111" msgid "Channel filters" msgstr "Filtri canale" msgctxt "#30112" msgid "Radio Channels" msgstr "Canali radio" msgctxt "#30113" msgid "Save filters" msgstr "Salva filtri" msgctxt "#30114" msgid "Provider Unknown" msgstr "Provider sconosciuti" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.ja_jp/000077500000000000000000000000001255226123100300215ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.ja_jp/strings.po000066400000000000000000000124011255226123100320500ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Japanese (Japan) (http://www.transifex.com/projects/p/kodi-main/language/ja_JP/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ja_JP\n" "Plural-Forms: nplurals=1; plural=0;\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "VDR のホスト名またはIPアドレス" msgctxt "#30001" msgid "VNSI Port" msgstr "VNSI ポート" msgctxt "#30002" msgid "Priority" msgstr "優先順位" msgctxt "#30003" msgid "Character Set Conversion" msgstr "文字セット変換" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "接続タイムアウト (秒)" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "VDRのメッセージを許可する" msgctxt "#30006" msgid "Read recordings from directory" msgstr "ディレクトリから録画を読む" msgctxt "#30007" msgid "VDR recordings directory" msgstr "VDR録画のディレクトリ" msgctxt "#30008" msgid "Channel search" msgstr "チャンネル検索" msgctxt "#30009" msgid "Channel search - Settings" msgstr "チャンネル検索 - 設定" msgctxt "#30010" msgid "Start Channel search" msgstr "チャンネル検索を開始" msgctxt "#30011" msgid "Source Type" msgstr "ソースのタイプ" msgctxt "#30012" msgid "TV channels" msgstr "TVチャンネル" msgctxt "#30013" msgid "Radio channels" msgstr "ラジオチャンネル" msgctxt "#30014" msgid "FTA channels" msgstr "FTAチャンネル" msgctxt "#30015" msgid "Scrambled channels" msgstr "スクランブルチャンネル" msgctxt "#30016" msgid "HD channels" msgstr "HDチャンネル" msgctxt "#30017" msgid "Country" msgstr "国" msgctxt "#30022" msgid "Satellite" msgstr "衛星" msgctxt "#30023" msgid "ATSC Type" msgstr "ATSCタイプ" msgctxt "#30024" msgid "Back" msgstr "戻る" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "チャンネル検索 - 実行中... %i %%" msgctxt "#30026" msgid "Type:" msgstr "タイプ:" msgctxt "#30027" msgid "Device:" msgstr "デバイス:" msgctxt "#30028" msgid "Scan: %i" msgstr "スキャン:%i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "シグナル:%i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "新規チャンネル: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "全チャンネル: %i" msgctxt "#30032" msgid "Analog TV" msgstr "アナログTV" msgctxt "#30033" msgid "Analog Radio" msgstr "アナログラジオ" msgctxt "#30035" msgid "New channels" msgstr "新規チャンネル" msgctxt "#30036" msgid "Channel search - Finished" msgstr "チャンネル検索 - 完了" msgctxt "#30037" msgid "No device available - exiting" msgstr "利用可能なデバイスがありません - 出ます" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "DVB-S2のデバイスが見つかりませんーDVB-Sへフォールバックしようとしています" msgctxt "#30039" msgid "Running" msgstr "実行中" msgctxt "#30040" msgid "Stopped" msgstr "停止" msgctxt "#30041" msgid "Finished" msgstr "終了" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "チャンネル検索 - キャンセル" msgctxt "#30043" msgid "Channel search - Error" msgstr "チャンネル検索 - エラー" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "VDRサーバとの接続が切断されました" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "VDRサーバとの接続が復活しました" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "サーバ上で自動的にチャネルグループを作成する" msgctxt "#30047" msgid "Request Timeshift" msgstr "タイムシフトを要求する" msgctxt "#30048" msgid "Path to channel icons" msgstr "チャンネルアイコンの保存パス" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "VDR サーバー MAC アドレス(Wake-on-LAN用)" msgctxt "#30100" msgid "VDR OSD" msgstr "VDR OSD" msgctxt "#30101" msgid "Setup" msgstr "設定" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "OSDを制御する - 終了するのには「Info]を押して下さい" msgctxt "#30103" msgid "Select to control OSD" msgstr "OSDを制御するため選択してください" msgctxt "#30104" msgid "Timeshift Mode" msgstr "タイムシフトモード" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "タイムシフトバッファー(RAM)x100MB" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "タイムシフトバッファー(ファイル) x 1GB" msgctxt "#30107" msgid "VDR Admin" msgstr "VDR管理" msgctxt "#30108" msgid "Channels" msgstr "チャンネル" msgctxt "#30110" msgid "Channel blacklist" msgstr "チャンネルのブラックリスト" msgctxt "#30112" msgid "Radio Channels" msgstr "ラジオチャンネル" msgctxt "#30113" msgid "Save filters" msgstr "絞り込みの保存" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.ko_kr/000077500000000000000000000000001255226123100300435ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.ko_kr/strings.po000066400000000000000000000123361255226123100321010ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Korean (Korea) (http://www.transifex.com/projects/p/kodi-main/language/ko_KR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ko_KR\n" "Plural-Forms: nplurals=1; plural=0;\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "VDR 호스트네임 또는 IP" msgctxt "#30001" msgid "VNSI Port" msgstr "VNSI 포트" msgctxt "#30002" msgid "Priority" msgstr "우선순위" msgctxt "#30003" msgid "Character Set Conversion" msgstr "문자집합 변환" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "연결시간 제한 (초)" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "VDR 메시지 허용" msgctxt "#30006" msgid "Read recordings from directory" msgstr "디렉터리에서 녹화 읽기" msgctxt "#30007" msgid "VDR recordings directory" msgstr "VDR 녹화 디렉터리" msgctxt "#30008" msgid "Channel search" msgstr "채널 검색" msgctxt "#30009" msgid "Channel search - Settings" msgstr "채널 검색 - 설정" msgctxt "#30010" msgid "Start Channel search" msgstr "채널 검색 시작" msgctxt "#30011" msgid "Source Type" msgstr "소스 종류" msgctxt "#30012" msgid "TV channels" msgstr "TV 채널" msgctxt "#30013" msgid "Radio channels" msgstr "라디오 채널" msgctxt "#30014" msgid "FTA channels" msgstr "FTA 채널" msgctxt "#30015" msgid "Scrambled channels" msgstr "암호화 채널" msgctxt "#30016" msgid "HD channels" msgstr "HD 채널" msgctxt "#30017" msgid "Country" msgstr "국가" msgctxt "#30018" msgid "Cable Inversion" msgstr "케이블 반전" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "케이블 심볼 레이트" msgctxt "#30020" msgid "Cable modulation" msgstr "케이블 변조" msgctxt "#30021" msgid "Terr Inversion" msgstr "Terr 반전" msgctxt "#30022" msgid "Satellite" msgstr "위성" msgctxt "#30023" msgid "ATSC Type" msgstr "ATSC 형식" msgctxt "#30024" msgid "Back" msgstr "뒤로" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "채널 검색 - 검색중... %i %%" msgctxt "#30026" msgid "Type:" msgstr "형식:" msgctxt "#30027" msgid "Device:" msgstr "장치:" msgctxt "#30028" msgid "Scan: %i" msgstr "스캔: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "신호: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "새 채널: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "모든 채널: %i" msgctxt "#30032" msgid "Analog TV" msgstr "아날로그 TV" msgctxt "#30033" msgid "Analog Radio" msgstr "아날로그 라디오" msgctxt "#30034" msgid "Transponder:" msgstr "수신기:" msgctxt "#30035" msgid "New channels" msgstr "새 채널" msgctxt "#30036" msgid "Channel search - Finished" msgstr "채널 검색 - 완료" msgctxt "#30037" msgid "No device available - exiting" msgstr "장치 없음 - 종료" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "DVB-S2 장치 없음 - DVB-S 장치로 시도중" msgctxt "#30039" msgid "Running" msgstr "실행중" msgctxt "#30040" msgid "Stopped" msgstr "중지" msgctxt "#30041" msgid "Finished" msgstr "완료" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "채널 검색 - 취소" msgctxt "#30043" msgid "Channel search - Error" msgstr "채널 검색 - 오류" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "VDR 서버 연결 끊김" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "VRD 서버 연결 복구" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "서버에 자동으로 채널 그룹 생성" msgctxt "#30047" msgid "Request Timeshift" msgstr "타임쉬프트 요청" msgctxt "#30048" msgid "Path to channel icons" msgstr "채널 아이콘 경로" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "Wake-on-LAN 을 위한 VDR 서버의 MAC 주소" msgctxt "#30100" msgid "VDR OSD" msgstr "VDR OSD" msgctxt "#30101" msgid "Setup" msgstr "설정" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "OSD 제어 - info 키를 눌러 종료" msgctxt "#30103" msgid "Select to control OSD" msgstr "OSD 제어를 선택" msgctxt "#30104" msgid "Timeshift Mode" msgstr "타임쉬프트 모드" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "타임쉬프트 버퍼 (RAM) x100 MB" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "타임쉬프트 버퍼 (파일) x1 GB" msgctxt "#30107" msgid "VDR Admin" msgstr "VDR 관리" msgctxt "#30108" msgid "Channels" msgstr "채널" msgctxt "#30109" msgid "Provider whitelist" msgstr "허용된 제공자" msgctxt "#30110" msgid "Channel blacklist" msgstr "채널 블랙리스트" msgctxt "#30111" msgid "Channel filters" msgstr "채널 필터" msgctxt "#30112" msgid "Radio Channels" msgstr "라디오 채널" msgctxt "#30113" msgid "Save filters" msgstr "필터 저장" msgctxt "#30114" msgid "Provider Unknown" msgstr "알려지지 않은 제공자" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.lt_lt/000077500000000000000000000000001255226123100300545ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.lt_lt/strings.po000066400000000000000000000127601255226123100321130ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Lithuanian (Lithuania) (http://www.transifex.com/projects/p/kodi-main/language/lt_LT/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: lt_LT\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "VDR kompiuterio vardas arba IP adresas" msgctxt "#30001" msgid "VNSI Port" msgstr "VNSI prievadas" msgctxt "#30002" msgid "Priority" msgstr "Prioritetas" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Simbolių rinkinio konvertavimas" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Prisijungimui skirtas laikas (s)" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "Leisti VDR pranešimus" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Skaityti įrašus iš katalogo" msgctxt "#30007" msgid "VDR recordings directory" msgstr "VDR įrašų katalogas" msgctxt "#30008" msgid "Channel search" msgstr "Kanalų paieška" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Kanalų paieška - Nustatymai" msgctxt "#30010" msgid "Start Channel search" msgstr "Pradėti kanalų paiešką" msgctxt "#30011" msgid "Source Type" msgstr "Šaltinio tipas" msgctxt "#30012" msgid "TV channels" msgstr "TV kanalai" msgctxt "#30013" msgid "Radio channels" msgstr "Radijo kanalai" msgctxt "#30014" msgid "FTA channels" msgstr "FTA kanalai" msgctxt "#30015" msgid "Scrambled channels" msgstr "Koduoti kanalai" msgctxt "#30016" msgid "HD channels" msgstr "HD kanalai" msgctxt "#30017" msgid "Country" msgstr "Šalis" msgctxt "#30018" msgid "Cable Inversion" msgstr "Kabelio inversija" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Kabelio spartos dažnis" msgctxt "#30020" msgid "Cable modulation" msgstr "Kabelio moduliavimas" msgctxt "#30021" msgid "Terr Inversion" msgstr "Terr inversija" msgctxt "#30022" msgid "Satellite" msgstr "Palydovas" msgctxt "#30023" msgid "ATSC Type" msgstr "ATSC tipas" msgctxt "#30024" msgid "Back" msgstr "Atgal" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Kanalų paieška - veikia... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Tipas:" msgctxt "#30027" msgid "Device:" msgstr "Įrenginys:" msgctxt "#30028" msgid "Scan: %i" msgstr "Skenavimas: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Signalas: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Nauji kanalai: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Visi kanalai: %i" msgctxt "#30032" msgid "Analog TV" msgstr "Analoginė TV" msgctxt "#30033" msgid "Analog Radio" msgstr "Analoginis radijas" msgctxt "#30034" msgid "Transponder:" msgstr "Transponderis:" msgctxt "#30035" msgid "New channels" msgstr "Nauji kanalai" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Kanalų paieška - Baigta" msgctxt "#30037" msgid "No device available - exiting" msgstr "Nėra galimų įrenginių - išeinama" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "Nėra DVB-S2 įrenginio - bandomas atsarginis DVB-S" msgctxt "#30039" msgid "Running" msgstr "Veikia" msgctxt "#30040" msgid "Stopped" msgstr "Sustabdyta" msgctxt "#30041" msgid "Finished" msgstr "Užbaigta" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Kanalų paieška - Atšaukta" msgctxt "#30043" msgid "Channel search - Error" msgstr "Kanalų paieška - Klaida" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "Nutrūko ryšys su VDR serveriu" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "Prijungimas prie VDR serverio atkurtas" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Serveryje sukurti kanalų grupes automatiškai" msgctxt "#30047" msgid "Request Timeshift" msgstr "Užklausti laiko poslinkio" msgctxt "#30048" msgid "Path to channel icons" msgstr "Kelias iki kanalų piktogramų" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "VDR serverio MAC adresas Wake-on-LAN funkcijai" msgctxt "#30100" msgid "VDR OSD" msgstr "VDR OSD" msgctxt "#30101" msgid "Setup" msgstr "Sąranka" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "Kontroliuojamas OSD - spauskite info, norėdami išeiti" msgctxt "#30103" msgid "Select to control OSD" msgstr "Pasirinkite, norėdami kontroliuoti OSD" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Laiko poslinkio būdas" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "Laiko poslinkio buferis (RAM) x100 MB" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Laiko poslinkio buferis (Failas) x1 GB" msgctxt "#30107" msgid "VDR Admin" msgstr "VDR administratorius" msgctxt "#30108" msgid "Channels" msgstr "Kanalai" msgctxt "#30109" msgid "Provider whitelist" msgstr "Tiekėjų baltasis sąrašas" msgctxt "#30110" msgid "Channel blacklist" msgstr "Tiekėjų juodasis sąrašas" msgctxt "#30111" msgid "Channel filters" msgstr "Kanalų filtrai" msgctxt "#30112" msgid "Radio Channels" msgstr "Radijo kanalai" msgctxt "#30113" msgid "Save filters" msgstr "Išsaugoti filtrus" msgctxt "#30114" msgid "Provider Unknown" msgstr "Tiekėjas nežinomas" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.lv_lv/000077500000000000000000000000001255226123100300605ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.lv_lv/strings.po000066400000000000000000000125751255226123100321230ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Latvian (Latvia) (http://www.transifex.com/projects/p/kodi-main/language/lv_LV/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: lv_LV\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "VDR saimniekvārds vai IP" msgctxt "#30001" msgid "VNSI Port" msgstr "VNSI ports" msgctxt "#30002" msgid "Priority" msgstr "Prioritāte" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Rakstzīmju kopas konversija" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Savienojuma noilgums" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "Atļaut VDR ziņojumus" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Lasīt ierakstus no direktorijas" msgctxt "#30007" msgid "VDR recordings directory" msgstr "VDR ierakstu direktorija" msgctxt "#30008" msgid "Channel search" msgstr "Kanāla meklēšana" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Kanāla meklēšana - iestatījumi" msgctxt "#30010" msgid "Start Channel search" msgstr "Sākt kanāla meklēšanu" msgctxt "#30011" msgid "Source Type" msgstr "Avota veids" msgctxt "#30012" msgid "TV channels" msgstr "TV kanāli" msgctxt "#30013" msgid "Radio channels" msgstr "Radio kanāli" msgctxt "#30014" msgid "FTA channels" msgstr "Bezmaksas kanāli" msgctxt "#30015" msgid "Scrambled channels" msgstr "Maksas kanāli" msgctxt "#30016" msgid "HD channels" msgstr "HD kanāli" msgctxt "#30017" msgid "Country" msgstr "Valsts" msgctxt "#30018" msgid "Cable Inversion" msgstr "Kabeļa inversija" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Kabeļa simbolbiežums" msgctxt "#30020" msgid "Cable modulation" msgstr "Kabeļa modulācija" msgctxt "#30021" msgid "Terr Inversion" msgstr "Terr inversija" msgctxt "#30022" msgid "Satellite" msgstr "Satelīts" msgctxt "#30023" msgid "ATSC Type" msgstr "ATSC veids" msgctxt "#30024" msgid "Back" msgstr "Atpakaļ" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Kanāla meklēšana - darbojas... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Veids:" msgctxt "#30027" msgid "Device:" msgstr "Ierīce:" msgctxt "#30028" msgid "Scan: %i" msgstr "Skenēt: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Signāls: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Jauni kanāli: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Visi kanāli: %i" msgctxt "#30032" msgid "Analog TV" msgstr "Analogā TV" msgctxt "#30033" msgid "Analog Radio" msgstr "Analogais radio" msgctxt "#30034" msgid "Transponder:" msgstr "Nesējfrekvence:" msgctxt "#30035" msgid "New channels" msgstr "Jauni kanāli" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Kanāla meklēšana - pabeigta" msgctxt "#30037" msgid "No device available - exiting" msgstr "Neviena ierīce nav pieejama - iziet" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "Neviena DVB-S2 ierīce nav pieejama - mēģina atgriesties pie DVB-S" msgctxt "#30039" msgid "Running" msgstr "Darbojas" msgctxt "#30040" msgid "Stopped" msgstr "Apturēts" msgctxt "#30041" msgid "Finished" msgstr "Pabeigts" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Kanāla meklēšana - atcelta" msgctxt "#30043" msgid "Channel search - Error" msgstr "Kanāla meklēšana - kļūda" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "Zudis VDR servera pieslēgums" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "VDR servera pieslēgums atjaunots" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Izveidot kanālu grupas serverī automātiski" msgctxt "#30047" msgid "Request Timeshift" msgstr "Pieprasīt laika nobīdi" msgctxt "#30048" msgid "Path to channel icons" msgstr "Ceļš uz kanālu ikonām" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "VDR Server MAC for Wake-on-LAN" msgctxt "#30100" msgid "VDR OSD" msgstr "VDR OSD" msgctxt "#30101" msgid "Setup" msgstr "Iestatīšana" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "OSD kontrolēšana - iziet spiežot info" msgctxt "#30103" msgid "Select to control OSD" msgstr "Atlasiet OSD kontrolei" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Laika nobīdes režīms" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "Laika nobīdes buferis (RAM) x100 MB" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Laika nobīdes buferis (fails) x1 GB" msgctxt "#30107" msgid "VDR Admin" msgstr "VDR admins" msgctxt "#30108" msgid "Channels" msgstr "Kanāli" msgctxt "#30109" msgid "Provider whitelist" msgstr "Atļautie piegādātāji " msgctxt "#30110" msgid "Channel blacklist" msgstr "Aizliegtie kanāli" msgctxt "#30111" msgid "Channel filters" msgstr "Kanālu filtri" msgctxt "#30112" msgid "Radio Channels" msgstr "Radio kanāli" msgctxt "#30113" msgid "Save filters" msgstr "Saglabāt filtrus" msgctxt "#30114" msgid "Provider Unknown" msgstr "Nezināms piegādātājs" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.mi/000077500000000000000000000000001255226123100273435ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.mi/strings.po000066400000000000000000000016551255226123100314030ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Maori (http://www.transifex.com/projects/p/kodi-main/language/mi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: mi\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" msgctxt "#30012" msgid "TV channels" msgstr "Hongere TV" msgctxt "#30013" msgid "Radio channels" msgstr "Hongere Irirangi" msgctxt "#30017" msgid "Country" msgstr "Country" msgctxt "#30026" msgid "Type:" msgstr "Momo:" msgctxt "#30039" msgid "Running" msgstr "Rere" msgctxt "#30108" msgid "Channels" msgstr "Ngā hongere" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.mk_mk/000077500000000000000000000000001255226123100300345ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.mk_mk/strings.po000066400000000000000000000141771255226123100320770ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Macedonian (Macedonia) (http://www.transifex.com/projects/p/kodi-main/language/mk_MK/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: mk_MK\n" "Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "VDR Hostname или IP" msgctxt "#30001" msgid "VNSI Port" msgstr "VNSI Port" msgctxt "#30002" msgid "Priority" msgstr "Приоритет" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Конверзија на вид букви" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Истече времето за поврзување (s)" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "Дозволи VDR пораки" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Читај снимки од локација" msgctxt "#30007" msgid "VDR recordings directory" msgstr "Локација на VDR снимки" msgctxt "#30008" msgid "Channel search" msgstr "Барање на канали" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Барање на канали - Поставки" msgctxt "#30010" msgid "Start Channel search" msgstr "Започни со барање канали" msgctxt "#30011" msgid "Source Type" msgstr "Вид на извор" msgctxt "#30012" msgid "TV channels" msgstr "ТВ канали" msgctxt "#30013" msgid "Radio channels" msgstr "Радио канали" msgctxt "#30014" msgid "FTA channels" msgstr "Слободни канали" msgctxt "#30015" msgid "Scrambled channels" msgstr "Заклучени канали" msgctxt "#30016" msgid "HD channels" msgstr "HD канали" msgctxt "#30017" msgid "Country" msgstr "Држава" msgctxt "#30018" msgid "Cable Inversion" msgstr "Кабловска инверзија" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Кабловска стапка на симбол" msgctxt "#30020" msgid "Cable modulation" msgstr "Кабловска модулација" msgctxt "#30021" msgid "Terr Inversion" msgstr "Terr Инверзија" msgctxt "#30022" msgid "Satellite" msgstr "Сателит" msgctxt "#30023" msgid "ATSC Type" msgstr "ATSC Тип" msgctxt "#30024" msgid "Back" msgstr "Назад" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Барање канали... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Тип:" msgctxt "#30027" msgid "Device:" msgstr "Уред:" msgctxt "#30028" msgid "Scan: %i" msgstr "Пребарај: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Сигнал: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Нови канали: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Сите канали: %i" msgctxt "#30032" msgid "Analog TV" msgstr "Аналогна ТВ" msgctxt "#30033" msgid "Analog Radio" msgstr "Аналогно Радио" msgctxt "#30034" msgid "Transponder:" msgstr "Транспондер:" msgctxt "#30035" msgid "New channels" msgstr "Нови канали" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Барање на канали - Завршено" msgctxt "#30037" msgid "No device available - exiting" msgstr "Нема достапни уреди" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "Нема DVB-S2 достапни уреди- trying fallback to DVB-S" msgctxt "#30039" msgid "Running" msgstr "Стартување" msgctxt "#30040" msgid "Stopped" msgstr "Запрено" msgctxt "#30041" msgid "Finished" msgstr "Завршено" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Барање на канали - Откажано" msgctxt "#30043" msgid "Channel search - Error" msgstr "Барање на канали - Грешка" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "Изгубена врска со VDR сервер" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "Обновена врска со VDR сервер" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Автоматски креирај група на канали на сервер" msgctxt "#30047" msgid "Request Timeshift" msgstr "Побарај Timeshift" msgctxt "#30048" msgid "Path to channel icons" msgstr "Локација на иконите за канали" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "VDR Server MAC адреса за Wake-on-LAN" msgctxt "#30100" msgid "VDR OSD" msgstr "VDR OSD" msgctxt "#30101" msgid "Setup" msgstr "Конфигурација" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "Контролирање на дисплејот - притисни „инфо“ за да излезеш" msgctxt "#30103" msgid "Select to control OSD" msgstr "Одбери за да го контролираш дисплејот" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Timeshift режим" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "Timeshift Buffer (RAM) x100 MB" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Timeshift Buffer (File) x1 GB" msgctxt "#30107" msgid "VDR Admin" msgstr "VDR Админ" msgctxt "#30108" msgid "Channels" msgstr "Канали" msgctxt "#30109" msgid "Provider whitelist" msgstr "Листа на одобрени провајдери" msgctxt "#30110" msgid "Channel blacklist" msgstr "Листа на блокирани канали" msgctxt "#30111" msgid "Channel filters" msgstr "Смени филтери" msgctxt "#30112" msgid "Radio Channels" msgstr "Радио Канали" msgctxt "#30113" msgid "Save filters" msgstr "Зачувај филтри" msgctxt "#30114" msgid "Provider Unknown" msgstr "Непознат провајдер" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.ml_in/000077500000000000000000000000001255226123100300345ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.ml_in/strings.po000066400000000000000000000012561255226123100320710ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Malayalam (India) (http://www.transifex.com/projects/p/kodi-main/language/ml_IN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ml_IN\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgctxt "#30026" msgid "Type:" msgstr "രീതി" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.mn_mn/000077500000000000000000000000001255226123100300425ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.mn_mn/strings.po000066400000000000000000000067151255226123100321040ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Mongolian (Mongolia) (http://www.transifex.com/projects/p/kodi-main/language/mn_MN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: mn_MN\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "VDR нэр эсвэл IP" msgctxt "#30001" msgid "VNSI Port" msgstr "VNSI порт" msgctxt "#30002" msgid "Priority" msgstr "Эрэмбэ" msgctxt "#30008" msgid "Channel search" msgstr "Суваг хайх" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Суваг хайх - Тохиргоо" msgctxt "#30010" msgid "Start Channel search" msgstr "Суваг хайж эхлэх" msgctxt "#30012" msgid "TV channels" msgstr "ТВ сувгууд" msgctxt "#30013" msgid "Radio channels" msgstr "Радио сувгууд" msgctxt "#30014" msgid "FTA channels" msgstr "FTA сувгууд" msgctxt "#30015" msgid "Scrambled channels" msgstr "Холилдсон сувгууд" msgctxt "#30016" msgid "HD channels" msgstr "HD сувгууд" msgctxt "#30017" msgid "Country" msgstr "Улс" msgctxt "#30022" msgid "Satellite" msgstr "Хиймэл дагуул" msgctxt "#30023" msgid "ATSC Type" msgstr "ATSC төрөл" msgctxt "#30024" msgid "Back" msgstr "Буцах" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Суваг хайх - хайж байна... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Төрөл:" msgctxt "#30027" msgid "Device:" msgstr "Төхөөрөмж:" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Дохио: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Шинэ сувгууд: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Бүх сувгууд: %i" msgctxt "#30032" msgid "Analog TV" msgstr "Аналог ТВ" msgctxt "#30033" msgid "Analog Radio" msgstr "Аналог радио" msgctxt "#30035" msgid "New channels" msgstr "Шинэ сувгууд" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Суваг хайх - Дууссан" msgctxt "#30037" msgid "No device available - exiting" msgstr "Боломжтой төхөөрөмж алга - гарч байна" msgctxt "#30039" msgid "Running" msgstr "Ажиллаж байна" msgctxt "#30040" msgid "Stopped" msgstr "Зогссон" msgctxt "#30041" msgid "Finished" msgstr "Дууссан" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Суваг хайх - Цуцласан" msgctxt "#30043" msgid "Channel search - Error" msgstr "Суваг хайх - Алдаа" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "VDR сервер уруух холболт алдагдсан" msgctxt "#30107" msgid "VDR Admin" msgstr "VDR админ" msgctxt "#30108" msgid "Channels" msgstr "Сувгууд" msgctxt "#30110" msgid "Channel blacklist" msgstr "Сувгийн хар жагсаалт" msgctxt "#30111" msgid "Channel filters" msgstr "Сувгийн шүүлтүүр" msgctxt "#30112" msgid "Radio Channels" msgstr "Радио сувгууд" msgctxt "#30113" msgid "Save filters" msgstr "Шүүлт хадгалах" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.ms_my/000077500000000000000000000000001255226123100300625ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.ms_my/strings.po000066400000000000000000000123611255226123100321160ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Malay (Malaysia) (http://www.transifex.com/projects/p/kodi-main/language/ms_MY/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ms_MY\n" "Plural-Forms: nplurals=1; plural=0;\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "Nama hos atau alamat IP VDR" msgctxt "#30001" msgid "VNSI Port" msgstr "Port VNSI" msgctxt "#30002" msgid "Priority" msgstr "Keutamaan" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Penukaran Set Aksara" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Had masa tamat sambung" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "Benarkan Mesej VDR" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Baca rakaman dari direktori" msgctxt "#30007" msgid "VDR recordings directory" msgstr "Direktori rakaman VDR" msgctxt "#30008" msgid "Channel search" msgstr "Gelintar saluran" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Gelintar saluran - Tetapan" msgctxt "#30010" msgid "Start Channel search" msgstr "Mulakan gelintar Saluran" msgctxt "#30011" msgid "Source Type" msgstr "Jenis Sumber" msgctxt "#30012" msgid "TV channels" msgstr "Saluran TV" msgctxt "#30013" msgid "Radio channels" msgstr "Saluran radio" msgctxt "#30014" msgid "FTA channels" msgstr "Saluran FTA" msgctxt "#30015" msgid "Scrambled channels" msgstr "Saluran terkarau" msgctxt "#30016" msgid "HD channels" msgstr "Saluran HD" msgctxt "#30017" msgid "Country" msgstr "Negara" msgctxt "#30018" msgid "Cable Inversion" msgstr "Songsangan Kabel" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Kadar Simbol Kabel" msgctxt "#30020" msgid "Cable modulation" msgstr "Modulasi Kabel" msgctxt "#30021" msgid "Terr Inversion" msgstr "Songsangan Terr" msgctxt "#30022" msgid "Satellite" msgstr "Satelit" msgctxt "#30023" msgid "ATSC Type" msgstr "Jenis ATSC" msgctxt "#30024" msgid "Back" msgstr "Undur" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Gelintar saluran - berjalan... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Jenis:" msgctxt "#30027" msgid "Device:" msgstr "Peranti:" msgctxt "#30028" msgid "Scan: %i" msgstr "Imbas: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Isyarat: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Saluran baru: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Semua saluran: %i" msgctxt "#30032" msgid "Analog TV" msgstr "TV analog" msgctxt "#30033" msgid "Analog Radio" msgstr "Radio analog" msgctxt "#30034" msgid "Transponder:" msgstr "Transponder:" msgctxt "#30035" msgid "New channels" msgstr "Saluran baru" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Gelintar saluran - Selesai" msgctxt "#30037" msgid "No device available - exiting" msgstr "Tiada peranti tersedia - keluar" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "Tiada peranti DVB-S2 tersedia - mencuba jatuh balik ke DVB-5" msgctxt "#30039" msgid "Running" msgstr "Berjalan" msgctxt "#30040" msgid "Stopped" msgstr "Berhenti" msgctxt "#30041" msgid "Finished" msgstr "Selesai" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Gelintar saluran - Dibatalkan" msgctxt "#30043" msgid "Channel search - Error" msgstr "Gelintar saluran - Ralat" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "Sambungan terputus ke Pelayan VDR" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "Sambungan ke Pelayan VDR dipulihkan" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Cipta kumpulan saluran secara automatik pada pelayan" msgctxt "#30047" msgid "Request Timeshift" msgstr "Pinta Anjak Masa" msgctxt "#30048" msgid "Path to channel icons" msgstr "Laluan ke ikon saluran" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "Pelayan VDR MAC untuk Wake-on-LAN" msgctxt "#30100" msgid "VDR OSD" msgstr "OSD VDR" msgctxt "#30101" msgid "Setup" msgstr "Persediaan" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "Pengawalan OSD - tekan maklumat untuk keluar" msgctxt "#30103" msgid "Select to control OSD" msgstr "Pilih untuk kawal OSD" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Mod Anjak Masa" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "Penimbal Anjak Masa (RAM) x100 MB" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Penimbal Anjak Masa (Fail) x1 GB" msgctxt "#30107" msgid "VDR Admin" msgstr "Pentadbir VDR" msgctxt "#30108" msgid "Channels" msgstr "Saluran" msgctxt "#30109" msgid "Provider whitelist" msgstr "Senarai putih penyedia" msgctxt "#30110" msgid "Channel blacklist" msgstr "Senarai hitam saluran" msgctxt "#30111" msgid "Channel filters" msgstr "Penapis saluran" msgctxt "#30112" msgid "Radio Channels" msgstr "Saluran Radio" msgctxt "#30113" msgid "Save filters" msgstr "Simpan penapis" msgctxt "#30114" msgid "Provider Unknown" msgstr "Penyedia tidak diketahui" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.mt_mt/000077500000000000000000000000001255226123100300565ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.mt_mt/strings.po000066400000000000000000000020411255226123100321040ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Maltese (Malta) (http://www.transifex.com/projects/p/kodi-main/language/mt_MT/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "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 "#30012" msgid "TV channels" msgstr "Stazzjonijiet tat-TV" msgctxt "#30013" msgid "Radio channels" msgstr "Stazzjonijiet tar-Radju" msgctxt "#30017" msgid "Country" msgstr "Pajjiż" msgctxt "#30026" msgid "Type:" msgstr "Tip:" msgctxt "#30101" msgid "Setup" msgstr "Konfigurazzjoni" msgctxt "#30108" msgid "Channels" msgstr "Stazzjonijiet" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.my_mm/000077500000000000000000000000001255226123100300545ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.my_mm/strings.po000066400000000000000000000023151255226123100321060ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Burmese (Myanmar) (http://www.transifex.com/projects/p/kodi-main/language/my_MM/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: my_MM\n" "Plural-Forms: nplurals=1; plural=0;\n" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "ချိတ်ဆက်မှု့အချိန်ပြည့်သွားပါပြီ။" msgctxt "#30012" msgid "TV channels" msgstr "TV ချယ်နယ်" msgctxt "#30013" msgid "Radio channels" msgstr "ရေဒီယိုချယ်နယ်" msgctxt "#30017" msgid "Country" msgstr "နိုင်ငံ" msgctxt "#30026" msgid "Type:" msgstr "အမျိုးအစား -" msgctxt "#30039" msgid "Running" msgstr "ဖွင့်နေပါသည်" msgctxt "#30108" msgid "Channels" msgstr "Channel များ" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.nb_no/000077500000000000000000000000001255226123100300315ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.nb_no/strings.po000066400000000000000000000123111255226123100320600ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/projects/p/kodi-main/language/nb_NO/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: nb_NO\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "VDR Hostname eller IP" msgctxt "#30001" msgid "VNSI Port" msgstr "VNSI Port" msgctxt "#30002" msgid "Priority" msgstr "Prioritet" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Konvertering av tegnsett" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Tidsavbrudd ved tilkobling (i s)" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "Tillat VDR meldinger" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Les opptak fra mappe" msgctxt "#30007" msgid "VDR recordings directory" msgstr "Mappe for VDR-opptak" msgctxt "#30008" msgid "Channel search" msgstr "Kanalsøk" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Kanalsøk - innstillinger" msgctxt "#30010" msgid "Start Channel search" msgstr "Start kanalsøk" msgctxt "#30011" msgid "Source Type" msgstr "Kildetype" msgctxt "#30012" msgid "TV channels" msgstr "TV-kanaler" msgctxt "#30013" msgid "Radio channels" msgstr "Radio-kanaler" msgctxt "#30014" msgid "FTA channels" msgstr "FTA-kanaler" msgctxt "#30015" msgid "Scrambled channels" msgstr "Krypterte kanaler" msgctxt "#30016" msgid "HD channels" msgstr "HD-kanaler" msgctxt "#30017" msgid "Country" msgstr "Land" msgctxt "#30018" msgid "Cable Inversion" msgstr "Kabel-invertering" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Kabelens symbolhastighet" msgctxt "#30020" msgid "Cable modulation" msgstr "Kabelmodulasjon" msgctxt "#30021" msgid "Terr Inversion" msgstr "Terr-invertering" msgctxt "#30022" msgid "Satellite" msgstr "Satellitt" msgctxt "#30023" msgid "ATSC Type" msgstr "ATSC-type" msgctxt "#30024" msgid "Back" msgstr "Tilbake" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Kanalsøk - utfører... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Type:" msgctxt "#30027" msgid "Device:" msgstr "Enhet:" msgctxt "#30028" msgid "Scan: %i" msgstr "Skann: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Signal: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Nye kanaler: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Alle kanaler: %i" msgctxt "#30032" msgid "Analog TV" msgstr "Analog TV" msgctxt "#30033" msgid "Analog Radio" msgstr "Analog Radio" msgctxt "#30034" msgid "Transponder:" msgstr "Transponder:" msgctxt "#30035" msgid "New channels" msgstr "Nye kanaler" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Kanalsøk - fullført" msgctxt "#30037" msgid "No device available - exiting" msgstr "Ingen enhet tilgjengelig - avslutter" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "Ingen DVB-S2 enhet tilgjengelig - faller tilbake til DVB-S" msgctxt "#30039" msgid "Running" msgstr "Kjører" msgctxt "#30040" msgid "Stopped" msgstr "Stoppet" msgctxt "#30041" msgid "Finished" msgstr "Fullført" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Kanalsøk - avbrutt" msgctxt "#30043" msgid "Channel search - Error" msgstr "Kanalsøk - mislyktes" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "Mistet tilkoblingen til VDR-tjeneren" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "Tilkobling til VDR-tjener gjenopprettet" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Opprett automatisk kanalgrupper på tjeneren" msgctxt "#30047" msgid "Request Timeshift" msgstr "Be om tidshopp" msgctxt "#30048" msgid "Path to channel icons" msgstr "Bane til kanalikoner" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "VDR server MAC for StartPåLAN" msgctxt "#30100" msgid "VDR OSD" msgstr "VDR OSD" msgctxt "#30101" msgid "Setup" msgstr "Konfigurasjon" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "Kontrollere OSD - trykk info for å gå tilbake" msgctxt "#30103" msgid "Select to control OSD" msgstr "Velg å kontrollere OSD" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Tidshoppmodus" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "Tidshoppbuffer (RAM) x100 MB" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Tidshoppbuffer (Fil) x1 GB" msgctxt "#30107" msgid "VDR Admin" msgstr "VDR Administrator" msgctxt "#30108" msgid "Channels" msgstr "Kanaler" msgctxt "#30109" msgid "Provider whitelist" msgstr "leverandør hvitliste " msgctxt "#30110" msgid "Channel blacklist" msgstr "Kanal svarteliste" msgctxt "#30111" msgid "Channel filters" msgstr "Kanal filtre " msgctxt "#30112" msgid "Radio Channels" msgstr "Radio Channels" msgctxt "#30113" msgid "Save filters" msgstr "Lagre filtre" msgctxt "#30114" msgid "Provider Unknown" msgstr "Leverandør Ukjent" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.nl_nl/000077500000000000000000000000001255226123100300405ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.nl_nl/strings.po000066400000000000000000000122541255226123100320750ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Dutch (Netherlands) (http://www.transifex.com/projects/p/kodi-main/language/nl_NL/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: nl_NL\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "VDR hostnaam of IP adres" msgctxt "#30001" msgid "VNSI Port" msgstr "VNSI Poort" msgctxt "#30002" msgid "Priority" msgstr "Prioriteit" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Karaktersetconversie" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Connectietimeout (s)" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "VDR-berichten toestaan" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Lees opnames van directory" msgctxt "#30007" msgid "VDR recordings directory" msgstr "VDR opnamemap" msgctxt "#30008" msgid "Channel search" msgstr "Kanalen scannen" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Kanalenscan - Instellingen" msgctxt "#30010" msgid "Start Channel search" msgstr "Kanalenscan starten" msgctxt "#30011" msgid "Source Type" msgstr "Brontype" msgctxt "#30012" msgid "TV channels" msgstr "TV kanalen" msgctxt "#30013" msgid "Radio channels" msgstr "Radiokanalen" msgctxt "#30014" msgid "FTA channels" msgstr "FTA kanalen" msgctxt "#30015" msgid "Scrambled channels" msgstr "Gecodeerde kanalen" msgctxt "#30016" msgid "HD channels" msgstr "HD kanalen" msgctxt "#30017" msgid "Country" msgstr "Land" msgctxt "#30018" msgid "Cable Inversion" msgstr "Kabelinversie" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Kabelsymboolrate" msgctxt "#30020" msgid "Cable modulation" msgstr "Kabelmodulatie" msgctxt "#30021" msgid "Terr Inversion" msgstr "Antenneinversie" msgctxt "#30022" msgid "Satellite" msgstr "Satelliet" msgctxt "#30023" msgid "ATSC Type" msgstr "ATSCtype" msgctxt "#30024" msgid "Back" msgstr "Terug" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Kanalen zoeken - bezig... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Type:" msgctxt "#30027" msgid "Device:" msgstr "Apparaat:" msgctxt "#30028" msgid "Scan: %i" msgstr "Scan: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Signaal: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Nieuwe kanalen: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Alle kanalen: %i" msgctxt "#30032" msgid "Analog TV" msgstr "Analoge TV" msgctxt "#30033" msgid "Analog Radio" msgstr "Analoge Radio" msgctxt "#30034" msgid "Transponder:" msgstr "Transponder:" msgctxt "#30035" msgid "New channels" msgstr "Nieuwe kanalen" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Kanalen zoeken - Klaar" msgctxt "#30037" msgid "No device available - exiting" msgstr "Geen device beschikbaar - afsluiten" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "Geen DVB-S2 apparaat beschikbaar - We vallen terug op DVB-S" msgctxt "#30039" msgid "Running" msgstr "Bezig" msgctxt "#30040" msgid "Stopped" msgstr "Gestopt" msgctxt "#30041" msgid "Finished" msgstr "Klaar" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Kanalenscan - Geannuleerd" msgctxt "#30043" msgid "Channel search - Error" msgstr "Kanalenscan - Fout" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "Connectie naar VDR Server verloren" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "Connectie naar VDR Server hervat" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Automatisch kanaalgroepen maken op de server" msgctxt "#30047" msgid "Request Timeshift" msgstr "Vraag Timeshift aan" msgctxt "#30048" msgid "Path to channel icons" msgstr "Pad naar kanaal iconen" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "VDR Server MAC voor Wake-on-LAN" msgctxt "#30100" msgid "VDR OSD" msgstr "VDR OSD" msgctxt "#30101" msgid "Setup" msgstr "Setup" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "OSD Beheren - druk op info om te sluiten" msgctxt "#30103" msgid "Select to control OSD" msgstr "Selecteer om de OSD te beheren" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Timeshiftmodus" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "Timeshiftbuffer (RAM)x100 MB" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Timeshiftbuffer (Bestand) x1 GB" msgctxt "#30107" msgid "VDR Admin" msgstr "VDR Beheer" msgctxt "#30108" msgid "Channels" msgstr "Kanalen" msgctxt "#30109" msgid "Provider whitelist" msgstr "Providerwhitelist" msgctxt "#30110" msgid "Channel blacklist" msgstr "Kanaalblacklijst" msgctxt "#30111" msgid "Channel filters" msgstr "Kanaalfilters" msgctxt "#30112" msgid "Radio Channels" msgstr "Radiokanalen" msgctxt "#30113" msgid "Save filters" msgstr "Filters opslaan" msgctxt "#30114" msgid "Provider Unknown" msgstr "Provider onbekend" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.pl_pl/000077500000000000000000000000001255226123100300445ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.pl_pl/strings.po000066400000000000000000000132211255226123100320740ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Polish (Poland) (http://www.transifex.com/projects/p/kodi-main/language/pl_PL/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: pl_PL\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "Nazwa lub adres serwera" msgctxt "#30001" msgid "VNSI Port" msgstr "Port VNSI" msgctxt "#30002" msgid "Priority" msgstr "Priorytet" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Konwersja kodowania znaków" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Limit czasu połączenia (s)" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "Zezwalaj na wiadomości VDR" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Wczytuj nagrania z folderu" msgctxt "#30007" msgid "VDR recordings directory" msgstr "Folder nagrań" msgctxt "#30008" msgid "Channel search" msgstr "Wyszukiwanie kanałów" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Wyszukiwanie kanałów - Ustawienia" msgctxt "#30010" msgid "Start Channel search" msgstr "Rozpocznij wyszukiwanie kanałów" msgctxt "#30011" msgid "Source Type" msgstr "Typ źródła" msgctxt "#30012" msgid "TV channels" msgstr "Kanały telewizyjne" msgctxt "#30013" msgid "Radio channels" msgstr "Kanały radiowe" msgctxt "#30014" msgid "FTA channels" msgstr "Kanały niekodowane" msgctxt "#30015" msgid "Scrambled channels" msgstr "Kanały kodowane" msgctxt "#30016" msgid "HD channels" msgstr "Kanały HD" msgctxt "#30017" msgid "Country" msgstr "Kraj" msgctxt "#30018" msgid "Cable Inversion" msgstr "Inwersja telewizji kablowej" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Szybkość transmisji telewizji kablowej" msgctxt "#30020" msgid "Cable modulation" msgstr "Modulacja telewizji kablowej" msgctxt "#30021" msgid "Terr Inversion" msgstr "Inwersja telewizji naziemnej" msgctxt "#30022" msgid "Satellite" msgstr "Satelita" msgctxt "#30023" msgid "ATSC Type" msgstr "Typ telewizji naziemnej ATSC" msgctxt "#30024" msgid "Back" msgstr "Cofnij" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Wyszukiwanie kanałów - w toku... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Typ:" msgctxt "#30027" msgid "Device:" msgstr "Urządzenie:" msgctxt "#30028" msgid "Scan: %i" msgstr "Skanowanie: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Sygnał: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Nowych kanałów: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Wszystkich kanałów: %i" msgctxt "#30032" msgid "Analog TV" msgstr "Telewizja analogowa" msgctxt "#30033" msgid "Analog Radio" msgstr "Radio analogowe" msgctxt "#30034" msgid "Transponder:" msgstr "Transponder:" msgctxt "#30035" msgid "New channels" msgstr "Nowe kanały" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Wyszukiwanie kanałów - Zakończone" msgctxt "#30037" msgid "No device available - exiting" msgstr "Brak dostępnych urządzeń - zamykanie" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "Brak dostępnych urządzeń DVB-S2 - awaryjnie przełączenie do DVB-S" msgctxt "#30039" msgid "Running" msgstr "Uruchomiony" msgctxt "#30040" msgid "Stopped" msgstr "Zatrzymany" msgctxt "#30041" msgid "Finished" msgstr "Zakończono" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Wyszukiwanie kanałów - Anulowano" msgctxt "#30043" msgid "Channel search - Error" msgstr "Wyszukiwanie kanałów - Błąd" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "Utracono połączenie z serwerem VDR" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "Przywrócono połączenie z serwerem VDR" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Utwórz grupy kanałów automatycznie na serwerze" msgctxt "#30047" msgid "Request Timeshift" msgstr "Zapytaj o funkcję przesunięcia czasowego" msgctxt "#30048" msgid "Path to channel icons" msgstr "Ścieżka do ikon kanałów" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "Adres MAC serwera VDR dla zdalnego wybudzania" msgctxt "#30100" msgid "VDR OSD" msgstr "Menu ekranowe VDR" msgctxt "#30101" msgid "Setup" msgstr "Ustawienia" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "Sterowanie menu ekranowym - naciśnij Info aby wyjść" msgctxt "#30103" msgid "Select to control OSD" msgstr "Zaznacz, aby kontrolować menu ekranowe" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Tryb przesunięcia czasowego" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "Rozmiar bufora przesunięcia czasowego (RAM) x100 MB " msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Rozmiar bufora przesunięcia czasowego (Plik) x1 GB" msgctxt "#30107" msgid "VDR Admin" msgstr "Administracja VDR" msgctxt "#30108" msgid "Channels" msgstr "Kanały" msgctxt "#30109" msgid "Provider whitelist" msgstr "Zaufani dostawcy " msgctxt "#30110" msgid "Channel blacklist" msgstr "Czarna lista kanałów " msgctxt "#30111" msgid "Channel filters" msgstr "Filtry kanałów " msgctxt "#30112" msgid "Radio Channels" msgstr "Kanały radiowe" msgctxt "#30113" msgid "Save filters" msgstr "Zapisz filtry" msgctxt "#30114" msgid "Provider Unknown" msgstr "Dostawca nieznany" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.pt_br/000077500000000000000000000000001255226123100300445ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.pt_br/strings.po000066400000000000000000000125261255226123100321030ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/kodi-main/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "Hostname VDR ou IP" msgctxt "#30001" msgid "VNSI Port" msgstr "Porta VNSI" msgctxt "#30002" msgid "Priority" msgstr "Prioridade" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Conversão de Conjunto de Caracteres" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Tempo limite para conexão (s)" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "Permitir mensagens VDR" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Ler gravações do diretório" msgctxt "#30007" msgid "VDR recordings directory" msgstr "Diretório de gravações VDR" msgctxt "#30008" msgid "Channel search" msgstr "Procurar canal" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Procurar canal - ajustes" msgctxt "#30010" msgid "Start Channel search" msgstr "Iniciar Procura de Canais" msgctxt "#30011" msgid "Source Type" msgstr "Tipo de Fonte" msgctxt "#30012" msgid "TV channels" msgstr "Canais de TV" msgctxt "#30013" msgid "Radio channels" msgstr "Canais de rádio" msgctxt "#30014" msgid "FTA channels" msgstr "Canais FTA" msgctxt "#30015" msgid "Scrambled channels" msgstr "Canais codificados" msgctxt "#30016" msgid "HD channels" msgstr "Canais HD" msgctxt "#30017" msgid "Country" msgstr "País" msgctxt "#30018" msgid "Cable Inversion" msgstr "Inversão de cabo" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Cabo Symbolrate" msgctxt "#30020" msgid "Cable modulation" msgstr "Modulação do cabo" msgctxt "#30021" msgid "Terr Inversion" msgstr "Inversão Terr" msgctxt "#30022" msgid "Satellite" msgstr "Satélite" msgctxt "#30023" msgid "ATSC Type" msgstr "Tipo ATSC" msgctxt "#30024" msgid "Back" msgstr "Voltar" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Procura de canais - executando...%i %%" msgctxt "#30026" msgid "Type:" msgstr "Tipo:" msgctxt "#30027" msgid "Device:" msgstr "Dispositivo:" msgctxt "#30028" msgid "Scan: %i" msgstr "Examinar: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Sinal: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Novos canais: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Todos os canais: %i" msgctxt "#30032" msgid "Analog TV" msgstr "TV analógica" msgctxt "#30033" msgid "Analog Radio" msgstr "Rádio analógico" msgctxt "#30034" msgid "Transponder:" msgstr "Transponder:" msgctxt "#30035" msgid "New channels" msgstr "Novos canais" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Procura de canal - Finalizado" msgctxt "#30037" msgid "No device available - exiting" msgstr "Nenhum dispositivo disponível - saindo" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "Nenhum dispositivo DVD-S2 disponível - Tentando para DVB-S" msgctxt "#30039" msgid "Running" msgstr "Executando" msgctxt "#30040" msgid "Stopped" msgstr "Interrompido" msgctxt "#30041" msgid "Finished" msgstr "Finalizado" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Procura de canais - Cancelada" msgctxt "#30043" msgid "Channel search - Error" msgstr "Procura de canais - Erro" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "Conexão perdida com o servidor VDR" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "Conexão restabelecida ao servidor VDR" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Criar grupos de canais automaticamente no servidor" msgctxt "#30047" msgid "Request Timeshift" msgstr "Solicitar gravação" msgctxt "#30048" msgid "Path to channel icons" msgstr "Caminho para os logos dos canais" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "VDR Server MAC para Wake-on-LAN" msgctxt "#30100" msgid "VDR OSD" msgstr "OSD VDR" msgctxt "#30101" msgid "Setup" msgstr "Ajustes" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "Controlando OSD - pressione info para sair" msgctxt "#30103" msgid "Select to control OSD" msgstr "Selecione para controlar OSD" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Modo de gravação" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "Buffer de gravação (RAM) x100 MB" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Buffer de gravação (arquivo) x1 GB" msgctxt "#30107" msgid "VDR Admin" msgstr "Admin VDR" msgctxt "#30108" msgid "Channels" msgstr "Canais" msgctxt "#30109" msgid "Provider whitelist" msgstr "Provedor Permitido" msgctxt "#30110" msgid "Channel blacklist" msgstr "Lista Negra de Canais" msgctxt "#30111" msgid "Channel filters" msgstr "Filtros de Canais" msgctxt "#30112" msgid "Radio Channels" msgstr "Canais de Rádio" msgctxt "#30113" msgid "Save filters" msgstr "Salvar filtros" msgctxt "#30114" msgid "Provider Unknown" msgstr "Provedor desconhecido" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.pt_pt/000077500000000000000000000000001255226123100300645ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.pt_pt/strings.po000066400000000000000000000127361255226123100321260ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/kodi-main/language/pt_PT/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: pt_PT\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "Nome do servidor ou IP VDR" msgctxt "#30001" msgid "VNSI Port" msgstr "Porta VNSI" msgctxt "#30002" msgid "Priority" msgstr "Prioridade" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Conversão do conjunto de caracteres" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Tempo limite de ligação (seg)" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "Permitir mensagens VDR" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Ler gravações a partir da pasta" msgctxt "#30007" msgid "VDR recordings directory" msgstr "Directório de gravações VDR" msgctxt "#30008" msgid "Channel search" msgstr "Pesquisa de canais" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Pesquisa de canais - Definições " msgctxt "#30010" msgid "Start Channel search" msgstr "Iniciar a pesquisa de canais" msgctxt "#30011" msgid "Source Type" msgstr "Tipo de fonte" msgctxt "#30012" msgid "TV channels" msgstr "Canais de TV" msgctxt "#30013" msgid "Radio channels" msgstr "Estações de Rádio" msgctxt "#30014" msgid "FTA channels" msgstr "Canais FTA" msgctxt "#30015" msgid "Scrambled channels" msgstr "Canais codificados" msgctxt "#30016" msgid "HD channels" msgstr "Canais HD" msgctxt "#30017" msgid "Country" msgstr "País" msgctxt "#30018" msgid "Cable Inversion" msgstr "Inversão de cabo" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Symbolrate do Cabo" msgctxt "#30020" msgid "Cable modulation" msgstr "Modulação do cabo" msgctxt "#30021" msgid "Terr Inversion" msgstr "Inversão Terr" msgctxt "#30022" msgid "Satellite" msgstr "Satélite" msgctxt "#30023" msgid "ATSC Type" msgstr "Tipo de ATSC" msgctxt "#30024" msgid "Back" msgstr "Retroceder" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Efectuando a procura de canais... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Tipo:" msgctxt "#30027" msgid "Device:" msgstr "Dispositivo:" msgctxt "#30028" msgid "Scan: %i" msgstr "Procurar: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Sinal: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Novos canais: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Todos os canais: %i" msgctxt "#30032" msgid "Analog TV" msgstr "TV analógica " msgctxt "#30033" msgid "Analog Radio" msgstr "Rádio analógico " msgctxt "#30034" msgid "Transponder:" msgstr "Transponder:" msgctxt "#30035" msgid "New channels" msgstr "Novos Canais" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Procura de canais - Concluída" msgctxt "#30037" msgid "No device available - exiting" msgstr "Não há dispositivos disponíveis - encerrando" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "Nenhum dispositivo DVB-S2 está disponível - tentando DVB-S" msgctxt "#30039" msgid "Running" msgstr "Reproduzindo" msgctxt "#30040" msgid "Stopped" msgstr "Parado" msgctxt "#30041" msgid "Finished" msgstr "Concluído" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Procura de canais - Cancelada" msgctxt "#30043" msgid "Channel search - Error" msgstr "Procura de canais - Erro" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "A ligação ao servidor VDR foi perdida" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "A ligação ao servidor VDR foi restabelecida" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Criar automaticamente grupos de canais no servidor" msgctxt "#30047" msgid "Request Timeshift" msgstr "Requisitar Ver Mais Tarde" msgctxt "#30048" msgid "Path to channel icons" msgstr "Caminho para os ícones de canais" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "MAC de Servidor VDR para Despertar-Por-Lan" msgctxt "#30100" msgid "VDR OSD" msgstr "Interface VDR" msgctxt "#30101" msgid "Setup" msgstr "Configuração" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "Controlando interface - premir info para sair" msgctxt "#30103" msgid "Select to control OSD" msgstr "Seleccione para controlar a interface" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Modo de Ver Mais Tarde" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "Buffer de Ver Mais Tarde (RAM) x100 MB" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Buffer de Ver Mais Tarde (Ficheiro) x1 GB" msgctxt "#30107" msgid "VDR Admin" msgstr "Admin VDR" msgctxt "#30108" msgid "Channels" msgstr "Canais" msgctxt "#30109" msgid "Provider whitelist" msgstr "Lista de fornecedores permitidos" msgctxt "#30110" msgid "Channel blacklist" msgstr "Canais interditos" msgctxt "#30111" msgid "Channel filters" msgstr "Filtros de canais" msgctxt "#30112" msgid "Radio Channels" msgstr "Canais de Rádio" msgctxt "#30113" msgid "Save filters" msgstr "Guardar filtros" msgctxt "#30114" msgid "Provider Unknown" msgstr "Fornecedor Desconhecido" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.ro_ro/000077500000000000000000000000001255226123100300565ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.ro_ro/strings.po000066400000000000000000000124101255226123100321050ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Romanian (Romania) (http://www.transifex.com/projects/p/kodi-main/language/ro_RO/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ro_RO\n" "Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "Nume host sau IP VDR" msgctxt "#30001" msgid "VNSI Port" msgstr "Port VNSI" msgctxt "#30002" msgid "Priority" msgstr "Prioritate" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Conversie set de caractere" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Conexiune timeout (s)" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "Permite mesaje VDR" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Citeşte înregistrări din director" msgctxt "#30007" msgid "VDR recordings directory" msgstr "Director înregistrări VDR" msgctxt "#30008" msgid "Channel search" msgstr "Căutare canal" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Căutare canal - setări" msgctxt "#30010" msgid "Start Channel search" msgstr "Începe căutare canal" msgctxt "#30011" msgid "Source Type" msgstr "Tip sursă" msgctxt "#30012" msgid "TV channels" msgstr "Canale tv" msgctxt "#30013" msgid "Radio channels" msgstr "Canale radio" msgctxt "#30014" msgid "FTA channels" msgstr "Canale FTA" msgctxt "#30015" msgid "Scrambled channels" msgstr "Canale codate" msgctxt "#30016" msgid "HD channels" msgstr "Canale HD" msgctxt "#30017" msgid "Country" msgstr "Țară" msgctxt "#30018" msgid "Cable Inversion" msgstr "Inversiune cablu" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Simbol Rate cablu" msgctxt "#30020" msgid "Cable modulation" msgstr "Modulare Cablu" msgctxt "#30021" msgid "Terr Inversion" msgstr "Inversiune Terr" msgctxt "#30022" msgid "Satellite" msgstr "Satelit" msgctxt "#30023" msgid "ATSC Type" msgstr "Tip ATSC" msgctxt "#30024" msgid "Back" msgstr "Înapoi" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Căutare canal - rulează... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Tip:" msgctxt "#30027" msgid "Device:" msgstr "Aparat:" msgctxt "#30028" msgid "Scan: %i" msgstr "Scanare: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Semnal: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Canale noi: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Toate canalele: %i" msgctxt "#30032" msgid "Analog TV" msgstr "TV analogic" msgctxt "#30033" msgid "Analog Radio" msgstr "Radio analogic" msgctxt "#30034" msgid "Transponder:" msgstr "Transponder:" msgctxt "#30035" msgid "New channels" msgstr "Canale noi" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Căutare canale - Finalizat" msgctxt "#30037" msgid "No device available - exiting" msgstr "Nu există aparate disponibile - ieşire" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "Nu există aparate DVB-S2 disponibile - se încearcă întoarcerea la DVB-S" msgctxt "#30039" msgid "Running" msgstr "În execuție" msgctxt "#30040" msgid "Stopped" msgstr "Oprit" msgctxt "#30041" msgid "Finished" msgstr "Finalizat" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Căutare canale - Anulată" msgctxt "#30043" msgid "Channel search - Error" msgstr "Căutare canale - Eroare" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "S-a pierdut conexiunea la serverul VDR" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "Conexiunea la serverul VDR restaurată" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Creează automat grupuri de canale pe server" msgctxt "#30047" msgid "Request Timeshift" msgstr "Cere inregistrare temporară" msgctxt "#30048" msgid "Path to channel icons" msgstr "Cale către sigle canale" msgctxt "#30100" msgid "VDR OSD" msgstr "VDR OSD" msgctxt "#30101" msgid "Setup" msgstr "Configurare" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "Controlul OSD - apasa info pentru iesire" msgctxt "#30103" msgid "Select to control OSD" msgstr "Selecteaza ca sa controlezi OSD" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Mod înregistrare temporară" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "Înregistrare temporară (RAM) x 100MB" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Înregistrare temporară (fisier) x 1GB" msgctxt "#30107" msgid "VDR Admin" msgstr "Administrare VDR" msgctxt "#30108" msgid "Channels" msgstr "Canale" msgctxt "#30109" msgid "Provider whitelist" msgstr "Listă furnizori acceptați" msgctxt "#30110" msgid "Channel blacklist" msgstr "Listă canale respinse " msgctxt "#30111" msgid "Channel filters" msgstr "Filtre canale" msgctxt "#30112" msgid "Radio Channels" msgstr "Filtre radio" msgctxt "#30113" msgid "Save filters" msgstr "Salvează filtrele" msgctxt "#30114" msgid "Provider Unknown" msgstr "Furnizor necunoscut" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.ru_ru/000077500000000000000000000000001255226123100300725ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.ru_ru/strings.po000066400000000000000000000144751255226123100321360ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/kodi-main/language/ru_RU/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ru_RU\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 "VDR Hostname or IP" msgstr "Имя VDR хоста или IP" msgctxt "#30001" msgid "VNSI Port" msgstr "VNSI порт" msgctxt "#30002" msgid "Priority" msgstr "Приоритет" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Конвертирование символов" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Тайм-аут(ы) соединения" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "Включить VDR сообщения" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Читать записи из папки" msgctxt "#30007" msgid "VDR recordings directory" msgstr "Папка записей VDR" msgctxt "#30008" msgid "Channel search" msgstr "Поиск канала" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Поиск канала - Настройка" msgctxt "#30010" msgid "Start Channel search" msgstr "Начать поиск канала" msgctxt "#30011" msgid "Source Type" msgstr "Тип источника" msgctxt "#30012" msgid "TV channels" msgstr "Телеканалы" msgctxt "#30013" msgid "Radio channels" msgstr "Радиостанции" msgctxt "#30014" msgid "FTA channels" msgstr "Открытые каналы" msgctxt "#30015" msgid "Scrambled channels" msgstr "Кодированные каналы" msgctxt "#30016" msgid "HD channels" msgstr "HD каналы" msgctxt "#30017" msgid "Country" msgstr "Страна" msgctxt "#30018" msgid "Cable Inversion" msgstr "Инверсия кабельного" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Символьная скорость кабельного" msgctxt "#30020" msgid "Cable modulation" msgstr "Модуляция кабельного" msgctxt "#30021" msgid "Terr Inversion" msgstr "Инверсия наземного" msgctxt "#30022" msgid "Satellite" msgstr "Спутниковое" msgctxt "#30023" msgid "ATSC Type" msgstr "Тип ATSC" msgctxt "#30024" msgid "Back" msgstr "Назад" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Идет поиск канала... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Тип:" msgctxt "#30027" msgid "Device:" msgstr "Устройство:" msgctxt "#30028" msgid "Scan: %i" msgstr "Сканировано: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Сигнал: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Новых каналов: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Всего каналов: %i" msgctxt "#30032" msgid "Analog TV" msgstr "Аналоговое TV" msgctxt "#30033" msgid "Analog Radio" msgstr "Аналоговое радио" msgctxt "#30034" msgid "Transponder:" msgstr "Транспондер:" msgctxt "#30035" msgid "New channels" msgstr "Новые каналы" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Поиск каналов окончен" msgctxt "#30037" msgid "No device available - exiting" msgstr "Устройство недоступно - выход" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "Нет доступного DVB-S2 устройства - пробую вернуться к DVB-S" msgctxt "#30039" msgid "Running" msgstr "Запуск…" msgctxt "#30040" msgid "Stopped" msgstr "Остановлено" msgctxt "#30041" msgid "Finished" msgstr "Окончено" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Поиск каналов прерван" msgctxt "#30043" msgid "Channel search - Error" msgstr "Ошибка поиска каналов" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "Утеряна связь с сервером VDR" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "Установлена связь с сервером VDR" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Автоматически создать на сервере группы каналов" msgctxt "#30047" msgid "Request Timeshift" msgstr "Запросить сдвиг времени" msgctxt "#30048" msgid "Path to channel icons" msgstr "Путь к значкам каналов" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "VDR Сервер MAC для Wake-on-LAN" msgctxt "#30100" msgid "VDR OSD" msgstr "Экранное меню VDR" msgctxt "#30101" msgid "Setup" msgstr "Настройка" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "Контролируется OSD - нажмите Информация для выхода" msgctxt "#30103" msgid "Select to control OSD" msgstr "Выберите для контроля OSD" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Режим сдвига времени" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "Буфер сдвига времени (RAM) x100 МБ" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Буфер сдвига времени (Файл) x1 ГБ" msgctxt "#30107" msgid "VDR Admin" msgstr "Администратор VDR" msgctxt "#30108" msgid "Channels" msgstr "Каналы" msgctxt "#30109" msgid "Provider whitelist" msgstr "Белый лист провайдеров" msgctxt "#30110" msgid "Channel blacklist" msgstr "Черный список канала" msgctxt "#30111" msgid "Channel filters" msgstr "Фильтр канала" msgctxt "#30112" msgid "Radio Channels" msgstr "Радиостанции" msgctxt "#30113" msgid "Save filters" msgstr "Сохранить фильтры" msgctxt "#30114" msgid "Provider Unknown" msgstr "Неизвестный провайдер" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.si_lk/000077500000000000000000000000001255226123100300375ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.si_lk/strings.po000066400000000000000000000015671255226123100321010ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Sinhala (Sri Lanka) (http://www.transifex.com/projects/p/kodi-main/language/si_LK/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: si_LK\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "සම්බන්ධවීමේ කාලය(න්) ඉවරයි. " msgctxt "#30017" msgid "Country" msgstr "රට " msgctxt "#30026" msgid "Type:" msgstr "සටහන් කරන්න:" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.sk_sk/000077500000000000000000000000001255226123100300505ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.sk_sk/strings.po000066400000000000000000000131601255226123100321020ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/kodi-main/language/sk_SK/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: sk_SK\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "Názov hostiteľa VDR alebo IP adresa" msgctxt "#30001" msgid "VNSI Port" msgstr "VNSI port" msgctxt "#30002" msgid "Priority" msgstr "Priorita" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Konverzia znakovej sady" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Časový limit pre spojenie" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "Povoliť zobrazenie správ z VDR" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Čítať nahrávky z adresára" msgctxt "#30007" msgid "VDR recordings directory" msgstr "Adresár pre nahrávky z VDR" msgctxt "#30008" msgid "Channel search" msgstr "Vyhľadávanie kanálov" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Vyhľadávanie kanálov - Nastavenia" msgctxt "#30010" msgid "Start Channel search" msgstr "Spustiť vyhľadávanie kanálov" msgctxt "#30011" msgid "Source Type" msgstr "Typ zdroja" msgctxt "#30012" msgid "TV channels" msgstr "TV kanály" msgctxt "#30013" msgid "Radio channels" msgstr "Rozhlasové kanály" msgctxt "#30014" msgid "FTA channels" msgstr "Nekódované kanály" msgctxt "#30015" msgid "Scrambled channels" msgstr "Kódované kanály" msgctxt "#30016" msgid "HD channels" msgstr "HD kanály" msgctxt "#30017" msgid "Country" msgstr "Krajina" msgctxt "#30018" msgid "Cable Inversion" msgstr "Káblový príjem - Inverzia" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Káblový príjem - Symbolová rýchlosť" msgctxt "#30020" msgid "Cable modulation" msgstr "Káblový príjem - Modulácia" msgctxt "#30021" msgid "Terr Inversion" msgstr "Pozemný príjem - Inverzia" msgctxt "#30022" msgid "Satellite" msgstr "Satelit" msgctxt "#30023" msgid "ATSC Type" msgstr "Typ ATSC" msgctxt "#30024" msgid "Back" msgstr "Späť" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Vyhľadávanie kanálov - prebieha... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Typ:" msgctxt "#30027" msgid "Device:" msgstr "Zariadenie:" msgctxt "#30028" msgid "Scan: %i" msgstr "Vyhľadávanie na: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Signál: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Nové kanály: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Všetky kanály: %i" msgctxt "#30032" msgid "Analog TV" msgstr "Analógová TV" msgctxt "#30033" msgid "Analog Radio" msgstr "Analógový rozhlas" msgctxt "#30034" msgid "Transponder:" msgstr "Transpondér:" msgctxt "#30035" msgid "New channels" msgstr "Nové kanály" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Vyhľadávanie kanálov - Dokončené" msgctxt "#30037" msgid "No device available - exiting" msgstr "Nie je k dispozícii žiadne zariadenie - ukončuje sa" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "Nie je k dispozícii žiadne DVB-S2 zariadenie - pokus o prepnutie do režimu DVB-S" msgctxt "#30039" msgid "Running" msgstr "Prebieha spustenie" msgctxt "#30040" msgid "Stopped" msgstr "Zastavené" msgctxt "#30041" msgid "Finished" msgstr "Dokončené" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Vyhľadávanie kanálov - Zrušené" msgctxt "#30043" msgid "Channel search - Error" msgstr "Vyhľadávanie kanálov - Chyba" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "Strata spojenia k VDR serveru" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "Spojenie k VDR serveru bolo obnovené" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Automaticky vytvárať skupiny kanálov na serveri" msgctxt "#30047" msgid "Request Timeshift" msgstr "Vyžadovať časový posun" msgctxt "#30048" msgid "Path to channel icons" msgstr "Cesta k logám kanálov" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "MAC adresa VDR servera pre funkciu Prebudenie po LAN" msgctxt "#30100" msgid "VDR OSD" msgstr "VDR OSD" msgctxt "#30101" msgid "Setup" msgstr "Konfigurácia" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "Ovládanie OSD - stlačte info pre ukončenie" msgctxt "#30103" msgid "Select to control OSD" msgstr "Vyberte ovládanie OSD" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Režim časového posunu" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "Zásobník časového posunu (RAM) x100 MB" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Zásobník časového posunu (Súbor) x1 GB" msgctxt "#30107" msgid "VDR Admin" msgstr "VDR Admin" msgctxt "#30108" msgid "Channels" msgstr "Kanály" msgctxt "#30109" msgid "Provider whitelist" msgstr "Zoznam povolených poskytovateľov" msgctxt "#30110" msgid "Channel blacklist" msgstr "Zoznam zakázaných kanálov" msgctxt "#30111" msgid "Channel filters" msgstr "Filtre kanálov" msgctxt "#30112" msgid "Radio Channels" msgstr "Rozhlasové kanály" msgctxt "#30113" msgid "Save filters" msgstr "Uložiť filtre" msgctxt "#30114" msgid "Provider Unknown" msgstr "Neznámy poskytovateľ" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.sl_si/000077500000000000000000000000001255226123100300475ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.sl_si/strings.po000066400000000000000000000126061255226123100321050ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Slovenian (Slovenia) (http://www.transifex.com/projects/p/kodi-main/language/sl_SI/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: sl_SI\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "Ime gostitelja ali IP strežnika VDR" msgctxt "#30001" msgid "VNSI Port" msgstr "Vrata VNSI" msgctxt "#30002" msgid "Priority" msgstr "Prioriteta" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Pretvorba kodnega sistema" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Časovni pretek povezave (s)" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "Dovoli sporočila VDR" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Preberi posnetke v mapi" msgctxt "#30007" msgid "VDR recordings directory" msgstr "Mapa posnetkov VDR" msgctxt "#30008" msgid "Channel search" msgstr "Iskanje programov" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Iskanje programov - Nastavitve" msgctxt "#30010" msgid "Start Channel search" msgstr "Začni iskanje programov" msgctxt "#30011" msgid "Source Type" msgstr "Tip vira" msgctxt "#30012" msgid "TV channels" msgstr "TV programi" msgctxt "#30013" msgid "Radio channels" msgstr "Radijski programi" msgctxt "#30014" msgid "FTA channels" msgstr "Brezplačni programi" msgctxt "#30015" msgid "Scrambled channels" msgstr "Zaščiteni programi" msgctxt "#30016" msgid "HD channels" msgstr "HD programi" msgctxt "#30017" msgid "Country" msgstr "Država" msgctxt "#30018" msgid "Cable Inversion" msgstr "Cable Inversion" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Cable Symbolrate" msgctxt "#30020" msgid "Cable modulation" msgstr "Cable modulation" msgctxt "#30021" msgid "Terr Inversion" msgstr "Terr Inversion" msgctxt "#30022" msgid "Satellite" msgstr "Satelit" msgctxt "#30023" msgid "ATSC Type" msgstr "Tip ATSC" msgctxt "#30024" msgid "Back" msgstr "Nazaj" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Iskanje programov - teče ... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Tip:" msgctxt "#30027" msgid "Device:" msgstr "Naprava:" msgctxt "#30028" msgid "Scan: %i" msgstr "Iskanje: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Signal: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Novi programi: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Vsi programi: %i" msgctxt "#30032" msgid "Analog TV" msgstr "Analogna TV" msgctxt "#30033" msgid "Analog Radio" msgstr "Analogni radio" msgctxt "#30034" msgid "Transponder:" msgstr "Oddajnik:" msgctxt "#30035" msgid "New channels" msgstr "Novi programi" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Iskanje programov - zaključeno" msgctxt "#30037" msgid "No device available - exiting" msgstr "Naprava ni na voljo - zapuščam" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "Naprava DVB-S2 ni na voljo - poskušam naprave DVB-S" msgctxt "#30039" msgid "Running" msgstr "Teče" msgctxt "#30040" msgid "Stopped" msgstr "Ustavljeno" msgctxt "#30041" msgid "Finished" msgstr "Zaključeno" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Iskanje programov - preklicano" msgctxt "#30043" msgid "Channel search - Error" msgstr "Iskanje programov - napaka" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "Povezava s strežnikom VDR je bila izgubljena" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "Povezava s strežnikom VDR je obnovljena" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Samodejno ustvari skupine programov na strežniku" msgctxt "#30047" msgid "Request Timeshift" msgstr "Zahtevaj časovni zamik" msgctxt "#30048" msgid "Path to channel icons" msgstr "Pot do ikon programov" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "MAC strežnika VDR za Wake-on-LAN" msgctxt "#30100" msgid "VDR OSD" msgstr "VDR OSD" msgctxt "#30101" msgid "Setup" msgstr "Nastavitve" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "Upravljanje OSD - pritisnite info za izhod" msgctxt "#30103" msgid "Select to control OSD" msgstr "Izberite za upravljanje OSD" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Način časovnega zamika" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "Medpomnenje časovnega zamika (RAM) x100 MB" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Medpomnenje časovnega zamika (datoteka) x1 GB" msgctxt "#30107" msgid "VDR Admin" msgstr "VDR Admin" msgctxt "#30108" msgid "Channels" msgstr "Programi" msgctxt "#30109" msgid "Provider whitelist" msgstr "Dovoljeni ponudniki" msgctxt "#30110" msgid "Channel blacklist" msgstr "Onemogočeni programi" msgctxt "#30111" msgid "Channel filters" msgstr "Filtri programov" msgctxt "#30112" msgid "Radio Channels" msgstr "Radijski programi" msgctxt "#30113" msgid "Save filters" msgstr "Shrani filtre" msgctxt "#30114" msgid "Provider Unknown" msgstr "Neznan ponudnik" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.sq_al/000077500000000000000000000000001255226123100300355ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.sq_al/strings.po000066400000000000000000000100741255226123100320700ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Albanian (Albania) (http://www.transifex.com/projects/p/kodi-main/language/sq_AL/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: sq_AL\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "VDR Hostname ose IP" msgctxt "#30001" msgid "VNSI Port" msgstr "Porti VNSI" msgctxt "#30002" msgid "Priority" msgstr "Prioriteti" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Shndërrimi i Character Set" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Timeout i lidhjes (s)" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "Lejo Mesazhet Nga VDR" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Lexo regjistrimiet nga regjistri" msgctxt "#30007" msgid "VDR recordings directory" msgstr "Regjistri i regjistrimeve së VDR" msgctxt "#30008" msgid "Channel search" msgstr "Kërkimi i kanaleve" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Kërkimi i kanaleve - Cilësimet" msgctxt "#30010" msgid "Start Channel search" msgstr "Fillo kërkimin e kanaleve" msgctxt "#30011" msgid "Source Type" msgstr "Tipi i Burimit" msgctxt "#30012" msgid "TV channels" msgstr "TV Kanalet" msgctxt "#30013" msgid "Radio channels" msgstr "Radio Kanalet" msgctxt "#30014" msgid "FTA channels" msgstr "Kanale të lira" msgctxt "#30015" msgid "Scrambled channels" msgstr "Kanale të mbyllur" msgctxt "#30016" msgid "HD channels" msgstr "Kanalet HD" msgctxt "#30017" msgid "Country" msgstr "Vendi" msgctxt "#30018" msgid "Cable Inversion" msgstr "Cable Inversion" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Cable Symbolrate" msgctxt "#30020" msgid "Cable modulation" msgstr "Cable modulation" msgctxt "#30021" msgid "Terr Inversion" msgstr "Terr Inversion" msgctxt "#30022" msgid "Satellite" msgstr "Sateliti" msgctxt "#30023" msgid "ATSC Type" msgstr "Tipi ATSC" msgctxt "#30024" msgid "Back" msgstr "Mbrapa" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Kërkimi kanaleve - duke kërkuar... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Tipi: " msgctxt "#30027" msgid "Device:" msgstr "Aparati:" msgctxt "#30028" msgid "Scan: %i" msgstr "Kërkimi: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Sinjali: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Kanale të reja: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Gjithë kanalet: %i" msgctxt "#30032" msgid "Analog TV" msgstr "TV analog" msgctxt "#30033" msgid "Analog Radio" msgstr "Radio analog" msgctxt "#30034" msgid "Transponder:" msgstr "Transponderi:" msgctxt "#30035" msgid "New channels" msgstr "Kanale të reja" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Kërkimi i kanaleve - Përfundoj" msgctxt "#30037" msgid "No device available - exiting" msgstr "Asnjë aparat në dispozicion - duke përfunduar" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "Asnjë aparat DVB-S2 në dispozicion - duke provuar ndërrimin në DVB-S" msgctxt "#30039" msgid "Running" msgstr "Duke punuar" msgctxt "#30040" msgid "Stopped" msgstr "Ndaloi" msgctxt "#30041" msgid "Finished" msgstr "Përfundoi" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Kërkimi kanaleve - U anulua" msgctxt "#30043" msgid "Channel search - Error" msgstr "Kërkimi kanaleve - Gabim" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "U humb lidhja me Serverin VDR" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "U rilidh lidhja me Serverin VDR" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Krijo grupe kanalesh automatikisht në server" msgctxt "#30108" msgid "Channels" msgstr "Kanalet" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.sr_rs/000077500000000000000000000000001255226123100300665ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.sr_rs/strings.po000066400000000000000000000016541255226123100321250ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Serbian (Serbia) (http://www.transifex.com/projects/p/kodi-main/language/sr_RS/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "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 "#30017" msgid "Country" msgstr "Држава" msgctxt "#30026" msgid "Type:" msgstr "Тип:" msgctxt "#30039" msgid "Running" msgstr "Покретање" msgctxt "#30101" msgid "Setup" msgstr "Конфигурација" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.sr_rs@latin/000077500000000000000000000000001255226123100312165ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.sr_rs@latin/strings.po000066400000000000000000000022761255226123100332560ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Serbian (Latin) (Serbia) (http://www.transifex.com/projects/p/kodi-main/language/sr_RS@latin/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "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 "#30004" msgid "Connect timeout (s)" msgstr "Истек времена за повезивање (с)" msgctxt "#30012" msgid "TV channels" msgstr "TV kanali" msgctxt "#30013" msgid "Radio channels" msgstr "Radio kanali" msgctxt "#30017" msgid "Country" msgstr "Država" msgctxt "#30026" msgid "Type:" msgstr "Tip:" msgctxt "#30039" msgid "Running" msgstr "Pokretanje" msgctxt "#30101" msgid "Setup" msgstr "Konfiguracija" msgctxt "#30108" msgid "Channels" msgstr "Kanali" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.sv_se/000077500000000000000000000000001255226123100300555ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.sv_se/strings.po000066400000000000000000000123411255226123100321070ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Swedish (Sweden) (http://www.transifex.com/projects/p/kodi-main/language/sv_SE/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: sv_SE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "VDR-värdnamn eller IP" msgctxt "#30001" msgid "VNSI Port" msgstr "VNSI Port" msgctxt "#30002" msgid "Priority" msgstr "Prioritet" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Teckenuppsättningskonvertering" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Anslutningstimeout (s)" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "Tillåt VDR Meddelanden" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Läs inspelningar från katalog" msgctxt "#30007" msgid "VDR recordings directory" msgstr "VDR inspelningskatalog" msgctxt "#30008" msgid "Channel search" msgstr "Kanalsök" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Kanalsök - Inställningar" msgctxt "#30010" msgid "Start Channel search" msgstr "Starta kanalsök" msgctxt "#30011" msgid "Source Type" msgstr "Källtyp" msgctxt "#30012" msgid "TV channels" msgstr "TV-kanaler" msgctxt "#30013" msgid "Radio channels" msgstr "Radiokanaler" msgctxt "#30014" msgid "FTA channels" msgstr "FTA kanaler" msgctxt "#30015" msgid "Scrambled channels" msgstr "Kodade kanaler" msgctxt "#30016" msgid "HD channels" msgstr "HD kanaler" msgctxt "#30017" msgid "Country" msgstr "Land" msgctxt "#30018" msgid "Cable Inversion" msgstr "Kabelinvertering" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Kabelsymbolshastighet" msgctxt "#30020" msgid "Cable modulation" msgstr "Kabelmodulering" msgctxt "#30021" msgid "Terr Inversion" msgstr "Markinvertering" msgctxt "#30022" msgid "Satellite" msgstr "Satellit" msgctxt "#30023" msgid "ATSC Type" msgstr "ATSC typ" msgctxt "#30024" msgid "Back" msgstr "Tillbaka" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Kanalsökning - körs... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Typ:" msgctxt "#30027" msgid "Device:" msgstr "Enhet:" msgctxt "#30028" msgid "Scan: %i" msgstr "Sök: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Signal: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Nya kanaler: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Alla kanaler: %i" msgctxt "#30032" msgid "Analog TV" msgstr "Analog TV" msgctxt "#30033" msgid "Analog Radio" msgstr "Analog Radio" msgctxt "#30034" msgid "Transponder:" msgstr "Transponder:" msgctxt "#30035" msgid "New channels" msgstr "Nya kanaler:" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Kanalsökning - slutförd" msgctxt "#30037" msgid "No device available - exiting" msgstr "Ingen enhet tillgänglig - stänger" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "Ingen DVB-S2 enhet tillgänglig - försöker återgå till DVB-S" msgctxt "#30039" msgid "Running" msgstr "Igång" msgctxt "#30040" msgid "Stopped" msgstr "Stoppad" msgctxt "#30041" msgid "Finished" msgstr "Slutförd" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Kanalsökning - Avbruten" msgctxt "#30043" msgid "Channel search - Error" msgstr "Kanalsökning - Error" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "Tappade anslutning till VDR server" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "Anslutning till VDR server återställd" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Skapa kanalgrupper automatiskt på servern" msgctxt "#30047" msgid "Request Timeshift" msgstr "Begär Timeshift" msgctxt "#30048" msgid "Path to channel icons" msgstr "Sökväg till kanalikoner" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "VDR Server MAC för Wake-on-LAN" msgctxt "#30100" msgid "VDR OSD" msgstr "VDR OSD" msgctxt "#30101" msgid "Setup" msgstr "Installation" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "Kontrollerar OSD - tryck info för att avsluta" msgctxt "#30103" msgid "Select to control OSD" msgstr "Välj för att kontrollera OSD" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Timeshift Läge" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "Timeshift Buffert (RAM) x100 MB" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Timeshift Buffert (Fil) x1 GB" msgctxt "#30107" msgid "VDR Admin" msgstr "VDR Admin" msgctxt "#30108" msgid "Channels" msgstr "Kanaler" msgctxt "#30109" msgid "Provider whitelist" msgstr "Vitlista för leverantörer" msgctxt "#30110" msgid "Channel blacklist" msgstr "Svartlista för kanaler" msgctxt "#30111" msgid "Channel filters" msgstr "Kanalfilter" msgctxt "#30112" msgid "Radio Channels" msgstr "Radiokanaler" msgctxt "#30113" msgid "Save filters" msgstr "Spara filter" msgctxt "#30114" msgid "Provider Unknown" msgstr "Okänd leverantör" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.szl/000077500000000000000000000000001255226123100275465ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.szl/strings.po000066400000000000000000000017551255226123100316070ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Silesian (http://www.transifex.com/projects/p/kodi-main/language/szl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: szl\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" msgctxt "#30012" msgid "TV channels" msgstr "Kanały TV" msgctxt "#30013" msgid "Radio channels" msgstr "Kanały radiowe" msgctxt "#30017" msgid "Country" msgstr "Krej" msgctxt "#30026" msgid "Type:" msgstr "Zorta:" msgctxt "#30039" msgid "Running" msgstr "Włōnczōny" msgctxt "#30108" msgid "Channels" msgstr "Kanały" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.ta_in/000077500000000000000000000000001255226123100300305ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.ta_in/strings.po000066400000000000000000000020631255226123100320620ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Tamil (India) (http://www.transifex.com/projects/p/kodi-main/language/ta_IN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ta_IN\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgctxt "#30012" msgid "TV channels" msgstr "TV சேனல்கள்" msgctxt "#30013" msgid "Radio channels" msgstr "வானொலி சேனல்கள்" msgctxt "#30017" msgid "Country" msgstr "நாடு" msgctxt "#30026" msgid "Type:" msgstr "வகை:" msgctxt "#30039" msgid "Running" msgstr "ஓடிகொண்டிருக்கிறது" msgctxt "#30108" msgid "Channels" msgstr "சேனல்கள்" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.te_in/000077500000000000000000000000001255226123100300345ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.te_in/strings.po000066400000000000000000000013411255226123100320640ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Telugu (India) (http://www.transifex.com/projects/p/kodi-main/language/te_IN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: te_IN\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgctxt "#30017" msgid "Country" msgstr "దేశం" msgctxt "#30026" msgid "Type:" msgstr "రకం:" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.tg_tj/000077500000000000000000000000001255226123100300455ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.tg_tj/strings.po000066400000000000000000000020111255226123100320700ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Tajik (Tajikistan) (http://www.transifex.com/projects/p/kodi-main/language/tg_TJ/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: tg_TJ\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgctxt "#30012" msgid "TV channels" msgstr "Шабакаҳои ТВ" msgctxt "#30013" msgid "Radio channels" msgstr "Мавҷҳои радиоӣ" msgctxt "#30017" msgid "Country" msgstr "Кишвар" msgctxt "#30026" msgid "Type:" msgstr "Навъ:" msgctxt "#30039" msgid "Running" msgstr "Иҷро шуда истодааст…" msgctxt "#30108" msgid "Channels" msgstr "Шабакаҳо" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.th_th/000077500000000000000000000000001255226123100300445ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.th_th/strings.po000066400000000000000000000106521255226123100321010ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Thai (Thailand) (http://www.transifex.com/projects/p/kodi-main/language/th_TH/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: th_TH\n" "Plural-Forms: nplurals=1; plural=0;\n" msgctxt "#30002" msgid "Priority" msgstr "ความสำคัญ" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "ระยะเวลาหยุดการเชื่อมต่อ (วิ)" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "อนุญาตข้อความ VDR" msgctxt "#30006" msgid "Read recordings from directory" msgstr "อ่านบันทึกจากไดเร็กทอรี่" msgctxt "#30007" msgid "VDR recordings directory" msgstr "ไดเร็กทอรี่บันทึก VDR" msgctxt "#30008" msgid "Channel search" msgstr "ค้นหาช่องรายการ" msgctxt "#30009" msgid "Channel search - Settings" msgstr "ค้นหาช่องรายการ - ตั้งค่า" msgctxt "#30010" msgid "Start Channel search" msgstr "เริ่มค้นหาช่องรายการ" msgctxt "#30011" msgid "Source Type" msgstr "ชนิดแหล่งที่มา" msgctxt "#30012" msgid "TV channels" msgstr "ช่อง ทีวี" msgctxt "#30013" msgid "Radio channels" msgstr "ช่อง วิทยุ" msgctxt "#30014" msgid "FTA channels" msgstr "ช่องรายการ FTA" msgctxt "#30015" msgid "Scrambled channels" msgstr "ช่องรายการผสม" msgctxt "#30016" msgid "HD channels" msgstr "ช่องรายการความละเอียดสูง" msgctxt "#30017" msgid "Country" msgstr "ประเทศ" msgctxt "#30024" msgid "Back" msgstr "ย้อนกลับ" msgctxt "#30026" msgid "Type:" msgstr "ชนิด:" msgctxt "#30027" msgid "Device:" msgstr "อุปกรณ์:" msgctxt "#30028" msgid "Scan: %i" msgstr "ค้นหา: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "สัญญาณ: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "ช่องใหม่: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "ทุกช่อง: %i" msgctxt "#30032" msgid "Analog TV" msgstr "ทีวีอนาล็อก" msgctxt "#30033" msgid "Analog Radio" msgstr "วิทยุอนาล็อก" msgctxt "#30034" msgid "Transponder:" msgstr " เครื่องรับส่งสัญญาณ" msgctxt "#30035" msgid "New channels" msgstr "ช่องรายการใหม่" msgctxt "#30036" msgid "Channel search - Finished" msgstr "การค้นหารายการ - เสร็จสิ้น" msgctxt "#30037" msgid "No device available - exiting" msgstr "ไม่มีอุปกรณ์ที่ใช้ได้ - กำลังออก" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "ไม่มีอุปกรณ์ DVB-S2 ที่ใช้ได้ - กำลังเปลี่ยนไปเป็น DVB-S" msgctxt "#30039" msgid "Running" msgstr "กำลังดำเนินการ" msgctxt "#30040" msgid "Stopped" msgstr "หยุด" msgctxt "#30041" msgid "Finished" msgstr "สำเร็จ" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "การค้นหารายการ - ยกเลิก" msgctxt "#30043" msgid "Channel search - Error" msgstr "การค้นหารายการ - ผิดพลาด" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "สูญเสียการเชื่อมต่อกับเซิร์ฟเวอร์ VDR" msgctxt "#30101" msgid "Setup" msgstr "ตั้งค่า" msgctxt "#30108" msgid "Channels" msgstr "ช่องสัญญาณ" msgctxt "#30112" msgid "Radio Channels" msgstr "รายการวิทยุ" msgctxt "#30113" msgid "Save filters" msgstr "บันทึกตัวกรอง" msgctxt "#30114" msgid "Provider Unknown" msgstr "ไม่ทราบผู้จัดหา" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.tr_tr/000077500000000000000000000000001255226123100300705ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.tr_tr/strings.po000066400000000000000000000126361255226123100321310ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Turkish (Turkey) (http://www.transifex.com/projects/p/kodi-main/language/tr_TR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: tr_TR\n" "Plural-Forms: nplurals=1; plural=0;\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "VDR Ana makine adı veya IP" msgctxt "#30001" msgid "VNSI Port" msgstr "VNSI Portu" msgctxt "#30002" msgid "Priority" msgstr "Öncelik" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Karakter Kümesi Dönüşümü" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Bağlantı süresi doldu (s)" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "VDR İletilerine İzin Ver" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Kayıtları dizinden oku" msgctxt "#30007" msgid "VDR recordings directory" msgstr "VDR kayıtları dizini" msgctxt "#30008" msgid "Channel search" msgstr "Kanal arama" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Kanal arama - Ayarlar" msgctxt "#30010" msgid "Start Channel search" msgstr "Kanal aramayı başlat" msgctxt "#30011" msgid "Source Type" msgstr "Kaynak tipi" msgctxt "#30012" msgid "TV channels" msgstr "TV kanalları" msgctxt "#30013" msgid "Radio channels" msgstr "Radyo kanalları" msgctxt "#30014" msgid "FTA channels" msgstr "FTA kanalları" msgctxt "#30015" msgid "Scrambled channels" msgstr "Şifreli Kanallar" msgctxt "#30016" msgid "HD channels" msgstr "HD kanallar" msgctxt "#30017" msgid "Country" msgstr "Ülke" msgctxt "#30018" msgid "Cable Inversion" msgstr "Kabloluya çevir" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Kablo Sembol Oranı" msgctxt "#30020" msgid "Cable modulation" msgstr "Kablo Modülasyonu" msgctxt "#30021" msgid "Terr Inversion" msgstr "Terr Ters Dönüştürmesi" msgctxt "#30022" msgid "Satellite" msgstr "Uydu" msgctxt "#30023" msgid "ATSC Type" msgstr "ATSC Tipi" msgctxt "#30024" msgid "Back" msgstr "Geri" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Kanal Araması - İlerliyor... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Tür:" msgctxt "#30027" msgid "Device:" msgstr "Aygıt:" msgctxt "#30028" msgid "Scan: %i" msgstr "Tara: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Sinyal: %% %i" msgctxt "#30030" msgid "New channels: %i" msgstr "Yeni kanallar: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Tüm kanallar: %i" msgctxt "#30032" msgid "Analog TV" msgstr "Analog TV" msgctxt "#30033" msgid "Analog Radio" msgstr "Analog Radyo" msgctxt "#30034" msgid "Transponder:" msgstr "Verici" msgctxt "#30035" msgid "New channels" msgstr "Yeni kanallar" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Kanal araması - Tamamlandı" msgctxt "#30037" msgid "No device available - exiting" msgstr "Aygıt bulunamadı - çıkılıyor" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "DVB-S2 aygıtı bulunamadı - DVB-S'e geri dönmeyi deniyor" msgctxt "#30039" msgid "Running" msgstr "Çalışıyor" msgctxt "#30040" msgid "Stopped" msgstr "Durduruldu" msgctxt "#30041" msgid "Finished" msgstr "Tamamlandı" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Kanal araması - İptal Edidi" msgctxt "#30043" msgid "Channel search - Error" msgstr "Kanal araması - Hata" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "VDR Sunucusun bağlantısı kaybedildi" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "VDR Sunucusu Bağlantısı Kaydedildi" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Kanal Gruplarını Bu Sunucuda Kendiliğinden Kaydet" msgctxt "#30047" msgid "Request Timeshift" msgstr "İstenilen zaman kaydırması" msgctxt "#30048" msgid "Path to channel icons" msgstr "Kanal logolarının yolu" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "Ağ Üzerinden Uyandırma (Wake-on-Lan) için VDR Sunucusu Mac Adresi" msgctxt "#30100" msgid "VDR OSD" msgstr "VDR Göstergesi" msgctxt "#30101" msgid "Setup" msgstr "Yapılandırma" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "Gösterge Kontrol Ediliyor - Çıkmak için \"info\" tuşuna basın" msgctxt "#30103" msgid "Select to control OSD" msgstr "Kontrol İçin Göstergeyi Seçin" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Zaman Kaydırması Modu" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "Zaman Kaydırma Önbelleği (RAM) x100 MB" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Zaman Kaydırma Önbelleği (DOSYA) x1 GB" msgctxt "#30107" msgid "VDR Admin" msgstr "VDR Yöneticisi" msgctxt "#30108" msgid "Channels" msgstr "Kanallar" msgctxt "#30109" msgid "Provider whitelist" msgstr "Sağlayıcı Beyaz Listesi" msgctxt "#30110" msgid "Channel blacklist" msgstr "Kanal Kara Listesi" msgctxt "#30111" msgid "Channel filters" msgstr "Kanal Filtreleri" msgctxt "#30112" msgid "Radio Channels" msgstr "Radyo Kanalları" msgctxt "#30113" msgid "Save filters" msgstr "Filtreyi Kaydet" msgctxt "#30114" msgid "Provider Unknown" msgstr "Bilinmeyen Sağlayıcı" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.uk_ua/000077500000000000000000000000001255226123100300425ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.uk_ua/strings.po000066400000000000000000000121731255226123100320770ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Ukrainian (Ukraine) (http://www.transifex.com/projects/p/kodi-main/language/uk_UA/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: uk_UA\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 "VDR Hostname or IP" msgstr "IP сервера VDR або його назва" msgctxt "#30001" msgid "VNSI Port" msgstr "Порт VNSI" msgctxt "#30002" msgid "Priority" msgstr "Пріоритет" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Налаштування конвертування символів" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Затримка зв’язку (с) " msgctxt "#30005" msgid "Allow VDR Messages" msgstr "Дозволити повідомлення VDR" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Читати записи з теки" msgctxt "#30007" msgid "VDR recordings directory" msgstr "Тека записів VDR" msgctxt "#30008" msgid "Channel search" msgstr "Пошук каналів" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Пошук каналів - Налаштування" msgctxt "#30010" msgid "Start Channel search" msgstr "Почати пошук каналів" msgctxt "#30011" msgid "Source Type" msgstr "Тип джерела" msgctxt "#30012" msgid "TV channels" msgstr "Телевізійні канали" msgctxt "#30013" msgid "Radio channels" msgstr "Радіо канали" msgctxt "#30014" msgid "FTA channels" msgstr "Безплатні канали" msgctxt "#30015" msgid "Scrambled channels" msgstr "Зашифровані канали" msgctxt "#30016" msgid "HD channels" msgstr "HD канали" msgctxt "#30017" msgid "Country" msgstr "Країна" msgctxt "#30018" msgid "Cable Inversion" msgstr "Кабельне - Інверсія" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Кабельне - символьна швидкість" msgctxt "#30020" msgid "Cable modulation" msgstr "Кабельне - модуляція" msgctxt "#30021" msgid "Terr Inversion" msgstr "Наземне - інверсія " msgctxt "#30022" msgid "Satellite" msgstr "Супутник" msgctxt "#30023" msgid "ATSC Type" msgstr "Тип ATSC" msgctxt "#30024" msgid "Back" msgstr "Назад" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Пошук каналів - запущено... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Тип:" msgctxt "#30027" msgid "Device:" msgstr "Пристрій:" msgctxt "#30028" msgid "Scan: %i" msgstr "Сканування: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Сигнал: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Нові канали: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Всі канали: %i" msgctxt "#30032" msgid "Analog TV" msgstr "Аналогове телебачення" msgctxt "#30033" msgid "Analog Radio" msgstr "Аналогове радіо" msgctxt "#30034" msgid "Transponder:" msgstr "Транспондер:" msgctxt "#30035" msgid "New channels" msgstr "Нові канали" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Пошук каналів - Закінчено" msgctxt "#30037" msgid "No device available - exiting" msgstr "Немає доступного пристрою - вихід" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "Немає доступного пристрою DVB-S2 - намагаюся повернутися до DVB-S" msgctxt "#30039" msgid "Running" msgstr "Запуск…" msgctxt "#30040" msgid "Stopped" msgstr "Зупинено" msgctxt "#30041" msgid "Finished" msgstr "Завершено" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Пошук каналів - Скасовано" msgctxt "#30043" msgid "Channel search - Error" msgstr "Пошук каналів - Помилка" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "Втрачено зв’язок з сервером VDR" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "Зв’язок з VDR сервером відновлено" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Створити групи каналів автоматично на сервері" msgctxt "#30100" msgid "VDR OSD" msgstr "VDR OSD" msgctxt "#30101" msgid "Setup" msgstr "Налаштування" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "Контроль OSD - натисніть Info для виходу" msgctxt "#30107" msgid "VDR Admin" msgstr "VDR Admin" msgctxt "#30108" msgid "Channels" msgstr "Канали" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.uz_uz/000077500000000000000000000000001255226123100301125ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.uz_uz/strings.po000066400000000000000000000014101255226123100321370ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Uzbek (Uzbekistan) (http://www.transifex.com/projects/p/kodi-main/language/uz_UZ/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: uz_UZ\n" "Plural-Forms: nplurals=1; plural=0;\n" msgctxt "#30017" msgid "Country" msgstr "Davlat" msgctxt "#30026" msgid "Type:" msgstr "Turi:" msgctxt "#30108" msgid "Channels" msgstr "Kanallar" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.vi_vn/000077500000000000000000000000001255226123100300575ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.vi_vn/strings.po000066400000000000000000000106441255226123100321150ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/projects/p/kodi-main/language/vi_VN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: vi_VN\n" "Plural-Forms: nplurals=1; plural=0;\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "Tên miền hoặc IP VDR" msgctxt "#30001" msgid "VNSI Port" msgstr "Cổng VNSI" msgctxt "#30002" msgid "Priority" msgstr "Mức quan trọng" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Chuyển đổi bộ ký tự" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Thời gian chờ kết nối (s)" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "Cho phép các thông điệp VDR" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Đọc các bản thu từ thư mục" msgctxt "#30007" msgid "VDR recordings directory" msgstr "Thư mục lưu chương trình thu VDR" msgctxt "#30008" msgid "Channel search" msgstr "Tìm kênh" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Dò kênh - Cài đặt" msgctxt "#30010" msgid "Start Channel search" msgstr "Bắt đầu dò kênh" msgctxt "#30011" msgid "Source Type" msgstr "Kiểu nguồn" msgctxt "#30012" msgid "TV channels" msgstr "Kênh TV" msgctxt "#30013" msgid "Radio channels" msgstr "Kênh Radio" msgctxt "#30014" msgid "FTA channels" msgstr "Kênh FTA" msgctxt "#30015" msgid "Scrambled channels" msgstr "Kênh mã hoá" msgctxt "#30016" msgid "HD channels" msgstr "Kênh HD" msgctxt "#30017" msgid "Country" msgstr "Quốc gia" msgctxt "#30018" msgid "Cable Inversion" msgstr "Đảo cáp" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Cable Symbolrate" msgctxt "#30020" msgid "Cable modulation" msgstr "Điều biến cáp" msgctxt "#30021" msgid "Terr Inversion" msgstr "Đảo Terr" msgctxt "#30022" msgid "Satellite" msgstr "Vệ tinh" msgctxt "#30023" msgid "ATSC Type" msgstr "Kiểu ATSC" msgctxt "#30024" msgid "Back" msgstr "Lùi" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Dò kênh - Đang chạy... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Thể loại" msgctxt "#30027" msgid "Device:" msgstr "Thiết bị:" msgctxt "#30028" msgid "Scan: %i" msgstr "Quét: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Tín hiêu: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Kênh mới: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Tất cả kênh: %i" msgctxt "#30032" msgid "Analog TV" msgstr "TV analog" msgctxt "#30033" msgid "Analog Radio" msgstr "Radio analog" msgctxt "#30034" msgid "Transponder:" msgstr "Bộ tiếp sóng:" msgctxt "#30035" msgid "New channels" msgstr "Kênh mới" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Dò kênh - Đã xong" msgctxt "#30037" msgid "No device available - exiting" msgstr "Thiết bị không dùng được hoặc không tồn tại" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "Không có thiết bị DVB-S2 - đang thử lại với DVB-S" msgctxt "#30039" msgid "Running" msgstr "Đang chạy" msgctxt "#30040" msgid "Stopped" msgstr "Đã dừng" msgctxt "#30041" msgid "Finished" msgstr "Đã xong" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Dò kênh - Đã hủy" msgctxt "#30043" msgid "Channel search - Error" msgstr "Dò kênh - Lỗi" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "Mất kết nối tới máy chủ VDR" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "Đã khôi phục lại kết nối tới máy chủ VDR" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Tạo các nhóm kênh tự động trên máy chủ" msgctxt "#30101" msgid "Setup" msgstr "Cài đặt" msgctxt "#30108" msgid "Channels" msgstr "Kênh" msgctxt "#30110" msgid "Channel blacklist" msgstr "Danh sách kênh bị cấm" msgctxt "#30111" msgid "Channel filters" msgstr "Bộ lọc kênh" msgctxt "#30112" msgid "Radio Channels" msgstr "Kênh Radio" msgctxt "#30113" msgid "Save filters" msgstr "Lưu bộ lọc" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.zh_cn/000077500000000000000000000000001255226123100300375ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.zh_cn/strings.po000066400000000000000000000121401255226123100320660ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/kodi-main/language/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "VDR 主机名或 IP 地址" msgctxt "#30001" msgid "VNSI Port" msgstr "VNSI 端口" msgctxt "#30002" msgid "Priority" msgstr "优先级" msgctxt "#30003" msgid "Character Set Conversion" msgstr "字符集转换" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "连接超时(秒)" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "允许 VDR 信息" msgctxt "#30006" msgid "Read recordings from directory" msgstr "读取录像于目录" msgctxt "#30007" msgid "VDR recordings directory" msgstr "VDR 录像目录" msgctxt "#30008" msgid "Channel search" msgstr "频道搜索" msgctxt "#30009" msgid "Channel search - Settings" msgstr "频道搜索 - 设置" msgctxt "#30010" msgid "Start Channel search" msgstr "开始频道搜索" msgctxt "#30011" msgid "Source Type" msgstr "源类型" msgctxt "#30012" msgid "TV channels" msgstr "电视频道" msgctxt "#30013" msgid "Radio channels" msgstr "电台频道" msgctxt "#30014" msgid "FTA channels" msgstr "免费频道" msgctxt "#30015" msgid "Scrambled channels" msgstr "加密频道" msgctxt "#30016" msgid "HD channels" msgstr "高清频道" msgctxt "#30017" msgid "Country" msgstr "国家" msgctxt "#30018" msgid "Cable Inversion" msgstr "电缆反转" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "电缆符号率" msgctxt "#30020" msgid "Cable modulation" msgstr "电缆调制" msgctxt "#30021" msgid "Terr Inversion" msgstr "Terr 反转" msgctxt "#30022" msgid "Satellite" msgstr "卫星" msgctxt "#30023" msgid "ATSC Type" msgstr "ATSC 类型" msgctxt "#30024" msgid "Back" msgstr "返回" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "频道搜索 - 运行... %i %%" msgctxt "#30026" msgid "Type:" msgstr "类型:" msgctxt "#30027" msgid "Device:" msgstr "设备:" msgctxt "#30028" msgid "Scan: %i" msgstr "扫描:%i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "信号:%i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "新频道:%i" msgctxt "#30031" msgid "All channels: %i" msgstr "全部频道:%i" msgctxt "#30032" msgid "Analog TV" msgstr "模拟电视" msgctxt "#30033" msgid "Analog Radio" msgstr "模拟电台" msgctxt "#30034" msgid "Transponder:" msgstr "转发器:" msgctxt "#30035" msgid "New channels" msgstr "新频道" msgctxt "#30036" msgid "Channel search - Finished" msgstr "频道搜索 - 已完成" msgctxt "#30037" msgid "No device available - exiting" msgstr "无可用设备 - 正退出" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "无可用 DVB-S2 设备 - 尝试 DVB-S" msgctxt "#30039" msgid "Running" msgstr "运行" msgctxt "#30040" msgid "Stopped" msgstr "已停止" msgctxt "#30041" msgid "Finished" msgstr "已完成" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "频道搜索 - 已取消" msgctxt "#30043" msgid "Channel search - Error" msgstr "频道搜索 - 错误" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "失去与 VDR 服务器的连接" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "与 VDR 服务器的连接已恢复" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "自动在服务器上创建频道组" msgctxt "#30047" msgid "Request Timeshift" msgstr "请求时光平移" msgctxt "#30048" msgid "Path to channel icons" msgstr "频道图标路径" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "用于网络唤醒的 VDR 服务器 MAC 地址" msgctxt "#30100" msgid "VDR OSD" msgstr "VDR OSD" msgctxt "#30101" msgid "Setup" msgstr "设置" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "控制 OSD - 按 info 退出" msgctxt "#30103" msgid "Select to control OSD" msgstr "选择控制 OSD" msgctxt "#30104" msgid "Timeshift Mode" msgstr "时光平移模式" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "时光平移缓存(RAM)x100MB" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "时光平移缓存(文件)x1GB" msgctxt "#30107" msgid "VDR Admin" msgstr "VDR 管理" msgctxt "#30108" msgid "Channels" msgstr "频道" msgctxt "#30109" msgid "Provider whitelist" msgstr "来源白名单" msgctxt "#30110" msgid "Channel blacklist" msgstr "频道黑名单" msgctxt "#30111" msgid "Channel filters" msgstr "频道筛选" msgctxt "#30112" msgid "Radio Channels" msgstr "电台频道" msgctxt "#30113" msgid "Save filters" msgstr "保存筛选" msgctxt "#30114" msgid "Provider Unknown" msgstr "未知来源" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.zh_tw/000077500000000000000000000000001255226123100300715ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/language/resource.language.zh_tw/strings.po000066400000000000000000000111351255226123100321230ustar00rootroot00000000000000# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team XBMC msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: http://trac.kodi.tv/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/kodi-main/language/zh_TW/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: zh_TW\n" "Plural-Forms: nplurals=1; plural=0;\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "VDR的主機名稱或IP" msgctxt "#30001" msgid "VNSI Port" msgstr "VNSI端口" msgctxt "#30002" msgid "Priority" msgstr "優先順序" msgctxt "#30003" msgid "Character Set Conversion" msgstr "字元集轉換" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "連接超時(秒)" msgctxt "#30005" msgid "Allow VDR Messages" msgstr "允許VDR訊息" msgctxt "#30006" msgid "Read recordings from directory" msgstr "從目錄中讀取錄影檔案" msgctxt "#30007" msgid "VDR recordings directory" msgstr "VDR錄影目錄" msgctxt "#30008" msgid "Channel search" msgstr "頻道搜尋" msgctxt "#30009" msgid "Channel search - Settings" msgstr "頻道搜尋-設定" msgctxt "#30010" msgid "Start Channel search" msgstr "開始頻道搜尋" msgctxt "#30011" msgid "Source Type" msgstr "來源類型" msgctxt "#30012" msgid "TV channels" msgstr "電視頻道" msgctxt "#30013" msgid "Radio channels" msgstr "無線電廣播頻道" msgctxt "#30014" msgid "FTA channels" msgstr "FTA頻道" msgctxt "#30015" msgid "Scrambled channels" msgstr "加密頻道" msgctxt "#30016" msgid "HD channels" msgstr "高清頻道" msgctxt "#30017" msgid "Country" msgstr "國家" msgctxt "#30018" msgid "Cable Inversion" msgstr "電纜倒位" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "電纜符碼率" msgctxt "#30020" msgid "Cable modulation" msgstr "電纜調變器" msgctxt "#30021" msgid "Terr Inversion" msgstr "Terr 倒位" msgctxt "#30022" msgid "Satellite" msgstr "衛星" msgctxt "#30023" msgid "ATSC Type" msgstr "ATSC類型" msgctxt "#30024" msgid "Back" msgstr "返回" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "頻道搜索 - 運行中... %i %%" msgctxt "#30026" msgid "Type:" msgstr "類型:" msgctxt "#30027" msgid "Device:" msgstr "設備:" msgctxt "#30028" msgid "Scan: %i" msgstr "掃描: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "信號: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "新頻道: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "所有頻道: %i" msgctxt "#30032" msgid "Analog TV" msgstr "類比電視" msgctxt "#30033" msgid "Analog Radio" msgstr "類比電台" msgctxt "#30034" msgid "Transponder:" msgstr "發射機應答器:" msgctxt "#30035" msgid "New channels" msgstr "新頻道" msgctxt "#30036" msgid "Channel search - Finished" msgstr "頻道搜索-已完成" msgctxt "#30037" msgid "No device available - exiting" msgstr "沒有可用設備-退出中" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "沒有可用的DVB-S2設備 - 試圖退回使用DVB-S" msgctxt "#30039" msgid "Running" msgstr "正在執行" msgctxt "#30040" msgid "Stopped" msgstr "已停止" msgctxt "#30041" msgid "Finished" msgstr "已完成" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "頻道搜索 - 取消" msgctxt "#30043" msgid "Channel search - Error" msgstr "頻道搜索 - 錯誤" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "VDR服務器失去連線" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "VDR服務器連線已恢復" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "自動在服務器上建立頻道群組" msgctxt "#30047" msgid "Request Timeshift" msgstr "請求時間平移" msgctxt "#30100" msgid "VDR OSD" msgstr "VDR OSD選單" msgctxt "#30101" msgid "Setup" msgstr "系統設定" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "控制OSD選單中 - 按 info 鍵離開" msgctxt "#30103" msgid "Select to control OSD" msgstr "選擇控制OSD選單" msgctxt "#30104" msgid "Timeshift Mode" msgstr "時間平移模式" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "時間平移緩衝 (RAM) x 100MB" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "時間平移緩衝 (檔案) x 1 GB" msgctxt "#30107" msgid "VDR Admin" msgstr "VDR 管理" msgctxt "#30108" msgid "Channels" msgstr "頻道" kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/settings.xml000066400000000000000000000016611255226123100241310ustar00rootroot00000000000000 kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/skins/000077500000000000000000000000001255226123100226725ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/skins/skin.aeon.nox.5/000077500000000000000000000000001255226123100255255ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/skins/skin.aeon.nox.5/1080i/000077500000000000000000000000001255226123100262665ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/skins/skin.aeon.nox.5/1080i/Admin.xml000066400000000000000000000436201255226123100300450ustar00rootroot00000000000000 10 SetProperty(menu,osd) no 36 CommonBackground Topbar 1920 900 90 font13_title 15 grey2 right top -4 StringCompare(Window.Property(menu),osd) + ControlGroup(12).HasFocus() 0 128 Window_OpenClose_Animation SystemLeftPanel 82 32 356 720 61 11 38 10 10 61 300 30 356 60 separator2.png 356 0 356 90 font15 20 grey2 selected right center 0 0 0 30 356 60 separator2.png 0 0 356 90 listselect_fo.png Control.HasFocus(10) VisibleFadeEffect 356 0 356 90 font15 20 white selected right center Conditional 0 0 0 Select SetProperty(menu,osd) SetProperty(menu,setup) SetProperty(menu,channels) 68 32 8 720 11 10 61 61 false - scrollbar/texturesliderbar2.png scrollbar/texturesliderbar2.png LOGO 82 752 356 120 keep aeon-nox-logo.png SystemRightPanel control area 522 32 1316 840 0 60 10 60 12 12 StringCompare(Window.Property(menu),osd) osd control label 1316 90 font15 grey2 30 white invalid listselect_fo.png separator5.png 0 90 1316 750 center center control area 522 32 1316 840 0 60 10 60 20 20 StringCompare(Window.Property(menu),setup) SettingsFadeEffect Source Type 0 0 1316 90 font15 grey2 30 white listselect_fo.png separator5.png center yes 10 Source Type 0 0 1316 90 font15 grey2 30 white listselect_fo.png separator5.png center yes 10 Source Type 0 0 1316 90 font15 grey2 30 white listselect_fo.png separator5.png center yes 10 SettingsFadeEffect StringCompare(Window.Property(menu),channels) Channels label 522 32 658 90 font15 grey2 30 white listselect_fo.png separator5.png StringCompare(Window.Property(IsDirty),1) control area 522 182 658 390 0 60 10 36 38 38 Is Radio 658 90 font15 grey2 30 white listselect_fo.png separator5.png providers 658 90 font15 grey2 30 white listselect_fo.png separator5.png Select channels 658 90 font15 grey2 30 white listselect_fo.png separator5.png Select save 658 90 font15 grey2 30 white listselect_fo.png separator5.png 32 1178 2 840 separator3.png 1180 32 658 840 36 35 37 36 37 200 658 60 separator2.png 658 60 font14 left 15 grey2 grey2 ListItem.Label 594 -2 64 64 FF04B431 android/btn_radio_on_holo_dark.png ListItem.Property(IsWhitelist) 594 -2 64 64 FFB20000 android/btn_radio_on_holo_dark.png ListItem.Property(IsBlacklist) 594 -2 64 64 android/btn_radio_off_holo_dark.png 1316 60 separator2.png 658 60 listselect_fo.png Control.HasFocus(36) VisibleFadeEffect 658 60 font14 left white 15 white ListItem.Label Conditional 594 -2 64 64 FF04B431 android/btn_radio_on_holo_dark.png ListItem.Property(IsWhitelist) 594 -2 64 64 FFB20000 android/btn_radio_on_holo_dark.png ListItem.Property(IsBlacklist) 594 -2 64 64 android/btn_radio_off_holo_dark.png 1841 32 8 840 36 10 37 37 false - scrollbar/texturesliderbar2.png scrollbar/texturesliderbar2.png BehindDialogFadeOut kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/skins/skin.aeon.nox/000077500000000000000000000000001255226123100253625ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/skins/skin.aeon.nox/1080i/000077500000000000000000000000001255226123100261235ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/skins/skin.aeon.nox/1080i/Admin.xml000066400000000000000000000367631255226123100277140ustar00rootroot00000000000000 10 SetProperty(menu,osd) no 36 AutoConfig CommonSettingsBackground CommonMediaPlayingBackground Furniture_SettingsFloor Conditional Furniture_SettingsBackPanel 1 63 180 326 768 10 11 10 10 - 300 334 74 Font_Bold20 grey2 0 0 0 334 74 views/tripanel/listselect_fo.png Conditional $VAR[FocusTextureColorVar] 334 74 Font_Bold20 0 0 0 Select SetProperty(menu,osd) SetProperty(menu,setup) SetProperty(menu,channels) 387 120 Background 0 0 1469 741 $INFO[Container(9000).ListItem.Icon] Background Title 0 0 1469 50 stretch GlassTitleBar.png StringCompare(Window.Property(menu),osd) osd control label 25 10 1400 30 views/tripanel/listselect_fo.png $VAR[FocusTextureColorVar] - font16caps grey white2 10 5 50 1453 740 StringCompare(Window.Property(menu),setup) 21 Source Type 10 50 1400 40 views/tripanel/listselect_fo.png $VAR[FocusTextureColorVar] - Font_Bold20 grey white2 center 10 22 Source Type 10 100 1400 40 views/tripanel/listselect_fo.png $VAR[FocusTextureColorVar] - Font_Bold20 grey white2 center 10 21 23 Source Type 10 150 1400 40 views/tripanel/listselect_fo.png $VAR[FocusTextureColorVar] - Font_Bold20 grey white2 center 10 22 StringCompare(Window.Property(menu),channels) 33 Channels label 25 10 1000 30 font16caps posx center white black 1090 30 30 30 stretch FFCC0000 views/scrollbarnub-focus.png StringCompare(Window.Property(IsDirty),1) 1090 30 30 30 stretch FF00FF00 views/scrollbarnub-focus.png !StringCompare(Window.Property(IsDirty),1) Is Radio 75 150 375 30 font16caps grey3 white views/tripanel/listselect_fo.png $VAR[FocusTextureColorVar] settings/settings_radiobuttonoff.png 10 33 36 providers 75 250 375 30 views/tripanel/listselect_fo.png settings/settings_radiobuttonoff.png font16caps grey3 10 36 32 34 Select channels 75 350 375 30 views/tripanel/listselect_fo.png settings/settings_radiobuttonoff.png font16caps grey3 10 36 33 35 Select save 75 450 375 30 views/tripanel/listselect_fo.png settings/settings_radiobuttonoff.png font16caps grey3 10 36 34 background image 700 75 740 670 $INFO[Container(9000).ListItem.Icon] 720 95 650 630 35 37 list 37 200 2 2 18 18 stretch 7790EE90 arrowright.png ListItem.Property(IsWhitelist) 2 2 18 18 stretch 77FF0000 arrowright.png ListItem.Property(IsBlacklist) 40 0 550 20 Font_Reg10 posx center grey2 selected ListItem.Label 0 0 650 20 stretch views/tripanel/listselect_fo.png $VAR[FocusTextureColorVar] Control.HasFocus(36) 2 2 18 18 stretch 7790EE90 arrowright.png ListItem.Property(IsWhitelist) 2 2 18 18 stretch 77FF0000 arrowright.png ListItem.Property(IsBlacklist) 40 0 550 20 Font_Reg10 posx center grey2 selected ListItem.Label 1400 75 25 630 36 false vertical kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/skins/skin.confluence/000077500000000000000000000000001255226123100257565ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/skins/skin.confluence/720p/000077500000000000000000000000001255226123100264465ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/skins/skin.confluence/720p/Admin.xml000066400000000000000000000432221255226123100302230ustar00rootroot00000000000000 10 SetProperty(menu,osd) no 36 CommonBackground 0 100r 1280 100 floor.png VisibleFadeEffect 90 30 5 5 1090 630 ContentPanel.png 5 625 1090 64 ContentPanelMirror.png Close Window button 980 11 64 32 - PreviousMenu DialogCloseButton-focus.png DialogCloseButton.png 1 1 1 1 system.getbool(input.enablemouse) VisibleFadeEffect LOGO 30 15 220 80 keep Confluence_Logo.png 1 10 82 260 541 10 11 10 10 - 300 0 0 260 55 MenuItemNF.png 10 0 240 55 font24_title grey2 right center 0 0 0 0 0 260 55 MenuItemFO.png 10 0 240 55 font24_title white right center 0 0 0 Select SetProperty(menu,osd) SetProperty(menu,setup) SetProperty(menu,channels) 268 10 Background 0 0 790 620 black-back2.png Background Title 0 0 790 50 stretch GlassTitleBar.png StringCompare(Window.Property(menu),osd) osd control label 25 20 765 30 MenuItemFO.png MenuItemNF.png font16caps white 10 5 50 780 515 StringCompare(Window.Property(menu),setup) 21 Source Type 10 50 770 40 font13 grey2 white MenuItemFO.png MenuItemNF.png center 10 22 Source Type 10 100 770 40 font13 grey2 white MenuItemFO.png MenuItemNF.png center 10 21 23 Source Type 10 150 770 40 font13 grey2 white MenuItemFO.png MenuItemNF.png center 10 22 StringCompare(Window.Property(menu),channels) 33 Channels label 30 20 500 30 font16caps left center white black 730 20 30 30 stretch FFCC0000 radiobutton-nofocus.png StringCompare(Window.Property(IsDirty),1) 730 20 30 30 stretch FF00FF00 radiobutton-nofocus.png !StringCompare(Window.Property(IsDirty),1) Is Radio 50 100 250 30 font16caps grey2 white MenuItemFO.png MenuItemNF.png 10 33 36 providers 50 150 250 30 MenuItemFO.png MenuItemNF.png font16caps grey2 white 10 36 32 34 Select channels 50 200 250 30 MenuItemFO.png MenuItemNF.png font16caps grey2 white 10 36 33 35 Select save 50 250 250 30 MenuItemFO.png MenuItemNF.png font16caps grey2 white 10 36 34 background image 320 50 440 540 DialogBack2.png 340 70 400 500 35 37 list 37 200 0 0 400 20 stretch MenuItemNF.png 2 2 18 18 stretch 7790EE90 arrow-big-right.png ListItem.Property(IsWhitelist) 2 2 18 18 stretch 77FF0000 arrow-big-right.png ListItem.Property(IsBlacklist) 40 0 340 20 font10 left center grey2 selected ListItem.Label 0 0 400 20 stretch MenuItemNF.png !Control.HasFocus(36) VisibleFadeEffect 0 0 400 20 stretch MenuItemFO.png Control.HasFocus(36) VisibleFadeEffect 2 2 18 18 stretch 7790EE90 arrow-big-right.png ListItem.Property(IsWhitelist) 2 2 18 18 stretch 77FF0000 arrow-big-right.png ListItem.Property(IsBlacklist) 40 0 340 20 font10 left center grey2 selected ListItem.Label 760 50 25 540 ScrollBarV.png ScrollBarV_bar.png ScrollBarV_bar_focus.png ScrollBarNib.png ScrollBarNib.png 36 false vertical Clock kodi-pvr-vdr-vnsi-1.10.10/pvr.vdr.vnsi/resources/skins/skin.confluence/720p/ChannelScan.xml000066400000000000000000001034761255226123100313600ustar00rootroot00000000000000 5 no 2 CommonSettingsBackground CommonMediaPlayingBackground 90 50 0 0 1100 640 DialogBack.png LOGO 30 15 220 80 keep Confluence_Logo.png 268 10 790 618 black-back2.png 268 10 804 70 stretch GlassTitleBar.png header label 300 20 740 30 font16caps left center white black Start/Stop Channel search 10 90 260 60 13 font13_title right center MenuItemNF.png MenuItemFO.png 2 10 6 6 Cancel 10 150 260 60 13 font13_title right center MenuItemNF.png MenuItemFO.png 10 10 5 5 IsEmpty(Window.Property(Scanning)) IsEmpty(Window.Property(Scanning)) Source Type 268 80 790 40 font13 grey2 white MenuItemFO.png MenuItemNF.png center 5 5 22 11 Default RadioButton 268 120 790 40 font13 grey2 white MenuItemFO.png MenuItemNF.png 5 5 10 12 Conditional Default RadioButton 268 160 790 40 font13 grey2 white MenuItemFO.png MenuItemNF.png 5 5 11 13 Conditional Conditional Default RadioButton 268 200 790 40 font13 grey2 white MenuItemFO.png MenuItemNF.png 5 5 12 14 Conditional Conditional Conditional Default RadioButton 268 240 790 40 font13 grey2 white MenuItemFO.png MenuItemNF.png 5 5 13 15 Conditional Conditional Conditional Conditional Default RadioButton 268 280 790 40 font13 grey2 white MenuItemFO.png MenuItemNF.png 5 5 14 16 Conditional Conditional Conditional Conditional Conditional Country selection 268 320 790 40 font13 grey2 white MenuItemFO.png MenuItemNF.png center 5 5 15 17 Conditional Conditional Conditional Conditional Conditional Conditional Satellite selection 268 360 790 40 font13 grey2 white MenuItemFO.png MenuItemNF.png center 5 5 16 18 Conditional Conditional Conditional Conditional Conditional Conditional Conditional DVB-C Inversion 268 400 790 40 font13 grey2 white MenuItemFO.png MenuItemNF.png center 5 5 17 29 Conditional Conditional Conditional Conditional Conditional Conditional Conditional Conditional DVB-C Symbolrate 268 440 790 40 font13 grey2 white MenuItemFO.png MenuItemNF.png center 5 5 18 20 Conditional Conditional Conditional Conditional Conditional Conditional Conditional Conditional Conditional DVB-C QAM 268 480 790 40 font13 grey2 white MenuItemFO.png MenuItemNF.png center 5 5 29 21 Conditional Conditional Conditional Conditional Conditional Conditional Conditional Conditional Conditional Conditional DVB-T Inversion 268 520 790 40 font13 grey2 white MenuItemFO.png MenuItemNF.png center 5 5 20 22 Conditional Conditional Conditional Conditional Conditional Conditional Conditional Conditional Conditional Conditional Conditional ATSC Type 268 560 790 40 font13 grey2 white MenuItemFO.png MenuItemNF.png center 5 5 21 10 Conditional Conditional Conditional Conditional Conditional Conditional Conditional Conditional Conditional Conditional Conditional Conditional !IsEmpty(Window.Property(Scanning)) Progressbar 275 60 780 14 type label 275 85 250 30 font13 left center grey black type value 1040 85 500 30 font13 right center white black device label 275 115 250 30 font13 left center white black device value 1040 115 500 30 font13 right center white black transponder label 275 145 250 30 font13 left center white black transponder value 1040 145 500 30 font13 right center white black Progressbar 30 160 220 50 Signal label 40 168 250 30 font13 left center white black 215 170 30 30 stretch amt-overlay-watched.png !IsEmpty(Window.Property(Locked)) 290 180 750 400 2 2 10 60 60 200 0 0 750 40 stretch MenuItemNF.png 710 5 40 30 stretch OverlayLocked.png !IsEmpty(ListItem.Property(IsEncrypted)) 690 7 60 25 stretch OverlayHD.png Conditional !IsEmpty(ListItem.Property(IsHD)) 0 2 36 36 stretch DefaultVideoCover.png IsEmpty(ListItem.Property(IsRadio)) 0 2 36 36 stretch DefaultAlbumCover.png !IsEmpty(ListItem.Property(IsRadio)) 45 0 500 40 font14 left center grey2 selected ListItem.Label 0 0 750 40 stretch MenuItemNF.png !Control.HasFocus(2) VisibleFadeEffect 0 0 750 40 stretch MenuItemFO.png Control.HasFocus(2) VisibleFadeEffect 710 5 40 30 stretch OverlayLocked.png !IsEmpty(ListItem.Property(IsEncrypted)) 690 7 60 25 stretch OverlayHD.png Conditional !IsEmpty(ListItem.Property(IsHD)) 0 2 36 36 stretch DefaultVideoCover.png IsEmpty(ListItem.Property(IsRadio)) 0 2 36 36 stretch DefaultAlbumCover.png !IsEmpty(ListItem.Property(IsRadio)) 45 0 500 40 font14 left center grey2 selected ListItem.Label 1060 180 25 410 ScrollBarV.png ScrollBarV_bar.png ScrollBarV_bar_focus.png ScrollBarNib.png ScrollBarNib.png 2 10 true vertical Page Count Label 1040 600 500 20 font12 grey false right center Status Label 275 590 500 20 font14 yellow false left center BehindDialogFadeOut 60 0 WindowClose WindowOpen 0 0 250 35 header.png WindowTitleCommons 220 WindowTitleHomeButton Clock kodi-pvr-vdr-vnsi-1.10.10/src/000077500000000000000000000000001255226123100157415ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/src/EGLHelpers/000077500000000000000000000000001255226123100176735ustar00rootroot00000000000000kodi-pvr-vdr-vnsi-1.10.10/src/EGLHelpers/VisGUIShader.cpp000066400000000000000000000043411255226123100226360ustar00rootroot00000000000000/* * Copyright (C) 2005-2013 Team XBMC * http://www.xbmc.org * * This Program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This Program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XBMC; see the file COPYING. If not, see * . * */ #include "VisGUIShader.h" CVisGUIShader::CVisGUIShader(const char *vert, const char *frag ) : CVisGLSLShaderProgram(vert, frag) { // Initialise values m_hTex0 = 0; m_hTex1 = 0; m_hProj = 0; m_hModel = 0; m_hPos = 0; m_hCol = 0; m_hCord0 = 0; m_hCord1 = 0; m_proj = NULL; m_model = NULL; } void CVisGUIShader::OnCompiledAndLinked() { // This is called after CompileAndLink() // Variables passed directly to the Fragment shader m_hTex0 = glGetUniformLocation(ProgramHandle(), "m_samp0"); m_hTex1 = glGetUniformLocation(ProgramHandle(), "m_samp1"); // Variables passed directly to the Vertex shader m_hProj = glGetUniformLocation(ProgramHandle(), "m_proj"); m_hModel = glGetUniformLocation(ProgramHandle(), "m_model"); m_hPos = glGetAttribLocation(ProgramHandle(), "m_attrpos"); m_hCol = glGetAttribLocation(ProgramHandle(), "m_attrcol"); m_hCord0 = glGetAttribLocation(ProgramHandle(), "m_attrcord0"); m_hCord1 = glGetAttribLocation(ProgramHandle(), "m_attrcord1"); // It's okay to do this only one time. Textures units never change. glUseProgram( ProgramHandle() ); glUniform1i(m_hTex0, 0); glUniform1i(m_hTex1, 1); glUseProgram( 0 ); } bool CVisGUIShader::OnEnabled() { // This is called after glUseProgram() glUniformMatrix4fv(m_hProj, 1, GL_FALSE, GetMatrix(MM_PROJECTION)); glUniformMatrix4fv(m_hModel, 1, GL_FALSE, GetMatrix(MM_MODELVIEW)); return true; } void CVisGUIShader::Free() { // Do Cleanup here CVisShaderProgram::Free(); } kodi-pvr-vdr-vnsi-1.10.10/src/EGLHelpers/VisGUIShader.h000066400000000000000000000025141255226123100223030ustar00rootroot00000000000000#pragma once /* * Copyright (C) 2005-2013 Team XBMC * http://www.xbmc.org * * This Program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This Program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XBMC; see the file COPYING. If not, see * . * */ #include "VisShader.h" #include "VisMatrixGLES.h" class CVisGUIShader : public CVisGLSLShaderProgram, public CVisMatrixGLES { public: CVisGUIShader(const char *vert, const char *frag); void OnCompiledAndLinked(); bool OnEnabled(); void Free(); GLint GetPosLoc() { return m_hPos; } GLint GetColLoc() { return m_hCol; } GLint GetCord0Loc() { return m_hCord0; } GLint GetCord1Loc() { return m_hCord1; } protected: GLint m_hTex0; GLint m_hTex1; GLint m_hProj; GLint m_hModel; GLint m_hPos; GLint m_hCol; GLint m_hCord0; GLint m_hCord1; GLfloat *m_proj; GLfloat *m_model; }; kodi-pvr-vdr-vnsi-1.10.10/src/EGLHelpers/VisMatrixGLES.cpp000066400000000000000000000275351255226123100230140ustar00rootroot00000000000000/* * Copyright (C) 2005-2013 Team XBMC * http://www.xbmc.org * * This Program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This Program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XBMC; see the file COPYING. If not, see * . * */ #include "VisMatrixGLES.h" #include #define MODE_WITHIN_RANGE(m) ((m >= 0) && (m < (int)MM_MATRIXSIZE)) CVisMatrixGLES::CVisMatrixGLES() { for (unsigned int i=0; i < MM_MATRIXSIZE; i++) { m_matrices[i].push_back(MatrixWrapper()); MatrixMode((EMATRIXMODE)i); LoadIdentity(); } m_matrixMode = (EMATRIXMODE)-1; m_pMatrix = NULL; } CVisMatrixGLES::~CVisMatrixGLES() { } GLfloat* CVisMatrixGLES::GetMatrix(EMATRIXMODE mode) { if (MODE_WITHIN_RANGE(mode)) { if (!m_matrices[mode].empty()) { return m_matrices[mode].back(); } } return NULL; } void CVisMatrixGLES::MatrixMode(EMATRIXMODE mode) { if (MODE_WITHIN_RANGE(mode)) { m_matrixMode = mode; m_pMatrix = m_matrices[mode].back(); } else { m_matrixMode = (EMATRIXMODE)-1; m_pMatrix = NULL; } } void CVisMatrixGLES::PushMatrix() { if (m_pMatrix && MODE_WITHIN_RANGE(m_matrixMode)) { m_matrices[m_matrixMode].push_back(MatrixWrapper(m_pMatrix)); m_pMatrix = m_matrices[m_matrixMode].back(); } } void CVisMatrixGLES::PopMatrix() { if (MODE_WITHIN_RANGE(m_matrixMode)) { if (m_matrices[m_matrixMode].size() > 1) { m_matrices[m_matrixMode].pop_back(); } m_pMatrix = m_matrices[m_matrixMode].back(); } } void CVisMatrixGLES::LoadIdentity() { if (m_pMatrix) { m_pMatrix[0] = 1.0f; m_pMatrix[4] = 0.0f; m_pMatrix[8] = 0.0f; m_pMatrix[12] = 0.0f; m_pMatrix[1] = 0.0f; m_pMatrix[5] = 1.0f; m_pMatrix[9] = 0.0f; m_pMatrix[13] = 0.0f; m_pMatrix[2] = 0.0f; m_pMatrix[6] = 0.0f; m_pMatrix[10] = 1.0f; m_pMatrix[14] = 0.0f; m_pMatrix[3] = 0.0f; m_pMatrix[7] = 0.0f; m_pMatrix[11] = 0.0f; m_pMatrix[15] = 1.0f; } } void CVisMatrixGLES::Ortho(GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f) { GLfloat u = 2.0f / (r - l); GLfloat v = 2.0f / (t - b); GLfloat w = -2.0f / (f - n); GLfloat x = - (r + l) / (r - l); GLfloat y = - (t + b) / (t - b); GLfloat z = - (f + n) / (f - n); GLfloat matrix[16] = { u, 0.0f, 0.0f, 0.0f, 0.0f, v, 0.0f, 0.0f, 0.0f, 0.0f, w, 0.0f, x, y, z, 1.0f}; MultMatrixf(matrix); } void CVisMatrixGLES::Ortho2D(GLfloat l, GLfloat r, GLfloat b, GLfloat t) { GLfloat u = 2.0f / (r - l); GLfloat v = 2.0f / (t - b); GLfloat x = - (r + l) / (r - l); GLfloat y = - (t + b) / (t - b); GLfloat matrix[16] = { u, 0.0f, 0.0f, 0.0f, 0.0f, v, 0.0f, 0.0f, 0.0f, 0.0f,-1.0f, 0.0f, x, y, 0.0f, 1.0f}; MultMatrixf(matrix); } void CVisMatrixGLES::Frustum(GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f) { GLfloat u = (2.0f * n) / (r - l); GLfloat v = (2.0f * n) / (t - b); GLfloat w = (r + l) / (r - l); GLfloat x = (t + b) / (t - b); GLfloat y = - (f + n) / (f - n); GLfloat z = - (2.0f * f * n) / (f - n); GLfloat matrix[16] = { u, 0.0f, 0.0f, 0.0f, 0.0f, v, 0.0f, 0.0f, w, x, y,-1.0f, 0.0f, 0.0f, z, 0.0f}; MultMatrixf(matrix); } void CVisMatrixGLES::Translatef(GLfloat x, GLfloat y, GLfloat z) { GLfloat matrix[16] = {1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, x, y, z, 1.0f}; MultMatrixf(matrix); } void CVisMatrixGLES::Scalef(GLfloat x, GLfloat y, GLfloat z) { GLfloat matrix[16] = { x, 0.0f, 0.0f, 0.0f, 0.0f, y, 0.0f, 0.0f, 0.0f, 0.0f, z, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; MultMatrixf(matrix); } void CVisMatrixGLES::Rotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z) { GLfloat modulous = sqrt((x*x)+(y*y)+(z*z)); if (modulous != 0.0) { x /= modulous; y /= modulous; z /= modulous; } GLfloat cosine = cos(angle); GLfloat sine = sin(angle); GLfloat cos1 = 1 - cosine; GLfloat a = (x*x*cos1) + cosine; GLfloat b = (x*y*cos1) - (z*sine); GLfloat c = (x*z*cos1) + (y*sine); GLfloat d = (y*x*cos1) + (z*sine); GLfloat e = (y*y*cos1) + cosine; GLfloat f = (y*z*cos1) - (x*sine); GLfloat g = (z*x*cos1) - (y*sine); GLfloat h = (z*y*cos1) + (x*sine); GLfloat i = (z*z*cos1) + cosine; GLfloat matrix[16] = { a, d, g, 0.0f, b, e, h, 0.0f, c, f, i, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; MultMatrixf(matrix); } #if defined(__ARM_NEON__) inline void Matrix4Mul(const float* src_mat_1, const float* src_mat_2, float* dst_mat) { asm volatile ( // Store A & B leaving room at top of registers for result (q0-q3) "vldmia %1, { q4-q7 } \n\t" "vldmia %2, { q8-q11 } \n\t" // result = first column of B x first row of A "vmul.f32 q0, q8, d8[0]\n\t" "vmul.f32 q1, q8, d10[0]\n\t" "vmul.f32 q2, q8, d12[0]\n\t" "vmul.f32 q3, q8, d14[0]\n\t" // result += second column of B x second row of A "vmla.f32 q0, q9, d8[1]\n\t" "vmla.f32 q1, q9, d10[1]\n\t" "vmla.f32 q2, q9, d12[1]\n\t" "vmla.f32 q3, q9, d14[1]\n\t" // result += third column of B x third row of A "vmla.f32 q0, q10, d9[0]\n\t" "vmla.f32 q1, q10, d11[0]\n\t" "vmla.f32 q2, q10, d13[0]\n\t" "vmla.f32 q3, q10, d15[0]\n\t" // result += last column of B x last row of A "vmla.f32 q0, q11, d9[1]\n\t" "vmla.f32 q1, q11, d11[1]\n\t" "vmla.f32 q2, q11, d13[1]\n\t" "vmla.f32 q3, q11, d15[1]\n\t" // output = result registers "vstmia %2, { q0-q3 }" : //no output : "r" (dst_mat), "r" (src_mat_2), "r" (src_mat_1) // input - note *value* of pointer doesn't change : "memory", "q0", "q1", "q2", "q3", "q4", "q5", "q6", "q7", "q8", "q9", "q10", "q11" //clobber ); } void CVisMatrixGLES::MultMatrixf(const GLfloat *matrix) { if (m_pMatrix) { GLfloat m[16]; Matrix4Mul(m_pMatrix, matrix, m); } } #else void CVisMatrixGLES::MultMatrixf(const GLfloat *matrix) { if (m_pMatrix) { GLfloat a = (matrix[0] * m_pMatrix[0]) + (matrix[1] * m_pMatrix[4]) + (matrix[2] * m_pMatrix[8]) + (matrix[3] * m_pMatrix[12]); GLfloat b = (matrix[0] * m_pMatrix[1]) + (matrix[1] * m_pMatrix[5]) + (matrix[2] * m_pMatrix[9]) + (matrix[3] * m_pMatrix[13]); GLfloat c = (matrix[0] * m_pMatrix[2]) + (matrix[1] * m_pMatrix[6]) + (matrix[2] * m_pMatrix[10]) + (matrix[3] * m_pMatrix[14]); GLfloat d = (matrix[0] * m_pMatrix[3]) + (matrix[1] * m_pMatrix[7]) + (matrix[2] * m_pMatrix[11]) + (matrix[3] * m_pMatrix[15]); GLfloat e = (matrix[4] * m_pMatrix[0]) + (matrix[5] * m_pMatrix[4]) + (matrix[6] * m_pMatrix[8]) + (matrix[7] * m_pMatrix[12]); GLfloat f = (matrix[4] * m_pMatrix[1]) + (matrix[5] * m_pMatrix[5]) + (matrix[6] * m_pMatrix[9]) + (matrix[7] * m_pMatrix[13]); GLfloat g = (matrix[4] * m_pMatrix[2]) + (matrix[5] * m_pMatrix[6]) + (matrix[6] * m_pMatrix[10]) + (matrix[7] * m_pMatrix[14]); GLfloat h = (matrix[4] * m_pMatrix[3]) + (matrix[5] * m_pMatrix[7]) + (matrix[6] * m_pMatrix[11]) + (matrix[7] * m_pMatrix[15]); GLfloat i = (matrix[8] * m_pMatrix[0]) + (matrix[9] * m_pMatrix[4]) + (matrix[10] * m_pMatrix[8]) + (matrix[11] * m_pMatrix[12]); GLfloat j = (matrix[8] * m_pMatrix[1]) + (matrix[9] * m_pMatrix[5]) + (matrix[10] * m_pMatrix[9]) + (matrix[11] * m_pMatrix[13]); GLfloat k = (matrix[8] * m_pMatrix[2]) + (matrix[9] * m_pMatrix[6]) + (matrix[10] * m_pMatrix[10]) + (matrix[11] * m_pMatrix[14]); GLfloat l = (matrix[8] * m_pMatrix[3]) + (matrix[9] * m_pMatrix[7]) + (matrix[10] * m_pMatrix[11]) + (matrix[11] * m_pMatrix[15]); GLfloat m = (matrix[12] * m_pMatrix[0]) + (matrix[13] * m_pMatrix[4]) + (matrix[14] * m_pMatrix[8]) + (matrix[15] * m_pMatrix[12]); GLfloat n = (matrix[12] * m_pMatrix[1]) + (matrix[13] * m_pMatrix[5]) + (matrix[14] * m_pMatrix[9]) + (matrix[15] * m_pMatrix[13]); GLfloat o = (matrix[12] * m_pMatrix[2]) + (matrix[13] * m_pMatrix[6]) + (matrix[14] * m_pMatrix[10]) + (matrix[15] * m_pMatrix[14]); GLfloat p = (matrix[12] * m_pMatrix[3]) + (matrix[13] * m_pMatrix[7]) + (matrix[14] * m_pMatrix[11]) + (matrix[15] * m_pMatrix[15]); m_pMatrix[0] = a; m_pMatrix[4] = e; m_pMatrix[8] = i; m_pMatrix[12] = m; m_pMatrix[1] = b; m_pMatrix[5] = f; m_pMatrix[9] = j; m_pMatrix[13] = n; m_pMatrix[2] = c; m_pMatrix[6] = g; m_pMatrix[10] = k; m_pMatrix[14] = o; m_pMatrix[3] = d; m_pMatrix[7] = h; m_pMatrix[11] = l; m_pMatrix[15] = p; } } #endif // gluLookAt implementation taken from Mesa3D void CVisMatrixGLES::LookAt(GLfloat eyex, GLfloat eyey, GLfloat eyez, GLfloat centerx, GLfloat centery, GLfloat centerz, GLfloat upx, GLfloat upy, GLfloat upz) { GLfloat forward[3], side[3], up[3]; GLfloat m[4][4]; forward[0] = centerx - eyex; forward[1] = centery - eyey; forward[2] = centerz - eyez; up[0] = upx; up[1] = upy; up[2] = upz; GLfloat tmp = sqrt(forward[0]*forward[0] + forward[1]*forward[1] + forward[2]*forward[2]); if (tmp != 0.0) { forward[0] /= tmp; forward[1] /= tmp; forward[2] /= tmp; } side[0] = forward[1]*up[2] - forward[2]*up[1]; side[1] = forward[2]*up[0] - forward[0]*up[2]; side[2] = forward[0]*up[1] - forward[1]*up[0]; tmp = sqrt(side[0]*side[0] + side[1]*side[1] + side[2]*side[2]); if (tmp != 0.0) { side[0] /= tmp; side[1] /= tmp; side[2] /= tmp; } up[0] = side[1]*forward[2] - side[2]*forward[1]; up[1] = side[2]*forward[0] - side[0]*forward[2]; up[2] = side[0]*forward[1] - side[1]*forward[0]; m[0][0] = 1.0f; m[0][1] = 0.0f; m[0][2] = 0.0f; m[0][3] = 0.0f; m[1][0] = 0.0f; m[1][1] = 1.0f; m[1][2] = 0.0f; m[1][3] = 0.0f; m[2][0] = 0.0f; m[2][1] = 0.0f; m[2][2] = 1.0f; m[2][3] = 0.0f; m[3][0] = 0.0f; m[3][1] = 0.0f; m[3][2] = 0.0f; m[3][3] = 1.0f; m[0][0] = side[0]; m[1][0] = side[1]; m[2][0] = side[2]; m[0][1] = up[0]; m[1][1] = up[1]; m[2][1] = up[2]; m[0][2] = -forward[0]; m[1][2] = -forward[1]; m[2][2] = -forward[2]; MultMatrixf(&m[0][0]); Translatef(-eyex, -eyey, -eyez); } static void __gluMultMatrixVecf(const GLfloat matrix[16], const GLfloat in[4], GLfloat out[4]) { int i; for (i=0; i<4; i++) { out[i] = in[0] * matrix[0*4+i] + in[1] * matrix[1*4+i] + in[2] * matrix[2*4+i] + in[3] * matrix[3*4+i]; } } // gluProject implementation taken from Mesa3D bool CVisMatrixGLES::Project(GLfloat objx, GLfloat objy, GLfloat objz, const GLfloat modelMatrix[16], const GLfloat projMatrix[16], const GLint viewport[4], GLfloat* winx, GLfloat* winy, GLfloat* winz) { GLfloat in[4]; GLfloat out[4]; in[0]=objx; in[1]=objy; in[2]=objz; in[3]=1.0; __gluMultMatrixVecf(modelMatrix, in, out); __gluMultMatrixVecf(projMatrix, out, in); if (in[3] == 0.0) return false; in[0] /= in[3]; in[1] /= in[3]; in[2] /= in[3]; /* Map x, y and z to range 0-1 */ in[0] = in[0] * 0.5 + 0.5; in[1] = in[1] * 0.5 + 0.5; in[2] = in[2] * 0.5 + 0.5; /* Map x,y to viewport */ in[0] = in[0] * viewport[2] + viewport[0]; in[1] = in[1] * viewport[3] + viewport[1]; *winx=in[0]; *winy=in[1]; *winz=in[2]; return true; } kodi-pvr-vdr-vnsi-1.10.10/src/EGLHelpers/VisMatrixGLES.h000066400000000000000000000065531255226123100224560ustar00rootroot00000000000000#pragma once /* * Copyright (C) 2005-2013 Team XBMC * http://www.xbmc.org * * This Program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This Program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XBMC; see the file COPYING. If not, see * . * */ #if defined(__APPLE__) #include #include #else #include #include #endif//__APPLE__ #include #include enum EMATRIXMODE { MM_PROJECTION = 0, MM_MODELVIEW, MM_TEXTURE, MM_MATRIXSIZE // Must be last! used for size of matrices }; class CVisMatrixGLES { public: CVisMatrixGLES(); ~CVisMatrixGLES(); GLfloat* GetMatrix(EMATRIXMODE mode); void MatrixMode(EMATRIXMODE mode); void PushMatrix(); void PopMatrix(); void LoadIdentity(); void Ortho(GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); void Ortho2D(GLfloat l, GLfloat r, GLfloat b, GLfloat t); void Frustum(GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); void Translatef(GLfloat x, GLfloat y, GLfloat z); void Scalef(GLfloat x, GLfloat y, GLfloat z); void Rotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z); void MultMatrixf(const GLfloat *matrix); void LookAt(GLfloat eyex, GLfloat eyey, GLfloat eyez, GLfloat centerx, GLfloat centery, GLfloat centerz, GLfloat upx, GLfloat upy, GLfloat upz); bool Project(GLfloat objx, GLfloat objy, GLfloat objz, const GLfloat modelMatrix[16], const GLfloat projMatrix[16], const GLint viewport[4], GLfloat* winx, GLfloat* winy, GLfloat* winz); protected: struct MatrixWrapper { MatrixWrapper(){}; MatrixWrapper( const float values[16]) { memcpy(m_values,values,sizeof(m_values)); } MatrixWrapper( const MatrixWrapper &rhs ) { memcpy(m_values, rhs.m_values, sizeof(m_values)); } MatrixWrapper &operator=( const MatrixWrapper &rhs ) { memcpy(m_values, rhs.m_values, sizeof(m_values)); return *this;} operator float*() { return m_values; } operator const float*() const { return m_values; } float m_values[16]; }; std::vector m_matrices[(int)MM_MATRIXSIZE]; GLfloat *m_pMatrix; EMATRIXMODE m_matrixMode; }; kodi-pvr-vdr-vnsi-1.10.10/src/EGLHelpers/VisShader.cpp000066400000000000000000000117311255226123100222720ustar00rootroot00000000000000/* * Copyright (C) 2005-2013 Team XBMC * http://www.xbmc.org * * This Program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This Program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XBMC; see the file COPYING. If not, see * . * */ #include "VisShader.h" #include #define LOG_SIZE 1024 #define GLchar char ////////////////////////////////////////////////////////////////////// // CShader ////////////////////////////////////////////////////////////////////// bool CVisShader::LoadSource(const char *buffer) { m_source = buffer; return true; } ////////////////////////////////////////////////////////////////////// // CVisGLSLVertexShader ////////////////////////////////////////////////////////////////////// bool CVisGLSLVertexShader::Compile() { GLint params[4]; Free(); m_vertexShader = glCreateShader(GL_VERTEX_SHADER); const char *ptr = m_source.c_str(); glShaderSource(m_vertexShader, 1, &ptr, 0); glCompileShader(m_vertexShader); glGetShaderiv(m_vertexShader, GL_COMPILE_STATUS, params); if (params[0]!=GL_TRUE) { GLchar log[LOG_SIZE]; glGetShaderInfoLog(m_vertexShader, LOG_SIZE, NULL, log); m_lastLog = log; m_compiled = false; } else { GLchar log[LOG_SIZE]; glGetShaderInfoLog(m_vertexShader, LOG_SIZE, NULL, log); m_lastLog = log; m_compiled = true; } return m_compiled; } void CVisGLSLVertexShader::Free() { if (m_vertexShader) glDeleteShader(m_vertexShader); m_vertexShader = 0; } ////////////////////////////////////////////////////////////////////// // CVisGLSLPixelShader ////////////////////////////////////////////////////////////////////// bool CVisGLSLPixelShader::Compile() { GLint params[4]; Free(); // Pixel shaders are not mandatory. if (m_source.length()==0) return true; m_pixelShader = glCreateShader(GL_FRAGMENT_SHADER); const char *ptr = m_source.c_str(); glShaderSource(m_pixelShader, 1, &ptr, 0); glCompileShader(m_pixelShader); glGetShaderiv(m_pixelShader, GL_COMPILE_STATUS, params); if (params[0]!=GL_TRUE) { GLchar log[LOG_SIZE]; glGetShaderInfoLog(m_pixelShader, LOG_SIZE, NULL, log); m_lastLog = log; m_compiled = false; } else { GLchar log[LOG_SIZE]; glGetShaderInfoLog(m_pixelShader, LOG_SIZE, NULL, log); m_lastLog = log; m_compiled = true; } return m_compiled; } void CVisGLSLPixelShader::Free() { if (m_pixelShader) glDeleteShader(m_pixelShader); m_pixelShader = 0; } ////////////////////////////////////////////////////////////////////// // CVisGLSLShaderProgram ////////////////////////////////////////////////////////////////////// void CVisGLSLShaderProgram::Free() { m_pVP->Free(); m_pFP->Free(); if (m_shaderProgram) glDeleteProgram(m_shaderProgram); m_shaderProgram = 0; m_ok = false; m_lastProgram = 0; } bool CVisGLSLShaderProgram::CompileAndLink() { GLint params[4]; // free resources Free(); // compiled vertex shader if (!m_pVP->Compile()) return false; // compile pixel shader if (!m_pFP->Compile()) { m_pVP->Free(); return false; } // create program object if (!(m_shaderProgram = glCreateProgram())) goto error; // attach the vertex shader glAttachShader(m_shaderProgram, m_pVP->Handle()); // if we have a pixel shader, attach it. If not, fixed pipeline // will be used. if (m_pFP->Handle()) glAttachShader(m_shaderProgram, m_pFP->Handle()); // link the program glLinkProgram(m_shaderProgram); glGetProgramiv(m_shaderProgram, GL_LINK_STATUS, params); if (params[0]!=GL_TRUE) { GLchar log[LOG_SIZE]; glGetProgramInfoLog(m_shaderProgram, LOG_SIZE, NULL, log); goto error; } m_validated = false; m_ok = true; OnCompiledAndLinked(); return true; error: m_ok = false; Free(); return false; } bool CVisGLSLShaderProgram::Enable() { if (OK()) { glUseProgram(m_shaderProgram); if (OnEnabled()) { if (!m_validated) { // validate the program GLint params[4]; glValidateProgram(m_shaderProgram); glGetProgramiv(m_shaderProgram, GL_VALIDATE_STATUS, params); if (params[0]!=GL_TRUE) { GLchar log[LOG_SIZE]; glGetProgramInfoLog(m_shaderProgram, LOG_SIZE, NULL, log); } m_validated = true; } return true; } else { glUseProgram(0); return false; } return true; } return false; } void CVisGLSLShaderProgram::Disable() { if (OK()) { glUseProgram(0); OnDisabled(); } } kodi-pvr-vdr-vnsi-1.10.10/src/EGLHelpers/VisShader.h000066400000000000000000000132301255226123100217330ustar00rootroot00000000000000#pragma once /* * Copyright (C) 2005-2013 Team XBMC * http://www.xbmc.org * * This Program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This Program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XBMC; see the file COPYING. If not, see * . * */ #if defined(__APPLE__) #include #include #else #include #include #endif//__APPLE__ #include #include ////////////////////////////////////////////////////////////////////// // CVisShader - base class ////////////////////////////////////////////////////////////////////// class CVisShader { public: CVisShader() { m_compiled = false; } virtual ~CVisShader() {} virtual bool Compile() = 0; virtual void Free() = 0; virtual GLuint Handle() = 0; virtual void SetSource(const char *src) { m_source = src; } virtual bool LoadSource(const char *buffer); bool OK() { return m_compiled; } protected: std::string m_source; std::string m_lastLog; std::vector m_attr; bool m_compiled; }; ////////////////////////////////////////////////////////////////////// // CVisVertexShader - vertex shader class ////////////////////////////////////////////////////////////////////// class CVisVertexShader : public CVisShader { public: CVisVertexShader() { m_vertexShader = 0; } virtual ~CVisVertexShader() { Free(); } virtual void Free() {} virtual GLuint Handle() { return m_vertexShader; } protected: GLuint m_vertexShader; }; class CVisGLSLVertexShader : public CVisVertexShader { public: virtual void Free(); virtual bool Compile(); }; ////////////////////////////////////////////////////////////////////// // CVisPixelShader - abstract pixel shader class ////////////////////////////////////////////////////////////////////// class CVisPixelShader : public CVisShader { public: CVisPixelShader() { m_pixelShader = 0; } virtual ~CVisPixelShader() { Free(); } virtual void Free() {} virtual GLuint Handle() { return m_pixelShader; } protected: GLuint m_pixelShader; }; class CVisGLSLPixelShader : public CVisPixelShader { public: virtual void Free(); virtual bool Compile(); }; ////////////////////////////////////////////////////////////////////// // CShaderProgram - the complete shader consisting of both the vertex // and pixel programs. (abstract) ////////////////////////////////////////////////////////////////////// class CVisShaderProgram { public: CVisShaderProgram() { m_ok = false; m_shaderProgram = 0; m_pFP = NULL; m_pVP = NULL; } virtual ~CVisShaderProgram() { Free(); delete m_pFP; delete m_pVP; } // enable the shader virtual bool Enable() = 0; // disable the shader virtual void Disable() = 0; // returns true if shader is compiled and linked bool OK() { return m_ok; } // free resources virtual void Free() {} // return the vertex shader object CVisVertexShader* VertexShader() { return m_pVP; } // return the pixel shader object CVisPixelShader* PixelShader() { return m_pFP; } // compile and link the shaders virtual bool CompileAndLink() = 0; // override to to perform custom tasks on successfull compilation // and linkage. E.g. obtaining handles to shader attributes. virtual void OnCompiledAndLinked() {} // override to to perform custom tasks before shader is enabled // and after it is disabled. Return false in OnDisabled() to // disable shader. // E.g. setting attributes, disabling texture unites, etc virtual bool OnEnabled() { return true; } virtual void OnDisabled() { } virtual GLuint ProgramHandle() { return m_shaderProgram; } protected: CVisVertexShader* m_pVP; CVisPixelShader* m_pFP; GLuint m_shaderProgram; bool m_ok; }; class CVisGLSLShaderProgram : virtual public CVisShaderProgram { public: CVisGLSLShaderProgram() { m_pFP = new CVisGLSLPixelShader(); m_pVP = new CVisGLSLVertexShader(); } CVisGLSLShaderProgram(const char *vert, const char *frag) { m_pFP = new CVisGLSLPixelShader(); m_pFP->LoadSource(frag); m_pVP = new CVisGLSLVertexShader(); m_pVP->LoadSource(vert); } // enable the shader virtual bool Enable(); // disable the shader virtual void Disable(); // free resources virtual void Free(); // compile and link the shaders virtual bool CompileAndLink(); protected: GLint m_lastProgram; bool m_validated; }; kodi-pvr-vdr-vnsi-1.10.10/src/VNSIAdmin.cpp000066400000000000000000001313301255226123100201760ustar00rootroot00000000000000/* * Copyright (C) 2005-2012 Team XBMC * http://www.xbmc.org * * This Program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This Program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XBMC; see the file COPYING. If not, see * . * */ #include "VNSIAdmin.h" #include "responsepacket.h" #include "requestpacket.h" #include "vnsicommand.h" #include #include #if defined(HAVE_GL) #if defined(__APPLE__) #include #else // !defined(__APPLE__) #include #endif // !defined(__APPLE__) #undef HAVE_GLES2 #elif defined(HAS_DX) #include "D3D9.h" #include "D3DX9.h" #elif defined(HAVE_GLES2) #include "EGLHelpers/VisGUIShader.h" #ifndef M_PI #define M_PI 3.141592654f #endif #define DEG2RAD(d) ( (d) * M_PI/180.0f ) //OpenGL wrapper - allows us to use same code of functions draw_bars and render #define GL_PROJECTION MM_PROJECTION #define GL_MODELVIEW MM_MODELVIEW #define glPushMatrix() vis_shader->PushMatrix() #define glPopMatrix() vis_shader->PopMatrix() #define glTranslatef(x,y,z) vis_shader->Translatef(x,y,z) #define glRotatef(a,x,y,z) vis_shader->Rotatef(DEG2RAD(a),x,y,z) #define glPolygonMode(a,b) ; #define glBegin(a) vis_shader->Enable() #define glEnd() vis_shader->Disable() #define glMatrixMode(a) vis_shader->MatrixMode(a) #define glLoadIdentity() vis_shader->LoadIdentity() #define glFrustum(a,b,c,d,e,f) vis_shader->Frustum(a,b,c,d,e,f) GLenum g_mode = GL_TRIANGLES; float g_fWaveform[2][512]; const char *frag = "precision mediump float; \n" "uniform sampler2D m_samp0; \n" "varying vec4 m_cord0; \n" "varying lowp vec4 m_colour; \n" "void main () \n" "{ \n" " gl_FragColor.rgba = vec4(texture2D(m_samp0, m_cord0.xy).rgba * m_colour); \n" "}\n"; const char *vert = "attribute vec4 m_attrpos;\n" "attribute vec4 m_attrcol;\n" "attribute vec4 m_attrcord0;\n" "attribute vec4 m_attrcord1;\n" "varying vec4 m_cord0;\n" "varying vec4 m_cord1;\n" "varying lowp vec4 m_colour;\n" "uniform mat4 m_proj;\n" "uniform mat4 m_model;\n" "void main ()\n" "{\n" " mat4 mvp = m_proj * m_model;\n" " gl_Position = mvp * m_attrpos;\n" " m_colour = m_attrcol;\n" " m_cord0 = m_attrcord0;\n" " m_cord1 = m_attrcord1;\n" "}\n"; CVisGUIShader *vis_shader = NULL; #endif // defined(HAVE_GLES2) #if !defined(GL_UNPACK_ROW_LENGTH) #undef HAVE_GLES2 #endif #define CONTROL_RENDER_ADDON 9 #define CONTROL_MENU 10 #define CONTROL_OSD_BUTTON 13 #define CONTROL_SPIN_TIMESHIFT_MODE 21 #define CONTROL_SPIN_TIMESHIFT_BUFFER_RAM 22 #define CONTROL_SPIN_TIMESHIFT_BUFFER_FILE 23 #define CONTROL_LABEL_FILTERS 31 #define CONTROL_RADIO_ISRADIO 32 #define CONTROL_PROVIDERS_BUTTON 33 #define CONTROL_CHANNELS_BUTTON 34 #define CONTROL_FILTERSAVE_BUTTON 35 #define CONTROL_ITEM_LIST 36 #define ACTION_NONE 0 #define ACTION_MOVE_LEFT 1 #define ACTION_MOVE_RIGHT 2 #define ACTION_MOVE_UP 3 #define ACTION_MOVE_DOWN 4 #define ACTION_SELECT_ITEM 7 #define ACTION_PREVIOUS_MENU 10 #define ACTION_SHOW_INFO 11 #define REMOTE_0 58 // remote keys 0-9. are used by multiple windows #define REMOTE_1 59 // for example in videoFullScreen.xml window id=2005 you can #define REMOTE_2 60 // enter time (mmss) to jump to particular point in the movie #define REMOTE_3 61 #define REMOTE_4 62 // with spincontrols you can enter 3digit number to quickly set #define REMOTE_5 63 // spincontrol to desired value #define REMOTE_6 64 #define REMOTE_7 65 #define REMOTE_8 66 #define REMOTE_9 67 #define ACTION_NAV_BACK 92 #define ACTION_TELETEXT_RED 215 // Teletext Color buttons to control TopText #define ACTION_TELETEXT_GREEN 216 // " " " " " " #define ACTION_TELETEXT_YELLOW 217 // " " " " " " #define ACTION_TELETEXT_BLUE 218 // " " " " " " using namespace ADDON; class cOSDTexture { public: cOSDTexture(int bpp, int x0, int y0, int x1, int y1); virtual ~cOSDTexture(); void SetPalette(int numColors, uint32_t *colors); void SetBlock(int x0, int y0, int x1, int y1, int stride, void *data, int len); void Clear(); void GetSize(int &width, int &height); void GetOrigin(int &x0, int &y0) { x0 = m_x0; y0 = m_y0;}; bool IsDirty(int &x0, int &y0, int &x1, int &y1); void *GetBuffer() {return (void*)m_buffer;}; protected: int m_x0, m_x1, m_y0, m_y1; int m_dirtyX0, m_dirtyX1, m_dirtyY0, m_dirtyY1; int m_bpp; int m_numColors; uint32_t m_palette[256]; uint8_t *m_buffer; bool m_dirty; }; cOSDTexture::cOSDTexture(int bpp, int x0, int y0, int x1, int y1) { m_bpp = bpp; m_x0 = x0; m_x1 = x1; m_y0 = y0; m_y1 = y1; m_buffer = new uint8_t[(x1-x0+1)*(y1-y0+1)*sizeof(uint32_t)]; memset(m_buffer,0, (x1-x0+1)*(y1-y0+1)*sizeof(uint32_t)); m_dirtyX0 = m_dirtyY0 = 0; m_dirtyX1 = x1 - x0; m_dirtyY1 = y1 - y0; m_dirty = false; } cOSDTexture::~cOSDTexture() { if (m_buffer) { delete [] m_buffer; m_buffer = 0; } } void cOSDTexture::Clear() { memset(m_buffer,0, (m_x1-m_x0+1)*(m_y1-m_y0+1)*sizeof(uint32_t)); m_dirtyX0 = m_dirtyY0 = 0; m_dirtyX1 = m_x1 - m_x0; m_dirtyY1 = m_y1 - m_y0; m_dirty = false; } void cOSDTexture::SetBlock(int x0, int y0, int x1, int y1, int stride, void *data, int len) { int line = y0; int col; int color; int width = m_x1 - m_x0 + 1; uint8_t *dataPtr = (uint8_t*)data; int pos = 0; uint32_t *buffer = (uint32_t*)m_buffer; while (line <= y1) { int lastPos = pos; col = x0; int offset = line*width; while (col <= x1) { if (pos >= len) { XBMC->Log(LOG_ERROR, "cOSDTexture::SetBlock: reached unexpected end of buffer"); return; } color = dataPtr[pos]; if (m_bpp == 8) { buffer[offset+col] = m_palette[color]; } else if (m_bpp == 4) { buffer[offset+col] = m_palette[color & 0x0F]; } else if (m_bpp == 2) { buffer[offset+col] = m_palette[color & 0x03]; } else if (m_bpp == 1) { buffer[offset+col] = m_palette[color & 0x01]; } pos++; col++; } line++; pos = lastPos + stride; } if (x0 < m_dirtyX0) m_dirtyX0 = x0; if (x1 > m_dirtyX1) m_dirtyX1 = x1; if (y0 < m_dirtyY0) m_dirtyY0 = y0; if (y1 > m_dirtyY1) m_dirtyY1 = y1; m_dirty = true; } void cOSDTexture::SetPalette(int numColors, uint32_t *colors) { m_numColors = numColors; for (int i=0; i> 16) | ((colors[i] & 0x0000FF00)) | ((colors[i] & 0x000000FF) << 16); } } void cOSDTexture::GetSize(int &width, int &height) { width = m_x1 - m_x0 + 1; height = m_y1 - m_y0 + 1; } bool cOSDTexture::IsDirty(int &x0, int &y0, int &x1, int &y1) { bool ret = m_dirty; x0 = m_dirtyX0; x1 = m_dirtyX1; y0 = m_dirtyY0; y1 = m_dirtyY1; m_dirty = false; return ret; } //----------------------------------------------------------------------------- #define MAX_TEXTURES 16 class cOSDRender { public: cOSDRender(); virtual ~cOSDRender(); void SetOSDSize(int width, int height) {m_osdWidth = width; m_osdHeight = height;}; void SetControlSize(int width, int height) {m_controlWidth = width; m_controlHeight = height;}; void AddTexture(int wndId, int bpp, int x0, int y0, int x1, int y1, int reset); void SetPalette(int wndId, int numColors, uint32_t *colors); void SetBlock(int wndId, int x0, int y0, int x1, int y1, int stride, void *data, int len); void Clear(int wndId); virtual void DisposeTexture(int wndId); virtual void FreeResources(); virtual void Render() {}; virtual void SetDevice(void *device) {}; virtual bool Init() { return true; }; protected: cOSDTexture *m_osdTextures[MAX_TEXTURES]; std::queue m_disposedTextures; int m_osdWidth, m_osdHeight; int m_controlWidth, m_controlHeight; }; cOSDRender::cOSDRender() { for (int i = 0; i < MAX_TEXTURES; i++) m_osdTextures[i] = 0; } cOSDRender::~cOSDRender() { for (int i = 0; i < MAX_TEXTURES; i++) { DisposeTexture(i); } FreeResources(); } void cOSDRender::DisposeTexture(int wndId) { if (m_osdTextures[wndId]) { m_disposedTextures.push(m_osdTextures[wndId]); m_osdTextures[wndId] = 0; } } void cOSDRender::FreeResources() { while (!m_disposedTextures.empty()) { delete m_disposedTextures.front(); m_disposedTextures.pop(); } } void cOSDRender::AddTexture(int wndId, int bpp, int x0, int y0, int x1, int y1, int reset) { if (reset) DisposeTexture(wndId); if (!m_osdTextures[wndId]) m_osdTextures[wndId] = new cOSDTexture(bpp, x0, y0, x1, y1); } void cOSDRender::Clear(int wndId) { if (m_osdTextures[wndId]) m_osdTextures[wndId]->Clear(); } void cOSDRender::SetPalette(int wndId, int numColors, uint32_t *colors) { if (m_osdTextures[wndId]) m_osdTextures[wndId]->SetPalette(numColors, colors); } void cOSDRender::SetBlock(int wndId, int x0, int y0, int x1, int y1, int stride, void *data, int len) { if (m_osdTextures[wndId]) m_osdTextures[wndId]->SetBlock(x0, y0, x1, y1, stride, data, len); } #if defined(HAVE_GL) || defined(HAVE_GLES2) class cOSDRenderGL : public cOSDRender { public: cOSDRenderGL(); virtual ~cOSDRenderGL(); virtual void DisposeTexture(int wndId); virtual void FreeResources(); virtual void Render(); virtual bool Init(); protected: GLuint m_hwTextures[MAX_TEXTURES]; std::queue m_disposedHwTextures; }; cOSDRenderGL::cOSDRenderGL() { for (int i = 0; i < MAX_TEXTURES; i++) m_hwTextures[i] = 0; } cOSDRenderGL::~cOSDRenderGL() { for (int i = 0; i < MAX_TEXTURES; i++) { DisposeTexture(i); } FreeResources(); #if defined(HAVE_GLES2) if (vis_shader) { delete vis_shader; vis_shader = NULL; } #endif } bool cOSDRenderGL::Init() { #if defined(HAVE_GLES2) vis_shader = new CVisGUIShader(vert, frag); if(!vis_shader) return false; if(!vis_shader->CompileAndLink()) { delete vis_shader; return false; } #endif return true; } void cOSDRenderGL::DisposeTexture(int wndId) { if (m_hwTextures[wndId]) { m_disposedHwTextures.push(m_hwTextures[wndId]); m_hwTextures[wndId] = 0; } cOSDRender::DisposeTexture(wndId); } void cOSDRenderGL::FreeResources() { while (!m_disposedHwTextures.empty()) { if (glIsTexture(m_disposedHwTextures.front())) { glFinish(); glDeleteTextures(1, &m_disposedHwTextures.front()); m_disposedHwTextures.pop(); } } cOSDRender::FreeResources(); } void cOSDRenderGL::Render() { glMatrixMode (GL_MODELVIEW); glPushMatrix (); glLoadIdentity (); glMatrixMode (GL_PROJECTION); glPushMatrix (); glLoadIdentity (); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); #if defined(HAVE_GL) glColor4f(1.0f, 1.0f, 1.0f, 0.75f); #endif for (int i = 0; i < MAX_TEXTURES; i++) { int width, height, offsetX, offsetY; int x0,x1,y0,y1; bool dirty; if (m_osdTextures[i] == 0) continue; m_osdTextures[i]->GetSize(width, height); m_osdTextures[i]->GetOrigin(offsetX, offsetY); dirty = m_osdTextures[i]->IsDirty(x0,y0,x1,y1); // create gl texture if (dirty && !glIsTexture(m_hwTextures[i])) { #if defined(HAVE_GL) glPushClientAttrib(GL_CLIENT_PIXEL_STORE_BIT); #endif glEnable(GL_TEXTURE_2D); glGenTextures(1, &m_hwTextures[i]); glBindTexture(GL_TEXTURE_2D, m_hwTextures[i]); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); glPixelStorei(GL_UNPACK_ALIGNMENT, 1); glPixelStorei(GL_UNPACK_ROW_LENGTH, width); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, m_osdTextures[i]->GetBuffer()); #if defined(HAVE_GL) glPopClientAttrib(); #endif } // update texture else if (dirty) { #if defined(HAVE_GL) glPushClientAttrib(GL_CLIENT_PIXEL_STORE_BIT); #endif glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, m_hwTextures[i]); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); glPixelStorei(GL_UNPACK_ALIGNMENT, 1); glPixelStorei(GL_UNPACK_ROW_LENGTH, width); glPixelStorei(GL_UNPACK_SKIP_PIXELS, x0); glPixelStorei(GL_UNPACK_SKIP_ROWS, y0); glTexSubImage2D(GL_TEXTURE_2D, 0, x0, y0, x1-x0+1, y1-y0+1, GL_RGBA, GL_UNSIGNED_BYTE, m_osdTextures[i]->GetBuffer()); #if defined(HAVE_GL) glPopClientAttrib(); #endif } // render texture // calculate ndc for OSD texture float destX0 = (float)offsetX*2/m_osdWidth -1; float destX1 = (float)(offsetX+width)*2/m_osdWidth -1; float destY0 = (float)offsetY*2/m_osdHeight -1; float destY1 = (float)(offsetY+height)*2/m_osdHeight -1; float aspectControl = (float)m_controlWidth/m_controlHeight; float aspectOSD = (float)m_osdWidth/m_osdHeight; if (aspectOSD > aspectControl) { destY0 *= aspectControl/aspectOSD; destY1 *= aspectControl/aspectOSD; } else if (aspectOSD < aspectControl) { destX0 *= aspectOSD/aspectControl; destX1 *= aspectOSD/aspectControl; } // y inveted destY0 *= -1; destY1 *= -1; glEnable(GL_TEXTURE_2D); glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, m_hwTextures[i]); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); #if defined(HAVE_GL) glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); glBegin(GL_QUADS); glTexCoord2f(0.0, 0.0); glVertex2f(destX0, destY0); glTexCoord2f(1.0, 0.0); glVertex2f(destX1, destY0); glTexCoord2f(1.0, 1.0); glVertex2f(destX1, destY1); glTexCoord2f(0.0, 1.0); glVertex2f(destX0, destY1); glEnd(); #elif defined(HAVE_GLES2) GLubyte idx[4] = {0, 1, 3, 2}; //determines order of triangle strip GLfloat ver[4][4]; GLfloat tex[4][2]; float col[4][3]; for (int index = 0;index < 4;++index) { col[index][0] = col[index][1] = col[index][2] = 1.0; } glBegin(); GLint posLoc = vis_shader->GetPosLoc(); GLint texLoc = vis_shader->GetCord0Loc(); GLint colLoc = vis_shader->GetColLoc(); glVertexAttribPointer(posLoc, 4, GL_FLOAT, 0, 0, ver); glVertexAttribPointer(texLoc, 2, GL_FLOAT, 0, 0, tex); glVertexAttribPointer(colLoc, 3, GL_FLOAT, 0, 0, col); glEnableVertexAttribArray(posLoc); glEnableVertexAttribArray(texLoc); glEnableVertexAttribArray(colLoc); // Set vertex coordinates for(int i = 0; i < 4; i++) { ver[i][2] = 0.0f;// set z to 0 ver[i][3] = 1.0f; } ver[0][0] = ver[3][0] = destX0; ver[0][1] = ver[1][1] = destY0; ver[1][0] = ver[2][0] = destX1; ver[2][1] = ver[3][1] = destY1; // Set texture coordinates tex[0][0] = tex[3][0] = 0; tex[0][1] = tex[1][1] = 0; tex[1][0] = tex[2][0] = 1; tex[2][1] = tex[3][1] = 1; glDrawElements(GL_TRIANGLE_STRIP, 4, GL_UNSIGNED_BYTE, idx); glDisableVertexAttribArray(posLoc); glDisableVertexAttribArray(texLoc); glDisableVertexAttribArray(colLoc); glEnd(); #endif glBindTexture (GL_TEXTURE_2D, 0); glDisable(GL_TEXTURE_2D); } glPopMatrix(); glMatrixMode(GL_MODELVIEW); glPopMatrix(); } #endif #if defined(HAS_DX) class cOSDRenderDX : public cOSDRender { public: cOSDRenderDX(); virtual ~cOSDRenderDX(); virtual void DisposeTexture(int wndId); virtual void FreeResources(); virtual void Render(); virtual void SetDevice(void *device) { m_device = (LPDIRECT3DDEVICE9)device; }; protected: LPDIRECT3DDEVICE9 m_device; LPDIRECT3DTEXTURE9 m_hwTextures[MAX_TEXTURES]; std::queue m_disposedHwTextures; }; cOSDRenderDX::cOSDRenderDX() { for (int i = 0; i < MAX_TEXTURES; i++) m_hwTextures[i] = 0; } cOSDRenderDX::~cOSDRenderDX() { for (int i = 0; i < MAX_TEXTURES; i++) { DisposeTexture(i); } FreeResources(); } void cOSDRenderDX::DisposeTexture(int wndId) { if (m_hwTextures[wndId]) { m_disposedHwTextures.push(m_hwTextures[wndId]); m_hwTextures[wndId] = 0; } cOSDRender::DisposeTexture(wndId); } void cOSDRenderDX::FreeResources() { while (!m_disposedHwTextures.empty()) { if (m_disposedHwTextures.front()) { m_disposedHwTextures.front()->Release(); m_disposedHwTextures.pop(); } } cOSDRender::FreeResources(); } void cOSDRenderDX::Render() { m_device->Clear(0, NULL, D3DCLEAR_ZBUFFER, D3DXCOLOR(0.0f, 0.0f, 0.0f, 0.0f), 1.0f, 0); D3DXMATRIX matProjection; D3DXMatrixIdentity(&matProjection); m_device->SetTransform(D3DTS_PROJECTION, &matProjection); D3DXMATRIX matView; D3DXMatrixIdentity(&matView); m_device->SetTransform(D3DTS_VIEW, &matView); D3DXMATRIX matWorld; D3DXMatrixIdentity(&matWorld); m_device->SetTransform(D3DTS_WORLD, &matWorld); for (int i = 0; i < MAX_TEXTURES; i++) { int width, height, offsetX, offsetY; int x0,x1,y0,y1; bool dirty; if (m_osdTextures[i] == 0) continue; m_osdTextures[i]->GetSize(width, height); m_osdTextures[i]->GetOrigin(offsetX, offsetY); dirty = m_osdTextures[i]->IsDirty(x0,y0,x1,y1); // create texture if (dirty && !m_hwTextures[i]) { HRESULT hr = m_device->CreateTexture(width, height, 1, D3DUSAGE_DYNAMIC, D3DFMT_A8R8G8B8, D3DPOOL_DEFAULT, &m_hwTextures[i], NULL); if (hr != D3D_OK) { XBMC->Log(LOG_ERROR,"%s - failed to create texture", __FUNCTION__); continue; } } // update texture if (dirty) { D3DLOCKED_RECT lockedRect; RECT dirtyRect; dirtyRect.bottom = y1; dirtyRect.left = x0; dirtyRect.top = y0; dirtyRect.right = x1; HRESULT hr = m_hwTextures[i]->LockRect(0, &lockedRect, &dirtyRect, 0); if (hr != D3D_OK) { XBMC->Log(LOG_ERROR,"%s - failed to lock texture", __FUNCTION__); continue; } uint8_t *source = (uint8_t*)m_osdTextures[i]->GetBuffer(); uint8_t *dest = (uint8_t*)lockedRect.pBits; for(int y=y0; y<=y1; y++) { for(int x=x0; x<=x1; x++) { dest[y*lockedRect.Pitch+x*4] = source[y*width*4+x*4+2]; // blue dest[y*lockedRect.Pitch+x*4+1] = source[y*width*4+x*4+1]; // green dest[y*lockedRect.Pitch+x*4+2] = source[y*width*4+x*4]; // red dest[y*lockedRect.Pitch+x*4+3] = source[y*width*4+x*4+3]; // alpha } } m_hwTextures[i]->UnlockRect(0); if (hr != D3D_OK) { XBMC->Log(LOG_ERROR,"%s - failed to unlock texture", __FUNCTION__); continue; } } // render texture // calculate ndc for OSD texture float destX0 = (float)offsetX*2/m_osdWidth -1; float destX1 = (float)(offsetX+width)*2/m_osdWidth -1; float destY0 = (float)offsetY*2/m_osdHeight -1; float destY1 = (float)(offsetY+height)*2/m_osdHeight -1; float aspectControl = (float)m_controlWidth/m_controlHeight; float aspectOSD = (float)m_osdWidth/m_osdHeight; if (aspectOSD > aspectControl) { destY0 *= aspectControl/aspectOSD; destY1 *= aspectControl/aspectOSD; } else if (aspectOSD < aspectControl) { destX0 *= aspectOSD/aspectControl; destX1 *= aspectOSD/aspectControl; } // y inveted destY0 *= -1; destY1 *= -1; struct VERTEX { FLOAT x,y,z; DWORD color; FLOAT tu, tv; }; VERTEX vertex[] = { { destX0, destY0, 0.0f, 0xffffffff, 0.0f, 0.0f }, { destX0, destY1, 0.0f, 0xffffffff, 0.0f, 1.0f }, { destX1, destY1, 0.0f, 0xffffffff, 1.0f, 1.0f }, { destX1, destY0, 0.0f, 0xffffffff, 1.0f, 0.0f }, }; m_device->SetTexture(0, m_hwTextures[i]); HRESULT hr; hr = m_device->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_SELECTARG1 ); hr = m_device->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE ); hr = m_device->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1 ); hr = m_device->SetTextureStageState( 0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE ); hr = m_device->SetTextureStageState( 1, D3DTSS_COLOROP, D3DTOP_DISABLE ); hr = m_device->SetTextureStageState( 1, D3DTSS_ALPHAOP, D3DTOP_DISABLE ); hr = m_device->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE); hr = m_device->SetRenderState(D3DRS_LIGHTING, FALSE); hr = m_device->SetRenderState(D3DRS_ZENABLE, FALSE); hr = m_device->SetRenderState(D3DRS_STENCILENABLE, FALSE); hr = m_device->SetRenderState(D3DRS_ALPHABLENDENABLE, FALSE); hr = m_device->SetRenderState(D3DRS_ALPHATESTENABLE, FALSE); hr = m_device->SetRenderState(D3DRS_SCISSORTESTENABLE, FALSE); hr = m_device->SetRenderState(D3DRS_COLORWRITEENABLE, D3DCOLORWRITEENABLE_ALPHA|D3DCOLORWRITEENABLE_BLUE|D3DCOLORWRITEENABLE_GREEN|D3DCOLORWRITEENABLE_RED); hr = m_device->SetSamplerState(0, D3DSAMP_ADDRESSU, D3DTADDRESS_CLAMP); hr = m_device->SetSamplerState(0, D3DSAMP_ADDRESSV, D3DTADDRESS_CLAMP); hr = m_device->SetPixelShader(NULL); hr = m_device->SetFVF(D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_TEX1); hr = m_device->DrawPrimitiveUP(D3DPT_TRIANGLEFAN, 2, vertex, sizeof(VERTEX)); if (hr != D3D_OK) { XBMC->Log(LOG_ERROR,"%s - failed to render texture", __FUNCTION__); } m_device->SetTexture(0, NULL); } } #endif //----------------------------------------------------------------------------- cVNSIAdmin::cVNSIAdmin() { } cVNSIAdmin::~cVNSIAdmin() { } bool cVNSIAdmin::Open(const std::string& hostname, int port, const char* name) { if(!cVNSIData::Open(hostname, port, name)) return false; if(!cVNSIData::Login()) return false; m_bIsOsdControl = false; #if defined(HAVE_GL) || defined(HAVE_GLES2) m_osdRender = new cOSDRenderGL(); #elif defined(HAS_DX) m_osdRender = new cOSDRenderDX(); #else m_osdRender = new cOSDRender(); #endif if(!m_osdRender->Init()) { delete m_osdRender; return false; } if (!ConnectOSD()) return false; // Load the Window as Dialog m_window = GUI->Window_create("Admin.xml", "skin.confluence", false, true); m_window->m_cbhdl = this; m_window->CBOnInit = OnInitCB; m_window->CBOnFocus = OnFocusCB; m_window->CBOnClick = OnClickCB; m_window->CBOnAction= OnActionCB; m_window->DoModal(); ClearListItems(); m_window->ClearProperties(); #if defined(KODI_GUILIB_API_VERSION) GUI->Control_releaseRendering(m_renderControl); #endif GUI->Control_releaseSpin(m_spinTimeshiftMode); GUI->Control_releaseSpin(m_spinTimeshiftBufferRam); GUI->Control_releaseSpin(m_spinTimeshiftBufferFile); GUI->Control_releaseRadioButton(m_ratioIsRadio); GUI->Window_destroy(m_window); StopThread(); Close(); if (m_osdRender) { delete m_osdRender; } return true; } bool cVNSIAdmin::OnClick(int controlId) { if (controlId == CONTROL_SPIN_TIMESHIFT_MODE) { int value = m_spinTimeshiftMode->GetValue(); cRequestPacket vrp; if (!vrp.init(VNSI_STORESETUP) || !vrp.add_String(CONFNAME_TIMESHIFT) || !vrp.add_U32(value) || ReadSuccess(&vrp)) { XBMC->Log(LOG_ERROR, "%s - failed to set timeshift mode", __FUNCTION__); } return true; } else if (controlId == CONTROL_SPIN_TIMESHIFT_BUFFER_RAM) { int value = m_spinTimeshiftBufferRam->GetValue(); cRequestPacket vrp; if (!vrp.init(VNSI_STORESETUP) || !vrp.add_String(CONFNAME_TIMESHIFTBUFFERSIZE) || !vrp.add_U32(value) || ReadSuccess(&vrp)) { XBMC->Log(LOG_ERROR, "%s - failed to set timeshift buffer", __FUNCTION__); } return true; } else if (controlId == CONTROL_SPIN_TIMESHIFT_BUFFER_FILE) { int value = m_spinTimeshiftBufferFile->GetValue(); cRequestPacket vrp; if (!vrp.init(VNSI_STORESETUP) || !vrp.add_String(CONFNAME_TIMESHIFTBUFFERFILESIZE) || !vrp.add_U32(value) || ReadSuccess(&vrp)) { XBMC->Log(LOG_ERROR, "%s - failed to set timeshift buffer file", __FUNCTION__); } return true; } else if (controlId == CONTROL_PROVIDERS_BUTTON) { if(!m_channels.m_loaded || m_ratioIsRadio->IsSelected() != m_channels.m_radio) { ReadChannelList(m_ratioIsRadio->IsSelected()); ReadChannelWhitelist(m_ratioIsRadio->IsSelected()); ReadChannelBlacklist(m_ratioIsRadio->IsSelected()); m_channels.CreateProviders(); m_channels.LoadProviderWhitelist(); m_channels.LoadChannelBlacklist(); m_channels.m_loaded = true; m_channels.m_radio = m_ratioIsRadio->IsSelected(); m_window->SetProperty("IsDirty", "0"); } LoadListItemsProviders(); m_channels.m_mode = CVNSIChannels::PROVIDER; } else if (controlId == CONTROL_CHANNELS_BUTTON) { if(!m_channels.m_loaded || m_ratioIsRadio->IsSelected() != m_channels.m_radio) { ReadChannelList(m_ratioIsRadio->IsSelected()); ReadChannelWhitelist(m_ratioIsRadio->IsSelected()); ReadChannelBlacklist(m_ratioIsRadio->IsSelected()); m_channels.CreateProviders(); m_channels.LoadProviderWhitelist(); m_channels.LoadChannelBlacklist(); m_channels.m_loaded = true; m_channels.m_radio = m_ratioIsRadio->IsSelected(); m_window->SetProperty("IsDirty", "0"); } LoadListItemsChannels(); m_channels.m_mode = CVNSIChannels::CHANNEL; } else if (controlId == CONTROL_FILTERSAVE_BUTTON) { if(m_channels.m_loaded) { SaveChannelWhitelist(m_ratioIsRadio->IsSelected()); SaveChannelBlacklist(m_ratioIsRadio->IsSelected()); m_window->SetProperty("IsDirty", "0"); } } else if (controlId == CONTROL_ITEM_LIST) { if(m_channels.m_mode == CVNSIChannels::PROVIDER) { int pos = m_window->GetCurrentListPosition(); GUIHANDLE hdl = m_window->GetListItem(pos); int idx = m_listItemsMap[hdl]; CAddonListItem *item = m_listItems[idx]; if (m_channels.m_providers[idx].m_whitelist) { item->SetProperty("IsWhitelist", "false"); m_channels.m_providers[idx].m_whitelist = false; } else { item->SetProperty("IsWhitelist", "true"); m_channels.m_providers[idx].m_whitelist = true; } m_window->SetProperty("IsDirty", "1"); } else if(m_channels.m_mode == CVNSIChannels::CHANNEL) { int pos = m_window->GetCurrentListPosition(); GUIHANDLE hdl = m_window->GetListItem(pos); int idx = m_listItemsMap[hdl]; CAddonListItem *item = m_listItems[idx]; int channelidx = m_listItemsChannelsMap[hdl]; if (m_channels.m_channels[channelidx].m_blacklist) { item->SetProperty("IsBlacklist", "false"); m_channels.m_channels[channelidx].m_blacklist = false; } else { item->SetProperty("IsBlacklist", "true"); m_channels.m_channels[channelidx].m_blacklist = true; } m_window->SetProperty("IsDirty", "1"); } } return false; } bool cVNSIAdmin::OnFocus(int controlId) { #if defined(KODI_GUILIB_API_VERSION) if (controlId == CONTROL_OSD_BUTTON) { m_window->SetControlLabel(CONTROL_OSD_BUTTON, XBMC->GetLocalizedString(30102)); m_window->MarkDirtyRegion(); m_bIsOsdControl = true; return true; } else if (m_bIsOsdControl) { m_window->SetControlLabel(CONTROL_OSD_BUTTON, XBMC->GetLocalizedString(30103)); m_window->MarkDirtyRegion(); m_bIsOsdControl = false; return true; } #endif return false; } bool cVNSIAdmin::OnInit() { #if defined(KODI_GUILIB_API_VERSION) m_renderControl = GUI->Control_getRendering(m_window, CONTROL_RENDER_ADDON); m_renderControl->m_cbhdl = this; m_renderControl->CBCreate = CreateCB; m_renderControl->CBRender = RenderCB; m_renderControl->CBStop = StopCB; m_renderControl->CBDirty = DirtyCB; m_renderControl->Init(); cRequestPacket vrp; if (!vrp.init(VNSI_OSD_HITKEY)) { XBMC->Log(LOG_ERROR, "%s - Can't init cRequestPacket", __FUNCTION__); return false; } vrp.add_U32(0); cVNSISession::TransmitMessage(&vrp); #endif // setup parameters m_spinTimeshiftMode = GUI->Control_getSpin(m_window, CONTROL_SPIN_TIMESHIFT_MODE); m_spinTimeshiftMode->Clear(); m_spinTimeshiftMode->AddLabel("OFF", 0); m_spinTimeshiftMode->AddLabel("RAM", 1); m_spinTimeshiftMode->AddLabel("FILE", 2); { cRequestPacket vrp; if (!vrp.init(VNSI_GETSETUP) || !vrp.add_String(CONFNAME_TIMESHIFT)) { XBMC->Log(LOG_ERROR, "%s - failed to get timeshift mode", __FUNCTION__); return false; } cResponsePacket *resp = ReadResult(&vrp); if (!resp) { XBMC->Log(LOG_ERROR, "%s - failed to get timeshift mode", __FUNCTION__); return false; } int mode = resp->extract_U32(); m_spinTimeshiftMode->SetValue(mode); delete resp; } m_spinTimeshiftBufferRam = GUI->Control_getSpin(m_window, CONTROL_SPIN_TIMESHIFT_BUFFER_RAM); m_spinTimeshiftBufferRam->Clear(); char buffer[8]; for (int i = 1; i <= 80; i++) { sprintf(buffer, "%d", i); m_spinTimeshiftBufferRam->AddLabel(buffer, i); } { cRequestPacket vrp; if (!vrp.init(VNSI_GETSETUP) || !vrp.add_String(CONFNAME_TIMESHIFTBUFFERSIZE)) { XBMC->Log(LOG_ERROR, "%s - failed to get timeshift buffer size", __FUNCTION__); return false; } cResponsePacket *resp = ReadResult(&vrp); if (!resp) { XBMC->Log(LOG_ERROR, "%s - failed to get timeshift buffer size", __FUNCTION__); return false; } int mode = resp->extract_U32(); m_spinTimeshiftBufferRam->SetValue(mode); delete resp; } m_spinTimeshiftBufferFile = GUI->Control_getSpin(m_window, CONTROL_SPIN_TIMESHIFT_BUFFER_FILE); m_spinTimeshiftBufferFile->Clear(); for (int i = 1; i <= 20; i++) { sprintf(buffer, "%d", i); m_spinTimeshiftBufferFile->AddLabel(buffer, i); } { cRequestPacket vrp; if (!vrp.init(VNSI_GETSETUP) || !vrp.add_String(CONFNAME_TIMESHIFTBUFFERFILESIZE)) { XBMC->Log(LOG_ERROR, "%s - failed to get timeshift buffer (file) size", __FUNCTION__); return false; } cResponsePacket *resp = ReadResult(&vrp); if (!resp) { XBMC->Log(LOG_ERROR, "%s - failed to get timeshift buffer (file) size", __FUNCTION__); return false; } int mode = resp->extract_U32(); m_spinTimeshiftBufferFile->SetValue(mode); delete resp; } // channel filters m_ratioIsRadio = GUI->Control_getRadioButton(m_window, CONTROL_RADIO_ISRADIO); return true; } bool cVNSIAdmin::OnAction(int actionId) { if (m_window->GetFocusId() != CONTROL_OSD_BUTTON && m_bIsOsdControl) { m_bIsOsdControl = false; m_window->SetControlLabel(CONTROL_OSD_BUTTON, XBMC->GetLocalizedString(30103)); #if defined(KODI_GUILIB_API_VERSION) m_window->MarkDirtyRegion(); #endif } else if (m_window->GetFocusId() == CONTROL_OSD_BUTTON) { if (actionId == ACTION_SHOW_INFO) { m_window->SetFocusId(CONTROL_MENU); return true; } else if(IsVdrAction(actionId)) { // send all actions to vdr cRequestPacket vrp; if (!vrp.init(VNSI_OSD_HITKEY)) { XBMC->Log(LOG_ERROR, "%s - Can't init cRequestPacket", __FUNCTION__); return false; } vrp.add_U32(actionId); cVNSISession::TransmitMessage(&vrp); return true; } } if (actionId == ADDON_ACTION_CLOSE_DIALOG || actionId == ADDON_ACTION_PREVIOUS_MENU || actionId == ACTION_NAV_BACK) { m_window->Close(); return true; } if (actionId == ACTION_SELECT_ITEM) { if (m_window->GetFocusId() == CONTROL_MENU) { const char *tmp = m_window->GetProperty("menu"); //if (strncmp(m_window->GetProperty("menu"), "osd", 3) == 0) if (strncmp(tmp, "osd", 3) == 0) { #if defined(KODI_GUILIB_API_VERSION) m_window->MarkDirtyRegion(); #endif } } } return false; } bool cVNSIAdmin::IsVdrAction(int action) { if (action == ACTION_MOVE_LEFT || action == ACTION_MOVE_RIGHT || action == ACTION_MOVE_UP || action == ACTION_MOVE_DOWN || action == ACTION_SELECT_ITEM || action == ACTION_PREVIOUS_MENU || action == REMOTE_0 || action == REMOTE_1 || action == REMOTE_2 || action == REMOTE_3 || action == REMOTE_4 || action == REMOTE_5 || action == REMOTE_6 || action == REMOTE_7 || action == REMOTE_8 || action == REMOTE_9 || action == ACTION_NAV_BACK || action == ACTION_TELETEXT_RED || action == ACTION_TELETEXT_GREEN || action == ACTION_TELETEXT_YELLOW || action == ACTION_TELETEXT_BLUE) return true; else return false; } bool cVNSIAdmin::Create(int x, int y, int w, int h, void* device) { if (m_osdRender) { m_osdRender->SetControlSize(w,h); m_osdRender->SetDevice(device); } return true; } void cVNSIAdmin::Render() { m_osdMutex.Lock(); if (m_osdRender) { m_osdRender->Render(); m_osdRender->FreeResources(); } m_bIsOsdDirty = false; m_osdMutex.Unlock(); } void cVNSIAdmin::Stop() { m_osdMutex.Lock(); if (m_osdRender) { delete m_osdRender; m_osdRender = NULL; } m_osdMutex.Unlock(); } bool cVNSIAdmin::Dirty() { return m_bIsOsdDirty; } bool cVNSIAdmin::OnInitCB(GUIHANDLE cbhdl) { cVNSIAdmin* osd = static_cast(cbhdl); return osd->OnInit(); } bool cVNSIAdmin::OnClickCB(GUIHANDLE cbhdl, int controlId) { cVNSIAdmin* osd = static_cast(cbhdl); return osd->OnClick(controlId); } bool cVNSIAdmin::OnFocusCB(GUIHANDLE cbhdl, int controlId) { cVNSIAdmin* osd = static_cast(cbhdl); return osd->OnFocus(controlId); } bool cVNSIAdmin::OnActionCB(GUIHANDLE cbhdl, int actionId) { cVNSIAdmin* osd = static_cast(cbhdl); return osd->OnAction(actionId); } bool cVNSIAdmin::CreateCB(GUIHANDLE cbhdl, int x, int y, int w, int h, void *device) { cVNSIAdmin* osd = static_cast(cbhdl); return osd->Create(x, y, w, h, device); } void cVNSIAdmin::RenderCB(GUIHANDLE cbhdl) { cVNSIAdmin* osd = static_cast(cbhdl); osd->Render(); } void cVNSIAdmin::StopCB(GUIHANDLE cbhdl) { cVNSIAdmin* osd = static_cast(cbhdl); osd->Stop(); } bool cVNSIAdmin::DirtyCB(GUIHANDLE cbhdl) { cVNSIAdmin* osd = static_cast(cbhdl); return osd->Dirty(); } bool cVNSIAdmin::OnResponsePacket(cResponsePacket* resp) { if (resp->getChannelID() == VNSI_CHANNEL_OSD) { uint32_t wnd, color, x0, y0, x1, y1, len; uint8_t *data; resp->getOSDData(wnd, color, x0, y0, x1, y1); if (wnd >= MAX_TEXTURES) { XBMC->Log(LOG_ERROR, "cVNSIAdmin::OnResponsePacket - invalid wndId: %s", wnd); return true; } if (resp->getOpCodeID() == VNSI_OSD_OPEN) { data = resp->getUserData(); len = resp->getUserDataLength(); m_osdMutex.Lock(); if (m_osdRender) m_osdRender->AddTexture(wnd, color, x0, y0, x1, y1, data[0]); m_osdMutex.Unlock(); free(data); } else if (resp->getOpCodeID() == VNSI_OSD_SETPALETTE) { data = resp->getUserData(); len = resp->getUserDataLength(); m_osdMutex.Lock(); if (m_osdRender) m_osdRender->SetPalette(wnd, x0, (uint32_t*)data); m_osdMutex.Unlock(); free(data); } else if (resp->getOpCodeID() == VNSI_OSD_SETBLOCK) { data = resp->getUserData(); len = resp->getUserDataLength(); m_osdMutex.Lock(); if (m_osdRender) { m_osdRender->SetBlock(wnd, x0, y0, x1, y1, color, data, len); m_bIsOsdDirty = true; } m_osdMutex.Unlock(); free(data); } else if (resp->getOpCodeID() == VNSI_OSD_CLEAR) { m_osdMutex.Lock(); if (m_osdRender) m_osdRender->Clear(wnd); m_bIsOsdDirty = true; m_osdMutex.Unlock(); } else if (resp->getOpCodeID() == VNSI_OSD_CLOSE) { m_osdMutex.Lock(); if (m_osdRender) m_osdRender->DisposeTexture(wnd); m_bIsOsdDirty = true; m_osdMutex.Unlock(); m_window->SetFocusId(CONTROL_MENU); } else if (resp->getOpCodeID() == VNSI_OSD_MOVEWINDOW) { } else return false; } else return false; return true; } bool cVNSIAdmin::ConnectOSD() { cRequestPacket vrp; if (!vrp.init(VNSI_OSD_CONNECT)) return false; cResponsePacket* vresp = ReadResult(&vrp); if (vresp == NULL || vresp->noResponse()) { delete vresp; return false; } uint32_t osdWidth = vresp->extract_U32(); uint32_t osdHeight = vresp->extract_U32(); if (m_osdRender) m_osdRender->SetOSDSize(osdWidth, osdHeight); delete vresp; return true; } bool cVNSIAdmin::ReadChannelList(bool radio) { cRequestPacket vrp; if (!vrp.init(VNSI_CHANNELS_GETCHANNELS)) { XBMC->Log(LOG_ERROR, "%s - Can't init cRequestPacket", __FUNCTION__); return false; } if (!vrp.add_U32(radio)) { XBMC->Log(LOG_ERROR, "%s - Can't add parameter to cRequestPacket", __FUNCTION__); return false; } if (!vrp.add_U8(0)) // apply no filter { XBMC->Log(LOG_ERROR, "%s - Can't add parameter to cRequestPacket", __FUNCTION__); return false; } cResponsePacket* vresp = ReadResult(&vrp); if (!vresp) { XBMC->Log(LOG_ERROR, "%s - Can't get response packed", __FUNCTION__); return false; } m_channels.m_channels.clear(); m_channels.m_channelsMap.clear(); while (!vresp->end()) { CChannel channel; channel.m_blacklist = false; channel.m_number = vresp->extract_U32(); char *strChannelName = vresp->extract_String(); channel.m_name = strChannelName; char *strProviderName = vresp->extract_String(); channel.m_provider = strProviderName; channel.m_id = vresp->extract_U32(); vresp->extract_U32(); // first caid char *strCaids = vresp->extract_String(); channel.SetCaids(strCaids); if (m_protocol >= 6) { std::string ref = vresp->extract_String(); } channel.m_radio = radio; delete[] strChannelName; delete[] strProviderName; delete[] strCaids; m_channels.m_channels.push_back(channel); m_channels.m_channelsMap[channel.m_id] = m_channels.m_channels.size() - 1; } delete vresp; return true; } bool cVNSIAdmin::ReadChannelWhitelist(bool radio) { cRequestPacket vrp; if (!vrp.init(VNSI_CHANNELS_GETWHITELIST)) { XBMC->Log(LOG_ERROR, "%s - Can't init cRequestPacket", __FUNCTION__); return false; } if (!vrp.add_U8(radio)) { XBMC->Log(LOG_ERROR, "%s - Can't add parameter to cRequestPacket", __FUNCTION__); return false; } cResponsePacket* vresp = ReadResult(&vrp); if (!vresp) { XBMC->Log(LOG_ERROR, "%s - Can't get response packed", __FUNCTION__); return false; } m_channels.m_providerWhitelist.clear(); CProvider provider; while (!vresp->end()) { char *strProviderName = vresp->extract_String(); provider.m_name = strProviderName; provider.m_caid = vresp->extract_U32(); m_channels.m_providerWhitelist.push_back(provider); delete [] strProviderName; } delete vresp; return true; } bool cVNSIAdmin::SaveChannelWhitelist(bool radio) { m_channels.ExtractProviderWhitelist(); cRequestPacket vrp; if (!vrp.init(VNSI_CHANNELS_SETWHITELIST)) { XBMC->Log(LOG_ERROR, "%s - Can't init cRequestPacket", __FUNCTION__); return false; } if (!vrp.add_U8(radio)) { XBMC->Log(LOG_ERROR, "%s - Can't add parameter to cRequestPacket", __FUNCTION__); return false; } for(unsigned int i=0; iLog(LOG_ERROR, "%s - Can't get response packed", __FUNCTION__); return false; } return true; } bool cVNSIAdmin::ReadChannelBlacklist(bool radio) { cRequestPacket vrp; if (!vrp.init(VNSI_CHANNELS_GETBLACKLIST)) { XBMC->Log(LOG_ERROR, "%s - Can't init cRequestPacket", __FUNCTION__); return false; } if (!vrp.add_U8(radio)) { XBMC->Log(LOG_ERROR, "%s - Can't add parameter to cRequestPacket", __FUNCTION__); return false; } cResponsePacket* vresp = ReadResult(&vrp); if (!vresp) { XBMC->Log(LOG_ERROR, "%s - Can't get response packed", __FUNCTION__); return false; } m_channels.m_channelBlacklist.clear(); while (!vresp->end()) { int id = vresp->extract_U32(); m_channels.m_channelBlacklist.push_back(id); } delete vresp; return true; } bool cVNSIAdmin::SaveChannelBlacklist(bool radio) { m_channels.ExtractChannelBlacklist(); cRequestPacket vrp; if (!vrp.init(VNSI_CHANNELS_SETBLACKLIST)) { XBMC->Log(LOG_ERROR, "%s - Can't init cRequestPacket", __FUNCTION__); return false; } if (!vrp.add_U8(radio)) { XBMC->Log(LOG_ERROR, "%s - Can't add parameter to cRequestPacket", __FUNCTION__); return false; } for(unsigned int i=0; iLog(LOG_ERROR, "%s - Can't get response packed", __FUNCTION__); return false; } return true; } void cVNSIAdmin::ClearListItems() { m_window->ClearList(); std::vector::iterator it; for(it=m_listItems.begin(); it!=m_listItems.end(); ++it) { GUI->ListItem_destroy(*it); } m_listItems.clear(); m_listItemsMap.clear(); m_listItemsChannelsMap.clear(); } void cVNSIAdmin::LoadListItemsProviders() { ClearListItems(); std::vector::iterator it; int count = 0; for(it=m_channels.m_providers.begin(); it!=m_channels.m_providers.end(); ++it) { std::string tmp; if(!it->m_name.empty()) tmp = it->m_name; else tmp = XBMC->GetLocalizedString(30114); if (it->m_caid == 0) { tmp += " - FTA"; } else { tmp += " - CAID: "; char buf[16]; sprintf(buf, "%04x", it->m_caid); tmp += buf; } CAddonListItem *item = GUI->ListItem_create(tmp.c_str(), NULL, NULL, NULL, NULL); m_window->AddItem(item, count); GUIHANDLE hdl = m_window->GetListItem(count); m_listItems.push_back(item); m_listItemsMap[hdl] = count; if (it->m_whitelist) item->SetProperty("IsWhitelist", "true"); else item->SetProperty("IsWhitelist", "false"); count++; } } void cVNSIAdmin::LoadListItemsChannels() { ClearListItems(); int count = 0; std::string tmp; for(unsigned int i=0; iGetLocalizedString(30114); tmp += ")"; CAddonListItem *item = GUI->ListItem_create(tmp.c_str(), NULL, NULL, NULL, NULL); m_window->AddItem(item, count); GUIHANDLE hdl = m_window->GetListItem(count); m_listItems.push_back(item); m_listItemsMap[hdl] = count; m_listItemsChannelsMap[hdl] = i; if (m_channels.m_channels[i].m_blacklist) item->SetProperty("IsBlacklist", "true"); else item->SetProperty("IsBlacklist", "false"); count++; } } kodi-pvr-vdr-vnsi-1.10.10/src/VNSIAdmin.h000066400000000000000000000053241255226123100176460ustar00rootroot00000000000000#pragma once /* * Copyright (C) 2005-2012 Team XBMC * http://www.xbmc.org * * This Program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This Program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XBMC; see the file COPYING. If not, see * . * */ #include "VNSIData.h" #include "VNSIChannels.h" #include "client.h" class cOSDRender; class cVNSIAdmin : public cVNSIData { public: cVNSIAdmin(); ~cVNSIAdmin(); bool Open(const std::string& hostname, int port, const char* name = "XBMC osd client"); bool OnClick(int controlId); bool OnFocus(int controlId); bool OnInit(); bool OnAction(int actionId); bool Create(int x, int y, int w, int h, void* device); void Render(); void Stop(); bool Dirty(); static bool OnClickCB(GUIHANDLE cbhdl, int controlId); static bool OnFocusCB(GUIHANDLE cbhdl, int controlId); static bool OnInitCB(GUIHANDLE cbhdl); static bool OnActionCB(GUIHANDLE cbhdl, int actionId); static bool CreateCB(GUIHANDLE cbhdl, int x, int y, int w, int h, void *device); static void RenderCB(GUIHANDLE cbhdl); static void StopCB(GUIHANDLE cbhdl); static bool DirtyCB(GUIHANDLE cbhdl); protected: virtual bool OnResponsePacket(cResponsePacket* resp); virtual void OnDisconnect() {}; virtual void OnReconnect() {}; bool ConnectOSD(); bool IsVdrAction(int action); bool ReadChannelList(bool radio); bool ReadChannelWhitelist(bool radio); bool ReadChannelBlacklist(bool radio); bool SaveChannelWhitelist(bool radio); bool SaveChannelBlacklist(bool radio); void ClearListItems(); void LoadListItemsProviders(); void LoadListItemsChannels(); private: CAddonGUIWindow *m_window; #if defined(KODI_GUILIB_API_VERSION) CAddonGUIRenderingControl *m_renderControl; #endif CAddonGUISpinControl *m_spinTimeshiftMode; CAddonGUISpinControl *m_spinTimeshiftBufferRam; CAddonGUISpinControl *m_spinTimeshiftBufferFile; CAddonGUIRadioButton *m_ratioIsRadio; std::vector m_listItems; std::map m_listItemsMap; std::map m_listItemsChannelsMap; CVNSIChannels m_channels; bool m_bIsOsdControl; bool m_bIsOsdDirty; int m_width, m_height; int m_osdWidth, m_osdHeight; cOSDRender *m_osdRender; PLATFORM::CMutex m_osdMutex; }; kodi-pvr-vdr-vnsi-1.10.10/src/VNSIChannelScan.cpp000066400000000000000000000455321255226123100213330ustar00rootroot00000000000000/* * Copyright (C) 2010 Alwin Esch (Team XBMC) * http://www.xbmc.org * * This Program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This Program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XBMC; see the file COPYING. If not, write to * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. * http://www.gnu.org/copyleft/gpl.html * */ #include #include "VNSIChannelScan.h" #include "responsepacket.h" #include "requestpacket.h" #include "vnsicommand.h" #include #define BUTTON_START 5 #define BUTTON_BACK 6 #define BUTTON_CANCEL 7 #define HEADER_LABEL 8 #define SPIN_CONTROL_SOURCE_TYPE 10 #define CONTROL_RADIO_BUTTON_TV 11 #define CONTROL_RADIO_BUTTON_RADIO 12 #define CONTROL_RADIO_BUTTON_FTA 13 #define CONTROL_RADIO_BUTTON_SCRAMBLED 14 #define CONTROL_RADIO_BUTTON_HD 15 #define CONTROL_SPIN_COUNTRIES 16 #define CONTROL_SPIN_SATELLITES 17 #define CONTROL_SPIN_DVBC_INVERSION 18 #define CONTROL_SPIN_DVBC_SYMBOLRATE 29 #define CONTROL_SPIN_DVBC_QAM 20 #define CONTROL_SPIN_DVBT_INVERSION 21 #define CONTROL_SPIN_ATSC_TYPE 22 #define LABEL_TYPE 30 #define LABEL_DEVICE 31 #define PROGRESS_DONE 32 #define LABEL_TRANSPONDER 33 #define LABEL_SIGNAL 34 #define PROGRESS_SIGNAL 35 #define LABEL_STATUS 36 using namespace ADDON; cVNSIChannelScan::cVNSIChannelScan() : m_running(false), m_stopped(false), m_Canceled(false), m_window(NULL), m_spinSourceType(NULL), m_spinCountries(NULL), m_spinSatellites(NULL), m_spinDVBCInversion(NULL), m_spinDVBCSymbolrates(NULL), m_spinDVBCqam(NULL), m_spinDVBTInversion(NULL), m_spinATSCType(NULL), m_radioButtonTV(NULL), m_radioButtonRadio(NULL), m_radioButtonFTA(NULL), m_radioButtonScrambled(NULL), m_radioButtonHD(NULL), m_progressDone(NULL), m_progressSignal(NULL) { } cVNSIChannelScan::~cVNSIChannelScan() { } bool cVNSIChannelScan::Open(const std::string& hostname, int port, const char* name) { m_running = false; m_Canceled = false; m_stopped = true; m_progressDone = NULL; m_progressSignal = NULL; if(!cVNSIData::Open(hostname, port, "XBMC channel scanner")) return false; /* Load the Window as Dialog */ m_window = GUI->Window_create("ChannelScan.xml", "Confluence", false, true); m_window->m_cbhdl = this; m_window->CBOnInit = OnInitCB; m_window->CBOnFocus = OnFocusCB; m_window->CBOnClick = OnClickCB; m_window->CBOnAction= OnActionCB; m_window->DoModal(); GUI->Window_destroy(m_window); Close(); return true; } void cVNSIChannelScan::StartScan() { m_header = XBMC->GetLocalizedString(30025); m_Signal = XBMC->GetLocalizedString(30029); SetProgress(0); SetSignal(0, false); int source = m_spinSourceType->GetValue(); switch (source) { case DVB_TERR: m_window->SetControlLabel(LABEL_TYPE, "DVB-T"); break; case DVB_CABLE: m_window->SetControlLabel(LABEL_TYPE, "DVB-C"); break; case DVB_SAT: m_window->SetControlLabel(LABEL_TYPE, "DVB-S/S2"); break; case PVRINPUT: m_window->SetControlLabel(LABEL_TYPE, XBMC->GetLocalizedString(30032)); break; case PVRINPUT_FM: m_window->SetControlLabel(LABEL_TYPE, XBMC->GetLocalizedString(30033)); break; case DVB_ATSC: m_window->SetControlLabel(LABEL_TYPE, "ATSC"); break; } cRequestPacket vrp; cResponsePacket* vresp = NULL; uint32_t retCode = VNSI_RET_ERROR; if (!vrp.init(VNSI_SCAN_START)) goto SCANError; if (!vrp.add_U32(source)) goto SCANError; if (!vrp.add_U8(m_radioButtonTV->IsSelected())) goto SCANError; if (!vrp.add_U8(m_radioButtonRadio->IsSelected())) goto SCANError; if (!vrp.add_U8(m_radioButtonFTA->IsSelected())) goto SCANError; if (!vrp.add_U8(m_radioButtonScrambled->IsSelected())) goto SCANError; if (!vrp.add_U8(m_radioButtonHD->IsSelected())) goto SCANError; if (!vrp.add_U32(m_spinCountries->GetValue())) goto SCANError; if (!vrp.add_U32(m_spinDVBCInversion->GetValue())) goto SCANError; if (!vrp.add_U32(m_spinDVBCSymbolrates->GetValue())) goto SCANError; if (!vrp.add_U32(m_spinDVBCqam->GetValue())) goto SCANError; if (!vrp.add_U32(m_spinDVBTInversion->GetValue())) goto SCANError; if (!vrp.add_U32(m_spinSatellites->GetValue())) goto SCANError; if (!vrp.add_U32(m_spinATSCType->GetValue())) goto SCANError; vresp = ReadResult(&vrp); if (!vresp) goto SCANError; retCode = vresp->extract_U32(); if (retCode != VNSI_RET_OK) goto SCANError; return; SCANError: XBMC->Log(LOG_ERROR, "%s - Return error after start (%i)", __FUNCTION__, retCode); m_window->SetControlLabel(LABEL_STATUS, XBMC->GetLocalizedString(24071)); m_window->SetControlLabel(BUTTON_START, XBMC->GetLocalizedString(30024)); m_window->SetControlLabel(HEADER_LABEL, XBMC->GetLocalizedString(30043)); m_stopped = true; } void cVNSIChannelScan::StopScan() { cRequestPacket vrp; if (!vrp.init(VNSI_SCAN_STOP)) return; cResponsePacket* vresp = ReadResult(&vrp); if (!vresp) return; uint32_t retCode = vresp->extract_U32(); if (retCode != VNSI_RET_OK) { XBMC->Log(LOG_ERROR, "%s - Return error after stop (%i)", __FUNCTION__, retCode); m_window->SetControlLabel(LABEL_STATUS, XBMC->GetLocalizedString(24071)); m_window->SetControlLabel(BUTTON_START, XBMC->GetLocalizedString(30024)); m_window->SetControlLabel(HEADER_LABEL, XBMC->GetLocalizedString(30043)); m_stopped = true; } return; } void cVNSIChannelScan::ReturnFromProcessView() { if (m_running) { m_running = false; m_window->ClearProperties(); m_window->SetControlLabel(BUTTON_START, XBMC->GetLocalizedString(30010)); m_window->SetControlLabel(HEADER_LABEL, XBMC->GetLocalizedString(30009)); if (m_progressDone) { GUI->Control_releaseProgress(m_progressDone); m_progressDone = NULL; } if (m_progressSignal) { GUI->Control_releaseProgress(m_progressSignal); m_progressSignal = NULL; } } } void cVNSIChannelScan::SetProgress(int percent) { if (!m_progressDone) m_progressDone = GUI->Control_getProgress(m_window, PROGRESS_DONE); std::stringstream header; header << percent; m_window->SetControlLabel(HEADER_LABEL, header.str().c_str()); m_progressDone->SetPercentage((float)percent); } void cVNSIChannelScan::SetSignal(int percent, bool locked) { if (!m_progressSignal) m_progressSignal = GUI->Control_getProgress(m_window, PROGRESS_SIGNAL); std::stringstream signal; signal << percent; m_window->SetControlLabel(LABEL_SIGNAL, signal.str().c_str()); m_progressSignal->SetPercentage((float)percent); if (locked) m_window->SetProperty("Locked", "true"); else m_window->SetProperty("Locked", ""); } bool cVNSIChannelScan::OnClick(int controlId) { if (controlId == SPIN_CONTROL_SOURCE_TYPE) { int value = m_spinSourceType->GetValue(); SetControlsVisible((scantype_t)value); } else if (controlId == BUTTON_BACK) { m_window->Close(); GUI->Control_releaseSpin(m_spinSourceType); GUI->Control_releaseSpin(m_spinCountries); GUI->Control_releaseSpin(m_spinSatellites); GUI->Control_releaseSpin(m_spinDVBCInversion); GUI->Control_releaseSpin(m_spinDVBCSymbolrates); GUI->Control_releaseSpin(m_spinDVBCqam); GUI->Control_releaseSpin(m_spinDVBTInversion); GUI->Control_releaseSpin(m_spinATSCType); GUI->Control_releaseRadioButton(m_radioButtonTV); GUI->Control_releaseRadioButton(m_radioButtonRadio); GUI->Control_releaseRadioButton(m_radioButtonFTA); GUI->Control_releaseRadioButton(m_radioButtonScrambled); GUI->Control_releaseRadioButton(m_radioButtonHD); if (m_progressDone) { GUI->Control_releaseProgress(m_progressDone); m_progressDone = NULL; } if (m_progressSignal) { GUI->Control_releaseProgress(m_progressSignal); m_progressSignal = NULL; } } else if (controlId == BUTTON_START) { if (!m_running) { m_running = true; m_stopped = false; m_Canceled = false; m_window->SetProperty("Scanning", "running"); m_window->SetControlLabel(BUTTON_START, XBMC->GetLocalizedString(222)); StartScan(); } else if (!m_stopped) { m_stopped = true; m_Canceled = true; StopScan(); } else ReturnFromProcessView(); } return true; } bool cVNSIChannelScan::OnFocus(int controlId) { return true; } bool cVNSIChannelScan::OnInit() { m_spinSourceType = GUI->Control_getSpin(m_window, SPIN_CONTROL_SOURCE_TYPE); m_spinSourceType->Clear(); m_spinSourceType->AddLabel("DVB-T", DVB_TERR); m_spinSourceType->AddLabel("DVB-C", DVB_CABLE); m_spinSourceType->AddLabel("DVB-S/S2", DVB_SAT); m_spinSourceType->AddLabel("Analog TV", PVRINPUT); m_spinSourceType->AddLabel("Analog Radio", PVRINPUT_FM); m_spinSourceType->AddLabel("ATSC", DVB_ATSC); m_spinDVBCInversion = GUI->Control_getSpin(m_window, CONTROL_SPIN_DVBC_INVERSION); m_spinDVBCInversion->Clear(); m_spinDVBCInversion->AddLabel("Auto", 0); m_spinDVBCInversion->AddLabel("On", 1); m_spinDVBCInversion->AddLabel("Off", 2); m_spinDVBCSymbolrates = GUI->Control_getSpin(m_window, CONTROL_SPIN_DVBC_SYMBOLRATE); m_spinDVBCSymbolrates->Clear(); m_spinDVBCSymbolrates->AddLabel("AUTO", 0); m_spinDVBCSymbolrates->AddLabel("6900", 1); m_spinDVBCSymbolrates->AddLabel("6875", 2); m_spinDVBCSymbolrates->AddLabel("6111", 3); m_spinDVBCSymbolrates->AddLabel("6250", 4); m_spinDVBCSymbolrates->AddLabel("6790", 5); m_spinDVBCSymbolrates->AddLabel("6811", 6); m_spinDVBCSymbolrates->AddLabel("5900", 7); m_spinDVBCSymbolrates->AddLabel("5000", 8); m_spinDVBCSymbolrates->AddLabel("3450", 9); m_spinDVBCSymbolrates->AddLabel("4000", 10); m_spinDVBCSymbolrates->AddLabel("6950", 11); m_spinDVBCSymbolrates->AddLabel("7000", 12); m_spinDVBCSymbolrates->AddLabel("6952", 13); m_spinDVBCSymbolrates->AddLabel("5156", 14); m_spinDVBCSymbolrates->AddLabel("4583", 15); m_spinDVBCSymbolrates->AddLabel("ALL (slow)", 16); m_spinDVBCqam = GUI->Control_getSpin(m_window, CONTROL_SPIN_DVBC_QAM); m_spinDVBCqam->Clear(); m_spinDVBCqam->AddLabel("AUTO", 0); m_spinDVBCqam->AddLabel("64", 1); m_spinDVBCqam->AddLabel("128", 2); m_spinDVBCqam->AddLabel("256", 3); m_spinDVBCqam->AddLabel("ALL (slow)", 4); m_spinDVBTInversion = GUI->Control_getSpin(m_window, CONTROL_SPIN_DVBT_INVERSION); m_spinDVBTInversion->Clear(); m_spinDVBTInversion->AddLabel("Auto", 0); m_spinDVBTInversion->AddLabel("On", 1); m_spinDVBTInversion->AddLabel("Off", 2); m_spinATSCType = GUI->Control_getSpin(m_window, CONTROL_SPIN_ATSC_TYPE); m_spinATSCType->Clear(); m_spinATSCType->AddLabel("VSB (aerial)", 0); m_spinATSCType->AddLabel("QAM (cable)", 1); m_spinATSCType->AddLabel("VSB + QAM (aerial + cable)", 2); m_radioButtonTV = GUI->Control_getRadioButton(m_window, CONTROL_RADIO_BUTTON_TV); m_radioButtonTV->SetSelected(true); m_radioButtonRadio = GUI->Control_getRadioButton(m_window, CONTROL_RADIO_BUTTON_RADIO); m_radioButtonRadio->SetSelected(true); m_radioButtonFTA = GUI->Control_getRadioButton(m_window, CONTROL_RADIO_BUTTON_FTA); m_radioButtonFTA->SetSelected(true); m_radioButtonScrambled = GUI->Control_getRadioButton(m_window, CONTROL_RADIO_BUTTON_SCRAMBLED); m_radioButtonScrambled->SetSelected(true); m_radioButtonHD = GUI->Control_getRadioButton(m_window, CONTROL_RADIO_BUTTON_HD); m_radioButtonHD->SetSelected(true); if (!ReadCountries()) return false; if (!ReadSatellites()) return false; SetControlsVisible(DVB_TERR); return true; } bool cVNSIChannelScan::OnAction(int actionId) { if (actionId == ADDON_ACTION_CLOSE_DIALOG || actionId == ADDON_ACTION_PREVIOUS_MENU) OnClick(BUTTON_BACK); return true; } bool cVNSIChannelScan::OnInitCB(GUIHANDLE cbhdl) { cVNSIChannelScan* scanner = static_cast(cbhdl); return scanner->OnInit(); } bool cVNSIChannelScan::OnClickCB(GUIHANDLE cbhdl, int controlId) { cVNSIChannelScan* scanner = static_cast(cbhdl); return scanner->OnClick(controlId); } bool cVNSIChannelScan::OnFocusCB(GUIHANDLE cbhdl, int controlId) { cVNSIChannelScan* scanner = static_cast(cbhdl); return scanner->OnFocus(controlId); } bool cVNSIChannelScan::OnActionCB(GUIHANDLE cbhdl, int actionId) { cVNSIChannelScan* scanner = static_cast(cbhdl); return scanner->OnAction(actionId); } bool cVNSIChannelScan::ReadCountries() { m_spinCountries = GUI->Control_getSpin(m_window, CONTROL_SPIN_COUNTRIES); m_spinCountries->Clear(); std::string dvdlang = XBMC->GetDVDMenuLanguage(); //dvdlang = dvdlang.ToUpper(); cRequestPacket vrp; if (!vrp.init(VNSI_SCAN_GETCOUNTRIES)) return false; cResponsePacket* vresp = ReadResult(&vrp); if (!vresp) return false; int startIndex = -1; uint32_t retCode = vresp->extract_U32(); if (retCode == VNSI_RET_OK) { while (!vresp->end()) { uint32_t index = vresp->extract_U32(); const char *isoName = vresp->extract_String(); const char *longName = vresp->extract_String(); m_spinCountries->AddLabel(longName, index); if (dvdlang == isoName) startIndex = index; delete[] longName; delete[] isoName; } if (startIndex >= 0) m_spinCountries->SetValue(startIndex); } else { XBMC->Log(LOG_ERROR, "%s - Return error after reading countries (%i)", __FUNCTION__, retCode); } delete vresp; return retCode == VNSI_RET_OK; } bool cVNSIChannelScan::ReadSatellites() { m_spinSatellites = GUI->Control_getSpin(m_window, CONTROL_SPIN_SATELLITES); m_spinSatellites->Clear(); cRequestPacket vrp; if (!vrp.init(VNSI_SCAN_GETSATELLITES)) return false; cResponsePacket* vresp = ReadResult(&vrp); if (!vresp) return false; uint32_t retCode = vresp->extract_U32(); if (retCode == VNSI_RET_OK) { while (!vresp->end()) { uint32_t index = vresp->extract_U32(); const char *shortName = vresp->extract_String(); const char *longName = vresp->extract_String(); m_spinSatellites->AddLabel(longName, index); delete[] longName; delete[] shortName; } m_spinSatellites->SetValue(6); /* default to Astra 19.2 */ } else { XBMC->Log(LOG_ERROR, "%s - Return error after reading satellites (%i)", __FUNCTION__, retCode); } delete vresp; return retCode == VNSI_RET_OK; } void cVNSIChannelScan::SetControlsVisible(scantype_t type) { m_spinCountries->SetVisible(type == DVB_TERR || type == DVB_CABLE || type == PVRINPUT); m_spinSatellites->SetVisible(type == DVB_SAT || type == DVB_ATSC); m_spinDVBCInversion->SetVisible(type == DVB_CABLE); m_spinDVBCSymbolrates->SetVisible(type == DVB_CABLE); m_spinDVBCqam->SetVisible(type == DVB_CABLE); m_spinDVBTInversion->SetVisible(type == DVB_TERR); m_spinATSCType->SetVisible(type == DVB_ATSC); m_radioButtonTV->SetVisible(type == DVB_TERR || type == DVB_CABLE || type == DVB_SAT || type == DVB_ATSC); m_radioButtonRadio->SetVisible(type == DVB_TERR || type == DVB_CABLE || type == DVB_SAT || type == DVB_ATSC); m_radioButtonFTA->SetVisible(type == DVB_TERR || type == DVB_CABLE || type == DVB_SAT || type == DVB_ATSC); m_radioButtonScrambled->SetVisible(type == DVB_TERR || type == DVB_CABLE || type == DVB_SAT || type == DVB_ATSC); m_radioButtonHD->SetVisible(type == DVB_TERR || type == DVB_CABLE || type == DVB_SAT || type == DVB_ATSC); } bool cVNSIChannelScan::OnResponsePacket(cResponsePacket* resp) { uint32_t requestID = resp->getRequestID(); if (requestID == VNSI_SCANNER_PERCENTAGE) { uint32_t percent = resp->extract_U32(); if (percent <= 100) SetProgress(percent); } else if (requestID == VNSI_SCANNER_SIGNAL) { uint32_t strength = resp->extract_U32(); uint32_t locked = resp->extract_U32(); SetSignal(strength, (locked>0)); } else if (requestID == VNSI_SCANNER_DEVICE) { char* str = resp->extract_String(); m_window->SetControlLabel(LABEL_DEVICE, str); delete[] str; } else if (requestID == VNSI_SCANNER_TRANSPONDER) { char* str = resp->extract_String(); m_window->SetControlLabel(LABEL_TRANSPONDER, str); delete[] str; } else if (requestID == VNSI_SCANNER_NEWCHANNEL) { uint32_t isRadio = resp->extract_U32(); uint32_t isEncrypted = resp->extract_U32(); uint32_t isHD = resp->extract_U32(); char* str = resp->extract_String(); CAddonListItem* item = GUI->ListItem_create(str, NULL, NULL, NULL, NULL); if (isEncrypted) item->SetProperty("IsEncrypted", "yes"); if (isRadio) item->SetProperty("IsRadio", "yes"); if (isHD) item->SetProperty("IsHD", "yes"); m_window->AddItem(item, 0); GUI->ListItem_destroy(item); delete[] str; } else if (requestID == VNSI_SCANNER_FINISHED) { if (!m_Canceled) { m_window->SetControlLabel(HEADER_LABEL, XBMC->GetLocalizedString(30036)); m_window->SetControlLabel(BUTTON_START, XBMC->GetLocalizedString(30024)); m_window->SetControlLabel(LABEL_STATUS, XBMC->GetLocalizedString(30041)); } else { m_window->SetControlLabel(HEADER_LABEL, XBMC->GetLocalizedString(30042)); } } else if (requestID == VNSI_SCANNER_STATUS) { uint32_t status = resp->extract_U32(); if (status == 0) { if (m_Canceled) m_window->SetControlLabel(LABEL_STATUS, XBMC->GetLocalizedString(16200)); else m_window->SetControlLabel(LABEL_STATUS, XBMC->GetLocalizedString(30040)); m_window->SetControlLabel(BUTTON_START, XBMC->GetLocalizedString(30024)); m_stopped = true; } else if (status == 1) { m_window->SetControlLabel(LABEL_STATUS, XBMC->GetLocalizedString(30039)); } else if (status == 2) { m_window->SetControlLabel(LABEL_STATUS, XBMC->GetLocalizedString(30037)); m_window->SetControlLabel(BUTTON_START, XBMC->GetLocalizedString(30024)); m_window->SetControlLabel(HEADER_LABEL, XBMC->GetLocalizedString(30043)); m_stopped = true; } else if (status == 3) { m_window->SetControlLabel(LABEL_STATUS, XBMC->GetLocalizedString(30038)); } } else { return false; } return true; } kodi-pvr-vdr-vnsi-1.10.10/src/VNSIChannelScan.h000066400000000000000000000052621255226123100207740ustar00rootroot00000000000000#pragma once /* * Copyright (C) 2010 Alwin Esch (Team XBMC) * http://www.xbmc.org * * This Program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This Program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XBMC; see the file COPYING. If not, write to * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. * http://www.gnu.org/copyleft/gpl.html * */ #include "VNSIData.h" #include "client.h" #include #include typedef enum scantype { DVB_TERR = 0, DVB_CABLE = 1, DVB_SAT = 2, PVRINPUT = 3, PVRINPUT_FM = 4, DVB_ATSC = 5, } scantype_t; class cVNSIChannelScan : public cVNSIData { public: cVNSIChannelScan(); ~cVNSIChannelScan(); bool Open(const std::string& hostname, int port, const char* name = "XBMC channel scanner"); bool OnClick(int controlId); bool OnFocus(int controlId); bool OnInit(); bool OnAction(int actionId); static bool OnClickCB(GUIHANDLE cbhdl, int controlId); static bool OnFocusCB(GUIHANDLE cbhdl, int controlId); static bool OnInitCB(GUIHANDLE cbhdl); static bool OnActionCB(GUIHANDLE cbhdl, int actionId); protected: bool OnResponsePacket(cResponsePacket* resp); private: bool ReadCountries(); bool ReadSatellites(); void SetControlsVisible(scantype_t type); void StartScan(); void StopScan(); void ReturnFromProcessView(); void SetProgress(int procent); void SetSignal(int procent, bool locked); std::string m_header; std::string m_Signal; bool m_running; bool m_stopped; bool m_Canceled; CAddonGUIWindow *m_window; CAddonGUISpinControl *m_spinSourceType; CAddonGUISpinControl *m_spinCountries; CAddonGUISpinControl *m_spinSatellites; CAddonGUISpinControl *m_spinDVBCInversion; CAddonGUISpinControl *m_spinDVBCSymbolrates; CAddonGUISpinControl *m_spinDVBCqam; CAddonGUISpinControl *m_spinDVBTInversion; CAddonGUISpinControl *m_spinATSCType; CAddonGUIRadioButton *m_radioButtonTV; CAddonGUIRadioButton *m_radioButtonRadio; CAddonGUIRadioButton *m_radioButtonFTA; CAddonGUIRadioButton *m_radioButtonScrambled; CAddonGUIRadioButton *m_radioButtonHD; CAddonGUIProgressControl *m_progressDone; CAddonGUIProgressControl *m_progressSignal; }; kodi-pvr-vdr-vnsi-1.10.10/src/VNSIChannels.cpp000066400000000000000000000113631255226123100207040ustar00rootroot00000000000000/* * Copyright (C) 2005-2013 Team XBMC * http://xbmc.org * * This Program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This Program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XBMC; see the file COPYING. If not, see * . * */ #include "VNSIChannels.h" #include CProvider::CProvider() :m_name(""), m_caid(0), m_whitelist(false) { } CProvider::CProvider(std::string name, int caid) :m_name(name), m_caid(caid), m_whitelist(false) { }; bool CProvider::operator==(const CProvider &rhs) { if (rhs.m_caid != m_caid) return false; if (rhs.m_name.compare(m_name) != 0) return false; return true; } void CChannel::SetCaids(char *caids) { m_caids.clear(); std::string strCaids = caids; size_t pos = strCaids.find("caids:"); if(pos == strCaids.npos) return; strCaids.erase(0,6); std::string token; int caid; char *pend; while ((pos = strCaids.find(";")) != strCaids.npos) { token = strCaids.substr(0, pos); caid = strtol(token.c_str(), &pend, 10); m_caids.push_back(caid); strCaids.erase(0, pos+1); } if (strCaids.length() > 1) { caid = strtol(strCaids.c_str(), &pend, 10); m_caids.push_back(caid); } } CVNSIChannels::CVNSIChannels() { m_loaded = false; m_mode = NONE; m_radio = false; } void CVNSIChannels::CreateProviders() { std::vector::iterator c_it; std::vector::iterator p_it; CProvider provider; m_providers.clear(); for (c_it=m_channels.begin(); c_it!=m_channels.end(); ++c_it) { provider.m_name = c_it->m_provider; for(unsigned int i=0; im_caids.size(); i++) { provider.m_caid = c_it->m_caids[i]; p_it = std::find(m_providers.begin(), m_providers.end(), provider); if (p_it == m_providers.end()) { m_providers.push_back(provider); } } if (c_it->m_caids.size() == 0) { provider.m_caid = 0; p_it = std::find(m_providers.begin(), m_providers.end(), provider); if (p_it == m_providers.end()) { m_providers.push_back(provider); } } } } void CVNSIChannels::LoadProviderWhitelist() { std::vector::iterator p_it; bool select = m_providerWhitelist.empty(); for(p_it=m_providers.begin(); p_it!=m_providers.end(); ++p_it) { p_it->m_whitelist = select; } std::vector::iterator w_it; for(w_it=m_providerWhitelist.begin(); w_it!=m_providerWhitelist.end(); ++w_it) { p_it = std::find(m_providers.begin(), m_providers.end(), *w_it); if(p_it != m_providers.end()) { p_it->m_whitelist = true; } } } void CVNSIChannels::LoadChannelBlacklist() { std::map::iterator it; for(unsigned int i=0; isecond; m_channels[idx].m_blacklist = true; } } } void CVNSIChannels::ExtractProviderWhitelist() { std::vector::iterator it; m_providerWhitelist.clear(); for(it=m_providers.begin(); it!=m_providers.end(); ++it) { if(it->m_whitelist) m_providerWhitelist.push_back(*it); } if(m_providerWhitelist.size() == m_providers.size()) { m_providerWhitelist.clear(); } else if (m_providerWhitelist.size() == 0) { m_providerWhitelist.clear(); CProvider provider; provider.m_name = "no whitelist"; provider.m_caid = 0; m_providerWhitelist.push_back(provider); } } void CVNSIChannels::ExtractChannelBlacklist() { m_channelBlacklist.clear(); for(unsigned int i=0; i::iterator p_it; provider.m_name = channel.m_provider; if (channel.m_caids.empty()) { provider.m_caid = 0; p_it = std::find(m_providers.begin(), m_providers.end(), provider); if(p_it!=m_providers.end() && p_it->m_whitelist) return true; } for(unsigned int i=0; im_whitelist) return true; } return false; } kodi-pvr-vdr-vnsi-1.10.10/src/VNSIChannels.h000066400000000000000000000032571255226123100203540ustar00rootroot00000000000000#pragma once /* * Copyright (C) 2005-2013 Team XBMC * http://xbmc.org * * This Program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This Program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XBMC; see the file COPYING. If not, see * . * */ #include "VNSIData.h" class CProvider { public: CProvider(); CProvider(std::string name, int caid); bool operator==(const CProvider &rhs); std::string m_name; int m_caid; bool m_whitelist; }; class CChannel { public: void SetCaids(char *caids); unsigned int m_id; unsigned int m_number; std::string m_name; std::string m_provider; bool m_radio; std::vector m_caids; bool m_blacklist; }; class CVNSIChannels { public: CVNSIChannels(); void CreateProviders(); void LoadProviderWhitelist(); void LoadChannelBlacklist(); void ExtractProviderWhitelist(); void ExtractChannelBlacklist(); bool IsWhitelist(CChannel &channel); std::vector m_channels; std::map m_channelsMap; std::vector m_providers; std::vector m_providerWhitelist; std::vector m_channelBlacklist; bool m_loaded; bool m_radio; enum { NONE, PROVIDER, CHANNEL }m_mode; }; kodi-pvr-vdr-vnsi-1.10.10/src/VNSIData.cpp000066400000000000000000000765561255226123100200410ustar00rootroot00000000000000/* * Copyright (C) 2010 Alwin Esch (Team XBMC) * http://www.xbmc.org * * This Program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This Program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XBMC; see the file COPYING. If not, write to * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. * http://www.gnu.org/copyleft/gpl.html * */ #include "VNSIData.h" #include "responsepacket.h" #include "requestpacket.h" #include "vnsicommand.h" #include "platform/util/StdString.h" using namespace ADDON; using namespace PLATFORM; cVNSIData::cVNSIData() { } cVNSIData::~cVNSIData() { StopThread(); Close(); } bool cVNSIData::Open(const std::string& hostname, int port, const char* name, const std::string& mac) { /* First wake up the VDR server in case a MAC-Address is specified */ if (!mac.empty()) { const char* temp_mac; temp_mac = mac.c_str(); if (!XBMC->WakeOnLan(temp_mac)) { XBMC->Log(LOG_ERROR, "Error waking up VNSI Server at MAC-Address %s", temp_mac); return false; } } if(!cVNSISession::Open(hostname, port, name)) return false; return true; } bool cVNSIData::Login() { if(!cVNSISession::Login()) return false; CreateThread(); return true; } void cVNSIData::OnDisconnect() { XBMC->QueueNotification(QUEUE_ERROR, XBMC->GetLocalizedString(30044)); PVR->TriggerTimerUpdate(); } void cVNSIData::OnReconnect() { XBMC->QueueNotification(QUEUE_INFO, XBMC->GetLocalizedString(30045)); EnableStatusInterface(g_bHandleMessages); PVR->TriggerChannelUpdate(); PVR->TriggerTimerUpdate(); PVR->TriggerRecordingUpdate(); } cResponsePacket* cVNSIData::ReadResult(cRequestPacket* vrp) { m_mutex.Lock(); SMessage &message(m_queue[vrp->getSerial()]); message.event = new CEvent; message.pkt = NULL; m_mutex.Unlock(); if(!cVNSISession::TransmitMessage(vrp)) { m_queue.erase(vrp->getSerial()); return NULL; } if (!message.event->Wait(g_iConnectTimeout * 1000)) { XBMC->Log(LOG_ERROR, "%s - request timed out after %d seconds", __FUNCTION__, g_iConnectTimeout); } m_mutex.Lock(); cResponsePacket* vresp = message.pkt; delete message.event; m_queue.erase(vrp->getSerial()); m_mutex.Unlock(); return vresp; } bool cVNSIData::GetDriveSpace(long long *total, long long *used) { cRequestPacket vrp; if (!vrp.init(VNSI_RECORDINGS_DISKSIZE)) { XBMC->Log(LOG_ERROR, "%s - Can't init cRequestPacket", __FUNCTION__); return false; } cResponsePacket* vresp = ReadResult(&vrp); if (!vresp) { XBMC->Log(LOG_ERROR, "%s - Can't get response packed", __FUNCTION__); return false; } uint32_t totalspace = vresp->extract_U32(); uint32_t freespace = vresp->extract_U32(); /* vresp->extract_U32(); percent not used */ *total = totalspace; *used = (totalspace - freespace); /* Convert from kBytes to Bytes */ *total *= 1024; *used *= 1024; delete vresp; return true; } bool cVNSIData::SupportChannelScan() { cRequestPacket vrp; if (!vrp.init(VNSI_SCAN_SUPPORTED)) { XBMC->Log(LOG_ERROR, "%s - Can't init cRequestPacket", __FUNCTION__); return false; } cResponsePacket* vresp = ReadResult(&vrp); if (!vresp) { XBMC->Log(LOG_ERROR, "%s - Can't get response packed", __FUNCTION__); return false; } uint32_t ret = vresp->extract_U32(); delete vresp; return ret == VNSI_RET_OK ? true : false; } bool cVNSIData::SupportRecordingsUndelete() { if (GetProtocol() > 7) { cRequestPacket vrp; if (!vrp.init(VNSI_RECORDINGS_DELETED_ACCESS_SUPPORTED)) { XBMC->Log(LOG_ERROR, "%s - Can't init cRequestPacket", __FUNCTION__); return false; } cResponsePacket* vresp = ReadResult(&vrp); if (!vresp) { XBMC->Log(LOG_INFO, "%s - Can't get response packed", __FUNCTION__); return false; } uint32_t ret = vresp->extract_U32(); delete vresp; return ret == VNSI_RET_OK ? true : false; } XBMC->Log(LOG_INFO, "%s - Undelete not supported on backend (min. Ver. 1.3.0; Protocol 7)", __FUNCTION__); return false; } bool cVNSIData::EnableStatusInterface(bool onOff) { cRequestPacket vrp; if (!vrp.init(VNSI_ENABLESTATUSINTERFACE)) return false; if (!vrp.add_U8(onOff)) return false; cResponsePacket* vresp = ReadResult(&vrp); if (!vresp) { XBMC->Log(LOG_ERROR, "%s - Can't get response packed", __FUNCTION__); return false; } uint32_t ret = vresp->extract_U32(); delete vresp; return ret == VNSI_RET_OK ? true : false; } int cVNSIData::GetChannelsCount() { cRequestPacket vrp; if (!vrp.init(VNSI_CHANNELS_GETCOUNT)) { XBMC->Log(LOG_ERROR, "%s - Can't init cRequestPacket", __FUNCTION__); return -1; } cResponsePacket* vresp = ReadResult(&vrp); if (!vresp) { XBMC->Log(LOG_ERROR, "%s - Can't get response packed", __FUNCTION__); return -1; } uint32_t count = vresp->extract_U32(); delete vresp; return count; } bool cVNSIData::GetChannelsList(ADDON_HANDLE handle, bool radio) { cRequestPacket vrp; if (!vrp.init(VNSI_CHANNELS_GETCHANNELS)) { XBMC->Log(LOG_ERROR, "%s - Can't init cRequestPacket", __FUNCTION__); return false; } if (!vrp.add_U32(radio)) { XBMC->Log(LOG_ERROR, "%s - Can't add parameter to cRequestPacket", __FUNCTION__); return false; } if (!vrp.add_U8(1)) // apply filter { XBMC->Log(LOG_ERROR, "%s - Can't add parameter to cRequestPacket", __FUNCTION__); return false; } cResponsePacket* vresp = ReadResult(&vrp); if (!vresp) { XBMC->Log(LOG_ERROR, "%s - Can't get response packed", __FUNCTION__); return false; } while (!vresp->end()) { PVR_CHANNEL tag; memset(&tag, 0 , sizeof(tag)); tag.iChannelNumber = vresp->extract_U32(); char *strChannelName = vresp->extract_String(); strncpy(tag.strChannelName, strChannelName, sizeof(tag.strChannelName) - 1); char *strProviderName = vresp->extract_String(); tag.iUniqueId = vresp->extract_U32(); tag.iEncryptionSystem = vresp->extract_U32(); char *strCaids = vresp->extract_String(); if (m_protocol >= 6) { std::string path = g_szIconPath; std::string ref = vresp->extract_String(); if (!path.empty()) { if (path[path.length()-1] != '/') path += '/'; path += ref; path += ".png"; strncpy(tag.strIconPath, path.c_str(), sizeof(tag.strIconPath) - 1); } } tag.bIsRadio = radio; PVR->TransferChannelEntry(handle, &tag); delete[] strChannelName; delete[] strProviderName; delete[] strCaids; } delete vresp; return true; } bool cVNSIData::GetEPGForChannel(ADDON_HANDLE handle, const PVR_CHANNEL &channel, time_t start, time_t end) { cRequestPacket vrp; if (!vrp.init(VNSI_EPG_GETFORCHANNEL)) { XBMC->Log(LOG_ERROR, "%s - Can't init cRequestPacket", __FUNCTION__); return false; } if (!vrp.add_U32(channel.iUniqueId) || !vrp.add_U32(start) || !vrp.add_U32(end - start)) { XBMC->Log(LOG_ERROR, "%s - Can't add parameter to cRequestPacket", __FUNCTION__); return false; } cResponsePacket* vresp = ReadResult(&vrp); if (!vresp) { XBMC->Log(LOG_ERROR, "%s - Can't get response packed", __FUNCTION__); return false; } while (!vresp->end()) { EPG_TAG tag; memset(&tag, 0 , sizeof(tag)); tag.iChannelNumber = channel.iChannelNumber; tag.iUniqueBroadcastId = vresp->extract_U32(); tag.startTime = vresp->extract_U32(); tag.endTime = tag.startTime + vresp->extract_U32(); uint32_t content = vresp->extract_U32(); tag.iGenreType = content & 0xF0; tag.iGenreSubType = content & 0x0F; tag.strGenreDescription = ""; tag.iParentalRating = vresp->extract_U32(); tag.strTitle = vresp->extract_String(); tag.strPlotOutline = vresp->extract_String(); tag.strPlot = vresp->extract_String(); tag.strOriginalTitle = ""; tag.strCast = ""; tag.strDirector = ""; tag.strWriter = ""; tag.iYear = 0; tag.strIMDBNumber = ""; PVR->TransferEpgEntry(handle, &tag); delete[] tag.strTitle; delete[] tag.strPlotOutline; delete[] tag.strPlot; } delete vresp; return true; } /** OPCODE's 60 - 69: VNSI network functions for timer access */ int cVNSIData::GetTimersCount() { cRequestPacket vrp; if (!vrp.init(VNSI_TIMER_GETCOUNT)) { XBMC->Log(LOG_ERROR, "%s - Can't init cRequestPacket", __FUNCTION__); return -1; } cResponsePacket* vresp = ReadResult(&vrp); if (!vresp) { XBMC->Log(LOG_ERROR, "%s - Can't get response packed", __FUNCTION__); return -1; } uint32_t count = vresp->extract_U32(); delete vresp; return count; } PVR_ERROR cVNSIData::GetTimerInfo(unsigned int timernumber, PVR_TIMER &tag) { cRequestPacket vrp; memset(&tag, 0, sizeof(tag)); if (!vrp.init(VNSI_TIMER_GET)) { XBMC->Log(LOG_ERROR, "%s - Can't init cRequestPacket", __FUNCTION__); return PVR_ERROR_UNKNOWN; } if (!vrp.add_U32(timernumber)) return PVR_ERROR_UNKNOWN; cResponsePacket* vresp = ReadResult(&vrp); if (!vresp) { XBMC->Log(LOG_ERROR, "%s - Can't get response packed", __FUNCTION__); delete vresp; return PVR_ERROR_UNKNOWN; } uint32_t returnCode = vresp->extract_U32(); if (returnCode != VNSI_RET_OK) { delete vresp; if (returnCode == VNSI_RET_DATAUNKNOWN) return PVR_ERROR_FAILED; else if (returnCode == VNSI_RET_ERROR) return PVR_ERROR_SERVER_ERROR; } tag.iClientIndex = vresp->extract_U32(); int iActive = vresp->extract_U32(); int iRecording = vresp->extract_U32(); int iPending = vresp->extract_U32(); if (iRecording) tag.state = PVR_TIMER_STATE_RECORDING; else if (iPending || iActive) tag.state = PVR_TIMER_STATE_SCHEDULED; else tag.state = PVR_TIMER_STATE_CANCELLED; tag.iPriority = vresp->extract_U32(); tag.iLifetime = vresp->extract_U32(); vresp->extract_U32(); // channel number - unused tag.iClientChannelUid = vresp->extract_U32(); tag.startTime = vresp->extract_U32(); tag.endTime = vresp->extract_U32(); tag.firstDay = vresp->extract_U32(); tag.iWeekdays = vresp->extract_U32(); tag.bIsRepeating = tag.iWeekdays == 0 ? false : true; char *strTitle = vresp->extract_String(); strncpy(tag.strTitle, strTitle, sizeof(tag.strTitle) - 1); delete[] strTitle; delete vresp; return PVR_ERROR_NO_ERROR; } bool cVNSIData::GetTimersList(ADDON_HANDLE handle) { cRequestPacket vrp; if (!vrp.init(VNSI_TIMER_GETLIST)) { XBMC->Log(LOG_ERROR, "%s - Can't init cRequestPacket", __FUNCTION__); return false; } cResponsePacket* vresp = ReadResult(&vrp); if (!vresp) { delete vresp; XBMC->Log(LOG_ERROR, "%s - Can't get response packed", __FUNCTION__); return false; } uint32_t numTimers = vresp->extract_U32(); if (numTimers > 0) { while (!vresp->end()) { PVR_TIMER tag; memset(&tag, 0, sizeof(tag)); tag.iClientIndex = vresp->extract_U32(); int iActive = vresp->extract_U32(); int iRecording = vresp->extract_U32(); int iPending = vresp->extract_U32(); if (iRecording) tag.state = PVR_TIMER_STATE_RECORDING; else if (iPending || iActive) tag.state = PVR_TIMER_STATE_SCHEDULED; else tag.state = PVR_TIMER_STATE_CANCELLED; tag.iPriority = vresp->extract_U32(); tag.iLifetime = vresp->extract_U32(); vresp->extract_U32(); // channel number - unused tag.iClientChannelUid = vresp->extract_U32(); tag.startTime = vresp->extract_U32(); tag.endTime = vresp->extract_U32(); tag.firstDay = vresp->extract_U32(); tag.iWeekdays = vresp->extract_U32(); tag.bIsRepeating = tag.iWeekdays == 0 ? false : true; char *strTitle = vresp->extract_String(); strncpy(tag.strTitle, strTitle, sizeof(tag.strTitle) - 1); tag.iMarginStart = 0; tag.iMarginEnd = 0; PVR->TransferTimerEntry(handle, &tag); delete[] strTitle; } } delete vresp; return true; } PVR_ERROR cVNSIData::AddTimer(const PVR_TIMER &timerinfo) { cRequestPacket vrp; if (!vrp.init(VNSI_TIMER_ADD)) { XBMC->Log(LOG_ERROR, "%s - Can't init cRequestPacket", __FUNCTION__); return PVR_ERROR_UNKNOWN; } // add directory in front of the title std::string path; if(strlen(timerinfo.strDirectory) > 0) { path += timerinfo.strDirectory; if(path == "/") { path.clear(); } else if(path.size() > 1) { if(path[0] == '/') { path = path.substr(1); } } if(path.size() > 0 && path[path.size()-1] != '/') { path += "/"; } } // replace directory separators for(std::size_t i=0; i 0) { path += timerinfo.strTitle; } if(path.empty()) { XBMC->Log(LOG_ERROR, "%s - Empty filename !", __FUNCTION__); return PVR_ERROR_UNKNOWN; } // use timer margin to calculate start/end times uint32_t starttime = timerinfo.startTime - timerinfo.iMarginStart*60; uint32_t endtime = timerinfo.endTime + timerinfo.iMarginEnd*60; if (!vrp.add_U32(timerinfo.state == PVR_TIMER_STATE_SCHEDULED)) return PVR_ERROR_UNKNOWN; if (!vrp.add_U32(timerinfo.iPriority)) return PVR_ERROR_UNKNOWN; if (!vrp.add_U32(timerinfo.iLifetime)) return PVR_ERROR_UNKNOWN; if (!vrp.add_U32(timerinfo.iClientChannelUid)) return PVR_ERROR_UNKNOWN; if (!vrp.add_U32(starttime)) return PVR_ERROR_UNKNOWN; if (!vrp.add_U32(endtime)) return PVR_ERROR_UNKNOWN; if (!vrp.add_U32(timerinfo.bIsRepeating ? timerinfo.firstDay : 0)) return PVR_ERROR_UNKNOWN; if (!vrp.add_U32(timerinfo.iWeekdays))return PVR_ERROR_UNKNOWN; if (!vrp.add_String(path.c_str())) return PVR_ERROR_UNKNOWN; if (!vrp.add_String("")) return PVR_ERROR_UNKNOWN; cResponsePacket* vresp = ReadResult(&vrp); if (vresp == NULL || vresp->noResponse()) { delete vresp; XBMC->Log(LOG_ERROR, "%s - Can't get response packed", __FUNCTION__); return PVR_ERROR_UNKNOWN; } uint32_t returnCode = vresp->extract_U32(); delete vresp; if (returnCode == VNSI_RET_DATALOCKED) return PVR_ERROR_ALREADY_PRESENT; else if (returnCode == VNSI_RET_DATAINVALID) return PVR_ERROR_INVALID_PARAMETERS; else if (returnCode == VNSI_RET_ERROR) return PVR_ERROR_SERVER_ERROR; return PVR_ERROR_NO_ERROR; } PVR_ERROR cVNSIData::DeleteTimer(const PVR_TIMER &timerinfo, bool force) { cRequestPacket vrp; if (!vrp.init(VNSI_TIMER_DELETE)) return PVR_ERROR_UNKNOWN; if (!vrp.add_U32(timerinfo.iClientIndex)) return PVR_ERROR_UNKNOWN; if (!vrp.add_U32(force)) return PVR_ERROR_UNKNOWN; cResponsePacket* vresp = ReadResult(&vrp); if (vresp == NULL || vresp->noResponse()) { delete vresp; return PVR_ERROR_UNKNOWN; } uint32_t returnCode = vresp->extract_U32(); delete vresp; if (returnCode == VNSI_RET_DATALOCKED) return PVR_ERROR_FAILED; else if (returnCode == VNSI_RET_RECRUNNING) return PVR_ERROR_RECORDING_RUNNING; else if (returnCode == VNSI_RET_DATAINVALID) return PVR_ERROR_INVALID_PARAMETERS; else if (returnCode == VNSI_RET_ERROR) return PVR_ERROR_SERVER_ERROR; return PVR_ERROR_NO_ERROR; } PVR_ERROR cVNSIData::RenameTimer(const PVR_TIMER &timerinfo, const char *newname) { PVR_TIMER timerinfo1; memset(&timerinfo1, 0, sizeof(timerinfo1)); PVR_ERROR ret = GetTimerInfo(timerinfo.iClientIndex, timerinfo1); if (ret != PVR_ERROR_NO_ERROR) return ret; strncpy(timerinfo1.strTitle, newname, sizeof(timerinfo1.strTitle) - 1); return UpdateTimer(timerinfo1); } PVR_ERROR cVNSIData::UpdateTimer(const PVR_TIMER &timerinfo) { // use timer margin to calculate start/end times uint32_t starttime = timerinfo.startTime - timerinfo.iMarginStart*60; uint32_t endtime = timerinfo.endTime + timerinfo.iMarginEnd*60; cRequestPacket vrp; if (!vrp.init(VNSI_TIMER_UPDATE)) return PVR_ERROR_UNKNOWN; if (!vrp.add_U32(timerinfo.iClientIndex)) return PVR_ERROR_UNKNOWN; if (!vrp.add_U32(timerinfo.state == PVR_TIMER_STATE_SCHEDULED)) return PVR_ERROR_UNKNOWN; if (!vrp.add_U32(timerinfo.iPriority)) return PVR_ERROR_UNKNOWN; if (!vrp.add_U32(timerinfo.iLifetime)) return PVR_ERROR_UNKNOWN; if (!vrp.add_U32(timerinfo.iClientChannelUid)) return PVR_ERROR_UNKNOWN; if (!vrp.add_U32(starttime)) return PVR_ERROR_UNKNOWN; if (!vrp.add_U32(endtime)) return PVR_ERROR_UNKNOWN; if (!vrp.add_U32(timerinfo.bIsRepeating ? timerinfo.firstDay : 0)) return PVR_ERROR_UNKNOWN; if (!vrp.add_U32(timerinfo.iWeekdays))return PVR_ERROR_UNKNOWN; if (!vrp.add_String(timerinfo.strTitle)) return PVR_ERROR_UNKNOWN; if (!vrp.add_String("")) return PVR_ERROR_UNKNOWN; cResponsePacket* vresp = ReadResult(&vrp); if (vresp == NULL || vresp->noResponse()) { delete vresp; return PVR_ERROR_UNKNOWN; } uint32_t returnCode = vresp->extract_U32(); delete vresp; if (returnCode == VNSI_RET_DATAUNKNOWN) return PVR_ERROR_FAILED; else if (returnCode == VNSI_RET_DATAINVALID) return PVR_ERROR_INVALID_PARAMETERS; else if (returnCode == VNSI_RET_ERROR) return PVR_ERROR_SERVER_ERROR; return PVR_ERROR_NO_ERROR; } int cVNSIData::GetRecordingsCount() { cRequestPacket vrp; if (!vrp.init(VNSI_RECORDINGS_GETCOUNT)) { XBMC->Log(LOG_ERROR, "%s - Can't init cRequestPacket", __FUNCTION__); return -1; } cResponsePacket* vresp = ReadResult(&vrp); if (!vresp) { XBMC->Log(LOG_ERROR, "%s - Can't get response packed", __FUNCTION__); return -1; } uint32_t count = vresp->extract_U32(); delete vresp; return count; } PVR_ERROR cVNSIData::GetRecordingsList(ADDON_HANDLE handle) { cRequestPacket vrp; if (!vrp.init(VNSI_RECORDINGS_GETLIST)) { XBMC->Log(LOG_ERROR, "%s - Can't init cRequestPacket", __FUNCTION__); return PVR_ERROR_UNKNOWN; } cResponsePacket* vresp = ReadResult(&vrp); if (!vresp) { XBMC->Log(LOG_ERROR, "%s - Can't get response packed", __FUNCTION__); return PVR_ERROR_UNKNOWN; } CStdString strRecordingId; while (!vresp->end()) { PVR_RECORDING tag; memset(&tag, 0, sizeof(tag)); tag.recordingTime = vresp->extract_U32(); tag.iDuration = vresp->extract_U32(); tag.iPriority = vresp->extract_U32(); tag.iLifetime = vresp->extract_U32(); tag.bIsDeleted = false; char *strChannelName = vresp->extract_String(); strncpy(tag.strChannelName, strChannelName, sizeof(tag.strChannelName) - 1); char *strTitle = vresp->extract_String(); strncpy(tag.strTitle, strTitle, sizeof(tag.strTitle) - 1); char *strPlotOutline = vresp->extract_String(); strncpy(tag.strPlotOutline, strPlotOutline, sizeof(tag.strPlotOutline) - 1); char *strPlot = vresp->extract_String(); strncpy(tag.strPlot, strPlot, sizeof(tag.strPlot) - 1); char *strDirectory = vresp->extract_String(); strncpy(tag.strDirectory, strDirectory, sizeof(tag.strDirectory) - 1); strRecordingId.Format("%i", vresp->extract_U32()); strncpy(tag.strRecordingId, strRecordingId.c_str(), sizeof(tag.strRecordingId) - 1); PVR->TransferRecordingEntry(handle, &tag); delete[] strChannelName; delete[] strTitle; delete[] strPlotOutline; delete[] strPlot; delete[] strDirectory; } delete vresp; return PVR_ERROR_NO_ERROR; } PVR_ERROR cVNSIData::RenameRecording(const PVR_RECORDING& recinfo, const char* newname) { cRequestPacket vrp; if (!vrp.init(VNSI_RECORDINGS_RENAME)) { XBMC->Log(LOG_ERROR, "%s - Can't init cRequestPacket", __FUNCTION__); return PVR_ERROR_UNKNOWN; } // add uid XBMC->Log(LOG_DEBUG, "%s - uid: %s", __FUNCTION__, recinfo.strRecordingId); if (!vrp.add_U32(atoi(recinfo.strRecordingId))) return PVR_ERROR_UNKNOWN; // add new title if (!vrp.add_String(newname)) return PVR_ERROR_UNKNOWN; cResponsePacket* vresp = ReadResult(&vrp); if (vresp == NULL || vresp->noResponse()) { delete vresp; return PVR_ERROR_SERVER_ERROR; } uint32_t returnCode = vresp->extract_U32(); delete vresp; if(returnCode != 0) return PVR_ERROR_FAILED; return PVR_ERROR_NO_ERROR; } PVR_ERROR cVNSIData::DeleteRecording(const PVR_RECORDING& recinfo) { cRequestPacket vrp; if (!vrp.init(recinfo.bIsDeleted ? VNSI_RECORDINGS_DELETED_DELETE : VNSI_RECORDINGS_DELETE)) { XBMC->Log(LOG_ERROR, "%s - Can't init cRequestPacket", __FUNCTION__); return PVR_ERROR_UNKNOWN; } if (!vrp.add_U32(atoi(recinfo.strRecordingId))) return PVR_ERROR_UNKNOWN; cResponsePacket* vresp = ReadResult(&vrp); if (vresp == NULL || vresp->noResponse()) { delete vresp; return PVR_ERROR_UNKNOWN; } uint32_t returnCode = vresp->extract_U32(); delete vresp; switch(returnCode) { case VNSI_RET_DATALOCKED: return PVR_ERROR_FAILED; case VNSI_RET_RECRUNNING: return PVR_ERROR_RECORDING_RUNNING; case VNSI_RET_DATAINVALID: return PVR_ERROR_INVALID_PARAMETERS; case VNSI_RET_ERROR: return PVR_ERROR_SERVER_ERROR; } return PVR_ERROR_NO_ERROR; } PVR_ERROR cVNSIData::GetRecordingEdl(const PVR_RECORDING& recinfo, PVR_EDL_ENTRY edl[], int *size) { cRequestPacket vrp; if (!vrp.init(VNSI_RECORDINGS_GETEDL)) { XBMC->Log(LOG_ERROR, "%s - Can't init cRequestPacket", __FUNCTION__); return PVR_ERROR_UNKNOWN; } if (!vrp.add_U32(atoi(recinfo.strRecordingId))) return PVR_ERROR_UNKNOWN; cResponsePacket* vresp = ReadResult(&vrp); if (vresp == NULL || vresp->noResponse()) { delete vresp; return PVR_ERROR_UNKNOWN; } *size = 0; while (!vresp->end() && *size < PVR_ADDON_EDL_LENGTH) { edl[*size].start = vresp->extract_S64(); edl[*size].end = vresp->extract_S64(); edl[*size].type = (PVR_EDL_TYPE)vresp->extract_S32(); (*size)++; } delete vresp; return PVR_ERROR_NO_ERROR; } int cVNSIData::GetDeletedRecordingsCount() { cRequestPacket vrp; if (!vrp.init(VNSI_RECORDINGS_DELETED_GETCOUNT)) { XBMC->Log(LOG_ERROR, "%s - Can't init cRequestPacket", __FUNCTION__); return -1; } cResponsePacket* vresp = ReadResult(&vrp); if (!vresp) { XBMC->Log(LOG_ERROR, "%s - Can't get response packed", __FUNCTION__); return -1; } uint32_t count = vresp->extract_U32(); delete vresp; return count; } PVR_ERROR cVNSIData::GetDeletedRecordingsList(ADDON_HANDLE handle) { cRequestPacket vrp; if (!vrp.init(VNSI_RECORDINGS_DELETED_GETLIST)) { XBMC->Log(LOG_ERROR, "%s - Can't init cRequestPacket", __FUNCTION__); return PVR_ERROR_UNKNOWN; } cResponsePacket* vresp = ReadResult(&vrp); if (!vresp) { XBMC->Log(LOG_ERROR, "%s - Can't get response packed", __FUNCTION__); return PVR_ERROR_UNKNOWN; } CStdString strRecordingId; while (!vresp->end()) { PVR_RECORDING tag; memset(&tag, 0, sizeof(tag)); tag.recordingTime = vresp->extract_U32(); tag.iDuration = vresp->extract_U32(); tag.iPriority = vresp->extract_U32(); tag.iLifetime = vresp->extract_U32(); tag.bIsDeleted = true; char *strChannelName = vresp->extract_String(); strncpy(tag.strChannelName, strChannelName, sizeof(tag.strChannelName) - 1); char *strTitle = vresp->extract_String(); strncpy(tag.strTitle, strTitle, sizeof(tag.strTitle) - 1); char *strPlotOutline = vresp->extract_String(); strncpy(tag.strPlotOutline, strPlotOutline, sizeof(tag.strPlotOutline) - 1); char *strPlot = vresp->extract_String(); strncpy(tag.strPlot, strPlot, sizeof(tag.strPlot) - 1); char *strDirectory = vresp->extract_String(); strncpy(tag.strDirectory, strDirectory, sizeof(tag.strDirectory) - 1); strRecordingId.Format("%i", vresp->extract_U32()); strncpy(tag.strRecordingId, strRecordingId.c_str(), sizeof(tag.strRecordingId) - 1); PVR->TransferRecordingEntry(handle, &tag); delete[] strChannelName; delete[] strTitle; delete[] strPlotOutline; delete[] strPlot; delete[] strDirectory; } delete vresp; return PVR_ERROR_NO_ERROR; } PVR_ERROR cVNSIData::UndeleteRecording(const PVR_RECORDING& recinfo) { cRequestPacket vrp; if (!vrp.init(VNSI_RECORDINGS_DELETED_UNDELETE)) { XBMC->Log(LOG_ERROR, "%s - Can't init cRequestPacket", __FUNCTION__); return PVR_ERROR_UNKNOWN; } if (!vrp.add_U32(atoi(recinfo.strRecordingId))) return PVR_ERROR_UNKNOWN; cResponsePacket* vresp = ReadResult(&vrp); if (vresp == NULL || vresp->noResponse()) { delete vresp; return PVR_ERROR_UNKNOWN; } uint32_t returnCode = vresp->extract_U32(); delete vresp; switch(returnCode) { case VNSI_RET_DATALOCKED: return PVR_ERROR_FAILED; case VNSI_RET_RECRUNNING: return PVR_ERROR_RECORDING_RUNNING; case VNSI_RET_DATAINVALID: return PVR_ERROR_INVALID_PARAMETERS; case VNSI_RET_ERROR: return PVR_ERROR_SERVER_ERROR; } return PVR_ERROR_NO_ERROR; } PVR_ERROR cVNSIData::DeleteAllRecordingsFromTrash() { cRequestPacket vrp; if (!vrp.init(VNSI_RECORDINGS_DELETED_DELETE_ALL)) { XBMC->Log(LOG_ERROR, "%s - Can't init cRequestPacket", __FUNCTION__); return PVR_ERROR_UNKNOWN; } cResponsePacket* vresp = ReadResult(&vrp); if (vresp == NULL || vresp->noResponse()) { delete vresp; return PVR_ERROR_UNKNOWN; } uint32_t returnCode = vresp->extract_U32(); delete vresp; switch(returnCode) { case VNSI_RET_DATALOCKED: return PVR_ERROR_FAILED; case VNSI_RET_RECRUNNING: return PVR_ERROR_RECORDING_RUNNING; case VNSI_RET_DATAINVALID: return PVR_ERROR_INVALID_PARAMETERS; case VNSI_RET_ERROR: return PVR_ERROR_SERVER_ERROR; } return PVR_ERROR_NO_ERROR; } bool cVNSIData::OnResponsePacket(cResponsePacket* pkt) { return false; } void *cVNSIData::Process() { cResponsePacket* vresp; while (!IsStopped()) { // try to reconnect if(ConnectionLost() && !TryReconnect()) { Sleep(1000); continue; } // if there's anything in the buffer, read it if ((vresp = cVNSISession::ReadMessage(5)) == NULL) { Sleep(5); continue; } // CHANNEL_REQUEST_RESPONSE if (vresp->getChannelID() == VNSI_CHANNEL_REQUEST_RESPONSE) { CLockObject lock(m_mutex); SMessages::iterator it = m_queue.find(vresp->getRequestID()); if (it != m_queue.end()) { it->second.pkt = vresp; it->second.event->Broadcast(); } else { delete vresp; } } // CHANNEL_STATUS else if (vresp->getChannelID() == VNSI_CHANNEL_STATUS) { if (vresp->getRequestID() == VNSI_STATUS_MESSAGE) { uint32_t type = vresp->extract_U32(); char* msgstr = vresp->extract_String(); char* strMessageTranslated(NULL); if (g_bCharsetConv) strMessageTranslated = XBMC->UnknownToUTF8(msgstr); else strMessageTranslated = msgstr; if (type == 2) XBMC->QueueNotification(QUEUE_ERROR, strMessageTranslated); if (type == 1) XBMC->QueueNotification(QUEUE_WARNING, strMessageTranslated); else XBMC->QueueNotification(QUEUE_INFO, strMessageTranslated); delete[] msgstr; if (g_bCharsetConv) XBMC->FreeString(strMessageTranslated); } else if (vresp->getRequestID() == VNSI_STATUS_RECORDING) { vresp->extract_U32(); // device currently unused vresp->extract_U32(); // on (not used) char* str1 = vresp->extract_String(); char* str2 = vresp->extract_String(); // PVR->Recording(str1, str2, on!=0?true:false); PVR->TriggerTimerUpdate(); delete[] str1; delete[] str2; } else if (vresp->getRequestID() == VNSI_STATUS_TIMERCHANGE) { XBMC->Log(LOG_DEBUG, "Server requested timer update"); PVR->TriggerTimerUpdate(); } else if (vresp->getRequestID() == VNSI_STATUS_CHANNELCHANGE) { XBMC->Log(LOG_DEBUG, "Server requested channel update"); PVR->TriggerChannelUpdate(); } else if (vresp->getRequestID() == VNSI_STATUS_RECORDINGSCHANGE) { XBMC->Log(LOG_DEBUG, "Server requested recordings update"); PVR->TriggerRecordingUpdate(); } else if (vresp->getRequestID() == VNSI_STATUS_EPGCHANGE) { uint32_t channel = vresp->extract_U32(); XBMC->Log(LOG_DEBUG, "Server requested Epg update for channel: %d", channel); PVR->TriggerEpgUpdate(channel); } delete vresp; } // UNKOWN CHANNELID else if (!OnResponsePacket(vresp)) { XBMC->Log(LOG_ERROR, "%s - Rxd a response packet on channel %lu !!", __FUNCTION__, vresp->getChannelID()); delete vresp; } } return NULL; } int cVNSIData::GetChannelGroupCount(bool automatic) { cRequestPacket vrp; if (!vrp.init(VNSI_CHANNELGROUP_GETCOUNT)) { XBMC->Log(LOG_ERROR, "%s - Can't init cRequestPacket", __FUNCTION__); return 0; } if (!vrp.add_U32(automatic)) { return 0; } cResponsePacket* vresp = ReadResult(&vrp); if (vresp == NULL || vresp->noResponse()) { delete vresp; return 0; } uint32_t count = vresp->extract_U32(); delete vresp; return count; } bool cVNSIData::GetChannelGroupList(ADDON_HANDLE handle, bool bRadio) { cRequestPacket vrp; if (!vrp.init(VNSI_CHANNELGROUP_LIST)) { XBMC->Log(LOG_ERROR, "%s - Can't init cRequestPacket", __FUNCTION__); return false; } vrp.add_U8(bRadio); cResponsePacket* vresp = ReadResult(&vrp); if (vresp == NULL || vresp->noResponse()) { delete vresp; return false; } while (!vresp->end()) { PVR_CHANNEL_GROUP tag; memset(&tag, 0, sizeof(tag)); char *strGroupName = vresp->extract_String(); strncpy(tag.strGroupName, strGroupName, sizeof(tag.strGroupName) - 1); tag.bIsRadio = vresp->extract_U8()!=0?true:false; tag.iPosition = 0; PVR->TransferChannelGroup(handle, &tag); delete[] strGroupName; } delete vresp; return true; } bool cVNSIData::GetChannelGroupMembers(ADDON_HANDLE handle, const PVR_CHANNEL_GROUP &group) { cRequestPacket vrp; if (!vrp.init(VNSI_CHANNELGROUP_MEMBERS)) { XBMC->Log(LOG_ERROR, "%s - Can't init cRequestPacket", __FUNCTION__); return false; } vrp.add_String(group.strGroupName); vrp.add_U8(group.bIsRadio); vrp.add_U8(1); // filter channels cResponsePacket* vresp = ReadResult(&vrp); if (vresp == NULL || vresp->noResponse()) { delete vresp; return false; } while (!vresp->end()) { PVR_CHANNEL_GROUP_MEMBER tag; memset(&tag, 0, sizeof(tag)); strncpy(tag.strGroupName, group.strGroupName, sizeof(tag.strGroupName) - 1); tag.iChannelUniqueId = vresp->extract_U32(); tag.iChannelNumber = vresp->extract_U32(); PVR->TransferChannelGroupMember(handle, &tag); } delete vresp; return true; } kodi-pvr-vdr-vnsi-1.10.10/src/VNSIData.h000066400000000000000000000063321255226123100174670ustar00rootroot00000000000000#pragma once /* * Copyright (C) 2010 Alwin Esch (Team XBMC) * http://www.xbmc.org * * This Program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This Program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XBMC; see the file COPYING. If not, write to * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. * http://www.gnu.org/copyleft/gpl.html * */ #include "VNSISession.h" #include "client.h" #include #include class cResponsePacket; class cRequestPacket; class cVNSIData : public cVNSISession, public PLATFORM::CThread { public: cVNSIData(); virtual ~cVNSIData(); bool Open(const std::string& hostname, int port, const char* name = NULL, const std::string& mac = ""); bool Login(); bool SupportChannelScan(); bool SupportRecordingsUndelete(); bool EnableStatusInterface(bool onOff); bool GetDriveSpace(long long *total, long long *used); int GetChannelsCount(); bool GetChannelsList(ADDON_HANDLE handle, bool radio = false); bool GetEPGForChannel(ADDON_HANDLE handle, const PVR_CHANNEL &channel, time_t start, time_t end); int GetChannelGroupCount(bool automatic); bool GetChannelGroupList(ADDON_HANDLE handle, bool bRadio); bool GetChannelGroupMembers(ADDON_HANDLE handle, const PVR_CHANNEL_GROUP &group); bool GetTimersList(ADDON_HANDLE handle); int GetTimersCount(); PVR_ERROR AddTimer(const PVR_TIMER &timerinfo); PVR_ERROR GetTimerInfo(unsigned int timernumber, PVR_TIMER &tag); PVR_ERROR DeleteTimer(const PVR_TIMER &timerinfo, bool force = false); PVR_ERROR RenameTimer(const PVR_TIMER &timerinfo, const char *newname); PVR_ERROR UpdateTimer(const PVR_TIMER &timerinfo); int GetRecordingsCount(); PVR_ERROR GetRecordingsList(ADDON_HANDLE handle); PVR_ERROR RenameRecording(const PVR_RECORDING& recinfo, const char* newname); PVR_ERROR DeleteRecording(const PVR_RECORDING& recinfo); PVR_ERROR GetRecordingEdl(const PVR_RECORDING& recinfo, PVR_EDL_ENTRY edl[], int *size); int GetDeletedRecordingsCount(); PVR_ERROR GetDeletedRecordingsList(ADDON_HANDLE handle); PVR_ERROR UndeleteRecording(const PVR_RECORDING& recording); PVR_ERROR DeleteAllRecordingsFromTrash(); PVR_ERROR UndeleteAllRecordingsFromTrash(); cResponsePacket* ReadResult(cRequestPacket* vrp); protected: virtual void *Process(void); virtual bool OnResponsePacket(cResponsePacket *pkt); virtual void OnDisconnect(); virtual void OnReconnect(); private: struct SMessage { PLATFORM::CEvent *event; cResponsePacket *pkt; }; typedef std::map SMessages; SMessages m_queue; std::string m_videodir; PLATFORM::CMutex m_mutex; }; kodi-pvr-vdr-vnsi-1.10.10/src/VNSIDemux.cpp000066400000000000000000000311131255226123100202260ustar00rootroot00000000000000/* * Copyright (C) 2010 Alwin Esch (Team XBMC) * http://www.xbmc.org * * This Program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This Program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XBMC; see the file COPYING. If not, write to * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. * http://www.gnu.org/copyleft/gpl.html * */ #include #include #include #include "VNSIDemux.h" #include "responsepacket.h" #include "requestpacket.h" #include "vnsicommand.h" #include "tools.h" using namespace ADDON; cVNSIDemux::cVNSIDemux() { } cVNSIDemux::~cVNSIDemux() { } bool cVNSIDemux::OpenChannel(const PVR_CHANNEL &channelinfo) { m_channelinfo = channelinfo; if(!cVNSISession::Open(g_szHostname, g_iPort)) return false; if(!cVNSISession::Login()) return false; return SwitchChannel(m_channelinfo); } bool cVNSIDemux::GetStreamProperties(PVR_STREAM_PROPERTIES* props) { return m_streams.GetProperties(props); } void cVNSIDemux::Abort() { m_streams.Clear(); } DemuxPacket* cVNSIDemux::Read() { if(ConnectionLost()) { return NULL; } cResponsePacket *resp = ReadMessage(1000, g_iConnectTimeout * 1000); if(resp == NULL) return PVR->AllocateDemuxPacket(0); if (resp->getChannelID() != VNSI_CHANNEL_STREAM) { delete resp; return NULL; } if (resp->getOpCodeID() == VNSI_STREAM_CHANGE) { StreamChange(resp); DemuxPacket* pkt = PVR->AllocateDemuxPacket(0); pkt->iStreamId = DMX_SPECIALID_STREAMCHANGE; delete resp; return pkt; } else if (resp->getOpCodeID() == VNSI_STREAM_STATUS) { StreamStatus(resp); } else if (resp->getOpCodeID() == VNSI_STREAM_SIGNALINFO) { StreamSignalInfo(resp); } else if (resp->getOpCodeID() == VNSI_STREAM_CONTENTINFO) { // send stream updates only if there are changes if(StreamContentInfo(resp)) { DemuxPacket* pkt = PVR->AllocateDemuxPacket(0); pkt->iStreamId = DMX_SPECIALID_STREAMCHANGE; delete resp; return pkt; } } else if (resp->getOpCodeID() == VNSI_STREAM_MUXPKT) { // figure out the stream id for this packet int pid = resp->getStreamID(); int iStreamId = m_streams.GetStreamId(pid); // stream found ? if(iStreamId != -1 && resp->getMuxSerial() == m_MuxPacketSerial) { DemuxPacket* p = (DemuxPacket*)resp->getUserData(); p->iSize = resp->getUserDataLength(); p->duration = (double)resp->getDuration() * DVD_TIME_BASE / 1000000; p->dts = (double)resp->getDTS() * DVD_TIME_BASE / 1000000; p->pts = (double)resp->getPTS() * DVD_TIME_BASE / 1000000; p->iStreamId = iStreamId; delete resp; XbmcPvrStream *stream = m_streams.GetStreamById(pid); xbmc_codec_type_t type = XBMC_CODEC_TYPE_UNKNOWN; if (stream != NULL) type = stream->iCodecType; if (type == XBMC_CODEC_TYPE_VIDEO || type == XBMC_CODEC_TYPE_AUDIO) { if (p->dts != DVD_NOPTS_VALUE) m_CurrentDTS = p->dts; else if (p->pts != DVD_NOPTS_VALUE) m_CurrentDTS = p->pts; } return p; } else if (iStreamId != -1 && resp->getMuxSerial() != m_MuxPacketSerial) { // ignore silently, may happen after a seek XBMC->Log(LOG_DEBUG, "-------------------- serial: %d", resp->getMuxSerial()); } else { XBMC->Log(LOG_DEBUG, "stream id %i not found", resp->getStreamID()); } } else if (resp->getOpCodeID() == VNSI_STREAM_BUFFERSTATS) { m_bTimeshift = resp->extract_U8(); m_BufferTimeStart = resp->extract_U32(); m_BufferTimeEnd = resp->extract_U32(); } else if (resp->getOpCodeID() == VNSI_STREAM_REFTIME) { m_ReferenceTime = resp->extract_U32(); m_ReferenceDTS = (double)resp->extract_U64() * DVD_TIME_BASE / 1000000; } delete resp; return PVR->AllocateDemuxPacket(0); } bool cVNSIDemux::SeekTime(int time, bool backwards, double *startpts) { cRequestPacket vrp; int64_t seek_pts = (int64_t)time * 1000; if (startpts) *startpts = seek_pts; if (!vrp.init(VNSI_CHANNELSTREAM_SEEK) || !vrp.add_S64(seek_pts) || !vrp.add_U8(backwards)) { XBMC->Log(LOG_ERROR, "%s - failed to seek1", __FUNCTION__); return false; } cResponsePacket *resp = ReadResult(&vrp); if (!resp) { XBMC->Log(LOG_ERROR, "%s - failed to seek2", __FUNCTION__); return false; } uint32_t retCode = resp->extract_U32(); uint32_t serial = resp->extract_U32(); delete resp; if (retCode == VNSI_RET_OK) { m_MuxPacketSerial = serial; return true; } else return false; } bool cVNSIDemux::SwitchChannel(const PVR_CHANNEL &channelinfo) { XBMC->Log(LOG_DEBUG, "changing to channel %d", channelinfo.iChannelNumber); cRequestPacket vrp1; if (!vrp1.init(VNSI_GETSETUP) || !vrp1.add_String(CONFNAME_TIMESHIFT)) { XBMC->Log(LOG_ERROR, "%s - failed to get timeshift mode", __FUNCTION__); return false; } cResponsePacket *resp = ReadResult(&vrp1); if (!resp) { XBMC->Log(LOG_ERROR, "%s - failed to get timeshift mode", __FUNCTION__); return false; } m_bTimeshift = resp->extract_U32(); delete resp; cRequestPacket vrp2; if (!vrp2.init(VNSI_CHANNELSTREAM_OPEN) || !vrp2.add_U32(channelinfo.iUniqueId) || !vrp2.add_S32(g_iPriority) || !vrp2.add_U8(1) || !ReadSuccess(&vrp2)) { XBMC->Log(LOG_ERROR, "%s - failed to set channel", __FUNCTION__); return false; } m_channelinfo = channelinfo; m_streams.Clear(); m_MuxPacketSerial = 0; m_ReferenceTime = 0; m_BufferTimeStart = 0; m_BufferTimeEnd = 0; return true; } bool cVNSIDemux::GetSignalStatus(PVR_SIGNAL_STATUS &qualityinfo) { if (m_Quality.fe_name.empty()) return true; strncpy(qualityinfo.strAdapterName, m_Quality.fe_name.c_str(), sizeof(qualityinfo.strAdapterName)); strncpy(qualityinfo.strAdapterStatus, m_Quality.fe_status.c_str(), sizeof(qualityinfo.strAdapterStatus)); qualityinfo.iSignal = (uint16_t)m_Quality.fe_signal; qualityinfo.iSNR = (uint16_t)m_Quality.fe_snr; qualityinfo.iBER = (uint32_t)m_Quality.fe_ber; qualityinfo.iUNC = (uint32_t)m_Quality.fe_unc; qualityinfo.dVideoBitrate = 0; qualityinfo.dAudioBitrate = 0; qualityinfo.dDolbyBitrate = 0; return true; } time_t cVNSIDemux::GetPlayingTime() { time_t ret = 0; if (m_ReferenceTime) ret = m_ReferenceTime + (m_CurrentDTS - m_ReferenceDTS) / DVD_TIME_BASE; return ret; } time_t cVNSIDemux::GetBufferTimeStart() { return m_BufferTimeStart; } time_t cVNSIDemux::GetBufferTimeEnd() { return m_BufferTimeEnd; } void cVNSIDemux::StreamChange(cResponsePacket *resp) { std::vector newStreams; while (!resp->end()) { uint32_t pid = resp->extract_U32(); const char* type = resp->extract_String(); XbmcPvrStream newStream; m_streams.GetStreamData(pid, &newStream); CodecDescriptor codecId = CodecDescriptor::GetCodecByName(type); if (codecId.Codec().codec_type != XBMC_CODEC_TYPE_UNKNOWN) { newStream.iPhysicalId = pid; newStream.iCodecType = codecId.Codec().codec_type; newStream.iCodecId = codecId.Codec().codec_id; } else { return; } if (codecId.Codec().codec_type == XBMC_CODEC_TYPE_AUDIO) { const char *language = resp->extract_String(); newStream.iChannels = resp->extract_U32(); newStream.iSampleRate = resp->extract_U32(); newStream.iBlockAlign = resp->extract_U32(); newStream.iBitRate = resp->extract_U32(); newStream.iBitsPerSample = resp->extract_U32(); newStream.strLanguage[0] = language[0]; newStream.strLanguage[1] = language[1]; newStream.strLanguage[2] = language[2]; newStream.strLanguage[3] = 0; newStream.iIdentifier = -1; newStreams.push_back(newStream); } else if (codecId.Codec().codec_type == XBMC_CODEC_TYPE_VIDEO) { newStream.iFPSScale = resp->extract_U32(); newStream.iFPSRate = resp->extract_U32(); newStream.iHeight = resp->extract_U32(); newStream.iWidth = resp->extract_U32(); newStream.fAspect = (float)resp->extract_Double(); newStream.strLanguage[0] = 0; newStream.strLanguage[1] = 0; newStream.strLanguage[2] = 0; newStream.strLanguage[3] = 0; newStream.iIdentifier = -1; newStreams.push_back(newStream); } else if (codecId.Codec().codec_type == XBMC_CODEC_TYPE_SUBTITLE) { const char *language = resp->extract_String(); uint32_t composition_id = resp->extract_U32(); uint32_t ancillary_id = resp->extract_U32(); newStream.strLanguage[0] = language[0]; newStream.strLanguage[1] = language[1]; newStream.strLanguage[2] = language[2]; newStream.strLanguage[3] = 0; newStream.iIdentifier = (composition_id & 0xffff) | ((ancillary_id & 0xffff) << 16); newStreams.push_back(newStream); delete[] language; } else if (codecId.Codec().codec_type == XBMC_CODEC_TYPE_RDS) { const char *language = resp->extract_String(); uint32_t rel_channel_pid = resp->extract_U32(); newStream.strLanguage[0] = language[0]; newStream.strLanguage[1] = language[1]; newStream.strLanguage[2] = language[2]; newStream.strLanguage[3] = 0; newStream.iIdentifier = -1; newStreams.push_back(newStream); delete[] language; } else { m_streams.Clear(); delete[] type; return; } delete[] type; } m_streams.UpdateStreams(newStreams); } void cVNSIDemux::StreamStatus(cResponsePacket *resp) { const char* status = resp->extract_String(); if(status != NULL) { XBMC->Log(LOG_DEBUG, "%s - %s", __FUNCTION__, status); XBMC->QueueNotification(QUEUE_INFO, status); } delete[] status; } void cVNSIDemux::StreamSignalInfo(cResponsePacket *resp) { const char* name = resp->extract_String(); const char* status = resp->extract_String(); m_Quality.fe_name = name; m_Quality.fe_status = status; m_Quality.fe_snr = resp->extract_U32(); m_Quality.fe_signal = resp->extract_U32(); m_Quality.fe_ber = resp->extract_U32(); m_Quality.fe_unc = resp->extract_U32(); delete[] name; delete[] status; } bool cVNSIDemux::StreamContentInfo(cResponsePacket *resp) { ADDON::XbmcStreamProperties streams = m_streams; while (!resp->end()) { uint32_t pid = resp->extract_U32(); PVR_STREAM_PROPERTIES::PVR_STREAM* props = streams.GetStreamById(pid); if (props) { if (props->iCodecType == XBMC_CODEC_TYPE_AUDIO) { const char *language = resp->extract_String(); props->iChannels = resp->extract_U32(); props->iSampleRate = resp->extract_U32(); props->iBlockAlign = resp->extract_U32(); props->iBitRate = resp->extract_U32(); props->iBitsPerSample = resp->extract_U32(); props->strLanguage[0] = language[0]; props->strLanguage[1] = language[1]; props->strLanguage[2] = language[2]; props->strLanguage[3] = 0; delete[] language; } else if (props->iCodecType == XBMC_CODEC_TYPE_VIDEO) { props->iFPSScale = resp->extract_U32(); props->iFPSRate = resp->extract_U32(); props->iHeight = resp->extract_U32(); props->iWidth = resp->extract_U32(); props->fAspect = (float)resp->extract_Double(); } else if (props->iCodecType == XBMC_CODEC_TYPE_SUBTITLE) { const char *language = resp->extract_String(); uint32_t composition_id = resp->extract_U32(); uint32_t ancillary_id = resp->extract_U32(); props->iIdentifier = (composition_id & 0xffff) | ((ancillary_id & 0xffff) << 16); props->strLanguage[0] = language[0]; props->strLanguage[1] = language[1]; props->strLanguage[2] = language[2]; props->strLanguage[3] = 0; delete[] language; } } else { XBMC->Log(LOG_ERROR, "%s - unknown stream id: %d", __FUNCTION__, pid); break; } } m_streams = streams; return true; } kodi-pvr-vdr-vnsi-1.10.10/src/VNSIDemux.h000066400000000000000000000045571255226123100177070ustar00rootroot00000000000000#pragma once /* * Copyright (C) 2010 Alwin Esch (Team XBMC) * http://www.xbmc.org * * This Program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This Program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XBMC; see the file COPYING. If not, write to * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. * http://www.gnu.org/copyleft/gpl.html * */ #include "VNSISession.h" #include "client.h" #include #include #include "kodi/xbmc_stream_utils.hpp" class cResponsePacket; struct SQuality { std::string fe_name; std::string fe_status; uint32_t fe_snr; uint32_t fe_signal; uint32_t fe_ber; uint32_t fe_unc; }; class cVNSIDemux : public cVNSISession { public: cVNSIDemux(); ~cVNSIDemux(); bool OpenChannel(const PVR_CHANNEL &channelinfo); void Abort(); bool GetStreamProperties(PVR_STREAM_PROPERTIES* props); DemuxPacket* Read(); bool SwitchChannel(const PVR_CHANNEL &channelinfo); int CurrentChannel() { return m_channelinfo.iChannelNumber; } bool GetSignalStatus(PVR_SIGNAL_STATUS &qualityinfo); bool IsTimeshift() { return m_bTimeshift; } bool SeekTime(int time, bool backwards, double *startpts); time_t GetPlayingTime(); time_t GetBufferTimeStart(); time_t GetBufferTimeEnd(); protected: void StreamChange(cResponsePacket *resp); void StreamStatus(cResponsePacket *resp); void StreamSignalInfo(cResponsePacket *resp); bool StreamContentInfo(cResponsePacket *resp); private: ADDON::XbmcStreamProperties m_streams; PVR_CHANNEL m_channelinfo; SQuality m_Quality; bool m_bTimeshift; uint32_t m_MuxPacketSerial; time_t m_ReferenceTime; double m_ReferenceDTS; double m_CurrentDTS; time_t m_BufferTimeStart; time_t m_BufferTimeEnd; }; kodi-pvr-vdr-vnsi-1.10.10/src/VNSIRecording.cpp000066400000000000000000000102771255226123100210700ustar00rootroot00000000000000/* * Copyright (C) 2010 Alwin Esch (Team XBMC) * http://www.xbmc.org * * This Program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This Program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XBMC; see the file COPYING. If not, write to * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. * http://www.gnu.org/copyleft/gpl.html * */ #include #include "VNSIRecording.h" #include "responsepacket.h" #include "requestpacket.h" #include "vnsicommand.h" #define SEEK_POSSIBLE 0x10 // flag used to check if protocol allows seeks using namespace ADDON; cVNSIRecording::cVNSIRecording() { } cVNSIRecording::~cVNSIRecording() { Close(); } bool cVNSIRecording::OpenRecording(const PVR_RECORDING& recinfo) { m_recinfo = recinfo; if(!cVNSISession::Open(g_szHostname, g_iPort, "XBMC RecordingStream Receiver")) return false; if(!cVNSISession::Login()) return false; cRequestPacket vrp; if (!vrp.init(VNSI_RECSTREAM_OPEN) || !vrp.add_U32(atoi(recinfo.strRecordingId))) { return false; } cResponsePacket* vresp = ReadResult(&vrp); if (!vresp) return false; uint32_t returnCode = vresp->extract_U32(); if (returnCode == VNSI_RET_OK) { m_currentPlayingRecordFrames = vresp->extract_U32(); m_currentPlayingRecordBytes = vresp->extract_U64(); m_currentPlayingRecordPosition = 0; } else XBMC->Log(LOG_ERROR, "%s - Can't open recording '%s'", __FUNCTION__, recinfo.strTitle); delete vresp; return (returnCode == VNSI_RET_OK); } void cVNSIRecording::Close() { if(!IsOpen()) return; cRequestPacket vrp; vrp.init(VNSI_RECSTREAM_CLOSE); ReadSuccess(&vrp); cVNSISession::Close(); } int cVNSIRecording::Read(unsigned char* buf, uint32_t buf_size) { if (ConnectionLost() && !TryReconnect()) { *buf = 0; SleepMs(100); return 1; } if (m_currentPlayingRecordPosition >= m_currentPlayingRecordBytes) { GetLength(); if (m_currentPlayingRecordPosition >= m_currentPlayingRecordBytes) return 0; } cRequestPacket vrp; if (!vrp.init(VNSI_RECSTREAM_GETBLOCK) || !vrp.add_U64(m_currentPlayingRecordPosition) || !vrp.add_U32(buf_size)) { return 0; } cResponsePacket* vresp = ReadResult(&vrp); if (!vresp) return -1; uint32_t length = vresp->getUserDataLength(); uint8_t *data = vresp->getUserData(); if (length > buf_size) { XBMC->Log(LOG_ERROR, "%s: PANIC - Received more bytes as requested", __FUNCTION__); free(data); delete vresp; return 0; } memcpy(buf, data, length); m_currentPlayingRecordPosition += length; free(data); delete vresp; return length; } long long cVNSIRecording::Seek(long long pos, uint32_t whence) { uint64_t nextPos = m_currentPlayingRecordPosition; switch (whence) { case SEEK_SET: nextPos = pos; break; case SEEK_CUR: nextPos += pos; break; case SEEK_END: if (m_currentPlayingRecordBytes) nextPos = m_currentPlayingRecordBytes - pos; else return -1; break; case SEEK_POSSIBLE: return 1; default: return -1; } if (nextPos >= m_currentPlayingRecordBytes) { return 0; } m_currentPlayingRecordPosition = nextPos; return m_currentPlayingRecordPosition; } long long cVNSIRecording::Position(void) { return m_currentPlayingRecordPosition; } long long cVNSIRecording::Length(void) { return m_currentPlayingRecordBytes; } void cVNSIRecording::OnReconnect() { OpenRecording(m_recinfo); } void cVNSIRecording::GetLength() { cRequestPacket vrp; if (!vrp.init(VNSI_RECSTREAM_GETLENGTH)) return; cResponsePacket* vresp = ReadResult(&vrp); if (!vresp) return; m_currentPlayingRecordBytes = vresp->extract_U64(); delete vresp; } kodi-pvr-vdr-vnsi-1.10.10/src/VNSIRecording.h000066400000000000000000000026601255226123100205320ustar00rootroot00000000000000#pragma once /* * Copyright (C) 2010 Alwin Esch (Team XBMC) * http://www.xbmc.org * * This Program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This Program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XBMC; see the file COPYING. If not, write to * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. * http://www.gnu.org/copyleft/gpl.html * */ #include "VNSISession.h" #include "client.h" class cVNSIRecording : public cVNSISession { public: cVNSIRecording(); ~cVNSIRecording(); bool OpenRecording(const PVR_RECORDING& recinfo); void Close(); int Read(unsigned char* buf, uint32_t buf_size); long long Seek(long long pos, uint32_t whence); long long Position(void); long long Length(void); protected: void OnReconnect(); void GetLength(); private: PVR_RECORDING m_recinfo; uint64_t m_currentPlayingRecordBytes; uint32_t m_currentPlayingRecordFrames; uint64_t m_currentPlayingRecordPosition; }; kodi-pvr-vdr-vnsi-1.10.10/src/VNSISession.cpp000066400000000000000000000241261255226123100205750ustar00rootroot00000000000000/* * Copyright (C) 2010 Alwin Esch (Team XBMC) * http://www.xbmc.org * * This Program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This Program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XBMC; see the file COPYING. If not, write to * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. * http://www.gnu.org/copyleft/gpl.html * */ #include "VNSISession.h" #include "client.h" #include #include #include #include #include "responsepacket.h" #include "requestpacket.h" #include "vnsicommand.h" #include "tools.h" #include "platform/sockets/tcp.h" #include "platform/util/timeutils.h" /* Needed on Mac OS/X */ #ifndef SOL_TCP #define SOL_TCP IPPROTO_TCP #endif using namespace ADDON; using namespace PLATFORM; cVNSISession::cVNSISession() : m_protocol(0) , m_socket(NULL) , m_connectionLost(false) { } cVNSISession::~cVNSISession() { Close(); } void cVNSISession::Close() { if(IsOpen()) { m_socket->Close(); } if (m_socket) { delete m_socket; m_socket = NULL; } } bool cVNSISession::Open(const std::string& hostname, int port, const char *name) { Close(); uint64_t iNow = GetTimeMs(); uint64_t iTarget = iNow + g_iConnectTimeout * 1000; if (!m_socket) m_socket = new CTcpConnection(hostname.c_str(), port); while (!m_socket->IsOpen() && iNow < iTarget) { if (!m_socket->Open(iTarget - iNow)) CEvent::Sleep(100); iNow = GetTimeMs(); } if (!m_socket->IsOpen()) { XBMC->Log(LOG_ERROR, "%s - failed to connect to the backend (%s)", __FUNCTION__, m_socket->GetError().c_str()); return false; } // store connection data m_hostname = hostname; m_port = port; if(name != NULL) m_name = name; return true; } bool cVNSISession::Login() { try { cRequestPacket vrp; if (!vrp.init(VNSI_LOGIN)) throw "Can't init cRequestPacket"; if (!vrp.add_U32(VNSI_PROTOCOLVERSION)) throw "Can't add protocol version to RequestPacket"; if (!vrp.add_U8(false)) throw "Can't add netlog flag"; if (!m_name.empty()) { if (!vrp.add_String(m_name.c_str())) throw "Can't add client name to RequestPacket"; } else { if (!vrp.add_String("XBMC Media Center")) throw "Can't add client name to RequestPacket"; } // read welcome cResponsePacket* vresp = ReadResult(&vrp); if (!vresp) throw "failed to read greeting from server"; uint32_t protocol = vresp->extract_U32(); uint32_t vdrTime = vresp->extract_U32(); int32_t vdrTimeOffset = vresp->extract_S32(); const char *ServerName = vresp->extract_String(); const char *ServerVersion = vresp->extract_String(); m_server = ServerName; m_version = ServerVersion; m_protocol = (int)protocol; if (m_protocol < VNSI_MIN_PROTOCOLVERSION) throw "Protocol versions do not match"; if (m_name.empty()) XBMC->Log(LOG_NOTICE, "Logged in at '%lu+%i' to '%s' Version: '%s' with protocol version '%d'", vdrTime, vdrTimeOffset, ServerName, ServerVersion, protocol); delete[] ServerName; delete[] ServerVersion; delete vresp; } catch (const char * str) { XBMC->Log(LOG_ERROR, "%s - %s", __FUNCTION__,str); if (m_socket) { m_socket->Close(); delete m_socket; m_socket = NULL; } return false; } return true; } cResponsePacket* cVNSISession::ReadMessage(int iInitialTimeout /*= 10000*/, int iDatapacketTimeout /*= 10000*/) { uint32_t channelID = 0; uint32_t userDataLength = 0; uint8_t* userData = NULL; cResponsePacket* vresp = NULL; CLockObject lock(m_readMutex); if(!readData((uint8_t*)&channelID, sizeof(uint32_t), iInitialTimeout)) return NULL; // Data was read channelID = ntohl(channelID); if (channelID == VNSI_CHANNEL_STREAM) { vresp = new cResponsePacket(); if (!readData(vresp->getHeader(), vresp->getStreamHeaderLength(), iDatapacketTimeout)) { delete vresp; XBMC->Log(LOG_ERROR, "%s - lost sync on channel stream packet", __FUNCTION__); SignalConnectionLost(); return NULL; } vresp->extractStreamHeader(); userDataLength = vresp->getUserDataLength(); if(vresp->getOpCodeID() == VNSI_STREAM_MUXPKT) { DemuxPacket* p = PVR->AllocateDemuxPacket(userDataLength); userData = (uint8_t*)p; if (userDataLength > 0) { if (!userData) return NULL; if (!readData(p->pData, userDataLength, iDatapacketTimeout)) { PVR->FreeDemuxPacket(p); delete vresp; XBMC->Log(LOG_ERROR, "%s - lost sync on channel stream mux packet", __FUNCTION__); SignalConnectionLost(); return NULL; } } } else if (userDataLength > 0) { userData = (uint8_t*)malloc(userDataLength); if (!userData) return NULL; if (!readData(userData, userDataLength, iDatapacketTimeout)) { free(userData); delete vresp; XBMC->Log(LOG_ERROR, "%s - lost sync on channel stream (other) packet", __FUNCTION__); SignalConnectionLost(); return NULL; } } vresp->setStream(userData, userDataLength); } else if (channelID == VNSI_CHANNEL_OSD) { vresp = new cResponsePacket(); if (!readData(vresp->getHeader(), vresp->getOSDHeaderLength(), iDatapacketTimeout)) { XBMC->Log(LOG_ERROR, "%s - lost sync on osd packet", __FUNCTION__); SignalConnectionLost(); return NULL; } vresp->extractOSDHeader(); userDataLength = vresp->getUserDataLength(); if (userDataLength > 5000000) return NULL; // how big can these packets get? userData = NULL; if (userDataLength > 0) { userData = (uint8_t*)malloc(userDataLength); if (!userData) return NULL; if (!readData(userData, userDataLength, iDatapacketTimeout)) { free(userData); delete vresp; XBMC->Log(LOG_ERROR, "%s - lost sync on additional osd packet", __FUNCTION__); SignalConnectionLost(); return NULL; } } vresp->setOSD(userData, userDataLength); } else { vresp = new cResponsePacket(); if (!readData(vresp->getHeader(), vresp->getHeaderLength(), iDatapacketTimeout)) { delete vresp; XBMC->Log(LOG_ERROR, "%s - lost sync on response packet", __FUNCTION__); SignalConnectionLost(); return NULL; } vresp->extractHeader(); userDataLength = vresp->getUserDataLength(); if (userDataLength > 5000000) return NULL; // how big can these packets get? userData = NULL; if (userDataLength > 0) { userData = (uint8_t*)malloc(userDataLength); if (!userData) return NULL; if (!readData(userData, userDataLength, iDatapacketTimeout)) { free(userData); delete vresp; XBMC->Log(LOG_ERROR, "%s - lost sync on additional response packet", __FUNCTION__); SignalConnectionLost(); return NULL; } } if (channelID == VNSI_CHANNEL_STATUS) vresp->setStatus(userData, userDataLength); else vresp->setResponse(userData, userDataLength); } return vresp; } bool cVNSISession::TransmitMessage(cRequestPacket* vrp) { if (!IsOpen()) return false; ssize_t iWriteResult = m_socket->Write(vrp->getPtr(), vrp->getLen()); if (iWriteResult != (ssize_t)vrp->getLen()) { XBMC->Log(LOG_ERROR, "%s - Failed to write packet (%s), bytes written: %d of total: %d", __FUNCTION__, m_socket->GetError().c_str(), iWriteResult, vrp->getLen()); return false; } return true; } cResponsePacket* cVNSISession::ReadResult(cRequestPacket* vrp) { if(!TransmitMessage(vrp)) { SignalConnectionLost(); return NULL; } cResponsePacket *pkt = NULL; while((pkt = ReadMessage())) { /* Discard everything other as response packets until it is received */ if (pkt->getChannelID() == VNSI_CHANNEL_REQUEST_RESPONSE && pkt->getRequestID() == vrp->getSerial()) { return pkt; } else delete pkt; } SignalConnectionLost(); return NULL; } bool cVNSISession::ReadSuccess(cRequestPacket* vrp) { cResponsePacket *pkt = NULL; if((pkt = ReadResult(vrp)) == NULL) { return false; } uint32_t retCode = pkt->extract_U32(); delete pkt; if(retCode != VNSI_RET_OK) { XBMC->Log(LOG_ERROR, "%s - failed with error code '%i'", __FUNCTION__, retCode); return false; } return true; } void cVNSISession::OnReconnect() { } void cVNSISession::OnDisconnect() { } bool cVNSISession::TryReconnect() { if(!Open(m_hostname, m_port)) return false; if(!Login()) return false; XBMC->Log(LOG_DEBUG, "%s - reconnected", __FUNCTION__); m_connectionLost = false; OnReconnect(); return true; } bool cVNSISession::IsOpen() { bool bReturn(false); if (m_socket && m_socket->IsOpen()) bReturn = true; return bReturn; } void cVNSISession::SignalConnectionLost() { if(m_connectionLost) return; XBMC->Log(LOG_ERROR, "%s - connection lost !!!", __FUNCTION__); m_connectionLost = true; Close(); OnDisconnect(); } bool cVNSISession::readData(uint8_t* buffer, int totalBytes, int timeout) { int bytesRead = m_socket->Read(buffer, totalBytes, timeout); if (bytesRead == totalBytes) return true; else if (m_socket->GetErrorNumber() == ETIMEDOUT && bytesRead > 0) { // we did read something. try to finish the read bytesRead += m_socket->Read(buffer+bytesRead, totalBytes-bytesRead, timeout); if (bytesRead == totalBytes) return true; } else if (m_socket->GetErrorNumber() == ETIMEDOUT) { return false; } SignalConnectionLost(); return false; } void cVNSISession::SleepMs(int ms) { CEvent::Sleep(ms); } kodi-pvr-vdr-vnsi-1.10.10/src/VNSISession.h000066400000000000000000000044171255226123100202430ustar00rootroot00000000000000#pragma once /* * Copyright (C) 2010 Alwin Esch (Team XBMC) * http://www.xbmc.org * * This Program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This Program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XBMC; see the file COPYING. If not, write to * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. * http://www.gnu.org/copyleft/gpl.html * */ #include #include #include "platform/threads/threads.h" class cResponsePacket; class cRequestPacket; namespace PLATFORM { class CTcpConnection; } class cVNSISession { public: cVNSISession(); virtual ~cVNSISession(); virtual bool Open(const std::string& hostname, int port, const char *name = NULL); virtual bool Login(); virtual void Close(); cResponsePacket* ReadMessage(int iInitialTimeout = 10000, int iDatapacketTimeout = 10000); bool TransmitMessage(cRequestPacket* vrp); cResponsePacket* ReadResult(cRequestPacket* vrp); bool ReadSuccess(cRequestPacket* m); int GetProtocol() { return m_protocol; } const std::string& GetServerName() { return m_server; } const std::string& GetVersion() { return m_version; } protected: void SleepMs(int ms); bool TryReconnect(); bool IsOpen(); virtual void OnDisconnect(); virtual void OnReconnect(); virtual void SignalConnectionLost(); bool ConnectionLost() { return m_connectionLost; } std::string m_hostname; int m_port; std::string m_name; PLATFORM::CMutex m_mutex; int m_protocol; std::string m_server; std::string m_version; private: bool readData(uint8_t* buffer, int totalBytes, int timeout); PLATFORM::CTcpConnection *m_socket; PLATFORM::CMutex m_readMutex; bool m_connectionLost; }; kodi-pvr-vdr-vnsi-1.10.10/src/client.cpp000066400000000000000000000543441255226123100177350ustar00rootroot00000000000000/* * Copyright (C) 2010 Alwin Esch (Team XBMC) * http://xbmc.org * * This Program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This Program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XBMC; see the file COPYING. If not, write to * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. * http://www.gnu.org/copyleft/gpl.html * */ #include "client.h" #include "kodi/xbmc_pvr_dll.h" #include "VNSIDemux.h" #include "VNSIRecording.h" #include "VNSIData.h" #include "VNSIChannelScan.h" #include "VNSIAdmin.h" #include "platform/util/util.h" #include #include #include using namespace std; using namespace ADDON; ADDON_STATUS m_CurStatus = ADDON_STATUS_UNKNOWN; /* User adjustable settings are saved here. * Default values are defined inside client.h * and exported to the other source files. */ std::string g_szHostname = DEFAULT_HOST; std::string g_szWolMac = ""; int g_iPort = DEFAULT_PORT; bool g_bCharsetConv = DEFAULT_CHARCONV; ///< Convert VDR's incoming strings to UTF8 character set bool g_bHandleMessages = DEFAULT_HANDLE_MSG; ///< Send VDR's OSD status messages to XBMC OSD int g_iConnectTimeout = DEFAULT_TIMEOUT; ///< The Socket connection timeout int g_iPriority = DEFAULT_PRIORITY; ///< The Priority this client have in response to other clients bool g_bAutoChannelGroups = DEFAULT_AUTOGROUPS; int g_iTimeshift = 1; std::string g_szIconPath = ""; CHelper_libXBMC_addon *XBMC = NULL; CHelper_libXBMC_codec *CODEC = NULL; CHelper_libKODI_guilib *GUI = NULL; CHelper_libXBMC_pvr *PVR = NULL; cVNSIDemux *VNSIDemuxer = NULL; cVNSIData *VNSIData = NULL; cVNSIRecording *VNSIRecording = NULL; bool IsTimeshift; time_t TimeshiftStartTime; time_t TimeshiftEndTime; time_t TimeshiftPlayTime; PLATFORM::CMutex TimeshiftMutex; extern "C" { /*********************************************************** * Standart AddOn related public library functions ***********************************************************/ ADDON_STATUS ADDON_Create(void* hdl, void* props) { if (!hdl || !props) return ADDON_STATUS_UNKNOWN; XBMC = new CHelper_libXBMC_addon; if (!XBMC->RegisterMe(hdl)) { SAFE_DELETE(XBMC); return ADDON_STATUS_PERMANENT_FAILURE; } GUI = new CHelper_libKODI_guilib; if (!GUI->RegisterMe(hdl)) { SAFE_DELETE(GUI); SAFE_DELETE(XBMC); return ADDON_STATUS_PERMANENT_FAILURE; } CODEC = new CHelper_libXBMC_codec; if (!CODEC->RegisterMe(hdl)) { SAFE_DELETE(CODEC); SAFE_DELETE(GUI); SAFE_DELETE(XBMC); return ADDON_STATUS_PERMANENT_FAILURE; } PVR = new CHelper_libXBMC_pvr; if (!PVR->RegisterMe(hdl)) { SAFE_DELETE(PVR); SAFE_DELETE(CODEC); SAFE_DELETE(GUI); SAFE_DELETE(XBMC); return ADDON_STATUS_PERMANENT_FAILURE; } XBMC->Log(LOG_DEBUG, "Creating VDR VNSI PVR-Client"); m_CurStatus = ADDON_STATUS_UNKNOWN; /* Read setting "host" from settings.xml */ char * buffer = (char*) malloc(128); buffer[0] = 0; /* Set the end of string */ if (XBMC->GetSetting("host", buffer)) g_szHostname = buffer; else { /* If setting is unknown fallback to defaults */ XBMC->Log(LOG_ERROR, "Couldn't get 'host' setting, falling back to '%s' as default", DEFAULT_HOST); g_szHostname = DEFAULT_HOST; } free(buffer); buffer = (char*) malloc(64); buffer[0] = 0; /* Set the end of string */ /* Read setting "wol_mac" from settings.xml */ if (XBMC->GetSetting("wol_mac", buffer)) g_szWolMac = buffer; else { /* If setting is unknown fallback to empty default */ XBMC->Log(LOG_ERROR, "Couldn't get 'wol_mac' setting, falling back to default"); g_szWolMac = ""; } free(buffer); /* Read setting "port" from settings.xml */ if (!XBMC->GetSetting("port", &g_iPort)) { /* If setting is unknown fallback to defaults */ XBMC->Log(LOG_ERROR, "Couldn't get 'port' setting, falling back to '%i' as default", DEFAULT_PORT); g_iPort = DEFAULT_PORT; } /* Read setting "priority" from settings.xml */ int prio = DEFAULT_PRIORITY; if (!XBMC->GetSetting("priority", &prio)) { /* If setting is unknown fallback to defaults */ XBMC->Log(LOG_ERROR, "Couldn't get 'priority' setting, falling back to %i as default", -1); prio = DEFAULT_PRIORITY; } int prioVals[] = {-99,-1,0,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99,100}; g_iPriority = prioVals[prio]; /* Read setting "timeshift" from settings.xml */ if (!XBMC->GetSetting("timeshift", &g_iTimeshift)) { /* If setting is unknown fallback to defaults */ XBMC->Log(LOG_ERROR, "Couldn't get 'timeshift' setting, falling back to %i as default", 1); g_iTimeshift = 1; } /* Read setting "convertchar" from settings.xml */ if (!XBMC->GetSetting("convertchar", &g_bCharsetConv)) { /* If setting is unknown fallback to defaults */ XBMC->Log(LOG_ERROR, "Couldn't get 'convertchar' setting, falling back to 'false' as default"); g_bCharsetConv = DEFAULT_CHARCONV; } /* Read setting "timeout" from settings.xml */ if (!XBMC->GetSetting("timeout", &g_iConnectTimeout)) { /* If setting is unknown fallback to defaults */ XBMC->Log(LOG_ERROR, "Couldn't get 'timeout' setting, falling back to %i seconds as default", DEFAULT_TIMEOUT); g_iConnectTimeout = DEFAULT_TIMEOUT; } /* Read setting "handlemessages" from settings.xml */ if (!XBMC->GetSetting("handlemessages", &g_bHandleMessages)) { /* If setting is unknown fallback to defaults */ XBMC->Log(LOG_ERROR, "Couldn't get 'handlemessages' setting, falling back to 'true' as default"); g_bHandleMessages = DEFAULT_HANDLE_MSG; } /* Read setting "autochannelgroups" from settings.xml */ if (!XBMC->GetSetting("autochannelgroups", &g_bAutoChannelGroups)) { /* If setting is unknown fallback to defaults */ XBMC->Log(LOG_ERROR, "Couldn't get 'autochannelgroups' setting, falling back to 'false' as default"); g_bAutoChannelGroups = DEFAULT_AUTOGROUPS; } /* Read setting "iconpath" from settings.xml */ buffer = (char*) malloc(512); buffer[0] = 0; /* Set the end of string */ if (XBMC->GetSetting("iconpath", buffer)) g_szIconPath = buffer; else { /* If setting is unknown fallback to defaults */ XBMC->Log(LOG_ERROR, "Couldn't get 'iconpath' setting"); g_szIconPath = ""; } free(buffer); VNSIData = new cVNSIData; if (!VNSIData->Open(g_szHostname, g_iPort, NULL, g_szWolMac)) { ADDON_Destroy(); m_CurStatus = ADDON_STATUS_LOST_CONNECTION; return m_CurStatus; } if (!VNSIData->Login()) { ADDON_Destroy(); m_CurStatus = ADDON_STATUS_LOST_CONNECTION; return m_CurStatus; } if (!VNSIData->EnableStatusInterface(g_bHandleMessages)) { ADDON_Destroy(); m_CurStatus = ADDON_STATUS_LOST_CONNECTION; return m_CurStatus; } PVR_MENUHOOK hook; hook.iHookId = 1; hook.category = PVR_MENUHOOK_SETTING; hook.iLocalizedStringId = 30107; PVR->AddMenuHook(&hook); m_CurStatus = ADDON_STATUS_OK; return m_CurStatus; } ADDON_STATUS ADDON_GetStatus() { return m_CurStatus; } void ADDON_Destroy() { SAFE_DELETE(CODEC); if (VNSIDemuxer) SAFE_DELETE(VNSIDemuxer); if (VNSIRecording) SAFE_DELETE(VNSIRecording); if (VNSIData) SAFE_DELETE(VNSIData); if (PVR) SAFE_DELETE(PVR); if (GUI) SAFE_DELETE(GUI); if (XBMC) SAFE_DELETE(XBMC); m_CurStatus = ADDON_STATUS_UNKNOWN; } bool ADDON_HasSettings() { return true; } unsigned int ADDON_GetSettings(ADDON_StructSetting ***sSet) { return 0; } ADDON_STATUS ADDON_SetSetting(const char *settingName, const void *settingValue) { string str = settingName; if (str == "host") { string tmp_sHostname; XBMC->Log(LOG_INFO, "Changed Setting 'host' from %s to %s", g_szHostname.c_str(), (const char*) settingValue); tmp_sHostname = g_szHostname; g_szHostname = (const char*) settingValue; if (tmp_sHostname != g_szHostname) return ADDON_STATUS_NEED_RESTART; } else if (str == "wol_mac") { XBMC->Log(LOG_INFO, "Changed Setting 'wol_mac'"); string tmp_sWol_mac; XBMC->Log(LOG_INFO, "Changed Setting 'wol_mac' from %s to %s", g_szWolMac.c_str(), (const char*) settingValue); tmp_sWol_mac = g_szWolMac; g_szWolMac = (const char*) settingValue; if (tmp_sWol_mac != g_szWolMac) return ADDON_STATUS_NEED_RESTART; } else if (str == "port") { XBMC->Log(LOG_INFO, "Changed Setting 'port' from %u to %u", g_iPort, *(int*) settingValue); if (g_iPort != *(int*) settingValue) { g_iPort = *(int*) settingValue; return ADDON_STATUS_NEED_RESTART; } } else if (str == "priority") { XBMC->Log(LOG_INFO, "Changed Setting 'priority' from %u to %u", g_iPriority, *(int*) settingValue); g_iPriority = *(int*) settingValue; } else if (str == "timeshift") { XBMC->Log(LOG_INFO, "Changed Setting 'timeshift' from %u to %u", g_iTimeshift, *(int*) settingValue); g_iTimeshift = *(int*) settingValue; } else if (str == "convertchar") { XBMC->Log(LOG_INFO, "Changed Setting 'convertchar' from %u to %u", g_bCharsetConv, *(bool*) settingValue); g_bCharsetConv = *(bool*) settingValue; } else if (str == "timeout") { XBMC->Log(LOG_INFO, "Changed Setting 'timeout' from %u to %u", g_iConnectTimeout, *(int*) settingValue); g_iConnectTimeout = *(int*) settingValue; } else if (str == "handlemessages") { XBMC->Log(LOG_INFO, "Changed Setting 'handlemessages' from %u to %u", g_bHandleMessages, *(bool*) settingValue); g_bHandleMessages = *(bool*) settingValue; if (VNSIData) VNSIData->EnableStatusInterface(g_bHandleMessages); } else if (str == "autochannelgroups") { XBMC->Log(LOG_INFO, "Changed Setting 'autochannelgroups' from %u to %u", g_bAutoChannelGroups, *(bool*) settingValue); if (g_bAutoChannelGroups != *(bool*) settingValue) { g_bAutoChannelGroups = *(bool*) settingValue; return ADDON_STATUS_NEED_RESTART; } } return ADDON_STATUS_OK; } void ADDON_Stop() { } void ADDON_FreeSettings() { } void ADDON_Announce(const char *flag, const char *sender, const char *message, const void *data) { } /*********************************************************** * PVR Client AddOn specific public library functions ***********************************************************/ const char* GetPVRAPIVersion(void) { static const char *strApiVersion = XBMC_PVR_API_VERSION; return strApiVersion; } const char* GetMininumPVRAPIVersion(void) { static const char *strMinApiVersion = XBMC_PVR_MIN_API_VERSION; return strMinApiVersion; } const char* GetGUIAPIVersion(void) { static const char *strGuiApiVersion = KODI_GUILIB_API_VERSION; return strGuiApiVersion; } const char* GetMininumGUIAPIVersion(void) { static const char *strMinGuiApiVersion = KODI_GUILIB_MIN_API_VERSION; return strMinGuiApiVersion; } PVR_ERROR GetAddonCapabilities(PVR_ADDON_CAPABILITIES* pCapabilities) { pCapabilities->bSupportsEPG = true; pCapabilities->bSupportsRecordings = true; pCapabilities->bSupportsRecordingEdl = true; pCapabilities->bSupportsTimers = true; pCapabilities->bSupportsTV = true; pCapabilities->bSupportsRadio = true; pCapabilities->bSupportsChannelGroups = true; pCapabilities->bHandlesInputStream = true; pCapabilities->bHandlesDemuxing = true; if (VNSIData && VNSIData->SupportChannelScan()) pCapabilities->bSupportsChannelScan = true; if (VNSIData && VNSIData->SupportRecordingsUndelete()) pCapabilities->bSupportsRecordingsUndelete = true; return PVR_ERROR_NO_ERROR; } const char * GetBackendName(void) { static std::string BackendName = VNSIData ? VNSIData->GetServerName() : "unknown"; return BackendName.c_str(); } const char * GetBackendVersion(void) { static std::string BackendVersion; if (VNSIData) { std::stringstream format; format << VNSIData->GetVersion() << "(Protocol: " << VNSIData->GetProtocol() << ")"; BackendVersion = format.str(); } return BackendVersion.c_str(); } const char * GetConnectionString(void) { static std::string ConnectionString; std::stringstream format; if (VNSIData) { format << g_szHostname << ":" << g_iPort; } else { format << g_szHostname << ":" << g_iPort << " (addon error!)"; } ConnectionString = format.str(); return ConnectionString.c_str(); } const char * GetBackendHostname(void) { return g_szHostname.c_str(); } PVR_ERROR GetDriveSpace(long long *iTotal, long long *iUsed) { if (!VNSIData) return PVR_ERROR_SERVER_ERROR; return (VNSIData->GetDriveSpace(iTotal, iUsed) ? PVR_ERROR_NO_ERROR : PVR_ERROR_SERVER_ERROR); } PVR_ERROR OpenDialogChannelScan(void) { cVNSIChannelScan scanner; scanner.Open(g_szHostname, g_iPort); return PVR_ERROR_NO_ERROR; } /*******************************************/ /** PVR EPG Functions **/ PVR_ERROR GetEPGForChannel(ADDON_HANDLE handle, const PVR_CHANNEL &channel, time_t iStart, time_t iEnd) { if (!VNSIData) return PVR_ERROR_SERVER_ERROR; return (VNSIData->GetEPGForChannel(handle, channel, iStart, iEnd) ? PVR_ERROR_NO_ERROR: PVR_ERROR_SERVER_ERROR); } /*******************************************/ /** PVR Channel Functions **/ int GetChannelsAmount(void) { if (!VNSIData) return 0; return VNSIData->GetChannelsCount(); } PVR_ERROR GetChannels(ADDON_HANDLE handle, bool bRadio) { if (!VNSIData) return PVR_ERROR_SERVER_ERROR; return (VNSIData->GetChannelsList(handle, bRadio) ? PVR_ERROR_NO_ERROR : PVR_ERROR_SERVER_ERROR); } /*******************************************/ /** PVR Channelgroups Functions **/ int GetChannelGroupsAmount() { if (!VNSIData) return PVR_ERROR_SERVER_ERROR; return VNSIData->GetChannelGroupCount(g_bAutoChannelGroups); } PVR_ERROR GetChannelGroups(ADDON_HANDLE handle, bool bRadio) { if (!VNSIData) return PVR_ERROR_SERVER_ERROR; if(VNSIData->GetChannelGroupCount(g_bAutoChannelGroups) > 0) return VNSIData->GetChannelGroupList(handle, bRadio) ? PVR_ERROR_NO_ERROR : PVR_ERROR_SERVER_ERROR; return PVR_ERROR_NO_ERROR; } PVR_ERROR GetChannelGroupMembers(ADDON_HANDLE handle, const PVR_CHANNEL_GROUP &group) { if (!VNSIData) return PVR_ERROR_SERVER_ERROR; return VNSIData->GetChannelGroupMembers(handle, group) ? PVR_ERROR_NO_ERROR : PVR_ERROR_SERVER_ERROR; } /*******************************************/ /** PVR Timer Functions **/ int GetTimersAmount(void) { if (!VNSIData) return 0; return VNSIData->GetTimersCount(); } PVR_ERROR GetTimers(ADDON_HANDLE handle) { if (!VNSIData) return PVR_ERROR_SERVER_ERROR; return (VNSIData->GetTimersList(handle) ? PVR_ERROR_NO_ERROR : PVR_ERROR_SERVER_ERROR); } PVR_ERROR AddTimer(const PVR_TIMER &timer) { if (!VNSIData) return PVR_ERROR_SERVER_ERROR; return VNSIData->AddTimer(timer); } PVR_ERROR DeleteTimer(const PVR_TIMER &timer, bool bForce) { if (!VNSIData) return PVR_ERROR_SERVER_ERROR; return VNSIData->DeleteTimer(timer, bForce); } PVR_ERROR UpdateTimer(const PVR_TIMER &timer) { if (!VNSIData) return PVR_ERROR_SERVER_ERROR; return VNSIData->UpdateTimer(timer); } /*******************************************/ /** PVR Recording Functions **/ int GetRecordingsAmount(bool deleted) { if (!VNSIData) return 0; if (!deleted) return VNSIData->GetRecordingsCount(); else return VNSIData->GetDeletedRecordingsCount(); } PVR_ERROR GetRecordings(ADDON_HANDLE handle, bool deleted) { if (!VNSIData) return PVR_ERROR_SERVER_ERROR; if (!deleted) return VNSIData->GetRecordingsList(handle); else return VNSIData->GetDeletedRecordingsList(handle); } PVR_ERROR RenameRecording(const PVR_RECORDING &recording) { if (!VNSIData) return PVR_ERROR_SERVER_ERROR; return VNSIData->RenameRecording(recording, recording.strTitle); } PVR_ERROR DeleteRecording(const PVR_RECORDING &recording) { if (!VNSIData) return PVR_ERROR_SERVER_ERROR; return VNSIData->DeleteRecording(recording); } PVR_ERROR UndeleteRecording(const PVR_RECORDING& recording) { if (!VNSIData) return PVR_ERROR_SERVER_ERROR; return VNSIData->UndeleteRecording(recording); } PVR_ERROR DeleteAllRecordingsFromTrash() { if (!VNSIData) return PVR_ERROR_SERVER_ERROR; return VNSIData->DeleteAllRecordingsFromTrash(); } /*******************************************/ /** PVR Live Stream Functions **/ bool OpenLiveStream(const PVR_CHANNEL &channel) { CloseLiveStream(); VNSIDemuxer = new cVNSIDemux; return VNSIDemuxer->OpenChannel(channel); } void CloseLiveStream(void) { if (VNSIDemuxer) { VNSIDemuxer->Close(); delete VNSIDemuxer; VNSIDemuxer = NULL; } } PVR_ERROR GetStreamProperties(PVR_STREAM_PROPERTIES* pProperties) { if (!VNSIDemuxer) return PVR_ERROR_SERVER_ERROR; return (VNSIDemuxer->GetStreamProperties(pProperties) ? PVR_ERROR_NO_ERROR : PVR_ERROR_SERVER_ERROR); } void DemuxAbort(void) { if (VNSIDemuxer) VNSIDemuxer->Abort(); } DemuxPacket* DemuxRead(void) { if (!VNSIDemuxer) return NULL; DemuxPacket *pkt = VNSIDemuxer->Read(); TimeshiftMutex.Lock(); IsTimeshift = VNSIDemuxer->IsTimeshift(); TimeshiftStartTime = VNSIDemuxer->GetBufferTimeStart(); TimeshiftEndTime = VNSIDemuxer->GetBufferTimeEnd(); TimeshiftPlayTime = VNSIDemuxer->GetPlayingTime(); TimeshiftMutex.Unlock(); return pkt; } int GetCurrentClientChannel(void) { if (VNSIDemuxer) return VNSIDemuxer->CurrentChannel(); return -1; } bool SwitchChannel(const PVR_CHANNEL &channel) { if (VNSIDemuxer) return VNSIDemuxer->SwitchChannel(channel); return false; } PVR_ERROR SignalStatus(PVR_SIGNAL_STATUS &signalStatus) { if (!VNSIDemuxer) return PVR_ERROR_SERVER_ERROR; return (VNSIDemuxer->GetSignalStatus(signalStatus) ? PVR_ERROR_NO_ERROR : PVR_ERROR_SERVER_ERROR); } bool CanPauseStream(void) { bool ret = false; if (VNSIDemuxer) ret = VNSIDemuxer->IsTimeshift(); return ret; } bool CanSeekStream(void) { bool ret = false; if (VNSIDemuxer) ret = VNSIDemuxer->IsTimeshift(); return ret; } bool SeekTime(int time, bool backwards, double *startpts) { bool ret = false; if (VNSIDemuxer) ret = VNSIDemuxer->SeekTime(time, backwards, startpts); return ret; } time_t GetPlayingTime() { time_t time = 0; if (VNSIDemuxer) { TimeshiftMutex.Lock(); time = TimeshiftPlayTime; TimeshiftMutex.Unlock(); } return time; } time_t GetBufferTimeStart() { time_t time = 0; if (VNSIDemuxer) { TimeshiftMutex.Lock(); time = TimeshiftStartTime; TimeshiftMutex.Unlock(); } return time; } time_t GetBufferTimeEnd() { time_t time = 0; if (VNSIDemuxer) { TimeshiftMutex.Lock(); time = TimeshiftEndTime; TimeshiftMutex.Unlock(); } return time; } bool IsTimeshifting() { bool ret = false; if (VNSIDemuxer) { TimeshiftMutex.Lock(); ret = IsTimeshift; TimeshiftMutex.Unlock(); } return ret; } void SetSpeed(int) {}; void PauseStream(bool bPaused) {} /*******************************************/ /** PVR Recording Stream Functions **/ bool OpenRecordedStream(const PVR_RECORDING &recording) { if(!VNSIData) return false; CloseRecordedStream(); VNSIRecording = new cVNSIRecording; return VNSIRecording->OpenRecording(recording); } void CloseRecordedStream(void) { if (VNSIRecording) { VNSIRecording->Close(); delete VNSIRecording; VNSIRecording = NULL; } } int ReadRecordedStream(unsigned char *pBuffer, unsigned int iBufferSize) { if (!VNSIRecording) return -1; return VNSIRecording->Read(pBuffer, iBufferSize); } long long SeekRecordedStream(long long iPosition, int iWhence /* = SEEK_SET */) { if (VNSIRecording) return VNSIRecording->Seek(iPosition, iWhence); return -1; } long long PositionRecordedStream(void) { if (VNSIRecording) return VNSIRecording->Position(); return 0; } long long LengthRecordedStream(void) { if (VNSIRecording) return VNSIRecording->Length(); return 0; } PVR_ERROR GetRecordingEdl(const PVR_RECORDING& recinfo, PVR_EDL_ENTRY edl[], int *size) { if(!VNSIData) return PVR_ERROR_UNKNOWN; return VNSIData->GetRecordingEdl(recinfo, edl, size); } /*******************************************/ /** PVR Menu Hook Functions **/ PVR_ERROR CallMenuHook(const PVR_MENUHOOK &menuhook, const PVR_MENUHOOK_DATA &item) { if (menuhook.iHookId == 1) { cVNSIAdmin osd; osd.Open(g_szHostname, g_iPort); } return PVR_ERROR_NO_ERROR; } /** UNUSED API FUNCTIONS */ PVR_ERROR DeleteChannel(const PVR_CHANNEL &channel) { return PVR_ERROR_NOT_IMPLEMENTED; } PVR_ERROR RenameChannel(const PVR_CHANNEL &channel) { return PVR_ERROR_NOT_IMPLEMENTED; } PVR_ERROR MoveChannel(const PVR_CHANNEL &channel) { return PVR_ERROR_NOT_IMPLEMENTED; } PVR_ERROR OpenDialogChannelSettings(const PVR_CHANNEL &channel) { return PVR_ERROR_NOT_IMPLEMENTED; } PVR_ERROR OpenDialogChannelAdd(const PVR_CHANNEL &channel) { return PVR_ERROR_NOT_IMPLEMENTED; } void DemuxReset(void) {} void DemuxFlush(void) {} int ReadLiveStream(unsigned char *pBuffer, unsigned int iBufferSize) { return 0; } long long SeekLiveStream(long long iPosition, int iWhence /* = SEEK_SET */) { return -1; } long long PositionLiveStream(void) { return -1; } long long LengthLiveStream(void) { return -1; } const char * GetLiveStreamURL(const PVR_CHANNEL &channel) { return ""; } PVR_ERROR SetRecordingPlayCount(const PVR_RECORDING &recording, int count) { return PVR_ERROR_NOT_IMPLEMENTED; } PVR_ERROR SetRecordingLastPlayedPosition(const PVR_RECORDING &recording, int lastplayedposition) { return PVR_ERROR_NOT_IMPLEMENTED; } int GetRecordingLastPlayedPosition(const PVR_RECORDING &recording) { return -1; } unsigned int GetChannelSwitchDelay(void) { return 0; } } kodi-pvr-vdr-vnsi-1.10.10/src/client.h000066400000000000000000000040131255226123100173660ustar00rootroot00000000000000#pragma once /* * Copyright (C) 2010 Alwin Esch (Team XBMC) * http://www.xbmc.org * * This Program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This Program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XBMC; see the file COPYING. If not, write to * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. * http://www.gnu.org/copyleft/gpl.html * */ #include "kodi/libXBMC_addon.h" #include "kodi/libXBMC_codec.h" #include "kodi/libXBMC_pvr.h" #include "kodi/libKODI_guilib.h" #define DEFAULT_HOST "127.0.0.1" #define DEFAULT_PORT 34890 #define DEFAULT_CHARCONV false #define DEFAULT_HANDLE_MSG true #define DEFAULT_PRIORITY 0 #define DEFAULT_TIMEOUT 3 #define DEFAULT_AUTOGROUPS false extern bool m_bCreated; extern std::string g_szHostname; ///< hostname or ip-address of the server extern int g_iPort; ///< TCP port of the vnsi server extern int g_iConnectTimeout; ///< Network connection / read timeout in seconds extern int g_iPriority; ///< The Priority this client have in response to other clients extern bool g_bCharsetConv; ///< Convert VDR's incoming strings to UTF8 character set extern bool g_bHandleMessages; ///< Send VDR's OSD status messages to XBMC OSD extern int g_iTimeshift; extern std::string g_szIconPath; ///< path to channel icons extern ADDON::CHelper_libXBMC_addon *XBMC; extern CHelper_libXBMC_codec *CODEC; extern CHelper_libKODI_guilib *GUI; extern CHelper_libXBMC_pvr *PVR; kodi-pvr-vdr-vnsi-1.10.10/src/requestpacket.cpp000066400000000000000000000111461255226123100213300ustar00rootroot00000000000000/* * Copyright (C) 2010 Alwin Esch (Team XBMC) * http://www.xbmc.org * * This Program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This Program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XBMC; see the file COPYING. If not, write to * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. * http://www.gnu.org/copyleft/gpl.html * */ #include #include #include #include "requestpacket.h" #include "vnsicommand.h" #include "tools.h" #include "platform/sockets/tcp.h" uint32_t cRequestPacket::serialNumberCounter = 1; cRequestPacket::cRequestPacket() { buffer = NULL; bufSize = 0; bufUsed = 0; lengthSet = false; serialNumber = 0; opcode = 0; } cRequestPacket::~cRequestPacket() { free(buffer); } bool cRequestPacket::init(uint32_t topcode, bool stream, bool setUserDataLength, uint32_t userDataLength) { if (buffer) return false; if (setUserDataLength) { bufSize = headerLength + userDataLength; lengthSet = true; } else { bufSize = 512; userDataLength = 0; // so the below will write a zero } buffer = (uint8_t*)malloc(bufSize); if (!buffer) return false; if (!stream) channel = VNSI_CHANNEL_REQUEST_RESPONSE; else channel = VNSI_CHANNEL_STREAM; serialNumber = serialNumberCounter++; opcode = topcode; uint32_t ul; ul = htonl(channel); memcpy(&buffer[0], &ul, sizeof(uint32_t)); ul = htonl(serialNumber); memcpy(&buffer[4], &ul, sizeof(uint32_t)); ul = htonl(opcode); memcpy(&buffer[8], &ul, sizeof(uint32_t)); ul = htonl(userDataLength); memcpy(&buffer[userDataLenPos], &ul, sizeof(uint32_t)); bufUsed = headerLength; return true; } bool cRequestPacket::add_String(const char* string) { uint32_t len = strlen(string) + 1; if (!checkExtend(len)) return false; memcpy(buffer + bufUsed, string, len); bufUsed += len; if (!lengthSet) { uint32_t tmp = htonl(bufUsed - headerLength); memcpy(&buffer[userDataLenPos], &tmp, sizeof(uint32_t)); } return true; } bool cRequestPacket::add_U8(uint8_t c) { if (!checkExtend(sizeof(uint8_t))) return false; buffer[bufUsed] = c; bufUsed += sizeof(uint8_t); if (!lengthSet) { uint32_t tmp = htonl(bufUsed - headerLength); memcpy(&buffer[userDataLenPos], &tmp, sizeof(uint32_t)); } return true; } bool cRequestPacket::add_S32(int32_t l) { if (!checkExtend(sizeof(int32_t))) return false; int32_t tmp = htonl(l); memcpy(&buffer[bufUsed], &tmp, sizeof(int32_t)); bufUsed += sizeof(int32_t); if (!lengthSet) { uint32_t tmp = htonl(bufUsed - headerLength); memcpy(&buffer[userDataLenPos], &tmp, sizeof(uint32_t)); } return true; } bool cRequestPacket::add_U32(uint32_t ul) { if (!checkExtend(sizeof(uint32_t))) return false; uint32_t tmp = htonl(ul); memcpy(&buffer[bufUsed], &tmp, sizeof(uint32_t)); bufUsed += sizeof(uint32_t); if (!lengthSet) { uint32_t tmp = htonl(bufUsed - headerLength); memcpy(&buffer[userDataLenPos], &tmp, sizeof(uint32_t)); } return true; } bool cRequestPacket::add_U64(uint64_t ull) { if (!checkExtend(sizeof(uint64_t))) return false; uint64_t tmp = htonll(ull); memcpy(&buffer[bufUsed], &tmp, sizeof(uint64_t)); bufUsed += sizeof(uint64_t); if (!lengthSet) { uint32_t tmp = htonl(bufUsed - headerLength); memcpy(&buffer[userDataLenPos], &tmp, sizeof(uint32_t)); } return true; } bool cRequestPacket::add_S64(int64_t ll) { if (!checkExtend(sizeof(int64_t))) return false; int64_t tmp = htonll(ll); memcpy(&buffer[bufUsed], &tmp, sizeof(int64_t)); bufUsed += sizeof(int64_t); if (!lengthSet) { uint32_t tmp = htonl(bufUsed - headerLength); memcpy(&buffer[userDataLenPos], &tmp, sizeof(uint32_t)); } return true; } bool cRequestPacket::checkExtend(uint32_t by) { if (lengthSet) return true; if ((bufUsed + by) <= bufSize) return true; uint8_t* newBuf = (uint8_t*)realloc(buffer, bufUsed + by); if (!newBuf) { newBuf = (uint8_t*)malloc(bufUsed + by); if (!newBuf) { return false; } memcpy(newBuf, buffer, bufUsed); free(buffer); } buffer = newBuf; bufSize = bufUsed + by; return true; } kodi-pvr-vdr-vnsi-1.10.10/src/requestpacket.h000066400000000000000000000034341255226123100207760ustar00rootroot00000000000000#pragma once /* * Copyright (C) 2010 Alwin Esch (Team XBMC) * http://www.xbmc.org * * This Program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This Program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XBMC; see the file COPYING. If not, write to * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. * http://www.gnu.org/copyleft/gpl.html * */ #include class cRequestPacket { public: cRequestPacket(); ~cRequestPacket(); bool init(uint32_t opcode, bool stream = false, bool setUserDataLength = false, uint32_t userDataLength = 0); bool add_String(const char* string); bool add_U8(uint8_t c); bool add_U32(uint32_t ul); bool add_S32(int32_t l); bool add_U64(uint64_t ull); bool add_S64(int64_t ll); uint8_t* getPtr() { return buffer; } uint32_t getLen() { return bufUsed; } uint32_t getChannel() { return channel; } uint32_t getSerial() { return serialNumber; } uint32_t getOpcode() { return opcode; } private: static uint32_t serialNumberCounter; uint8_t* buffer; uint32_t bufSize; uint32_t bufUsed; bool lengthSet; uint32_t channel; uint32_t serialNumber; uint32_t opcode; bool checkExtend(uint32_t by); const static uint32_t headerLength = 16; const static uint32_t userDataLenPos = 12; }; kodi-pvr-vdr-vnsi-1.10.10/src/responsepacket.cpp000066400000000000000000000132311255226123100214730ustar00rootroot00000000000000/* * Copyright (C) 2010 Alwin Esch (Team XBMC) * http://www.xbmc.org * * This Program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This Program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XBMC; see the file COPYING. If not, write to * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. * http://www.gnu.org/copyleft/gpl.html * */ #include #include #include "responsepacket.h" #include "vnsicommand.h" #include "tools.h" #include "client.h" #include "platform/sockets/tcp.h" cResponsePacket::cResponsePacket() { userDataLength = 0; packetPos = 0; userData = NULL; ownBlock = true; channelID = 0; requestID = 0; streamID = 0; } cResponsePacket::~cResponsePacket() { if (!ownBlock) return; // don't free if it's a getblock if (userData) { if (channelID == VNSI_CHANNEL_STREAM && opcodeID == VNSI_STREAM_MUXPKT) PVR->FreeDemuxPacket((DemuxPacket*)userData); else free(userData); } } void cResponsePacket::getOSDData(uint32_t &wnd, uint32_t &color, uint32_t &x0, uint32_t &y0, uint32_t &x1, uint32_t &y1) { wnd = osdWnd; color = osdColor; x0 = osdX0; y0 = osdY0; x1 = osdX1; y1 = osdY1; } void cResponsePacket::setResponse(uint8_t* tuserData, uint32_t tuserDataLength) { channelID = VNSI_CHANNEL_REQUEST_RESPONSE; userData = tuserData; userDataLength = tuserDataLength; packetPos = 0; } void cResponsePacket::setStatus(uint8_t* tuserData, uint32_t tuserDataLength) { channelID = VNSI_CHANNEL_STATUS; userData = tuserData; userDataLength = tuserDataLength; packetPos = 0; } void cResponsePacket::setStream(uint8_t* tuserData, uint32_t tuserDataLength) { channelID = VNSI_CHANNEL_STREAM; // set pointer to user data userData = tuserData; userDataLength = tuserDataLength; packetPos = 0; } void cResponsePacket::setOSD(uint8_t* tuserData, uint32_t tuserDataLength) { channelID = VNSI_CHANNEL_OSD; // set pointer to user data userData = tuserData; userDataLength = tuserDataLength; packetPos = 0; } void cResponsePacket::extractHeader() { // set data pointers to header first userData = header; userDataLength = sizeof(header); packetPos = 0; requestID = extract_U32(); userDataLength = extract_U32(); userData = NULL; } void cResponsePacket::extractStreamHeader() { channelID = VNSI_CHANNEL_STREAM; // set data pointers to header first userData = header; userDataLength = sizeof(header); packetPos = 0; opcodeID = extract_U32(); streamID = extract_U32(); duration = extract_U32(); pts = extract_U64(); dts = extract_U64(); muxSerial= extract_U32(); userDataLength = extract_U32(); userData = NULL; } void cResponsePacket::extractOSDHeader() { channelID = VNSI_CHANNEL_OSD; // set data pointers to header first userData = header; userDataLength = sizeof(header); packetPos = 0; opcodeID = extract_U32(); osdWnd = extract_S32(); osdColor = extract_S32(); osdX0 = extract_S32(); osdY0 = extract_S32(); osdX1 = extract_S32(); osdY1 = extract_S32(); userDataLength = extract_U32(); } bool cResponsePacket::end() { return (packetPos >= userDataLength); } int cResponsePacket::serverError() { if ((packetPos == 0) && (userDataLength == 4) && !ntohl(*(uint32_t*)userData)) return 1; else return 0; } char* cResponsePacket::extract_String() { if (serverError()) return NULL; int length = strlen((char*)&userData[packetPos]); if ((packetPos + length) > userDataLength) return NULL; char* str = new char[length + 1]; strcpy(str, (char*)&userData[packetPos]); packetPos += length + 1; return str; } uint8_t cResponsePacket::extract_U8() { if ((packetPos + sizeof(uint8_t)) > userDataLength) return 0; uint8_t uc = userData[packetPos]; packetPos += sizeof(uint8_t); return uc; } uint32_t cResponsePacket::extract_U32() { if ((packetPos + sizeof(uint32_t)) > userDataLength) return 0; uint32_t ul; memcpy(&ul, &userData[packetPos], sizeof(uint32_t)); ul = ntohl(ul); packetPos += sizeof(uint32_t); return ul; } uint64_t cResponsePacket::extract_U64() { if ((packetPos + sizeof(uint64_t)) > userDataLength) return 0; uint64_t ull; memcpy(&ull, &userData[packetPos], sizeof(uint64_t)); ull = ntohll(ull); packetPos += sizeof(uint64_t); return ull; } double cResponsePacket::extract_Double() { if ((packetPos + sizeof(uint64_t)) > userDataLength) return 0; uint64_t ull; memcpy(&ull, &userData[packetPos], sizeof(uint64_t)); ull = ntohll(ull); double d; memcpy(&d,&ull,sizeof(double)); packetPos += sizeof(uint64_t); return d; } int32_t cResponsePacket::extract_S32() { if ((packetPos + sizeof(int32_t)) > userDataLength) return 0; int32_t l; memcpy(&l, &userData[packetPos], sizeof(int32_t)); l = ntohl(l); packetPos += sizeof(int32_t); return l; } int64_t cResponsePacket::extract_S64() { if ((packetPos + sizeof(int64_t)) > userDataLength) return 0; int64_t ll; memcpy(&ll, &userData[packetPos], sizeof(int64_t)); ll = ntohll(ll); packetPos += sizeof(int64_t); return ll; } uint8_t* cResponsePacket::getUserData() { ownBlock = false; return userData; } kodi-pvr-vdr-vnsi-1.10.10/src/responsepacket.h000066400000000000000000000056341255226123100211500ustar00rootroot00000000000000#pragma once /* * Copyright (C) 2010 Alwin Esch (Team XBMC) * http://www.xbmc.org * * This Program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This Program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XBMC; see the file COPYING. If not, write to * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. * http://www.gnu.org/copyleft/gpl.html * */ #include #include class cResponsePacket { public: cResponsePacket(); ~cResponsePacket(); void setResponse(uint8_t* packet, uint32_t packetLength); void setStatus(uint8_t* packet, uint32_t packetLength); void setStream(uint8_t* packet, uint32_t packetLength); void setOSD(uint8_t* packet, uint32_t packetLength); void extractHeader(); void extractStreamHeader(); void extractOSDHeader(); bool noResponse() { return (userData == NULL); }; int serverError(); uint32_t getUserDataLength() { return userDataLength; } uint32_t getChannelID() { return channelID; } uint32_t getRequestID() { return requestID; } uint32_t getStreamID() { return streamID; } uint32_t getOpCodeID() { return opcodeID; } uint32_t getDuration() { return duration; } int64_t getDTS() { return dts; } int64_t getPTS() { return pts; } uint32_t getMuxSerial() { return muxSerial; } void getOSDData(uint32_t &wnd, uint32_t &color, uint32_t &x0, uint32_t &y0, uint32_t &x1, uint32_t &y1); uint32_t getPacketPos() { return packetPos; } char* extract_String(); uint8_t extract_U8(); uint32_t extract_U32(); uint64_t extract_U64(); int32_t extract_S32(); int64_t extract_S64(); double extract_Double(); bool end(); // If you call this, the memory becomes yours. Free with free() uint8_t* getUserData(); uint8_t* getHeader() { return header; }; unsigned int getStreamHeaderLength() { return 36; }; unsigned int getHeaderLength() { return 8; }; unsigned int getOSDHeaderLength() { return 32; } ; private: uint8_t header[40]; uint8_t* userData; uint32_t userDataLength; uint32_t packetPos; uint32_t channelID; uint32_t requestID; uint32_t streamID; uint32_t opcodeID; uint32_t duration; int64_t dts; int64_t pts; uint32_t muxSerial; int32_t osdWnd; int32_t osdColor; int32_t osdX0,osdY0,osdX1,osdY1; bool ownBlock; }; kodi-pvr-vdr-vnsi-1.10.10/src/tools.cpp000066400000000000000000000030731255226123100176100ustar00rootroot00000000000000/* * Copyright (C) 2010 Team XBMC * http://www.xbmc.org * * This Program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This Program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XBMC; see the file COPYING. If not, write to * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. * http://www.gnu.org/copyleft/gpl.html * */ #include "tools.h" #ifndef TARGET_WINDOWS #define TYP_INIT 0 #define TYP_SMLE 1 #define TYP_BIGE 2 // need to check for ntohll definition // as it was added in iOS SDKs since 8.0 #if !defined(ntohll) uint64_t ntohll(uint64_t a) { return htonll(a); } #endif #if !defined(htonll) uint64_t htonll(uint64_t a) { static int typ = TYP_INIT; unsigned char c; union { uint64_t ull; unsigned char c[8]; } x; if (typ == TYP_INIT) { x.ull = 0x01; typ = (x.c[7] == 0x01ULL) ? TYP_BIGE : TYP_SMLE; } if (typ == TYP_BIGE) return a; x.ull = a; c = x.c[0]; x.c[0] = x.c[7]; x.c[7] = c; c = x.c[1]; x.c[1] = x.c[6]; x.c[6] = c; c = x.c[2]; x.c[2] = x.c[5]; x.c[5] = c; c = x.c[3]; x.c[3] = x.c[4]; x.c[4] = c; return x.ull; } #endif #endif kodi-pvr-vdr-vnsi-1.10.10/src/tools.h000066400000000000000000000022231255226123100172510ustar00rootroot00000000000000#pragma once /* * Copyright (C) 2010 Team XBMC * http://www.xbmc.org * * This Program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This Program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XBMC; see the file COPYING. If not, write to * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. * http://www.gnu.org/copyleft/gpl.html * */ #include #include "client.h" #ifndef TARGET_WINDOWS // need to check for ntohll definition // as it was added in iOS SDKs since 8.0 #if !defined(ntohll) uint64_t ntohll(uint64_t a); #endif #if !defined(htonll) uint64_t htonll(uint64_t a); #endif #endif #include "kodi/libXBMC_codec.h" #include "xbmc_codec_descriptor.hpp" kodi-pvr-vdr-vnsi-1.10.10/src/vnsicommand.h000066400000000000000000000137041255226123100204350ustar00rootroot00000000000000/* * Copyright (C) 2010 Alwin Esch (Team XBMC) * http://www.xbmc.org * * This Program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This Program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XBMC; see the file COPYING. If not, write to * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. * http://www.gnu.org/copyleft/gpl.html * */ #ifndef VNSI_COMMAND_H #define VNSI_COMMAND_H /** Current VNSI Protocol Version number */ #define VNSI_PROTOCOLVERSION 8 /** Start of RDS support protocol Version */ #define VNSI_RDS_PROTOCOLVERSION 8 /** Minimum VNSI Protocol Version number */ #define VNSI_MIN_PROTOCOLVERSION 5 /** Packet types */ #define VNSI_CHANNEL_REQUEST_RESPONSE 1 #define VNSI_CHANNEL_STREAM 2 #define VNSI_CHANNEL_KEEPALIVE 3 #define VNSI_CHANNEL_NETLOG 4 #define VNSI_CHANNEL_STATUS 5 #define VNSI_CHANNEL_SCAN 6 #define VNSI_CHANNEL_OSD 7 /** Response packets operation codes */ #define CONFNAME_PMTTIMEOUT "PmtTimeout" #define CONFNAME_TIMESHIFT "Timeshift" #define CONFNAME_TIMESHIFTBUFFERSIZE "TimeshiftBufferSize" #define CONFNAME_TIMESHIFTBUFFERFILESIZE "TimeshiftBufferFileSize" #define CONFNAME_TIMESHIFTBUFFERDIR "TimeshiftBufferDir" #define CONFNAME_PLAYRECORDING "PlayRecording" #define CONFNAME_AVOIDEPGSCAN "AvoidEPGScan" /* OPCODE 1 - 19: VNSI network functions for general purpose */ #define VNSI_LOGIN 1 #define VNSI_GETTIME 2 #define VNSI_ENABLESTATUSINTERFACE 3 #define VNSI_PING 7 #define VNSI_GETSETUP 8 #define VNSI_STORESETUP 9 /* OPCODE 20 - 39: VNSI network functions for live streaming */ #define VNSI_CHANNELSTREAM_OPEN 20 #define VNSI_CHANNELSTREAM_CLOSE 21 #define VNSI_CHANNELSTREAM_SEEK 22 /* OPCODE 40 - 59: VNSI network functions for recording streaming */ #define VNSI_RECSTREAM_OPEN 40 #define VNSI_RECSTREAM_CLOSE 41 #define VNSI_RECSTREAM_GETBLOCK 42 #define VNSI_RECSTREAM_POSTOFRAME 43 #define VNSI_RECSTREAM_FRAMETOPOS 44 #define VNSI_RECSTREAM_GETIFRAME 45 #define VNSI_RECSTREAM_GETLENGTH 46 /* OPCODE 60 - 79: VNSI network functions for channel access */ #define VNSI_CHANNELS_GETCOUNT 61 #define VNSI_CHANNELS_GETCHANNELS 63 #define VNSI_CHANNELGROUP_GETCOUNT 65 #define VNSI_CHANNELGROUP_LIST 66 #define VNSI_CHANNELGROUP_MEMBERS 67 #define VNSI_CHANNELS_GETCAIDS 68 #define VNSI_CHANNELS_GETWHITELIST 69 #define VNSI_CHANNELS_GETBLACKLIST 70 #define VNSI_CHANNELS_SETWHITELIST 71 #define VNSI_CHANNELS_SETBLACKLIST 72 /* OPCODE 80 - 99: VNSI network functions for timer access */ #define VNSI_TIMER_GETCOUNT 80 #define VNSI_TIMER_GET 81 #define VNSI_TIMER_GETLIST 82 #define VNSI_TIMER_ADD 83 #define VNSI_TIMER_DELETE 84 #define VNSI_TIMER_UPDATE 85 /* OPCODE 100 - 119: VNSI network functions for recording access */ #define VNSI_RECORDINGS_DISKSIZE 100 #define VNSI_RECORDINGS_GETCOUNT 101 #define VNSI_RECORDINGS_GETLIST 102 #define VNSI_RECORDINGS_RENAME 103 #define VNSI_RECORDINGS_DELETE 104 #define VNSI_RECORDINGS_GETEDL 105 /* OPCODE 120 - 139: VNSI network functions for epg access and manipulating */ #define VNSI_EPG_GETFORCHANNEL 120 /* OPCODE 140 - 159: VNSI network functions for channel scanning */ #define VNSI_SCAN_SUPPORTED 140 #define VNSI_SCAN_GETCOUNTRIES 141 #define VNSI_SCAN_GETSATELLITES 142 #define VNSI_SCAN_START 143 #define VNSI_SCAN_STOP 144 /* OPCODE 160 - 179: VNSI network functions for channel scanning */ #define VNSI_OSD_CONNECT 160 #define VNSI_OSD_DISCONNECT 161 #define VNSI_OSD_HITKEY 162 /* OPCODE 180 - 189: VNSI network functions for deleted recording access */ #define VNSI_RECORDINGS_DELETED_ACCESS_SUPPORTED 180 #define VNSI_RECORDINGS_DELETED_GETCOUNT 181 #define VNSI_RECORDINGS_DELETED_GETLIST 182 #define VNSI_RECORDINGS_DELETED_DELETE 183 #define VNSI_RECORDINGS_DELETED_UNDELETE 184 #define VNSI_RECORDINGS_DELETED_DELETE_ALL 185 /** Stream packet types (server -> client) */ #define VNSI_STREAM_CHANGE 1 #define VNSI_STREAM_STATUS 2 #define VNSI_STREAM_QUEUESTATUS 3 #define VNSI_STREAM_MUXPKT 4 #define VNSI_STREAM_SIGNALINFO 5 #define VNSI_STREAM_CONTENTINFO 6 #define VNSI_STREAM_BUFFERSTATS 7 #define VNSI_STREAM_REFTIME 8 /** Scan packet types (server -> client) */ #define VNSI_SCANNER_PERCENTAGE 1 #define VNSI_SCANNER_SIGNAL 2 #define VNSI_SCANNER_DEVICE 3 #define VNSI_SCANNER_TRANSPONDER 4 #define VNSI_SCANNER_NEWCHANNEL 5 #define VNSI_SCANNER_FINISHED 6 #define VNSI_SCANNER_STATUS 7 /** OSD packet types (server -> client) */ #define VNSI_OSD_MOVEWINDOW 1 #define VNSI_OSD_CLEAR 2 #define VNSI_OSD_OPEN 3 #define VNSI_OSD_CLOSE 4 #define VNSI_OSD_SETPALETTE 5 #define VNSI_OSD_SETBLOCK 6 /** Status packet types (server -> client) */ #define VNSI_STATUS_TIMERCHANGE 1 #define VNSI_STATUS_RECORDING 2 #define VNSI_STATUS_MESSAGE 3 #define VNSI_STATUS_CHANNELCHANGE 4 #define VNSI_STATUS_RECORDINGSCHANGE 5 #define VNSI_STATUS_EPGCHANGE 6 /** Packet return codes */ #define VNSI_RET_OK 0 #define VNSI_RET_RECRUNNING 1 #define VNSI_RET_NOTSUPPORTED 995 #define VNSI_RET_DATAUNKNOWN 996 #define VNSI_RET_DATALOCKED 997 #define VNSI_RET_DATAINVALID 998 #define VNSI_RET_ERROR 999 #endif // VNSI_COMMAND_H kodi-pvr-vdr-vnsi-1.10.10/src/xbmc_codec_descriptor.hpp000066400000000000000000000041751255226123100230050ustar00rootroot00000000000000/* * Copyright (C) 2005-2013 Team XBMC * http://xbmc.org * * This Program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This Program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XBMC; see the file COPYING. If not, see * . * */ #ifndef XBMC_CODEC_DESCRIPTOR_HPP #define XBMC_CODEC_DESCRIPTOR_HPP #include "kodi/libXBMC_codec.h" /** * Adapter which converts codec names used by tvheadend and VDR into their * FFmpeg equivalents. */ class CodecDescriptor { public: CodecDescriptor(void) { m_codec.codec_id = XBMC_INVALID_CODEC_ID; m_codec.codec_type = XBMC_CODEC_TYPE_UNKNOWN; } CodecDescriptor(xbmc_codec_t codec, const char* name) : m_codec(codec), m_strName(name) {} virtual ~CodecDescriptor(void) {} const std::string& Name(void) const { return m_strName; } xbmc_codec_t Codec(void) const { return m_codec; } static CodecDescriptor GetCodecByName(const char* strCodecName) { CodecDescriptor retVal; // some of Tvheadend's and VDR's codec names don't match ffmpeg's, so translate them to something ffmpeg understands if (!strcmp(strCodecName, "MPEG2AUDIO")) retVal = CodecDescriptor(CODEC->GetCodecByName("MP2"), strCodecName); else if (!strcmp(strCodecName, "MPEGTS")) retVal = CodecDescriptor(CODEC->GetCodecByName("MPEG2VIDEO"), strCodecName); else if (!strcmp(strCodecName, "TEXTSUB")) retVal = CodecDescriptor(CODEC->GetCodecByName("TEXT"), strCodecName); else retVal = CodecDescriptor(CODEC->GetCodecByName(strCodecName), strCodecName); return retVal; } private: xbmc_codec_t m_codec; std::string m_strName; }; #endif /* XBMC_CODEC_DESCRIPTOR_HPP */