kodi-pvr-vdr-vnsi-2.6.12/0000755000175000017500000000000013030540672014427 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/0000755000175000017500000000000013030540613017001 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/addon.xml.in0000644000175000017500000007151413030540613021225 0ustar tobiastobias 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 Cliente PVR para conectar VDR a Kodi a través de la interfaz VNSI Kodin VDR (VNSI) -asiakasohjelma Client de numériscope pour connecter VDR à Kodi par une interface VNSI. Client enregistreur vidéo (PVR) connectant un 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 интерфејс Klien 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 telewizji 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 клијент за повезивање VDR са Kodi преко VNSI интерфејса PVR klijent za povezivanje VDR sa Kodi preko VNSI interfejsa PVR-klient för att ansluta VDR till Kodi över VNSI-gränsnittet Klijynt telewizyje do skuplowaniŏ VDR bez interfejs VNSI 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 客户端 經由VNSI界接VDR到Kodi的PVR用戶端 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 de VDR; és compatible amb les transmissions en línia de TV en directe i enregistraments, guia electrònica de programació (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 Interfaz VDR; Soportando streaming de TV en directo y Grabaciones, EPG, Timers sobre el plugin VNSI VDR-asiakasohjelma. Tukee suorien tv-lähetysten ja tallennusten katsomista, ohjelmaopasta ja ohjelmien ajastamista. Frontal VDR, prenant en charge la diffusion en continu des télés en direct & les enregistrements, le GÉP et les minuteries avec le plugiciel VNSI. Interface logicielle pour enregistreur de disque vidéo (VDR). Il gère la lecture et l'enregistrement en continu des flux de TV en direct, le guide électronique des programmes TV et les programmations 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ét. Élő adások és felvételek 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 telewizji dla VDR obsługuje transmisję 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 интерфејс; подржава стримовање ТВ Уживо & Снимака, EPG, Тајмере преко VNSI VDR interfejs; podržava strimovanje TV Uživo & Snimaka, EPG, Tajmere preko VNSI VDR frontend; stödjer strömning av direktsänd TV & inspelningar, EPG, timers över VNSI-tillägget Klijynt telewizyjny dlŏ VDR podpiyrŏ szpricowanie kanałōw radyjowych i telewizyjnych, nagrowanie i harmōnogram nagrań i funkcyje EPG przi wyużyciu sztekra VNSI dlŏ VDR 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 qualsevol altre efecte indesitjat.. 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 ohjelma! Sen tekijät eivät ole millään muotoa vastuussa epäonnistuneista tallennuksista, virheellisistä ajastuksista, haaskatusta ajasta, verenpaineen noususta tai mistään muusta epäsuotuisasta vaikutuksesta. Ce logiciel est instable! Les auteurs ne sont aucunement responsables des enregistrements défaillants, des minuteries erronées, des heures perdues ou tout autre effet indésirable. Logiciel en cours d'élaboration ! Les auteurs ne sont en aucun cas responsables de l'échec des enregistrements, programmations défectueuses, temps perdu ou autres effets indésirables. Software non estable, os autores non se fan responsábeis dos erros na gravacións, temporizadores incorrectos, e outros efectos non desexados. זוהי איננה הרחבה יציבה! המפתחים אינם אחראים על כשלון בניגון, זמנים שגויים במדריך השידורים, שעות מבוזבזות או כל תופעה לא רצויה אחרת. Ovo je nestabilan softver! Autori nisu 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.. Dan il-programm mhuwiex stabbli! L-Awturi m'humiex responsabbli bl-ebda mod għal rekordings li ma jirnexxewx, arloġġi żbaljati, siegħat moħlija, jew kwalunkwe effett ieħor mhux mixtieq. Dette er ustabilt programvare! Forfatterne er ikke ansvarlig på noen måte for ødelagte opptak, feile timere, bortkastede timer, eller andre uønskede hendinger... 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 incorretos, 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 kararsız bir yazılımdır! Yapımcılar hatalı kayıtlardan, bozuk sürelerden, harcanan vakitten veya herhangi bir olumsuz etkiden dolayı sorumlu tutulamaz. Це нестабільна програма! Автори не несуть відповідальності за попсуті записи, неправильні таймери, втрачений час та інші небажані ефекти. Đây là phần mềm không ổn định! Các tác giả không chịu trách nhiệm đối với 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.. 这是不稳定版的软件!作者不对录像失败、错误定时造成时间浪费或其它不良影响负责。 這是測試版軟體!其原創作者並無法對於以下情況負責,包含:錄影失敗,不正確的定時設定,多餘時數,或任何產生的其它不良影響... @PLATFORM@ kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/0000755000175000017500000000000013006733621021021 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/settings.xml0000644000175000017500000000155213006733621023406 0ustar tobiastobias kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/skins/0000755000175000017500000000000013006733621022150 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/skins/skin.aeon.nox.5/0000755000175000017500000000000012574773600025015 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/skins/skin.aeon.nox.5/1080i/0000755000175000017500000000000012664612001025541 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/skins/skin.aeon.nox.5/1080i/Admin.xml0000644000175000017500000004362012664612001027320 0ustar tobiastobias 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-2.6.12/pvr.vdr.vnsi/resources/skins/skin.confluence/0000755000175000017500000000000012574773600025246 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/skins/skin.confluence/720p/0000755000175000017500000000000012664612001025721 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/skins/skin.confluence/720p/ChannelScan.xml0000644000175000017500000010347612664612001030633 0ustar tobiastobias 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-2.6.12/pvr.vdr.vnsi/resources/skins/skin.confluence/720p/Admin.xml0000644000175000017500000004322212664612001027476 0ustar tobiastobias 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-2.6.12/pvr.vdr.vnsi/resources/skins/skin.aeon.nox/0000755000175000017500000000000012574773600024652 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/skins/skin.aeon.nox/1080i/0000755000175000017500000000000012664612001025376 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/skins/skin.aeon.nox/1080i/Admin.xml0000644000175000017500000003676312664612001027167 0ustar tobiastobias 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-2.6.12/pvr.vdr.vnsi/resources/skins/skin.estuary/0000755000175000017500000000000013006733621024607 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/skins/skin.estuary/1080i/0000755000175000017500000000000013030540613025342 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/skins/skin.estuary/1080i/Admin.xml0000644000175000017500000002507013030540613027120 0ustar tobiastobias 10 background no 36 DefaultBackground 110 0 OpenClose_Left Menu Panel -20 138 440 792 dialogs/dialog-bg.png button area 0 160 400 700 10 11 10 10 noop noop noop OpenClose_Right 420 138 1300 792 dialogs/dialog-bg.png Container(10).HasFocus(1) 472 172 1216 686 top center 690 - buttons/thumbnail_focused.png 480 180 1200 670 442 160 1256 610 Container(10).HasFocus(2) 10 1256 DefaultSettingButton 1256 DefaultSettingButton 1256 DefaultSettingButton Container(10).HasFocus(3) 33 Channels label 480 165 1000 60 font30_title left center white black 1550 180 40 40 FFCC0000 overlays/circle.png StringCompare(Window.Property(IsDirty),1) 1550 180 40 40 FF00FF00 overlays/circle.png !StringCompare(Window.Property(IsDirty),1) 442 230 520 610 10 36 Is Radio 520 DefaultSettingButton providers 520 DefaultSettingButton Select channels 520 DefaultSettingButton Select save 520 DefaultSettingButton 980 230 640 640 buttons/dialogbutton-nofo.png 1000 250 600 600 36 35 37 36 37 200 0 0 6000 40 lists/separator.png 40 0 6000 40 left ListItem.Label 2 2 36 36 stretch 7790EE90 overlays/arrowright.png ListItem.Property(IsWhitelist) 2 2 36 36 stretch 77FF0000 overlays/arrowright.png ListItem.Property(IsBlacklist) 0 0 600 40 lists/separator.png 0 0 600 40 lists/focus.png 40 0 600 40 left ListItem.Label 2 2 36 36 stretch 7790EE90 overlays/arrowright.png ListItem.Property(IsWhitelist) 2 2 36 36 stretch 77FF0000 overlays/arrowright.png ListItem.Property(IsBlacklist) 1620 250 13 600 36 false vertical BottomBar kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/0000755000175000017500000000000012664611532022611 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.fi_fi/0000755000175000017500000000000013030540613027262 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.fi_fi/strings.po0000644000175000017500000001277013030540613031322 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 isäntä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 "#30006" msgid "Read recordings from directory" msgstr "Lue tallennukset kansiosta" msgctxt "#30007" msgid "VDR recordings directory" msgstr "VDR:n tallennuskansio" 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 "Salaamattomat kanavat" 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 "Transponderi:" 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 "Virhe kanavahaussa" 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 "Ajansiirtotoiminto" msgctxt "#30048" msgid "Path to channel icons" msgstr "Kanavalogojen polku" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "VDR-palvelimen MAC-osoite herätystä 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 "Ajansiirtopuskuri (RAM) x100 MB" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Ajansiirtopuskuri (tiedosto) x1 GB" msgctxt "#30107" msgid "VDR Admin" msgstr "VDR Admin" msgctxt "#30108" msgid "Channels" msgstr "Kanavat" msgctxt "#30109" msgid "Provider whitelist" msgstr "Tarjoajien valkoinen lista" msgctxt "#30110" msgid "Channel blacklist" msgstr "Kanavien musta lista" 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" msgctxt "#30200" msgid "Single" msgstr "Yksittäinen" msgctxt "#30201" msgid "Repeating" msgstr "Toistuva" msgctxt "#30202" msgid "EGP" msgstr "EGP" msgctxt "#30203" msgid "VPS" msgstr "VPS" msgctxt "#30204" msgid "Search EPG" msgstr "Etsi ohjelmaoppaasta" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.es_es/0000755000175000017500000000000013006733621027312 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.es_es/strings.po0000644000175000017500000001307613006733621031352 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#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" msgctxt "#30200" msgid "Single" msgstr "Individual" msgctxt "#30201" msgid "Repeating" msgstr "Repitiendo" msgctxt "#30202" msgid "EGP" msgstr "EPG" msgctxt "#30203" msgid "VPS" msgstr "VPS" msgctxt "#30204" msgid "Search EPG" msgstr "Buscar en EPG" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.pl_pl/0000755000175000017500000000000013006733621027322 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.pl_pl/strings.po0000644000175000017500000001356113006733621031361 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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" 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 (sekundy)" 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 "Uruchomiono" msgctxt "#30040" msgid "Stopped" msgstr "Zatrzymano" 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 "Zerwane 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 folderu z ikonami 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 "Kanały zablokowane" 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" msgctxt "#30200" msgid "Single" msgstr "Jednorazowo" msgctxt "#30201" msgid "Repeating" msgstr "Cyklicznie" msgctxt "#30202" msgid "EGP" msgstr "Według przewodnika" msgctxt "#30203" msgid "VPS" msgstr "Według systemu VPS" msgctxt "#30204" msgid "Search EPG" msgstr "Wyszukaj w przewodniku" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.th_th/0000755000175000017500000000000013006733621027322 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.th_th/strings.po0000644000175000017500000001062413006733621031356 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#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 "ไม่ทราบผู้จัดหา" msgctxt "#30201" msgid "Repeating" msgstr "การเล่นซ้ำ" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.bg_bg/0000755000175000017500000000000013006733621027254 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.bg_bg/strings.po0000644000175000017500000001443113006733621031310 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#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-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.ms_my/0000755000175000017500000000000013006733621027340 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.ms_my/strings.po0000644000175000017500000001264413006733621031400 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#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" msgctxt "#30200" msgid "Single" msgstr "Tunggal" msgctxt "#30201" msgid "Repeating" msgstr "Pengulangan" msgctxt "#30202" msgid "EGP" msgstr "EGP" msgctxt "#30203" msgid "VPS" msgstr "VPS" msgctxt "#30204" msgid "Search EPG" msgstr "Gelintar EPG" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.ru_ru/0000755000175000017500000000000013006733621027350 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.ru_ru/strings.po0000644000175000017500000001444113006733621031405 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#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 "Неизвестный провайдер" msgctxt "#30201" msgid "Repeating" msgstr "Повторение" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.vi_vn/0000755000175000017500000000000013006733621027335 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.vi_vn/strings.po0000644000175000017500000001051413006733621031367 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#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-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.lt_lt/0000755000175000017500000000000013006733621027332 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.lt_lt/strings.po0000644000175000017500000001324213006733621031365 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#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" msgctxt "#30200" msgid "Single" msgstr "Vienas" msgctxt "#30201" msgid "Repeating" msgstr "Pasikartojantis" msgctxt "#30202" msgid "EGP" msgstr "EPG" msgctxt "#30203" msgid "VPS" msgstr "VPS" msgctxt "#30204" msgid "Search EPG" msgstr "Ieškoti EPG" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.az_az/0000755000175000017500000000000013006733621027320 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.az_az/strings.po0000644000175000017500000000141613006733621031353 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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:" msgctxt "#30108" msgid "Channels" msgstr "Kanallar" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.de_de/0000755000175000017500000000000013006733621027254 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.de_de/strings.po0000644000175000017500000001272413006733621031313 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#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" msgctxt "#30200" msgid "Single" msgstr "Einzeln" msgctxt "#30201" msgid "Repeating" msgstr "Mehrmalig" msgctxt "#30202" msgid "EGP" msgstr "EPG" msgctxt "#30203" msgid "VPS" msgstr "VPS" msgctxt "#30204" msgid "Search EPG" msgstr "EPG durchsuchen" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.el_gr/0000755000175000017500000000000013006733621027304 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.el_gr/strings.po0000644000175000017500000001457213006733621031346 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#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 "Άγνωστος Πάροχος" msgctxt "#30201" msgid "Repeating" msgstr "Επανάληψη" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.mt_mt/0000755000175000017500000000000012725215015027333 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.mt_mt/strings.po0000644000175000017500000000225712725215015031372 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#30004" msgid "Connect timeout (s)" msgstr "Konnessjoni skadilha l-ħin (s)" 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 "#30039" msgid "Running" msgstr "Qed jaħdem" msgctxt "#30101" msgid "Setup" msgstr "Konfigurazzjoni" msgctxt "#30108" msgid "Channels" msgstr "Stazzjonijiet" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.gl_es/0000755000175000017500000000000013006733621027305 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.gl_es/strings.po0000644000175000017500000001275713006733621031352 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 de espera para conectar (s)" 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 "Ruta 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 Canles" 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" msgctxt "#30201" msgid "Repeating" msgstr "Repetición" msgctxt "#30202" msgid "EGP" msgstr "GUÍA" msgctxt "#30203" msgid "VPS" msgstr "VPS" msgctxt "#30204" msgid "Search EPG" msgstr "Buscar na Guía" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.ta_in/0000755000175000017500000000000013006733621027306 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.ta_in/strings.po0000644000175000017500000000216413006733621031342 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#30024" msgid "Back" msgstr "பின்செல்" msgctxt "#30026" msgid "Type:" msgstr "வகை:" msgctxt "#30039" msgid "Running" msgstr "ஓடிகொண்டிருக்கிறது" msgctxt "#30108" msgid "Channels" msgstr "சேனல்கள்" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.nb_no/0000755000175000017500000000000013006733621027307 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.nb_no/strings.po0000644000175000017500000001256513006733621031351 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#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" msgctxt "#30200" msgid "Single" msgstr "Singel" msgctxt "#30201" msgid "Repeating" msgstr "Gjentagende" msgctxt "#30202" msgid "EGP" msgstr "EGP" msgctxt "#30203" msgid "VPS" msgstr "VPS" msgctxt "#30204" msgid "Search EPG" msgstr "Søk EPG" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.mi/0000755000175000017500000000000012725215015026620 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.mi/strings.po0000644000175000017500000000165512725215015030660 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.id_id/0000755000175000017500000000000013006733621027264 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.id_id/strings.po0000644000175000017500000001233413006733621031320 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#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" msgctxt "#30201" msgid "Repeating" msgstr "Sedang Mengulang" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.uz_uz/0000755000175000017500000000000012725215015027367 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.uz_uz/strings.po0000644000175000017500000000141012725215015031414 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.tr_tr/0000755000175000017500000000000013030540613027340 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.tr_tr/strings.po0000644000175000017500000001310313030540613031367 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#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ı" msgctxt "#30200" msgid "Single" msgstr "Tekil" msgctxt "#30201" msgid "Repeating" msgstr "Yinelenen" msgctxt "#30202" msgid "EGP" msgstr "EGP" msgctxt "#30203" msgid "VPS" msgstr "VPS" msgctxt "#30204" msgid "Search EPG" msgstr "EPG'de Ara" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.en_gb/0000755000175000017500000000000013006733621027266 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.en_gb/strings.po0000644000175000017500000001054713006733621031326 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "" #empty string with id 30005 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 "" #empty strings from id 30115 to 30199 msgctxt "#30200" msgid "Single" msgstr "" msgctxt "#30201" msgid "Repeating" msgstr "" msgctxt "#30202" msgid "EGP" msgstr "" msgctxt "#30203" msgid "VPS" msgstr "" msgctxt "#30204" msgid "Search EPG" msgstr "" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.lv_lv/0000755000175000017500000000000013006733621027336 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.lv_lv/strings.po0000644000175000017500000001246013006733621031372 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#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-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.hr_hr/0000755000175000017500000000000013006733621027316 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.hr_hr/strings.po0000644000175000017500000001335513006733621031356 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#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" msgctxt "#30200" msgid "Single" msgstr "Jednostruk" msgctxt "#30201" msgid "Repeating" msgstr "Ponavljajuće" msgctxt "#30202" msgid "EGP" msgstr "EGP vodič" msgctxt "#30203" msgid "VPS" msgstr "VPS" msgctxt "#30204" msgid "Search EPG" msgstr "Pretraživanje EPG vodiča" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.ro_ro/0000755000175000017500000000000013030540613027326 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.ro_ro/strings.po0000644000175000017500000001321513030540613031361 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "Expirare timp conexiune (s)" 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 - stabiliri" 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 servitrorul VDR" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "Conexiunea la servitorul VDR restaurată" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Creează automat grupuri de canale pe servitor" msgctxt "#30047" msgid "Request Timeshift" msgstr "Cere inregistrare temporară" msgctxt "#30048" msgid "Path to channel icons" msgstr "Cale către sigle canale" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "MAC servitor VDR pentru deșteptare în rețea (Wake-on-LAN)" 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" msgctxt "#30200" msgid "Single" msgstr "Singular" msgctxt "#30201" msgid "Repeating" msgstr "În mod repetat" msgctxt "#30202" msgid "EGP" msgstr "EPG" msgctxt "#30203" msgid "VPS" msgstr "SPV (servitor privat virtual)" msgctxt "#30204" msgid "Search EPG" msgstr "Căutare în GPE (ghidul de programe elctronic)" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.cy_gb/0000755000175000017500000000000013006733621027277 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.cy_gb/strings.po0000644000175000017500000001233613006733621031335 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#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-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.eo/0000755000175000017500000000000012725215015026616 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.eo/strings.po0000644000175000017500000000131412725215015030646 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.en_au/0000755000175000017500000000000013006733621027303 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.en_au/strings.po0000644000175000017500000001214513006733621031337 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#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-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.mk_mk/0000755000175000017500000000000013006733621027312 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.mk_mk/strings.po0000644000175000017500000001405113006733621031344 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#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-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.ar_sa/0000755000175000017500000000000012725215015027300 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.ar_sa/strings.po0000644000175000017500000000235312725215015031334 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.am_et/0000755000175000017500000000000012725215015027300 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.am_et/strings.po0000644000175000017500000000455012725215015031335 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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: Amharic (Ethiopia) (http://www.transifex.com/projects/p/kodi-main/language/am_ET/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: am_ET\n" "Plural-Forms: nplurals=2; plural=(n > 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-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.ml_in/0000755000175000017500000000000012725215015027311 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.ml_in/strings.po0000644000175000017500000000125612725215015031346 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.es_mx/0000755000175000017500000000000013030540613027321 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.es_mx/strings.po0000644000175000017500000001252513030540613031357 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#30000" msgid "VDR Hostname or IP" msgstr "Nombre de host o IP de 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 conjunto de caracteres" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Tiempo para conectar agotado (s)" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Leer las grabaciones del directorio" msgctxt "#30007" msgid "VDR recordings directory" msgstr "Directorio de grabaciones VDR" msgctxt "#30008" msgid "Channel search" msgstr "Búsqueda de canales" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Búsqueda de canales - Configuración" msgctxt "#30010" msgid "Start Channel search" msgstr "Iniciar 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 "Cable Inversion" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Cable Symbolrate" msgctxt "#30020" msgid "Cable modulation" msgstr "Modulación por cable" msgctxt "#30021" msgid "Terr Inversion" msgstr "Terr Inversión" msgctxt "#30022" msgid "Satellite" msgstr "Satélite" msgctxt "#30023" msgid "ATSC Type" msgstr "Tipo ATSC" msgctxt "#30024" msgid "Back" msgstr "Regresar" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Búsqueda de canales: en ejecución ... %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 - Terminado" msgctxt "#30037" msgid "No device available - exiting" msgstr "Ningún dispositivo disponible - saliendo" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "No hay dispositivo DVB-S2 disponible - probando fallback 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 - Cancelado" 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 "Restaurado la conexión con el servidor VDR" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Crear grupos de canales automáticamente 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 "VDR Server MAC 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 "Control de OSD - presione información para salir" msgctxt "#30103" msgid "Select to control OSD" msgstr "Seleccionar para controlar OSD" msgctxt "#30107" msgid "VDR Admin" msgstr "VDR Admin" 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 "Grabar filtros" msgctxt "#30114" msgid "Provider Unknown" msgstr "Proveedor desconocido" msgctxt "#30200" msgid "Single" msgstr "Simple" msgctxt "#30201" msgid "Repeating" msgstr "Repitiendo" msgctxt "#30202" msgid "EGP" msgstr "EGP" msgctxt "#30203" msgid "VPS" msgstr "VPS" msgctxt "#30204" msgid "Search EPG" msgstr "Buscar EPG" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.fr_fr/0000755000175000017500000000000013030540613027304 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.fr_fr/strings.po0000644000175000017500000001350213030540613031336 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 ou adresse IP de l'enregistreur de disque vidéo (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 "Temporisation de connexion (s)" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Lecture des enregistrements depuis un dossier" msgctxt "#30007" msgid "VDR recordings directory" msgstr "Dossier des enregistrements 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 de 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înes - En cours… %i %%" msgctxt "#30026" msgid "Type:" msgstr "Type :" msgctxt "#30027" msgid "Device:" msgstr "Dispositif :" msgctxt "#30028" msgid "Scan: %i" msgstr "Analyse : %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 "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 des chaînes - Terminée" msgctxt "#30037" msgid "No device available - exiting" msgstr "Aucun dispositif disponible, abandon" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "Aucun dispositif DVB-S2 disponible, tentative en DVB-S" msgctxt "#30039" msgid "Running" msgstr "Lecture en cours" msgctxt "#30040" msgid "Stopped" msgstr "Stoppé" msgctxt "#30041" msgid "Finished" msgstr "Terminé" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Recherche de chaînes - Abandonnée" msgctxt "#30043" msgid "Channel search - Error" msgstr "Recherche de chaînes - 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înes 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 le réveil à distance (Wake-on-LAN)" msgctxt "#30100" msgid "VDR OSD" msgstr "Incrustation à l'écran VDR" msgctxt "#30101" msgid "Setup" msgstr "Configuration" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "Contrôle de l'incrustation à l'écran - Appuyer sur Infos pour sortir" msgctxt "#30103" msgid "Select to control OSD" msgstr "Sélectionner pour contrôler l'incrustation à 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 Mo" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Tampon pour le différé (fichier) x1 Go" msgctxt "#30107" msgid "VDR Admin" msgstr "Administrateur VDR" msgctxt "#30108" msgid "Channels" msgstr "Chaînes" msgctxt "#30109" msgid "Provider whitelist" msgstr "Liste blanche de fournisseurs" msgctxt "#30110" msgid "Channel blacklist" msgstr "Liste noire de chaînes" msgctxt "#30111" msgid "Channel filters" msgstr "Filtres de chaînes" msgctxt "#30112" msgid "Radio Channels" msgstr "Chaînes de radio" msgctxt "#30113" msgid "Save filters" msgstr "Enregistrer les filtres" msgctxt "#30114" msgid "Provider Unknown" msgstr "Fournisseur inconnu" msgctxt "#30200" msgid "Single" msgstr "Unique" msgctxt "#30201" msgid "Repeating" msgstr "Répétition" msgctxt "#30202" msgid "EGP" msgstr "Guide" msgctxt "#30203" msgid "VPS" msgstr "VPS" msgctxt "#30204" msgid "Search EPG" msgstr "Rechercher dans le guide" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.es_ar/0000755000175000017500000000000013030540613027277 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.es_ar/strings.po0000644000175000017500000001275113030540613031336 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#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" msgctxt "#30200" msgid "Single" msgstr "Individual" msgctxt "#30201" msgid "Repeating" msgstr "Con repeticiones" msgctxt "#30204" msgid "Search EPG" msgstr "Buscar GEP" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.zh_tw/0000755000175000017500000000000013030540613027341 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.zh_tw/strings.po0000644000175000017500000001257113030540613031400 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#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 "#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) 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 "頻道" 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 "未知的提供者" msgctxt "#30200" msgid "Single" msgstr "單集" msgctxt "#30201" msgid "Repeating" msgstr "重複" msgctxt "#30202" msgid "EGP" msgstr "電子節目表" msgctxt "#30203" msgid "VPS" msgstr "VPS" msgctxt "#30204" msgid "Search EPG" msgstr "搜尋電子節目表" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.be_by/0000755000175000017500000000000013006733621027274 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.be_by/strings.po0000644000175000017500000001007013006733621031323 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#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-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.it_it/0000755000175000017500000000000013006733621027324 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.it_it/strings.po0000644000175000017500000001274113006733621031362 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#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" msgctxt "#30200" msgid "Single" msgstr "Singolo" msgctxt "#30201" msgid "Repeating" msgstr "Ripetizione" msgctxt "#30202" msgid "EGP" msgstr "EPG" msgctxt "#30203" msgid "VPS" msgstr "VPS" msgctxt "#30204" msgid "Search EPG" msgstr "Cerca EPG" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.sv_se/0000755000175000017500000000000013030540613027325 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.sv_se/strings.po0000644000175000017500000001251713030540613031364 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#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" msgctxt "#30200" msgid "Single" msgstr "Enkel" msgctxt "#30201" msgid "Repeating" msgstr "Upprepat" msgctxt "#30202" msgid "EGP" msgstr "EGP" msgctxt "#30203" msgid "VPS" msgstr "VPS" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.hu_hu/0000755000175000017500000000000013006733621027324 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.hu_hu/strings.po0000644000175000017500000001327413006733621031364 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#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 "Átvizsgálá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 kiszolágló MAC-címe a hálózati ébresztéshez" 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" msgctxt "#30200" msgid "Single" msgstr "Kislemez" msgctxt "#30201" msgid "Repeating" msgstr "Ismétlődő" msgctxt "#30202" msgid "EGP" msgstr "EGP" msgctxt "#30203" msgid "VPS" msgstr "VPS" msgctxt "#30204" msgid "Search EPG" msgstr "EPG keresése" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.my_mm/0000755000175000017500000000000012725215015027331 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.my_mm/strings.po0000644000175000017500000000231512725215015031363 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.sr_rs@latin/0000755000175000017500000000000013006733621030474 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.sr_rs@latin/strings.po0000644000175000017500000001263413006733621032533 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#30000" msgid "VDR Hostname or IP" msgstr "VDR Hostname ili IP" msgctxt "#30001" msgid "VNSI Port" msgstr "VNSI Port" msgctxt "#30002" msgid "Priority" msgstr "Prioritet" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Konverzija Skupa Karaktera" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Истек времена за повезивање (с)" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Čitaj snimke iz fascikle" msgctxt "#30007" msgid "VDR recordings directory" msgstr "Fascikla VDR snimaka" msgctxt "#30008" msgid "Channel search" msgstr "Pretraga kanala" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Pretraga kanala - Podešavanja" msgctxt "#30010" msgid "Start Channel search" msgstr "Pokreni pretragu kanala" msgctxt "#30011" msgid "Source Type" msgstr "Vrsta Izvora" msgctxt "#30012" msgid "TV channels" msgstr "TV kanali" msgctxt "#30013" msgid "Radio channels" msgstr "Radio kanali" msgctxt "#30014" msgid "FTA channels" msgstr "FTA kanali" msgctxt "#30015" msgid "Scrambled channels" msgstr "Kodirani kanali" msgctxt "#30016" msgid "HD channels" msgstr "HD kanali" msgctxt "#30017" msgid "Country" msgstr "Država" 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 "Pretraga kanala - u toku...%i %%" msgctxt "#30026" msgid "Type:" msgstr "Tip:" msgctxt "#30027" msgid "Device:" msgstr "Uređaj:" msgctxt "#30028" msgid "Scan: %i" msgstr "Analiziranje: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Signal: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Novi kanali: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Svi kanali: %i" msgctxt "#30032" msgid "Analog TV" msgstr "Analogni TV" msgctxt "#30033" msgid "Analog Radio" msgstr "Analogni Radio" msgctxt "#30034" msgid "Transponder:" msgstr "Predajnik:" msgctxt "#30035" msgid "New channels" msgstr "Novi kanali" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Pretraga kanala - Završeno" msgctxt "#30037" msgid "No device available - exiting" msgstr "Nijedan uređaj nije dostupan - izlaženje" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "Nijedan DVB-S2 uređaj nije dostupan - pokušavanje rezerve sa DVB-S" msgctxt "#30039" msgid "Running" msgstr "Pokretanje" msgctxt "#30040" msgid "Stopped" msgstr "Zaustavljeno" msgctxt "#30041" msgid "Finished" msgstr "Završeno" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Pretraga kanala - Otkazano" msgctxt "#30043" msgid "Channel search - Error" msgstr "Pretraga kanala - Greška" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "Izgubljena veza sa VDR Serverom" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "Obnovljena veza sa VDR Serverom" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Automatski napravi grupe kanala na serveru" msgctxt "#30047" msgid "Request Timeshift" msgstr "Zahtevaj pomeraj vremena" msgctxt "#30048" msgid "Path to channel icons" msgstr "Putanja do ikona kanala" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "VDR Server Mac za Buđenje-preko-LAN" msgctxt "#30100" msgid "VDR OSD" msgstr "VDR OSD" msgctxt "#30101" msgid "Setup" msgstr "Konfiguracija" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "Kontrolisanje OSD - pritisnite info za izlazak" msgctxt "#30103" msgid "Select to control OSD" msgstr "Odaberite radi kontrole OSD" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Režim Vremenskog Pomeraja" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "Bafer Vremenskog Pomeraja (RAM) x100 MB" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Bafer Vremenskog Pomeraja (Datoteka) x1 GB" msgctxt "#30107" msgid "VDR Admin" msgstr "VDR Administrator" msgctxt "#30108" msgid "Channels" msgstr "Kanali" msgctxt "#30109" msgid "Provider whitelist" msgstr "Bela lista provajdera" msgctxt "#30110" msgid "Channel blacklist" msgstr "Crna lista kanala" msgctxt "#30111" msgid "Channel filters" msgstr "Filteri kanala" msgctxt "#30112" msgid "Radio Channels" msgstr "Radio Kanali" msgctxt "#30113" msgid "Save filters" msgstr "Sačuvaj filtere" msgctxt "#30114" msgid "Provider Unknown" msgstr "Nepoznat Provajder" msgctxt "#30201" msgid "Repeating" msgstr "Ponavljajući" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.en_nz/0000755000175000017500000000000013030540613027317 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.en_nz/strings.po0000644000175000017500000001245613030540613031360 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#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" msgctxt "#30200" msgid "Single" msgstr "Single" msgctxt "#30201" msgid "Repeating" msgstr "Repeating" msgctxt "#30203" msgid "VPS" msgstr "VPS" msgctxt "#30204" msgid "Search EPG" msgstr "Search EPG" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.bs_ba/0000755000175000017500000000000012725215015027261 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.bs_ba/strings.po0000644000175000017500000000211212725215015031306 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.zh_cn/0000755000175000017500000000000013030540613027307 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.zh_cn/strings.po0000644000175000017500000001242713030540613031346 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#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 "未知来源" msgctxt "#30200" msgid "Single" msgstr "单次" msgctxt "#30201" msgid "Repeating" msgstr "重复" msgctxt "#30202" msgid "EGP" msgstr "EGP" msgctxt "#30203" msgid "VPS" msgstr "VPS" msgctxt "#30204" msgid "Search EPG" msgstr "搜索电子节目单" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.nl_nl/0000755000175000017500000000000013006733621027316 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.nl_nl/strings.po0000644000175000017500000001252313006733621031352 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#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" msgctxt "#30200" msgid "Single" msgstr "Single" msgctxt "#30201" msgid "Repeating" msgstr "Herhalen" msgctxt "#30202" msgid "EGP" msgstr "EGP" msgctxt "#30203" msgid "VPS" msgstr "VPS" msgctxt "#30204" msgid "Search EPG" msgstr "Zoek EPG" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.si_lk/0000755000175000017500000000000012725215015027314 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.si_lk/strings.po0000644000175000017500000000156712725215015031356 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.ja_jp/0000755000175000017500000000000013006733621027277 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.ja_jp/strings.po0000644000175000017500000001232513006733621031333 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#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 "タイムシフトバッファー (ファイル) x1GB" 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 "絞り込みの保存" msgctxt "#30201" msgid "Repeating" msgstr "くり返し" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.af_za/0000755000175000017500000000000013006733621027274 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.af_za/strings.po0000644000175000017500000001223413006733621031327 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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: Afrikaans (South Africa) (http://www.transifex.com/projects/p/kodi-main/language/af_ZA/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: af_ZA\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgctxt "#30000" msgid "VDR Hostname or IP" msgstr "VDR Gasheernaam of IP" msgctxt "#30001" msgid "VNSI Port" msgstr "VNSI Poort" msgctxt "#30002" msgid "Priority" msgstr "Prioriteit" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Karakter Stel omskakeling" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Konnekteer tydverstreke(s)" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Lees opnames vanaf vouer" msgctxt "#30007" msgid "VDR recordings directory" msgstr "VDR opnames vouer" msgctxt "#30008" msgid "Channel search" msgstr "Kanaal soektog" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Kanaal soektog - Verstellings" msgctxt "#30010" msgid "Start Channel search" msgstr "Begin Kanaal soektog" msgctxt "#30011" msgid "Source Type" msgstr "Bron Tipe" msgctxt "#30012" msgid "TV channels" msgstr "TV kanale" msgctxt "#30013" msgid "Radio channels" msgstr "Radio kanale" msgctxt "#30014" msgid "FTA channels" msgstr "FTA kanale" msgctxt "#30015" msgid "Scrambled channels" msgstr "Vermengde kanale" msgctxt "#30016" msgid "HD channels" msgstr "HD kanale" msgctxt "#30017" msgid "Country" msgstr "Land" msgctxt "#30018" msgid "Cable Inversion" msgstr "Kabel Inversie" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Kabel Simbooltempo" msgctxt "#30020" msgid "Cable modulation" msgstr "Kabel modulasie" msgctxt "#30021" msgid "Terr Inversion" msgstr "Terr Inversie" msgctxt "#30022" msgid "Satellite" msgstr "Satelliet" msgctxt "#30023" msgid "ATSC Type" msgstr "ATSC Tipe" msgctxt "#30024" msgid "Back" msgstr "Trug" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Kanaal soektog - loop... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Tipe:" msgctxt "#30027" msgid "Device:" msgstr "Toestel:" msgctxt "#30028" msgid "Scan: %i" msgstr "Deursoek: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Sein: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Nuwe kanale: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Alle kanale: %i" msgctxt "#30032" msgid "Analog TV" msgstr "Analoog TV" msgctxt "#30033" msgid "Analog Radio" msgstr "Analoog Radio" msgctxt "#30034" msgid "Transponder:" msgstr "Antwoordsender:" msgctxt "#30035" msgid "New channels" msgstr "Nuwe kanale" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Kanaal soektog - Klaar" msgctxt "#30037" msgid "No device available - exiting" msgstr "Geen toestel beskikbaar - gaan uit" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "Geen DVB-S2 toestel beskikbaar - probeer terugval na DVB-S" msgctxt "#30039" msgid "Running" msgstr "Hardloop" msgctxt "#30040" msgid "Stopped" msgstr "Gestop" msgctxt "#30041" msgid "Finished" msgstr "Klaar" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Kanaal soektog - Gekanselleer" msgctxt "#30043" msgid "Channel search - Error" msgstr "Kanaal soektog - Fout" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "Konneksie aan VDR Bediener verloor" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "Konneksie aan VDR Bediener herstel" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Skep kanaal groepe outomaties op die bediener" msgctxt "#30047" msgid "Request Timeshift" msgstr "Versoek tydskuif" msgctxt "#30048" msgid "Path to channel icons" msgstr "Pad na kanaal ikone" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "VDR Bediener MAC vir Wake-on-LAN" msgctxt "#30100" msgid "VDR OSD" msgstr "VDR OSD" msgctxt "#30101" msgid "Setup" msgstr "Konfigurasie" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "Beheer OSD - druk info om uit te gaan" msgctxt "#30103" msgid "Select to control OSD" msgstr "Kies om OSD te beheer" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Tydskuif modus" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "Tydskuif buffer (RAM) x100 MB" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Tydskuif buffer (lêer) x1 GB" msgctxt "#30107" msgid "VDR Admin" msgstr "VDR Admin" msgctxt "#30108" msgid "Channels" msgstr "Kanale" msgctxt "#30109" msgid "Provider whitelist" msgstr "Verskaffer witlys" msgctxt "#30110" msgid "Channel blacklist" msgstr "Kanaal swartlys" msgctxt "#30111" msgid "Channel filters" msgstr "Kanaal filters" msgctxt "#30112" msgid "Radio Channels" msgstr "Radio kanale" msgctxt "#30113" msgid "Save filters" msgstr "Stoor filters" msgctxt "#30114" msgid "Provider Unknown" msgstr "Verskaffer onbekend" msgctxt "#30201" msgid "Repeating" msgstr "Herhaal" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.eu_es/0000755000175000017500000000000013030540613027306 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.eu_es/strings.po0000644000175000017500000000234413030540613031342 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#30002" msgid "Priority" msgstr "Lehentasuna" 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 "#30024" msgid "Back" msgstr "Atzera" msgctxt "#30026" msgid "Type:" msgstr "Mota:" msgctxt "#30039" msgid "Running" msgstr "Exekutatzen" msgctxt "#30101" msgid "Setup" msgstr "Konfigurazioa" msgctxt "#30108" msgid "Channels" msgstr "Kateak" msgctxt "#30201" msgid "Repeating" msgstr "Errepikapena" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.fo_fo/0000755000175000017500000000000012725215015027303 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.fo_fo/strings.po0000644000175000017500000000170112725215015031333 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.fr_ca/0000755000175000017500000000000013030540613027260 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.fr_ca/strings.po0000644000175000017500000001350013030540613031310 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "Temporisation de connexion (s)" 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 "Analyse : %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" msgctxt "#30200" msgid "Single" msgstr "Simple" msgctxt "#30201" msgid "Repeating" msgstr "Répétition" msgctxt "#30202" msgid "EGP" msgstr "GÉP" msgctxt "#30203" msgid "VPS" msgstr "SDV" msgctxt "#30204" msgid "Search EPG" msgstr "Rechercher dans le GÉP" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.sl_si/0000755000175000017500000000000013006733621027325 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.sl_si/strings.po0000644000175000017500000001247213006733621031364 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#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-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.tg_tj/0000755000175000017500000000000012725215015027322 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.tg_tj/strings.po0000644000175000017500000000201112725215015031345 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.en_us/0000755000175000017500000000000013030540613027317 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.en_us/strings.po0000644000175000017500000001253313030540613031354 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#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" msgctxt "#30200" msgid "Single" msgstr "Single" msgctxt "#30201" msgid "Repeating" msgstr "Repeating" msgctxt "#30202" msgid "EGP" msgstr "EGP" msgctxt "#30203" msgid "VPS" msgstr "VPS" msgctxt "#30204" msgid "Search EPG" msgstr "Search EPG" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.pt_pt/0000755000175000017500000000000013006733621027342 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.pt_pt/strings.po0000644000175000017500000001322213006733621031373 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 ou IP do servidor VDR" msgctxt "#30001" msgid "VNSI Port" msgstr "Porto do 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 da ligação (s)" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Ler as gravações a partir da pasta" msgctxt "#30007" msgid "VDR recordings directory" msgstr "Pasta das gravações VDR" msgctxt "#30008" msgid "Channel search" msgstr "Pesquisa de canais" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Pesquisa de canais - Configuração" 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 "Taxa de Símbolos 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 "Recuar" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Efetuando a procura de canais... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Tipo:" msgctxt "#30027" msgid "Device:" msgstr "Dispositivo:" msgctxt "#30028" msgid "Scan: %i" msgstr "Sintonia: %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 "Em execução" 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 "Localização dos í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" msgctxt "#30200" msgid "Single" msgstr "Único" msgctxt "#30201" msgid "Repeating" msgstr "Repetição" msgctxt "#30202" msgid "EGP" msgstr "EGP" msgctxt "#30203" msgid "VPS" msgstr "VPS" msgctxt "#30204" msgid "Search EPG" msgstr "Pesquisa no EPG" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.pt_br/0000755000175000017500000000000013006733621027322 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.pt_br/strings.po0000644000175000017500000001300313006733621031350 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#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" msgctxt "#30200" msgid "Single" msgstr "Único" msgctxt "#30201" msgid "Repeating" msgstr "Recorrente" msgctxt "#30202" msgid "EGP" msgstr "EGP" msgctxt "#30203" msgid "VPS" msgstr "VPS" msgctxt "#30204" msgid "Search EPG" msgstr "Procurar EPG" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.is_is/0000755000175000017500000000000013006733621027322 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.is_is/strings.po0000644000175000017500000001246713006733621031365 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#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" msgctxt "#30201" msgid "Repeating" msgstr "Endurtekið" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.sq_al/0000755000175000017500000000000013006733621027313 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.sq_al/strings.po0000644000175000017500000000776013006733621031356 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#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-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.hy_am/0000755000175000017500000000000012725215015027310 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.hy_am/strings.po0000644000175000017500000000151212725215015031340 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.hi_in/0000755000175000017500000000000012725215015027301 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.hi_in/strings.po0000644000175000017500000000133712725215015031336 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.da_dk/0000755000175000017500000000000013030540613027250 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.da_dk/strings.po0000644000175000017500000001263713030540613031312 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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ætkonvertering" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Tidsfrist for forbindelse (s)" 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 "Analogt 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" msgctxt "#30200" msgid "Single" msgstr "Enlig" msgctxt "#30201" msgid "Repeating" msgstr "Gentagende" msgctxt "#30202" msgid "EGP" msgstr "GP" msgctxt "#30203" msgid "VPS" msgstr "VPS" msgctxt "#30204" msgid "Search EPG" msgstr "Søg EPG" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.ca_es/0000755000175000017500000000000013030540613027260 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.ca_es/strings.po0000644000175000017500000001324413030540613031315 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 d'amfitrió o IP de 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'expiració de la connexió (s)" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Llegeix els enregistraments del directori" 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 - Ajusts" msgctxt "#30010" msgid "Start Channel search" msgstr "Inicia la cerca del canal" msgctxt "#30011" msgid "Source Type" msgstr "Tipus d'origen" msgctxt "#30012" msgid "TV channels" msgstr "Canals de TV" msgctxt "#30013" msgid "Radio channels" msgstr "Emissores 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 - En execució... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Tipus:" msgctxt "#30027" msgid "Device:" msgstr "Dispositiu:" msgctxt "#30028" msgid "Scan: %i" msgstr "Exploració: %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 "En execució" 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 "#30047" msgid "Request Timeshift" msgstr "Sol·licita els salts en el temps" msgctxt "#30048" msgid "Path to channel icons" msgstr "Camí a les icones del canal" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "MAC del servidor VDR per Wake-on-LAN" msgctxt "#30100" msgid "VDR OSD" msgstr "OSD de VDR" msgctxt "#30101" msgid "Setup" msgstr "Configuració" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "Control d'OSD - premeu info per a sortir" msgctxt "#30103" msgid "Select to control OSD" msgstr "Selecciona per controlar OSD" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Mode dels salts en el temps" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "Memòria intermèdia dels salts en el temps (RAM) x100 MB" msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Memòria intermèdia dels salts en el temps (fitxer) x1 GB" msgctxt "#30107" msgid "VDR Admin" msgstr "Administrador VDR" msgctxt "#30108" msgid "Channels" msgstr "Canals" msgctxt "#30109" msgid "Provider whitelist" msgstr "Llista blanca de proveïdors" msgctxt "#30110" msgid "Channel blacklist" msgstr "Llista negra de canals" msgctxt "#30111" msgid "Channel filters" msgstr "Filtres dels canals" msgctxt "#30112" msgid "Radio Channels" msgstr "Emissores de ràdio" msgctxt "#30113" msgid "Save filters" msgstr "Desa els filtres" msgctxt "#30114" msgid "Provider Unknown" msgstr "Proveïdor desconegut" msgctxt "#30200" msgid "Single" msgstr "Individual" msgctxt "#30201" msgid "Repeating" msgstr "Repetició" msgctxt "#30202" msgid "EGP" msgstr "EGP" msgctxt "#30203" msgid "VPS" msgstr "VPS" msgctxt "#30204" msgid "Search EPG" msgstr "Cerca l'EPG" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.fa_af/0000755000175000017500000000000012725215015027247 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.fa_af/strings.po0000644000175000017500000000124612725215015031303 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.szl/0000755000175000017500000000000013030540613027016 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.szl/strings.po0000644000175000017500000001346613030540613031061 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#30000" msgid "VDR Hostname or IP" msgstr "Miano lebo adresa ôd serwera" msgctxt "#30001" msgid "VNSI Port" msgstr "Port VNSI" msgctxt "#30002" msgid "Priority" msgstr "Priorytet" msgctxt "#30003" msgid "Character Set Conversion" msgstr "Kōnwersyjŏ kodowaniŏ znŏkōw" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Limit czŏsu skuplowaniŏ (sekundy)" msgctxt "#30006" msgid "Read recordings from directory" msgstr "Wgrowej nagrania z folderu" msgctxt "#30007" msgid "VDR recordings directory" msgstr "Folder nagrań" msgctxt "#30008" msgid "Channel search" msgstr "Zeszukowanie kanałōw" msgctxt "#30009" msgid "Channel search - Settings" msgstr "Zeszukowanie kanałōw - Sztelōnki" msgctxt "#30010" msgid "Start Channel search" msgstr "Napocznij zeszukowanie kanałōw" msgctxt "#30011" msgid "Source Type" msgstr "Zorta źrōdła" msgctxt "#30012" msgid "TV channels" msgstr "Kanały TV" msgctxt "#30013" msgid "Radio channels" msgstr "Kanały radiowe" msgctxt "#30014" msgid "FTA channels" msgstr "Kanały niykodowane" msgctxt "#30015" msgid "Scrambled channels" msgstr "Kanały kodowane" msgctxt "#30016" msgid "HD channels" msgstr "Kanały HD" msgctxt "#30017" msgid "Country" msgstr "Krej" msgctxt "#30018" msgid "Cable Inversion" msgstr "Inwersyjŏ kablowyj telewizyje" msgctxt "#30019" msgid "Cable Symbolrate" msgstr "Gibkość transmisyje kablowyj telewizyje" msgctxt "#30020" msgid "Cable modulation" msgstr "Modulacyjŏ kablowyj telewizyje" msgctxt "#30021" msgid "Terr Inversion" msgstr "Inwersyjŏ naziymnyj telewizyje" msgctxt "#30022" msgid "Satellite" msgstr "Satelita" msgctxt "#30023" msgid "ATSC Type" msgstr "Zorta naziymnyj telewizyje ATSC" msgctxt "#30024" msgid "Back" msgstr "Cofnij" msgctxt "#30025" msgid "Channel search - running... %i %%" msgstr "Zeszukowanie kanałōw - robi... %i %%" msgctxt "#30026" msgid "Type:" msgstr "Zorta:" msgctxt "#30027" msgid "Device:" msgstr "Maszina:" msgctxt "#30028" msgid "Scan: %i" msgstr "Skanowanie: %i" msgctxt "#30029" msgid "Signal: %i %%" msgstr "Sygnoł: %i %%" msgctxt "#30030" msgid "New channels: %i" msgstr "Nowych kanałōw: %i" msgctxt "#30031" msgid "All channels: %i" msgstr "Wszyjskich kanałōw: %i" msgctxt "#30032" msgid "Analog TV" msgstr "Analogowŏ telewizyjŏ" msgctxt "#30033" msgid "Analog Radio" msgstr "Analogowe radyjŏ" msgctxt "#30034" msgid "Transponder:" msgstr "Transpōnder:" msgctxt "#30035" msgid "New channels" msgstr "Nowe kanały" msgctxt "#30036" msgid "Channel search - Finished" msgstr "Zeszukowanie kanałōw - skōńczōne" msgctxt "#30037" msgid "No device available - exiting" msgstr "Niy ma dostympnych maszin - zawiyranie" msgctxt "#30038" msgid "No DVB-S2 device available - trying fallback to DVB-S" msgstr "Niy ma dostympnych maszin DVB-S2 - awaryjne przeszaltrowanie do DVB-S" msgctxt "#30039" msgid "Running" msgstr "Włōnczōny" msgctxt "#30040" msgid "Stopped" msgstr "Zastawiōne" msgctxt "#30041" msgid "Finished" msgstr "Skōńczōne" msgctxt "#30042" msgid "Channel search - Canceled" msgstr "Zeszukowanie kanałōw - Pociepniynte" msgctxt "#30043" msgid "Channel search - Error" msgstr "Zeszukowanie kanałōw - Feler" msgctxt "#30044" msgid "Lost connection to VDR Server" msgstr "Serwane skuplowanie ze serwerym VDR" msgctxt "#30045" msgid "Connection to VDR Server restored" msgstr "Wrōcōno było skuplowanie ze serwerym VDR" msgctxt "#30046" msgid "Create channel groups automatically on the server" msgstr "Wytwōrz skupiny kanałōw autōmatycznie na serwerze" msgctxt "#30047" msgid "Request Timeshift" msgstr "Spytej ô timeshift" msgctxt "#30048" msgid "Path to channel icons" msgstr "Cesta do folderu z ikōnami kanałōw" msgctxt "#30049" msgid "VDR Server MAC for Wake-on-LAN" msgstr "Adresa MAC ôd serwera VDR dlŏ zdŏlnygo cucyniŏ" msgctxt "#30100" msgid "VDR OSD" msgstr "Ekranowe myni VDR" msgctxt "#30101" msgid "Setup" msgstr "Sztelōnki" msgctxt "#30102" msgid "Controlling OSD - press info to exit" msgstr "Reskyrowanie ekranowym myni - naciś Info, coby wylyźć" msgctxt "#30103" msgid "Select to control OSD" msgstr "Ôznŏcz, coby kōntrolować ekranowe myni" msgctxt "#30104" msgid "Timeshift Mode" msgstr "Tryb timeshiftu" msgctxt "#30105" msgid "Timeshift Buffer (RAM) x100 MB" msgstr "Miara bufōra timeshiftu (RAM) x100 MB " msgctxt "#30106" msgid "Timeshift Buffer (File) x1 GB" msgstr "Miara bufōra timeshiftu (Zbiōr) x1 GB" msgctxt "#30107" msgid "VDR Admin" msgstr "Administracyjŏ VDR" msgctxt "#30108" msgid "Channels" msgstr "Kanały" msgctxt "#30109" msgid "Provider whitelist" msgstr "Zadufanie liferanty " msgctxt "#30110" msgid "Channel blacklist" msgstr "Kanały ôbszperowane" msgctxt "#30111" msgid "Channel filters" msgstr "Filtry kanałōw" msgctxt "#30112" msgid "Radio Channels" msgstr "Kanały radyjowe" msgctxt "#30113" msgid "Save filters" msgstr "Spamiyntej filtry" msgctxt "#30114" msgid "Provider Unknown" msgstr "Liferant niyznōmy" msgctxt "#30200" msgid "Single" msgstr "Jednorazowo" msgctxt "#30201" msgid "Repeating" msgstr "Wiela razy" msgctxt "#30202" msgid "EGP" msgstr "EGP" msgctxt "#30203" msgid "VPS" msgstr "VPS" msgctxt "#30204" msgid "Search EPG" msgstr "Zeszukej w EPG" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.uk_ua/0000755000175000017500000000000013006733621027320 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.uk_ua/strings.po0000644000175000017500000001213113006733621031347 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#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 "Канали" msgctxt "#30201" msgid "Repeating" msgstr "Повторювати" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.fa_ir/0000755000175000017500000000000012725215015027273 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.fa_ir/strings.po0000644000175000017500000000176012725215015031330 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.te_in/0000755000175000017500000000000012725215015027311 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.te_in/strings.po0000644000175000017500000000134112725215015031341 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.et_ee/0000755000175000017500000000000013006733621027275 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.et_ee/strings.po0000644000175000017500000000572213006733621031334 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#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-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.mn_mn/0000755000175000017500000000000013006733621027320 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.mn_mn/strings.po0000644000175000017500000001103513006733621031351 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#30003" msgid "Character Set Conversion" msgstr "Тэмдэгт хөрвүүлэлт" msgctxt "#30004" msgid "Connect timeout (s)" msgstr "Холболтын хугцаа хэтэрсэн" 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 "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 "Аналог ТВ" 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 "#30046" msgid "Create channel groups automatically on the server" msgstr "Энэ серверт сувгийн группыг автоматаар үүсгэ" msgctxt "#30048" msgid "Path to channel icons" msgstr "Сувгийн таних тэмдэгийн зам" msgctxt "#30101" msgid "Setup" msgstr "Тохиргоо" 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-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.sr_rs/0000755000175000017500000000000013006733621027344 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.sr_rs/strings.po0000644000175000017500000001445413006733621031405 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#30000" msgid "VDR Hostname or IP" msgstr "VDR Hostname или 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 "Истек времена за повезивање (s)" 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 "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 "VDR Сервер MAC за Буђење-преко-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 "Бафер Временског Помераја (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 "Непознат Провајдер" msgctxt "#30201" msgid "Repeating" msgstr "Понављајући" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.sk_sk/0000755000175000017500000000000013006733621027326 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.sk_sk/strings.po0000644000175000017500000001342213006733621031361 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#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ľ" msgctxt "#30200" msgid "Single" msgstr "Jeden" msgctxt "#30201" msgid "Repeating" msgstr "Opakovanie" msgctxt "#30202" msgid "EGP" msgstr "EPG" msgctxt "#30203" msgid "VPS" msgstr "VPS" msgctxt "#30204" msgid "Search EPG" msgstr "Hľadať EPG" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.cs_cz/0000755000175000017500000000000013006733621027315 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.cs_cz/strings.po0000644000175000017500000001301113006733621031342 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#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" msgctxt "#30201" msgid "Repeating" msgstr "Opakující se" msgctxt "#30202" msgid "EGP" msgstr "EGP" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.he_il/0000755000175000017500000000000013006733621027274 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.he_il/strings.po0000644000175000017500000001317613006733621031335 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#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 "ספק לא מוכר" msgctxt "#30201" msgid "Repeating" msgstr "חוזר" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.ko_kr/0000755000175000017500000000000013006733621027321 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/resources/language/resource.language.ko_kr/strings.po0000644000175000017500000001260713006733621031360 0ustar tobiastobias# Kodi Media Center language file # Addon Name: VDR VNSI Client # Addon id: pvr.vdr.vnsi # Addon Provider: FernetMenta, Team Kodi 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 "#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 "알려지지 않은 제공자" msgctxt "#30200" msgid "Single" msgstr "단일" msgctxt "#30201" msgid "Repeating" msgstr "반복" msgctxt "#30202" msgid "EGP" msgstr "EGP" msgctxt "#30203" msgid "VPS" msgstr "VPS" msgctxt "#30204" msgid "Search EPG" msgstr "EPG 검색" kodi-pvr-vdr-vnsi-2.6.12/pvr.vdr.vnsi/icon.png0000644000175000017500000006566612664612001020465 0ustar tobiastobiasPNG  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 . * */ #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") override; 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: bool OnResponsePacket(cResponsePacket* resp) override; void OnDisconnect() override {}; void OnReconnect() override {}; 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; P8PLATFORM::CMutex m_osdMutex; }; kodi-pvr-vdr-vnsi-2.6.12/src/client.cpp0000644000175000017500000006403013030540613017176 0ustar tobiastobias/* * 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 "xbmc_pvr_dll.h" #include "VNSIDemux.h" #include "VNSIRecording.h" #include "VNSIData.h" #include "VNSIChannelScan.h" #include "VNSIAdmin.h" #include "vnsicommand.h" #include "p8-platform/util/util.h" #include #include #include using namespace std; using namespace ADDON; using namespace P8PLATFORM; 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 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 = ""; int prioVals[] = {0,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99,100}; CHelper_libXBMC_addon *XBMC = nullptr; CHelper_libXBMC_codec *CODEC = nullptr; CHelper_libKODI_guilib *GUI = nullptr; CHelper_libXBMC_pvr *PVR = nullptr; cVNSIDemux *VNSIDemuxer = nullptr; cVNSIData *VNSIData = nullptr; cVNSIRecording *VNSIRecording = nullptr; bool IsTimeshift; time_t TimeshiftStartTime; time_t TimeshiftEndTime; time_t TimeshiftPlayTime; P8PLATFORM::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; } 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 "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); try { VNSIData = new cVNSIData; m_CurStatus = ADDON_STATUS_OK; if (!VNSIData->Start(g_szHostname, g_iPort, nullptr, g_szWolMac)) { ADDON_Destroy(); m_CurStatus = ADDON_STATUS_PERMANENT_FAILURE; return m_CurStatus; } } catch (std::exception e) { XBMC->Log(LOG_ERROR, "%s - %s", __FUNCTION__, e.what()); 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); 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") { int newPrio = prioVals[*(int*)settingValue]; XBMC->Log(LOG_INFO, "Changed Setting 'priority' from %u to %u", g_iPriority, newPrio); g_iPriority = newPrio; } 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 == "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() { } /*********************************************************** * PVR Client AddOn specific public library functions ***********************************************************/ void OnSystemSleep() { } void OnSystemWake() { if (XBMC && !g_szWolMac.empty()) { XBMC->WakeOnLan(g_szWolMac.c_str()); } } void OnPowerSavingActivated() { } void OnPowerSavingDeactivated() { } 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; try { scanner.Open(g_szHostname, g_iPort); return PVR_ERROR_NO_ERROR; } catch (std::exception e) { XBMC->Log(LOG_ERROR, "%s - %s", __FUNCTION__, e.what()); return PVR_ERROR_SERVER_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; try { return (VNSIData->GetEPGForChannel(handle, channel, iStart, iEnd) ? PVR_ERROR_NO_ERROR: PVR_ERROR_SERVER_ERROR); } catch (std::exception e) { XBMC->Log(LOG_ERROR, "%s - %s", __FUNCTION__, e.what()); return PVR_ERROR_SERVER_ERROR; } } /*******************************************/ /** PVR Channel Functions **/ int GetChannelsAmount(void) { if (!VNSIData) return 0; try { return VNSIData->GetChannelsCount(); } catch (std::exception e) { XBMC->Log(LOG_ERROR, "%s - %s", __FUNCTION__, e.what()); return 0; } } PVR_ERROR GetChannels(ADDON_HANDLE handle, bool bRadio) { if (!VNSIData) return PVR_ERROR_SERVER_ERROR; try { return (VNSIData->GetChannelsList(handle, bRadio) ? PVR_ERROR_NO_ERROR : PVR_ERROR_SERVER_ERROR); } catch (std::exception e) { XBMC->Log(LOG_ERROR, "%s - %s", __FUNCTION__, e.what()); return PVR_ERROR_SERVER_ERROR; } } /*******************************************/ /** PVR Channelgroups Functions **/ int GetChannelGroupsAmount() { if (!VNSIData) return PVR_ERROR_SERVER_ERROR; try { return VNSIData->GetChannelGroupCount(g_bAutoChannelGroups); } catch (std::exception e) { XBMC->Log(LOG_ERROR, "%s - %s", __FUNCTION__, e.what()); return PVR_ERROR_SERVER_ERROR; } } PVR_ERROR GetChannelGroups(ADDON_HANDLE handle, bool bRadio) { if (!VNSIData) return PVR_ERROR_SERVER_ERROR; try { if(VNSIData->GetChannelGroupCount(g_bAutoChannelGroups) > 0) return VNSIData->GetChannelGroupList(handle, bRadio) ? PVR_ERROR_NO_ERROR : PVR_ERROR_SERVER_ERROR; return PVR_ERROR_NO_ERROR; } catch (std::exception e) { XBMC->Log(LOG_ERROR, "%s - %s", __FUNCTION__, e.what()); return PVR_ERROR_SERVER_ERROR; } } PVR_ERROR GetChannelGroupMembers(ADDON_HANDLE handle, const PVR_CHANNEL_GROUP &group) { if (!VNSIData) return PVR_ERROR_SERVER_ERROR; try { return VNSIData->GetChannelGroupMembers(handle, group) ? PVR_ERROR_NO_ERROR : PVR_ERROR_SERVER_ERROR; } catch (std::exception e) { XBMC->Log(LOG_ERROR, "%s - %s", __FUNCTION__, e.what()); return PVR_ERROR_SERVER_ERROR; } } /*******************************************/ /** PVR Timer Functions **/ PVR_ERROR GetTimerTypes(PVR_TIMER_TYPE types[], int *size) { if (!VNSIData) return PVR_ERROR_SERVER_ERROR; try { return VNSIData->GetTimerTypes(types, size); } catch (std::exception e) { XBMC->Log(LOG_ERROR, "%s - %s", __FUNCTION__, e.what()); return PVR_ERROR_SERVER_ERROR; } } int GetTimersAmount(void) { if (!VNSIData) return PVR_ERROR_SERVER_ERROR; try { return VNSIData->GetTimersCount(); } catch (std::exception e) { XBMC->Log(LOG_ERROR, "%s - %s", __FUNCTION__, e.what()); return PVR_ERROR_SERVER_ERROR; } } PVR_ERROR GetTimers(ADDON_HANDLE handle) { if (!VNSIData) return PVR_ERROR_SERVER_ERROR; try { return (VNSIData->GetTimersList(handle) ? PVR_ERROR_NO_ERROR : PVR_ERROR_SERVER_ERROR); } catch (std::exception e) { XBMC->Log(LOG_ERROR, "%s - %s", __FUNCTION__, e.what()); return PVR_ERROR_SERVER_ERROR; } } PVR_ERROR AddTimer(const PVR_TIMER &timer) { if (!VNSIData) return PVR_ERROR_SERVER_ERROR; try { return VNSIData->AddTimer(timer); } catch (std::exception e) { XBMC->Log(LOG_ERROR, "%s - %s", __FUNCTION__, e.what()); return PVR_ERROR_SERVER_ERROR; } } PVR_ERROR DeleteTimer(const PVR_TIMER &timer, bool bForce) { if (!VNSIData) return PVR_ERROR_SERVER_ERROR; try { return VNSIData->DeleteTimer(timer, bForce); } catch (std::exception e) { XBMC->Log(LOG_ERROR, "%s - %s", __FUNCTION__, e.what()); return PVR_ERROR_SERVER_ERROR; } } PVR_ERROR UpdateTimer(const PVR_TIMER &timer) { if (!VNSIData) return PVR_ERROR_SERVER_ERROR; try { return VNSIData->UpdateTimer(timer); } catch (std::exception e) { XBMC->Log(LOG_ERROR, "%s - %s", __FUNCTION__, e.what()); return PVR_ERROR_SERVER_ERROR; } } /*******************************************/ /** PVR Recording Functions **/ int GetRecordingsAmount(bool deleted) { if (!VNSIData) return 0; try { if (!deleted) return VNSIData->GetRecordingsCount(); else return VNSIData->GetDeletedRecordingsCount(); } catch (std::exception e) { XBMC->Log(LOG_ERROR, "%s - %s", __FUNCTION__, e.what()); return PVR_ERROR_SERVER_ERROR; } } PVR_ERROR GetRecordings(ADDON_HANDLE handle, bool deleted) { if (!VNSIData) return PVR_ERROR_SERVER_ERROR; try { if (!deleted) return VNSIData->GetRecordingsList(handle); else return VNSIData->GetDeletedRecordingsList(handle); } catch (std::exception e) { XBMC->Log(LOG_ERROR, "%s - %s", __FUNCTION__, e.what()); return PVR_ERROR_SERVER_ERROR; } } PVR_ERROR RenameRecording(const PVR_RECORDING &recording) { if (!VNSIData) return PVR_ERROR_SERVER_ERROR; try { return VNSIData->RenameRecording(recording, recording.strTitle); } catch (std::exception e) { XBMC->Log(LOG_ERROR, "%s - %s", __FUNCTION__, e.what()); return PVR_ERROR_SERVER_ERROR; } } PVR_ERROR DeleteRecording(const PVR_RECORDING &recording) { if (!VNSIData) return PVR_ERROR_SERVER_ERROR; try { return VNSIData->DeleteRecording(recording); } catch (std::exception e) { XBMC->Log(LOG_ERROR, "%s - %s", __FUNCTION__, e.what()); return PVR_ERROR_SERVER_ERROR; } } PVR_ERROR UndeleteRecording(const PVR_RECORDING& recording) { if (!VNSIData) return PVR_ERROR_SERVER_ERROR; try { return VNSIData->UndeleteRecording(recording); } catch (std::exception e) { XBMC->Log(LOG_ERROR, "%s - %s", __FUNCTION__, e.what()); return PVR_ERROR_SERVER_ERROR; } } PVR_ERROR DeleteAllRecordingsFromTrash() { if (!VNSIData) return PVR_ERROR_SERVER_ERROR; try { return VNSIData->DeleteAllRecordingsFromTrash(); } catch (std::exception e) { XBMC->Log(LOG_ERROR, "%s - %s", __FUNCTION__, e.what()); return PVR_ERROR_SERVER_ERROR; } } /*******************************************/ /** PVR Live Stream Functions **/ bool OpenLiveStream(const PVR_CHANNEL &channel) { CloseLiveStream(); try { VNSIDemuxer = new cVNSIDemux; TimeshiftStartTime = 0; TimeshiftEndTime = 0; TimeshiftPlayTime = 0; return VNSIDemuxer->OpenChannel(channel); } catch (std::exception e) { XBMC->Log(LOG_ERROR, "%s - %s", __FUNCTION__, e.what()); delete VNSIDemuxer; VNSIDemuxer = NULL; return false; } } 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; try { pkt = VNSIDemuxer->Read(); } catch (std::exception e) { XBMC->Log(LOG_ERROR, "%s - %s", __FUNCTION__, e.what()); return NULL; } const CLockObject lock(TimeshiftMutex); IsTimeshift = VNSIDemuxer->IsTimeshift(); TimeshiftStartTime = VNSIDemuxer->GetBufferTimeStart(); TimeshiftEndTime = VNSIDemuxer->GetBufferTimeEnd(); TimeshiftPlayTime = VNSIDemuxer->GetPlayingTime(); return pkt; } bool SwitchChannel(const PVR_CHANNEL &channel) { try { if (VNSIDemuxer) return VNSIDemuxer->SwitchChannel(channel); } catch (std::exception e) { XBMC->Log(LOG_ERROR, "%s - %s", __FUNCTION__, e.what()); } return false; } PVR_ERROR SignalStatus(PVR_SIGNAL_STATUS &signalStatus) { if (!VNSIDemuxer) return PVR_ERROR_SERVER_ERROR; try { return (VNSIDemuxer->GetSignalStatus(signalStatus) ? PVR_ERROR_NO_ERROR : PVR_ERROR_SERVER_ERROR); } catch (std::exception e) { XBMC->Log(LOG_ERROR, "%s - %s", __FUNCTION__, e.what()); return 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 IsRealTimeStream() { if (VNSIDemuxer) { const CLockObject lock(TimeshiftMutex); if (!IsTimeshift) return true; if (TimeshiftEndTime - TimeshiftPlayTime < 10) return true; } return false; } bool SeekTime(double time, bool backwards, double *startpts) { bool ret = false; try { if (VNSIDemuxer) ret = VNSIDemuxer->SeekTime(time, backwards, startpts); } catch (std::exception e) { XBMC->Log(LOG_ERROR, "%s - %s", __FUNCTION__, e.what()); } return ret; } time_t GetPlayingTime() { time_t time = 0; if (VNSIDemuxer) { const CLockObject lock(TimeshiftMutex); time = TimeshiftPlayTime; } return time; } time_t GetBufferTimeStart() { time_t time = 0; if (VNSIDemuxer) { const CLockObject lock(TimeshiftMutex); time = TimeshiftStartTime; } return time; } time_t GetBufferTimeEnd() { time_t time = 0; if (VNSIDemuxer) { const CLockObject lock(TimeshiftMutex); time = TimeshiftEndTime; } return time; } bool IsTimeshifting() { bool ret = false; if (VNSIDemuxer) { const CLockObject lock(TimeshiftMutex); ret = IsTimeshift; } 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; try { return VNSIRecording->OpenRecording(recording); } catch (std::exception e) { XBMC->Log(LOG_ERROR, "%s - %s", __FUNCTION__, e.what()); VNSIRecording->Close(); delete VNSIRecording; VNSIRecording = NULL; return false; } } void CloseRecordedStream(void) { if (VNSIRecording) { VNSIRecording->Close(); delete VNSIRecording; VNSIRecording = NULL; } } int ReadRecordedStream(unsigned char *pBuffer, unsigned int iBufferSize) { if (!VNSIRecording) return -1; try { return VNSIRecording->Read(pBuffer, iBufferSize); } catch (std::exception e) { XBMC->Log(LOG_ERROR, "%s - %s", __FUNCTION__, e.what()); return -1; } } long long SeekRecordedStream(long long iPosition, int iWhence /* = SEEK_SET */) { try { if (VNSIRecording) return VNSIRecording->Seek(iPosition, iWhence); } catch (std::exception e) { XBMC->Log(LOG_ERROR, "%s - %s", __FUNCTION__, e.what()); } 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; try { return VNSIData->GetRecordingEdl(recinfo, edl, size); } catch (std::exception e) { XBMC->Log(LOG_ERROR, "%s - %s", __FUNCTION__, e.what()); return PVR_ERROR_SERVER_ERROR; } } /*******************************************/ /** PVR Menu Hook Functions **/ PVR_ERROR CallMenuHook(const PVR_MENUHOOK &menuhook, const PVR_MENUHOOK_DATA &item) { try { if (menuhook.iHookId == 1) { cVNSIAdmin osd; osd.Open(g_szHostname, g_iPort); } return PVR_ERROR_NO_ERROR; } catch (std::exception e) { XBMC->Log(LOG_ERROR, "%s - %s", __FUNCTION__, e.what()); return PVR_ERROR_SERVER_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; } PVR_ERROR SetEPGTimeFrame(int) { return PVR_ERROR_NOT_IMPLEMENTED; } } kodi-pvr-vdr-vnsi-2.6.12/src/VNSIChannels.cpp0000644000175000017500000001045512725215015020162 0ustar tobiastobias/* * 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) const { if (rhs.m_caid != m_caid) return false; if (rhs.m_name.compare(m_name) != 0) return false; return true; } void CChannel::SetCaids(const 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() { CProvider provider; m_providers.clear(); for (const auto &channel : m_channels) { provider.m_name = channel.m_provider; for (auto caid : channel.m_caids) { provider.m_caid = caid; auto p_it = std::find(m_providers.begin(), m_providers.end(), provider); if (p_it == m_providers.end()) { m_providers.push_back(provider); } } if (channel.m_caids.empty()) { provider.m_caid = 0; auto 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() { bool select = m_providerWhitelist.empty(); for (auto &provider : m_providers) { provider.m_whitelist = select; } for (auto &w : m_providerWhitelist) { auto p_it = std::find(m_providers.begin(), m_providers.end(), w); if(p_it != m_providers.end()) { p_it->m_whitelist = true; } } } void CVNSIChannels::LoadChannelBlacklist() { for (auto b : m_channelBlacklist) { auto it = m_channelsMap.find(b); if(it!=m_channelsMap.end()) { int idx = it->second; m_channels[idx].m_blacklist = true; } } } void CVNSIChannels::ExtractProviderWhitelist() { m_providerWhitelist.clear(); for (const auto &provider : m_providers) { if(provider.m_whitelist) m_providerWhitelist.push_back(provider); } if(m_providerWhitelist.size() == m_providers.size()) { m_providerWhitelist.clear(); } else if (m_providerWhitelist.empty()) { 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 (const auto &channel : m_channels) { if(channel.m_blacklist) m_channelBlacklist.push_back(channel.m_id); } } bool CVNSIChannels::IsWhitelist(const CChannel &channel) const { CProvider provider; provider.m_name = channel.m_provider; if (channel.m_caids.empty()) { provider.m_caid = 0; auto p_it = std::find(m_providers.begin(), m_providers.end(), provider); if(p_it!=m_providers.end() && p_it->m_whitelist) return true; } for (auto caid : channel.m_caids) { provider.m_caid = caid; auto p_it = std::find(m_providers.begin(), m_providers.end(), provider); if(p_it!=m_providers.end() && p_it->m_whitelist) return true; } return false; } kodi-pvr-vdr-vnsi-2.6.12/src/VNSIChannelScan.cpp0000644000175000017500000004453212725215015020607 0ustar tobiastobias/* * 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; uint32_t retCode = VNSI_RET_ERROR; vrp.init(VNSI_SCAN_START); vrp.add_U32(source); vrp.add_U8(m_radioButtonTV->IsSelected()); vrp.add_U8(m_radioButtonRadio->IsSelected()); vrp.add_U8(m_radioButtonFTA->IsSelected()); vrp.add_U8(m_radioButtonScrambled->IsSelected()); vrp.add_U8(m_radioButtonHD->IsSelected()); vrp.add_U32(m_spinCountries->GetValue()); vrp.add_U32(m_spinDVBCInversion->GetValue()); vrp.add_U32(m_spinDVBCSymbolrates->GetValue()); vrp.add_U32(m_spinDVBCqam->GetValue()); vrp.add_U32(m_spinDVBTInversion->GetValue()); vrp.add_U32(m_spinSatellites->GetValue()); vrp.add_U32(m_spinATSCType->GetValue()); { auto 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; vrp.init(VNSI_SCAN_STOP); auto 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) { try { 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(); } catch (std::exception e) { XBMC->Log(LOG_ERROR, "%s - %s", __FUNCTION__, e.what()); return false; } } 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; vrp.init(VNSI_SCAN_GETCOUNTRIES); auto vresp = ReadResult(&vrp); if (!vresp) return false; int startIndex = -1; uint32_t retCode = vresp->extract_U32(); if (retCode == VNSI_RET_OK) { while (vresp->getRemainingLength() >= 4 + 2) { 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; } if (startIndex >= 0) m_spinCountries->SetValue(startIndex); } else { XBMC->Log(LOG_ERROR, "%s - Return error after reading countries (%i)", __FUNCTION__, retCode); } return retCode == VNSI_RET_OK; } bool cVNSIChannelScan::ReadSatellites() { m_spinSatellites = GUI->Control_getSpin(m_window, CONTROL_SPIN_SATELLITES); m_spinSatellites->Clear(); cRequestPacket vrp; vrp.init(VNSI_SCAN_GETSATELLITES); auto vresp = ReadResult(&vrp); if (!vresp) return false; uint32_t retCode = vresp->extract_U32(); if (retCode == VNSI_RET_OK) { while (vresp->getRemainingLength() >= 4 + 2) { uint32_t index = vresp->extract_U32(); const char *shortName = vresp->extract_String(); const char *longName = vresp->extract_String(); m_spinSatellites->AddLabel(longName, index); } m_spinSatellites->SetValue(6); /* default to Astra 19.2 */ } else { XBMC->Log(LOG_ERROR, "%s - Return error after reading satellites (%i)", __FUNCTION__, retCode); } 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); } else if (requestID == VNSI_SCANNER_TRANSPONDER) { char* str = resp->extract_String(); m_window->SetControlLabel(LABEL_TRANSPONDER, 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); } 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-2.6.12/src/VNSIData.cpp0000644000175000017500000010273513030540613017276 0ustar tobiastobias/* * 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 "p8-platform/util/StdString.h" using namespace ADDON; using namespace P8PLATFORM; cVNSIData::SMessage & cVNSIData::Queue::Enqueue(uint32_t serial) { const CLockObject lock(m_mutex); return m_queue[serial]; } std::unique_ptr cVNSIData::Queue::Dequeue(uint32_t serial, SMessage &message) { const CLockObject lock(m_mutex); auto vresp = std::move(message.pkt); m_queue.erase(serial); return vresp; } void cVNSIData::Queue::Set(std::unique_ptr &&vresp) { CLockObject lock(m_mutex); SMessages::iterator it = m_queue.find(vresp->getRequestID()); if (it != m_queue.end()) { it->second.pkt = std::move(vresp); it->second.event.Broadcast(); } } cVNSIData::cVNSIData() { } cVNSIData::~cVNSIData() { m_abort = true; StopThread(0); Close(); } bool cVNSIData::Start(const std::string& hostname, int port, const char* name, const std::string& mac) { m_hostname = hostname; m_port = port; if (name != nullptr) m_name = name; // 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; } } PVR->ConnectionStateChange("VNSI started", PVR_CONNECTION_STATE_CONNECTING, "VNSI started"); m_abort = false; m_connectionLost = true; CreateThread(); return true; } void cVNSIData::OnDisconnect() { PVR->ConnectionStateChange("vnsi connection lost", PVR_CONNECTION_STATE_DISCONNECTED, XBMC->GetLocalizedString(30044)); } void cVNSIData::OnReconnect() { EnableStatusInterface(true, false); PVR->ConnectionStateChange("vnsi connection established", PVR_CONNECTION_STATE_CONNECTED, XBMC->GetLocalizedString(30045)); PVR->TriggerChannelUpdate(); PVR->TriggerTimerUpdate(); PVR->TriggerRecordingUpdate(); } std::unique_ptr cVNSIData::ReadResult(cRequestPacket* vrp) { SMessage &message = m_queue.Enqueue(vrp->getSerial()); if (cVNSISession::TransmitMessage(vrp) && !message.event.Wait(g_iConnectTimeout * 1000)) { XBMC->Log(LOG_ERROR, "%s - request timed out after %d seconds", __FUNCTION__, g_iConnectTimeout); } return m_queue.Dequeue(vrp->getSerial(), message); } bool cVNSIData::GetDriveSpace(long long *total, long long *used) { cRequestPacket vrp; vrp.init(VNSI_RECORDINGS_DISKSIZE); auto 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; return true; } bool cVNSIData::SupportChannelScan() { cRequestPacket vrp; vrp.init(VNSI_SCAN_SUPPORTED); auto vresp = ReadResult(&vrp); if (!vresp) { XBMC->Log(LOG_ERROR, "%s - Can't get response packed", __FUNCTION__); return false; } uint32_t ret = vresp->extract_U32(); return ret == VNSI_RET_OK ? true : false; } bool cVNSIData::SupportRecordingsUndelete() { if (GetProtocol() > 7) { cRequestPacket vrp; vrp.init(VNSI_RECORDINGS_DELETED_ACCESS_SUPPORTED); auto vresp = ReadResult(&vrp); if (!vresp) { XBMC->Log(LOG_INFO, "%s - Can't get response packed", __FUNCTION__); return false; } uint32_t ret = vresp->extract_U32(); 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, bool wait) { cRequestPacket vrp; vrp.init(VNSI_ENABLESTATUSINTERFACE); vrp.add_U8(onOff); if (!wait) { cVNSISession::TransmitMessage(&vrp); return true; } auto vresp = ReadResult(&vrp); if (!vresp) { XBMC->Log(LOG_ERROR, "%s - Can't get response packed", __FUNCTION__); return false; } uint32_t ret = vresp->extract_U32(); return ret == VNSI_RET_OK ? true : false; } int cVNSIData::GetChannelsCount() { cRequestPacket vrp; vrp.init(VNSI_CHANNELS_GETCOUNT); auto vresp = ReadResult(&vrp); if (!vresp) { XBMC->Log(LOG_ERROR, "%s - Can't get response packed", __FUNCTION__); return -1; } uint32_t count = vresp->extract_U32(); return count; } bool cVNSIData::GetChannelsList(ADDON_HANDLE handle, bool radio) { cRequestPacket vrp; vrp.init(VNSI_CHANNELS_GETCHANNELS); vrp.add_U32(radio); vrp.add_U8(1); // apply filter auto vresp = ReadResult(&vrp); if (!vresp) { XBMC->Log(LOG_ERROR, "%s - Can't get response packed", __FUNCTION__); return false; } while (vresp->getRemainingLength() >= 3 * 4 + 3) { 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); } return true; } bool cVNSIData::GetEPGForChannel(ADDON_HANDLE handle, const PVR_CHANNEL &channel, time_t start, time_t end) { cRequestPacket vrp; vrp.init(VNSI_EPG_GETFORCHANNEL); vrp.add_U32(channel.iUniqueId); vrp.add_U32(start); vrp.add_U32(end - start); auto vresp = ReadResult(&vrp); if (!vresp) { XBMC->Log(LOG_ERROR, "%s - Can't get response packed", __FUNCTION__); return false; } while (vresp->getRemainingLength() >= 5 * 4 + 3) { 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 = ""; if (tag.strPlotOutline) tag.strEpisodeName = strdup(tag.strPlotOutline); tag.iFlags = EPG_TAG_FLAG_UNDEFINED; PVR->TransferEpgEntry(handle, &tag); free((void*)tag.strEpisodeName); } return true; } /** OPCODE's 60 - 69: VNSI network functions for timer access */ int cVNSIData::GetTimersCount() { cRequestPacket vrp; vrp.init(VNSI_TIMER_GETCOUNT); auto vresp = ReadResult(&vrp); if (!vresp) { XBMC->Log(LOG_ERROR, "%s - Can't get response packed", __FUNCTION__); return -1; } uint32_t count = vresp->extract_U32(); return count; } PVR_ERROR cVNSIData::GetTimerInfo(unsigned int timernumber, PVR_TIMER &tag) { cRequestPacket vrp; memset(&tag, 0, sizeof(tag)); vrp.init(VNSI_TIMER_GET); vrp.add_U32(timernumber); auto vresp = ReadResult(&vrp); if (!vresp) { XBMC->Log(LOG_ERROR, "%s - Can't get response packed", __FUNCTION__); return PVR_ERROR_UNKNOWN; } uint32_t returnCode = vresp->extract_U32(); if (returnCode != VNSI_RET_OK) { if (returnCode == VNSI_RET_DATAUNKNOWN) return PVR_ERROR_FAILED; else if (returnCode == VNSI_RET_ERROR) return PVR_ERROR_SERVER_ERROR; } if (GetProtocol() >= 9) { tag.iTimerType = vresp->extract_U32(); } 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_DISABLED; 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(); char *strTitle = vresp->extract_String(); strncpy(tag.strTitle, strTitle, sizeof(tag.strTitle) - 1); if (GetProtocol() >= 9) { char *epgSearch = vresp->extract_String(); strncpy(tag.strEpgSearchString, epgSearch, sizeof(tag.strEpgSearchString) - 1); } if (GetProtocol() >= 10) { tag.iParentClientIndex = vresp->extract_U32(); } return PVR_ERROR_NO_ERROR; } bool cVNSIData::GetTimersList(ADDON_HANDLE handle) { cRequestPacket vrp; vrp.init(VNSI_TIMER_GETLIST); auto vresp = ReadResult(&vrp); if (!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->getRemainingLength() >= 12 * 4 + 1) { PVR_TIMER tag; memset(&tag, 0, sizeof(tag)); if (GetProtocol() >= 9) { tag.iTimerType = vresp->extract_U32(); } 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_DISABLED; 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(); char *strTitle = vresp->extract_String(); strncpy(tag.strTitle, strTitle, sizeof(tag.strTitle) - 1); tag.iMarginStart = 0; tag.iMarginEnd = 0; if (GetProtocol() >= 9) { char *epgSearch = vresp->extract_String(); strncpy(tag.strEpgSearchString, epgSearch, sizeof(tag.strEpgSearchString) - 1); } if (GetProtocol() >= 10) { tag.iParentClientIndex = vresp->extract_U32(); } if (tag.startTime == 0) tag.bStartAnyTime = true; if (tag.endTime == 0) tag.bEndAnyTime = true; PVR->TransferTimerEntry(handle, &tag); } } return true; } PVR_ERROR cVNSIData::AddTimer(const PVR_TIMER &timerinfo) { cRequestPacket vrp; vrp.init(VNSI_TIMER_ADD); // 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; } // replace colons for (std::size_t i=0; iLog(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 (GetProtocol() >= 9) { vrp.add_U32(timerinfo.iTimerType); } vrp.add_U32(timerinfo.state == PVR_TIMER_STATE_SCHEDULED); vrp.add_U32(timerinfo.iPriority); vrp.add_U32(timerinfo.iLifetime); vrp.add_U32(timerinfo.iClientChannelUid); vrp.add_U32(starttime); vrp.add_U32(endtime); vrp.add_U32(timerinfo.iWeekdays != PVR_WEEKDAY_NONE ? timerinfo.firstDay : 0); vrp.add_U32(timerinfo.iWeekdays); vrp.add_String(path.c_str()); vrp.add_String(timerinfo.strTitle); if (GetProtocol() >= 9) { vrp.add_String(timerinfo.strEpgSearchString); } if (GetProtocol() >= 10) { vrp.add_U32(timerinfo.iMarginStart*60); vrp.add_U32(timerinfo.iMarginEnd*60); } auto vresp = ReadResult(&vrp); if (vresp == NULL || vresp->noResponse()) { XBMC->Log(LOG_ERROR, "%s - Can't get response packed", __FUNCTION__); return PVR_ERROR_UNKNOWN; } uint32_t returnCode = vresp->extract_U32(); 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; vrp.init(VNSI_TIMER_DELETE); vrp.add_U32(timerinfo.iClientIndex); vrp.add_U32(force); auto vresp = ReadResult(&vrp); if (vresp == NULL || vresp->noResponse()) { return PVR_ERROR_UNKNOWN; } uint32_t returnCode = vresp->extract_U32(); 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; vrp.init(VNSI_TIMER_UPDATE); vrp.add_U32(timerinfo.iClientIndex); if (GetProtocol() >= 9) { vrp.add_U32(timerinfo.iTimerType); } vrp.add_U32(timerinfo.state == PVR_TIMER_STATE_SCHEDULED); vrp.add_U32(timerinfo.iPriority); vrp.add_U32(timerinfo.iLifetime); vrp.add_U32(timerinfo.iClientChannelUid); vrp.add_U32(starttime); vrp.add_U32(endtime); vrp.add_U32(timerinfo.iWeekdays != PVR_WEEKDAY_NONE ? timerinfo.firstDay : 0); vrp.add_U32(timerinfo.iWeekdays); vrp.add_String(""); vrp.add_String(timerinfo.strTitle); if (GetProtocol() >= 9) { vrp.add_String(timerinfo.strEpgSearchString); } auto vresp = ReadResult(&vrp); if (vresp == NULL || vresp->noResponse()) { return PVR_ERROR_UNKNOWN; } uint32_t returnCode = vresp->extract_U32(); 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; } PVR_ERROR cVNSIData::GetTimerTypes(PVR_TIMER_TYPE types[], int *size) { *size = 0; // One-shot manual memset(&types[*size], 0, sizeof(types[*size])); types[*size].iId = VNSI_TIMER_TYPE_MAN; strncpy(types[*size].strDescription, XBMC->GetLocalizedString(30200), 64); types[*size].iAttributes = PVR_TIMER_TYPE_IS_MANUAL | PVR_TIMER_TYPE_SUPPORTS_ENABLE_DISABLE | PVR_TIMER_TYPE_SUPPORTS_CHANNELS | PVR_TIMER_TYPE_SUPPORTS_START_TIME | PVR_TIMER_TYPE_SUPPORTS_END_TIME | PVR_TIMER_TYPE_SUPPORTS_PRIORITY | PVR_TIMER_TYPE_SUPPORTS_LIFETIME | PVR_TIMER_TYPE_SUPPORTS_RECORDING_FOLDERS; (*size)++; // Repeating manual memset(&types[*size], 0, sizeof(types[*size])); types[*size].iId = VNSI_TIMER_TYPE_MAN_REPEAT; strncpy(types[*size].strDescription, XBMC->GetLocalizedString(30201), 64); types[*size].iAttributes = PVR_TIMER_TYPE_IS_MANUAL | PVR_TIMER_TYPE_IS_REPEATING | PVR_TIMER_TYPE_SUPPORTS_ENABLE_DISABLE | PVR_TIMER_TYPE_SUPPORTS_CHANNELS | PVR_TIMER_TYPE_SUPPORTS_START_TIME | PVR_TIMER_TYPE_SUPPORTS_END_TIME | PVR_TIMER_TYPE_SUPPORTS_PRIORITY | PVR_TIMER_TYPE_SUPPORTS_LIFETIME | PVR_TIMER_TYPE_SUPPORTS_FIRST_DAY | PVR_TIMER_TYPE_SUPPORTS_WEEKDAYS | PVR_TIMER_TYPE_SUPPORTS_RECORDING_FOLDERS; (*size)++; // One-shot epg-based memset(&types[*size], 0, sizeof(types[*size])); types[*size].iId = VNSI_TIMER_TYPE_EPG; strncpy(types[*size].strDescription, XBMC->GetLocalizedString(30202), 64); types[*size].iAttributes = PVR_TIMER_TYPE_SUPPORTS_ENABLE_DISABLE | PVR_TIMER_TYPE_REQUIRES_EPG_TAG_ON_CREATE | PVR_TIMER_TYPE_SUPPORTS_CHANNELS | PVR_TIMER_TYPE_SUPPORTS_START_TIME | PVR_TIMER_TYPE_SUPPORTS_END_TIME | PVR_TIMER_TYPE_SUPPORTS_PRIORITY | PVR_TIMER_TYPE_SUPPORTS_LIFETIME | PVR_TIMER_TYPE_SUPPORTS_RECORDING_FOLDERS; (*size)++; // addition timer supported by backend if (GetProtocol() >= 9) { cRequestPacket vrp; vrp.init(VNSI_TIMER_GETTYPES); auto vresp = ReadResult(&vrp); if (!vresp) { XBMC->Log(LOG_ERROR, "%s - Can't get response packed", __FUNCTION__); return PVR_ERROR_NO_ERROR; } uint32_t vnsitimers = vresp->extract_U32(); if (vnsitimers & VNSI_TIMER_TYPE_EPG_SEARCH) { // EPG search timer memset(&types[*size], 0, sizeof(types[*size])); types[*size].iId = VNSI_TIMER_TYPE_EPG_SEARCH; strncpy(types[*size].strDescription, XBMC->GetLocalizedString(30204), 64); types[*size].iAttributes = PVR_TIMER_TYPE_IS_REPEATING | PVR_TIMER_TYPE_SUPPORTS_ENABLE_DISABLE | PVR_TIMER_TYPE_SUPPORTS_CHANNELS | PVR_TIMER_TYPE_SUPPORTS_TITLE_EPG_MATCH | PVR_TIMER_TYPE_SUPPORTS_PRIORITY | PVR_TIMER_TYPE_SUPPORTS_LIFETIME; (*size)++; } // VPS Timer memset(&types[*size], 0, sizeof(types[*size])); types[*size].iId = VNSI_TIMER_TYPE_VPS; strncpy(types[*size].strDescription, XBMC->GetLocalizedString(30203), 64); types[*size].iAttributes = PVR_TIMER_TYPE_IS_MANUAL | PVR_TIMER_TYPE_SUPPORTS_ENABLE_DISABLE | PVR_TIMER_TYPE_SUPPORTS_CHANNELS | PVR_TIMER_TYPE_SUPPORTS_START_TIME | PVR_TIMER_TYPE_SUPPORTS_END_TIME | PVR_TIMER_TYPE_SUPPORTS_PRIORITY | PVR_TIMER_TYPE_SUPPORTS_LIFETIME | PVR_TIMER_TYPE_SUPPORTS_RECORDING_FOLDERS; (*size)++; } return PVR_ERROR_NO_ERROR; } int cVNSIData::GetRecordingsCount() { cRequestPacket vrp; vrp.init(VNSI_RECORDINGS_GETCOUNT); auto vresp = ReadResult(&vrp); if (!vresp) { XBMC->Log(LOG_ERROR, "%s - Can't get response packed", __FUNCTION__); return -1; } uint32_t count = vresp->extract_U32(); return count; } PVR_ERROR cVNSIData::GetRecordingsList(ADDON_HANDLE handle) { cRequestPacket vrp; vrp.init(VNSI_RECORDINGS_GETLIST); auto vresp = ReadResult(&vrp); if (!vresp) { XBMC->Log(LOG_ERROR, "%s - Can't get response packed", __FUNCTION__); return PVR_ERROR_UNKNOWN; } CStdString strRecordingId; while (vresp->getRemainingLength() >= 5 * 4 + 5) { 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); if (GetProtocol() >= 9) { tag.iChannelUid = -1; uint32_t uuid = vresp->extract_U32(); if (uuid > 0) tag.iChannelUid = uuid; uint8_t type = vresp->extract_U8(); if (type == 1) tag.iChannelUid = PVR_RECORDING_CHANNEL_TYPE_TV; else if (type == 2) tag.iChannelUid = PVR_RECORDING_CHANNEL_TYPE_RADIO; else tag.channelType = PVR_RECORDING_CHANNEL_TYPE_UNKNOWN; } else { tag.iChannelUid = PVR_CHANNEL_INVALID_UID; tag.channelType = PVR_RECORDING_CHANNEL_TYPE_UNKNOWN; } 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); } return PVR_ERROR_NO_ERROR; } PVR_ERROR cVNSIData::RenameRecording(const PVR_RECORDING& recinfo, const char* newname) { cRequestPacket vrp; vrp.init(VNSI_RECORDINGS_RENAME); // add uid XBMC->Log(LOG_DEBUG, "%s - uid: %s", __FUNCTION__, recinfo.strRecordingId); vrp.add_U32(atoi(recinfo.strRecordingId)); // add new title vrp.add_String(newname); auto vresp = ReadResult(&vrp); if (vresp == NULL || vresp->noResponse()) { return PVR_ERROR_SERVER_ERROR; } uint32_t returnCode = vresp->extract_U32(); if(returnCode != 0) return PVR_ERROR_FAILED; return PVR_ERROR_NO_ERROR; } PVR_ERROR cVNSIData::DeleteRecording(const PVR_RECORDING& recinfo) { cRequestPacket vrp; vrp.init(recinfo.bIsDeleted ? VNSI_RECORDINGS_DELETED_DELETE : VNSI_RECORDINGS_DELETE); vrp.add_U32(atoi(recinfo.strRecordingId)); auto vresp = ReadResult(&vrp); if (vresp == NULL || vresp->noResponse()) { return PVR_ERROR_UNKNOWN; } uint32_t returnCode = vresp->extract_U32(); 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; vrp.init(VNSI_RECORDINGS_GETEDL); vrp.add_U32(atoi(recinfo.strRecordingId)); auto vresp = ReadResult(&vrp); if (vresp == NULL || vresp->noResponse()) { return PVR_ERROR_UNKNOWN; } *size = 0; while (vresp->getRemainingLength() >= 2 * 8 + 4 && *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)++; } return PVR_ERROR_NO_ERROR; } int cVNSIData::GetDeletedRecordingsCount() { cRequestPacket vrp; vrp.init(VNSI_RECORDINGS_DELETED_GETCOUNT); auto vresp = ReadResult(&vrp); if (!vresp) { XBMC->Log(LOG_ERROR, "%s - Can't get response packed", __FUNCTION__); return -1; } uint32_t count = vresp->extract_U32(); return count; } PVR_ERROR cVNSIData::GetDeletedRecordingsList(ADDON_HANDLE handle) { cRequestPacket vrp; vrp.init(VNSI_RECORDINGS_DELETED_GETLIST); auto vresp = ReadResult(&vrp); if (!vresp) { XBMC->Log(LOG_ERROR, "%s - Can't get response packed", __FUNCTION__); return PVR_ERROR_UNKNOWN; } CStdString strRecordingId; while (vresp->getRemainingLength() >= 5 * 4 + 5) { 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); if (GetProtocol() >= 9) { tag.iChannelUid = vresp->extract_S32(); } else tag.iChannelUid = PVR_CHANNEL_INVALID_UID; 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); } return PVR_ERROR_NO_ERROR; } PVR_ERROR cVNSIData::UndeleteRecording(const PVR_RECORDING& recinfo) { cRequestPacket vrp; vrp.init(VNSI_RECORDINGS_DELETED_UNDELETE); vrp.add_U32(atoi(recinfo.strRecordingId)); auto vresp = ReadResult(&vrp); if (vresp == NULL || vresp->noResponse()) { return PVR_ERROR_UNKNOWN; } uint32_t returnCode = vresp->extract_U32(); 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; vrp.init(VNSI_RECORDINGS_DELETED_DELETE_ALL); auto vresp = ReadResult(&vrp); if (vresp == NULL || vresp->noResponse()) { return PVR_ERROR_UNKNOWN; } uint32_t returnCode = vresp->extract_U32(); 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() { std::unique_ptr vresp; while (!IsStopped()) { // try to reconnect if (m_connectionLost) { cVNSISession::eCONNECTIONSTATE state = TryReconnect(); if (state != cVNSISession::CONN_ESABLISHED) { if (state == cVNSISession::CONN_HOST_NOT_REACHABLE) { PVR->ConnectionStateChange("vnsi server not reacheable", PVR_CONNECTION_STATE_SERVER_UNREACHABLE, nullptr); } 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) { m_queue.Set(std::move(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); 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(); } 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); } } // UNKOWN CHANNELID else if (!OnResponsePacket(vresp.get())) { XBMC->Log(LOG_ERROR, "%s - Rxd a response packet on channel %lu !!", __FUNCTION__, vresp->getChannelID()); } } return NULL; } int cVNSIData::GetChannelGroupCount(bool automatic) { cRequestPacket vrp; vrp.init(VNSI_CHANNELGROUP_GETCOUNT); vrp.add_U32(automatic); auto vresp = ReadResult(&vrp); if (vresp == NULL || vresp->noResponse()) { return 0; } uint32_t count = vresp->extract_U32(); return count; } bool cVNSIData::GetChannelGroupList(ADDON_HANDLE handle, bool bRadio) { cRequestPacket vrp; vrp.init(VNSI_CHANNELGROUP_LIST); vrp.add_U8(bRadio); auto vresp = ReadResult(&vrp); if (vresp == NULL || vresp->noResponse()) { return false; } while (vresp->getRemainingLength() >= 1 + 1) { 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); } return true; } bool cVNSIData::GetChannelGroupMembers(ADDON_HANDLE handle, const PVR_CHANNEL_GROUP &group) { cRequestPacket vrp; vrp.init(VNSI_CHANNELGROUP_MEMBERS); vrp.add_String(group.strGroupName); vrp.add_U8(group.bIsRadio); vrp.add_U8(1); // filter channels auto vresp = ReadResult(&vrp); if (vresp == NULL || vresp->noResponse()) { return false; } while (vresp->getRemainingLength() >= 2 * 4) { 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); } return true; } kodi-pvr-vdr-vnsi-2.6.12/src/vnsicommand.h0000644000175000017500000001427413030540613017710 0ustar tobiastobias/* * 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 10 /** 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 #define VNSI_TIMER_GETTYPES 86 /* 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 /** Timer */ #define VNSI_TIMER_TYPE_MAN 1 #define VNSI_TIMER_TYPE_MAN_REPEAT 2 #define VNSI_TIMER_TYPE_EPG 3 #define VNSI_TIMER_TYPE_VPS 4 #define VNSI_TIMER_TYPE_EPG_SEARCH 5 /** 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-2.6.12/src/VNSIRecording.cpp0000644000175000017500000001016213006733621020337 0ustar tobiastobias/* * 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; vrp.init(VNSI_RECSTREAM_OPEN); vrp.add_U32(atoi(recinfo.strRecordingId)); auto 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); return (returnCode == VNSI_RET_OK); } void cVNSIRecording::Close() { if(IsOpen()) { try { cRequestPacket vrp; vrp.init(VNSI_RECSTREAM_CLOSE); ReadSuccess(&vrp); } catch (std::exception e) { XBMC->Log(LOG_ERROR, "%s - %s", __FUNCTION__, e.what()); } } cVNSISession::Close(); } int cVNSIRecording::Read(unsigned char* buf, uint32_t buf_size) { if (m_connectionLost && TryReconnect() != cVNSISession::CONN_ESABLISHED) { *buf = 0; SleepMs(100); return 1; } if (m_currentPlayingRecordPosition >= m_currentPlayingRecordBytes) { GetLength(); if (m_currentPlayingRecordPosition >= m_currentPlayingRecordBytes) return 0; } cRequestPacket vrp; vrp.init(VNSI_RECSTREAM_GETBLOCK); vrp.add_U64(m_currentPlayingRecordPosition); vrp.add_U32(buf_size); auto 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__); return 0; } memcpy(buf, data, length); m_currentPlayingRecordPosition += length; 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; vrp.init(VNSI_RECSTREAM_GETLENGTH); auto vresp = ReadResult(&vrp); if (!vresp) return; m_currentPlayingRecordBytes = vresp->extract_U64(); } kodi-pvr-vdr-vnsi-2.6.12/src/responsepacket.cpp0000644000175000017500000001335213006733621020755 0ustar tobiastobias/* * 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 "responsepacket.h" #include "vnsicommand.h" #include "tools.h" #include "p8-platform/sockets/tcp.h" #include #include #include cResponsePacket::cResponsePacket() { userDataLength = 0; packetPos = 0; userData = NULL; channelID = 0; requestID = 0; streamID = 0; } cResponsePacket::~cResponsePacket() { 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, size_t tuserDataLength) { channelID = VNSI_CHANNEL_REQUEST_RESPONSE; userData = tuserData; userDataLength = tuserDataLength; packetPos = 0; } void cResponsePacket::setStatus(uint8_t* tuserData, size_t tuserDataLength) { channelID = VNSI_CHANNEL_STATUS; userData = tuserData; userDataLength = tuserDataLength; packetPos = 0; } void cResponsePacket::setStream(uint8_t* tuserData, size_t tuserDataLength) { channelID = VNSI_CHANNEL_STREAM; // set pointer to user data userData = tuserData; userDataLength = tuserDataLength; packetPos = 0; } void cResponsePacket::setOSD(uint8_t* tuserData, size_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(); } char* cResponsePacket::extract_String() { char *p = (char *)&userData[packetPos]; const char *end = (const char *)memchr(p, '\0', userDataLength - packetPos); if (end == NULL) /* string is not terminated - fail */ throw std::out_of_range("Malformed VNSI packet"); int length = end - p; packetPos += length + 1; return p; } uint8_t cResponsePacket::extract_U8() { if ((packetPos + sizeof(uint8_t)) > userDataLength) throw std::out_of_range("Malformed VNSI packet"); uint8_t uc = userData[packetPos]; packetPos += sizeof(uint8_t); return uc; } uint32_t cResponsePacket::extract_U32() { if ((packetPos + sizeof(uint32_t)) > userDataLength) throw std::out_of_range("Malformed VNSI packet"); 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) throw std::out_of_range("Malformed VNSI packet"); 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) throw std::out_of_range("Malformed VNSI packet"); 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) throw std::out_of_range("Malformed VNSI packet"); 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) throw std::out_of_range("Malformed VNSI packet"); int64_t ll; memcpy(&ll, &userData[packetPos], sizeof(int64_t)); ll = ntohll(ll); packetPos += sizeof(int64_t); return ll; } uint8_t* cResponsePacket::getUserData() { return userData; } uint8_t* cResponsePacket::stealUserData() { uint8_t *result = userData; userData = NULL; return result; } kodi-pvr-vdr-vnsi-2.6.12/src/VNSIAdmin.cpp0000644000175000017500000012456213006733621017465 0ustar tobiastobias/* * 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; using namespace P8PLATFORM; 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(); void DisposeTexture(int wndId) override; void FreeResources() override; void Render() override; bool Init() override; 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->CompileAndLink()) { delete vis_shader; vis_shader = NULL; 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(); void DisposeTexture(int wndId) override; void FreeResources() override; void Render() override; void SetDevice(void *device) override { 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; m_osdRender = NULL; return false; } m_abort = false; m_connectionLost = false; CreateThread(); 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; m_osdRender = NULL; } return true; } bool cVNSIAdmin::OnClick(int controlId) { if (controlId == CONTROL_SPIN_TIMESHIFT_MODE) { int value = m_spinTimeshiftMode->GetValue(); cRequestPacket vrp; vrp.init(VNSI_STORESETUP); vrp.add_String(CONFNAME_TIMESHIFT); vrp.add_U32(value); if (!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; vrp.init(VNSI_STORESETUP); vrp.add_String(CONFNAME_TIMESHIFTBUFFERSIZE); vrp.add_U32(value); if (!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; vrp.init(VNSI_STORESETUP); vrp.add_String(CONFNAME_TIMESHIFTBUFFERFILESIZE); vrp.add_U32(value); if (!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; vrp.init(VNSI_OSD_HITKEY); 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; vrp.init(VNSI_GETSETUP); vrp.add_String(CONFNAME_TIMESHIFT); auto 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); } 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; vrp.init(VNSI_GETSETUP); vrp.add_String(CONFNAME_TIMESHIFTBUFFERSIZE); auto 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); } 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; vrp.init(VNSI_GETSETUP); vrp.add_String(CONFNAME_TIMESHIFTBUFFERFILESIZE); auto 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); } // 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; vrp.init(VNSI_OSD_HITKEY); 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; } 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() { const CLockObject lock(m_osdMutex); if (m_osdRender) { m_osdRender->Render(); m_osdRender->FreeResources(); } m_bIsOsdDirty = false; } void cVNSIAdmin::Stop() { const CLockObject lock(m_osdMutex); if (m_osdRender) { delete m_osdRender; m_osdRender = NULL; } } bool cVNSIAdmin::Dirty() { return m_bIsOsdDirty; } bool cVNSIAdmin::OnInitCB(GUIHANDLE cbhdl) { cVNSIAdmin* osd = static_cast(cbhdl); try { return osd->OnInit(); } catch (std::exception e) { XBMC->Log(LOG_ERROR, "%s - %s", __FUNCTION__, e.what()); return false; } } bool cVNSIAdmin::OnClickCB(GUIHANDLE cbhdl, int controlId) { cVNSIAdmin* osd = static_cast(cbhdl); try { return osd->OnClick(controlId); } catch (std::exception e) { XBMC->Log(LOG_ERROR, "%s - %s", __FUNCTION__, e.what()); return false; } } 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); try { return osd->OnAction(actionId); } catch (std::exception e) { XBMC->Log(LOG_ERROR, "%s - %s", __FUNCTION__, e.what()); return false; } } 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(); const CLockObject lock(m_osdMutex); if (m_osdRender) m_osdRender->AddTexture(wnd, color, x0, y0, x1, y1, data[0]); } else if (resp->getOpCodeID() == VNSI_OSD_SETPALETTE) { data = resp->getUserData(); len = resp->getUserDataLength(); const CLockObject lock(m_osdMutex); if (m_osdRender) m_osdRender->SetPalette(wnd, x0, (uint32_t*)data); } else if (resp->getOpCodeID() == VNSI_OSD_SETBLOCK) { data = resp->getUserData(); len = resp->getUserDataLength(); const CLockObject lock(m_osdMutex); if (m_osdRender) { m_osdRender->SetBlock(wnd, x0, y0, x1, y1, color, data, len); m_bIsOsdDirty = true; } } else if (resp->getOpCodeID() == VNSI_OSD_CLEAR) { const CLockObject lock(m_osdMutex); if (m_osdRender) m_osdRender->Clear(wnd); m_bIsOsdDirty = true; } else if (resp->getOpCodeID() == VNSI_OSD_CLOSE) { { const CLockObject lock(m_osdMutex); if (m_osdRender) m_osdRender->DisposeTexture(wnd); m_bIsOsdDirty = true; } } else if (resp->getOpCodeID() == VNSI_OSD_MOVEWINDOW) { } else return false; } else return false; return true; } bool cVNSIAdmin::ConnectOSD() { cRequestPacket vrp; vrp.init(VNSI_OSD_CONNECT); auto vresp = ReadResult(&vrp); if (vresp == NULL || vresp->noResponse()) { return false; } uint32_t osdWidth = vresp->extract_U32(); uint32_t osdHeight = vresp->extract_U32(); if (m_osdRender) m_osdRender->SetOSDSize(osdWidth, osdHeight); return true; } bool cVNSIAdmin::ReadChannelList(bool radio) { cRequestPacket vrp; vrp.init(VNSI_CHANNELS_GETCHANNELS); vrp.add_U32(radio); vrp.add_U8(0); // apply no filter auto 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->getRemainingLength() >= 3 * 4 + 3) { 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; m_channels.m_channels.push_back(channel); m_channels.m_channelsMap[channel.m_id] = m_channels.m_channels.size() - 1; } return true; } bool cVNSIAdmin::ReadChannelWhitelist(bool radio) { cRequestPacket vrp; vrp.init(VNSI_CHANNELS_GETWHITELIST); vrp.add_U8(radio); auto 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->getRemainingLength() >= 1 + 4) { char *strProviderName = vresp->extract_String(); provider.m_name = strProviderName; provider.m_caid = vresp->extract_U32(); m_channels.m_providerWhitelist.push_back(provider); } return true; } bool cVNSIAdmin::SaveChannelWhitelist(bool radio) { m_channels.ExtractProviderWhitelist(); cRequestPacket vrp; vrp.init(VNSI_CHANNELS_SETWHITELIST); vrp.add_U8(radio); for (const auto &provider : m_channels.m_providerWhitelist) { vrp.add_String(provider.m_name.c_str()); vrp.add_S32(provider.m_caid); } auto vresp = ReadResult(&vrp); if (!vresp) { XBMC->Log(LOG_ERROR, "%s - Can't get response packed", __FUNCTION__); return false; } return true; } bool cVNSIAdmin::ReadChannelBlacklist(bool radio) { cRequestPacket vrp; vrp.init(VNSI_CHANNELS_GETBLACKLIST); vrp.add_U8(radio); auto 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->getRemainingLength() >= 4) { int id = vresp->extract_U32(); m_channels.m_channelBlacklist.push_back(id); } return true; } bool cVNSIAdmin::SaveChannelBlacklist(bool radio) { m_channels.ExtractChannelBlacklist(); cRequestPacket vrp; vrp.init(VNSI_CHANNELS_SETBLACKLIST); vrp.add_U8(radio); for (auto b : m_channels.m_channelBlacklist) { vrp.add_S32(b); } auto vresp = ReadResult(&vrp); if (!vresp) { XBMC->Log(LOG_ERROR, "%s - Can't get response packed", __FUNCTION__); return false; } return true; } void cVNSIAdmin::ClearListItems() { m_window->ClearList(); for (auto *i : m_listItems) { GUI->ListItem_destroy(i); } m_listItems.clear(); m_listItemsMap.clear(); m_listItemsChannelsMap.clear(); } void cVNSIAdmin::LoadListItemsProviders() { ClearListItems(); int count = 0; for (const auto &provider : m_channels.m_providers) { std::string tmp; if(!provider.m_name.empty()) tmp = provider.m_name; else tmp = XBMC->GetLocalizedString(30114); if (provider.m_caid == 0) { tmp += " - FTA"; } else { tmp += " - CAID: "; char buf[16]; sprintf(buf, "%04x", provider.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 (provider.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-2.6.12/src/VNSIChannels.h0000644000175000017500000000330712725215015017625 0ustar tobiastobias#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) const; std::string m_name; int m_caid; bool m_whitelist; }; class CChannel { public: void SetCaids(const 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(const CChannel &channel) const; 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-2.6.12/src/client.h0000644000175000017500000000363513006733621016655 0ustar tobiastobias#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 "libXBMC_addon.h" #include "libXBMC_codec.h" #include "libXBMC_pvr.h" #include "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 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-2.6.12/src/tools.cpp0000644000175000017500000000307312664612001017063 0ustar tobiastobias/* * 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-2.6.12/src/VNSIData.h0000644000175000017500000000711313006733621016743 0ustar tobiastobias#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 P8PLATFORM::CThread { public: cVNSIData(); virtual ~cVNSIData(); bool Start(const std::string& hostname, int port, const char* name = NULL, const std::string& mac = ""); bool SupportChannelScan(); bool SupportRecordingsUndelete(); bool EnableStatusInterface(bool onOff, bool wait = true); 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); PVR_ERROR GetTimerTypes(PVR_TIMER_TYPE types[], int *size); 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(); std::unique_ptr ReadResult(cRequestPacket* vrp); protected: virtual void *Process(void) override; virtual bool OnResponsePacket(cResponsePacket *pkt); void OnDisconnect() override; void OnReconnect() override; private: struct SMessage { P8PLATFORM::CEvent event; std::unique_ptr pkt; }; class Queue { typedef std::map SMessages; SMessages m_queue; P8PLATFORM::CMutex m_mutex; public: SMessage &Enqueue(uint32_t serial); std::unique_ptr Dequeue(uint32_t serial, SMessage &message); void Set(std::unique_ptr &&vresp); }; Queue m_queue; std::string m_videodir; }; kodi-pvr-vdr-vnsi-2.6.12/src/VNSIDemux.h0000644000175000017500000000427113006733621017156 0ustar tobiastobias#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 "xbmc_pvr_types.h" 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(); void Close(); 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: PVR_STREAM_PROPERTIES 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-2.6.12/src/VNSIChannelScan.h0000644000175000017500000000530412725215015020246 0ustar tobiastobias#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") override; 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) override; 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-2.6.12/src/VNSIDemux.cpp0000644000175000017500000003112413006733621017506 0ustar tobiastobias/* * 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() { } void cVNSIDemux::Close() { if (IsOpen() && GetProtocol() >= 9) { XBMC->Log(LOG_DEBUG, "closing demuxer"); cRequestPacket vrp; vrp.init(VNSI_CHANNELSTREAM_CLOSE); try { auto resp = ReadResult(&vrp); if (!resp) { XBMC->Log(LOG_ERROR, "%s - failed to close streaming", __FUNCTION__); } } catch (std::exception e) { XBMC->Log(LOG_ERROR, "%s - %s", __FUNCTION__, e.what()); } } cVNSISession::Close(); } 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) { for (int i=0; istream[i], &m_streams.stream[i], sizeof(PVR_STREAM_PROPERTIES::PVR_STREAM)); } props->iStreamCount = m_streams.iStreamCount; return true; } void cVNSIDemux::Abort() { m_streams.iStreamCount = 0; } DemuxPacket* cVNSIDemux::Read() { if (m_connectionLost) { return NULL; } auto resp = ReadMessage(1000, g_iConnectTimeout * 1000); if(resp == NULL) return PVR->AllocateDemuxPacket(0); if (resp->getChannelID() != VNSI_CHANNEL_STREAM) { return NULL; } if (resp->getOpCodeID() == VNSI_STREAM_CHANGE) { StreamChange(resp.get()); DemuxPacket* pkt = PVR->AllocateDemuxPacket(0); pkt->iStreamId = DMX_SPECIALID_STREAMCHANGE; return pkt; } else if (resp->getOpCodeID() == VNSI_STREAM_STATUS) { StreamStatus(resp.get()); } else if (resp->getOpCodeID() == VNSI_STREAM_SIGNALINFO) { StreamSignalInfo(resp.get()); } else if (resp->getOpCodeID() == VNSI_STREAM_CONTENTINFO) { // send stream updates only if there are changes if(StreamContentInfo(resp.get())) { DemuxPacket* pkt = PVR->AllocateDemuxPacket(0); pkt->iStreamId = DMX_SPECIALID_STREAMCHANGE; return pkt; } } else if (resp->getOpCodeID() == VNSI_STREAM_MUXPKT) { // figure out the stream id for this packet int pid = resp->getStreamID(); // stream found ? if(pid >= 0 && resp->getMuxSerial() == m_MuxPacketSerial) { DemuxPacket* p = (DemuxPacket*)resp->stealUserData(); 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 = pid; int idx = -1; for (int i=0; i= 0) type = m_streams.stream[idx].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 (pid >= 0 && resp->getMuxSerial() != m_MuxPacketSerial) { // ignore silently, may happen after a seek } 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; } 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; vrp.init(VNSI_CHANNELSTREAM_SEEK); vrp.add_S64(seek_pts); vrp.add_U8(backwards); auto 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(); 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; vrp1.init(VNSI_GETSETUP); vrp1.add_String(CONFNAME_TIMESHIFT); auto resp = ReadResult(&vrp1); if (!resp) { XBMC->Log(LOG_ERROR, "%s - failed to get timeshift mode", __FUNCTION__); return false; } m_bTimeshift = resp->extract_U32(); cRequestPacket vrp2; vrp2.init(VNSI_CHANNELSTREAM_OPEN); vrp2.add_U32(channelinfo.iUniqueId); vrp2.add_S32(g_iPriority); vrp2.add_U8(g_iTimeshift); if (!ReadSuccess(&vrp2)) { XBMC->Log(LOG_ERROR, "%s - failed to set channel", __FUNCTION__); return false; } m_channelinfo = channelinfo; m_streams.iStreamCount = 0; 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; 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) { int count = 0; m_streams.iStreamCount = 0; while (resp->getRemainingLength() >= 4 + 1) { uint32_t pid = resp->extract_U32(); const char* type = resp->extract_String(); memset(&m_streams.stream[count], 0, sizeof(PVR_STREAM_PROPERTIES::PVR_STREAM)); CodecDescriptor codecId = CodecDescriptor::GetCodecByName(type); if (codecId.Codec().codec_type != XBMC_CODEC_TYPE_UNKNOWN) { m_streams.stream[count].iPID = pid; m_streams.stream[count].iCodecType = codecId.Codec().codec_type; m_streams.stream[count].iCodecId = codecId.Codec().codec_id; } else { return; } if (codecId.Codec().codec_type == XBMC_CODEC_TYPE_AUDIO) { const char *language = resp->extract_String(); m_streams.stream[count].iChannels = resp->extract_U32(); m_streams.stream[count].iSampleRate = resp->extract_U32(); m_streams.stream[count].iBlockAlign = resp->extract_U32(); m_streams.stream[count].iBitRate = resp->extract_U32(); m_streams.stream[count].iBitsPerSample = resp->extract_U32(); m_streams.stream[count].strLanguage[0] = language[0]; m_streams.stream[count].strLanguage[1] = language[1]; m_streams.stream[count].strLanguage[2] = language[2]; m_streams.stream[count].strLanguage[3] = 0; } else if (codecId.Codec().codec_type == XBMC_CODEC_TYPE_VIDEO) { m_streams.stream[count].iFPSScale = resp->extract_U32(); m_streams.stream[count].iFPSRate = resp->extract_U32(); m_streams.stream[count].iHeight = resp->extract_U32(); m_streams.stream[count].iWidth = resp->extract_U32(); m_streams.stream[count].fAspect = (float)resp->extract_Double(); m_streams.stream[count].strLanguage[0] = 0; m_streams.stream[count].strLanguage[1] = 0; m_streams.stream[count].strLanguage[2] = 0; m_streams.stream[count].strLanguage[3] = 0; } 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(); m_streams.stream[count].strLanguage[0] = language[0]; m_streams.stream[count].strLanguage[1] = language[1]; m_streams.stream[count].strLanguage[2] = language[2]; m_streams.stream[count].strLanguage[3] = 0; m_streams.stream[count].iSubtitleInfo = (composition_id & 0xffff) | ((ancillary_id & 0xffff) << 16); } else if (codecId.Codec().codec_type == XBMC_CODEC_TYPE_RDS) { const char *language = resp->extract_String(); uint32_t rel_channel_pid = resp->extract_U32(); m_streams.stream[count].strLanguage[0] = language[0]; m_streams.stream[count].strLanguage[1] = language[1]; m_streams.stream[count].strLanguage[2] = language[2]; m_streams.stream[count].strLanguage[3] = 0; } else { m_streams.iStreamCount = 0; return; } count++; } m_streams.iStreamCount = count; } 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); } } 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(); } bool cVNSIDemux::StreamContentInfo(cResponsePacket *resp) { while (resp->getRemainingLength() >= 4) { uint32_t pid = resp->extract_U32(); PVR_STREAM_PROPERTIES::PVR_STREAM* props = nullptr; for (int i=0; iiCodecType == 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; } 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->iSubtitleInfo = (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; } } else { XBMC->Log(LOG_ERROR, "%s - unknown stream id: %d", __FUNCTION__, pid); break; } } return true; } kodi-pvr-vdr-vnsi-2.6.12/src/requestpacket.cpp0000644000175000017500000001060113006733621020601 0ustar tobiastobias/* * 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 "requestpacket.h" #include "vnsicommand.h" #include "tools.h" #include "p8-platform/sockets/tcp.h" #include #include #include uint32_t cRequestPacket::serialNumberCounter = 1; cRequestPacket::cRequestPacket() { buffer = NULL; bufSize = 0; bufUsed = 0; lengthSet = false; serialNumber = 0; opcode = 0; } cRequestPacket::~cRequestPacket() { free(buffer); } void cRequestPacket::init(uint32_t topcode, bool stream, bool setUserDataLength, size_t userDataLength) { assert(buffer == NULL); 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) throw std::bad_alloc(); 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; } void cRequestPacket::add_String(const char* string) { size_t len = strlen(string) + 1; checkExtend(len); memcpy(buffer + bufUsed, string, len); bufUsed += len; if (!lengthSet) { uint32_t tmp = htonl(bufUsed - headerLength); memcpy(&buffer[userDataLenPos], &tmp, sizeof(uint32_t)); } } void cRequestPacket::add_U8(uint8_t c) { checkExtend(sizeof(uint8_t)); buffer[bufUsed] = c; bufUsed += sizeof(uint8_t); if (!lengthSet) { uint32_t tmp = htonl(bufUsed - headerLength); memcpy(&buffer[userDataLenPos], &tmp, sizeof(uint32_t)); } } void cRequestPacket::add_S32(int32_t l) { checkExtend(sizeof(int32_t)); 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)); } } void cRequestPacket::add_U32(uint32_t ul) { checkExtend(sizeof(uint32_t)); 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)); } } void cRequestPacket::add_U64(uint64_t ull) { checkExtend(sizeof(uint64_t)); 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)); } } void cRequestPacket::add_S64(int64_t ll) { checkExtend(sizeof(int64_t)); 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)); } } void cRequestPacket::checkExtend(size_t by) { if (lengthSet) return; if ((bufUsed + by) <= bufSize) return; uint8_t* newBuf = (uint8_t*)realloc(buffer, bufUsed + by); if (!newBuf) { newBuf = (uint8_t*)malloc(bufUsed + by); if (!newBuf) { throw std::bad_alloc(); } memcpy(newBuf, buffer, bufUsed); free(buffer); } buffer = newBuf; bufSize = bufUsed + by; } kodi-pvr-vdr-vnsi-2.6.12/src/tools.h0000644000175000017500000000221613006733621016531 0ustar tobiastobias#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 "libXBMC_codec.h" #include "xbmc_codec_descriptor.hpp" kodi-pvr-vdr-vnsi-2.6.12/src/EGLHelpers/0000755000175000017500000000000012725215015017150 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/src/EGLHelpers/VisShader.h0000644000175000017500000001323012664612001021206 0ustar tobiastobias#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-2.6.12/src/EGLHelpers/VisGUIShader.cpp0000644000175000017500000000434112664612001022111 0ustar tobiastobias/* * 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-2.6.12/src/EGLHelpers/VisGUIShader.h0000644000175000017500000000251412664612001021556 0ustar tobiastobias#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-2.6.12/src/EGLHelpers/VisShader.cpp0000644000175000017500000001173112664612001021545 0ustar tobiastobias/* * 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-2.6.12/src/EGLHelpers/VisMatrixGLES.h0000644000175000017500000000655312664612001021731 0ustar tobiastobias#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-2.6.12/src/EGLHelpers/VisMatrixGLES.cpp0000644000175000017500000002756412725215015022273 0ustar tobiastobias/* * 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__) && !defined(__arm64__) 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-2.6.12/src/responsepacket.h0000644000175000017500000000573512725215015020427 0ustar tobiastobias#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 class cResponsePacket { public: cResponsePacket(); ~cResponsePacket(); void setResponse(uint8_t* packet, size_t packetLength); void setStatus(uint8_t* packet, size_t packetLength); void setStream(uint8_t* packet, size_t packetLength); void setOSD(uint8_t* packet, size_t packetLength); void extractHeader(); void extractStreamHeader(); void extractOSDHeader(); bool noResponse() { return (userData == NULL); }; size_t getUserDataLength() const { return userDataLength; } uint32_t getChannelID() const { return channelID; } uint32_t getRequestID() const { return requestID; } uint32_t getStreamID() const { return streamID; } uint32_t getOpCodeID() const { return opcodeID; } uint32_t getDuration() const { return duration; } int64_t getDTS() const { return dts; } int64_t getPTS() const { return pts; } uint32_t getMuxSerial() const { return muxSerial; } void getOSDData(uint32_t &wnd, uint32_t &color, uint32_t &x0, uint32_t &y0, uint32_t &x1, uint32_t &y1); size_t getPacketPos() const { return packetPos; } size_t getRemainingLength() const { return userDataLength - 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(); // If you call this, the memory becomes yours. Free with free() uint8_t* stealUserData(); uint8_t* getUserData(); uint8_t* getHeader() { return header; }; size_t getStreamHeaderLength() const { return 36; }; size_t getHeaderLength() const { return 8; }; size_t getOSDHeaderLength() const { return 32; } ; private: uint8_t header[40]; uint8_t* userData; size_t userDataLength; size_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; }; kodi-pvr-vdr-vnsi-2.6.12/src/VNSISession.cpp0000644000175000017500000002327113006733621020053 0ustar tobiastobias/* * 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 "p8-platform/sockets/tcp.h" #include "p8-platform/util/timeutils.h" /* Needed on Mac OS/X */ #ifndef SOL_TCP #define SOL_TCP IPPROTO_TCP #endif using namespace ADDON; using namespace P8PLATFORM; cVNSISession::cVNSISession() : m_protocol(0) , m_socket(NULL) , m_connectionLost(false) { m_abort = false; } cVNSISession::~cVNSISession() { Close(); } void cVNSISession::Close() { if (IsOpen()) { m_socket->Close(); } 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 && !m_abort) { if (!m_socket->Open(iTarget - iNow)) CEvent::Sleep(100); iNow = GetTimeMs(); } if (!m_socket->IsOpen() && !m_abort) { XBMC->Log(LOG_DEBUG, "%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 != nullptr) m_name = name; return true; } bool cVNSISession::Login() { try { cRequestPacket vrp; vrp.init(VNSI_LOGIN); vrp.add_U32(VNSI_PROTOCOLVERSION); vrp.add_U8(false); // netlog if (!m_name.empty()) { vrp.add_String(m_name.c_str()); } else { vrp.add_String("XBMC Media Center"); } // read welcome std::unique_ptr 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); } 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; } std::unique_ptr 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(); 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(); 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 std::unique_ptr(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; } std::unique_ptr cVNSISession::ReadResult(cRequestPacket* vrp) { if(!TransmitMessage(vrp)) { SignalConnectionLost(); return NULL; } std::unique_ptr pkt; 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; } } SignalConnectionLost(); return NULL; } bool cVNSISession::ReadSuccess(cRequestPacket* vrp) { std::unique_ptr pkt; if((pkt = ReadResult(vrp)) == NULL) { return false; } uint32_t retCode = pkt->extract_U32(); 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() { } cVNSISession::eCONNECTIONSTATE cVNSISession::TryReconnect() { if (!Open(m_hostname, m_port)) return CONN_HOST_NOT_REACHABLE; if (!Login()) return CONN_LOGIN_FAILED; XBMC->Log(LOG_DEBUG, "%s - reconnected", __FUNCTION__); m_connectionLost = false; OnReconnect(); return CONN_ESABLISHED; } bool cVNSISession::IsOpen() { return m_socket && m_socket->IsOpen(); } 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-2.6.12/src/xbmc_codec_descriptor.hpp0000644000175000017500000000417512664612001022260 0ustar tobiastobias/* * 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 */kodi-pvr-vdr-vnsi-2.6.12/src/VNSISession.h0000644000175000017500000000470713006733621017523 0ustar tobiastobias#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 #include "p8-platform/threads/threads.h" #include class cResponsePacket; class cRequestPacket; namespace P8PLATFORM { 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(); std::unique_ptr ReadMessage(int iInitialTimeout = 10000, int iDatapacketTimeout = 10000); bool TransmitMessage(cRequestPacket* vrp); std::unique_ptr ReadResult(cRequestPacket* vrp); bool ReadSuccess(cRequestPacket* m); int GetProtocol() const { return m_protocol; } const std::string& GetServerName() const { return m_server; } const std::string& GetVersion() const { return m_version; } enum eCONNECTIONSTATE { CONN_ESABLISHED = 0, CONN_HOST_NOT_REACHABLE, CONN_LOGIN_FAILED, CONN_UNKNOWN }; protected: void SleepMs(int ms); eCONNECTIONSTATE TryReconnect(); bool IsOpen(); virtual void OnDisconnect(); virtual void OnReconnect(); virtual void SignalConnectionLost(); std::string m_hostname; int m_port; std::string m_name; P8PLATFORM::CMutex m_mutex; int m_protocol; std::string m_server; std::string m_version; bool m_connectionLost; std::atomic_bool m_abort; private: bool readData(uint8_t* buffer, int totalBytes, int timeout); P8PLATFORM::CTcpConnection *m_socket; P8PLATFORM::CMutex m_readMutex; }; kodi-pvr-vdr-vnsi-2.6.12/src/VNSIRecording.h0000644000175000017500000000270212725215015020004 0ustar tobiastobias#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() override; 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() override; void GetLength(); private: PVR_RECORDING m_recinfo; uint64_t m_currentPlayingRecordBytes; uint32_t m_currentPlayingRecordFrames; uint64_t m_currentPlayingRecordPosition; }; kodi-pvr-vdr-vnsi-2.6.12/src/requestpacket.h0000644000175000017500000000350012725215015020245 0ustar tobiastobias#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 cRequestPacket { public: cRequestPacket(); ~cRequestPacket(); void init(uint32_t opcode, bool stream = false, bool setUserDataLength = false, size_t userDataLength = 0); void add_String(const char* string); void add_U8(uint8_t c); void add_U32(uint32_t ul); void add_S32(int32_t l); void add_U64(uint64_t ull); void add_S64(int64_t ll); uint8_t* getPtr() const { return buffer; } size_t getLen() const { return bufUsed; } uint32_t getChannel() const { return channel; } uint32_t getSerial() const { return serialNumber; } uint32_t getOpcode() const { return opcode; } private: static uint32_t serialNumberCounter; uint8_t* buffer; size_t bufSize; size_t bufUsed; bool lengthSet; uint32_t channel; uint32_t serialNumber; uint32_t opcode; void checkExtend(size_t by); const static size_t headerLength = 16; const static size_t userDataLenPos = 12; }; kodi-pvr-vdr-vnsi-2.6.12/README.md0000644000175000017500000000156213006734466015723 0ustar tobiastobias[![Build Status](https://travis-ci.org/kodi-pvr/pvr.vdr.vnsi.svg?branch=master)](https://travis-ci.org/kodi-pvr/pvr.vdr.vnsi) [![Coverity Scan Build Status](https://scan.coverity.com/projects/5120/badge.svg)](https://scan.coverity.com/projects/5120) # VDR VNSI PVR VDR VNSI PVR client addon for [Kodi] (http://kodi.tv) ## Build instructions ### Linux 1. `git clone https://github.com/xbmc/xbmc.git` 2. `git clone https://github.com/kodi-pvr/pvr.vdr.vnsi.git` 3. `cd pvr.vdr.vnsi && mkdir build && cd build` 4. `cmake -DADDONS_TO_BUILD=pvr.vdr.vnsi -DADDON_SRC_PREFIX=../.. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=../../xbmc/addons -DPACKAGE_ZIP=1 ../../xbmc/project/cmake/addons` 5. `make` ##### Useful links * [Kodi's PVR user support] (http://forum.kodi.tv/forumdisplay.php?fid=169) * [Kodi's PVR development support] (http://forum.kodi.tv/forumdisplay.php?fid=136) kodi-pvr-vdr-vnsi-2.6.12/CMakeLists.txt0000644000175000017500000000370213006733621017172 0ustar tobiastobiasproject(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(p8-platform REQUIRED) add_definitions(-DUSE_DEMUX) if(NOT WIN32) find_package(EMBEDDED) if(NOT EMBEDDED_FOUND) find_package(OpenGL) endif() 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() message(STATUS " VDR OSD support disabled because it is not migrated to DX11 yet") 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 ${p8-platform_LIBRARIES}) if(WIN32) list(APPEND DEPLIBS ws2_32) endif() include_directories(${INCLUDES} ${kodiplatform_INCLUDE_DIRS} ${p8-platform_INCLUDE_DIRS} ${KODI_INCLUDE_DIR}) build_addon(pvr.vdr.vnsi VDR DEPLIBS) include(CPack) kodi-pvr-vdr-vnsi-2.6.12/FindOpenGLES2.cmake0000644000175000017500000000250012725215014017664 0ustar tobiastobias# - 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 AND NOT EMBEDDED_FOUND) pkg_check_modules(OpenGLES2 glesv2) elseif(EMBEDDED_FOUND) set(CMAKE_PREFIX_PATH ${EMBEDDED_FOUND} ${CMAKE_PREFIX_PATH}) endif(PKG_CONFIG_FOUND AND NOT EMBEDDED_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-2.6.12/FindEMBEDDED.cmake0000644000175000017500000000100412725215014017355 0ustar tobiastobias# - Try to find embedded platforms (RPI/IMX6) # Once done this will define # # EMBEDDED_FOUND - system is RPI / IMX6 and we most probably want to compile for GLES2 support # (don't configure for OpenGL) string(REGEX MATCH "^arm" TARGET_ARCH_ARM "${CMAKE_SYSTEM_PROCESSOR}") if(NOT CMAKE_CROSSCOMPILING AND NOT TARGET_ARCH_ARM) return() endif(NOT CMAKE_CROSSCOMPILING AND NOT TARGET_ARCH_ARM) find_path(EMBEDDED_FOUND NAMES include/linux/imxfb.h include/bcm_host.h PATHS /opt/vc) kodi-pvr-vdr-vnsi-2.6.12/.gitignore0000644000175000017500000000072712725215014016424 0ustar tobiastobias# build artifacts build/ debian/changelog debian/files debian/kodi-pvr-vdr.vnsi-dbg.debhelper.log debian/kodi-pvr-vdr.vnsi-dbg.substvars debian/kodi-pvr-vdr.vnsi-dbg/ debian/kodi-pvr-vdr.vnsi.debhelper.log debian/kodi-pvr-vdr.vnsi.postinst.debhelper debian/kodi-pvr-vdr.vnsi.postrm.debhelper debian/kodi-pvr-vdr.vnsi.substvars debian/kodi-pvr-vdr.vnsi/ debian/tmp/ obj-x86_64-linux-gnu/ pvr.vdr.vnsi/addon.xml # clion .idea/ # Eclipse/CDT .cproject .project .settings/ kodi-pvr-vdr-vnsi-2.6.12/debian/0000755000175000017500000000000013030540613015644 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/debian/copyright0000644000175000017500000000272613030540613017606 0ustar tobiastobiasFormat: 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-2.6.12/debian/rules0000755000175000017500000000124313030540613016724 0ustar tobiastobias#!/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-2.6.12/debian/changelog.in0000644000175000017500000000026513030540613020126 0ustar tobiastobiaskodi-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-2.6.12/debian/compat0000644000175000017500000000000213012400326017036 0ustar tobiastobias9 kodi-pvr-vdr-vnsi-2.6.12/debian/control0000644000175000017500000000131413030540613017246 0ustar tobiastobiasSource: 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-2.6.12/debian/source/0000755000175000017500000000000013030540613017144 5ustar tobiastobiaskodi-pvr-vdr-vnsi-2.6.12/debian/source/format0000644000175000017500000000001513030540613020353 0ustar tobiastobias3.0 (native) kodi-pvr-vdr-vnsi-2.6.12/debian/kodi-pvr-vdr-vnsi.install0000644000175000017500000000016413030540613022536 0ustar tobiastobiasusr/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-2.6.12/.travis.yml0000644000175000017500000000234713030540613016541 0ustar tobiastobiaslanguage: cpp # # Define the build matrix # # Travis defaults to building on Ubuntu Precise when building on # Linux. We need Trusty in order to get up to date versions of # cmake and g++. # matrix: include: - os: linux dist: trusty sudo: required compiler: gcc - os: linux dist: trusty sudo: required compiler: clang - os: osx osx_image: xcode7.3 - os: osx osx_image: xcode6.1 # # Some of the OS X images don't have cmake, contrary to what people # on the Internet say # before_install: - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then which cmake || brew update ; fi - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then which cmake || brew install cmake ; fi # # The addon source is automatically checked out in $TRAVIS_BUILD_DIR, # we'll put the Kodi source on the same level # before_script: - cd $TRAVIS_BUILD_DIR/.. - git clone -b Krypton --depth=1 https://github.com/xbmc/xbmc.git - cd pvr.vdr.vnsi && mkdir build && cd build - cmake -DADDONS_TO_BUILD=pvr.vdr.vnsi -DADDON_SRC_PREFIX=$TRAVIS_BUILD_DIR/.. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=$TRAVIS_BUILD_DIR/../xbmc/addons -DPACKAGE_ZIP=1 $TRAVIS_BUILD_DIR/../xbmc/project/cmake/addons script: make